diff --git a/.clang-tidy b/.clang-tidy index 51077bd5737c9..56deba94276df 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -8,7 +8,6 @@ Checks: "\ bugprone-*,\ cata-*,\ cert-*,\ --cert-dcl21-cpp,\ -cert-err58-cpp,\ clang-diagnostic-*,\ cppcoreguidelines-slicing,\ @@ -17,11 +16,20 @@ misc-*,\ modernize-*,\ performance-*,\ readability-*,\ +-bugprone-incorrect-roundings,\ +-bugprone-integer-division,\ +-bugprone-macro-parentheses,\ -bugprone-misplaced-widening-cast,\ -bugprone-narrowing-conversions,\ +-bugprone-string-integer-assignment,\ +-bugprone-too-small-loop-variable,\ -bugprone-undefined-memory-manipulation,\ -bugprone-unused-return-value,\ -bugprone-use-after-move,\ +-cert-dcl21-cpp,\ +-cert-dcl50-cpp,\ +-cert-dcl58-cpp,\ +-cert-dcl59-cpp,\ -cert-env33-c,\ -cert-err34-c,\ -cert-flp30-c,\ @@ -29,27 +37,37 @@ readability-*,\ -cert-msc32-c,\ -cert-msc50-cpp,\ -cert-msc51-cpp,\ +-misc-definitions-in-headers,\ -misc-non-private-member-variables-in-classes,\ +-misc-redundant-expression,\ +-misc-unconventional-assign-operator,\ -modernize-avoid-c-arrays,\ -modernize-deprecated-headers,\ +-modernize-make-unique,\ -modernize-pass-by-value,\ +-modernize-raw-string-literal,\ -modernize-return-braced-init-list,\ -modernize-use-auto,\ -modernize-use-default-member-init,\ -modernize-use-emplace,\ -modernize-use-equals-default,\ -modernize-use-equals-delete,\ +-modernize-use-nullptr,\ +-modernize-use-override,\ -modernize-use-transparent-functors,\ -performance-for-range-copy,\ -performance-inefficient-vector-operation,\ +-performance-move-const-arg,\ -performance-noexcept-move-constructor,\ -performance-implicit-conversion-in-loop,\ -performance-inefficient-algorithm,\ -performance-inefficient-string-concatenation,\ -performance-type-promotion-in-math-fn,\ +-performance-unnecessary-copy-initialization,\ -performance-unnecessary-value-param,\ -readability-avoid-const-params-in-decls,\ -readability-braces-around-statements,\ +-readability-const-return-type,\ -readability-else-after-return,\ -readability-function-size,\ -readability-implicit-bool-conversion,\ @@ -57,10 +75,15 @@ readability-*,\ -readability-isolate-declaration,\ -readability-magic-numbers,\ -readability-named-parameter,\ +-readability-non-const-parameter,\ -readability-container-size-empty,\ -readability-redundant-control-flow,\ -readability-redundant-declaration,\ +-readability-redundant-member-init,\ -readability-redundant-preprocessor,\ +-readability-redundant-string-init,\ +-readability-simplify-boolean-expr,\ +-readability-static-accessed-through-instance,\ " WarningsAsErrors: '*' HeaderFilterRegex: '(src|test).*' diff --git a/.github/stale.yml b/.github/stale.yml index 7bd86c3c7734d..7732a612efca7 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -39,9 +39,7 @@ staleLabel: stale markComment: > This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. Please do not \'bump\' or comment on this issue - unless you are actively working on it. Stale issues, and stale issues that - are closed are still considered. + for your contributions. # Comment to post when removing the stale label. # unmarkComment: > diff --git a/.travis.yml b/.travis.yml index e33957e7e1c1b..1aaca516a5538 100644 --- a/.travis.yml +++ b/.travis.yml @@ -99,19 +99,6 @@ jobs: apt: packages: ["wine"] - - env: NATIVE=android COMPILER=gcc - name: "Android build" - language: android - android: - components: - - build-tools-28.0.1 - - android-26 - cache: - # The ccache feature in Travis doesn't work for language: android, so - # do it ourselves. - directories: - - $HOME/.ccache - - env: CLANG=clang++ NATIVE=osx OSX_MIN=10.13 TILES=1 SOUND=1 name: "Xcode 10.1 Make build with Tiles and sound (macOS)" os: osx diff --git a/COMPILING-MSYS.md b/COMPILING-MSYS.md index 4a83cb7dd1fbe..bcc7fb5e05fa0 100644 --- a/COMPILING-MSYS.md +++ b/COMPILING-MSYS.md @@ -39,7 +39,7 @@ pacman -Su 4. Install packages required for compilation with: ```bash -pacman -S git git-extras make mingw-w64-x86_64-{astyle,ccache,gcc,libmad,libwebp,ncurses,pkg-config,SDL2} mingw-w64-x86_64-SDL2_{image,mixer,ttf} +pacman -S git git-extras-git make mingw-w64-x86_64-{astyle,ccache,gcc,libmad,libwebp,ncurses,pkg-config,SDL2} mingw-w64-x86_64-SDL2_{image,mixer,ttf} ``` 5. Update paths in system-wide profile file (e.g. `C:\msys64\etc\profile`) as following: diff --git a/COMPILING-VS-VCPKG.md b/COMPILING-VS-VCPKG.md index cb7a32a642a26..f46b576b2b1cc 100644 --- a/COMPILING-VS-VCPKG.md +++ b/COMPILING-VS-VCPKG.md @@ -73,20 +73,8 @@ git clone https://github.com/CleverRaven/Cataclysm-DDA.git cd Cataclysm-DDA ``` -2. Open one of provided solutions (`msvc-full-features\Cataclysm-vcpkg.sln` for dynamically linked executable or `msvc-full-features\Cataclysm-vcpkg-static.sln` for statically linked executable) in `Visual Studio`, select configuration (`Release` or `Debug`) and platform (`x64` or `x86`) and build it. +2. Open one of provided solutions (`msvc-full-features\Cataclysm-vcpkg.sln` for dynamically linked executable or `msvc-full-features\Cataclysm-vcpkg-static.sln` for statically linked executable) in `Visual Studio`, select configuration (`Release` or `Debug`) an platform (`x64` or `x86`) and build it. **Note**: This will compile release version with Sound, Tiles and Localization support (language files won't be automatically compiled). -3. Building Cataclysm with Visual Studio is very simple. Just build it like a normal Visual C++ project. The process may takes a long period of time, so you'd better prepare a cup of coffee and some books in front of your computer :) - -4. If you need localization support, execute the bash script `lang/compile_mo.sh` inside Git Bash GUI just like on a UNIX-like system. This will compile the language files that were not automatically compiled in step 2 above. - -### Debugging - -After building Cataclysm, you may discover that after pressing the debug button in Visual Studio, Cataclysm just exits after launch with return code 1. That is because of the wrong working directory. You need to configure the working directory to `$(ProjectDir)..`. - -When debugging, it is not strictly necessary to use a `Debug` build; `Release` builds run significantly faster, can still be run in the debugger, and most of the time will have most of the information you need. - -### Make a distribution - -There is a batch script in `msvc-full-features` folder `distribute.bat`. It will create a sub folder `distribution` and copy all required files(eg. `data/`, `Cataclysm.exe` and dlls) into that folder. Then you can zip it and share the archive on the Internet. +3. See [COMPILING.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/COMPILING.md#visual-studio-guide) for detail about building and debugging. diff --git a/COMPILING.md b/COMPILING.md index 59f17a6ac5a0e..b62c360812df7 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -16,9 +16,9 @@ * [Advanced info for Developers](#advanced-info-for-developers) * [Troubleshooting](#mac-troubleshooting) * [Windows](#windows) - * [Building with Visual Studio](#building-with-visual-studio) - * [Building with MSYS2](#building-with-msys2) - * [Building with CYGWIN](#building-with-cygwin) + * [Visual Studio Guide](#visual-studio-guide) + * [MinGW Guide](#mingw-guide) + * [Rough guide to building with only MSYS2](#rough-guide-to-building-with-only-msys2) * [BSDs](#bsds) # General Linux Guide @@ -436,6 +436,7 @@ ncurses (with wide character support enabled) and gettext are needed if you want For Homebrew: + brew tap homebrew/dupes brew install gettext ncurses brew link --force gettext ncurses @@ -572,23 +573,160 @@ Open Terminal's preferences, turn on "Use bright colors for bold text" in "Prefe # Windows -## Building with Visual Studio +## Visual Studio Guide -See [COMPILING-VS-VCPKG.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/COMPILING-VS-VCPKG.md) for instructions on how to set up and use a build environment using Visual Studio on windows. +Visual Studio 2017 (or later) is required to build Cataclysm: Dark Days Ahead. Solutions and project files are located in directory `msvc-full-features`. Because of the complexity and how troublesome defining every combination of build feature options are, Visual Studio projects have all build features enabled, including tiles, sound and localization. -This is probably the easiest solution for someone used to working with Visual Studio and similar IDEs. +### Dependencies + +We've prepared an archive containing all the headers and libraries required to build Cataclysm: [http://dev.narc.ro/cataclysm/WinDepend-MSVC.zip](http://dev.narc.ro/cataclysm/WinDepend-MSVC.zip) or [http://dev.narc.ro/cataclysm/WinDepend-MSVC.7z](http://dev.narc.ro/cataclysm/WinDepend-MSVC.7z). The latter is smaller, but if you don't have a 7-zip archive extracter, the former one is easier to deal with. + +Extract the 'WinDepend' folder from the zip and put the 'WinDepend' folder in the root folder of Cataclysm project. Your folder structure should look like this: `.../Cataclysm-DDA/WinDepend/...` + +Run the "copy_dll_to_bin" batch file and then move the dll files from the bin folder inside 'WinDepend' into the root folder the Cataclysm project. You'll probably want to use the dlls that are in `WinDepend/bin/x64/`. + +### Building + +Building Cataclysm with Visual Studio is very simple. Just build it like a normal Visual C++ project. The process may takes a long period of time, so you'd better prepare a cup of coffee and some books in front of your computer :) + +If you need localization support, execute the bash script `lang/compile_mo.sh` inside Git Bash GUI just like on a UNIX-like system. + +### Debugging + +After building Cataclysm, you may discover that after pressing the debug button in Visual Studio, Cataclysm just exits after launch with return code 1. That is because of the wrong working directory. You need to configure the working directory to `$(ProjectDir)..`. + +### Make a distribution + +There is a batch script in `msvc-full-features` folder `distribute.bat`. It will create a sub folder `distribution` and copy all required files(eg. `data/`, `Cataclysm.exe` and dlls) into that folder. Then you can zip it and share the archive on the Internet. + +## MinGW Guide +To compile under windows MinGW you first need to download mingw. An automated GUI installer assistant called mingw-get-setup.exe will make everything a lot easier. I recommend installing it to `C:\MinGW` +https://sourceforge.net/projects/mingw/files/latest/download + +### MinGW setup +once installed we need to get the right packages. In "Basic Setup", mark `mingw-developer-toolkit`, `mingw32-base` and `mingw32-gcc-g++` + +Then install these components using `Installation -> Apply Changes`. + +#### Localization +If we want to compile with localization, we will need gettext and libintl. In "All Packages -> MinGW -> MinGW Autotools" ensure that `mingw32-gettext` and `mingw32-libintl` are installed. + +### Required Tiles(SDL) Libraries +If we want to compile with Tiles (SDL) we have to download a few libraries. +* `SDL2` http://www.libsdl.org/download-2.0.php chose `SDL2-devel-2.0.X-mingw.tar.gz`. +* `SDL_ttf` https://www.libsdl.org/projects/SDL_ttf/ chose `SDL2_ttf-devel-2.0.12-mingw.tar.gz`. +* `SDL_image` https://www.libsdl.org/projects/SDL_image/ chose ` SDL2_image-devel-2.0.0-mingw.tar.gz` +* `freetype` http://gnuwin32.sourceforge.net/packages/freetype.htm chose `Binaries` and `Developer files` + +#### Bundled Libraries +The following archives were pre-bundled for convenience and reduction of head-aches, simply download and extract directly to the root directory of the CDDA source: +* `64-bit SDL \ Tiles \ Sound \ Localization` http://dev.narc.ro/cataclysm/cdda-win64-codeblocks.7z + +#### Installing Tiles(SDL) libraries. +For the first 3 (`SDL2`, `SDL_ttf` and `SDL_image`) you want to extract the include and lib folders from the `i686-w64-mingw32` folders into your MinGW installation folder. (Recommended `C:\MinGW`). And the `SDL2_image.dll` and `SDL2_ttf.dll` into your cataclysm root folder. + +For freetype you want to grab the include and lib folders from the `freetype-2.X.X-X-lib.zip` and move them into your your MinGW installation folder. Then you want to get the freetype6.dll from the `freetype-2.X.X-X-bin.zip` and move it into your cataclysm root folder. + +#### ISSUE - "winapifamily.h" no such file or directoyr +There seems to be at the moment of writing that a file in SDL is broken and needs to be replaced. +https://hg.libsdl.org/SDL/raw-file/e217ed463f25/include/SDL_platform.h +Replace SDL_platform.h in the MinGW/include/SDL2 folder and it should be fine. + +### Makefile changes +This probably not the best way to do it. But it seems that you need to remove a few dependencies from the makefile or it will not build. +change the line `LDFLAGS += -lfreetype -lpng -lz -ljpeg -lbz2` to `LDFLAGS += -lfreetype` + +### Compiling +Navigate to `MinGW\msys\1.0` and run `msys.bat`. This will start a cmd-like shell where the following entries will be made. + +Add the MinGW toolchain to your PATH with `export PATH=$PATH:/c/MinGW/bin`. Replace /c/MinGW/ with the directory into which you installed MinGW (/c/ stands for drive C:, so if it's in F:/foo/bar, you'd use /f/foo/bar). + +Navigate to the CDDA source code directory. + +Compile using `make TILES=1 NATIVE=win32 LOCALIZE=1` and unless there are problems, it should produce a CDDA binary for you. -## Building with MSYS2 +If you dont want tiles you can change `TILES` to 0. -See [COMPILING-MSYS.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/COMPILING-MSYS.md) for instructions on how to set up and use a build environment using MSYS2 on windows. +If you dont want localization you can change `LOCALIZE` to 0. -MSYS2 strikes a balance between a native Windows application and a UNIX-like environment. There's some command-line tools that our project uses (notably our JSON linter) that are harder to use without a command-line environment such as what MSYS2 or CYGWIN provide. +## Rough guide to building with only MSYS2 -## Building with CYGWIN +This is a tentative step-by-step guide to building your own CDDA with Tiles and Localization using only MSYS2. You may want to follow it if the MinGW guide above doesn't work for you or you just feel adventurous. Feedback is very much welcome in terms of issues and/or pull-requests. -See [COMPILING-CYGWIN.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/COMPILING-CYGWIN.md) for instructions on how to set up and use a build environment using CYGWIN on windows. +This guide assumes you're building on a x86_64 build of Windows. If not adjust the invocations appropriately. It has been tested and proven to work on Windows XP, Windows 7 and Windows 10. Your mileage may vary. + +#### 1. Go to https://msys2.github.io/ and download appropriate MSYS (top of the page). + +#### 2. Install MSYS2 and leave the Run ticker on. You should end up with a MSYS2 terminal. + +#### 3. In the open terminal: + +```bash +pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime +``` + +Note: You may close the terminal now and reopen it from the Start menu (MSYS2 Shell, just to be on the safe-er side). + +Note: You may need to bash the close button repeatedly. Or use the task manager to kill it. + +#### 4. Open an editor that preserves line-endings + +Note: Wordpad should do. Or Notepad++. + +#### 5. Open `C:\msys64\etc\pacman.conf` and change: + +```bash +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +#SigLevel = Never +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required +``` + +To: + +```bash +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Never +#SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required +``` + +(Exchange the # on SigLevel). This disables signature checking as it is currently borked. + +#### 6. Save the file + +#### 7. Run in MSYS2 terminal: + +```bash +update-core +pacman -Su +pacman -S mingw-w64-x86_64-gcc +pacman -S mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-SDL2_mixer mingw-w64-x86_64-SDL2_ttf +pacman -S mingw-w64-x86_64-ncurses +pacman -S mingw-w64-x86_64-pkg-config mingw-w64-x86_64-libwebp +pacman -S git make +``` + +#### 8. Close MSYS2 terminal and open MinGW-w64 Win64 Shell from Start menu and run: + +Note: This will download whole CDDA repository. If you're just testing you should probably add `--depth=1`. + +```bash +git clone https://github.com/CleverRaven/Cataclysm-DDA.git +cd Cataclysm-DDA +``` + +#### 9. Compile your CDDA by running: + +```bash +make MSYS2=1 RELEASE=1 TILES=1 LOCALIZE=1 SOUND=1 NATIVE=win64 +``` -CYGWIN attempts to more fully emulate a POSIX environment, to be "more unix" than MSYS2. It is a little less modern in some respects, and lacks the convenience of the MSYS2 package manager. +That's it. You should get a `cataclysm-tiles.exe` binary in the same folder you've found the `Makefile` in. The make flags are the same as the ones described above. For instance, if you do not want to build with sound support, you can remove `SOUND=1`. # BSDs diff --git a/README.md b/README.md index 3e8da4cd44443..2eacec2026db6 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ We also have the following build guides: ## Contribute -Cataclysm:Dark Days Ahead is the result of contributions from over 900 volunteers under the Creative Commons Attribution ShareAlike 3.0 license. The code and content of the game is free to use, modify, and redistribute for any purpose whatsoever. See http://creativecommons.org/licenses/by-sa/3.0/ for details. +Cataclysm:Dark Days Ahead is the result of contributions from over 800 volunteers under the Creative Commons Attribution ShareAlike 3.0 license. The code and content of the game is free to use, modify, and redistribute for any purpose whatsoever. See http://creativecommons.org/licenses/by-sa/3.0/ for details. Some code distributed with the project is not part of the project and is released under different software licenses, the files covered by different software licenses have their own license notices. [![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=146201)](https://www.bountysource.com/trackers/146201-clever-raven-cataclysm-dda?utm_source=146201&utm_medium=shield&utm_campaign=TRACKER_BADGE) diff --git a/build-scripts/build.sh b/build-scripts/build.sh index acd9af20bf491..ee1011cbe5bf5 100755 --- a/build-scripts/build.sh +++ b/build-scripts/build.sh @@ -13,6 +13,7 @@ function run_tests date +%s > build-start-time +export CCACHE_MAXSIZE=1G if [ -n "$TEST_STAGE" ] then build-scripts/lint-json.sh @@ -29,10 +30,6 @@ then fi ccache --zero-stats -# Increase cache size because debug builds generate large object files -ccache -M 2G -ccache --show-stats - if [ -n "$CMAKE" ] then bin_path="./" @@ -131,20 +128,6 @@ then [ -f "${bin_path}cata_test" ] && run_tests "${bin_path}cata_test" [ -f "${bin_path}cata_test-tiles" ] && run_tests "${bin_path}cata_test-tiles" fi -elif [ "$NATIVE" == "android" ] -then - export USE_CCACHE=1 - export NDK_CCACHE="$(which ccache)" - - # Tweak the ccache compiler analysis. We're using the compiler from the - # Android NDK which has an unpredictable mtime, so we need to hash the - # content rather than the size+mtime (which is ccache's default behaviour). - export CCACHE_COMPILERCHECK=content - - cd android - # Specify dumb terminal to suppress gradle's constatnt output of time spent building, which - # fills the log with nonsense. - TERM=dumb ./gradlew assembleDebug -Pj=3 else make -j "$num_jobs" RELEASE=1 CCACHE=1 BACKTRACE=1 CROSS="$CROSS_COMPILATION" LINTJSON=0 diff --git a/build-scripts/requirements.sh b/build-scripts/requirements.sh index 5470c7761d499..327463af1854a 100644 --- a/build-scripts/requirements.sh +++ b/build-scripts/requirements.sh @@ -60,9 +60,3 @@ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gettext ncurses ccache brew link --force gettext ncurses fi - -if [[ "$NATIVE" == "android" ]]; then - yes | sdkmanager "ndk-bundle" -fi - -set +x diff --git a/data/help/texts.json b/data/help/texts.json index 54aa270990417..395951f6e81fb 100644 --- a/data/help/texts.json +++ b/data/help/texts.json @@ -4,9 +4,9 @@ "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.", - "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.", + "Cataclysm is a survival roguelike with a monster apocalypse setting. 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.", "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." ] }, @@ -19,8 +19,8 @@ "", "Each step will take 100 movement points (or more, depending on the terrain); you will then replenish a variable amount of movement points, depending on many factors (press to see the exact amount).", "To attempt to hit a monster with your weapon, simply move into it.", - "You may find doors, ('+'); these may be opened with or closed with . Some doors are locked. Locked doors, windows, and some other obstacles can be destroyed by smashing them (, then choose a direction). Smashing down obstacles is much easier with a good weapon or a strong character.", - "There may be times when you want to move more quickly by holding down a movement key. However, fast movement in this fashion may lead to the player getting into a dangerous situation or even killed before they have a chance to react. Pressing will toggle \"Safe Mode\". While this is on, any movement will be ignored if new monsters enter the player's view." + "You may find doors, ('+'); these may be opened with or closed with . Some doors are locked. Locked doors, windows, and some other obstacles can be destroyed by smashing them (, then choose a direction). Smashing down obstacles is much easier with a good weapon or a strong character.", + "There may be times when you want to move more quickly by holding down a movement key. However, fast movement in this fashion may lead to the player getting into a dangerous situation or even killed before they have a chance to react. Pressing will toggle \"Safe Mode\". While this is on, any movement will be ignored if new monsters enter the player's view." ] }, { @@ -28,8 +28,7 @@ "order": 2, "name": ": Viewing", "messages": [ - "The player can often see more than can be displayed on the screen at a time. Pressing enters \"look around mode\", which allows you to scroll around using the movement keys and view items on the map as well as monsters and their stance toward the character. Pressing provides a list of nearby visible items, though items shut away in crates, cupboards, refrigerators and the like won't be displayed until you are close enough. Pressing Shift+vikeys (h,j,k,l,y,u,b,n) will scroll the view persistently, allowing you to keep an eye on things as you move around.", - "Places outside of your view but seen peviously and memorized can be visualized, but covered by the \"fog of war\"." + "The player can often see more than can be displayed on the screen at a time. Pressing enters \"look around mode\", which allows you to scroll around using the movement keys and view items on the map as well as monsters and their stance toward the character. Pressing provides a list of nearby visible items, though items shut away in crates, cupboards, refrigerators and the like won't be displayed until you are close enough. Pressing Shift+vikeys (h,j,k,l,y,u,b,n) will scroll the view persistently, allowing you to keep an eye on things as you move around." ] }, { @@ -37,12 +36,10 @@ "order": 3, "name": ": Hunger, thirst, and sleep", "messages": [ - "As time passes, you will begin to feel hunger and thirst, and your stomach will remind you of that. When this happens, a status info at the sidebar will appear. Don't get confused - depending on your condition it will display both how full is your stomach and hunger intensity in relation to your nutrition status. Your body nutrition level is something different then your current hunger. For example you may feel full after a big meal, while still being malnourished. And you still will get hungry while being overweight. With regular meals may even never get hungry and yet get malnurished, if your calories intake is too low. In other words you need to track both your immediate hunger/fullness and overall nutrition of your whole body.", - "Food takes some time to digest, and water travels faster through your digestive system. Sudden overeating and overdrinking may make you feel excessively full, so split your meals. If you starved before, it will take some time to recover your body mass, by building up stored calories when eating regulary. Overeating in a long time leads to obesity. Both sides of the spectrum are penalized. When hunger and thirst progress to severe levels, you will also suffer penalties. Thirst will kill you faster then hunger.", - "You can develop various vitamin deficiencies if you eat poorly. These deficiencies come in stages, so for example you won't go from perfectly good health into a full-blown scurvy in an instant. Any developing and on-going deficiencies will be reported in the character sheet. Deficiencies will inflict various penalties, but luckily they are always reversible, and multivitamin pills can help you to correct any deficiencies. You can also ingest too much vitamins, and that too can create problems. Be sure to have a balanced diet, or at least not a completely atrocious one. You can and should examine food items to view their nutritional facts.", - "Eating and drinking poorly will affect your health. Fast foods, quick snacks and sweet drinks are high in calories, but are a poor choice for a sustainable food source, if you don't want your health to get worse. On the other hand vegetables, herbal teas, and many other self-prepared meals are good for your health, and are welcomed additions to your diet.", - "Finding food in a city is usually easy; outside of a city, you may have to hunt or forage. After killing an animal, stand over the animal's corpse and butcher it into small chunks of meat by pressing . You might also be able to forage for edible fruit or vegetables; to do it, find a promising plant and examine it. Likewise, you may have to drink water from a river or another natural source. To collect it, stand in shallow water and press . You'll need a watertight container to store it. Be forewarned that most sources of water aren't trustworthy and may produce diseased water. To make sure it's healthy, purify the water by boiling it or using water purifier before drinking.", - "Every dozen or so hours, you'll find yourself growing sleepy. If you do not sleep by pressing , you'll start suffering stat and movement penalties. You may not always fall asleep right away. Sleeping indoors, especially on a bed, will help. If that's not enough, sleeping pills may be of use. While sleeping, you'll slowly replenish lost hit points. You'll also be vulnerable to attack, so try to find a safe place to sleep, or set traps for unwary intruders." + "As time passes, you will begin to feel hunger and thirst. When this happens, a status warning at the sidebar will appear. As hunger and thirst reach critical levels, you will begin to suffer movement penalties.", + "Thirst is more dangerous than hunger but you can develop various vitamin deficiencies if you eat poorly. These deficiencies come in stages, so for example you won't go from perfectly good health into a full-blown scurvy in an instant. Any developing and on-going deficiencies will be reported in the character sheet. Deficiencies will inflict various penalties, but luckily they are always reversible, and multivitamin pills can help you to correct any deficiencies. You can also ingest too much vitamins, and that too can create problems. Be sure to have a balanced diet, or at least not a completely atrocious one. You can and should examine food items to view their nutritional facts.", + "Finding food in a city is usually easy; outside of a city, you may have to hunt. After killing an animal, stand over the animal's corpse and butcher it into small chunks of meat by pressing . You might also be able to forage for edible fruit or vegetables; to do it, find a promising plant and examine it. Likewise, you may have to drink water from a river or another natural source. To collect it, stand in shallow water and press . You'll need a watertight container to store it. Be forewarned that some sources of water aren't trustworthy and may produce diseased water. To make sure it's healthy, purify the water by boiling it or using water purifier before drinking.", + "Every 14 to 20 hours, you'll find yourself growing sleepy. If you do not sleep by pressing , you'll start suffering stat and movement penalties. You may not always fall asleep right away. Sleeping indoors, especially on a bed, will help. If that's not enough, sleeping pills may be of use. While sleeping, you'll slowly replenish lost hit points. You'll also be vulnerable to attack, so try to find a safe place to sleep, or set traps for unwary intruders." ] }, { @@ -50,179 +47,151 @@ "order": 4, "name": ": Pain and stimulants", "messages": [ - "When you take damage from almost any source, you'll start to feel pain. Pain slows you down and reduces your stats, and finding a way to manage pain is an early imperative. The most common is drugs: aspirin, codeine, tramadol, oxycodone, and more are all great options. Be aware that while under the influence of many painkillers, the physiological side effects may slow you or reduce your stats.", - "Note that most painkillers take a little while to kick in. If you take some oxycodone and don't notice the effects right away, don't start taking more - you may overdose and die!", + "When you take damage from almost any source, you'll start to feel pain. Pain slows you down and reduces your stats, and finding a way to manage pain is an early imperative. The most common is drugs: aspirin, codeine, tramadol, oxycodone, and more are all great options. Be aware that while under the influence of many painkillers, the physiological side effects may slow you or reduce your stats.", + "Note that most painkillers take a little while to kick in. If you take some oxycodone and don't notice the effects right away, don't start taking more - you may overdose and die!", "Pain will also disappear with time, so if drugs aren't available and you're in a lot of pain, it may be wise to find a safe spot and simply rest for an extended period of time.", - "Another common class of drugs is stimulants. Stimulants provide you with a temporary rush of energy, increasing your movement speed and many stats (most notably intelligence), making them useful study aids. There are two drawbacks to stimulants: they make it more difficult to sleep and, more importantly, most are highly addictive. Stimulants range from the caffeine rush of cola to the more intense high of Adderall and methamphetamine.", - "Depressants are opposite to stimulants. They will make you groggy and sluggish, but may help you in falling asleep.", - "Extreme levels of stimulants or depressants in your system are dangerous to your health." + "Another common class of drugs is stimulants. Stimulants provide you with a temporary rush of energy, increasing your movement speed and many stats (most notably intelligence), making them useful study aids. There are two drawbacks to stimulants: they make it more difficult to sleep and, more importantly, most are highly addictive. Stimulants range from the caffeine rush of cola to the more intense high of Adderall and methamphetamine." ] }, { "type": "help", "order": 5, - "name": ": Healing and medication", + "name": ": Addiction", "messages": [ - "When you take damage it will change status of affected body part shown in the sidebar. Its overall wellness is represented by bars, that will deplete the more damage you take. If the accumulated damage is more then the bodypart can suffer, it will break. If that happens to critical body part you will die. For other body parts it means broken bones, significant penalties and a long process of healing, after placing affected limb in a splint.", - "Normal damage heals with time. You heal more overnight during good sleep, but wounds also heal a bit by day.", - "You need to treat your wounds properly, because untreated wounds heal very slowly. First, you need to bandage your wounds, and if possible disinfect them as well. This will set conditions for a proper healing and results in faster recovery. You can make makeshift bandages if you have the skill, and there are a few options to replenish your disinfectant stocks. But remember to always treat your wounds by default, as this is the proper way to get them healed.", - "You can get bitten if a zombie grabs you. Bite wounds can be deep and infected. If that happens the status bar of affected body part will change color to blue. This means you need to disinfect it as soon as possible to clean the wound and prevent serious infection. If there is no chance of getting disinfectant on the horizon you may try more drastic method of cauterizing the wound, but it often worsens its state instead of helping. If you leave it be, the affected body part will develop serious infection, and it's status bar color will change to green. At this stage it is too late to disinfect the wound, and you need antibiotics to fight it. Your body will fight the infection by itself, and regular antibiotics intake may keep you alive long enough for it to happen. You have to wait it out in hope that you will not die in the process.", - "If you are bleeding the status bar of the wounded part turns red. Affected limb takes damage as long as it bleeding. Simpliest way to stop bleeding is using a bandage, and there are more medical items dedicated to stopping hemorrage.", - "You may be affected by one of many medical conditions and maladies throughout the game. In that case, you may want to seek proper medication, if one exists for the affliction you suffer. There are many medications beside painkillers, some of which have some extra effects that you might utilize even in a way not originaly intended. With some skill you can also try natural medicine, as many herbs have more or less beneficial effects, and if you are a seasoned chemist you can synthetize your own drugs." + "Many drugs have a potential for addiction. Each time you consume such a drug there is a chance that you will grow dependent on it. Consuming more of that drug will increase your dependence. Effects vary greatly between drugs, but all addictions have only one cure; going cold turkey. The process may last for days and will leave you very weak, so try to do it in a safe area.", + "If you are suffering from drug withdrawal, taking more of the drug will cause the effects to cease immediately, but may deepen your dependence." ] }, { "type": "help", "order": 6, - "name": ": Addiction", + "name": ": Morale and learning", "messages": [ - "Many drugs (and some consumables) have a potential for addiction. Each time you consume such there is a chance that you will grow dependent on it. Consuming more of that drug will increase your dependence. Effects vary greatly between addictive substances, but all addictions have only one cure; going cold turkey. The process may last for days and will leave you very weak, so try to do it in a safe area.", - "If you are suffering from withdrawal effects, taking more of the addictive substance will cause the effects to cease immediately, but may deepen your dependence." + "Your character has a morale level, which affects you in many ways. The depressing post-apocalypse world is tough to deal with, and your mood will naturally decrease very slowly.", + "There are lots of options for increasing morale; reading an entertaining book, eating delicious food, and taking recreational drugs are but a few options. Most morale-boosting activities can only take you to a certain level before they grow boring.", + "There are also lots of ways for your morale to decrease, beyond its natural decay. Eating disgusting food, reading a boring technical book, killing a friendly NPC, or going through drug withdrawal are some prominent examples.", + "Low morale will make you sluggish and unmotivated. If your morale drops very low, you won't be able to perform crafting at all. If you become sufficiently depressed, you will suffer stat penalties. Very high morale fills you with gusto and energy, and you will find yourself moving faster. At extremely high levels, you will receive stat bonuses.", + "Morale is also responsible for ensuring you can learn effectively, via a mechanic referred to as 'focus'. Your focus level is a measure of how effectively you can learn. The natural level is 100, which indicates normal learning potential. Higher or lower focus levels make it easier or harder to learn from practical experience.", + "Your focus level has a natural set point that it converges towards. When your focus is much lower - or higher - than this set point, it will change faster than when it is near the set point. Having high morale will raise the set point, and having low morale will lower the set point. Pain is also factored into the set point calculation - it's harder to learn when you're in pain.", + "Your focus is also lowered by certain activities. Training your skills through real-world practice lowers your focus gradually, by an amount that depends on your current level of focus (higher focus means larger decreases, as well as improved learning). Training your skills by reading books decreases your focus rapidly, by giving a significant penalty to the set point of your focus." ] }, { "type": "help", "order": 7, - "name": ": Morale and learning", + "name": ": Radioactivity and mutation", "messages": [ - "Your character has a morale level, which affects you in many ways. The depressing post-apocalypse world is tough to deal with, and your mood will naturally decrease very slowly.", - "There are lots of options for increasing morale; reading an entertaining book, eating delicious food, and taking recreational drugs are but a few options. Most morale-boosting activities can only take you to a certain level before they grow boring.", - "There are also lots of ways for your morale to decrease, beyond its natural decay. Eating disgusting food, reading a boring technical book, killing a friendly NPC, or going through drug withdrawal are some prominent examples.", - "Low morale will make you sluggish and unmotivated. If your morale drops very low, you won't be able to perform crafting at all. If you become sufficiently depressed, you will suffer stat penalties. Very high morale fills you with gusto and energy, and you will find yourself moving faster. At extremely high levels, you will receive stat bonuses.", - "Morale is also responsible for ensuring you can learn effectively, via a mechanic referred to as 'focus'. Your focus level is a measure of how effectively you can learn. The natural level is 100, which indicates normal learning potential. Higher or lower focus levels make it easier or harder to learn from practical experience.", - "Your focus level has a natural set point that it converges towards. When your focus is much lower - or higher - than this set point, it will change faster than when it is near the set point. Having high morale will raise the set point, and having low morale will lower the set point. Pain is also factored into the set point calculation - it's harder to learn when you're in pain.", - "Your focus is also lowered by certain activities. Training your skills through real-world practice lowers your focus gradually, by an amount that depends on your current level of focus (higher focus means larger decreases, as well as improved learning). Training your skills by reading books decreases your focus rapidly, by giving a significant penalty to the set point of your focus.", - "You can disable a skill in the Player Info Menu (press ) if you don't want to practice it, and it will prevent focus drain while performing relevant action, but you will not progress in that skill while it's disabled." + "Though it is relatively rare, certain areas of the world may be contaminated with radiation. It will gradually accumulate in your body, weakening you more and more. While in radiation-free areas, your radiation level will slowly decrease. Taking Prussian blue tablets will help speed the process.", + "If you become very irradiated, you may develop mutations. Most of the time, these mutations will be negative; however, many are beneficial, and others have both positive and negative effects. Your mutations may change your play style considerably. It is possible to find substances that will remove mutations, though these are extremely rare.", + "There are various mutagenic substances, and consuming (or injecting) them will grant mutations. However, the process taxes your body significantly, and can be addictive. With enough mutations and certain conditions being met, you will permanently transcend your humanity into a wholly different life-form." ] }, { "type": "help", "order": 8, - "name": ": Radioactivity and mutation", + "name": ": Bionics", "messages": [ - "Though it is relatively rare, certain areas of the world may be contaminated with radiation. It will gradually accumulate in your body, weakening you more and more. While in radiation-free areas, your radiation level will slowly decrease. Taking Prussian blue tablets will help speed the process. Get yourself a measuring device, as radiation is invisible and you may not know it that you are under its influence until it results in radiation sickness.", - "If you become very irradiated, you may develop mutations. Most of the time, these mutations will be negative; however, many are beneficial, and others have both positive and negative effects. Your mutations may change your play style considerably. It is possible to find substances that will remove mutations, though these are extremely rare.", - "There are various mutagenic substances, and consuming (or injecting) them will grant mutations. However, the process taxes your body significantly, and can be addictive. With enough mutations and certain conditions being met, you will permanently transcend your humanity into a wholly different life-form." + "Bionics are biomechanical upgrades to your body. While many are simply 'built-in' versions of items you would otherwise have to carry, some bionics have unique effects that are otherwise unobtainable. Some bionics are constantly working, whereas others need to be toggled on and off as needed.", + "Most bionics require a source of power, and you will need an internal battery to store energy for them. Your current amount of energy is displayed in the sidebar right below your health. Replenishing energy can be done in a variety of ways, but all require the installation of a special bionic just for fuel consumption.", + "Installation of a bionic is only possible with trained professional or to specialized medical apparatus. Using machinery to manipulate bionics requires high levels of Intelligence, first aid, mechanics, and electronics. Beware, though, a failure may cripple you! Many bionic modules are difficult to find, but may be purchased from certain wandering vagabonds for a very high price.", + "Any bionic can be removed from your body but it's not any easier than its installation; and as well as installation, this non-trivial surgical procedure requires anesthesia.", + "For lone survivors, the standard choice for installing or uninstalling bionics is an Autodoc. Usually you can find one in a hospital or clinic. All Autodoc procedures require an anesthetic kit. However, you can bypass this restriction if you find a way to completely negate pain. Don't even try without proper anesthesia - normal drugs won't help.", + "Take note that bionic installation or uninstallation require narcosis, fixation of the patient and operation inself may take hours. So you have to make sure that you will safe during this process." ] }, { "type": "help", "order": 9, - "name": ": Bionics", + "name": ": Crafting", "messages": [ - "Bionics are biomechanical upgrades to your body. While many are simply 'built-in' versions of items you would otherwise have to carry, some bionics have unique effects that are otherwise unobtainable. Some bionics are constantly working, whereas others need to be toggled on and off as needed.", - "Most bionics require a source of power, and you will need an internal battery to store energy for them. Your current amount of energy is displayed in the sidebar right below your health. Replenishing energy can be done in a variety of ways, but all require the installation of a special bionic just for that purpose.", - "Installation of a bionic is only possible with trained professional or to specialized medical apparatus. Using machinery to manipulate bionics requires high levels of Intelligence, first aid, mechanics, and electronics. Beware, though, a failure may cripple you! Many bionic modules are difficult to find, but may be purchased from certain wandering vagabonds for a very high price, or aquired by skillful dissection of corpses of deceased bionic users. Bionic modules obtained this way may require extra preparations to become usable.", - "Any bionic can be removed from your body but it may be even harder than its installation; and as well as installation, this non-trivial surgical procedure requires anesthesia.", - "For lone survivors, the standard choice for installing or uninstalling bionics is an Autodoc. Usually you can find one in a hospital or clinic. All Autodoc procedures require an anesthetic kit. However, you can bypass this restriction if you find a way to completely negate pain. Don't even try without proper anesthesia - normal drugs won't help.", - "Take note that bionic installation or uninstallation require narcosis, fixation of the patient and operation inself may take hours. So you have to make sure that you will safe during this process." + "Many important items can be very hard to find or will cost a great deal of 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.", + "Some recipes require a set of tools. These are not used up when crafting, so you can keep your tool set. All recipes require one or more ingredients. These ARE used up in crafting.", + "To craft items, press . There are seven categories: Weapons, Ammo, Food, Chemicals, Electronics, Armor, and Other. In each major category there are several smaller sub-categories. While a few items require no particular skill to create, the majority require you to have some knowledge. Sometimes a skilled survivor will work out a given recipe from her or his knowledge of the skill, but more often you will need reference material, commonly a book of some sort. Reading such references gives a chance to memorize recipes outright, and you can also craft while referring to the book: just have it handy when crafting. Different knowledge is useful for different applications:", + "-> Fabrication is the generic artisan skill, used for a wide variety of gear.\n-> Cooking, at low levels, is used for making tasty recipes; at higher levels, you have an understanding of chemistry and can make chemical weapons and beneficial elixirs.\n-> Tailoring is used to create basic clothing, and armor later on.\n-> Electronics lets you make a wide variety of tools with intricate uses.", + "In addition to the primary crafting skills, other skills may be necessary to create certain items. Traps, Marksmanship, and First Aid are all required for certain items.", + "Crafting an item with high difficulty may fail and possibly waste some materials. You should prepare spare material, just in case.", + "Crafting very large/heavy items or batches of items is best done at a workbench of some kind. You could use any ordinary table, or build your own out of metal to handle even heavier loads." ] }, { "type": "help", "order": 10, - "name": ": Crafting", + "name": ": Traps", "messages": [ - "Many important items can be very hard to find or will cost a great deal of 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.", - "Some recipes require a set of tools. These are not used up when crafting, so you can keep your tool set. All recipes require one or more ingredients. These ARE used up in crafting.", - "To craft items, press . There are eight categories: Weapons, Ammo, Food, Chemicals, Electronics, Armor, Animals and Other. In each major category there are several smaller sub-categories. While a few items require no particular skill to create, the majority require you to have some knowledge. Sometimes a skilled survivor will work out a given recipe from her or his knowledge of the skill, but more often you will need reference material, commonly a book of some sort. Reading such references gives a chance to memorize recipes outright, and you can also craft while referring to the book: just have it handy when crafting. Different knowledge is useful for different applications:", - "-> Fabrication is the generic artisan skill, used for a wide variety of gear.", - "-> Cooking, at low levels, is used for making tasty recipes; at higher levels, you have an understanding of chemistry and can make chemical weapons and beneficial elixirs.", - "-> Tailoring is used to create basic clothing, and armor later on.", - "-> Electronics lets you make a wide variety of tools with intricate uses.", - "In addition to the primary crafting skills, other skills may be necessary to create certain items. Traps, Marksmanship, and First Aid are all required for certain items.", - "Crafting an item with high difficulty may fail and possibly waste some materials. You should prepare spare material, just in case.", - "Crafting very large/heavy items or batches of items is best done at a workbench of some kind. You could use any ordinary table, or build your own out of metal to handle even heavier loads. Using a workbench or other furniture for crafting is benefitial for the added comfort, thus making the process faster.", - "If for any reason the crafting process is interupted the progress is wrapped in a special item representing craft in making. You may use it to resume crafting at any point.", - "Batch crafting in most cases means time saving, and your companions can also help if they know the ropes." + "Before sleeping in a dangerous territory, it may be wise to set traps to ward off unwanted intrusions. There are a few traps to be found in the world, most notably bubble wrap (which will make a loud noise if stepped on, helping to wake you up) and bear traps (which make noise AND damage, and trap anything that steps on them). Others need to be crafted; this requires the Traps skill and possibly Mechanics.", + "To set a trap, simply use the item (press ) and choose a direction; the trap will be placed on an adjacent tile. Some traps may require additional tools, like a shovel, to be set. Once set, a trap will remain in place until stepped on or disarmed.", + "To disarm a trap, examine (press ) the space it is on. Your success depends upon your Traps skill and Dexterity. If you succeed, the trap is removed and replaced by some or all of its constituent parts; however, if you fail, there is a chance that you will set off the trap, suffering the consequences.", + "Many traps are fully or partially hidden. Your ability to detect traps is entirely dependent upon your Perception. Should you stumble into a trap, you may have a chance to avoid it, depending on your Dodge skill." ] }, { "type": "help", "order": 11, - "name": ": Traps", + "name": ": Items overview", "messages": [ - "Before sleeping in a dangerous territory, it may be wise to set traps to ward off unwanted intrusions. There are a few traps to be found in the world, most notably bubble wrap (which will make a loud noise if stepped on, helping to wake you up) and bear traps (which make noise AND damage, and trap anything that steps on them). Others need to be crafted; this requires the Traps skill and possibly Mechanics.", - "To set a trap, simply use the item (press ) and choose a direction; the trap will be placed on an adjacent tile. Some traps may require additional tools, like a shovel, to be set. Once set, a trap will remain in place until stepped on or disarmed.", - "To disarm a trap, examine (press ) the space it is on. Your success depends upon your Traps skill and Dexterity. If you succeed, the trap is removed and replaced by some or all of its constituent parts; however, if you fail, there is a chance that you will set off the trap, suffering the consequences.", - "Many traps are fully or partially hidden. Your ability to detect traps is entirely dependent upon your Perception. Should you stumble into a trap, you may have a chance to avoid it, depending on your Dodge skill.", - "Some traps can be build via the construction menu. Pit traps are the most common example of such traps." + "There is a wide variety of items available for your use. You may find them lying on the ground; if so, simply press to pick up items on the same square. Some items are found inside a container, drawn as a { with a blue background. Pressing , then a direction key, will allow you to examine these containers and loot their contents.", + "Pressing opens a comparison menu, where you can see two items side-by-side with their attributes highlighted to indicate which is superior. You can also access the item comparison menu by pressing C after to view nearby items menu is open and an item is selected.", + "All items may be used as a melee weapon, though some are better than others. You can check the melee attributes of an item you're carrying by hitting to enter your inventory, then pressing the letter of the item. There are 3 melee values: bashing, cutting, and to-hit bonus (or penalty). Bashing damage is universally effective, but is capped by low strength. Cutting damage is a guaranteed increase in damage, but it may be reduced by a monster's natural armor.", + "To wield an item as a weapon, press then the proper letter. wielding the item you are currently wielding will unwield it, leaving your hands empty. A wielded weapon will not contribute to your volume carried, so holding a large item in your hands may be a good option for travel. When unwielding your weapon, it will go back in your inventory, or will be dropped on the ground if there is no space.", + "To wear a piece of clothing, press then the proper letter. Armor reduces damage and helps you resist things like smoke. To take off an item, press then the proper letter.", + "Also available in the view nearby items menu (press to open) is the ability to filter or prioritize items. You can enter item names, or various advanced filter strings: {:}", + "Currently Available tokens:\n\t c = category (books, food, etc) | {c:books}\n\t m = material (cotton, kevlar, etc) | {m:iron}\n\t dgt = damage greater than (0-5) | {dgt:2}\n\t dlt = damage less than (0-5) | {dlt:1}" ] }, { "type": "help", "order": 12, - "name": ": Items overview", + "name": ": Combat", "messages": [ - "There is a wide variety of items available for your use. You may find them lying on the ground; if so, simply press to pick up items on the same square. Some items are found inside a container, drawn as a { with a blue background. Pressing , then a direction key, will allow you to examine these containers and loot their contents.", - "Pressing opens a comparison menu, where you can see two items side-by-side with their attributes highlighted to indicate which is superior. You can also access the item comparison menu by pressing C after to view nearby items menu is open and an item is selected.", - "All items may be used as a melee weapon, though some are better than others. You can check the melee attributes of an item you're carrying by hitting to enter your inventory, then pressing the letter of the item. There are 3 melee values: bashing, cutting, and to-hit bonus (or penalty). Bashing damage is universally effective, but is capped by low strength. Cutting damage is a guaranteed increase in damage, but it may be reduced by a monster's natural armor.", - "To wield an item as a weapon, press then the proper letter. Wielding the item you are currently wielding will unwield it, leaving your hands empty. A wielded weapon will not contribute to your volume carried, so holding a large item in your hands may be a good option for travel. When unwielding your weapon, it will go back in your inventory, or may be dropped on the ground if there is no space.", - "To wear a piece of clothing, press then the proper letter. Armor reduces damage and helps you resist things like smoke. To take off an item, press then the proper letter. Clothing and armor are worn on layers, and provide different coverage, protection and warmth. Each piece has its own encumbrance, and wearing too much on each layer can significantly hamper your movement and other abilities, especially during combat. You can view and sort worn items by pressing .", - "Your clothing can sit in one of five layers on your body: next-to-skin, standard, waist, over, and belted. You can wear one item from each layer on a body part without incurring an encumbrance penalty for too many worn items. Any items beyond the first on each layer add the encumbrance of the additional article(s) of clothing to the body part's encumbrance. The layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per article of clothing.", - "For example, on her torso, a character might wear a leather corset (next-to-skin), a leather touring suit (standard), a trenchcoat (over), and a survivor's runner pack (belted). Her encumbrance penalty is 0. If she put on a tank top it would conflict with the leather touring suit and add the minimum encumbrance penalty of 2.", - "In the view nearby items menu (press to open) you can filter or prioritize items. You can enter item names, or various advanced filter strings: {:}", - "Some available tokens:\n\t c = category (books, food, etc) | {c:books}\n\t m = material (cotton, kevlar, etc) | {m:iron}\n\t dgt = damage greater than (0-5) | {dgt:2}\n\t dlt = damage less than (0-5) | {dlt:1}" + "Zombies in cities will spawn at the start of the game. All monsters are represented by letters on your screen; a list of monster names, and their positions relative to you, is displayed on the right side of the screen.", + "To attack a monster with a melee weapon, simply move into them. The time it takes to attack depends on the size and weight of your weapon. Small, light weapons are the fastest; unarmed attacks increase in speed with your Unarmed Combat skill, and will eventually be VERY fast. A successful hit with a bashing weapon may stun the monster temporarily. A miss may make you stumble and lose movement points. If a monster hits you, your clothing may absorb some damage, but you will absorb the excess.", + "Swarms of monsters may call for firearms. Most firearms in the game require compatible magazines to hold the ammunition. Compatible magazines are listed in a given firearm's description. Fortunately, a firearm often spawns with one such magazine in it.", + "You can eject a magazine from a firearm by pressing and load it with compatible ammunition separately, or if you have a firearm with a partially filled magazine in it, and some matching loose ammo in the inventory, you can simply order a reload by pressing , so you will automatically eject the magazine, fill it with as much ammo as possible, and then put the magazine back in. You don't have to worry about chambering a round though. Of course all this takes some time, so try not to do it if there are monsters nearby.", + "While magazines are often firearm-specific, on some occasions a magazine is compatible with several other firearms. The firearms in the game often reflect real-world prototypes in terms of caliber and compatibility. Below are some examples of interchangeable ammo:\n.308 = 7.62x51mm,\n.223 = 5.56 NATO,\n.270 = .30-06,\n.40 S&W = 10mm.", + "Magazine descriptions also list the compatible ammo.", + "Note that while several ammo types exist for a given caliber and magazine type, you can't mix and match these types into a single magazine. You can't for example load 9x19mm JHP and 9x19mm FMJ ammo into the same magazine, since a magazine always requires identical rounds to be loaded in it.", + "Magazines can be stored inside several worn accessories for quicker access, such as chest rigs and ammo pouches. All these compatible storage items are listed in a given magazine's description. At the moment, you can only store one magazine per clothing item. To store a magazine into a clothing item, 'a'ctivate the appropriate clothing item, at which point you'll get to choose which magazine to store.", + "To fire, press , move the cursor to the relevant space, then press '.' to increase aim of your gun and 'f' to fire. Additionally you may want to fire at predefined aim levels using 'a', 'c' or 'p'. Some guns have alternate firing modes, such as burst fire; to cycle modes, press . Firing continuously, especially in bursts, will severely reduce accuracy.", + "Fleeing will often be a solid tactic, especially when overwhelmed by a swarm of zombies. Try to avoid getting cornered inside a building. Ducking down into the subways or sewers is often an excellent escape tactic." ] }, { "type": "help", "order": 13, - "name": ": Combat", + "name": ": Martial arts styles", "messages": [ - "Zombies in cities will spawn at the start of the game but may also wander around. All monsters are represented by letters on your screen; a list of monster names, and their positions relative to you, is displayed on the right side of the screen. The so called compass will display monsters that you see but are outside the screen.", - "To attack a monster with a melee weapon, simply move into them. The time it takes to attack depends on the size and weight of your weapon. Small, light weapons are the fastest; unarmed attacks increase in speed with your Unarmed Combat skill, and will eventually be VERY fast. A successful hit with a bashing weapon may stun the monster temporarily. A miss may make you stumble and lose movement points. If a monster hits you, your clothing may absorb some damage, but you will absorb the excess.", - "Swarms of monsters may call for firearms. Most firearms in the game require compatible magazines to hold the ammunition. Compatible magazines are listed in a given firearm's description. Fortunately, a firearm often spawns with one such magazine in it.", - "You can eject a magazine from a firearm by pressing and load it with compatible ammunition separately, or if you have a firearm with a partially filled magazine in it, and some matching loose ammo in the inventory, you can simply order a reload by pressing , so you will automatically eject the magazine, fill it with as much ammo as possible, and then put the magazine back in. You don't have to worry about chambering a round though. Of course all this takes some time, so try not to do it if there are monsters nearby.", - "While magazines are often firearm-specific, on some occasions a magazine is compatible with several other firearms. The firearms in the game often reflect real-world prototypes in terms of caliber and compatibility. Below are some examples of interchangeable ammo:\n.308 = 7.62x51mm,\n.223 = 5.56 NATO,\n.270 = .30-06,\n.40 S&W = 10mm.", - "Magazine descriptions also list the compatible ammo.", - "Note that while several ammo types exist for a given caliber and magazine type, you can't mix and match these types into a single magazine. You can't for example load 9x19mm JHP and 9x19mm FMJ ammo into the same magazine, since a magazine always requires identical rounds to be loaded in it.", - "Magazines can be stored inside several worn accessories for quicker access, such as chest rigs and ammo pouches. All these compatible storage items are listed in a given magazine's description. To store a magazine into a clothing item, activate () appropriate clothing item, at which point you'll get to choose which magazine to store.", - "To fire, press , move the cursor to the relevant space, then press '.' to increase aim of your gun and 'f' to fire. Additionally you may want to fire at predefined aim levels using 'a', 'c' or 'p'. Some guns have alternate firing modes, such as burst fire; to cycle modes, press . Firing continuously, especially in bursts, will severely reduce accuracy.", - "Key is not reserved only for guns. It also works for other distance weapons like spears or launchers, but the aiming options may vary.", - "Fleeing will often be a solid tactic, especially when overwhelmed by a swarm of zombies. Try to avoid getting cornered inside a building. Ducking down into the subways or sewers is often an excellent escape tactic." + "A variety of fighting styles are available, particularly for the unarmed fighter. You can start with your choice of a single, commonly-taught style by starting with the Martial Arts Training trait. Many, many more can be found in their own traits, learned from manuals or by taking lessons from wandering masters.", + "To select a fighting style, press . Some styles are relevant only when you are unarmed, others are compatible with or require certain weapons. If your current weapon is compatible with the chosen style, you will start using the selected style immediately. Otherwise, it will be locked in as your default style. To start using it, wield a relevant weapon or empty your hands, by pressing , then the key for the item you are currently wielding. If you wish to prevent yourself from accidentally wielding weapons taken from the ground, enable \"Keep hands free\" found in the styles menu.", + "Most styles have a variety of special moves associated with them. Most have a skill requirement, and will be unavailable until you reach a level of unarmed skill. You can check the moves by pressing '?' in the pick style menu.", + "Many styles also have special effects unlocked under certain conditions. These are varied and unique to each style, and range from special combo moves to bonuses depending on the situation you are in. You can check these by examining your style." ] }, { "type": "help", "order": 14, - "name": ": Martial arts styles", + "name": ": Survival tips", "messages": [ - "A variety of fighting styles are available, particularly for the unarmed fighter. You can start with your choice of a single, commonly-taught style by starting with the Martial Arts Training trait. Many, many more can be found in their own traits, trained from manuals or by taking lessons from wandering masters.", - "To select a fighting style, press . Some styles are relevant only when you are unarmed, others are compatible with or require certain weapons. If your current weapon is compatible with the chosen style, you will start using the selected style immediately. Otherwise, it will be locked in as your default style. To start using it, wield a relevant weapon or empty your hands, by pressing , then the key for the item you are currently wielding. If you wish to prevent yourself from accidentally wielding weapons taken from the ground, enable \"Keep hands free\" found in the styles menu.", - "Remember to read the style's description, by pressing 'F1' in the pick style menu. You will be provided with a list of passive and active abilities associated with the style. These are varied and unique to each style, and range from special combo moves to bonuses depending on the situation you are in.", - "Most styles have a variety of special moves associated with them. Most have a skill requirement, and will be unavailable until you reach a level of unarmed skill. Those special moves or combos are executed automatically during attacks you make.", - "Many styles also have special passive effects unlocked under certain conditions. You can also check these by examining your style." + "The first thing to do is checking your starting location for useful items. Your initial storage is limited, and a backpack, trenchcoat, or other storage medium will let you carry a lot more. Finding a weapon is important; frying pans, butcher knives, and more are common in houses; hardware stores may carry others. Unless you plan on concentrating on melee combat, seek out gun stores as soon as possible and load up on more than one type.", + "It's also important to carry a few medications; painkillers are a must-have, and drugs such as cigarettes will make your life easier (but beware of addiction). Leave the city as soon as you have a good stockpile of equipment. The high concentration of zombies makes them a deathtrap -- but a necessary resource of food and ammunition.", + "Combat is much easier if you can fight just one monster at once. Use doorways as a choke point or stand behind a window and strike as the zombies slowly climb through. Never be afraid to just run if you can outpace your enemies. Irregular terrain, like forests, may help you lose monsters.", + "Using firearms is the easiest way to kill an enemy, but the sound will attract unwanted attention. Save the guns for emergencies, and melee when you can.", + "If you need to protect yourself from acid, clothing made of cloth < leather < kevlar < plastic. So while leather and kevlar will protect you from active enemies, a hazmat suit and rubber boots will make you nigh-immune to acid damage. Items made of glass, ceramics, diamond or precious metals will be totally immune to acid.", + "Try to keep your inventory as full as possible without being overloaded. You never know when you might need an item, most are good to sell, and you can easily drop unwanted items on the floor.", + "Keep an eye on the weather. Wind and humidity will exacerbate dire conditions, so seek shelter if you're unable to withstand them. Staying dry is important, especially if conditions are so low that they would cause frostbite. If you're having trouble staying warm over night, make a pile of clothing on the floor to sleep on.", + "Your clothing can sit in one of five layers on your body: next-to-skin, standard, waist, over, and belted. You can wear one item from each layer on a body part without incurring an encumbrance penalty for too many worn items. Any items beyond the first on each layer add the encumbrance of the additional article(s) of clothing to the body part's encumbrance. The layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per article of clothing.", + "For example, on her torso, a character might wear a leather corset (next-to-skin), a leather touring suit (standard), a trenchcoat (over), and a survivor's runner pack (belted). Her encumbrance penalty is 0. If she put on a tank top it would conflict with the leather touring suit and add the minimum encumbrance penalty of 2." ] }, { "type": "help", "order": 15, - "name": ": Survival tips", - "messages": [ - "Survival hierarchy of needs in most cases is as follows: shelter, fire, water, food. The rest is the process of trying to answer a question what would you do in a survival situation?", - "The first thing to do, when you are out of immediate danger, is checking your starting location for useful items. Your initial storage is limited, and a backpack, trenchcoat, or other storage medium will let you carry a lot more. Finding a weapon is important, but not a first priority; frying pans, butcher knives, and more are common in houses; hardware stores may carry others. Initially keep the guns as a last resort trump card. Ammo is scarce, while zombies are plenty, and unwanted attention may be more you can handle.", - "It's also important to carry a few medications; painkillers are a must-have, and drugs such as cigarettes will make your life easier (but beware of addiction). Leave the city as soon as you have a good stockpile of equipment. The high concentration of zombies makes them a deathtrap - but a necessary resource of food and ammunition.", - "Avoid combat whenever you can. Run if you have to, but control your stamina, as zombieas are inexhaustible unlike yourself. Combat is always risky, and sometimes one wrong step may be your last. Therefore in most cases you gain nothing from combat, unless you are equipped for it and killing zombies will help you achieve something.", - "Combat is much easier if you can fight just one monster at once. You can sometimes kite singled-out zombies. Use doorways as a choke point or stand behind a window and strike as the zombies slowly climb through. Be wary - in number they will push through anyway. Never be afraid to just run if you can outpace your enemies. Irregular terrain, like forests, may help you lose monsters.", - "Using firearms is the easiest way to kill an enemy, but the sound will attract unwanted attention. Save the guns for emergencies, and melee when you can.", - "If you need to protect yourself from acid, clothing made of cloth < leather < kevlar < plastic. So while leather and kevlar will protect you from active enemies, a hazmat suit and rubber boots will make you nigh-immune to acid damage. Items made of glass, ceramics, diamond or precious metals will be totally immune to acid.", - "When looting try to fill your inventory as much as possible without being overloaded. You never know when you might need an item, most are good to sell, and you can easily drop unwanted items on the floor. But don't go looting empty-handed, you never know what might happen, so have your most crucial survival items with you.", - "Keep an eye on the weather. Wind and humidity will exacerbate dire conditions, so seek shelter if you're unable to withstand them. Staying dry is important, especially if conditions are so low that they would cause frostbite. Use a towel to dry yourself if you are wet from the rain. If you're having trouble staying warm over night, make a pile of clothing on the floor to sleep on. Finding a pillow and a blanket for your bed is always good for the quality of your sleep. If you can't have those, improvise, even a chair in a basement is better then a wet ground in the field. Finding or making a shelter with a place to sleep is very important to your survival.", - "Winter is harsh. Liquids and food may freeze, and you may need to defrost them using cooking appliance. Placing them by the lit fire might also help. Basements are warmer in winter and cooler in summer, so its a good place to place your excess food. Most food decays with time, and that process can be speed up or slowed down by temperature. Frozen food will not rot. It you will be able to bring a freezer or a fridge back to life it will help you in the long run. If those are out of your reach think about constructing root cellar.", - "You may preserve food in many other ways, for example by using a smoking rack, or using it in a meal that has a longer shelf life." - ] - }, - { - "type": "help", - "order": 16, - "name": ": Vehicles and Driving", + "name": ": Vehicles and Driving", "messages": [ "You control vehicles using the numpad, or vikeys. However, you control their controls, rather than the vehicle directly.", "", - "In order to assume control of the vehicle, get to a location with working \"vehicle controls\" and a \"seat\", then press . Once you are in control, accelerates, slows or reverses, & & turn left or right. Diagonals adjust course and speed. You default to cruise control, so the gas/brake adjust the speed which the vehicle will attempt to maintain.", - "10-30 MPH, or 16-48 KPH, is a good speed for beginning drivers, who tend to fumble the controls. As your Driving skill improves, you will fumble less and less. To simply maintain course and speed, hit .", - "It's a good idea to pull the handbrake - \"s\" - when parking, just to be safe. If you want to get out, hit the lights, toggle cruise control, turn the engine on or off, or otherwise use the vehicle controls, press to bring up the \"Vehicle Controls\" menu, which has options for things you'd do from the driver's seat.", + "In order to assume control of the vehicle, get to a location with working \"vehicle controls\" and a \"seat\", then press . Once you are in control, accelerates, slows or reverses, & & turn left or right. Diagonals adjust course and speed. You default to cruise control, so the gas/brake adjust the speed which the vehicle will attempt to maintain.", + "10-30 MPH, or 16-48 KPH, is a good speed for beginning drivers, who tend to fumble the controls. As your Driving skill improves, you will fumble less and less. To simply maintain course and speed, hit .", + "It's a good idea to pull the handbrake - \"s\" - when parking, just to be safe. If you want to get out, hit the lights, toggle cruise control, turn the engine on or off, or otherwise use the vehicle controls, press to bring up the \"Vehicle Controls\" menu, which has options for things you'd do from the driver's seat.", "Examining () a vehicle brings up the vehicle interaction window. The left pane shows a top-down view of your vehicle and each part of it. The middle pane shows a summmary of the vehicle's engines, batteries, storage tanks, weapons, and seating. The right panel is context sensitive, but normally has descriptions of the vehicle parts in the tile highlighted in the vehicle view on the left.", "Across the bottom are a summary of the most important parameters of your vehicle. Safe speed is how fast you can drive without damaging the engine and maximum speed is how fast you can drive at the engine's maximum output. Acceleration is how fast your vehicle can increase speed each turn. Cargo volume is how much cargo you can store and how much stuff you have in your vehicle, mass is how much the vehicle weighs, and the Status and Wheels give a summary of the vehicle condition and wheel condition. There are also fuel indicators on the lower right that give an estimate of how quickly your fuel will run out.", "Air drag, water drag, rolling drag, and static drag are all values that influence your vehicle's safe and maximum speed. The interaction of drag and engine power is complicated, but generally speaking, more powerful engines will make your vehicle go faster but also consume fuel faster.", @@ -233,7 +202,7 @@ "Offroad is a rough estimate of how efficient your vehicle moves when not on pavement. Your vehicle's safe speed, top speed, and acceleration are multiplied by roughly the off-road percent when your vehicle is not on pavement. Off-road percentage decreases as vehicle mass increases and increases with the size and number of wheels. Tank treads will give your vehicle an excellent off-road percentage but your vehicle will be slower due to the treads' very large rolling drag.", "Skilled survivors can use wrenches, hacksaws, and welding tools to add or remove parts for a vehicle. You can even create a vehicle from scratch, by using the Construction () menu to 'Start a New Vehicle' when they have a frame available. Tuning a vehicle for speed, fuel consumption, off-road capacity, protection against threats, and cargo capacity is a complicated process.", "BOATS AND AMPHIBIOUS VEHICLES", - "You can use boat hull parts to create boats or amphibious vehicles that can move between water and land.", + "If you have the Boats mod installed in a world, you can use boat hull parts to create boats or amphibious vehicles that can move between water and land.", "Each boat hull you add to your vehicle increases the height the vehicle's watertight hull. If the height of the watertight hull is less than the vehicle's draft, then water will flow into your vehicle and it will sink and be destroyed if it goes into deep water. If your vehicle's draft is less than the height of the watertight hull, your vehicle will not take on water and will not sink in deep water.", "Draft is determined by length and width of your vehicle, the mass of your vehicle, and the percentage of the vehicle's underbody covered in boat hulls. In general, a vehicle should be able to float if it's mass in tons is less than a quarter of the value of its length and width. A boat that is 5 tiles wide and 9 tiles long has a good chance of floating if all of its underbody is covered in boat boards and it weighs less than 10 tons.", "Increased draft increases water drag, and water drag reduces a vehicle's speed in water. If you want your boat to go fast, make it as light as possible.", @@ -242,22 +211,22 @@ }, { "type": "help", - "order": 17, + "order": 16, "name": "<1>: List of item types and data", "messages": [ - "~ Liquid\n%% Food\n! Medication\nThese are all consumed by using . They provide a certain amount of nutrition, quench your thirst, may be a stimulant or a depressant, and may provide morale. There may also be more subtle effects.", - "/ Large weapon\n; Small weapon or tool\n, Tiny item\nThese are all generic items, useful only to be wielded as a weapon. However, some have special uses; they will show up under the TOOLS section in your inventory. Press to use these.", - ") Container\nThese 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.", - "[ Clothing\nThis 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.", - "( Firearm\nThis weapon may be loaded with ammunition with , unloaded with , and fired with . Some have automatic fire, which may be used with at a penalty to accuracy. The color refers to the type; handguns are gray, shotguns are red, submachine guns are cyan, rifles are brown, assault rifles are blue, and heavy machine guns are light red. Each has a dispersion rating, a bonus to damage, a rate of fire, and a maximum load. Note that most firearms load fully in one action, while shotguns must be loaded one shell at a time.", - "= Ammunition\nAmmunition is worthless without a gun to load it into. Generally, there are several variants for any particular caliber. Ammunition has damage, dispersion, and range ratings, and an armor-piercing quality.", - "* Thrown weapon; simple projectile or grenade\nThese items are suited for throwing, and many are only useful when thrown, such as grenades, Molotov cocktails, or tear gas. Once activated be certain to throw these items by pressing , then the letter of the item to throw.", - "? Book or magazine\nThis can be read for training or entertainment by pressing . Most require a basic level of intelligence; some require some base knowledge in the relevant subject. Some books may contain useful crafting recipes." + "~ Liquid\n%% Food\n! Medication\nThese are all consumed by using . They provide a certain amount of nutrition, quench your thirst, may be a stimulant or a depressant, and may provide morale. There may also be more subtle effects.", + "/ Large weapon\n; Small weapon or tool\n, Tiny item\nThese are all generic items, useful only to be wielded as a weapon. However, some have special uses; they will show up under the TOOLS section in your inventory. Press to use these.", + ") Container\nThese 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.", + "[ Clothing\nThis 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.", + "( Firearm\nThis weapon may be loaded with ammunition with , unloaded with , and fired with . Some have automatic fire, which may be used with at a penalty to accuracy. The color refers to the type; handguns are gray, shotguns are red, submachine guns are cyan, rifles are brown, assault rifles are blue, and heavy machine guns are light red. Each has a dispersion rating, a bonus to damage, a rate of fire, and a maximum load. Note that most firearms load fully in one action, while shotguns must be loaded one shell at a time.", + "= Ammunition\nAmmunition is worthless without a gun to load it into. Generally, there are several variants for any particular caliber. Ammunition has damage, dispersion, and range ratings, and an armor-piercing quality.", + "* Thrown weapon; simple projectile or grenade\nThese items are suited for throwing, and many are only useful when thrown, such as grenades, Molotov cocktails, or tear gas. Once activated be certain to throw these items by pressing , then the letter of the item to throw.", + "? Book or magazine\nThis can be read for training or entertainment by pressing . Most require a basic level of intelligence; some require some base knowledge in the relevant subject. Some books may contain useful crafting recipes." ] }, { "type": "help", - "order": 18, + "order": 17, "name": "<2>: Description of map symbols", "messages": [ "MAP SYMBOLS:", @@ -285,39 +254,39 @@ }, { "type": "help", - "order": 19, + "order": 18, "name": "<3>: Description of gun types", "messages": [ "( Handguns\nHandguns 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.", - "( Crossbows\nThe best feature of crossbows is their silence. The bolts they fire are only rarely destroyed; if you pick up the bolts after firing them, your ammunition supply will last much longer. Crossbows suffer from a short range and a very long reload time (modified by your strength); plus, most only hold a single round. \nFor 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.", - "( Bows\nSilent, deadly, easy to make, and the arrows are reusable. Bows have been used forever. Bows are two handed and require the user to have a certain strength level. If you do not have enough strength to draw the string back, you will fire at a reduced effectiveness. This reduces the reload and fire speeds and decreases the range of the arrows fired. \nMost 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.", - "( Shotguns\nShotguns are some of the most powerful weapons in the game, capable of taking out almost any enemy with a single hit. Birdshot and 00 shot spread, making it very easy to hit nearby monsters. However, they are very ineffective against armor, and some armored monsters might shrug off 00 shot completely. Shotgun slugs are the answer to this problem; they also offer much better range than shot.\nThe biggest drawback to shotguns is their noisiness. They are very loud, and impossible to silence. A shot that kills one zombie might attract three more! Beware of that.", - "( Submachine Guns\nSubmachine 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.", + "( Crossbows\nThe best feature of crossbows is their silence. The bolts they fire are only rarely destroyed; if you pick up the bolts after firing them, your ammunition supply will last much longer. Crossbows suffer from a short range and a very long reload time (modified by your strength); plus, most only hold a single round. \nFor 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.", + "( Bows\nSilent, deadly, easy to make, and the arrows are reusable. Bows have been used forever. Bows are two handed and require the user to have a certain strength level. If you do not have enough strength to draw the string back, you will fire at a reduced effectiveness. This reduces the reload and fire speeds and decreases the range of the arrows fired. \nMost 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.", + "( Shotguns\nShotguns are some of the most powerful weapons in the game, capable of taking out almost any enemy with a single hit. Birdshot and 00 shot spread, making it very easy to hit nearby monsters. However, they are very ineffective against armor, and some armored monsters might shrug off 00 shot completely. Shotgun slugs are the answer to this problem; they also offer much better range than shot.\nThe biggest drawback to shotguns is their noisiness. They are very loud, and impossible to silence. A shot that kills one zombie might attract three more! Beware of that.", + "( Submachine Guns\nSubmachine 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.", "( Sniper and Marksman Rifles\nSniper 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.", - "( Assault Rifles\nAssault rifles are similar to hunting rifles in many ways; they are also suited for long range combat, with similar bonuses and penalties. Unlike hunting rifles, assault rifles are capable of automatic fire. Assault rifles are less accurate than hunting rifles, and this is worsened under automatic fire, so save it for when you're highly skilled. \nAssault rifles are an excellent choice for medium or long range combat, or even close-range bursts again a large number of enemies. They are difficult to use, and are best saved for skilled riflemen.", + "( Assault Rifles\nAssault rifles are similar to hunting rifles in many ways; they are also suited for long range combat, with similar bonuses and penalties. Unlike hunting rifles, assault rifles are capable of automatic fire. Assault rifles are less accurate than hunting rifles, and this is worsened under automatic fire, so save it for when you're highly skilled. \nAssault rifles are an excellent choice for medium or long range combat, or even close-range bursts again a large number of enemies. They are difficult to use, and are best saved for skilled riflemen.", "( Machine Guns\nMachine 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.", - "( Energy Weapons\nEnergy weapons is an umbrella term used to describe a variety of rifles and handguns which fire lasers, plasma, or energy attacks. They are mostly prototypes that started to appear in military use just prior to the start of the apocalypse, and as such are very difficult to find.\nEnergy weapons have no recoil at all; they are nearly silent, have a long range, and are fairly damaging. The biggest drawback to energy weapons is scarcity of ammunition; it is wise to reserve the precious ammo for when you really need it." + "( Energy Weapons\nEnergy weapons is an umbrella term used to describe a variety of rifles and handguns which fire lasers, plasma, or energy attacks. They started to appear in military use just prior to the start of the apocalypse, and as such are very difficult to find.\nEnergy weapons have no recoil at all; they are nearly silent, have a long range, and are fairly damaging. The biggest drawback to energy weapons is scarcity of ammunition; it is wise to reserve the precious ammo for when you really need it." ] }, { "type": "help", - "order": 20, + "order": 19, "name": "<4>: FAQ (contains spoilers!)", "messages": [ - "Q: What is Safe Mode, and why does it prevent me from moving?\nA: Safe Mode is a way to guarantee that you won't die by holding a movement key down. When a monster comes into view, your movement will be ignored until Safe Mode is turned off with the ! key. This ensures that the sudden appearance of a monster won't catch you off guard.", - "Q: It seems like everything I eat makes me sick! What's wrong?\nA: 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.", + "Q: What is Safe Mode, and why does it prevent me from moving?\nA: Safe Mode is a way to guarantee that you won't die by holding a movement key down. When a monster comes into view, your movement will be ignored until Safe Mode is turned off with the ! key. This ensures that the sudden appearance of a monster won't catch you off guard.", + "Q: It seems like everything I eat makes me sick! What's wrong?\nA: 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.", "Q: How can I remove boards from boarded-up windows and doors?\nA: Use a hammer and choose the direction of the boarded-up window or door to remove the boards.", "Q: The game just told me to quit, and other weird stuff is happening.\nA: You have the Schizophrenic trait, which might make the game seem buggy.", - "Q: How can I prevent monsters from attacking while I sleep?\nA: Find a safe place to sleep, for example in a cleared building far from the front door. Set traps if you have them, or build a fire to scare off wild animals.", - "Q: Why do I always sink when I try to swim?\nA: 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.", - "Q: How can I cure a fungal infection?\nA: 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.", - "Q: How do I get into science labs?\nA: You can enter the front door if you have an ID card by examining () the keypad. If you are skilled in computers and have an electrohack, it is possible to hack the keypad. An EMP blast has a chance to force the doors open, but it's more likely to break them. You can also sneak in through the sewers sometimes, or try to smash through the walls with explosions.", + "Q: How can I prevent monsters from attacking while I sleep?\nA: Find a safe place to sleep, for example in a cleared building far from the front door. Set traps if you have them, or build a fire.", + "Q: Why do I always sink when I try to swim?\nA: 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.", + "Q: How can I cure a fungal infection?\nA: 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.", + "Q: How do I get into science labs?\nA: You can enter the front door if you have an ID card by examining () the keypad. If you are skilled in computers and have an electrohack, it is possible to hack the keypad. An EMP blast has a chance to force the doors open, but it's more likely to break them. You can also sneak in through the sewers sometimes, or try to smash through the walls with explosions.", "Q: Why does my crafting fail so often?\nA: Check the difficulty of the recipe, and the primary skill used; your skill level should be around one and a half times the difficulty to be confident that it will succeed.", - "Q: Why can't I carry anything?\nA: At the start of the game you only have the space in your pockets. A good first goal of many survivors is to find a backpack or pouch to store things in.", - "Q: Help! I started a fire and now my house is burning down!\nA: Fires will spread to nearby flammable tiles if they are able. Lighting a fire in a set-up brazier, stove, wood stove, stone fireplace, pit, or even in a kitchen stove will stop it from spreading. Fire extinguishers can put out fires that get out of control. You can put out a fire in the fireplace by examining it.", - "Q: I'm cold and can't sleep at night!\nA: Gather some clothes and put them in the place you use to sleep in. Being hungry, thirsty, wet, or injured can also make you feel the cold more, so try to avoid these effects before you go to sleep. Pillows and some other appliances will help you sleep, and the quality of your sleeping spot is also very important.", - "Q: There are too many calibers and guns. It confuses me - I don't usually understand what is compatible with what.\nA: Try to remember few usual calibers: \n9x19 (or simply 9mm) - fits most basic pistols (Glock, for example) and SMGs, quite easy to find and gets job done versus usual zombies;\n 00 buckshot - for most shotguns. Very powerful against unarmored target at closer ranges;\n .223 (5.56) - for rifles. Good long range option.\n .308 (7.62) - for even more powerful rifles. Also good long range option.\n It should be enough in the beginning. Or even just grab any shotgun, fill it with buckshot and give them hell!", - "Q: I have a question that's not addressed here. How can I get an answer?\nA: Check the wiki, or ask the helpful people on the forum or at the chat channels. Links are provided in MOTD in the main menu." + "Q: Why can't I carry anything?\nA: At the start of the game you only have the space in your pockets. A good first goal of many survivors is to find a backpack or pouch to store things in. (The shelter basement is a good place to check first!)", + "Q: Help! I started a fire and now my house is burning down!\nA: Fires will spread to nearby flammable tiles if they are able. Lighting a fire in a set-up brazier, stove, wood stove, stone fireplace, or pit will stop it from spreading. Fire extinguishers can put out fires that get out of control.", + "Q: I'm cold and can't sleep at night!\nA: Gather some clothes and put them in the place you use to sleep in. Being hungry, thirsty, wet, or injured can also make you feel the cold more, so try to avoid these effects before you go to sleep.", + "Q: There are too many calibers and guns. It confuses me - I don't usually understand what is compatible with what.\nA: Try to remember few usual calibers: \n9x19 (or simply 9mm) - fits most basic pistols (Glock, for example) and SMGs, quite easy to find and gets job done versus usual zombies;\n 00 buckshot - for most shotguns. Very powerful against unarmored target at closer ranges;\n .223 (5.56) - for rifles. Good long range option.\n .308 (7.62) - for even more powerful rifles. Also good long range option.\n It should be enough in the beginning. Or even just grab any shotgun, fill it with buckshot and give them hell!", + "Q: I have a question that's not addressed here. How can I get an answer?\nA: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the IRC channel #CataclysmDDA on freenode." ] } ] diff --git a/data/json/bionics.json b/data/json/bionics.json index 52cbcbbaa5142..aa4c08298d428 100644 --- a/data/json/bionics.json +++ b/data/json/bionics.json @@ -61,7 +61,6 @@ "name": "Protective Lenses", "description": "Your eye sockets have been surgically sealed with highly protective mirrored lenses and your tear ducts have been re-routed to your mouth. When you cry, you must spit out or swallow your tears.", "occupied_bodyparts": [ [ "EYES", 1 ] ], - "env_protec": [ [ "EYES", 7 ] ], "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ] }, { @@ -113,7 +112,6 @@ "name": "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 ] ], "act_cost": 5, "fake_item": "bio_shotgun_gun", "flags": [ "BIONIC_TOGGLED", "BIONIC_WEAPON", "NO_UNWIELD" ] @@ -655,7 +653,7 @@ "flags": [ "BIONIC_TOGGLED" ], "act_cost": 1, "react_cost": 1, - "time": 10000 + "time": 60 }, { "id": "bio_noise", @@ -671,7 +669,6 @@ "name": "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 one.", "occupied_bodyparts": [ [ "HEAD", 2 ], [ "MOUTH", 1 ] ], - "encumbrance": [ [ "MOUTH", 10 ] ], "flags": [ "BIONIC_FAULTY" ] }, { @@ -718,7 +715,6 @@ "name": "Bionic Visual Impairment", "description": "Due to a badly misplaced dielectric stylette, you are now suffering from mild optic neuropathy. Increases eye encumbrance by one.", "occupied_bodyparts": [ [ "EYES", 1 ] ], - "encumbrance": [ [ "EYES", 10 ] ], "flags": [ "BIONIC_FAULTY" ] }, { @@ -782,7 +778,6 @@ "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 ] ], - "env_protec": [ [ "MOUTH", 7 ] ], "flags": [ "BIONIC_NPC_USABLE" ] }, { @@ -944,15 +939,6 @@ "name": "Wire-Induced Stiffness", "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 ] - ], "flags": [ "BIONIC_FAULTY" ] }, { @@ -1003,7 +989,6 @@ "name": "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 two, 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 ] ], "flags": [ "BIONIC_FAULTY" ] }, { diff --git a/data/json/construction.json b/data/json/construction.json index 707fbba385198..d2abea927a3c2 100644 --- a/data/json/construction.json +++ b/data/json/construction.json @@ -354,7 +354,6 @@ "category": "REPAIR", "required_skills": [ [ "fabrication", 0 ] ], "time": "5 m", - "byproducts": [ { "item": "glass_shard", "count": [ 8, 16 ] } ], "pre_terrain": "t_window_frame", "post_terrain": "t_window_empty" }, @@ -2365,7 +2364,7 @@ "byproducts": [ { "item": "straw_pile" } ], "pre_terrain": "t_grass_long", "post_terrain": "t_grass", - "tools": [ [ [ "machete", -1 ], [ "makeshift_machete", -1 ], [ "scythe", -1 ], [ "sickle", -1 ], [ "survivor_machete", -1 ] ] ] + "tools": [ [ [ "scythe", -1 ], [ "sickle", -1 ] ] ] }, { "type": "construction", @@ -2376,7 +2375,7 @@ "byproducts": [ { "item": "straw_pile", "count": [ 1, 2 ] } ], "pre_terrain": "t_grass_tall", "post_terrain": "t_grass", - "tools": [ [ [ "machete", -1 ], [ "makeshift_machete", -1 ], [ "scythe", -1 ], [ "sickle", -1 ], [ "survivor_machete", -1 ] ] ] + "tools": [ [ [ "scythe", -1 ], [ "sickle", -1 ] ] ] }, { "type": "construction", @@ -2868,53 +2867,6 @@ "pre_terrain": "t_adobe_brick_wall_halfway", "post_terrain": "t_adobe_brick_wall" }, - { - "type": "construction", - "description": "Extrude Resin Lattice", - "category": "CONSTRUCT", - "skill": "fabrication", - "difficulty": 1, - "time": "120 m", - "//": "Fairly time consuming as you have to extrude the resin slowly and wait for it to dry, then layer it on itself", - "components": [ [ [ "alien_pod_resin", 1 ] ] ], - "pre_special": "check_empty", - "post_terrain": "t_wall_resin_cage" - }, - { - "type": "construction", - "description": "Extrude Resin Wall", - "category": "CONSTRUCT", - "skill": "fabrication", - "difficulty": 0, - "time": "30 m", - "components": [ [ [ "alien_pod_resin", 2 ] ] ], - "pre_special": "check_empty", - "post_terrain": "t_wall_resin" - }, - { - "type": "construction", - "description": "Extrude Resin Floor and Roof", - "category": "CONSTRUCT", - "skill": "fabrication", - "difficulty": 2, - "time": "90 m", - "qualities": [ { "id": "SMOOTH", "level": 1 } ], - "components": [ [ [ "alien_pod_resin", 2 ] ] ], - "pre_special": "check_empty", - "post_terrain": "t_floor_resin" - }, - { - "type": "construction", - "description": "Extrude Resin Floor (no roof)", - "category": "CONSTRUCT", - "skill": "fabrication", - "difficulty": 1, - "time": "30 m", - "qualities": [ { "id": "SMOOTH", "level": 1 } ], - "components": [ [ [ "alien_pod_resin", 1 ] ] ], - "pre_special": "check_empty", - "post_terrain": "t_platform_resin" - }, { "type": "construction", "skill": "survival", @@ -2963,32 +2915,5 @@ "qualities": [ { "id": "DIG", "level": 2 } ], "pre_flags": [ "DIGGABLE", "FLAT" ], "post_terrain": "t_pit" - }, - { - "type": "construction", - "description": "Build Arc Furnace", - "category": "FURN", - "required_skills": [ [ "fabrication", 3 ] ], - "time": "120 m", - "qualities": [ - [ { "id": "HAMMER", "level": 2 } ], - [ { "id": "SAW_M", "level": 1 } ], - [ { "id": "WELD", "level": 2 } ], - [ { "id": "DRILL", "level": 3 } ], - [ { "id": "WRENCH", "level": 2 } ] - ], - "components": [ - [ [ "fire_brick", 40 ] ], - [ [ "cu_pipe", 4 ] ], - [ [ "cable", 12 ] ], - [ [ "pipe", 4 ] ], - [ [ "hand_vice", 1 ] ], - [ [ "motor_tiny", 1 ] ], - [ [ "medium_storage_battery", 2 ] ], - [ [ "frame", 1 ] ], - [ [ "mortar_build", 10 ] ] - ], - "pre_special": "check_empty", - "post_terrain": "f_arcfurnace_empty" } ] diff --git a/data/json/effects.json b/data/json/effects.json index 7a37f16ce335f..653556db9fa7e 100644 --- a/data/json/effects.json +++ b/data/json/effects.json @@ -1216,37 +1216,19 @@ { "type": "effect_type", "id": "drunk", - "name": [ "Tipsy", "Drunk", "Trashed", "Wasted", "Dead Drunk" ], + "name": [ "Tipsy", "Drunk", "Trashed", "Wasted" ], "desc": [ "You drank some alcohol. You feel warm inside.", "You drank alcohol. Party on!", "You drank lots of alcohol. Are those white mice?", - "You drank unholy amounts of alcohol. It's the end of the world, what do you care?", - "You embalmed yourself alive with so much alcohol, that even zombies will leave your dead body alone." + "You drank unholy amounts of alcohol. It's the end of the world, what do you care?" ], - "max_intensity": 5, + "max_intensity": 4, "apply_message": "You feel lightheaded.", "int_dur_factor": "100 m", "miss_messages": [ [ "You feel woozy.", 1 ] ], - "base_mods": { - "vomit_chance": [ -43 ], - "sleep_chance": [ -1003 ], - "sleep_min": [ 2500 ], - "sleep_max": [ 3500 ], - "pkill_amount": [ 3 ], - "pkill_max_val": [ 3 ], - "pkill_min": [ 1 ], - "pkill_tick": [ 45 ] - }, - "scaling_mods": { - "per_mod": [ -0.5 ], - "dex_mod": [ -0.5 ], - "int_mod": [ -0.75 ], - "vomit_chance": [ 21 ], - "sleep_chance": [ 501 ], - "pkill_max_val": [ 10 ], - "pkill_tick": [ -10 ] - } + "base_mods": { "vomit_chance": [ -43 ], "sleep_chance": [ -1003 ], "sleep_min": [ 2500 ], "sleep_max": [ 3500 ] }, + "scaling_mods": { "per_mod": [ -0.5 ], "dex_mod": [ -0.5 ], "int_mod": [ -0.75 ], "vomit_chance": [ 21 ], "sleep_chance": [ 501 ] } }, { "type": "effect_type", diff --git a/data/json/emit.json b/data/json/emit.json index dd6ddbba25bc4..4a7e091a0e1b7 100644 --- a/data/json/emit.json +++ b/data/json/emit.json @@ -188,34 +188,6 @@ "qty": 2, "chance": 75 }, - { - "id": "emit_fungicidal_stream", - "type": "emit", - "field": "fd_fungicidal_gas", - "intensity": 3, - "qty": 18 - }, - { - "id": "emit_insecticidal_stream", - "type": "emit", - "field": "fd_insecticidal_gas", - "intensity": 3, - "qty": 18 - }, - { - "id": "emit_small_fungicidal_stream", - "type": "emit", - "field": "fd_fungicidal_gas", - "intensity": 2, - "qty": 10 - }, - { - "id": "emit_small_insecticidal_stream", - "type": "emit", - "field": "fd_insecticidal_gas", - "intensity": 2, - "qty": 10 - }, { "id": "emit_fungal_haze_plume", "type": "emit", diff --git a/data/json/field_type.json b/data/json/field_type.json index 707c6c242a9ce..3051ae0189bd3 100644 --- a/data/json/field_type.json +++ b/data/json/field_type.json @@ -169,7 +169,7 @@ "id": "fd_rubble", "type": "field_type", "legacy_enum_id": 11, - "intensity_levels": [ { "name": "legacy rubble", "sym": "#", "color": "dark_gray" } ], + "intensity_levels": [ { "name": "legacy_rubble", "sym": "#", "color": "dark_gray" } ], "half_life": "1 turns", "phase": "solid", "display_items": false, @@ -248,15 +248,7 @@ "intensity_levels": [ { "name": "hazy cloud", "sym": "8", "dangerous": true, "translucency": 10, "extra_radiation_max": 1 }, { "name": "radioactive gas", "color": "light_green", "extra_radiation_max": 2 }, - { - "name": "thick radioactive gas", - "color": "green", - "transparent": false, - "extra_radiation_max": 3, - "radiation_hurt_damage_min": 1, - "radiation_hurt_damage_max": 3, - "radiation_hurt_message": "This radioactive gas burns!" - } + { "name": "thick radioactive gas", "color": "green", "transparent": false, "extra_radiation_max": 3 } ], "decay_amount_factor": 5, "percent_spread": 15, @@ -273,7 +265,7 @@ "id": "fd_gas_vent", "type": "field_type", "legacy_enum_id": 16, - "intensity_levels": [ { "name": "gas vent" }, { "//": "repeat last entry" }, { "//": "repeat last entry" } ], + "intensity_levels": [ { "name": "gas vent" } ], "wandering_field": "fd_toxic_gas", "gas_absorption_factor": 15, "dirty_transparency_cache": true, @@ -286,7 +278,7 @@ "id": "fd_fire_vent", "type": "field_type", "legacy_enum_id": 17, - "intensity_levels": [ { "name": "fire vent", "light_emitted": 20 }, { "//": "repeat last entry" }, { "//": "repeat last entry" } ], + "intensity_levels": [ { "name": "fire vent", "light_emitted": 20 } ], "has_fire": true, "phase": "gas", "display_items": false, @@ -324,24 +316,9 @@ "type": "field_type", "legacy_enum_id": 20, "intensity_levels": [ - { - "name": "odd ripple", - "color": "light_gray", - "sym": "*", - "dangerous": true, - "intensity_upgrade_chance": 10, - "intensity_upgrade_duration": "6 hours" - }, + { "name": "odd ripple", "color": "light_gray", "sym": "*", "dangerous": true }, { "name": "swirling air", "color": "dark_gray" }, - { - "name": "tear in reality", - "color": "magenta", - "transparent": false, - "monster_spawn_chance": 600, - "monster_spawn_count": 1, - "monster_spawn_radius": 1, - "monster_spawn_group": "GROUP_NETHER_FATIGUE_FIELD" - } + { "name": "tear in reality", "color": "magenta", "transparent": false } ], "priority": 8, "display_items": false, @@ -360,7 +337,7 @@ "id": "fd_shock_vent", "type": "field_type", "legacy_enum_id": 22, - "intensity_levels": [ { "name": "shock vent", "sym": "&" }, { "//": "repeat last entry" }, { "//": "repeat last entry" } ], + "intensity_levels": [ { "name": "shock vent", "sym": "&" } ], "has_elec": true, "priority": -1, "phase": "plasma", @@ -371,7 +348,7 @@ "id": "fd_acid_vent", "type": "field_type", "legacy_enum_id": 23, - "intensity_levels": [ { "name": "acid vent", "sym": "&" }, { "//": "repeat last entry" }, { "//": "repeat last entry" } ], + "intensity_levels": [ { "name": "acid vent", "sym": "&" } ], "has_acid": true, "priority": -1, "phase": "liquid", @@ -465,7 +442,7 @@ "type": "field_type", "legacy_enum_id": 30, "intensity_levels": [ - { "name": "hemolymph splatter", "color": "light_gray" }, + { "name": "hemolymphd splatter", "color": "light_gray" }, { "name": "hemolymph stain" }, { "name": "puddle of hemolymph" } ], @@ -817,40 +794,17 @@ "type": "field_type", "legacy_enum_id": 49, "intensity_levels": [ - { "name": "fungicidal mist", "sym": "8", "dangerous": true }, - { "name": "fungicidal haze", "color": "light_gray" }, - { "name": "thick fungicidal haze", "color": "dark_gray", "transparent": false } - ], - "decay_amount_factor": 5, - "gas_absorption_factor": 15, - "percent_spread": 100, - "outdoor_age_speedup": "1 minutes", - "dirty_transparency_cache": true, - "has_fume": true, - "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] }, - "priority": 8, - "half_life": "30 minutes", - "phase": "gas", - "display_items": false, - "display_field": true - }, - { - "id": "fd_insecticidal_gas", - "type": "field_type", - "intensity_levels": [ - { "name": "insecticidal mist", "sym": "8", "dangerous": true }, - { "name": "insecticidal haze", "color": "light_gray" }, - { "name": "thick insecticidal haze", "color": "dark_gray", "transparent": false } + { "name": "hazy cloud", "sym": "8", "dangerous": true }, + { "name": "fungicidal gas", "color": "light_gray" }, + { "name": "thick fungicidal gas", "color": "dark_gray", "transparent": false } ], "decay_amount_factor": 5, - "gas_absorption_factor": 15, - "percent_spread": 100, + "percent_spread": 120, "outdoor_age_speedup": "1 minutes", "dirty_transparency_cache": true, "has_fume": true, - "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] }, "priority": 8, - "half_life": "30 minutes", + "half_life": "90 minutes", "phase": "gas", "display_items": false, "display_field": true @@ -859,7 +813,7 @@ "id": "fd_smoke_vent", "type": "field_type", "legacy_enum_id": 50, - "intensity_levels": [ { "name": "smoke vent", "dangerous": true }, { "//": "repeat last entry" }, { "//": "repeat last entry" } ], + "intensity_levels": [ { "name": "smoke vent", "dangerous": true } ], "wandering_field": "fd_smoke", "gas_absorption_factor": 15, "dirty_transparency_cache": true, diff --git a/data/json/flags.json b/data/json/flags.json index a2e7b76c6c387..ff2261ad3d08c 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -23,14 +23,6 @@ "context": [ "TOOL" ], "info": "This item can be activated or reloaded from adjacent tile without picking it up." }, - { - "id": "AURA", - "type": "json_flag", - "context": [ "ARMOR", "TOOL_ARMOR" ], - "description": "This item goes in the outer aura layer, intended for metaphysical effects.", - "info": "This is in your outer aura.", - "conflicts": [ "OUTER", "SKINTIGHT", "WAIST", "PERSONAL", "BELTED" ] - }, { "id": "BAROMETER", "type": "json_flag", @@ -49,7 +41,7 @@ "context": [ "ARMOR", "TOOL_ARMOR" ], "description": "Layer for backpacks and things worn over outerwear.", "info": "This gear is strapped onto you.", - "conflicts": [ "OUTER", "SKINTIGHT", "WAIST", "PERSONAL", "AURA" ] + "conflicts": [ "OUTER", "SKINTIGHT", "WAIST" ] }, { "id": "BIONIC_NPC_USABLE", @@ -186,8 +178,8 @@ "id": "FILTHY", "type": "json_flag", "context": [ "ARMOR", "TOOL_ARMOR" ], - "description": "Zombie-dropped clothing giving various penalties if Filthy mod is active. Also CBMs harvested from zombies.", - "info": "This item is filthy." + "description": "Zombie-dropped clothing giving various penalties if Filthy mod is active.", + "info": "This piece of clothing is filthy." }, { "id": "FLASH_PROTECTION", @@ -283,7 +275,7 @@ "context": [ "ARMOR", "TOOL_ARMOR" ], "description": "Outer garment layer.", "info": "This gear is generally worn over clothing.", - "conflicts": [ "BELTED", "SKINTIGHT", "WAIST", "PERSONAL", "AURA" ] + "conflicts": [ "BELTED", "SKINTIGHT", "WAIST" ] }, { "id": "OVERSIZE", @@ -305,14 +297,6 @@ "info": "This gear reduces the volume of sounds to a safe level.", "conflicts": [ "DEAF" ] }, - { - "id": "PERSONAL", - "type": "json_flag", - "context": [ "ARMOR", "TOOL_ARMOR" ], - "description": "This item goes in the personal aura layer, intended for metaphysical effects.", - "info": "This is in your personal aura.", - "conflicts": [ "BELTED", "OUTER", "WAIST", "SKINTIGHT", "AURA" ] - }, { "id": "POCKETS", "type": "json_flag", @@ -372,13 +356,6 @@ "context": [ "ARMOR", "TOOL_ARMOR" ], "description": "Prevents the player from wielding a weapon two-handed, forcing one-handed use if the weapon permits it." }, - { - "id": "SEMITANGIBLE", - "type": "json_flag", - "context": [ "ARMOR", "TOOL_ARMOR" ], - "description": "Prevents the item from participating in the encumbrance system when worn.", - "info": "It seems partially intangible, and can occupy the same space as other things when worn." - }, { "id": "SHEATH_KNIFE", "type": "json_flag", @@ -409,7 +386,7 @@ "context": [ "ARMOR", "TOOL_ARMOR" ], "description": "Undergarment layer.", "info": "This clothing lies close to the skin.", - "conflicts": [ "BELTED", "OUTER", "WAIST", "PERSONAL", "AURA" ] + "conflicts": [ "BELTED", "OUTER", "WAIST" ] }, { "id": "SLOWS_MOVEMENT", @@ -471,7 +448,7 @@ "context": [ "ARMOR", "TOOL_ARMOR" ], "description": "Layer for belts and other things worn on the waist.", "info": "This gear is worn on or around your waist.", - "conflicts": [ "BELTED", "OUTER", "SKINTIGHT", "PERSONAL", "AURA" ] + "conflicts": [ "BELTED", "OUTER", "SKINTIGHT" ] }, { "id": "WATCH", diff --git a/data/json/furniture.json b/data/json/furniture.json index 5386fdf8f978c..3e17f39cbd494 100644 --- a/data/json/furniture.json +++ b/data/json/furniture.json @@ -1988,58 +1988,6 @@ ] } }, - { - "type": "furniture", - "id": "f_arcfurnace_empty", - "name": "arc furnace", - "description": "An arc furnace designed to burn a powdery mix of coke and limestone to create calcium carbide.", - "symbol": "U", - "color": "blue", - "move_cost_mod": -1, - "coverage": 40, - "required_str": -1, - "examine_action": "arcfurnace_empty", - "max_volume": 800, - "crafting_pseudo_item": "arcfurnace", - "flags": [ "CONTAINER", "FIRE_CONTAINER", "PLACE_ITEM" ], - "deconstruct": { "items": [ { "item": "metal_tank", "count": [ 1, 4 ] }, { "item": "pipe", "count": [ 2, 4 ] } ] }, - "bash": { - "str_min": 18, - "str_max": 40, - "sound": "metal screeching!", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 2, 4 ] }, - { "item": "steel_chunk", "count": [ 0, 3 ] }, - { "item": "pipe", "count": [ 0, 4 ] } - ] - } - }, - { - "type": "furniture", - "id": "f_arcfurnace_full", - "name": "filled arc furnace", - "description": "An arc furnace designed to burn a powdery mix of coke and limestone to create calcium carbide.", - "symbol": "U", - "color": "blue_red", - "move_cost_mod": -1, - "coverage": 40, - "required_str": -1, - "examine_action": "arcfurnace_full", - "flags": [ "NOITEM", "SEALED", "CONTAINER", "FIRE_CONTAINER", "SUPPRESS_SMOKE", "PLACE_ITEM" ], - "deconstruct": { "items": [ { "item": "metal_tank", "count": [ 1, 4 ] }, { "item": "pipe", "count": [ 2, 4 ] } ] }, - "bash": { - "str_min": 18, - "str_max": 40, - "sound": "metal screeching!", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 2, 4 ] }, - { "item": "steel_chunk", "count": [ 0, 3 ] }, - { "item": "pipe", "count": [ 0, 4 ] } - ] - } - }, { "type": "furniture", "id": "f_robotic_arm", @@ -2803,6 +2751,95 @@ ] } }, + { + "type": "furniture", + "id": "f_tourist_table", + "name": "tourist table", + "description": "Small metal folding table, ideal for off-road trips into the wild.", + "symbol": "#", + "bgcolor": "light_gray", + "move_cost_mod": 2, + "coverage": 40, + "required_str": -1, + "deployed_item": "tourist_table", + "examine_action": "deployed_furniture", + "flags": [ "TRANSPARENT", "MOUNTABLE", "SHORT", "FLAT_SURF" ], + "deconstruct": { "items": [ { "item": "tourist_table", "count": 1 } ] }, + "bash": { + "str_min": 16, + "str_max": 50, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 4, 8 ] }, + { "item": "pipe", "count": [ 1, 3 ] }, + { "item": "sheet_metal_small", "count": [ 4, 8 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_leather_tarp", + "name": "leather tarp", + "description": "A large sheet of sewn leather that can be used instead of a picnic blanket, but it's more valuable as a butchery appliance as it does not soak in blood.", + "symbol": "D", + "bgcolor": "brown", + "move_cost_mod": 0, + "required_str": 3, + "deployed_item": "leather_tarp", + "examine_action": "deployed_furniture", + "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "CAN_SIT" ], + "deconstruct": { "items": [ { "item": "leather_tarp", "count": 1 } ] }, + "bash": { + "str_min": 5, + "str_max": 10, + "sound": "smash!", + "sound_fail": "whump.", + "items": [ { "item": "leather_tarp", "count": [ 1, 1 ] } ] + } + }, + { + "type": "furniture", + "id": "f_plastic_groundsheet", + "name": "plastic groundsheet", + "description": "A large sheet of thick plastic has been tossed on the ground here. It would be a useful place to do some butchery, perhaps.", + "symbol": "D", + "bgcolor": "light_blue", + "move_cost_mod": 0, + "required_str": 3, + "deployed_item": "plastic_sheet", + "examine_action": "deployed_furniture", + "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "CAN_SIT" ], + "deconstruct": { "items": [ { "item": "plastic_sheet", "count": 1 } ] }, + "bash": { + "str_min": 5, + "str_max": 10, + "sound": "whuff!", + "sound_fail": "crinkle.", + "items": [ { "item": "plastic_sheet", "count": 1 } ] + } + }, + { + "type": "furniture", + "id": "f_fiber_mat", + "name": "fiber mat", + "description": "A large mat woven from fibrous material that can be used instead of a picnic blanket, but it's more valuable as a butchery appliance. Too thin to be a comfortable sleeping place.", + "symbol": "Q", + "bgcolor": "yellow", + "move_cost_mod": 0, + "required_str": 3, + "deployed_item": "fiber_mat", + "examine_action": "deployed_furniture", + "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "CAN_SIT" ], + "deconstruct": { "items": [ { "item": "fiber_mat", "count": 1 } ] }, + "bash": { + "str_min": 5, + "str_max": 10, + "sound": "smash!", + "sound_fail": "whump.", + "items": [ { "item": "fiber_mat", "count": [ 1, 1 ] } ] + } + }, { "type": "furniture", "id": "f_pillow_fort", @@ -4852,8 +4889,9 @@ "move_cost_mod": -1, "coverage": 40, "required_str": -1, - "flags": [ "TRANSPARENT", "EASY_DECONSTRUCT" ], - "deconstruct": { "items": [ { "item": "alien_pod_resin", "charges": [ 2, 6 ] } ] }, + "deployed_item": "alien_pod_resin", + "examine_action": "deployed_furniture", + "flags": [ "TRANSPARENT" ], "bash": { "str_min": 25, "str_max": 60, "sound": "splorch!", "sound_fail": "whump." } }, { diff --git a/data/json/furniture_and_terrain/furniture-barriers.json b/data/json/furniture_and_terrain/furniture-barriers.json index 28935f92c3872..ee255fd786f8a 100644 --- a/data/json/furniture_and_terrain/furniture-barriers.json +++ b/data/json/furniture_and_terrain/furniture-barriers.json @@ -43,13 +43,13 @@ "PERMEABLE" ], "examine_action": "chainfence", - "deconstruct": { "items": [ { "item": "earthbag", "count": 16 } ] }, + "deconstruct": { "items": [ { "item": "sandbag", "count": 16 } ] }, "bash": { "str_min": 12, "str_max": 60, "sound": "rrrip!", "sound_fail": "whump.", - "items": [ { "item": "bag_canvas", "count": [ 10, 16 ] }, { "item": "material_soil", "charges": [ 40, 48 ] } ] + "items": [ { "item": "bag_canvas", "count": [ 10, 16 ] }, { "item": "material_sand", "charges": [ 40, 48 ] } ] } }, { @@ -71,7 +71,7 @@ "sound": "rrrip!", "sound_fail": "whump.", "furn_set": "f_earthbag_half", - "items": [ { "item": "bag_canvas", "count": [ 15, 20 ] }, { "item": "material_soil", "charges": [ 50, 60 ] } ] + "items": [ { "item": "bag_canvas", "count": [ 15, 20 ] }, { "item": "material_sand", "charges": [ 50, 60 ] } ] } }, { diff --git a/data/json/furniture_and_terrain/furniture-seats.json b/data/json/furniture_and_terrain/furniture-seats.json index be502d2814df1..69f4e6e0f4352 100644 --- a/data/json/furniture_and_terrain/furniture-seats.json +++ b/data/json/furniture_and_terrain/furniture-seats.json @@ -54,37 +54,6 @@ ] } }, - { - "type": "furniture", - "id": "f_seat_airplane", - "name": "airplane seat", - "//": "Used in airliner.json, it yields short rope as a seatbelt", - "looks_like": "f_armchair", - "symbol": "H", - "description": "An airplane seat with a seatbelt.", - "color": "light_gray", - "move_cost_mod": 1, - "coverage": 45, - "comfort": 3, - "floor_bedding_warmth": 500, - "bonus_fire_warmth_feet": 1000, - "required_str": 7, - "deconstruct": { "items": [ { "item": "pipe", "count": 10 }, { "item": "rag", "count": [ 30, 33 ] }, { "item": "rope_6" } ] }, - "max_volume": 4000, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "ORGANIC", "MOUNTABLE", "CAN_SIT" ], - "bash": { - "str_min": 12, - "str_max": 40, - "sound": "smash!", - "sound_fail": "whump.", - "items": [ - { "item": "pipe", "count": [ 1, 3 ] }, - { "item": "scrap", "charges": [ 2, 6 ] }, - { "item": "rag", "count": [ 20, 30 ] }, - { "item": "rope_6" } - ] - } - }, { "type": "furniture", "id": "f_chair", diff --git a/data/json/furniture_and_terrain/furniture-surfaces.json b/data/json/furniture_and_terrain/furniture-surfaces.json index fd5cdfc887072..ba36625645351 100644 --- a/data/json/furniture_and_terrain/furniture-surfaces.json +++ b/data/json/furniture_and_terrain/furniture-surfaces.json @@ -99,99 +99,6 @@ "examine_action": "workbench", "workbench": { "multiplier": 1.1, "mass": 200000, "volume": "75L" } }, - { - "type": "furniture", - "id": "f_leather_tarp", - "name": "leather tarp", - "description": "A large sheet of sewn leather that can be used instead of a picnic blanket, but it's more valuable as a butchery appliance as it does not soak in blood.", - "symbol": "D", - "bgcolor": "brown", - "move_cost_mod": 0, - "required_str": 3, - "deployed_item": "leather_tarp", - "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "CAN_SIT" ], - "deconstruct": { "items": [ { "item": "leather_tarp", "count": 1 } ] }, - "bash": { - "str_min": 5, - "str_max": 10, - "sound": "smash!", - "sound_fail": "whump.", - "items": [ { "item": "leather_tarp", "count": [ 1, 1 ] } ] - }, - "examine_action": "workbench", - "workbench": { "multiplier": 0.85, "mass": 500000, "volume": "500L" } - }, - { - "type": "furniture", - "id": "f_plastic_groundsheet", - "name": "plastic groundsheet", - "description": "A large sheet of thick plastic has been tossed on the ground here. It would be a useful place to do some butchery, perhaps.", - "symbol": "D", - "bgcolor": "light_blue", - "move_cost_mod": 0, - "required_str": 3, - "deployed_item": "plastic_sheet", - "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "CAN_SIT" ], - "deconstruct": { "items": [ { "item": "plastic_sheet", "count": 1 } ] }, - "bash": { - "str_min": 5, - "str_max": 10, - "sound": "whuff!", - "sound_fail": "crinkle.", - "items": [ { "item": "plastic_sheet", "count": 1 } ] - }, - "examine_action": "workbench", - "workbench": { "multiplier": 0.85, "mass": 500000, "volume": "500L" } - }, - { - "type": "furniture", - "id": "f_fiber_mat", - "name": "fiber mat", - "description": "A large mat woven from fibrous material that can be used instead of a picnic blanket, but it's more valuable as a butchery appliance. Too thin to be a comfortable sleeping place.", - "symbol": "Q", - "bgcolor": "yellow", - "move_cost_mod": 0, - "required_str": 3, - "deployed_item": "fiber_mat", - "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "CAN_SIT" ], - "deconstruct": { "items": [ { "item": "fiber_mat", "count": 1 } ] }, - "bash": { - "str_min": 5, - "str_max": 10, - "sound": "smash!", - "sound_fail": "whump.", - "items": [ { "item": "fiber_mat", "count": [ 1, 1 ] } ] - }, - "examine_action": "workbench", - "workbench": { "multiplier": 0.85, "mass": 500000, "volume": "500L" } - }, - { - "type": "furniture", - "id": "f_tourist_table", - "name": "tourist table", - "description": "Small metal folding table, ideal for off-road trips into the wild. Can be used as a workbench in a pinch.", - "symbol": "#", - "bgcolor": "light_gray", - "move_cost_mod": 2, - "coverage": 40, - "required_str": -1, - "deployed_item": "tourist_table", - "flags": [ "TRANSPARENT", "MOUNTABLE", "SHORT", "FLAT_SURF" ], - "deconstruct": { "items": [ { "item": "tourist_table", "count": 1 } ] }, - "bash": { - "str_min": 16, - "str_max": 50, - "sound": "metal screeching!", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 4, 8 ] }, - { "item": "pipe", "count": [ 1, 3 ] }, - { "item": "sheet_metal_small", "count": [ 4, 8 ] } - ] - }, - "examine_action": "workbench", - "workbench": { "multiplier": 1.05, "mass": 100000, "volume": "35L" } - }, { "type": "furniture", "id": "f_table", diff --git a/data/json/furniture_and_terrain/terrain-bridges-docks.json b/data/json/furniture_and_terrain/terrain-bridges-docks.json deleted file mode 100644 index 70dfb82be2e8a..0000000000000 --- a/data/json/furniture_and_terrain/terrain-bridges-docks.json +++ /dev/null @@ -1,150 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_bridge", - "name": "walkway", - "description": "A metallic bridge commonly used in industrial settings to meet specified safety standards.", - "symbol": "#", - "color": "yellow", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_dock", - "name": "dock", - "description": "A wooden platform held by a support made of logs dug into the ground.", - "symbol": "8", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ], - "deconstruct": { "ter_set": "t_water_sh", "items": [ { "item": "nail", "charges": [ 6, 12 ] }, { "item": "2x4", "count": 8 } ] }, - "bash": { - "str_min": 8, - "str_max": 80, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_water_moving_sh", - "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_sh_bridge", - "name": "shallow bridge", - "description": "A wooden platform held by a support made of logs dug into the ground.", - "looks_like": "t_dock", - "symbol": "8", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ], - "deconstruct": { "ter_set": "t_water_sh", "items": [ { "item": "nail", "charges": [ 6, 12 ] }, { "item": "2x4", "count": 8 } ] }, - "bash": { - "str_min": 8, - "str_max": 80, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_water_sh", - "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_pontoon_dp", - "name": "pontoon bridge", - "description": "A floating temporary bridge, like the ones army used to make to cross rivers.", - "symbol": "8", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ], - "deconstruct": { - "ter_set": "t_water_dp", - "items": [ { "item": "rope_makeshift_6", "count": [ 3, 4 ] }, { "item": "2x4", "count": 8 } ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_water_dp", - "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_riverbridge_dp", - "name": "river bridge", - "description": "A floating temporary bridge, like the ones army used to make to cross rivers.", - "looks_like": "t_pontoon", - "symbol": "8", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ], - "deconstruct": { - "ter_set": "t_water_moving_dp", - "items": [ { "item": "rope_makeshift_6", "count": [ 3, 4 ] }, { "item": "2x4", "count": 8 } ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_water_dp", - "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_pavement_bg_dp", - "name": "bridge pavement", - "description": "A bridge section made out of metal and concrete.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "str_min": 70, - "str_max": 300, - "sound": "concrete cracking and metal screeching!", - "sound_fail": "whump!", - "ter_set": "t_water_dp", - "items": [ { "item": "rock", "count": [ 4, 20 ] }, { "item": "rebar", "count": [ 10, 20 ] } ] - } - }, - { - "type": "terrain", - "id": "t_pavement_y_bg_dp", - "name": "bridge yellow pavement", - "description": "A bridge section made out of metal and concrete. It's painted yellow.", - "symbol": ".", - "color": "yellow", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "str_min": 70, - "str_max": 300, - "sound": "concrete cracking and metal screeching!", - "sound_fail": "whump!", - "ter_set": "t_water_dp", - "items": [ { "item": "rock", "count": [ 4, 20 ] }, { "item": "rebar", "count": [ 10, 20 ] } ] - } - }, - { - "type": "terrain", - "id": "t_sidewalk_bg_dp", - "name": "bridge sidewalk", - "description": "The sidewalk section of a concrete bridge.", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "str_min": 70, - "str_max": 300, - "sound": "concrete cracking and metal screeching!", - "sound_fail": "whump!", - "ter_set": "t_water_dp", - "items": [ { "item": "rock", "count": [ 4, 20 ] }, { "item": "rebar", "count": [ 10, 20 ] } ] - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-doors.json b/data/json/furniture_and_terrain/terrain-doors.json deleted file mode 100644 index b50dbbfcb4b65..0000000000000 --- a/data/json/furniture_and_terrain/terrain-doors.json +++ /dev/null @@ -1,2325 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_laminated_door_glass_c", - "name": "closed laminated glass door", - "description": "A closed laminated glass door is composed layers of glass and plastic held together by an interlayer.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "looks_like": "t_reinforced_door_glass_c", - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "open": "t_laminated_door_glass_o", - "bash": { - "str_min": 100, - "str_max": 180, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_mdoor_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "scrap", "count": [ 3, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_laminated_door_glass_o", - "name": "open laminated glass door", - "description": "Laminated glass door is composed layers of glass and plastic held together by an interlayer. Yep, it's open.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "looks_like": "t_reinforced_door_glass_o", - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_laminated_door_glass_c", - "bash": { - "str_min": 100, - "str_max": 180, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_mdoor_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "scrap", "count": [ 3, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_ballistic_door_glass_c", - "name": "closed ballistic glass door", - "description": "Ballistic glass consists of layers of laminated glass.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "looks_like": "t_reinforced_door_glass_c", - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "open": "t_ballistic_door_glass_o", - "bash": { - "str_min": 200, - "str_max": 400, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_mdoor_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "scrap", "count": [ 3, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_ballistic_door_glass_o", - "name": "open ballistic glass door", - "description": "Ballistic glass consists of layers of laminated glass. Yep, it's open.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "looks_like": "t_reinforced_door_glass_o", - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_ballistic_door_glass_c", - "bash": { - "str_min": 200, - "str_max": 400, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_mdoor_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "scrap", "count": [ 3, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_reinforced_door_glass_c", - "name": "closed reinforced glass door", - "description": "A closed glass door reinforced with woven steel wires in a stylish, but practical pattern.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "open": "t_reinforced_door_glass_o", - "bash": { - "str_min": 40, - "str_max": 210, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "glass_shard", "count": [ 42, 84 ] }, - { "item": "wire", "prob": 20 }, - { "item": "scrap", "count": [ 3, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_reinforced_door_glass_lab_c", - "name": "closed reinforced glass door", - "description": "A closed glass door reinforced with woven steel wires in a stylish, but practical pattern.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "MINEABLE" ], - "open": "t_reinforced_door_glass_lab_o", - "bash": { - "str_min": 40, - "str_max": 210, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_thconc_floor", - "items": [ - { "item": "glass_shard", "count": [ 42, 84 ] }, - { "item": "wire", "prob": 20 }, - { "item": "scrap", "count": [ 3, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_reinforced_door_glass_o", - "name": "open reinforced glass door", - "description": "A glass door reinforced with woven steel wires in a stylish, but practical pattern. Yep, it's open.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_reinforced_door_glass_c", - "bash": { - "str_min": 40, - "str_max": 210, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "glass_shard", "count": [ 42, 84 ] }, - { "item": "wire", "prob": 20 }, - { "item": "scrap", "count": [ 3, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_reinforced_door_glass_lab_o", - "name": "open reinforced glass door", - "description": "A glass door reinforced with woven steel wires in a stylish, but practical pattern. Yep, it's open.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_reinforced_door_glass_lab_c", - "bash": { - "str_min": 40, - "str_max": 210, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_thconc_floor", - "items": [ - { "item": "glass_shard", "count": [ 42, 84 ] }, - { "item": "wire", "prob": 20 }, - { "item": "scrap", "count": [ 3, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_c", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "open": "t_door_o", - "deconstruct": { - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_lab_c", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], - "open": "t_door_lab_o", - "deconstruct": { - "ter_set": "t_door_lab_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_lab_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_white_c", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], - "open": "t_door_white_o", - "deconstruct": { - "ter_set": "t_door_white_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_white_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_gray_c", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], - "open": "t_door_gray_o", - "deconstruct": { - "ter_set": "t_door_gray_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_gray_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_red_c", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], - "open": "t_door_red_o", - "deconstruct": { - "ter_set": "t_door_red_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_red_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_green_c", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], - "open": "t_door_green_o", - "deconstruct": { - "ter_set": "t_door_green_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_green_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_white_o", - "name": "open wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_white_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "close": "t_door_white_c", - "bash": { - "str_min": 5, - "str_max": 80, - "str_min_blocked": 7, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_white_frame", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 1, 6 ] }, - { "item": "splinter", "count": [ 2, 6 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_gray_o", - "name": "open wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_gray_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "close": "t_door_gray_c", - "bash": { - "str_min": 5, - "str_max": 80, - "str_min_blocked": 7, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_gray_frame", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 1, 6 ] }, - { "item": "splinter", "count": [ 2, 6 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_red_o", - "name": "open wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_red_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "close": "t_door_red_c", - "bash": { - "str_min": 5, - "str_max": 80, - "str_min_blocked": 7, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_red_frame", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 1, 6 ] }, - { "item": "splinter", "count": [ 2, 6 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_green_o", - "name": "open wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_green_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "close": "t_door_green_c", - "bash": { - "str_min": 5, - "str_max": 80, - "str_min_blocked": 7, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_green_frame", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 1, 6 ] }, - { "item": "splinter", "count": [ 2, 6 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_white_b", - "name": "damaged wood door", - "description": "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.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 5, - "str_max": 70, - "str_min_blocked": 7, - "str_max_blocked": 90, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_white_frame", - "items": [ - { "item": "2x4", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_gray_b", - "name": "damaged wood door", - "description": "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.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 5, - "str_max": 70, - "str_min_blocked": 7, - "str_max_blocked": 90, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_gray_frame", - "items": [ - { "item": "2x4", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_red_b", - "name": "damaged wood door", - "description": "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.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 5, - "str_max": 70, - "str_min_blocked": 7, - "str_max_blocked": 90, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_red_frame", - "items": [ - { "item": "2x4", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_green_b", - "name": "damaged wood door", - "description": "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.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 5, - "str_max": 70, - "str_min_blocked": 7, - "str_max_blocked": 90, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_green_frame", - "items": [ - { "item": "2x4", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_white_frame", - "name": "empty door frame", - "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 6, - "str_max": 25, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 3, 6 ] }, - { "item": "splinter", "count": [ 3, 6 ] }, - { "item": "nail", "charges": [ 6, 12 ] } - ] - }, - "deconstruct": { "ter_set": "t_linoleum_white", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } - }, - { - "type": "terrain", - "id": "t_door_gray_frame", - "name": "empty door frame", - "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 6, - "str_max": 25, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 3, 6 ] }, - { "item": "splinter", "count": [ 3, 6 ] }, - { "item": "nail", "charges": [ 6, 12 ] } - ] - }, - "deconstruct": { "ter_set": "t_linoleum_gray", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } - }, - { - "type": "terrain", - "id": "t_door_red_frame", - "name": "empty door frame", - "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 6, - "str_max": 25, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 3, 6 ] }, - { "item": "splinter", "count": [ 3, 6 ] }, - { "item": "nail", "charges": [ 6, 12 ] } - ] - }, - "deconstruct": { "ter_set": "t_carpet_red", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } - }, - { - "type": "terrain", - "id": "t_door_green_frame", - "name": "empty door frame", - "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 6, - "str_max": 25, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 3, 6 ] }, - { "item": "splinter", "count": [ 3, 6 ] }, - { "item": "nail", "charges": [ 6, 12 ] } - ] - }, - "deconstruct": { "ter_set": "t_carpet_green", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } - }, - { - "type": "terrain", - "id": "t_door_glass_red_c", - "name": "closed glass door", - "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], - "open": "t_door_glass_red_o", - "deconstruct": { "ter_set": "t_door_red_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 6, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_red_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_green_c", - "name": "closed glass door", - "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], - "open": "t_door_glass_green_o", - "deconstruct": { "ter_set": "t_door_green_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 6, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_green_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_white_c", - "name": "closed glass door", - "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], - "open": "t_door_glass_white_o", - "deconstruct": { "ter_set": "t_door_white_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 6, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_white_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_gray_c", - "name": "closed glass door", - "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], - "open": "t_door_glass_gray_o", - "deconstruct": { "ter_set": "t_door_gray_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 6, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_gray_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_red_o", - "name": "open glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_red_c", - "deconstruct": { "ter_set": "t_door_red_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_red_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_green_o", - "name": "open glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_green_c", - "deconstruct": { "ter_set": "t_door_green_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_green_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_white_o", - "name": "open glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_white_c", - "deconstruct": { "ter_set": "t_door_white_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_white_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_gray_o", - "name": "open glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_gray_c", - "deconstruct": { "ter_set": "t_door_gray_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_gray_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_c_peep", - "name": "closed wood door with peephole", - "description": "A regular door made of ordinary wood, except this one has a peephole. If you examined it more closely, you'd be able to peek through the hole.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "examine_action": "door_peephole", - "open": "t_door_o_peep", - "deconstruct": { - "ter_set": "t_door_frame", - "items": [ - { "item": "peephole", "count": 1 }, - { "item": "2x4", "count": 4 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_b_peep", - "items": [ - { "item": "peephole", "prob": 75 }, - { "item": "2x4", "prob": 25 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_b", - "name": "damaged wood door", - "description": "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.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 5, - "str_max": 70, - "str_min_blocked": 7, - "str_max_blocked": 90, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_lab_b", - "name": "damaged wood door", - "description": "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.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 5, - "str_max": 70, - "str_min_blocked": 7, - "str_max_blocked": 90, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_lab_frame", - "items": [ - { "item": "2x4", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_b_peep", - "name": "damaged wood door with peephole", - "//": "There's no need for a use-peephole, because the door is transparent", - "description": "Bad news is the peephole is broken and you can't look outside the door. Good news is the door is nearly broken down, so there's nothing blocking the view. A few planks, nails and the right tools could patch up all the damage.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 5, - "str_max": 70, - "str_min_blocked": 7, - "str_max_blocked": 90, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "prob": 50 }, - { "item": "2x4", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_o", - "name": "open wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "close": "t_door_c", - "bash": { - "str_min": 5, - "str_max": 80, - "str_min_blocked": 7, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 1, 6 ] }, - { "item": "splinter", "count": [ 2, 6 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_lab_o", - "name": "open wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_lab_frame", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": 2 } - ] - }, - "close": "t_door_lab_c", - "bash": { - "str_min": 5, - "str_max": 80, - "str_min_blocked": 7, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_lab_frame", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 1, 6 ] }, - { "item": "splinter", "count": [ 2, 6 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_o_peep", - "name": "open wood door with peephole", - "description": "A regular door made of ordinary wood, except this one has a peephole. If you examined it more closely, you'd be able to peek through the hole. Although, you don't need to peek through it since the door is open anyway.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_frame", - "items": [ - { "item": "peephole", "count": 1 }, - { "item": "2x4", "count": 4 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 6, 12 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - }, - "close": "t_door_c_peep", - "bash": { - "str_min": 5, - "str_max": 80, - "str_min_blocked": 7, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_door_frame", - "items": [ - { "item": "peephole", "prob": 50 }, - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 1, 6 ] }, - { "item": "splinter", "count": [ 2, 6 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_rdoor_c", - "name": "closed reinforced wood door", - "description": "Just like other wooden doors, except this one has layers of nailed in two by fours and additional hinge for reinforcement. It might be barricaded, but still susceptible to fire.", - "symbol": "+", - "color": "red", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR_REINFORCED", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "open": "t_rdoor_o", - "deconstruct": { - "ter_set": "t_door_c", - "items": [ - { "item": "2x4", "count": 24 }, - { "item": "wood_panel", "count": 2 }, - { "item": "nail", "charges": [ 36, 48 ] }, - { "item": "hinge", "count": 1 } - ] - }, - "bash": { - "str_min": 18, - "str_max": 100, - "str_min_blocked": 25, - "str_max_blocked": 120, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_rdoor_b", - "items": [ - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "splinter", "count": [ 2, 4 ] }, - { "item": "nail", "charges": [ 4, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_rdoor_b", - "name": "damaged reinforced wood door", - "description": "There are splintering planks and visible holes in the wood, it looks like it could be smashed apart if not repaired.", - "symbol": "&", - "color": "red", - "move_cost": 0, - "coverage": 75, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE_ASH", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_DOOR_REINFORCED_DAMAGED", - "PERMEABLE", - "CONNECT_TO_WALL" - ], - "bash": { - "str_min": 12, - "str_max": 90, - "str_min_blocked": 20, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "nail", "charges": [ 4, 18 ] }, - { "item": "splinter", "count": [ 2, 4 ] }, - { "item": "hinge", "count": [ 0, 1 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_rdoor_o", - "name": "open reinforced wood door", - "description": "Just like other wooden doors, except this one has layers of nailed in two by fours for reinforcement. It might be fortified, but still susceptible to fire. It's open so it's not stopping anything right now.", - "symbol": "'", - "color": "red", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR_REINFORCED", "CONNECT_TO_WALL", "ROAD" ], - "deconstruct": { - "ter_set": "t_door_c", - "items": [ - { "item": "2x4", "count": 24 }, - { "item": "wood_panel", "count": 1 }, - { "item": "nail", "charges": [ 36, 48 ] }, - { "item": "hinge", "count": 1 } - ] - }, - "close": "t_rdoor_c", - "bash": { - "str_min": 12, - "str_max": 100, - "str_min_blocked": 20, - "str_max_blocked": 120, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "count": [ 2, 8 ] }, - { "item": "nail", "charges": [ 8, 30 ] }, - { "item": "splinter", "count": [ 4, 8 ] }, - { "item": "hinge", "count": [ 0, 1 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_locked_interior", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has an extra keyhole, so it's likely locked. You could pry it open or pick the lock.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BARRICADABLE_DOOR", "LOCKED", "BLOCK_WIND" ], - "examine_action": "locked_object", - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_locked", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has a deadbolt keyhole, so it's likely locked. You could pry it open or pick the lock, or unlock the deadbolt from the inside.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ - "FLAMMABLE_ASH", - "NOITEM", - "OPENCLOSE_INSIDE", - "REDUCE_SCENT", - "CONNECT_TO_WALL", - "BARRICADABLE_DOOR", - "LOCKED", - "BLOCK_WIND" - ], - "examine_action": "locked_object", - "open": "t_door_o", - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_locked_peep", - "name": "closed wood door", - "description": "A regular door made of ordinary wood, except this one has a peephole. If you examined it more closely, you'd be able to peek through the hole. This one has a deadbolt keyhole, so it's likely locked. You could pry it open or pick the lock, or unlock the deadbolt from the inside.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ - "FLAMMABLE_ASH", - "NOITEM", - "OPENCLOSE_INSIDE", - "REDUCE_SCENT", - "CONNECT_TO_WALL", - "BARRICADABLE_DOOR", - "LOCKED", - "BLOCK_WIND" - ], - "open": "t_door_o_peep", - "examine_action": "door_peephole", - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_b_peep", - "items": [ - { "item": "peephole", "prob": 75 }, - { "item": "2x4", "prob": 25 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_locked_alarm", - "name": "closed wood door", - "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has an extra keyhole, so it's likely locked. You could pry it open or pick the lock.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "ALARMED", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BARRICADABLE_DOOR", "LOCKED", "BLOCK_WIND" ], - "examine_action": "locked_object", - "bash": { - "str_min": 8, - "str_max": 80, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "smash!", - "sound_fail": "whump!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "prob": 25 }, - { "item": "wood_panel", "prob": 10 }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "nail", "charges": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_curtain_c", - "name": "closed door curtain", - "description": "Repurposed curtains from a window acting as a door. Could be easily taken down for supplies or placed somewhere else.", - "symbol": "+", - "color": "dark_gray", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "CONNECT_TO_WALL", "EASY_DECONSTRUCT" ], - "open": "t_door_curtain_o", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ { "item": "stick", "count": 1 }, { "item": "sheet", "count": 2 }, { "item": "withered", "count": 12 } ] - }, - "bash": { - "str_min": 1, - "str_max": 4, - "sound": "rrrrip!", - "sound_fail": "slap!", - "sound_vol": 6, - "sound_fail_vol": 3, - "ter_set": "t_dirt", - "items": [ - { "item": "sheet", "count": [ 0, 1 ] }, - { "item": "rag", "count": [ 2, 5 ] }, - { "item": "stick", "count": 1 }, - { "item": "withered", "count": [ 2, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_makeshift_c", - "name": "closed makeshift door", - "description": "A makeshift screen consisting of two by fours bound together with vertical rope hanging from the top of the doorway. Could be easily taken down and re-purposed.", - "symbol": "+", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "CONNECT_TO_WALL", "EASY_DECONSTRUCT", "BLOCK_WIND" ], - "open": "t_door_makeshift_o", - "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "2x4", "count": 6 }, { "item": "rope_makeshift_6", "count": 2 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "str_min_blocked": 6, - "str_max_blocked": 30, - "sound": "crack.", - "sound_fail": "wham.", - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "count": [ 2, 5 ] }, - { "item": "rope_makeshift_6", "count": [ 0, 1 ] }, - { "item": "withered", "count": [ 2, 12 ] }, - { "item": "splinter", "count": [ 5, 10 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_curtain_o", - "name": "open door curtain", - "description": "Repurposed curtains from a window acting as a door. Could be easily taken down for supplies or placed somewhere else. These curtains are open, bundled and tied next to the doorway.", - "symbol": "'", - "color": "dark_gray", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "EASY_DECONSTRUCT" ], - "deconstruct": { - "ter_set": "t_dirt", - "items": [ { "item": "stick", "count": 1 }, { "item": "sheet", "count": 2 }, { "item": "withered", "count": 12 } ] - }, - "close": "t_door_curtain_c", - "bash": { - "str_min": 1, - "str_max": 4, - "sound": "rrrrip!", - "sound_fail": "slap!", - "sound_vol": 5, - "sound_fail_vol": 2, - "ter_set": "t_dirt", - "items": [ - { "item": "sheet", "count": [ 0, 1 ] }, - { "item": "rag", "count": [ 2, 5 ] }, - { "item": "stick", "count": 1 }, - { "item": "withered", "count": [ 2, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_makeshift_o", - "name": "open makeshift door", - "description": "A makeshift screen consisting of two by fours bound together with rope hanging from the top of the doorway. Could be easily taken down and re-purposed. The planks have been rolled up and attached to the top of the doorway, allowing free movement through.", - "symbol": "'", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "EASY_DECONSTRUCT" ], - "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "2x4", "count": 6 }, { "item": "rope_makeshift_6", "count": 2 } ] }, - "close": "t_door_makeshift_c", - "bash": { - "str_min": 3, - "str_max": 20, - "str_min_blocked": 4, - "str_max_blocked": 30, - "sound": "crack.", - "sound_fail": "wham.", - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "count": [ 2, 5 ] }, - { "item": "rope_makeshift_6", "count": [ 0, 1 ] }, - { "item": "withered", "count": [ 2, 12 ] }, - { "item": "splinter", "count": [ 5, 10 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_frame", - "name": "empty door frame", - "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 6, - "str_max": 25, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 3, 6 ] }, - { "item": "splinter", "count": [ 3, 6 ] }, - { "item": "nail", "charges": [ 6, 12 ] } - ] - }, - "deconstruct": { "ter_set": "t_floor", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } - }, - { - "type": "terrain", - "id": "t_door_lab_frame", - "name": "empty door frame", - "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 6, - "str_max": 25, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 3, 6 ] }, - { "item": "splinter", "count": [ 3, 6 ] }, - { "item": "nail", "charges": [ 6, 12 ] } - ] - }, - "deconstruct": { "ter_set": "t_thconc_floor", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } - }, - { - "type": "terrain", - "id": "t_mdoor_frame", - "name": "empty metal door frame", - "description": "An empty door frame made of steel and assorted metal. A variety of doors could be constructed here.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 18, - "str_max": 75, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ { "item": "spike", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_mdoor_lab_frame", - "name": "empty metal door frame", - "description": "An empty door frame made of steel and assorted metal. A variety of doors could be constructed here.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 18, - "str_max": 75, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_thconc_floor", - "items": [ { "item": "spike", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_m_frame", - "name": "empty metal window frame", - "description": "An empty window frame constructed from assembled metal and carefully braced with various hardware.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "bash": { - "str_min": 18, - "str_max": 75, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ { "item": "spike", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_boarded", - "name": "boarded up door", - "description": "A standard wooden door that has several planks across it, nailed down to board it up and increase its durability. Still flammable though.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 15, - "str_max": 80, - "str_min_blocked": 17, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "wood_panel", "prob": 10 }, - { "item": "nail", "charges": [ 2, 10 ] }, - { "item": "splinter", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_boarded_damaged", - "name": "boarded up damaged door", - "description": "A boarded up wooden door, except some of the planks are fractured or coming loose. Without repairs, it could be broken down easily.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], - "bash": { - "str_min": 10, - "str_max": 40, - "str_min_blocked": 9, - "str_max_blocked": 50, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_door_frame", - "items": [ - { "item": "2x4", "count": [ 1, 8 ] }, - { "item": "nail", "charges": [ 2, 20 ] }, - { "item": "splinter", "count": 1 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_boarded_peep", - "name": "boarded up door with peephole", - "description": "A boarded up door made of ordinary wood, except this one has a peephole. Although it's been covered up in planks, you could still examine the peephole.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "examine_action": "door_peephole", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 15, - "str_max": 80, - "str_min_blocked": 17, - "str_max_blocked": 100, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_door_b_peep", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 2, 10 ] }, - { "item": "splinter", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_rdoor_boarded", - "name": "boarded up reinforced door", - "description": "An additionally reinforced door of layered two by fours that has been boarded up with more wood to prevent it from opening. Still susceptible to fire.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 25, - "str_max": 60, - "str_min_blocked": 32, - "str_max_blocked": 70, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_rdoor_b", - "items": [ - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "wood_panel", "prob": 10 }, - { "item": "nail", "charges": [ 1, 8 ] }, - { "item": "splinter", "count": 1 } - ] - } - }, - { - "type": "terrain", - "id": "t_rdoor_boarded_damaged", - "name": "boarded up damaged reinforced door", - "description": "A battered and torn reinforced door with planks bursting from the joints. The boarded up two by fours are fragmented and in pieces, this doesn't look like an easy repair.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], - "bash": { - "str_min": 20, - "str_max": 50, - "str_min_blocked": 24, - "str_max_blocked": 60, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_door_b", - "items": [ - { "item": "2x4", "count": [ 2, 16 ] }, - { "item": "nail", "charges": [ 6, 54 ] }, - { "item": "splinter", "count": 1 }, - { "item": "hinge", "count": [ 0, 1 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_boarded_damaged_peep", - "name": "boarded up damaged door with peephole", - "description": "A wrecked door made of ordinary wood, except this one has a peephole. Although it's been covered up in planks, the peephole was damaged and can't be used to see through.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "examine_action": "door_peephole", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], - "bash": { - "str_min": 10, - "str_max": 40, - "str_min_blocked": 9, - "str_max_blocked": 50, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_door_frame", - "items": [ - { "item": "peephole", "prob": 75 }, - { "item": "2x4", "count": [ 1, 8 ] }, - { "item": "nail", "charges": [ 2, 20 ] }, - { "item": "splinter", "count": 1 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_c", - "name": "closed metal door", - "description": "An extremely resilient door made of assorted steel, carved and pounded into shape.", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "open": "t_door_metal_o", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_secretdoor_metal_c", - "name": "metal wall", - "description": "An industrially fabricated thick sheet carefully positioned and joined seamlessly with perimeter sealant, this wall is capable of resisting extreme elements as well as hostile forces. Blast load rated and extremely fire-retardant, breaching will require specialized tools or industrial vehicles.", - "symbol": "LINE_OXOX", - "looks_like": "t_wall_metal", - "color": "cyan", - "move_cost": 0, - "roof": "t_metal_floor", - "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "AUTO_WALL_SYMBOL", "MINEABLE" ], - "open": "t_secretdoor_metal_o", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ { "item": "scrap", "count": [ 12, 24 ] }, { "item": "steel_plate", "prob": 75 } ] - } - }, - { - "type": "terrain", - "id": "t_secretdoor_metal_o", - "name": "open secret door", - "looks_like": "t_mdoor_frame", - "description": "This apparently normal segment of metal wall has opened to reveal a secret passage.", - "symbol": "'", - "color": "cyan", - "move_cost": 2, - "roof": "t_metal_floor", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_secretdoor_metal_c", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ { "item": "scrap", "count": [ 12, 24 ] }, { "item": "steel_plate", "prob": 75 } ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_lab_c", - "name": "closed metal door", - "description": "An extremely resilient door made of assorted steel, carved and pounded into shape.", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "MINEABLE" ], - "open": "t_door_metal_lab_o", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_lab_frame", - "items": [ - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_o", - "name": "open metal door", - "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. It's open, so no tools are needed to break in.", - "symbol": "'", - "color": "cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_door_metal_c", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_lab_o", - "name": "open metal door", - "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. It's open, so no tools are needed to break in.", - "symbol": "'", - "color": "cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_door_metal_lab_c", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_lab_frame", - "items": [ - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_c_peep", - "name": "closed metal door with peephole", - "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. If you examined it more closely, you'd be able to peek through the hole.", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "open": "t_door_metal_o_peep", - "examine_action": "door_peephole", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "peephole", "prob": 75 }, - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_o_peep", - "name": "open metal door with peephole", - "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. If you examined it more closely, you'd be able to peek through the hole. Although, you don't need to peek through it since the door is open anyway.", - "symbol": "'", - "color": "cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], - "close": "t_door_metal_c_peep", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "peephole", "prob": 75 }, - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_locked", - "name": "closed metal door", - "description": "A galvanized steel door, forged to withstand punishment and impede anyone or anything. Typically used in conjunction with automated electronic locking mechanisms that require an external source to unlock.", - "//": "Actually locked", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "LOCKED", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_metal_pickable", - "name": "closed metal door", - "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. This one has an extra keyhole, so it's likely locked. You could probably pick the lock.", - "//": "Actually pickable, but locked", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "REDUCE_SCENT", "OPENCLOSE_INSIDE", "CONNECT_TO_WALL", "LOCKED", "MINEABLE", "BLOCK_WIND" ], - "open": "t_door_metal_o", - "bash": { - "str_min": 80, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "steel_plate", "prob": 75 }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_bar_c", - "name": "closed bar door", - "description": "A detention door made up of crisscrossed stainless steel bars. The locking mechanism doesn't appear to be engaged.", - "//": "Unlocked, only created at map gen", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], - "open": "t_door_bar_o", - "close": "t_door_bar_locked", - "bash": { - "str_min": 30, - "str_max": 210, - "str_min_blocked": 40, - "str_max_blocked": 240, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_floor", - "items": [ - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_bar_o", - "name": "open bar door", - "description": "A detention door made up of crisscrossed stainless steel bars. It's swung wide open. Freedom!", - "symbol": "'", - "color": "cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_bar_c", - "bash": { - "str_min": 20, - "str_max": 210, - "str_min_blocked": 30, - "str_max_blocked": 240, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_bar_locked", - "name": "closed bar door", - "description": "A detention door made up of crisscrossed stainless steel bars. The locking mechanism appears to be engaged. The mechanism could be picked open with enough skill.", - "//": "Locked", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "LOCKED", "THIN_OBSTACLE" ], - "bash": { - "str_min": 30, - "str_max": 210, - "str_min_blocked": 40, - "str_max_blocked": 240, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_mdoor_frame", - "items": [ - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_c", - "name": "closed glass door", - "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "open": "t_door_glass_o", - "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 6, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_lab_c", - "name": "closed glass door", - "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", - "symbol": "+", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], - "open": "t_door_glass_lab_o", - "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 6, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_thconc_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_o", - "name": "open glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_c", - "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_door_frame", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_lab_o", - "name": "open glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_lab_c", - "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_thconc_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_door_glass_frosted_c", - "name": "closed frosted glass door", - "description": "A sliding door of frosted white glass.", - "symbol": "+", - "color": "white", - "flags": [ "DOOR", "NOITEM", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "open": "t_door_glass_frosted_o", - "copy-from": "t_door_glass_c" - }, - { - "type": "terrain", - "id": "t_door_glass_frosted_lab_c", - "name": "closed frosted glass door", - "description": "A sliding door of frosted white glass.", - "symbol": "+", - "color": "white", - "flags": [ "DOOR", "NOITEM", "CONNECT_TO_WALL" ], - "open": "t_door_glass_frosted_lab_o", - "copy-from": "t_door_glass_frosted_c" - }, - { - "type": "terrain", - "id": "t_door_glass_frosted_o", - "name": "open frosted glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "white", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_frosted_c", - "copy-from": "t_door_glass_o" - }, - { - "type": "terrain", - "id": "t_door_glass_frosted_lab_o", - "name": "open frosted glass door", - "description": "A sliding glass door that has been left open for all manner of things to travel through.", - "symbol": "'", - "color": "white", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], - "close": "t_door_glass_frosted_lab_c", - "copy-from": "t_door_glass_lab_o" - } -] diff --git a/data/json/furniture_and_terrain/terrain-fences-gates.json b/data/json/furniture_and_terrain/terrain-fences-gates.json deleted file mode 100644 index 6570ce283ff1d..0000000000000 --- a/data/json/furniture_and_terrain/terrain-fences-gates.json +++ /dev/null @@ -1,765 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_palisade_gate", - "name": "palisade gate", - "description": "A large doorway consisting of long logs cabled together, that could be expanded upon. Can act as a door if some type of pulley system were rigged on an adjacent palisade wall.", - "symbol": "+", - "color": "light_red", - "move_cost": 0, - "coverage": 55, - "flags": [ "FLAMMABLE", "NOITEM", "DOOR", "CONNECT_TO_WALL", "WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 24, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - } - }, - { - "type": "terrain", - "id": "t_palisade_gate_o", - "name": "open palisade gate", - "description": "A hanging palisade gate, hoisted by a nearby pulley system. Probably shouldn't be underneath when it comes down.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE", "FLAT", "CONNECT_TO_WALL" ], - "bash": { - "str_min": 6, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - } - }, - { - "type": "terrain", - "id": "t_portcullis", - "name": "makeshift portcullis", - "description": "An immense gateway scrapped together with various bits of steel and metal scraps.", - "symbol": "&", - "color": "cyan", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "MINEABLE" ], - "bash": { - "str_min": 60, - "str_max": 210, - "str_min_blocked": 80, - "str_max_blocked": 240, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 12 ] } ] - } - }, - { - "type": "terrain", - "id": "t_chaingate_l", - "name": "locked wire gate", - "description": "A gate for a chain link fence. This one has a locked padlock on the latch system. With the right tools, you could cut the metal fence or pick the lock. You could also examine the fence to see if it looks climbable.", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "flags": [ "TRANSPARENT", "PERMEABLE", "LOCKED", "THIN_OBSTACLE" ], - "connects_to": "CHAINFENCE", - "bash": { - "str_min": 10, - "str_max": 150, - "str_min_blocked": 15, - "str_max_blocked": 175, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ { "item": "wire", "count": [ 8, 20 ] }, { "item": "scrap", "count": [ 0, 12 ] } ] - } - }, - { - "type": "terrain", - "id": "t_chaingate_c", - "name": "closed wire gate", - "description": "A gate for a chain link fence with a latch system to stay closed.", - "symbol": "+", - "color": "cyan", - "move_cost": 0, - "flags": [ "TRANSPARENT", "DOOR", "PERMEABLE", "THIN_OBSTACLE" ], - "connects_to": "CHAINFENCE", - "open": "t_chaingate_o", - "bash": { - "str_min": 10, - "str_max": 150, - "str_min_blocked": 15, - "str_max_blocked": 100, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ - { "item": "wire", "count": [ 6, 15 ] }, - { "item": "pipe", "count": [ 6, 15 ] }, - { "item": "scrap", "count": [ 0, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_chaingate_o", - "name": "open wire gate", - "description": "A gate for a chain link fence with a latch system to stay closed. The latch is undone, so the gate has swung open.", - "symbol": ".", - "color": "cyan", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD" ], - "connects_to": "CHAINFENCE", - "close": "t_chaingate_c", - "bash": { - "str_min": 5, - "str_max": 150, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ - { "item": "wire", "count": [ 6, 15 ] }, - { "item": "pipe", "count": [ 6, 15 ] }, - { "item": "scrap", "count": [ 0, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_fencegate_c", - "name": "closed wooden gate", - "description": "A commercial quality gate made of wood with a latch system.", - "symbol": "+", - "color": "brown", - "move_cost": 3, - "coverage": 60, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DOOR", "MOUNTABLE" ], - "connects_to": "WOODFENCE", - "open": "t_fencegate_o", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 5 }, - { "item": "pointy_stick", "count": 2 }, - { "item": "nail", "charges": 12 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - }, - "bash": { - "str_min": 4, - "str_max": 20, - "str_min_blocked": 6, - "str_max_blocked": 30, - "sound": "crack.", - "sound_fail": "wham.", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "nail", "charges": [ 2, 8 ] }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_fencegate_o", - "name": "open wooden gate", - "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "ROAD" ], - "connects_to": "WOODFENCE", - "close": "t_fencegate_c", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 5 }, - { "item": "pointy_stick", "count": 2 }, - { "item": "nail", "charges": 12 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - }, - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "nail", "charges": [ 2, 8 ] }, - { "item": "splinter", "count": 1 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_chickenwire_gate_c", - "name": "closed chickenwire gate", - "description": "A gate for a chickenwire fence with a simple latch system to stay closed.", - "symbol": "+", - "color": "brown", - "looks_like": "t_chaingate_c", - "move_cost": 0, - "flags": [ "TRANSPARENT", "DOOR", "PERMEABLE" ], - "connects_to": "CHAINFENCE", - "open": "t_chickenwire_gate_o", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 5 }, - { "item": "wire", "count": 10 }, - { "item": "nail", "charges": 20 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "str_min_blocked": 5, - "str_max_blocked": 15, - "sound": "rattle!", - "sound_fail": "thump!", - "ter_set": "t_null", - "items": [ { "item": "wire", "count": [ 4, 6 ] }, { "item": "2x4", "count": [ 2, 4 ] }, { "item": "hinge", "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_chickenwire_gate_o", - "name": "open chickenwire gate", - "description": "A gate for a chickenwire fence with a simple latch system to stay closed. The latch is undone, so the gate has swung open.", - "symbol": ".", - "color": "brown", - "looks_like": "t_chaingate_o", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD" ], - "connects_to": "CHAINFENCE", - "close": "t_chickenwire_gate_c", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 5 }, - { "item": "wire", "count": 10 }, - { "item": "nail", "charges": 20 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "rattle!", - "sound_fail": "thump!", - "ter_set": "t_null", - "items": [ { "item": "wire", "count": [ 4, 6 ] }, { "item": "2x4", "count": [ 2, 4 ] }, { "item": "hinge", "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_fence", - "aliases": [ "t_fence_h", "t_fence_v" ], - "name": "picket fence", - "description": "A barrier made of wood, it's nothing complicated. Mildly suggests where not to go.", - "symbol": "LINE_OXOX", - "color": "brown", - "move_cost": 3, - "flags": [ - "TRANSPARENT", - "DIGGABLE", - "FLAMMABLE_ASH", - "NOITEM", - "THIN_OBSTACLE", - "REDUCE_SCENT", - "MOUNTABLE", - "SHORT", - "AUTO_WALL_SYMBOL" - ], - "connects_to": "WOODFENCE", - "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "2x4", "count": 5 }, { "item": "nail", "charges": 8 } ] }, - "bash": { - "str_min": 4, - "str_max": 20, - "sound": "crack.", - "sound_fail": "wham.", - "ter_set": "t_null", - "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "nail", "charges": [ 2, 6 ] }, { "item": "splinter", "count": 1 } ] - } - }, - { - "type": "terrain", - "id": "t_chainfence", - "aliases": [ "t_chainfence_h", "t_chainfence_v" ], - "name": "chain link fence", - "description": "A tall fence made of woven wires. It doesn't suggest to stop, it just stops.", - "symbol": "LINE_OXOX", - "color": "cyan", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "PERMEABLE", "UNSTABLE", "CLIMBABLE", "AUTO_WALL_SYMBOL" ], - "connects_to": "CHAINFENCE", - "examine_action": "chainfence", - "bash": { - "str_min": 10, - "str_max": 150, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_chainfence_posts", - "items": [ { "item": "wire", "count": [ 8, 15 ] } ] - } - }, - { - "type": "terrain", - "id": "t_chainfence_posts", - "name": "metal post", - "description": "Set of metal posts, that can hold more serious fences.", - "symbol": "#", - "color": "cyan", - "move_cost": 2, - "flags": [ "TRANSPARENT", "THIN_OBSTACLE" ], - "bash": { - "str_min": 8, - "str_max": 30, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ { "item": "pipe", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_chickenwire_fence", - "aliases": [ "t_chickenwire_fence_h", "t_chickenwire_fence_v" ], - "name": "chickenwire fence", - "description": "A rather flimsy tall fence made of 2x4s and woven wire, suitable for containing small livestock like chickens.", - "symbol": "LINE_OXOX", - "color": "brown", - "looks_like": "t_chainfence", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "AUTO_WALL_SYMBOL" ], - "connects_to": "CHAINFENCE", - "examine_action": "chainfence", - "deconstruct": { - "ter_set": "t_chickenwire_fence_post", - "items": [ { "item": "wire", "count": 10 }, { "item": "nail", "charges": 20 } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "metal rattling!", - "sound_fail": "whack!", - "ter_set": "t_fence_post", - "items": [ { "item": "wire", "count": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_chickenwire_fence_post", - "name": "chickenwire fence post", - "description": "A couple of posts that support the fence. They look alone without the fence.", - "symbol": "#", - "color": "brown", - "looks_like": "t_fence_post", - "move_cost": 2, - "flags": [ "TRANSPARENT", "THIN_OBSTACLE" ], - "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "2x4", "count": 2 } ] }, - "bash": { - "str_min": 8, - "str_max": 20, - "sound": "crack.", - "sound_fail": "whump.", - "ter_set": "t_null", - "items": [ { "item": "2x4", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_fence_post", - "name": "fence post", - "description": "A couple of posts that support the fence. They look alone without the fence.", - "symbol": "#", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "SHORT" ], - "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "pointy_stick", "count": 2 } ] }, - "bash": { - "str_min": 8, - "str_max": 20, - "sound": "crack.", - "sound_fail": "whump.", - "ter_set": "t_null", - "items": [ { "item": "pointy_stick", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_fence_wire", - "name": "wire fence", - "description": "A barrier made of wire, it's nothing complicated. Mildly suggests where not to go.", - "symbol": "$", - "color": "blue", - "move_cost": 4, - "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "SHORT", "EASY_DECONSTRUCT" ], - "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "wire", "count": 2 } ] }, - "bash": { - "str_min": 8, - "str_max": 20, - "sound": "crack.", - "sound_fail": "whump.", - "ter_set": "t_null", - "items": [ { "item": "pointy_stick", "count": [ 0, 2 ] }, { "item": "wire", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_fence_barbed", - "name": "barbed wire fence", - "description": "A barrier made of sharp barbed wire. More persuasive brother of wire fence.", - "symbol": "$", - "color": "blue", - "move_cost": 4, - "flags": [ "TRANSPARENT", "SHARP", "THIN_OBSTACLE", "SHORT", "EASY_DECONSTRUCT" ], - "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "wire_barbed", "count": 2 } ] }, - "bash": { - "str_min": 8, - "str_max": 20, - "sound": "crack.", - "sound_fail": "whump.", - "ter_set": "t_null", - "items": [ { "item": "pointy_stick", "count": [ 0, 2 ] }, { "item": "wire_barbed", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_fence_rope", - "name": "rope fence", - "description": "A barrier made of rope, it's nothing complicated. Mildly suggests where not to go.", - "symbol": "$", - "color": "brown", - "move_cost": 3, - "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "EASY_DECONSTRUCT" ], - "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "rope_6", "count": 2 } ] }, - "bash": { - "str_min": 8, - "str_max": 20, - "sound": "crack.", - "sound_fail": "whump.", - "ter_set": "t_null", - "items": [ - { "item": "pointy_stick", "count": [ 0, 2 ] }, - { "item": "rope_6", "prob": 50 }, - { "item": "string_36", "count": [ 2, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_splitrail_fence", - "aliases": [ "t_splitrail_fence_h", "t_splitrail_fence_v" ], - "name": "split rail fence", - "description": "A rather stout fence made of 2x4s and fence posts, suitable for containing livestock like horses, cows and pigs.", - "symbol": "LINE_OXOX", - "color": "brown", - "looks_like": "t_fence", - "move_cost": 0, - "examine_action": "chainfence", - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "PERMEABLE", "FLAMMABLE_ASH", "CLIMBABLE", "AUTO_WALL_SYMBOL" ], - "connects_to": "WOODFENCE", - "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "2x4", "count": 2 }, { "item": "nail", "charges": 20 } ] }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "whump!", - "sound_fail": "whack!", - "ter_set": "t_fence_post", - "items": [ { "item": "2x4", "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_splitrail_fencegate_c", - "name": "closed wooden split rail gate", - "description": "A commercial quality gate made of wood with a latch system.", - "symbol": "+", - "color": "brown", - "looks_like": "t_fencegate_c", - "move_cost": 0, - "coverage": 60, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DOOR" ], - "connects_to": "WOODFENCE", - "open": "t_splitrail_fencegate_o", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 5 }, - { "item": "pointy_stick", "count": 2 }, - { "item": "nail", "charges": 12 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - }, - "bash": { - "str_min": 4, - "str_max": 20, - "str_min_blocked": 6, - "str_max_blocked": 30, - "sound": "crack.", - "sound_fail": "wham.", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "nail", "charges": [ 2, 8 ] }, - { "item": "splinter", "count": [ 1, 2 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_splitrail_fencegate_o", - "name": "open wooden split rail gate", - "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.", - "symbol": ".", - "color": "brown", - "looks_like": "t_fencegate_o", - "move_cost": 1, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "ROAD" ], - "connects_to": "WOODFENCE", - "close": "t_splitrail_fencegate_c", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 5 }, - { "item": "pointy_stick", "count": 2 }, - { "item": "nail", "charges": 12 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_privacy_fence", - "aliases": [ "t_privacy_fence_h", "t_privacy_fence_v" ], - "name": "wooden privacy fence", - "description": "A rather stout fence made of 2x4s and fence posts, it is tall and prevents people from seeing into your yard.", - "symbol": "LINE_OXOX", - "color": "brown", - "looks_like": "t_fence", - "move_cost": 0, - "examine_action": "chainfence", - "flags": [ "NOITEM", "CLIMBABLE", "PERMEABLE", "AUTO_WALL_SYMBOL", "FLAMMABLE_ASH", "THIN_OBSTACLE" ], - "connects_to": "WOODFENCE", - "deconstruct": { - "ter_set": "t_fence_post", - "items": [ { "item": "2x4", "count": 10 }, { "item": "nail", "charges": 20 }, { "item": "hinge", "count": [ 1, 2 ] } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "whump!", - "sound_fail": "whack!", - "ter_set": "t_fence_post", - "items": [ { "item": "2x4", "count": [ 4, 10 ] }, { "item": "hinge", "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_privacy_fencegate_c", - "name": "closed wooden split rail gate", - "description": "A commercial quality gate made of wood with a latch system.", - "symbol": "+", - "color": "brown", - "looks_like": "t_fencegate_c", - "move_cost": 0, - "coverage": 60, - "flags": [ "FLAMMABLE_ASH", "DOOR" ], - "connects_to": "WOODFENCE", - "open": "t_privacy_fencegate_o", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 8 }, - { "item": "pointy_stick", "count": 2 }, - { "item": "nail", "charges": 20 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - }, - "bash": { - "str_min": 4, - "str_max": 20, - "str_min_blocked": 6, - "str_max_blocked": 30, - "sound": "crack.", - "sound_fail": "wham.", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 4, 8 ] }, - { "item": "nail", "charges": [ 10, 20 ] }, - { "item": "splinter", "count": [ 4, 6 ] }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_privacy_fencegate_o", - "name": "open wooden split rail gate", - "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.", - "symbol": ".", - "color": "brown", - "looks_like": "t_fencegate_o", - "move_cost": 1, - "flags": [ "FLAMMABLE_ASH", "FLAT", "ROAD" ], - "connects_to": "WOODFENCE", - "close": "t_privacy_fencegate_c", - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 8 }, - { "item": "pointy_stick", "count": 2 }, - { "item": "nail", "charges": 20 }, - { "item": "hinge", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_railing", - "aliases": [ "t_railing_h", "t_railing_v" ], - "name": "railing", - "description": "A section of wooden railing.", - "symbol": "LINE_OXOX", - "color": "yellow", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL" ], - "connects_to": "RAILING", - "bash": { - "str_min": 20, - "str_max": 80, - "sound": "crack!", - "sound_fail": "whump.", - "ter_set": "t_floor", - "items": [ - { "item": "2x4", "prob": 50 }, - { "item": "nail", "charges": [ 2, 6 ] }, - { "item": "scrap", "count": [ 1, 3 ] }, - { "item": "splinter", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_glass_railing", - "aliases": [ "t_glass_railing_h", "t_glass_railing_v" ], - "name": "glass railing", - "description": "A section of railing made out of glass.", - "symbol": "LINE_OXOX", - "color": "cyan", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL" ], - "connects_to": "RAILING", - "deconstruct": { "ter_set": "t_rock_floor", "items": [ { "item": "glass_sheet", "count": 2 }, { "item": "pipe", "count": 4 } ] }, - "bash": { - "str_min": 10, - "str_max": 40, - "sound": "glass braking!", - "sound_fail": "ker-rash!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "glass_shard", "count": [ 50, 164 ] }, - { "item": "pipe", "charges": [ 1, 2 ] }, - { "item": "scrap", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_metal_railing", - "aliases": [ "t_metal__railing_h", "t_metal__railing_v" ], - "name": "metal railing", - "description": "A section of metal railing.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL" ], - "connects_to": "RAILING", - "deconstruct": { "ter_set": "t_rock_floor", "items": [ { "item": "sheet_metal", "count": 2 }, { "item": "pipe", "count": 4 } ] }, - "bash": { - "str_min": 20, - "str_max": 80, - "sound": "clang!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ - { "item": "pipe", "count": [ 1, 2 ] }, - { "item": "sheet_metal_small", "charges": [ 1, 4 ] }, - { "item": "scrap", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_concrete_railing", - "aliases": [ "t_concrete_railing_h", "t_concrete_railing_v" ], - "name": "concrete railing", - "description": "A section of cemented concrete railing.", - "symbol": "LINE_OXOX", - "color": "cyan", - "looks_like": "t_ponywall", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL", "MINEABLE" ], - "connects_to": "RAILING", - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_thconc_floor", - "items": [ - { "item": "rock", "count": [ 5, 10 ] }, - { "item": "scrap", "count": [ 5, 8 ] }, - { "item": "rebar", "count": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_guardrail_bg_dp", - "name": "guard rail", - "description": "A section of metal railing, put in place to prevent people from falling or taking the easy way out.", - "symbol": "#", - "color": "light_gray", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "THIN_OBSTACLE", "ROAD" ], - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "clang!", - "ter_set": "t_pavement_bg_dp", - "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_guardrail", - "name": "guard rail", - "description": "A section of metal railing, put in place to prevent people from falling or taking the easy way out.", - "symbol": "#", - "color": "light_gray", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "THIN_OBSTACLE", "ROAD" ], - "looks_like": "t_guardrail_bg_dp", - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "clang!", - "ter_set": "t_pavement", - "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-floors-outdoors.json b/data/json/furniture_and_terrain/terrain-floors-outdoors.json deleted file mode 100644 index 603391f8a0540..0000000000000 --- a/data/json/furniture_and_terrain/terrain-floors-outdoors.json +++ /dev/null @@ -1,275 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_dirt", - "name": "dirt", - "description": "It's dirt. Looks like some fine soil for tillage. Could also be dug out for construction projects.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_sand", - "name": "sand", - "description": "A large area of fine sand that could be useful in a number of ways, if it was extracted properly.", - "symbol": ".", - "color": "yellow", - "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_clay", - "name": "clay", - "description": "A field full of malleable clay, suitable for kiln firing if it was extracted properly.", - "symbol": ".", - "color": "light_red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_claymound", - "name": "mound of clay", - "description": "A mound of clay soil.", - "symbol": "#", - "color": "brown", - "move_cost": 5, - "flags": [ "TRANSPARENT" ], - "bash": { - "str_min": 2, - "str_max": 4, - "sound": "splosh!", - "sound_fail": "splosh!", - "ter_set": "t_water_dp", - "items": [ { "item": "clay_lump", "count": [ 6, 12 ] } ] - } - }, - { - "type": "terrain", - "id": "t_sandmound", - "name": "mound of sand", - "description": "A mound of sand.", - "symbol": "#", - "color": "brown", - "move_cost": 5, - "flags": [ "TRANSPARENT" ], - "bash": { - "str_min": 2, - "str_max": 4, - "sound": "splosh!", - "sound_fail": "splosh!", - "ter_set": "t_water_dp", - "items": [ { "item": "material_sand", "charges": [ 300, 600 ] } ] - } - }, - { - "type": "terrain", - "id": "t_dirtmound", - "name": "mound of dirt", - "description": "An area of heaped dirt, not easily traversable. If examined more closely, it's quite favorable for planting seeds and the like.", - "symbol": "#", - "color": "brown", - "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE", "PLANTABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100 }, - "examine_action": "dirtmound" - }, - { - "type": "terrain", - "id": "t_dirtmoundfloor", - "name": "mound of dirt", - "description": "A giant hill of dirt that looks like you could crawl inside for shelter.", - "symbol": "#", - "color": "brown", - "move_cost": 3, - "coverage": 40, - "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS" ], - "bash": { - "sound": "thump", - "ter_set": "t_null", - "str_min": 50, - "str_max": 100, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - }, - "examine_action": "dirtmound" - }, - { - "type": "terrain", - "id": "t_fault", - "name": "odd fault", - "description": "An unnaturally humanoid-shaped hole, it seems oddly familiar. There's a strange sensation to examine it closer, as if it belongs to you somehow.", - "symbol": "#", - "color": "magenta", - "move_cost": 0, - "roof": "t_rock_floor", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL" ], - "examine_action": "fault" - }, - { - "type": "terrain", - "id": "t_grave", - "name": "grave", - "looks_like": "t_dirtmound", - "description": "A dirt grave, with some grass growing on it. At least some of the dead do actually rest in peace.", - "symbol": "#", - "color": "green", - "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE" ], - "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } - }, - { - "type": "terrain", - "id": "t_grave_new", - "name": "grave", - "looks_like": "t_dirtmound", - "description": "A fresh grave, covered with stones, either to keep something from digging it out or to keep one inside from digging out of it. Two planks mark this place of someone's eternal rest.", - "symbol": "#", - "color": "brown", - "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE", "CONTAINER", "SEALED" ], - "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } - }, - { - "type": "terrain", - "id": "t_rock_floor_no_roof", - "name": "rock floor", - "description": "A relatively flat area of rock and stone. Looks stable enough to be mined with the proper mining gear.", - "symbol": ".", - "color": "light_gray", - "looks_like": "t_rock_floor", - "move_cost": 2, - "roof": "t_open_air", - "flags": [ "TRANSPARENT", "FLAT", "ROAD" ], - "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_pavement", - "name": "pavement", - "connects_to": "PAVEMENT", - "description": "A segment of asphalt, slowly degrading from cracks, frost heaves and lack of maintenance.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "rock", "count": [ 2, 10 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_pavement_y", - "name": "yellow pavement", - "connects_to": "PAVEMENT", - "description": "Streaks of carefully aligned yellow paint mark the road to inform drivers not to cross. No one is enforcing these rules anymore.", - "symbol": ".", - "color": "yellow", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "rock", "count": [ 2, 10 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_sidewalk", - "name": "sidewalk", - "description": "An area of common poured concrete, damaged by frost heaves and large cracks due to lack of maintenance.", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "rock", "count": [ 2, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_concrete", - "name": "concrete", - "description": "A newer segment of poured concrete with surface finishes for aesthetics and resistance to freeze-thaw cycles.", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "rock", "count": [ 2, 15 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_floor_noroof", - "name": "wooden floor", - "description": "Wooden floor created from boards, packed tightly together and nailed down. Common in patios.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_linoleum_white_no_roof", - "name": "linoleum tile", - "looks_like": "t_linoleum_white", - "description": "A section of flooring made out of a tough, rubbery material. Colored a simple white.", - "symbol": ".", - "color": "white", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "FLAT", "ROAD" ], - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - }, - { - "type": "terrain", - "id": "t_linoleum_gray_no_roof", - "name": "linoleum tile", - "looks_like": "t_linoleum_gray", - "description": "A section of flooring made out of a tough, gray, rubbery material.", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-floors_indoor.json b/data/json/furniture_and_terrain/terrain-floors_indoor.json deleted file mode 100644 index d5a2ca42ba50e..0000000000000 --- a/data/json/furniture_and_terrain/terrain-floors_indoor.json +++ /dev/null @@ -1,669 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_thconc_floor", - "name": "concrete floor", - "description": "A bare and cold concrete floor with matching roof, could still insulate from the outdoors but roof collapse is possible if supporting walls are broken down.", - "symbol": ".", - "color": "cyan", - "move_cost": 2, - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 100, - "str_max": 400, - "str_min_supported": 150, - "items": [ - { "item": "rock", "count": [ 5, 10 ] }, - { "item": "scrap", "count": [ 5, 8 ] }, - { "item": "rebar", "count": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_thconc_y", - "name": "concrete floor", - "description": "A bare and cold concrete floor with a streak of yellow paint, could still insulate from the outdoors but roof collapse is possible if supporting walls are broken down.", - "symbol": ".", - "color": "yellow", - "looks_like": "t_wall_y", - "move_cost": 2, - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 100, - "str_max": 400, - "str_min_supported": 150, - "items": [ - { "item": "rock", "count": [ 5, 10 ] }, - { "item": "scrap", "count": [ 5, 8 ] }, - { "item": "rebar", "count": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_thconc_floor_olight", - "name": "concrete floor, overhead light", - "description": "A bare and cold concrete floor with a still-functioning light attached to the ceiling above.", - "symbol": ".", - "color": "white", - "move_cost": 2, - "light_emitted": 120, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "str_min": 4, - "str_max": 12, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_thconc_floor", - "items": [ { "item": "glass_shard", "count": [ 8, 16 ] } ] - } - }, - { - "type": "terrain", - "id": "t_ov_smreb_cage", - "name": "small rebar roof cage", - "description": "A series of structural support crafted from rebar in order to allow the pouring of concrete for a more stable floor and roof.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 4, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES" ], - "bash": { - "sound": "SCRRRASH!", - "ter_set": "t_null", - "str_min": 100, - "str_max": 400, - "str_min_supported": 150, - "items": [ { "item": "scrap", "count": [ 5, 8 ] }, { "item": "rebar", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_strconc_floor", - "name": "reinforced concrete floor", - "description": "Extremely resilient floor made from carefully placed rebar and poured concrete, capable of providing protection from the elements. As for the matching roof, it still requires supporting walls, otherwise it may very well cave in.", - "symbol": ".", - "color": "cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 150, - "str_max": 400, - "str_min_supported": 200, - "items": [ - { "item": "rock", "count": [ 10, 22 ] }, - { "item": "scrap", "count": [ 10, 12 ] }, - { "item": "rebar", "count": [ 0, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_ov_reb_cage", - "name": "rebar roof cage", - "description": "A network of architecturally sound rebar in order to support a floor and roof, looks like it's missing the poured concrete.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 4, - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES" ], - "bash": { - "sound": "SCRRRASH!", - "ter_set": "t_null", - "str_min": 100, - "str_max": 400, - "str_min_supported": 150, - "items": [ { "item": "scrap", "count": [ 10, 12 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_strconc_floor_halfway", - "name": "half-built reinforced concrete floor", - "description": "Unfinished series of rebar and poured concrete; the floor hasn't been smoothed and the roof isn't quite filled in yet.", - "symbol": ".", - "color": "cyan", - "move_cost": 2, - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ - { "item": "rock", "count": [ 5, 11 ] }, - { "item": "scrap", "count": [ 10, 12 ] }, - { "item": "rebar", "count": [ 0, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_rock_floor", - "name": "rock floor", - "description": "A relatively flat area of rock and stone. Looks stable enough to be mined with the proper mining gear.", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "INDOORS", "COLLAPSES", "SUPPORTS_ROOF", "FLAT", "ROAD" ], - "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_metal_floor", - "name": "metal floor", - "description": "High-quality and tough checkered flooring to reduce risk of slips and falls, with a matching roof.", - "symbol": ".", - "color": "light_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "sound": "thump", - "ter_set": "t_null", - "str_min": 200, - "str_max": 500, - "str_min_supported": 200, - "items": [ - { "item": "steel_lump", "count": [ 1, 4 ] }, - { "item": "steel_chunk", "count": [ 3, 12 ] }, - { "item": "scrap", "count": [ 9, 36 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_floor", - "name": "floor", - "description": "Interlocking wooden tiles that are more than likely treated against fire, with wooden posts and beams supporting a roof.", - "symbol": ".", - "color": "cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_floor_primitive", - "name": "primitive floor", - "description": "Timber floor and supports, holding up a sod roof.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ - { "item": "log", "count": [ 0, 1 ] }, - { "item": "stick", "count": [ 1, 4 ] }, - { "item": "splinter", "charges": [ 1, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_scrap_floor", - "name": "simple metal floor", - "description": "A crudely welded together floor of metal with steel trusses and supporting girders.", - "symbol": ".", - "color": "cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "str_min": 50, - "str_max": 400, - "sound": "SMASH!", - "ter_set": "t_null", - "str_min_supported": 100, - "items": [ { "item": "steel_chunk", "count": [ 5, 11 ] } ] - } - }, - { - "type": "terrain", - "id": "t_floor_waxed", - "name": "waxed floor", - "description": "Hardwood flooring that has been treated with chemicals to improve slip resistance and sliding, commonly for recreational sports.", - "symbol": ".", - "color": [ "light_red" ], - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "wax", "count": [ 1, 3 ] } ] - } - }, - { - "type": "terrain", - "id": "t_dirtfloor", - "name": "dirt floor", - "description": "Floor consisting of finely mixed earth that has been tamped down.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_shingle_flat_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_dirtfloor_thatchroof", - "name": "dirt floor", - "description": "Floor consisting of finely mixed earth that has been tamped down, with thatched roof above it.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "roof": "t_thatch_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "straw_pile", "charges": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_grate", - "name": "metal grate", - "description": "A type of walkway that can be used as protective covering over drains or even used as a filter.", - "symbol": "#", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT" ] - }, - { - "type": "terrain", - "id": "t_utility_light", - "name": "utility light", - "description": "An industrial flood light set up to illuminate the surroundings. Smashing it doesn't seem like it'd produce any worthwhile salvage.", - "symbol": ".", - "color": "white", - "move_cost": 2, - "light_emitted": 240, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD", "MINEABLE" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_floor_wax", - "name": "wax floor", - "description": "A floor section made entirely out of wax.", - "symbol": ".", - "color": "yellow", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "INDOORS", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_elevator", - "name": "elevator", - "description": "The interior section of an elevator.", - "symbol": ".", - "color": "magenta", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "INDOORS", "TRANSPARENT", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_floor_red", - "name": "red floor", - "description": "A red section of flooring.", - "symbol": ".", - "color": "red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_floor_green", - "name": "green floor", - "description": "A green section of flooring.", - "symbol": ".", - "color": "green", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_floor_blue", - "name": "blue floor", - "description": "A blue section of flooring.", - "symbol": ".", - "color": "blue", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_carpet_concrete", - "name": "industrial carpet", - "description": "Firm, low-pile, high-durability carpet in a neutral gray color, for laying down on bare concrete.", - "symbol": ".", - "color": "light_gray", - "looks_like": "t_carpet_red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 100, - "str_max": 400, - "str_min_supported": 150, - "items": [ - { "item": "rock", "count": [ 5, 10 ] }, - { "item": "scrap", "count": [ 5, 8 ] }, - { "item": "rebar", "count": [ 0, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_carpet_metal", - "name": "bunker carpet", - "description": "Firm, low-pile, totally non-flammable carpet in a neutral cream color, with an insulation layer beneath.", - "symbol": ".", - "color": "white", - "looks_like": "t_carpet_yellow", - "move_cost": 2, - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], - "bash": { - "sound": "thump", - "ter_set": "t_null", - "str_min": 200, - "str_max": 500, - "str_min_supported": 200, - "items": [ - { "item": "steel_lump", "count": [ 1, 4 ] }, - { "item": "steel_chunk", "count": [ 3, 12 ] }, - { "item": "scrap", "count": [ 9, 36 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_carpet_red", - "name": "red carpet", - "description": "Soft red carpet.", - "symbol": ".", - "color": "red", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] - } - }, - { - "type": "terrain", - "id": "t_carpet_yellow", - "name": "yellow carpet", - "description": "Soft yellow carpet.", - "symbol": ".", - "color": "yellow", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] - } - }, - { - "type": "terrain", - "id": "t_carpet_green", - "name": "green carpet", - "description": "Soft green carpet.", - "symbol": ".", - "color": "green", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] - } - }, - { - "type": "terrain", - "id": "t_carpet_purple", - "name": "purple carpet", - "description": "Soft purple carpet.", - "symbol": ".", - "color": "magenta", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] - } - }, - { - "type": "terrain", - "id": "t_linoleum_white", - "name": "linoleum tile", - "description": "A section of flooring made out of a tough, rubbery material. Colored a simple white.", - "symbol": ".", - "color": "white", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_linoleum_gray", - "name": "linoleum tile", - "roof": "t_flat_roof", - "description": "A section of flooring made out of a tough, gray, rubbery material.", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] - } - }, - { - "id": "t_floor_waxed_y", - "type": "terrain", - "name": "painted waxed floor", - "description": "This section of wax flooring has been painted.", - "symbol": ".", - "color": [ "yellow" ], - "move_cost": 2, - "roof": "t_flat_roof", - "bash": { - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "ter_set": "t_null", - "sound": "SMASH!", - "items": [ { "item": "wax", "count": [ 1, 3 ] } ] - }, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_rad_platform", - "looks_like": "t_blue_floor", - "name": "radiation platform", - "description": "A dual purpose platform that serves as a containment, and as a device that exposes items places on in to the radioactive source, by temporarily hoisting the radioactive material stored within. Operated from external console.", - "symbol": "0", - "color": "light_blue", - "move_cost": 100, - "flags": [ "TRANSPARENT", "REDUCE_SCENT", "PERMEABLE" ], - "bash": { - "str_min": 50, - "str_max": 400, - "ter_set": "t_pit", - "sound": "metal screeching!", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 4, 16 ] }, - { "item": "steel_chunk", "count": [ 1, 6 ] }, - { "item": "cobalt_60", "charges": [ 1, 5 ] }, - { "item": "lead", "charges": [ 12, 18 ] } - ] - }, - "deconstruct": { - "ter_set": "t_pit", - "items": [ - { "item": "cable", "charges": [ 8, 16 ] }, - { "item": "cobalt_60", "charges": [ 2, 10 ] }, - { "item": "scrap", "count": [ 8, 16 ] }, - { "item": "sheet_metal", "count": [ 5, 10 ] }, - { "item": "lead", "count": [ 12, 18 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_junk_floor", - "name": "junk metal floor", - "looks_like": "t_scrap_floor", - "description": "A simple roof and floor of rusty scrap metal bolted and wire-tied to a makeshift frame. Very fashionable in post-apocalyptic shantytowns. Hope you like the sound of rain on corrugated metal.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], - "bash": { - "str_min": 30, - "str_max": 200, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_dirt", - "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 40 ] } ] - } - }, - { - "id": "t_floor_waxed_y", - "type": "terrain", - "name": "painted waxed floor", - "description": "This section of wax flooring has been painted.", - "symbol": ".", - "color": [ "yellow" ], - "move_cost": 2, - "roof": "t_flat_roof", - "bash": { - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "ter_set": "t_null", - "sound": "SMASH!", - "items": [ { "item": "wax", "count": [ 1, 3 ] } ] - }, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ] - }, - { - "type": "terrain", - "id": "t_rad_platform", - "looks_like": "t_blue_floor", - "name": "radiation platform", - "description": "A dual purpose platform that serves as a containment, and as a device that exposes items places on in to the radioactive source, by temporarily hoisting the radioactive material stored within. Operated from external console.", - "symbol": "0", - "color": "light_blue", - "move_cost": 100, - "flags": [ "TRANSPARENT", "REDUCE_SCENT", "PERMEABLE" ], - "bash": { - "str_min": 50, - "str_max": 400, - "ter_set": "t_pit", - "sound": "metal screeching!", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 4, 16 ] }, - { "item": "steel_chunk", "count": [ 1, 6 ] }, - { "item": "cobalt_60", "charges": [ 1, 5 ] }, - { "item": "lead", "charges": [ 12, 18 ] } - ] - }, - "deconstruct": { - "ter_set": "t_pit", - "items": [ - { "item": "cable", "charges": [ 8, 16 ] }, - { "item": "cobalt_60", "charges": [ 2, 10 ] }, - { "item": "scrap", "count": [ 8, 16 ] }, - { "item": "sheet_metal", "count": [ 5, 10 ] }, - { "item": "lead", "count": [ 12, 18 ] } - ] - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-flora.json b/data/json/furniture_and_terrain/terrain-flora.json deleted file mode 100644 index 21fac7d72ca4b..0000000000000 --- a/data/json/furniture_and_terrain/terrain-flora.json +++ /dev/null @@ -1,2015 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_tree_walnut", - "name": "walnut tree", - "description": "A massive tree belonging to the 'Juglans' genus. If you look closely you can see some unharvested walnuts. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_walnut_harvested", - "examine_action": "harvest_ter", - "looks_like": "t_tree_hickory", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "walnut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_walnut_harvested", - "name": "walnut tree", - "description": "A massive tree belonging to the 'Juglans' genus. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_walnut", - "looks_like": "t_tree_hickory_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_blackjack", - "name": "blackjack oak", - "description": "A deciduous tree of the genus 'Quercus', with bark cracked into rectangular black plates split by narrow orange fissures. You could peel off the bark sections if you examined the tree more closely. You could cut it down with the right tools.", - "symbol": "7", - "color": "brown", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_blackjack_harvested", - "examine_action": "harvest_ter", - "harvest_by_season": [ - { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "tanbark", "base_num": [ 1, 2 ] } ] } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_blackjack_harvested", - "description": "A deciduous tree of the genus 'Quercus', with bark cracked into rectangular black plates split by narrow orange fissures. All usable bark has been stripped off. You could cut it down with the right tools.", - "name": "blackjack oak", - "symbol": "7", - "color": "brown", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_blackjack", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_chestnut", - "name": "chestnut tree", - "description": "A massive tree belonging to the 'Castanea' genus. If you look closely you can see some unharvested chestnuts. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_chestnut_harvested", - "examine_action": "harvest_ter", - "looks_like": "t_tree_hickory", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "chestnut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_chestnut_harvested", - "name": "chestnut tree", - "description": "A massive tree belonging to the 'Castanea' genus. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_chestnut", - "looks_like": "t_tree_hickory_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_beech", - "name": "beech tree", - "description": "A massive tree belonging to the 'Fagus' genus. If you look closely you can see some unharvested beech nuts. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_beech_harvested", - "examine_action": "harvest_ter", - "looks_like": "t_tree_hickory", - "harvest_by_season": [ - { "seasons": [ "autumn" ], "entries": [ { "drop": "beech_nuts", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_beech_harvested", - "name": "beech tree", - "description": "A massive tree belonging to the 'Fagus' genus. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_beech", - "looks_like": "t_tree_hickory_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_hazelnut", - "name": "hazelnut tree", - "description": "A stubby tree belonging to the 'Corylus' genus. If you look closely you can see some unharvested hazelnuts. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_hazelnut_harvested", - "examine_action": "harvest_ter", - "looks_like": "t_tree_hickory", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "hazelnut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_hazelnut_harvested", - "name": "hazelnut tree", - "description": "A stubby tree belonging to the 'Corylus' genus. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_hazelnut", - "looks_like": "t_tree_hickory_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree", - "name": "oak tree", - "description": "A massive deciduous tree belonging to the 'Quercus' genus, commonly found throughout New England region. If you look closely you can see some acorns the squirrels haven't gotten yet. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "brown_green", "brown" ], - "//": "barren in winter", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_harvested", - "examine_action": "harvest_ter", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "acorns", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_harvested", - "name": "oak tree", - "description": "A massive deciduous tree belonging to the 'Quercus' genus, commonly found throughout New England region. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_cottonwood", - "name": "cottonwood tree", - "looks_like": "t_tree", - "description": "A large tree belonging to the 'Populus' genus, commonly found throughout New England region. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "brown_green", "brown" ], - "//": "Do something cool with this and have it spread cotton around the area or something.", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_elm", - "name": "elm tree", - "looks_like": "t_tree", - "description": "A large tree belonging to the 'Ulmus' genus, commonly found throughout New England region. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "green", "green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_dead", - "name": "dead tree", - "description": "An indiscernible tree that has withered away, whether by weather, fire or otherworldy. You could cut it down with the right tools.", - "symbol": "7", - "color": "brown", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "bash": { - "str_min": 70, - "str_max": 140, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_young", - "name": "young tree", - "description": "A relatively young sapling of an indeterminate species. It could take decades before reaching maturity, so there's no use waiting around.", - "symbol": "1", - "color": [ "green", "green", "green", "brown" ], - "//": "barren in winter", - "move_cost": 4, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "YOUNG", "REDUCE_SCENT" ], - "bash": { - "str_min": 4, - "str_max": 50, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 0, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_apple", - "name": "apple tree", - "description": "This tree is a member of the 'Malus' genus, producing fruit commonly known as apples. If you examined the branches more closely, you could probably find a few mature ones in autumn. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "red_green", "brown" ], - "//": "barren in winter, fruits in autumn", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_apple_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "apple", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_apple_harvested", - "name": "apple tree", - "description": "This tree is a member of the 'Malus' genus, producing fruit commonly known as apples. There doesn't appear to be any ripe apples now. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_apple", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pear", - "name": "pear tree", - "description": "This is 'Pyrus communis', or the common pear tree, which produces viable pears in the fall. If you examined the branches more closely, you could probably find a few mature ones. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green_green", "brown" ], - "//": "barren in winter, fruits in autumn", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_pear_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "pear", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pear_harvested", - "name": "pear tree", - "description": "This is 'Pyrus communis', or the common pear tree, which produces viable pears in the fall. Looks like all the ripe pears have been picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_pear", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_coffee", - "name": "coffee tree", - "description": "This is 'gymnocladus dioicus', or the kentucky coffee tree, which produces roastable coffee pods and brewable leaves in the fall. If you examined the branches more closely, you could probably find a few mature ones. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green_green", "brown" ], - "//": "barren in winter, fruits in autumn", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_coffee_harvested", - "looks_like": "t_tree_plum", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ - { - "seasons": [ "autumn" ], - "entries": [ - { "drop": "coffee_pod", "base_num": [ 4, 10 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "tea_raw", "base_num": [ 1, 3 ], "scaled_num": [ 0, 0.5 ] } - ] - } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_coffee_harvested", - "name": "coffee tree", - "description": "This is 'gymnocladus dioicus', or the kentucky coffee tree, which produces roastable coffee pods and brewable leaves in the fall. Looks like all the ripe pods have been picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_coffee", - "looks_like": "t_tree_plum_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_cherry", - "name": "cherry tree", - "description": "One of the several species of 'Prunus' trees found in New England, it bears cherries in the summer. If you examined the foliage more closely, you could probably find some viable clusters. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "red_green", "light_green", "brown" ], - "//": "barren in winter, fruits in summer", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_cherry_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "cherries", "base_num": [ 6, 18 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_cherry_harvested", - "name": "cherry tree", - "description": "One of the several species of 'Prunus' trees found in New England, it bears cherries in the summer. Looks like all the ripe bunches of cherries have been picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_cherry", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_juniper", - "name": "juniper tree", - "description": "One of the species of 'Juniperus' that grows in New England, juniper berries grow over two to three years, first flowering. On the second year producing a green berry, the last, they produce their more famed blue varieties. If you examined the foliage more closely, you could probably find some viable clusters. You could also cut it down with the right tools.", - "symbol": "7", - "looks_like": "t_tree_pine", - "color": [ "light_green", "blue_green", "light_green", "brown" ], - "//": "Can be picked at any point in the third year assuming the berries have turned blue. But it takes a long time to regrow.", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_juniper_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "juniper", "base_num": [ 12, 24 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_juniper_harvested", - "name": "juniper tree", - "description": "One of the species of 'Juniperus' that grows in New England, juniper berries grow over two to three years. In the first year they flower, in the second year they produce a green berry, the last, they produce their more famed blue varieties. Looks like all the ripe bunches of berries have been picked. You could also cut it down with the right tools.", - "symbol": "7", - "looks_like": "t_tree_pine", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "Will take three years to regrow, in reality.", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_juniper", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_peach", - "name": "peach tree", - "description": "One of the several species of 'Prunus' trees found in New England, it bears peaches in the summer. If you examined the branches more closely, you could probably find some mature peaches. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_red_green", "light_green", "brown" ], - "//": "barren in winter, fruits in summer", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_peach_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "peach", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_peach_harvested", - "name": "peach tree", - "description": "One of the several species of 'Prunus' trees found in New England, it bears peaches in the summer. Looks like all the ripe peaches have been picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_peach", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_apricot", - "name": "apricot tree", - "description": "A transplanted species of 'Prunus armeniaca', rarely found in New England. It produces apricots in the summer. If you examined the spurs more closely, you could probably find some mature apricots. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_red_green", "light_green", "brown" ], - "//": "barren in winter, fruits in summer", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_apricot_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "apricot", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_apricot_harvested", - "name": "apricot tree", - "description": "A transplanted species of 'Prunus armeniaca', rarely found in New England. It produces apricots in the summer. Looks like all the ripe apricots have been picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_apricot", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_plum", - "name": "plum tree", - "description": "One of the several species of 'Prunus' trees found in New England, it produces plums in the summer. If you examined the spurs more closely, you could probably find some ripe plums. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "magenta_green", "light_green", "brown" ], - "//": "barren in winter, fruits in summer", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_plum_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "plums", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_plum_harvested", - "name": "plum tree", - "description": "One of the several species of 'Prunus' trees found in New England, it produces plums in the summer. Looks like all the ripe plums have been picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_plum", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_mulberry", - "name": "mulberry tree", - "description": "This tree is a member of the 'Morus' genus, producing fruit commonly known as mulberries. In the summer many berries can be picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "red_green", "brown" ], - "//": "barren in winter, fruits in summer", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_mulberry_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_tree_apple", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "mulberries", "base_num": [ 8, 20 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_mulberries", "base_num": [ 3, 5 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_mulberry_harvested", - "name": "mulberry tree", - "description": "This tree is a member of the 'Morus' genus, producing fruit commonly known as mulberries. There doesn't appear to be any ripe mulberries now. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_mulberry", - "looks_like": "t_tree_apple_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_elderberry", - "name": "elderberry tree", - "description": "This tree is a member of the 'Sambucus' genus, producing fruit commonly known as elderberries. In the summer many berries can be picked. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "red_green", "brown" ], - "//": "barren in winter, fruits in summer", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_elderberry_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_tree_plum", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "elderberries", "base_num": [ 8, 20 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_elderberries", "base_num": [ 3, 5 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_elderberry_harvested", - "name": "elderberry tree", - "description": "This tree is a member of the 'Sambucus' genus, producing fruit commonly known as elderberries. There doesn't appear to be any ripe elderberries now. You could also cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, no fruits anymore", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_elderberry", - "looks_like": "t_tree_plum_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pine", - "name": "pine tree", - "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. If you examined the tree more closely, you might find usable sticky whorls and unharvested pinecones. Also, you could cut it down with the right tools.", - "symbol": "4", - "color": "green", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "transforms_into": "t_tree_pine_harvested", - "examine_action": "harvest_ter", - "harvest_by_season": [ - { - "seasons": [ "spring", "summer", "autumn", "winter" ], - "entries": [ { "drop": "pine_bough", "base_num": [ 2, 8 ] }, { "drop": "pinecone", "base_num": [ 1, 4 ] } ] - } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pine_harvested", - "name": "pine tree", - "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. Some of the branches have been stripped away and many of the pinecones aren't developed fully yet, but given a season, it could be harvestable again. Also, you could cut it down with the right tools.", - "symbol": "4", - "color": "green", - "copy-from": "t_tree_pine", - "looks_like": "t_tree_deadpine", - "transforms_into": "t_tree_pine", - "examine_action": "harvested_plant" - }, - { - "type": "terrain", - "id": "t_tree_deadpine", - "name": "dead pine tree", - "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. This trees branches are bare, and it appears to be dead. You could cut it down with the right tools.", - "symbol": "4", - "color": "brown", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "bash": { - "str_min": 60, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_birch", - "name": "birch tree", - "description": "A tall deciduous tree of the 'Betula' genus, with the characteristic peeling bark. Species like 'B. alleghaniensis', 'B. papyrifera', and 'B. populifolia' are the most common in the New England region. You could tear off some strips of bark if you examined the tree more closely. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, harvestable all year round", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "examine_action": "harvest_ter", - "transforms_into": "t_tree_birch_harvested", - "harvest_by_season": [ - { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "birchbark", "base_num": [ 2, 8 ] } ] } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_birch_harvested", - "name": "birch tree", - "description": "A tall deciduous tree of the 'Betula' genus, with the characteristic peeling bark. Species like 'B. alleghaniensis', 'B. papyrifera', and 'B. populifolia' are the most common in the New England region. Looks like there isn't enough rhytidome to peel off yet. You could cut it down with the right tools.", - "symbol": "7", - "color": "green", - "//": "dead, not harvestable", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_willow", - "name": "willow tree", - "description": "A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy branches that hang down like curtains. You could tear off some bark. You could cut it down with the right tools.", - "symbol": "4", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, harvestable all year round", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "examine_action": "harvest_ter", - "transforms_into": "t_tree_willow_harvested", - "harvest_by_season": [ - { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "willowbark", "base_num": [ 2, 8 ] } ] } - ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_willow_harvested", - "name": "willow tree", - "description": "A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy branches that hang down like curtains. Looks like all usable bark has been torn off, and new rhytidomes have not formed yet. You could cut it down with the right tools.", - "symbol": "4", - "color": [ "brown", "brown", "brown", "brown" ], - "//": "barren in winter, not harvestable", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_maple", - "name": "maple tree", - "description": "A large deciduous tree of the 'Acer' genus. The leaves are distinctively shaped with five prongs. It could be tapped in order to extract maple syrup. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "red", "light_green", "light_green", "red" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "examine_action": "tree_maple", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_maple_tapped", - "name": "maple tree", - "description": "A large deciduous tree of the 'Acer' genus. The leaves are distinctively shaped with five prongs. A spigot is wedged into the trunk, and sweet maple syrup can be extracted. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "red", "light_green", "light_green", "red" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "SEALED", "PLACE_ITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "LIQUIDCONT" ], - "examine_action": "tree_maple_tapped", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_hickory", - "name": "hickory tree", - "description": "A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts if you examined the tree more closely. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "brown_green", "brown" ], - "//": "barren in winter, harvestable in autum", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "examine_action": "tree_hickory", - "harvest_by_season": [ - { "seasons": [ "autumn" ], "entries": [ { "drop": "hickory_nut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } - ], - "transforms_into": "t_tree_hickory_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_hickory_harvested", - "description": "A tall deciduous tree of the 'Carya' genus. It looks like the tree has been picked clean of hickory nuts. You could cut it down with the right tools.", - "name": "hickory tree", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "//": "barren in winter, kind of harvestable", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "tree_hickory", - "transforms_into": "t_tree_hickory", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pistachio", - "name": "pistachio tree", - "description": "A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is not native to this region. You could look for pistachio nuts if you examined the tree more closely. You could cut it down with the right tools.", - "looks_like": "t_tree_hickory", - "//": "Pistachio tree is not a local native and is only used in specific locations like orchards and gardens.", - "symbol": "7", - "color": [ "light_green", "light_green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "examine_action": "harvest_ter", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "pistachio", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "transforms_into": "t_tree_pistachio_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pistachio_harvested", - "name": "pistachio tree", - "description": "A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is not native to this region. Unfortunately, it looks like it has been picked clean of pistachio nuts. You could cut it down with the right tools.", - "looks_like": "t_tree_hickory_harvested", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_pistachio", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_almond", - "name": "almond tree", - "description": "A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is not native to this region. You could look for fresh almonds if you examined the tree more closely. You could cut it down with the right tools.", - "looks_like": "t_tree_hickory", - "//": "Almond tree is not a local native and is only used in specific locations like orchards and gardens.", - "symbol": "7", - "color": [ "light_green", "light_green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "examine_action": "harvest_ter", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "almond", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "transforms_into": "t_tree_almond_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_almond_harvested", - "description": "A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is not native to this region. There are no almonds left to pick on the tree. You could cut it down with the right tools.", - "name": "almond tree", - "looks_like": "t_tree_hickory_harvested", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_almond", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pecan", - "name": "pecan tree", - "description": "A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts if you examined the tree more closely. You could cut it down with the right tools.", - "//": "Pecan tree is not a local native and is only used in specific locations like orchards and gardens.", - "symbol": "7", - "color": [ "light_green", "light_green", "brown_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "examine_action": "harvest_ter", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "pecan", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "transforms_into": "t_tree_pecan_harvested", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_pecan_harvested", - "name": "pecan tree", - "description": "A tall deciduous tree of the 'Carya' genus. It doesn't look like there are any pecan nuts left on the tree. You could cut it down with the right tools.", - "symbol": "7", - "color": [ "light_green", "light_green", "light_green", "brown" ], - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], - "examine_action": "harvested_plant", - "transforms_into": "t_tree_pecan", - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_tree_hickory_dead", - "name": "dead hickory tree", - "description": "The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing useful can be foraged from this poor, dead tree. You could cut it down with the right tools.", - "symbol": "7", - "color": "green", - "//": "dead, not usable at all", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], - "bash": { - "str_min": 60, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] - } - }, - { - "type": "terrain", - "id": "t_underbrush", - "name": "underbrush", - "description": "Small plants and shrubs that decorate the forest. An observant forager could obtain edible plants, acorns, eggs, and mushrooms from it.", - "symbol": "#", - "color": "light_green", - "move_cost": 6, - "flags": [ "TRANSPARENT", "DIGGABLE", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "PLACE_ITEM", "SHRUB", "SHORT" ], - "examine_action": "shrub_wildveggies", - "bash": { - "str_min": 4, - "str_max": 30, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_underbrush_harvested_spring", - "name": "underbrush", - "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it.", - "symbol": "#", - "color": "green", - "move_cost": 6, - "flags": [ - "TRANSPARENT", - "DIGGABLE", - "CONTAINER", - "FLAMMABLE_ASH", - "THIN_OBSTACLE", - "PLACE_ITEM", - "SHRUB", - "SHORT", - "HARVESTED" - ], - "harvest_season": "SPRING", - "transforms_into": "t_underbrush", - "bash": { - "str_min": 4, - "str_max": 30, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_underbrush_harvested_summer", - "name": "underbrush", - "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it.", - "symbol": "#", - "color": "green", - "move_cost": 6, - "flags": [ - "TRANSPARENT", - "DIGGABLE", - "CONTAINER", - "FLAMMABLE_ASH", - "THIN_OBSTACLE", - "PLACE_ITEM", - "SHRUB", - "SHORT", - "HARVESTED" - ], - "harvest_season": "SUMMER", - "transforms_into": "t_underbrush", - "bash": { - "str_min": 4, - "str_max": 30, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_underbrush_harvested_autumn", - "name": "underbrush", - "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it.", - "symbol": "#", - "color": "green", - "move_cost": 6, - "flags": [ - "TRANSPARENT", - "DIGGABLE", - "CONTAINER", - "FLAMMABLE_ASH", - "THIN_OBSTACLE", - "PLACE_ITEM", - "SHRUB", - "SHORT", - "HARVESTED" - ], - "harvest_season": "AUTUMN", - "transforms_into": "t_underbrush", - "bash": { - "str_min": 4, - "str_max": 30, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_underbrush_harvested_winter", - "name": "underbrush", - "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it. Frost covers it.", - "symbol": "#", - "color": "green", - "move_cost": 6, - "flags": [ - "TRANSPARENT", - "DIGGABLE", - "CONTAINER", - "FLAMMABLE_ASH", - "THIN_OBSTACLE", - "PLACE_ITEM", - "SHRUB", - "SHORT", - "HARVESTED" - ], - "harvest_season": "WINTER", - "transforms_into": "t_underbrush", - "bash": { - "str_min": 4, - "str_max": 30, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub", - "name": "shrub", - "description": "A small shrub.", - "symbol": "#", - "color": "green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "PLACE_ITEM", "SHRUB", "SHORT" ], - "bash": { - "str_min": 4, - "str_max": 30, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_peanut", - "name": "peanut bush", - "description": "A small bush of crunchy peanuts.", - "//": "Peanut bushes are not a local native so this is for use in specific locations like farms and gardens.", - "symbol": "#", - "color": "brown_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], - "transforms_into": "t_shrub_peanut_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "peanut", "base_num": [ 5, 10 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_peanut_harvested", - "name": "peanut bush", - "description": "A small peanut bush that's fruitless.", - "symbol": "#", - "color": "brown_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], - "transforms_into": "t_shrub_peanut", - "examine_action": "harvested_plant", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_blueberry", - "name": "blueberry bush", - "description": "A small bush of sweet blueberries.", - "symbol": "#", - "color": "light_blue_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], - "transforms_into": "t_shrub_blueberry_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "blueberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_blueberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_blueberry_harvested", - "name": "blueberry bush", - "description": "A small blueberry bush that's fruitless.", - "symbol": "#", - "color": "blue_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], - "transforms_into": "t_shrub_blueberry", - "examine_action": "harvested_plant", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_strawberry", - "name": "strawberry bush", - "description": "A small bush of juicy strawberries.", - "symbol": "#", - "color": "light_red_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], - "transforms_into": "t_shrub_strawberry_harvested", - "examine_action": "harvest_ter_nectar", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "strawberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_strawberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_strawberry_harvested", - "name": "strawberry bush", - "description": "A small strawberry bush that's fruitless.", - "symbol": "#", - "color": "red_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], - "transforms_into": "t_shrub_strawberry", - "examine_action": "harvested_plant", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_blackberry", - "name": "blackberry bush", - "description": "A small bush of delicious blackberries. Watch out for its thorns!", - "symbol": "#", - "color": "black_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], - "transforms_into": "t_shrub_blackberry_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_shrub_blueberry", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "blackberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_blackberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_blackberry_harvested", - "name": "blackberry bush", - "description": "A small blackberry bush that's fruitless. Watch out for its thorns!", - "symbol": "#", - "color": "black_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP", "HARVESTED" ], - "transforms_into": "t_shrub_blackberry", - "examine_action": "harvested_plant", - "looks_like": "t_shrub_blueberry_harvested", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_huckleberry", - "name": "huckleberry bush", - "description": "A small bush of huckleberries, often mistaken as blueberries.", - "symbol": "#", - "color": "light_blue_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], - "transforms_into": "t_shrub_huckleberry_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_shrub_blueberry", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "huckleberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_huckleberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_huckleberry_harvested", - "name": "huckleberry bush", - "description": "A small huckleberry bush that's fruitless.", - "symbol": "#", - "color": "blue_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], - "transforms_into": "t_shrub_huckleberry", - "examine_action": "harvested_plant", - "looks_like": "t_shrub_blueberry_harvested", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_raspberry", - "name": "raspberry bush", - "description": "A small bush of delicious raspberries. Watch out for its thorns!", - "symbol": "#", - "color": "light_red_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], - "transforms_into": "t_shrub_raspberry_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_shrub_strawberry", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "raspberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_raspberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_raspberry_harvested", - "name": "raspberry bush", - "description": "A small raspberry bush that's fruitless. Watch out for its thorns!", - "symbol": "#", - "color": "red_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP", "HARVESTED" ], - "transforms_into": "t_shrub_raspberry", - "examine_action": "harvested_plant", - "looks_like": "t_shrub_strawberry_harvested", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_grape", - "name": "grape bush", - "description": "A bush of a different species invaded by vines of grapes.", - "symbol": "#", - "color": "light_green_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], - "transforms_into": "t_shrub_grape_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_shrub_blueberry", - "harvest_by_season": [ - { - "seasons": [ "summer" ], - "entries": [ - { "drop": "grapes", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, - { "drop": "seed_grapes", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } - ] - } - ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_grape_harvested", - "name": "grape bush", - "description": "A bush of a different species invaded by grape vines but they're fruitless.", - "symbol": "#", - "color": "green_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], - "transforms_into": "t_shrub_grape", - "examine_action": "harvested_plant", - "looks_like": "t_shrub_blueberry_harvested", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_rose", - "name": "rose bush", - "description": "A fat bush of beautiful red roses, if only you could get a date! Watch out for its thorns!", - "symbol": "#", - "color": "light_red_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], - "transforms_into": "t_shrub_rose_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_shrub_strawberry", - "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "rose_hips", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], - "//": "Insert rose (flower) harvest in summer once flowers have a use (same for other generic flowers).", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_rose_harvested", - "name": "rose bush", - "description": "A fat rose bush that currently has no blooms. Watch out for its thorns!", - "symbol": "#", - "color": "red_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP", "HARVESTED" ], - "transforms_into": "t_shrub_rose", - "examine_action": "harvested_plant", - "looks_like": "t_shrub_strawberry_harvested", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_hydrangea", - "name": "hydrangea bush", - "description": "A fat, bush of fragrant blue hydrangeas.", - "symbol": "#", - "color": "light_blue_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], - "transforms_into": "t_shrub_hydrangea_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_shrub_blueberry", - "//": "Insert hydrangea harvest in autumn once flowers have a use (same for other generic flowers).", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_hydrangea_harvested", - "name": "hydrangea bush", - "description": "A fat hydrangea bush that currently has no blooms.", - "symbol": "#", - "color": "blue_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], - "transforms_into": "t_shrub_hydrangea", - "examine_action": "harvested_plant", - "looks_like": "t_shrub_blueberry_harvested", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_lilac", - "name": "lilac bush", - "description": "A wide, bush of bright pinkish purple lilacs.", - "symbol": "#", - "color": "magenta_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], - "transforms_into": "t_shrub_lilac_harvested", - "examine_action": "harvest_ter_nectar", - "looks_like": "t_shrub_hydrangea", - "//": "Insert lilac harvest once flowers have a use (same for other generic flowers).", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_shrub_lilac_harvested", - "name": "lilac bush", - "description": "A wide lilac bush that currently has no blooms.", - "symbol": "#", - "color": "magenta_green", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], - "transforms_into": "t_shrub_lilac", - "examine_action": "harvested_plant", - "looks_like": "t_shrub_hydrangea_harvested", - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_dirt", - "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_trunk", - "name": "tree trunk", - "description": "A section of trunk from a tree that has been cut down. Can be sawn into logs with the right tool.", - "symbol": "1", - "color": "brown", - "move_cost": 4, - "coverage": 45, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DIGGABLE", "REDUCE_SCENT", "MOUNTABLE", "SHORT" ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "splinter", "count": [ 5, 15 ] } ] - } - }, - { - "type": "terrain", - "id": "t_stump", - "name": "tree stump", - "description": "A tree stump, remnant of a tree that has been cut down.", - "symbol": "^", - "color": "brown", - "move_cost": 3, - "coverage": 35, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DIGGABLE", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "FLAT_SURF" ], - "bash": { - "str_min": 80, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ { "item": "splinter", "count": [ 5, 15 ] } ] - } - }, - { - "type": "terrain", - "id": "t_woodchips", - "name": "woodchips", - "looks_like": "t_dirt", - "description": "Small splinters of wood laid out in a layer to prevent unwanted plants from growing.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100 } - }, - { - "type": "terrain", - "id": "t_moss", - "name": "moss", - "looks_like": "t_grass", - "description": "Moist spongy moss.", - "symbol": ".", - "color": "light_green", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_grass", - "name": "grass", - "description": "An area of hardy Kentucky bluegrass about ankle high. Cutting the grass short enough would destroy the root system, causing this area to turn into a patch of dirt.", - "symbol": ".", - "color": "green", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_grass_white", - "name": "white grass", - "description": "A section of Kentucky bluegrass covered in white latex-based paint, with neat lines designed for recreational sports.", - "symbol": ".", - "color": "white", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_grass_long", - "name": "long grass", - "description": "Long shaggy grass about shin high.", - "looks_like": "t_grass", - "symbol": ",", - "color": "green", - "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_grass_tall", - "name": "tall grass", - "description": "Tall grass about head high.", - "looks_like": "t_shrub", - "symbol": ",", - "color": "brown_green", - "move_cost": 5, - "coverage": 50, - "flags": [ "TRANSPARENT", "DIGGABLE", "PLOWABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_grass_dead", - "name": "dead grass", - "description": "Long shaggy grass that hasn't been cut recently.", - "looks_like": "t_dirt", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_grass_golf", - "name": "golf green", - "description": "Grass mowed very short and neat.", - "looks_like": "t_grass", - "symbol": ".", - "color": "light_green", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_golf_hole", - "name": "golf hole", - "description": "A small plastic cup embedded in the grass.", - "symbol": "o", - "color": "white", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], - "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } - } -] diff --git a/data/json/furniture_and_terrain/terrain-fungal.json b/data/json/furniture_and_terrain/terrain-fungal.json deleted file mode 100644 index e91124a508ee2..0000000000000 --- a/data/json/furniture_and_terrain/terrain-fungal.json +++ /dev/null @@ -1,153 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_marloss", - "name": "marloss bush", - "description": "This alien plant superficially resembles a blueberry bush, and hangs with large, juicy pink pomes that emit a heady, fruity aroma.", - "symbol": "#", - "color": "pink", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FUNGUS", "SHRUB", "SHORT" ], - "examine_action": "shrub_marloss", - "bash": { "str_min": 4, "str_max": 60, "sound": "crunch.", "sound_fail": "poof!", "ter_set": "t_fungus" } - }, - { - "type": "terrain", - "id": "t_fungus", - "name": "fungal bed", - "description": "Fungus grows thick here, obscuring the ground beneath it.", - "symbol": ".", - "color": "light_gray", - "move_cost": 3, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DIGGABLE", "FUNGUS", "NOCOLLIDE" ], - "bash": { - "sound": "smash", - "//": "muffled because fungus", - "ter_set": "t_null", - "str_min": 20, - "str_max": 400, - "str_min_supported": 50 - } - }, - { - "type": "terrain", - "id": "t_fungus_floor_in", - "name": "fungal floor", - "description": "Grayish mold coats both the floor and the roof here, silent and still. Stray spores waft through the air.", - "//": "roofed", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "FUNGUS" ], - "bash": { "sound": "smash", "ter_set": "t_null", "str_min": 20, "str_max": 400, "str_min_supported": 50 } - }, - { - "type": "terrain", - "id": "t_fungus_floor_sup", - "name": "fungal floor", - "description": "Grayish mold coats the floor here, silent and still.", - "//": "supports", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SUPPORTS_ROOF", "FLAT", "FUNGUS" ], - "bash": { "sound": "smash", "ter_set": "t_null", "str_min": 20, "str_max": 400, "str_min_supported": 50 } - }, - { - "type": "terrain", - "id": "t_fungus_floor_out", - "name": "fungal floor", - "description": "Grayish mold coats the ground here, silent and still.", - "//": "outside", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "FUNGUS" ], - "bash": { "sound": "SMASH!", "ter_set": "t_null", "str_min": 20, "str_max": 400, "str_min_supported": 50 } - }, - { - "type": "terrain", - "id": "t_fungus_wall", - "aliases": [ "t_fungus_wall_h", "t_fungus_wall_v" ], - "name": "fungal wall", - "description": "Several thick, large tendrils of fungus perforate the wall here, piercing straight through it from the outside. Despite the apparent damage, the wall is still structurally sound.", - "symbol": "O", - "color": "dark_gray", - "move_cost": 0, - "coverage": 100, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "FUNGUS", "WALL", "MINEABLE" ], - "bash": { "str_min": 30, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } - }, - { - "type": "terrain", - "id": "t_fungus_wall_transformed", - "name": "fungal wall", - "description": "The fungus here has grown thickly and tightly enough to form a solid wall. It feels very stiff to the touch, and seems to be very strong.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 0, - "coverage": 100, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "FUNGUS", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE" ], - "bash": { "str_min": 30, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } - }, - { - "type": "terrain", - "id": "t_fungus_mound", - "name": "fungal mound", - "description": "A mound of fungal matter, intertwined in itself.", - "symbol": "#", - "color": "light_gray", - "move_cost": 4, - "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "FLAMMABLE_ASH", "FUNGUS", "MOUNTABLE" ], - "bash": { "str_min": 10, "str_max": 70, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } - }, - { - "type": "terrain", - "id": "t_shrub_fungal", - "name": "fungal shrub", - "description": "This shrub has been completely absorbed by the mushrooms. Its branches droop and have lost much of their structure, and its leaves have vanished, replaced by fleshy gray sacks that visibly expand and contract.", - "symbol": "#", - "color": "dark_gray", - "move_cost": 8, - "coverage": 40, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "PLACE_ITEM", "SHRUB", "FUNGUS", "SHORT" ], - "bash": { "str_min": 4, "str_max": 60, "sound": "crunch.", "sound_fail": "poof!", "ter_set": "t_fungus" } - }, - { - "type": "terrain", - "id": "t_tree_fungal", - "name": "fungal tree", - "description": "Once tall and majestic, this tree is now a slave to the fungus like the landscape around it. Its bark is penetrated by and covered with fungal tendrils, and the canopy has rotted away, leaving only the branches, stretching forlornly to the sky as if to escape the infection overrunning it.", - "symbol": "7", - "color": "dark_gray", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "TREE", "REDUCE_SCENT" ], - "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } - }, - { - "type": "terrain", - "id": "t_tree_fungal_young", - "name": "young fungal tree", - "description": "A small sapling poking through the ground, infested by fungal mold.", - "symbol": "1", - "color": "dark_gray", - "move_cost": 4, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "YOUNG", "REDUCE_SCENT" ], - "bash": { "str_min": 4, "str_max": 50, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } - }, - { - "type": "terrain", - "id": "t_marloss_tree", - "name": "marloss tree", - "description": "This tree stands as a stark outlier to the landscape around it. Despite its infestation, its leaves wave proudly in the wind, colored pinkish-white. Its branches are heavy with pink fruit that looks both mutated and delicious.", - "symbol": "7", - "color": "pink", - "move_cost": 0, - "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "TREE", "REDUCE_SCENT" ], - "examine_action": "tree_marloss", - "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } - } -] diff --git a/data/json/furniture_and_terrain/terrain-liquids.json b/data/json/furniture_and_terrain/terrain-liquids.json deleted file mode 100644 index 2a6530cd1b125..0000000000000 --- a/data/json/furniture_and_terrain/terrain-liquids.json +++ /dev/null @@ -1,122 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_water_sh", - "name": "shallow water", - "description": "The water isn't too deep here. With a watertight container, you could gather fresh water from here. Not safe to drink as is.", - "symbol": "~", - "color": "light_blue", - "move_cost": 5, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "FISHABLE" ], - "connects_to": "WATER", - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_water_dp", - "name": "deep water", - "description": "You're having trouble seeing the bottom through the deep water here. With a watertight container, you could gather fresh water from here. Not safe to drink as is.", - "symbol": "~", - "color": "blue", - "move_cost": 8, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "DEEP_WATER", "FISHABLE" ], - "connects_to": "WATER", - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_water_moving_sh", - "name": "flowing shallow water", - "description": "The streaming water isn't too deep here. With a watertight container, you could gather fresh water from here. Not safe to drink as is, although probably safer than stagnant water.", - "looks_like": "t_water_sh", - "symbol": "~", - "color": "light_blue", - "move_cost": 6, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "FISHABLE", "CURRENT" ], - "connects_to": "WATER", - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_water_moving_dp", - "name": "flowing deep water", - "description": "The streaming water looks deep here. With a watertight container, you could gather fresh water from here. Not safe to drink as is, although probably safer than stagnant water.", - "looks_like": "t_water_dp", - "symbol": "~", - "color": "blue", - "move_cost": 10, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "DEEP_WATER", "FISHABLE", "CURRENT" ], - "connects_to": "WATER", - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_swater_sh", - "name": "shallow water", - "description": "The water isn't too deep here. With a watertight container, you could gather salt water from here.", - "symbol": "~", - "color": "light_blue", - "move_cost": 5, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "SALT_WATER", "FISHABLE" ], - "connects_to": "WATER", - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_swater_dp", - "name": "deep water", - "description": "You're having trouble seeing the bottom through the deep water here. With a watertight container, you could gather salt water from here.", - "symbol": "~", - "color": "blue", - "move_cost": 8, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "SALT_WATER", "DEEP_WATER", "FISHABLE" ], - "connects_to": "WATER", - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_water_pool", - "name": "pool water", - "description": "A deep pool full of water. Never swim without a lifeguard present. Even though monsters probably ate them.", - "symbol": "~", - "color": "light_blue", - "move_cost": 5, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "INDOORS", "DEEP_WATER" ], - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_water_pool_shallow", - "name": "shallow pool water", - "description": "A shallow pool of water.", - "symbol": "~", - "color": "light_blue", - "move_cost": 5, - "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "INDOORS" ], - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_sewage", - "name": "sewage", - "description": "Gross. Sewage water flows through here. As if it needed saying, this isn't safe to drink.", - "symbol": "~", - "color": "light_green", - "move_cost": 6, - "flags": [ "TRANSPARENT", "SWIMMABLE" ], - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_lava", - "name": "lava", - "description": "An extremely hot, glowing liquid, composed of molten rock and/or metal. In some places, lava-grilled steak is a delicacy.", - "symbol": "~", - "color": "red", - "move_cost": 4, - "light_emitted": 50, - "trap": "tr_lava", - "flags": [ "TRANSPARENT", "LIQUID", "DESTROY_ITEM", "USABLE_FIRE" ], - "//": "lava-seared moose meat? yes, please" - } -] diff --git a/data/json/furniture_and_terrain/terrain-manufactured.json b/data/json/furniture_and_terrain/terrain-manufactured.json deleted file mode 100644 index 7727916d77fbb..0000000000000 --- a/data/json/furniture_and_terrain/terrain-manufactured.json +++ /dev/null @@ -1,1405 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_recycler", - "name": "metal compactor", - "description": "A hydraulic compactor that can accept items made of various metals, and press them into basic shapes, ready for further crafting.", - "symbol": "&", - "color": "green", - "move_cost": 0, - "max_volume": 8000, - "flags": [ "TRANSPARENT", "REDUCE_SCENT", "PERMEABLE" ], - "examine_action": "recycle_compactor", - "bash": { - "str_min": 20, - "str_max": 150, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_thconc_floor", - "items": [ - { "item": "steel_lump", "count": [ 0, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_gas_pump", - "name": "gasoline pump", - "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", - "name": "tank with gasoline", - "description": "A tank filled with gasoline.", - "symbol": "Q", - "color": "brown_red", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT" ] - }, - { - "type": "terrain", - "id": "t_gas_pump_a", - "name": "gasoline pump", - "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.", - "//": "clone of t_gas_pump, but other color, must be clone every time", - "symbol": "&", - "color": "yellow_red", - "move_cost": 0, - "coverage": 65, - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT" ], - "examine_action": "gaspump" - }, - { - "type": "terrain", - "id": "t_gas_pump_smashed", - "name": "smashed gas pump", - "description": "The horror! This gasoline pump has been destroyed, denying you access to the liquid gold.", - "symbol": "&", - "color": "light_red", - "move_cost": 0, - "coverage": 55, - "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 40, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pavement", - "items": [ - { "item": "steel_lump", "prob": 50 }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 7 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_diesel_pump", - "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.", - "symbol": "&", - "color": "green", - "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", - "name": "smashed diesel pump", - "description": "You're not getting any diesel out of this pump any time soon. Some barbarian decided to take their frustration out on it.", - "symbol": "&", - "color": "light_green", - "move_cost": 0, - "coverage": 55, - "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 40, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pavement", - "items": [ - { "item": "steel_lump", "prob": 50 }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 7 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_atm", - "name": "ATM", - "description": "For your banking convenience, this Automated Teller Machine is fully capable of operating autonomously in the event of complete network failure. You can deposit funds from cash cards and migrate all of your inflation-adjusted earnings to a single card. These things have seen better days. There's been a run on the bank, and this machine has the dents and cracks to prove it.", - "symbol": "&", - "color": "magenta", - "move_cost": 0, - "coverage": 55, - "flags": [ "TRANSPARENT", "NOITEM", "ALARMED", "REDUCE_SCENT", "PERMEABLE" ], - "examine_action": "atm", - "bash": { - "str_min": 40, - "str_max": 210, - "explosive": 5, - "sound": "Critical failure imminent, self destruct activated. Have a nice day!", - "sound_fail": "clang!", - "ter_set": "t_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 4, 8 ] } ] - } - }, - { - "type": "terrain", - "id": "t_generator_broken", - "name": "broken generator", - "description": "This generator is broken and will not help you produce usable electricity.", - "symbol": "&", - "color": "light_gray", - "move_cost": 0, - "coverage": 30, - "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pavement", - "items": [ - { "item": "steel_lump", "prob": 50 }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 7 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_missile", - "name": "missile", - "description": "This is a section of an ICBM, an Intercontinental Ballistic Missile. This isn't the kind of rocket that goes to the moon.", - "symbol": "#", - "color": "light_blue", - "move_cost": 0, - "flags": [ "NOITEM" ], - "bash": { - "str_min": 50, - "str_max": 400, - "explosive": 100, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_missile_exploded", - "items": [ { "item": "scrap", "count": [ 4, 8 ] }, { "item": "plut_cell", "charges": [ 0, 3 ] } ] - } - }, - { - "type": "terrain", - "id": "t_missile_exploded", - "name": "blown-out missile", - "description": "This is a section of an ICBM, an Intercontiental Ballistic Missile. This isn't the kind of rocket that's going anywhere.", - "symbol": "#", - "color": "light_gray", - "move_cost": 0, - "flags": [ "NOITEM" ], - "bash": { - "str_min": 20, - "str_max": 150, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_metal_floor", - "items": [ - { "item": "steel_lump", "count": [ 0, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 3 ] }, - { "item": "scrap", "count": [ 4, 8 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_radio_tower", - "name": "radio tower", - "description": "This is the structure of a radio transmission tower.", - "symbol": "&", - "color": "light_gray", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "MINEABLE" ], - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_concrete", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_radio_controls", - "name": "radio controls", - "description": "This console appears to control a nearby radio transmission tower. It doesn't seem to be fully operational.", - "symbol": "6", - "color": "green", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE" ], - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "processor", "count": [ 1, 2 ] }, - { "item": "RAM", "count": [ 4, 8 ] }, - { "item": "cable", "charges": [ 4, 6 ] }, - { "item": "small_lcd_screen", "count": [ 1, 2 ] }, - { "item": "e_scrap", "count": [ 10, 16 ] }, - { "item": "circuit", "count": [ 6, 10 ] }, - { "item": "power_supply", "count": [ 2, 4 ] }, - { "item": "amplifier", "count": [ 2, 4 ] }, - { "item": "plastic_chunk", "count": [ 10, 12 ] }, - { "item": "scrap", "count": [ 6, 8 ] } - ] - }, - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_console_broken", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_sewage_pipe", - "name": "high gauge pipe", - "description": "This is a section of high gauge pipe.", - "symbol": "1", - "color": "light_gray", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "THIN_OBSTACLE", "MINEABLE" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_sewage", - "items": [ { "item": "scrap", "count": [ 4, 8 ] }, { "item": "steel_plate", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_sewage_pump", - "name": "high gauge pump", - "description": "This unpowered pump previously would have moved fluids around in a hurry.", - "symbol": "&", - "color": "light_gray", - "move_cost": 0, - "coverage": 50, - "flags": [ "NOITEM", "REDUCE_SCENT", "MOUNTABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_sewage", - "items": [ - { "item": "steel_lump", "prob": 50 }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 7 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_centrifuge", - "name": "centrifuge", - "description": "This is a centrifuge, a liquid separating device with an automated analyzer unit. It could be used to analyze a medical fluid sample, such as blood, if a test tube was placed in it.", - "symbol": "{", - "color": "magenta", - "move_cost": 0, - "coverage": 30, - "flags": [ "TRANSPARENT", "PERMEABLE" ], - "bash": { - "str_min": 3, - "str_max": 45, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 1, 6 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 5 ] }, - { "item": "steel_chunk", "count": [ 0, 3 ] }, - { "item": "sheet_metal", "count": [ 1, 3 ] }, - { "item": "cable", "charges": [ 1, 15 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_cvdbody", - "name": "CVD machine", - "description": "The bulk of a highly technical-looking apparatus controlled by a nearby console.", - "symbol": "%", - "color": "dark_gray", - "move_cost": 0, - "coverage": 65, - "flags": [ "NOITEM", "WALL" ], - "bash": { - "str_min": 6, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_floor", - "items": [ - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 1, 6 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 8 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_cvdmachine", - "name": "CVD control panel", - "description": "This is a VERY expensive-looking apparatus that's labeled 'Chemical Vapor Deposition Machine'. With the input of certain exceptionally rare chemicals and elements, one could conceievably coat one's weapon with diamond. While the process is extremely complicated, a previous user has helpfully sketched: Hydrogen + charcoal = smiley face.", - "symbol": "&", - "color": "cyan", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE" ], - "examine_action": "cvdmachine", - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_console_broken", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_nanofab_body", - "name": "nanofabricator", - "symbol": "%", - "description": "A great column of advanced machinery. Within this self-contained, miniaturized factory, several 3d printers work in tandem with a robotic assembler to manufacture nearly any inorganic object.", - "color": "dark_gray", - "move_cost": 0, - "coverage": 65, - "flags": [ "PLACE_ITEM" ], - "bash": { - "str_min": 120, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_floor", - "items": [ - { "item": "e_scrap", "count": [ 10, 14 ] }, - { "item": "processor", "count": [ 10, 20 ] }, - { "item": "RAM", "count": [ 14, 20 ] }, - { "item": "nanomaterial", "count": 1, "prob": 10 }, - { "item": "bearing", "charges": [ 20, 60 ] }, - { "item": "motor", "count": 4 }, - { "item": "power_supply", "count": [ 4, 16 ] }, - { "item": "amplifier", "count": [ 4, 16 ] }, - { "item": "cable", "charges": [ 250, 500 ] }, - { "item": "circuit", "count": [ 1, 6 ] }, - { "item": "scrap", "count": [ 12, 18 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_nanofab", - "name": "nanofabricator control panel", - "symbol": "&", - "description": "A small computer panel attached to a nanofabricator. It has a single slot for reading templates.", - "color": "red", - "move_cost": 0, - "coverage": 50, - "flags": [ "WALL", "NOITEM", "PERMEABLE" ], - "examine_action": "nanofab", - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_console_broken", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_vat", - "name": "cloning vat", - "description": "A vat full of solution, probably intended to hold growing clones of people or other life forms.", - "symbol": "0", - "color": "light_cyan", - "move_cost": 0, - "coverage": 40, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "SEALED", "PLACE_ITEM", "WALL" ], - "bash": { - "str_min": 2, - "str_max": 80, - "sound": "ker-rash!", - "sound_fail": "plunk.", - "sound_vol": 16, - "sound_fail_vol": 12, - "ter_set": "t_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "scrap", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_slot_machine", - "name": "slot machine", - "description": "A machine with a bright screen flashing hypnotic promises of wealth. If gambling with your life on a daily basis isn't enough for you, you can also gamble with this.", - "symbol": "6", - "color": "green", - "move_cost": 0, - "coverage": 50, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "INDOORS" ], - "examine_action": "slot_machine", - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_console_broken", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_water_pump", - "name": "water pump", - "description": "Deep well collecting ground water. Installed water pump allows to draw water from it.", - "symbol": "&", - "color": "light_gray", - "move_cost": 6, - "coverage": 40, - "flags": [ "TRANSPARENT", "THIN_OBSTACLE" ], - "deconstruct": { "ter_set": "t_covered_well", "items": [ { "item": "well_pump", "count": 1 }, { "item": "pipe", "count": [ 1, 6 ] } ] }, - "bash": { - "str_min": 15, - "str_max": 80, - "sound": "whack!", - "sound_fail": "thunk.", - "ter_set": "t_covered_well", - "items": [ - { "item": "steel_chunk", "count": [ 0, 2 ] }, - { "item": "scrap", "count": [ 3, 6 ] }, - { "item": "pipe", "count": [ 0, 2 ] } - ] - }, - "examine_action": "water_source" - }, - { - "type": "terrain", - "id": "t_water_dispenser", - "name": "water dispenser", - "description": "A machine with several taps that dispenses clean water.", - "symbol": "W", - "color": "light_blue", - "move_cost": 0, - "coverage": 40, - "flags": [ "TRANSPARENT" ], - "bash": { - "str_min": 15, - "str_max": 80, - "sound": "whack!", - "sound_fail": "thunk.", - "ter_set": "t_concrete", - "items": [ - { "item": "steel_chunk", "count": [ 0, 2 ] }, - { "item": "scrap", "count": [ 3, 6 ] }, - { "item": "pipe", "count": [ 0, 2 ] } - ] - }, - "examine_action": "clean_water_source" - }, - { - "type": "terrain", - "id": "t_plut_generator", - "name": "plutonium generator", - "description": "This imposing apparatus harnesses the power of the atom. Refined nuclear fuel is 'burned' to provide nearly limitless electrical power. It's not doing much good here though. Perhaps it could be salvaged for other purposes.", - "symbol": "0", - "color": "light_green", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "SEALED", "REDUCE_SCENT", "PERMEABLE" ], - "bash": { - "str_min": 50, - "str_max": 400, - "explosive": 25, - "ter_set": "t_concrete", - "sound": "metal screeching!", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 4, 16 ] }, - { "item": "steel_chunk", "count": [ 1, 6 ] }, - { "item": "plut_cell", "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 ] }, - { "item": "e_scrap", "count": [ 12, 24 ] }, - { "item": "circuit", "count": [ 6, 10 ] }, - { "item": "power_supply", "count": [ 4, 8 ] }, - { "item": "amplifier", "count": [ 3, 6 ] }, - { "item": "plut_cell", "charges": [ 2, 8 ] }, - { "item": "scrap", "count": [ 8, 16 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_sai_box", - "name": "telecom cabinet", - "description": "A cabinet full of telecoms equipment. With the lines down, you might be able to take it apart for its useful electronics.", - "symbol": "#", - "color": "light_gray", - "move_cost": 0, - "coverage": 90, - "flags": [ "NOITEM", "WALL" ], - "bash": { "str_min": 8, "str_max": 80, "sound": "whack!", "sound_fail": "clang!", "ter_set": "t_sai_box_damaged" }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "RAM", "count": [ 4, 8 ] }, - { "item": "cable", "charges": [ 16, 40 ] }, - { "item": "small_lcd_screen", "count": [ 2, 4 ] }, - { "item": "e_scrap", "count": [ 12, 24 ] }, - { "item": "circuit", "count": [ 6, 30 ] }, - { "item": "power_supply", "count": [ 4, 8 ] }, - { "item": "amplifier", "count": [ 3, 6 ] }, - { "item": "plastic_chunk", "count": [ 4, 8 ] }, - { "item": "scrap", "count": [ 8, 16 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_sai_box_damaged", - "name": "damaged telecom cabinet", - "description": "A damaged telecoms cabinet. Might still be able to salvage some useful electronics scrap from it.", - "symbol": "#", - "color": "light_gray", - "move_cost": 0, - "coverage": 90, - "flags": [ "NOITEM", "WALL" ], - "bash": { - "str_min": 6, - "str_max": 80, - "sound": "whack!", - "sound_fail": "clang!", - "ter_set": "t_concrete", - "items": [ - { "item": "cable", "charges": [ 4, 8 ], "prob": 80 }, - { "item": "e_scrap", "count": [ 2, 8 ], "prob": 60 }, - { "item": "circuit", "count": [ 1, 6 ], "prob": 50 }, - { "item": "amplifier", "count": [ 1, 4 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "RAM", "count": [ 1, 2 ] }, - { "item": "cable", "charges": [ 4, 24 ] }, - { "item": "e_scrap", "count": [ 4, 12 ] }, - { "item": "circuit", "count": [ 2, 12 ] }, - { "item": "power_supply", "count": [ 1, 4 ] }, - { "item": "amplifier", "count": [ 1, 3 ] }, - { "item": "plastic_chunk", "count": [ 2, 6 ] }, - { "item": "scrap", "count": [ 6, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_oil_circ_brkr_l", - "name": "HV oil circuit breaker", - "description": "A circuit breaker that uses oil in its arc supression chamber.", - "symbol": "B", - "color": "light_gray", - "move_cost": 0, - "coverage": 90, - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 6, - "sound": "pow!", - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 8, 16 ] }, - { "item": "steel_chunk", "count": [ 2, 6 ] }, - { "item": "ceramic_shard", "count": [ 0, 4 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "cable", "charges": [ 8, 24 ] }, - { "item": "power_supply", "count": [ 4, 8 ] }, - { "item": "amplifier", "count": [ 8, 16 ] }, - { "item": "steel_chunk", "count": [ 4, 16 ] }, - { "item": "scrap", "count": [ 12, 24 ] }, - { "item": "sheet_metal", "count": [ 6, 12 ] }, - { "item": "ceramic_shard", "count": [ 2, 6 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_oil_circ_brkr_s", - "name": "small HV oil circuit breaker", - "description": "A small circuit breaker that uses oil in its arc supression chamber.", - "symbol": "b", - "color": "light_gray", - "move_cost": 0, - "coverage": 65, - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 4, - "sound": "pow!", - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 6, 12 ] }, - { "item": "steel_chunk", "count": [ 1, 3 ] }, - { "item": "ceramic_shard", "count": [ 0, 2 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "cable", "charges": [ 4, 12 ] }, - { "item": "power_supply", "count": [ 3, 6 ] }, - { "item": "amplifier", "count": [ 6, 12 ] }, - { "item": "steel_chunk", "count": [ 2, 12 ] }, - { "item": "scrap", "count": [ 8, 18 ] }, - { "item": "sheet_metal", "count": [ 4, 8 ] }, - { "item": "ceramic_shard", "count": [ 1, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_switchgear_l", - "name": "large switchgear", - "description": "A switchgear panel. It's covered in breaker switches, fuses, and gauges.", - "symbol": "H", - "color": "i_light_gray", - "move_cost": 0, - "coverage": 90, - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 3, - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 5, 10 ] }, - { "item": "steel_chunk", "count": [ 2, 4 ] }, - { "item": "plastic_chunk", "count": [ 2, 4 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "RAM", "count": [ 2, 6 ] }, - { "item": "cable", "charges": [ 4, 24 ] }, - { "item": "small_lcd_screen", "count": [ 6, 12 ] }, - { "item": "e_scrap", "count": [ 16, 24 ] }, - { "item": "circuit", "count": [ 12, 30 ] }, - { "item": "power_supply", "count": [ 6, 8 ] }, - { "item": "amplifier", "count": [ 6, 8 ] }, - { "item": "plastic_chunk", "count": [ 2, 4 ] }, - { "item": "scrap", "count": [ 8, 16 ] }, - { "item": "sheet_metal", "count": [ 2, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_switchgear_s", - "name": "small switchgear", - "description": "A small switchgear panel. It's covered in breaker switches, fuses, and gauges.", - "symbol": "L", - "color": "i_light_gray", - "move_cost": 0, - "coverage": 65, - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 2, - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 4, 8 ] }, - { "item": "steel_chunk", "count": [ 1, 2 ] }, - { "item": "e_scrap", "count": [ 0, 2 ] }, - { "item": "circuit", "count": [ 1, 4 ] }, - { "item": "power_supply", "count": [ 0, 2 ] }, - { "item": "amplifier", "prob": 50 }, - { "item": "plastic_chunk", "count": [ 1, 2 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "RAM", "count": [ 1, 2 ] }, - { "item": "cable", "charges": [ 2, 8 ] }, - { "item": "small_lcd_screen", "count": [ 2, 6 ] }, - { "item": "e_scrap", "count": [ 6, 12 ] }, - { "item": "circuit", "count": [ 8, 24 ] }, - { "item": "power_supply", "count": [ 2, 6 ] }, - { "item": "amplifier", "count": [ 1, 4 ] }, - { "item": "plastic_chunk", "count": [ 1, 2 ] }, - { "item": "scrap", "count": [ 4, 8 ] }, - { "item": "sheet_metal", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_lgtn_arrest", - "name": "lightning arrester", - "description": "A component designed to protect insulation and conductors in an electrical system by directing lightning through itself and into the ground.", - "symbol": "}", - "color": "i_light_gray", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 4, - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "cable", "charges": [ 0, 4 ] }, - { "item": "scrap", "count": [ 8, 12 ] }, - { "item": "steel_chunk", "count": [ 2, 4 ] }, - { "item": "ceramic_shard", "count": [ 8, 16 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "cable", "charges": [ 4, 8 ] }, - { "item": "steel_chunk", "count": [ 4, 6 ] }, - { "item": "scrap", "count": [ 12, 16 ] }, - { "item": "plastic_chunk", "count": [ 1, 4 ] }, - { "item": "ceramic_shard", "count": [ 12, 24 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_station_disc", - "name": "disconnect switch", - "description": "A switch used to make sure an electrical system doesn't have any current flowing through it, for maintenance periods.", - "symbol": "h", - "color": "light_gray", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 3, - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 4, 8 ] }, - { "item": "steel_chunk", "count": [ 2, 4 ] }, - { "item": "cable", "charges": [ 1, 4 ] }, - { "item": "ceramic_shard", "count": [ 0, 2 ] }, - { "item": "lead", "prob": 50 } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "RAM", "count": [ 12, 24 ] }, - { "item": "cable", "charges": [ 6, 12 ] }, - { "item": "small_lcd_screen", "count": [ 8, 16 ] }, - { "item": "e_scrap", "count": [ 8, 12 ] }, - { "item": "circuit", "count": [ 6, 18 ] }, - { "item": "power_supply", "count": [ 8, 12 ] }, - { "item": "amplifier", "count": [ 2, 4 ] }, - { "item": "plastic_chunk", "count": [ 4, 8 ] }, - { "item": "scrap", "count": [ 2, 6 ] }, - { "item": "sheet_metal", "count": [ 1, 2 ] }, - { "item": "lead", "charges": [ 1, 2 ] }, - { "item": "ceramic_shard", "count": [ 2, 6 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_current_trans", - "name": "current transformer", - "description": "An electronic component used to transform the voltage of a current.", - "symbol": "{", - "color": "light_gray", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 5, - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 10, 12 ] }, - { "item": "steel_chunk", "count": [ 4, 6 ] }, - { "item": "lead", "charges": [ 2, 8 ] }, - { "item": "cable", "charges": [ 20, 60 ] }, - { "item": "sheet_metal", "count": [ 1, 2 ] }, - { "item": "ceramic_shard", "count": [ 2, 6 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "scrap", "count": [ 12, 16 ] }, - { "item": "steel_chunk", "count": [ 4, 6 ] }, - { "item": "lead", "charges": [ 4, 16 ] }, - { "item": "cable", "charges": [ 60, 120 ] }, - { "item": "sheet_metal", "count": [ 2, 6 ] }, - { "item": "ceramic_shard", "count": [ 4, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_potential_trans", - "name": "potential transformer", - "description": "A specialised type of electrical transformer, ", - "symbol": "8", - "color": "i_light_gray", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 20, - "str_max": 150, - "explosive": 5, - "ter_set": "t_concrete", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 10, 12 ] }, - { "item": "steel_chunk", "count": [ 4, 6 ] }, - { "item": "lead", "charges": [ 8, 16 ] }, - { "item": "cable", "charges": [ 1, 20 ] }, - { "item": "sheet_metal", "count": [ 1, 2 ] }, - { "item": "ceramic_shard", "count": [ 2, 6 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "scrap", "count": [ 12, 16 ] }, - { "item": "steel_chunk", "count": [ 4, 6 ] }, - { "item": "lead", "charges": [ 12, 32 ] }, - { "item": "cable", "charges": [ 20, 40 ] }, - { "item": "sheet_metal", "count": [ 2, 6 ] }, - { "item": "ceramic_shard", "count": [ 4, 12 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_conveyor", - "name": "conveyor belt", - "description": "A convetor belt. Used to transport things.", - "symbol": "=", - "color": "brown", - "move_cost": 6, - "flags": [ "TRANSPARENT", "BASHABLE", "PLACE_ITEM", "INDOORS" ], - "coverage": 30, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": 1 }, - { "item": "pipe", "count": [ 1, 4 ] }, - { "item": "chain", "prob": 10 }, - { "item": "scrap", "count": [ 1, 5 ] }, - { "item": "xlframe", "prob": 5 } - ] - }, - "bash": { - "str_min": 12, - "str_max": 80, - "sound": "clang!", - "sound_fail": "ting.", - "ter_set": "t_rock_floor", - "items": [ { "item": "pipe", "count": [ 1, 3 ] }, { "item": "chain", "prob": 10 }, { "item": "scrap", "count": [ 1, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_machinery_light", - "name": "light machinery", - "description": "Assorted light machinery. You could scavenge it for parts.", - "symbol": "$", - "color": "dark_gray", - "move_cost": 10, - "coverage": 65, - "flags": [ "TRANSPARENT", "BASHABLE", "CONTAINER", "FLAMMABLE", "PLACE_ITEM" ], - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": [ 1, 3 ] }, - { "item": "pipe", "count": [ 1, 2 ] }, - { "item": "chain", "prob": 40 }, - { "item": "cu_pipe", "prob": 40 }, - { "item": "scrap", "count": [ 1, 4 ] }, - { "item": "hose", "count": 1 }, - { "item": "steel_chunk", "count": [ 1, 5 ] }, - { "item": "bearing", "charges": [ 4, 12 ] }, - { "item": "frame", "prob": 50 }, - { "item": "motor", "prob": 50 } - ] - }, - "bash": { - "str_min": 16, - "str_max": 80, - "sound": "clang!", - "sound_fail": "ting.", - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": 1 }, - { "item": "pipe", "count": 2, "prob": 40 }, - { "item": "chain", "prob": 20 }, - { "item": "cu_pipe", "prob": 10 }, - { "item": "scrap", "count": [ 3, 8 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "bearing", "charges": [ 2, 8 ] }, - { "item": "frame", "prob": 20 }, - { "item": "motor", "prob": 10 } - ] - } - }, - { - "type": "terrain", - "id": "t_machinery_heavy", - "name": "heavy machinery", - "description": "Assorted heavy machinery. You could scavenge it for parts.", - "symbol": "%", - "color": "light_gray", - "move_cost": 0, - "coverage": 75, - "flags": [ "BASHABLE", "CONTAINER", "SEALED", "PLACE_ITEM" ], - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": [ 1, 3 ] }, - { "item": "pipe", "count": [ 1, 2 ] }, - { "item": "chain", "prob": 60 }, - { "item": "cu_pipe", "prob": 20 }, - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "hose", "count": 1 }, - { "item": "sheet_metal", "count": [ 1, 3 ] }, - { "item": "steel_chunk", "count": [ 1, 3 ] }, - { "item": "bearing", "charges": [ 4, 12 ] }, - { "item": "frame", "prob": 60 }, - { "item": "motor", "prob": 30 }, - { "item": "metal_tank", "prob": 30 }, - { "item": "motor_large", "prob": 10 } - ] - }, - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "clang!", - "sound_fail": "ting.", - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": 1 }, - { "item": "pipe", "count": 1 }, - { "item": "chain", "prob": 20 }, - { "item": "steel_lump", "count": 1 }, - { "item": "scrap", "count": [ 1, 5 ] }, - { "item": "sheet_metal", "count": 2 }, - { "item": "steel_chunk", "count": [ 1, 2 ] }, - { "item": "bearing", "charges": [ 2, 8 ] }, - { "item": "frame", "prob": 30 }, - { "item": "motor", "prob": 10 }, - { "item": "metal_tank", "prob": 20 }, - { "item": "motor_large", "prob": 5 } - ] - } - }, - { - "type": "terrain", - "id": "t_machinery_old", - "name": "old machinery", - "description": "Assorted old machinery. You could scavenge it for parts.", - "symbol": "&", - "color": "brown", - "move_cost": 4, - "coverage": 55, - "flags": [ "TRANSPARENT", "BASHABLE", "CONTAINER", "FLAMMABLE", "PLACE_ITEM" ], - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": 1 }, - { "item": "pipe", "count": [ 1, 2 ] }, - { "item": "chain", "prob": 40 }, - { "item": "cu_pipe", "prob": 60 }, - { "item": "scrap", "count": [ 1, 3 ] }, - { "item": "hose", "count": 1 }, - { "item": "steel_chunk", "count": [ 1, 3 ] }, - { "item": "bearing", "charges": [ 1, 5 ] }, - { "item": "frame", "prob": 30 }, - { "item": "motor", "prob": 30 }, - { "item": "splinter", "count": 3, "prob": 30 }, - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "nail", "charges": [ 3, 10 ] } - ] - }, - "bash": { - "str_min": 10, - "str_max": 80, - "sound": "clang!", - "sound_fail": "ting.", - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": 1 }, - { "item": "pipe", "count": [ 1, 2 ] }, - { "item": "chain", "prob": 20 }, - { "item": "cu_pipe", "prob": 10 }, - { "item": "scrap", "count": [ 1, 5 ] }, - { "item": "steel_chunk", "count": [ 1, 2 ] }, - { "item": "motor", "prob": 10 }, - { "item": "splinter", "count": [ 4, 8 ] }, - { "item": "2x4", "count": 2 }, - { "item": "nail", "charges": [ 2, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_machinery_electronic", - "name": "electronic machinery", - "description": "Assorted electronic machinery. You could scavenge it for parts.", - "symbol": "$", - "color": "yellow", - "move_cost": 8, - "coverage": 55, - "flags": [ "TRANSPARENT", "BASHABLE", "CONTAINER", "SEALED", "FLAMMABLE", "PLACE_ITEM" ], - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "count": [ 1, 3 ] }, - { "item": "pipe", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "bearing", "charges": [ 2, 6 ] }, - { "item": "motor", "prob": 40 }, - { "item": "processor", "count": 1 }, - { "item": "RAM", "count": [ 1, 4 ] }, - { "item": "cable", "charges": [ 1, 4 ] }, - { "item": "small_lcd_screen", "count": 1 }, - { "item": "e_scrap", "count": [ 5, 10 ] }, - { "item": "circuit", "count": [ 3, 8 ] }, - { "item": "power_supply", "count": [ 1, 3 ] }, - { "item": "amplifier", "count": [ 1, 3 ] }, - { "item": "plastic_chunk", "count": [ 2, 8 ] }, - { "item": "scrap", "count": [ 1, 5 ] } - ] - }, - "bash": { - "str_min": 10, - "str_max": 80, - "sound": "clang!", - "sound_fail": "ting.", - "ter_set": "t_rock_floor", - "items": [ - { "item": "wire", "prob": 40 }, - { "item": "pipe", "prob": 40 }, - { "item": "steel_chunk", "prob": 40 }, - { "item": "bearing", "charges": [ 2, 4 ] }, - { "item": "motor", "prob": 10 }, - { "item": "processor", "prob": 40 }, - { "item": "RAM", "count": [ 1, 2 ] }, - { "item": "cable", "charges": [ 1, 2 ] }, - { "item": "small_lcd_screen", "prob": 40 }, - { "item": "e_scrap", "count": [ 3, 8 ] }, - { "item": "circuit", "count": [ 1, 3 ] }, - { "item": "power_supply", "prob": 40 }, - { "item": "amplifier", "prob": 40 }, - { "item": "plastic_chunk", "count": [ 2, 8 ] }, - { "item": "scrap", "count": [ 3, 8 ] } - ] - } - }, - { - "id": "t_milking_machine", - "type": "terrain", - "name": "milking machine", - "description": "A machine used in the dairy industry to milk cows.", - "symbol": "%", - "color": [ "light_gray" ], - "move_cost": 1, - "bash": { - "str_min": 10, - "str_max": 50, - "ter_set": "t_floor", - "sound": "crunch!", - "sound_fail": "whump!", - "items": [ - { "item": "scrap", "count": [ 1, 6 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "hose", "count": [ 1, 3 ] } - ] - }, - "deconstruct": { - "ter_set": "t_floor", - "items": [ - { "item": "scrap", "count": [ 2, 9 ] }, - { "item": "steel_chunk", "count": [ 2, 5 ] }, - { "item": "hose", "count": [ 2, 6 ] } - ] - }, - "flags": [ "CONTAINER", "PLACE_ITEM", "BLOCKSDOOR" ] - }, - { - "id": "t_bulk_tank", - "type": "terrain", - "name": "bulk tank", - "description": "A heavy, high capacity tank.", - "symbol": "O", - "color": [ "light_gray" ], - "move_cost": 0, - "coverage": 85, - "bash": { - "str_min": 20, - "str_max": 80, - "ter_set": "t_floor", - "sound": "crunch!", - "sound_fail": "whump!", - "items": [ - { "item": "wire", "count": [ 1, 2 ] }, - { "item": "pipe", "count": [ 1, 2 ] }, - { "item": "steel_lump", "count": [ 1, 5 ] }, - { "item": "sheet_metal", "count": [ 1, 3 ] }, - { "item": "steel_chunk", "count": [ 1, 5 ] } - ] - }, - "deconstruct": { - "ter_set": "t_floor", - "items": [ - { "item": "wire", "count": [ 2, 8 ] }, - { "item": "pipe", "count": [ 1, 3 ] }, - { "item": "steel_lump", "count": [ 1, 8 ] }, - { "item": "sheet_metal", "count": [ 1, 6 ] }, - { "item": "steel_chunk", "count": [ 1, 10 ] } - ] - }, - "flags": [ "BASHABLE", "CONTAINER", "SEALED", "PLACE_ITEM", "WALL", "MINEABLE" ] - }, - { - "type": "terrain", - "id": "t_rootcellar", - "name": "root cellar", - "symbol": "=", - "description": "A cellar dug into the earth for storing food in a cool environment.", - "color": [ "green" ], - "move_cost": 0, - "flags": [ "TRANSPARENT", "CONTAINER", "PLACE_ITEM", "INDOORS", "DECONSTRUCT" ], - "deconstruct": { "ter_set": "t_pit", "items": [ { "item": "rock", "count": 40 }, { "item": "stick", "count": [ 16, 16 ] } ] }, - "bash": { - "str_min": 18, - "str_max": 50, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_pit_shallow", - "items": [ { "item": "rock", "count": 8 }, { "item": "stick", "count": [ 8, 12 ] } ] - } - }, - { - "type": "terrain", - "id": "t_covered_well", - "name": "covered well", - "description": "Deep well collecting ground water. Requires a method to draw water from.", - "symbol": "#", - "color": "dark_gray", - "move_cost": 2, - "coverage": 40, - "flags": [ "TRANSPARENT", "FLAT", "MINEABLE" ], - "bash": { - "str_min": 80, - "str_max": 300, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_pit", - "items": [ - { "item": "rock", "count": [ 8, 18 ] }, - { "item": "2x4", "count": [ 0, 2 ] }, - { "item": "nail", "charges": [ 1, 4 ] }, - { "item": "splinter", "count": [ 1, 2 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_improvised_shelter", - "name": "improvised shelter", - "description": "Improvised shelter providing little bit of protection, that can be used to take refuge from the elements or to protect a campfire from the rain.", - "symbol": "#", - "color": "brown_green", - "move_cost": 2, - "coverage": 30, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE", "HIDE_PLACE" ], - "bash": { - "str_min": 4, - "str_max": 60, - "sound": "crunch.", - "sound_fail": "brush.", - "ter_set": "t_pit_shallow", - "items": [ { "item": "stick", "count": [ 3, 6 ] }, { "item": "pine_bough", "count": [ 6, 18 ] } ] - } - }, - { - "id": "t_leanto", - "type": "terrain", - "name": "pine lean-to", - "description": "A small shelter roofed with pine leaves, that can be used to take refuge from the elements or to protect a campfire from the rain.", - "symbol": ";", - "color": [ "brown" ], - "move_cost": 2, - "bash": { - "str_min": 4, - "str_max": 60, - "ter_set": "t_tree_pine", - "sound": "crunch!", - "sound_fail": "whack!", - "items": [ - { "item": "stick", "count": [ 2, 7 ] }, - { "item": "splinter", "count": [ 8, 20 ] }, - { "item": "pine_bough", "count": [ 0, 2 ] } - ] - }, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE" ] - }, - { - "id": "t_tarptent", - "type": "terrain", - "name": "tarp lean-to", - "description": "A small shelter covered by waterproof tarp, that can be used to take refuge from the elements or to protect a campfire from the rain.", - "symbol": ";", - "color": [ "light_blue" ], - "move_cost": 2, - "bash": { - "str_min": 6, - "str_max": 12, - "ter_set": "t_dirt", - "sound": "crash!", - "sound_fail": "whack!", - "items": [ - { "item": "stick", "count": [ 1, 2 ] }, - { "item": "splinter", "count": [ 1, 4 ] }, - { "item": "plastic_chunk", "count": [ 4, 8 ] } - ] - }, - "deconstruct": { - "ter_set": "t_dirt", - "items": [ { "item": "pointy_stick", "count": 4 }, { "item": "string_6", "count": 4 }, { "item": "tarp", "count": 1 } ] - }, - "flags": [ "TRANSPARENT", "FLAMMABLE", "THIN_OBSTACLE", "INDOORS", "MOUNTABLE", "EASY_DECONSTRUCT" ] - }, - { - "type": "terrain", - "id": "t_grave", - "name": "grave", - "looks_like": "t_dirtmound", - "description": "A dirt grave, with some grass growing on it. At least some of the dead do actually rest in peace.", - "symbol": "#", - "color": "green", - "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE" ], - "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } - }, - { - "type": "terrain", - "id": "t_grave_new", - "name": "grave", - "looks_like": "t_dirtmound", - "description": "A fresh grave, covered with stones, either to keep something from digging it out or to keep one inside from digging out of it. Two planks mark this place of someone's eternal rest.", - "symbol": "#", - "color": "brown", - "move_cost": 3, - "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE", "CONTAINER", "SEALED" ], - "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } - } -] diff --git a/data/json/furniture_and_terrain/terrain-mechanisms.json b/data/json/furniture_and_terrain/terrain-mechanisms.json deleted file mode 100644 index 5d1fbaea6348b..0000000000000 --- a/data/json/furniture_and_terrain/terrain-mechanisms.json +++ /dev/null @@ -1,591 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_console_broken", - "name": "broken console", - "description": "This is a standalone computer terminal. It doesn't seem to be working. It's the broken screen and shattered circuit boards that's telling you that.", - "symbol": "6", - "color": "light_gray", - "move_cost": 0, - "coverage": 50, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "SHORT", "PERMEABLE" ], - "deconstruct": { - "ter_set": "t_floor", - "items": [ - { "item": "processor", "count": [ 1, 2 ] }, - { "item": "RAM", "count": [ 4, 8 ] }, - { "item": "cable", "charges": [ 4, 6 ] }, - { "item": "small_lcd_screen", "count": [ 1, 2 ] }, - { "item": "e_scrap", "count": [ 10, 16 ] }, - { "item": "circuit", "count": [ 6, 10 ] }, - { "item": "power_supply", "count": [ 2, 4 ] }, - { "item": "amplifier", "count": [ 2, 4 ] }, - { "item": "plastic_chunk", "count": [ 10, 12 ] }, - { "item": "scrap", "count": [ 6, 8 ] } - ] - }, - "bash": { - "str_min": 16, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_floor", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_console", - "name": "computer console", - "description": "This is a standalone computer terminal. It can be used to view contents and perform any allowed functions. It might even be possible to hack it, given the skills.", - "symbol": "6", - "color": "blue", - "move_cost": 0, - "coverage": 50, - "light_emitted": 10, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "CONSOLE", "NOITEM", "INDOORS", "SHORT", "PERMEABLE" ], - "deconstruct": { - "ter_set": "t_floor", - "items": [ - { "item": "processor", "count": [ 1, 2 ] }, - { "item": "RAM", "count": [ 4, 8 ] }, - { "item": "cable", "charges": [ 4, 6 ] }, - { "item": "small_lcd_screen", "count": [ 1, 2 ] }, - { "item": "e_scrap", "count": [ 10, 16 ] }, - { "item": "circuit", "count": [ 6, 10 ] }, - { "item": "power_supply", "count": [ 2, 4 ] }, - { "item": "amplifier", "count": [ 2, 4 ] }, - { "item": "plastic_chunk", "count": [ 10, 12 ] }, - { "item": "scrap", "count": [ 6, 8 ] } - ] - }, - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_console_broken", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_gates_mech_control", - "name": "mechanical winch", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate or door.", - "symbol": "6", - "color": "cyan_red", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gates_mech_control_lab", - "name": "mechanical winch", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", - "symbol": "6", - "color": "cyan_red", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_thconc_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gates_control_concrete", - "name": "mechanical winch", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", - "symbol": "6", - "color": "cyan_red", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gates_control_concrete_lab", - "name": "mechanical winch", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", - "symbol": "6", - "color": "cyan_red", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_thconc_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gates_control_brick", - "name": "mechanical winch", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", - "symbol": "6", - "color": "cyan_red", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gates_control_brick_lab", - "name": "mechanical winch", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", - "symbol": "6", - "color": "cyan_red", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_thconc_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gates_control_metal", - "name": "control lever", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", - "symbol": "6", - "color": "white", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "COLLAPSES", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gates_control_metal_lab", - "name": "control lever", - "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", - "symbol": "6", - "color": "white", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "COLLAPSES", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 18, - "str_max": 80, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_thconc_floor", - "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_barndoor", - "name": "rope and pulley", - "description": "A system of ropes and pulleys that allows to pull up heavy doors.", - "symbol": "|", - "color": "brown", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 8, - "str_max": 40, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_dirtfloor", - "items": [ - { "item": "rope_6", "count": [ 3, 4 ] }, - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "splinter", "count": [ 2, 4 ] } - ] - }, - "deconstruct": { "ter_set": "t_dirtfloor", "items": [ { "item": "rope_30", "count": 1 }, { "item": "2x4", "count": 8 } ] } - }, - { - "type": "terrain", - "id": "t_palisade_pulley", - "name": "rope and pulley", - "description": "A system of ropes and pulleys that allows to pull up heavy doors or gates.", - "symbol": "|", - "color": "brown", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "EASY_DECONSTRUCT", "THIN_OBSTACLE" ], - "examine_action": "controls_gate", - "bash": { - "str_min": 8, - "str_max": 40, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_null", - "items": [ - { "item": "rope_makeshift_6", "count": [ 3, 4 ] }, - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "splinter", "count": [ 2, 4 ] } - ] - }, - "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "rope_makeshift_30", "count": 1 }, { "item": "2x4", "count": 8 } ] } - }, - { - "type": "terrain", - "id": "t_intercom", - "name": "intercom", - "description": "An intercom panel. For when you want to scare the crap out of someone, or just talk to them over the intercom system, if you're boring like that.", - "symbol": "=", - "color": "light_gray", - "move_cost": 0, - "flags": [ "NOITEM", "CONNECT_TO_WALL" ], - "//": "For the player to chat with an NPC through the intercom, the npc must have 'name_unique': 'the_intercom' and must be within 10 tiles of the intercom.", - "examine_action": "intercom", - "bash": { - "str_min": 18, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_concrete_wall", - "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] - } - }, - { - "type": "terrain", - "id": "t_card_robofac", - "name": "card reader", - "description": "This is a smartcard reader. It sports the stylized symbol of an atom inside a flask that is universally known to indicate SCIENCE. An ominous red LED reminds you of a robot gone haywire from an old sci-fi flick. You could swipe a scientific ID badge near it if you do not fear the machine.", - "//": "It takes a science card/hack attempt and then calls iexamine::intercom", - "symbol": "6", - "color": "pink", - "move_cost": 0, - "flags": [ "NOITEM", "CONNECT_TO_WALL" ], - "examine_action": "cardreader_robofac", - "bash": { - "str_min": 18, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_card_reader_broken", - "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] - } - }, - { - "type": "terrain", - "id": "t_card_science", - "name": "card reader", - "description": "This is a smartcard reader. It sports the stylized symbol of an atom inside a flask that is universally known to indicate SCIENCE. The stark red LED blinks askance at your geek cred. You could swipe a scientific ID badge near it to unlock the gates to discovery.", - "//": "Science", - "symbol": "6", - "color": "pink", - "move_cost": 0, - "flags": [ "NOITEM", "CONNECT_TO_WALL" ], - "examine_action": "cardreader", - "bash": { - "str_min": 18, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_card_reader_broken", - "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] - } - }, - { - "type": "terrain", - "id": "t_card_military", - "name": "card reader", - "description": "This is a smartcard reader. The universal symbol of an eagle driving a tank, biting a grenade pin stands rampant in front of an American flag. A small, red LED remains constant, as if watching you, waiting. You could swipe a military ID card in front of the reader if you dared.", - "//": "Military", - "symbol": "6", - "color": "pink", - "move_cost": 0, - "flags": [ "NOITEM", "CONNECT_TO_WALL" ], - "examine_action": "cardreader", - "bash": { - "str_min": 18, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_card_reader_broken", - "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] - } - }, - { - "type": "terrain", - "id": "t_card_industrial", - "looks_like": "t_card_science", - "name": "card reader", - "description": "This is a smartcard reader. The symbol of a gear in front of a bulging bicep is emblazoned on the matte black surface with an illegible heavy industrial company title. A red LED blinks on the card reader. Perhaps an industrial ID card could still open it.", - "//": "Industrial", - "symbol": "6", - "color": "pink", - "move_cost": 0, - "flags": [ "NOITEM", "CONNECT_TO_WALL" ], - "examine_action": "cardreader", - "bash": { - "str_min": 18, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_card_reader_broken", - "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] - } - }, - { - "type": "terrain", - "id": "t_card_fp", - "looks_like": "t_card_science", - "name": "card reader", - "description": "This looks like the console controling the security door, there's a pretty big reading surface on it. You can see \"Fp\" soberly printed above the reader. You have no idea what could open it.", - "//": "FoodPlace", - "symbol": "6", - "color": "pink", - "move_cost": 0, - "flags": [ "NOITEM", "CONNECT_TO_WALL" ], - "examine_action": "cardreader_fp", - "bash": { - "str_min": 18, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_card_reader_broken", - "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] - } - }, - { - "type": "terrain", - "id": "t_card_reader_broken", - "name": "broken card reader", - "description": "This is a smartcard reader, but it doesn't seem to be functioning. Probably because there's no more blinking red LED.", - "symbol": "6", - "color": "light_gray", - "move_cost": 0, - "flags": [ "NOITEM", "CONNECT_TO_WALL", "MINEABLE" ], - "bash": { - "str_min": 200, - "str_max": 600, - "sound": "crunch!", - "sound_fail": "whack!", - "//": "Since these are set into the walls, they ought to have the resilence of metal walls.", - "ter_set": "t_concrete", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 3 ], "prob": 50 }, - { "item": "circuit", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 6 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 4 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_elevator_control", - "name": "elevator controls", - "description": "This is the control face for an elevator. You could press the appropriate button to take you to your choice of floor.", - "symbol": "6", - "color": "light_blue", - "move_cost": 0, - "coverage": 50, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "INDOORS" ], - "examine_action": "elevator", - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_console_broken", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_elevator_control_off", - "name": "powerless controls", - "description": "This is the control face for an elevator. It's currently unpowered.", - "symbol": "6", - "color": "light_gray", - "move_cost": 0, - "coverage": 50, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "INDOORS" ], - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_console_broken", - "items": [ - { "item": "processor", "prob": 25 }, - { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, - { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, - { "item": "small_lcd_screen", "prob": 25 }, - { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, - { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, - { "item": "power_supply", "prob": 25 }, - { "item": "amplifier", "prob": 25 }, - { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, - { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } - ] - } - }, - { - "type": "terrain", - "id": "t_pedestal_wyrm", - "name": "dark pedestal", - "description": "A dark stone pedestal covered in ancient, unintelligible symbols. Looks ominous.", - "symbol": "&", - "color": "dark_gray", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "MINEABLE" ], - "examine_action": "pedestal_wyrm", - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_rock_floor", - "items": [ { "item": "rock", "count": [ 2, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_pedestal_temple", - "name": "light pedestal", - "description": "A light stone pedestal covered in ancient, unintelligible symbols.", - "symbol": "&", - "color": "white", - "move_cost": 0, - "coverage": 50, - "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "MINEABLE" ], - "examine_action": "pedestal_temple", - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_rock_floor", - "items": [ { "item": "rock", "count": [ 2, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_switch_rg", - "name": "yellow switch", - "description": "A yellow switch. Should you activate it?", - "symbol": "6", - "color": "yellow", - "move_cost": 0, - "flags": [ "TRANSPARENT", "PERMEABLE" ], - "examine_action": "fswitch" - }, - { - "type": "terrain", - "id": "t_switch_gb", - "name": "cyan switch", - "description": "A cyan switch. Should you activate it?", - "symbol": "6", - "color": "cyan", - "move_cost": 0, - "flags": [ "TRANSPARENT", "PERMEABLE" ], - "examine_action": "fswitch" - }, - { - "type": "terrain", - "id": "t_switch_rb", - "name": "purple switch", - "description": "A purple switch. Should you activate it?", - "symbol": "6", - "color": "magenta", - "move_cost": 0, - "flags": [ "TRANSPARENT", "PERMEABLE" ], - "examine_action": "fswitch" - }, - { - "type": "terrain", - "id": "t_switch_even", - "name": "checkered switch", - "description": "A checkered switch. Should you activate it?", - "symbol": "6", - "color": "white", - "move_cost": 0, - "flags": [ "TRANSPARENT", "PERMEABLE" ], - "examine_action": "fswitch" - } -] diff --git a/data/json/furniture_and_terrain/terrain-migo.json b/data/json/furniture_and_terrain/terrain-migo.json deleted file mode 100644 index ef962b0dd83d7..0000000000000 --- a/data/json/furniture_and_terrain/terrain-migo.json +++ /dev/null @@ -1,159 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_wall_resin", - "name": "resin wall", - "description": "This wall is made of a glistening, nearly opaque, plastic-like substance. Deep within the material making it up, you can barely see a network of pulsating green conduits, snaking like blood vessels through it. The material is hard, warm to the touch, and slightly damp.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_resin_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], - "bash": { - "str_min": 250, - "str_max": 700, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_resin_hole", - "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_resin_cage", - "name": "resin cage", - "description": "This resin wall opens into a series of small honeycomb-like hexagons, allowing the passage of air and light. While still made of the same sturdy material, it is thinner and more delicate in appearance.", - "symbol": "#", - "color": "dark_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_resin_roof", - "flags": [ "NOITEM", "WALL", "TRANSPARENT", "INDOORS", "NONFLAMMABLE", "MINEABLE" ], - "bash": { - "str_min": 70, - "str_max": 300, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_floor_resin", - "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_floor_resin", - "name": "resin floor", - "description": "This nearly opaque, plastic-like floor has a gentle curve from wall to wall, but in the central areas is quite flat. The material is hard, warm to the touch, and slightly damp.", - "symbol": "~", - "color": "dark_gray", - "move_cost": 1, - "roof": "t_resin_roof", - "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD", "NONFLAMMABLE" ], - "bash": { - "str_min": 250, - "str_max": 700, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_null", - "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ] - } - }, - { - "type": "terrain", - "id": "t_platform_resin", - "name": "resin floor", - "description": "This nearly opaque, plastic-like floor is smooth and flat. The material is hard, warm to the touch, and slightly damp.", - "symbol": "~", - "color": "light_gray", - "move_cost": 1, - "flags": [ "TRANSPARENT", "COLLAPSES", "FLAT", "ROAD", "NONFLAMMABLE" ], - "bash": { - "str_min": 250, - "str_max": 700, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_null", - "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ] - } - }, - { - "type": "terrain", - "id": "t_resin_roof", - "name": "resin roof", - "description": "A wide, domed section of nearly opaque, plastic-like material. When the light hits it, a network of multicolored conduits like blood vessels can be seen snaking through its glistening interior.", - "symbol": "~", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "NONFLAMMABLE" ], - "bash": { - "str_min": 250, - "str_max": 700, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_open_air", - "bash_below": true - } - }, - { - "type": "terrain", - "id": "t_resin_hole_c", - "name": "closed resin portal", - "description": "A tricuspid hatch of some sort of damp, flexible, resinous material. This one is closed tightly, but it looks like a firm push would cause it to snap open.", - "symbol": "Y", - "color": "light_gray", - "move_cost": 0, - "coverage": 95, - "roof": "t_resin_roof", - "flags": [ "DOOR", "NOITEM", "CONNECT_TO_WALL", "BLOCK_WIND", "NONFLAMMABLE" ], - "open": "t_resin_hole_o", - "deconstruct": { "ter_set": "t_resin_hole", "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] }, - "bash": { - "str_min": 90, - "str_max": 120, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_resin_hole", - "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_resin_hole_o", - "name": "open resin portal", - "description": "A tricuspid hatch of some sort of damp, flexible, resinous material. This one is open, the flaps held out by some sort of stringy mucus-like substance.", - "symbol": "D", - "color": "light_gray", - "move_cost": 2, - "roof": "t_resin_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "NONFLAMMABLE" ], - "deconstruct": { "ter_set": "t_resin_hole", "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] }, - "close": "t_resin_hole_c", - "bash": { - "str_min": 90, - "str_max": 120, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_resin_hole", - "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_resin_hole", - "name": "resin-lined hole", - "description": "An open hole in the resin wall, large enough to pass through.", - "symbol": "O", - "color": "light_gray", - "move_cost": 4, - "roof": "t_resin_roof", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "NONFLAMMABLE" ], - "bash": { - "str_min": 100, - "str_max": 500, - "sound": "boom!", - "sound_fail": "whack!", - "ter_set": "t_floor_resin", - "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-railroads.json b/data/json/furniture_and_terrain/terrain-railroads.json deleted file mode 100644 index d99efa6e62a27..0000000000000 --- a/data/json/furniture_and_terrain/terrain-railroads.json +++ /dev/null @@ -1,566 +0,0 @@ -[ - { - "id": "t_railroad_rubble", - "type": "terrain", - "name": "gravel", - "description": "A small mallet that a judge uses to call - er, wait. Oh, gravel! Gravel is a collection of small stones often used for roads, as railroad ballast, and in many other applications.", - "symbol": "^", - "color": [ "brown" ], - "move_cost": 2, - "bash": { - "str_min": 4, - "str_max": 40, - "ter_set": "t_rock_floor", - "sound": "crunch!", - "sound_fail": "whump!", - "items": [ { "item": "pebble", "count": [ 1, 3 ] }, { "item": "sharp_rock", "count": [ 0, 1 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "pebble", "count": [ 2, 6 ] }, { "item": "sharp_rock", "count": [ 1, 3 ] } ] - }, - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_h", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_v", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_d", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_d1", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_d2", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_tie", - "type": "terrain", - "name": "railroad tie", - "description": "This crosstie is used to support the rails.", - "symbol": "#", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_tie_h", - "type": "terrain", - "name": "railroad tie", - "description": "This crosstie is used to support the rails.", - "symbol": "#", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_tie_v", - "type": "terrain", - "name": "railroad tie", - "description": "This crosstie is used to support the rails.", - "symbol": "#", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_tie_d", - "type": "terrain", - "name": "railroad tie", - "description": "This crosstie is used to support the rails.", - "symbol": "#", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_on_tie", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "log", "count": [ 0, 1 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_h_on_tie", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "log", "count": [ 0, 1 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_v_on_tie", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "log", "count": [ 0, 1 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_railroad_track_d_on_tie", - "type": "terrain", - "name": "railroad track", - "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", - "symbol": "X", - "color": [ "cyan" ], - "move_cost": 3, - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "log", "count": [ 0, 1 ] }, - { "item": "splinter", "count": [ 10, 20 ] } - ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] - }, - { - "id": "t_buffer_stop", - "type": "terrain", - "name": "buffer stop", - "description": "A tiny blockade on the train tracks, meant to signify the end of a track, or mark a 'no-go' zone for trains.", - "symbol": "S", - "color": [ "brown" ], - "move_cost": 3, - "bash": { - "str_min": 4, - "str_max": 12, - "ter_set": "t_dirt", - "sound": "crack.", - "sound_fail": "whump.", - "items": [ { "item": "2x4", "count": [ 2, 5 ] }, { "item": "nail", "charges": [ 3, 8 ] }, { "item": "splinter", "count": 2 } ] - }, - "flags": [ "BASHABLE", "TRANSPARENT", "NOITEM", "MOUNTABLE" ] - }, - { - "id": "t_railroad_tie_d1", - "type": "terrain", - "name": "railroad tie", - "description": "This crosstie is used to support the rails.", - "symbol": "/", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_tie_d2", - "type": "terrain", - "name": "railroad tie", - "description": "This crosstie is used to support the rails.", - "symbol": "\\", - "color": [ "dark_gray_yellow" ], - "move_cost": 2, - "bash": { - "str_min": 10, - "str_max": 120, - "sound": "crunch!", - "sound_fail": "whump.", - "ter_set": "t_rock_floor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "deconstruct": { - "ter_set": "t_rock_floor", - "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] - }, - "connects_to": "RAIL", - "flags": [ "BASHABLE", "TRANSPARENT" ] - }, - { - "id": "t_railroad_crossing_signal", - "type": "terrain", - "name": "railroad crossing signal", - "description": "Traffic lights meant to light and make noise when a train approaches, to prevent people from turning into meaty mush while they cross the tracks. Won't stop people from turning into meaty mush by other means, though.", - "symbol": "1", - "color": [ "light_gray" ], - "move_cost": 0, - "bash": { - "str_min": 16, - "str_max": 75, - "ter_set": "t_dirt", - "sound": "crash!", - "sound_fail": "clang.", - "items": [ - { "item": "pipe", "count": [ 2, 4 ] }, - { "item": "scrap", "count": [ 2, 8 ] }, - { "item": "steel_chunk", "count": [ 0, 1 ] }, - { "item": "e_scrap", "count": [ 0, 1 ] }, - { "item": "power_supply", "count": [ 0, 1 ] } - ] - }, - "flags": [ "TRANSPARENT", "NOITEM" ] - }, - { - "id": "t_crossbuck_wood", - "type": "terrain", - "description": "A traffic sign intended to indicate a level railway crossing. If the trains were still running.", - "name": "crossbuck", - "symbol": "X", - "color": [ "brown" ], - "move_cost": 0, - "bash": { - "str_min": 6, - "str_max": 18, - "ter_set": "t_dirt", - "sound": "crack.", - "sound_fail": "whump.", - "items": [ - { "item": "2x4", "count": [ 1, 3 ] }, - { "item": "nail", "charges": [ 0, 4 ] }, - { "item": "splinter", "count": [ 1, 2 ] } - ] - }, - "flags": [ "TRANSPARENT", "NOITEM" ] - }, - { - "id": "t_crossbuck_metal", - "type": "terrain", - "name": "crossbuck", - "description": "A traffic sign intended to indicate a level railway crossing. If the trains were still running.", - "symbol": "X", - "color": [ "light_gray" ], - "move_cost": 0, - "bash": { - "str_min": 10, - "str_max": 50, - "ter_set": "t_dirt", - "sound": "crash!", - "sound_fail": "clang.", - "items": [ { "item": "pipe", "count": [ 2, 3 ] }, { "item": "scrap", "count": [ 0, 2 ] } ] - }, - "flags": [ "TRANSPARENT", "NOITEM" ] - } -] diff --git a/data/json/furniture_and_terrain/terrain-recreational.json b/data/json/furniture_and_terrain/terrain-recreational.json deleted file mode 100644 index 1824976719054..0000000000000 --- a/data/json/furniture_and_terrain/terrain-recreational.json +++ /dev/null @@ -1,118 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_sandbox", - "name": "sandbox", - "description": "Children used to play in this sandbox. The population of lice probably diminished considerably now that they no longer do.", - "symbol": "#", - "color": "yellow", - "move_cost": 3, - "deconstruct": { - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": 4 }, - { "item": "material_sand", "charges": [ 800, 1200 ] }, - { "item": "nail", "charges": [ 6, 10 ] } - ] - }, - "flags": [ "TRANSPARENT", "TINY" ], - "bash": { - "str_min": 8, - "str_max": 40, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_dirt", - "items": [ - { "item": "2x4", "count": [ 0, 3 ] }, - { "item": "nail", "charges": [ 3, 8 ] }, - { "item": "material_sand", "charges": [ 800, 1200 ] }, - { "item": "splinter", "count": [ 1, 3 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_slide", - "name": "slide", - "description": "A children's slide. Too small to slide on comfortably anymore.", - "symbol": "#", - "color": "light_cyan", - "move_cost": 4, - "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "sheet_metal", "count": 1 }, { "item": "pipe", "count": [ 4, 8 ] } ] }, - "flags": [ "TRANSPARENT", "MOUNTABLE" ], - "bash": { - "str_min": 16, - "str_max": 40, - "sound": "crack!", - "sound_fail": "whump.", - "ter_set": "t_dirt", - "items": [ { "item": "pipe", "count": [ 2, 6 ] }, { "item": "scrap", "count": [ 1, 3 ] } ] - } - }, - { - "type": "terrain", - "id": "t_monkey_bars", - "name": "monkey bars", - "description": "A set of monkey bars, to be used by children to train their arms by hanging from the bars, and have fun.", - "symbol": "#", - "color": "cyan", - "move_cost": 4, - "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "pipe", "count": [ 6, 12 ] } ] }, - "flags": [ "TRANSPARENT", "MOUNTABLE" ], - "bash": { - "str_min": 16, - "str_max": 40, - "sound": "crack!", - "sound_fail": "whump.", - "ter_set": "t_dirt", - "items": [ { "item": "pipe", "count": [ 4, 8 ] }, { "item": "scrap", "count": [ 1, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_backboard", - "name": "backboard", - "description": "A basketball backboard.", - "symbol": "7", - "color": "red", - "move_cost": 0, - "deconstruct": { "ter_set": "t_pavement", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 10 ] } ] }, - "flags": [ "TRANSPARENT", "WALL", "PERMEABLE" ], - "bash": { - "str_min": 8, - "str_max": 45, - "sound": "crunch!", - "sound_fail": "whack!", - "ter_set": "t_pavement", - "items": [ - { "item": "2x4", "count": [ 0, 3 ] }, - { "item": "nail", "charges": [ 3, 8 ] }, - { "item": "splinter", "count": [ 1, 3 ] } - ] - } - }, - { - "id": "t_backboard_in", - "type": "terrain", - "name": "backboard", - "description": "A metal backboard.", - "symbol": "7", - "color": [ "red" ], - "move_cost": 0, - "roof": "t_flat_roof", - "bash": { - "str_min": 8, - "str_max": 45, - "ter_set": "t_floor_waxed", - "sound": "metal screeching!", - "sound_fail": "clang!", - "items": [ - { "item": "scrap", "count": [ 2, 8 ] }, - { "item": "steel_chunk", "count": [ 1, 3 ] }, - { "item": "pipe", "count": [ 1, 2 ] } - ] - }, - "deconstruct": { "ter_set": "t_floor_waxed", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 10 ] } ] }, - "flags": [ "TRANSPARENT", "WALL", "PERMEABLE", "INDOORS" ] - } -] diff --git a/data/json/furniture_and_terrain/terrain-roofs.json b/data/json/furniture_and_terrain/terrain-roofs.json deleted file mode 100644 index d4b55b3182881..0000000000000 --- a/data/json/furniture_and_terrain/terrain-roofs.json +++ /dev/null @@ -1,310 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_open_air_rooved_outside", - "name": "open air", - "description": "This is open air.", - "symbol": " ", - "color": "i_cyan", - "move_cost": 2, - "roof": "t_flat_roof", - "trap": "tr_ledge", - "flags": [ "TRANSPARENT", "NO_FLOOR" ], - "examine_action": "ledge" - }, - { - "id": "t_open_air_rooved", - "type": "terrain", - "name": "open air", - "description": "This is open air.", - "symbol": " ", - "color": [ "i_cyan" ], - "move_cost": 2, - "trap": "tr_ledge", - "roof": "t_flat_roof", - "examine_action": "ledge", - "flags": [ "TRANSPARENT", "NO_FLOOR", "INDOORS" ] - }, - { - "type": "terrain", - "id": "t_open_air", - "name": "open air", - "description": "This is open air.", - "symbol": " ", - "color": "i_cyan", - "move_cost": 2, - "trap": "tr_ledge", - "flags": [ "TRANSPARENT", "NO_FLOOR" ], - "examine_action": "ledge" - }, - { - "type": "terrain", - "id": "t_gutter_north", - "description": "Channels water from the roof towards the ground, it looks flimsy.", - "name": "rain gutter", - "symbol": "LINE_OXOX", - "color": "white", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], - "connects_to": "RAILING", - "deconstruct": { - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "clang!", - "sound_fail": "clang.", - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gutter_south", - "description": "Channels water from the roof towards the ground, it looks flimsy.", - "name": "rain gutter", - "symbol": "LINE_OXOX", - "color": "white", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], - "connects_to": "RAILING", - "deconstruct": { - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "clang!", - "sound_fail": "clang.", - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gutter_east", - "description": "Channels water from the roof towards the ground, it looks flimsy.", - "name": "rain gutter", - "symbol": "LINE_OXOX", - "color": "white", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], - "connects_to": "RAILING", - "deconstruct": { - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "clang!", - "sound_fail": "clang.", - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gutter_west", - "description": "Channels water from the roof towards the ground, it looks flimsy.", - "name": "rain gutter", - "symbol": "LINE_OXOX", - "color": "white", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], - "connects_to": "RAILING", - "deconstruct": { - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "clang!", - "sound_fail": "clang.", - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gutter_drop", - "name": "gutter drop", - "description": "Funnels water from gutter system towards the ground, it looks flimsy. You may be able to climb down here.", - "symbol": "o", - "color": "white", - "move_cost": 3, - "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE", "CLIMBABLE" ], - "connects_to": "RAILING", - "deconstruct": { - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "clang!", - "sound_fail": "clang.", - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_gutter_downspout", - "name": "downspout", - "description": "A length of gutter running from the roof to the ground, you could place a container underneath it to collect rainwater. It looks flimsy. You may be able to climb down here.", - "symbol": "|", - "color": "white", - "move_cost": 3, - "trap": "tr_downspout_funnel", - "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "UNSTABLE", "CLIMBABLE" ], - "deconstruct": { - "ter_set": "t_flat_roof", - "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] - }, - "bash": { - "str_min": 5, - "str_max": 12, - "sound": "clang!", - "sound_fail": "clang.", - "ter_set": "t_dirt", - "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_flat_roof", - "name": "flat roof", - "description": "A flat, gray section of rooftop.", - "symbol": ".", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_open_air", - "bash_below": true - } - }, - { - "type": "terrain", - "id": "t_tar_flat_roof", - "name": "tar paper flat roof", - "description": "A flat, gray section of rooftop covered with tar paper.", - "looks_like": "t_flat_roof", - "symbol": ".", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE", "FLAT" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_open_air", - "bash_below": true - } - }, - { - "type": "terrain", - "id": "t_shingle_flat_roof", - "name": "shingle flat roof", - "description": "A flat section of rooftop covered in shingles.", - "looks_like": "t_flat_roof", - "symbol": ".", - "color": "green", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE", "FLAT" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_open_air", - "bash_below": true - } - }, - { - "type": "terrain", - "id": "t_thatch_roof", - "name": "thatched roof", - "description": "A section of roof made out of straw.", - "looks_like": "t_flat_roof", - "symbol": ".", - "color": "yellow", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_open_air", - "bash_below": true - } - }, - { - "type": "terrain", - "id": "t_metal_flat_roof", - "name": "metal flat roof", - "description": "A secton of flat, sheet metal rooftop.", - "looks_like": "t_flat_roof", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_open_air", - "bash_below": true - } - }, - { - "type": "terrain", - "id": "t_tile_flat_roof", - "name": "tile flat roof", - "description": "A section of tiled, flat rooftop.", - "looks_like": "t_flat_roof", - "symbol": ".", - "color": "white", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "FLAMMABLE" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_open_air", - "bash_below": true - } - }, - { - "type": "terrain", - "id": "t_glass_roof", - "name": "skylight", - "description": "A giant sheet of glass inserted into the roof, lets light pass through.", - "symbol": "o", - "color": "cyan", - "move_cost": 2, - "trap": "tr_ledge", - "flags": [ "TRANSPARENT", "NO_FLOOR", "INDOORS" ], - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass braking!", - "sound_fail": "whack!", - "ter_set": "t_open_air", - "bash_below": true - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-traps.json b/data/json/furniture_and_terrain/terrain-traps.json deleted file mode 100644 index 308ed4e601079..0000000000000 --- a/data/json/furniture_and_terrain/terrain-traps.json +++ /dev/null @@ -1,121 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_hole", - "name": "empty space", - "description": "This is empty space.", - "symbol": " ", - "color": "black", - "move_cost": 2, - "trap": "tr_ledge", - "flags": [ "TRANSPARENT", "NOITEM" ] - }, - { - "type": "terrain", - "id": "t_pit_shallow", - "name": "shallow pit", - "description": "A pit that could be dug even deeper or filled up. Also useful as a starting foundation for some constructions.", - "symbol": "0", - "color": "yellow", - "move_cost": 8, - "flags": [ "TRANSPARENT", "DIGGABLE", "DIGGABLE_CAN_DEEPEN" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } - }, - { - "type": "terrain", - "id": "t_pit", - "name": "pit", - "description": "A steep hole that could seriously injure something if it fell in, potentially fatal if it was filled with sharp and dangerous things. Deep enough for more advanced construction projects, and possibly to reach groundwater if constructed properly.", - "symbol": "0", - "color": "brown", - "move_cost": 10, - "trap": "tr_pit", - "flags": [ "TRANSPARENT" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, - "examine_action": "pit" - }, - { - "type": "terrain", - "id": "t_pit_corpsed", - "name": "corpse filled pit", - "description": "A giant trench full of corpses, maybe even a mass graveyard. The bodies could be dug out but none of it looks remotely usable.", - "symbol": "#", - "color": "green", - "move_cost": 5, - "flags": [ "TRANSPARENT", "DIGGABLE" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true }, - "//": "left diggable to clean out corpses-KA101" - }, - { - "type": "terrain", - "id": "t_pit_covered", - "name": "covered pit", - "description": "A deep pit with a two by four placed across it, looks sturdy enough to cross safely or the plank could be removed to turn it back into trap fall.", - "symbol": "#", - "color": "light_red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "ROAD" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, - "examine_action": "pit_covered" - }, - { - "type": "terrain", - "id": "t_pit_spiked", - "name": "spiked pit", - "description": "A narrow trench full of very pointy things that would easily puncture a body.", - "symbol": "0", - "color": "light_red", - "move_cost": 10, - "trap": "tr_spike_pit", - "flags": [ "TRANSPARENT" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, - "examine_action": "pit" - }, - { - "type": "terrain", - "id": "t_pit_spiked_covered", - "name": "covered spiked pit", - "description": "Menacing with sharp spears along the bottom, this pit has a plank across it to allow someone or something to cross safely. The two by four could be removed to revert it back into a trap.", - "symbol": "#", - "color": "light_red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "ROAD" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, - "examine_action": "pit_covered" - }, - { - "type": "terrain", - "id": "t_pit_glass", - "name": "glass pit", - "description": "Looks like a ton of broken glass was dumped into this pit, maybe not fatal to fall in but wouldn't be pleasant to try to crawl out.", - "symbol": "0", - "color": "light_cyan", - "move_cost": 10, - "trap": "tr_glass_pit", - "flags": [ "TRANSPARENT" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, - "examine_action": "pit" - }, - { - "type": "terrain", - "id": "t_pit_glass_covered", - "name": "covered glass pit", - "description": "A two by four has been placed carefully to allow traversal over this ditch full of large glass shards. The wooden board could be removed so it couldn't be safely crossed.", - "symbol": "#", - "color": "light_cyan", - "move_cost": 2, - "flags": [ "TRANSPARENT", "ROAD" ], - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, - "examine_action": "pit_covered" - }, - { - "type": "terrain", - "id": "t_slime", - "name": "slime", - "description": "A disgusting and slippery mess that could be used to stash things because who'd want to touch it?", - "symbol": "~", - "color": "green", - "move_cost": 6, - "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "PLACE_ITEM" ] - } -] diff --git a/data/json/furniture_and_terrain/terrain-walls.json b/data/json/furniture_and_terrain/terrain-walls.json deleted file mode 100644 index 6ca945171c096..0000000000000 --- a/data/json/furniture_and_terrain/terrain-walls.json +++ /dev/null @@ -1,1321 +0,0 @@ -[ - { - "type": "item_group", - "id": "wall_bash_results", - "subtype": "collection", - "entries": [ - { "item": "rock", "count": [ 0, 2 ] }, - { "item": "wood_panel", "count": [ 0, 1 ] }, - { "item": "nail", "charges": [ 2, 8 ] }, - { "item": "splinter", "count": [ 1, 5 ] } - ] - }, - { - "type": "terrain", - "id": "t_wall", - "aliases": [ "t_wall_h", "t_wall_v" ], - "name": "wall", - "description": "The stereotypical wall with wooden support structure filled with insulation and drywalled. Paint job is the all too common and neutral off-white or cream color, it could use more vibrant paint. Appears as though the material is still flammable.", - "symbol": "LINE_OXOX", - "color": "light_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_half", - "name": "half-built wall", - "description": "An incomplete wall of refined wood, dotted with carefully placed nails to provide proper support. It requires some more two by fours and nails before it'd be considered a suitable wall.", - "symbol": "#", - "color": "light_red", - "move_cost": 4, - "coverage": 60, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "REDUCE_SCENT", "MOUNTABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 10, - "str_max": 70, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 0, 5 ] }, - { "item": "wood_panel", "count": [ 0, 1 ] }, - { "item": "nail", "charges": [ 0, 5 ] }, - { "item": "splinter", "count": [ 5, 10 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_ponywall", - "aliases": [ "t_ponywall_h", "t_ponywall_v" ], - "name": "pony wall", - "description": "A short divider wall with wooden support structure with drywall. Paint job is the all too common and neutral off-white or cream color. Appears as though the material is flammable.", - "symbol": "LINE_OXOX", - "looks_like": "f_counter", - "color": "light_gray", - "move_cost": 0, - "coverage": 60, - "connects_to": "WALL", - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE", - "PLACE_ITEM", - "INDOORS", - "AUTO_WALL_SYMBOL", - "BASHABLE", - "THIN_OBSTACLE", - "MOUNTABLE", - "SHORT" - ], - "deconstruct": { "ter_set": "t_floor", "items": [ { "item": "2x4", "count": 10 }, { "item": "nail", "charges": 20 } ] }, - "bash": { - "str_min": 8, - "str_max": 20, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_r", - "aliases": [ "t_wall_h_r", "t_wall_v_r" ], - "name": "red wall", - "description": "Wall painted red.", - "symbol": "LINE_OXOX", - "color": "red", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_w", - "aliases": [ "t_wall_h_w", "t_wall_v_w" ], - "name": "white wall", - "description": "Wall painted white.", - "symbol": "LINE_OXOX", - "color": "white", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_b", - "aliases": [ "t_wall_h_b", "t_wall_v_b" ], - "name": "blue wall", - "description": "Wall painted blue.", - "symbol": "LINE_OXOX", - "color": "blue", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_g", - "aliases": [ "t_wall_h_g", "t_wall_v_g" ], - "name": "green wall", - "description": "Wall painted green.", - "symbol": "LINE_OXOX", - "color": "green", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_y", - "aliases": [ "t_wall_h_y", "t_wall_v_y" ], - "name": "yellow wall", - "description": "Wall painted yellow.", - "symbol": "LINE_OXOX", - "color": "yellow", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_P", - "aliases": [ "t_wall_h_P", "t_wall_v_P" ], - "name": "pink wall", - "description": "Wall painted pink.", - "symbol": "LINE_OXOX", - "color": "pink", - "move_cost": 0, - "coverage": 100, - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_p", - "aliases": [ "t_wall_h_p", "t_wall_v_p" ], - "name": "purple wall", - "description": "Wall painted purple.", - "symbol": "LINE_OXOX", - "color": "magenta", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_brick_wall_halfway", - "name": "half-built brick wall", - "description": "Half of a brick wall, looks like it still requires some more resources and effort before being considered a real wall.", - "symbol": "#", - "color": "brown", - "move_cost": 5, - "coverage": 60, - "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], - "bash": { - "str_min": 30, - "str_max": 100, - "sound": "crash!", - "sound_fail": "bash!", - "ter_set": "t_null", - "items": [ { "item": "rock", "count": [ 5, 8 ] }, { "item": "brick", "count": [ 1, 3 ] } ] - } - }, - { - "type": "terrain", - "id": "t_brick_wall", - "name": "brick wall", - "description": "A solid brick wall, sturdy enough to support a roof with enough walls and keep out any unwanted visitors.", - "symbol": "LINE_OXOX", - "color": "brown", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 60, - "str_max": 160, - "sound": "crash!", - "sound_fail": "bash!", - "ter_set": "t_null", - "items": [ { "item": "rock", "count": [ 8, 15 ] }, { "item": "brick", "count": [ 2, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_rock_wall", - "name": "stone wall", - "description": "A sturdy stone wall.", - "symbol": "LINE_OXOX", - "color": "light_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 80, - "str_max": 300, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "rock", "count": [ 8, 18 ] } ] - } - }, - { - "type": "terrain", - "id": "t_rock_wall_half", - "name": "half-built stone wall", - "description": "Half of a sturdy stone wall. Some work still needs to be done before this stone wall is complete.", - "symbol": "#", - "color": "light_gray", - "move_cost": 4, - "coverage": 60, - "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "MINEABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 40, - "str_max": 200, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "rock", "count": [ 3, 8 ] } ] - } - }, - { - "type": "terrain", - "id": "t_rock_smooth", - "name": "smoothed rock", - "description": "A block of stone that's been smoothed and shaped, commonly granite or marble for funerary chapels and mausoleums.", - "symbol": "LINE_OXOX", - "//": "use pillars, 't_column', as a compliment.", - "color": "white", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 120, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_rock_floor", - "items": [ { "item": "rock", "count": [ 6, 12 ] }, { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 10 } ] - } - }, - { - "type": "terrain", - "id": "t_adobe_brick_wall_halfway", - "name": "half-built adobe wall", - "description": "Half of an adobe brick wall, looks like it still requires some more resources and effort before being considered a real wall.", - "symbol": "#", - "color": "brown", - "looks_like": "t_brick_wall_halfway", - "move_cost": 5, - "coverage": 60, - "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], - "bash": { - "str_min": 20, - "str_max": 90, - "sound": "crash!", - "sound_fail": "bash!", - "ter_set": "t_null", - "items": [ { "item": "material_soil", "count": [ 4, 10 ] }, { "item": "adobe_brick", "count": [ 1, 3 ] } ] - } - }, - { - "type": "terrain", - "id": "t_adobe_brick_wall", - "name": "adobe wall", - "description": "A solid adobe brick wall, sturdy enough to support a roof with enough walls and keep out any unwanted visitors.", - "symbol": "LINE_OXOX", - "color": "brown", - "looks_like": "t_brick_wall", - "move_cost": 0, - "coverage": 100, - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 40, - "str_max": 120, - "sound": "crash!", - "sound_fail": "bash!", - "ter_set": "t_null", - "items": [ { "item": "material_soil", "count": [ 8, 20 ] }, { "item": "adobe_brick", "count": [ 2, 6 ] } ] - } - }, - { - "type": "terrain", - "id": "t_concrete_wall", - "aliases": [ "t_concrete_h", "t_concrete_v" ], - "name": "concrete wall", - "description": "An aesthetically pleasing design with simple lines, this type of concrete was used with a weaker chemical mixture in order to have faster setting times. Not ideal for multi-story buildings, but still capable of supporting a roof.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 70, - "str_max": 300, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_reb_cage", - "items": [ { "item": "rock", "count": [ 10, 22 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_metal", - "aliases": [ "t_wall_metal_h", "t_wall_metal_v" ], - "name": "metal wall", - "description": "An industrially fabricated thick sheet carefully positioned and joined seamlessly with perimeter sealant, this wall is capable of resisting extreme elements as well as hostile forces. Blast load rated and extremely fire-retardant, breaching will require specialized tools or industrial vehicles.", - "symbol": "LINE_OXOX", - "color": "cyan", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 200, - "str_max": 600, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_null", - "items": [ - { "item": "steel_lump", "count": [ 1, 4 ] }, - { "item": "steel_chunk", "count": [ 3, 12 ] }, - { "item": "scrap", "count": [ 9, 36 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_sconc_wall", - "name": "simple concrete wall", - "description": "A durable and uniform concrete wall, quite drab without decoration. More than capable of supporting a roof, as well as keeping out most anything, save for vehicles.", - "symbol": "LINE_OXOX", - "color": "light_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 90, - "str_max": 350, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_pit_shallow", - "items": [ { "item": "rock", "count": [ 10, 22 ] } ] - } - }, - { - "type": "terrain", - "id": "t_sconc_wall_halfway", - "name": "half-built simple concrete wall", - "description": "A partially poured concrete wall that could probably keep anything behind it quite safe if it were finished.", - "symbol": "*", - "color": "light_gray", - "move_cost": 4, - "coverage": 60, - "flags": [ "NOITEM", "TRANSPARENT", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 40, - "str_max": 350, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_pit_shallow", - "items": [ { "item": "rock", "count": [ 5, 11 ] } ] - } - }, - { - "type": "terrain", - "id": "t_strconc_wall", - "name": "reinforced concrete wall", - "description": "An extremely resilient wall, filled with concrete and rebar. Best suited for supporting multi-level buildings, only serious explosives and high-speed impacts would be capable of damaging this wall.", - "symbol": "LINE_OXOX", - "color": "light_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 120, - "str_max": 460, - "sound": "scrrrash!", - "sound_fail": "whump!", - "ter_set": "t_reb_cage", - "items": [ { "item": "rock", "count": [ 10, 22 ] } ] - } - }, - { - "type": "terrain", - "id": "t_strconc_wall_halfway", - "name": "half-built reinforced concrete wall", - "description": "Poured concrete with methodically placed rebar sticking out, which isn't practical for supporting roofs or shelter. It appears to need more resources before being considered complete.", - "symbol": "*", - "color": "light_gray", - "move_cost": 5, - "coverage": 60, - "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 60, - "str_max": 460, - "sound": "scrrrash!", - "sound_fail": "whump!", - "ter_set": "t_reb_cage", - "items": [ { "item": "rock", "count": [ 5, 11 ] } ] - } - }, - { - "type": "terrain", - "id": "t_reb_cage", - "name": "rebar cage", - "description": "A structural support system made of rebar that appears to be the early stages of a reinforced concrete wall, just missing the poured concrete.", - "symbol": "#", - "color": "dark_gray", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "THIN_OBSTACLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 20, - "str_max": 100, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pit", - "items": [ { "item": "scrap", "count": [ 4, 12 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] - } - }, - { - "type": "terrain", - "id": "t_scrap_wall", - "name": "simple metal wall", - "description": "A relatively simple wall made of scraped together metal. It's still capable of blocking intruders and supporting a roof with adjacent walls.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 80, - "str_max": 200, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pit_shallow", - "items": [ { "item": "steel_chunk", "count": [ 10, 22 ] } ] - } - }, - { - "type": "terrain", - "id": "t_scrap_wall_halfway", - "name": "half-built simple metal wall", - "description": "A partially built makeshift wall of metal that could potentially support a roof if it were completed.", - "symbol": "#", - "color": "dark_gray", - "move_cost": 4, - "coverage": 60, - "flags": [ "NOITEM", "TRANSPARENT", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], - "bash": { - "str_min": 50, - "str_max": 130, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pit_shallow", - "items": [ { "item": "steel_chunk", "count": [ 5, 11 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_wood", - "name": "wooden wall", - "description": "A finished wall of planks and support beams, capable of supporting an upper level or roof. Still highly flammable.", - "symbol": "LINE_OXOX", - "color": "light_red", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 12, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_wall_wood_chipped", - "items": [ - { "item": "2x4", "count": [ 0, 3 ] }, - { "item": "wood_panel", "count": [ 0, 2 ] }, - { "item": "nail", "charges": [ 1, 5 ] }, - { "item": "splinter", "count": [ 1, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_wall_wood_chipped", - "name": "chipped wood wall", - "description": "A wall of aligned two by fours that's starting to crack and break open. Some cut wood and a number of nails could patch this up quick.", - "symbol": "LINE_OXOX", - "color": "light_red", - "move_cost": 0, - "coverage": 100, - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_wall_wood_broken", - "items": [ - { "item": "2x4", "count": [ 1, 4 ] }, - { "item": "wood_panel", "count": [ 0, 2 ] }, - { "item": "nail", "charges": [ 1, 3 ] }, - { "item": "splinter", "count": [ 1, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_wall_wood_broken", - "name": "broken wood wall", - "description": "A number of planks are missing and the structure is beginning to sag and fall apart. It's going to need quite a bit of work to repair this wall.", - "symbol": "&", - "color": "light_red", - "move_cost": 0, - "coverage": 35, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "PERMEABLE", "CONNECT_TO_WALL" ], - "bash": { - "str_min": 4, - "str_max": 110, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 2, 5 ] }, - { "item": "wood_panel", "count": [ 0, 2 ] }, - { "item": "nail", "charges": [ 4, 10 ] }, - { "item": "splinter", "count": [ 1, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_wall_log_half", - "name": "half-built log wall", - "description": "A half-constructed wall of notched logs that interlock to provide stability. Needs a few more logs to hold up a roof. Looks flammable.", - "symbol": "#", - "color": "brown", - "move_cost": 4, - "coverage": 60, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "MINEABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 40, - "str_max": 120, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_log", - "name": "log wall", - "description": "A tall wall of timber suitable for housing and insulating from the weather. Quite flammable.", - "symbol": "LINE_OXOX", - "color": "brown", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 60, - "str_max": 180, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_wall_log_chipped", - "items": [ { "item": "splinter", "count": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_log_chipped", - "name": "chipped log wall", - "description": "A moderately damaged wall, could probably be patched up with some planks and nails.", - "symbol": "LINE_OXOX", - "color": "brown", - "move_cost": 0, - "coverage": 100, - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 40, - "str_max": 160, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_wall_log_broken", - "items": [ { "item": "splinter", "count": [ 5, 10 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_log_broken", - "name": "broken log wall", - "description": "A destroyed wood wall, with only a supporting log left, ready to collapse. Looks repairable if the damage was replaced and patched together with nails and planks.", - "symbol": "&", - "color": "brown", - "move_cost": 0, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "PERMEABLE", "CONNECT_TO_WALL" ], - "bash": { - "str_min": 8, - "str_max": 150, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] - } - }, - { - "type": "terrain", - "id": "t_palisade", - "name": "palisade wall", - "description": "An age-old type of fortification consisting of hefty lumber staked into the ground and cabled together.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 100, - "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "CONNECT_TO_WALL", "WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 35, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 10, 30 ] } ] - } - }, - { - "id": "t_wall_wattle", - "type": "terrain", - "name": "wattle-and-daub wall", - "description": "A relatively primitive wall made by daubing together a lattice of wooden strips using some combination of wet soil, clay, sand, animal dung and straw.", - "symbol": "LINE_OXOX", - "color": [ "light_red" ], - "move_cost": 0, - "coverage": 100, - "roof": "t_thatch_roof", - "bash": { - "str_min": 10, - "str_max": 140, - "ter_set": "t_wall_wattle_broken", - "sound": "crunch!", - "sound_fail": "whump!", - "items": [ { "item": "2x4", "count": [ 0, 3 ] }, { "item": "splinter", "count": [ 0, 6 ] } ] - }, - "flags": [ "FLAMMABLE_HARD", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ] - }, - { - "id": "t_wall_wattle_broken", - "type": "terrain", - "name": "broken wattle-and-daub wall", - "description": "This wattle-and-daub wall section has been destroyed, leaving mostly just frame, and is barely held together.", - "symbol": "&", - "color": [ "light_red" ], - "move_cost": 0, - "bash": { - "str_min": 4, - "str_max": 110, - "ter_set": "t_null", - "sound": "crash!", - "sound_fail": "whump!", - "items": [ { "item": "2x4", "count": [ 0, 3 ] }, { "item": "splinter", "count": [ 3, 6 ] } ] - }, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "PERMEABLE", "CONNECT_TO_WALL" ] - }, - { - "id": "t_wall_wattle_half", - "type": "terrain", - "name": "half-built wattle-and-daub wall", - "description": "This wattle-and-daub wall has some of the wooden strip lattice in place, and still requires the rest of the lattice and supporting wet compound to be filled in.", - "symbol": "#", - "color": [ "light_red" ], - "move_cost": 4, - "coverage": 60, - "bash": { - "str_min": 8, - "str_max": 75, - "ter_set": "t_null", - "sound": "crunch!", - "sound_fail": "whump!", - "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "splinter", "count": [ 6, 6 ] } ] - }, - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "NOITEM", "REDUCE_SCENT", "MOUNTABLE" ] - }, - { - "type": "terrain", - "id": "t_junk_wall", - "name": "junk metal wall", - "looks_like": "t_scrap_wall", - "description": "A wall of rusty scrap metal bolted and wire-tied to a sturdy frame. Very fashionable in post-apocalyptic shantytowns. Can support a roof.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 0, - "coverage": 100, - "flags": [ "NOITEM", "WALL", "SUPPORTS_ROOF", "AUTO_WALL_SYMBOL", "MINEABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 60, - "str_max": 200, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pit_shallow", - "items": [ - { "item": "pipe", "count": [ 1, 6 ] }, - { "item": "scrap", "count": [ 1, 40 ] }, - { "item": "sheet_metal", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 30 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_wall_rammed_earth", - "name": "rammed earth wall", - "description": "A solid wall of compressed dirt, sturdy enough to support a roof with enough walls and keep out some unwanted visitors.", - "symbol": "LINE_OXOX", - "color": "brown", - "move_cost": 0, - "coverage": 100, - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", - "bash": { - "str_min": 60, - "str_max": 200, - "sound": "heavy rumbling!", - "sound_fail": "thump", - "ter_set": "t_fence_post", - "items": [ { "item": "material_soil", "count": [ 100, 150 ] } ] - } - }, - { - "type": "terrain", - "id": "t_junk_palisade", - "name": "junk metal barrier", - "looks_like": "t_scrap_wall_halfway", - "description": "A simple wall of rusty scrap metal bolted and wire-tied to a makeshift frame. Very fashionable in post-apocalyptic shantytowns. This one isn't quite strong enough to support a roof, but could be reinforced.", - "symbol": "LINE_OXOX", - "color": "dark_gray", - "move_cost": 0, - "coverage": 60, - "flags": [ "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 30, - "str_max": 200, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_pit_shallow", - "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 40 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_glass", - "aliases": [ "t_wall_glass_h", "t_wall_glass_v" ], - "name": "glass wall", - "description": "A barrier made of glass, it's nothing complicated, and looks extremely fragile. Some contain glass break sensors or window sensors that trigger if the glass is tampered.", - "symbol": "LINE_OXOX", - "color": "light_cyan", - "move_cost": 0, - "coverage": 90, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], - "bash": { - "str_min": 4, - "str_max": 12, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wall_glass_alarm", - "aliases": [ "t_wall_glass_h_alarm", "t_wall_glass_v_alarm" ], - "name": "glass wall", - "description": "A barrier made of glass, it's nothing complicated, and looks extremely fragile. Some contain glass break sensors or window sensors that trigger if the glass is tampered.", - "symbol": "LINE_OXOX", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "ALARMED", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], - "bash": { - "str_min": 4, - "str_max": 12, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_laminated_glass", - "aliases": [ "t_laminated_glass_h", "t_laminated_glass_v" ], - "name": "laminated glass", - "looks_like": "t_reinforced_glass", - "description": "Laminated glass is composed layers of glass and plastic held together by an interlayer.", - "symbol": "LINE_OXOX", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 100, - "str_max": 180, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_ballistic_glass", - "aliases": [ "t_ballistic_glass_h", "t_ballistic_glass_v" ], - "name": "ballistic glass", - "looks_like": "t_reinforced_glass", - "description": "Ballistic glass consists of layers of laminated glass.", - "symbol": "LINE_OXOX", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 200, - "str_max": 400, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] - } - }, - { - "type": "terrain", - "id": "t_reinforced_glass", - "aliases": [ "t_reinforced_glass_h", "t_reinforced_glass_v" ], - "name": "reinforced glass", - "description": "A thicker pane of glass with thin metal wires embedded throughout, strengthening the structural properties. Still weaker than other types of walls, and not made to support a roof either.", - "symbol": "LINE_OXOX", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 40, - "str_max": 210, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "wire", "prob": 20 } ] - } - }, - { - "type": "terrain", - "id": "t_reinforced_glass_shutter", - "name": "reinforced glass with closed shutters", - "description": "A secondary layer of protection over reinforced glass, these metal shutters are typically used to ward off criminals or protect against damage from extreme weather. Looks like it can only be opened from the inside. Even with the installed shutters, it isn't feasible in supporting a roof.", - "symbol": "LINE_OXOX", - "color": "light_gray", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "OPENCLOSE_INSIDE", "MINEABLE", "BLOCK_WIND" ], - "open": "t_reinforced_glass_shutter_open", - "bash": { - "str_min": 60, - "str_max": 210, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_floor", - "items": [ - { "item": "glass_shard", "count": [ 42, 84 ] }, - { "item": "wire", "prob": 20 }, - { "item": "scrap", "count": [ 3, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_reinforced_glass_shutter_open", - "name": "reinforced glass with open shutters", - "description": "Hanging metal shutters that haven't been deployed, exposing the reinforced glass. It appears as though the metal shutters can only be activated from the inside.", - "symbol": "LINE_OXOX", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "OPENCLOSE_INSIDE", "MINEABLE", "BLOCK_WIND" ], - "close": "t_reinforced_glass_shutter", - "bash": { - "str_min": 40, - "str_max": 210, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 20, - "sound_fail_vol": 14, - "ter_set": "t_floor", - "items": [ - { "item": "glass_shard", "count": [ 42, 84 ] }, - { "item": "wire", "prob": 20 }, - { "item": "scrap", "count": [ 3, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_bars", - "name": "metal bars", - "description": "Thick, heavy bars from the floor to the ceiling, interlaced wall to wall. Not made to support roofs, but great for blocking paths.", - "examine_action": "bars", - "symbol": "\"", - "color": "light_gray", - "move_cost": 0, - "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], - "bash": { - "str_min": 60, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_floor", - "items": [ - { "item": "steel_lump", "prob": 25 }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 1, 5 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_paper", - "name": "paper wall", - "description": "A huge wall of pulpy mass that has been salvaged from nearby buildings, covered in sticky wasp saliva. Whatever structure was underneath has been reformed and long gone. You could smash it down effortlessly.", - "symbol": "#", - "color": "white", - "move_cost": 0, - "coverage": 100, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], - "bash": { - "str_min": 1, - "str_max": 6, - "sound": "rrrrip!", - "sound_fail": "slap!", - "sound_vol": 8, - "sound_fail_vol": 4, - "ter_set": "t_null" - } - }, - { - "type": "terrain", - "id": "t_root_wall", - "name": "root wall", - "description": "A dirt wall covered with roots.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 100, - "roof": "t_dirt", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL" ], - "bash": { - "str_min": 12, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 2, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_wax", - "name": "wax wall", - "description": "A wall made entirely out of wax.", - "symbol": "#", - "color": "yellow", - "move_cost": 0, - "coverage": 100, - "roof": "t_floor_wax", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "PLACE_ITEM", "WALL" ], - "bash": { - "str_min": 12, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_floor_wax", - "items": [ { "item": "wax", "count": [ 3, 5 ] } ] - } - }, - { - "type": "terrain", - "id": "t_rock", - "name": "solid rock", - "description": "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!", - "symbol": "#", - "color": "white", - "move_cost": 0, - "coverage": 100, - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "MINEABLE", "BLOCK_WIND" ], - "roof": "t_rock_floor", - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_rock_floor", - "ter_set_bashed_from_above": "t_rock_floor_no_roof", - "items": [ - { "item": "rock", "count": [ 3, 7 ] }, - { "item": "coal_lump", "charges": [ 250, 500 ], "prob": 10 }, - { "item": "material_limestone", "charges": [ 10, 25 ], "prob": 80 }, - { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 20 } - ] - } - }, - { - "type": "terrain", - "id": "t_rock_red", - "name": "red stone", - "description": "A red stone.", - "symbol": "#", - "color": "red", - "move_cost": 0, - "coverage": 100, - "flags": [ "MINEABLE" ], - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_rock_floor", - "items": [ { "item": "rock", "count": [ 3, 7 ] } ] - } - }, - { - "type": "terrain", - "id": "t_rock_green", - "name": "green stone", - "description": "A green stone.", - "symbol": "#", - "color": "green", - "move_cost": 0, - "coverage": 100, - "flags": [ "MINEABLE" ], - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_rock_floor", - "items": [ { "item": "rock", "count": [ 3, 7 ] } ] - } - }, - { - "type": "terrain", - "id": "t_rock_blue", - "name": "blue stone", - "description": "A blue stone.", - "symbol": "#", - "color": "blue", - "move_cost": 0, - "coverage": 100, - "flags": [ "MINEABLE" ], - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_rock_floor", - "items": [ { "item": "rock", "count": [ 3, 7 ] } ] - } - }, - { - "type": "terrain", - "id": "t_little_column", - "name": "little column", - "description": "A small support column.", - "symbol": "1", - "color": "light_gray", - "move_cost": 0, - "coverage": 80, - "flags": [ "WALL", "TRANSPARENT" ], - "bash": { - "str_min": 40, - "str_max": 200, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ { "item": "rock", "count": [ 1, 3 ] }, { "item": "rebar", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_column_halfway", - "name": "half-built column", - "description": "An empty wooden frame in the shape of a column, built around a concrete and rebar foundation. It isn't capable of supporting roofs or shelter, and appears to need more resources before being considered complete.", - "symbol": "*", - "color": "light_gray", - "move_cost": 5, - "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], - "connects_to": "WALL", - "bash": { - "str_min": 60, - "str_max": 460, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_reb_cage", - "items": [ { "item": "rock", "count": [ 5, 11 ] } ] - } - }, - { - "type": "terrain", - "id": "t_column", - "name": "column", - "description": "A concrete column.", - "symbol": "1", - "color": "light_gray", - "move_cost": 0, - "coverage": 80, - "flags": [ "WALL", "MINEABLE" ], - "bash": { - "str_min": 120, - "str_max": 200, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_reb_cage", - "items": [ { "item": "rock", "count": [ 10, 22 ] } ] - } - }, - { - "type": "terrain", - "id": "t_support_l", - "name": "large metal support", - "description": "A heavy-duty metal support beam.", - "symbol": "T", - "color": "light_gray", - "move_cost": 0, - "coverage": 80, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "WALL", "SUPPORTS_ROOF", "MINEABLE" ], - "bash": { - "str_min": 40, - "str_max": 200, - "sound": "metal screeching!", - "sound_fail": "whump!", - "ter_set": "t_concrete", - "items": [ - { "item": "steel_lump", "count": [ 0, 2 ] }, - { "item": "steel_chunk", "count": [ 2, 6 ] }, - { "item": "scrap", "count": [ 5, 18 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "frame", "count": [ 6, 8 ] }, - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 6 ] }, - { "item": "scrap", "count": [ 4, 8 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_support_s", - "name": "small metal support", - "description": "A metal support beam.", - "symbol": "l", - "color": "light_gray", - "move_cost": 0, - "coverage": 55, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "WALL", "SUPPORTS_ROOF", "MINEABLE" ], - "bash": { - "str_min": 20, - "str_max": 120, - "sound": "metal screeching!", - "sound_fail": "whump!", - "ter_set": "t_concrete", - "items": [ - { "item": "steel_lump", "prob": 50 }, - { "item": "steel_chunk", "count": [ 1, 3 ] }, - { "item": "scrap", "count": [ 2, 9 ] } - ] - }, - "deconstruct": { - "ter_set": "t_concrete", - "items": [ - { "item": "pipe", "count": [ 4, 6 ] }, - { "item": "steel_lump", "count": [ 1, 2 ] }, - { "item": "steel_chunk", "count": [ 1, 6 ] }, - { "item": "scrap", "count": [ 2, 4 ] } - ] - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-windows.json b/data/json/furniture_and_terrain/terrain-windows.json deleted file mode 100644 index 5158db842bdd4..0000000000000 --- a/data/json/furniture_and_terrain/terrain-windows.json +++ /dev/null @@ -1,602 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_window", - "name": "window", - "description": "A giant sheet of glass inserted into a window, typically found on the side of shops to showcase goods.", - "symbol": "\"", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "deconstruct": { "ter_set": "t_window_empty", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ { "item": "glass_shard", "count": [ 34, 50 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_taped", - "name": "taped window", - "description": "Duct tape covers this window, blocking sunlight and visibility. You could remove the duct tape by cutting it off.", - "symbol": "\"", - "color": "dark_gray", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "WALL", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 6, - "str_max": 12, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ { "item": "glass_shard", "count": [ 34, 50 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_domestic", - "name": "window with curtains", - "description": "A window with fancy curtains on the inside that can be drawn closed to block visibility and shut out any light.", - "symbol": "\"", - "color": "light_gray", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE", - "NOITEM", - "OPENCLOSE_INSIDE", - "BARRICADABLE_WINDOW_CURTAINS", - "REDUCE_SCENT", - "CONNECT_TO_WALL", - "BLOCK_WIND" - ], - "examine_action": "curtains", - "close": "t_curtains", - "open": "t_window_open", - "deconstruct": { - "ter_set": "t_window_empty", - "items": [ - { "item": "stick", "count": 1 }, - { "item": "sheet", "count": 2 }, - { "item": "glass_sheet", "count": 1 }, - { "item": "nail", "charges": [ 3, 4 ] }, - { "item": "string_36", "count": 1 } - ] - }, - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ - { "item": "glass_shard", "count": [ 21, 29 ] }, - { "item": "sheet", "count": 2 }, - { "item": "stick", "count": 1 }, - { "item": "string_36", "count": 1 } - ] - } - }, - { - "type": "terrain", - "id": "t_window_no_curtains", - "name": "window without curtains", - "description": "A smaller window typically found in residential homes. You could install a curtain rod and drapes if you had the supplies and skill.", - "symbol": "\"", - "color": "white", - "move_cost": 0, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE", - "NOITEM", - "OPENCLOSE_INSIDE", - "BARRICADABLE_WINDOW", - "REDUCE_SCENT", - "CONNECT_TO_WALL", - "BLOCK_WIND" - ], - "examine_action": "locked_object", - "open": "t_window_no_curtains_open", - "deconstruct": { "ter_set": "t_window_empty", "items": [ { "item": "glass_sheet", "count": 1 } ] }, - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ { "item": "glass_shard", "count": [ 21, 29 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_no_curtains_open", - "name": "open window without curtains", - "description": "A smaller window typically found in residential homes. It's open and can be crawled through.", - "symbol": "'", - "color": "white", - "move_cost": 4, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "OPENCLOSE_INSIDE", "MOUNTABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], - "close": "t_window_no_curtains", - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ { "item": "glass_shard", "count": [ 21, 29 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_no_curtains_taped", - "name": "taped window", - "description": "A smaller window typically found in residential homes. This one has been blocked out with duct tape. You could remove the duct tape by cutting it off.", - "//": "Taped window without curtains", - "symbol": "\"", - "color": "dark_gray", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 6, - "str_max": 12, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ { "item": "glass_shard", "count": [ 21, 29 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_domestic_taped", - "name": "taped window", - "description": "A window with fancy curtains on the inside. This one has been blocked out with duct tape. You could remove the duct tape by cutting it off.", - "//": "Taped window with curtains", - "symbol": "\"", - "color": "dark_gray", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "WALL", "BLOCK_WIND" ], - "examine_action": "curtains", - "bash": { - "str_min": 6, - "str_max": 12, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ - { "item": "glass_shard", "count": [ 21, 29 ] }, - { "item": "sheet", "count": 2 }, - { "item": "stick", "count": 1 }, - { "item": "string_36", "count": 1 } - ] - } - }, - { - "type": "terrain", - "id": "t_window_open", - "name": "open window with curtains", - "description": "A window with fancy curtains on the inside that can be drawn closed to block visibility and shut out any light. It's open and you can crawl through.", - "symbol": "'", - "color": "light_gray", - "move_cost": 4, - "coverage": 60, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "OPENCLOSE_INSIDE", "MOUNTABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], - "examine_action": "curtains", - "close": "t_window_domestic", - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ - { "item": "glass_shard", "count": [ 21, 29 ] }, - { "item": "sheet", "count": 2 }, - { "item": "stick", "count": 1 }, - { "item": "string_36", "count": 1 } - ] - } - }, - { - "type": "terrain", - "id": "t_curtains", - "name": "window with closed curtains", - "description": "A window with fancy curtains that have been drawn shut, blocking sunlight and visibility. The curtains can only be opened on the inside. If you examined the curtains more closely, you could peek through the drapes or tear down everything. Or you could just smash the window open.", - "symbol": "\"", - "color": "dark_gray", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ - "FLAMMABLE", - "NOITEM", - "OPENCLOSE_INSIDE", - "REDUCE_SCENT", - "BARRICADABLE_WINDOW_CURTAINS", - "CONNECT_TO_WALL", - "BLOCK_WIND" - ], - "open": "t_window_domestic", - "examine_action": "curtains", - "deconstruct": { - "ter_set": "t_window_empty", - "items": [ - { "item": "stick", "count": 1 }, - { "item": "sheet", "count": 2 }, - { "item": "glass_sheet", "count": 1 }, - { "item": "nail", "charges": [ 3, 4 ] }, - { "item": "string_36", "count": 1 } - ] - }, - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ - { "item": "glass_shard", "count": [ 21, 29 ] }, - { "item": "sheet", "count": 2 }, - { "item": "stick", "count": 1 }, - { "item": "string_36", "count": 1 } - ] - } - }, - { - "type": "terrain", - "id": "t_window_alarm", - "name": "window", - "description": "A giant sheet of glass inserted into a window, typically found on the side of shops to showcase goods.", - "symbol": "\"", - "color": "light_cyan", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ - "TRANSPARENT", - "FLAMMABLE", - "ALARMED", - "NOITEM", - "REDUCE_SCENT", - "BARRICADABLE_WINDOW", - "CONNECT_TO_WALL", - "BLOCK_WIND" - ], - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame" - } - }, - { - "type": "terrain", - "id": "t_window_alarm_taped", - "name": "taped window", - "description": "Duct tape covers this window, blocking out any sunlight and visibility. You could remove the duct tape by cutting it off.", - "symbol": "\"", - "color": "dark_gray", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "ALARMED", "WALL", "BARRICADABLE_WINDOW", "BLOCK_WIND" ], - "bash": { - "str_min": 6, - "str_max": 12, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ { "item": "glass_shard", "count": [ 34, 50 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_empty", - "name": "empty window", - "roof": "t_flat_roof", - "description": "An empty window frame consisting of two by fours and nails. You could install a sheet of glass, or even board it up for protection. You could also convert it into a wall if you took the time to construct it.", - "symbol": "0", - "color": "yellow", - "move_cost": 4, - "flags": [ "TRANSPARENT", "NOITEM", "FLAMMABLE", "SUPPORTS_ROOF", "MOUNTABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], - "bash": { - "str_min": 10, - "str_max": 70, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": [ - { "item": "2x4", "count": [ 0, 5 ] }, - { "item": "nail", "charges": [ 0, 5 ] }, - { "item": "splinter", "count": [ 5, 10 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_window_frame", - "name": "window frame", - "description": "A wooden window frame that has shattered glass around it. You'll probably get hurt if you crawled through the sharp and jagged shards. You could smash out the remaining pieces, or take your time and quietly clean them up.", - "symbol": "0", - "color": "light_cyan", - "move_cost": 8, - "coverage": 60, - "roof": "t_flat_roof", - "bash": { - "str_min": 1, - "str_max": 1, - "sound": "glass crunching!", - "sound_fail": "whack!", - "sound_vol": 12, - "sound_fail_vol": 8, - "ter_set": "t_window_empty", - "items": [ { "item": "glass_shard", "count": [ 6, 10 ] } ] - }, - "flags": [ "TRANSPARENT", "SHARP", "FLAMMABLE", "NOITEM", "MOUNTABLE", "CONNECT_TO_WALL" ] - }, - { - "type": "terrain", - "id": "t_window_boarded", - "name": "boarded up window", - "description": "A glass window that has been covered with nailed down planks, blocking sunlight and visibility. It's not much stronger, but it could be further reinforced with strategically placed two by fours.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 3, - "str_max": 30, - "sound": "crash!", - "sound_fail": "wham!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_frame", - "items": [ { "item": "splinter", "count": [ 0, 2 ] }, { "item": "glass_shard", "count": [ 25, 42 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_boarded_noglass", - "name": "boarded up window", - "description": "An empty window frame that has been covered with nailed down planks, blocking sunlight and visibility. It's not much stronger, but it could be further reinforced with strategically placed two by fours.", - "symbol": "#", - "color": "brown", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 3, - "str_max": 30, - "sound": "crash!", - "sound_fail": "wham!", - "sound_vol": 14, - "sound_fail_vol": 10, - "ter_set": "t_window_empty", - "items": [ { "item": "splinter", "count": [ 0, 2 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_reinforced", - "name": "reinforced boarded up window", - "description": "A heavily fortified glass window with carefully placed planks across the glass to block vision. Adding a few spikes and metal plating would further increase its durability.", - "symbol": "#", - "color": "red", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 12, - "str_max": 30, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_window_boarded", - "items": [ { "item": "splinter", "count": [ 0, 8 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_reinforced_noglass", - "name": "reinforced boarded up window", - "description": "A heavily fortified window with carefully placed planks across the open frame to block vision. Adding a few spikes and metal plating would further increase its durability.", - "symbol": "#", - "color": "red", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 12, - "str_max": 30, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_window_boarded_noglass", - "items": [ { "item": "splinter", "count": [ 0, 8 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_enhanced", - "name": "armored boarded up window", - "description": "This once normal glass window now menaces with spikes along the edges, with laboriously placed metal sheeting to further strengthen the wooden reinforcements underneath.", - "symbol": "#", - "color": "cyan", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 18, - "str_max": 40, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_window_reinforced", - "items": [ { "item": "spike", "count": [ 0, 2 ] }, { "item": "sheet_metal", "count": [ 1, 3 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_enhanced_noglass", - "name": "armored boarded up window", - "description": "This once normal window frame now menaces with spikes along the edges, with laboriously placed metal sheeting to further strengthen the wooden reinforcements underneath.", - "symbol": "#", - "color": "cyan", - "move_cost": 0, - "coverage": 95, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], - "bash": { - "str_min": 18, - "str_max": 40, - "sound": "crash!", - "sound_fail": "wham!", - "ter_set": "t_window_reinforced_noglass", - "items": [ { "item": "spike", "count": [ 0, 2 ] }, { "item": "sheet_metal", "count": [ 1, 3 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_bars", - "name": "window frame with metal bars", - "description": "A giant sheet of glass inserted into a window with thick security grilles, making it impossible to crawl through. Typically installed for high-value stores, or at least stores in bad neighborhoods.", - "symbol": "#", - "color": "light_gray", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], - "bash": { - "str_min": 60, - "str_max": 250, - "sound": "metal screeching!", - "sound_fail": "clang!", - "ter_set": "t_window_empty", - "items": [ - { "item": "steel_lump", "prob": 25 }, - { "item": "steel_chunk", "count": [ 1, 4 ] }, - { "item": "scrap", "count": [ 1, 5 ] }, - { "item": "glass_shard", "count": [ 75, 125 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_window_bars_alarm", - "name": "window with metal bars", - "description": "A giant sheet of glass inserted into a window with thick security grilles, making it impossible to crawl through. Typically installed for high-value stores, or at least stores in bad neighborhoods. This one has a small sticker in a corner stating, 'Protected by AtmoWeb, leading AI in terminating crime'.", - "symbol": "#", - "color": "light_gray", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "ALARMED", "CONNECT_TO_WALL" ], - "bash": { - "str_min": 3, - "str_max": 6, - "sound": "glass breaking!", - "sound_fail": "whack!", - "sound_vol": 16, - "sound_fail_vol": 10, - "ter_set": "t_window_bars", - "items": [ { "item": "glass_shard", "count": [ 34, 50 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_stained_green", - "name": "high stained glass window", - "description": "Breathtaking craftsmanship of stained glass featuring an elegant emerald landscape.", - "symbol": "\"", - "color": "light_green", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "glass breaking!", - "sound_fail": "whack!", - "ter_set": "t_rock_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 67 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_stained_red", - "name": "high stained glass window", - "description": "Breathtaking craftsmanship of stained glass featuring an otherworldly radiant ruby flower blooming.", - "symbol": "\"", - "color": "light_red", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "glass breaking!", - "sound_fail": "whack!", - "ter_set": "t_rock_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 67 ] } ] - } - }, - { - "type": "terrain", - "id": "t_window_stained_blue", - "name": "high stained glass window", - "description": "Breathtaking craftsmanship of stained glass featuring an alluring azure oceanic abyss.", - "symbol": "\"", - "color": "light_blue", - "move_cost": 0, - "roof": "t_flat_roof", - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "glass breaking!", - "sound_fail": "whack!", - "ter_set": "t_rock_floor", - "items": [ { "item": "glass_shard", "count": [ 42, 67 ] } ] - } - } -] diff --git a/data/json/furniture_and_terrain/terrain-zlevel-transitions.json b/data/json/furniture_and_terrain/terrain-zlevel-transitions.json deleted file mode 100644 index e443cdc68951d..0000000000000 --- a/data/json/furniture_and_terrain/terrain-zlevel-transitions.json +++ /dev/null @@ -1,242 +0,0 @@ -[ - { - "type": "terrain", - "id": "t_wood_stairs_down", - "name": "wooden stairs", - "description": "A wooden staircase leading down.", - "symbol": ">", - "color": "light_red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "GOES_DOWN", "PLACE_ITEM" ], - "bash": { - "str_min": 10, - "str_max": 70, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_open_air", - "items": [ - { "item": "2x4", "count": [ 0, 2 ] }, - { "item": "nail", "charges": [ 0, 5 ] }, - { "item": "splinter", "count": [ 2, 8 ] } - ] - }, - "deconstruct": { "ter_set": "t_open_air", "items": [ { "item": "nail", "charges": [ 4, 8 ] }, { "item": "2x4", "count": [ 0, 4 ] } ] } - }, - { - "type": "terrain", - "id": "t_wood_stairs_up_half", - "name": "half-built wooden stairs", - "description": "Half of a wooden staircase. Some work still needs to be done before this staircase is complete.", - "symbol": "<", - "color": "light_red", - "move_cost": 4, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM" ], - "deconstruct": { - "deconstruct_above": true, - "ter_set": "t_floor", - "items": [ { "item": "nail", "charges": [ 12, 20 ] }, { "item": "2x4", "count": [ 2, 6 ] } ] - }, - "bash": { - "str_min": 10, - "str_max": 70, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_floor", - "items": [ - { "item": "2x4", "count": [ 0, 5 ] }, - { "item": "nail", "charges": [ 0, 5 ] }, - { "item": "splinter", "count": [ 5, 10 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_wood_stairs_up_broken", - "name": "broken wooden stairs", - "description": "A number of planks are missing and the structure is beginning to sag and fall apart. It's going to need quite a bit of work to repair this staircase.", - "symbol": "<", - "color": "light_red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM" ], - "bash": { - "str_min": 8, - "str_max": 110, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_floor", - "items": [ - { "item": "2x4", "count": [ 0, 2 ] }, - { "item": "wood_panel", "count": [ 0, 1 ] }, - { "item": "nail", "charges": [ 0, 5 ] }, - { "item": "splinter", "count": [ 2, 8 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_wood_stairs_up", - "name": "wooden stairs", - "description": "A wooden staircase leading up", - "symbol": "<", - "color": "light_red", - "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "GOES_UP", "PLACE_ITEM" ], - "deconstruct": { - "deconstruct_above": true, - "ter_set": "t_floor", - "items": [ - { "item": "nail", "charges": [ 12, 20 ] }, - { "item": "2x4", "count": [ 8, 12 ] }, - { "item": "wood_panel", "count": [ 1, 3 ] } - ] - }, - "bash": { - "str_min": 12, - "str_max": 150, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_wood_stairs_up_broken", - "items": [ - { "item": "2x4", "count": [ 0, 3 ] }, - { "item": "wood_panel", "count": [ 0, 2 ] }, - { "item": "nail", "charges": [ 1, 5 ] }, - { "item": "splinter", "count": [ 1, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_stairs_down", - "name": "stairs", - "description": "A flight of stairs leading down.", - "symbol": ">", - "color": "yellow", - "move_cost": 2, - "roof": "t_flat_roof", - "flags": [ "TRANSPARENT", "GOES_DOWN", "INDOORS", "PLACE_ITEM" ] - }, - { - "type": "terrain", - "id": "t_stairs_up", - "name": "stairs", - "description": "A flight of stairs leading up.", - "symbol": "<", - "color": "yellow", - "move_cost": 2, - "flags": [ "TRANSPARENT", "GOES_UP", "INDOORS", "PLACE_ITEM" ] - }, - { - "type": "terrain", - "id": "t_manhole", - "name": "manhole", - "description": "This is a manhole. The heavy iron cover lies over an entrance to the underworld of hidden tunnels beneath the streets where sewage and rain water frolic freely.", - "symbol": ">", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "GOES_DOWN", "PLACE_ITEM" ] - }, - { - "type": "terrain", - "id": "t_manhole_cover", - "name": "manhole cover", - "description": "Just a manhole cover.", - "symbol": "0", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT" ] - }, - { - "type": "terrain", - "id": "t_ladder_up", - "name": "ladder", - "description": "A ladder leading up.", - "symbol": "<", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "GOES_UP", "PLACE_ITEM" ] - }, - { - "type": "terrain", - "id": "t_ladder_down", - "name": "ladder", - "description": "A ladder leading down.", - "symbol": ">", - "color": "dark_gray", - "move_cost": 2, - "flags": [ "TRANSPARENT", "GOES_DOWN", "PLACE_ITEM" ] - }, - { - "type": "terrain", - "id": "t_slope_down", - "name": "downward slope", - "description": "A downward facing slope.", - "symbol": ">", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "GOES_DOWN", "PLACE_ITEM" ] - }, - { - "type": "terrain", - "id": "t_slope_up", - "name": "upward slope", - "description": "An upward facing slope.", - "symbol": "<", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "GOES_UP", "PLACE_ITEM" ] - }, - { - "type": "terrain", - "id": "t_rope_up", - "name": "rope leading up", - "description": "A rope. You could climb up it.", - "symbol": "<", - "color": "white", - "move_cost": 2, - "flags": [ "TRANSPARENT", "GOES_UP" ] - }, - { - "type": "terrain", - "id": "t_low_stairs_begin", - "name": "low stairs (beginning section)", - "description": "A flight of stairs leading up.", - "symbol": "<", - "color": "dark_gray_white", - "move_cost": 4, - "flags": [ "TRANSPARENT", "BASHABLE", "FLAMMABLE", "PLACE_ITEM", "RAMP", "SEEN_FROM_ABOVE" ], - "bash": { - "str_min": 12, - "str_max": 50, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_floor", - "items": [ - { "item": "2x4", "count": [ 0, 3 ] }, - { "item": "nail", "charges": [ 1, 5 ] }, - { "item": "splinter", "count": [ 1, 4 ] } - ] - } - }, - { - "type": "terrain", - "id": "t_low_stairs_end", - "name": "low stairs (end section)", - "description": "A flight of stairs leading up.", - "symbol": "<", - "color": "black_white", - "move_cost": 0, - "flags": [ "BASHABLE", "FLAMMABLE", "PLACE_ITEM", "RAMP", "RAMP_END", "SEEN_FROM_ABOVE" ], - "bash": { - "str_min": 20, - "str_max": 50, - "sound": "crunch!", - "sound_fail": "whump!", - "ter_set": "t_floor", - "items": [ - { "item": "2x4", "count": [ 0, 3 ] }, - { "item": "nail", "charges": [ 1, 5 ] }, - { "item": "splinter", "count": [ 1, 4 ] } - ] - } - } -] diff --git a/data/json/harvest.json b/data/json/harvest.json index 2b837a01768d6..7cef688af1d67 100644 --- a/data/json/harvest.json +++ b/data/json/harvest.json @@ -59,8 +59,8 @@ "faults": [ "fault_bionic_salvaged" ] }, { - "drop": "cyborg_harvest", - "type": "bionic_group", + "drop": "burnt_out_bionic", + "type": "bionic", "flags": [ "FILTHY", "NO_STERILE", "NO_PACKED" ], "faults": [ "fault_bionic_salvaged" ] }, diff --git a/data/json/item_groups.json b/data/json/item_groups.json index a4d14a523c8fe..74afaea2e897c 100644 --- a/data/json/item_groups.json +++ b/data/json/item_groups.json @@ -36,8 +36,6 @@ { "item": "colamdew", "prob": 5, "container-item": "bottle_twoliter" }, [ "backpack", 38 ], [ "slingpack", 19 ], - [ "travelpack", 10 ], - [ "petpack", 1 ], [ "pockknife", 14 ], [ "roller_shoes_off", 10 ], [ "knife_swissarmy", 10 ], @@ -274,10 +272,6 @@ [ "boots_combat", 10 ], [ "boots_winter", 60 ], [ "boots_hiking", 10 ], - [ "travelpack", 7 ], - [ "backpack_hiking", 4 ], - [ "bigback", 1 ], - [ "petpack", 1 ], [ "runner_bag", 5 ], [ "flip_flops", 35 ], [ "lowtops", 45 ], @@ -375,8 +369,8 @@ [ "atomic_lamp", 1 ], [ "dog_whistle", 5 ], [ "pet_carrier", 2 ], - { "item": "dogfood", "prob": 10, "container-item": "can_food" }, - { "item": "catfood", "prob": 10, "container-item": "can_food" }, + [ "dogfood_canned", 10 ], + [ "catfood_canned", 10 ], [ "nic_gum", 2 ], [ "oxygen_tank", 2 ], [ "smoxygen_tank", 1 ], @@ -614,8 +608,8 @@ [ "coffeemaker", 10 ], [ "atomic_coffeepot", 2 ], [ "dog_whistle", 5 ], - { "item": "dogfood", "prob": 20, "container-item": "can_food" }, - { "item": "catfood", "prob": 20, "container-item": "can_food" }, + [ "dogfood_canned", 20 ], + [ "catfood_canned", 20 ], [ "salted_fish", 15 ], [ "charcoal", 5 ], [ "soap", 70 ], @@ -853,9 +847,6 @@ [ "inhaler", 14 ], [ "eyedrops", 25 ], [ "television", 10 ], - [ "travelpack", 4 ], - [ "backpack_tactical_large", 1 ], - [ "backpack_hiking", 3 ], [ "clock", 10 ], [ "basket_laundry", 30 ], [ "cig", 60 ], @@ -888,7 +879,6 @@ [ "football", 5 ], [ "hairpin", 20 ], [ "fc_hairpin", 5 ], - { "group": "jewelry_accessories", "prob": 1 }, [ "barrette", 10 ], [ "tieclip", 3 ], [ "collarpin", 3 ], @@ -1003,7 +993,6 @@ [ "wristwatch", 15 ], [ "diving_watch", 5 ], [ "gold_watch", 5 ], - [ "silver_watch", 7 ], [ "sf_watch", 2 ], [ "pocketwatch", 5 ], [ "lsd", 1 ], @@ -1596,8 +1585,7 @@ [ "touristmap", 20 ], [ "restaurantmap", 20 ], [ "money_bundle", 55 ], - [ "gold_watch", 5 ], - [ "silver_watch", 10 ], + [ "gold_watch", 10 ], [ "gum", 30 ], [ "caff_gum", 10 ], [ "sm_extinguisher", 10 ], @@ -1858,8 +1846,8 @@ [ "jar_sauerkraut_pickled", 5 ], [ "sports_drink", 10 ], [ "protein_shake", 10 ], - { "item": "dogfood", "prob": 5, "container-item": "can_food" }, - { "item": "catfood", "prob": 5, "container-item": "can_food" }, + [ "dogfood_canned", 5 ], + [ "catfood_canned", 5 ], { "item": "fish_pickled", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, [ "lutefisk", 1 ], [ "dry_beans", 40 ], @@ -1975,7 +1963,6 @@ [ "boots_rubber", 20 ], [ "charcoal", 5 ], [ "fungicide", 2 ], - [ "insecticide", 2 ], [ "soap", 80 ], [ "detergent", 80 ], [ "chem_hydrogen_peroxide", 20 ] @@ -2077,7 +2064,6 @@ [ "goggles_swim", 50 ], [ "swim_fins", 30 ], [ "goggles_ski", 30 ], - [ "mask_ski", 30 ], [ "hat_ball", 30 ], [ "helmet_bike", 35 ], [ "helmet_ball", 45 ], @@ -2160,9 +2146,6 @@ [ "vest", 15 ], [ "backpack", 38 ], [ "backpack_leather", 18 ], - [ "backpack_hiking", 12 ], - [ "bigback", 3 ], - [ "travelpack", 6 ], [ "cowboy_hat", 4 ], [ "10gal_hat", 4 ], [ "bb", 8 ], @@ -2339,7 +2322,6 @@ [ "mag_unarmed", 30 ], [ "mag_stabbing", 15 ], [ "goggles_ski", 30 ], - [ "mask_ski", 30 ], [ "hat_ball", 30 ], [ "helmet_bike", 35 ], [ "helmet_ball", 45 ], @@ -2385,9 +2367,6 @@ [ "vest", 15 ], [ "backpack", 38 ], [ "backpack_leather", 18 ], - [ "backpack_hiking", 4 ], - [ "bigback", 2 ], - [ "travelpack", 9 ], [ "slingpack", 18 ], [ "bb", 8 ], [ "bolt_steel", 7 ], @@ -2782,9 +2761,7 @@ [ "under_armor", 20 ], [ "jersey", 40 ], [ "camisole", 60 ], - [ "tie_clipon", 10 ], - [ "tie_necktie", 10 ], - [ "tie_skinny", 10 ], + [ "skinny_tie", 10 ], [ "tieclip", 5 ], [ "collarpin", 5 ], [ "postman_shirt", 5 ], @@ -2806,7 +2783,7 @@ [ "coat_rain", 50 ], [ "trenchcoat", 12 ], [ "duster", 12 ], - { "group": "neckties", "prob": 5 }, + [ "skinny_tie", 5 ], [ "tieclip", 2 ], [ "collarpin", 2 ], [ "apron_leather", 1 ] @@ -2817,7 +2794,7 @@ "id": "suits", "items": [ [ "dress_shirt", 100 ], - { "group": "neckties", "prob": 50 }, + [ "skinny_tie", 50 ], [ "tieclip", 30 ], [ "collarpin", 30 ], [ "undershirt", 100 ], @@ -2860,7 +2837,6 @@ [ "hat_fur", 15 ], [ "hat_faux_fur", 20 ], [ "pants_ski", 60 ], - [ "mask_ski", 15 ], [ "long_underpants", 40 ], [ "long_undertop", 40 ], [ "union_suit", 40 ], @@ -2968,11 +2944,6 @@ "id": "bags", "items": [ [ "backpack", 38 ], - [ "backpack_hiking", 3 ], - [ "petpack", 3 ], - [ "backpack_tactical_large", 1 ], - [ "bigback", 1 ], - [ "travelpack", 5 ], [ "purse", 40 ], [ "mbag", 20 ], [ "slingpack", 8 ], @@ -3144,10 +3115,7 @@ [ "veil_wedding", 1 ], [ "dress_wedding", 1 ], [ "porkpie", 5 ], - [ "tie_bow", 5 ], - [ "tie_clipon", 5 ], - [ "tie_necktie", 5 ], - [ "tie_skinny", 5 ], + [ "skinny_tie", 5 ], [ "tieclip", 2 ], [ "collarpin", 2 ], [ "jersey", 40 ], @@ -3216,7 +3184,6 @@ [ "boy_shorts", 25 ], [ "sweatshirt", 75 ], [ "backpack", 38 ], - [ "travelpack", 10 ], [ "slingpack", 19 ], [ "suitcase_m", 99 ], [ "suitcase_l", 55 ], @@ -3307,7 +3274,6 @@ [ "tanto", 3 ], [ "throwing_knife", 7 ], [ "punch_dagger", 12 ], - [ "claw_bar", 3 ], [ "crowbar", 18 ], [ "tazer", 3 ], [ "software_hacking", 10 ], @@ -3315,7 +3281,6 @@ [ "lsd", 2 ], [ "pocketwatch", 5 ], [ "sf_watch", 5 ], - [ "platinum_watch", 1 ], [ "file", 5 ], [ "RPG", 1 ], [ "RPG-7_ammo", 1 ], @@ -3366,8 +3331,7 @@ [ "eink_tablet_pc", 5 ], [ "camera", 3 ], [ "camera_pro", 1 ], - [ "gold_watch", 3 ], - [ "silver_watch", 6 ], + [ "gold_watch", 5 ], [ "pocketwatch", 2 ], [ "gold_dental_grill", 2 ], [ "diamond_dental_grill", 1 ], @@ -3496,7 +3460,6 @@ [ "oxy_powder", 2 ], [ "hazmat_suit", 5 ], [ "fungicide", 10 ], - [ "insecticide", 5 ], [ "oxygen_tank", 40 ], [ "autoclave", 20 ], [ "smoxygen_tank", 10 ], @@ -3713,7 +3676,6 @@ [ "pocketwatch", 2 ], [ "gold_watch", 2 ], [ "sf_watch", 1 ], - [ "silver_watch", 5 ], [ "survnote", 1 ], [ "magnifying_glass", 8 ], [ "camera_control", 2 ], @@ -4059,22 +4021,20 @@ [ "pocketwatch", 11 ], [ "gold_watch", 12 ], [ "sf_watch", 10 ], - [ "platinum_watch", 1 ], - [ "survnote", 3 ], - [ "gold_ring", 10 ], + [ "ring", 10 ], [ "diamond_ring", 10 ], [ "gold_bracelet", 12 ], [ "silver_bracelet", 14 ], [ "copper_bracelet", 10 ], [ "bead_bracelet", 5 ], [ "pearl_collar", 10 ], - [ "silver_necklace", 14 ], + [ "necklace", 14 ], [ "bead_necklace", 5 ], - [ "silver_locket", 10 ], + [ "locket", 10 ], [ "gold_ear", 12 ], [ "silver_ear", 14 ], [ "copper_ear", 10 ], - [ "jade_brooch", 10 ], + [ "brooch", 10 ], [ "diamond", 10 ], [ "crown_golden", 5 ], [ "diamond_dental_grill", 5 ], @@ -4106,24 +4066,18 @@ [ "heels", 50 ], [ "coat_fur_sf", 1 ], [ "tricorne", 3 ], - [ "gold_bracelet", 8 ], - [ "gold_necklace", 8 ], - [ "gold_locket", 3 ], - [ "gold_ring", 8 ], - [ "gold_ear", 8 ], + [ "ring", 12 ], [ "pearl_collar", 1 ], [ "diamond_ring", 1 ], + [ "gold_bracelet", 12 ], + [ "silver_bracelet", 14 ], [ "copper_bracelet", 1 ], - [ "copper_necklace", 1 ], - [ "copper_locket", 1 ], - [ "copper_ring", 1 ], + [ "necklace", 14 ], + [ "locket", 5 ], + [ "gold_ear", 12 ], + [ "silver_ear", 14 ], [ "copper_ear", 1 ], - [ "silver_bracelet", 10 ], - [ "silver_necklace", 10 ], - [ "silver_locket", 4 ], - [ "silver_ring", 10 ], - [ "silver_ear", 10 ], - [ "jade_brooch", 2 ], + [ "brooch", 2 ], [ "diamond", 1 ], [ "manual_dodge", 1 ], [ "fancy_sunglasses", 2 ], @@ -4134,8 +4088,6 @@ [ "rapier", 3 ], [ "cavalry_sabre", 2 ], [ "sf_watch", 5 ], - [ "platinum_watch", 1 ], - [ "ring_signet", 1 ], [ "magic_8_ball", 1 ], [ "coin_quarter", 1 ] ] @@ -4177,8 +4129,6 @@ [ "pike", 5 ], [ "pike_inferior", 10 ], [ "spear_steel", 5 ], - [ "shillelagh", 3 ], - [ "shillelagh_weighted", 2 ], [ "helmet_plate", 1 ], [ "armor_plate", 2 ], [ "huge_crossbow", 2 ], @@ -4272,10 +4222,8 @@ [ "sleeveless_duster", 5 ], [ "sleeveless_duster_leather", 5 ], [ "sleeveless_duster_fur", 5 ], - [ "gold_watch", 15 ], - [ "silver_watch", 20 ], - [ "sf_watch", 7 ], - [ "platinum_watch", 1 ], + [ "gold_watch", 20 ], + [ "sf_watch", 10 ], [ "tieclip", 3 ], [ "collarpin", 3 ], [ "mask_gas", 10 ], @@ -4428,30 +4376,17 @@ [ "jackhammer", 2 ], [ "elec_jackhammer", 1 ], [ "pickaxe", 1 ], - [ "gold_ring", 12 ], - [ "silver_ring", 6 ], - [ "platinum_ring", 1 ], + [ "ring", 12 ], [ "diamond_ring", 1 ], - [ "ring_engagement", 2 ], - [ "ring_wedding", 1 ], - [ "ring_purity", 2 ], - [ "ring_signet", 1 ], - [ "bracelet_friendship", 1 ], [ "diamond", 1 ], - [ "cufflinks", 2 ], - [ "cufflinks_intricate", 1 ], [ "pearl_collar", 1 ], - [ "silver_necklace", 14 ], + [ "necklace", 14 ], [ "gold_ear", 12 ], [ "silver_ear", 14 ], - [ "platinum_ear", 1 ], - [ "platinum_bracelet", 1 ], [ "gold_bracelet", 8 ], [ "silver_bracelet", 10 ], - [ "jade_brooch", 1 ], - [ "silver_locket", 1 ], - [ "gold_locket", 1 ], - [ "platinum_locket", 1 ], + [ "brooch", 1 ], + [ "locket", 1 ], [ "usb_drive", 5 ], [ "cot", 40 ], [ "rollmat", 40 ], @@ -4635,10 +4570,7 @@ [ "tourist_table", 10 ], [ "thermos", 25 ], [ "magic_8_ball", 2 ], - [ "coin_quarter", 2 ], - [ "bronze_medal", 3 ], - [ "silver_medal", 2 ], - [ "gold_medal", 1 ] + [ "coin_quarter", 2 ] ] }, { @@ -4656,7 +4588,6 @@ [ "throwing_knife", 14 ], [ "throwing_axe", 4 ], [ "duffelbag", 25 ], - [ "backpack_tactical_large", 10 ], [ "binoculars", 20 ], [ "bolt_steel", 7 ], [ "crossbow", 2 ], @@ -4808,7 +4739,6 @@ [ "hat_knit", 25 ], [ "backpack", 38 ], [ "backpack_leather", 8 ], - [ "backpack_tactical_large", 3 ], [ "slingpack", 8 ], { "group": "ammo_pocket_batteries_full", "prob": 50 }, [ "novel_scifi", 20 ], @@ -5760,7 +5690,6 @@ [ "goggles_nv", 1 ], [ "goggles_ir", 1 ], [ "optical_cloak", 1 ], - [ "holo_cloak", 1 ], [ "backpack", 38 ], [ "UPS_off", 5 ], [ "adv_UPS_off", 3 ], @@ -5799,7 +5728,6 @@ [ "goggles_nv", 1 ], [ "goggles_ir", 1 ], [ "optical_cloak", 1 ], - [ "holo_cloak", 1 ], [ "mess_kit", 9 ], [ "mil_mess_kit", 1 ], [ "backpack", 38 ], @@ -5915,7 +5843,6 @@ [ "heatpack", 60 ], [ "pur_tablets", 20 ], [ "fungicide", 5 ], - [ "insecticide", 5 ], [ "rx12_injector", 8 ], [ "ampoule", 12 ], [ "rx11_stimpack", 8 ], @@ -6520,7 +6447,6 @@ [ "cell_phone", 10 ], [ "smart_phone", 30 ], [ "rag", 1 ], - [ "claw_bar", 3 ], [ "crowbar", 18 ], [ "halligan", 1 ], [ "fire_ax", 2 ], @@ -6992,7 +6918,6 @@ [ "55gal_drum", 1 ], [ "30gal_drum", 2 ], [ "optical_cloak", 1 ], - [ "holo_cloak", 1 ], [ "grapnel", 1 ], [ "briefcase", 5 ], [ "survnote", 2 ], @@ -7224,7 +7149,6 @@ [ "e_tool", 20 ], [ "knife_trench", 14 ], [ "fungicide", 3 ], - [ "insecticide", 3 ], [ "flaregun", 20 ], [ "signal_flare", 25 ], [ "militarymap", 4 ], @@ -7235,7 +7159,6 @@ [ "rx11_stimpack", 5 ], [ "stimpack_ammo", 10 ], [ "optical_cloak", 1 ], - [ "holo_cloak", 1 ], [ "halligan", 10 ], [ "fire_ax", 5 ], [ "antiparasitic", 2 ], @@ -7368,10 +7291,8 @@ [ "chemistry_set", 4 ], [ "oxy_powder", 8 ], [ "fungicide", 10 ], - [ "insecticide", 10 ], [ "pur_tablets", 10 ], [ "optical_cloak", 1 ], - [ "holo_cloak", 1 ], [ "antiparasitic", 2 ], [ "survnote", 1 ], [ "toolbox", 1 ], @@ -7554,7 +7475,6 @@ [ "lighter", 60 ], [ "ref_lighter", 2 ], [ "matches", 60 ], - [ "claw_bar", 3 ], [ "crowbar", 18 ], [ "pipebomb", 4 ], [ "grenade", 3 ], @@ -7578,7 +7498,6 @@ [ "knife_trench", 7 ], [ "switchblade", 4 ], [ "gold_watch", 5 ], - [ "silver_watch", 2 ], [ "pocketwatch", 2 ], [ "gold_dental_grill", 2 ], [ "diamond_dental_grill", 1 ], @@ -8188,7 +8107,6 @@ [ "makeshift_machete", 4 ], [ "flamethrower_crude", 6 ], [ "fungicide", 10 ], - [ "insecticide", 10 ], [ "antifungal", 1 ], [ "antiparasitic", 5 ], [ "diazepam", 1 ], @@ -8359,44 +8277,19 @@ "type": "item_group", "id": "jewelry_front", "items": [ - [ "gold_ring", 30 ], + [ "ring", 30 ], [ "gold_ear", 30 ], [ "gold_bracelet", 30 ], - [ "gold_necklace", 30 ], [ "gold_watch", 30 ], - [ "gold_locket", 20 ], - [ "gold_hairpin", 20 ], [ "gold_dental_grill", 10 ], - [ "platinum_dental_grill", 1 ], - [ "platinum_ring", 2 ], - [ "platinum_ear", 2 ], - [ "platinum_bracelet", 2 ], - [ "platinum_necklace", 2 ], - [ "platinum_locket", 1 ], - [ "platinum_hairpin", 1 ], - [ "platinum_watch", 1 ], [ "silver_ear", 40 ], - [ "silver_necklace", 40 ], + [ "necklace", 40 ], [ "silver_bracelet", 40 ], - [ "silver_ring", 40 ], - [ "silver_locket", 30 ], - [ "silver_hairpin", 30 ], - [ "silver_watch", 15 ], - [ "copper_ear", 15 ], - [ "copper_bracelet", 15 ], - [ "copper_ring", 15 ], - [ "copper_necklace", 15 ], - [ "copper_locket", 15 ], - [ "copper_hairpin", 10 ], - [ "ring_purity", 25 ], - [ "ring_engagement", 25 ], - [ "ring_wedding", 25 ], - [ "cufflinks", 25 ], - [ "cufflinks_intricate", 15 ], + [ "sf_watch", 10 ], [ "diamond_ring", 10 ], [ "diamond_dental_grill", 5 ], - [ "jade_brooch", 30 ], - [ "sf_watch", 5 ], + [ "brooch", 30 ], + [ "copper_ear", 50 ], [ "pocketwatch", 30 ], [ "tieclip", 35 ], [ "pearl_collar", 30 ], @@ -8409,44 +8302,19 @@ "type": "item_group", "items": [ [ "polisher", 10 ], - [ "gold_dental_grill", 15 ], - [ "gold_ring", 15 ], + [ "ring", 15 ], [ "gold_ear", 15 ], [ "gold_bracelet", 15 ], - [ "gold_necklace", 15 ], - [ "gold_locket", 15 ], - [ "gold_hairpin", 15 ], - [ "gold_watch", 10 ], - [ "platinum_dental_grill", 1 ], - [ "platinum_ring", 3 ], - [ "platinum_ear", 3 ], - [ "platinum_bracelet", 3 ], - [ "platinum_necklace", 3 ], - [ "platinum_locket", 3 ], - [ "platinum_hairpin", 3 ], - [ "platinum_watch", 1 ], + [ "gold_watch", 15 ], + [ "gold_dental_grill", 15 ], [ "silver_ear", 20 ], - [ "silver_necklace", 20 ], + [ "necklace", 20 ], [ "silver_bracelet", 20 ], - [ "silver_ring", 20 ], - [ "silver_locket", 20 ], - [ "silver_hairpin", 20 ], - [ "silver_watch", 15 ], - [ "copper_ear", 15 ], - [ "copper_bracelet", 15 ], - [ "copper_ring", 15 ], - [ "copper_necklace", 15 ], - [ "copper_locket", 15 ], - [ "copper_hairpin", 15 ], - [ "ring_purity", 15 ], - [ "ring_engagement", 15 ], - [ "ring_wedding", 15 ], - [ "cufflinks", 15 ], - [ "cufflinks_intricate", 10 ], [ "sf_watch", 5 ], [ "diamond_ring", 5 ], [ "diamond_dental_grill", 2 ], - [ "jade_brooch", 15 ], + [ "brooch", 15 ], + [ "copper_ear", 25 ], [ "pocketwatch", 15 ], [ "tieclip", 15 ], [ "pearl_collar", 15 ], @@ -8472,75 +8340,22 @@ "type": "item_group", "id": "jewelry_accessories", "items": [ - [ "gold_ring", 30 ], + [ "ring", 30 ], [ "gold_ear", 30 ], [ "gold_bracelet", 30 ], - [ "gold_necklace", 30 ], - [ "gold_locket", 20 ], - [ "gold_hairpin", 20 ], [ "gold_dental_grill", 10 ], - [ "platinum_dental_grill", 1 ], - [ "platinum_ring", 2 ], - [ "platinum_ear", 2 ], - [ "platinum_bracelet", 2 ], - [ "platinum_necklace", 2 ], - [ "platinum_locket", 1 ], - [ "platinum_hairpin", 1 ], [ "silver_ear", 40 ], - [ "silver_necklace", 40 ], + [ "necklace", 40 ], [ "silver_bracelet", 40 ], - [ "silver_ring", 40 ], - [ "silver_locket", 30 ], - [ "silver_hairpin", 30 ], - [ "copper_ear", 15 ], - [ "copper_bracelet", 15 ], - [ "copper_ring", 15 ], - [ "copper_necklace", 15 ], - [ "copper_locket", 15 ], - [ "copper_hairpin", 10 ], - [ "ring_purity", 25 ], - [ "ring_engagement", 25 ], - [ "ring_wedding", 25 ], - [ "cufflinks", 25 ], - [ "cufflinks_intricate", 15 ], [ "diamond_ring", 10 ], [ "diamond_dental_grill", 5 ], - [ "jade_brooch", 30 ], + [ "brooch", 30 ], + [ "copper_ear", 50 ], [ "tieclip", 35 ], [ "pearl_collar", 30 ], [ "holy_symbol", 20 ] ] }, - { - "type": "item_group", - "id": "rings_and_things", - "items": [ - [ "gold_ring", 30 ], - [ "gold_ear", 30 ], - [ "gold_bracelet", 30 ], - [ "gold_necklace", 30 ], - [ "gold_locket", 20 ], - [ "platinum_ring", 2 ], - [ "platinum_ear", 2 ], - [ "platinum_bracelet", 2 ], - [ "platinum_necklace", 2 ], - [ "platinum_locket", 1 ], - [ "silver_ear", 40 ], - [ "silver_necklace", 40 ], - [ "silver_bracelet", 40 ], - [ "silver_ring", 40 ], - [ "silver_locket", 30 ], - [ "copper_ear", 15 ], - [ "copper_bracelet", 15 ], - [ "copper_ring", 15 ], - [ "copper_necklace", 15 ], - [ "copper_locket", 15 ], - [ "ring_purity", 25 ], - [ "ring_engagement", 25 ], - [ "ring_wedding", 25 ], - [ "diamond_ring", 10 ] - ] - }, { "type": "item_group", "id": "antique", @@ -8574,14 +8389,9 @@ [ "teapot", 15 ], [ "bowl_pewter", 15 ], [ "briefcase", 10 ], - [ "gold_watch", 5 ], - [ "silver_watch", 10 ], - [ "jade_brooch", 12 ], - [ "silver_locket", 8 ], - [ "gold_locket", 4 ], - [ "ring_signet", 4 ], - [ "ring_engagement", 2 ], - [ "ring_wedding", 1 ], + [ "gold_watch", 10 ], + [ "brooch", 12 ], + [ "locket", 12 ], [ "pistol_flintlock", 4 ], [ "carbine_flintlock", 4 ], [ "rifle_flintlock", 4 ], @@ -8591,10 +8401,7 @@ [ "straw_sandals", 1 ], [ "holy_symbol", 10 ], [ "magic_8_ball", 1 ], - [ "coin_quarter", 1 ], - [ "bronze_medal", 1 ], - [ "silver_medal", 1 ], - [ "gold_medal", 1 ] + [ "coin_quarter", 1 ] ] }, { @@ -8704,8 +8511,6 @@ [ "gloves_rubber", 60 ], [ "fertilizer_liquid", 20 ], [ "fertilizer_commercial", 30 ], - [ "fungicide", 20 ], - [ "insecticide", 30 ], { "item": "chem_saltpetre", "prob": 15, "charges-min": 10, "charges-max": 50 }, [ "sickle", 40 ], [ "toolbox", 10 ], @@ -9273,9 +9078,8 @@ [ "straw_hat", 80 ], [ "straw_fedora", 80 ], [ "silver_ear", 20 ], - [ "silver_necklace", 20 ], + [ "necklace", 20 ], [ "silver_bracelet", 20 ], - [ "silver_locket", 20 ], [ "radio", 20 ], [ "aspirin", 80 ], [ "inhaler", 30 ], @@ -9632,7 +9436,6 @@ [ "basket", 25 ], [ "wrench", 30 ], [ "shovel", 30 ], - [ "claw_bar", 6 ], [ "crowbar", 30 ], [ "crucible", 25 ], [ "beartrap", 15 ], @@ -10184,8 +9987,10 @@ [ "child_book", 5 ], [ "fancy_sunglasses", 5 ], [ "flask_hip", 5 ], + [ "locket", 10 ], + [ "necklace", 5 ], [ "ref_lighter", 5 ], - { "group": "jewelry_accessories", "prob": 35 }, + [ "ring", 20 ], [ "story_book", 5 ], [ "syringe", 3 ], [ "teddy", 15 ], @@ -10231,37 +10036,5 @@ [ "schematics_antimateriel", 20 ], [ "schematics_searchlight", 50 ] ] - }, - { - "id": "cyborg_harvest", - "type": "item_group", - "items": [ - [ "bio_dis_shock", 1 ], - [ "bio_dis_acid", 1 ], - [ "bio_drain", 1 ], - [ "bio_noise", 1 ], - [ "bio_power_weakness", 1 ], - [ "bio_itchy", 1 ], - [ "bio_nostril", 1 ], - [ "bio_thumbs", 1 ], - [ "bio_spasm", 1 ], - [ "bio_shakes", 1 ], - [ "bio_leaky", 1 ], - [ "bio_sleepy", 1 ], - [ "bio_deformity", 1 ], - [ "bio_voice", 1 ], - [ "bio_pokedeye", 1 ], - [ "bio_ankles", 1 ], - [ "bio_trip", 1 ], - [ "bio_stiff", 1 ], - [ "bio_armor_head", 2 ], - [ "bio_armor_torso", 2 ], - [ "bio_armor_arms", 2 ], - [ "bio_armor_legs", 2 ], - [ "bio_armor_eyes", 2 ], - [ "bio_razors", 2 ], - [ "bio_power_storage", 1 ], - [ "bio_torsionratchet", 1 ] - ] } ] diff --git a/data/json/itemgroups/ammo.json b/data/json/itemgroups/ammo.json index 187d59f1e8749..8cce2870ff118 100644 --- a/data/json/itemgroups/ammo.json +++ b/data/json/itemgroups/ammo.json @@ -163,9 +163,7 @@ [ "4570_pen", 20 ], [ "4570_low", 40 ], [ "762_m87", 25 ], - [ "8mm_civilian", 15 ], - [ "300blk", 15 ], - [ "300blk_ss", 10 ] + [ "8mm_civilian", 15 ] ] }, { @@ -187,9 +185,7 @@ [ "8mm_fmj", 30 ], [ "8mm_hvp", 10 ], [ "8mm_inc", 20 ], - [ "8mm_jhp", 10 ], - [ "300blk", 15 ], - [ "300blk_ss", 10 ] + [ "8mm_jhp", 10 ] ] }, { @@ -221,8 +217,7 @@ [ "reloaded_762_51", 10 ], [ "reloaded_762_51_incendiary", 5 ], [ "reloaded_762_54R", 40 ], - [ "reloaded_762_m43", 20 ], - [ "reloaded_300blk", 10 ] + [ "reloaded_762_m43", 20 ] ] }, { @@ -420,8 +415,7 @@ [ "762R_casing", 60 ], [ "9mm_casing", 100 ], [ "9x18mm_casing", 80 ], - [ "shot_hull", 100 ], - [ "300blk_casing", 80 ] + [ "shot_hull", 100 ] ] }, { diff --git a/data/json/itemgroups/clothing.json b/data/json/itemgroups/clothing.json index 5ef287505e78c..62bb22dae0851 100644 --- a/data/json/itemgroups/clothing.json +++ b/data/json/itemgroups/clothing.json @@ -41,37 +41,6 @@ } ] }, - { - "id": "clothing_hunting", - "type": "item_group", - "//": "Clothes that hunters take on hunting trips.", - "items": [ - [ "balclava", 50 ], - [ "hat_cotton", 50 ], - [ "hat_faux_fur", 25 ], - [ "hat_fur", 50 ], - [ "hat_hunting", 75 ], - [ "hat_knit", 25 ], - [ "army_top", 50 ], - [ "long_underpants", 50 ], - [ "long_undertop", 50 ], - [ "gloves_liner", 50 ], - [ "gloves_wool", 50 ], - [ "knit_scarf", 50 ], - [ "pants_cargo", 75 ], - [ "socks_wool", 50 ], - [ "coat_winter", 50 ], - [ "greatcoat", 25 ], - [ "jacket_flannel", 75 ], - [ "peacoat", 25 ], - [ "trenchcoat", 25 ], - [ "boots", 75 ], - [ "boots_winter", 50 ], - [ "boots_hiking", 50 ], - [ "boots_steel", 25 ], - [ "fishing_waders", 25 ] - ] - }, { "id": "clothing_outdoor_set", "type": "item_group", @@ -270,7 +239,6 @@ [ "backpack", 20 ], [ "camelbak", 40 ], [ "chestpouch", 40 ], - [ "backpack_tactical_large", 20 ], [ "chestrig", 160 ], [ "molle_pack", 100 ], [ "rucksack", 80 ] @@ -525,7 +493,7 @@ "items": [ [ "gold_watch", 50 ], [ "sf_watch", 50 ], - [ "jade_brooch", 80 ], + [ "brooch", 80 ], [ "pearl_collar", 50 ], [ "silver_bracelet", 30 ], [ "gold_bracelet", 20 ] @@ -561,10 +529,5 @@ "id": "wedding_suits", "type": "item_group", "items": [ [ "tux", 100 ], [ "suit", 80 ], [ "waistcoat", 50 ], [ "dress_shirt", 100 ], [ "undershirt", 50 ] ] - }, - { - "id": "neckties", - "type": "item_group", - "items": [ [ "tie_skinny", 40 ], [ "tie_necktie", 40 ], [ "tie_bow", 40 ], [ "tie_clipon", 40 ] ] } ] diff --git a/data/json/itemgroups/food.json b/data/json/itemgroups/food.json index c0398444e15c4..baa2630c97c99 100644 --- a/data/json/itemgroups/food.json +++ b/data/json/itemgroups/food.json @@ -7,24 +7,24 @@ "items": [ [ "cooking_oil", 20 ], [ "cooking_oil2", 20 ], - [ "jar_glass", 10 ], - [ "jar_3l_glass", 10 ], + [ "jar_glass", 50 ], + [ "jar_3l_glass", 40 ], [ "cheese_hard", 5 ], [ "vinegar", 15 ], - { "item": "veggy_pickled", "prob": 50, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "veggy_pickled", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, [ "jar_sauerkraut_pickled", 5 ], - { "item": "meat_pickled", "prob": 20, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "fish_pickled", "prob": 30, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "meat_canned", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "veggy_canned", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "apple_canned", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "can_tomato", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "fish_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "meat_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "veggy_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "fish_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "sauce_red", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "kompot", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" } + { "item": "meat_pickled", "prob": 4, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "fish_pickled", "prob": 6, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "meat_canned", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "veggy_canned", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "apple_canned", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "can_tomato", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "fish_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "meat_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "veggy_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "fish_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "sauce_red", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "kompot", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" } ] }, { @@ -48,15 +48,6 @@ [ "dry_rice", 40 ] ] }, - { - "id": "pet_food", - "type": "item_group", - "items": [ - [ "birdfood", 10 ], - { "item": "dogfood", "prob": 45, "container-item": "can_food" }, - { "item": "catfood", "prob": 45, "container-item": "can_food" } - ] - }, { "type": "item_group", "id": "condiments", @@ -95,57 +86,10 @@ [ "coffee_raw", 15 ], [ "honey_bottled", 35 ], [ "honey_glassed", 35 ], - [ "jar_glass", 20 ], - [ "jar_3l_glass", 30 ], + [ "jar_glass", 50 ], + [ "jar_3l_glass", 40 ], [ "cheese_hard", 5 ], [ "vinegar", 15 ] ] - }, - { - "type": "item_group", - "id": "fresh_produce", - "ammo": 75, - "magazine": 100, - "items": [ - [ "apple", 10 ], - [ "orange", 65 ], - [ "lemon", 50 ], - [ "pear", 50 ], - [ "grapefruit", 5 ], - [ "cherries", 10 ], - [ "plums", 10 ], - [ "grapes", 20 ], - [ "pineapple", 5 ], - [ "peach", 10 ], - [ "cranberries", 7 ], - [ "watermelon", 5 ], - [ "melon", 5 ], - [ "mango", 10 ], - [ "pomegranate", 5 ], - [ "rhubarb", 10 ], - [ "papaya", 3 ], - [ "kiwi", 5 ], - [ "apricot", 5 ], - [ "mushroom", 20 ], - [ "tomato", 20 ], - [ "lettuce", 15 ], - [ "cabbage", 10 ], - [ "spinach", 6 ], - [ "cucumber", 10 ], - [ "pumpkin", 10 ], - [ "celery", 3 ], - [ "broccoli", 9 ], - [ "zucchini", 15 ], - [ "onion", 15 ], - [ "chili_pepper", 15 ], - [ "carrot", 15 ], - [ "potato", 15 ], - [ "blueberries", 3 ], - [ "strawberries", 2 ], - [ "raspberries", 7 ], - [ "blackberries", 7 ], - [ "garlic", 3 ], - [ "pine_nuts", 2 ] - ] } ] diff --git a/data/json/itemgroups/guns.json b/data/json/itemgroups/guns.json index e22a64bbcc885..def1f6aec0fb7 100644 --- a/data/json/itemgroups/guns.json +++ b/data/json/itemgroups/guns.json @@ -192,9 +192,7 @@ { "item": "savage_111f", "prob": 15, "charges-min": 0, "charges-max": 3 }, { "item": "sharps", "prob": 15, "charges-min": 0, "charges-max": 1 }, { "item": "weatherby_5", "prob": 15, "charges-min": 0, "charges-max": 3 }, - { "item": "hk417_13", "prob": 40, "charges-min": 0, "charges-max": 20 }, - { "item": "ar15_retool_300blk", "prob": 15, "charges-min": 0, "charges-max": 30 }, - { "item": "iwi_tavor_x95_300blk", "prob": 10, "charges-min": 0, "charges-max": 30 } + { "item": "hk417_13", "prob": 40, "charges-min": 0, "charges-max": 20 } ] }, { @@ -219,8 +217,7 @@ { "item": "sig552", "prob": 100, "charges-min": 0, "charges-max": 30 }, { "item": "scar_l", "prob": 50, "charges-min": 0, "charges-max": 30 }, { "item": "scar_h", "prob": 50, "charges-min": 0, "charges-max": 20 }, - { "item": "m110a1", "prob": 50, "charges-min": 0, "charges-max": 20 }, - { "item": "acr_300blk", "prob": 15, "charges-min": 0, "charges-max": 30 } + { "item": "m110a1", "prob": 50, "charges-min": 0, "charges-max": 20 } ] }, { @@ -247,9 +244,7 @@ { "item": "rifle_flintlock", "prob": 180 }, { "item": "steyr_aug", "prob": 40, "charges-min": 0, "charges-max": 30 }, { "item": "trex_gun", "prob": 60 }, - { "item": "arx160", "prob": 40, "charges-min": 0, "charges-max": 30 }, - { "item": "iwi_tavor_x95_300blk", "prob": 10, "charges-min": 0, "charges-max": 30 }, - { "item": "acr_300blk", "prob": 15, "charges-min": 0, "charges-max": 30 } + { "item": "arx160", "prob": 40, "charges-min": 0, "charges-max": 30 } ] }, { diff --git a/data/json/itemgroups/locations.json b/data/json/itemgroups/locations.json index bbf11c39b5592..55408982f924c 100644 --- a/data/json/itemgroups/locations.json +++ b/data/json/itemgroups/locations.json @@ -64,9 +64,7 @@ [ "longshirt", 30 ], [ "polo_shirt", 30 ], [ "dress_shirt", 30 ], - [ "tie_skinny", 10 ], - [ "tie_necktie", 10 ], - [ "tie_clipon", 10 ], + [ "skinny_tie", 10 ], [ "tieclip", 10 ], [ "collarpin", 10 ], [ "blazer", 35 ], @@ -211,24 +209,17 @@ { "id": "petstore_misc", "type": "item_group", - "items": [ - { "item": "dogfood", "prob": 35, "container-item": "can_food" }, - { "item": "catfood", "prob": 35, "container-item": "can_food" }, - [ "birdfood", 15 ], - [ "dog_whistle", 15 ], - [ "flashlight", 5 ] - ] + "items": [ [ "dogfood_canned", 35 ], [ "catfood_canned", 35 ], [ "birdfood", 15 ], [ "dog_whistle", 15 ], [ "flashlight", 5 ] ] }, { "id": "petstore_shelves", "type": "item_group", "items": [ - { "item": "dogfood", "prob": 30, "container-item": "can_food" }, - { "item": "catfood", "prob": 30, "container-item": "can_food" }, + [ "dogfood_canned", 30 ], + [ "catfood_canned", 30 ], [ "birdfood", 15 ], [ "can_tuna", 15 ], [ "can_chicken", 15 ], - [ "petpack", 10 ], [ "kevlar_harness", 5 ], [ "leather_harness_dog", 5 ], [ "rubber_harness_dog", 5 ] @@ -828,7 +819,6 @@ [ "towel", 50 ], [ "scissors", 50 ], [ "fungicide", 10 ], - [ "insecticide", 10 ], [ "soap", 20 ], [ "chem_hydrogen_peroxide", 10 ], [ "canister_empty", 5 ], @@ -851,9 +841,8 @@ "items": [ [ "dog_whistle", 10 ], [ "pet_carrier", 30 ], - [ "petpack", 3 ], - { "item": "dogfood", "prob": 30, "container-item": "can_food" }, - { "item": "catfood", "prob": 30, "container-item": "can_food" }, + [ "dogfood_canned", 30 ], + [ "catfood_canned", 30 ], [ "birdfood", 10 ], [ "towel", 20 ], [ "soap", 10 ], @@ -895,7 +884,6 @@ [ "scissors", 1 ], [ "phonebook", 2 ], [ "flashlight", 2 ], - [ "petpack", 1 ], [ "mag_comic", 5 ] ] }, @@ -970,7 +958,7 @@ "entries": [ { "group": "female_underwear_top" }, { "group": "female_underwear_bottom" }, - { "item": "gold_ring" }, + { "item": "ring" }, { "item": "veil_wedding" }, { "item": "dress_wedding" }, { "item": "corpse" } @@ -1397,38 +1385,6 @@ { "item": "diamond", "prob": 10 } ] }, - { - "id": "fishing_items", - "type": "item_group", - "//": "For fishing themed locations", - "items": [ - [ "flotation_vest", 50 ], - [ "plastic_sheet", 10 ], - [ "fishing_waders", 5 ], - [ "wetsuit", 10 ], - [ "wetsuit_spring", 10 ], - [ "wetsuit_gloves", 20 ], - [ "wetsuit_booties", 20 ], - [ "wetsuit_hood", 10 ], - [ "scuba_tank", 5 ], - [ "small_scuba_tank", 5 ], - [ "dive_bag", 10 ], - [ "rebreather", 2 ], - [ "rebreather_filter", 4 ], - [ "glowstick", 60 ], - [ "handflare", 40 ], - [ "grapnel", 40 ], - [ "fishing_rod_professional", 60 ], - [ "fishing_rod_basic", 60 ], - [ "rope_6", 60 ], - [ "rope_30", 60 ], - [ "fish_bait", 100 ], - [ "fish_trap", 100 ], - [ "bucket", 100 ], - [ "fishing_hook_basic", 100 ], - [ "fishing_hook_bone", 100 ] - ] - }, { "id": "laundromat_bleach", "type": "item_group", diff --git a/data/json/itemgroups/magazines.json b/data/json/itemgroups/magazines.json index ca5e0e732ba42..248885bd2b6cf 100644 --- a/data/json/itemgroups/magazines.json +++ b/data/json/itemgroups/magazines.json @@ -6,7 +6,6 @@ "items": [ [ "rm4502", 2 ], [ "rm4504", 2 ], - [ "huge_atomic_battery_cell", 2 ], [ "20x66_20_mag", 10 ], [ "20x66_40_mag", 5 ], [ "5x50_50_mag", 5 ], @@ -242,14 +241,7 @@ "type": "item_group", "id": "mags_shotgun_rare", "//": "Aftermarket or otherwise uncommon shotgun magazines excluding milspec.", - "items": [ - [ "saiga10mag", 50 ], - [ "saiga30mag", 10 ], - [ "saiga410mag_10rd", 30 ], - [ "saiga410mag_30rd", 10 ], - [ "shot_speedloader6", 15 ], - [ "shot_speedloader8", 15 ] - ] + "items": [ [ "saiga10mag", 50 ], [ "saiga30mag", 10 ], [ "saiga410mag_10rd", 30 ], [ "saiga410mag_30rd", 10 ] ] }, { "type": "item_group", diff --git a/data/json/itemgroups/main.json b/data/json/itemgroups/main.json index c0aab836e9bf5..cf30ae8c7d3c1 100644 --- a/data/json/itemgroups/main.json +++ b/data/json/itemgroups/main.json @@ -43,7 +43,6 @@ [ "mininuke", 10 ], [ "mutagen", 80 ], [ "optical_cloak", 20 ], - [ "holo_cloak", 20 ], [ "pickaxe", 10 ], [ "plasma", 80 ], [ "plasma_rifle", 10 ], @@ -233,26 +232,11 @@ { "type": "item_group", "id": "archery_mods", - "items": [ - [ "arrowrest", 50 ], - [ "bow_scope", 30 ], - [ "bow_sight", 50 ], - [ "bow_sight_pin", 50 ], - [ "bow_silencer", 50 ], - [ "bow_stabilizer", 50 ], - [ "bow_stabilizer_set", 40 ], - [ "gun_crossbow", 40 ] - ] + "items": [ [ "bow_sight", 50 ], [ "bow_stabilizer", 50 ], [ "arrowrest", 50 ], [ "gun_crossbow", 40 ] ] }, { "type": "item_group", "id": "archery_ammo", - "items": [ - [ "arrow_wood", 100 ], - [ "arrow_field_point_fletched", 50 ], - [ "arrow_cf", 100 ], - [ "bolt_wood", 100 ], - [ "bolt_wood_bodkin", 50 ] - ] + "items": [ [ "arrow_wood", 100 ], [ "arrow_metal", 50 ], [ "arrow_cf", 50 ], [ "bolt_steel", 50 ] ] } ] diff --git a/data/json/itemgroups/mall_item_groups.json b/data/json/itemgroups/mall_item_groups.json index 36e1c38002c2d..9b1f9322c12e3 100644 --- a/data/json/itemgroups/mall_item_groups.json +++ b/data/json/itemgroups/mall_item_groups.json @@ -47,10 +47,7 @@ "type": "item_group", "items": [ [ "blazer", 75 ], - [ "tie_skinny", 40 ], - [ "tie_necktie", 40 ], - [ "tie_bow", 30 ], - [ "tie_clipon", 20 ], + [ "skinny_tie", 65 ], [ "tieclip", 25 ], [ "polo_shirt", 35 ], [ "dress_shirt", 70 ], diff --git a/data/json/itemgroups/mansion.json b/data/json/itemgroups/mansion.json index 86ed3a0d2ed4e..3b49264457fc8 100644 --- a/data/json/itemgroups/mansion.json +++ b/data/json/itemgroups/mansion.json @@ -403,8 +403,7 @@ [ "pike_fake", 50 ], { "group": "broadsword_fake+scabbard", "prob": 17 }, [ "mace_fake", 6 ], - [ "morningstar_fake", 5 ], - [ "shillelagh_fake", 5 ] + [ "morningstar_fake", 5 ] ] }, { @@ -422,14 +421,7 @@ "id": "soa_real_weapon_decor", "type": "item_group", "subtype": "distribution", - "items": [ - [ "pike", 50 ], - { "group": "broadsword+scabbard", "prob": 17 }, - [ "mace", 6 ], - [ "morningstar", 5 ], - [ "shillelagh", 5 ], - [ "shillelagh_weighted", 3 ] - ] + "items": [ [ "pike", 50 ], { "group": "broadsword+scabbard", "prob": 17 }, [ "mace", 6 ], [ "morningstar", 5 ] ] }, { "id": "soa_fake_weapon_plate", @@ -439,8 +431,7 @@ [ "pike_fake", 17 ], { "group": "broadsword_fake+scabbard", "prob": 5 }, [ "mace_fake", 50 ], - [ "morningstar_fake", 6 ], - [ "shillelagh_fake", 6 ] + [ "morningstar_fake", 6 ] ] }, { @@ -912,9 +903,8 @@ [ "gold_ear", 10 ], [ "bone_tainted", 5 ], [ "silver_ear", 5 ], - [ "platinum_ear", 1 ], { "group": "corpse_mansion", "prob": 5 }, - { "group": "neckties", "prob": 1 } + [ "skinny_tie", 1 ] ] }, { @@ -995,7 +985,6 @@ { "item": "lye_powder", "prob": 5, "container-item": "bag_canvas_small" }, [ "oxy_powder", 5 ], [ "fungicide", 5 ], - [ "insecticide", 5 ], { "item": "charcoal", "prob": 5, "container-item": "bag_canvas" } ] }, @@ -1311,7 +1300,7 @@ [ "jacket_army", 10 ], [ "army_top", 20 ], [ "porkpie", 5 ], - { "group": "neckties", "prob": 5 }, + [ "skinny_tie", 5 ], [ "jersey", 60 ], [ "maid_hat", 3 ], [ "halter_top", 50 ], @@ -1344,7 +1333,7 @@ [ "long_glove_white", 5 ], [ "veil_wedding", 1 ], [ "dress_wedding", 1 ], - { "group": "neckties", "prob": 5 }, + [ "skinny_tie", 5 ], [ "tieclip", 2 ], [ "collarpin", 2 ], [ "kilt", 5 ], diff --git a/data/json/itemgroups/shops_trades.json b/data/json/itemgroups/shops_trades.json index d6fcab9adc76a..85073c988d28e 100644 --- a/data/json/itemgroups/shops_trades.json +++ b/data/json/itemgroups/shops_trades.json @@ -41,7 +41,6 @@ [ "oxy_torch", 5 ], { "item": "weldtank", "prob": 2, "count": [ 1, 2 ] }, { "item": "tinyweldtank", "prob": 2, "count": [ 1, 3 ] }, - { "item": "oxygen_cylinder", "prob": 10, "count": [ 1, 2 ] }, [ "polisher", 1 ], [ "welder", 2 ] ] diff --git a/data/json/itemgroups/supplies.json b/data/json/itemgroups/supplies.json index 34a1e88b9d863..14aed7d9ab4c5 100644 --- a/data/json/itemgroups/supplies.json +++ b/data/json/itemgroups/supplies.json @@ -191,7 +191,6 @@ [ "permanent_marker", 20 ], [ "cu_pipe", 50 ], [ "fungicide", 5 ], - [ "insecticide", 5 ], [ "charcoal", 5 ], { "group": "ammo_pocket_batteries_full", "prob": 50 }, [ "solar_cell", 5 ], @@ -251,8 +250,7 @@ [ "hydrogen_tank", 8 ], [ "salt", 10 ], [ "sugar", 10 ], - [ "chem_ethanol", 10 ], - [ "oxygen_cylinder", 8 ] + [ "chem_ethanol", 10 ] ] }, { diff --git a/data/json/itemgroups/tools.json b/data/json/itemgroups/tools.json index 80806cb9b1c5b..33e9c2c6db292 100644 --- a/data/json/itemgroups/tools.json +++ b/data/json/itemgroups/tools.json @@ -52,7 +52,6 @@ [ "bucket", 5 ], [ "jumper_cable", 10 ], [ "funnel", 50 ], - [ "claw_bar", 2 ], [ "crowbar", 10 ], [ "thermometer", 5 ], [ "multitool", 10 ], @@ -86,37 +85,6 @@ [ "tourist_table", 1 ] ] }, - { - "id": "tools_hunting", - "type": "item_group", - "//": "Gear that hunters take on hunting trips.", - "items": [ - [ "binoculars", 15 ], - [ "canteen", 25 ], - [ "e_tool", 20 ], - [ "flashlight", 20 ], - [ "goggles_nv", 5 ], - [ "hand_crank_charger", 15 ], - [ "handflare", 20 ], - [ "hatchet", 10 ], - [ "heavy_flashlight", 15 ], - [ "knife_folding", 25 ], - [ "knife_hunting", 10 ], - [ "knife_rambo", 10 ], - [ "knife_swissarmy", 10 ], - [ "mess_kit", 20 ], - [ "multitool", 10 ], - [ "pockknife", 30 ], - [ "pur_tablets", 10 ], - [ "ref_lighter", 20 ], - [ "rope_30", 20 ], - [ "flint_steel", 10 ], - [ "tinderbox", 10 ], - [ "chem_hexamine", 10 ], - [ "esbit_stove", 15 ], - [ "mess_tin", 10 ] - ] - }, { "id": "tools_earthworking", "type": "item_group", @@ -144,7 +112,6 @@ "items": [ { "group": "tools_common", "prob": 100 }, [ "wrench", 200 ], - [ "claw_bar", 2 ], [ "crowbar", 10 ], [ "pliers", 200 ], [ "bucket", 50 ], @@ -182,7 +149,7 @@ "id": "tools_entry", "type": "item_group", "//": "Tools used for forcing entry into a building", - "items": [ [ "boltcutters", 30 ], [ "crowbar", 50 ], [ "claw_bar", 25 ], [ "hammer_sledge", 20 ], [ "halligan", 10 ] ] + "items": [ [ "boltcutters", 30 ], [ "crowbar", 50 ], [ "hammer_sledge", 20 ], [ "halligan", 10 ] ] }, { "id": "tools_home", @@ -302,8 +269,7 @@ [ "esbit_stove", 15 ], [ "mess_tin", 5 ], [ "riding_saddle", 3 ], - [ "saddlebag", 5 ], - [ "acetylene_machine", 2 ] + [ "saddlebag", 5 ] ] }, { @@ -379,8 +345,7 @@ [ "syringe", 4 ], [ "xacto", 4 ], [ "cotton_ball", 4 ], - { "group": "ammo_any_batteries_full", "prob": 50 }, - [ "acetylene_machine", 1 ] + { "group": "ammo_any_batteries_full", "prob": 50 } ] }, { diff --git a/data/json/items/ammo.json b/data/json/items/ammo.json index 7f1cd0a503179..41816b20f7845 100644 --- a/data/json/items/ammo.json +++ b/data/json/items/ammo.json @@ -649,11 +649,11 @@ "symbol": "=", "color": "light_gray", "description": "Tin and pewter scraps. Usable in making ammo.", - "material": "tin", + "material": "steel", "volume": 0, "weight": 3, "ammo_type": "components", - "count": 50, + "count": 10, "charges": 200 }, { @@ -741,25 +741,6 @@ "stack_size": 10, "fuel": { "energy": 1.6 } }, - { - "type": "AMMO", - "id": "cac2powder", - "category": "spare_parts", - "price": 200, - "name": "calcium carbide premix", - "name_plural": "calcium carbide premix", - "symbol": "=", - "color": "dark_gray", - "description": "A powdered mixture of coke and lime ready to be smelted into usable calcium carbide in an arc furnace.", - "material": "cac2powder", - "phase": "solid", - "volume": "250 ml", - "weight": 11, - "ammo_type": "cac2powder", - "count": 25, - "stack_size": 10, - "fuel": { "energy": 5.2 } - }, { "type": "AMMO", "id": "coal_lump", @@ -888,7 +869,7 @@ { "type": "AMMO", "id": "nicotine_liquid", - "category": "drugs", + "category": "spare_parts", "price": 1000, "name": "nicotine liquid", "symbol": "=", @@ -928,7 +909,7 @@ "material": "steel", "volume": 10, "weight": 1183, - "ammo_type": "oxygen", + "ammo_type": "components", "count": 10 }, { @@ -1002,20 +983,6 @@ "weight": 300, "ammo_type": "unfinished_char" }, - { - "type": "AMMO", - "id": "unfinished_cac2", - "category": "spare_parts", - "price": 0, - "name": "unfinished calcium carbide", - "symbol": "=", - "color": "white", - "description": "The incomplete process of converting coal and lime into calcium carbide. Useless in this state/", - "material": "cac2powder", - "volume": "250 ml", - "weight": 300, - "ammo_type": "unfinished_cac2" - }, { "type": "AMMO", "id": "chain_link", diff --git a/data/json/items/ammo/300BLK.json b/data/json/items/ammo/300BLK.json deleted file mode 100644 index f98a22ea34125..0000000000000 --- a/data/json/items/ammo/300BLK.json +++ /dev/null @@ -1,45 +0,0 @@ -[ - { - "id": "300blk", - "type": "AMMO", - "name": ".300 AAC Blackout", - "description": ".300 AAC Blackout is an intermediate cartridge that achieves ballistics similar to the 7.62x39 but allows use on the AR-15 platform. The round is necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It requires a specific barrel, so will not work in a standard M4 or similar carbine. This loading is supersonic.", - "weight": 18, - "volume": "250 ml", - "price": 3500, - "material": [ "brass", "powder" ], - "symbol": "=", - "color": "yellow", - "count": 30, - "stack_size": 47, - "ammo_type": "300blk", - "casing": "300blk_casing", - "range": 45, - "damage": 43, - "pierce": 5, - "dispersion": 30, - "recoil": 2000, - "effects": [ "COOKOFF" ] - }, - { - "id": "300blk_ss", - "copy-from": "300blk", - "type": "AMMO", - "name": ".300 AAC Blackout", - "description": ".300 AAC Blackout is an intermediate cartridge that achieves ballistics similar to the 7.62x39 but allows use on the AR-15 platform. The round is necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It requires a specific barrel, so will not work in a standard M4 or similar carbine. This loading is subsonic.", - "weight": 21, - "range": 40, - "damage": 26, - "recoil": 1700 - }, - { - "id": "reloaded_300blk", - "copy-from": "300blk", - "type": "AMMO", - "name": "reloaded .300 AAC Blackout", - "description": ".300 AAC Blackout is an intermediate cartridge that achieves ballistics similar to the 7.62x39 but allows use on the AR-15 platform. The round is necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It requires a specific barrel, so will not work in a standard M4 or similar carbine. This one has been hand-reloaded.", - "proportional": { "price": 0.7, "damage": 0.9, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ] } - } -] diff --git a/data/json/items/ammo/chemical_spray.json b/data/json/items/ammo/chemical_spray.json index 1c1142444aef4..56e035c2bc2ea 100644 --- a/data/json/items/ammo/chemical_spray.json +++ b/data/json/items/ammo/chemical_spray.json @@ -34,23 +34,5 @@ "range": 4, "count": 100, "effects": [ "GAS_FUNGICIDAL", "STREAM_GAS_FUNGICIDAL", "NEVER_MISFIRES", "JET" ] - }, - { - "id": "gas_insecticidal", - "type": "AMMO", - "name": "sprayable insecticide", - "description": "Strong sprayable insecticide ammo for the chemical thrower. Best be used with some kind of mask or mouth protection.", - "weight": 3, - "volume": "250 ml", - "price": 3500, - "material": "water", - "symbol": "=", - "color": "yellow", - "container": "bottle_plastic", - "phase": "liquid", - "ammo_type": "chemical_spray", - "range": 4, - "count": 100, - "effects": [ "GAS_INSECTICIDAL", "STREAM_GAS_INSECTICIDAL", "NEVER_MISFIRES", "JET" ] } ] diff --git a/data/json/items/ammo/shot.json b/data/json/items/ammo/shot.json index ec623f2fd8f79..c0257831c9f28 100644 --- a/data/json/items/ammo/shot.json +++ b/data/json/items/ammo/shot.json @@ -53,15 +53,6 @@ "extend": { "effects": [ "RECYCLED", "MUZZLE_SMOKE" ] }, "delete": { "effects": [ "NEVER_MISFIRES" ] } }, - { - "id": "bp_shot_dragon", - "copy-from": "shot_dragon", - "type": "AMMO", - "name": "blackpowder dragon's breath shell", - "proportional": { "price": 0.6, "damage": 0.8, "dispersion": 1.2 }, - "extend": { "effects": [ "RECYCLED", "MUZZLE_SMOKE" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ] } - }, { "id": "bp_shot_00", "copy-from": "shot_00", diff --git a/data/json/items/ammo/weldgas.json b/data/json/items/ammo/weldgas.json index 63702c5c9aad2..c9a47612748e6 100644 --- a/data/json/items/ammo/weldgas.json +++ b/data/json/items/ammo/weldgas.json @@ -13,7 +13,6 @@ "count": 100, "stack_size": 100, "ammo_type": "weldgas", - "phase": "liquid", "effects": [ "COOKOFF" ], "explode_in_fire": true, "explosion": { "power": 20, "shrapnel": 0 }, diff --git a/data/json/items/ammo_types.json b/data/json/items/ammo_types.json index bf35f3fd2f76a..9b8042eca079d 100644 --- a/data/json/items/ammo_types.json +++ b/data/json/items/ammo_types.json @@ -383,12 +383,6 @@ "name": "charcoal", "default": "charcoal" }, - { - "type": "ammunition_type", - "id": "cac2powder", - "name": "powdered calcium carbide premix", - "default": "cac2powder" - }, { "type": "ammunition_type", "id": "metal_rail", @@ -527,12 +521,6 @@ "name": "semi-charred fuel", "default": "unfinished_charcoal" }, - { - "type": "ammunition_type", - "id": "unfinished_cac2", - "name": "partially burned calcium carbide", - "default": "unfinished_cac2" - }, { "type": "ammunition_type", "id": "chemical_spray", @@ -568,17 +556,5 @@ "name": "hexamine", "default": "chem_hexamine", "type": "ammunition_type" - }, - { - "id": "oxygen", - "name": "oxygen", - "default": "oxygen", - "type": "ammunition_type" - }, - { - "type": "ammunition_type", - "id": "300blk", - "name": ".308 AAC Blackout", - "default": "300blk" } ] diff --git a/data/json/items/archery.json b/data/json/items/archery.json index 37b9b3d84ed24..413a6e5ae5442 100644 --- a/data/json/items/archery.json +++ b/data/json/items/archery.json @@ -309,7 +309,7 @@ "price": 10000, "//": "Not exactly something that would have high resale value, I'm afraid.", "material": "wood", - "flags": [ "FIRE_TWOHAND", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "reload_noise_volume": 3, "loudness": 8, "skill": "archery", @@ -334,7 +334,7 @@ "description": "Though not as powerful as the longbow, this bow is quicker and easier to draw, and can be used effectively by those of average strength. Good for small game or the survivor on the go.", "price": 16000, "material": "wood", - "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "skill": "archery", "min_strength": 4, "ammo": "arrow", @@ -437,7 +437,7 @@ "description": "A bow made from multiple materials for increased energy efficiency. Complicated to make, but stronger than an all-wood short bow.", "price": 32000, "material": [ "wood", "bone" ], - "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "skill": "archery", "min_strength": 5, "ammo": "arrow", @@ -464,7 +464,7 @@ "description": "A modern bow that curves away from the archer at the tips for increased power, which can be used effectively by those of somewhat above-average strength. Good and easy to use, but nothing special.", "price": 38000, "material": [ "steel", "plastic" ], - "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "skill": "archery", "min_strength": 5, "ammo": "arrow", @@ -491,7 +491,7 @@ "description": "A bow with limbs that curve away from the archer near the riser for power. Smaller than some bows, but decently powerful and quick.", "price": 42000, "material": [ "wood", "bone" ], - "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "skill": "archery", "ammo": "arrow", "min_strength": 5, @@ -518,7 +518,7 @@ "description": "A modernized, six-foot longbow that curves away from the archer at the tips for increased power. It can be used effectively by those of somewhat above-average strength. Designed for archers that appreciate the smoothness of a traditional longbow, but desire the superior power of a modern recurve.", "price": 38000, "material": [ "steel", "plastic", "wood" ], - "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "skill": "archery", "min_strength": 5, "ammo": "arrow", @@ -545,7 +545,7 @@ "description": "A six-foot wooden bow that takes a fair amount of strength to draw. It can be used effectively by those of somewhat above-average strength. Used mainly in medieval England in wartime, but pierces zombie hide just as well as chainmail.", "price": 50000, "material": "wood", - "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "skill": "archery", "min_strength": 5, "ammo": "arrow", @@ -617,7 +617,7 @@ "description": "A modernized bow that combines the traits from both the reflex and the recurve bows, with both limbs and tips curving away from the archer, and reinforced with composite materials. This dramatically increases the power and requires significant strength to draw the bow effectively, but can still be fired quickly.", "price": 72000, "material": [ "wood" ], - "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED", "WATER_FRIENDLY" ], + "flags": [ "FIRE_TWOHAND", "STR_DRAW", "RELOAD_AND_SHOOT", "PRIMITIVE_RANGED_WEAPON", "BELTED" ], "skill": "archery", "min_strength": 6, "ammo": "arrow", @@ -636,7 +636,7 @@ "valid_mod_locations": [ [ "underbarrel", 1 ], [ "sights", 1 ], [ "accessories", 2 ], [ "stabilizer", 1 ], [ "dampening", 1 ] ] }, { - "type": "GENERIC", + "type": "AMMO", "id": "throwing_knife", "category": "weapons", "price": 5200, @@ -655,7 +655,7 @@ "count": 5 }, { - "type": "GENERIC", + "type": "AMMO", "id": "throwing_axe", "category": "weapons", "price": 12400, @@ -673,7 +673,7 @@ "count": 3 }, { - "type": "GENERIC", + "type": "AMMO", "id": "lawn_dart", "category": "weapons", "price": 1000, @@ -691,7 +691,7 @@ "count": 2 }, { - "type": "GENERIC", + "type": "AMMO", "id": "frisbee", "category": "weapons", "price": 1000, @@ -708,7 +708,7 @@ "count": 2 }, { - "type": "GENERIC", + "type": "AMMO", "id": "disc_golf", "category": "weapons", "price": 1000, diff --git a/data/json/items/armor.json b/data/json/items/armor.json index 9feedb0f16622..81c40ee3fb0ce 100644 --- a/data/json/items/armor.json +++ b/data/json/items/armor.json @@ -267,7 +267,7 @@ "color": "brown", "covers": [ "ARMS" ], "coverage": 90, - "encumbrance": 10, + "encumbrance": 16, "warmth": 25, "material_thickness": 4, "flags": [ "STURDY", "BELTED", "BLOCK_WHILE_WORN", "WATER_FRIENDLY" ] @@ -1435,7 +1435,7 @@ "name": "briefcase", "description": "Useful for carrying money, documents, or smuggled goods.", "weight": 1700, - "volume": 60, + "volume": 6, "price": 24000, "to_hit": -2, "bashing": 5, @@ -1445,7 +1445,7 @@ "covers": [ "ARM_EITHER", "HAND_EITHER" ], "coverage": 10, "encumbrance": 30, - "storage": 60, + "storage": 24, "material_thickness": 2, "flags": [ "FANCY", "OVERSIZE", "BELTED", "RESTRICT_HANDS", "WATER_FRIENDLY" ] }, @@ -1856,7 +1856,7 @@ "material": [ "cotton" ], "symbol": "[", "color": "green", - "covers": [ "TORSO", "ARMS", "LEGS" ], + "covers": [ "TORSO", "HEAD", "ARMS", "LEGS" ], "coverage": 65, "encumbrance": 4, "warmth": 30, @@ -1876,7 +1876,7 @@ "material": [ "fur" ], "symbol": "[", "color": "brown", - "covers": [ "TORSO", "ARMS", "LEGS" ], + "covers": [ "TORSO", "HEAD", "ARMS", "LEGS" ], "coverage": 65, "encumbrance": 6, "warmth": 60, @@ -1896,7 +1896,7 @@ "material": [ "leather" ], "symbol": "[", "color": "dark_gray", - "covers": [ "TORSO", "ARMS", "LEGS" ], + "covers": [ "TORSO", "HEAD", "ARMS", "LEGS" ], "coverage": 65, "encumbrance": 6, "warmth": 40, @@ -1916,7 +1916,7 @@ "material": [ "wool" ], "symbol": "[", "color": "blue", - "covers": [ "TORSO", "ARMS", "LEGS" ], + "covers": [ "TORSO", "HEAD", "ARMS", "LEGS" ], "coverage": 65, "encumbrance": 5, "warmth": 50, @@ -2214,6 +2214,53 @@ "material_thickness": 2, "flags": [ "OUTER" ] }, + { + "id": "depowered_armor", + "type": "ARMOR", + "category": "armor", + "name": "salvaged power armor", + "//": "These are much cheaper than powered suits, because they're extremely heavy and impractical. The good stuff is gone!", + "description": "The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, offering very good protection against attacks, but hard to move in. This suit has had its servos and cooling system stripped out, meaning it no longer requires power, but also encumbers you greatly and doesn't provide internal thermal regulation.", + "weight": 12214, + "volume": 100, + "price": 70000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel" ], + "symbol": "[", + "color": "light_gray", + "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], + "coverage": 95, + "encumbrance": 40, + "storage": 10, + "warmth": 50, + "material_thickness": 8, + "environmental_protection": 6, + "flags": [ "WATERPROOF", "STURDY" ] + }, + { + "id": "depowered_helmet", + "type": "ARMOR", + "category": "armor", + "name": "salvaged power armor helmet", + "description": "A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. Offers excellent protection from both attacks and environmental hazards. This suit has had its internal computer and cooling system stripped out, meaning it no longer requires power, but it has no internal chronometer and doesn't provide internal thermal regulation.", + "weight": 2416, + "volume": 20, + "price": 30000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel" ], + "symbol": "[", + "color": "light_gray", + "covers": [ "HEAD", "EYES", "MOUTH" ], + "coverage": 95, + "encumbrance": 40, + "warmth": 50, + "material_thickness": 8, + "environmental_protection": 6, + "qualities": [ [ "GLARE", 2 ] ], + "flags": [ "WATERPROOF", "STURDY", "SUN_GLASSES" ] + }, { "id": "dinosuit", "type": "ARMOR", @@ -5791,7 +5838,6 @@ "description": "A small pouch that can be used to store most types of small ammunition, rockets will not fit. Activate to store ammunition.", "looks_like": "leather_pouch", "weight": 490, - "rigid": false, "volume": 2, "price": 1000, "to_hit": 1, @@ -5801,7 +5847,7 @@ "color": "brown", "covers": [ "TORSO" ], "coverage": 10, - "encumbrance": 5, + "encumbrance": 2, "material_thickness": 1, "use_action": { "type": "bandolier", @@ -5852,7 +5898,7 @@ "762R", "paintball" ], - "draw_cost": 35 + "draw_cost": 20 }, "flags": [ "WAIST", "OVERSIZE", "WATER_FRIENDLY" ] }, @@ -6260,25 +6306,6 @@ "material_thickness": 1, "flags": [ "VARSIZE", "SKINTIGHT" ] }, - { - "id": "long_undertop_sleeveless", - "type": "ARMOR", - "name": "sleeveless underwear top", - "description": "A sleeveless underwear top that helps to maintain body temperature.", - "looks_like": "long_undertop", - "weight": 80, - "volume": "400 ml", - "price": 1200, - "material": [ "cotton" ], - "symbol": "[", - "color": "light_gray", - "covers": [ "TORSO" ], - "coverage": 95, - "encumbrance": 3, - "warmth": 30, - "material_thickness": 1, - "flags": [ "VARSIZE", "SKINTIGHT" ] - }, { "id": "longshirt", "type": "ARMOR", @@ -6783,7 +6810,7 @@ "material": [ "plastic" ], "symbol": "[", "color": "light_gray", - "covers": [ "TORSO", "ARMS", "LEGS" ], + "covers": [ "TORSO", "HEAD", "ARMS", "LEGS" ], "coverage": 65, "encumbrance": 50, "warmth": 10, @@ -7248,6 +7275,174 @@ "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ], "techniques": [ "WBLOCK_1" ] }, + { + "id": "power_armor_basic", + "type": "ARMOR", + "category": "armor", + "name": "basic power armor", + "description": "The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, offering very good protection against attacks, but hard to move in. The UPS compartment can store other things if you don't mind powering the suit yourself. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", + "weight": 20339, + "volume": 100, + "price": 7000000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel" ], + "symbol": "[", + "color": "light_gray", + "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], + "coverage": 100, + "encumbrance": 50, + "storage": 10, + "warmth": 90, + "power_armor": true, + "material_thickness": 11, + "environmental_protection": 16, + "use_action": { "type": "ups_based_armor", "activate_msg": "Your power armor engages." }, + "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE" ] + }, + { + "id": "power_armor_frame", + "type": "ARMOR", + "category": "armor", + "name": "power armor hauling frame", + "description": "A heavy duty hauling frame designed to interface with power armor.", + "weight": 1640, + "volume": 48, + "price": 1000000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel" ], + "symbol": "[", + "color": "light_gray", + "coverage": 100, + "encumbrance": 40, + "storage": 120, + "power_armor": true, + "material_thickness": 10, + "flags": [ "WATERPROOF", "STURDY", "BELTED" ] + }, + { + "id": "power_armor_heavy", + "type": "ARMOR", + "category": "armor", + "name": "heavy power armor", + "description": "A suit of DoubleTech Power Armor, Mk. II-H. This model offers several improvements over the Mk. I, most notably the improved environmental protection. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", + "weight": 29009, + "volume": 120, + "price": 11500000, + "to_hit": 1, + "bashing": 1, + "material": [ "hardsteel", "steel" ], + "symbol": "[", + "color": "dark_gray", + "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], + "coverage": 100, + "encumbrance": 60, + "storage": 16, + "warmth": 60, + "power_armor": true, + "material_thickness": 12, + "environmental_protection": 16, + "use_action": { "type": "ups_based_armor", "activate_msg": "Your power armor engages." }, + "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE" ] + }, + { + "id": "power_armor_helmet_basic", + "type": "ARMOR", + "category": "armor", + "name": "basic power armor helmet", + "description": "A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. Offers excellent protection from both attacks and environmental hazards. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", + "weight": 3628, + "volume": 20, + "price": 2500000, + "to_hit": 1, + "bashing": 1, + "material": [ "steel" ], + "symbol": "[", + "color": "light_gray", + "covers": [ "HEAD", "EYES", "MOUTH" ], + "coverage": 100, + "encumbrance": 50, + "warmth": 90, + "power_armor": true, + "material_thickness": 11, + "environmental_protection": 16, + "qualities": [ [ "GLARE", 2 ] ], + "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES" ] + }, + { + "id": "power_armor_helmet_heavy", + "type": "ARMOR", + "category": "armor", + "name": "heavy power armor helmet", + "description": "A power armor helmet designed for use with the DoubleTech Power Armor, Mk. II-H. This improved design is heavier than the Mk. I helmet, but cooler, and offers better environmental protection. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", + "weight": 5442, + "volume": 28, + "price": 3750000, + "to_hit": 1, + "bashing": 1, + "material": [ "hardsteel", "steel" ], + "symbol": "[", + "color": "dark_gray", + "covers": [ "HEAD", "EYES", "MOUTH" ], + "coverage": 100, + "encumbrance": 60, + "warmth": 60, + "power_armor": true, + "material_thickness": 12, + "environmental_protection": 16, + "qualities": [ [ "GLARE", 2 ] ], + "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES" ] + }, + { + "id": "power_armor_helmet_light", + "type": "ARMOR", + "category": "armor", + "name": "light power armor helmet", + "description": "A power armor helmet designed for use with the DoubleTech Power Armor, Mk. II-L. This improved design is lighter and cooler than the Mk. I helmet. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", + "weight": 1814, + "volume": 16, + "price": 3750000, + "to_hit": 1, + "bashing": 1, + "material": [ "superalloy", "plastic" ], + "symbol": "[", + "color": "dark_gray", + "covers": [ "HEAD", "EYES", "MOUTH" ], + "coverage": 100, + "encumbrance": 40, + "warmth": 60, + "power_armor": true, + "material_thickness": 9, + "environmental_protection": 16, + "qualities": [ [ "GLARE", 2 ] ], + "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES" ] + }, + { + "id": "power_armor_light", + "type": "ARMOR", + "category": "armor", + "name": "light power armor", + "description": "A suit of DoubleTech Power Armor, Mk. II-L. This model offers several improvements over the Mk. I, most notably the reduced weight. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", + "weight": 7670, + "volume": 60, + "price": 11500000, + "to_hit": 1, + "bashing": 1, + "material": [ "superalloy", "plastic" ], + "symbol": "[", + "color": "dark_gray", + "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], + "coverage": 100, + "encumbrance": 40, + "storage": 16, + "warmth": 60, + "power_armor": true, + "material_thickness": 9, + "environmental_protection": 16, + "use_action": { "type": "ups_based_armor", "activate_msg": "Your power armor engages." }, + "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE" ] + }, { "id": "purse", "type": "ARMOR", @@ -7615,13 +7810,13 @@ "flags": [ "VARSIZE" ] }, { - "id": "tie_skinny", + "id": "skinny_tie", "type": "ARMOR", "name": "skinny tie", "description": "A skinny black and white checkered necktie.", "weight": 12, "volume": 0, - "price": 750, + "price": 1000, "material": [ "cotton" ], "symbol": "[", "color": "dark_gray", @@ -8781,45 +8976,6 @@ "material_thickness": 2, "flags": [ "VARSIZE" ] }, - { - "id": "tie_bow", - "type": "ARMOR", - "name": "bow tie", - "description": "A simple black bow tie. Best worn with a suit.", - "weight": 5, - "volume": 0, - "price": 1000, - "material": [ "cotton" ], - "symbol": "[", - "color": "black", - "flags": [ "FANCY" ] - }, - { - "id": "tie_clipon", - "type": "ARMOR", - "name": "clip-on tie", - "description": "A clip-on necktie, with blue and silver stripes. It's quick and easy to put on, and much better than the necktie.", - "weight": 10, - "volume": 0, - "price": 500, - "material": [ "cotton" ], - "symbol": "[", - "color": "blue", - "flags": [ "FANCY" ] - }, - { - "id": "tie_necktie", - "type": "ARMOR", - "name": "necktie", - "description": "An ordinary, green necktie. It's more difficult to put on, but it takes real skill to do so. Wearing a necktie is much better than wearing a clip-on tie.", - "weight": 15, - "volume": 0, - "price": 1000, - "material": [ "cotton" ], - "symbol": "[", - "color": "green", - "flags": [ "FANCY" ] - }, { "id": "tights", "type": "ARMOR", @@ -9130,7 +9286,7 @@ }, { "id": "nuwave", - "text": "A short-sleeved black cotton shirt with a stylized representation of a radio wave printed on the front." + "text": "A short-sleeved black cotton shirt with a stylised representation of a radio wave printed on the front." }, { "id": "an_punk", @@ -10014,112 +10170,5 @@ "material_thickness": 1, "environmental_protection": 1, "flags": [ "OVERSIZE", "OUTER", "WATERPROOF", "ALLOWS_NATURAL_ATTACKS" ] - }, - { - "id": "bigback", - "type": "ARMOR", - "name": "high-volume rucksack", - "description": "Also know as a \"bigpack\", this rucksack is prized by pack rats but may lead to a bad back.", - "weight": 3539, - "volume": "21 L", - "price": 20000, - "material": [ "steel", "leather" ], - "symbol": "[", - "color": "black", - "covers": [ "TORSO" ], - "coverage": 95, - "encumbrance": 100, - "storage": 400, - "warmth": 5, - "material_thickness": 6, - "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] - }, - { - "id": "backpack_hiking", - "type": "ARMOR", - "name": "hiking backpack", - "description": "A large sized hiking backpack with plenty of storage space.", - "weight": 2291, - "volume": "14 L", - "price": 10000, - "material": [ "leather" ], - "symbol": "[", - "color": "brown", - "covers": [ "TORSO" ], - "coverage": 75, - "encumbrance": 55, - "storage": 220, - "warmth": 6, - "material_thickness": 6, - "use_action": { - "type": "holster", - "holster_prompt": "Sheath blade", - "holster_msg": "You sheath your %s", - "min_volume": "250ml", - "max_volume": "2500ml", - "multi": 2, - "draw_cost": 3, - "flags": [ "SHEATH_KNIFE", "SHEATH_SWORD" ] - }, - "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] - }, - { - "id": "petpack", - "type": "ARMOR", - "name": "petpack", - "description": "Before the Cataclysm this would allow your four-legged friend to see the world, now it's used to shield them from the world.", - "weight": 1316, - "volume": "10 L", - "price": 7900, - "material": [ "cotton", "plastic" ], - "symbol": "[", - "color": "blue", - "covers": [ "TORSO" ], - "coverage": 45, - "encumbrance": 14, - "storage": 15, - "warmth": 3, - "material_thickness": 3, - "properties": [ [ "monster_size_capacity", "SMALL" ] ], - "use_action": "CAPTURE_MONSTER_ACT", - "flags": [ "BELTED", "WATERPROOF" ] - }, - { - "id": "backpack_tactical_large", - "type": "ARMOR", - "name": "large tactical backpack", - "description": "A large tactical multi-compartment backpack that has great lower back support.", - "weight": 2291, - "volume": "15 L", - "price": 9000, - "material": [ "leather" ], - "symbol": "[", - "color": "green", - "covers": [ "TORSO" ], - "coverage": 75, - "encumbrance": 65, - "storage": 260, - "warmth": 5, - "material_thickness": 6, - "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE", "OVERSIZE" ] - }, - { - "id": "travelpack", - "type": "ARMOR", - "name": "travelpack", - "description": "A hiking pack used for short trips.", - "weight": 636, - "volume": "3 L", - "price": 7000, - "material": [ "cotton" ], - "symbol": "[", - "color": "yellow", - "covers": [ "TORSO" ], - "coverage": 25, - "encumbrance": 25, - "storage": 100, - "warmth": 5, - "material_thickness": 5, - "flags": [ "BELTED", "WATERPROOF" ] } ] diff --git a/data/json/items/armor/bandolier.json b/data/json/items/armor/bandolier.json index ca3f16e171523..30832c7bc2d89 100644 --- a/data/json/items/armor/bandolier.json +++ b/data/json/items/armor/bandolier.json @@ -12,7 +12,7 @@ "color": "dark_gray", "covers": [ "TORSO" ], "coverage": 10, - "encumbrance": 1, + "encumbrance": 3, "material_thickness": 1, "use_action": { "type": "bandolier", @@ -35,7 +35,7 @@ "color": "dark_gray", "covers": [ "TORSO" ], "coverage": 10, - "encumbrance": 1, + "encumbrance": 3, "material_thickness": 1, "use_action": { "type": "bandolier", @@ -58,7 +58,7 @@ "color": "dark_gray", "covers": [ "TORSO" ], "coverage": 10, - "encumbrance": 2, + "encumbrance": 5, "material_thickness": 1, "use_action": { "type": "bandolier", "capacity": 25, "ammo": [ "410shot", "shot", "20x66mm", "shotcanister" ], "draw_cost": 25 }, "flags": [ "WATER_FRIENDLY", "WAIST", "OVERSIZE" ] @@ -76,7 +76,7 @@ "color": "dark_gray", "covers": [ "TORSO" ], "coverage": 12, - "encumbrance": 3, + "encumbrance": 15, "material_thickness": 1, "use_action": { "type": "bandolier", "capacity": 50, "ammo": [ "410shot", "shot", "20x66mm", "shotcanister" ], "draw_cost": 35 }, "flags": [ "WATER_FRIENDLY", "OVERSIZE", "BELTED" ] @@ -95,7 +95,7 @@ "color": "dark_gray", "covers": [ "TORSO" ], "coverage": 10, - "encumbrance": 2, + "encumbrance": 5, "material_thickness": 1, "use_action": { "type": "bandolier", "capacity": 14, "ammo": [ "flintlock", "36paper", "44paper", "blunderbuss" ], "draw_cost": 20 }, "flags": [ "WATER_FRIENDLY", "WAIST", "OVERSIZE" ] @@ -113,7 +113,7 @@ "color": "dark_gray", "covers": [ "HAND_EITHER" ], "coverage": 5, - "encumbrance": 1, + "encumbrance": 4, "material_thickness": 1, "use_action": { "type": "bandolier", diff --git a/data/json/items/armor/jewelry.json b/data/json/items/armor/jewelry.json index 682077262d3eb..98685b83dfad9 100644 --- a/data/json/items/armor/jewelry.json +++ b/data/json/items/armor/jewelry.json @@ -1,71 +1,4 @@ [ - { - "id": "bead_bracelet", - "type": "ARMOR", - "name": "beaded bracelet", - "description": "A simple bracelet of string and wooden beads. You can wear it if you like, but it won't provide any effects.", - "looks_like": "copper_bracelet", - "weight": 12, - "volume": 0, - "price": 100, - "flags": [ "VARSIZE", "FANCY" ], - "material": [ "wood" ], - "symbol": "[", - "color": "brown" - }, - { - "id": "bead_ear", - "type": "ARMOR", - "name": "beaded earring", - "description": "A simple bracelet of string and wooden beads. You can wear it if you like, but it won't provide any effects.", - "weight": 7, - "volume": 0, - "price": 100, - "material": [ "wood" ], - "symbol": "[", - "color": "brown" - }, - { - "id": "bead_necklace", - "type": "ARMOR", - "name": "beaded necklace", - "description": "A simple necklace made of string and wooden beads. You can wear it if you like, but it won't provide any effects.", - "looks_like": "necklace", - "weight": 15, - "volume": 0, - "price": 100, - "material": [ "wood" ], - "flags": [ "VARSIZE", "FANCY" ], - "symbol": "u", - "color": "brown" - }, - { - "id": "bracelet_friendship", - "type": "ARMOR", - "name": "friendship bracelet", - "description": "A homemade bracelet crafted from colorful knickknacks. It's not very expensive, but it's the effort that makes it special.", - "looks_like": "copper_bracelet", - "weight": 20, - "volume": 0, - "price": 100, - "flags": [ "VARSIZE", "FANCY" ], - "material": [ "wood", "plastic" ], - "symbol": "[", - "color": "red" - }, - { - "id": "bronze_medal", - "type": "ARMOR", - "name": "bronze medal", - "description": "A medal awarded for achieving third place in some event. It might be worth something if it was made of bronze; this one is made from iron.", - "weight": 25, - "volume": 0, - "price": 1000, - "material": [ "iron" ], - "symbol": "[", - "color": "brown", - "flags": [ "FANCY" ] - }, { "id": "diamond_dental_grill", "type": "ARMOR", @@ -88,7 +21,7 @@ "id": "diamond_ring", "type": "ARMOR", "name": "diamond ring", - "description": "A gold ring with a sparkling diamond mounted on top of it. Back in the old days this could be worth a fortune. You can wear it if you like, but it won't provide any effects.", + "description": "A gold ring with a sparkling diamond mounted on top of it. Back in the old days this could be worth a fortune.", "weight": 12, "volume": 0, "price": 190000, @@ -121,7 +54,7 @@ "id": "collarpin", "type": "ARMOR", "name": "collar pin", - "description": "A staple accessory for gentlemen. Keeps your shirt collar in place and provides a more aesthetically pleasing arc to your necktie. You can wear it if you like, but it won't provide any effects.", + "description": "A staple accessory for gentlemen. Keeps your shirt collar in place and provides a more aesthetically pleasing arc to your necktie.", "weight": 10, "volume": 0, "price": 25000, @@ -135,7 +68,7 @@ "id": "copper_bracelet", "type": "ARMOR", "name": "copper bracelet", - "description": "An old-fashioned, copper bracelet. You can wear it if you like, but it won't provide any effects.", + "description": "An old-fashioned, copper bracelet.", "weight": 86, "volume": 0, "price": 2500, @@ -148,7 +81,7 @@ "id": "copper_ear", "type": "ARMOR", "name": "copper earring", - "description": "A copper earring. It's pretty heavy. You can wear it if you like, but it won't provide any effects.", + "description": "A copper earring. It's pretty heavy; wearing it for an extended period of time may stretch your ear longer.", "weight": 50, "volume": 0, "price": 2900, @@ -158,90 +91,46 @@ "color": "brown" }, { - "id": "copper_hairpin", - "type": "ARMOR", - "name": "copper hairpin", - "description": "A hairpin made from copper. You can wear it if you like, but it won't provide any effects.", - "weight": 2, - "volume": 0, - "price": 500, - "material": [ "copper" ], - "symbol": "[", - "color": "brown" - }, - { - "id": "copper_locket", - "type": "ARMOR", - "name": "copper locket", - "description": "A circular, copper locket. It's been tarnished with use, and has gained some dull green spots. You can wear it if you like, but it won't provide any effects.", - "weight": 45, - "volume": 0, - "price": 1000, - "material": [ "copper" ], - "symbol": "[", - "color": "brown" - }, - { - "id": "copper_necklace", + "id": "bead_bracelet", "type": "ARMOR", - "name": "copper necklace", - "description": "A simple chain of copper, with a clasp in the middle to create a necklace. You can wear it if you like, but it won't provide any effects.", - "weight": 30, + "name": "beaded bracelet", + "description": "A simple bracelet of string and wooden beads, there is enough space to inscribe something.", + "looks_like": "copper_bracelet", + "weight": 20, "volume": 0, - "price": 3000, - "material": [ "copper" ], + "price": 100, + "flags": [ "VARSIZE", "FANCY" ], + "material": [ "wood" ], "symbol": "[", "color": "brown" }, { - "id": "copper_ring", + "id": "bead_necklace", "type": "ARMOR", - "name": "copper ring", - "description": "A plain, copper ring. Not very shiny, and not very popular. You can wear it if you like, but it won't provide any effects.", - "weight": 50, + "name": "beaded necklace", + "description": "A simple necklace made of string and wooden beads, there is enough space to inscribe something.", + "looks_like": "necklace", + "weight": 20, "volume": 0, - "price": 2000, - "material": [ "copper" ], - "symbol": "[", + "price": 100, + "material": [ "wood" ], + "flags": [ "VARSIZE", "FANCY" ], + "symbol": "u", "color": "brown" }, { - "id": "cufflinks", + "id": "brooch", "type": "ARMOR", - "name": "cufflinks", - "description": "An unmarked, pair of silver cufflinks. Cufflinks are used to secure the cuffs of dress shirts - a must-have for men in formal wear. You can wear it if you like, but it won't provide any effects.", - "weight": 15, - "volume": 0, - "price": 3000, - "material": [ "silver" ], - "symbol": "[", - "color": "light_gray" - }, - { - "id": "cufflinks_intricate", - "type": "ARMOR", - "name": "intricate cufflinks", - "description": "An expensive pair of silver cufflinks, stylized with detailed overlays of gold gears and fractal patterns. You can wear it if you like, but it won't provide any effects.", - "weight": 21, - "volume": 0, - "price": 7000, - "material": [ "silver", "gold" ], - "symbol": "[", - "color": "light_gray" - }, - { - "id": "ear_spool", - "type": "ARMOR", - "name": "plug", - "description": "Those round things people plug into their earlobes as earrings, also called \"ear plug\" or \"ear spool.\" You can wear it if you like, but it won't provide any effects.", - "weight": 10, + "name": "jade brooch", + "name_plural": "jade brooches", + "description": "A hand-crafted jade brooch of Oriental origin.", + "weight": 26, "volume": 0, - "price": 1200, - "price_postapoc": 10, - "material": [ "plastic" ], + "price": 90000, + "material": [ "stone" ], "symbol": "[", - "color": "dark_gray", - "material_thickness": 1 + "color": "green", + "flags": [ "FANCY" ] }, { "id": "gold_bracelet", @@ -288,70 +177,6 @@ "color": "yellow", "flags": [ "FANCY" ] }, - { - "id": "gold_hairpin", - "type": "ARMOR", - "name": "gold hairpin", - "description": "A gold hairpin, designed by the rich, for the rich. You can wear it if you like, but it won't provide any effects.", - "weight": 4, - "volume": 0, - "price": 5000, - "material": [ "gold" ], - "symbol": "[", - "color": "yellow", - "flags": [ "FANCY" ] - }, - { - "id": "gold_locket", - "type": "ARMOR", - "name": "gold locket", - "description": "A heart-shaped, gold locket with a frame inside to store photographs or small objects. You can wear it if you like, but it won't provide any effects.", - "weight": 50, - "volume": 0, - "price": 20000, - "material": [ "gold" ], - "symbol": "[", - "color": "yellow", - "flags": [ "FANCY" ] - }, - { - "id": "gold_medal", - "type": "ARMOR", - "name": "gold medal", - "description": "A medal awarded for achieving first place in some event. Before everything fell apart, this could be a source of pride for its owner. Now it's just another shiny bauble.", - "weight": 30, - "volume": 0, - "price": 10000, - "material": [ "gold" ], - "symbol": "[", - "color": "yellow", - "flags": [ "SUPER_FANCY" ] - }, - { - "id": "gold_necklace", - "type": "ARMOR", - "name": "gold necklace", - "description": "A shiny, unadorned gold necklace. You can wear it if you like, but it won't provide any effects.", - "weight": 30, - "volume": 0, - "price": 40000, - "material": [ "gold" ], - "symbol": "[", - "color": "yellow", - "flags": [ "FANCY" ] - }, - { - "id": "gold_ring", - "type": "ARMOR", - "name": "gold ring", - "description": "A flashy gold ring. You can wear it if you like, but it won't provide any effects.", - "weight": 10, - "volume": 0, - "price": 30000, - "material": [ "gold" ], - "symbol": "[", - "color": "yellow" - }, { "id": "gold_watch", "type": "ARMOR", @@ -370,35 +195,47 @@ "coverage": 5, "flags": [ "WATCH", "FANCY", "BELTED", "FRAGILE", "ALLOWS_NATURAL_ATTACKS", "OVERSIZE" ] }, + { + "id": "locket", + "type": "ARMOR", + "name": "locket", + "description": "A small locket with a frame inside to store photographs or small objects.", + "weight": 30, + "volume": 0, + "price": 4000, + "price_postapoc": 200, + "material": [ "silver" ], + "symbol": "[", + "color": "light_gray", + "flags": [ "FANCY" ] + }, { "id": "tieclip", "type": "ARMOR", "name": "tie clip", - "description": "A fancy silver tie clip, a great match for your skinny tie. You can wear it if you like, but it won't provide any effects.", + "description": "A fancy silver tie clip, a great match for your skinny tie.", "weight": 12, "volume": 0, "price": 28000, "price_postapoc": 200, "material": [ "silver" ], "symbol": "[", - "color": "light_gray" + "color": "light_gray", + "flags": [ "FANCY" ] }, { - "id": "silver_watch", + "id": "necklace", "type": "ARMOR", - "name": "silver watch", - "name_plural": "silver watches", - "description": "An elegant silver watch, crafted from silver-plated stainless steel. It's much cheaper than other metal watches, and more classy than an ordinary wristwatch.", - "weight": 80, - "volume": 1, - "price": 18000, - "to_hit": -1, - "material": [ "steel", "silver" ], + "name": "silver necklace", + "description": "A nice silver necklace. You can wear it if you like, but it won't provide any effects.", + "weight": 30, + "volume": 0, + "price": 12000, + "price_postapoc": 400, + "material": [ "silver" ], "symbol": "[", "color": "light_gray", - "covers": [ "HAND_EITHER" ], - "coverage": 10, - "flags": [ "WATCH", "FANCY", "BELTED", "FRAGILE", "ALLOWS_NATURAL_ATTACKS", "WATER_FRIENDLY", "OVERSIZE" ] + "flags": [ "FANCY" ] }, { "id": "silver_bracelet", @@ -490,246 +327,18 @@ "use_action": "MEDITATE" }, { - "id": "jade_brooch", - "type": "ARMOR", - "name": "jade brooch", - "name_plural": "jade brooches", - "description": "A hand-crafted jade brooch of Oriental origin. You can wear it if you like, but it won't provide any effects.", - "weight": 26, - "volume": 0, - "price": 90000, - "material": [ "stone" ], - "symbol": "[", - "color": "green", - "flags": [ "FANCY" ] - }, - { - "id": "platinum_watch", - "type": "ARMOR", - "name": "platinum watch", - "name_plural": "platinum watches", - "description": "Flex on those gold-watch wearers with the rare, expensive and superior platinum watch. This one is made from solid platinum.", - "weight": 80, - "volume": 1, - "//": "far more expensive than gold watches, around $100,000 for most platinum watches ", - "price": 10000000, - "to_hit": -1, - "material": [ "platinum" ], - "symbol": "[", - "color": "white", - "covers": [ "HAND_EITHER" ], - "coverage": 5, - "flags": [ "WATCH", "SUPER_FANCY", "BELTED", "FRAGILE", "ALLOWS_NATURAL_ATTACKS", "OVERSIZE" ] - }, - { - "id": "platinum_bracelet", - "type": "ARMOR", - "name": "platinum bracelet", - "description": "A flawless platinum bracelet. You can wear it if you like, but it won't provide any effects.", - "weight": 50, - "volume": 0, - "price": 38000, - "material": [ "platinum" ], - "symbol": "[", - "color": "white", - "flags": [ "FANCY" ] - }, - { - "id": "platinum_dental_grill", - "type": "ARMOR", - "name": "platinum dental grill", - "description": "Fake platinum-and-silver teeth. They may be cheaper than fake gold teeth, but they're much more rare. Fits horribly, but looks very shiny.", - "weight": 15, - "volume": 0, - "price": 15000, - "bashing": 2, - "cutting": 2, - "material": [ "platinum", "silver" ], - "symbol": "[", - "color": "white", - "covers": [ "MOUTH" ], - "flags": [ "SUPER_FANCY", "SKINTIGHT" ] - }, - { - "id": "platinum_ear", - "type": "ARMOR", - "name": "gold earring", - "description": "Plain platinum earrings, the rich person's earring - if gold is getting boring, just use another rare metal. You can wear it if you like, but it won't provide any effects.", - "weight": 15, - "volume": 0, - "price": 12000, - "material": [ "platinum" ], - "symbol": "[", - "color": "white", - "flags": [ "FANCY" ] - }, - { - "id": "platinum_hairpin", - "type": "ARMOR", - "name": "platinum hairpin", - "description": "The ultimate in esoteric, metal hair accessories, this hairpin is made from pure platinum. You can wear it if you like, but it won't provide any effects.", - "weight": 7, - "volume": 0, - "price": 3500, - "material": [ "platinum" ], - "symbol": "[", - "color": "white", - "flags": [ "FANCY" ] - }, - { - "id": "platinum_locket", - "type": "ARMOR", - "name": "platinum locket", - "description": "A small, platinum locket for storing photographs or other small objects. You can wear it if you like, but it won't provide any effects.", - "weight": 65, - "volume": 0, - "price": 16000, - "material": [ "platinum" ], - "symbol": "[", - "color": "white", - "flags": [ "FANCY" ] - }, - { - "id": "platinum_necklace", - "type": "ARMOR", - "name": "platinum necklace", - "description": "A platinum necklace, with a small, empty heart frame hanging from a chain. You can wear it if you like, but it won't provide any effects.", - "weight": 47, - "volume": 0, - "price": 50000, - "material": [ "platinum" ], - "symbol": "[", - "color": "white", - "flags": [ "FANCY" ] - }, - { - "id": "platinum_ring", - "type": "ARMOR", - "name": "platinum ring", - "description": "A platinum ring, engraved with all manner of swirls and spirals. You can wear it if you like, but it won't provide any effects.", - "weight": 13, - "volume": 0, - "price": 24000, - "material": [ "platinum" ], - "symbol": "[", - "color": "white", - "flags": [ "FANCY" ] - }, - { - "id": "ring_engagement", - "type": "ARMOR", - "name": "engagement ring", - "description": "This ring is an intricate gold band, with a small cluster of diamonds set in the center. Before the world broke down, this ring would've cost a small fortune.", - "weight": 14, - "volume": 0, - "price": 100000, - "material": [ "gold", "diamond" ], - "symbol": "[", - "color": "yellow", - "flags": [ "FANCY" ] - }, - { - "id": "ring_purity", - "type": "ARMOR", - "name": "purity ring", - "description": "Also known as a promise ring, this ring is worn as a sign of chastity. This one bears the inscription, \"Love is patient.\"", - "weight": 6, - "volume": 0, - "price": 1700, - "material": [ "silver" ], - "symbol": "[", - "color": "light_gray", - "flags": [ "FANCY" ] - }, - { - "id": "ring_signet", - "type": "ARMOR", - "name": "signet ring", - "description": "A gold and silver ring with a wide stamp attached to the band. A long time ago, the stamp was legible, but now the pattern is too worn to discern its former use.", - "weight": 25, - "volume": 0, - "price": 10000, - "material": [ "gold", "silver" ], - "symbol": "[", - "color": "yellow", - "flags": [ "FANCY" ] - }, - { - "id": "ring_wedding", - "type": "ARMOR", - "name": "wedding ring", - "description": "A flawless ring, ensnaring a diamond with twists of pure gold. It's a constant reminder that the wearer is married.", - "weight": 16, - "volume": 0, - "price": 150000, - "material": [ "gold", "diamond" ], - "symbol": "[", - "color": "yellow", - "flags": [ "SUPER_FANCY" ] - }, - { - "id": "silver_necklace", - "type": "ARMOR", - "name": "silver necklace", - "description": "A nice silver necklace. You can wear it if you like, but it won't provide any effects.", - "weight": 30, - "volume": 0, - "price": 12000, - "material": [ "silver" ], - "symbol": "[", - "color": "light_gray", - "flags": [ "FANCY" ] - }, - { - "id": "silver_hairpin", - "type": "ARMOR", - "name": "silver hairpin", - "description": "A shiny, silver hairpin with a tiny bee engraved onto it. You can wear it if you like, but it won't provide any effects.", - "weight": 3, - "volume": 0, - "price": 2000, - "material": [ "silver" ], - "symbol": "[", - "color": "light_gray", - "flags": [ "FANCY" ] - }, - { - "id": "silver_locket", - "type": "ARMOR", - "name": "silver locket", - "description": "A small, silver locket with a frame inside to store photographs or small objects. You can wear it if you like, but it won't provide any effects.", - "weight": 30, - "volume": 0, - "price": 4000, - "material": [ "silver" ], - "symbol": "[", - "color": "light_gray", - "flags": [ "FANCY" ] - }, - { - "id": "silver_medal", - "type": "ARMOR", - "name": "silver medal", - "description": "A medal awarded for achieving second place in some event. Before everything fell apart, this could be a source of pride for its owner. Now it's just another shiny bauble.", - "weight": 20, - "volume": 0, - "price": 5000, - "material": [ "silver" ], - "symbol": "[", - "color": "light_gray", - "flags": [ "FANCY" ] - }, - { - "id": "silver_ring", + "id": "ear_spool", "type": "ARMOR", - "name": "silver ring", - "description": "A simple, silver ring. You can wear it if you like, but it won't provide any effects.", - "weight": 6, + "name": "plug", + "description": "Those round things people plug into their earlobes as earrings, also called \"ear plug\" or \"ear spool.\"", + "weight": 10, "volume": 0, - "price": 5000, - "material": [ "silver" ], + "price": 1200, + "price_postapoc": 10, + "material": [ "plastic" ], "symbol": "[", - "color": "light_gray", + "color": "dark_gray", + "material_thickness": 1, "flags": [ "FANCY" ] }, { @@ -745,6 +354,20 @@ "color": "dark_gray", "flags": [ "FANCY" ] }, + { + "id": "ring", + "type": "ARMOR", + "name": "gold ring", + "description": "A flashy gold ring. You can wear it if you like, but it won't provide any effects.", + "weight": 10, + "volume": 0, + "price": 30000, + "price_postapoc": 500, + "material": [ "gold" ], + "symbol": "[", + "color": "yellow", + "flags": [ "FANCY" ] + }, { "id": "wristwatch", "type": "ARMOR", diff --git a/data/json/items/armor/power_armor.json b/data/json/items/armor/power_armor.json deleted file mode 100644 index a406c86e074b5..0000000000000 --- a/data/json/items/armor/power_armor.json +++ /dev/null @@ -1,217 +0,0 @@ -[ - { - "id": "depowered_armor", - "type": "ARMOR", - "category": "armor", - "name": "salvaged power armor", - "//": "These are much cheaper than powered suits, because they're extremely heavy and impractical. The good stuff is gone!", - "description": "The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, offering very good protection against attacks, but hard to move in. This suit has had its servos and cooling system stripped out, meaning it no longer requires power, but also encumbers you greatly and doesn't provide internal thermal regulation.", - "weight": 12214, - "volume": 100, - "price": 70000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel" ], - "symbol": "[", - "color": "light_gray", - "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], - "coverage": 95, - "encumbrance": 40, - "storage": 10, - "warmth": 50, - "material_thickness": 8, - "environmental_protection": 6, - "flags": [ "WATERPROOF", "STURDY" ] - }, - { - "id": "depowered_helmet", - "type": "ARMOR", - "category": "armor", - "name": "salvaged power armor helmet", - "description": "A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. Offers excellent protection from both attacks and environmental hazards. This suit has had its internal computer and cooling system stripped out, meaning it no longer requires power, but it has no internal chronometer and doesn't provide internal thermal regulation.", - "weight": 2416, - "volume": 20, - "price": 30000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel" ], - "symbol": "[", - "color": "light_gray", - "covers": [ "HEAD", "EYES", "MOUTH" ], - "coverage": 95, - "encumbrance": 40, - "warmth": 50, - "material_thickness": 8, - "environmental_protection": 6, - "qualities": [ [ "GLARE", 2 ] ], - "flags": [ "WATERPROOF", "STURDY", "SUN_GLASSES" ] - }, - { - "id": "power_armor_basic", - "type": "ARMOR", - "category": "armor", - "name": "basic power armor", - "description": "The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, offering very good protection against attacks, but hard to move in. The UPS compartment can store other things if you don't mind powering the suit yourself. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", - "weight": 20339, - "volume": 100, - "price": 7000000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel" ], - "symbol": "[", - "color": "light_gray", - "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], - "coverage": 100, - "encumbrance": 50, - "storage": 10, - "warmth": 90, - "power_armor": true, - "material_thickness": 11, - "environmental_protection": 16, - "use_action": { "type": "ups_based_armor", "activate_msg": "Your power armor engages." }, - "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE" ] - }, - { - "id": "power_armor_frame", - "type": "ARMOR", - "category": "armor", - "name": "power armor hauling frame", - "description": "A heavy duty hauling frame designed to interface with power armor.", - "weight": 1640, - "volume": 48, - "price": 1000000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel" ], - "symbol": "[", - "color": "light_gray", - "coverage": 100, - "encumbrance": 40, - "storage": 120, - "power_armor": true, - "material_thickness": 10, - "flags": [ "WATERPROOF", "STURDY", "BELTED" ] - }, - { - "id": "power_armor_heavy", - "type": "ARMOR", - "category": "armor", - "name": "heavy power armor", - "description": "A suit of DoubleTech Power Armor, Mk. II-H. This model offers several improvements over the Mk. I, most notably the improved environmental protection. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", - "weight": 29009, - "volume": 120, - "price": 11500000, - "to_hit": 1, - "bashing": 1, - "material": [ "hardsteel", "steel" ], - "symbol": "[", - "color": "dark_gray", - "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], - "coverage": 100, - "encumbrance": 60, - "storage": 16, - "warmth": 60, - "power_armor": true, - "material_thickness": 12, - "environmental_protection": 16, - "use_action": { "type": "ups_based_armor", "activate_msg": "Your power armor engages." }, - "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE" ] - }, - { - "id": "power_armor_helmet_basic", - "type": "ARMOR", - "category": "armor", - "name": "basic power armor helmet", - "description": "A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. Offers excellent protection from both attacks and environmental hazards. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", - "weight": 3628, - "volume": 20, - "price": 2500000, - "to_hit": 1, - "bashing": 1, - "material": [ "steel" ], - "symbol": "[", - "color": "light_gray", - "covers": [ "HEAD", "EYES", "MOUTH" ], - "coverage": 100, - "encumbrance": 50, - "warmth": 90, - "power_armor": true, - "material_thickness": 11, - "environmental_protection": 16, - "qualities": [ [ "GLARE", 2 ] ], - "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES" ] - }, - { - "id": "power_armor_helmet_heavy", - "type": "ARMOR", - "category": "armor", - "name": "heavy power armor helmet", - "description": "A power armor helmet designed for use with the DoubleTech Power Armor, Mk. II-H. This improved design is heavier than the Mk. I helmet, but cooler, and offers better environmental protection. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", - "weight": 5442, - "volume": 28, - "price": 3750000, - "to_hit": 1, - "bashing": 1, - "material": [ "hardsteel", "steel" ], - "symbol": "[", - "color": "dark_gray", - "covers": [ "HEAD", "EYES", "MOUTH" ], - "coverage": 100, - "encumbrance": 60, - "warmth": 60, - "power_armor": true, - "material_thickness": 12, - "environmental_protection": 16, - "qualities": [ [ "GLARE", 2 ] ], - "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES" ] - }, - { - "id": "power_armor_helmet_light", - "type": "ARMOR", - "category": "armor", - "name": "light power armor helmet", - "description": "A power armor helmet designed for use with the DoubleTech Power Armor, Mk. II-L. This improved design is lighter and cooler than the Mk. I helmet. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", - "weight": 1814, - "volume": 16, - "price": 3750000, - "to_hit": 1, - "bashing": 1, - "material": [ "superalloy", "plastic" ], - "symbol": "[", - "color": "dark_gray", - "covers": [ "HEAD", "EYES", "MOUTH" ], - "coverage": 100, - "encumbrance": 40, - "warmth": 60, - "power_armor": true, - "material_thickness": 9, - "environmental_protection": 16, - "qualities": [ [ "GLARE", 2 ] ], - "flags": [ "WATCH", "WATERPROOF", "STURDY", "PARTIAL_DEAF", "THERMOMETER", "SUN_GLASSES" ] - }, - { - "id": "power_armor_light", - "type": "ARMOR", - "category": "armor", - "name": "light power armor", - "description": "A suit of DoubleTech Power Armor, Mk. II-L. This model offers several improvements over the Mk. I, most notably the reduced weight. Like all DoubleTech power armor, the control and climate-regulation systems require direct skin contact.", - "weight": 7670, - "volume": 60, - "price": 11500000, - "to_hit": 1, - "bashing": 1, - "material": [ "superalloy", "plastic" ], - "symbol": "[", - "color": "dark_gray", - "covers": [ "TORSO", "ARMS", "HANDS", "LEGS", "FEET" ], - "coverage": 100, - "encumbrance": 40, - "storage": 16, - "warmth": 60, - "power_armor": true, - "material_thickness": 9, - "environmental_protection": 16, - "use_action": { "type": "ups_based_armor", "activate_msg": "Your power armor engages." }, - "flags": [ "WATERPROOF", "STURDY", "ELECTRIC_IMMUNE" ] - } -] diff --git a/data/json/items/battery.json b/data/json/items/battery.json index 499d9685780a6..2767dd58cff6a 100644 --- a/data/json/items/battery.json +++ b/data/json/items/battery.json @@ -275,24 +275,6 @@ "looks_like": "battery", "flags": [ "NO_SALVAGE", "NO_UNLOAD", "LEAK_DAM", "RADIOACTIVE" ] }, - { - "id": "huge_atomic_battery_cell", - "type": "MAGAZINE", - "category": "spare_parts", - "name": "military plutonium fuel cell", - "description": "This battery uses a huge plutonium-244 rod to stablize an exotic nanocompound. It was used in military mech-suits, was highly experimental, and had no civilian applications. Although it stores a stupendous amount of power, it cannot be recharged.", - "weight": 64000, - "volume": "30 L", - "price": 100000, - "material": [ "superalloy", "plastic" ], - "symbol": "=", - "color": "red", - "ammo_type": "battery", - "count": 100000, - "capacity": 100000, - "looks_like": "battery", - "flags": [ "NO_SALVAGE", "NO_UNLOAD", "MECH_BAT", "LEAK_DAM", "RADIOACTIVE" ] - }, { "id": "heavy_disposable_cell", "type": "MAGAZINE", diff --git a/data/json/items/bionics.json b/data/json/items/bionics.json index 5ad72ab4c8be9..061092b4bf37d 100644 --- a/data/json/items/bionics.json +++ b/data/json/items/bionics.json @@ -901,7 +901,6 @@ "copy-from": "bionic_general_faulty", "type": "BIONIC_ITEM", "name": "Squeaky Ankles", - "plural_name": "Squeaky Ankles", "description": "A pair of defective bionics that make squeaking noises.", "difficulty": 4 }, @@ -910,7 +909,6 @@ "copy-from": "bionic_general_faulty", "type": "BIONIC_ITEM", "name": "Pieces Of Junk", - "plural_name": "Pieces of Junk", "description": "A jumble of broken metal pieces that were removed during reconstructive surgery.", "difficulty": 5 }, @@ -1023,7 +1021,6 @@ "copy-from": "bionic_general_faulty", "type": "BIONIC_ITEM", "name": "Wire-Induced Stiffness", - "plural_name": "Wire-Induced Stiffnesses", "description": "A length of poorly installed wiring that would cause stiffness.", "difficulty": 7 }, @@ -1032,7 +1029,6 @@ "copy-from": "bionic_general_faulty", "type": "BIONIC_ITEM", "name": "Self-Locking Thumbs", - "plural_name": "Self-Locking Thumbs", "description": "A pair of faulty, self-locking thumb bionics.", "difficulty": 5 }, diff --git a/data/json/items/book/maps.json b/data/json/items/book/maps.json index 99a7184a71da0..018f76d73ba6e 100644 --- a/data/json/items/book/maps.json +++ b/data/json/items/book/maps.json @@ -47,7 +47,7 @@ "use_action": { "type": "reveal_map", "radius": 180, - "terrain": [ "hiway", "road", "bridge", "s_pharm", "s_gun", "s_grocery", "s_hunting", "mil_surplus", "s_gas" ], + "terrain": [ "hiway", "road", "bridge", "s_pharm", "s_gun", "s_grocery", "mil_surplus", "s_gas" ], "message": "You add roads and possible supply points to your map." } }, diff --git a/data/json/items/chemicals_and_resources.json b/data/json/items/chemicals_and_resources.json index 807544121d404..59ce28d6c0e6a 100644 --- a/data/json/items/chemicals_and_resources.json +++ b/data/json/items/chemicals_and_resources.json @@ -284,31 +284,6 @@ "stack_size": 200, "fun": -15 }, - { - "type": "COMESTIBLE", - "id": "insecticide", - "category": "chems", - "name": "insecticide", - "name_plural": "insecticide", - "weight": 1, - "//": "Typically sold in larger quantities, but that's handed in the charge count.", - "color": "pink", - "looks_like": "fungicide", - "use_action": "BLECH", - "stim": -7, - "container": "bag_plastic", - "comestible_type": "FOOD", - "symbol": "!", - "healthy": -7, - "description": "Agricultural-grade chemical insecticide powder designed to eradicate insect pests.", - "price": 1100, - "price_postapoc": 5000, - "material": "powder", - "volume": "125ml", - "charges": 400, - "stack_size": 200, - "fun": -15 - }, { "type": "COMESTIBLE", "id": "salt_water", @@ -424,8 +399,7 @@ "description": "A handful of finely ground aluminum powder. This strong reducing agent was used in combination with various oxidants for chemical welding and explosives alike. Just before the Cataclysm, however, it was the basis of virtually all commercial metallic-hued paints and anti-corrosive coatings.", "material": "powder", "volume": 1, - "weight": 2, - "//": "Weight should be 1.76g but the game will round down the number to 1g and 1.76g is closer to 2g", + "weight": 1.75, "bashing": 1, "ammo_type": "components", "container": "bag_plastic", @@ -1257,25 +1231,5 @@ "symbol": "=", "color": "yellow", "ammo_type": "components" - }, - { - "id": "acetylene", - "type": "COMESTIBLE", - "name": "acetylene", - "category": "chems", - "description": "A flammable gas that explodes under pressure. Combined with oxygen, acetylene makes a great welding gas.", - "weight": 40, - "volume": "250 ml", - "price": 1200, - "material": [ "hydrocarbons" ], - "symbol": "=", - "color": "red", - "count": 100, - "stack_size": 100, - "phase": "liquid", - "effects": [ "COOKOFF" ], - "explode_in_fire": true, - "explosion": { "power": 20, "shrapnel": 0 }, - "flags": [ "NO_DROP", "IRREMOVABLE" ] } ] diff --git a/data/json/items/comestibles/alcohol.json b/data/json/items/comestibles/alcohol.json index dc693a8617a00..493a704d66fa2 100644 --- a/data/json/items/comestibles/alcohol.json +++ b/data/json/items/comestibles/alcohol.json @@ -178,7 +178,7 @@ "quench": 4, "addiction_potential": 5, "calories": 47, - "description": "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.", + "description": "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.", "price": 1500, "material": [ "alcohol", "water" ], "primary_material": "alcohol", diff --git a/data/json/items/comestibles/bread.json b/data/json/items/comestibles/bread.json index 332dde5179cab..df58acf7005de 100644 --- a/data/json/items/comestibles/bread.json +++ b/data/json/items/comestibles/bread.json @@ -50,7 +50,7 @@ "type": "GENERIC", "category": "food", "name": "sourdough starter", - "description": "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.", + "description": "This jar contains precious mix of flour, water, and molds and bacteria from the air. When you add flour and water to it, after a few hours it froths and rises.", "weight": 52, "looks_like": "jar_glass", "volume": 1, diff --git a/data/json/items/comestibles/carnivore.json b/data/json/items/comestibles/carnivore.json index 7d4df1aca5f0f..8ddceb9a709bb 100644 --- a/data/json/items/comestibles/carnivore.json +++ b/data/json/items/comestibles/carnivore.json @@ -86,7 +86,7 @@ "name_plural": "chunks of meat", "description": "Freshly butchered meat. You could eat it raw, but cooking it is better.", "weight": 296, - "volume": "250 ml", + "volume": 2, "price": 500, "spoils_in": "1 day", "calories": 302, @@ -121,7 +121,7 @@ "volume": 10, "weight": 250, "color": "black", - "looks_like": "feces_manure", + "looks-like": "feces_manure", "description": "Eugh. This is a mess of dirt, excreta, connective tissue, and bits of matter like hair and claws, leftover from the butchering process. Eating it isn't even worth thinking about, but disposing of it might be a concern as it could attract vermin.", "material": [ "flesh" ], "spoils_in": "8 hours", diff --git a/data/json/items/comestibles/egg.json b/data/json/items/comestibles/egg.json index ccf63f7d79274..e9787f0295a5f 100644 --- a/data/json/items/comestibles/egg.json +++ b/data/json/items/comestibles/egg.json @@ -121,12 +121,12 @@ "symbol": "%", "quench": 10, "description": "A large white ant egg, the size of a softball. Extremely nutritious, but incredibly gross.", - "price": 175, + "price": 80, "material": "egg", - "volume": "600 ml", + "volume": 1, "fun": -10, - "proportional": { "weight": 12, "calories": 12 }, - "vitamins": [ [ "vitA", 108 ], [ "calcium", 36 ], [ "iron", 48 ], [ "vitB", 252 ] ], + "proportional": { "weight": 4.4, "calories": 4.4 }, + "vitamins": [ [ "vitA", 40 ], [ "calcium", 13 ], [ "iron", 18 ], [ "vitB", 92 ] ], "rot_spawn": "GROUP_EGG_ANT", "rot_spawn_chance": 60 }, @@ -173,15 +173,20 @@ "type": "COMESTIBLE", "id": "egg_locust", "name": "insect egg", - "copy-from": "spider_egg", + "weight": 60, "color": "green", + "comestible_type": "FOOD", "symbol": "o", "spoils_in": "4 days 16 hours", "quench": 3, + "calories": 69, "description": "A fist-sized egg from a locust.", "price": 80, "material": "egg", - "rot_spawn": "GROUP_EGG_LOCUST" + "volume": 1, + "fun": -20, + "rot_spawn": "GROUP_EGG_LOCUST", + "rot_spawn_chance": 70 }, { "type": "COMESTIBLE", diff --git a/data/json/items/comestibles/frozen.json b/data/json/items/comestibles/frozen.json index e5302e9644d1e..0292fa2e1078f 100644 --- a/data/json/items/comestibles/frozen.json +++ b/data/json/items/comestibles/frozen.json @@ -34,9 +34,7 @@ "calories": 175, "fun": 23, "health": -3, - "price": 275, - "material": [ "milk", "junk" ], - "primary_material": "milk" + "price": 275 }, { "type": "COMESTIBLE", diff --git a/data/json/items/comestibles/irradiated_fruit.json b/data/json/items/comestibles/irradiated_fruit.json index a6cbbe212d059..1c7cb3d284e07 100644 --- a/data/json/items/comestibles/irradiated_fruit.json +++ b/data/json/items/comestibles/irradiated_fruit.json @@ -135,7 +135,7 @@ "description": "An irradiated grapefruit will remain edible nearly forever. Sterilized using radiation, so it's safe to eat.", "proportional": { "price": 2 }, "spoils_in": "0 hours", - "flags": [ "FREEZERBURN", "SMOKABLE" ], + "flags": [ "FREEZERBURN" ], "container": "bag_plastic" }, { @@ -146,7 +146,7 @@ "description": "An irradiated pear will remain edible nearly forever. Sterilized using radiation, so it's safe to eat.", "proportional": { "price": 2 }, "spoils_in": "0 hours", - "flags": [ "FREEZERBURN", "SMOKABLE" ], + "flags": [ "FREEZERBURN" ], "container": "bag_plastic" }, { @@ -210,7 +210,7 @@ "description": "An irradiated watermelon will remain edible nearly forever. Sterilized using radiation, so it's safe to eat.", "proportional": { "price": 2 }, "spoils_in": "0 hours", - "flags": [ "EATEN_COLD", "FREEZERBURN", "SMOKABLE" ], + "flags": [ "EATEN_COLD", "FREEZERBURN" ], "container": "bag_plastic" }, { @@ -221,7 +221,7 @@ "description": "An irradiated melon will remain edible nearly forever. Sterilized using radiation, so it's safe to eat.", "proportional": { "price": 2 }, "spoils_in": "0 hours", - "flags": [ "EATEN_COLD", "FREEZERBURN", "SMOKABLE" ], + "flags": [ "EATEN_COLD", "FREEZERBURN" ], "container": "bag_plastic" }, { diff --git a/data/json/items/comestibles/irradiated_veggy.json b/data/json/items/comestibles/irradiated_veggy.json index 1bca3339fe2ed..8c835d4a67d3a 100644 --- a/data/json/items/comestibles/irradiated_veggy.json +++ b/data/json/items/comestibles/irradiated_veggy.json @@ -60,7 +60,7 @@ "proportional": { "price": 2 }, "spoils_in": "0 hours", "container": "bag_plastic", - "flags": [ "FREEZERBURN", "SMOKABLE" ] + "flags": [ "FREEZERBURN" ] }, { "type": "COMESTIBLE", @@ -119,7 +119,7 @@ "description": "An irradiated cucumber will remain edible nearly forever. Sterilized using radiation, so it's safe to eat.", "price": 320, "material": "veggy", - "flags": [ "FREEZERBURN", "SMOKABLE" ], + "flags": [ "FREEZERBURN" ], "volume": 1 }, { diff --git a/data/json/items/comestibles/med.json b/data/json/items/comestibles/med.json index b88e8c0f22d6a..50f977434fd24 100644 --- a/data/json/items/comestibles/med.json +++ b/data/json/items/comestibles/med.json @@ -54,8 +54,7 @@ "id": "antibiotics", "type": "COMESTIBLE", "comestible_type": "MED", - "name": "antibiotics", - "plural_name": "antibiotics", + "name": "antibiotic", "description": "A prescription-strength antibacterial medication designed to prevent or stop the spread of infection. It's the quickest and most reliable way to cure any infections you might have. One dose lasts twelve hours.", "weight": 1, "volume": 1, @@ -120,7 +119,7 @@ "use_action": { "type": "consume_drug", "activation_message": "You take some aspirin.", - "effects": [ { "id": "pkill1", "duration": 720 } ] + "effects": [ { "id": "pkill1", "duration": 120 } ] } }, { @@ -192,7 +191,7 @@ "comestible_type": "MED", "name": "caffeinated chewing gum", "description": "Chewing gum with added caffeine. Sugary and bad for your teeth, but it's a nice pick-me-up.", - "category": "drugs", + "category": "food", "weight": 3, "volume": 1, "price": 140, @@ -344,7 +343,7 @@ "use_action": { "type": "consume_drug", "activation_message": "You take some codeine.", - "effects": [ { "id": "pkill2", "duration": 1080 }, { "id": "cough_suppress", "duration": 1000 } ] + "effects": [ { "id": "pkill2", "duration": 180 }, { "id": "cough_suppress", "duration": 1000 } ] } }, { @@ -651,8 +650,8 @@ "activation_message": "You shoot up.", "tools_needed": { "syringe": 1 }, "effects": [ - { "id": "pkill3", "duration": 480 }, - { "id": "pkill2", "duration": 1200 }, + { "id": "pkill3", "duration": 80 }, + { "id": "pkill2", "duration": 200 }, { "id": "cough_suppress", "duration": 1000 } ] } @@ -781,7 +780,7 @@ "type": "consume_drug", "activation_message": "You shoot up.", "tools_needed": { "syringe": 1 }, - "effects": [ { "id": "pkill3", "duration": 120 }, { "id": "pkill2", "duration": 1200 } ] + "effects": [ { "id": "pkill3", "duration": 20 }, { "id": "pkill2", "duration": 200 } ] } }, { @@ -864,7 +863,7 @@ "use_action": { "type": "consume_drug", "activation_message": "You take some oxycodone.", - "effects": [ { "id": "pkill3", "duration": 120 }, { "id": "pkill2", "duration": 1200 } ] + "effects": [ { "id": "pkill3", "duration": 20 }, { "id": "pkill2", "duration": 200 } ] } }, { @@ -907,7 +906,7 @@ "use_action": { "type": "consume_drug", "activation_message": "You take some poppy painkiller.", - "effects": [ { "id": "pkill2", "duration": 1080 } ] + "effects": [ { "id": "pkill2", "duration": 180 } ] } }, { @@ -1108,7 +1107,7 @@ "use_action": { "type": "consume_drug", "activation_message": "You take some tramadol.", - "effects": [ { "id": "pkill_l", "duration": 27000 } ] + "effects": [ { "id": "pkill_l", "duration": 4500 } ] } }, { @@ -1277,7 +1276,7 @@ "use_action": { "type": "consume_drug", "activation_message": "You smoke some weed. Good stuff, man!", - "effects": [ { "id": "weed_high", "duration": 90 }, { "id": "pkill1", "duration": 360 } ], + "effects": [ { "id": "weed_high", "duration": 90 }, { "id": "pkill1", "duration": 60 } ], "stat_adjustments": { "hunger": 4, "thirst": 6 }, "fields_produced": { "fd_weedsmoke": 2 }, "charges_needed": { "fire": 1 }, @@ -1332,19 +1331,14 @@ }, { "id": "disincotton_ball", + "copy-from": "cotton_ball", "type": "COMESTIBLE", - "comestible_type": "MED", "name": "disinfectant soaked cotton balls", "name_plural": "disinfectant soaked cotton balls", "description": "Fluffy balls of clean white cotton. Now soaked with disinfectant, they are somewhat useful to disinfect a wound.", - "weight": 25, - "//": "Can't copy-from cotton_ball, breaks volume", - "volume": "125 ml", - "price": 250, - "material": "cotton", - "symbol": "*", - "color": "white", "category": "drugs", + "price": 1000, + "charges": 1, "flags": [ "NO_INGEST" ], "use_action": { "type": "heal", @@ -1435,7 +1429,7 @@ "disinfectant_power": 3, "bite": 0.75, "move_cost": 100, - "effects": [ { "id": "pkill1", "duration": 720 } ] + "effects": [ { "id": "pkill1", "duration": 120 } ] } } ] diff --git a/data/json/items/comestibles/other.json b/data/json/items/comestibles/other.json index 43229d656c064..a5a9a215e6f43 100644 --- a/data/json/items/comestibles/other.json +++ b/data/json/items/comestibles/other.json @@ -600,6 +600,17 @@ "flags": [ "LUPINE" ], "use_action": "DOGFOOD" }, + { + "type": "COMESTIBLE", + "id": "dogfood_canned", + "name": "canned dogfood", + "name_plural": "canned dogfood", + "copy-from": "dogfood", + "color": "light_gray", + "container": "can_food", + "description": "Canned food for dogs. Keeps the food preserved, not that the dogs care.", + "price": 400 + }, { "id": "catfood", "type": "COMESTIBLE", @@ -623,6 +634,17 @@ "flags": [ "FELINE" ], "use_action": "CATFOOD" }, + { + "type": "COMESTIBLE", + "id": "catfood_canned", + "name": "canned catfood", + "name_plural": "canned catfood", + "copy-from": "catfood", + "color": "light_gray", + "container": "can_food", + "description": "Canned food for cats. Keeps the food preserved, not that the cats care about you.", + "price": 400 + }, { "type": "COMESTIBLE", "id": "grass", diff --git a/data/json/items/comestibles/raw_fruit.json b/data/json/items/comestibles/raw_fruit.json index eb9469bf13529..11fcda23e6d7f 100644 --- a/data/json/items/comestibles/raw_fruit.json +++ b/data/json/items/comestibles/raw_fruit.json @@ -36,8 +36,6 @@ "material": "fruit", "volume": 2, "fun": 5, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 1 ], [ "vitC", 17 ], [ "iron", 1 ] ] }, { @@ -57,8 +55,7 @@ "material": "fruit", "volume": "375 ml", "fun": 3, - "flags": [ "FREEZERBURN", "SMOKABLE" ], - "smoking_result": "dry_fruit", + "flags": [ "FREEZERBURN" ], "vitamins": [ [ "vitA", 7 ], [ "vitC", 138 ], [ "calcium", 4 ], [ "iron", 1 ] ] }, { @@ -77,8 +74,7 @@ "price": 120, "material": "fruit", "volume": 1, - "flags": [ "FREEZERBURN", "SMOKABLE" ], - "smoking_result": "dry_fruit", + "flags": [ "FREEZERBURN" ], "vitamins": [ [ "vitC", 74 ], [ "calcium", 1 ], [ "iron", 2 ] ], "fun": -4 }, @@ -100,7 +96,7 @@ "material": "fruit", "volume": 1, "fun": 2, - "flags": [ "SMOKABLE", "SMOKABLE" ], + "flags": [ "SMOKABLE" ], "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 1 ], [ "vitC", 24 ], [ "calcium", 1 ], [ "iron", 2 ] ] }, @@ -144,8 +140,6 @@ "material": "fruit", "volume": 1, "charges": 3, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 1 ], [ "vitC", 27 ], [ "iron", 1 ] ] }, { @@ -210,8 +204,6 @@ "material": "fruit", "volume": 1, "fun": 4, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitC", 60 ], [ "calcium", 6 ], [ "iron", 14 ] ] }, { @@ -232,8 +224,6 @@ "material": "fruit", "volume": 1, "fun": -2, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 5 ], [ "vitC", 61 ], [ "calcium", 6 ], [ "iron", 14 ] ] }, { @@ -254,8 +244,6 @@ "material": "fruit", "volume": 1, "fun": 2, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 32 ], [ "vitC", 634 ], [ "calcium", 23 ], [ "iron", 8 ] ] }, { @@ -316,8 +304,7 @@ "price": 180, "material": "fruit", "volume": 1, - "flags": [ "FREEZERBURN", "SMOKABLE" ], - "smoking_result": "dry_fruit", + "flags": [ "FREEZERBURN" ], "vitamins": [ [ "vitA", 16 ], [ "vitC", 84 ], [ "calcium", 5 ], [ "iron", 1 ] ], "fun": 2 }, @@ -339,8 +326,6 @@ "material": "fruit", "volume": 1, "fun": 3, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitC", 11 ], [ "calcium", 2 ], [ "iron", 3 ] ] }, { @@ -360,8 +345,6 @@ "material": "fruit", "volume": "66 ml", "fun": 3, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitC", 8 ] ] }, { @@ -405,8 +388,6 @@ "charges": 5, "bashing": 1, "fun": 4, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitC", 93 ], [ "calcium", 2 ], [ "iron", 3 ] ] }, { @@ -470,9 +451,8 @@ "volume": 20, "charges": 20, "bashing": 2, - "flags": [ "EATEN_COLD", "FREEZERBURN", "SMOKABLE" ], + "flags": [ "EATEN_COLD", "FREEZERBURN" ], "fun": 4, - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 5 ], [ "vitC", 14 ], [ "calcium", 1 ], [ "iron", 2 ] ] }, { @@ -494,9 +474,8 @@ "volume": 5, "charges": 5, "bashing": 1, - "flags": [ "EATEN_COLD", "FREEZERBURN", "SMOKABLE" ], + "flags": [ "EATEN_COLD", "FREEZERBURN" ], "fun": 4, - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 30 ], [ "vitC", 65 ], [ "calcium", 1 ], [ "iron", 2 ] ] }, { @@ -540,8 +519,6 @@ "volume": 4, "charges": 2, "fun": 5, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 10 ], [ "vitC", 70 ], [ "calcium", 2 ], [ "iron", 2 ] ] }, { @@ -562,8 +539,6 @@ "volume": 2, "charges": 2, "fun": 7, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitC", 21 ], [ "calcium", 2 ], [ "iron", 3 ] ] }, { @@ -584,8 +559,6 @@ "volume": 3, "charges": 3, "fun": 5, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 13 ], [ "vitC", 164 ], [ "calcium", 5 ], [ "iron", 3 ] ] }, { @@ -605,8 +578,6 @@ "material": "fruit", "volume": 1, "fun": 3, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_fruit", "vitamins": [ [ "vitA", 2 ], [ "vitC", 80 ], [ "calcium", 1 ], [ "iron", 1 ] ] }, { diff --git a/data/json/items/comestibles/raw_veggy.json b/data/json/items/comestibles/raw_veggy.json index 2d0c6bab73a45..08f1fadf1ed35 100644 --- a/data/json/items/comestibles/raw_veggy.json +++ b/data/json/items/comestibles/raw_veggy.json @@ -175,8 +175,6 @@ "material": "veggy", "volume": 1, "fun": -8, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_veggy", "vitamins": [ [ "calcium", 5 ], [ "iron", 5 ] ] }, { @@ -215,8 +213,7 @@ "//": "Thinking this is a single ear here.", "material": "veggy", "volume": 3, - "flags": [ "EATEN_HOT", "SMOKABLE" ], - "smoking_result": "dry_veggy", + "flags": [ "EATEN_HOT" ], "vitamins": [ [ "vitA", 2 ], [ "vitC", 12 ], [ "iron", 4 ] ] }, { @@ -275,8 +272,7 @@ "price": 300, "material": "veggy", "volume": 3, - "flags": [ "FREEZERBURN", "SMOKABLE" ], - "smoking_result": "dry_veggy", + "flags": [ "FREEZERBURN" ], "vitamins": [ [ "vitC", 9 ], [ "calcium", 6 ], [ "iron", 6 ] ] }, { @@ -289,7 +285,7 @@ "comestible_type": "FOOD", "symbol": "%", "calories": 60, - "description": "The large, tuberous root of a dahlia flower. It smells spicy, but is too starchy to eat without cooking.", + "description": "The large, tuberous root of a dahlia flower. It smells spicy, but is too starchy to eat without cooking.", "price": 100, "material": "veggy", "volume": 1, @@ -307,7 +303,7 @@ "comestible_type": "FOOD", "symbol": "%", "calories": 109, - "description": "An herb with a small purple flower. The roots are nutritious, but tough and bland until cooked.", + "description": "An herb with a small purple flower. The roots are nutritious, but tough and bland until cooked.", "//": "Serving Size is 1 cup of sliced roots. Salsify grows in bountiful clumps, it's a weed.", "price": 75, "material": "veggy", @@ -328,7 +324,7 @@ "comestible_type": "FOOD", "symbol": "%", "calories": 43, - "description": "A modest blue flower. The flower's roots are very bitter and not meant to be eaten raw.", + "description": "A modest blue flower. The flower's roots are very bitter and not meant to be eaten raw.", "price": 110, "material": "veggy", "volume": 1, @@ -343,7 +339,7 @@ "name_plural": "wild roots", "copy-from": "carrot", "color": "white", - "description": "A weed with a cluster of tiny white flowers. These are often wild carrots, but beware of poisonous lookalikes.", + "description": "A weed with a cluster of tiny white flowers. These are often wild carrots, but beware of poisonous lookalikes.", "charges": 3, "//": "Also known as Queen Anne's Lace. It's that boring white flower that grows wild everywhere. Water hemlock looks almost exactly like wild carrot. The easiest way to tell them apart is by their scent. Please don't eat either of them at home, hemlock will kill you deader than Socrates.", "flags": [ "FORAGE_POISON" ], @@ -483,9 +479,7 @@ "description": "A fluid bladder from a fungus based lifeform. Not very nutritious, but fine to eat anyway.", "price": 0, "material": "veggy", - "volume": 1, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_veggy" + "volume": 1 }, { "type": "COMESTIBLE", @@ -549,8 +543,7 @@ "volume": 1, "stack_size": 4, "fun": -12, - "flags": [ "FREEZERBURN", "SMOKABLE" ], - "smoking_result": "dry_veggy", + "flags": [ "FREEZERBURN" ], "vitamins": [ [ "vitA", 33 ], [ "vitC", 23 ], [ "calcium", 11 ], [ "iron", 10 ] ] }, { @@ -569,8 +562,6 @@ "price": 410, "material": "veggy", "volume": 1, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_veggy", "vitamins": [ [ "vitA", 1 ], [ "vitC", 11 ], [ "calcium", 11 ], [ "iron", 2 ] ] }, { @@ -590,8 +581,6 @@ "volume": 4, "charges": 4, "fun": -10, - "flags": [ "SMOKABLE" ], - "smoking_result": "dry_veggy", "vitamins": [ [ "vitC", 8 ], [ "calcium", 2 ], [ "iron", 6 ] ] }, { diff --git a/data/json/items/comestibles/sandwich.json b/data/json/items/comestibles/sandwich.json index 1190f25b36260..2e69266201033 100644 --- a/data/json/items/comestibles/sandwich.json +++ b/data/json/items/comestibles/sandwich.json @@ -138,7 +138,7 @@ "name": "boring sandwich", "name_plural": "boring sandwiches", "copy-from": "bread", - "proportional": { "weight": 2, "calories": 2, "volume": 2 }, + "proprtional": { "weight": 2, "calories": 2, "volume": 2 }, "color": "brown", "spoils_in": "1 day 22 hours", "container": "wrapper", diff --git a/data/json/items/comestibles/veggy_dishes.json b/data/json/items/comestibles/veggy_dishes.json index fb0177daa7dbe..e9f42de31e812 100644 --- a/data/json/items/comestibles/veggy_dishes.json +++ b/data/json/items/comestibles/veggy_dishes.json @@ -42,7 +42,8 @@ "description": "Cooked leaves from wild dandelions. Tasty and nutritious.", "price": 200, "flags": [ "EATEN_HOT", "FREEZERBURN", "SMOKABLE" ], - "fun": 1 + "fun": 1, + "smoking_result": "dry_veggy" }, { "type": "COMESTIBLE", @@ -609,7 +610,7 @@ "copy-from": "salsify_raw", "spoils_in": "2 days", "healthy": 2, - "description": "When properly cooked, salsify tastes vaguely like oysters. Makes a great side dish.", + "description": "When properly cooked, salsify tastes vaguely like oysters. Makes a great side dish.", "price": 90, "flags": [ "EATEN_HOT" ], "fun": 2, diff --git a/data/json/items/fake.json b/data/json/items/fake.json index 40fd9f7c3a57f..c1a15475a0e84 100644 --- a/data/json/items/fake.json +++ b/data/json/items/fake.json @@ -7,12 +7,6 @@ "symbol": "@", "color": "red" }, - { - "id": "arcfurnace", - "copy-from": "fake_item", - "type": "TOOL", - "name": "arc furnace" - }, { "id": "fake_burrowing", "copy-from": "fake_item", diff --git a/data/json/items/faults_bionic.json b/data/json/items/faults_bionic.json index dd989f8b0f947..57da5aba123d7 100644 --- a/data/json/items/faults_bionic.json +++ b/data/json/items/faults_bionic.json @@ -4,7 +4,7 @@ "type": "fault", "name": ": already deployed", "description": "This bionic needs to be reset to its factory state.", - "time": "45 m", + "time": 270000, "skills": [ [ "mechanics", 3 ], [ "electronics", 2 ], [ "firstaid", 4 ] ], "requirements": { "qualities": [ { "id": "WRENCH_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ] } } diff --git a/data/json/items/fuel.json b/data/json/items/fuel.json index e86e42b1f52b4..fe1282d0fd9da 100644 --- a/data/json/items/fuel.json +++ b/data/json/items/fuel.json @@ -161,32 +161,8 @@ "color": "light_red", "ammo_type": "flammable", "damage": 15, - "range": 6, + "range": 5, "pierce": 30, "effects": [ "FLAME", "STREAM_BIG", "INCENDIARY", "NEVER_MISFIRES" ] - }, - { - "id": "gelled_gasoline", - "type": "AMMO", - "name": "gelled gasoline", - "name_plural": "gelled gasoline", - "copy-from": "gasoline", - "description": "A flammable gel composed of gasoline and dissolved shavings of polystyrene, roughly similar in properties to napalm b. It's meant to be used with a flamethrower.", - "price": 400, - "ammo_type": "flammable", - "damage": 10, - "range": 3, - "pierce": 10 - }, - { - "id": "flamethrower_fuel", - "type": "AMMO", - "name": "flamethrower fuel", - "name_plural": "flamethrower fuel", - "copy-from": "gasoline", - "description": "A mixture of gasoline and diesel oil in equal parts. Its combustion properties make it unfit for applications where you would use any of them separately, but it can be used to feed a flamethrower.", - "price": 400, - "ammo_type": "flammable", - "range": 0 } ] diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 4f624aa79ec34..35670b6b0b791 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -844,7 +844,6 @@ "symbol": ",", "color": "dark_gray", "name": "laptop computer", - "category": "other", "description": "A broken laptop, basically a paperweight now.", "price": 1000, "material": [ "plastic", "aluminum" ], @@ -1033,51 +1032,6 @@ "to_hit": -3, "flags": [ "TRADER_AVOID", "NO_REPAIR" ] }, - { - "type": "GENERIC", - "id": "broken_mech_recon", - "name": "broken recon mech", - "description": "This is a broken mech exoskeleton suit, it looks beyond repair.", - "weight": 700388, - "volume": "125 L", - "price": 1000, - "to_hit": -3, - "bashing": 7, - "material": [ "superalloy" ], - "symbol": ";", - "color": "light_green", - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] - }, - { - "type": "GENERIC", - "id": "broken_mech_lifter", - "name": "broken mech lifter", - "description": "This is a broken mech exoskeleton suit, it looks beyond repair.", - "weight": 1280388, - "volume": "250 L", - "price": 1000, - "to_hit": -3, - "bashing": 8, - "material": [ "superalloy" ], - "symbol": ";", - "color": "light_green", - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] - }, - { - "type": "GENERIC", - "id": "broken_mech_combat", - "name": "broken combat mech", - "description": "This is a broken mech exoskeleton suit, it looks beyond repair.", - "weight": 1480388, - "volume": "250 L", - "price": 1000, - "to_hit": -3, - "bashing": 8, - "material": [ "superalloy" ], - "symbol": ";", - "color": "light_green", - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] - }, { "type": "GENERIC", "id": "broken_dispatch", @@ -1684,27 +1638,6 @@ "to_hit": -2, "material": [ "steel", "plastic" ] }, - { - "id": "retool_ar15_300blk", - "type": "GUNMOD", - "name": ".300 AAC Blackout caliber conversion kit", - "description": "This kit is used to convert an AR-15 .223/5.56mm rifle to the new .300BLK caliber.", - "weight": 1000, - "volume": "500 ml", - "integral_volume": 0, - "integral_weight": 0, - "price": 50000, - "material": "steel", - "symbol": ":", - "color": "green", - "location": "bore", - "mod_targets": [ "ar15" ], - "acceptable_ammo": [ "223" ], - "install_time": "30 m", - "ammo_modifier": "300blk", - "min_skills": [ [ "weapon", 3 ], [ "mechanics", 2 ] ], - "flags": [ "INSTALL_DIFFICULT", "IRREMOVABLE" ] - }, { "type": "GENERIC", "id": "mobile_memory_card", @@ -2995,82 +2928,5 @@ "material": [ "steel", "plastic", "wood" ], "weight": 11339, "volume": 12 - }, - { - "type": "GENERIC", - "id": "broken_turret", - "symbol": ",", - "color": "green", - "name": "broken turret", - "category": "other", - "description": "A broken turret. Much less threatening now that it's laid limp on solid ground. Could be gutted for parts.", - "price": 1000, - "material": [ "steel", "plastic" ], - "weight": 62650, - "volume": "30 L", - "bashing": 4, - "cutting": 4, - "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] - }, - { - "type": "GENERIC", - "id": "broken_turret_rifle", - "symbol": ",", - "color": "green", - "name": "broken milspec turret", - "weight": 70000, - "copy-from": "broken_turret" - }, - { - "type": "GENERIC", - "id": "broken_turret_bmg", - "symbol": ",", - "color": "green", - "name": "broken antimateriel turret", - "weight": 100000, - "copy-from": "broken_turret" - }, - { - "type": "GENERIC", - "id": "broken_laserturret", - "symbol": ",", - "color": "green", - "name": "broken laser turret", - "weight": 110000, - "copy-from": "broken_turret" - }, - { - "type": "GENERIC", - "id": "broken_secubot", - "symbol": ",", - "color": "green", - "name": "broken secubot", - "category": "other", - "description": "A broken secubot, with its casing broken and fluid drained. Could be gutted for parts.", - "price": 1000, - "material": [ "steel", "plastic" ], - "weight": 100000, - "volume": "65000 ml", - "bashing": 4, - "cutting": 4, - "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] - }, - { - "type": "GENERIC", - "id": "fire_brick", - "symbol": ",", - "color": "brown", - "name": "fire brick", - "category": "spare_parts", - "description": "A reinforced brick designed to withstand intense heat.", - "price": 2500, - "material": [ "clay", "stone" ], - "weight": 969, - "volume": "500 ml", - "bashing": 8, - "to_hit": -2, - "qualities": [ [ "HAMMER", 1 ] ] } ] diff --git a/data/json/items/generic/casing.json b/data/json/items/generic/casing.json index 5470419594235..576846dbaaa1e 100644 --- a/data/json/items/generic/casing.json +++ b/data/json/items/generic/casing.json @@ -359,14 +359,5 @@ "symbol": "=", "color": "red", "damage_states": [ 0, 0 ] - }, - { - "id": "300blk_casing", - "copy-from": "casing", - "type": "GENERIC", - "name": ".300BLK casing", - "description": "An empty casing from a .300BLK round.", - "weight": 6, - "volume": "9ml" } ] diff --git a/data/json/items/generic/dining_kitchen.json b/data/json/items/generic/dining_kitchen.json index a464e8b00e245..6370a6820afc3 100644 --- a/data/json/items/generic/dining_kitchen.json +++ b/data/json/items/generic/dining_kitchen.json @@ -86,7 +86,7 @@ "color": "light_gray", "price": 400, "price_postapoc": 0, - "material": "tin", + "material": "aluminum", "weight": 262, "volume": "250 ml", "bashing": 2, @@ -710,7 +710,7 @@ "copy-from": "base_cookpot", "material": "iron", "color": "dark_gray", - "proportional": { "to_hit": 2 }, + "proportional": { "to-hit": 2 }, "weight": 2628, "volume": 4, "bashing": 12, @@ -727,7 +727,7 @@ "copy-from": "base_cookpot", "material": "steel", "color": "light_gray", - "proportional": { "to_hit": 2 }, + "proportional": { "to-hit": 2 }, "weight": 528, "volume": 4, "bashing": 8, @@ -744,7 +744,7 @@ "copy-from": "base_cookpot", "material": "copper", "color": "light_red", - "proportional": { "to_hit": 2 }, + "proportional": { "to-hit": 2 }, "weight": 628, "volume": 4, "bashing": 7, diff --git a/data/json/items/grenades.json b/data/json/items/grenades.json index 925ae9fc9aabf..e07ae3a61e490 100644 --- a/data/json/items/grenades.json +++ b/data/json/items/grenades.json @@ -287,93 +287,5 @@ "countdown_interval": 100, "countdown_action": { "type": "transform", "target": "canister_empty" }, "flags": [ "TRADER_AVOID" ] - }, - { - "id": "fungicidalbomb", - "copy-from": "grenade_canister", - "looks_like": "smokebomb", - "type": "GENERIC", - "name": "fungicidal gas grenade", - "price": 3600, - "description": "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.", - "countdown_action": { "menu_text": "Pull pin", "type": "transform", "target": "fungicidalbomb_act" } - }, - { - "id": "fungicidalbomb_act", - "copy-from": "gasbomb", - "looks_like": "smokebomb_act", - "type": "GENERIC", - "name": "armed fungicidal gas canister", - "description": "This fungicidal bomb has had its pin removed and is expelling highly toxic gas.", - "emits": [ "emit_fungicidal_stream" ], - "countdown_interval": 50, - "countdown_action": { "type": "transform", "target": "canister_empty" }, - "flags": [ "TRADER_AVOID" ] - }, - { - "id": "insecticidalbomb", - "copy-from": "grenade_canister", - "looks_like": "smokebomb", - "type": "GENERIC", - "name": "insecticidal gas grenade", - "price": 3600, - "description": "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.", - "countdown_action": { "menu_text": "Pull pin", "type": "transform", "target": "insecticidalbomb_act" } - }, - { - "id": "insecticidalbomb_act", - "copy-from": "gasbomb", - "looks_like": "smokebomb_act", - "type": "GENERIC", - "name": "armed insecticidal gas canister", - "description": "This insecticidal bomb has had its pin removed and is expelling highly toxic haze.", - "emits": [ "emit_insecticidal_stream" ], - "countdown_interval": 50, - "countdown_action": { "type": "transform", "target": "canister_empty" }, - "flags": [ "TRADER_AVOID" ] - }, - { - "id": "fungicidalbomb_makeshift", - "copy-from": "grenade_canister", - "looks_like": "smokebomb", - "type": "GENERIC", - "name": "makeshift fungicidal gas grenade", - "price": 3600, - "description": "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.", - "countdown_action": { "menu_text": "Pull pin", "type": "transform", "target": "fungicidalbomb_makeshift_act" } - }, - { - "id": "fungicidalbomb_makeshift_act", - "copy-from": "gasbomb", - "looks_like": "smokebomb_act", - "type": "GENERIC", - "name": "armed makeshift fungicidal gas canister", - "description": "This makeshift fungicidal bomb has had its pin removed and is expelling highly toxic haze.", - "emits": [ "emit_small_fungicidal_stream" ], - "countdown_interval": 50, - "countdown_action": { "type": "transform", "target": "canister_empty" }, - "flags": [ "TRADER_AVOID" ] - }, - { - "id": "insecticidalbomb_makeshift", - "copy-from": "grenade_canister", - "looks_like": "smokebomb", - "type": "GENERIC", - "name": "makeshift insecticidal gas grenade", - "price": 3600, - "description": "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.", - "countdown_action": { "menu_text": "Pull pin", "type": "transform", "target": "insecticidalbomb_makeshift_act" } - }, - { - "id": "insecticidalbomb_makeshift_act", - "copy-from": "gasbomb", - "looks_like": "smokebomb_act", - "type": "GENERIC", - "name": "armed makeshift insecticidal gas canister", - "description": "This makeshift insecticidal bomb has had its pin removed and is expelling highly toxic haze.", - "emits": [ "emit_small_insecticidal_stream" ], - "countdown_interval": 50, - "countdown_action": { "type": "transform", "target": "canister_empty" }, - "flags": [ "TRADER_AVOID" ] } ] diff --git a/data/json/items/gun/300BLK.json b/data/json/items/gun/300BLK.json deleted file mode 100644 index ff9111d8cb1b8..0000000000000 --- a/data/json/items/gun/300BLK.json +++ /dev/null @@ -1,80 +0,0 @@ -[ - { - "id": "acr_300blk", - "copy-from": "rifle_auto", - "type": "GUN", - "name": "Remington ACR .300BLK", - "description": "This carbine was developed for military use in the early 21st century. It is damaging and accurate, though its rate of fire is a bit slower than competing carbines. This version is chambered for the .300 AAC Blackout round.", - "weight": 3495, - "volume": "2 L", - "price": 234300, - "to_hit": -1, - "bashing": 12, - "material": [ "steel", "plastic" ], - "symbol": "(", - "color": "dark_gray", - "ammo": "300blk", - "ranged_damage": -1, - "dispersion": 150, - "durability": 8, - "burst": 11, - "barrel_length": 1, - "built_in_mods": [ "folding_stock" ], - "magazines": [ [ "300blk", [ "stanag30", "stanag50", "survivor223mag" ] ] ] - }, - { - "id": "iwi_tavor_x95_300blk", - "copy-from": "rifle_semi", - "type": "GUN", - "name": "IWI Tavor X95 .300BLK", - "description": "The IWI Tavor X95 (also called Micro-Tavor or MTAR) is an Israeli bullpup assault rifle designed and produced by Israel Weapon Industries. This is the civilian version chambered for .300 AAC Blackout.", - "weight": 3400, - "volume": "1500 ml", - "price": 490000, - "to_hit": -1, - "bashing": 12, - "material": [ "steel", "plastic" ], - "symbol": "(", - "color": "light_gray", - "ammo": "300blk", - "dispersion": 140, - "durability": 8, - "built_in_mods": [ "grip" ], - "valid_mod_locations": [ - [ "accessories", 4 ], - [ "barrel", 1 ], - [ "bore", 1 ], - [ "brass catcher", 1 ], - [ "grip", 1 ], - [ "mechanism", 4 ], - [ "magazine", 1 ], - [ "muzzle", 1 ], - [ "rail", 1 ], - [ "sights", 1 ], - [ "sling", 1 ], - [ "underbarrel", 1 ] - ], - "magazines": [ [ "300blk", [ "stanag30", "stanag50", "survivor223mag" ] ] ] - }, - { - "id": "ar15_retool_300blk", - "copy-from": "rifle_semi", - "type": "GUN", - "name": "AR-15", - "//": "This is assumed to be the standard model matching the (currently not in-game) M16.", - "description": "This ubiquitous rifle is the forefather of M16 rifle series. It is lightweight and accurate, but will malfunction if not properly maintained. This one is a semi automatic civilian version.", - "weight": 2815, - "volume": 8, - "price": 125000, - "to_hit": -1, - "bashing": 12, - "material": [ "steel", "plastic" ], - "symbol": "(", - "color": "dark_gray", - "ammo": "223", - "dispersion": 150, - "durability": 7, - "default_mods": [ "retool_ar15_300blk" ], - "magazines": [ [ "223", [ "stanag30", "stanag50", "survivor223mag" ] ] ] - } -] diff --git a/data/json/items/gun/460.json b/data/json/items/gun/460.json index 014590f51c757..3d4a6fbe09264 100644 --- a/data/json/items/gun/460.json +++ b/data/json/items/gun/460.json @@ -6,8 +6,7 @@ "name": "L39-460", "description": "Developed as a testament to the L39 family of pistols' strength, this hefty pistol chambers powerful .460 Rowland. In addition to the heavy slide and L39 standard sighting package, this pistol sports a large compensator. Notably, normal .45ACP can also be fired through the weapon. Similar to other Leadworks products it doesn't accept third-party modifications.", "price": 90000, - "ammo": [ "460", "45" ], - "magazines": [ [ "460", [ "lw12mag" ] ], [ "45", [ "lw12mag" ] ] ], + "ammo": "460", "relative": { "durability": -1 }, "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ] }, @@ -17,8 +16,7 @@ "type": "GUN", "name": "L39B-45", "description": "After the success of their 9x19mm machine pistol, Leadworks LLC developed the L39B-45 from their .460 Rowland semi-autos, intending them to be used with .45ACP. Because it shares most of its parts with the L39-460, this variant retains the ability to fire fearsome .460 Rowland, though users are strongly advised not to do so during automatic fire. Comes with built in red dot, recoil compensator and laser sights. Similar to other Leadworks products it doesn't accept third-party modifications.", - "ammo": [ "460", "45" ], - "magazines": [ [ "460", [ "lw12mag" ] ], [ "45", [ "lw12mag" ] ] ], + "ammo": "460", "relative": { "durability": -1 }, "built_in_mods": [ "lead_holo_sight", "muzzle_brake", "lead_laser_sight" ] }, @@ -38,12 +36,12 @@ "material": [ "steel", "wood" ], "symbol": "(", "color": "light_gray", - "ammo": [ "460", "45" ], + "ammo": "460", "ranged_damage": 1, "dispersion": 360, "durability": 8, "clip_size": 6, - "magazines": [ [ "460", [ "460_speedloader6" ] ], [ "45", [ "460_speedloader6" ] ] ], + "magazines": [ [ "460", [ "460_speedloader6" ] ] ], "built_in_mods": [ "lead_holo_sight", "lead_laser_sight" ], "valid_mod_locations": [ [ "accessories", 2 ], @@ -70,7 +68,7 @@ "material": [ "steel", "plastic" ], "symbol": "(", "color": "brown", - "ammo": [ "460", "45" ], + "ammo": "460", "skill": "rifle", "range": 8, "ranged_damage": 4, diff --git a/data/json/items/gun/9mm.json b/data/json/items/gun/9mm.json index 6a750272791f2..a59f249d00c84 100644 --- a/data/json/items/gun/9mm.json +++ b/data/json/items/gun/9mm.json @@ -538,8 +538,7 @@ "durability": 6, "blackpowder_tolerance": 48, "magazine_well": 1, - "//": "Glock 17s cannot load a 15 round magazine. See http://guns-of-fun.com/portals/0/LiveContent/Mounts/Glock-Mags-Comp.jpg and #33038", - "magazines": [ [ "9mm", [ "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] ] ] + "magazines": [ [ "9mm", [ "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd", "glockbigmag" ] ] ] }, { "id": "glock_18c", diff --git a/data/json/items/gun/faults_gun.json b/data/json/items/gun/faults_gun.json index e83d7b8b47655..97f63491ed895 100644 --- a/data/json/items/gun/faults_gun.json +++ b/data/json/items/gun/faults_gun.json @@ -4,7 +4,7 @@ "type": "fault", "name": "blackpowder fouling", "description": "Firing blackpowder loads from a gun fouls it, which reduces reliability and, if left uncleaned, leads to rust.", - "time": "50 s", + "time": 5000, "skills": [ [ "mechanics", 1 ] ], "requirements": { "qualities": [ { "id": "SCREW", "level": 1 } ], @@ -16,7 +16,7 @@ "type": "fault", "name": "clogging", "description": "Clogging is usually caused by firing many blackpowder loads without cleaning; it prevents firing the gun until cleaned. Some guns are more resistant to this than others.", - "time": "5 m", + "time": 30000, "skills": [ [ "mechanics", 1 ] ], "requirements": { "qualities": [ { "id": "SCREW", "level": 1 } ], diff --git a/data/json/items/gun/flammable.json b/data/json/items/gun/flammable.json index 470192c9393fe..178ea295d3d86 100644 --- a/data/json/items/gun/flammable.json +++ b/data/json/items/gun/flammable.json @@ -11,7 +11,7 @@ "to_hit": -1, "bashing": 10, "material": "steel", - "range": 6, + "range": 4, "dispersion": 300, "durability": 8, "burst": 4, @@ -26,6 +26,23 @@ ], "magazines": [ [ "flammable", [ "pressurized_tank" ] ] ] }, + { + "id": "flamethrower_crude", + "copy-from": "flamethrower_base", + "type": "GUN", + "name": "spraycan flamethrower", + "description": "A favorite of hooligans around the world, this lighter duct-taped to a spray can is probably as dangerous to the user as anyone else. The nozzle has been crudely modified to disperse gasoline, and a small pump attached to the side allows for repressurization, though this process takes a few minutes.", + "weight": 451, + "volume": 2, + "price": 16000, + "material": "steel", + "range": -2, + "dispersion": 300, + "durability": 8, + "clip_size": 100, + "valid_mod_locations": [ [ "sling", 1 ], [ "stock", 1 ], [ "rail mount", 1 ] ], + "relative": { "reload": 4 } + }, { "id": "flamethrower_simple", "copy-from": "flamethrower_base", @@ -38,8 +55,8 @@ "to_hit": -1, "bashing": 8, "material": [ "steel", "plastic" ], - "range": 4, - "dispersion": 600, + "ranged_damage": -5, + "dispersion": 300, "durability": 6, "relative": { "reload": 2 }, "magazines": [ [ "flammable", [ "aux_pressurized_tank", "pressurized_tank" ] ] ] @@ -56,7 +73,7 @@ "to_hit": -1, "bashing": 10, "material": [ "superalloy", "ceramic" ], - "range": 10, + "range": 12, "ranged_damage": 10, "dispersion": 240, "durability": 9, diff --git a/data/json/items/gun/shot.json b/data/json/items/gun/shot.json index 991408685b015..dba218e02bdcb 100644 --- a/data/json/items/gun/shot.json +++ b/data/json/items/gun/shot.json @@ -131,7 +131,6 @@ "dispersion": 375, "durability": 8, "clip_size": 8, - "magazines": [ [ "shot", [ "shot_speedloader8" ] ] ], "built_in_mods": [ "lead_red_dot_sight", "lead_laser_sight" ], "valid_mod_locations": [ [ "accessories", 2 ], @@ -162,7 +161,6 @@ "dispersion": 345, "durability": 9, "clip_size": 8, - "magazines": [ [ "shot", [ "shot_speedloader8" ] ] ], "flags": [ "RELOAD_ONE" ] }, { @@ -181,7 +179,6 @@ "dispersion": 375, "durability": 9, "clip_size": 8, - "magazines": [ [ "shot", [ "shot_speedloader8" ] ] ], "barrel_length": 1 }, { @@ -252,7 +249,6 @@ "dispersion": 345, "durability": 8, "clip_size": 6, - "magazines": [ [ "shot", [ "shot_speedloader6" ] ] ], "barrel_length": 3 }, { diff --git a/data/json/items/gun/ups.json b/data/json/items/gun/ups.json index bac9c69415f57..e5c64c664e3c4 100644 --- a/data/json/items/gun/ups.json +++ b/data/json/items/gun/ups.json @@ -36,60 +36,6 @@ "ammo_effects": [ "DRAW_LASER_BEAM", "EMP" ], "flags": [ "NEVER_JAMS", "NO_UNLOAD" ] }, - { - "id": "gatling_mech_laser", - "type": "GUN", - "reload_noise_volume": 20, - "name": "CMES laser cannon", - "description": "This is the integral weapon system for the CMES exoskeleton mech-suit, a rotating-barrel active-cooled rapid-fire laser system, can spray death downrange with ease.", - "weight": 39500, - "volume": "11 L", - "price": 9500000, - "to_hit": -4, - "bashing": 8, - "material": [ "superalloy", "plastic" ], - "symbol": "(", - "color": "blue", - "skill": "rifle", - "range": 30, - "ranged_damage": 10, - "pierce": 10, - "dispersion": 100, - "durability": 8, - "loudness": 12, - "ups_charges": 80, - "reload": 0, - "modes": [ [ "DEFAULT", "3 rd.", 3 ], [ "BURST", "5 rd.", 5 ], [ "AUTO", "high auto", 15 ] ], - "ammo_effects": [ "LASER", "INCENDIARY" ], - "flags": [ "NO_UNLOAD", "NEVER_JAMS", "MECH_WEAPON", "NO_UNWIELD", "NO_SALVAGE", "NO_REPAIR", "UNBREAKABLE_MELEE" ] - }, - { - "id": "recon_mech_laser", - "type": "GUN", - "reload_noise_volume": 2, - "name": "RMES marksman system", - "description": "This is the integral weapon system for the RMES exoskeleton mech-suit, a quiet and accurate marksman laser rifle.", - "weight": 12500, - "volume": "5500 ml", - "price": 9500000, - "to_hit": -2, - "bashing": 6, - "material": [ "superalloy", "plastic" ], - "symbol": "(", - "color": "blue", - "skill": "rifle", - "range": 45, - "ranged_damage": 30, - "pierce": 20, - "dispersion": 15, - "durability": 8, - "loudness": 1, - "ups_charges": 180, - "reload": 0, - "default_mods": [ "inter_bayonet" ], - "ammo_effects": [ "LASER", "INCENDIARY" ], - "flags": [ "NO_UNLOAD", "NEVER_JAMS", "MECH_WEAPON", "NO_UNWIELD", "NO_SALVAGE", "NO_REPAIR", "UNBREAKABLE_MELEE" ] - }, { "id": "laser_cannon", "type": "GUN", diff --git a/data/json/items/gunmod/rail.json b/data/json/items/gunmod/rail.json index c0c35734dd5e4..0686bd4f4e3d0 100644 --- a/data/json/items/gunmod/rail.json +++ b/data/json/items/gunmod/rail.json @@ -12,15 +12,7 @@ "color": "light_red", "location": "rail", "mod_targets": [ "shotgun", "rifle", "crossbow" ], - "gun_data": { - "ammo": "bolt", - "skill": "rifle", - "range": 8, - "ranged_damage": 12, - "dispersion": 180, - "durability": 10, - "clip_size": 1 - }, + "gun_data": { "ammo": "bolt", "skill": "rifle", "range": 8, "dispersion": 180, "durability": 10, "clip_size": 1 }, "dispersion_modifier": 60, "min_skills": [ [ "weapon", 2 ], [ "archery", 1 ] ], "flags": [ "STR_RELOAD" ] diff --git a/data/json/items/handloaded_bullets.json b/data/json/items/handloaded_bullets.json index 5d337830cda3b..75d259710dc91 100644 --- a/data/json/items/handloaded_bullets.json +++ b/data/json/items/handloaded_bullets.json @@ -8,7 +8,7 @@ "color": "red", "description": "A prepared blunderbuss shot of a large hunk of metal. Better for distance.", "material": [ "paper", "powder" ], - "volume": "100 ml", + "volume": 1, "weight": 3, "bashing": 1, "ammo_type": "blunderbuss", @@ -28,7 +28,7 @@ "color": "red", "description": "A prepared blunderbuss shot of a marbles, pebbles, bearings, basically whatever is at hand. The homemade pellet spread and number makes up for the shoddy quality.", "material": [ "paper", "powder" ], - "volume": "100 ml", + "volume": 1, "weight": 2, "bashing": 1, "ammo_type": "blunderbuss", @@ -46,7 +46,7 @@ "color": "red", "description": "A prepared blunderbuss shot of homemade flechette made out of nails. Shreds armor.", "material": [ "plastic", "powder" ], - "volume": "100 ml", + "volume": 1, "weight": 3, "bashing": 1, "ammo_type": "blunderbuss", diff --git a/data/json/items/magazine/223.json b/data/json/items/magazine/223.json index 08de0d331838f..0e3fc92ab6b01 100644 --- a/data/json/items/magazine/223.json +++ b/data/json/items/magazine/223.json @@ -119,7 +119,7 @@ "material": "steel", "symbol": "#", "color": "light_gray", - "ammo_type": [ "223", "300blk" ], + "ammo_type": "223", "capacity": 30, "reliability": 8, "flags": [ "MAG_COMPACT" ] @@ -137,7 +137,7 @@ "material": [ "steel", "plastic" ], "symbol": "#", "color": "light_green", - "ammo_type": [ "223", "300blk" ], + "ammo_type": "223", "capacity": 50, "reliability": 7, "reload_time": 200, @@ -154,7 +154,7 @@ "material": "steel", "symbol": "#", "color": "light_gray", - "ammo_type": [ "223", "300blk" ], + "ammo_type": "223", "capacity": 5, "reliability": 1, "reload_time": 150, diff --git a/data/json/items/magazine/460.json b/data/json/items/magazine/460.json index 7018476753a24..d9022c72462a0 100644 --- a/data/json/items/magazine/460.json +++ b/data/json/items/magazine/460.json @@ -10,7 +10,7 @@ "material": "plastic", "symbol": "#", "color": "light_gray", - "ammo_type": [ "460", "45" ], + "ammo_type": "460", "capacity": 6, "flags": [ "SPEEDLOADER" ] }, @@ -25,7 +25,7 @@ "material": "plastic", "symbol": "#", "color": "light_gray", - "ammo_type": [ "460", "45" ], + "ammo_type": "460", "capacity": 12, "reliability": 10, "reload_time": 140, diff --git a/data/json/items/magazine/shot.json b/data/json/items/magazine/shot.json index fd02f3ef32857..fb717b5631080 100644 --- a/data/json/items/magazine/shot.json +++ b/data/json/items/magazine/shot.json @@ -48,35 +48,5 @@ "reliability": 5, "armor_data": { "covers": [ "TORSO" ], "coverage": 5, "material_thickness": 1, "encumbrance": 2 }, "flags": [ "MAG_EJECT", "BELTED", "OVERSIZE" ] - }, - { - "id": "shot_speedloader6", - "type": "MAGAZINE", - "name": "shotgun 6-round speedloader", - "description": "A steel tube with attached handle that when inserted into a 6 round shotgun can be used to quickly load the full tube in a much shorter period of time than by hand.", - "weight": 480, - "volume": "1750 ml", - "price": 3200, - "material": "steel", - "symbol": "/", - "color": "light_gray", - "ammo_type": "shot", - "capacity": 6, - "flags": [ "SPEEDLOADER" ] - }, - { - "id": "shot_speedloader8", - "type": "MAGAZINE", - "name": "shotgun 8-round speedloader", - "description": "A steel tube with attached handle that when inserted into an 8 round shotgun can be used to quickly load the full tube in a much shorter period of time than by hand.", - "weight": 510, - "volume": "2 L", - "price": 3250, - "material": "steel", - "symbol": "/", - "color": "light_gray", - "ammo_type": "shot", - "capacity": 8, - "flags": [ "SPEEDLOADER" ] } ] diff --git a/data/json/items/magazine/weldgas.json b/data/json/items/magazine/weldgas.json index 1dc6796d17602..357bdd3777502 100644 --- a/data/json/items/magazine/weldgas.json +++ b/data/json/items/magazine/weldgas.json @@ -32,22 +32,5 @@ "count": 240, "reliability": 10, "flags": [ "NO_UNLOAD", "NO_RELOAD" ] - }, - { - "id": "oxygen_cylinder", - "type": "MAGAZINE", - "name": "oxygen cylinder", - "description": "A large steel cylinder used for storing pressurized gas. It is marked with a faded, but legible O2 symbol.", - "weight": 12888, - "volume": "2500 ml", - "price": 13400, - "material": "steel", - "symbol": ";", - "color": "blue", - "ammo_type": "oxygen", - "capacity": 300, - "count": 300, - "reliability": 10, - "flags": [ "NO_UNLOAD", "NO_RELOAD" ] } ] diff --git a/data/json/items/melee.json b/data/json/items/melee.json index 4e15d91935c38..1e151aee87c37 100644 --- a/data/json/items/melee.json +++ b/data/json/items/melee.json @@ -60,9 +60,9 @@ "material": [ "steel", "wood" ], "techniques": [ "WBLOCK_1" ], "weight": 907, - "volume": "1 L", - "bashing": 13, - "cutting": 7, + "volume": 4, + "bashing": 12, + "cutting": 6, "flags": [ "DURABLE_MELEE", "BELT_CLIP", "NONCONDUCTIVE" ], "to_hit": 1, "category": "weapons", diff --git a/data/json/items/melee/bludgeons.json b/data/json/items/melee/bludgeons.json index 8c730c0b6a83a..257c78c9a55d8 100644 --- a/data/json/items/melee/bludgeons.json +++ b/data/json/items/melee/bludgeons.json @@ -132,7 +132,7 @@ "price": 4000, "material": "wood", "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], - "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR" ], "weight": 1400, "volume": 12, "bashing": 19, @@ -150,7 +150,7 @@ "price": 6000, "material": [ "wood", "iron" ], "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], - "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "weight": 2200, "volume": 12, "bashing": 25, @@ -178,7 +178,7 @@ "qualities": [ [ "HAMMER", 1 ] ], "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], "use_action": "TAZER", - "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "magazines": [ [ "battery", @@ -350,7 +350,7 @@ "symbol": "\\", "color": "dark_gray", "techniques": [ "WBLOCK_1", "BRUTAL" ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE" ] }, { "id": "2h_flail_wood", @@ -366,7 +366,7 @@ "symbol": "\\", "color": "brown", "techniques": [ "WBLOCK_1" ], - "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ] + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE" ] }, { "//": "Id retained to avoid breaking anything, same reason as with the makeshift glaive.", @@ -662,7 +662,7 @@ "description": "This is a versatile polearm with an spiked hammer head, a spike, and a hook attached to a long stick.", "price": 50000, "material": [ "wood", "steel" ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "SPEAR" ], "techniques": [ "WBLOCK_1", "WIDE", "SWEEP" ], "weight": 3200, "volume": 15, @@ -681,7 +681,7 @@ "price": 4000, "price_postapoc": 0, "material": [ "wood", "aluminum" ], - "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "SPEAR" ], "techniques": [ "WBLOCK_1", "SWEEP" ], "weight": 2700, "volume": 15, @@ -689,55 +689,5 @@ "cutting": 3, "to_hit": 2, "qualities": [ [ "COOK", 1 ] ] - }, - { - "id": "shillelagh", - "type": "GENERIC", - "symbol": "/", - "color": "brown", - "name": "shillelagh", - "description": "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.", - "price": 25000, - "material": "wood", - "techniques": [ "WBLOCK_1", "SWEEP" ], - "flags": [ "DURABLE_MELEE" ], - "weight": 910, - "volume": "1500 ml", - "bashing": 22, - "to_hit": 2, - "category": "weapons" - }, - { - "id": "shillelagh_weighted", - "type": "GENERIC", - "symbol": "/", - "color": "brown", - "name": "loaded stick", - "description": "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.", - "price": 30000, - "material": [ "lead", "wood" ], - "techniques": [ "WBLOCK_1", "SWEEP" ], - "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE" ], - "weight": 1135, - "volume": "1500 ml", - "bashing": 27, - "to_hit": 2, - "category": "weapons" - }, - { - "id": "shillelagh_fake", - "type": "GENERIC", - "symbol": "/", - "color": "brown", - "name": "shillelagh", - "description": "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.", - "price": 2500, - "material": "wood", - "techniques": [ "WBLOCK_1", "SWEEP" ], - "weight": 850, - "volume": "1500 ml", - "bashing": 10, - "to_hit": 2, - "category": "weapons" } ] diff --git a/data/json/items/melee/spears_and_polearms.json b/data/json/items/melee/spears_and_polearms.json index 4e5b23a139afe..3e473fa07ee8d 100644 --- a/data/json/items/melee/spears_and_polearms.json +++ b/data/json/items/melee/spears_and_polearms.json @@ -50,7 +50,7 @@ "color": "light_gray", "techniques": [ "WIDE", "BRUTAL" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -22 ] ], - "flags": [ "FRAGILE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "REACH_ATTACK", "ALWAYS_TWOHAND" ] + "flags": [ "FRAGILE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "REACH_ATTACK" ] }, { "id": "spear_spike", @@ -247,7 +247,7 @@ "description": "This is a versatile polearm with an axe blade, a spike, and other fun things attached to a long stick.", "price": 50000, "material": [ "wood", "steel" ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "techniques": [ "WBLOCK_1", "WIDE", "SWEEP" ], "weight": 3175, "volume": 15, @@ -265,7 +265,7 @@ "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.", "price": 5000, "material": [ "wood", "aluminum" ], - "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "techniques": [ "WBLOCK_1", "SWEEP" ], "weight": 1644, "volume": 15, @@ -284,7 +284,7 @@ "price": 50000, "material": [ "steel", "wood" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -28 ] ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "techniques": [ "WIDE", "WBLOCK_1" ], "weight": 2100, "volume": 10, @@ -308,7 +308,7 @@ "bashing": 6, "cutting": 37, "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -24 ] ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "price": 80000 }, { @@ -327,7 +327,7 @@ "cutting": 21, "to_hit": 2, "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -24 ] ], - "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "price": 8000 }, { @@ -345,7 +345,7 @@ "bashing": 13, "cutting": 1, "to_hit": -1, - "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "price": 8000 }, { @@ -423,7 +423,7 @@ "color": "brown", "techniques": [ "IMPALE", "WBLOCK_2" ], "qualities": [ [ "COOK", 1 ] ], - "flags": [ "DURABLE_MELEE", "SPEAR", "REACH_ATTACK", "REACH3", "NONCONDUCTIVE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "SPEAR", "REACH_ATTACK", "REACH3", "NONCONDUCTIVE", "SHEATH_SPEAR" ] }, { "id": "pike_fake", @@ -443,7 +443,7 @@ "looks_like": "pike", "techniques": [ "IMPALE", "WBLOCK_2" ], "qualities": [ [ "COOK", 1 ] ], - "flags": [ "SPEAR", "REACH_ATTACK", "REACH3", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ] + "flags": [ "SPEAR", "REACH_ATTACK", "REACH3", "NONCONDUCTIVE" ] }, { "id": "pike_inferior", @@ -463,7 +463,7 @@ "looks_like": "pike", "techniques": [ "IMPALE", "WBLOCK_2" ], "qualities": [ [ "COOK", 1 ] ], - "flags": [ "SPEAR", "REACH_ATTACK", "REACH3", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ] + "flags": [ "SPEAR", "REACH_ATTACK", "REACH3", "NONCONDUCTIVE" ] }, { "type": "GENERIC", @@ -481,7 +481,7 @@ "color": "light_gray", "techniques": [ "WIDE", "BRUTAL" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -22 ] ], - "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "REACH_ATTACK", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR", "REACH_ATTACK" ] }, { "id": "spear_dory", @@ -519,7 +519,7 @@ "symbol": "/", "color": "yellow", "techniques": [ "WBLOCK_1", "DEF_DISARM" ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "REACH_ATTACK" ] }, { "id": "spear_stone", diff --git a/data/json/items/melee/swords_and_blades.json b/data/json/items/melee/swords_and_blades.json index 9113a2cbe6b58..67813d9f1d3a2 100644 --- a/data/json/items/melee/swords_and_blades.json +++ b/data/json/items/melee/swords_and_blades.json @@ -855,7 +855,7 @@ "lacks_fuel_message": "Dein Flammenschwert hat keinen Brennstoff mehr." }, "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 1 ] ], - "flags": [ "DURABLE_MELEE", "SHEATH_SWORD", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ] }, { "id": "zweifire_on", @@ -889,7 +889,7 @@ }, { "type": "firestarter", "moves": 30 } ], - "flags": [ "FIRE", "LIGHT_240", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH", "ALWAYS_TWOHAND" ] + "flags": [ "FIRE", "LIGHT_240", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH" ] }, { "id": "zweihander", @@ -908,14 +908,14 @@ "color": "light_gray", "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 4 ] ], - "flags": [ "DURABLE_MELEE", "SHEATH_SWORD", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ] }, { "id": "kirpan", "type": "TOOL", "name": "kirpan", "description": "A ceremonial dagger carried by Sikh men. This one is sharp and could be an effective weapon.", - "looks_like": "kukri", + "looks-like": "kukri", "weight": 374, "volume": 2, "price": 1800, @@ -934,7 +934,7 @@ "type": "TOOL", "name": "kirpan", "description": "A ceremonial dagger carried by Sikh men. This one is not particularly well made.", - "looks_like": "kirpan", + "looks-like": "kirpan", "weight": 374, "volume": 2, "price": 900, @@ -1005,7 +1005,7 @@ "color": "light_gray", "techniques": [ "WBLOCK_1", "RAPID", "WIDE", "BRUTAL" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 10 ] ], - "flags": [ "DURABLE_MELEE", "SHEATH_SWORD", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ] }, { "id": "nodachi_fake", @@ -1018,7 +1018,7 @@ "price": 15000, "price_postapoc": 0, "material": "aluminum", - "flags": [ "SHEATH_SWORD", "ALWAYS_TWOHAND" ], + "flags": "SHEATH_SWORD", "techniques": [ "WBLOCK_1", "RAPID", "WIDE" ], "weight": 1882, "volume": 13, @@ -1038,7 +1038,7 @@ "price": 15000, "price_postapoc": 0, "material": "budget_steel", - "flags": [ "SHEATH_SWORD", "ALWAYS_TWOHAND" ], + "flags": "SHEATH_SWORD", "techniques": [ "WBLOCK_1", "RAPID", "WIDE" ], "weight": 1882, "volume": 13, @@ -1380,7 +1380,7 @@ "price": 8000, "price_postapoc": 1000, "material": "aluminum", - "flags": [ "SHEATH_SWORD", "ALWAYS_TWOHAND" ], + "flags": "SHEATH_SWORD", "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], "weight": 3176, "volume": 13, @@ -1398,7 +1398,7 @@ "description": "This is a huge two-handed sword from Germany. You're not quite sure it's supposed to be that bendy.", "price": 160000, "material": "budget_steel", - "flags": [ "SHEATH_SWORD", "ALWAYS_TWOHAND" ], + "flags": [ "SHEATH_SWORD" ], "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], "weight": 3176, "volume": 13, @@ -1567,7 +1567,7 @@ "revert_to": "chainsaw_off", "techniques": [ "WBLOCK_1", "SPIN", "SWEEP" ], "use_action": "CS_LAJATANG_OFF", - "flags": [ "NONCONDUCTIVE", "ALWAYS_TWOHAND" ] + "flags": [ "NONCONDUCTIVE" ] }, { "id": "cs_lajatang_on", @@ -1581,7 +1581,7 @@ "revert_to": "cs_lajatang_off", "use_action": "CS_LAJATANG_ON", "qualities": [ [ "AXE", 3 ], [ "BUTCHER", -250 ] ], - "flags": [ "MESSY", "HURT_WHEN_PULLED", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ] + "flags": [ "MESSY", "HURT_WHEN_PULLED", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE" ] }, { "id": "ecs_lajatang_off", @@ -1602,7 +1602,7 @@ "revert_to": "elec_chainsaw_off", "techniques": [ "WBLOCK_1", "SPIN", "SWEEP" ], "use_action": "ECS_LAJATANG_OFF", - "flags": [ "NONCONDUCTIVE", "ALWAYS_TWOHAND" ], + "flags": [ "NONCONDUCTIVE" ], "magazines": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] ], @@ -1619,7 +1619,7 @@ "cutting": 140, "revert_to": "ecs_lajatang_off", "use_action": "ECS_LAJATANG_ON", - "flags": [ "MESSY", "HURT_WHEN_PULLED", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ], + "flags": [ "MESSY", "HURT_WHEN_PULLED", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE" ], "magazine_well": 4 }, { @@ -1652,7 +1652,7 @@ "price": 12000, "material": [ "wood", "iron" ], "techniques": [ "WBLOCK_1", "SPIN" ], - "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "ALWAYS_TWOHAND" ], + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE" ], "weight": 2500, "volume": 26, "bashing": 4, @@ -1678,8 +1678,7 @@ "ammo": "gasoline", "max_charges": 1000, "use_action": "COMBATSAW_OFF", - "techniques": [ "WBLOCK_1", "SWEEP" ], - "flags": [ "ALWAYS_TWOHAND" ] + "techniques": [ "WBLOCK_1", "SWEEP" ] }, { "id": "combatsaw_on", @@ -1694,7 +1693,7 @@ "revert_to": "combatsaw_off", "qualities": [ [ "AXE", 3 ], [ "BUTCHER", -120 ] ], "use_action": "COMBATSAW_ON", - "flags": [ "MESSY", "DURABLE_MELEE", "TRADER_AVOID", "POWERED", "ALWAYS_TWOHAND" ] + "flags": [ "MESSY", "DURABLE_MELEE", "TRADER_AVOID", "POWERED" ] }, { "id": "e_combatsaw_off", @@ -1714,7 +1713,6 @@ "ammo": "battery", "use_action": "E_COMBATSAW_OFF", "techniques": [ "WBLOCK_1", "SWEEP" ], - "flags": [ "ALWAYS_TWOHAND" ], "magazines": [ [ "battery", @@ -1736,7 +1734,7 @@ "revert_to": "e_combatsaw_off", "qualities": [ [ "AXE", 3 ] ], "use_action": "E_COMBATSAW_ON", - "flags": [ "MESSY", "DURABLE_MELEE", "TRADER_AVOID", "POWERED", "ALWAYS_TWOHAND" ], + "flags": [ "MESSY", "DURABLE_MELEE", "TRADER_AVOID", "POWERED" ], "magazine_well": 2 } ] diff --git a/data/json/items/migration.json b/data/json/items/migration.json index 4c346b5f05031..734c1637087e3 100644 --- a/data/json/items/migration.json +++ b/data/json/items/migration.json @@ -198,18 +198,6 @@ "type": "MIGRATION", "replace": "jackhammer" }, - { - "id": "dogfood_canned", - "type": "MIGRATION", - "replace": "can_food", - "contents": [ "dogfood" ] - }, - { - "id": "catfood_canned", - "type": "MIGRATION", - "replace": "can_food", - "contents": [ "catfood" ] - }, { "id": "jar_V8", "type": "MIGRATION", @@ -599,31 +587,6 @@ "type": "MIGRATION", "replace": "10mm_fmj" }, - { - "id": "locket", - "type": "MIGRATION", - "replace": "silver_locket" - }, - { - "id": "ring", - "type": "MIGRATION", - "replace": "gold_ring" - }, - { - "id": "necklace", - "type": "MIGRATION", - "replace": "silver_necklace" - }, - { - "id": "brooch", - "type": "MIGRATION", - "replace": "jade_brooch" - }, - { - "id": "skinny_tie", - "type": "MIGRATION", - "replace": "tie_skinny" - }, { "id": "270", "type": "MIGRATION", diff --git a/data/json/items/obsolete.json b/data/json/items/obsolete.json index 9e282512cc547..c4fab06d9f90e 100644 --- a/data/json/items/obsolete.json +++ b/data/json/items/obsolete.json @@ -339,23 +339,6 @@ "min_skills": [ [ "weapon", 4 ], [ "mechanics", 3 ], [ "gun", 2 ] ], "flags": [ "NEVER_JAMS", "INSTALL_DIFFICULT", "IRREMOVABLE" ] }, - { - "id": "flamethrower_crude", - "copy-from": "flamethrower_base", - "type": "GUN", - "name": "spraycan flamethrower", - "description": "A favorite of hooligans around the world, this lighter duct-taped to a spray can is probably as dangerous to the user as anyone else. The nozzle has been crudely modified to disperse gasoline, and a small pump attached to the side allows for repressurization, though this process takes a few minutes.", - "weight": 451, - "volume": "500 ml", - "price": 16000, - "material": "steel", - "range": -2, - "dispersion": 300, - "durability": 8, - "clip_size": 100, - "valid_mod_locations": [ [ "sling", 1 ], [ "stock", 1 ], [ "rail mount", 1 ] ], - "relative": { "reload": 4 } - }, { "id": "bio_furnace", "copy-from": "bionic_general", diff --git a/data/json/items/ranged.json b/data/json/items/ranged.json index 5d486e757107b..e1da22789e842 100644 --- a/data/json/items/ranged.json +++ b/data/json/items/ranged.json @@ -22,7 +22,7 @@ "dispersion": 150, "durability": 7, "clip_size": 150, - "reload": 500, + "reload": 50, "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], @@ -317,7 +317,7 @@ "durability": 7, "burst": 5, "clip_size": 15, - "reload": 6000, + "reload": 1000, "loudness": 18, "valid_mod_locations": [ [ "accessories", 4 ], @@ -352,7 +352,7 @@ "dispersion": 30, "durability": 7, "clip_size": 8, - "reload": 6000, + "reload": 1000, "loudness": 22, "valid_mod_locations": [ [ "accessories", 4 ], @@ -389,7 +389,7 @@ "durability": 7, "modes": [ [ "DEFAULT", "single", 1 ], [ "DOUBLE", "double", 2 ] ], "clip_size": 2, - "reload": 6000, + "reload": 1000, "loudness": 22, "valid_mod_locations": [ [ "accessories", 4 ], @@ -611,7 +611,7 @@ "dispersion": 105, "durability": 8, "clip_size": 4, - "reload": 6000, + "reload": 1000, "loudness": 11, "valid_mod_locations": [ [ "accessories", 4 ], diff --git a/data/json/items/resources/alien.json b/data/json/items/resources/alien.json index 73ab050d21d97..2055f29042233 100644 --- a/data/json/items/resources/alien.json +++ b/data/json/items/resources/alien.json @@ -23,8 +23,6 @@ "volume": "22000 ml", "price": 10000, "material": "alien_resin", - "count": 4, - "stack_size": 4, "symbol": "0", "color": "light_blue", "flags": [ "NO_SALVAGE" ] diff --git a/data/json/items/resources/metal.json b/data/json/items/resources/metal.json index 26a8950385814..139f53defdee4 100644 --- a/data/json/items/resources/metal.json +++ b/data/json/items/resources/metal.json @@ -166,8 +166,8 @@ "name": "magnesium powder", "name_plural": "magnesium powder", "description": "A gray powder composed of the highly flammable alkaline earth metal magnesium. Useful for constructing flares and similar items.", - "weight": 1.1, - "//": "Weight should be 1.1g because: density 1.74g/cm³ ~ 0.44kg/250ml and density of aluminium 2.70g/cm³ = 675g/250ml => magnesium is 64% the weight of aluminium and at 250ml aluminium powder has a weight of ~0.176kg at 250ml, assuming same particle size => magnesium powder has a weight of ~0.112kg at 250ml => 1.1g per magnesium powder unit", + "weight": 4, + "//": "Density 1.74g/cm³ ~ 0.44kg/250ml @ stack 100 = 4g/unit", "volume": 1, "price": 5000, "count": 100, diff --git a/data/json/items/resources/misc.json b/data/json/items/resources/misc.json index f0a76f7c19c1f..6d8a7156dec0c 100644 --- a/data/json/items/resources/misc.json +++ b/data/json/items/resources/misc.json @@ -6,14 +6,14 @@ "name": "incendiary", "name_plural": "incendiaries", "description": "Material from an incendiary round, useful in constructing incendiary ammunition.", - "weight": 2, - "volume": "500 ml", + "weight": 5, + "volume": 1, "price": 10000, "container": "bag_plastic", "material": [ "powder" ], "symbol": "=", "color": "dark_gray", - "count": 200, + "count": 100, "ammo_type": "components", "effects": [ "COOKOFF" ] }, diff --git a/data/json/items/tool/deployable.json b/data/json/items/tool/deployable.json index 55346dcf2c97a..68f7d85db3c97 100644 --- a/data/json/items/tool/deployable.json +++ b/data/json/items/tool/deployable.json @@ -69,7 +69,7 @@ "id": "metal_butcher_rack", "type": "TOOL", "name": "metal butchering rack", - "description": "Metal butchering rack designed to hang a carcass in the air. It is folded for easy transportation.", + "description": "Metal butchering rack designed to hang a carcass in the air. It is folded for easy transportation and can be deployed as a furniture.", "weight": 5000, "volume": 40, "price": 5000, @@ -105,7 +105,7 @@ "id": "metal_smoking_rack", "type": "TOOL", "name": "metal smoking rack", - "description": "A metal rack designed to smoke food for better preservation and taste. It is folded for easy transportation.", + "description": "A metal rack designed to smoke food for better preservation and taste. It is folded for easy transportation and can be deployed as a furniture.", "weight": 5000, "volume": 100, "price": 5000, @@ -120,7 +120,7 @@ "id": "tourist_table", "type": "TOOL", "name": "tourist table", - "description": "Metal tourist table for off-road trips. It is folded for easy transportation.", + "description": "Metal tourist table for off-road trips. It is folded for easy transportation and can be deployed as a furniture.", "weight": 6000, "volume": 100, "price": 5000, diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index db0e22d6b93ea..655173bf6f03e 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -1080,7 +1080,7 @@ "name_plural": "pairs of infrared goggles (on)", "description": "A pair of battery-powered goggles that grant infrared vision, allowing you to see warm-blooded creatures in the dark. Use it to turn them off.", "flags": [ "IR_EFFECT", "FRAGILE", "TRADER_AVOID" ], - "power_draw": 1000, + "turns_per_charge": 14, "revert_to": "goggles_ir", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "goggles_ir" }, "covers": [ "EYES" ], diff --git a/data/json/items/tools.json b/data/json/items/tools.json index 5aa7bea7580be..dc0b38e436d3c 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -100,8 +100,7 @@ "weight": 113, "volume": 2, "bashing": 4, - "to_hit": -1, - "qualities": [ [ "PRESSURIZATION", 1 ] ] + "to_hit": -1 }, { "id": "UPS_off", @@ -353,7 +352,7 @@ "menu_text": "Close cover", "type": "transform" }, - "flags": [ "LIGHT_10", "LEAK_DAM", "RADIOACTIVE", "DURABLE_MELEE", "ALLOWS_REMOTE_USE" ] + "flags": [ "LIGHT_5", "LEAK_DAM", "RADIOACTIVE", "DURABLE_MELEE", "ALLOWS_REMOTE_USE" ] }, { "id": "atomic_light_off", @@ -1075,7 +1074,7 @@ "to_hit": -5, "bashing": 4, "cutting": 70, - "power_draw": 150000, + "turns_per_charge": 1, "revert_to": "chainsaw_off", "techniques": "SWEEP", "qualities": [ [ "AXE", 4 ], [ "BUTCHER", -100 ] ], @@ -1507,27 +1506,6 @@ "color": "cyan", "qualities": [ [ "SMOKE_PIPE", 1 ] ] }, - { - "type": "TOOL", - "id": "crash_axe", - "symbol": ";", - "color": "light_gray", - "name": "crash axe", - "looks_like": "hatchet", - "//": "Same stats as a hatchet, except it has prying instead of hammering.", - "description": "A short lightweight emergency tool with a quarter circular blade, a short 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.", - "price": 2500, - "price_postapoc": 5000, - "material": [ "steel" ], - "techniques": [ "WBLOCK_1" ], - "weight": 907, - "volume": "1 L", - "bashing": 13, - "cutting": 7, - "flags": [ "DURABLE_MELEE", "BELT_CLIP", "NONCONDUCTIVE" ], - "to_hit": 1, - "qualities": [ [ "AXE", 2 ], [ "CUT", 1 ], [ "PRY", 2 ], [ "BUTCHER", 16 ] ] - }, { "id": "crossbow_trap", "type": "TOOL", @@ -2894,24 +2872,6 @@ "use_action": [ "HAMMER", "CROWBAR" ], "flags": [ "BELT_CLIP", "NONCONDUCTIVE" ] }, - { - "id": "claw_bar", - "type": "TOOL", - "name": "claw bar", - "description": "This is a small prying tool with a clawed bend at one end for pulling spikes. 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": 340, - "volume": "375 ml", - "price": 1000, - "to_hit": 1, - "bashing": 10, - "cutting": 1, - "material": "steel", - "symbol": ";", - "color": "dark_gray", - "qualities": [ [ "PRY", 2 ], [ "HAMMER", 1 ] ], - "use_action": [ "CROWBAR", "HAMMER" ], - "flags": [ "BELT_CLIP" ] - }, { "id": "hand_drill", "type": "TOOL", @@ -3410,27 +3370,6 @@ "done_message": "You place the leather funnel, waiting to collect rain." } }, - { - "id": "birchbark_funnel", - "type": "TOOL", - "name": "birchbark funnel", - "description": "This is a small birchbark funnel. Place it above an outdoor container to collect rainwater.", - "weight": 3, - "volume": "250ml", - "price": 0, - "to_hit": 1, - "material": "wood", - "symbol": ";", - "color": "white", - "use_action": { - "type": "place_trap", - "allow_under_player": true, - "trap": "tr_birchbark_funnel", - "moves": 100, - "practice": 0, - "done_message": "You place the birchbark funnel, waiting to collect rain." - } - }, { "id": "lighter", "type": "TOOL", @@ -4369,20 +4308,6 @@ "use_action": "CAPTURE_MONSTER_ACT", "flags": [ "TRADER_AVOID" ] }, - { - "id": "pet_carrier_wooden", - "copy-from": "pet_carrier", - "type": "TOOL", - "name": "wooden pet carrier", - "description": "A wooden container meant to hold pets for transport. Use it on a suitable animal to capture, use it on an empty tile to release.", - "weight": 1500, - "volume": "6250 ml", - "price": 800, - "material": [ "wood" ], - "symbol": "#", - "color": "brown", - "looks_like": "pet_carrier" - }, { "id": "chicken_cage", "type": "TOOL", @@ -5093,7 +5018,7 @@ "name": "wood saw", "description": "This is a thin saw, useful for cutting through wood objects.", "weight": 283, - "volume": "1 L", + "volume": 5, "price": 3000, "to_hit": -2, "cutting": 1, @@ -5610,7 +5535,7 @@ "id": "autoclave", "type": "TOOL", "name": "autoclave", - "description": "This is an autoclave. It's useful for sterilizing things like CBMs. It requires a massive amount of power, so standard batteries will not power it sufficiently.", + "description": "This is an autoclave. It's useful for sterilizing things like CBMs. This machine draws a lot of power, standard battery might not be enough.", "weight": 34500, "volume": "76 L", "price": 162654, @@ -5621,9 +5546,8 @@ "symbol": "A", "color": "yellow", "use_action": "AUTOCLAVE", - "flags": [ "ALLOWS_REMOTE_USE" ], "power_draw": 1500000, - "revert_to": "autoclave", + "charges_per_use": 1, "looks_like": "microwave", "ammo": "battery", "magazines": [ @@ -6148,8 +6072,8 @@ "category": "weapons", "name": "black gunpowder bomb", "description": "This is a tin can filled to the brim with black gunpowder and with a bit of fuse sticking out of it.", - "//": "40g of tin can and 250ml/412g of gunpowder", - "weight": 452, + "//": "400g of tin can and 250ml/412g of gunpowder", + "weight": 812, "volume": 1, "price": 2500, "to_hit": -2, @@ -6157,11 +6081,11 @@ "symbol": "*", "color": "red", "explode_in_fire": true, - "explosion": { "power": 88, "shrapnel": { "casing_mass": 3, "fragment_mass": 0.12 } }, + "explosion": { "power": 100, "shrapnel": 400 }, "use_action": { "target": "tool_black_powder_bomb_act", "msg": "You light the fuse on the black gunpowder bomb. Throw it before it blows in your face!", - "target_charges": 3, + "target_charges": 2, "active": true, "need_fire": 1, "menu_text": "Light fuse", @@ -6175,24 +6099,24 @@ "category": "weapons", "name": "active black gunpowder bomb", "description": "This is a tin can filled to the brim with black gunpowder and with a lit fuse stuck inside of it.", - "weight": 452, + "weight": 500, "volume": 2, "price": 0, "to_hit": -2, "material": [ "steel", "plastic" ], "symbol": "*", "color": "light_red", - "initial_charges": 3, - "max_charges": 3, + "initial_charges": 2, + "max_charges": 2, "turns_per_charge": 1, "explode_in_fire": true, - "explosion": { "power": 88, "shrapnel": { "casing_mass": 3, "fragment_mass": 0.12 } }, + "explosion": { "power": 100, "shrapnel": 400 }, "use_action": { "type": "explosion", "sound_volume": 0, "sound_msg": "Kshhh.", "no_deactivate_msg": "You've already lit the fuse - throw it!", - "explosion": { "power": 88, "shrapnel": { "casing_mass": 3, "fragment_mass": 0.12 } } + "explosion": { "power": 100, "shrapnel": 400 } }, "flags": [ "BOMB", "TRADER_AVOID" ] }, @@ -7363,7 +7287,7 @@ "symbol": "#", "color": "brown", "looks_like": "frame_wood_light", - "flags": [ "NONCONDUCTIVE", "ALLOWS_REMOTE_USE" ], + "flags": [ "NONCONDUCTIVE" ], "use_action": { "target": "adobe_pallet_done", "msg": "You test the bricks, and they're solid enough to use.", @@ -7539,19 +7463,5 @@ "bashing": 6, "material": "steel", "use_action": { "type": "weigh_self", "max_weight": 150000 } - }, - { - "id": "acetylene_machine", - "type": "TOOL", - "name": "acetylene-gas machine", - "symbol": "&", - "color": "light_gray", - "description": "This bulky device takes water and calcium carbide and yields unpressurised acetylene.", - "weight": 8000, - "volume": "3 L", - "price": "3200", - "to_hit": -4, - "bashing": 12, - "material": "steel" } ] diff --git a/data/json/items/vehicle/utilities.json b/data/json/items/vehicle/utilities.json index 3a40faf4ca632..acf74f1ece94d 100644 --- a/data/json/items/vehicle/utilities.json +++ b/data/json/items/vehicle/utilities.json @@ -14,18 +14,6 @@ "category": "veh_parts", "price": 60000 }, - { - "type": "GENERIC", - "id": "vh_autoclave", - "name": "mountable autoclave", - "description": "This autoclave has been rigged to run off a vehicle power grid.", - "price": 162654, - "symbol": "A", - "color": "yellow", - "weight": 34500, - "volume": "76 L", - "copy-from": "washing_machine" - }, { "type": "GENERIC", "copy-from": "washing_machine", @@ -42,13 +30,5 @@ "price": 70000, "insulation": 4, "copy-from": "minifridge" - }, - { - "type": "GENERIC", - "id": "dishwasher", - "name": "dishwasher", - "description": "A very small dishwasher designed for use in vehicles.", - "looks_like": "washing_machine", - "copy-from": "washing_machine" } ] diff --git a/data/json/items/vehicle_parts.json b/data/json/items/vehicle_parts.json index ec63faa2ebe56..d2495747ec7c0 100644 --- a/data/json/items/vehicle_parts.json +++ b/data/json/items/vehicle_parts.json @@ -63,21 +63,6 @@ "category": "veh_parts", "price": 3000 }, - { - "type": "GENERIC", - "id": "towel_hanger", - "name": "towel hanger", - "description": "A towel hanger with towels.", - "weight": 2000, - "to_hit": -1, - "color": "brown", - "symbol": "-", - "material": [ "wood" ], - "volume": "2500 ml", - "bashing": 4, - "category": "veh_parts", - "price": 3000 - }, { "type": "GENERIC", "id": "veh_tracker", diff --git a/data/json/mapgen/abandoned01.json b/data/json/mapgen/abandoned01.json index eab9ad3554ec2..d0c4e72d3161a 100644 --- a/data/json/mapgen/abandoned01.json +++ b/data/json/mapgen/abandoned01.json @@ -76,7 +76,7 @@ [ "hatchet", 5 ], [ "hat_ball", 5 ], [ "knife_combat", 5 ], - [ "silver_locket", 5 ], + [ "locket", 5 ], [ "mask_gas", 10 ], [ "molotov", 5 ], [ "matches", 25 ], @@ -406,7 +406,7 @@ "H": "f_armchair" }, "place_items": [ { "item": "trash_forest", "x": [ 2, 21 ], "y": [ 5, 19 ], "chance": 80, "repeat": [ 0, 2 ] } ], - "place_item": [ { "item": "teddy", "x": 14, "y": 2 }, { "item": "silver_locket", "x": 14, "y": 2 } ], + "place_item": [ { "item": "teddy", "x": 14, "y": 2 }, { "item": "locket", "x": 14, "y": 2 } ], "place_vehicles": [ { "vehicle": "car", "x": 5, "y": 7, "chance": 80, "fuel": 0, "status": 1, "rotation": 0 } ] } }, diff --git a/data/json/mapgen/airliner.json b/data/json/mapgen/airliner.json deleted file mode 100644 index 222abe51a5bf1..0000000000000 --- a/data/json/mapgen/airliner.json +++ /dev/null @@ -1,470 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "airliner_1a", "airliner_2a", "airliner_3a" ], - [ "airliner_1b", "airliner_2b", "airliner_3b" ], - [ "airliner_1c", "airliner_2c", "airliner_3c" ], - [ "airliner_1d", "airliner_2d", "airliner_3d" ], - [ "airliner_1e", "airliner_2e", "airliner_3e" ], - [ "airliner_1f", "airliner_2f", "airliner_3f" ], - [ "airliner_1g", "airliner_2g", "airliner_3g" ], - [ "airliner_1h", "airliner_2h", "airliner_3h" ], - [ "airliner_1i", "airliner_2i", "airliner_3i" ], - [ "airliner_1j", "airliner_2j", "airliner_3j" ] - ], - "weight": 250, - "object": { - "fill_ter": "t_dirt", - "rows": [ - " dd d ", - " ddddd* ", - " dddm**ddd ", - " ddd*m*mmddd ", - " d*d*mmmmmmddd ", - " ddmmgggggm*ddd * ", - " dddmggxxxggmddd ", - " ddmgxa.axgmddd ", - " ddmMlz.ZlMmddd ", - " * ddMMMM+MMMMddd ", - " ddD.......Ddd ", - " d*MMMM.MMMMdd * ", - " dddM.......Mdd ", - " dddsaaa.aaasd* ", - " dddM.......Md ", - " dddsaaa.aaasdd ", - " ddd d*M.......Mdd d * ", - " ddMdd *d**..a.aa*s*d ", - " ddMMd dd****d*d*****d ", - " ddMd dd**.......M*d dddd ", - " dd *d***.aa.aaasdd* dmmmd ", - " d d*MMMM.MMMMddd dmd ", - " *ddmM..+.aaaMm*dd ddd ", - " ddmmsTSM.aaasmm*d d ", - " dddddmmmMMMM.aaaMmmmd * ", - " dddmmmmsaaa.aaasmmmmd ", - " * dddmmmmmMaaa.aaaMmmmm*d * ", - " dddmmmmmmsaaa.aaasmmmmddd ", - " d ddmmmmmmmMaaa.aaaMmmmmm*dd ", - " ddmmmmmmmmsaaa.aaasmmmmmdd ", - " ddddmmmmmmmmmD.......Dmmmmmd*d * ", - " ddddmmmmmmmmmmMaaa.aaaMmmmm*dd ", - " ddmmmmmmmmmmmD.......Dmmmmmdd * ", - " d ddmmmmmmmmmmmmsaaa.aaasmmmmd* ** ", - " ddmmmmmmmmmmmmmMaaa.aaaMmmmm* ", - " ddmmmmmmmmmmmmmmsaaa.aaasmmmd d ", - " dddmmmmmmmmmmmmmmmMaaa.aaaMmmd* d ", - " * ddmmmmmmmmmmmmmmddsaaa.aaasdddd* ", - " ddmmmmmmmmmmmmmddddMaaa.aaaMddddd ", - " dddmmmmmmmmmmmmddd*ddsaaa.aaasdddd * d ", - " ddmmmmmmmmmmmdd*dd ddMaaa.aaa.*dd d ", - " dddmmmmmmmmmmdddd*d ddsaaa.aa.dd*dd ", - " dddmmmmmmmmmdd *dd dddMaaa.aa.*dddd d * ", - " *dddmmmmmmmmddd d*dd ddsaaa.a.d**dd ", - " ddmmmmmmmdddd d**d * ddMaaa.a.dddd * d ", - " dddmmmmmmdddd ddddd dddsaaa.a>>*d*d ", - " ddmmmmmdddd ddddd* ddMaaa.a>>**dd * ", - " ddmmmmdddd * d*dd *dMMMM.a.dd**d ** ", - " dddmmmmdddd dd *ddMTSM.aa.dddd* * ddddd * ", - " dddmmmmdddd d ddds..+.aa.*dd** dMMMdd ", - " ddmmmmdddd *ddMMMM.MMM.dd* d ddMMMMdd* ", - " dmmmdddd * dds..+.+...*d *ddMMMMddd ", - " dddd*dddd * d * d*MTSM.MSTM*d * *dMMMMd ", - " ddddd*dd dddMMMM.MMMMd* ddddddd ", - " dddddddd * * ddD.......D*d d * *dddddd * ", - "ddddd*dd d *ddMMMM+MMMMddd * ddddd ", - " *dddddd * d d ddddMaa.alMddd d *ddd * ", - " ddd*ddd * dddM....lMd*dd * ddd ", - " ddddddd * * ddMfccclMdd*d d dd ", - " dddddd* * d * dddMMMMMMM*ddd * d ", - " *dddddd * d*ddMMMMMddd* * ", - " dddd*dd d * d d dddMMMMMddd* d ", - " ddddddd * ddddMMMMMdd*dd* d ", - " ddddd* *dd*dMMMMMdddd*d * ", - " ddddd * d ddddddMMMdd*ddd ** * ", - " d dddd * d dd*ddMMMddd*ddd * * ", - " ddd * * ddddd*MMMdd*ddddd * * dd d ", - " d d *dd*ddMMMdddd*dd ddddddd ", - " d * * d dd*ddddMddd* dd * * ddddMMMdd* d ", - " dddddd*ddd*dddddd * dddMMMMMMdd ", - " d * ddd*dddddd*d*dddd* * *dddMMMMMMMMdd ", - " * d*dddddd*ddddd*dd dddMMMMMMMdd ", - " d dd*dddddd*dddd* d*dMMMMMdd d ", - " ddddddddddddddd d * ddddMMMdd ", - " * ddddddddddddddd d *dddddddd d ", - " d dddd*dddddddddd d dddd*ddd ", - " ddddddddddddddd * ddddddd * ", - " dd * * ddd*ddddd*ddd*d * dddddd ", - " dddd d dddddddddddddd * ddddd ", - " d**dd ddddddddddddd d dddd* ", - " dddd * *dddddd*ddddd * ddd ", - " ddd d ddddddddddd*dd dd ", - " dd * dd*ddddd*ddd d ", - " d d ddddddddddd* d * ", - " d*dddd*ddddd ", - " d dddddddddddddd ", - " * ddddddddd*dd d ", - " dddddddddd*d ", - " * ddddddddd*ddd * * ", - " d ddddddddddd d ", - " * ddddd*ddd*dd * * ", - " d dddddddddddd d ", - " * d dddddddddddd * ", - " d dddddddd*d d o ", - " * * *dddd*dddd * ", - " d ddddddddddddd ", - " ddd*ddddddd d * ", - " * ddddddddd*dd * * ", - " d ddddddddddd d ", - " * d ddddd*dddddd * ", - " d dddddddd*d d ", - " * * *ddddddddd * ", - " d ddddddddddddd ", - " ddddddddddd d * ", - " d*dddd*ddddd ", - " ddddd d dddddddddddddd ", - " dmmmmmmd * ddd*ddddd*dd d ", - " ddmmmmd dddddddddd*d ", - " dmmddd * ddddd*ddd*dd * * ", - " dmdd d*dddd*ddddd ", - " dddd d dddddddddddddd ", - " ddd * ddddddddd*dd d ", - " dd dddddddddd*d ", - " * ddddd*ddd*dd * * ", - " * d dd*ddddddddd * ", - " d dddddddd*d d ", - " * * *dddd*dddd * ", - " d ddddddddddddd ", - " ddddddddddd d * ", - " d d * ddddddd*ddd d ", - " d*dddd*ddddd ", - " d ddddddddddd*dd ", - " * ddd*dddddddd d ", - " * ddddddddd*ddd * * ", - " d ddddddddddd d ", - " * d ddddd*dddddd * ", - " d dddddddd*d d ", - " * * *dddd*dddd * ", - " d ddddddddddddd ", - " ddddddddddd d * ", - " d*ddddddd*dd ", - " d dddddddddddddd ", - " * ddddd*ddd*dd d ", - " dddddddddd*d ", - " * dddddddd*dddd * ", - " ddd*dddddd*dd * ", - " d dddddddddddd d ", - " * d ddddd*dddddd * ", - " d dddddddd*d d ", - " * * o *dddd*dddd * ", - " d ddddddddddddd ", - " ddddddddddd d * ", - " d*dddddd*ddd ", - " d dddddddddddddd ", - " * ddddddddd*dd d ", - " d*dddddddd*d ", - " * ddddd*dddddd * d ", - " dddddddddd*d ", - " d ddddddddd*dd * * ", - " d dddddddddddd d ", - " * d ddddd*dddddd * ", - " d dddddddd*d d ", - " * * *dddd*dddd * ", - " d ddddddddddddd ", - " ddddddddddd d * ", - " d * ddddddd*ddd d ", - " d*dddd*ddddd ", - " d dddddddddddddd ", - " * ddddd*dddddd d ", - " dddddddddd*d ", - " * ddddddddd*dd * * ", - " d ddddddddddd d ", - " * d ddddd*dddddd * ", - " d dddddddd*d d ", - " * * *dddd*dddd * ", - " d ddddddddddddd ", - " ddddddd*ddd d * ", - " d * ddddddd*ddd d ", - " d * dd ddddddddddddd * ", - " ddddddddd d dddddddddddddd d * ", - " * dddMM**MMMdd * dddddddddddd ", - " ddMMMMMMMMMMd d dddd*dddddddddd d ", - " ddMMMMMMMMM.dd dddddddddddddd ", - " dd*MMMMMMMMMdd* * dd*ddddd*ddd*d * ", - " dddMMMMMMMdd d d ddddddddddd * ", - " ddd*ddddd ddddddddddddd d ", - " ddddddddd * * * ddddd*ddddd * ", - " * ddddddd d ddddddddddd*dd o ", - " dddddd * dd*ddddd*d*d ", - " ddddd d d ddddddd*ddd* d * ", - " d dddd d*dddddddddd ", - " ddd d d ddddddd*dddd*d * ", - " dd * * ddddd*ddd*dd d d ", - " d d *ddddd*ddd*d* * ", - " d*dddddddddd ", - " d dddddddddddddd ", - " * ddddd ddd*dd d ", - " dddddddddd*d ", - " * ddddd*ddd*dd * * ", - " d dddddddddddd d ", - " * d ddddd dddddd * ", - " d dddddddd*d d ", - "* * *dddddd*dd * ", - " d ddddddddddddd ", - " ddddddddddd d * ", - " d*dddd*ddddd ", - " d dddddddddddddd ", - " * ddddddddd*dd d ", - " dddddddddd*d dddd ", - " * ddddd*dddddd * * dMMMMMd ", - " d dddddddd*ddd d dMMMMd ", - " * d dddddddddddd * ddMM ", - " d dddddddd*d d ddd ", - " * *dddddd*dd * dd ", - " d ddddddddddddd d ", - " ddddddddddd d * ", - " d*dddddd*ddd ", - " dddddddddddddd ", - " * ddddd*ddd*dd d ", - " dddddddddd*d ", - " d d*dddddddd*d * ", - " * dd*ddddddd*ddd * ", - " * ddddddd*dddd * ", - " d ddddddddddd d ", - " * d ddddd*dddddd * ", - " d dddddddd*d d ", - " * *dddd*dddd * ", - " d ddddddddddddd ", - " o ddddddddddd d * ", - " ddd d*dddd*ddddd ", - " d dMdd dddddddddddddd ", - " * dMMMd dd*dddddd*dd d ", - " ddMd dddddddddd*d ", - " * ddd ddddddddd*dd * * ", - " dd d ddddddddddd d ", - " * d d ddddd*ddddddd * ", - " d dddddddd*d d ", - " * *dddd*dddd * ", - " dddd*dddddddd ", - " dd*dddddddd d * ", - " * ddddddd*dd ", - " d * dddd*dd*d d ", - " * d * * dd*d*dd** * * d ", - " * d ddd*dd*d d d ", - " * d dd*d*ddd * * * ", - "* d * d ddddd*d d * * ", - " * * * dd**dd * * d ", - " * * d dddd * d ", - " * d dd d * ", - " * d * d d " - ], - "palettes": [ "airliner_palette" ], - "items": { - "d": [ { "item": "airliner_debris", "chance": 15 } ], - "*": [ { "item": "airliner_debris" } ], - "a": [ { "item": "snacks", "chance": 5 }, { "item": "jackets", "chance": 3 } ], - "f": [ { "item": "fridgesnacks", "chance": 80, "repeat": [ 15, 20 ] } ] - }, - "place_loot": [ - { "group": "airliner_cockpit", "x": 35, "y": 8 }, - { "group": "office_supplies", "repeat": [ 3, 5 ], "x": 39, "y": 8 }, - { "group": "airliner_galley", "x": 38, "y": 56 }, - { "group": "office_supplies", "repeat": [ 3, 5 ], "x": 38, "y": 57 }, - { "group": "snacks", "repeat": [ 10, 15 ], "x": 38, "y": 58 } - ], - "place_monsters": [ - { "monster": "GROUP_MALL", "x": [ 27, 47 ], "y": [ 10, 23 ], "repeat": [ 5, 10 ], "density": 0.1 }, - { "monster": "GROUP_MALL", "x": [ 27, 47 ], "y": [ 24, 47 ], "repeat": [ 7, 16 ], "density": 0.1 }, - { "monster": "GROUP_MALL", "x": [ 27, 47 ], "y": [ 48, 61 ], "repeat": [ 3, 4 ], "density": 0.1 } - ], - "monster": { "Z": { "monster": "mon_zombie_electric" }, "z": { "monster": "mon_zombie" }, "o": { "monster": "mon_zombie" } } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "airliner_2a_1" ], [ "airliner_2b_1" ], [ "airliner_2c_1" ] ], - "weight": 250, - "object": { - "rows": [ - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAA...AAAAAAAAAA", - "AAAAAAAAAAA.....AAAAAAAAA", - "AAAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAAA......AAAAAAAA", - "AAAAAAAAAAA......AAAAAAAA", - "AAAAAAAAAAA.AA...AAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAA.AA...AAAAAAAA", - "AAAAAAAAAA......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA......AAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA.....AAAAAAAAAA", - "AAAAAAAAA......AAAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAA.......AAAAAAAA", - "AAAAAAAAAA..M..AAAAAAAAA", - "AAAAAAAAAA.MMM.AAAAAAAAA", - "AAAAAAAAAA.MMM.AAAAAAAAA", - "AAAAAAAAAA.MMM.AAAAAAAAA", - "AAAAAAAAAA.MMM.AAAAAAAAA", - "AAAAAAAAAAAMMMAAAAAAAAAA", - "AAAAAAAAAA.MMM.AAAAAAAAA", - "AAAAAAAAAA.MMM.AAAAAAAAA", - "AAAAAAAA...MMM...AAAAAAA", - "AAAAAA.....MMM.....AAAAA", - "AAAA.......MMM.......AAA", - "AA.........MMM.........A", - "AA........AMMMA........A", - "AA.....AAAAAMAAAAA.....A", - "AA..AAAAAAAAAAAAAAAAA..A", - "AAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAA" - ], - "palettes": [ "airliner_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "airliner_2b_-1" ], [ "airliner_2c_-1" ] ], - "weight": 250, - "object": { - "fill_ter": "t_metal_floor", - "rows": [ - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,****M,,,,,,,,,", - ",,,,,,,,,,MLLLM,,,,,,,,,", - ",,,,,,,,,,MLLLM,,,,,,,,,", - ",,,,,,,,,,MLLLM,,,,,,,,,", - ",,,,,,,,,,ML.LM,,,,,,,,,", - ",,,,,,,,,,MLLLM,,,,,,,,,", - ",,,,,,,,,,M.LLM,,,,,,,,,", - ",,,,,,,,,,MLL.M,,,,,,,,,", - ",,,,,,,,,,ML..M,,,,,,,,,", - ",,,,,,,,,,M..LM,,,,,,,,,", - ",,,,,,,,,,M.L.M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,ML..M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,M..dM,,,,,,,,,", - ",,,,,,,,,,M..dd,,,,,,,,,", - ",,,,,,,,,,M..d<<,,,,,,,,", - ",,,,,,,,,,M.dd<<,,,,,,,,", - ",,,,,,,,,,M..dd,,,,,,,,,", - ",,,,,,,,,,M..dM,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,M...M,,,,,,,,,", - ",,,,,,,,,,D...D,,,,,,,,,", - ",,,,,,,,,,MMMMM,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,,", - ",,,,,,,,,,,,,,,,,,,,,,,," - ], - "palettes": [ "airliner_palette" ], - "items": { "L": [ { "item": "airliner_luggage", "chance": 80, "repeat": [ 2, 3 ] } ] } - } - }, - { - "id": "airliner_luggage", - "type": "item_group", - "subtype": "collection", - "entries": [ - { "group": "allclothes", "count-min": 3, "count-max": 7 }, - { "group": "shoes", "prob": 30 }, - { "group": "glasses", "prob": 10 }, - { "group": "magazines", "prob": 10 }, - { "group": "bags_trip" } - ] - }, - { - "id": "airliner_cockpit", - "type": "item_group", - "subtype": "collection", - "items": [ - { "item": "crash_axe" }, - { - "collection": [ { "item": "flaregun" }, { "item": "signal_flare", "count-min": 1, "count-max": 2 } ], - "prob": 40 - }, - { "item": "1st_aid", "prob": 40 }, - { "item": "handflare", "count-min": 1, "count-max": 3, "prob": 30 }, - { "item": "sm_extinguisher", "prob": 75 } - ] - }, - { - "id": "airliner_galley", - "type": "item_group", - "subtype": "collection", - "items": [ - { "item": "1st_aid", "prob": 40 }, - { "item": "handflare", "count-min": 1, "count-max": 3, "prob": 30 }, - { "item": "sm_extinguisher", "prob": 75 } - ] - }, - { - "id": "airliner_debris", - "type": "item_group", - "items": [ [ "scrap", 30 ], [ "steel_chunk", 20 ], [ "steel_lump", 10 ], [ "sheet_metal_small", 10 ], [ "sheet_metal", 5 ] ] - } -] diff --git a/data/json/mapgen/animalshelter.json b/data/json/mapgen/animalshelter.json index f84f3d6fb4b88..e2b2e5a79042c 100644 --- a/data/json/mapgen/animalshelter.json +++ b/data/json/mapgen/animalshelter.json @@ -36,8 +36,8 @@ "items": [ [ "dog_whistle", 10 ], [ "pet_carrier", 30 ], - { "item": "dogfood", "prob": 50, "container-item": "can_food" }, - { "item": "catfood", "prob": 50, "container-item": "can_food" }, + [ "dogfood_canned", 50 ], + [ "catfood_canned", 50 ], [ "towel", 20 ], [ "soap", 10 ], [ "gloves_medical", 20 ], diff --git a/data/json/mapgen/bunker.json b/data/json/mapgen/bunker.json index e234efbf8e0d6..48954532a7aa9 100644 --- a/data/json/mapgen/bunker.json +++ b/data/json/mapgen/bunker.json @@ -42,7 +42,7 @@ "6": "t_card_military", ">": "t_stairs_down", "D": "t_door_metal_locked", - "I": "t_ballistic_glass", + "I": "t_reinforced_glass", "M": "t_wall_metal", "|": "t_chainfence_v" }, @@ -98,15 +98,10 @@ "6": "t_card_military", "<": "t_stairs_up", "M": "t_wall_metal", - "|": "t_ballistic_glass" + "|": "t_reinforced_glass" }, "furniture": { "r": "f_rack" }, - "items": { "r": { "item": "bunker_basement_loot", "chance": 15, "repeat": [ 1, 5 ] } }, - "place_monster": [ - { "monster": "mon_mech_combat", "x": 5, "y": 5, "chance": 2 }, - { "monster": "mon_mech_lifter", "x": 6, "y": 6, "chance": 5 }, - { "monster": "mon_mech_recon", "x": 7, "y": 6, "chance": 3 } - ] + "items": { "r": { "item": "bunker_basement_loot", "chance": 15, "repeat": [ 1, 5 ] } } } }, { diff --git a/data/json/mapgen/cemetery_4square.json b/data/json/mapgen/cemetery_4square.json index 50370c57224c1..ce0f36cefaeb1 100644 --- a/data/json/mapgen/cemetery_4square.json +++ b/data/json/mapgen/cemetery_4square.json @@ -19,10 +19,12 @@ [ "kittel", 1 ], [ "kufi", 1 ], [ "kippah", 1 ], - { "group": "rings_and_things", "prob": 20 }, + [ "locket", 10 ], [ "long_glove_white", 1 ], + [ "necklace", 1 ], [ "photo_album", 15 ], [ "ref_lighter", 5 ], + [ "ring", 10 ], [ "roadmap", 3 ], [ "spray_can", 5 ], [ "story_book", 5 ], diff --git a/data/json/mapgen/cground3x3.json b/data/json/mapgen/cground3x3.json deleted file mode 100644 index 025cf2555086a..0000000000000 --- a/data/json/mapgen/cground3x3.json +++ /dev/null @@ -1,242 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "cground_3", "cground_2", "cground_1" ], - [ "cground_6", "cground_5", "cground_4" ], - [ "cground_9", "cground_8", "cground_7" ] - ], - "weight": 250, - "object": { - "faction_owner": [ - { "id": "gods_community", "x": [ 0, 23 ], "y": [ 0, 23 ] }, - { "id": "gods_community", "x": [ 24, 47 ], "y": [ 0, 23 ] }, - { "id": "gods_community", "x": [ 48, 71 ], "y": [ 0, 23 ] }, - { "id": "gods_community", "x": [ 0, 23 ], "y": [ 24, 47 ] }, - { "id": "gods_community", "x": [ 24, 47 ], "y": [ 24, 47 ] }, - { "id": "gods_community", "x": [ 48, 71 ], "y": [ 24, 47 ] }, - { "id": "gods_community", "x": [ 0, 23 ], "y": [ 48, 71 ] }, - { "id": "gods_community", "x": [ 24, 47 ], "y": [ 48, 71 ] }, - { "id": "gods_community", "x": [ 48, 71 ], "y": [ 48, 71 ] } - ], - "fill_ter": "t_floor", - "rows": [ - ",7,,,,,,7,*,,7,,,7,,*,7,,7,,7,* _________ 7 ,,,7,*,7,,,7,,,,*7,,,*,,", - ",,,,*7,,||||v||||||v|||,*,,,,7, _________ *,,,7,,,,,,,*,,,,7,,,,*,7,*", - "7,,*,G,7|^.fff.^|ddddd|,,7,*, __________7* ,,7,,,,,*,,7,,,,,*,,,,7,,,,7", - ",,G,,,,t|.d.?..X|d..hdv7,, __________ ||||||||||||||vv||vv||vv||||,", - "G* G,G*|.dddd.Y|dh..dv,,*, ___________F |???|T+.a|^...............^|7", - " 7 ,v..?.?..|.....v,,,,* ___________ v?.?|||.S|.bnb.bnb.bnb.bnb.v,", - ",G G G 7v.......+.ff.g|,,7, ____________ v...|T+.S|.bnb.bnb.bnb.bnb.v*", - ",* G|hh..bbb|.||+||,,, ____________F |..n|||.S|.bnb|bnb.bnb.bnb.|7", - "G,G G G,||||+||||+|..Y||| _____________ ||..n|T+..|.bnb.bnb.bnb.bnb.||", - "7 * ,,|???.|ST|.d.....|_______________ *|^...|||+||..................|", - " G G *G|?n..|..|hd.....+ _____________ |.........|Y.bbbb.bbbb....nh.v", - "G G |?...|a.|fd...bb| _______________+..g......+..nnnn.nnnn....nh.v", - "7,G G G|...^||+|||^..||| _____________ |+||||||+||..bbbb.bbbb....nh.v", - "G,*; *,,|a.......g||+||*, _____________ |<..uuuu.a|a.................|", - ",7 ;;G7*v..hh|fh.M@@.M|7,* _____________ |||.......U.....bnb.bnb.bnb.||", - ",*G ;*,,v..nn|fdd.....v,,,,____________ F*|e.uusc..U....|bnb.bnb.bnb.|7", - "7, ; G,7|c.hh|df@.@@.@v,*,7,___________ *ve.uuSc..U.....bnb.bnb.bnb.v,", - ",,*; ,*,|u...|dh@....@v,,,,,__________* vu.......U.....bnb.bnb.bnb.v*", - ",7 ;;7,*|uSOe|dh^.@@.a|,7,*,__________ F |uOSccc..|.$$.............^|,", - ",*, ;;,7|||||||||||v|||,,*,*__________ * ||||||||+|+|||vv||vv||vv||||,", - "*,,* ;;;; *,,*7,,7,*,7,*,,,7,_________ * HDDD_|<....| ;; ; ,,7", - "7,,,* ;;;;;;;;*,,,,7,7,,7,*,, _____________m____+..hnh| ooooooooooooo ,", - ",*,7,,,*7, ;;;;;;;;; *,*,,*,7, ________ *,,HR_DD|..hnh| ;; ", - "*,,,,7,,*,7,,7,* ;;;;;;7,*,,,, ________ ,,7,HHHHH|||v||| ooooooooooooooo", - ",7,*,,,7,7,*,,,7,,*,7;;;;;7,*,________,,*,*,,7,,7 ; ;; ; ;; ", - ",*,,,7,*,,*,7*,,,7,,*,, ;;;;7,________7,*,,,*, ; oooooooooooooooooooo ", - "*7,7,,*,,7,,*,7,*,,7,,*,7 ;;;;________*,,7*,7 ; ; ;; ; ", - ",,*,,,7,*,t*7,*,,7*,*7,,,*,,7________7*,,,* ooooooooooooooooooooooooo,*", - "||vvv||vv||vvv|||||||,,*,,7,,________,,,*7, ;; ; ; ;; ,7,", - "|^....a..Y....^|llll|*,7,,,*,________*,,,* oooooooooooooooooooooooooo,,,", - "|.l@@..h...@@l.|....|7,,,*,,7________,7,,; ; ;; ; ; *,7", - "v.....bnnb.....|.lll|,*,7,7,___________* oooooooooooooooooooooooooooo ,", - "|.l@@.bnnb.@@l.|+||||,7,,,*,_____________ ; ; ;; ; ;; ", - "|.....h.h......|.???|*,,7,7,________*,,*_oooooooooooooooooooooooooooooo ", - "|.l@@......@@l.....?|,7,,*,*________,7, _ ;; ; ; ;; ; ", - "v......h............v*,,7,,________*,*,, oooooooooooooooooooooooooooooo", - "|.l@@.bnnb.@@l.nn..^|7,,*,*________7,,*,7 ; ; ; ;; ; ", - "|.....bnnb.....||++||,,7,__________*,7,,,* ooooooooooooooooooooooooooooo", - "|.l@@...h..@@l.| __ *,*, ___________,*,*7,* ; ; ;; ; * ", - "v.....h........v __ 7 _____________*,,*,,*, ooooooooooooooooooooo 7,, ", - "|^...^....????.|* __________________7,*,,7,,,,7,,7 ; ;; ,,*,7,*,,7", - "|||+|||++|||||||,,, _____*,*7_______,*7,,*,*,,,*,,*ooooooooo,7,,,,*,,*,", - " |h.p|....|,*7,,,*,, ___*,,,,____BBBB,,*7,,7,*7,,7,,,7,*7,*,,*,,7,,,7,,", - " |.h.|?..nv*,,*,7,,*,____,,7*,,___NNNN7*,,7,,,,*,,,,* *,,*,,7*,,*,*,*,,7", - " |h.L|?..nv,7,,*,*7,,___,7*,,7*___BBBB,,7,,*,7,,,*,,7,,,7,,*,*,7,,,7,*,,", - " |h.L|^...|,*,7,7*,,*___*,,,*,,_______,*,,7, *,,7*,*,,7,,*,,7,,,*,,,,,7,", - "|||+|||++|||||||,,*, ___,,*7,________,,7,,,*,7,*,,,7,,,*,,,*,,7,,,7* 7,,", - "|nn..a....???.^|*7, ____________i__ *,,,,*,,,*7,,*,,*,7,||vv||||v|||,,*", - "v..............v, __________________ * 7,,*,*,,7,,7,*,,|euuO|h..@@|,7,", - "|.l@@..bb..@@l.| __ __________________* *,,7,,*, ______+....+...hl|,*,", - "|......nnh.....||++||,7* BNB_____________ , _______ |n..?|n...l|,,7", - "|.l@@.hnn..@@l.Y...^|7,,7* BNB_____BNB_____________ ,,,|n..?|n..@@|*,,", - "v......bb...........v,*,*,7 BNB ___ BNB *, ______ *,,7,*||h.?|||||||,*,", - "|.l@@......@@l.....?|,7,,,* BNB __* BNB ,7*,,,*,,,7,,*,,7,|...+...@@|*7,", - "|......bb......|.???|*,*,,7*, ___7 BNB*,,,7*,7,,,,*7,,,*,v...|h...l|,,*", - "|.l@@..nnh.@@l.|+||||7,,,*,,7* __*,, *,,7*,,,,*,,*,,,*,7,,|a.^|nn..l|7,7", - "v.....hnn......|.lll|,*,,7,,*, __,7*,,*,,,7,,*,,,7,,,,,*,7||+||.h.@@|,7,", - "|.l@@..bb..@@l.|....|*,7*,,, ,7___,,*7 7*,,*7,,7,,*,,,7,,,|n.h|||||||7,*", - "|^.......h....^|llll|7,*,,7,*,* __*,,,*,,7,,*,,,,,7,,*,,7,|.....|pL|*,,7", - "||vvv||vv||vvv|||||||,*,7,*,,7, __,7*,,7*,*7,7,,7,,,,,7,*,|@...@||+|,7,,", - "7,*,,7,,7*t,,*,7,*,,*,7*|||v|||v++v|||v|||,,,,7,,,7,*,,,,7|@lhl@|t;;*,,7", - ",,7,,*7,,,,7*,,*,,7,,*,,|T+.+T|^..a|T+.+T|7,7,,7,,*,,7*,,,|||v|||;;,7*,,", - ",*,,7,,*,7*,,7,,7,*,7,,7|||.|||S..S|||.|||,*,,*,,7,,*,,7,*,7,,,7,,*,*,7,", - "7,*,,*,,*,,7,*,,,,*,,,*,|T+.+T|S..S|T+.+T|t7,,7,,,*,7,,*,,,,,7,*,,,,,,*,", - ",,7,,,*7,,*,*,,7*,7*,7,*|||.|||S..S|||.|||,,*,,*,,7,,,7,,7*,,*,,7,*,,7,,", - "*,,*7*,,,7,,7,*,,,*,,*,,v^....+....+....^v*,,,,,7,*,,*,,*,,7,,,,*,7,,*,,", - "7,,,*,,7,,,*,,,7,*,,,,7|||+|+||b..b||+|+|||,7,,*,,,,7,,*7,,*,,7,,,,,7,,,", - ",*7,,7,*,,7,,*,*,,7 *,*|!..|..|b..b|..|..!|,*,7,,7,*,*,,,,7,,,*,,7*,,,,*", - "7,,*,,,,7,*,,7,,,*,,,7,|||.||.|b..b|.||.|||7,,,,*,,7,,7,,*,,7,,7,,,,*,7,", - "*,*,,7,*,,7,,*,,7,,*,*,|!..|!.|Y..Y|.!|..!|*,,*,7,,*,,*,7,,,,*,,,,,7,,,*", - ",,7,*,,,,*,,,7,*,,,7,,,||v|||!|..^.|!|||v||,,7,*,,,,7,,,,*,7,,,*,7,,,7,,", - "7,,,7,*,7,*7,*,7,,*,,7,*,,7*||||vv||||,7*,,7*,,7,*,,*,7*,,,,*,7,,,*7,*,," - ], - "palettes": [ "cground" ], - "place_vehicles": [ { "vehicle": "bus", "x": 33, "y": [ 18, 18 ], "chance": 100, "status": 4, "rotation": 90 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "cground_3_1", "cground_2_1", "cground_1_1" ], - [ "cground_6_1", "cground_5_1", "cground_4_1" ], - [ "cground_9_1", "cground_8_1", "cground_7_1" ] - ], - "weight": 250, - "object": { - "faction_owner": [ - { "id": "gods_community", "x": [ 0, 23 ], "y": [ 0, 23 ] }, - { "id": "gods_community", "x": [ 24, 47 ], "y": [ 0, 23 ] }, - { "id": "gods_community", "x": [ 48, 71 ], "y": [ 0, 23 ] }, - { "id": "gods_community", "x": [ 0, 23 ], "y": [ 24, 47 ] }, - { "id": "gods_community", "x": [ 24, 47 ], "y": [ 24, 47 ] }, - { "id": "gods_community", "x": [ 48, 71 ], "y": [ 24, 47 ] }, - { "id": "gods_community", "x": [ 0, 23 ], "y": [ 48, 71 ] }, - { "id": "gods_community", "x": [ 24, 47 ], "y": [ 48, 71 ] }, - { "id": "gods_community", "x": [ 48, 71 ], "y": [ 48, 71 ] } - ], - "fill_ter": "t_floor", - "rows": [ - "########################################################################", - "########(=============)#################################################", - "########(zzzzzzzzzzzzz)#################################################", - "########:zzzzzzzzzzzzz)####################||||||||||||||vv||vv||vv||||#", - "########(zzzzzzzzzzwzz)####################|xx.xx..x..hhhq%%%%%%%%%%%%|#", - "########(zzzzzzzzzzzzz)####################vxxxx.x.....hhq%%%%%%%%%%%%v#", - "########(zzzzzzzzzzzzz)####################v.x.xx.x...h..q%%%%%%%%%%%%v#", - "########(zzzzzzzzzzzzz)####################|..xx.....xqqq|%%%%%%%%%%%%|#", - "########(zzzzzzzzzzzzz)=)#################||x....x....q%%%%%%%%%%%%%%%||", - "########(zzzzzzzzzzzzzzz)#################|.....xx....q%%%%%%%%%%%%%%%%|", - "########(zzzjzzzzzzzzzzz)#################v.........?.q%%%%%%%%%%%%%%%%v", - "########(zzzzzzzzzzzzzzz)#################v.........?.q%%%%%%%%%%%%%%%%v", - "########(zzzzzzzzzzzzz)-)#################v.|..x....?.q%%%%%%%%%%%%%%%%v", - "########(zzzzzzzzzzzzz)###################|>|.........q%%%%%%%%%%%%%%%%|", - "########(zzzzzzzzzzzzz)###################|||...h.....q%%%%%%%%%%%%%%%||", - "########(zzzzzzzzzzzzz)####################|..hnn.....qqq|%%%%%%%%%%%%|#", - "########(zzzzzzzzzzzzz)####################v...nnh...^...q%%%%%%%%%%%%v#", - "########(zzzzzzzzzzzzz)####################v..h......??.bq%%%%%%%%%%%%v#", - "########(zzzzzzzzzzzzz)####################|............bq%%%%%%%%%%%%|#", - "########(-------------)####################||||||||+|+|||vv||vv||vv||||#", - "#################################################|>...<|################", - "#################################################|.....|################", - "#################################################|LLSpp|################", - "#################################################|||v|||################", - "########################################################################", - "########################################################################", - "########################################################################", - "########################################################################", - "(=========:=========)###################################################", - "(zzzzzzzzzzzzzzzzzzz)###################################################", - "(zzzzzzzzzzzzzzzzzzz)###################################################", - "(zzzzzzzzzzzzzzzzzzz)###################################################", - "(zzzzzzzzzzzzzzzzzzz)###################################################", - "(zzzzwzzzzzzzzzzzzzz)###################################################", - "(zzzzzzzzzzzzzzzzzzz)###################################################", - "(zzzzzzzzzzzzzzzzzzz)###################################################", - "(zzzzzzzzzzzzzzzzzzz)###################################################", - "(zzzzzzzzzzzzzz)----)###################################################", - "(zzzzzzzzzzzzzz)########################################################", - "(zzzzzzzzzzzzzz)########################################################", - "(zzzzzzzzzzzzzz)########################################################", - "((zzzzzzzz)----)########################################################", - "#(zWzzzzzz)#############################################################", - "#(zzzzzzzz)#############################################################", - "#(zzzzzzzz)#############################################################", - "#(zWzzzzzz)#############################################################", - "((zzzzzzzz)====)########################################################", - "(zzzzzzzzzzzzzz)#########################################(==========)###", - "(zzzzzzzzzzzjzz)#########################################(zzzzzzzzzz)###", - "(zzzzzzzzzzzzzz)#########################################(zzzzzzzzzz)###", - "(zzzzzzzzzzzzzz)====)####################################(zzzzzzzzzz)###", - "(zzzzzzzzzzzzzzzzzzz)####################################(zzzzzzzzzz)###", - "(zzzzzzzzzzzzzzzzzzz)####################################((zzzzzzzzz)###", - "(zzzzzzzzzzzzzzzzzzz)#####################################(zzzzzzzzz)###", - "(zzzzwzzzzzzzzzzzzzz)#####################################(zzzzzzzzz)###", - "(zzzzzzzzzzzzzzzzzzz)#####################################(zzzzzzzzz)###", - "(zzzzzzzzzzzzzzzzzzz)#####################################(zzzzzzzzz)###", - "(zzzzzzzzzzzzzzzzzzz)#####################################(zzzzzzzz))###", - "(zzzzzzzzzzzzzzzzzzz)#####################################(zzwzzzzz)####", - "(---------:---------)#####################################(zzzzz)--)####", - "########################(================)################(zzzzz:#######", - "########################(zzzzzzzzzzzzzzzz)################(-----)#######", - "########################(zzzzzzzzzzzzzzzz)##############################", - "########################(zzzzzzzzzzzzzzzz:##############################", - "########################(zzzzzzzzzzzzzzzz)##############################", - "########################(zzzzzzzzzzzzzzzz)##############################", - "#######################((zzzzzzzzzzzzzzzz))#############################", - "#######################(zzzzzzzzzzzzzzzzzz)#############################", - "#######################(zzzzzzzzzzzzzzzzzz)#############################", - "#######################(zzzzzzzzzzzzzzzzzz)#############################", - "#######################(----(zzzzzzzz)----)#############################", - "############################(--------)##################################" - ], - "palettes": [ "cground" ], - "place_nested": [ { "chunks": [ [ "roof_4x4_utility", 10 ], [ "roof_4x4_utility_1", 10 ] ], "x": 31, "y": 65 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "cground_2_2", "cground_1_2" ] ], - "weight": 250, - "object": { - "faction_owner": [ - { "id": "gods_community", "x": [ 0, 23 ], "y": [ 0, 23 ] }, - { "id": "gods_community", "x": [ 24, 47 ], "y": [ 0, 23 ] } - ], - "fill_ter": "t_floor", - "rows": [ - "################################################", - "################################################", - "################################################", - "###################(==================:=======)#", - "###################(zzzzzzzzzzzzzzzzzzzzzzzzzz)#", - "###################:zzzwzzwzzwzzzzzzzzzzzzzzzz)#", - "###################(zzzzzzzzzzzzzzzzzzzzzzzzzz)#", - "###################(zzzzzzzzzzzzzzzzzzzzzzzzzz)#", - "##################((zzzzzzzzzzzzzzzzzzzzzzzzzz))", - "##################(zzzzzzzzzzzzzzzzzzzzzzzzzzzz)", - "##################(zzzzzzzzzzzzzzZZZZZzzZZZZZzz)", - "##################(zzzzzzzzzzzzzzZZZZZzzZZZZZzz)", - "##################(zzzzzzzzzzzzzzZZZZZzzZZZZZzz)", - "##################(zzzzzzzzzzzzzzzzzzzzzzzzzzzz)", - "##################((zzzzzzzzzzzzzzzzzzzzzzzzzz))", - "###################(zzzzzzzzzzzzzzzzzzzzzzzzzz)#", - "###################(zzzzzzzzzzzzzzzzzzzzzzzzzz)#", - "###################(zzzzzzzzzzzWzWzzzzzzzzzzzz)#", - "###################(zzzzzzzzzzzzzzzzzzzzzzzzzz)#", - "###################(-----qqq'qqq------:-------)#", - "#########################q''''>q################", - "#########################q'''''q################", - "#########################q'''''q################", - "#########################qqqqqqq################" - ], - "palettes": [ "cground" ] - } - } -] diff --git a/data/json/mapgen/collapsed_tower.json b/data/json/mapgen/collapsed_tower.json deleted file mode 100644 index 898c1ef443175..0000000000000 --- a/data/json/mapgen/collapsed_tower.json +++ /dev/null @@ -1,195 +0,0 @@ -[ - { - "name": "GROUP_COLLAPSED_TOWER", - "type": "monstergroup", - "default": "mon_null", - "monsters": [ - { "monster": "mon_zombie", "freq": 100, "cost_multiplier": 1, "pack_size": [ 3, 5 ] }, - { "monster": "mon_zombie_gasbag_immobile", "freq": 200, "cost_multiplier": 1 }, - { "monster": "mon_zombie_gasbag_crawler", "freq": 10, "cost_multiplier": 7, "pack_size": [ 3, 5 ] }, - { "monster": "mon_zombie_tough", "freq": 20, "cost_multiplier": 6 } - ] - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "office_tower_collapse_a0", "office_tower_collapse_a1", "office_tower_collapse_a2" ], - [ "office_tower_collapse_b0", "office_tower_collapse_b1", "office_tower_collapse_b2" ] - ], - "weight": 300, - "object": { - "fill_ter": "t_thconc_floor", - "rows": [ - "....ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", - "....s........................................sssssssssssssssssssssssssss", - "....s.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzsssssssssssssssssssssssssss", - "....s.z22222---22---22--2222---2222222222---zsssssssssssssssssssssssssss", - "....s.z1CCC 4|CC l|CCC | 4 #|4 4|zsssssss##ssssssssssssssssss", - "....s.z1C B |||||||###| |#| B B||B 1zsssssssssssssssssssssssssss", - "....s.||||||||| #####|||||||||||666|||6 1zssss###ssssssssssssssssssss", - "....s.z1#### ## | |||####|||#B ||||ssssssssssszzzzssssssssss", - "....s.z## # 6666666|||||##sssss##s|||||||||Bsssssss", - "....s.z|C B | |C 00 |#| B B B 1zs###ssssssBsz.zz z|Bsssssss", - "....s.#|CCC l||| -|CCC | |||#|4 4 zss|||sssssssz.zz z|ssssssss", - "....#.z|-- | ||||----## ||||222--33--22 zsss|||||ssBsz.zz z|Bsssssss", - "....s.#|;w |####|# |###|### B |||sssssBszz. z|Bsssssss", - "...####|-- -----| --||####|#C##### ||##1 #zsss||||sszz zssssssssss", - "....s.#|;w A|A w;| ####|||||||| B |||| #sss|||sssssssssssssszz", - ".##.s |-- | --|#####||B ||||||| # ~~~ss~~22222222~~ss~~~~", - "....s.z|;w A|A | w;||||##| ### C|C||||||~~~~ss~~1## ##1~~ss~~~~", - "....s z|--| |##||####| |--| |||||3zzzz~~sszz1## ##1zzsszzz~", - ".||.s |-w-----|||#||| | ####C |#-22---~~{{222--22--222{{221~", - "....s s||| # || ##BC #|||||| ~~ 4 ???? 4 1s", - "..||s |---w-----|-|| - ---- ---- ---|### ~~ 1s", - "...| ||-|l l| |B B | |l| ##||| z~~ ???? zzz 1s", - ".||||||||#|l l| ||66 | | |-c----c-| | z~~ ###### zTz |s", - "....s.. |--- ---|#|||66 ||#| #|#||| zz~~~ zzz 1s", - "....|.. |### #||| B B | |l ll ll ll|l| ~~~ 1s", - "....s..||-- --||||| | |l ll ll l|####rHr z~~ >????> zzz 1s", - "....s..||B666B 46B || B w |## | #|?rrr ##~~ rrrrrr s", - ". |||||| 666 6B ||||| w #|###llll l#|||r###zT~~ Hr>>rH |", - ".. ### B B 666|| | ##|||||--| ##|?r|||||#~~~ ||||s", - ".. |||# B B B B||| | |##| ###| ## |||||###### ## |s", - ".... |# B B 666 || | w C || ~ ||||||666666 ||| |s", - "....s||||###6 666 B##|| | | 444424## r ~~ ||| 6|| B66 1s", - "....#z|||##### ####66 # 4| ||||||| ## ~~ |||## ## 1s", - "....#||------- |----|||||| | |## ~~~~~~~ | |||||w### 1s", - "....s||CCC 4 C C| ||||4 B | || || ~~~~~~~~~~- |||||||###- -|s", - "....sz|C | BC| CCC CCC | | B| ~~||~~~~ 3```| | 4 1s", - "....3##||||| C| ||||| | | C|| ~~~~~~~~~~~ 3```| |BC C 1s", - "..###z1 ||||C CCC CC||| ##||| ~~~~~ | |```| | C C B|s", - "....sz14 | BC -- #| |---| ||||||||CC CCC|s", - "....#z14 || C | #|| ##### w || w 1s", - "...#### ||||||||||||||CCC ##||| ---| ### ||||||||| 41s", - "..|||z|C | C| B B |||||||||||| |CCC |```3 >|| ||CCC CCC|s", - "....s CB |||| CCC CC||#D | C||||| #```3 |#||||C C B|s", - ".... CC 4 CCC||B 4##||##3 ##|||###```||||||#3 ||#|####### 1s", - ".... |||--22-||||||||||| ## ||||||||||||||| ||| ||||||||||||||s", - "....szzzzz|||zzzzzzz|||##| z## |||zzzzz###zzzz1111 ||##zzzzzzzzzzs", - "...##.......||......||.... ##...........||..##......|||||.............", - ".#..sssssssssssssssssssssss 3sssssssssssssssssssssssss||sssssssssssssss" - ], - "set": [ - { "point": "bash", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 24, 47 ], "y": [ 0, 23 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 48, 71 ], "y": [ 0, 23 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 0, 23 ], "y": [ 24, 47 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 24, 47 ], "y": [ 24, 47 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 48, 74 ], "y": [ 24, 47 ], "repeat": [ 50, 100 ] } - ], - "palettes": [ "collapsed_tower" ], - "place_items": [ - { "item": "office_mess", "x": [ 8, 23 ], "y": [ 4, 23 ], "chance": 100, "repeat": [ 20, 70 ] }, - { "item": "office_mess", "x": [ 8, 23 ], "y": [ 24, 44 ], "chance": 100, "repeat": [ 30, 70 ] }, - { "item": "cleaning", "x": [ 11, 11 ], "y": [ 21, 22 ], "chance": 60 }, - { "item": "cleaning", "x": [ 15, 15 ], "y": [ 21, 22 ], "chance": 60 } - ], - "place_monsters": [ - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 0, 23 ], "y": [ 0, 23 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 24, 47 ], "y": [ 0, 23 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 48, 71 ], "y": [ 0, 23 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 0, 23 ], "y": [ 24, 47 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 24, 35 ], "y": [ 24, 47 ], "density": 1.5 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "office_tower_collapse_b_a0", "office_tower_collapse_b_a1", "office_tower_collapse_b_a2" ], - [ "office_tower_collapse_b_b0", "office_tower_collapse_b_b1", "office_tower_collapse_b_b2" ] - ], - "weight": 300, - "object": { - "fill_ter": "t_thconc_floor", - "rows": [ - "########################################################################", - "#################################################|||||||||##############", - "##################|||||||||||||||||||############|6 6|##############", - "#########||||||||||66 666666 |#############|6 B6|##############", - "############# ||||||||||||||||||+||||||||||########", - "############ 66666 666666 |############## ### #####|########", - "############# 3 ##### ##|########", - "############## | 666666 3 ###~~#|||||||||||| # #|########", - "##############||||||| #||||||||||#|## ~~~~#|##### ###| # |########", - "###################### |##########|#~~~~|||||##### ##||~ ###|########", - "###################### |##########|~~~~~|######## ~~ |||~~~||||||||||##", - "#######~~~~~~~~~~~~~~~~~~~~~~~~~~~##~~~~~~~~###~~~|~~~~~~~~~~~~~~~~~~###", - "#####~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#~~~~~~~###~~~~~~~~~~~~~~~~~~~~~~~####", - "######################## ######~~##~~~##########|~~~~|##~~ ############", - "###################### ##### ###~~~#########|~~~~|## ~ ############", - "###################### ###############~~########|~~~~||| ~||||||||####", - "###################### ||||||||||#|####~~#######|~~##| ~ |####", - "#####||||||||||||||||| || |#############|~~~#| 6666|####", - "#####|xppCCppppCCppp6| #|## #### |# ~~~~~######|#~~#|22{{22222222|####", - "#####|xppppppppppppp6| #|# #### #|# ~#~~~######|####| 6666|####", - "#####|222222ppY66ppp6| |##########| # ~~~ # ~~~~## |####", - "#####|ppppp2ppppppppp|# ||| ## ##|# ~~#~~~~~~ #~~~# BB |####", - "#####|p//pp{ppppppppp3# 3##| ##| {~~~~~~~~~~~~~~~~##||||||BB#|| |####", - "#####|ppppp2ppppppppp3 3 #| # + { ## ########~~ #|######### |####", - "#####|222222ppY66ppp6| #|##|###| |||||||||||||||~~~~|###|# # |####", - "#####|xppppppppppppp6| |#|||||| ##|##########~~#|##~~|###|# # ##|####", - "#####|xppCCppppppppp6| |## ##| |#########~~~~~####||||||||||###|####", - "#####||||||||||#ppppp| #| # 66|# #|#~~~~~~~~~~~~~~~~#|########### |####", - "##############|#2{{22| + B|| ||######~~t~~~| ######## |####", - "################ppppr|# | | ##~~~~~~| |# #### |####", - "#################pppr|33| ####|###|| ##### ~~~||33||## #|####", - "###############pppppp|##||||###| ########~~~~~~~|# # 6#####|####", - "################p##pR|# |######| # ##~~~~####|# #####|####", - "#############||||||||| |######| ######~~~####| ##|#66#########|####", - "#####################| | ####| ##~~######| ###||||||||||||||####", - "#####################| | #####| ###||| ||||||| 3 |#############", - "#####################| 3 ##| ##| 6 |###3~~ 3 |#############", - "####################|| |# | |B6 |###3 | |#############", - "#####||||||||||||||||# |######| | 6 ||||| |||||#############", - "##### # |R |# |######||| + ##### w ||#############", - "#########|####### #|| ||| ## + #||||| |||||||############", - "#########|###### ## # + # |# #| 3 3 ||#############", - "#########|####### ### + # ######|||###| 3 ||||||#############", - "#########|######## ||||||| #||||||||# #| ||||||###################", - "#########|## R|##### ########| ||||||||#####################", - "#########||||||||||||####### ########| ||############################", - "#####################################||||||#############################", - "########################################################################" - ], - "set": [ - { "point": "bash", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 24, 47 ], "y": [ 0, 23 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 48, 71 ], "y": [ 0, 23 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 0, 23 ], "y": [ 24, 47 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 24, 47 ], "y": [ 24, 47 ], "repeat": [ 50, 100 ] }, - { "point": "bash", "x": [ 48, 74 ], "y": [ 24, 47 ], "repeat": [ 50, 100 ] } - ], - "palettes": [ "collapsed_tower" ], - "furniture": { "R": "f_rack" }, - "terrain": { - "C": "t_machinery_electronic", - "x": "t_machinery_heavy", - "?": "t_nanofab", - "r": "t_metal_floor", - "/": "t_nanofab_body", - "Y": "t_thconc_floor_olight", - "p": "t_metal_floor" - }, - "mapping": { "r": { "item": { "item": "standard_template_construct" } }, "R": { "item": { "item": "nanomaterial" } } }, - "toilets": { ";": { } }, - "place_items": [ - { "item": "office_mess", "x": [ 8, 23 ], "y": [ 4, 23 ], "chance": 100, "repeat": [ 20, 70 ] }, - { "item": "office_mess", "x": [ 8, 23 ], "y": [ 24, 44 ], "chance": 100, "repeat": [ 30, 70 ] }, - { "item": "cleaning", "x": [ 11, 11 ], "y": [ 21, 22 ], "chance": 60 }, - { "item": "cleaning", "x": [ 15, 15 ], "y": [ 21, 22 ], "chance": 60 } - ], - "place_monster": [ { "monster": "mon_tripod", "x": [ 12, 13 ], "y": [ 20, 23 ] } ], - "place_monsters": [ - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 0, 23 ], "y": [ 0, 19 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 24, 47 ], "y": [ 0, 23 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 48, 71 ], "y": [ 0, 23 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 0, 23 ], "y": [ 27, 47 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 24, 47 ], "y": [ 24, 47 ], "density": 1.5 }, - { "monster": "GROUP_COLLAPSED_TOWER", "x": [ 48, 71 ], "y": [ 24, 47 ], "density": 1.5 } - ] - } - } -] diff --git a/data/json/mapgen/farm.json b/data/json/mapgen/farm.json index d173396b64536..3fb11bc35b849 100644 --- a/data/json/mapgen/farm.json +++ b/data/json/mapgen/farm.json @@ -222,17 +222,17 @@ "rows": [ " ", " ", - " :::::::::########### ", - " : #_#_#_#_#_# ", - " : #_______7_# ", - " C +_______8_# ", - " C c__7______# ", - " : #_#_#_#_#_# ", - " : ########### ", - " : : ", - " : : ", - " : : ", - " :::::::::::::::::::: ", + " ;;;;;;;;;########### ", + " ; #_#_#_#_#_# ", + " ; #_______7_# ", + " g +_______8_# ", + " g c__7______# ", + " ; #_#_#_#_#_# ", + " ; ########### ", + " ; ; ", + " ; ; ", + " ; ; ", + " ;;;;;;;;;;;;;;;;;;;; ", " ", " FFFFFFFFFFFFFFFFFFFFFF ", " F F ", diff --git a/data/json/mapgen/isherwood_farms/cabin_isherwood.json b/data/json/mapgen/isherwood_farms/cabin_isherwood.json deleted file mode 100644 index d5a769d20e1f4..0000000000000 --- a/data/json/mapgen/isherwood_farms/cabin_isherwood.json +++ /dev/null @@ -1,195 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": "cabin_isherwood", - "object": { - "fill_ter": "t_floor", - "rows": [ - "............//..........", - "...........//...........", - "...........//...........", - "............//..........", - "............//..........", - "...........//...........", - "..........//.B..........", - "...////...//............", - ".//.../////.777.........", - "//..|||0||+||0|||||00||.", - "//..| |mmsmf|.", - "//..| n0.", - "//..0 | nnon|.", - "//..|W h h |||||||.", - ".//.0 h |s &|S|.", - "//..| + |.", - "//..|||||+|||+|||||0|||.", - "////.| | |l|.....", - "//...| @@ | @| +.....", - "//...| @@ | @|||.....", - "//...||0|0|||00||4......", - ".//.....................", - "..//...............x....", - "...//..................." - ], - "terrain": { - ">": "t_stairs_down", - " ": "t_floor", - "B": "t_grass", - "x": "t_grass", - "/": "t_dirt", - "7": "t_dirt", - ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], - "|": [ [ "t_wall_log", 5 ], "t_wall_log_chipped", "t_wall_log_broken" ], - "0": [ "t_window_domestic", "t_window_open", "t_curtains", "t_window_frame" ], - "+": [ "t_door_c", "t_door_boarded_damaged" ], - "4": "t_gutter_downspout" - }, - "furniture": { - "h": "f_chair", - "@": "f_bed", - "s": "f_sink", - "o": "f_oven", - "f": "f_fridge", - "n": "f_counter", - "m": "f_cupboard", - "7": "f_bench", - "B": "f_birdbath", - "W": "f_fireplace", - "x": "f_rotary_clothesline", - "S": "f_shower", - "l": "f_water_heater" - }, - "toilets": { "&": { } } - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "cabin_isherwood_update", - "object": { - "mapgensize": [ 20, 20 ], - "fill_ter": "t_floor", - "rows": [ - "........//..........", - "........//....|0||||", - ".........//...|;%;;|", - ".........//...+;H;;|", - "........//....|;%;;|", - ".......//.B...|0||||", - "////...//...........", - ".../////.777.uQeIjz.", - ".|||0||+||0|||||00||", - ".|bbg ay|mmsmf|", - ".|b n0", - ".0C t X hth |Rnnon|", - ".|W t X hth |||||||", - ".0C X hth |sR&|S|", - ".|yMM + |", - ".|||||+|||+|||||0|||", - "..|D D|y a|k|.22.", - "..| @@ | @|l+....", - "..|g@@ty|d t@|||....", - "..||0|0|||00||4..J.F" - ], - "place_vehicles": [ { "vehicle": "uncovered_wagon", "x": 2, "y": 2, "rotation": 180, "chance": 100, "status": 0 } ], - "place_monster": [ { "monster": "mon_horse", "x": 17, "y": 3, "chance": 100 } ], - "sealed_item": { - "Q": { "item": { "item": "seed_lentils" }, "furniture": "f_planter_harvest" }, - "e": { "item": { "item": "seed_tomato" }, "furniture": "f_planter_harvest" }, - "I": { "item": { "item": "seed_zucchini" }, "furniture": "f_planter_harvest" }, - "j": { "item": { "item": "seed_carrot" }, "furniture": "f_planter_harvest" }, - "z": { "item": { "item": "soybean_seed" }, "furniture": "f_planter_harvest" }, - "u": { "item": { "item": "seed_beans" }, "furniture": "f_planter_harvest" } - }, - "terrain": { - " ": "t_floor", - "B": "t_grass", - "x": "t_grass", - "/": "t_dirt", - "7": "t_dirt", - ";": "t_dirtfloor", - "e": "t_dirt", - "F": "t_dirt", - "2": "t_dirt", - "J": "t_dirt", - "I": "t_dirt", - "j": "t_dirt", - "z": "t_dirt", - "u": "t_dirt", - "Q": "t_dirt", - ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], - "|": "t_wall_log", - "0": "t_window_domestic", - "+": "t_door_c", - "4": "t_gutter_downspout", - "%": "t_splitrail_fence", - "H": "t_splitrail_fencegate_c" - }, - "furniture": { - "h": "f_chair", - "@": "f_bed", - "y": [ "f_indoor_plant_y", "f_indoor_plant" ], - "X": "f_sofa", - "t": "f_table", - "s": "f_sink", - "o": "f_oven", - "f": "f_fridge", - "n": "f_counter", - "m": "f_cupboard", - "d": "f_dresser", - "R": "f_trashcan", - "D": "f_wardrobe", - "7": "f_bench", - "C": "f_armchair", - "b": "f_bookcase", - "B": "f_birdbath", - "a": "f_rack_coat", - "g": "f_floor_lamp", - "W": "f_fireplace", - "i": "f_beaded_door", - "x": "f_rotary_clothesline", - "S": "f_shower", - "l": "f_water_heater", - "k": "f_water_purifier", - "J": "f_kiln_empty", - "F": "f_forge_rock", - "M": "f_workbench", - "2": "f_smoking_rack" - }, - "toilets": { "&": { } }, - "liquids": { "l": { "liquid": "water_clean", "amount": [ 0, 100 ] } }, - "place_loot": [ - { "item": "cattlefodder", "x": [ 17, 18 ], "y": [ 2, 4 ], "chance": 100 }, - { "item": "riding_saddle", "x": 15, "y": 2, "chance": 100 }, - { "item": "stepladder", "x": 15, "y": 4, "chance": 100 }, - { "item": "straw_pile", "x": [ 17, 18 ], "y": [ 2, 4 ], "chance": 30, "repeat": [ 2, 4 ] } - ], - "items": { - "b": { "item": "textbooks", "chance": 100, "repeat": [ 2, 4 ] }, - "M": { "item": "home_hw", "chance": 100, "repeat": [ 2, 4 ] }, - "@": { "item": "bed", "chance": 100, "repeat": [ 2, 4 ] }, - "d": { "item": "allclothes", "chance": 55, "repeat": [ 1, 2 ] }, - "D": { "item": "allclothes", "chance": 50, "repeat": [ 2, 3 ] }, - "o": { "item": "oven", "chance": 100, "repeat": [ 1, 3 ] }, - "f": { "item": "fresh_produce", "chance": 100, "repeat": [ 5, 10 ] }, - "S": { "item": "shower", "chance": 100, "repeat": [ 1, 2 ] }, - "R": { "item": "trash", "chance": 25, "repeat": [ 1, 2 ] }, - "w": { "item": "stash_wood", "chance": 100, "repeat": [ 5, 15 ] }, - "t": { "item": "book_survival", "chance": 20, "repeat": [ 1, 2 ] }, - "a": { "item": "jackets", "chance": 25, "repeat": [ 1, 2 ] }, - "m": [ - { "item": "groce_condiment", "chance": 100, "repeat": [ 4, 8 ] }, - { "item": "preserved_food", "chance": 100, "repeat": [ 5, 10 ] }, - { "item": "dry_goods", "chance": 100, "repeat": [ 3, 7 ] }, - { "item": "pantry_liquids", "chance": 100, "repeat": [ 3, 6 ] }, - { "item": "groce_bread", "chance": 20, "repeat": [ 3, 5 ] } - ], - "n": [ - { "item": "dishes_utility", "chance": 20, "repeat": [ 1, 2 ] }, - { "item": "kitchen_appliances", "chance": 30, "repeat": [ 1, 2 ] }, - { "item": "dishes_dining", "chance": 10, "repeat": [ 1, 2 ] } - ] - } - } - } -] diff --git a/data/json/mapgen/isherwood_farms/farm_horse_isherwood.json b/data/json/mapgen/isherwood_farms/farm_horse_isherwood.json deleted file mode 100644 index 16ac29f20618c..0000000000000 --- a/data/json/mapgen/isherwood_farms/farm_horse_isherwood.json +++ /dev/null @@ -1,453 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "horse_farm_isherwood_1", "horse_farm_isherwood_2", "horse_farm_isherwood_3", "horse_farm_isherwood_4" ], - [ "horse_farm_isherwood_5", "horse_farm_isherwood_6", "horse_farm_isherwood_7", "horse_farm_isherwood_8" ], - [ "horse_farm_isherwood_9", "horse_farm_isherwood_10", "horse_farm_isherwood_11", "horse_farm_isherwood_12" ], - [ "horse_farm_isherwood_13", "horse_farm_isherwood_14", "horse_farm_isherwood_15", "horse_farm_isherwood_16" ] - ], - "weight": 250, - "object": { - "faction_owner": [ - { "id": "isherwood_family", "x": [ 0, 23 ], "y": [ 0, 23 ] }, - { "id": "isherwood_family", "x": [ 24, 47 ], "y": [ 0, 23 ] }, - { "id": "isherwood_family", "x": [ 48, 71 ], "y": [ 0, 23 ] }, - { "id": "isherwood_family", "x": [ 0, 23 ], "y": [ 24, 47 ] }, - { "id": "isherwood_family", "x": [ 24, 47 ], "y": [ 24, 47 ] }, - { "id": "isherwood_family", "x": [ 48, 71 ], "y": [ 24, 47 ] }, - { "id": "isherwood_family", "x": [ 0, 23 ], "y": [ 48, 71 ] }, - { "id": "isherwood_family", "x": [ 24, 47 ], "y": [ 48, 71 ] }, - { "id": "isherwood_family", "x": [ 48, 71 ], "y": [ 48, 71 ] } - ], - "fill_ter": "t_floor", - "rows": [ - "........................X.......................X.......................X.......................", - "................................................................................................", - "..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..", - "..%..........................................................................................%..", - "..%..........................................................................................%..", - "..%..........................................................................................%..", - "..%..........................................................................................%..", - "..%..........................................................................................%..", - "..%...........6...........................................6..................................%..", - "..%..........................................................................................%..", - "..%..........................................................................................%..", - "..%.......................................................................W;;;;;;;;W.........%..", - "..%.......................................................................;;;;;;;;;;.........%..", - "..%.......................................................................;;;;;;;;;;.........%..", - "..%.....................................6.................................W;JMMF2;2W.........%..", - "..%...................................6...6...............................WWWWWWW+WW.........%..", - "..%................9......................................................W;;7777;;W.........%..", - "..%........9...9..........................................................G;;;;;;;;W.........%..", - "..%.....9............................................................/////G;;;;;;;;W.........%..", - "..%..9.....9..9...9.9..............................................///////G;;;;;;;;W.........%..", - "..%.....9.........................................................////////G;;;;;;;;W.........%..", - "..%........9..9...9.9...........................................//////////G;;;;;;;;W.........%..", - "..%..9..9...9.9...9............................................./////....5W5;;222;;W.........%..", - "..%.........................................................../////.......WWWWWWWWWW.........%..", - "..%......9.9..9...9.9...X.......................X........../////........X....................%..", - "..%..9......9............................................/////...............................%..", - "..%..9.....9..9...9.9...................................../////...........%%%%%%%%%%%%%%%%%%%%..", - "..%..9......9............................................/////............%............9..9.9%..", - "..%.9..9................................................/////.............H..............9.9.%..", - "..%.......9..9...........................................5/////...........%............9..9..%..", - "..%...9...........9................................WWWWWWWGGGGGWWWWWWW....%..................%..", - "..%.9.....9........................................W;;;W#5;;;;;77W;;;W....%..............9...%..", - "..%....9......9....................................3;;;3;;;;;;;;;3;;;3//..%..................%..", - "..%.......9......9.9...............................W;;;W77;;;;;;;W;;;W.//.%..................%..", - "..%..9...9..9...9.9................................WWWWWWW;;;;;WWWWWWW//..%..................%..", - "..%........~~~.....................9...............W;;;W77;;;;;77W;;;W.//.%..................%..", - "..%...9...~~``~~.9..9..............................3;;;3;;;;;;;;;3;;;3//..%..................%..", - "..%........~~``~~..................................W;;;W;;;;;;;;;W;;;W.//.%..................%..", - "..%.........~~~~~~~................................WWWWWWW;;;;;WWWWWWW..//H..................%..", - "..%...........~~~..................................W;;;W77;;;;;77W;;;W..//H..................%..", - "..%.............................9..................3;;;3;;;;;;;;;3;;;3//..%................6.%..", - "..%................................................W;;;W;;;;;;;;;W;;;W....%...............6..%..", - "..%................................................WWWWWWW;;;;;WWWWWWW%%%%%..................%..", - "..%...........................................9....W1 8W;;;;;;;WLL ^W....%..................%..", - "..%................................................v h +;;;;;;;+ ^v.9..%..................%..", - "..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Wkkk8W5;;;;;;WL ^W..//H..................%..", - "..%................................................WWvvWWWGGGGGWWWvvWW.//.%..................%..", - "..%......................................................5/////.......//..%%%%HHH%%%%%%%%%%%%%..", - "..%.....................X....AAAAAAAAAAWWWWWWW..X..........///////////..X....////............%..", - "..%......................///.A.........W;W;W;W................./////.. .////.////............%..", - "..%................./////////T.........W;;;;;W..................////////////.////........9...%..", - "..%................////.////.A.........A;;;;;W..................///////////////....9.........%..", - "..%.............////.........A.........K;;;;;W..........................///...............9..%..", - "..%...........///............A.........W;W;W;W..................%%%%%%%%333%%%%%%%%%.........%..", - "..%..........///.............A.........WWWWWWW.................%%.......///........%%..9.9...%..", - "..%...........///............A...............A................%%....////////////....%%.....9.%..", - "..%.........///..............A...............A...............%%...///.///.///.///....%%.9....%..", - "..%..........///.............A...............A..............%%..///............///....%%..9..%..", - "..%.........///..............AATAAAAAAAAAAAAAA.............%%....///............///....%%.9..%..", - "..%..........///..............,,..........................%%.....///..............///...%%..9%..", - "..%.....$$OO$*$OO$$.........,,...........................%%.....///...............///....%%..%..", - "..%.....$QQQQ;eeee$.........,,..........................%%.../////.................///....%%.%..", - "..%.....O;;;;;;;;;O.........,,.........................%%.....///...................///....%.%..", - "..%.....OIIII;jjjjO........,,..........................%.....////....................///....%%..", - "..%.....O;;;;;;;;;O.......,,...........................%....///.......................///....%..", - "..%.....$mmmm;uuuu$......,,............................%...///........................///....%..", - "..%.....$$OO$*$OO$$.....,,.......................//,/,/3/////.........................///....%..", - "..%..........,,.........,,.......................//,,,.%/////.........................///....%..", - "..%.........,,...........,,..................,,../,//,/3/////.........................///....%..", - "..%...b.....,,....,,....,,..............,,.,,.,,/,/....%..///.........................///....%..", - "..%..........,,,,,,,,,,,,,,...........,,,,.,,..........%...///........................///....%..", - "..%........0..,,,,,,,,,,,,,.........,,.................%....///......................///....%%..", - "..%......ppppp...,,pp...X.,,.....,,,,...........X......%%...///.........X..........///.....%.%..", - "..%..|---|vvv|---+-v-|.....,,...,,,,,,..................%%...///..................///.....%%.%..", - "..%..|ccfccSc 8|p.....,,,,,,,,,,,,.................%%...///................///.....%%..%..", - "..%..|o hnnh |p....,,,,,,,,,,,,,,.................%%....///.............///.....%%...%..", - "..%..vc c hnnh yvp..,,,,,,,,,..,,,....................%%....///...........///.....%%.9..%..", - "..%..vc c hnnh yvp..,,,,,,,,..,,,,,....................%%....///.........///.....%%.....%..", - "..%..|D 8vp..,,,,,,,,..,,,,,.....................%%....///......///......%%.9..9.%..", - "..%..|---|-+-|---i---|p.,,,,,,,,,..,,,,,......................%%...../////////......%%....9..%..", - "..%..|t y|r r|8 n1|..,,,,,,.,,..,,..........................%%.......///........%%.9..9..9%..", - "..%..| |r r|8 g|.,,,,,,..,,..,,...........................%%%%%%%%333%%%%%%%%%.........%..", - "..%..|S D|rrr|8 +,,,,,,..,,..,,....................................///.........9..9..9..%..", - "..%..|-+------ a|.......,,..,,............................9....9...///...9...9..........%..", - "..%..|< ||.....,,..,,..............................9.......///....9......9..9...%..", - "..%..|---+---- YYYYY yvp....,,..,,......................9...9..9...9..9..///......9.......9..%..", - "..%..|88 yYY| 1vp....,,..,,..............................9....9..9.///.9....9..9......%..", - "..%..v1 | gvp....,,..,,...............................9..9..9...///......9....9..9%..", - "..%.4|8 h 8|8nnnnn8||.....,,..,,.............................///...9..9...///...9....9..9..%..", - "..%..|--kkk-----------......,,..,,....................9...9..9...///.9..9..9.///.9....9..9...%..", - "..%....-vvv-...p.p..........,,..,,.......................9...9..9..////...9...///..9....9..9.%..", - "..%..9................9...9.,,..,,.9..9..9...9..99...9..9....9...9..9///9...///.......9......%..", - "..%.9...0.....9...9..9.9...9,,..,,...9..99...9..9..........9...9..9....//////...9....9..9....%..", - "..%...9....9.......9...9..9.,,..,,.9..9...9..99...9..9.9...9..9.9...9..9..9..x.9..99...9..9...%..", - "..%%%%%%%%%%%%%%%%%%%%%%%%%%,,..,,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..", - "..%.........................,,..,,...........................................................%.." - ], - "place_npcs": [ - { "chance": 100, "class": "isherwood_carlos", "x": 80, "y": 17 }, - { "chance": 100, "class": "isherwood_jesse", "x": 54, "y": 44 }, - { "chance": 100, "class": "isherwood_lisa", "x": 11, "y": 77 } - ], - "place_vehicles": [ { "vehicle": "uncovered_wagon", "x": 78, "y": 19, "rotation": 180, "chance": 100, "status": 0 } ], - "palettes": [ "farm_horse" ], - "terrain": { - "p": "t_grass", - "0": "t_grass", - "6": "t_grass", - "F": "t_dirtfloor", - "M": "t_dirtfloor", - "J": "t_dirtfloor", - "2": "t_dirtfloor" - }, - "furniture": { "J": "f_kiln_empty", "F": "f_forge_rock", "M": "f_workbench", "2": "f_locker" }, - "sealed_item": { - "Q": { "item": { "item": "seed_lentils" }, "furniture": "f_planter_harvest" }, - "e": { "item": { "item": "seed_tomato" }, "furniture": "f_planter_harvest" }, - "I": { "item": { "item": "seed_zucchini" }, "furniture": "f_planter_harvest" }, - "j": { "item": { "item": "seed_carrot" }, "furniture": "f_planter_harvest" }, - "m": { "item": { "item": "soybean_seed" }, "furniture": "f_planter_harvest" }, - "u": { "item": { "item": "seed_beans" }, "furniture": "f_planter_harvest" } - }, - "items": { - "k": { "item": "office", "chance": 30 }, - "f": { "item": "fridge", "chance": 30 }, - "o": { "item": "oven", "chance": 30 }, - "8": { "item": "homebooks", "chance": 30 }, - "r": { "item": "restaur_kitchen", "chance": 30 }, - "c": { "item": "kitchen_counters", "chance": 30 }, - "D": { "item": "trash", "chance": 20, "repeat": [ 2, 4 ] }, - "2": { "item": "metal_workshop", "chance": 30, "repeat": [ 2, 4 ] }, - "7": { "item": "horse_gear", "chance": 30 }, - "^": { "item": "horse_gear", "chance": 30 } - }, - "place_loot": [ - { "item": "television", "x": 17, "y": 88, "chance": 100 }, - { "item": "stepladder", "x": 67, "y": 43, "chance": 100 }, - { "item": "straw_pile", "x": [ 40, 44 ], "y": [ 48, 52 ], "chance": 30, "repeat": [ 2, 4 ] }, - { "item": "straw_pile", "x": [ 52, 54 ], "y": [ 31, 33 ], "chance": 30, "repeat": [ 2, 4 ] }, - { "item": "straw_pile", "x": [ 52, 54 ], "y": [ 35, 37 ], "chance": 30, "repeat": [ 2, 4 ] }, - { "item": "straw_pile", "x": [ 52, 54 ], "y": [ 39, 41 ], "chance": 30, "repeat": [ 2, 4 ] }, - { "item": "straw_pile", "x": [ 66, 68 ], "y": [ 31, 33 ], "chance": 30, "repeat": [ 2, 4 ] }, - { "item": "straw_pile", "x": [ 66, 68 ], "y": [ 35, 37 ], "chance": 30, "repeat": [ 2, 4 ] }, - { "item": "straw_pile", "x": [ 66, 68 ], "y": [ 39, 41 ], "chance": 30, "repeat": [ 2, 4 ] }, - { "group": "farming_seeds", "x": [ 9, 18 ], "y": [ 61, 65 ], "chance": 80, "repeat": [ 2, 4 ] }, - { "group": "farming_tools", "x": [ 74, 77 ], "y": 15, "chance": 40, "repeat": [ 2, 4 ] }, - { "group": "farming_tools", "x": [ 79, 81 ], "y": 15, "chance": 40, "repeat": [ 2, 4 ] }, - { "group": "farming_tools", "x": [ 75, 81 ], "y": [ 17, 22 ], "chance": 50, "repeat": [ 2, 4 ] }, - { "item": "bucket", "x": 46, "y": 48, "chance": 20 }, - { "item": "bucket", "x": 56, "y": 52, "chance": 30 }, - { "item": "bucket", "x": 56, "y": 33, "chance": 30 }, - { "item": "bucket", "x": 56, "y": 37, "chance": 30 }, - { "item": "bucket", "x": 64, "y": 41, "chance": 30 }, - { "item": "cattlefodder", "x": [ 52, 68 ], "y": [ 31, 41 ], "chance": 80, "repeat": [ 6, 10 ] }, - { "item": "birdfood", "x": [ 40, 44 ], "y": [ 48, 52 ], "chance": 80, "repeat": [ 2, 4 ] } - ], - "place_monster": [ - { "monster": "mon_chicken", "x": [ 40, 44 ], "y": [ 48, 52 ], "repeat": [ 2, 6 ], "chance": 100 }, - { "monster": "mon_horse", "x": [ 52, 54 ], "y": [ 31, 33 ], "chance": 90 }, - { "monster": "mon_horse", "x": [ 52, 54 ], "y": [ 35, 37 ], "chance": 90 }, - { "monster": "mon_horse", "x": [ 52, 54 ], "y": [ 39, 41 ], "chance": 50 }, - { "monster": "mon_horse", "x": [ 66, 68 ], "y": [ 31, 33 ], "chance": 80 }, - { "monster": "mon_horse", "x": [ 66, 68 ], "y": [ 35, 37 ], "chance": 60 }, - { "monster": "mon_horse", "x": [ 66, 68 ], "y": [ 39, 41 ], "chance": 60 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "horse_farm_isherwood_4_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "horse_farm_isherwood_7_hayloft", - "object": { - "fill_ter": "t_floor", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " wwwwwww.....wwwwwww ", - " w..6..>.........6.w ", - " w...6.........6...w ", - " w......*****`.....w ", - " wwww...*****...wwww ", - " w......*****....66w ", - " w.6.6..*****....66w ", - " w......*****....6.w ", - " wwww...*****...wwww ", - " w..6...*****....6.w ", - " w......*****....66w ", - " w...6..*****....6.w ", - " wwww...*****...wwww ", - " w...6...........6.w ", - " w.6.............66w ", - " w...............6.w ", - " wwwwwww.....wwwwwww ", - " " - ], - "terrain": { ">": "t_ladder_down", ".": "t_floor", "*": "t_open_air_rooved", "w": "t_wall_wood", " ": "t_open_air" }, - "furniture": { "6": "f_hay" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "horse_farm_isherwood_7_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " ................... ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "horse_farm_isherwood_9_roof", - "object": { - "fill_ter": "t_glass_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ooooooooooo ", - " ooooooooooo ", - " ooooooooooo ", - " ooooooooooo ", - " ooooooooooo ", - " ooooooooooo ", - " ooooooooooo ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "horse_farm_isherwood_10_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ....... ", - " ....... ", - " ....... ", - " ....... ", - " ....... ", - " ....... ", - " ....... ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "horse_farm_isherwood_13_2ndfloor", - "object": { - "fill_ter": "t_floor", - "rows": [ - " ", - " |-vv-|-v-v-|_____ ", - " |@*hk|@@**d|_____ ", - " |@**k|***hkv_____ ", - " vd**8|8***k|_____ ", - " |-+------+-|_____ ", - " v**********|_____ ", - " |---|-+-|*8|_____ ", - " |t*B|S*y|**v_____ ", - " |**B|***|**v_____ ", - " |S*D|BBt|**v_____ ", - " |-+------*8|_____ ", - " |>*********|______ ", - " |---+-------______ ", - " |@@****d|_________ ", - " v@@****yv_________ ", - " |n*****d|_________ ", - " |--1n1---_________ ", - " -vvv- ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "farm_horse" ], - "terrain": { "_": "t_shingle_flat_roof", "*": "t_floor", " ": "t_open_air", ">": "t_stairs_down" }, - "items": { - "@": { "item": "bed", "chance": 50, "repeat": [ 1, 2 ] }, - "D": { "item": "trash_cart", "chance": 50 }, - "B": { "item": "shower", "chance": 40, "repeat": [ 2, 4 ] }, - "d": { "item": "dresser", "chance": 70, "repeat": [ 2, 4 ] }, - "8": { "item": "homebooks", "chance": 70, "repeat": [ 2, 4 ] }, - "k": { "item": "bedroom", "chance": 60, "repeat": [ 2, 4 ] }, - "S": { "item": "softdrugs", "chance": 60, "repeat": [ 2, 4 ] } - } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "horse_farm_isherwood_13_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " |22222222223 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |.......---3 ", - " |.......3 ", - " |.......3 ", - " |.......3 ", - " |--...--- ", - " ----- ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } - } -] diff --git a/data/json/mapgen/isherwood_farms/farm_isherwood.json b/data/json/mapgen/isherwood_farms/farm_isherwood.json index 4fda44bd6092b..88aec5e56b916 100644 --- a/data/json/mapgen/isherwood_farms/farm_isherwood.json +++ b/data/json/mapgen/isherwood_farms/farm_isherwood.json @@ -36,8 +36,8 @@ " #____2_______2____# ###++### -u.....hLLh..H- F Q F ", " W____g_______g____W #EE__@V# -e.....hLLh..Lw F DDDDDDDDDDDDDDDD F ", " W____g_______g____W #E__J_0# -z.....hLLh..H- F F ", - " #____2_______2____# ###___^#,+............*- F DDDDDDDDDDDDDDDD F ", - " #____2_______2____# #>Z____+,-*..Y----+----- F F ", + " #____2_______2____# ###___^+,+............*- F DDDDDDDDDDDDDDDD F ", + " #____2_______2____# #>Z____# -*..Y----+----- F F ", " #33332_______23333# ###___V# --+---|kk..LH*- F DDDDDDDDDDDDDDDD F ", " #______________yyy# #s___JV# -*.S|d|kh.....w F F ", " W_______________yyW #s____A# wb..+.+....BB.- F DDDDDDDDDDDDDDDD F ", @@ -129,7 +129,7 @@ "@": "f_tablesaw", "^": [ "f_mitresaw", "f_bandsaw" ] }, - "items": { "s": { "item": "preserved_food", "chance": 100, "repeat": [ 8, 20 ] } }, + "place_items": [ ], "place_item": [ { "item": "straw_pile", "x": [ 3, 5 ], "y": [ 5, 7 ], "amount": [ 0, 8 ] }, { "item": "cattlefodder", "x": [ 3, 5 ], "y": [ 5, 7 ], "amount": [ 0, 4 ] }, diff --git a/data/json/mapgen/lab/lab_floorplans_finale1level.json b/data/json/mapgen/lab/lab_floorplans_finale1level.json index 96c2653f16b6d..5787e4a88a242 100644 --- a/data/json/mapgen/lab/lab_floorplans_finale1level.json +++ b/data/json/mapgen/lab/lab_floorplans_finale1level.json @@ -133,8 +133,7 @@ "place_monster": [ { "monster": "mon_tripod", "x": [ 1, 4 ], "y": [ 20, 22 ], "chance": 90 }, { "monster": "mon_tripod", "x": [ 19, 20 ], "y": [ 20, 22 ], "chance": 90 }, - { "monster": "mon_zombie_scientist", "x": [ 2, 20 ], "y": [ 1, 9 ], "chance": 90, "repeat": [ 1, 2 ] }, - { "monster": "mon_mech_lifter", "x": 2, "y": 2, "chance": 50 } + { "monster": "mon_zombie_scientist", "x": [ 2, 20 ], "y": [ 1, 9 ], "chance": 90, "repeat": [ 1, 2 ] } ] } }, @@ -167,10 +166,10 @@ "........g,V,g...........", "........|,,,|......C....", "........|-g-|...........", - ".7......................", - ".|L|...............C....", - ".g.g....................", - ".|g|....................", + "........................", + "...................C....", + "........................", + "........................", "........................" ], "palettes": [ "lab_palette", "lab_loot_research" ], @@ -183,12 +182,6 @@ "security": 2, "options": [ { "name": "UNLOCK STORAGE", "action": "unlock", "security": 4 } ], "failures": [ { "action": "damage" }, { "action": "secubots" } ] - }, - "7": { - "name": "Prototype DARPA-713 AUTHORIZED PILOTS ONLY", - "security": 2, - "options": [ { "name": "UNLOCK STORAGE", "action": "unlock", "security": 4 } ], - "failures": [ { "action": "damage" }, { "action": "secubots" } ] } }, "place_monster": [ @@ -196,8 +189,7 @@ { "monster": "mon_secubot", "x": [ 1, 22 ], "y": [ 10, 13 ], "chance": 50, "repeat": 2 }, { "monster": "mon_secubot", "x": [ 13, 22 ], "y": [ 10, 22 ], "chance": 50, "repeat": 2 }, { "monster": "mon_secubot", "x": [ 1, 7 ], "y": [ 10, 22 ], "chance": 50, "repeat": 2 }, - { "monster": "mon_secubot", "x": [ 1, 22 ], "y": [ 21, 22 ], "chance": 50 }, - { "monster": "mon_mech_recon", "x": 3, "y": 21, "chance": 80 } + { "monster": "mon_secubot", "x": [ 1, 22 ], "y": [ 21, 22 ], "chance": 50 } ], "place_loot": [ { "item": "id_science", "x": 6, "y": 14, "chance": 100 } ], "place_nested": [ @@ -364,10 +356,7 @@ ], "palettes": [ "lab_palette" ], "monster": { "7": { "monster": "mon_turret" } }, - "place_monster": [ - { "monster": "mon_secubot", "x": [ 1, 22 ], "y": [ 1, 22 ], "chance": 75, "repeat": 2 }, - { "monster": "mon_mech_combat", "x": 2, "y": 2, "chance": 33 } - ], + "place_monster": [ { "monster": "mon_secubot", "x": [ 1, 22 ], "y": [ 1, 22 ], "chance": 75, "repeat": 2 } ], "place_loot": [ { "item": "id_science", "x": 7, "y": 11, "chance": 100 } ], "place_nested": [ { "chunks": [ "lab_finale_4x4" ], "x": 10, "y": 10 }, { "chunks": [ "lab_border_walls" ], "x": 0, "y": 0 } ] } diff --git a/data/json/mapgen/lake_buildings/cabin_lake.json b/data/json/mapgen/lake_buildings/cabin_lake.json deleted file mode 100644 index 3ff5ac3d395e2..0000000000000 --- a/data/json/mapgen/lake_buildings/cabin_lake.json +++ /dev/null @@ -1,272 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": "cabin_lake", - "object": { - "fill_ter": "t_floor", - "rows": [ - "............//..........", - "...........//...........", - "...........//...........", - "............//..........", - "............//..........", - "...........//...........", - "..........//.B..........", - "...////...//............", - ".//.../////.777.........", - "//..|||0||+||0|||||00||.", - "//..|bbg ay|mmsmf|.", - "//..|b n0.", - "//..0C t X hth |Rnnon|.", - "//..|W t X hth |||||||.", - ".//.0C t X hth |sR&|S|.", - "//..|y + |.", - "//..|||||+|||+|||||0|||.", - "//...|D D|y a|k|.....", - "//...| @@ | @|l+.....", - "//...|g@@ty|d t@|||.....", - "//...||0|0|||00||4......", - ".//.....................", - "..//...............x....", - "...//..................." - ], - "terrain": { - " ": "t_floor", - "B": "t_grass", - "x": "t_grass", - "/": "t_dirt", - "7": "t_dirt", - ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], - "|": "t_wall_log", - "0": "t_window_domestic", - "+": "t_door_c", - "4": "t_gutter_downspout" - }, - "furniture": { - "h": "f_chair", - "@": "f_bed", - "y": [ "f_indoor_plant_y", "f_indoor_plant" ], - "X": "f_sofa", - "t": "f_table", - "s": "f_sink", - "o": "f_oven", - "f": "f_fridge", - "n": "f_counter", - "m": "f_cupboard", - "d": "f_dresser", - "R": "f_trashcan", - "D": "f_wardrobe", - "7": "f_bench", - "C": "f_armchair", - "b": "f_bookcase", - "B": "f_birdbath", - "a": "f_rack_coat", - "g": "f_floor_lamp", - "W": "f_fireplace", - "i": "f_beaded_door", - "x": "f_rotary_clothesline", - "S": "f_shower", - "l": "f_water_heater", - "k": "f_water_purifier" - }, - "toilets": { "&": { } }, - "liquids": { "l": { "liquid": "water_clean", "amount": [ 0, 100 ] } }, - "items": { - "b": { "item": "homebooks", "chance": 20, "repeat": [ 2, 4 ] }, - "@": { "item": "bed", "chance": 30, "repeat": [ 2, 4 ] }, - "d": { "item": "allclothes", "chance": 55, "repeat": [ 1, 2 ] }, - "D": { "item": "allclothes", "chance": 50, "repeat": [ 2, 3 ] }, - "o": { "item": "oven", "chance": 25, "repeat": [ 1, 2 ] }, - "f": { "item": "fridge", "chance": 25, "repeat": [ 1, 2 ] }, - "S": { "item": "shower", "chance": 25, "repeat": [ 1, 2 ] }, - "R": { "item": "trash", "chance": 25, "repeat": [ 1, 2 ] }, - "w": { "item": "stash_wood", "chance": 25, "repeat": [ 1, 2 ] }, - "t": { "item": "livingroom", "chance": 25, "repeat": [ 1, 2 ] }, - "a": { "item": "jackets", "chance": 25, "repeat": [ 1, 2 ] }, - "m": [ - { "item": "groce_condiment", "chance": 10, "repeat": [ 1, 2 ] }, - { "item": "groce_ingredient", "chance": 30, "repeat": [ 1, 2 ] }, - { "item": "groce_bread", "chance": 20, "repeat": [ 1, 2 ] } - ], - "n": [ - { "item": "dishes_utility", "chance": 20, "repeat": [ 1, 2 ] }, - { "item": "kitchen_appliances", "chance": 30, "repeat": [ 1, 2 ] }, - { "item": "dishes_dining", "chance": 10, "repeat": [ 1, 2 ] } - ] - }, - "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "cabin_lake_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " |222222222222222223 ", - " |.................3 ", - " |.................3 ", - " |............&....3 ", - " |W................3 ", - " |...............=.3 ", - " |.................3 ", - " ||............3---3 ", - " |............3 ", - " |............3 ", - " |..........5-3 ", - " |----------3 ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" }, - "furniture": { "W": "f_chimney" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "lake_cabin_boathouse", - "object": { - "fill_ter": "t_grass", - "rows": [ - "~~~~~~~--||||||||||...9.", - "~~~~~~--dddddd|b |.9...", - "~~~~~~~~~~~~~d|b r|...9.", - "~~~~~~~~~~~~~d r|9....", - "~~~~~~~~~~~~~d r|...9.", - "~~~~~~~~~~~~~d|b 0.....", - "~-dddddddddddd|b |...9.", - "--.......|||||||+||.9...", - "--.............///......", - "...............///...9..", - "...............//.9.....", - "..............//....9...", - ".............//...9..9..", - "............//.9........", - "...........//...x|***|.9", - "...........////.t*#t#|..", - "...........//////...M|..", - "...........///...*JUU|.9", - "..........//..9..|***|..", - ".........//.............", - "........//.....9..9...9.", - "........//..9...........", - ".////..//.9.......9.9...", - "//..////......9........." - ], - "place_vehicles": [ - { "vehicle": "boat_motor_single", "x": 12, "y": 5, "rotation": 180, "chance": 10, "status": 3 }, - { "vehicle": "kayak_racing", "x": 11, "y": 2, "rotation": 180, "chance": 30, "status": 0 }, - { "vehicle": "canoe", "x": 2, "y": 5, "rotation": 180, "chance": 100, "status": 0 } - ], - "place_loot": [ { "item": "rope_30", "x": 12, "y": 6, "chance": 100 }, { "item": "stepladder", "x": 17, "y": 1, "chance": 100 } ], - "terrain": { - " ": "t_floor", - "b": "t_floor", - "r": "t_floor", - "*": "t_wall_log_half", - "d": "t_dock", - "/": "t_dirt", - "M": "t_dirt", - "U": "t_dirt", - "~": "t_water_dp", - "-": "t_water_sh", - ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], - "|": "t_wall_log", - "0": "t_window_domestic", - "+": "t_door_c", - "9": [ - "t_tree_blackjack", - [ "t_tree_walnut", 5 ], - [ "t_tree_chestnut", 5 ], - "t_tree_beech", - "t_tree_hazelnut", - "t_tree_cottonwood", - [ "t_tree", 5 ], - [ "t_tree_elm", 3 ], - "t_tree_dead", - "t_tree_apple", - "t_tree_pear", - "t_tree_cherry", - "t_tree_peach", - "t_tree_apricot", - "t_tree_plum", - "t_tree_mulberry", - "t_tree_elderberry", - [ "t_tree_pine", 5 ], - "t_tree_birch", - [ "t_tree_willow", 3 ], - "t_tree_maple", - "t_tree_hickory", - "t_tree_almond", - "t_tree_pecan" - ] - }, - "furniture": { - "r": "f_rack", - "b": "f_bench", - "U": "f_bench", - "#": "f_smoking_rack", - "t": "f_table", - "x": "f_metal_butcher_rack", - "J": "f_kiln_empty" - }, - "items": { - "r": { "item": "fishing_items", "chance": 90, "repeat": [ 2, 4 ] }, - "b": { "item": "fishing_items", "chance": 30, "repeat": [ 2, 4 ] }, - "d": { "item": "fishing_items", "chance": 5, "repeat": [ 1, 2 ] }, - "M": { "item": "stash_wood", "chance": 100, "repeat": [ 6, 10 ] } - }, - "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 10, 22 ], "y": [ 15, 22 ], "density": 0.1 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "lake_cabin_boathouse_roof", - "object": { - "fill_ter": "t_tar_flat_roof", - "rows": [ - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " .......... ", - " ", - " ", - " ", - " ", - " ", - " ", - " ..... ", - " ..... ", - " ..... ", - " ..... ", - " ..... ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_tar_flat_roof" } - } - } -] diff --git a/data/json/mapgen/mall.json b/data/json/mapgen/mall.json index 81350053e6292..2f9e3e753c75b 100644 --- a/data/json/mapgen/mall.json +++ b/data/json/mapgen/mall.json @@ -131,7 +131,7 @@ "om_terrain": "mall_b_3", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ " ", " ", @@ -318,7 +318,7 @@ "om_terrain": "mall_b_4", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ " ", " ", @@ -363,7 +363,7 @@ { "item": "tools_carpentry", "chance": 10, "repeat": [ 1, 2 ] } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 13, 23 ], "y": [ 2, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 13, 23 ], "y": [ 2, 23 ], "density": 0.3 } ] } }, { @@ -373,7 +373,7 @@ "om_terrain": "mall_a_4_roof", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ " ", " ", @@ -498,7 +498,7 @@ "om_terrain": "mall_b_5", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ " ", " ", @@ -532,8 +532,7 @@ { "item": "tools_common", "chance": 50, "repeat": [ 1, 2 ] }, { "item": "tools_mechanic", "chance": 10, "repeat": [ 1, 2 ] } ] - }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 14 ], "y": [ 13, 23 ], "density": 0.4 } ] + } } }, { @@ -816,8 +815,7 @@ "items": { "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] }, "Y": { "item": "trash", "chance": 20, "repeat": [ 1, 2 ] } - }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 17, 23 ], "y": [ 5, 23 ], "density": 0.4 } ] + } } }, { @@ -943,7 +941,7 @@ "B": [ { "item": "bags", "chance": 5 }, { "item": "snacks", "chance": 20 }, { "item": "vending_food_items", "chance": 10 } ], "Q": [ { "item": "bags", "chance": 20 }, { "item": "shoestore_shoes", "chance": 30 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 10, 23 ], "y": [ 2, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 10, 23 ], "y": [ 2, 23 ], "density": 0.3 } ] } }, { @@ -980,7 +978,7 @@ "........................" ], "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north" }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.3 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -1071,10 +1069,8 @@ "M": "t_floor", "Q": "t_floor", "%": "t_floor", - "j": "t_thconc_floor", - "0": "t_thconc_floor", - "P": "t_thconc_floor", - "t": "t_thconc_floor" + "j": "t_concrete", + "t": "t_concrete" }, "furniture": { "%": "f_bench", "0": "f_shower" }, "items": { @@ -1102,7 +1098,7 @@ { "item": "winter", "chance": 30 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -1111,7 +1107,7 @@ "om_terrain": "mall_a_12_roof", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ " !...........#______", " !...........#_____z", @@ -1157,8 +1153,7 @@ { "item": "child_items", "chance": 20, "repeat": [ 1, 2 ] } ], "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ] - }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 17, 23 ], "y": [ 5, 23 ], "density": 0.4 } ] + } } }, { @@ -1280,13 +1275,13 @@ ], "palettes": [ "mall_palette_2" ], "terrain": { - "P": "t_thconc_floor", - "z": "t_thconc_floor", - "S": "t_thconc_floor", - "C": "t_thconc_floor", - "I": "t_thconc_floor", - "B": "t_thconc_floor", - "w": "t_thconc_floor", + "P": "t_concrete", + "z": "t_concrete", + "S": "t_concrete", + "C": "t_concrete", + "I": "t_concrete", + "B": "t_concrete", + "w": "t_concrete", "0": "t_carpet_red", "%": "t_carpet_purple", "d": "t_carpet_purple" @@ -1302,7 +1297,7 @@ ], "Y": { "item": "floor_trash", "chance": 100, "repeat": [ 1, 2 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -1450,11 +1445,11 @@ "fill_ter": "t_linoleum_white", "rows": [ "|....|^..+.t|__| ", - "|....|^..|--|__|H| ", - "|....+...+.t|__|dH ", + "|....|...|--|__|H| ", + "|....+^..+.t|__|dH ", "F....|---|--|__|yH ", - ".....+...+.t|__=dH ", - ".....|^..|.-|__|H| ", + ".....+^..+.t|__=dH ", + ".....|...|.-|__|H| ", "..yuu|^..+.t|__| ", "+H---------||==| ", "88%TTT%8888|z__| ", @@ -1475,15 +1470,12 @@ "yFFy......yH " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 13 ], "density": 0.4 } ], "terrain": { "%": "t_carpet_purple", "T": "t_carpet_purple", "K": "t_carpet_purple", "!": "t_carpet_purple", - "A": "t_carpet_purple", - "z": "t_thconc_floor", - "^": "t_linoleum_white" + "A": "t_carpet_purple" }, "furniture": { "%": [ "f_indoor_plant_y", "f_indoor_plant" ], "^": "f_sink", "!": "f_counter" }, "items": { @@ -1802,7 +1794,6 @@ " " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 17, 23 ], "y": [ 1, 12 ], "density": 0.2 } ], "terrain": { "y": "t_carpet_red", "Y": "t_carpet_red" }, "items": { "y": { "item": "trash_cart", "chance": 10, "repeat": [ 1, 2 ] }, @@ -1930,7 +1921,6 @@ " H...# " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 12 ], "density": 0.4 } ], "terrain": { "F": "t_linoleum_gray", "B": "t_carpet_red", "$": "t_ladder_up", "%": "t_carpet_green", "K": "t_carpet_green" }, "furniture": { "%": "f_chair" }, "items": { @@ -2063,7 +2053,6 @@ " #.." ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "A": "t_carpet_yellow", "B": "t_carpet_yellow", @@ -2137,7 +2126,8 @@ { "item": "elecsto_persele", "chance": 10, "repeat": [ 1, 2 ] }, { "item": "elecsto_cameras", "chance": 10, "repeat": [ 1, 2 ] } ] - } + }, + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -2256,7 +2246,6 @@ "....## ##......." ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "items": { "K": { "item": "cell_shop", "chance": 50 }, "M": { "item": "jewelry_accessories", "chance": 50 }, @@ -2414,7 +2403,7 @@ "V": { "item": "misc_smoking", "chance": 50, "repeat": [ 1, 2 ] }, "z": { "item": "smoke_shop", "chance": 50, "repeat": [ 4, 8 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -2560,7 +2549,7 @@ "Q": [ { "item": "pants", "chance": 30, "repeat": [ 2, 4 ] }, { "item": "suits", "chance": 30, "repeat": [ 2, 4 ] } ], "d": [ { "item": "jackets", "chance": 40 }, { "item": "pants", "chance": 100 }, { "item": "shirts", "chance": 100 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -2597,7 +2586,6 @@ "........................" ], "terrain": { ".": "t_flat_roof", " ": "t_open_air", "2": "t_gutter_north" }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 1, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ] } }, @@ -2702,7 +2690,7 @@ "Q": [ { "item": "pants", "chance": 30, "repeat": [ 2, 4 ] }, { "item": "suits", "chance": 30, "repeat": [ 2, 4 ] } ], "d": [ { "item": "jackets", "chance": 40 }, { "item": "pants", "chance": 100 }, { "item": "shirts", "chance": 100 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -2833,7 +2821,6 @@ ], "palettes": [ "mall_palette_2" ], "terrain": { ".": "t_floor" }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 9 ], "density": 0.4 } ], "items": { "Q": { "item": "allclothes", "chance": 20, "repeat": [ 1, 2 ] }, "y": { "item": "trash", "chance": 10 }, @@ -3044,7 +3031,6 @@ " HJA^^^^^^^^AJ" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 18, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "!": "t_carpet_red" }, "furniture": { "%": "f_pool_table", "!": "f_counter" }, "items": { @@ -3210,7 +3196,7 @@ "U": { "item": "beauty", "chance": 60, "repeat": [ 2, 4 ] }, "%": { "item": "candy_shop", "chance": 60, "repeat": [ 2, 4 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 16, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -3373,7 +3359,7 @@ "M": { "item": "knife_shop", "chance": 40, "repeat": [ 2, 4 ] }, "z": { "item": "softdrugs", "chance": 40, "repeat": [ 2, 4 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.3 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -3537,7 +3523,7 @@ { "item": "leather_shop_accessories", "chance": 100 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.1 } ] } }, { @@ -3574,8 +3560,7 @@ "........................" ], "terrain": { ".": "t_flat_roof" }, - "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ] + "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ] } }, { @@ -3687,7 +3672,7 @@ { "item": "bags", "chance": 100 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -3705,10 +3690,10 @@ "........................", "........................", "........................", - "........................", - "........................", - "........................", - "........................", + "..................o.....", + "..................o.....", + "..................o.....", + "..................o.....", "........................", "........................", "........................", @@ -3724,7 +3709,6 @@ "........................" ], "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ] } }, @@ -3843,7 +3827,7 @@ "z": { "item": "crate_wine", "chance": 30 }, "K": [ { "item": "table_wine", "chance": 30 }, { "item": "wines_worthy", "chance": 30 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -3885,7 +3869,7 @@ "1": "t_door_metal_locked", "3": "t_gates_mech_control", "=": "t_door_c", - "_": "t_thconc_floor" + "_": "t_concrete" } } }, @@ -3999,7 +3983,6 @@ "|---..|^^^| " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 1, 9 ], "y": [ 1, 23 ], "density": 0.2 } ], "terrain": { "Y": "t_linoleum_gray", "t": "t_linoleum_gray", "<": "t_stairs_up" }, "items": { "Y": { "item": "trash", "chance": 30, "repeat": [ 2, 4 ] }, @@ -4052,7 +4035,7 @@ ">": "t_stairs_down", "|": "t_wall_w", "E": "t_elevator", - "_": "t_thconc_floor" + "_": "t_concrete" }, "place_items": [ { "item": "roof_trash", "x": [ 0, 8 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ] } @@ -4273,7 +4256,6 @@ " |...|99999999" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 12, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "F": "t_linoleum_gray", "y": "t_linoleum_gray", @@ -4462,7 +4444,7 @@ "K": { "item": "candy_shop", "chance": 20, "repeat": [ 3, 5 ] }, "Q": { "item": "softdrugs", "chance": 20, "repeat": [ 3, 5 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.3 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -4623,7 +4605,7 @@ { "item": "shoestore_shoes", "chance": 100 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.3 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -4745,7 +4727,6 @@ "F.F%F.F%F.F%F.F%F.F%F.F%" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "F": "t_linoleum_gray", "Y": "t_linoleum_gray", "%": "t_linoleum_gray" }, "furniture": { "%": "f_table" }, "items": { @@ -4901,7 +4882,7 @@ { "item": "bags", "chance": 100 } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.3 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -5047,7 +5028,7 @@ "*": { "item": "musicstore_showpiece", "chance": 20, "repeat": [ 1, 3 ] }, "M": { "item": "mussto_windinst", "chance": 20, "repeat": [ 1, 3 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 13, 23 ], "density": 0.15 } ] } }, { @@ -5176,7 +5157,6 @@ "99.|.PP|^^| " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 8 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "d": "t_floor", "K": "t_carpet_yellow" }, "items": { "Y": { "item": "trash", "chance": 30, "repeat": [ 2, 4 ] }, @@ -5407,7 +5387,6 @@ " |..|zz.z|^8J8" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 11, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "I": "t_carpet_yellow", "M": "t_carpet_yellow", @@ -5585,7 +5564,7 @@ "3": { "item": "costume_accessories", "chance": 30 }, "0": { "item": "costume_weapons", "chance": 30 } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -5594,7 +5573,7 @@ "om_terrain": "mall_a_48_roof", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ "........................", "........................", @@ -5769,7 +5748,7 @@ "m": { "item": "butcher_raw_meat", "chance": 20, "repeat": [ 2, 4 ] }, "U": { "item": "groce_ingredient", "chance": 20, "repeat": [ 2, 4 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.3 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -5778,7 +5757,7 @@ "om_terrain": "mall_a_49_roof", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ "........................", "........................", @@ -5806,7 +5785,6 @@ "........................" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { ".": "t_flat_roof", "4": "t_chainfence", @@ -5955,7 +5933,7 @@ "u": { "item": "default_vending_machine", "chance": 50, "repeat": [ 2, 8 ] }, "K": { "item": "pizza_table", "chance": 20 } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -5964,7 +5942,7 @@ "om_terrain": "mall_a_50_roof", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ "........................", "........................", @@ -5992,7 +5970,6 @@ "........................" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { ".": "t_flat_roof", " ": "t_open_air", @@ -6101,7 +6078,7 @@ { "item": "vending_drink", "x": [ 4, 4 ], "y": [ 12, 12 ], "chance": 60 }, { "item": "vending_food", "x": [ 4, 4 ], "y": [ 13, 13 ], "chance": 60 } ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.5 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 2, 23 ], "y": [ 1, 22 ], "density": 0.1 } ] } }, { @@ -6151,7 +6128,7 @@ "I": { "item": "office", "chance": 30 }, "S": { "item": "office_paper", "chance": 30 } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -6160,7 +6137,7 @@ "om_terrain": "mall_a_51_roof", "weight": 200, "object": { - "fill_ter": "t_thconc_floor", + "fill_ter": "t_concrete", "rows": [ "........................", "..........!.....*....*..", @@ -6188,7 +6165,6 @@ "........................" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { ".": "t_flat_roof", "*": "t_flat_roof", @@ -6344,7 +6320,7 @@ "R": { "item": "novels", "chance": 50 }, "4": { "item": "manuals", "chance": 50 } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -6467,7 +6443,6 @@ "R9RR9^R|^^| " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 9 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "K": "t_carpet_yellow", "4": "t_floor", "R": "t_carpet_yellow", "A": "t_floor" }, "furniture": { "4": "f_table" }, "items": { @@ -6697,7 +6672,6 @@ " |b^%^^^^^^^^^^^" ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 11, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "S": "t_linoleum_gray", "I": "t_linoleum_gray", @@ -6891,7 +6865,7 @@ "P": [ { "item": "jackets", "chance": 10 }, { "item": "bags", "chance": 10 } ] }, "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_harvest" } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -7039,7 +7013,7 @@ "3": { "item": "glass_shop", "chance": 20, "repeat": [ 1, 2 ] }, "4": { "item": "glass_shop", "chance": 20, "repeat": [ 1, 2 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -7173,7 +7147,7 @@ "4": { "item": "glass_shop", "chance": 30 }, "3": { "item": "glass_shop", "chance": 30 } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -7321,7 +7295,7 @@ "K": { "item": "elecsto_diy", "chance": 30 }, "4": { "item": "office", "chance": 30 } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -7465,7 +7439,7 @@ { "item": "mil_food_nodrugs", "chance": 20, "repeat": [ 1, 2 ] } ] }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 23 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 8, 23 ], "density": 0.15 } ] } }, { @@ -7502,7 +7476,6 @@ "........................" ], "terrain": { ".": "t_flat_roof", "o": "t_glass_roof" }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 23 ], "density": 0.4 } ], "place_items": [ { "item": "roof_trash", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] } ] } }, @@ -7612,7 +7585,6 @@ "|Y..3.i|^^| " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 9 ], "y": [ 1, 23 ], "density": 0.4 } ], "terrain": { "R": "t_carpet_yellow", ">": "t_stairs_down" }, "furniture": { "4": "f_table", "3": "f_counter" }, "items": { @@ -7847,7 +7819,6 @@ " " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 10, 23 ], "y": [ 1, 11 ], "density": 0.4 } ], "terrain": { "K": "t_carpet_green" }, "furniture": { "3": "f_table" }, "items": { @@ -8010,7 +7981,7 @@ "P": { "item": "cleaning", "chance": 20, "repeat": [ 2, 4 ] }, "3": { "item": "underwear", "chance": 20, "repeat": [ 2, 4 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 12 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.15 } ] } }, { @@ -8145,7 +8116,7 @@ "V": { "item": "glass_shop", "chance": 10, "repeat": [ 2, 4 ] }, "K": { "item": "glass_shop", "chance": 10, "repeat": [ 2, 4 ] } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.15 } ] } }, { @@ -8258,7 +8229,6 @@ " " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 1, 10 ], "density": 0.4 } ], "terrain": { "A": "t_linoleum_gray", "Y": "t_linoleum_gray", "F": "t_linoleum_gray" }, "items": { "K": [ @@ -8426,7 +8396,7 @@ ], "I": { "item": "office", "chance": 30 } }, - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.4 } ] + "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 3, 10 ], "density": 0.15 } ] } }, { @@ -8687,7 +8657,6 @@ " " ], "palettes": [ "mall_palette_2" ], - "place_monsters": [ { "monster": "GROUP_MALL", "x": [ 3, 10 ], "y": [ 1, 10 ], "density": 0.4 } ], "terrain": { "F": "t_floor" }, "items": { "U": [ diff --git a/data/json/mapgen/mapgen-test.json b/data/json/mapgen/mapgen-test.json index b377961e0fe81..ffa3f3da92313 100644 --- a/data/json/mapgen/mapgen-test.json +++ b/data/json/mapgen/mapgen-test.json @@ -23,11 +23,6 @@ "color": "white", "mondensity": 1 }, - { - "type": "ter_furn_transform", - "id": "mapgen_test", - "terrain": [ { "result": "t_dirt", "valid_terrain": [ "t_grass" ] } ] - }, { "type": "mapgen", "method": "json", @@ -36,7 +31,7 @@ "//": "Some of the squares should have a frame, but not all.", "fill_ter": "t_grass", "rows": [ - " r", + " ", " ", " ", " ", @@ -117,9 +112,7 @@ "vehicles": { "o": { "vehicle": "welding_cart", "chance": 100, "fuel": 40, "status": 1 }, "s": { "vehicle": "wheelchair", "chance": 100, "status": 1 } - }, - "place_ter_furn_transforms": [ { "transform": "mapgen_test", "x": 22, "y": 0 } ], - "ter_furn_transforms": { "r": { "transform": "mapgen_test" } } + } } } ] diff --git a/data/json/mapgen/petstore.json b/data/json/mapgen/petstore.json index d926a2f74bdf0..d647e061b671d 100644 --- a/data/json/mapgen/petstore.json +++ b/data/json/mapgen/petstore.json @@ -134,8 +134,15 @@ "object": { "fill_ter": "t_floor", "place_item": [ + { "item": "catfood_canned", "repeat": 1, "x": 8, "y": 7 }, + { "item": "catfood_canned", "repeat": 1, "x": 8, "y": 8 }, { "item": "pet_carrier", "repeat": 1, "x": 21, "y": 9 }, + { "item": "dogfood_canned", "repeat": 1, "x": 8, "y": 10 }, { "item": "pet_carrier", "repeat": 1, "x": 21, "y": 10 }, + { "item": "dogfood_canned", "repeat": 1, "x": 8, "y": 11 }, + { "item": "dogfood_canned", "repeat": 1, "x": 15, "y": 12 }, + { "item": "catfood_canned", "repeat": 1, "x": 16, "y": 12 }, + { "item": "catfood_canned", "repeat": 1, "x": 17, "y": 12 }, { "item": "pet_carrier", "repeat": 1, "x": 8, "y": 14 }, { "item": "bathroom_scale", "x": 21, "y": 19 } ], diff --git a/data/json/mapgen/prison_1.json b/data/json/mapgen/prison_1.json index 63fc011ffaab5..d9b82ed982a78 100644 --- a/data/json/mapgen/prison_1.json +++ b/data/json/mapgen/prison_1.json @@ -576,7 +576,7 @@ { "id": "prison_canine_food", "type": "item_group", - "items": [ { "item": "dogfood", "prob": 100, "container-item": "can_food" } ] + "items": [ [ "dogfood_canned", 100 ] ] }, { "id": "prison_canine_bowl", diff --git a/data/json/mapgen/sewage_treatment.json b/data/json/mapgen/sewage_treatment.json new file mode 100644 index 0000000000000..62fb6fb0cc988 --- /dev/null +++ b/data/json/mapgen/sewage_treatment.json @@ -0,0 +1,602 @@ +[ + { + "type": "palette", + "id": "sewage_treatment_palette", + "terrain": { + " ": [ "t_dirt", "t_grass" ], + "?": "t_shrub", + ")": "t_water_pool_shallow", + ".": "t_pavement", + "_": "t_sidewalk", + "p": "t_pavement_y", + "|": "t_chainfence", + "C": "t_chaingate_l", + "~": "t_sewage", + "!": "t_metal_railing", + "@": "t_grate", + "w": "t_water_pool", + "A": "t_dirt", + "1": "t_sewage_pipe", + "&": "t_sewage_pump", + "0": "t_manhole_cover", + "O": "t_thconc_floor", + "H": "t_sconc_wall", + "z": "t_concrete", + "9": "t_gutter_downspout", + "-": "t_wall_metal", + "W": "t_window_no_curtains", + "t": "t_thconc_floor", + "m": "t_metal_floor", + "b": "t_door_metal_pickable", + "e": "t_door_metal_locked", + "D": "t_door_glass_c", + "6": "t_console_broken", + "+": "t_door_c", + ",": "t_floor", + "M": "t_metal_floor", + "<": "t_ladder_up", + ">": "t_stairs_down", + "%": "t_machinery_heavy", + "$": "t_machinery_light", + "{": "t_thconc_floor", + "R": "t_thconc_floor", + "J": "t_current_trans", + "U": "t_sai_box", + "G": "t_generator_broken", + "F": "t_potential_trans", + "7": "t_metal_floor", + "4": "t_metal_floor", + "g": "t_metal_floor", + "Y": "t_switchgear_s" + } + }, + { + "type": "palette", + "id": "sewage_treatment_sewer_palette", + "terrain": { + "c": "t_thconc_floor", + "l": "t_thconc_floor", + "L": "t_thconc_floor", + "n": "t_thconc_floor", + "{": "t_thconc_floor", + "f": "t_thconc_floor", + ";": "t_thconc_floor", + "q": "t_thconc_floor", + "r": "t_thconc_floor", + "w": "t_thconc_floor", + "t": "t_thconc_floor", + "0": "t_thconc_floor", + "[": "t_thconc_floor", + "I": "t_thconc_floor", + "h": "t_thconc_floor", + "D": "t_thconc_floor", + "1": "t_thconc_floor", + "=": "t_rock_floor", + ">": "t_stairs_up", + "!": "t_bars", + "~": "t_sewage", + "`": "t_sewage", + "%": "t_rock", + ".": "t_thconc_floor", + "^": "t_ladder_up", + "*": "t_door_bar_locked", + "x": "t_bridge", + "#": "t_grate", + "b": "t_door_metal_pickable", + "H": "t_sconc_wall", + "2": "t_sewage_pipe", + "U": "t_sai_box", + "G": "t_generator_broken", + "Y": "t_switchgear_s", + "&": "t_sewage_pump", + "-": "t_wall_glass", + "A": "t_railing_h", + "a": "t_railing_v", + "|": "t_chainfence", + "C": "t_chaingate_l", + "$": "t_machinery_light", + "@": "t_machinery_heavy", + "v": "t_machinery_old", + "+": "t_door_c", + "6": "t_console_broken" + } + }, + { + "id": "treatment_chemicals", + "type": "item_group", + "items": [ + { "item": "bleach", "container-item": "55gal_drum", "charges-min": 10, "charges-max": 126, "chance": 50 }, + { + "item": "chem_sulphuric_acid", + "container-item": "55gal_drum", + "charges-min": 2, + "charges-max": 50, + "chance": 20 + }, + { + "item": "material_quicklime", + "container-item": "55gal_drum", + "charges-min": 2, + "charges-max": 50, + "chance": 20 + }, + { "item": "55gal_drum", "chance": 50 } + ] + }, + { + "id": "sewage_samples", + "type": "item_group", + "items": [ + { "item": "sewage", "container-item": "flask_glass", "charges": 1, "chance": 50 }, + { "item": "water", "container-item": "flask_glass", "charges": 1, "chance": 50 }, + { "item": "water_clean", "container-item": "flask_glass", "charges": 1, "chance": 30 }, + { "item": "slime_scrap", "container-item": "flask_glass", "charges": 1, "chance": 10 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SEWAGE_TREATMENT", + "default": "mon_sewer_rat", + "is_animal": true, + "monsters": [ + { "monster": "mon_sewer_fish", "freq": 300, "cost_multiplier": 0, "pack_size": [ 2, 6 ] }, + { "monster": "mon_sewer_snake", "freq": 240, "cost_multiplier": 0 }, + { "monster": "mon_sewer_rat", "freq": 100, "cost_multiplier": 0, "pack_size": [ 3, 6 ] }, + { "monster": "mon_albino_penguin", "freq": 5, "cost_multiplier": 5, "pack_size": [ 3, 9 ] }, + { "monster": "mon_gator", "freq": 40, "cost_multiplier": 2, "pack_size": [ 1, 2 ] } + ] + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "sewage_treatment_0_0_0", "sewage_treatment_1_0_0" ], [ "sewage_treatment_0_1_0", "sewage_treatment_1_1_0" ] ], + "weight": 250, + "object": { + "fill_ter": "t_floor", + "rows": [ + "|||_.......pp......._|||||||||||||||||||||||||||", + "| _................_ ? ? ? ??? ? ? 9 |", + "| _.......pp......._ HHWHWHHHWHWWWHWHHHWHH |", + "| _................_ ? H^,6#,H,d,,,,,d,H^d,H |", + "| _.......pp......._____W,,d,,H#6,,#,,6#H,6#W?|", + "| _................_ _D,,,,,D,,,666,,,+,d,H |", + "|___................___ H^[[,^H,,,,,,,,,H,,,W?|", + "|.....................__ HHHH+HHqr*,,,[[qH[[[H |", + "|.....................__?W##,,fHHHHHDHHHHHHHHH |", + "|.....................__ Hdd,,cH,,,,,,,,,8HtH |", + "|......p......p.......__ HH+HH+H,,HH+HH+HbHHHH |", + "|.....................__ Hl,Hl,H,,Hx,Hx,Hm74%H |", + "|......p......p.......__ Hl,Hl,H,,H,,H,,HmmmgH |", + "|.....................__ Hl,Hl,H,,HrTHrTHmmm{H |", + "||||||||||||||||||||||CC|HHHHHHH++HHHHHHH{mm{H |", + "|zzzzzzzzzzzzzzzzzz __ AAA __ H{mm{H |", + "|zwwwwwwwwm)))))))z __ __ ? ? ?H{mm{H |", + "|zwwwwwwwwm)))))))z __ __ H{mm{H |", + "|zzzzzzzzzzzzzzzzzz____________________ HmmMMH |", + "|zwwwwwwwwmwwwwwwwz __________________bmmMMH |", + "|zwwwwwwwwmwwwwwwwz __ HHHHHH |", + "|zzzzzzzzzzzzzzzzzz111111111111 __ |", + "||||||C|||||||||||||1|||||||||||||| __ |", + "| zzzzzzz 1111111111 ______OOO |", + "| zzwwwwwzz 1HHHHHHH1 ? ? HHHHHHHH __ --b--- |", + "|zzwwwwwwwzz1H11&%RH0 HJJFUYYH __ -&m$&- |", + "|zwwwwwwwwwz H1ttttH ? ? WgttttgW __ -%mm%- |", + "|zwwwwwwwwwz H|||C|H H6ttttGH __ W&mm&W |", + "|zwww!!!wwwz _ ? ? |||CC||| __ -Mmm%- |", + "|zwww!@!wwwz OO _ __ __ -Rmm&- |", + "|zwww!@!wwwz OO _ _________________bmmm%W |", + "|zzww!@!wwzz____________________________-&%$&- |", + "| zzw!@!wzz_____________ __ --W--- |", + "| zzzzzzz_________ __ O |", + "| zzzzzzz____zzzzzzz zzzzzzzzzzzzzzzzzz 1 |", + "| zz)))))zz__zzw!@!wzz z~~~~zz~~~~zz~~~~z 1 |", + "|zz)))))))zzzzww!@!wwzz z~~~~zz~~~~zz~~~~z 1 |", + "|z)))))))))zzwww!@!wwwz z~~~~zz~~~~zz~~~~z 11|", + "|z))))!!!!!zzwww!@!wwwz z~~~~zz~~~~zz~~~~z $1|", + "|z))))!@@@@zzwww!!!wwwz z~~~~zz~~~~zz~~~~z111|", + "|z))))!!!!!zzwwwwwwwwwz z~~~~zz~~~~zz~~~~z 1 |", + "|z)))))))))zzwwwwwwwwwz z~~~~zz~~~~zz~~~~z11 |", + "|zz)))))))zzzzwwwwwwwzz z~~~~zz~~~~zz~~~~z 1 |", + "| zz)))))zz zzwwwwwzz z~~~~zz~~~~zz~~~~z11 |", + "| zzzzzzz zzzzzzz zzzzzzzzzzzzzzzzzz |", + "||||||||||||||||||||||||||||||||||||||||||||||||" + ], + "palettes": [ "sewage_treatment_palette" ], + "furniture": { + "#": "f_chair", + "x": "f_sink", + "4": "f_heavy_lathe", + "7": "f_drill_press", + "*": "f_shredder", + "[": "f_glass_cabinet", + "^": "f_indoor_plant", + "A": "f_dumpster", + "c": "f_counter", + "R": "f_rack", + "d": "f_desk", + "f": "f_fridge", + "g": "f_workbench", + "q": "f_indoor_plant_y", + "l": "f_locker", + "r": "f_trashcan", + "{": "f_utility_shelf", + "O": "f_standing_tank" + }, + "place_signs": [ + { "signage": "Authorized personnel only", "x": 21, "y": 1 }, + { "signage": " sewage treatment plant", "x": 2, "y": 1 } + ], + "place_liquids": [ + { "liquid": "sewage", "chance": 1, "amount": [ 2, 3 ], "x": [ 43, 45 ], "y": 25, "repeat": [ 1, 3 ] }, + { "liquid": "water", "chance": 1, "amount": [ 40, 60 ], "x": [ 13, 14 ], "y": [ 31, 32 ], "repeat": [ 2, 4 ] } + ], + "items": { + "g": { "item": "supplies_hardware", "chance": 40 }, + "R": { "item": "tools_plumbing", "chance": 60 }, + "M": { "item": "treatment_chemicals", "chance": 80 }, + "A": { "item": "trash", "chance": 80 }, + "{": [ { "item": "sewage_plant", "chance": 30 }, { "item": "supplies_plumbing", "chance": 20 } ], + "f": { "item": "fridgesnacks", "chance": 70, "repeat": [ 1, 3 ] }, + "c": { "item": "office_breakroom", "chance": 60, "repeat": [ 1, 2 ] }, + "l": { "item": "clothing_work_set", "chance": 40 }, + "d": { "item": "office", "chance": 60 }, + "a": { "item": "trash", "chance": 30, "repeat": [ 1, 3 ] }, + "r": { "item": "trash", "chance": 30 }, + "[": { "item": "office_mess", "chance": 50, "repeat": [ 1, 3 ] } + }, + "computers": { + "8": { + "name": "EnviroCom OS v2.03 - Basement Access", + "security": 1, + "options": [ { "name": "Unlock stairs", "action": "open" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" } ] + } + }, + "toilets": { "T": { } }, + "place_vehicles": [ + { "vehicle": "pump_station_vehicles", "x": 5, "y": 13, "rotation": 90, "chance": 40 }, + { "vehicle": "pump_station_vehicles", "x": 11, "y": 13, "rotation": 90, "chance": 40 }, + { "vehicle": "pump_station_vehicles", "x": 19, "y": 13, "rotation": 90, "chance": 40 } + ], + "place_monsters": [ + { "monster": "GROUP_ZOMBIE", "x": [ 33, 40 ], "y": [ 3, 11 ], "density": 0.2 }, + { "monster": "GROUP_ZOMBIE", "x": [ 25, 44 ], "y": [ 32, 36 ], "density": 0.2 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "sewage_treatment_0_0_roof", "sewage_treatment_1_0_roof" ], + [ "sewage_treatment_0_1_roof", "sewage_treatment_1_1_roof" ] + ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " |22222222222222222225 ", + " |...................3 ", + " |................XX.3 ", + " |................XX.3 ", + " |...................3 ", + " |...................3 ", + " |.................HHH ", + " |.................B>H ", + " |.................HHH ", + " |...................3 ", + " |...................3 ", + " |...................3 ", + " |...................3 ", + " |...................3 ", + " |--------------|....3 ", + " |....3 ", + " |....3 ", + " |....3 ", + " |....3 ", + " |....3 ", + " |----3 ", + " ", + " ", + " ", + " ........ ...... ", + " ....... ........ ...... ", + " ....... ........ ...... ", + " ....... ........ ...... ", + " ....... ........ ...... ", + " ...... ", + " ...... ", + " ...... ", + " ...... ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { + ">": "t_ladder_down", + "X": "t_radio_tower", + "H": "t_sconc_wall", + "B": "t_door_metal_pickable" + }, + "place_nested": [ + { + "chunks": [ [ "null", 20 ], [ "roof_4x4_utility", 50 ], [ "roof_4x4_utility_1", 40 ] ], + "x": [ 29, 36 ], + "y": [ 5, 10 ] + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "sewage_treatment_0_0_-1", "sewage_treatment_1_0_-1", "sewage_treatment_2_0_-1" ], + [ "sewage_treatment_0_1_-1", "sewage_treatment_1_1_-1", "sewage_treatment_2_1_-1" ] + ], + "weight": 250, + "object": { + "fill_ter": "t_rock_floor", + "rows": [ + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%", + "%%%%~###########################~~~~~~~~###########################~%%%%", + "%%%%~#222222222HHHbHHHH%%%%%%%%#%%AAAA%%#%%%%%HHHHbHHH222222222222#~%%%%", + "%%%%~#2%%%%%%%22&....UH%%%%%%%%##xxxxxx##%%%%%HU....&22%%%%%%%%%%2#~%%%%", + "%%%%~#2%%%%%%%%H$&$&@&H%%HHHHHHHHHHHHHHHHHHH%%H&@&$&$H%%%%%%%%%%%2#~%%%%", + "%%%%~#2%%%%%%%%HHHHHHHH%%H0001[.IHD6[[D61.IH%%HHHHHHHH%%%%%%%%%%%2#~%%%%", + "%%%%~#22%%%%%%%%%%%%%%%%%H0c....fH.c...c..fHHHHHLH%%%%%%%%%%%%%%22#~%%%%", + "%%%%`##2%%%%%%%%%%%%%%%%%Hh......+.........+...+.H%%%%%%%%%%%%%%2##`%%%%", + "%%%%!%#2%%%%%%%HHHH%%%%%%H0c....fH.c...c..fHH..HLH%%%%%%%%%%%%%%2#%!%%%%", + "~~~~~~x2~~~~%%%HL.H%%%%%%H0001[.IHD6[[D61.IHH..HHHHHHHHHHH%%~~~~2x~~~~~~", + "~~~~~~x2~~~~~%%HH+HHHHHHHHHHHHHHHHHHHHHHHHHH>..+..&TTT&wwH%~~~~~2x~~~~~~", + "~~~~~~x2~~~~~%%H...............................H........wH%~~~~~2x~~~~~~", + "~~~~~~xx~~~~%%%H...............................H&...8...&H%%~~~~xx~~~~~~", + "%%%%%~#2%%%%%%%HH+HHHH+HHH..HHHHHHHHHHHHHHHHH..H$#######$H%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%Hn..lHn..lH..H%%HIf6666;fH%%%H..H@...@...@H%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%HH+HHHH+HHH..HHHH........HHHHH..H#...#...#H%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%Hq..qHq..qH.....+........+......H$&$&@&$&$H%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%Hq..qHq..qH..HHHHc......cHHHHH..HHHHHHHHHHH%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%HHHHHHHHHHH..H%%H6tttttt6H%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%H--------H%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%#vvvvvvvv2%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%#a~~~~~~~2%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%#a~~~~~~~2%%%HbbH%%%%%%%%%%%%%%%%2#~%%%%%", + "%%%%%~#2%%%%%%%%HHHHHHHHHH..HHHbH~~~~~~%22222..2%%%%%%%%%%%%%%%%2#~%%%%%", + "%%%%%~#2%%%HHHHHHww.............b##~~~%%%%%%%..22%%%%%%%%%%%%%%%2#~%%%%%", + "%%%%%~#2%%%H{{{{Hw...HHHHHHHHHHHH!*!!!%%%%%%%...22222222222222222#`%%%%%", + "%%%%%`#2%%%H....C...^H%%%%%%%%~~~`````~~~~%%%....................#!%%%%%", + "%%%%%!#2%%%H{{{{H....H%%%%%%%~~~~~~~~~~~~~~%%%.%%%%%%%%%%%%%%{{%%~~%%%%%", + "%%%%~~##%%%HHHHHHHHbHH%%%%%%~~~~~~~~~~~~~~~~%%b%%%%%%%%%%%%%%%%%~~~~%%%%", + "%%%~~~~############x~~~~~~~~~~~~~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~~~%%%", + "%%%~~~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~~~%%%", + "%%%%~~~~%%%%%%%%%%HbH%%%%%%%~~~~~~~~~~~~~~~~%HbH%%%%%%%%%%%%%%%%~~~~%%%%", + "%%%%%%%%HHHHHHHHHHH.HHHH%%%%%~~~~~~~~~~~~~~%%H.HHHHHHHHHHHHHHHHH%%%%%%%%", + "%%%%%%%%HGGG.|YYYYY...UH%%%%%%~~~~~~~~~~~~%%%H.HH2$&$&$&$&$&$&$H%%%%%%%%", + "%%%%%%%%HGGG.C........UH%%%%%%%%%%%~~%%%%%%%%H.HH2.............H%%%%%%%%", + "%%%%%%%%HGGG.|........UH%%%%%%%%%%%~~%%%%%%%%H.HH2..@#@..@#@..@H%%%%%%%%", + "%%%%%%%%HHHHHHr.......UHHHHHHHHHHHH~~HHHHHHHHH.HH2..@#@..@#@..@H%%%%%%%%", + "%%%%%%%%%%%%%H2.2.................bxxb.........................H%%%%%%%%", + "%%%%%%%%%%%%%H22222222222222222222H!*H222222222222..@#@..@#@..@H%%%%%%%%", + "%%%%%%%%%%%%%HHHHHHHHHHHHHHHHHHHHHH``HHHHHHHHHHHH2..@#@..@#@..@H%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~%%%%%%%%%%%H2.............H%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~%%%%%%%%%%%H2..2#2..2#2..2H%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%H22222222222222H%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%HHHHHHHHHHHHHHHH%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%!~~~~~~~~~~~~~~~~~~~~~~~!%%%%%%%%%%%%%%%%%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + ], + "palettes": [ "sewage_treatment_sewer_palette" ], + "furniture": { + "c": "f_chair", + "l": "f_locker", + "L": "f_locker", + "n": "f_sink", + "{": "f_utility_shelf", + "r": "f_rack", + "f": "f_air_filter", + ";": "f_server", + "q": "f_shower", + "w": "f_workbench", + "t": "f_table", + "D": "f_desk", + "T": "f_counter", + "0": "f_lab_bench", + "[": "f_glass_cabinet", + "I": "f_air_conditioner", + "h": "f_fume_hood", + "1": "f_trashcan" + }, + "items": { + "q": { "item": "shower", "chance": 40 }, + "l": [ { "item": "clothing_work_set", "chance": 40 }, { "item": "shower", "chance": 50 } ], + "L": { "item": "cleaning", "chance": 80, "repeat": [ 1, 2 ] }, + "{": [ { "item": "sewage_plant", "chance": 50 }, { "item": "supplies_plumbing", "chance": 30 } ], + "r": { "item": "tools_electronics", "chance": 40, "repeat": [ 1, 3 ] }, + "w": { "item": "supplies_hardware", "chance": 50 }, + "`": [ { "item": "sewer", "chance": 20 }, { "item": "trash_forest", "chance": 10 }, { "item": "trash", "chance": 10 } ], + "0": [ { "item": "tools_science", "chance": 50 }, { "item": "sewage_samples", "chance": 20 } ], + "h": { "item": "chem_home", "chance": 50, "repeat": [ 1, 3 ] }, + "D": { "item": "office_mess", "chance": 40 }, + "t": { "item": "electronics", "chance": 30 }, + "[": [ { "item": "office_mess", "chance": 30 }, { "item": "sewage_samples", "chance": 10 } ], + "1": { "item": "trash", "chance": 50 } + }, + "place_loot": [ + { "group": "sewage_plant", "x": [ 17, 20 ], "y": 4, "chance": 70 }, + { "group": "sewage_plant", "x": [ 48, 51 ], "y": 4, "chance": 70 }, + { "group": "treatment_chemicals", "x": [ 49, 55 ], "y": [ 13, 16 ], "chance": 90, "repeat": [ 1, 3 ] }, + { "group": "treatment_chemicals", "x": [ 50, 61 ], "y": [ 35, 42 ], "chance": 50, "repeat": [ 1, 3 ] }, + { "group": "sewage_plant", "x": [ 50, 61 ], "y": [ 35, 42 ], "chance": 70, "repeat": [ 1, 3 ] } + ], + "computers": { + "8": { + "name": "EnviroCom OS v2.03", + "security": 1, + "options": [ { "name": "Download Sewer Maps", "action": "map_sewer" }, { "name": "Divert sample", "action": "sample" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" } ] + } + }, + "place_monsters": [ + { "monster": "GROUP_ZOMBIE", "x": [ 26, 36 ], "y": [ 12, 18 ], "density": 0.35 }, + { "monster": "GROUP_ZOMBIE", "x": [ 16, 20 ], "y": [ 36, 38 ], "density": 0.1 }, + { "monster": "GROUP_SEWAGE_TREATMENT", "x": 36, "y": 3, "density": 0.2 }, + { "monster": "GROUP_SEWAGE_TREATMENT", "x": [ 30, 32 ], "y": [ 35, 36 ], "density": 0.2 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "sewage_treatment_0_1_-1" ], + "//": "10% chance of a hidden CHUD lair", + "weight": 25, + "object": { + "fill_ter": "t_rock_floor", + "rows": [ + "%%%%%~#2%%%%%%%%HHHHHHHH", + "%%%%%~#2%%%HHHHHHww.....", + "%%%%%~#2%%%H{{{{Hw...HHH", + "%%%%%~#2%%%H....C...^H%%", + "%%%%%~#2%%%H{{{{H....H%%", + "%%%%~~##%%%HHHHHHHHbHH%%", + "%%%~~~~############x~~~~", + "%%%~~~~~~~~~~~~~~~~x~~~~", + "%%%%~~~~%%%%%%%%%%HbH%%%", + "%%%%%%%%HHHHHHHHHHH.HHHH", + "%%%%%%%%HGGG.|YYYYY...UH", + "%%%%%%%%HGGG.C........UH", + "%%%%%%%%HGGG.|........UH", + "%%%%%%%%HHHHHHr.......UH", + "%%%%%%%%%%%%%H2.2.......", + "%%====%%%%%%%H2222222222", + "%%%======%%%%HHHHHHHHHHH", + "%%%=======%%%%%%%%%%%%%%", + "%%%=======%%%%%%%%%%%%%%", + "%%========%%%%%%%%%%%%%%", + "%%%==%%=%%%%%%%%%%%%%%%%", + "%%%%%%!~~~~~~~~~~~~~~~~~", + "%%%%%%%%%%%%%%%%%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%" + ], + "palettes": [ "sewage_treatment_sewer_palette" ], + "furniture": { "{": "f_utility_shelf", "r": "f_rack", "w": "f_workbench" }, + "items": { + "{": [ { "item": "sewage_plant", "chance": 30 }, { "item": "supplies_plumbing", "chance": 20 } ], + "w": { "item": "supplies_hardware", "chance": 50 }, + "=": [ { "item": "cannibal_corpse", "chance": 15 }, { "item": "human_remains", "chance": 15 } ], + "r": { "item": "tools_electronics", "chance": 30, "repeat": [ 1, 3 ] } + }, + "fields": { "=": { "field": "fd_blood", "intensity": 1, "age": 990, "chance": 40 } }, + "place_monsters": [ + { "monster": "GROUP_ZOMBIE", "x": [ 16, 20 ], "y": [ 11, 14 ], "density": 0.1 }, + { "monster": "GROUP_CHUD", "x": [ 4, 6 ], "y": [ 16, 18 ], "density": 0.2 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "sewage_treatment_0_1_-1" ], + "//": "Easter egg - TMNT reference", + "weight": 1, + "object": { + "fill_ter": "t_rock_floor", + "rows": [ + "%%%%%~#2%%%%%%%%HHHHHHHH", + "%%%%%~#2%%%HHHHHHww.....", + "%%%%%~#2%%%H{{{{Hw...HHH", + "%%%%%~#2%%%H....C...^H%%", + "%%%%%~#2%%%H{{{{H....H%%", + "%%%%~~##%%%HHHHHHHHbHH%%", + "%%%~~~~############x~~~~", + "%%%~~~~~~~~~~~~~~~~x~~~~", + "%%%%~~~~%%%%%%%%%%HbH%%%", + "%%%%%%%%HHHHHHHHHHH.HHHH", + "%%%%%%%%HGGG.|YYYYY...UH", + "%.III.%%HGGG.C........UH", + "%.III.%%HGGG.|........UH", + "%.III.%%HHHHHHr.......UH", + "%%%O%%%%%%%%%H2.2.......", + "%t...%Q..D%%%H2222222222", + "%....O.::.%%%HHHHHHHHHHH", + "%LL;.%.::1%%%%%%%%%%%%%%", + "%%%%O%.::.O..[%%%%%%%%%%", + "%f0..%1...%D.[%%%%%%%%%%", + "%.c..%%*%%%%%%%%%%%%%%%%", + "%ctc.%!~~~~~~~~~~~~~~~~~", + "%.c..%%%%%%%%%%%%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%" + ], + "palettes": [ "sewage_treatment_sewer_palette" ], + "terrain": { "O": "t_mdoor_lab_frame", ":": "t_carpet_yellow", "Q": "t_privacy_fence" }, + "furniture": { + "{": "f_utility_shelf", + "w": "f_workbench", + "r": "f_rack", + "I": "f_tatami", + "c": "f_chair", + "l": "f_locker", + "n": "f_sink", + "f": "f_fridge", + "t": "f_table", + "[": "f_bed", + "L": "f_sofa", + "1": "f_armchair", + ";": "f_floor_lamp", + "0": "f_oven", + "D": "f_bookcase" + }, + "items": { + "{": [ { "item": "sewage_plant", "chance": 30 }, { "item": "supplies_plumbing", "chance": 20 } ], + "w": { "item": "supplies_hardware", "chance": 50 }, + "r": { "item": "tools_electronics", "chance": 30, "repeat": [ 1, 3 ] }, + "D": { "item": "dojo_manuals", "chance": 60, "repeat": [ 1, 2 ] }, + "[": { "item": "bed", "chance": 60 }, + "f": { "item": "fridgesnacks", "chance": 80, "repeat": [ 1, 2 ] } + }, + "place_loot": [ + { "item": "katana", "x": 2, "y": 11, "amount": 2 }, + { "item": "q_staff", "x": 3, "y": 12 }, + { "item": "television", "x": 1, "y": 15 }, + { "item": "judo_belt_orange", "x": 3, "y": 13 }, + { "item": "judo_belt_blue", "x": 4, "y": 13 }, + { "item": "pizza_cheese", "x": 2, "y": 21 } + ], + "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 16, 20 ], "y": [ 11, 14 ], "density": 0.1 } ] + } + }, + { + "id": "cannibal_corpse", + "type": "item_group", + "subtype": "collection", + "items": [ { "group": "clothing_work_set", "chance": 40 }, { "group": "supplies_plumbing", "chance": 20 }, { "item": "corpse" } ] + }, + { + "id": "human_remains", + "type": "item_group", + "subtype": "collection", + "items": [ + { "item": "human_flesh", "chance": 70, "count-min": 1, "count-max": 10 }, + { "item": "hstomach_large", "chance": 60 }, + { "item": "hstomach", "chance": 60 }, + { "item": "bone_human", "prob": 90, "count-min": 1, "count-max": 5 }, + { "item": "rag_bloody", "prob": 90, "count-min": 1, "count-max": 4 } + ] + } +] diff --git a/data/json/mapgen/shelter.json b/data/json/mapgen/shelter.json index 2d8b771b5e9f9..3accf9376f1cd 100644 --- a/data/json/mapgen/shelter.json +++ b/data/json/mapgen/shelter.json @@ -35,7 +35,7 @@ " |.b.b.b....c...| ", " |||.b.b....c...| ", " |*=........c..x| ", - " |----:--+-:----|4 " + " |----:--+-:----| " ], "palettes": [ "shelter" ], "items": { "l": { "item": "shelter_supplies", "chance": 20, "repeat": [ 0, 1 ] } }, @@ -82,7 +82,7 @@ " |.:............3 ", " |...........&..3 ", " |>.............3 ", - " |--------------5 " + " |--------------3 " ], "terrain": { ",": "t_flat_roof", @@ -91,8 +91,7 @@ "|": "t_gutter_west", "3": "t_gutter_east", "4": "t_gutter_north", - ">": "t_ladder_down", - "5": "t_gutter_drop" + ">": "t_ladder_down" }, "furniture": { ":": "f_standing_tank", "#": "f_solar_unit", "&": "f_roof_turbine_vent" }, "place_items": [ { "item": "roof_trash", "x": [ 5, 17 ], "y": [ 9, 22 ], "chance": 50, "repeat": [ 1, 3 ] } ] @@ -127,7 +126,7 @@ " |.b.b.b...c|-+-| ", " |.b.b.b...c|..l| ", " |.b.b.b...c|>.l| ", - " |..........|>.l|4 ", + " |..........|>.l| ", " |----:--+-:----| " ], "palettes": [ "shelter" ], @@ -174,7 +173,7 @@ " |.......&......3 ", " |..............3 ", " |..............3 ", - " |............#.5 ", + " |............#.3 ", " |--------------3 " ], "terrain": { @@ -184,8 +183,7 @@ "|": "t_gutter_west", "3": "t_gutter_east", "4": "t_gutter_north", - ">": "t_ladder_down", - "5": "t_gutter_drop" + ">": "t_ladder_down" }, "furniture": { ":": "f_standing_tank", "#": "f_solar_unit", "&": "f_roof_turbine_vent" }, "place_items": [ { "item": "roof_trash", "x": [ 5, 17 ], "y": [ 11, 22 ], "chance": 50, "repeat": [ 1, 3 ] } ] @@ -219,7 +217,7 @@ " |b..............b| ", " --ccc..b..b..ccc-- ", " |..c..b..b..c..| ", - " |6....b..b....x|4 ", + " |6....b..b....x| ", " |--|........|--| ", " |-:--+-:-| " ], @@ -266,7 +264,7 @@ " |................3 ", " ||...&..........33 ", " |..............3 ", - " |..............5 ", + " |..............3 ", " |--|........|--3 ", " |--------| " ], @@ -277,8 +275,7 @@ "|": "t_gutter_west", "3": "t_gutter_east", "4": "t_gutter_north", - ">": "t_ladder_down", - "5": "t_gutter_drop" + ">": "t_ladder_down" }, "furniture": { ":": "f_standing_tank", "#": "f_solar_unit", "&": "f_roof_turbine_vent" }, "place_items": [ { "item": "roof_trash", "x": [ 8, 15 ], "y": [ 7, 22 ], "chance": 50, "repeat": [ 1, 3 ] } ] diff --git a/data/json/mapgen/store/s_hunting.json b/data/json/mapgen/store/s_hunting.json deleted file mode 100644 index 735aaa7a19dd0..0000000000000 --- a/data/json/mapgen/store/s_hunting.json +++ /dev/null @@ -1,150 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_hunting" ], - "weight": 300, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", - ".----------**-~~~~~~~--.", - ".| RRRRRRR^ ^RRRRRRR |.", - ".| |.", - ".| RRRRRRR RRRRRRR |.", - ".| RRRRRRR RRRRRRR |.", - ".| |.", - ".|^ mm RRRRRRR |.", - ".|#### RRRRRRR |.", - ".|R # ^ |.", - ".|R cC B|-----------|.", - ".|R # B|FFFF LYIII|.", - ".|R + c |.", - ".|RxX#^ Y|f###Y ^FFF|.", - ".|-----+--------------|.", - ".|&,,|,,,,,,,,,|OOOOOO|.", - ".|,,,+,,,,,,,,,+,,,,,,|.", - ".|%y,|rrrrrr,,,|oooooo|.", - ".------------*---------.", - "........4..............." - ], - "terrain": { - ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ], - " ": "t_floor", - ",": "t_thconc_floor", - "y": "t_thconc_floor", - "&": "t_thconc_floor", - "%": "t_thconc_floor", - "O": "t_thconc_floor", - "o": "t_thconc_floor", - "'": "t_pavement", - "`": "t_pavement_y", - "+": "t_door_c", - "*": "t_door_metal_pickable", - "|": "t_wall_w", - "-": "t_wall_w", - "~": "t_window_bars_alarm", - "C": "t_console_broken", - "4": "t_gutter_downspout" - }, - "furniture": { - "#": "f_counter", - "%": "f_sink", - "R": "f_rack", - "r": "f_rack", - "O": [ "f_crate_c", "f_crate_c", "f_crate_c", "f_crate_o" ], - "o": [ "f_crate_c", "f_crate_c", "f_crate_c", "f_crate_o" ], - "X": "f_safe_l", - "x": "f_safe_l", - "B": "f_bulletin", - "^": "f_indoor_plant", - "F": "f_filing_cabinet", - "c": "f_chair", - "f": "f_fridge", - "I": "f_desk", - "Y": "f_trashcan", - "L": "f_locker", - "m": "f_mannequin" - }, - "toilets": { "&": { } }, - "items": { - "O": { "item": "clothing_hunting", "chance": 50 }, - "o": { "item": "tools_hunting", "chance": 50 }, - "r": { "item": "clothing_hunting", "chance": 50 }, - "f": { "item": "fridgesnacks", "chance": 80, "repeat": [ 2, 3 ] }, - "L": { "item": "jackets", "chance": 50 }, - "F": { "item": "office_supplies", "chance": 80, "repeat": [ 2, 4 ] }, - "X": { "item": "ammo_rifle_common", "chance": 80, "repeat": [ 4, 6 ] }, - "x": { "item": "ammo_shotgun_common", "chance": 80, "repeat": [ 4, 6 ] }, - "Y": { "item": "trash_cart", "chance": 70, "repeat": [ 1, 2 ] }, - "I": { "item": "office_supplies", "chance": 50 }, - "m": { "item": "clothing_hunting", "chance": 80, "repeat": [ 2, 3 ] } - }, - "place_loot": [ - { "group": "guns_rifle_common", "x": 2, "y": 13, "chance": 70, "repeat": [ 4, 5 ] }, - { "group": "guns_shotgun_common", "x": 2, "y": 14, "chance": 70, "repeat": [ 4, 5 ] }, - { "group": "archery", "x": 2, "y": 15, "chance": 80, "repeat": [ 4, 5 ] }, - { "group": "archery_ammo", "x": 2, "y": 16, "chance": 80, "repeat": [ 4, 6 ] }, - { "group": "archery_mods", "x": 2, "y": 17, "chance": 70, "repeat": [ 3, 4 ] }, - { "group": "clothing_hunting", "x": [ 3, 9 ], "y": 6, "chance": 80, "repeat": [ 6, 7 ] }, - { "group": "clothing_hunting", "x": [ 3, 9 ], "y": [ 8, 9 ], "chance": 80, "repeat": [ 12, 14 ] }, - { "group": "tools_hunting", "x": [ 14, 20 ], "y": 6, "chance": 70, "repeat": [ 6, 7 ] }, - { "group": "tools_hunting", "x": [ 14, 20 ], "y": [ 8, 9 ], "chance": 70, "repeat": [ 12, 14 ] }, - { "group": "tools_hunting", "x": [ 14, 20 ], "y": [ 11, 12 ], "chance": 70, "repeat": [ 12, 14 ] } - ], - "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 2, 21 ], "y": 2, "chance": 2, "repeat": [ 2, 3 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "s_hunting_roof", - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " |222222222222222222223 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |...&.........=......3 ", - " |....................3 ", - " |------5-------------3 ", - " " - ], - "palettes": [ "roof_palette" ], - "place_nested": [ - { - "chunks": [ - [ "null", 20 ], - [ "roof_2x2_utilities_b", 15 ], - [ "roof_2x2_utilities_c", 5 ], - [ "roof_2x2_utilities_d", 40 ], - [ "roof_2x2_utilities", 50 ] - ], - "x": [ 4, 17 ], - "y": [ 15, 16 ] - } - ] - } - } -] diff --git a/data/json/mapgen/toxic_dump.json b/data/json/mapgen/toxic_dump.json deleted file mode 100644 index b602390ca18e5..0000000000000 --- a/data/json/mapgen/toxic_dump.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "id": "toxic_waste", - "type": "item_group", - "items": [ - { "item": "plut_slurry", "container-item": "55gal_drum", "charges-min": 2, "charges-max": 28, "chance": 5 }, - { - "item": "plut_slurry_dense", - "container-item": "55gal_drum", - "charges-min": 1, - "charges-max": 45, - "chance": 2 - }, - { "item": "sewage", "container-item": "55gal_drum", "charges-min": 26, "charges-max": 126, "chance": 50 }, - { "group": "sewer", "chance": 20 }, - { "item": "55gal_drum", "chance": 50 }, - { "item": "slime_scrap", "chance": 10 } - ] - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "toxic_dump" ], - "weight": 100, - "object": { - "fill_ter": "t_dirt", - "rows": [ - " x xxx ", - " xxxxxxxxxxxxx ", - " |||||||||||||||||||| ", - " xx|xxxxx,,,,,,,,,,xxx| ", - " xx|x,,,,*********,,,x| ", - " x|xxx,,*********,,xx| ", - " xx|x,*****~~~~~***,xx| ", - " x|x,***~~~~~*****,xx|x", - " x|xx,****~~~~~**,,,x| ", - " xx|xxx,***~~~***,,,xx| ", - " xx|xx,****~~~****,,,x| ", - " x|x,,,,****~~~***,,x| ", - " xx|xx,,*****~~***,,xx|x", - " x|xx,**********,xxxx| ", - " xx|x,,************,,x| ", - " x|xxxx,,,*****,,,,xx| ", - " |xxxxxx,,,,,,,xxxxx|x", - " ----+---xxxxxxxxxxxx| ", - " -R.|..A-xxxxxxxxxxxx| ", - " -R.c..A-|||cc|||||||| ", - " -R.|..A- ", - " ----+--- ", - " ", - " " - ], - "terrain": { - " ": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_grass_dead", "t_grass_dead", "t_grass", "t_grass", "t_shrub" ], - "x": [ "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_dirt", "t_grass_dead", "t_grass_dead" ], - "~": "t_sewage", - "*": [ "t_sewage", "t_sewage", "t_sewage", "t_sewage", "t_sewage", "t_sewage", "t_dirt" ], - ",": [ "t_sewage", "t_sewage", "t_sewage", "t_dirt" ], - "+": "t_door_metal_pickable", - "-": "t_wall", - ".": "t_thconc_floor", - "c": "t_chaingate_c", - "|": "t_chainfence" - }, - "set": [ { "square": "radiation", "amount": [ 20, 60 ], "x": 3, "y": 3, "x2": 21, "y2": 16 } ], - "furniture": { "R": "f_rack", "A": "f_dumpster" }, - "place_signs": [ { "signage": "RESTRICTED AREA! AUTHORIZED PERSONNEL ONLY", "x": 10, "y": 23 } ], - "items": { - "R": { "item": "toxic_dump_equipment", "chance": 60 }, - "A": { "item": "sewer", "chance": 60 }, - "~": { "item": "toxic_waste", "chance": 10 } - }, - "place_loot": [ - { "group": "toxic_waste", "x": [ 5, 20 ], "y": [ 5, 16 ], "chance": 40, "repeat": [ 3, 15 ] }, - { "item": "id_military", "x": 3, "y": [ 18, 20 ], "chance": 10 } - ] - } - } -] diff --git a/data/json/mapgen/trailer_park.json b/data/json/mapgen/trailer_park.json index c5e9013dd8733..904a866eebd6a 100644 --- a/data/json/mapgen/trailer_park.json +++ b/data/json/mapgen/trailer_park.json @@ -8,7 +8,6 @@ "B": "f_bed", "C": "f_counter", "W": "f_wreckage", - "o": "f_oven", "a": "f_cupboard", "e": "f_shower", "t": "f_trashcan", @@ -37,13 +36,12 @@ { "chance": 5, "item": "road", "x": 5, "y": 10 }, { "chance": 5, "item": "road", "x": 2, "y": 8 } ], - "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": 17, "y": 13, "repeat": [ 1, 6 ], "density": 0.1 } ], "place_toilets": [ { "x": 7, "y": 3 }, { "x": 8, "y": 21 } ], "rows": [ "________________________", "______d___dddd__d__dd___", "_ccWcd|||||||||||||w|||d", - "_cWWc||&f|ff|ff##|FoCa|_", + "_cWWc||&f|ff|ff##|FCCa|_", "_cccc||ff+ff+fffb|ffff|d", "_cccg||fS|ff|fffffffff|d", "_cccc||ef|Bf|HHffffff^|_", @@ -61,7 +59,7 @@ "_cccc||Sf+ff|fffffffff|_", "_cccc||ff|ff|fffffffff|d", "_cccc||ff|ff+ffbf|afff|d", - "_cccc||e&|ff|ff##|aoCF|_", + "_cccc||e&|ff|ff##|aCCF|_", "_____d|||||||||||||ww||d", "_______d_____d__d__d_d__" ], @@ -113,7 +111,7 @@ "method": "json", "object": { "place_item": [ { "item": "blanket", "repeat": 1, "x": 11, "y": 17 }, { "item": "corpse", "repeat": 1, "x": 7, "y": 19 } ], - "furniture": { "B": "f_bed", "D": "f_null", "b": "f_null", "g": "f_shower", "o": "f_oven" }, + "furniture": { "B": "f_bed", "D": "f_null", "b": "f_null", "g": "f_shower" }, "place_items": [ { "chance": 25, "item": "house_suicide_shotgun", "x": 8, "y": 20 }, { "chance": 45, "item": "cannedfood", "x": 20, "y": 21 }, @@ -127,9 +125,9 @@ { "chance": 35, "item": "house_suicide_clothing", "x": 7, "y": 19 } ], "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": 10, "y": 19, "repeat": [ 1, 6 ], "density": 0.1 }, - { "monster": "GROUP_ZOMBIE", "x": 17, "y": 13, "repeat": [ 1, 6 ], "density": 0.1 }, - { "monster": "GROUP_DOGS", "x": 3, "y": 14, "repeat": [ 1, 2 ], "density": 0.1 } + { "chance": 50, "density": 1, "monster": "GROUP_ZOMBIE", "x": 10, "y": 19 }, + { "chance": 50, "density": 1, "monster": "GROUP_ZOMBIE", "x": 17, "y": 13 }, + { "chance": 20, "density": 1, "monster": "GROUP_DOGS", "x": 3, "y": 14 } ], "place_loot": [ { "item": "television", "x": 20, "y": 6, "chance": 100 }, { "item": "stepladder", "x": 19, "y": 5, "chance": 100 } ], "place_toilets": [ { "x": 8, "y": 21 } ], @@ -154,7 +152,7 @@ "_cccc||ff|fB|ffftfHHH&|d", "_cccc||Sf-ff|fffffffff|_", "_cccc||ff|ff|fffffffff|d", - "_cccc||ff|ffDffef|Cffo|d", + "_cccc||ff|ffDffef|Cfff|d", "_cccc||gT|ff|fftt|Caa{|_", "_____d|||||||||||||WW||d", "_______d_____d__d__d_d__" @@ -214,8 +212,7 @@ "b": "f_bed", "g": "f_null", "t": "f_trashcan", - "{": "f_dumpster", - "o": "f_oven" + "{": "f_dumpster" }, "place_items": [ { "chance": 20, "item": "table_livingroom", "x": 16, "y": 21 }, @@ -238,15 +235,15 @@ { "chance": 30, "item": "kitchen", "x": 6, "y": 2 } ], "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": 17, "y": 13, "repeat": [ 1, 6 ], "density": 0.1 }, - { "monster": "GROUP_DOGS", "x": 3, "y": 14, "repeat": [ 1, 2 ], "density": 0.1 } + { "chance": 50, "density": 1, "monster": "GROUP_ZOMBIE", "x": 17, "y": 13 }, + { "chance": 20, "density": 1, "monster": "GROUP_DOGS", "x": 3, "y": 14 } ], "place_toilets": [ { "x": 18, "y": 2 }, { "x": 8, "y": 21 } ], "rows": [ "________ppp_p___p_______", "ddd||ww|||||||||||||____", "ddd|aCC|f#HH|fbb|B&||p__", - "ddd|off|ffff|fbb|ff||___", + "ddd|Fff|ffff|fbb|ff||___", "ddd|ffffffffffff|ff||___", "dddwffffffff|ffffff||p__", "ddd|fffffe#t|Dff|fS||p__", @@ -263,7 +260,7 @@ "_cccc||ff|fb|ffA#fffft|d", "_cccc||Sfhff|fffffffff|_", "_cccc||ff|ff|fffffffff|d", - "_cccc||ff|ffhffef|affo|d", + "_cccc||ff|ffhffef|afff|d", "_cccc||j&|fD|ff##|aCCF|_", "_____d|||||||||||||WW||d", "_______d_____d__d__d_d__" diff --git a/data/json/mapgen_palettes/acidia_camp_palette.json b/data/json/mapgen_palettes/acidia_camp_palette.json index 33346991621b8..38b1f0f90b76c 100644 --- a/data/json/mapgen_palettes/acidia_camp_palette.json +++ b/data/json/mapgen_palettes/acidia_camp_palette.json @@ -84,8 +84,7 @@ "u": "f_cupboard", "W": "f_canvas_wall", "w": "f_null", - "y": "f_smoking_rack", - "e": "f_arcfurnace_empty" + "y": "f_smoking_rack" } } ] diff --git a/data/json/mapgen_palettes/airliner_palette.json b/data/json/mapgen_palettes/airliner_palette.json deleted file mode 100644 index c0649786cd0a5..0000000000000 --- a/data/json/mapgen_palettes/airliner_palette.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "type": "palette", - "id": "airliner_palette", - "terrain": { - " ": [ [ "t_grass", 40 ], [ "t_grass_long", 6 ], [ "t_dirt", 10 ] ], - "A": "t_open_air", - ",": "t_rock", - "d": "t_dirtmound", - "M": "t_wall_metal", - "m": "t_scrap_wall_halfway", - ".": "t_metal_floor", - "a": "t_metal_floor", - "c": "t_metal_floor", - "f": "t_metal_floor", - "l": "t_metal_floor", - "S": "t_metal_floor", - "T": "t_metal_floor", - "z": "t_metal_floor", - "Z": "t_metal_floor", - "+": "t_door_metal_c", - "D": "t_door_metal_locked", - "g": "t_reinforced_glass", - "s": "t_reinforced_glass_shutter", - "x": "t_console_broken", - ">": "t_slope_down", - "<": "t_slope_up" - }, - "furniture": { "a": "f_seat_airplane", "c": "f_counter", "f": "f_fridge", "l": "f_locker", "S": "f_sink", "*": "f_wreckage" }, - "toilets": { "T": { } } - } -] diff --git a/data/json/mapgen_palettes/cabin.json b/data/json/mapgen_palettes/cabin.json index 1b984cb105e38..f8afaed4d31f3 100644 --- a/data/json/mapgen_palettes/cabin.json +++ b/data/json/mapgen_palettes/cabin.json @@ -13,7 +13,7 @@ "G": "t_fencegate_c", "o": "t_column", "P": "t_water_pump", - "R": "t_floor", + "R": "t_rock", "r": "t_rock_floor", "S": "t_rock_floor", "w": "t_window_domestic", diff --git a/data/json/mapgen_palettes/cground.json b/data/json/mapgen_palettes/cground.json deleted file mode 100644 index f42c2ffac0b07..0000000000000 --- a/data/json/mapgen_palettes/cground.json +++ /dev/null @@ -1,191 +0,0 @@ -[ - { - "type": "palette", - "id": "cground", - "terrain": { - " ": [ [ "t_dirt", 1 ], [ "t_grass_tall", 1 ], [ "t_grass_long", 10 ], [ "t_grass", 5 ] ], - ",": [ [ "t_dirt", 1 ], [ "t_grass_tall", 2 ], [ "t_grass_long", 10 ] ], - "_": [ [ "t_dirt", 12 ], [ "t_railroad_rubble", 8 ], [ "t_grass_long", 1 ], [ "t_grass", 1 ] ], - ";": [ [ "t_dirt", 10 ], [ "t_grass", 2 ], [ "t_grass_long", 1 ] ], - "B": [ [ "t_dirt", 12 ], [ "t_railroad_rubble", 8 ], [ "t_grass_long", 1 ], [ "t_grass", 1 ] ], - "N": [ [ "t_dirt", 12 ], [ "t_railroad_rubble", 8 ], [ "t_grass_long", 1 ], [ "t_grass", 1 ] ], - "D": [ [ "t_dirt", 12 ], [ "t_railroad_rubble", 8 ], [ "t_grass_long", 1 ] ], - "R": [ [ "t_dirt", 12 ], [ "t_railroad_rubble", 8 ], [ "t_grass_long", 1 ] ], - "|": "t_wall_log", - ".": "t_floor", - "i": "t_pit_shallow", - "v": "t_window_domestic", - "+": "t_door_c", - "X": "t_console_broken", - "H": "t_privacy_fence", - "m": "t_privacy_fencegate_c", - "F": "t_tree_juniper", - "7": [ - [ "t_grass_tall", 85 ], - [ "t_tree_young", 128 ], - [ "t_tree", 32 ], - [ "t_tree_birch", 16 ], - [ "t_tree_elm", 16 ], - [ "t_tree_cottonwood", 16 ], - [ "t_tree_pine", 32 ], - [ "t_tree_maple", 32 ], - [ "t_tree_willow", 32 ], - [ "t_tree_hickory", 16 ], - [ "t_tree_walnut", 8 ], - [ "t_tree_chestnut", 8 ], - [ "t_tree_hazelnut", 2 ], - [ "t_tree_beech", 2 ], - [ "t_tree_blackjack", 8 ], - [ "t_tree_coffee", 2 ], - [ "t_tree_apple", 2 ], - [ "t_tree_apricot", 2 ], - [ "t_tree_cherry", 2 ], - [ "t_tree_juniper", 2 ], - [ "t_tree_peach", 2 ], - [ "t_tree_pear", 2 ], - [ "t_tree_plum", 2 ], - [ "t_tree_elderberry", 2 ], - [ "t_tree_mulberry", 2 ], - [ "t_tree_deadpine", 16 ], - [ "t_tree_hickory_dead", 16 ], - [ "t_tree_dead", 16 ] - ], - "*": [ - [ "t_underbrush", 15 ], - [ "t_shrub", 3 ], - [ "t_grass_tall", 2 ], - [ "t_shrub_blueberry", 1 ], - [ "t_shrub_strawberry", 1 ], - [ "t_shrub_blackberry", 1 ], - [ "t_shrub_raspberry", 1 ], - [ "t_shrub_huckleberry", 1 ], - [ "t_shrub_grape", 1 ], - [ "t_shrub_rose", 1 ], - [ "t_shrub_hydrangea", 1 ], - [ "t_shrub_lilac", 1 ] - ], - "o": "t_dirtmound", - "G": "t_grave", - "#": "t_open_air", - "q": "t_railing", - "%": "t_open_air_rooved", - "z": "t_shingle_flat_roof", - "Z": "t_glass_roof", - "(": "t_gutter_west", - ")": "t_gutter_east", - "=": "t_gutter_north", - "-": "t_gutter_south", - "<": "t_stairs_up", - ">": "t_stairs_down", - "W": "t_shingle_flat_roof", - "w": "t_shingle_flat_roof", - "j": "t_shingle_flat_roof", - "t": "t_gutter_downspout", - ":": "t_gutter_drop", - "'": "t_concrete" - }, - "furniture": { - "g": "f_bulletin", - "i": "f_firering", - "b": "f_bench", - "n": "f_table", - "B": "f_bench", - "N": "f_table", - "S": "f_sink", - "?": "f_sofa", - "a": "f_trashcan", - "^": [ "f_indoor_plant", "f_indoor_plant_y" ], - "c": "f_counter", - "$": "f_vending_o", - "D": "f_dumpster", - "R": "f_recycle_bin", - "e": "f_fridge", - "O": "f_oven", - "U": "f_counter", - "u": "f_cupboard", - "s": "f_dishwasher", - "h": "f_chair", - "d": "f_desk", - "@": "f_bed", - "l": "f_locker", - "M": "f_locker", - "!": "f_shower", - "f": "f_filing_cabinet", - "Y": "f_rack_coat", - "x": [ [ "f_cardboard_box", 3 ], [ "f_crate_o", 1 ] ], - "W": "f_chimney", - "w": "f_air_conditioner", - "j": "f_cellphone_booster", - "p": "f_home_furnace", - "L": "f_locker", - " ": [ - [ "f_null", 2000 ], - [ "f_black_eyed_susan", 1 ], - [ "f_lily", 1 ], - [ "f_flower_tulip", 1 ], - [ "f_flower_spurge", 1 ], - [ "f_chamomile", 1 ], - [ "f_dandelion", 1 ], - [ "f_datura", 1 ], - [ "f_dahlia", 1 ], - [ "f_bluebell", 1 ], - [ "f_mutpoppy", 1 ] - ], - ",": [ - [ "f_null", 1500 ], - [ "f_black_eyed_susan", 1 ], - [ "f_lily", 1 ], - [ "f_flower_tulip", 1 ], - [ "f_flower_spurge", 1 ], - [ "f_chamomile", 1 ], - [ "f_dandelion", 1 ], - [ "f_datura", 1 ], - [ "f_dahlia", 1 ], - [ "f_bluebell", 1 ], - [ "f_mutpoppy", 1 ], - [ "f_boulder_small", 4 ], - [ "f_rubble_rock", 5 ], - [ "f_boulder_medium", 2 ], - [ "f_boulder_large", 1 ] - ] - }, - "toilets": { "T": { } }, - "items": { - "@": { "item": "bed", "chance": 80, "repeat": [ 1, 2 ] }, - "L": { "item": "cleaning", "chance": 75, "repeat": [ 1, 3 ] }, - "?": { "item": "bed", "chance": 10, "repeat": [ 1, 2 ] }, - "D": { "item": "trash", "chance": 75, "repeat": [ 1, 10 ] }, - "R": { "item": "trash", "chance": 75, "repeat": [ 1, 10 ] }, - "a": { "item": "trash", "chance": 75, "repeat": [ 1, 3 ] }, - "O": { "item": "oven", "chance": 100, "repeat": [ 1, 2 ] }, - ",": { "item": "forest", "chance": 1 }, - " ": { "item": "field", "chance": 1 }, - "l": [ { "item": "allclothes", "chance": 90, "repeat": [ 1, 3 ] }, { "item": "shelter", "chance": 45, "repeat": [ 1, 2 ] } ], - "e": [ { "item": "fridge", "chance": 70, "repeat": [ 1, 8 ] }, { "item": "fridgesnacks", "chance": 20, "repeat": [ 1, 2 ] } ], - "c": [ { "item": "kitchen_appliances", "chance": 15 }, { "item": "dishes_utility", "chance": 15 } ], - "s": [ - { "item": "dishes_utility", "chance": 80, "repeat": [ 1, 3 ] }, - { "item": "dishes_dining", "chance": 80, "repeat": [ 5, 25 ] } - ], - "U": [ - { "item": "dishes_utility", "chance": 80, "repeat": [ 1, 3 ] }, - { "item": "dishes_dining", "chance": 80, "repeat": [ 5, 10 ] } - ], - "u": [ - { "item": "cannedfood", "chance": 50, "repeat": [ 1, 3 ] }, - { "item": "pasta", "chance": 50, "repeat": [ 1, 3 ] }, - { "item": "snacks", "chance": 50, "repeat": [ 1, 3 ] } - ], - "x": [ - { "item": "cannedfood", "chance": 50, "repeat": [ 1, 3 ] }, - { "item": "pasta", "chance": 50, "repeat": [ 1, 3 ] }, - { "item": "snacks", "chance": 50, "repeat": [ 1, 3 ] } - ], - "M": { "item": "drugs_heal_simple", "chance": 70, "repeat": [ 1, 4 ] }, - "d": [ - { "item": "office", "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "cubical_office", "chance": 25, "repeat": [ 1, 2 ] } - ] - } - } -] diff --git a/data/json/mapgen_palettes/collapsed_tower.json b/data/json/mapgen_palettes/collapsed_tower.json deleted file mode 100644 index a0d2c3ad61980..0000000000000 --- a/data/json/mapgen_palettes/collapsed_tower.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "type": "palette", - "id": "collapsed_tower", - "terrain": { - "#": "t_rock", - "+": "t_door_c", - "-": "t_wall", - ".": "t_grass", - "0": "t_column", - "1": "t_wall_glass", - "2": "t_wall_glass", - "3": "t_door_metal_c", - "5": "t_door_metal_locked", - ">": "t_stairs_down", - "D": "t_door_metal_locked", - "E": "t_elevator_control", - "[": "t_fence_v", - "_": "t_pavement", - "c": "t_door_locked", - "e": "t_elevator", - "l": "t_floor", - "s": "t_sidewalk", - "w": "t_door_c", - "y": "t_pavement_y", - "z": "t_shrub", - "`": "t_hole", - "{": "t_door_glass_c", - "|": "t_concrete_wall", - "~": "t_water_sh" - }, - "furniture": { - "4": "f_indoor_plant", - "6": "f_table", - "8": "f_bathtub", - "9": "f_rack", - ":": "f_dresser", - ";": "f_toilet", - "=": "f_fireplace", - ">": "f_counter", - "?": "f_sofa", - "@": "f_bed", - "A": "f_sink", - "B": "f_chair", - "C": "f_desk", - "F": "f_fridge", - "G": "f_oven", - "H": "f_armchair", - "X": "f_crate_c", - "l": "f_locker" - }, - "toilets": { ";": { } } - } -] diff --git a/data/json/mapgen_palettes/farm.json b/data/json/mapgen_palettes/farm.json index 8620e030d462e..2e0ab2d2a8aa7 100644 --- a/data/json/mapgen_palettes/farm.json +++ b/data/json/mapgen_palettes/farm.json @@ -15,10 +15,8 @@ "_": "t_dirtfloor", "|": "t_wall_w", ";": "t_fence_wire", - ":": "t_chickenwire_fence", "A": "t_bars", "c": "t_door_makeshift_c", - "C": "t_chickenwire_gate_c", "D": "t_dirtmound", "E": "t_dirtmoundfloor", "F": "t_fence_barbed", diff --git a/data/json/mapgen_palettes/mall_palette.json b/data/json/mapgen_palettes/mall_palette.json index 7ca5cb812232c..75ccd2631d8e4 100644 --- a/data/json/mapgen_palettes/mall_palette.json +++ b/data/json/mapgen_palettes/mall_palette.json @@ -60,28 +60,28 @@ }, "terrain": { "#": "t_shrub", - "!": "t_linoleum_gray_no_roof", - "$": "t_linoleum_white_no_roof", + "!": "t_linoleum_gray", + "$": "t_linoleum_white", "%": "t_carpet_green", - "^": "t_linoleum_white_no_roof", - "&": "t_linoleum_white_no_roof", + "^": "t_linoleum_white", + "&": "t_linoleum_white", "*": "t_carpet_green", - "(": "t_linoleum_white_no_roof", + "(": "t_linoleum_white", ")": "t_grass", "~": "t_carpet_green", "+": "t_door_c", ",": "t_pavement_y", - "-": "t_brick_wall", + "-": "t_wall_w", ".": "t_grass", - "1": "t_linoleum_white_no_roof", - "2": "t_linoleum_gray_no_roof", + "1": "t_linoleum_white", + "2": "t_linoleum_gray", "3": "t_carpet_red", "4": "t_carpet_green", "5": "t_door_gray_c", "6": "t_console_broken", "7": "t_gates_mech_control", "8": "t_sidewalk", - "9": "t_linoleum_white_no_roof", + "9": "t_linoleum_white", "0": "t_door_red_c", ":": "t_door_locked_interior", ";": "t_door_locked", @@ -95,27 +95,27 @@ "E": "t_elevator", "F": "t_floor", "G": "t_carpet_red", - "H": "t_laminated_glass", + "H": "t_wall_glass", "J": "t_carpet_red", "I": "t_carpet_red", "K": "t_carpet_red", "L": "t_floor", - "M": "t_linoleum_gray_no_roof", - "N": "t_linoleum_white_no_roof", + "M": "t_linoleum_gray", + "N": "t_linoleum_white", "O": "t_floor", "P": "t_floor", "Q": "t_carpet_red", - "R": "t_linoleum_gray_no_roof", + "R": "t_linoleum_gray", "S": "t_floor", "T": "t_tree", "U": "t_sidewalk", - "V": "t_laminated_glass", + "V": "t_wall_glass", "W": "t_floor", "X": "t_floor", "Y": "t_floor", - "Z": "t_laminated_door_glass_c", - "[": "t_laminated_door_glass_c", - "]": "t_laminated_door_glass_o", + "Z": "t_door_glass_gray_c", + "[": "t_door_glass_c", + "]": "t_door_glass_o", "_": "t_pavement", "a": "t_railing_v", "b": "t_floor", @@ -125,15 +125,15 @@ "f": "t_floor", "g": "t_carpet_red", "h": "t_floor", - "i": "t_linoleum_gray_no_roof", + "i": "t_linoleum_gray", "j": "t_carpet_red", - "k": "t_linoleum_gray_no_roof", + "k": "t_linoleum_gray", "l": "t_floor", "m": "t_carpet_red", "n": "t_floor", - "o": "t_linoleum_gray_no_roof", + "o": "t_linoleum_gray", "p": "t_column", - "q": "t_linoleum_gray_no_roof", + "q": "t_linoleum_gray", "r": "t_floor", "s": "t_sidewalk", "t": "t_floor", @@ -141,10 +141,10 @@ "v": "t_carpet_red", "w": "t_water_sh", "x": "t_floor", - "y": "t_linoleum_gray_no_roof", + "y": "t_linoleum_gray", "<": "t_stairs_up", "z": "t_floor", - "|": "t_brick_wall" + "|": "t_wall_w" }, "toilets": { "t": { } } }, @@ -203,16 +203,16 @@ " ": "t_open_air", ".": "t_linoleum_gray", ",": "t_linoleum_white", - "_": "t_thconc_floor", + "_": "t_concrete", "^": "t_floor", "E": "t_elevator", "<": "t_stairs_up", ">": "t_stairs_down", - "-": "t_brick_wall", - "|": "t_brick_wall", - "H": "t_laminated_glass", + "-": "t_wall_w", + "|": "t_wall_w", + "H": "t_wall_glass", "#": "t_glass_railing", - "+": "t_laminated_door_glass_c", + "+": "t_door_glass_c", "=": [ "t_door_c", "t_door_locked" ], "p": "t_column", "x": [ "t_machinery_light", "t_machinery_heavy", "t_machinery_old", "t_machinery_electronic" ], diff --git a/data/json/mapgen_palettes/ranch_camp.json b/data/json/mapgen_palettes/ranch_camp.json index 737dc0f2533a4..a17edfb5dd870 100644 --- a/data/json/mapgen_palettes/ranch_camp.json +++ b/data/json/mapgen_palettes/ranch_camp.json @@ -19,7 +19,6 @@ "B": "t_floor", "C": "t_grass", "D": "t_floor", - "E": "t_floor", "G": "t_palisade_gate", "H": "t_splitrail_fence_h", "L": "t_floor", @@ -61,7 +60,6 @@ "@": "f_bed", "B": "f_bathtub", "D": "f_trashcan", - "E": "f_bookcase", "L": "f_locker", "O": "f_oven", "S": "f_sink", diff --git a/data/json/mapgen_palettes/shelter.json b/data/json/mapgen_palettes/shelter.json index 8140a264ffff0..7456276e1d17d 100644 --- a/data/json/mapgen_palettes/shelter.json +++ b/data/json/mapgen_palettes/shelter.json @@ -23,8 +23,7 @@ "|": "t_wall_w", ";": "t_concrete_wall", "*": "t_ladder_up", - "=": "t_door_locked_interior", - "4": "t_gutter_downspout" + "=": "t_door_locked_interior" }, "furniture": { "b": "f_bench", "c": "f_counter", "l": "f_locker" } } diff --git a/data/json/mapgen_palettes/trailer_park.json b/data/json/mapgen_palettes/trailer_park.json index ec64d772b9380..39b3d0974506a 100644 --- a/data/json/mapgen_palettes/trailer_park.json +++ b/data/json/mapgen_palettes/trailer_park.json @@ -38,8 +38,7 @@ "i": "f_null", "j": "f_shower", "p": "f_null", - "u": "f_null", - "o": "f_oven" + "u": "f_null" }, "terrain": { "#": "t_underbrush", @@ -77,8 +76,7 @@ "i": "t_curtains", "j": "t_floor", "p": "t_palisade_gate_o", - "u": "t_underbrush", - "o": "t_floor" + "u": "t_underbrush" } } ] diff --git a/data/json/martialarts.json b/data/json/martialarts.json index 61ae8df33b98d..315381bd28062 100644 --- a/data/json/martialarts.json +++ b/data/json/martialarts.json @@ -64,307 +64,86 @@ "tec_aikido_blockthrow" ] }, - { - "type": "martial_art", - "id": "style_boxing", - "name": "Boxing", - "description": "Sport of the true gentleman, modern boxing has evolved from the prizefights of the Victorian era. Strength reduces blocked damage and moving increase dodge skill.", - "initiate": [ "You lower your chin and raise your fists to eye level.", "%s prepares to fight with raised fists." ], - "learn_difficulty": 1, - "arm_block": 1, - "static_buffs": [ - { - "id": "buff_boxing_static", - "name": "Boxing Stance", - "description": "A solid stance allows you block more damage than normal and deliver better punches.\n\n+2 Bash damage, Blocked damge reduced by 50%% of Strength.", - "min_unarmed": 0, - "unarmed_allowed": true, - "flat_bonuses": [ [ "block", "str", 0.5 ], [ "damage", "bash", 2.0 ] ] - } - ], - "onmove_buffs": [ - { - "id": "buff_boxing_onmove", - "name": "Footwork", - "description": "You are make yourself harder to hit by bobbing and weaving as you move.\n\n+1.0 Dodge skill.\nLasts for 1 turns. Stacks 2 times.", - "min_unarmed": 3, - "unarmed_allowed": true, - "buff_duration": 1, - "max_stacks": 2, - "flat_bonuses": [ [ "dodge", 1.0 ] ] - } - ], - "ondodge_buffs": [ - { - "id": "buff_boxing_ondodge", - "name": "Counter Chance", - "description": "You've seen your chance. Now strike back!\n\n+25% Bash damage.\nLasts for 1 turn.", - "min_unarmed": 5, - "unarmed_allowed": true, - "buff_duration": 1, - "mult_bonuses": [ [ "damage", "bash", 1.25 ] ] - } - ], - "techniques": [ "tec_boxing_rapid", "tec_boxing_cross", "tec_boxing_upper", "tec_boxing_counter" ] - }, { "type": "martial_art", "id": "style_brawling", "name": "Brawling", - "description": "You're used to hand-to-creature fighting. You know how to fight when unarmed or with any weapon to a certain extent. It's not stylish or sporting, but it gets the job done.", + "description": "You're used to hand-to-creature fighting. Not stylish or sporting, but it gets the job done.", "initiate": [ "You grit your teeth and prepare for a good fight.", "%s gets ready to brawl." ], - "autolearn": [ [ "melee", "1" ] ], - "arm_block": 1, + "autolearn": [ [ "unarmed", "2" ] ], + "arm_block": -1, "leg_block": 7, "allow_melee": true, - "techniques": [ - "tec_brawl_disarm_unarmed", - "tec_brawl_feint_unarmed", - "tec_brawl_counter_unarmed", - "tec_brawl_break_unarmed", - "tec_brawl_power", - "tec_brawl_trip", - "tec_brawl_disarm_melee", - "tec_brawl_counter_melee", - "tec_brawl_feint_melee", - "tec_brawl_break_melee" - ] + "techniques": [ "tec_brawl_feint", "tec_brawl_power", "tec_brawl_trip", "tec_brawl_counter" ] }, { "type": "martial_art", - "id": "style_capoeira", - "name": "Capoeira", - "description": "A dance-like style with its roots in Brazilian slavery, Capoeira is focused on fluid movement and sweeping kicks. Moving briefly enables stronger techniques. Missing an attack grants bonus damage for a short time.", - "initiate": [ "You begin performing the ginga.", "%s begins to rhythmically rock back and forth." ], - "learn_difficulty": 4, - "static_buffs": [ + "id": "style_karate", + "name": "Karate", + "description": "Karate is a popular martial art, originating from Japan. It focuses on rapid, precise attacks, blocks, and fluid movement. A successful hit allows you an extra dodge and two extra blocks on the following round.", + "initiate": [ "You adopt a classic karate stance.", "%s adopts a classic karate stance." ], + "learn_difficulty": 5, + "arm_block": 2, + "leg_block": 99, + "onhit_buffs": [ { - "id": "buff_capoeira_static", - "name": "Capoeira Stance", - "description": "You never stop moving while performing the ginga. This makes you very mobile while fighting.\n\n+1.0 Dodge skill, +1 Dodge attempts.", + "id": "karate_hit_buff", + "name": "Karate Hit", "unarmed_allowed": true, "min_unarmed": 0, - "bonus_dodges": 1, - "flat_bonuses": [ [ "dodge", 1.0 ] ] - } - ], - "onmiss_buffs": [ - { - "id": "buff_capoeira_onmiss", - "name": "Capoeira Tempo", - "description": "You didn't miss, it's just part of the dance and the best part is about to start!\n\n+15%% Bash damage.\nLasts 2 turns. Stacks 3 times.", - "unarmed_allowed": true, - "min_unarmed": 1, - "buff_duration": 2, - "max_stacks": 3, - "mult_bonuses": [ [ "damage", "bash", 1.15 ] ] - } - ], - "onmove_buffs": [ - { - "id": "buff_capoeira_onmove", - "name": "Capoeira Momentum", - "description": "You can feel the rhythm as you move. Not only are you harder to hit, but your kicks are even more amazing!\n\n+1.0 Dodge skill.\nEnables \"Spin Kick\" and \"Sweep Kick\" techniques.\nLasts 3 turns.", - "unarmed_allowed": true, - "min_unarmed": 2, "buff_duration": 3, - "flat_bonuses": [ [ "dodge", 1.0 ] ] + "description": "+1 Dodges, +2 Blocks", + "bonus_dodges": 1, + "bonus_blocks": 2 } ], - "techniques": [ - "tec_capoeira_feint", - "tec_capoeira_pushkick", - "tec_capoeira_sweepkick", - "tec_capoeira_circlekick", - "tec_capoeira_spinkick" - ] + "techniques": [ "tec_karate_rapid", "tec_karate_precise" ] }, { "type": "martial_art", - "id": "style_crane", - "name": "Crane Kung Fu", - "description": "One of the five Shaolin animal styles. The Crane uses intricate hand techniques and jumping dodges. Dexterity determines your damage, rather than Strength; you also receive a dodge bonus move or dodge an attack.", - "initiate": [ "You raise your leg slightly and balance like a crane.", "%s assumes a crane-like stance." ], - "learn_difficulty": 10, - "arm_block": 3, + "id": "style_boxing", + "name": "Boxing", + "description": "Sport of the true gentleman, modern boxing has evolved from the prizefights of the Victorian era.", + "initiate": [ "You lower your chin and raise your fists to eye level.", "%s prepares to fight with raised fists." ], + "learn_difficulty": 1, + "arm_block": 2, + "leg_block": 99, "static_buffs": [ { - "id": "buff_crane_static", - "name": "Crane's Precision", - "description": "Your attacks strike at your opponents weakness with speed and percision instead of brute force.\nDexterity increases melee damage instead of Strength.\n\nBash damage increased by 75%% of Dexterity but decreased by 75%% of Strength.", + "id": "boxing_static", + "name": "Boxing", + "description": "Per increases unarmed power, Str reduces block damage.", "unarmed_allowed": true, - "flat_bonuses": [ [ "damage", "bash", "dex", 0.75 ], [ "damage", "bash", "str", -0.75 ] ] + "min_unarmed": 0, + "max_stacks": 1, + "flat_bonuses": [ [ "damage", "bash", "per", 0.4 ], [ "block", "str", 0.5 ] ] } ], "onmove_buffs": [ { - "id": "buff_crane_onmove", - "name": "Crane's Flight", - "description": "Just like a bird, you take to the air to avoid danger.\n\n+1.0 Dodge skill.\nLasts 2 turns.", + "id": "boxing_move_buff", + "name": "Footwork", + "description": "Gain an extra dodge while moving.", "unarmed_allowed": true, - "min_unarmed": 2, + "min_unarmed": 4, "buff_duration": 2, - "flat_bonuses": [ [ "dodge", 1.0 ] ] + "max_stacks": 2, + "bonus_dodges": 1 } ], "ondodge_buffs": [ { - "id": "buff_crane_ondodge", - "name": "Crane's Grace", - "description": "Much like the crane, you a quick to avoid danger.\n\n+1 Dodge attempts, +1.0 Dodge skill.\nLasts 2 turns.", - "unarmed_allowed": true, - "min_unarmed": 2, - "buff_duration": 2, - "bonus_dodges": 1, - "flat_bonuses": [ [ "dodge", 1.0 ] ] - } - ], - "techniques": [ "tec_crane_feint", "tec_crane_break", "tec_crane_counter", "tec_crane_precise" ] - }, - { - "type": "martial_art", - "id": "style_dragon", - "name": "Dragon Kung Fu", - "description": "One of the five Shaolin animal styles. The Dragon uses fluid movements and hard strikes. Intelligence improves your accuracy instead of Dexterity. Your attacks lead to counterattacks which disable your opponents and set them up for a powerful finishing move.", - "initiate": [ "You relax and patiently await conflict like the great dragon.", "%s assumes a dragon-like stance." ], - "learn_difficulty": 10, - "arm_block": 2, - "static_buffs": [ - { - "id": "buff_dragon_static", - "name": "Dragon's Knowledge", - "description": "You plan your attack far in advance relying on your intution instead of your speed to strike true. Intelligence increases Accuracy instead of Dexterity.\n\nAccuracy increased by 25%% of Intelligence but decreased by 25%% of Dexterity.", - "min_unarmed": 0, - "unarmed_allowed": true, - "flat_bonuses": [ [ "hit", "int", 0.25 ], [ "hit", "dex", -0.25 ] ] - } - ], - "onhit_buffs": [ - { - "id": "buff_dragon_onhit", - "name": "Dragon's Flight", - "description": "Life and combat are a circle. An attack leads to a counter and to an attack once again. Seek to complete this loop.\n\n+1 Accuracy, +2 bash Damage.\nEnables \"Dragon Vortex Block\" and \"Dragon Wing Dodge\"\nLasts 1 turn.", - "unarmed_allowed": true, - "min_unarmed": 1, - "buff_duration": 1, - "flat_bonuses": [ [ "hit", 1.0 ], [ "damage", "bash", 2 ] ] - } - ], - "techniques": [ "tec_dragon_claw", "tec_dragon_blockcounter", "tec_dragon_dodgecounter", "tec_dragon_tail", "tec_dragon_strike" ] - }, - { - "type": "martial_art", - "id": "style_eskrima", - "name": "Eskrima", - "description": "Eskrima, also known as Kali, is a Filipino martial art. It emphasizes rapid strikes with knife and baton weapons, along with a variety of improvised substitutes.", - "initiate": [ "You enter an open guard stance and prepare to strike.", "%s enters an open stance." ], - "learn_difficulty": 8, - "primary_skill": "bashing", - "strictly_melee": true, - "static_buffs": [ - { - "id": "buff_eskrima_static", - "name": "Eskrima Stance", - "description": "You are skilled at getting the most out of your weapons. The term 'weapon' might be very subjective,\n\n+2 Accuracy.", - "min_melee": 0, - "melee_allowed": true, - "mult_bonuses": [ [ "hit", 2.0 ] ] - } - ], - "oncrit_buffs": [ - { - "id": "buff_eskrima_oncrit", - "name": "Eskrima Combination", - "description": "You can follow up a critical hit with a stronger attack if the opportunity presents itself.\n\n+15%% bonus to all damage.\nEnables \"Combination Strike\" technique.\nLasts 3 turns. Stacks 3 times.", - "min_melee": 2, - "melee_allowed": true, - "buff_duration": 3, - "max_stacks": 3, - "mult_bonuses": [ [ "damage", "bash", 1.15 ], [ "damage", "cut", 1.15 ], [ "damage", "stab", 1.15 ] ] - } - ], - "techniques": [ - "tec_eskrima_round", - "tec_eskrima_fan", - "tec_eskrima_snap", - "tec_eskrima_puno", - "tec_eskrima_low", - "tec_eskrima_combination" - ], - "weapons": [ - "2x4", - "bagh_nakha", - "baton-extended", - "bee_sting", - "bowling_pin", - "cane", - "copper_knife", - "cudgel", - "cu_pipe", - "diveknife", - "fighter_sting", - "firemachete_off", - "firemachete_on", - "glass_shiv", - "hammer", - "knife_combat", - "knife_hunting", - "knife_trench", - "kukri", - "knife_rambo", - "knife_rm42", - "machete", - "makeshift_knife", - "makeshift_machete", - "pipe", - "pockknife", - "pool_cue", - "PR24-extended", - "primitive_knife", - "primitive_hammer", - "punch_dagger", - "scissors", - "screwdriver", - "sharp_toothbrush", - "shishkebab_off", - "shishkebab_on", - "shocktonfa_off", - "shocktonfa_on", - "stick", - "survivor_machete", - "switchblade", - "tanto", - "tanto_inferior", - "tanto_fake", - "tonfa", - "tonfa_wood", - "umbrella", - "wasp_sting", - "wrench" - ] - }, - { - "type": "martial_art", - "id": "style_karate", - "name": "Karate", - "description": "Karate is a popular martial art, originating from Japan. It focuses on rapid, precise attacks, blocks, and fluid movement. A successful hit allows you an extra dodge and two extra blocks on the following round.", - "initiate": [ "You adopt a classic karate stance.", "%s adopts a classic karate stance." ], - "learn_difficulty": 5, - "arm_block": 2, - "leg_block": 99, - "onhit_buffs": [ - { - "id": "karate_hit_buff", - "name": "Karate Hit", + "id": "boxing_counter", + "name": "Counter Chance", + "description": "They're wide open!", + "min_unarmed": 5, "unarmed_allowed": true, - "min_unarmed": 0, + "max_stacks": 2, "buff_duration": 3, - "description": "+1 Dodges, +2 Blocks", - "bonus_dodges": 1, - "bonus_blocks": 2 + "mult_bonuses": [ [ "damage", "bash", 1.25 ] ] } ], - "techniques": [ "tec_karate_rapid", "tec_karate_precise" ] + "techniques": [ "tec_boxing_rapid", "tec_boxing_cross", "tec_boxing_upper", "tec_boxing_counter" ] }, { "type": "martial_art", @@ -411,6 +190,42 @@ ], "techniques": [ "tec_taichi_disarm", "tec_taichi_precise" ] }, + { + "type": "martial_art", + "id": "style_capoeira", + "name": "Capoeira", + "description": "A dance-like style with its roots in Brazilian slavery, Capoeira is focused on fluid movement and sweeping kicks. Moving a tile will boost attack and damage and attacking boosts dodge. These bonuses stack up to three times each.", + "initiate": [ "You begin performing the ginga.", "%s begins to rhymically rock back and forth." ], + "learn_difficulty": 4, + "arm_block": 99, + "leg_block": 99, + "onhit_buffs": [ + { + "id": "capoeira_hit_buff", + "name": "Capoeira Tempo", + "description": "+1 dodge and +1 blocks per stack", + "unarmed_allowed": true, + "min_unarmed": 3, + "buff_duration": 5, + "max_stacks": 3, + "bonus_blocks": 1, + "flat_bonuses": [ [ "dodge", 1.0 ] ] + } + ], + "onmove_buffs": [ + { + "id": "capoeira_move_buff", + "name": "Capoeira Momentum", + "description": "+2 bash and +1 acc per stack", + "unarmed_allowed": true, + "min_unarmed": 2, + "buff_duration": 3, + "max_stacks": 3, + "flat_bonuses": [ [ "damage", "bash", 2.0 ], [ "hit", 1.0 ] ] + } + ], + "techniques": [ "tec_capoeira_feint" ] + }, { "type": "martial_art", "id": "style_krav_maga", @@ -826,6 +641,163 @@ "nodachi_fake" ] }, + { + "type": "martial_art", + "id": "style_eskrima", + "name": "Eskrima", + "description": "Eskrima, also known as Kali, is a Filipino martial art. It emphasizes rapid strikes with knife and baton weapons, along with a variety of improvised substitutes.", + "initiate": [ "You enter an open guard stance and prepare to strike.", "%s enters an open stance." ], + "learn_difficulty": 8, + "primary_skill": "bashing", + "arm_block": 99, + "leg_block": 99, + "strictly_melee": true, + "static_buffs": [ + { + "id": "eskrima_bash", + "name": "Eskrima Bashing", + "melee_allowed": true, + "min_melee": 1, + "mult_bonuses": [ [ "damage", "bash", 1.2 ] ], + "description": "Increased bashing damage." + } + ], + "onhit_buffs": [ + { + "id": "eskrima_hit_buff", + "name": "Eskrima Combination", + "description": "Combination", + "melee_allowed": true, + "min_melee": 2, + "buff_duration": 3, + "max_stacks": 1, + "mult_bonuses": [ [ "damage", "bash", 1.1 ], [ "damage", "cut", 1.1 ], [ "damage", "stab", 1.1 ] ] + } + ], + "techniques": [ + "tec_eskrima_round", + "tec_eskrima_fan", + "tec_eskrima_snap", + "tec_eskrima_puno", + "tec_eskrima_kick", + "tec_eskrima_combination" + ], + "weapons": [ + "2x4", + "baton-extended", + "bee_sting", + "bio_blade_weapon", + "bowling_pin", + "cane", + "cudgel", + "cu_pipe", + "diveknife", + "fighter_sting", + "firemachete_off", + "firemachete_on", + "glass_shiv", + "hammer", + "knife_combat", + "knife_hunting", + "knife_trench", + "copper_knife", + "machete", + "survivor_machete", + "makeshift_knife", + "makeshift_machete", + "pipe", + "pockknife", + "pool_cue", + "PR24-extended", + "primitive_knife", + "primitive_hammer", + "punch_dagger", + "scissors", + "screwdriver", + "sharp_toothbrush", + "shishkebab_off", + "shishkebab_on", + "shocktonfa_off", + "shocktonfa_on", + "stick", + "switchblade", + "tanto", + "tanto_inferior", + "tanto_fake", + "tonfa", + "tonfa_wood", + "umbrella", + "wasp_sting", + "wrench", + "kukri", + "knife_rambo", + "knife_rm42", + "l-stick", + "l-stick_on" + ] + }, + { + "type": "martial_art", + "id": "style_crane", + "name": "Crane Kung Fu", + "description": "One of the five Shaolin animal styles. The Crane uses intricate hand techniques and jumping dodges. Dexterity determines the majority of your damage, rather than Strength; you also receive a dodge bonus the turn after moving a tile.", + "initiate": [ "You raise your leg slightly and balance like a crane.", "%s assumes a crane-like stance." ], + "learn_difficulty": 10, + "arm_block": 3, + "leg_block": 99, + "static_buffs": [ + { + "id": "crane_static", + "name": "Crane's Precision", + "description": "Damage bonus from dexterity at the cost of damage from strength.", + "unarmed_allowed": true, + "flat_bonuses": [ [ "damage", "bash", "dex", 0.8 ], [ "damage", "bash", "str", -0.2 ] ] + } + ], + "onmove_buffs": [ + { + "id": "crane_move_buff", + "name": "Crane's Flight", + "description": "+2 Dodge", + "unarmed_allowed": true, + "min_unarmed": 2, + "buff_duration": 2, + "flat_bonuses": [ [ "dodge", 2.0 ] ] + } + ], + "techniques": [ "tec_crane_feint", "tec_crane_break", "tec_crane_precise" ] + }, + { + "type": "martial_art", + "id": "style_dragon", + "name": "Dragon Kung Fu", + "description": "One of the five Shaolin animal styles. The Dragon uses fluid movements and hard strikes. Intelligence improves your accuracy and damage dealt, as does moving.", + "initiate": [ "You relax and patiently await conflict like the great dragon.", "%s assumes a dragon-like stance." ], + "learn_difficulty": 10, + "arm_block": 2, + "leg_block": 99, + "static_buffs": [ + { + "id": "dragon_static", + "name": "Dragon Style", + "description": "Bonus damage from intelligence.", + "unarmed_allowed": true, + "flat_bonuses": [ [ "damage", "bash", "int", 0.8 ] ] + } + ], + "onmove_buffs": [ + { + "id": "dragon_move_buff", + "name": "Dragon's Flight", + "description": "+2 Accuracy & Damage", + "unarmed_allowed": true, + "min_unarmed": 2, + "buff_duration": 2, + "flat_bonuses": [ [ "hit", 2.0 ], [ "damage", "bash", 2 ] ] + } + ], + "techniques": [ "tec_dragon_grab", "tec_dragon_counterb", "tec_dragon_counterd", "tec_dragon_sweep", "tec_dragon_brutal" ] + }, { "type": "martial_art", "id": "style_leopard", @@ -1088,7 +1060,7 @@ { "id": "medievalpole_move", "name": "You moved", - "description": "Nullifies Stand Your Ground, don't move, stand there and counter!", + "description": "Nulifies Stand Your Ground, don't move, stand there and counter!", "melee_allowed": true, "flat_bonuses": [ [ "block", "str", -1.0 ] ], "mult_bonuses": [ [ "dodge", 1.0 ] ], diff --git a/data/json/martialarts_fictional.json b/data/json/martialarts_fictional.json index d3106b6db2184..0036d6ce1cda0 100644 --- a/data/json/martialarts_fictional.json +++ b/data/json/martialarts_fictional.json @@ -50,35 +50,24 @@ "type": "martial_art", "id": "style_centipede", "name": "Centipede Kung Fu", - "description": "One of the Five Deadly Venoms, used by Zhang Yiaotian. Centipede Style uses an onslaught of rapid strikes. Each attack you land increases your attack speed. Critical hits increase your damage further.", + "description": "One of the Five Deadly Venoms. Centipede Style uses an onslaught of rapid strikes. Each attack you land increases your speed by 4.", "initiate": [ "You ready yourself to attack as fast as possible.", "%s assumes a centipede-like stance." ], "learn_difficulty": 10, "arm_block": 3, - "leg_block": 4, + "leg_block": 99, "onhit_buffs": [ { - "id": "buff_centipede_onhit", - "name": "Centipede's Frenzy", - "description": "Your attacks are a blur of hands and legs that become faster as your strike your opponents without rest.\n\n-4 move cost.\nLasts 3 turns. Stacks 4 times.", - "min_unarmed": 5, + "id": "centipede_hit_buff", + "name": "Hundred-Hitter", + "description": "+4 Atk Speed", "unarmed_allowed": true, + "min_unarmed": 1, "buff_duration": 3, - "max_stacks": 4, + "max_stacks": 8, "flat_bonuses": [ [ "movecost", -4.0 ] ] } ], - "oncrit_buffs": [ - { - "id": "buff_centipede_oncrit", - "name": "Centipede's Venom", - "description": "Your venom burns your opponents at the worst of times.\n\n+2 bashing damage.\nLasts 2 turns.", - "min_unarmed": 1, - "unarmed_allowed": true, - "buff_duration": 2, - "flat_bonuses": [ [ "damage", "bash", 2.0 ] ] - } - ], - "techniques": [ "tec_centipede_rapid", "tec_centipede_break", "tec_centipede_bite", "tec_centipede_disarm" ] + "techniques": [ "tec_centipede_rapid" ] }, { "type": "martial_art", @@ -360,43 +349,13 @@ "down_dur": 1, "messages": [ "You snatch and slug %s", " snatches and slug %s" ] }, - { - "type": "technique", - "id": "tec_centipede_break", - "name": "Grab Break", - "messages": [ "The %s tries to grab you, but you skitter free!", "The %s tries to grab , but they skitter free!" ], - "min_unarmed": 3, - "unarmed_allowed": true, - "defensive": true, - "grab_break": true - }, { "type": "technique", "id": "tec_centipede_rapid", - "name": "Centipede Strike", - "messages": [ "You swiftly hit %s", " swiftly hits %s" ], - "min_unarmed": 0, - "unarmed_allowed": true, - "mult_bonuses": [ [ "movecost", 0.5 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.66 ], [ "damage", "stab", 0.66 ] ] - }, - { - "type": "technique", - "id": "tec_centipede_bite", - "name": "Centipede Bite", - "messages": [ "You palm strike %s with a painful Centipede Bite", " palm strikes %s with a painful Centipede Bite" ], + "name": "Rapid Strike", "min_unarmed": 2, "unarmed_allowed": true, - "crit_tec": true, - "down_dur": 1, - "mult_bonuses": [ [ "movecost", 0.5 ] ] - }, - { - "type": "technique", - "id": "tec_centipede_disarm", - "name": "Disarm", - "messages": [ "You disarm %s with lightning speed", " disarms %s with lightning speed" ], - "min_unarmed": 4, - "unarmed_allowed": true, - "disarms": true + "mult_bonuses": [ [ "movecost", 0.5 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.66 ], [ "damage", "stab", 0.66 ] ], + "messages": [ "You swiftly hit %s", " swiftly hits %s" ] } ] diff --git a/data/json/materials.json b/data/json/materials.json index f8ec43faa6e59..dbde7b6d0741e 100644 --- a/data/json/materials.json +++ b/data/json/materials.json @@ -903,24 +903,6 @@ "bash_dmg_verb": "damaged", "cut_dmg_verb": "damaged" }, - { - "type": "material", - "ident": "cac2powder", - "name": "Powder", - "density": 1, - "specific_heat_liquid": 1.5, - "specific_heat_solid": 1.2, - "latent_heat": 10, - "bash_resist": 1, - "cut_resist": 1, - "acid_resist": 0, - "fire_resist": 20, - "elec_resist": 2, - "chip_resist": 0, - "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], - "bash_dmg_verb": "damaged", - "cut_dmg_verb": "damaged" - }, { "type": "material", "ident": "silver", @@ -1022,30 +1004,6 @@ "cut_dmg_verb": "scratched", "compacts_into": [ "alloy_sheet" ] }, - { - "type": "material", - "ident": "tin", - "name": "Tin", - "//": "Tin's density is a little more than half that of silver.", - "density": 50, - "//": "Specific heat of liquid: https://www.engineeringtoolbox.com/liquid-metal-boiling-points-specific-heat-d_1893.html", - "specific_heat_liquid": 0.24, - "//": "Specific heat as solid from http://www2.ucdsb.on.ca/tiss/stretton/database/Specific_Heat_Capacity_Table.html", - "specific_heat_solid": 0.21, - "//": "Latent heat of fusion: https://www.engineeringtoolbox.com/fusion-heat-metals-d_1266.html", - "latent_heat": 59, - "//": "Tin has a Mohs hardness of about 1.5, about that of lead.", - "bash_resist": 0, - "cut_resist": 0, - "acid_resist": 2, - "fire_resist": 3, - "elec_resist": 0, - "chip_resist": 8, - "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], - "bash_dmg_verb": "dented", - "cut_dmg_verb": "scratched", - "burn_products": [ [ "tin", 1 ] ] - }, { "type": "material", "ident": "veggy", diff --git a/data/json/monster_factions.json b/data/json/monster_factions.json index 70a1991aad9d6..14b97beeada4c 100644 --- a/data/json/monster_factions.json +++ b/data/json/monster_factions.json @@ -83,12 +83,6 @@ "base_faction": "bot", "neutral": [ "military", "defense_bot", "utility_bot", "small_animal" ] }, - { - "type": "MONSTER_FACTION", - "name": "mech_bot", - "base_faction": "bot", - "neutral": [ "cop_bot", "military", "utility_bot", "science", "small_animal", "player" ] - }, { "type": "MONSTER_FACTION", "name": "nurse_bot", diff --git a/data/json/monster_special_attacks/spells.json b/data/json/monster_special_attacks/spells.json index 7e7c9b452595d..8936d4a3cbc44 100644 --- a/data/json/monster_special_attacks/spells.json +++ b/data/json/monster_special_attacks/spells.json @@ -5,7 +5,6 @@ "name": "Pain", "description": "Increases pain", "valid_targets": [ "hostile" ], - "flags": [ "SILENT" ], "//": "Listed as a recover energy effect with a negative modifier that decreases with each level of the spell, which makes it cause damage instead.", "min_damage": -25, "max_damage": -225, @@ -20,7 +19,6 @@ "name": "Tired", "description": "decreases stamina", "valid_targets": [ "hostile" ], - "flags": [ "SILENT" ], "//": "Listed as a recover energy effect with a negative modifier that decreases with each level of the spell, which makes it cause damage instead.", "min_damage": -2000, "max_damage": -10000, diff --git a/data/json/monstergroups/monstergroups.json b/data/json/monstergroups/monstergroups.json index 534404ddd3752..019d832dca060 100644 --- a/data/json/monstergroups/monstergroups.json +++ b/data/json/monstergroups/monstergroups.json @@ -773,34 +773,6 @@ { "monster": "mon_weasel", "freq": 15, "cost_multiplier": 5, "conditions": [ "NIGHT" ] }, { "monster": "mon_turkey", "freq": 6, "cost_multiplier": 2, "pack_size": [ 1, 18 ] }, { "monster": "mon_turkey", "freq": 9, "cost_multiplier": 2, "pack_size": [ 1, 18 ], "conditions": [ "DAY" ] }, - { - "monster": "mon_duck", - "freq": 4, - "cost_multiplier": 5, - "pack_size": [ 1, 4 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_duck", - "freq": 6, - "cost_multiplier": 5, - "pack_size": [ 1, 4 ], - "conditions": [ "DAWN", "DAY", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_goose_canadian", - "freq": 4, - "cost_multiplier": 5, - "pack_size": [ 1, 4 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_goose_canadian", - "freq": 6, - "cost_multiplier": 5, - "pack_size": [ 1, 4 ], - "conditions": [ "DAWN", "DAY", "SPRING", "SUMMER", "AUTUMN" ] - }, { "monster": "mon_raccoon", "freq": 8, @@ -1859,20 +1831,6 @@ "pack_size": [ 1, 4 ], "conditions": [ "DAWN", "DAY", "SPRING", "SUMMER", "AUTUMN" ] }, - { - "monster": "mon_goose_canadian", - "freq": 30, - "cost_multiplier": 5, - "pack_size": [ 1, 4 ], - "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_goose_canadian", - "freq": 60, - "cost_multiplier": 5, - "pack_size": [ 1, 4 ], - "conditions": [ "DAWN", "DAY", "SPRING", "SUMMER", "AUTUMN" ] - }, { "monster": "mon_sludge_crawler", "freq": 3, @@ -4303,22 +4261,6 @@ { "monster": "mon_shoggoth", "freq": 5, "cost_multiplier": 0 } ] }, - { - "type": "monstergroup", - "name": "GROUP_NETHER_FATIGUE_FIELD", - "default": "mon_blank", - "monsters": [ - { "monster": "mon_flying_polyp", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_hunting_horror", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_mi_go", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_yugg", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_gelatin", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_flaming_eye", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_kreck", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_gracke", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_blank", "freq": 100, "cost_multiplier": 0 } - ] - }, { "type": "monstergroup", "name": "GROUP_SPIRAL", @@ -4643,7 +4585,6 @@ { "monster": "mon_chipmunk", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_crow", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_deer", "freq": 10, "cost_multiplier": 1 }, - { "monster": "mon_duck", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_dog", "freq": 1, "cost_multiplier": 1 }, { "monster": "mon_dog_bull", "freq": 1, "cost_multiplier": 1 }, { "monster": "mon_dog_auscattle", "freq": 1, "cost_multiplier": 1 }, @@ -4656,7 +4597,6 @@ { "monster": "mon_dog_gshepherd", "freq": 1, "cost_multiplier": 1 }, { "monster": "mon_fox_gray", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_fox_red", "freq": 10, "cost_multiplier": 1 }, - { "monster": "mon_goose_canadian", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_groundhog", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_hare", "freq": 10, "cost_multiplier": 1 }, { "monster": "mon_rabbit", "freq": 10, "cost_multiplier": 1 }, @@ -5121,10 +5061,7 @@ "name": "GROUP_POND_BIRD", "default": "mon_null", "is_animal": true, - "monsters": [ - { "monster": "mon_duck", "freq": 50, "cost_multiplier": 0 }, - { "monster": "mon_goose_canadian", "freq": 50, "cost_multiplier": 0 } - ] + "monsters": [ { "monster": "mon_duck", "freq": 50, "cost_multiplier": 0 } ] }, { "type": "monstergroup", diff --git a/data/json/monsters/bird.json b/data/json/monsters/bird.json index 39957e6ae127e..13aac0c352869 100644 --- a/data/json/monsters/bird.json +++ b/data/json/monsters/bird.json @@ -94,7 +94,7 @@ "melee_dice_sides": 1, "melee_cut": 0, "dodge": 4, - "harvest": "bird_small", + "harvest": "bird_tiny", "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], "reproduction": { "baby_egg": "egg_duck", "baby_count": 3, "baby_timer": 5 }, @@ -108,8 +108,6 @@ "copy-from": "mon_duck", "name": "goose", "description": "A Canadian goose, a common waterfowl that regrets leaving Canada.", - "volume": "5 L", - "weight": 3750, "hp": 8, "dodge": 3, "reproduction": { "baby_egg": "egg_goose_canadian", "baby_count": 3, "baby_timer": 10 }, diff --git a/data/json/monsters/defense_bot.json b/data/json/monsters/defense_bot.json index fad13990741c5..d920013722e8c 100644 --- a/data/json/monsters/defense_bot.json +++ b/data/json/monsters/defense_bot.json @@ -22,9 +22,9 @@ "revert_to_itype": "bot_secubot", "starting_ammo": { "9mm": 100 }, "special_attacks": [ { "type": "gun", "cooldown": 2, "gun_type": "hk_mp5", "ranges": [ [ 0, 6, "AUTO" ], [ 7, 12, "DEFAULT" ] ] } ], - "death_drops": { }, - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "HEARS", "BASHES", "ELECTRONIC", "NO_BREATHE", "PATH_AVOID_DANGER_1", "LOUDMOVES", "DROPS_AMMO" ] + "death_drops": { "groups": [ [ "robots", 4 ], [ "secubot", 1 ] ] }, + "death_function": [ "EXPLODE" ], + "flags": [ "SEES", "HEARS", "BASHES", "ELECTRONIC", "NO_BREATHE", "PATH_AVOID_DANGER_1", "LOUDMOVES" ] }, { "id": "mon_turret", @@ -52,9 +52,9 @@ { "type": "gun", "cooldown": 1, "gun_type": "hk_mp5", "ranges": [ [ 0, 6, "AUTO" ], [ 7, 12, "DEFAULT" ] ] }, [ "PARROT", 40 ] ], - "death_drops": { }, - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ] + "death_drops": { "groups": [ [ "robots", 10 ], [ "turret", 1 ] ] }, + "death_function": [ "EXPLODE" ], + "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE" ] }, { "id": "mon_skitterbot", @@ -90,7 +90,7 @@ "name": "experimental lab bot", "description": "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.", "default_faction": "defense_bot", - "looks_like": "mon_skitterbot", + "looks-like": "mon_skitterbot", "species": [ "ROBOT" ], "volume": "65000 ml", "weight": 100000, @@ -116,17 +116,7 @@ "special_attacks": [ [ "SCIENCE", 16 ], [ "TAZER", 10 ] ], "death_drops": { "groups": [ [ "robots", 4 ], [ "skitterbot", 1 ] ] }, "death_function": [ "BROKEN" ], - "flags": [ - "SEES", - "HEARS", - "BASHES", - "GOODHEARING", - "ELECTRONIC", - "NO_BREATHE", - "PRIORITIZE_TARGETS", - "PATH_AVOID_DANGER_2", - "DROPS_AMMO" - ] + "flags": [ "SEES", "HEARS", "BASHES", "GOODHEARING", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_2" ] }, { "id": "mon_robofac_prototype", @@ -199,7 +189,7 @@ "special_attacks": [ [ "GRENADIER", 10 ] ], "death_drops": { "groups": [ [ "robots", 1 ] ] }, "death_function": [ "BROKEN" ], - "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_2", "LOUDMOVES", "DROPS_AMMO" ] + "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_2", "LOUDMOVES" ] }, { "id": "mon_dispatch_military", @@ -232,6 +222,6 @@ "special_attacks": [ [ "GRENADIER_ELITE", 10 ] ], "death_drops": { "groups": [ [ "robots", 1 ] ] }, "death_function": [ "BROKEN" ], - "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_2", "LOUDMOVES", "DROPS_AMMO" ] + "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_2", "LOUDMOVES" ] } ] diff --git a/data/json/monsters/insect_spider.json b/data/json/monsters/insect_spider.json index 3b7877ce6bbf2..a379331faba20 100644 --- a/data/json/monsters/insect_spider.json +++ b/data/json/monsters/insect_spider.json @@ -34,7 +34,7 @@ "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK" ], "death_function": [ "NORMAL" ], "special_attacks": [ [ "EAT_FOOD", 60 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "POISON", "STUMBLES", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "POISON", "STUMBLES" ] }, { "id": "mon_plague_nymph", @@ -65,7 +65,7 @@ "upgrades": { "age_grow": 7, "into": "mon_skittering_plague" }, "death_function": [ "NORMAL" ], "special_attacks": [ [ "EAT_FOOD", 120 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "POISON", "LARVA", "STUMBLES", "FILTHY", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "POISON", "LARVA", "STUMBLES", "FILTHY" ] }, { "id": "mon_plague_vector", @@ -101,7 +101,7 @@ "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK" ], "death_function": [ "NORMAL" ], "special_attacks": [ [ "EAT_FOOD", 40 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "POISON", "STUMBLES", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "POISON", "STUMBLES" ] }, { "id": "mon_giant_cockroach", @@ -136,7 +136,7 @@ "upgrades": { "age_grow": 7, "into": "mon_pregnant_giant_cockroach" }, "death_function": [ "NORMAL" ], "special_attacks": [ [ "EAT_FOOD", 60 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS" ] }, { "id": "mon_giant_cockroach_nymph", @@ -166,7 +166,7 @@ "upgrades": { "age_grow": 7, "into": "mon_giant_cockroach" }, "death_function": [ "NORMAL" ], "special_attacks": [ [ "EAT_FOOD", 120 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "LARVA", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "LARVA", "CLIMBS" ] }, { "id": "mon_pregnant_giant_cockroach", @@ -201,7 +201,7 @@ "biosignature": { "biosig_item": "feces_roach", "biosig_timer": 3 }, "death_function": [ "NORMAL", "PREG_ROACH" ], "special_attacks": [ [ "EAT_FOOD", 40 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS" ] }, { "id": "mon_bee", @@ -234,7 +234,7 @@ "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" ] + "flags": [ "SEES", "SMELLS", "VENOM", "FLIES", "STUMBLES", "SWARMS", "GROUP_MORALE", "CANPLAY" ] }, { "id": "mon_centipede_giant", @@ -265,7 +265,7 @@ "vision_night": 5, "harvest": "arachnid", "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM" ] }, { "id": "mon_dragonfly_giant", @@ -297,7 +297,7 @@ "anger_triggers": [ "PLAYER_WEAK" ], "fear_triggers": [ "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "FLIES", "HIT_AND_RUN", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "FLIES", "HIT_AND_RUN" ] }, { "id": "mon_fly", @@ -327,7 +327,7 @@ "harvest": "arachnid", "fear_triggers": [ "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "FLIES", "STUMBLES", "HIT_AND_RUN", "CANPLAY", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "FLIES", "STUMBLES", "HIT_AND_RUN", "CANPLAY" ] }, { "id": "mon_mosquito_giant", @@ -356,7 +356,7 @@ "vision_night": 5, "harvest": "arachnid", "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "STUMBLES", "VENOM", "FLIES", "HIT_AND_RUN", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "STUMBLES", "VENOM", "FLIES", "HIT_AND_RUN" ] }, { "id": "mon_spider_cellar_giant", @@ -389,7 +389,7 @@ "harvest": "arachnid", "anger_triggers": [ "STALK", "PLAYER_WEAK", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PUSH_MON", "PATH_AVOID_FIRE" ], + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PUSH_MON" ], "//": "No, they are not in fact the most venomous spider in the world." }, { @@ -422,7 +422,7 @@ "harvest": "arachnid", "anger_triggers": [ "STALK", "PLAYER_WEAK", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "CLIMBS", "HARDTOSHOOT" ] }, { "id": "mon_spider_jumping_giant", @@ -454,7 +454,7 @@ "special_attacks": [ { "type": "leap", "cooldown": 2, "max_range": 5, "allow_no_target": true } ], "anger_triggers": [ "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "HIT_AND_RUN", "CLIMBS", "PATH_AVOID_DANGER_1" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "HIT_AND_RUN", "CLIMBS" ] }, { "id": "mon_spider_trapdoor_giant", @@ -485,7 +485,7 @@ "vision_night": 5, "harvest": "arachnid", "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "GRABS", "CAN_DIG", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "GRABS", "CAN_DIG", "WEBWALK", "CLIMBS" ] }, { "id": "mon_spider_web", @@ -516,7 +516,7 @@ "vision_night": 5, "harvest": "arachnid", "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS" ] }, { "id": "mon_spider_fungus", @@ -548,7 +548,7 @@ "harvest": "arachnid", "special_attacks": [ [ "FUNGAL_TRAIL", 3 ] ], "death_function": [ "NORMAL", "FUNGUS" ], - "flags": [ "SEES", "SMELLS", "VENOM", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "VENOM", "WEBWALK", "CLIMBS" ] }, { "id": "mon_spider_web_s", @@ -578,7 +578,7 @@ "vision_night": 5, "harvest": "arachnid", "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "STUMBLES", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "STUMBLES", "CLIMBS" ] }, { "id": "mon_spider_widow_giant", @@ -610,7 +610,7 @@ "harvest": "arachnid", "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "WEBWALK", "CLIMBS" ] }, { "id": "mon_spider_widow_giant_s", @@ -642,7 +642,7 @@ "harvest": "arachnid", "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS" ] }, { "id": "mon_spider_wolf_giant", @@ -674,7 +674,7 @@ "harvest": "arachnid", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "CLIMBS" ] }, { "id": "mon_wasp", @@ -707,7 +707,7 @@ "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" ] + "flags": [ "SEES", "SMELLS", "VENOM", "FLIES", "SWARMS", "GROUP_MORALE", "CANPLAY" ] }, { "id": "mon_dermatik", @@ -737,7 +737,7 @@ "special_attacks": [ [ "DERMATIK", 25 ] ], "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK" ], "death_function": [ "NORMAL" ], - "flags": [ "HEARS", "SMELLS", "STUMBLES", "POISON", "FLIES", "PATH_AVOID_FIRE" ] + "flags": [ "HEARS", "SMELLS", "STUMBLES", "POISON", "FLIES" ] }, { "id": "mon_dermatik_larva", @@ -797,7 +797,7 @@ "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_WEAK" ], "death_function": [ "NORMAL" ], "special_attacks": [ [ "EAT_FOOD", 30 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS" ] }, { "id": "mon_ant_acid", @@ -830,7 +830,7 @@ "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], "death_function": [ "ACID", "NORMAL" ], "harvest": "arachnid_acid", - "flags": [ "ACIDPROOF", "CLIMBS", "HEARS", "POISON", "SEES", "SMELLS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "ACIDPROOF", "CLIMBS", "HEARS", "POISON", "SEES", "SMELLS" ] }, { "id": "mon_ant_acid_larva", @@ -887,7 +887,7 @@ "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], "harvest": "acidant_queen", - "flags": [ "ACIDPROOF", "CLIMBS", "HEARS", "QUEEN", "SEES", "SMELLS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "ACIDPROOF", "CLIMBS", "HEARS", "QUEEN", "SEES", "SMELLS" ] }, { "id": "mon_ant_acid_soldier", @@ -920,7 +920,7 @@ "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], "death_function": [ "ACID", "NORMAL" ], "harvest": "arachnid_acid", - "flags": [ "ACIDPROOF", "SHORTACIDTRAIL", "CLIMBS", "HEARS", "POISON", "SEES", "SMELLS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "ACIDPROOF", "SHORTACIDTRAIL", "CLIMBS", "HEARS", "POISON", "SEES", "SMELLS" ] }, { "id": "mon_ant_fungus", @@ -952,7 +952,7 @@ "harvest": "arachnid", "special_attacks": [ [ "FUNGUS", 200 ] ], "death_function": [ "NORMAL", "FUNGUS" ], - "flags": [ "SEES", "SMELLS", "POISON", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "SMELLS", "POISON", "CLIMBS" ] }, { "id": "mon_ant_larva", @@ -1007,7 +1007,7 @@ "special_attacks": [ [ "ANTQUEEN", 1 ] ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], "death_function": [ "NORMAL" ], - "flags": [ "SMELLS", "QUEEN", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SMELLS", "QUEEN", "CLIMBS" ] }, { "id": "mon_ant_soldier", @@ -1038,7 +1038,7 @@ "harvest": "arachnid", "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], "death_function": [ "NORMAL" ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS" ] }, { "id": "mon_locust", @@ -1072,7 +1072,7 @@ "anger_triggers": [ "FRIEND_ATTACKED" ], "death_function": [ "NORMAL" ], "special_attacks": [ { "type": "leap", "cooldown": 2, "max_range": 8, "allow_no_target": true }, [ "EAT_CROP", 60 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "STUMBLES", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "STUMBLES" ] }, { "id": "mon_locust_nymph", @@ -1101,6 +1101,6 @@ "upgrades": { "age_grow": 10, "into": "mon_locust" }, "death_function": [ "NORMAL" ], "special_attacks": [ { "type": "leap", "cooldown": 4, "max_range": 4, "allow_no_target": true }, [ "EAT_CROP", 120 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "LARVA", "STUMBLES", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "LARVA", "STUMBLES" ] } ] diff --git a/data/json/monsters/mammal.json b/data/json/monsters/mammal.json index 4ad8df37c6822..70c419a0e3db0 100644 --- a/data/json/monsters/mammal.json +++ b/data/json/monsters/mammal.json @@ -500,7 +500,7 @@ "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "FRIEND_DIED" ], "placate_triggers": [ "MEAT" ], "death_function": [ "NORMAL" ], - "special_attacks": [ [ "EAT_FOOD", 100 ], [ "PARROT_AT_DANGER", 0 ] ], + "special_attacks": [ [ "EAT_FOOD", 100 ], [ "PARROT", 0 ] ], "flags": [ "ANIMAL", "DOGFOOD", diff --git a/data/json/monsters/mechsuits.json b/data/json/monsters/mechsuits.json deleted file mode 100644 index f9ab06eaea320..0000000000000 --- a/data/json/monsters/mechsuits.json +++ /dev/null @@ -1,139 +0,0 @@ -[ - { - "id": "mon_mech_recon", - "type": "MONSTER", - "name": "X-03: 'Spectre' Recon Mech", - "description": "The Boeing-Daewoo RMES (Recon Mechanical Exoskeleton Suit), a recent acquisition by the US military, it was designed to be used in a scout-recon-sniper role, due to its mobility and integrated laser sniper rifle and suite of optics for target designation and battlefield awareness. It was not deployed before the Cataclysm hit, though there were a few 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.", - "default_faction": "mech_bot", - "species": [ "ROBOT" ], - "diff": 5, - "volume": "700388 ml", - "weight": 700388, - "hp": 320, - "speed": 120, - "material": [ "superalloy" ], - "symbol": "M", - "color": "blue", - "aggression": -50, - "morale": 100, - "melee_skill": 6, - "melee_dice": 3, - "melee_dice_sides": 8, - "melee_cut": 5, - "armor_bash": 15, - "armor_cut": 25, - "vision_night": 100, - "mech_str_bonus": 5, - "mech_battery": "huge_atomic_battery_cell", - "mech_weapon": "recon_mech_laser", - "revert_to_itype": "broken_mech_recon", - "death_function": [ "BROKEN" ], - "death_drops": { "groups": [ [ "robots", 20 ] ] }, - "flags": [ - "SEES", - "MECH_RECON_VISION", - "HEARS", - "MILITARY_MECH", - "BASHES", - "PUSH_MON", - "ELECTRONIC", - "NOHEAD", - "NO_BREATHE", - "RIDEABLE_MECH", - "PRIORITIZE_TARGETS", - "PATH_AVOID_DANGER_2" - ] - }, - { - "id": "mon_mech_combat", - "type": "MONSTER", - "name": "X-02: 'Grunt' Combat Mech", - "description": "The Boeing-Daewoo CMES (Combat Mechanical Exoskeleton Suit), a recent acquisition by the US military, it was designed to be used in a fire support role, due to its fearsome integrated gatling laser. It was not deployed before the Cataclysm hit, though there were a few 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.", - "default_faction": "mech_bot", - "species": [ "ROBOT" ], - "diff": 5, - "volume": "1480388 ml", - "weight": 1480388, - "hp": 550, - "speed": 65, - "material": [ "superalloy" ], - "symbol": "M", - "color": "red", - "aggression": -50, - "morale": 100, - "melee_skill": 2, - "melee_dice": 2, - "melee_dice_sides": 6, - "melee_cut": 0, - "armor_bash": 25, - "armor_cut": 45, - "vision_night": 50, - "mech_str_bonus": 10, - "mech_battery": "huge_atomic_battery_cell", - "mech_weapon": "gatling_mech_laser", - "revert_to_itype": "broken_mech_combat", - "death_function": [ "BROKEN" ], - "death_drops": { "groups": [ [ "robots", 20 ] ] }, - "flags": [ - "SEES", - "HEARS", - "MILITARY_MECH", - "BASHES", - "PUSH_MON", - "ELECTRONIC", - "NOHEAD", - "NO_BREATHE", - "RIDEABLE_MECH", - "PRIORITIZE_TARGETS", - "PATH_AVOID_DANGER_2", - "LOUDMOVES" - ] - }, - { - "id": "mon_mech_lifter", - "type": "MONSTER", - "name": "X-01: 'Jack' Lifting Mech", - "description": "The Boeing-Daewoo LMES (Lifting Mechanical Exoskeleton Suit), a recent acquisition by the US military, it was designed to be piloted by an operator to load and unload heavy material, and for limited combat support roles, it was not deployed before the Cataclysm hit, though there were a few 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.", - "default_faction": "mech_bot", - "species": [ "ROBOT" ], - "diff": 5, - "volume": "1280388 ml", - "weight": 1280388, - "hp": 400, - "speed": 50, - "material": [ "superalloy" ], - "symbol": "M", - "color": "yellow", - "aggression": -50, - "morale": 100, - "melee_skill": 4, - "melee_dice": 4, - "melee_dice_sides": 8, - "melee_cut": 0, - "armor_bash": 22, - "armor_cut": 30, - "vision_night": 50, - "mech_str_bonus": 30, - "mech_battery": "huge_atomic_battery_cell", - "attack_cost": 150, - "revert_to_itype": "broken_mech_lifter", - "special_attacks": [ [ "SMASH", 40 ] ], - "death_function": [ "BROKEN" ], - "death_drops": { "groups": [ [ "robots", 20 ] ] }, - "flags": [ - "SEES", - "HEARS", - "MILITARY_MECH", - "BASHES", - "PUSH_VEH", - "PUSH_MON", - "ELECTRONIC", - "NOHEAD", - "NO_BREATHE", - "RIDEABLE_MECH", - "PRIORITIZE_TARGETS", - "PATH_AVOID_DANGER_2", - "LOUDMOVES" - ] - } -] diff --git a/data/json/monsters/military.json b/data/json/monsters/military.json index 8e5929665ce40..d350bd678eca9 100644 --- a/data/json/monsters/military.json +++ b/data/json/monsters/military.json @@ -31,8 +31,8 @@ "require_sunlight": true } ], - "death_drops": { }, - "death_function": [ "BROKEN" ], + "death_drops": { "groups": [ [ "robots", 10 ], [ "laserturret", 1 ] ] }, + "death_function": [ "EXPLODE" ], "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE" ] }, { @@ -77,9 +77,9 @@ "no_ammo_sound": "a chk!" } ], - "death_drops": { }, - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ] + "death_drops": { "groups": [ [ "robots", 9 ], [ "turret_bmg", 2 ] ] }, + "death_function": [ "EXPLODE" ], + "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE" ] }, { "id": "mon_turret_rifle", @@ -115,8 +115,8 @@ "ranges": [ [ 0, 8, "AUTO" ], [ 9, 16, "DEFAULT" ] ] } ], - "death_drops": { }, - "death_function": [ "BROKEN" ], - "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ] + "death_drops": { "groups": [ [ "robots", 9 ], [ "turret_rifle", 2 ] ] }, + "death_function": [ "EXPLODE" ], + "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE" ] } ] diff --git a/data/json/monsters/monsters.json b/data/json/monsters/monsters.json index c365dffecbffa..306b1f644ab9f 100644 --- a/data/json/monsters/monsters.json +++ b/data/json/monsters/monsters.json @@ -3841,64 +3841,6 @@ "death_function": [ "GAS" ], "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "POISON", "NO_BREATHE", "REVIVES", "FILTHY" ] }, - { - "id": "mon_zombie_gasbag_immobile", - "type": "MONSTER", - "name": "gangrenous flesh", - "description": "Immobile from grievous wounds, its gray skin has bloated to near rupture with putrid gas. Between lumps of unrecognizable gore, a human head lamely follows your walking with empty, black eyes.", - "default_faction": "zombie", - "bodytype": "human", - "species": [ "ZOMBIE", "HUMAN" ], - "diff": 5, - "volume": "62500 ml", - "weight": 81500, - "hp": 5, - "speed": 80, - "material": [ "flesh" ], - "symbol": "o", - "color": "magenta_yellow", - "aggression": 100, - "morale": 100, - "melee_skill": 3, - "melee_dice": 2, - "melee_dice_sides": 4, - "melee_cut": 0, - "vision_night": 3, - "harvest": "exempt", - "special_attacks": [ [ "SUICIDE", 20 ] ], - "death_drops": "default_zombie_items", - "upgrades": { "half_life": 8, "into": "mon_zombie_gasbag_crawler" }, - "death_function": [ "GAS" ], - "flags": [ "SEES", "HEARS", "SMELLS", "IMMOBILE", "WARM", "POISON", "NO_BREATHE", "FILTHY" ] - }, - { - "id": "mon_zombie_gasbag_crawler", - "type": "MONSTER", - "name": "gangrenous crawler", - "description": "A nightmarish spidery abomination, born from human gore. It deftly crawls between walls and ceiling with limbs grown from its own disjointed ribs.", - "default_faction": "zombie", - "bodytype": "spider", - "species": [ "ZOMBIE", "HUMAN" ], - "diff": 5, - "volume": "62500 ml", - "weight": 81500, - "hp": 15, - "speed": 90, - "material": [ "flesh" ], - "symbol": "W", - "color": "magenta_yellow", - "aggression": 100, - "morale": 100, - "melee_skill": 3, - "melee_dice": 2, - "melee_dice_sides": 4, - "melee_cut": 0, - "vision_night": 3, - "harvest": "exempt", - "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "scratch", 5 ] ], - "death_function": [ "GAS" ], - "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "POISON", "NO_BREATHE", "CLIMBS", "HARDTOSHOOT" ] - }, { "id": "mon_zombie_gasbag_fungus", "type": "MONSTER", diff --git a/data/json/npcs/NC_CITY_COP.json b/data/json/npcs/NC_CITY_COP.json index 364fecf22dabb..457d9aed84bce 100644 --- a/data/json/npcs/NC_CITY_COP.json +++ b/data/json/npcs/NC_CITY_COP.json @@ -45,18 +45,18 @@ "ammo": 75, "magazine": 100, "items": [ - [ "gold_ring", 30 ], + [ "ring", 30 ], [ "gold_ear", 30 ], [ "gold_bracelet", 30 ], [ "gold_watch", 30 ], [ "gold_dental_grill", 10 ], [ "silver_ear", 40 ], - [ "silver_necklace", 40 ], + [ "necklace", 40 ], [ "silver_bracelet", 40 ], [ "sf_watch", 10 ], [ "diamond_ring", 10 ], [ "diamond_dental_grill", 5 ], - [ "jade_brooch", 30 ], + [ "brooch", 30 ], [ "copper_ear", 50 ], [ "pocketwatch", 30 ], [ "tieclip", 35 ], diff --git a/data/json/npcs/NC_JUNK_SHOPKEEP.json b/data/json/npcs/NC_JUNK_SHOPKEEP.json index 5465c28293a02..b523682f550c9 100644 --- a/data/json/npcs/NC_JUNK_SHOPKEEP.json +++ b/data/json/npcs/NC_JUNK_SHOPKEEP.json @@ -88,7 +88,6 @@ [ "makeshift_machete", 15 ], [ "flamethrower_crude", 20 ], [ "fungicide", 20 ], - [ "insecticide", 20 ], [ "antifungal", 20 ], [ "antiparasitic", 20 ], [ "diazepam", 15 ], @@ -203,7 +202,6 @@ [ "atomic_lamp", 1 ], [ "alarmclock", 10 ], [ "fungicide", 10 ], - [ "insecticide", 10 ], [ "oil_lamp", 10 ], [ "lamp_oil", 10 ], [ "grapnel", 1 ], @@ -277,7 +275,6 @@ [ "knee_pads", 20 ], [ "cu_pipe", 50 ], [ "fungicide", 5 ], - [ "insecticide", 5 ], [ "charcoal", 5 ], [ "sheath", 10 ], [ "multitool", 6 ], @@ -361,7 +358,6 @@ [ "vac_sealer", 10 ], [ "sm_extinguisher", 10 ], [ "fungicide", 5 ], - [ "insecticide", 5 ], [ "miner_hat", 1 ], [ "grapnel", 1 ], [ "misc_repairkit", 5 ], diff --git a/data/json/npcs/TALK_COMMON_MISSION.json b/data/json/npcs/TALK_COMMON_MISSION.json index 158df14ec1635..c942baff9087c 100644 --- a/data/json/npcs/TALK_COMMON_MISSION.json +++ b/data/json/npcs/TALK_COMMON_MISSION.json @@ -183,13 +183,6 @@ "switch": true, "effect": "mission_success" }, - { - "text": "I talked to them.", - "topic": "TALK_MISSION_SUCCESS", - "condition": { "and": [ "mission_complete", { "mission_goal": "MGOAL_TALK_TO_NPC" } ] }, - "switch": true, - "effect": "mission_success" - }, { "text": "Here it is!", "topic": "TALK_MISSION_SUCCESS", diff --git a/data/json/npcs/TALK_TEST.json b/data/json/npcs/TALK_TEST.json index 48b46c280f819..46dfaf5c2ab7c 100644 --- a/data/json/npcs/TALK_TEST.json +++ b/data/json/npcs/TALK_TEST.json @@ -711,32 +711,6 @@ } ] }, - { - "type": "talk_topic", - "id": "TALK_TEST_SIMPLE_SKILLS", - "dynamic_line": "This is a test conversation that shouldn't appear in the game.", - "responses": [ - { "text": "This is a basic test response.", "topic": "TALK_DONE" }, - { - "text": "This is a driving test response.", - "topic": "TALK_DONE", - "condition": { "u_has_skill": { "skill": "driving", "level": 7 } } - } - ] - }, - { - "type": "talk_topic", - "id": "TALK_TEST_NEGATED_SKILLS", - "dynamic_line": "This is a test conversation that shouldn't appear in the game.", - "responses": [ - { "text": "This is a basic test response.", "topic": "TALK_DONE" }, - { - "text": "This is a low driving test response.", - "topic": "TALK_DONE", - "condition": { "not": { "u_has_skill": { "skill": "driving", "level": 7 } } } - } - ] - }, { "type": "npc", "id": "test_talker", diff --git a/data/json/npcs/isherwood_farm/NPC_Carlos_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Carlos_Isherwood.json deleted file mode 100644 index dffea3e5ae859..0000000000000 --- a/data/json/npcs/isherwood_farm/NPC_Carlos_Isherwood.json +++ /dev/null @@ -1,213 +0,0 @@ -[ - { - "type": "npc", - "id": "isherwood_carlos", - "//": "Dairy farmer the Isherwood family.", - "name_unique": "Carlos Isherwood", - "gender": "male", - "class": "NC_ISHERWOOD_CARLOS", - "worn_override": "NC_Isherwood_worn", - "carry_override": "NC_ISHERWOOD_rifle", - "weapon_override": "NC_ISHERWOOD_archery", - "attitude": 0, - "mission": 7, - "chat": "TALK_ISHERWOOD_CARLOS", - "mission_offered": "MISSION_ISHERWOOD_CARLOS_1", - "faction": "isherwood_family" - }, - { - "type": "npc_class", - "id": "NC_ISHERWOOD_CARLOS", - "name": "Carlos Isherwood", - "job_description": "I'm Jesse's husband, part of the Isherwood family", - "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], - "common": false, - "bonus_per": { "one_in": 4 }, - "skills": [ - { - "skill": "ALL", - "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] } - }, - { "skill": "barter", "bonus": { "rng": [ 2, 4 ] } }, - { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, - { "skill": "survival", "bonus": { "rng": [ 7, 10 ] } }, - { "skill": "gun", "bonus": { "rng": [ 4, 8 ] } }, - { "skill": "rifle", "bonus": { "rng": [ 7, 10 ] } }, - { "skill": "archery", "bonus": { "rng": [ 8, 10 ] } } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CARLOS", - "dynamic_line": { - "u_is_wearing": "badge_marshal", - "yes": "I see that badge, I think you need ot keep on walking, straight off this property.", - "no": { "u_male": true, "yes": "Hello Sir, what brings you here?", "no": "Hello Ma'am, what brings you here?" } - }, - "responses": [ - { - "text": "Yeah, I'm a Marshal, what are you going to do about it?", - "topic": "TALK_LEAVE_NOW", - "effect": "hostile", - "opinion": { "trust": -20, "value": -20 }, - "condition": { "u_is_wearing": "badge_marshal" } - }, - { - "text": "...", - "topic": "TALK_LEAVE_NOW", - "opinion": { "trust": -20, "value": -20 }, - "condition": { "u_is_wearing": "badge_marshal" } - }, - { - "text": "Hi, looks like you are building a forage setup.", - "topic": "TALK_ISHERWOOD_CARLOS_TALK1", - "speaker_effect": { "effect": { "u_add_var": "u_met_carlos_isherwood", "type": "general", "context": "meeting", "value": "yes" } } - }, - { - "text": "Hi, Jack and Claire suggested I come talk to you about a job.", - "topic": "TALK_CARLOS_FORGE", - "condition": { - "and": [ - { "not": { "u_is_wearing": "badge_marshal" } }, - { "u_has_var": "u_met_Jack_Isherwood", "type": "general", "context": "meeting", "value": "yes" } - ] - } - }, - { - "text": "Can I do anything for you?", - "topic": "TALK_MISSION_LIST", - "condition": { "not": { "u_is_wearing": "badge_marshal" } } - }, - { - "text": "I'd better get going.", - "topic": "TALK_DONE", - "condition": { "not": { "u_is_wearing": "badge_marshal" } } - } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CARLOS_TALK1", - "dynamic_line": "It is coming together. I want to make our own tools, repair our items and even create some weapons and ammuntion reloading.", - "responses": [ - { "text": "What do you need?", "topic": "TALK_MISSION_LIST" }, - { - "text": "I heard about Barry, can you tell me what killed him?", - "topic": "TALK_CARLOS_BARRY", - "condition": { - "and": [ - { "not": { "u_is_wearing": "badge_marshal" } }, - { "u_has_var": "u_learned_about_barry", "type": "general", "context": "meeting", "value": "yes" } - ] - } - }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_carlos_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_CARLOS_BARRY", - "dynamic_line": "It was pink and really fast, it had lots of limbs, definitly not human. It easily kept up with us when we tried to escape, horrifying stuff. We burned the corpse to be safe.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CARLOS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_CARLOS_FORGE", - "dynamic_line": "The big item I need is an anvil, once I have that I can get a lot of repairs done.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CARLOS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_CARLOS_CHRIS", - "dynamic_line": "Chris is hiking the perimeter of our land, planning some defense options.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CARLOS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_LEAVE_NOW", - "dynamic_line": "You should get off my farm, I won't deal with a a government stooge.", - "responses": [ { "text": "...", "topic": "TALK_DONE" } ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CARLOS_TOPICS", - "dynamic_line": "Go on...", - "responses": [ - { "text": "Is your forge operational?", "topic": "TALK_CARLOS_FORGE" }, - { "text": "Where can I find Chris?", "topic": "TALK_CARLOS_CHRIS" }, - { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "id": "MISSION_ISHERWOOD_CARLOS_1", - "type": "mission_definition", - "name": "Find an anvil", - "goal": "MGOAL_FIND_ITEM", - "difficulty": 5, - "value": 50000, - "item": "anvil", - "count": 1, - "origins": [ "ORIGIN_ANY_NPC" ], - "followup": "MISSION_ISHERWOOD_CARLOS_2", - "dialogue": { - "describe": "I need an anvil to do advanced metal work.", - "offer": "I could really use an anvil.", - "accepted": "You might be able to find one in a hardware store or similar.", - "rejected": "Thanks anyway, we'll find the time to make it ourselves.", - "advice": "If you can't find one, maybe you can make one for me.", - "inquire": "Do you have the anvil?", - "success": "I appreciate it, this will really make a difference, here's some horse armor I've been working on, eventually I'll have the whole herd outfitted.", - "success_lie": "What good does this do me?", - "failure": "It was a lost cause anyways..." - }, - "end": { - "opinion": { "trust": 1, "value": 1 }, - "effect": [ - { "u_buy_item": "chainmail_armor_horse", "count": 1 }, - { "u_add_var": "u_did_carlos_missions", "type": "general", "context": "recruit", "value": "yes" } - ], - "update_mapgen": [ - { - "om_terrain": "horse_farm_isherwood_4", - "om_special": "Isherwood Farms", - "set": [ { "point": "furniture", "id": "f_anvil", "x": 6, "y": 12 } ] - } - ] - } - }, - { - "id": "MISSION_ISHERWOOD_CARLOS_2", - "type": "mission_definition", - "name": "Find Chris Isherwood", - "goal": "MGOAL_TALK_TO_NPC", - "difficulty": 3, - "value": 20000, - "start": { - "assign_mission_target": { "om_terrain": "cabin_isherwood", "reveal_radius": 1, "random": true, "search_range": 20, "min_distance": 8 }, - "update_mapgen": { "place_npcs": [ { "class": "isherwood_chris", "x": 8, "y": 17, "target": true } ] } - }, - "origins": [ "ORIGIN_SECONDARY" ], - "dialogue": { - "describe": "Our son still isn't back, I'm getting concerned.", - "offer": "Can you go find my son and tell him to check in with us.", - "accepted": "Thank you.", - "rejected": "Oh well. I hope he turns up soon.", - "advice": "He should be on the property somewhere, maybe by that old cabin near the entrance, sometimes he camps there.", - "inquire": "How is the search going?", - "success": "Thanks, I was getting ready to go look myself.", - "success_lie": "What good does this do us?", - "failure": "I hope he didn't meet Barry's fate..." - } - } -] diff --git a/data/json/npcs/isherwood_farm/NPC_Chris_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Chris_Isherwood.json deleted file mode 100644 index e93a4124fd2e2..0000000000000 --- a/data/json/npcs/isherwood_farm/NPC_Chris_Isherwood.json +++ /dev/null @@ -1,200 +0,0 @@ -[ - { - "type": "npc", - "id": "isherwood_chris", - "//": "Part of Isherwood family.", - "name_unique": "Chris Isherwood", - "gender": "male", - "class": "NC_ISHERWOOD_CHRIS", - "worn_override": "NC_Isherwood_worn", - "carry_override": "NC_ISHERWOOD_rifle", - "weapon_override": "NC_ISHERWOOD_archery", - "attitude": 0, - "mission": 7, - "chat": "TALK_ISHERWOOD_CHRIS", - "mission_offered": "MISSION_ISHERWOOD_CHRIS_1", - "faction": "isherwood_family" - }, - { - "type": "npc_class", - "id": "NC_ISHERWOOD_CHRIS", - "name": "Chris Isherwood", - "job_description": "I'm Jesse and Carlos' son, part of the Isherwood family", - "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], - "common": false, - "bonus_per": { "one_in": 4 }, - "skills": [ - { - "skill": "ALL", - "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] } - }, - { "skill": "barter", "bonus": { "rng": [ 2, 4 ] } }, - { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, - { "skill": "survival", "bonus": { "rng": [ 7, 10 ] } }, - { "skill": "gun", "bonus": { "rng": [ 4, 8 ] } }, - { "skill": "rifle", "bonus": { "rng": [ 7, 10 ] } }, - { "skill": "archery", "bonus": { "rng": [ 8, 10 ] } } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CHRIS", - "dynamic_line": { - "u_is_wearing": "badge_marshal", - "yes": "I see that badge, You need to leave our land, my relatives have no fondess for Marshals.", - "no": "Hi, what's up?" - }, - "responses": [ - { - "text": "...", - "topic": "TALK_LEAVE_NOW", - "opinion": { "trust": -20, "value": -20 }, - "condition": { "u_is_wearing": "badge_marshal" } - }, - { - "text": "Hi, Your dad asked me to come find you.", - "topic": "TALK_ISHERWOOD_CHRIS_TALK1", - "effect": { "u_add_var": "u_met_chris_isherwood", "type": "general", "context": "meeting", "value": "yes" } - }, - { - "text": "I was talking to Luke earlier, said you had some interesting ideas about the world ending.", - "topic": "TALK_CHRIS_THEORIES", - "condition": { - "and": [ - { "not": { "u_is_wearing": "badge_marshal" } }, - { "u_has_var": "u_heard_about_chris", "type": "general", "context": "meeting", "value": "yes" } - ] - } - }, - { - "text": "I'd better get going.", - "topic": "TALK_DONE", - "condition": { "not": { "u_is_wearing": "badge_marshal" } } - } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CHRIS_TALK1", - "dynamic_line": "Yeah, they are always worried about us, I prefer to survey the land and try to track the changes. I'm thinking about fixing up this cabin for some peace and quiet...", - "responses": [ - { "text": "Sounds like you are restless, why not leave?", "topic": "TALK_ISHERWOOD_CHRIS_WANTS" }, - { "text": "What sort of changes have you seen?", "topic": "TALK_ISHERWOOD_CHRIS_LAND" }, - { - "text": "I was talking to Luke earlier, said you had some interesting ideas about the world ending.", - "topic": "TALK_CHRIS_THEORIES", - "condition": { - "and": [ - { "not": { "u_is_wearing": "badge_marshal" } }, - { "u_has_var": "u_heard_about_chris", "type": "general", "context": "meeting", "value": "yes" } - ] - } - }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CHRIS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CHRIS_WANTS", - "dynamic_line": "My family is convinced that if we stay here, we'll be able to weather this catastrophe. Since technology has failed, they've doubled down on older traditions. I think we need to get out there and find some answers before settling on a path.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CHRIS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_CHRIS_THEORIES", - "dynamic_line": "In one of my longer trips I saw something out in a field, I didn't get close but I swear unbelievable monsters were coming out of it. It kinda shimmered, almost like it wasn't quite there. I followed the monsters for a while...", - "responses": [ - { "text": "What did you find?", "topic": "TALK_ISHERWOOD_CHRIS_MIGO_BASE" }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CHRIS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CHRIS_MIGO_BASE", - "dynamic_line": "They made their way to this weird structure, I've never seen anything like it, it glistened in the sun like something organic...", - "responses": [ - { "text": "If you join up with me, we can go check it out.", "topic": "TALK_SUGGEST_GO_CHRIS" }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CHRIS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_SUGGEST_GO_CHRIS", - "dynamic_line": "Yeah, I'll join with you, I hope we can come back and check on my family some occasionally. Getting some information is more important now though.", - "responses": [ - { "text": "What is this place we are going to?", "topic": "TALK_MISSION_LIST" }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CHRIS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CHRIS_LAND", - "dynamic_line": "Well, wildlife is more hostile and I've seen gigantic insects around, never mind all these monsters. I've also found mysterious dead spots and mutated vegetation. I don't think staying on a farm is sustainable forever, there are big planet wide changes occurring.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_CHRIS_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_LEAVE_NOW", - "dynamic_line": "You should leave before my family sees you.", - "responses": [ { "text": "...", "topic": "TALK_DONE" } ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_CHRIS_TOPICS", - "dynamic_line": "Go on...", - "responses": [ - { "text": "Your dad asked me to come find you.", "topic": "TALK_ISHERWOOD_CHRIS_TALK1" }, - { - "text": "I was talking to Luke earlier, he said you had some interesting ideas about the world ending.", - "topic": "TALK_CHRIS_THEORIES" - }, - { "text": "What sort of changes have you seen?", "topic": "TALK_ISHERWOOD_CHRIS_LAND" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "id": "MISSION_ISHERWOOD_CHRIS_1", - "type": "mission_definition", - "name": "Find mysterious structure", - "goal": "MGOAL_GO_TO_TYPE", - "difficulty": 5, - "value": 50000, - "start": { - "effect": "follow", - "assign_mission_target": { "om_terrain": "mi-go_camp2", "om_special": "Mi-Go Encampment", "reveal_radius": 3 } - }, - "origins": [ "ORIGIN_ANY_NPC" ], - "destination": "mi-go_camp2", - "dialogue": { - "describe": "We need to investigate the alien encampment.", - "offer": "I can take you to the structure those things were building.", - "accepted": "Awesome, I want some answers!", - "rejected": "Thanks anyway, I'll keep my eye on it.", - "advice": "I feel like we are underprepared if they see us, I marked the location for you.", - "inquire": "You ready?", - "success": "It's even bigger then I remember, we should explore some. I left a note for my family before we left. If we survive, the cabin should be fixed up and ready for you to move in if you want to stay.", - "success_lie": "Well it was here...", - "failure": "It was a lost cause anyways..." - }, - "end": { - "opinion": { "trust": 5, "value": 5 }, - "update_mapgen": [ - { - "om_terrain": "cabin_isherwood", - "om_special": "Isherwood Farms", - "place_nested": [ { "chunks": [ "cabin_isherwood_update" ], "x": 3, "y": 1 } ] - } - ] - } - } -] diff --git a/data/json/npcs/isherwood_farm/NPC_Claire_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Claire_Isherwood.json index 00069bf4e587d..87f2020318c38 100644 --- a/data/json/npcs/isherwood_farm/NPC_Claire_Isherwood.json +++ b/data/json/npcs/isherwood_farm/NPC_Claire_Isherwood.json @@ -8,7 +8,7 @@ "class": "NC_ISHERWOOD_CLAIRE", "attitude": 0, "mission": 7, - "chat": "TALK_ISHERWOOD_CLAIRE", + "chat": "TALK_ISHERWOOD_CLAIR", "mission_offered": "MISSION_ISHERWOOD_CLAIRE_1", "faction": "isherwood_family" }, @@ -20,10 +20,10 @@ "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], "common": false, "bonus_per": { "one_in": 4 }, - "shopkeeper_item_group": "NC_ISHERWOOD_CLAIRE_misc", "worn_override": "NC_Isherwood_worn", "carry_override": "NC_ISHERWOOD_rifle", "weapon_override": "NC_ISHERWOOD_archery", + "shopkeeper_item_group": "NC_ISHERWOOD_CLAIRE_misc", "skills": [ { "skill": "ALL", @@ -37,38 +37,33 @@ { "skill": "rifle", "bonus": { "rng": [ 4, 8 ] } } ] }, - { - "type": "item_group", - "id": "NC_ISHERWOOD_CLAIRE_hat", - "items": [ [ "null", 40 ], [ "cowboy_hat", 40 ], [ "hat_boonie", 20 ] ] - }, { "type": "item_group", "id": "NC_ISHERWOOD_CLAIRE_misc", "items": [ - [ "royal_jelly", 50 ], - [ "flavored_bonemeal_tablet", 55 ], - [ "bonemeal_tablet", 95 ], - [ "cattail_jelly", 95 ], - { "item": "thyme_oil", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "mugwort_oil", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "poppy_pain", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "poppy_sleep", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "poppysyrup", "prob": 80, "charges": 10, "container-item": "jar_glass_sealed" }, - { "item": "bee_balm_tea", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "chamomile_tea", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "dandelion_tea", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "herbal_tea", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "pine_tea", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "tea_bark", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "hb_beer", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "fruit_wine", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "honey_bottled", "prob": 80, "charges": 2, "container-item": "jar_glass_sealed" } + [ "royal_jelly", 5 ], + [ "flavored_bonemeal_tablet", 15 ], + [ "bonemeal_tablet", 15 ], + [ "cattail_jelly", 15 ], + { "item": "thyme_oil", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "mugwort_oil", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "poppy_pain", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "poppy_sleep", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "poppysyrup", "prob": 8, "charges": 10, "container-item": "jar_glass_sealed" }, + { "item": "bee_balm_tea", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "chamomile_tea", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "dandelion_tea", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "herbal_tea", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "pine_tea", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "tea_bark", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "hb_beer", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "fruit_wine", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "honey_bottled", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" } ] }, { "type": "talk_topic", - "id": "TALK_ISHERWOOD_CLAIRE", + "id": "TALK_ISHERWOOD_CLAIR", "dynamic_line": { "u_is_wearing": "badge_marshal", "yes": "Is that a U.S. Marshal's badge you're wearing?", @@ -108,9 +103,8 @@ "condition": { "not": { "u_is_wearing": "badge_marshal" } } }, { - "text": "Let's trade.", + "text": "Have anything to trade?", "effect": "start_trade", - "topic": "TALK_ISHERWOOD_CLAIRE", "condition": { "not": { "u_is_wearing": "badge_marshal" } } }, { @@ -147,7 +141,7 @@ "responses": [ { "text": "He did mention you make remedies, are they effective?", "topic": "TALK_CLAIRE_MEDICINE" }, { "text": "Must be nice, to have the quiet place amid so much madness.", "topic": "TALK_CLAIRE_FARM" }, - { "text": "I'd like to ask you something else...", "topic": "TALK_ISHERWOOD_CLAIRE_TOPICS" }, + { "text": "I'd like to ask you something else ...", "topic": "TALK_ISHERWOOD_CLAIRE_TOPICS" }, { "text": "I'd better get going.", "topic": "TALK_DONE" } ] }, @@ -191,7 +185,7 @@ { "type": "talk_topic", "id": "TALK_CLAIRE_DAUGHTER", - "dynamic_line": "Jesse and her family live up at the horse farm. They may have some jobs for you.", + "dynamic_line": "Jesse and her family live up at the horse farm. Her husband, Carlos, may have some jobs for you.", "responses": [ { "text": "I'd like to ask you something else...", "topic": "TALK_ISHERWOOD_CLAIRE_TOPICS" }, { "text": "I'd better get going.", "topic": "TALK_DONE" } @@ -222,7 +216,7 @@ { "text": "Where is your brother's place?", "topic": "TALK_CLAIRE_BROTHER" }, { "text": "A farm must be a pretty safe place these days.", "topic": "TALK_CLAIRE_FARM" }, { "text": "You are lucky to have your family still together.", "topic": "TALK_ISHERWOOD_CLAIRE2" }, - { "text": "Let's trade.", "effect": "start_trade", "topic": "TALK_ISHERWOOD_CLAIRE" }, + { "text": "Let's trade items.", "topic": "TALK_ISHERWOOD_CLAIRE", "effect": "start_trade" }, { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" }, { "text": "I'd better get going.", "topic": "TALK_DONE" } ] @@ -272,7 +266,7 @@ { "u_buy_item": "pine_tea", "container": "jar_glass_sealed", "count": 2 }, { "u_buy_item": "royal_jelly", "count": 1 }, { "u_buy_item": "bee_balm_tea", "container": "jar_glass_sealed", "count": 2 }, - { "u_add_var": "u_did_claire_missions", "type": "general", "context": "recruit", "value": "yes" } + { "u_add_var": "u_did_claire_missions", "type": "general", "context": "mission", "value": "yes" } ] }, "origins": [ "ORIGIN_SECONDARY" ], diff --git a/data/json/npcs/isherwood_farm/NPC_Eddie_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Eddie_Isherwood.json index c286d9f4470ff..e46e816b8c9dc 100644 --- a/data/json/npcs/isherwood_farm/NPC_Eddie_Isherwood.json +++ b/data/json/npcs/isherwood_farm/NPC_Eddie_Isherwood.json @@ -239,7 +239,7 @@ "item": "material_sand", "count": 2000, "followup": "MISSION_ISHERWOOD_EDDIE_3", - "end": { "opinion": { "trust": 1, "value": 1 } }, + "end": { "opinion": { "trust": 2, "value": 2 } }, "origins": [ "ORIGIN_SECONDARY" ], "dialogue": { "describe": "I do have some resource gathering I could use help with.", @@ -263,11 +263,7 @@ "item": "clay_lump", "count": 1000, "end": { "opinion": { "trust": 2, "value": 2 } }, - "effect": [ - { "u_add_var": "u_did_eddie_missions", "type": "general", "context": "mission", "value": "yes" }, - { "u_buy_item": "rope_6", "count": 1 }, - { "u_buy_item": "cattlefodder", "count": 3 } - ], + "effect": { "u_add_var": "u_did_eddie_missions", "type": "general", "context": "mission", "value": "yes" }, "origins": [ "ORIGIN_SECONDARY" ], "dialogue": { "describe": "I do have some resource gathering I could use help if you have time.", @@ -276,7 +272,7 @@ "rejected": "Oh well. I'll try to find time to get it myself, thanks.", "advice": "You can find it along river banks, or maybe look for deposits in the forest.", "inquire": "How is the search going?", - "success": "Thanks, now Luke can get started making jugs, We'd like to give you a cow if you want it. Here's a rope an some fodder, feel free to pick one out.", + "success": "Thanks, now Luke can get started making jugs.", "success_lie": "What good does this do us?", "failure": "I wonder where all the sand went..." } diff --git a/data/json/npcs/isherwood_farm/NPC_Jack_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Jack_Isherwood.json index 3c7c24a702c39..3a7235b9c103c 100644 --- a/data/json/npcs/isherwood_farm/NPC_Jack_Isherwood.json +++ b/data/json/npcs/isherwood_farm/NPC_Jack_Isherwood.json @@ -20,10 +20,10 @@ "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], "common": false, "bonus_per": { "one_in": 4 }, - "shopkeeper_item_group": "NC_ISHERWOOD_JACK_misc", "worn_override": "NC_Isherwood_worn", "carry_override": "NC_ISHERWOOD_rifle", "weapon_override": "NC_ISHERWOOD_archery", + "shopkeeper_item_group": "NC_ISHERWOOD_JACK_misc", "skills": [ { "skill": "ALL", @@ -92,22 +92,22 @@ "type": "item_group", "id": "NC_ISHERWOOD_JACK_misc", "items": [ - [ "cheese_hard", 50 ], - [ "vinegar", 55 ], - { "item": "veggy_pickled", "prob": 50, "charges": 2, "container-item": "jar_glass_sealed" }, - [ "jar_sauerkraut_pickled", 50 ], - { "item": "meat_pickled", "prob": 50, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "fish_pickled", "prob": 60, "charges": 2, "container-item": "jar_glass_sealed" }, - { "item": "meat_canned", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "veggy_canned", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "apple_canned", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "can_tomato", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "fish_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "meat_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "veggy_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "fish_pickled", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "sauce_red", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" }, - { "item": "kompot", "prob": 40, "charges": 12, "container-item": "jar_3l_glass_sealed" } + [ "cheese_hard", 5 ], + [ "vinegar", 15 ], + { "item": "veggy_pickled", "prob": 8, "charges": 2, "container-item": "jar_glass_sealed" }, + [ "jar_sauerkraut_pickled", 5 ], + { "item": "meat_pickled", "prob": 4, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "fish_pickled", "prob": 6, "charges": 2, "container-item": "jar_glass_sealed" }, + { "item": "meat_canned", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "veggy_canned", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "apple_canned", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "can_tomato", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "fish_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "meat_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "veggy_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "fish_pickled", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "sauce_red", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" }, + { "item": "kompot", "prob": 4, "charges": 12, "container-item": "jar_3l_glass_sealed" } ] }, { @@ -188,7 +188,7 @@ { "type": "talk_topic", "id": "TALK_ISHERWOOD_JACK2", - "dynamic_line": "We've had our losses... now we stay close to home, preparing for trouble. We've always taken disaster prepardness seriously, but we didn't expect anything like this though.", + "dynamic_line": "Yes, we have been staying close to home since the news began to turn bad, preparing for troubled times. We didn't expect anything like this though.", "responses": [ { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JACK_TOPICS" }, { "text": "I'd better get going.", "topic": "TALK_DONE" } @@ -197,7 +197,7 @@ { "type": "talk_topic", "id": "TALK_JACK_FARM", - "dynamic_line": "Even out here we've had some attacks and seen ... other things. We have been working on our defenses, but it takes time. We've been able to keep up with the crops and animals though so we won't have to risk our necks for supplies.", + "dynamic_line": "Even out here we've had some attacks and seen... other things. We have been working on our defenses, but it takes time. We've been able to keep up with the crops and animals though so we won't have to risk our necks for supplies.", "responses": [ { "text": "What sort of defenses do you want?", "topic": "TALK_FARM_DEFENSE" }, { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JACK_TOPICS" }, @@ -211,7 +211,7 @@ "responses": [ { "text": "Sounds reasonable, I'll see what I can do.", - "topic": "TALK_NONE", + "topic": "TALK_DONE", "effect": { "u_add_var": "u_scavenge_for_Jack_Isherwood", "type": "general", "context": "meeting", "value": "yes" } }, { "text": "I'm not interested right now, I'd better get going.", "topic": "TALK_DONE" } @@ -250,13 +250,13 @@ { "type": "talk_topic", "id": "TALK_LEAVE_NOW", - "dynamic_line": "You should get off my land, the governemnt proved its incompetence with this catastrophe.", + "dynamic_line": "You should get off my land, the government proved its incompetence with this catastrophe.", "responses": [ { "text": "...", "topic": "TALK_DONE" } ] }, { "type": "talk_topic", "id": "TALK_ISHERWOOD_JACK_TOPICS", - "dynamic_line": "Go on ...", + "dynamic_line": "Go on...", "responses": [ { "text": "I'm here to deliver some resources.", @@ -282,19 +282,7 @@ "id": "TALK_ISHERWOOD_JACK_RESOURCES", "dynamic_line": "Excellent. What've you brought us?", "repeat_responses": { - "for_item": [ - "log", - "2x4", - "wood_panel", - "wood_sheet", - "material_sand", - "clay_lump", - "nail", - "wire", - "rock", - "steel_chunk", - "steel_lump" - ], + "for_item": [ "log", "2x4", "wood_panel", "wood_sheet", "material_sand", "clay_lump", "nail", "rock", "steel_chunk", "steel_lump" ], "response": { "text": "Delivering .", "topic": "TALK_DELIVER_ASK" } }, "responses": [ @@ -305,7 +293,7 @@ { "id": "MISSION_ISHERWOOD_JACK_1", "type": "mission_definition", - "name": "Find 10 3L jars", + "name": "Find 20 3L jars", "goal": "MGOAL_FIND_ITEM", "difficulty": 3, "value": 20000, @@ -341,10 +329,10 @@ "end": { "opinion": { "trust": 2, "value": 2 }, "effect": [ - { "u_buy_item": "tomato", "count": 25 }, - { "u_buy_item": "onion", "count": 25 }, - { "u_buy_item": "cucumber", "count": 25 }, - { "u_add_var": "u_did_jack_missions", "type": "general", "context": "recruit", "value": "yes" } + { "u_buy_item": "tomato", "count": 5 }, + { "u_buy_item": "onion", "count": 5 }, + { "u_buy_item": "cucumber", "count": 5 }, + { "u_add_var": "u_did_jack_missions", "type": "general", "context": "mission", "value": "yes" } ] }, "origins": [ "ORIGIN_SECONDARY" ], diff --git a/data/json/npcs/isherwood_farm/NPC_Jesse_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Jesse_Isherwood.json deleted file mode 100644 index 76f43a78ebbf5..0000000000000 --- a/data/json/npcs/isherwood_farm/NPC_Jesse_Isherwood.json +++ /dev/null @@ -1,216 +0,0 @@ -[ - { - "type": "npc", - "id": "isherwood_jesse", - "//": "Horse trainer for the Isherwood family.", - "name_unique": "Jesse Isherwood", - "gender": "female", - "class": "NC_ISHERWOOD_JESSE", - "worn_override": "NC_Isherwood_worn", - "carry_override": "NC_ISHERWOOD_rifle", - "weapon_override": "NC_ISHERWOOD_archery", - "attitude": 0, - "mission": 7, - "chat": "TALK_ISHERWOOD_JESSE", - "mission_offered": "MISSION_ISHERWOOD_JESSE_1", - "faction": "isherwood_family" - }, - { - "type": "npc_class", - "id": "NC_ISHERWOOD_JESSE", - "name": "Jesse Isherwood", - "job_description": "I'm a horse trainer, part of the Isherwood family", - "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], - "common": false, - "bonus_per": { "one_in": 4 }, - "skills": [ - { - "skill": "ALL", - "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] } - }, - { "skill": "barter", "bonus": { "rng": [ 6, 9 ] } }, - { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, - { "skill": "survival", "bonus": { "rng": [ 3, 6 ] } }, - { "skill": "gun", "bonus": { "rng": [ 3, 6 ] } }, - { "skill": "rifle", "bonus": { "rng": [ 4, 6 ] } }, - { "skill": "archery", "bonus": { "rng": [ 4, 6 ] } } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_JESSE", - "dynamic_line": { - "u_is_wearing": "badge_marshal", - "yes": "Leave our property, Marshal.", - "no": { - "u_male": true, - "yes": "Hello, We don't see many people these days.", - "no": "Hello, We don't see many people these days." - } - }, - "responses": [ - { - "text": "Yeah, I'm a Marshal, what are you going to do about it?", - "topic": "TALK_LEAVE_NOW", - "effect": "hostile", - "opinion": { "trust": -20, "value": -20 }, - "condition": { "u_is_wearing": "badge_marshal" } - }, - { - "text": "...", - "topic": "TALK_LEAVE_NOW", - "opinion": { "trust": -20, "value": -20 }, - "condition": { "u_is_wearing": "badge_marshal" } - }, - { - "text": "Hi, it looks like you are doing well here.", - "topic": "TALK_ISHERWOOD_JESSE_TALK1", - "condition": { "not": { "u_is_wearing": "badge_marshal" } }, - "effect": { "u_add_var": "u_met_Jesse_Isherwood", "type": "general", "context": "meeting", "value": "yes" } - }, - { - "text": "Hi, Jack and Claire suggested I come down here and meet you.", - "topic": "TALK_MET_JACK_CLAIRE", - "condition": { - "and": [ - { "not": { "u_is_wearing": "badge_marshal" } }, - { "u_has_var": "u_met_Jack_Isherwood", "type": "general", "context": "meeting", "value": "yes" } - ] - } - }, - { - "text": "Can I do anything for you?", - "topic": "TALK_MISSION_LIST", - "condition": { "not": { "u_is_wearing": "badge_marshal" } } - }, - { - "text": "I'd better get going.", - "topic": "TALK_DONE", - "condition": { "not": { "u_is_wearing": "badge_marshal" } } - } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_JESSE_TALK1", - "dynamic_line": "It would be a lot harder without family. Keeping the animals safe is essential to our future.", - "responses": [ - { "text": "Sounds like you are betting on civilization not coming back.", "topic": "TALK_ISHERWOOD_JESSE_OPINION" }, - { "text": "Do you have any animal care tips?", "topic": "TALK_ISHERWOOD_JESSE_TIPS" }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_JESSE_OPINION", - "dynamic_line": "We can't wait for someone else to fix things, we need to take care of ourselves.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_JESSE_TIPS", - "dynamic_line": "We can't wait for someone else to fix things, we need to take care of ourselves. Horses make good all around companions. They can get places that cars can't and also help when all the engines fail. They become very trusting if you feed them some nice fodder.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_MET_JACK_CLAIRE", - "dynamic_line": "Oh good, I'm sure Jack wanted to put you to work. If you're interested, I could use a hand clearing out the woods. My son, Chris has his hands full trying to keep the predators under control.", - "responses": [ - { "text": "I'd like to speak with Carlos too about some work.", "topic": "TALK_JESSE_CARLOS" }, - { - "text": "Is Chris around? I'd like to know what he's run into out in the woods.", - "topic": "TALK_JESSE_CHRIS" - }, - { "text": "What needs killing?", "topic": "TALK_MISSION_LIST" }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_Jesse_TOPICS" }, - { "text": "I'm not interested right now, I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_JESSE_CARLOS", - "dynamic_line": "He's out back in the workshop.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_JESSE_CHRIS", - "dynamic_line": "He's out doing some surveying, we are planning on adding a fence line and some defenses.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_JESSE_CARLOS", - "dynamic_line": "Carlos will be in his workshop if he isn't out hunting. He is trying to get a forage set up.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_JESSE_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_LEAVE_NOW", - "dynamic_line": "You should get off my farm, I won't deal with a a government stooge.", - "responses": [ { "text": "...", "topic": "TALK_DONE" } ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_JESSE_TOPICS", - "dynamic_line": "Go on...", - "responses": [ - { "text": "Looks like you are doing well here.", "topic": "TALK_ISHERWOOD_JESSE_TALK1" }, - { "text": "Do you have any animal care tips?", "topic": "TALK_ISHERWOOD_JESSE_TIPS" }, - { "text": "Jack and Claire suggested I come talk to you.", "topic": "TALK_MET_JACK_CLAIRE" }, - { "text": "I'd like to speak with Carlos too about some work.", "topic": "TALK_JESSE_CARLOS" }, - { "text": "Is Chris around?", "topic": "TALK_JESSE_CHRIS" }, - { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "id": "MISSION_ISHERWOOD_JESSE_1", - "type": "mission_definition", - "name": "Kill monster", - "goal": "MGOAL_KILL_MONSTER", - "difficulty": 5, - "value": 50000, - "start": { - "assign_mission_target": { "om_terrain": "forest_thick", "reveal_radius": 1, "random": true, "search_range": 20, "min_distance": 8 }, - "update_mapgen": { "place_monster": [ { "monster": "mon_flying_polyp", "x": 11, "y": 11, "target": true } ] } - }, - "origins": [ "ORIGIN_ANY_NPC" ], - "dialogue": { - "describe": "We could use some help killing some monsters.", - "offer": "I don't know what it is, but it is very fast, I'm willing to outfit you with a horse if you succeed.", - "accepted": "Be ready for anything.", - "rejected": "Thanks anyway, we will try some traps.", - "advice": "A gun will probably help.", - "inquire": "Did you kill it?", - "success": "I appreciate it, this will help keep our animals safe, here's an extra saddle for you. Take this fodder and choose a horse for your bravery.", - "success_lie": "Show me the body.", - "failure": "It was a lost cause anyways..." - }, - "end": { - "opinion": { "trust": 1, "value": 1 }, - "effect": [ - { "u_buy_item": "riding_saddle", "count": 1 }, - { "u_buy_item": "cattlefodder", "count": 3 }, - { "u_add_var": "u_did_jesse_missions", "type": "general", "context": "recruit", "value": "yes" } - ] - } - } -] diff --git a/data/json/npcs/isherwood_farm/NPC_Lisa_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Lisa_Isherwood.json deleted file mode 100644 index 4f6c7e3aa4e1d..0000000000000 --- a/data/json/npcs/isherwood_farm/NPC_Lisa_Isherwood.json +++ /dev/null @@ -1,139 +0,0 @@ -[ - { - "type": "npc", - "id": "isherwood_lisa", - "//": "Part of the Isherwood family.", - "name_unique": "Lisa Isherwood", - "gender": "female", - "class": "NC_ISHERWOOD_LISA", - "worn_override": "NC_Isherwood_worn", - "carry_override": "NC_ISHERWOOD_rifle", - "weapon_override": "NC_ISHERWOOD_archery", - "attitude": 0, - "mission": 7, - "chat": "TALK_ISHERWOOD_LISA", - "faction": "isherwood_family" - }, - { - "type": "npc_class", - "id": "NC_ISHERWOOD_LISA", - "name": "Lisa Isherwood", - "job_description": "Part of the Isherwood family", - "traits": [ { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], - "common": false, - "bonus_per": { "one_in": 4 }, - "skills": [ - { - "skill": "ALL", - "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] } - }, - { "skill": "melee", "bonus": { "rng": [ 3, 6 ] } }, - { "skill": "survival", "bonus": { "rng": [ 3, 6 ] } }, - { "skill": "gun", "bonus": { "rng": [ 3, 5 ] } }, - { "skill": "rifle", "bonus": { "rng": [ 2, 5 ] } }, - { "skill": "archery", "bonus": { "rng": [ 2, 5 ] } } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_LISA", - "dynamic_line": { - "u_is_wearing": "badge_marshal", - "yes": "I see that badge, I think you need ot keep on walking, straight off this property.", - "no": { "u_male": true, "yes": "Hello, what brings you here?", "no": "Hi, what brings you here?" } - }, - "responses": [ - { - "text": "...", - "topic": "TALK_LEAVE_NOW", - "opinion": { "trust": -20, "value": -20 }, - "condition": { "u_is_wearing": "badge_marshal" } - }, - { - "text": "Hi, this is a nice farm, your family live here?", - "topic": "TALK_ISHERWOOD_LISA_TALK1", - "condition": { "not": { "u_is_wearing": "badge_marshal" } } - }, - { - "text": "Hi, I'm looking for Jesse.", - "topic": "TALK_LISA_JESSE", - "condition": { - "and": [ - { "not": { "u_is_wearing": "badge_marshal" } }, - { "u_has_var": "u_learned_about_jesse", "type": "general", "context": "meeting", "value": "yes" } - ] - } - }, - { - "text": "Hi, I'm looking for Chris.", - "topic": "TALK_LISA_CHRIS", - "condition": { - "and": [ - { "not": { "u_is_wearing": "badge_marshal" } }, - { "u_has_var": "u_heard_about_chris", "type": "general", "context": "meeting", "value": "yes" } - ] - } - }, - { - "text": "I'd better get going.", - "topic": "TALK_DONE", - "condition": { "not": { "u_is_wearing": "badge_marshal" } } - } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_LISA_TALK1", - "dynamic_line": "My family owns all the land around here, my parents are out in the barn and my other family is down he road.", - "responses": [ - { "text": "Ok, I'll go find them.", "topic": "TALK_DONE" }, - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_LISA_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_LISA_JESSE", - "dynamic_line": "Mom is in her office, in the barn. Be careful that you don't let our horses out.", - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_LISA_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_LISA_CHRIS", - "dynamic_line": "Chris is out hunting or something right now.", - "responses": [ - { "text": "Oh, ok.", "topic": "TALK_DONE" }, - { "text": "Or something?", "topic": "TALK_LISA_CHRIS2" }, - { "text": "Nice talking to you, bye.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_LISA_CHRIS2", - "dynamic_line": "Well he's supposed to be hunting, but since you've been talking to Luke, I bet he mentioned Chris wants to learn more about the end of the world. Sometimes he'll take off for a few days and I end up patching him up so my parents don't know he left the property.", - "effect": { "u_add_var": "u_heard_about_lukefromlisa", "type": "general", "context": "meeting", "value": "yes" }, - "responses": [ - { "text": "Let's talk about something else.", "topic": "TALK_ISHERWOOD_LISA_TOPICS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_ISHERWOOD_LISA_TOPICS", - "dynamic_line": "Go on...", - "responses": [ - { "text": "Hi, I'm looking for Jesse.", "topic": "TALK_LISA_JESSE" }, - { "text": "Hi, I'm looking for Chris.", "topic": "TALK_LISA_CHRIS" }, - { "text": "I'd better get going.", "topic": "TALK_DONE" } - ] - }, - { - "type": "talk_topic", - "id": "TALK_LEAVE_NOW", - "dynamic_line": "You should get off my farm, I won't deal with a a government stooge.", - "responses": [ { "text": "...", "topic": "TALK_DONE" } ] - } -] diff --git a/data/json/npcs/isherwood_farm/NPC_Luke_Isherwood.json b/data/json/npcs/isherwood_farm/NPC_Luke_Isherwood.json index 3bd249cca8109..770903830e4bf 100644 --- a/data/json/npcs/isherwood_farm/NPC_Luke_Isherwood.json +++ b/data/json/npcs/isherwood_farm/NPC_Luke_Isherwood.json @@ -56,7 +56,7 @@ "topic": "TALK_ISHERWOOD_LUKE_TALK1", "condition": { "u_has_var": "u_met_Eddie_Isherwood", "type": "general", "context": "meeting", "value": "yes" } }, - { "text": "Hey, What are you doing out here?", "topic": "TALK_ISHERWOOD_LUKE2" }, + { "text": "Hey, What are you doing out here?", "topic": "TALK_ISHERWOOD_LUKE2`" }, { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST", @@ -191,7 +191,7 @@ "item": "textbook_fabrication", "count": 1, "end": { "opinion": { "trust": 2, "value": 2 } }, - "effect": { "u_add_var": "u_did_luke_missions", "type": "general", "context": "recruit", "value": "yes" }, + "effect": { "u_add_var": "u_did_luke_missions", "type": "general", "context": "mission", "value": "yes" }, "origins": [ "ORIGIN_SECONDARY" ], "dialogue": { "describe": "I need more knowledge to get better pottery.", diff --git a/data/json/npcs/items_generic.json b/data/json/npcs/items_generic.json index 09e43c32ba46f..49176729baa73 100644 --- a/data/json/npcs/items_generic.json +++ b/data/json/npcs/items_generic.json @@ -236,13 +236,13 @@ "id": "npc_extra", "items": [ [ "null", 20 ], - [ "gold_ring", 20 ], + [ "ring", 20 ], [ "diamond_ring", 2 ], [ "copper_bracelet", 10 ], [ "gold_bracelet", 10 ], [ "silver_bracelet", 10 ], - [ "silver_necklace", 5 ], - [ "silver_locket", 5 ] + [ "necklace", 5 ], + [ "locket", 5 ] ] }, { @@ -416,7 +416,7 @@ [ "canteen", 5 ], [ "carpentry_book", 1 ], [ "carrot", 3 ], - { "item": "catfood", "prob": 3, "container-item": "can_food" }, + [ "catfood_canned", 3 ], [ "cell_phone", 5 ], [ "smart_phone", 15 ], [ "ceramic_armor", 1 ], @@ -494,7 +494,7 @@ [ "diveknife", 1 ], [ "diving_watch", 1 ], [ "dog_whistle", 3 ], - { "item": "dogfood", "prob": 3, "container-item": "can_food" }, + [ "dogfood_canned", 3 ], [ "doublespeargun", 1 ], [ "drink_boozeberry", 1 ], [ "drink_rumcola", 1 ], @@ -550,7 +550,6 @@ [ "fruit_leather", 3 ], [ "fruit_wine", 5 ], [ "fungicide", 3 ], - [ "insecticide", 3 ], [ "fun_survival", 5 ], [ "funnel", 3 ], [ "fur", 5 ], @@ -694,7 +693,7 @@ [ "lighter", 20 ], [ "lgpistol_primer", 3 ], [ "lgrifle_primer", 3 ], - [ "silver_locket", 10 ], + [ "locket", 10 ], [ "long_island", 3 ], [ "lsd", 3 ], [ "lunchmeat", 3 ], @@ -824,7 +823,7 @@ [ "nail", 3 ], [ "nailgun", 3 ], [ "neccowafers", 4 ], - [ "silver_necklace", 5 ], + [ "necklace", 5 ], [ "news_regional", 3 ], [ "nic_gum", 8 ], [ "nicotine_liquid", 6 ], @@ -943,7 +942,7 @@ [ "restaurantmap", 5 ], [ "rhubarb", 1 ], [ "rifle_scope", 4 ], - [ "gold_ring", 6 ], + [ "ring", 6 ], [ "roadmap", 4 ], [ "rolling_paper", 3 ], [ "rollmat", 8 ], diff --git a/data/json/npcs/missiondef.json b/data/json/npcs/missiondef.json index 26fdad9310b6a..4cbf7aa09641e 100644 --- a/data/json/npcs/missiondef.json +++ b/data/json/npcs/missiondef.json @@ -770,28 +770,5 @@ "success_lie": "Well... where are they?", "failure": "I'm so disappointed in you kid..." } - }, - { - "id": "MISSION_PROVE_YOU_ARE_A_SURVIVOR", - "type": "mission_definition", - "name": "Prove You're A Survivor", - "description": "Prove you're a survivor by surviving for 10 days after the cataclysm, and then returning to the person who gave you this mission.", - "goal": "MGOAL_CONDITION", - "goal_condition": { "days_since_cataclysm": 10 }, - "difficulty": 1, - "value": 0, - "origins": [ "ORIGIN_OPENER_NPC" ], - "end": { "effect": "follow" }, - "dialogue": { - "describe": "It's hard to tell who actually has the skills to survive these days...", - "offer": "It's hard surviving out here on our own, and we'd probably have a better chance working together. Problem is, I don't really know you and what you're capable of. You might have what it takes, or you might not. Either way, I'm going to need some proof. Come back in a few days and I'll gladly follow you. It's basically a win-win for me: either you come back and I'll know you've got what it takes, or you don't and I'll know that I was right not to follow you.", - "accepted": "I'll see you then...or I won't, and then I'll know I made the right decision.", - "rejected": "Ya, it was a long shot I admit.", - "advice": "Don't die. If you're asking me for advice, that doesn't bode well for you.", - "inquire": "Well, you're not dead...yet.", - "success": "I'll be honest, I wasn't really expecting to see you again. A promise is a promise, I'll follow you now!", - "success_lie": "I know time is relative and all that.", - "failure": "I'm not quite sure how you failed to survive AND are talking to me." - } } ] diff --git a/data/json/npcs/refugee_center/beggars/BEGGAR_3_Luo_Meizhen.json b/data/json/npcs/refugee_center/beggars/BEGGAR_3_Luo_Meizhen.json index 5846fb07aaccf..c4ac61dc7ed45 100644 --- a/data/json/npcs/refugee_center/beggars/BEGGAR_3_Luo_Meizhen.json +++ b/data/json/npcs/refugee_center/beggars/BEGGAR_3_Luo_Meizhen.json @@ -541,10 +541,8 @@ "id": "TALK_REFUGEE_BEGGAR_3_MYCUS2", "dynamic_line": "Okay, you've got my attention. Listen, do you think you could bring me some kind of sample of these things?", "responses": [ - { - "text": "It'd be dangerous. What kind of benefit is there from taking a risk like that?", - "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS3" - }, + { "text": "It'd be dangerous, what's in it for me?", "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS3" }, + { "text": "Sure, easy enough. What do you need?", "topic": "TALK_REFUGEE_BEGGAR_3_MYCUS3" }, { "text": "What was it you were saying before?", "topic": "TALK_NONE" }, { "text": "I'd better get going.", "topic": "TALK_DONE" } ] diff --git a/data/json/npcs/refugee_center/surface_refugees/NPC_Stan_Borichenko.json b/data/json/npcs/refugee_center/surface_refugees/NPC_Stan_Borichenko.json index f0c9afa8d3c37..f33fba0cda02f 100644 --- a/data/json/npcs/refugee_center/surface_refugees/NPC_Stan_Borichenko.json +++ b/data/json/npcs/refugee_center/surface_refugees/NPC_Stan_Borichenko.json @@ -39,7 +39,7 @@ "entries": [ { "item": "briefs" }, { "item": "socks" }, - { "item": "tie_skinny" }, + { "item": "skinny_tie" }, { "item": "dress_shirt" }, { "item": "pants" }, { "item": "blazer" }, diff --git a/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_shopkeep.json b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_shopkeep.json index aeeb69236386f..f16d0b53d05e7 100644 --- a/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_shopkeep.json +++ b/data/json/npcs/refugee_center/surface_staff/NPC_free_merchant_shopkeep.json @@ -146,7 +146,6 @@ [ "makeshift_machete", 15 ], [ "flamethrower_crude", 20 ], [ "fungicide", 20 ], - [ "insecticide", 20 ], [ "antifungal", 20 ], [ "antiparasitic", 20 ], [ "diazepam", 15 ], diff --git a/data/json/npcs/robofac/ROBOFAC_SURFACE_FREEMERCHANT.json b/data/json/npcs/robofac/ROBOFAC_SURFACE_FREEMERCHANT.json index 3df100e4b0f4d..e1f2f05b31d3d 100644 --- a/data/json/npcs/robofac/ROBOFAC_SURFACE_FREEMERCHANT.json +++ b/data/json/npcs/robofac/ROBOFAC_SURFACE_FREEMERCHANT.json @@ -78,7 +78,6 @@ { "item": "bandana", "prob": 20 }, { "item": "scarf", "prob": 15 }, { "item": "fungicide", "prob": 20 }, - { "item": "insecticide", "prob": 20 }, { "item": "antifungal", "prob": 20 }, { "item": "antiparasitic", "prob": 20 } ] diff --git a/data/json/obsolete_terrains.json b/data/json/obsolete_terrains.json index e16a6b6ecb234..92f7922e98a0b 100644 --- a/data/json/obsolete_terrains.json +++ b/data/json/obsolete_terrains.json @@ -261,6 +261,9 @@ "orchard_tree_apple", "orchard_stall", "orchard_processing", + "sewage_treatment", + "sewage_treatment_hub", + "sewage_treatment_under", "dairy_farm_NW", "dairy_farm_NE", "dairy_farm_SW", diff --git a/data/json/overmap/map_extras.json b/data/json/overmap/map_extras.json index de99246f14d39..9c954f53f92cd 100644 --- a/data/json/overmap/map_extras.json +++ b/data/json/overmap/map_extras.json @@ -4,14 +4,14 @@ "type": "map_extra", "name": "Nothing", "description": "Nothing of interest is here.", - "generator": { "generator_method": "null", "generator_id": "mx_null" } + "function": "mx_null" }, { "id": "mx_crater", "type": "map_extra", "name": "Crater", "description": "There is a crater here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_crater" }, + "function": "mx_crater", "sym": "x", "color": "yellow", "autonote": true @@ -21,7 +21,7 @@ "type": "map_extra", "name": "Fumarole", "description": "There is a fumarole here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_fumarole" }, + "function": "mx_fumarole", "sym": "x", "color": "yellow", "autonote": true @@ -31,7 +31,7 @@ "type": "map_extra", "name": "College Kids", "description": "Several corpses of college kids are here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_collegekids" }, + "function": "mx_collegekids", "sym": "x", "color": "yellow", "autonote": true @@ -41,7 +41,7 @@ "type": "map_extra", "name": "Drug Deal", "description": "Several corpses of drug dealers are here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_drugdeal" }, + "function": "mx_drugdeal", "sym": "x", "color": "yellow", "autonote": true @@ -51,7 +51,7 @@ "type": "map_extra", "name": "Roadworks", "description": "Roadworks are here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_roadworks" }, + "function": "mx_roadworks", "sym": "x", "color": "yellow", "autonote": true @@ -61,7 +61,7 @@ "type": "map_extra", "name": "Road Mayhem", "description": "Road mayhem is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_mayhem" }, + "function": "mx_mayhem", "sym": "x", "color": "yellow", "autonote": true @@ -71,7 +71,7 @@ "type": "map_extra", "name": "Roadblock (Military)", "description": "This road is blocked by military.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_roadblock" }, + "function": "mx_roadblock", "sym": "x", "color": "yellow", "autonote": true @@ -81,7 +81,7 @@ "type": "map_extra", "name": "Roadblock (Bandits)", "description": "This road is blocked by bandits.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_roadblock" }, + "function": "mx_roadblock", "sym": "x", "color": "yellow", "autonote": true @@ -91,7 +91,7 @@ "type": "map_extra", "name": "Minefield", "description": "Mines are scattered here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_minefield" }, + "function": "mx_minefield", "sym": "x", "color": "yellow", "autonote": true @@ -101,7 +101,7 @@ "type": "map_extra", "name": "Supply Drop", "description": "Several supply crates were dropped here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_supplydrop" }, + "function": "mx_supplydrop", "sym": "x", "color": "yellow", "autonote": true @@ -111,7 +111,7 @@ "type": "map_extra", "name": "Military", "description": "Several corpses of soldiers are here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_military" }, + "function": "mx_military", "sym": "x", "color": "yellow", "autonote": true @@ -121,7 +121,7 @@ "type": "map_extra", "name": "Helicopter Crash", "description": "Helicopter crashed here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_helicopter" }, + "function": "mx_helicopter", "sym": "x", "color": "yellow", "autonote": true @@ -131,7 +131,7 @@ "type": "map_extra", "name": "Scientists", "description": "Several corpses of scientists are here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_science" }, + "function": "mx_science", "sym": "x", "color": "yellow", "autonote": true @@ -141,7 +141,7 @@ "type": "map_extra", "name": "Portal", "description": "Portal is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_portal" }, + "function": "mx_portal", "sym": "x", "color": "yellow", "autonote": true @@ -151,7 +151,7 @@ "type": "map_extra", "name": "Portal In", "description": "Another portal is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_portal_in" }, + "function": "mx_portal_in", "sym": "x", "color": "yellow", "autonote": true @@ -161,7 +161,7 @@ "type": "map_extra", "name": "Anomaly", "description": "Some anomaly is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_anomaly" }, + "function": "mx_anomaly", "sym": "x", "color": "yellow", "autonote": true @@ -171,7 +171,7 @@ "type": "map_extra", "name": "Spider Nest", "description": "Spider nest is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_house_spider" }, + "function": "mx_house_spider", "sym": "x", "color": "yellow", "autonote": true @@ -181,7 +181,7 @@ "type": "map_extra", "name": "Wasp Nest", "description": "Wasp nest is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_house_wasp" }, + "function": "mx_house_wasp", "sym": "x", "color": "yellow", "autonote": true @@ -191,7 +191,7 @@ "type": "map_extra", "name": "Spiders", "description": "This area is covered with webs. Probably spiders are nearby", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_spider" }, + "function": "mx_spider", "sym": "x", "color": "yellow", "autonote": true @@ -201,7 +201,7 @@ "type": "map_extra", "name": "Shia LaBeouf", "description": "Cannibal is nearby.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_shia" }, + "function": "mx_shia", "sym": "x", "color": "yellow", "autonote": true @@ -211,7 +211,7 @@ "type": "map_extra", "name": "Jabberwock", "description": "Jabberwock is nearby.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_jabberwock" }, + "function": "mx_jabberwock", "sym": "x", "color": "yellow", "autonote": true @@ -221,7 +221,7 @@ "type": "map_extra", "name": "Grove", "description": "This area is covered with a single type of trees.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_grove" }, + "function": "mx_grove", "sym": "x", "color": "yellow", "autonote": true @@ -231,7 +231,7 @@ "type": "map_extra", "name": "Shrubberry", "description": "This area is covered with a single type of shrubs.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_shrubbery" }, + "function": "mx_shrubbery", "sym": "x", "color": "yellow", "autonote": true @@ -241,7 +241,7 @@ "type": "map_extra", "name": "Clearcut", "description": "Most trees in this area were uniformly cut down.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_clearcut" }, + "function": "mx_clearcut", "sym": "x", "color": "yellow", "autonote": true @@ -251,7 +251,7 @@ "type": "map_extra", "name": "Pond", "description": "Small pond is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_pond" }, + "function": "mx_pond", "sym": "x", "color": "yellow", "autonote": true @@ -261,7 +261,7 @@ "type": "map_extra", "name": "Clay Deposit", "description": "Small clay deposit is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_clay_deposit" }, + "function": "mx_clay_deposit", "sym": "x", "color": "yellow", "autonote": true @@ -271,7 +271,7 @@ "type": "map_extra", "name": "Dead Vegetation", "description": "Dead vegetation is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_dead_vegetation" }, + "function": "mx_dead_vegetation", "sym": "x", "color": "yellow", "autonote": true @@ -281,7 +281,7 @@ "type": "map_extra", "name": "Dead Vegetation (Point)", "description": "Dead vegetation is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_point_dead_vegetation" }, + "function": "mx_point_dead_vegetation", "sym": "x", "color": "yellow", "autonote": true @@ -291,7 +291,7 @@ "type": "map_extra", "name": "Burned Ground", "description": "Burned ground is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_burned_ground" }, + "function": "mx_burned_ground", "sym": "x", "color": "yellow", "autonote": true @@ -301,7 +301,7 @@ "type": "map_extra", "name": "Burned Ground (Point)", "description": "Burned ground is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_point_burned_ground" }, + "function": "mx_point_burned_ground", "sym": "x", "color": "yellow", "autonote": true @@ -311,7 +311,7 @@ "type": "map_extra", "name": "Marloss Pilgrimage", "description": "Marloss Pilgrimage is here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_marloss_pilgrimage" }, + "function": "mx_marloss_pilgrimage", "sym": "x", "color": "yellow", "autonote": true @@ -321,7 +321,7 @@ "type": "map_extra", "name": "Casings", "description": "Several spent casings are here.", - "generator": { "generator_method": "map_extra_function", "generator_id": "mx_casings" }, + "function": "mx_casings", "sym": "x", "color": "yellow", "autonote": true diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index be0bd5c3c706f..ff1371fcc33af 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -962,25 +962,6 @@ { "point": [ 2, 1, 0 ], "overmap": "office_tower_2_b3_north" } ] }, - { - "type": "city_building", - "id": "office_tower_collapsed", - "locations": [ "land" ], - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "office_tower_collapse_a0_north" }, - { "point": [ 1, 0, 0 ], "overmap": "office_tower_collapse_a1_north" }, - { "point": [ 2, 0, 0 ], "overmap": "office_tower_collapse_a2_north" }, - { "point": [ 0, 1, 0 ], "overmap": "office_tower_collapse_b0_north" }, - { "point": [ 1, 1, 0 ], "overmap": "office_tower_collapse_b1_north" }, - { "point": [ 2, 1, 0 ], "overmap": "office_tower_collapse_b2_north" }, - { "point": [ 0, 0, -1 ], "overmap": "office_tower_collapse_b_a0_north" }, - { "point": [ 1, 0, -1 ], "overmap": "office_tower_collapse_b_a1_north" }, - { "point": [ 2, 0, -1 ], "overmap": "office_tower_collapse_b_a2_north" }, - { "point": [ 0, 1, -1 ], "overmap": "office_tower_collapse_b_b0_north" }, - { "point": [ 1, 1, -1 ], "overmap": "office_tower_collapse_b_b1_north" }, - { "point": [ 2, 1, -1 ], "overmap": "office_tower_collapse_b_b2_north" } - ] - }, { "type": "city_building", "id": "office_tower_hiddenlab", @@ -2312,11 +2293,5 @@ { "point": [ 0, 0, -1 ], "overmap": "pawn_pf_under_north" }, { "point": [ 0, 0, 1 ], "overmap": "pawn_pf_roof_north" } ] - }, - { - "type": "city_building", - "id": "s_hunting", - "locations": [ "land" ], - "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_hunting_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_hunting_roof_north" } ] } ] diff --git a/data/json/overmap/overmap_special/specials.json b/data/json/overmap/overmap_special/specials.json index 0421b895111bc..06b0d643aa549 100644 --- a/data/json/overmap/overmap_special/specials.json +++ b/data/json/overmap/overmap_special/specials.json @@ -110,30 +110,6 @@ "occurrences": [ 0, 1 ], "spawns": { "group": "GROUP_RAZORCLAW", "population": [ 30, 60 ], "radius": [ 2, 10 ] } }, - { - "//": "This special is required for robofac mission 3, and this is a fallback for when the tower doesn’t spawn inside city. Should be removed once we can guarantee the spawning of mid-city specials", - "type": "overmap_special", - "id": "office_tower_collapsed", - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "office_tower_collapse_a0_north" }, - { "point": [ 1, 0, 0 ], "overmap": "office_tower_collapse_a1_north" }, - { "point": [ 2, 0, 0 ], "overmap": "office_tower_collapse_a2_north" }, - { "point": [ 0, 1, 0 ], "overmap": "office_tower_collapse_b0_north" }, - { "point": [ 1, 1, 0 ], "overmap": "office_tower_collapse_b1_north" }, - { "point": [ 2, 1, 0 ], "overmap": "office_tower_collapse_b2_north" }, - { "point": [ 0, 0, -1 ], "overmap": "office_tower_collapse_b_a0_north" }, - { "point": [ 1, 0, -1 ], "overmap": "office_tower_collapse_b_a1_north" }, - { "point": [ 2, 0, -1 ], "overmap": "office_tower_collapse_b_a2_north" }, - { "point": [ 0, 1, -1 ], "overmap": "office_tower_collapse_b_b0_north" }, - { "point": [ 1, 1, -1 ], "overmap": "office_tower_collapse_b_b1_north" }, - { "point": [ 2, 1, -1 ], "overmap": "office_tower_collapse_b_b2_north" } - ], - "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" }, { "point": [ 2, -1, 0 ], "terrain": "road" } ], - "city_distance": [ 0, 1 ], - "locations": [ "land" ], - "city_sizes": [ 0, 12 ], - "occurrences": [ 0, 0 ] - }, { "type": "overmap_special", "id": "LMOE Shelter", @@ -153,30 +129,32 @@ "id": "Sewage Treatment Plant", "overmaps": [ { "point": [ 0, -1, 0 ], "overmap": "road_end_north" }, - { "point": [ 0, 0, 0 ], "overmap": "s_lot" }, - { "point": [ 0, 1, 0 ], "overmap": "sewage_treatment" }, - { "point": [ 0, 1, -1 ], "overmap": "sewage_treatment_hub" }, - { "point": [ 0, 0, -1 ], "overmap": "sewage_treatment_under" }, - { "point": [ -1, 0, -1 ], "overmap": "sewage_treatment_under" }, - { "point": [ 1, 0, -1 ], "overmap": "sewage_treatment_under" }, - { "point": [ -1, 1, -1 ], "overmap": "sewage_treatment_under" }, - { "point": [ 1, 1, -1 ], "overmap": "sewage_treatment_under" }, - { "point": [ -1, 2, -1 ], "overmap": "sewage_treatment_under" }, - { "point": [ 0, 2, -1 ], "overmap": "sewage_treatment_under" }, - { "point": [ 1, 2, -1 ], "overmap": "sewage_treatment_under" } + { "point": [ 0, 0, 0 ], "overmap": "sewage_treatment_0_0_0_north" }, + { "point": [ 0, 0, 1 ], "overmap": "sewage_treatment_0_0_roof_north" }, + { "point": [ 1, 0, 0 ], "overmap": "sewage_treatment_1_0_0_north" }, + { "point": [ 1, 0, 1 ], "overmap": "sewage_treatment_1_0_roof_north" }, + { "point": [ 0, 1, 0 ], "overmap": "sewage_treatment_0_1_0_north" }, + { "point": [ 0, 1, 1 ], "overmap": "sewage_treatment_0_1_roof_north" }, + { "point": [ 1, 1, 0 ], "overmap": "sewage_treatment_1_1_0_north" }, + { "point": [ 1, 1, 1 ], "overmap": "sewage_treatment_1_1_roof_north" }, + { "point": [ 0, 0, -1 ], "overmap": "sewage_treatment_0_0_-1_north" }, + { "point": [ 1, 0, -1 ], "overmap": "sewage_treatment_1_0_-1_north" }, + { "point": [ 2, 0, -1 ], "overmap": "sewage_treatment_2_0_-1_north" }, + { "point": [ 0, 1, -1 ], "overmap": "sewage_treatment_0_1_-1_north" }, + { "point": [ 1, 1, -1 ], "overmap": "sewage_treatment_1_1_-1_north" }, + { "point": [ 2, 1, -1 ], "overmap": "sewage_treatment_2_1_-1_north" } ], + "locations": [ "land" ], "connections": [ - { "point": [ 0, -1, 0 ] }, - { "point": [ 0, -1, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 0, 0, -1 ] }, - { "point": [ 2, 1, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 1, 1, -1 ] }, - { "point": [ 0, 3, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 0, 2, -1 ] }, - { "point": [ -2, 1, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ -1, 1, -1 ] } + { "point": [ 0, -2, 0 ], "terrain": "road", "connection": "local_road", "from": [ 0, -1, 0 ] }, + { "point": [ -1, 0, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 0, 0, -1 ] }, + { "point": [ 1, -1, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 1, 0, -1 ] }, + { "point": [ 3, 0, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 2, 0, -1 ] }, + { "point": [ 1, 2, -1 ], "terrain": "sewer", "connection": "sewer_tunnel", "from": [ 1, 1, -1 ] } ], - "locations": [ "land" ], "city_distance": [ 10, 20 ], "city_sizes": [ 4, 12 ], "occurrences": [ 0, 4 ], - "rotate": false, "flags": [ "CLASSIC" ] }, { @@ -196,7 +174,7 @@ "locations": [ "wilderness" ], "city_distance": [ 10, -1 ], "city_sizes": [ 0, 20 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 4 ], "flags": [ "BEE" ], "rotate": false, "spawns": { "group": "GROUP_BEE", "population": [ 20, 60 ], "radius": [ 2, 4 ] } @@ -284,10 +262,10 @@ { "point": [ 2, 4, 0 ], "overmap": "2farm_14_north" }, { "point": [ 3, 4, 0 ], "overmap": "2farm_13_north" } ], - "connections": [ { "point": [ 1, 2, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 1, 2, 0 ], "terrain": "road", "existing": true } ], "locations": [ "wilderness" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], + "city_distance": [ 10, -1 ], + "city_sizes": [ 1, 20 ], "occurrences": [ 0, 5 ] }, { @@ -306,10 +284,10 @@ { "point": [ 0, 0, 1 ], "overmap": "farm_3_roof_north" }, { "point": [ 1, 0, 1 ], "overmap": "farm_2_roof_north" } ], - "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road", "existing": true } ], "locations": [ "wilderness" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], + "city_distance": [ 10, -1 ], + "city_sizes": [ 1, 20 ], "occurrences": [ 0, 5 ], "flags": [ "CLASSIC" ] }, @@ -330,10 +308,10 @@ { "point": [ 2, 2, 0 ], "overmap": "farm_stills_10_north" }, { "point": [ 3, 2, 0 ], "overmap": "farm_stills_9_north" } ], - "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road", "existing": true } ], "locations": [ "wilderness" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], + "city_distance": [ 10, -1 ], + "city_sizes": [ 1, 20 ], "occurrences": [ 0, 5 ], "flags": [ "CLASSIC" ] }, @@ -367,10 +345,9 @@ ], "connections": [ { "point": [ 1, 4, 0 ], "terrain": "road" } ], "locations": [ "wilderness" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], - "flags": [ "CLASSIC" ] + "city_distance": [ 10, -1 ], + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 5 ] }, { "type": "overmap_special", @@ -388,12 +365,11 @@ { "point": [ -1, -1, 0 ], "overmap": "farm_lot_wire_turn_v_open_west" }, { "point": [ 0, -1, 0 ], "overmap": "dirt_road_3way_east" } ], - "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 3 ], - "flags": [ "CLASSIC" ] + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 15 ] }, { "type": "overmap_special", @@ -411,12 +387,11 @@ { "point": [ -1, -1, 0 ], "overmap": "farm_lot_M1_east" }, { "point": [ 0, -1, 0 ], "overmap": "dirt_road_3way_east" } ], - "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 3 ], - "flags": [ "CLASSIC" ] + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 15 ] }, { "type": "overmap_special", @@ -443,12 +418,11 @@ { "point": [ 0, -2, 0 ], "overmap": "dirt_road_turn_forest_north" }, { "point": [ 0, -1, 0 ], "overmap": "dirt_road_forest_north" } ], - "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], - "flags": [ "CLASSIC" ] + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 15 ] }, { "type": "overmap_special", @@ -471,12 +445,11 @@ { "point": [ 2, 4, 0 ], "overmap": "farm_lot_wire_turn_v_west" }, { "point": [ 1, 4, 0 ], "overmap": "farm_lot_wire_turn_h_north" } ], - "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], - "flags": [ "CLASSIC" ] + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 15 ] }, { "type": "overmap_special", @@ -492,7 +465,7 @@ "locations": [ "forest", "swamp" ], "city_distance": [ 20, -1 ], "city_sizes": [ 0, 12 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 3 ], "rotate": false }, { @@ -513,7 +486,7 @@ "locations": [ "land" ], "city_distance": [ 8, -1 ], "city_sizes": [ 4, 12 ], - "occurrences": [ 1, 1 ] + "occurrences": [ 1, 30 ] }, { "type": "overmap_special", @@ -586,7 +559,7 @@ "locations": [ "land" ], "city_distance": [ 8, -1 ], "city_sizes": [ 4, 12 ], - "occurrences": [ 0, 1 ] + "occurrences": [ 0, 3 ] }, { "type": "overmap_special", @@ -807,7 +780,7 @@ "locations": [ "wilderness" ], "city_distance": [ 10, -1 ], "city_sizes": [ 0, 20 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 3 ], "flags": [ "ANT" ], "rotate": false, "spawns": { "group": "GROUP_ANT", "population": [ 1000, 2000 ], "radius": [ 10, 30 ] } @@ -819,7 +792,7 @@ "locations": [ "wilderness" ], "city_distance": [ 10, -1 ], "city_sizes": [ 0, 20 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 3 ], "flags": [ "ANT" ], "rotate": false, "spawns": { "group": "GROUP_ANT_ACID", "population": [ 800, 1600 ], "radius": [ 10, 30 ] } @@ -839,7 +812,7 @@ "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "slimepit_down" } ], "locations": [ "land", "swamp" ], "city_sizes": [ 0, 12 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 4 ], "rotate": false, "spawns": { "group": "GROUP_GOO", "population": [ 100, 200 ], "radius": [ 2, 10 ] } }, @@ -850,7 +823,7 @@ "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], "city_sizes": [ 0, 12 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 3 ], "flags": [ "FUNGAL" ], "rotate": false, "spawns": { "group": "GROUP_FUNGI", "population": [ 600, 1200 ], "radius": [ 30, 50 ] } @@ -862,7 +835,7 @@ "locations": [ "wilderness" ], "city_distance": [ 5, -1 ], "city_sizes": [ 0, 12 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 2 ], "flags": [ "FUNGAL" ], "rotate": false, "spawns": { "group": "GROUP_FUNGI_TOWER", "population": [ 125, 175 ], "radius": [ 2, 2 ] } @@ -874,7 +847,7 @@ "locations": [ "land" ], "city_distance": [ 5, -1 ], "city_sizes": [ 0, 12 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 2 ], "flags": [ "FUNGAL" ], "rotate": false, "spawns": { "group": "GROUP_FUNGI_FLOWERS", "population": [ 50, 100 ], "radius": [ 2, 4 ] } @@ -3332,10 +3305,9 @@ ], "connections": [ { "point": [ 0, 2, 0 ], "terrain": "road" } ], "locations": [ "wilderness" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], - "flags": [ "CLASSIC" ] + "city_distance": [ 5, 10 ], + "city_sizes": [ 4, 12 ], + "occurrences": [ 0, 3 ] }, { "type": "overmap_special", @@ -3612,9 +3584,9 @@ "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "TreeFarm_1a_north" }, { "point": [ 1, 0, 0 ], "overmap": "TreeFarm_1b_north" } ], "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ], "locations": [ "wilderness" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], + "city_distance": [ 1, 6 ], + "city_sizes": [ 4, 12 ], + "occurrences": [ 0, 3 ], "flags": [ "CLASSIC" ] }, { @@ -3649,6 +3621,23 @@ "occurrences": [ 0, 5 ], "flags": [ "CLASSIC" ] }, + { + "type": "overmap_special", + "id": "campground_npc", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "campground_1a_npc_north" }, + { "point": [ 1, 0, 0 ], "overmap": "campground_1b_npc_north" }, + { "point": [ 0, 1, 0 ], "overmap": "campground_2a_npc_north" }, + { "point": [ 1, 1, 0 ], "overmap": "campground_2b_npc_north" }, + { "point": [ 1, 0, 1 ], "overmap": "campground_roof_npc_north" } + ], + "connections": [ { "point": [ 1, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 1, 0, 0 ] } ], + "locations": [ "forest" ], + "city_distance": [ 10, -1 ], + "city_sizes": [ 3, 12 ], + "occurrences": [ 3, 100 ], + "flags": [ "CLASSIC" ] + }, { "type": "overmap_special", "id": "desolate barn", @@ -3774,11 +3763,11 @@ { "point": [ 0, 3, 0 ], "overmap": "house_farm_north" }, { "point": [ 0, 3, 1 ], "overmap": "house_farm_roof_north" } ], - "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "forest" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], + "city_distance": [ 5, 65 ], + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 10 ], "flags": [ "CLASSIC" ] }, { @@ -3790,11 +3779,11 @@ { "point": [ 1, 2, 0 ], "overmap": "house_farm_west" }, { "point": [ 1, 2, 1 ], "overmap": "house_farm_roof_west" } ], - "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "forest" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], + "city_distance": [ 5, 65 ], + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 10 ], "flags": [ "CLASSIC" ] }, { @@ -3808,11 +3797,11 @@ { "point": [ 1, 3, 0 ], "overmap": "house_farm_west" }, { "point": [ 1, 3, 1 ], "overmap": "house_farm_roof_west" } ], - "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road" } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "forest" ], - "city_distance": [ 5, -1 ], - "city_sizes": [ 1, -1 ], - "occurrences": [ 0, 5 ], + "city_distance": [ 5, 65 ], + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 10 ], "flags": [ "CLASSIC" ] }, { @@ -4353,57 +4342,7 @@ { "point": [ 2, 1, 0 ], "overmap": "lake_shore", "locations": [ "lake_shore" ] } ], "city_sizes": [ 1, 20 ], - "occurrences": [ 0, 5 ], - "flags": [ "LAKE" ] - }, - { - "type": "overmap_special", - "id": "Lake Cabin", - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "lake_surface" }, - { "point": [ 1, 0, 0 ], "overmap": "lake_surface" }, - { "point": [ 2, 0, 0 ], "overmap": "lake_surface" }, - { "point": [ 3, 0, 0 ], "overmap": "lake_surface" }, - { "point": [ 4, 0, 0 ], "overmap": "lake_surface" }, - { "point": [ 5, 0, 0 ], "overmap": "lake_surface" }, - { "point": [ 0, 1, 0 ], "overmap": "lake_surface" }, - { "point": [ 1, 1, 0 ], "overmap": "lake_surface" }, - { "point": [ 2, 1, 0 ], "overmap": "lake_surface" }, - { "point": [ 3, 1, 0 ], "overmap": "lake_shore" }, - { "point": [ 4, 1, 0 ], "overmap": "lake_shore" }, - { "point": [ 5, 1, 0 ], "overmap": "lake_surface" }, - { "point": [ 0, 2, 0 ], "overmap": "lake_surface" }, - { "point": [ 1, 2, 0 ], "overmap": "lake_shore" }, - { "point": [ 2, 2, 0 ], "overmap": "lake_shore" }, - { "point": [ 3, 2, 0 ], "overmap": "lake_cabin_boathouse_north" }, - { "point": [ 3, 2, 1 ], "overmap": "lake_cabin_boathouse_roof_north" }, - { "point": [ 4, 2, 0 ], "overmap": "lake_shore" }, - { "point": [ 5, 2, 0 ], "overmap": "lake_surface" }, - { "point": [ 0, 3, 0 ], "overmap": "lake_surface" }, - { "point": [ 1, 3, 0 ], "overmap": "lake_shore" }, - { "point": [ 2, 3, 0 ], "overmap": "cabin_lake_north" }, - { "point": [ 2, 3, 1 ], "overmap": "cabin_lake_roof_north" }, - { "point": [ 3, 3, 0 ], "overmap": "forest_thick" }, - { "point": [ 4, 3, 0 ], "overmap": "lake_shore" }, - { "point": [ 5, 3, 0 ], "overmap": "lake_surface" }, - { "point": [ 0, 4, 0 ], "overmap": "lake_surface" }, - { "point": [ 1, 4, 0 ], "overmap": "lake_shore" }, - { "point": [ 2, 4, 0 ], "overmap": "lake_shore" }, - { "point": [ 3, 4, 0 ], "overmap": "lake_shore" }, - { "point": [ 4, 4, 0 ], "overmap": "lake_shore" }, - { "point": [ 5, 4, 0 ], "overmap": "lake_surface" }, - { "point": [ 0, 5, 0 ], "overmap": "lake_surface" }, - { "point": [ 1, 5, 0 ], "overmap": "lake_surface" }, - { "point": [ 2, 5, 0 ], "overmap": "lake_surface" }, - { "point": [ 3, 5, 0 ], "overmap": "lake_surface" }, - { "point": [ 4, 5, 0 ], "overmap": "lake_surface" }, - { "point": [ 5, 5, 0 ], "overmap": "lake_surface" } - ], - "locations": [ "lake_surface" ], - "city_distance": [ 3, -1 ], - "city_sizes": [ 4, 12 ], - "occurrences": [ 0, 1 ], - "flags": [ "CLASSIC", "LAKE" ] + "occurrences": [ 0, 5 ] }, { "type": "overmap_special", @@ -4445,8 +4384,7 @@ ], "city_sizes": [ 4, 20 ], "occurrences": [ 0, 1 ], - "connections": [ { "point": [ 2, 4, 0 ], "terrain": "road", "connection": "local_road", "from": [ 2, 3, 0 ] } ], - "flags": [ "LAKE" ] + "connections": [ { "point": [ 2, 4, 0 ], "terrain": "road", "connection": "local_road", "from": [ 2, 3, 0 ] } ] }, { "type": "overmap_special", @@ -4460,7 +4398,7 @@ "locations": [ "wilderness", "forest", "land" ], "city_distance": [ 1, -1 ], "city_sizes": [ 0, 20 ], - "occurrences": [ 0, 1 ], + "occurrences": [ 0, 0 ], "flags": [ "CLASSIC" ], "spawns": { "group": "GROUP_MI-GO_CAMP_OM", "population": [ 50, 200 ], "radius": [ 2, 30 ] } }, @@ -4592,8 +4530,7 @@ { "point": [ 1, 4, 0 ], "overmap": "forest" }, { "point": [ 2, 4, 0 ], "overmap": "forest_thick" }, { "point": [ 3, 4, 0 ], "overmap": "forest" }, - { "point": [ 4, 4, 0 ], "overmap": "cabin_isherwood_north" }, - { "point": [ 4, 4, 1 ], "overmap": "cabin_lake_roof_north" }, + { "point": [ 4, 4, 0 ], "overmap": "cabin_north" }, { "point": [ 5, 4, 0 ], "overmap": "forest" }, { "point": [ 6, 4, 0 ], "overmap": "forest" }, { "point": [ 7, 4, 0 ], "overmap": "forest" }, @@ -4695,11 +4632,11 @@ { "point": [ 13, 7, 0 ], "overmap": "forest" }, { "point": [ 14, 7, 0 ], "overmap": "forest" }, { "point": [ 15, 7, 0 ], "overmap": "forest" }, - { "point": [ 16, 7, 0 ], "overmap": "horse_farm_isherwood_1_north" }, - { "point": [ 17, 7, 0 ], "overmap": "horse_farm_isherwood_2_north" }, - { "point": [ 18, 7, 0 ], "overmap": "horse_farm_isherwood_3_north" }, - { "point": [ 19, 7, 0 ], "overmap": "horse_farm_isherwood_4_north" }, - { "point": [ 19, 7, 1 ], "overmap": "horse_farm_isherwood_4_roof_north" }, + { "point": [ 16, 7, 0 ], "overmap": "horse_farm_1_north" }, + { "point": [ 17, 7, 0 ], "overmap": "horse_farm_2_north" }, + { "point": [ 18, 7, 0 ], "overmap": "horse_farm_3_north" }, + { "point": [ 19, 7, 0 ], "overmap": "horse_farm_4_north" }, + { "point": [ 19, 7, 1 ], "overmap": "horse_farm_4_roof_north" }, { "point": [ 20, 7, 0 ], "overmap": "field" }, { "point": [ 21, 7, 0 ], "overmap": "field" }, { "point": [ 22, 7, 0 ], "overmap": "field" }, @@ -4726,12 +4663,12 @@ { "point": [ 13, 8, 0 ], "overmap": "forest" }, { "point": [ 14, 8, 0 ], "overmap": "field" }, { "point": [ 15, 8, 0 ], "overmap": "field" }, - { "point": [ 16, 8, 0 ], "overmap": "horse_farm_isherwood_5_north" }, - { "point": [ 17, 8, 0 ], "overmap": "horse_farm_isherwood_6_north" }, - { "point": [ 18, 8, 0 ], "overmap": "horse_farm_isherwood_7_north" }, - { "point": [ 18, 8, 1 ], "overmap": "horse_farm_isherwood_7_hayloft_north" }, - { "point": [ 18, 8, 2 ], "overmap": "horse_farm_isherwood_7_roof_north" }, - { "point": [ 19, 8, 0 ], "overmap": "horse_farm_isherwood_8_north" }, + { "point": [ 16, 8, 0 ], "overmap": "horse_farm_5_north" }, + { "point": [ 17, 8, 0 ], "overmap": "horse_farm_6_north" }, + { "point": [ 18, 8, 0 ], "overmap": "horse_farm_7_north" }, + { "point": [ 18, 8, 1 ], "overmap": "horse_farm_7_hayloft_north" }, + { "point": [ 18, 8, 2 ], "overmap": "horse_farm_7_roof_north" }, + { "point": [ 19, 8, 0 ], "overmap": "horse_farm_8_north" }, { "point": [ 20, 8, 0 ], "overmap": "field" }, { "point": [ 21, 8, 0 ], "overmap": "field" }, { "point": [ 22, 8, 0 ], "overmap": "field" }, @@ -4758,12 +4695,12 @@ { "point": [ 13, 9, 0 ], "overmap": "field" }, { "point": [ 14, 9, 0 ], "overmap": "field" }, { "point": [ 15, 9, 0 ], "overmap": "field" }, - { "point": [ 16, 9, 0 ], "overmap": "horse_farm_isherwood_9_north" }, - { "point": [ 16, 9, 1 ], "overmap": "horse_farm_isherwood_9_roof_north" }, - { "point": [ 17, 9, 0 ], "overmap": "horse_farm_isherwood_10_north" }, - { "point": [ 17, 9, 1 ], "overmap": "horse_farm_isherwood_10_roof_north" }, - { "point": [ 18, 9, 0 ], "overmap": "horse_farm_isherwood_11_north" }, - { "point": [ 19, 9, 0 ], "overmap": "horse_farm_isherwood_12_north" }, + { "point": [ 16, 9, 0 ], "overmap": "horse_farm_9_north" }, + { "point": [ 16, 9, 1 ], "overmap": "horse_farm_9_roof_north" }, + { "point": [ 17, 9, 0 ], "overmap": "horse_farm_10_north" }, + { "point": [ 17, 9, 1 ], "overmap": "horse_farm_10_roof_north" }, + { "point": [ 18, 9, 0 ], "overmap": "horse_farm_11_north" }, + { "point": [ 19, 9, 0 ], "overmap": "horse_farm_12_north" }, { "point": [ 20, 9, 0 ], "overmap": "field" }, { "point": [ 21, 9, 0 ], "overmap": "field" }, { "point": [ 22, 9, 0 ], "overmap": "field" }, @@ -4790,12 +4727,12 @@ { "point": [ 13, 10, 0 ], "overmap": "field" }, { "point": [ 14, 10, 0 ], "overmap": "field" }, { "point": [ 15, 10, 0 ], "overmap": "field" }, - { "point": [ 16, 10, 0 ], "overmap": "horse_farm_isherwood_13_north" }, - { "point": [ 16, 10, 1 ], "overmap": "horse_farm_isherwood_13_2ndfloor_north" }, - { "point": [ 16, 10, 2 ], "overmap": "horse_farm_isherwood_13_roof_north" }, - { "point": [ 17, 10, 0 ], "overmap": "horse_farm_isherwood_14_north" }, - { "point": [ 18, 10, 0 ], "overmap": "horse_farm_isherwood_15_north" }, - { "point": [ 19, 10, 0 ], "overmap": "horse_farm_isherwood_16_north" }, + { "point": [ 16, 10, 0 ], "overmap": "horse_farm_13_north" }, + { "point": [ 16, 10, 1 ], "overmap": "horse_farm_13_2ndfloor_north" }, + { "point": [ 16, 10, 2 ], "overmap": "horse_farm_13_roof_north" }, + { "point": [ 17, 10, 0 ], "overmap": "horse_farm_14_north" }, + { "point": [ 18, 10, 0 ], "overmap": "horse_farm_15_north" }, + { "point": [ 19, 10, 0 ], "overmap": "horse_farm_16_north" }, { "point": [ 20, 10, 0 ], "overmap": "field" }, { "point": [ 21, 10, 0 ], "overmap": "field" }, { "point": [ 22, 10, 0 ], "overmap": "field" }, @@ -5391,125 +5328,7 @@ "locations": [ "wilderness" ], "city_distance": [ 20, -1 ], "city_sizes": [ 1, 20 ], - "occurrences": [ 0, 1 ], - "flags": [ "CLASSIC", "UNIQUE" ] - }, - { - "id": "airliner_crashed", - "type": "overmap_special", - "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "airliner_1a_north" }, - { "point": [ 1, 0, 0 ], "overmap": "airliner_2a_north" }, - { "point": [ 2, 0, 0 ], "overmap": "airliner_3a_north" }, - { "point": [ 0, 1, 0 ], "overmap": "airliner_1b_north" }, - { "point": [ 1, 1, 0 ], "overmap": "airliner_2b_north" }, - { "point": [ 2, 1, 0 ], "overmap": "airliner_3b_north" }, - { "point": [ 0, 2, 0 ], "overmap": "airliner_1c_north" }, - { "point": [ 1, 2, 0 ], "overmap": "airliner_2c_north" }, - { "point": [ 2, 2, 0 ], "overmap": "airliner_3c_north" }, - { "point": [ 0, 3, 0 ], "overmap": "airliner_1d_north" }, - { "point": [ 1, 3, 0 ], "overmap": "airliner_2d_north" }, - { "point": [ 2, 3, 0 ], "overmap": "airliner_3d_north" }, - { "point": [ 0, 4, 0 ], "overmap": "airliner_1e_north" }, - { "point": [ 1, 4, 0 ], "overmap": "airliner_2e_north" }, - { "point": [ 2, 4, 0 ], "overmap": "airliner_3e_north" }, - { "point": [ 0, 5, 0 ], "overmap": "airliner_1f_north" }, - { "point": [ 1, 5, 0 ], "overmap": "airliner_2f_north" }, - { "point": [ 2, 5, 0 ], "overmap": "airliner_3f_north" }, - { "point": [ 0, 6, 0 ], "overmap": "airliner_1g_north" }, - { "point": [ 1, 6, 0 ], "overmap": "airliner_2g_north" }, - { "point": [ 2, 6, 0 ], "overmap": "airliner_3g_north" }, - { "point": [ 0, 7, 0 ], "overmap": "airliner_1h_north" }, - { "point": [ 1, 7, 0 ], "overmap": "airliner_2h_north" }, - { "point": [ 2, 7, 0 ], "overmap": "airliner_3h_north" }, - { "point": [ 0, 8, 0 ], "overmap": "airliner_1i_north" }, - { "point": [ 1, 8, 0 ], "overmap": "airliner_2i_north" }, - { "point": [ 2, 8, 0 ], "overmap": "airliner_3i_north" }, - { "point": [ 0, 9, 0 ], "overmap": "airliner_1j_north" }, - { "point": [ 1, 9, 0 ], "overmap": "airliner_2j_north" }, - { "point": [ 2, 9, 0 ], "overmap": "airliner_3j_north" }, - { "point": [ 1, 0, 1 ], "overmap": "airliner_2a_1_north" }, - { "point": [ 1, 1, 1 ], "overmap": "airliner_2b_1_north" }, - { "point": [ 1, 2, 1 ], "overmap": "airliner_2c_1_north" }, - { "point": [ 1, 1, -1 ], "overmap": "airliner_2b_-1_north" }, - { "point": [ 1, 2, -1 ], "overmap": "airliner_2c_-1_north" } - ], - "locations": [ "wilderness" ], - "city_distance": [ 6, -1 ], - "city_sizes": [ 0, 12 ], - "occurrences": [ 0, 1 ], - "flags": [ "CLASSIC" ] - }, - { - "type": "overmap_special", - "id": "Large Campground", - "overmaps": [ - { "point": [ -4, 1, 0 ], "overmap": "forest" }, - { "point": [ -3, 1, 0 ], "overmap": "forest" }, - { "point": [ -2, 1, 0 ], "overmap": "forest" }, - { "point": [ -1, 1, 0 ], "overmap": "dirt_road_forest_north" }, - { "point": [ 0, 1, 0 ], "overmap": "forest" }, - { "point": [ 1, 1, 0 ], "overmap": "forest" }, - { "point": [ 2, 1, 0 ], "overmap": "forest" }, - { "point": [ -4, 2, 0 ], "overmap": "forest" }, - { "point": [ -3, 2, 0 ], "overmap": "forest_thick" }, - { "point": [ -2, 2, 0 ], "overmap": "forest_thick" }, - { "point": [ -1, 2, 0 ], "overmap": "dirt_road_forest_north" }, - { "point": [ 0, 2, 0 ], "overmap": "forest_thick" }, - { "point": [ 1, 2, 0 ], "overmap": "forest_thick" }, - { "point": [ 2, 2, 0 ], "overmap": "forest" }, - { "point": [ -2, 3, 0 ], "overmap": "cground_3_north" }, - { "point": [ -3, 3, 0 ], "overmap": "forest_thick" }, - { "point": [ -4, 3, 0 ], "overmap": "forest_thick" }, - { "point": [ -1, 3, 0 ], "overmap": "cground_2_north" }, - { "point": [ 0, 3, 0 ], "overmap": "cground_1_north" }, - { "point": [ 1, 3, 0 ], "overmap": "forest_thick" }, - { "point": [ 2, 3, 0 ], "overmap": "forest_thick" }, - { "point": [ -2, 4, 0 ], "overmap": "cground_6_north" }, - { "point": [ -3, 4, 0 ], "overmap": "forest_thick" }, - { "point": [ -4, 4, 0 ], "overmap": "forest_thick" }, - { "point": [ -1, 4, 0 ], "overmap": "cground_5_north" }, - { "point": [ 0, 4, 0 ], "overmap": "cground_4_north" }, - { "point": [ 1, 4, 0 ], "overmap": "forest_thick" }, - { "point": [ 2, 4, 0 ], "overmap": "forest_thick" }, - { "point": [ -2, 5, 0 ], "overmap": "cground_9_north" }, - { "point": [ -3, 5, 0 ], "overmap": "forest_thick" }, - { "point": [ -4, 5, 0 ], "overmap": "forest_thick" }, - { "point": [ -1, 5, 0 ], "overmap": "cground_8_north" }, - { "point": [ 0, 5, 0 ], "overmap": "cground_7_north" }, - { "point": [ 1, 5, 0 ], "overmap": "forest_thick" }, - { "point": [ 2, 5, 0 ], "overmap": "forest_thick" }, - { "point": [ -2, 6, 0 ], "overmap": "forest" }, - { "point": [ -3, 6, 0 ], "overmap": "forest_thick" }, - { "point": [ -4, 6, 0 ], "overmap": "forest_thick" }, - { "point": [ -1, 6, 0 ], "overmap": "forest_thick" }, - { "point": [ 0, 6, 0 ], "overmap": "forest_thick" }, - { "point": [ 1, 6, 0 ], "overmap": "forest_thick" }, - { "point": [ 2, 6, 0 ], "overmap": "forest" }, - { "point": [ -2, 7, 0 ], "overmap": "forest" }, - { "point": [ -3, 7, 0 ], "overmap": "forest" }, - { "point": [ -4, 7, 0 ], "overmap": "forest_thick" }, - { "point": [ -1, 7, 0 ], "overmap": "forest_thick" }, - { "point": [ 0, 7, 0 ], "overmap": "forest_thick" }, - { "point": [ 1, 7, 0 ], "overmap": "forest" }, - { "point": [ 2, 7, 0 ], "overmap": "forest" }, - { "point": [ -2, 3, 1 ], "overmap": "cground_3_1_north" }, - { "point": [ -1, 3, 1 ], "overmap": "cground_2_1_north" }, - { "point": [ 0, 3, 1 ], "overmap": "cground_1_1_north" }, - { "point": [ -2, 4, 1 ], "overmap": "cground_6_1_north" }, - { "point": [ -1, 4, 1 ], "overmap": "cground_5_1_north" }, - { "point": [ 0, 4, 1 ], "overmap": "cground_4_1_north" }, - { "point": [ -2, 5, 1 ], "overmap": "cground_9_1_north" }, - { "point": [ -1, 5, 1 ], "overmap": "cground_8_1_north" }, - { "point": [ 0, 5, 1 ], "overmap": "cground_7_1_north" }, - { "point": [ -1, 3, 2 ], "overmap": "cground_2_2_north" }, - { "point": [ 0, 3, 2 ], "overmap": "cground_1_2_north" } - ], - "locations": [ "forest" ], - "connections": [ { "point": [ -1, 0, 0 ], "terrain": "road", "connection": "local_road", "from": [ -1, 1, 0 ] } ], - "city_distance": [ 10, -1 ], - "city_sizes": [ 3, 20 ], "occurrences": [ 0, 0 ], - "flags": [ "UNIQUE" ] + "flags": [ "CLASSIC", "UNIQUE" ] } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain.json b/data/json/overmap/overmap_terrain/overmap_terrain.json index 4a429552276d9..21ed4a71d2dda 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain.json @@ -105,15 +105,6 @@ "extras": "build", "mondensity": 1 }, - { - "type": "overmap_terrain", - "id": "cabin_isherwood", - "name": "forest", - "sym": "C", - "color": "i_green", - "see_cost": 5, - "extras": "field" - }, { "type": "overmap_terrain", "id": "riverside_dwelling", @@ -124,42 +115,6 @@ "extras": "build", "mondensity": 1 }, - { - "type": "overmap_terrain", - "id": "cabin_lake", - "name": "forest", - "sym": "F", - "color": "green", - "see_cost": 5, - "extras": "field" - }, - { - "type": "overmap_terrain", - "id": "cabin_lake_roof", - "name": "forest", - "sym": "F", - "color": "green", - "see_cost": 5, - "extras": "field" - }, - { - "type": "overmap_terrain", - "id": "lake_cabin_boathouse", - "name": "forest", - "sym": "F", - "color": "green", - "see_cost": 5, - "extras": "field" - }, - { - "type": "overmap_terrain", - "id": "lake_cabin_boathouse_roof", - "name": "forest", - "sym": "F", - "color": "green", - "see_cost": 5, - "extras": "field" - }, { "type": "overmap_terrain", "id": "cabin_strange", @@ -837,352 +792,5 @@ "sym": "i", "color": "light_green", "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "airliner_1a", - "name": "field", - "sym": ".", - "color": "brown", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "airliner_2a", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3a", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1b", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2b", - "name": "crashed airliner", - "sym": "A", - "color": "red", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "airliner_3b", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1c", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2c", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3c", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1d", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2d", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3d", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1e", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2e", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3e", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1f", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2f", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3f", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1g", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2g", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3g", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1h", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2h", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3h", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1i", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2i", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3i", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_1j", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2j", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_3j", - "copy-from": "airliner_1a" - }, - { - "type": "overmap_terrain", - "id": "airliner_2a_1", - "name": "open air", - "sym": ".", - "color": "blue", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "airliner_2b_1", - "copy-from": "airliner_2b" - }, - { - "type": "overmap_terrain", - "id": "airliner_2c_1", - "copy-from": "airliner_2a_1" - }, - { - "type": "overmap_terrain", - "id": "airliner_2b_-1", - "copy-from": "airliner_2b" - }, - { - "type": "overmap_terrain", - "id": "airliner_2c_-1", - "name": "solid rock", - "sym": "%", - "color": "dark_gray", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_2", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_3", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_4", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_5", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_6", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_7", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_8", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_9", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_1_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_2_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_3_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_4_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_5_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_6_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_7_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_8_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_9_1", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_1_2", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 - }, - { - "type": "overmap_terrain", - "id": "cground_2_2", - "name": "campground", - "sym": "┼", - "color": "green", - "see_cost": 5 } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_agricultural.json b/data/json/overmap/overmap_terrain/overmap_terrain_agricultural.json index 4bdc894e6db2c..ebe48810c9c3a 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_agricultural.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_agricultural.json @@ -705,236 +705,6 @@ "extras": "field", "mondensity": 2 }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_1", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_2", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "build", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_3", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_4", - "name": "carriage house", - "sym": "o", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_4_roof", - "name": "carriage house roof", - "sym": "o", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_5", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_6", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_7", - "name": "horse stable", - "sym": "&", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_7_hayloft", - "name": "horse stable hayloft", - "sym": "&", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_7_roof", - "name": "horse stable roof", - "sym": "&", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_8", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_9", - "name": "green house", - "sym": "o", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_9_roof", - "name": "green house roof", - "sym": "o", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_10", - "name": "chicken coop", - "sym": "o", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_10_roof", - "name": "chicken coop roof", - "sym": "o", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_11", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_12", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_13", - "name": "farm house", - "sym": "^", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_13_2ndfloor", - "name": "farm house 2nd floor", - "sym": "^", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_13_roof", - "name": "farm house roof", - "sym": "^", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_14", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_15", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, - { - "type": "overmap_terrain", - "id": "horse_farm_isherwood_16", - "name": "farm field", - "sym": "#", - "color": "i_brown", - "see_cost": 5, - "extras": "field", - "mondensity": 2 - }, { "id": "cemetery_small", "type": "overmap_terrain", diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json index 7d5f81116552a..b0993558b30ec 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json @@ -225,126 +225,6 @@ "mondensity": 2, "flags": [ "SIDEWALK" ] }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_a0", - "name": "collapsed tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_a1", - "name": "office tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_a2", - "name": "collapsed tower", - "sym": "O", - "color": "light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b0", - "name": "collapsed tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b1", - "name": "collapsed tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b2", - "name": "collapsed tower", - "sym": "T", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b_a0", - "name": "collapsed tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b_a1", - "name": "office tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b_a2", - "name": "collapsed tower", - "sym": "t", - "color": "light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b_b0", - "name": "collapsed tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b_b1", - "name": "collapsed tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, - { - "type": "overmap_terrain", - "id": "office_tower_collapse_b_b2", - "name": "collapsed tower", - "sym": "t", - "color": "i_light_gray", - "see_cost": 5, - "mondensity": 2, - "flags": [ "SIDEWALK" ] - }, { "type": "overmap_terrain", "id": "office_tower_2_a1_tower_lab", @@ -2713,21 +2593,5 @@ "name": "empty commercial lot", "sym": "O", "color": "i_light_gray" - }, - { - "type": "overmap_terrain", - "id": "s_hunting", - "copy-from": "generic_city_building", - "name": "hunting supply store", - "sym": "H", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "s_hunting_roof", - "copy-from": "generic_city_building", - "name": "hunting supply store roof", - "sym": "H", - "color": "brown" } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_waste_junk.json b/data/json/overmap/overmap_terrain/overmap_terrain_waste_junk.json index cf22e7af95310..e6aa754827fdc 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_waste_junk.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_waste_junk.json @@ -1,31 +1,95 @@ [ { "type": "overmap_terrain", - "id": "sewage_treatment", - "name": "sewage treatment", + "id": "sewage_treatment_0_0_0", + "name": "sewage treatment plant", "sym": "P", "color": "red", "see_cost": 5, - "flags": [ "KNOWN_DOWN", "NO_ROTATE" ] + "flags": [ "KNOWN_DOWN" ] + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_0_0_roof", + "name": "open air", + "sym": ".", + "color": "blue", + "see_cost": 5 }, { "type": "overmap_terrain", - "id": "sewage_treatment_hub", - "name": "sewage treatment", + "id": "sewage_treatment_1_0_0", + "copy-from": "sewage_treatment_0_0_0" + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_1_0_roof", + "name": "sewage treatment plant roof", "sym": "P", - "color": "green", + "color": "red", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_0_1_0", + "name": "sewage treatment plant", + "sym": "O", + "color": "blue", "see_cost": 5, - "extras": "build", - "flags": [ "KNOWN_UP", "NO_ROTATE" ] + "flags": [ "KNOWN_DOWN" ] + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_0_1_roof", + "name": "sewage treatment plant roof", + "sym": "O", + "color": "blue", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_1_1_0", + "copy-from": "sewage_treatment_0_0_0" + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_1_1_roof", + "copy-from": "sewage_treatment_1_0_roof" }, { "type": "overmap_terrain", - "id": "sewage_treatment_under", - "name": "sewage treatment", + "id": "sewage_treatment_0_0_-1", + "name": "sewage treatment plant - underground", "sym": "P", "color": "green", "see_cost": 5, - "flags": [ "NO_ROTATE" ] + "extras": "build", + "flags": [ "KNOWN_UP" ] + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_1_0_-1", + "copy-from": "sewage_treatment_0_0_-1" + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_2_0_-1", + "copy-from": "sewage_treatment_0_0_-1" + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_0_1_-1", + "copy-from": "sewage_treatment_0_0_-1" + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_1_1_-1", + "copy-from": "sewage_treatment_0_0_-1" + }, + { + "type": "overmap_terrain", + "id": "sewage_treatment_2_1_-1", + "copy-from": "sewage_treatment_0_0_-1" }, { "type": "overmap_terrain", diff --git a/data/json/player_activities.json b/data/json/player_activities.json index 2a8f3425b5eb1..69245d5524d92 100644 --- a/data/json/player_activities.json +++ b/data/json/player_activities.json @@ -518,14 +518,6 @@ "verb": "chopping down", "based_on": "speed" }, - { - "id": "ACT_CHOP_PLANKS", - "type": "activity_type", - "activity_level": "ACTIVE_EXERCISE", - "verb": "cutting planks", - "based_on": "speed", - "no_resume": true - }, { "id": "ACT_JACKHAMMER", "type": "activity_type", diff --git a/data/json/professions.json b/data/json/professions.json index 6b3e17f1c2ea8..8bd2b8d12ed64 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -1005,7 +1005,7 @@ "items": [ "pants", "dress_shirt", - "tie_skinny", + "skinny_tie", "waistcoat", "trenchcoat", "badge_detective", @@ -2131,7 +2131,7 @@ "both": { "items": [ "dress_shirt", - "tie_skinny", + "skinny_tie", "sunglasses", "pants", "socks", @@ -2398,7 +2398,7 @@ "items": { "both": [ "suit", - "tie_necktie", + "skinny_tie", "tieclip", "socks", "dress_shoes", @@ -2425,7 +2425,7 @@ "both": { "items": [ "suit", - "tie_skinny", + "skinny_tie", "tieclip", "socks", "dress_shoes", @@ -3398,7 +3398,7 @@ "pants", "socks", "dress_shoes", - "tie_clipon", + "skinny_tie", "tieclip", "fancy_sunglasses", "knit_scarf", @@ -3485,7 +3485,7 @@ "pants", "socks", "dress_shoes", - "tie_skinny", + "skinny_tie", "tieclip", "poetry_book", "permanent_marker", @@ -3842,7 +3842,7 @@ "smart_phone", "gold_watch", "briefcase", - "tie_skinny", + "skinny_tie", "file", "ref_lighter", "cigar" diff --git a/data/json/recipes/ammo/components.json b/data/json/recipes/ammo/components.json index 2a7d7cd96096e..c27d89b2192a3 100644 --- a/data/json/recipes/ammo/components.json +++ b/data/json/recipes/ammo/components.json @@ -10,7 +10,7 @@ "book_learn": [ [ "textbook_chemistry", 4 ], [ "recipe_bullets", 3 ], [ "textbook_anarch", 0 ] ], "using": [ [ "surface_heat", 25 ] ], "qualities": [ { "id": "CHEM", "level": 1 } ], - "components": [ [ [ "magnesium", 100 ], [ "chem_aluminium_powder", 100 ] ], [ [ "oxy_powder", 200 ] ] ] + "components": [ [ [ "magnesium", 100 ] ], [ [ "oxy_powder", 200 ] ] ] }, { "type": "recipe", @@ -41,20 +41,5 @@ "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "DRILL", "level": 2 } ], "tools": [ [ [ "press", -1 ] ], [ [ "cordless_drill", 2 ] ] ], "components": [ [ [ "223_casing", 1 ] ] ] - }, - { - "type": "recipe", - "result": "300blk_casing", - "category": "CC_AMMO", - "subcategory": "CSC_AMMO_COMPONENTS", - "skill_used": "fabrication", - "difficulty": 2, - "skills_required": [ "gun", 4 ], - "time": "2 m", - "batch_time_factors": [ 60, 5 ], - "book_learn": [ [ "manual_rifle", 5 ], [ "recipe_bullets", 3 ] ], - "qualities": [ { "id": "SAW_M", "level": 1 } ], - "tools": [ [ [ "press", -1 ] ] ], - "components": [ [ [ "223_casing", 1 ] ] ] } ] diff --git a/data/json/recipes/ammo/shot.json b/data/json/recipes/ammo/shot.json index c1f325237e490..aacbf0c50796d 100644 --- a/data/json/recipes/ammo/shot.json +++ b/data/json/recipes/ammo/shot.json @@ -61,7 +61,7 @@ "charges": 1, "using": [ [ "ammo_shot", 1 ] ], "tools": [ [ [ "press", -1 ] ] ], - "components": [ [ [ "gunpowder", 3 ] ], [ [ "magnesium", 5 ] ] ] + "components": [ [ [ "gunpowder", 3 ], [ "chem_black_powder", 3 ] ], [ [ "magnesium", 5 ] ] ] }, { "result": "reloaded_shot_flechette", @@ -128,23 +128,6 @@ "using": [ [ "bullet_forming", 1 ], [ "ammo_bullet", 10 ], [ "ammo_shot", 1 ] ], "components": [ [ [ "chem_black_powder", 3 ] ] ] }, - { - "result": "bp_shot_dragon", - "type": "recipe", - "category": "CC_AMMO", - "subcategory": "CSC_AMMO_SHOT", - "skill_used": "fabrication", - "difficulty": 2, - "skills_required": [ "gun", 1 ], - "time": 2000, - "batch_time_factors": [ 60, 5 ], - "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_shotgun", 3 ] ], - "charges": 1, - "reversible": true, - "using": [ [ "ammo_shot", 1 ] ], - "tools": [ [ [ "press", -1 ] ] ], - "components": [ [ [ "chem_black_powder", 3 ] ], [ [ "magnesium", 5 ] ] ] - }, { "result": "bp_shot_flechette", "type": "recipe", diff --git a/data/json/recipes/ammo/weldgas.json b/data/json/recipes/ammo/weldgas.json deleted file mode 100644 index bf2243904d22d..0000000000000 --- a/data/json/recipes/ammo/weldgas.json +++ /dev/null @@ -1,52 +0,0 @@ -[ - { - "result": "oxyacetylene", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_OTHER", - "skill_used": "cooking", - "difficulty": 4, - "time": "45 m", - "charges": 120, - "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_gaswarfare", 5 ], [ "atomic_survival", 3 ] ], - "qualities": [ { "id": "PRESSURIZATION", "level": 1 } ], - "components": [ [ [ "oxygen", 24 ] ], [ [ "acetylene", 96 ] ] ] - }, - { - "result": "acetylene", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_OTHER", - "skill_used": "cooking", - "difficulty": 4, - "time": "60 m", - "charges": 12, - "book_learn": [ [ "textbook_chemistry", 4 ], [ "textbook_gaswarfare", 5 ], [ "atomic_survival", 3 ] ], - "tools": [ [ [ "acetylene_machine", -1 ] ] ], - "components": [ [ [ "water", 12 ], [ "water_clean", 12 ] ], [ [ "chem_carbide", 48 ] ] ] - }, - { - "result": "tinyweldtank", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_OTHER", - "skill_used": "fabrication", - "difficulty": 2, - "time": "20 m", - "book_learn": [ [ "welding_book", 2 ] ], - "qualities": [ { "id": "PRESSURIZATION", "level": 1 } ], - "components": [ [ [ "tinyweldtank", 1 ] ], [ [ "oxyacetylene", 60 ] ] ] - }, - { - "result": "weldtank", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_OTHER", - "skill_used": "fabrication", - "difficulty": 2, - "time": "90 m", - "book_learn": [ [ "welding_book", 2 ] ], - "qualities": [ { "id": "PRESSURIZATION", "level": 1 } ], - "components": [ [ [ "weldtank", 1 ] ], [ [ "oxyacetylene", 240 ] ] ] - } -] diff --git a/data/json/recipes/armor/other.json b/data/json/recipes/armor/other.json index ecaa1e4ea3bc1..be0feff85291f 100644 --- a/data/json/recipes/armor/other.json +++ b/data/json/recipes/armor/other.json @@ -25,7 +25,7 @@ "components": [ [ [ "rag", 35 ] ], [ [ "plastic_chunk", 4 ] ], [ [ "element", 8 ] ], [ [ "cable", 10 ] ], [ [ "amplifier", 1 ] ] ] }, { - "result": "gold_ring", + "result": "ring", "type": "recipe", "category": "CC_ARMOR", "subcategory": "CSC_ARMOR_OTHER", diff --git a/data/json/recipes/armor/storage.json b/data/json/recipes/armor/storage.json index 94e6505f2da11..0133b9d1aabf5 100644 --- a/data/json/recipes/armor/storage.json +++ b/data/json/recipes/armor/storage.json @@ -825,71 +825,5 @@ "autolearn": true, "using": [ [ "sewing_standard", 20 ] ], "components": [ [ [ "rag", 6 ] ] ] - }, - { - "result": "bigback", - "type": "recipe", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_STORAGE", - "skill_used": "tailor", - "difficulty": 5, - "time": "250 m", - "autolearn": true, - "using": [ [ "sewing_standard", 150 ] ], - "qualities": [ { "id": "HAMMER", "level": 2 } ], - "components": [ - [ [ "leather", 20 ], [ "tanned_hide", 4 ] ], - [ [ "sheet_metal_small", 8 ] ], - [ [ "cordage", 2, "LIST" ] ], - [ [ "leather_pouch", 2 ] ] - ] - }, - { - "result": "travelpack", - "type": "recipe", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_STORAGE", - "skill_used": "tailor", - "difficulty": 3, - "time": "90 m", - "autolearn": true, - "using": [ [ "sewing_standard", 40 ] ], - "components": [ [ [ "rag", 5 ] ], [ [ "cordage", 1, "LIST" ] ] ] - }, - { - "result": "petpack", - "type": "recipe", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_STORAGE", - "skill_used": "tailor", - "difficulty": 3, - "time": "100 m", - "autolearn": true, - "using": [ [ "sewing_standard", 100 ] ], - "components": [ [ [ "rag", 5 ] ], [ [ "plastic_chunk", 8 ] ] ] - }, - { - "result": "backpack_tactical_large", - "type": "recipe", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_STORAGE", - "skill_used": "tailor", - "difficulty": 4, - "time": "160 m", - "autolearn": true, - "using": [ [ "sewing_standard", 100 ] ], - "components": [ [ [ "leather", 5 ], [ "tanned_pelt", 1 ] ], [ [ "cordage", 1, "LIST" ] ] ] - }, - { - "result": "backpack_hiking", - "type": "recipe", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_STORAGE", - "skill_used": "tailor", - "difficulty": 4, - "time": "180 m", - "autolearn": true, - "using": [ [ "sewing_standard", 100 ] ], - "components": [ [ [ "leather", 5 ], [ "tanned_pelt", 1 ] ], [ [ "cordage", 1, "LIST" ] ] ] } ] diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index d4349b0c63bc6..ed868b89da3b8 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -11,11 +11,7 @@ "book_learn": [ [ "tailor_portfolio", 7 ], [ "textbook_tailor", 8 ], [ "textbook_fireman", 6 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "welder", 112 ], [ "welder_crude", 168 ], [ "soldering_iron", 168 ], [ "toolset", 168 ] ] ], - "components": [ - [ [ "cleansuit", 1 ] ], - [ [ "duct_tape", 600 ] ], - [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] - ] + "components": [ [ [ "cleansuit", 1 ] ], [ [ "duct_tape", 600 ] ], [ [ "kevlar", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] ] }, { "result": "anbc_suit", @@ -29,11 +25,7 @@ "book_learn": [ [ "tailor_portfolio", 7 ], [ "textbook_fireman", 7 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], "tools": [ [ [ "welder", 112 ], [ "welder_crude", 168 ], [ "soldering_iron", 168 ], [ "toolset", 168 ] ] ], - "components": [ - [ [ "hazmat_suit", 1 ] ], - [ [ "duct_tape", 800 ] ], - [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] - ] + "components": [ [ [ "hazmat_suit", 1 ] ], [ [ "duct_tape", 800 ] ], [ [ "kevlar", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] ] }, { "result": "armor_blarmor", diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json index d76363774f895..f306e36ae2098 100644 --- a/data/json/recipes/armor/torso.json +++ b/data/json/recipes/armor/torso.json @@ -15,7 +15,7 @@ "result": "armor_lamellar", "type": "recipe", "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_TORSO", + "subcategory": "CSC_ARMOR_SUIT", "skill_used": "tailor", "difficulty": 3, "time": "240 m", @@ -411,19 +411,6 @@ "using": [ [ "sewing_standard", 15 ] ], "components": [ [ [ "rag", 10 ] ] ] }, - { - "result": "long_undertop_sleeveless", - "type": "recipe", - "id_suffix": "cutting", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_TORSO", - "skill_used": "tailor", - "time": "6 m", - "autolearn": true, - "byproducts": [ [ "rag", 2 ] ], - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "long_undertop", 1 ] ] ] - }, { "result": "longshirt", "type": "recipe", @@ -616,7 +603,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 2, + "time": "21 m", "autolearn": true, "byproducts": [ [ "rag", 5 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -657,7 +645,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 2, + "time": "100 m", "autolearn": true, "byproducts": [ [ "fur", 6 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -671,7 +660,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 2, + "time": "100 m", "autolearn": true, "byproducts": [ [ "faux_fur", 6 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -699,7 +689,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 5, + "time": "100 m", "autolearn": true, "byproducts": [ [ "leather", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -713,7 +704,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 5, + "time": "35 m", "autolearn": true, "byproducts": [ [ "rag", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -758,7 +750,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 2, + "time": "21 m", "autolearn": true, "byproducts": [ [ "rag", 2 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -785,7 +778,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 2, + "time": "100 m", "autolearn": true, "byproducts": [ [ "fur", 2 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -799,7 +793,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 2, + "time": "100 m", "autolearn": true, "byproducts": [ [ "faux_fur", 2 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -840,7 +835,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 5, + "time": "100 m", "autolearn": true, "byproducts": [ [ "leather", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -899,7 +895,8 @@ "subcategory": "CSC_ARMOR_TORSO", "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", "skill_used": "tailor", - "time": "6 m", + "difficulty": 5, + "time": "35 m", "autolearn": true, "byproducts": [ [ "rag", 4 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -912,7 +909,8 @@ "category": "CC_ARMOR", "subcategory": "CSC_ARMOR_TORSO", "skill_used": "tailor", - "time": "6 m", + "difficulty": 2, + "time": "21 m", "autolearn": true, "byproducts": [ [ "rag", 2 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], @@ -1130,7 +1128,7 @@ "category": "CC_ARMOR", "subcategory": "CSC_ARMOR_TORSO", "skill_used": "tailor", - "time": "6 m", + "time": "20 m", "autolearn": true, "byproducts": [ [ "leather", 5 ] ], "qualities": [ { "id": "CUT", "level": 1 } ], diff --git a/data/json/recipes/basecamps/recipe_groups.json b/data/json/recipes/basecamps/recipe_groups.json index 326956169e9ac..4b3cb5c32f209 100644 --- a/data/json/recipes/basecamps/recipe_groups.json +++ b/data/json/recipes/basecamps/recipe_groups.json @@ -152,7 +152,7 @@ { "id": "chain", "description": " Craft: Chain" }, { "id": "shovel", "description": " Craft: Shovel" }, { "id": "rebar", "description": " Craft: Rebar" }, - { "id": "gold_ring", "description": " Craft: Gold Ring" }, + { "id": "ring", "description": " Craft: Golden Ring" }, { "id": "hammer_sledge", "description": " Craft: Hammer, Sledge" } ] }, diff --git a/data/json/recipes/chem/mutagens.json b/data/json/recipes/chem/mutagens.json index 7832355f5a038..22251e7149695 100644 --- a/data/json/recipes/chem/mutagens.json +++ b/data/json/recipes/chem/mutagens.json @@ -16,7 +16,8 @@ [ "recipe_serum", 7 ], [ "recipe_labchem", 7 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "tallow_tainted", 2 ], @@ -57,7 +58,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_labchem", 9 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -72,7 +74,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_creepy", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "veggy", 3 ], [ "biollante_bud", 1 ], [ "datura_seed", 16 ] ], @@ -91,7 +94,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_plant", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -106,7 +110,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_maiar", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "honey_bottled", 3 ], [ "honeycomb", 3 ], [ "bee_sting", 3 ], [ "wasp_sting", 3 ] ], @@ -125,7 +130,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_insect", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -140,7 +146,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_maiar", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "spider_egg", 1 ], [ "chitin_piece", 4 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -155,7 +162,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_spider", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -170,7 +178,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_maiar", 8 ], [ "recipe_creepy", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "sewage", 3 ], [ "slime_scrap", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -185,7 +194,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ], [ "recipe_creepy", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_slime", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -200,7 +210,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "fish", 2 ], [ "can_sardine", 1 ], [ "can_tuna", 1 ], [ "can_salmon", 1 ], [ "can_herring", 1 ] ], @@ -219,7 +230,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_fish", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -234,7 +246,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_creepy", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat_tainted", 3 ], [ "dry_meat_tainted", 3 ] ], @@ -253,7 +266,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_rat", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -268,7 +282,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 7 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -283,7 +298,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_beast", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -298,7 +314,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -313,7 +330,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_ursine", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -328,7 +346,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 1 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -343,7 +362,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_mouse", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -358,7 +378,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -373,7 +394,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_feline", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -388,7 +410,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -403,7 +426,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_lupine", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -418,7 +442,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -433,7 +458,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_cattle", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -448,7 +474,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_creepy", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat_tainted", 3 ], [ "dry_meat_tainted", 3 ], [ "can_chowder", 1 ], [ "can_clams", 1 ] ], @@ -467,7 +494,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_creepy", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_cephalopod", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -482,7 +510,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "eggs_bird", 1, "LIST" ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -497,7 +526,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_bird", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -512,7 +542,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_animal", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "egg_reptile", 1 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -527,7 +558,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_animal", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_lizard", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -542,7 +574,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_maiar", 8 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ [ "meat", 3 ] ], [ [ "ammonia", 1 ], [ "lye_powder", 100 ] ] ], "flags": [ "SECRET" ] }, @@ -557,7 +590,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 8 ], [ "recipe_maiar", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_troglobite", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -572,7 +606,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "recipe_medicalmut", 9 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "mutagen", 1 ] ], [ @@ -613,7 +648,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_medicalmut", 9 ], [ "recipe_serum", 9 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_medical", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -628,7 +664,8 @@ "time": "45 m", "batch_time_factors": [ 80, 20 ], "book_learn": [ [ "record_patient", 9 ], [ "recipe_maiar", 8 ], [ "recipe_labchem", 7 ] ], - "using": [ [ "mutagen_production_standard", 25 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], "components": [ [ [ "royal_jelly", 4 ], [ "mutagen", 2 ] ], [ [ "bleach", 3 ], [ "oxy_powder", 300 ] ], @@ -647,7 +684,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_serum", 9 ], [ "recipe_labchem", 9 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "purifier", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -661,7 +699,8 @@ "difficulty": 10, "time": "20 m", "book_learn": [ [ "recipe_alpha", 9 ] ], - "using": [ [ "mutagen_production_standard", 50 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 50, "LIST" ] ] ], "components": [ [ [ "mutagen_slime", 2 ], [ "iv_mutagen_slime", 1 ] ], [ [ "mutagen_plant", 2 ], [ "iv_mutagen_plant", 1 ] ], @@ -681,7 +720,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_alpha", 9 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_alpha", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -695,7 +735,8 @@ "difficulty": 10, "time": "12 m", "book_learn": [ [ "recipe_elfa", 10 ] ], - "using": [ [ "mutagen_production_standard", 31 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 31, "LIST" ] ] ], "components": [ [ [ "mutagen_slime", 2 ], [ "iv_mutagen_slime", 1 ] ], [ [ "mutagen_plant", 1 ] ], [ [ "mutagen_bird", 1 ] ] ], "flags": [ "SECRET" ] }, @@ -710,7 +751,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_elfa", 10 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_elfa", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -725,7 +767,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_chimera", 9 ] ], - "using": [ [ "mutagen_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_lizard", 1 ] ], [ [ "mutagen_bird", 1 ] ], [ [ "mutagen_beast", 1 ] ], [ [ "mutagen_cattle", 1 ] ] ], "flags": [ "SECRET" ] }, @@ -740,7 +783,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_chimera", 8 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_chimera", 2 ] ] ], "flags": [ "SECRET" ] }, @@ -754,7 +798,8 @@ "difficulty": 10, "time": "12 m", "book_learn": [ [ "recipe_raptor", 9 ] ], - "using": [ [ "mutagen_production_standard", 31 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], + "tools": [ [ [ "surface_heat", 31, "LIST" ] ] ], "components": [ [ [ "mutagen_lizard", 1 ] ], [ [ "mutagen_bird", 1 ] ], [ [ "purifier", 1 ] ] ], "flags": [ "SECRET" ] }, @@ -769,7 +814,8 @@ "time": "2 h", "batch_time_factors": [ 20, 5 ], "book_learn": [ [ "recipe_raptor", 9 ] ], - "using": [ [ "serum_production_standard", 37 ] ], + "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], + "tools": [ [ [ "surface_heat", 37, "LIST" ] ] ], "components": [ [ [ "mutagen_raptor", 2 ] ] ], "flags": [ "SECRET" ] } diff --git a/data/json/recipes/electronics/toolmod.json b/data/json/recipes/electronics/toolmod.json index bf9d4dd1cd56f..affcf0ec78025 100644 --- a/data/json/recipes/electronics/toolmod.json +++ b/data/json/recipes/electronics/toolmod.json @@ -19,7 +19,7 @@ ], "using": [ [ "soldering_standard", 24 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ [ [ "power_supply", 1 ] ], [ [ "scrap", 4 ] ], [ [ "cable", 10 ] ] ] + "components": [ [ [ "power_supply", 1 ] ], [ [ "small_storage_battery", 1 ] ], [ [ "scrap", 4 ] ], [ [ "cable", 10 ] ] ] }, { "result": "double_plutonium_core", diff --git a/data/json/recipes/food/dry.json b/data/json/recipes/food/dry.json index 5d3b5371815d1..e0e74feab9cfe 100644 --- a/data/json/recipes/food/dry.json +++ b/data/json/recipes/food/dry.json @@ -226,7 +226,34 @@ "autolearn": true, "batch_time_factors": [ 67, 5 ], "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], - "components": [ [ [ "veggy_any_uncooked", 1, "LIST" ], [ "dandelion_cooked", 1 ], [ "wild_herbs", 40 ] ] ] + "components": [ + [ + [ "broccoli", 1 ], + [ "irradiated_broccoli", 1 ], + [ "tomato", 1 ], + [ "irradiated_tomato", 1 ], + [ "pumpkin", 1 ], + [ "irradiated_pumpkin", 1 ], + [ "zucchini", 1 ], + [ "irradiated_zucchini", 1 ], + [ "celery", 1 ], + [ "irradiated_celery", 1 ], + [ "potato", 1 ], + [ "irradiated_potato", 1 ], + [ "onion", 1 ], + [ "irradiated_onion", 1 ], + [ "carrot", 1 ], + [ "irradiated_carrot", 2 ], + [ "cabbage", 1 ], + [ "irradiated_cabbage", 1 ], + [ "lettuce", 1 ], + [ "irradiated_lettuce", 1 ], + [ "veggy", 1 ], + [ "veggy_wild", 1 ], + [ "dandelion_cooked", 1 ], + [ "wild_herbs", 40 ] + ] + ] }, { "type": "recipe", @@ -240,7 +267,34 @@ "autolearn": true, "batch_time_factors": [ 67, 5 ], "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ], [ [ "surface_heat", 5, "LIST" ] ] ], - "components": [ [ [ "veggy_any_uncooked", 1, "LIST" ], [ "dandelion_cooked", 1 ], [ "wild_herbs", 40 ] ] ] + "components": [ + [ + [ "broccoli", 1 ], + [ "irradiated_broccoli", 1 ], + [ "tomato", 1 ], + [ "irradiated_tomato", 1 ], + [ "pumpkin", 1 ], + [ "irradiated_pumpkin", 1 ], + [ "zucchini", 1 ], + [ "irradiated_zucchini", 1 ], + [ "celery", 1 ], + [ "irradiated_celery", 1 ], + [ "potato", 1 ], + [ "irradiated_potato", 1 ], + [ "onion", 1 ], + [ "irradiated_onion", 1 ], + [ "carrot", 1 ], + [ "irradiated_carrot", 2 ], + [ "cabbage", 1 ], + [ "irradiated_cabbage", 1 ], + [ "lettuce", 1 ], + [ "irradiated_lettuce", 1 ], + [ "veggy", 1 ], + [ "veggy_wild", 1 ], + [ "dandelion_cooked", 1 ], + [ "wild_herbs", 40 ] + ] + ] }, { "result": "dry_veggy_tainted", diff --git a/data/json/recipes/other/materials.json b/data/json/recipes/other/materials.json index 9642f969ebe58..c52e7bde3a0a8 100644 --- a/data/json/recipes/other/materials.json +++ b/data/json/recipes/other/materials.json @@ -64,6 +64,6 @@ "time": "30 m", "batch_time_factors": [ 50, 2 ], "tools": [ [ [ "electrolysis_kit", 100 ] ], [ [ "jar_glass", -1 ], [ "jar_3l_glass", -1 ] ] ], - "components": [ [ [ "acid", 1 ] ], [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "tin_plate", 1 ], [ "tin_cup", 1 ] ] ] + "components": [ [ [ "acid", 1 ] ], [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "can_food_unsealed", 1 ] ] ] } ] diff --git a/data/json/recipes/other/tool.json b/data/json/recipes/other/tool.json index 49c99d4f997f9..dbb03846875f3 100644 --- a/data/json/recipes/other/tool.json +++ b/data/json/recipes/other/tool.json @@ -271,108 +271,5 @@ "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "forge", 100 ], [ "oxy_torch", 20 ] ] ], "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ] ] - }, - { - "result": "crowbar", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "difficulty": 3, - "time": "120 m", - "autolearn": true, - "using": [ [ "forging_standard", 8 ], [ "steel_standard", 2 ] ], - "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] - }, - { - "result": "halligan", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "difficulty": 8, - "time": "420 m", - "book_learn": [ [ "textbook_fireman", 8 ] ], - "using": [ [ "forging_standard", 20 ], [ "steel_standard", 3 ] ], - "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] - }, - { - "result": "claw_bar", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "difficulty": 3, - "time": "100 m", - "autolearn": true, - "using": [ [ "forging_standard", 6 ], [ "steel_standard", 2 ] ], - "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] - }, - { - "result": "iceaxe", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "difficulty": 5, - "time": "240 m", - "autolearn": true, - "using": [ [ "forging_standard", 8 ] ], - "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], - "components": [ - [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 20 ] ], - [ [ "filament", 100, "LIST" ] ], - [ [ "rag", 2 ], [ "felt_patch", 2 ], [ "leather", 2 ], [ "fur", 2 ] ] - ] - }, - { - "result": "makeshift_crowbar", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "time": "1 m", - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "pipe", 1 ] ] ] - }, - { - "result": "torch", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "time": "2 m", - "autolearn": true, - "components": [ - [ [ "rag", 1 ] ], - [ [ "stick", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ], [ "torch_done", 1 ] ], - [ - [ "lamp_oil", 50 ], - [ "chem_ethanol", 100 ], - [ "denat_alcohol", 100 ], - [ "gasoline", 250 ], - [ "diesel", 250 ] - ] - ], - "flags": [ "BLIND_HARD" ] - }, - { - "type": "recipe", - "result": "torch", - "id_suffix": "pine", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "survival", - "time": "3 m", - "autolearn": true, - "batch_time_factors": [ 50, 5 ], - "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], - "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], - "components": [ [ [ "stick", 1 ], [ "2x4", 1 ], [ "splinter", 1 ], [ "pool_cue", 1 ], [ "torch_done", 1 ] ], [ [ "pine_bough", 2 ] ] ] } ] diff --git a/data/json/recipes/recipe_ammo.json b/data/json/recipes/recipe_ammo.json index 97d19837bf2fe..81701ca0b6776 100644 --- a/data/json/recipes/recipe_ammo.json +++ b/data/json/recipes/recipe_ammo.json @@ -873,36 +873,6 @@ [ [ "lye_powder", 15 ] ] ] }, - { - "type": "recipe", - "result": "gelled_gasoline", - "category": "CC_AMMO", - "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", - "difficulty": 2, - "time": "20 m", - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "CUT", "level": 1 } ], - "book_learn": [ [ "textbook_gaswarfare", 2 ], [ "textbook_anarch", 2, "Stuff THE MAN doesn't want you to know" ] ], - "components": [ [ [ "gasoline", 100 ] ], [ [ "plastic_chunk", 1 ] ] ] - }, - { - "type": "recipe", - "result": "flamethrower_fuel", - "category": "CC_AMMO", - "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", - "difficulty": 2, - "time": "3 m", - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "CONTAIN", "level": 1 } ], - "book_learn": [ - [ "textbook_gaswarfare", 2 ], - [ "textbook_anarch", 2, "Stuff THE MAN doesn't want you to know" ], - [ "manual_launcher", 2 ] - ], - "components": [ [ [ "gasoline", 125 ], [ "diesel", 125 ] ] ] - }, { "type": "recipe", "result": "spiked_rocket", @@ -969,20 +939,6 @@ "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], "components": [ [ [ "fungicide", 50 ] ], [ [ "chem_sulphur", 10 ] ] ] }, - { - "type": "recipe", - "result": "gas_insecticidal", - "category": "CC_AMMO", - "subcategory": "CSC_AMMO_OTHER", - "skill_used": "cooking", - "skills_required": [ "survival", 2 ], - "difficulty": 4, - "time": "8 m", - "book_learn": [ [ "textbook_gaswarfare", 4 ], [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 1 } ], - "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], - "components": [ [ [ "insecticide", 50 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] - }, { "type": "recipe", "result": "gas_chloramine", @@ -1029,17 +985,5 @@ [ "willowbark", 1 ] ] ] - }, - { - "type": "recipe", - "result": "cac2powder", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "fabrication", - "difficulty": 2, - "time": "60 m", - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "coal_lump", 30 ] ], [ [ "material_quicklime", 44 ] ] ] } ] diff --git a/data/json/recipes/recipe_deconstruction.json b/data/json/recipes/recipe_deconstruction.json index d2ad10c614974..d68bc3e2b56df 100644 --- a/data/json/recipes/recipe_deconstruction.json +++ b/data/json/recipes/recipe_deconstruction.json @@ -1,270 +1,4 @@ [ - { - "result": "bead_bracelet", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "splinter", 1 ] ] ] - }, - { - "result": "bead_ear", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "splinter", 1 ] ] ] - }, - { - "result": "bead_necklace", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "splinter", 1 ] ] ] - }, - { - "result": "bracelet_friendship", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "splinter", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] - }, - { - "result": "bronze_medal", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "scrap", 1 ] ] ] - }, - { - "result": "copper_hairpin", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "copper", 3 ] ] ] - }, - { - "result": "copper_locket", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "copper", 4 ] ] ] - }, - { - "result": "copper_necklace", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "copper", 4 ] ] ] - }, - { - "result": "copper_ring", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "copper", 3 ] ] ] - }, - { - "result": "cufflinks", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "silver_small", 3 ] ] ] - }, - { - "result": "cufflinks_intricate", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "silver_small", 2 ] ], [ [ "gold_small", 2 ] ] ] - }, - { - "result": "ear_spool", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "plastic_chunk", 1 ] ] ] - }, - { - "result": "gold_hairpin", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "gold_small", 3 ] ] ] - }, - { - "result": "gold_locket", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "gold_small", 4 ] ] ] - }, - { - "result": "gold_medal", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "gold_small", 3 ] ] ] - }, - { - "result": "gold_necklace", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "gold_small", 3 ] ] ] - }, - { - "result": "silver_watch", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "silver_small", 3 ] ] ] - }, - { - "result": "holy_symbol_wood", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "splinter", 1 ] ] ] - }, - { - "result": "ring_engagement", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "gold_small", 3 ] ], [ [ "diamond", 1 ] ] ] - }, - { - "result": "ring_purity", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "silver_small", 3 ] ] ] - }, - { - "result": "ring_signet", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "gold_small", 2 ] ], [ [ "silver_small", 2 ] ] ] - }, - { - "result": "ring_wedding", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "gold_small", 2 ] ], [ [ "diamond", 2 ] ] ] - }, - { - "result": "silver_hairpin", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "silver_small", 3 ] ] ] - }, - { - "result": "silver_medal", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "silver_small", 3 ] ] ] - }, - { - "result": "silver_ring", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "silver_small", 3 ] ] ] - }, - { - "result": "leather_collar", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "leather", 1 ] ] ] - }, - { - "result": "rad_badge", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "plastic_chunk", 1 ] ] ] - }, - { - "result": "badge_doctor", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "plastic_chunk", 1 ] ] ] - }, - { - "result": "badge_foodkid", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "plastic_chunk", 1 ] ] ] - }, - { - "result": "fur_cat_ears", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "fur", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] - }, - { - "result": "faux_fur_cat_ears", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "faux_fur", 1 ] ] ] - }, - { - "result": "fur_cat_tail", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "fur", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] - }, - { - "result": "faux_fur_cat_tail", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "faux_fur", 1 ] ] ] - }, - { - "result": "fur_collar", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "fur", 1 ] ] ] - }, - { - "result": "faux_fur_collar", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "faux_fur", 1 ] ] ] - }, - { - "result": "leather_belt", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "leather", 1 ] ] ] - }, - { - "result": "leather_cat_ears", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "leather", 1 ] ] ] - }, - { - "result": "leather_cat_tail", - "type": "uncraft", - "time": "30 s", - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "leather", 1 ] ] ] - }, { "result": "alarmclock", "type": "uncraft", @@ -665,29 +399,6 @@ [ [ "canister_empty", 1 ] ] ] }, - { - "result": "broken_secubot", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 6, - "time": "120 m", - "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ], - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "memory_module", 1 ] ], - [ [ "pathfinding_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "omni_wheel", 1 ] ], - [ [ "copbot_chassis", 1 ] ], - [ [ "android_arms", 1 ] ], - [ [ "power_supply", 4 ] ], - [ [ "solar_cell", 2 ] ], - [ [ "hk_mp5", 1 ] ], - [ [ "canister_empty", 1 ] ] - ] - }, { "result": "broken_skitterbot", "type": "uncraft", @@ -710,87 +421,6 @@ [ [ "scrap", 4 ] ] ] }, - { - "result": "broken_turret", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 3, - "time": "60 m", - "using": [ [ "soldering_standard", 10 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "RAM", 1 ] ], - [ [ "gun_module", 2 ] ], - [ [ "hk_mp5", 2 ] ], - [ [ "small_storage_battery", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "power_supply", 1 ] ], - [ [ "turret_chassis", 1 ] ] - ] - }, - { - "result": "broken_turret_rifle", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 3, - "time": "60 m", - "using": [ [ "soldering_standard", 10 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "RAM", 1 ] ], - [ [ "gun_module", 1 ] ], - [ [ "m4a1", 1 ] ], - [ [ "small_storage_battery", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "power_supply", 1 ] ], - [ [ "turret_chassis", 1 ] ] - ] - }, - { - "result": "broken_turret_bmg", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 3, - "time": "60 m", - "using": [ [ "soldering_standard", 10 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "RAM", 1 ] ], - [ [ "gun_module", 1 ] ], - [ [ "m107a1", 1 ] ], - [ [ "small_storage_battery", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "power_supply", 1 ] ], - [ [ "turret_chassis", 1 ] ] - ] - }, - { - "result": "broken_laserturret", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 3, - "time": "60 m", - "using": [ [ "soldering_standard", 10 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "RAM", 1 ] ], - [ [ "gun_module", 1 ] ], - [ [ "laser_cannon", 1 ] ], - [ [ "medium_storage_battery", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "solar_cell", 4 ] ], - [ [ "power_supply", 1 ] ], - [ [ "turret_chassis", 1 ] ] - ] - }, { "result": "broken_science_bot", "type": "uncraft", @@ -815,69 +445,6 @@ [ [ "steel_chunk", 6 ] ] ] }, - { - "result": "broken_mech_recon", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 8, - "time": "600 m", - "using": [ [ "soldering_standard", 30 ], [ "welding_standard", 20 ] ], - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "memory_module", 1 ] ], - [ [ "pathfinding_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "targeting_module", 1 ] ], - [ [ "power_supply", 20 ] ], - [ [ "storage_battery", 2 ] ], - [ [ "plut_cell", 4 ] ], - [ [ "mil_plate", 15 ] ] - ] - }, - { - "result": "broken_mech_lifter", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 8, - "time": "600 m", - "using": [ [ "soldering_standard", 30 ], [ "welding_standard", 20 ] ], - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "memory_module", 1 ] ], - [ [ "pathfinding_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "targeting_module", 1 ] ], - [ [ "power_supply", 20 ] ], - [ [ "storage_battery", 2 ] ], - [ [ "plut_cell", 4 ] ], - [ [ "mil_plate", 6 ] ] - ] - }, - { - "result": "broken_mech_combat", - "type": "uncraft", - "skill_used": "electronics", - "difficulty": 8, - "time": "600 m", - "using": [ [ "soldering_standard", 30 ], [ "welding_standard", 20 ] ], - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ], - "components": [ - [ [ "ai_module", 1 ] ], - [ [ "sensor_module", 1 ] ], - [ [ "memory_module", 1 ] ], - [ [ "pathfinding_module", 1 ] ], - [ [ "identification_module", 1 ] ], - [ [ "targeting_module", 1 ] ], - [ [ "power_supply", 20 ] ], - [ [ "storage_battery", 2 ] ], - [ [ "plut_cell", 4 ] ], - [ [ "mil_plate", 20 ] ] - ] - }, { "result": "broken_tankbot", "type": "uncraft", @@ -1597,7 +1164,7 @@ "difficulty": 3, "time": "10 m", "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], - "components": [ [ [ "cable", 12 ] ], [ [ "amplifier", 2 ] ], [ [ "lightstrip_inactive", 1 ] ], [ [ "material_aluminium_ingot", 1 ] ] ] + "components": [ [ [ "cable", 12 ] ], [ [ "amplifier", 2 ] ], [ [ "material_aluminium_ingot", 1 ] ] ] }, { "result": "holy_symbol", @@ -1697,7 +1264,7 @@ "components": [ [ [ "pilot_light", 1 ] ], [ [ "plastic_chunk", 1 ] ] ] }, { - "result": "silver_locket", + "result": "locket", "type": "uncraft", "time": "30 s", "qualities": [ { "id": "HAMMER", "level": 1 } ], @@ -1831,7 +1398,7 @@ ] }, { - "result": "silver_necklace", + "result": "necklace", "type": "uncraft", "time": "30 s", "qualities": [ { "id": "HAMMER", "level": 1 } ], @@ -2014,7 +1581,7 @@ "flags": [ "BLIND_EASY" ] }, { - "result": "gold_ring", + "result": "ring", "type": "uncraft", "time": "30 s", "qualities": [ { "id": "HAMMER", "level": 1 } ], @@ -2478,24 +2045,6 @@ [ [ "RAM", 1 ] ] ] }, - { - "result": "dishwasher", - "type": "uncraft", - "skill_used": "electronics", - "time": "60 m", - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ - [ [ "cable", 8 ] ], - [ [ "hose", 1 ] ], - [ [ "cu_pipe", 3 ] ], - [ [ "motor_tiny", 1 ] ], - [ [ "e_scrap", 4 ] ], - [ [ "element", 4 ] ], - [ [ "power_supply", 4 ] ], - [ [ "processor", 1 ] ], - [ [ "RAM", 1 ] ] - ] - }, { "//": "TODO: use copy-from inheritance for solarpack uncrafts -- it is currently not working properly #24702", "result": "solarpack", diff --git a/data/json/recipes/recipe_electronics.json b/data/json/recipes/recipe_electronics.json index 280aacb814e86..9e2982ad919b1 100644 --- a/data/json/recipes/recipe_electronics.json +++ b/data/json/recipes/recipe_electronics.json @@ -41,7 +41,7 @@ "components": [ [ [ "antenna", 1 ], [ "screwdriver", 1 ], [ "xacto", 1 ], [ "knife_butter", 1 ] ], [ [ "plastic_chunk", 6 ] ], - [ [ "motor_tiny", 1 ] ], + [ [ "motor_small", 1 ] ], [ [ "power_supply", 1 ] ], [ [ "cable", 5 ] ], [ [ "scrap", 1 ], [ "steel_chunk", 1 ] ] @@ -666,6 +666,70 @@ "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 6 ] ], [ [ "amplifier", 5 ] ], [ [ "scrap", 4 ] ], [ [ "cable", 14 ] ], [ [ "plut_cell", 2 ] ] ] }, + { + "type": "recipe", + "result": "bio_armor_head", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_CBMS", + "skill_used": "electronics", + "skills_required": [ "firstaid", 5 ], + "difficulty": 6, + "time": "50 m", + "reversible": true, + "decomp_learn": 5, + "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ], + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], + "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] + }, + { + "type": "recipe", + "result": "bio_armor_arms", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_CBMS", + "skill_used": "electronics", + "skills_required": [ "firstaid", 5 ], + "difficulty": 6, + "time": "50 m", + "reversible": true, + "decomp_learn": 5, + "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ], + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], + "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] + }, + { + "type": "recipe", + "result": "bio_armor_torso", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_CBMS", + "skill_used": "electronics", + "skills_required": [ "firstaid", 5 ], + "difficulty": 6, + "time": "50 m", + "reversible": true, + "decomp_learn": 5, + "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ], + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], + "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] + }, + { + "type": "recipe", + "result": "bio_armor_legs", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_CBMS", + "skill_used": "electronics", + "skills_required": [ "firstaid", 5 ], + "difficulty": 6, + "time": "50 m", + "reversible": true, + "decomp_learn": 5, + "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 6 ] ], + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], + "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] + }, { "type": "recipe", "result": "recharge_station", diff --git a/data/json/recipes/recipe_food.json b/data/json/recipes/recipe_food.json index a0717b14c7b88..b397c40139a84 100644 --- a/data/json/recipes/recipe_food.json +++ b/data/json/recipes/recipe_food.json @@ -764,12 +764,12 @@ [ [ "meat_red", 2, "LIST" ], [ "liver", 10 ] ], [ [ "fat", 1 ], [ "tallow", 2 ], [ "lard", 2 ] ], [ - [ "salt", 4 ], - [ "soysauce", 2 ], - [ "seasoning_italian", 4 ], - [ "wild_herbs", 4 ], - [ "seasoning_salt", 4 ], - [ "pepper", 4 ] + [ "salt", 2 ], + [ "soysauce", 1 ], + [ "seasoning_italian", 10 ], + [ "wild_herbs", 10 ], + [ "seasoning_salt", 10 ], + [ "pepper", 10 ] ] ] }, @@ -909,7 +909,7 @@ }, { "type": "recipe", - "result": "dogfood", + "result": "dogfood_canned", "id_suffix": "jarred", "byproducts": [ [ "water", 10 ] ], "container": "jar_glass_sealed", @@ -932,7 +932,7 @@ }, { "type": "recipe", - "result": "dogfood", + "result": "dogfood_canned", "id_suffix": "canned", "category": "CC_FOOD", "subcategory": "CSC_FOOD_OTHER", @@ -940,7 +940,6 @@ "difficulty": 5, "time": "24 m", "autolearn": true, - "contained": true, "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "SAW_M", "level": 1 }, @@ -959,7 +958,7 @@ }, { "type": "recipe", - "result": "dogfood", + "result": "dogfood_canned", "id_suffix": "jarred_3l", "byproducts": [ [ "water", 10 ] ], "container": "jar_3l_glass_sealed", @@ -995,7 +994,7 @@ }, { "type": "recipe", - "result": "catfood", + "result": "catfood_canned", "id_suffix": "jarred", "byproducts": [ [ "water", 10 ] ], "container": "jar_glass_sealed", @@ -1013,7 +1012,7 @@ }, { "type": "recipe", - "result": "catfood", + "result": "catfood_canned", "id_suffix": "canned", "category": "CC_FOOD", "subcategory": "CSC_FOOD_OTHER", @@ -1021,7 +1020,6 @@ "difficulty": 5, "time": "24 m", "autolearn": true, - "contained": true, "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "SAW_M", "level": 1 }, @@ -1039,7 +1037,7 @@ }, { "type": "recipe", - "result": "catfood", + "result": "catfood_canned", "id_suffix": "jarred_3l", "byproducts": [ [ "water", 10 ] ], "container": "jar_3l_glass_sealed", @@ -4348,7 +4346,7 @@ "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 100, "LIST" ] ], [ [ "pot_canning", -1 ] ] ], - "components": [ [ [ "water", 11 ], [ "water_clean", 11 ] ], [ [ "jar_glass", 1 ] ], [ [ "human_flesh", 2 ] ] ] + "components": [ [ [ "water", 11 ], [ "water_clean", 11 ] ], [ [ "jar_glass", 1 ] ], [ [ "human_flesh", 1 ] ] ] }, { "type": "recipe", @@ -4834,7 +4832,6 @@ "skill_used": "cooking", "difficulty": 4, "time": "20 m", - "batch_time_factors": [ 83, 5 ], "autolearn": true, "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "vac_sealer", 5 ], [ "makeshift_sealer", 10 ] ] ], @@ -5944,7 +5941,6 @@ "skill_used": "cooking", "difficulty": 6, "time": "30 m", - "result_mult": 2, "autolearn": true, "batch_time_factors": [ 83, 5 ], "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 3 } ], @@ -5952,7 +5948,7 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ], [ "salt_water", 1 ], [ "saline", 5 ] ], [ [ "jar_glass", 1 ] ], - [ [ "meat", 2 ], [ "meat_scrap", 20 ] ], + [ [ "meat", 1 ], [ "meat_scrap", 10 ] ], [ [ "vinegar", 1 ] ] ] }, diff --git a/data/json/recipes/recipe_medsandchemicals.json b/data/json/recipes/recipe_medsandchemicals.json index 21d3591f71d0e..f51b03ce36ae7 100644 --- a/data/json/recipes/recipe_medsandchemicals.json +++ b/data/json/recipes/recipe_medsandchemicals.json @@ -273,50 +273,6 @@ "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "fungicide", 10 ] ], [ [ "ammonia", 2 ], [ "lye_powder", 200 ] ], [ [ "salt", 10 ] ] ] }, - { - "type": "recipe", - "result": "insecticide", - "category": "CC_CHEM", - "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 4, - "time": "30 m", - "book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 2 } ], - "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], - "components": [ - [ [ "chem_sulphur", 10 ] ], - [ [ "oxy_powder", 100 ] ], - [ [ "ammonia", 5 ] ], - [ [ "acid", 1 ] ], - [ [ "chem_saltpetre", 5 ] ], - [ [ "bleach", 5 ] ] - ] - }, - { - "type": "recipe", - "result": "insecticide", - "id_suffix": "nicotine", - "category": "CC_CHEM", - "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "cooking", - "difficulty": 4, - "time": "30 m", - "book_learn": [ [ "textbook_chemistry", 4 ], [ "adv_chemistry", 4 ], [ "recipe_labchem", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 2 } ], - "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], - "components": [ - [ - [ "tobacco", 50 ], - [ "cig", 50 ], - [ "cig_butt", 100 ], - [ "cigar", 10 ], - [ "tobacco_raw", 50 ], - [ "nicotine_liquid", 50 ] - ], - [ [ "lye", 50 ] ] - ] - }, { "type": "recipe", "result": "antiparasitic", diff --git a/data/json/recipes/recipe_obsolete.json b/data/json/recipes/recipe_obsolete.json index 50085267eba88..f0761356ae3d5 100644 --- a/data/json/recipes/recipe_obsolete.json +++ b/data/json/recipes/recipe_obsolete.json @@ -746,11 +746,6 @@ "result": "fish_bait_veggy", "obsolete": true }, - { - "type": "recipe", - "result": "flamethrower_crude", - "obsolete": true - }, { "type": "recipe", "result": "fletching", @@ -1786,26 +1781,6 @@ "result": "wristwatchuncraft", "obsolete": true }, - { - "type": "recipe", - "result": "bio_armor_head", - "obsolete": true - }, - { - "type": "recipe", - "result": "bio_armor_arms", - "obsolete": true - }, - { - "type": "recipe", - "result": "bio_armor_torso", - "obsolete": true - }, - { - "type": "recipe", - "result": "bio_armor_legs", - "obsolete": true - }, { "type": "recipe", "result": "years_old_newspaperuncraft", diff --git a/data/json/recipes/recipe_others.json b/data/json/recipes/recipe_others.json index d3b7f720156b8..047757cc1bc7c 100644 --- a/data/json/recipes/recipe_others.json +++ b/data/json/recipes/recipe_others.json @@ -2028,7 +2028,7 @@ "time": "20 m", "autolearn": true, "tools": [ [ [ "surface_heat", 5, "LIST" ] ] ], - "components": [ [ [ "bowl_plastic", 4 ], [ "plastic_chunk", 12 ] ] ] + "components": [ [ [ "bowl_plastic", 4 ] ] ] }, { "type": "recipe", @@ -3667,18 +3667,6 @@ "using": [ [ "sewing_standard", 60 ] ], "components": [ [ [ "leather", 4 ], [ "tanned_hide", 1 ], [ "fur", 4 ], [ "tanned_pelt", 1 ] ] ] }, - { - "type": "recipe", - "result": "birchbark_funnel", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "skills_required": [ "survival", 1 ], - "difficulty": 2, - "time": "60 m", - "autolearn": true, - "components": [ [ [ "birchbark", 12 ] ], [ [ "adhesive", 1, "LIST" ] ] ] - }, { "type": "recipe", "result": "chem_sulphur", @@ -3931,24 +3919,6 @@ "using": [ [ "earthenware_firing", 60 ] ], "components": [ [ [ "clay_lump", 1 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, - { - "type": "recipe", - "result": "fire_brick", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_MATERIALS", - "skill_used": "fabrication", - "difficulty": 2, - "time": "40 m", - "autolearn": true, - "batch_time_factors": [ 70, 4 ], - "using": [ [ "earthenware_firing", 60 ] ], - "components": [ - [ [ "clay_lump", 1 ] ], - [ [ "material_sand", 5 ] ], - [ [ "rock", 1 ], [ "pebble", 10 ] ], - [ [ "water", 1 ], [ "water_clean", 1 ] ] - ] - }, { "type": "recipe", "result": "soft_adobe_brick", @@ -4547,18 +4517,5 @@ "using": [ [ "forging_standard", 1 ] ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "components": [ [ [ "tin", 12 ] ], [ [ "copper", 50 ] ] ] - }, - { - "type": "recipe", - "result": "pet_carrier_wooden", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_OTHER", - "skill_used": "fabrication", - "difficulty": 3, - "time": "90 m", - "reversible": true, - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ], - "components": [ [ [ "2x4", 4 ] ], [ [ "nail", 20 ] ], [ [ "hinge", 2 ] ] ] } ] diff --git a/data/json/recipes/recipe_vehicle.json b/data/json/recipes/recipe_vehicle.json index 83df62327a9d8..8875b1d719eab 100644 --- a/data/json/recipes/recipe_vehicle.json +++ b/data/json/recipes/recipe_vehicle.json @@ -208,20 +208,6 @@ [ [ "fan", 1 ] ] ] }, - { - "result": "vh_autoclave", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_PARTS", - "skill_used": "fabrication", - "skill_required": [ "electronics", 4 ], - "difficulty": 4, - "time": "30 m", - "reversible": true, - "autolearn": true, - "using": [ [ "soldering_standard", 5 ] ], - "components": [ [ [ "autoclave", 1 ] ], [ [ "cable", 2 ] ], [ [ "power_supply", 2 ] ] ] - }, { "result": "washing_machine", "type": "recipe", @@ -247,31 +233,6 @@ ], "byproducts": [ [ "scrap", 6 ] ] }, - { - "result": "dishwasher", - "type": "recipe", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_PARTS", - "skill_used": "fabrication", - "skill_required": [ "mechanics", 5 ], - "difficulty": 5, - "time": "170 m", - "book_learn": [ [ "textbook_fabrication", 6 ], [ "textbook_mechanics", 5 ] ], - "using": [ [ "welding_standard", 5 ] ], - "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 2 }, { "id": "DRILL", "level": 2 } ], - "components": [ - [ [ "sheet_metal", 3 ] ], - [ [ "wire", 6 ] ], - [ [ "hose", 1 ] ], - [ [ "e_scrap", 3 ] ], - [ [ "circuit", 1 ] ], - [ [ "scrap", 4 ] ], - [ [ "steel_chunk", 2 ] ], - [ [ "metal_tank", 1 ] ], - [ [ "motor_tiny", 1 ] ] - ], - "byproducts": [ [ "scrap", 6 ] ] - }, { "result": "wheel_caster", "type": "recipe", @@ -367,17 +328,5 @@ "using": [ [ "welding_standard", 5 ] ], "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ], "components": [ [ [ "sheet_metal", 3 ] ], [ [ "hinge", 2 ] ] ] - }, - { - "type": "recipe", - "result": "towel_hanger", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_VEHICLES", - "skill_used": "fabrication", - "difficulty": 2, - "time": "40 m", - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 1 } ], - "components": [ [ [ "nail", 4 ] ], [ [ "2x4", 2 ] ], [ [ "stick", 2 ], [ "2x4", 2 ] ], [ [ "towel", 3 ] ] ] } ] diff --git a/data/json/recipes/recipe_weapon.json b/data/json/recipes/recipe_weapon.json index cdc62f172c478..7f039b4cbb9c9 100644 --- a/data/json/recipes/recipe_weapon.json +++ b/data/json/recipes/recipe_weapon.json @@ -1762,13 +1762,7 @@ "reversible": true, "decomp_learn": 3, "book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ], - "components": [ - [ [ "leather", 5 ] ], - [ [ "pipe", 1 ] ], - [ [ "makeshift_machete", 1 ] ], - [ [ "pilot_light", 1 ] ], - [ [ "aux_pressurized_tank", 1 ] ] - ] + "components": [ [ [ "leather", 5 ] ], [ [ "pipe", 1 ] ], [ [ "makeshift_machete", 1 ] ], [ [ "flamethrower_crude", 1 ] ] ] }, { "type": "recipe", @@ -1782,13 +1776,7 @@ "decomp_learn": 4, "book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ], "using": [ [ "welding_standard", 2 ] ], - "components": [ - [ [ "leather", 5 ] ], - [ [ "pipe", 1 ] ], - [ [ "machete", 1 ] ], - [ [ "pilot_light", 1 ] ], - [ [ "aux_pressurized_tank", 1 ] ] - ] + "components": [ [ [ "leather", 5 ] ], [ [ "pipe", 1 ] ], [ [ "machete", 1 ] ], [ [ "flamethrower_crude", 1 ] ] ] }, { "type": "recipe", @@ -1802,13 +1790,7 @@ "decomp_learn": 4, "book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ], "using": [ [ "welding_standard", 2 ] ], - "components": [ - [ [ "leather", 5 ] ], - [ [ "pipe", 1 ] ], - [ [ "broadsword", 1 ] ], - [ [ "pilot_light", 1 ] ], - [ [ "aux_pressurized_tank", 1 ] ] - ] + "components": [ [ [ "leather", 5 ] ], [ [ "pipe", 1 ] ], [ [ "broadsword", 1 ] ], [ [ "flamethrower_crude", 1 ] ] ] }, { "type": "recipe", @@ -1822,13 +1804,7 @@ "decomp_learn": 4, "book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ], "using": [ [ "welding_standard", 2 ] ], - "components": [ - [ [ "leather", 5 ] ], - [ [ "pipe", 1 ] ], - [ [ "katana", 1 ] ], - [ [ "pilot_light", 1 ] ], - [ [ "aux_pressurized_tank", 1 ] ] - ] + "components": [ [ [ "leather", 5 ] ], [ [ "pipe", 1 ] ], [ [ "katana", 1 ] ], [ [ "flamethrower_crude", 1 ] ] ] }, { "type": "recipe", @@ -1842,13 +1818,7 @@ "decomp_learn": 4, "book_learn": [ [ "welding_book", 8 ], [ "book_icef", 4 ] ], "using": [ [ "welding_standard", 2 ] ], - "components": [ - [ [ "leather", 5 ] ], - [ [ "pipe", 1 ] ], - [ [ "zweihander", 1 ] ], - [ [ "pilot_light", 1 ] ], - [ [ "aux_pressurized_tank", 1 ] ] - ] + "components": [ [ [ "leather", 5 ] ], [ [ "pipe", 1 ] ], [ [ "zweihander", 1 ] ], [ [ "flamethrower_crude", 1 ] ] ] }, { "type": "recipe", @@ -2002,6 +1972,18 @@ [ [ "e_scrap", 20 ] ] ] }, + { + "type": "recipe", + "result": "flamethrower_crude", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_RANGED", + "skill_used": "survival", + "difficulty": 1, + "time": "5 m", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "spray_can", 1 ] ], [ [ "duct_tape", 25 ] ], [ [ "lighter", 1 ] ] ] + }, { "type": "recipe", "result": "knuckle_steel", @@ -2067,24 +2049,6 @@ "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ], [ [ "forge", 300 ], [ "oxy_torch", 60 ] ] ], "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ] ], [ [ "2x4", 1 ], [ "stick", 2 ] ] ] }, - { - "type": "recipe", - "result": "crash_axe", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_CUTTING", - "skill_used": "fabrication", - "difficulty": 6, - "time": "360 m", - "book_learn": [ [ "textbook_fireman", 6 ] ], - "using": [ [ "forging_standard", 8 ] ], - "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], - "components": [ - [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 20 ] ], - [ [ "filament", 100, "LIST" ] ], - [ [ "rag", 2 ], [ "felt_patch", 2 ], [ "leather", 2 ], [ "fur", 2 ] ] - ] - }, { "type": "recipe", "result": "machete", diff --git a/data/json/recipes/weapon/bashing.json b/data/json/recipes/weapon/bashing.json index f83e6be779f3a..d9e70ec9ddc62 100644 --- a/data/json/recipes/weapon/bashing.json +++ b/data/json/recipes/weapon/bashing.json @@ -22,30 +22,93 @@ ] }, { + "result": "crowbar", "type": "recipe", - "result": "shillelagh", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_BASHING", "skill_used": "fabrication", - "skills_required": [ "survival", 2 ], "difficulty": 3, - "time": "360 m", + "time": "120 m", "autolearn": true, - "qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "CUT", "level": 1 } ], - "tools": [ [ [ "char_smoker", 100 ] ] ], - "components": [ [ [ "log", 1 ] ], [ [ "butter", 30 ], [ "lard", 4 ] ] ] + "using": [ [ "forging_standard", 8 ], [ "steel_standard", 2 ] ], + "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] }, { + "result": "halligan", "type": "recipe", - "result": "shillelagh_weighted", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_BASHING", "skill_used": "fabrication", - "difficulty": 4, - "time": "30 m", + "difficulty": 8, + "time": "420 m", + "book_learn": [ [ "textbook_fireman", 8 ] ], + "using": [ [ "forging_standard", 20 ], [ "steel_standard", 3 ] ], + "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ] + }, + { + "result": "iceaxe", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_BASHING", + "skill_used": "fabrication", + "difficulty": 5, + "time": "240 m", + "autolearn": true, + "using": [ [ "forging_standard", 8 ] ], + "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ + [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 20 ] ], + [ [ "filament", 100, "LIST" ] ], + [ [ "rag", 2 ], [ "felt_patch", 2 ], [ "leather", 2 ], [ "fur", 2 ] ] + ] + }, + { + "result": "makeshift_crowbar", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_BASHING", + "skill_used": "fabrication", + "time": "1 m", + "autolearn": true, + "qualities": [ { "id": "HAMMER", "level": 1 } ], + "components": [ [ [ "pipe", 1 ] ] ] + }, + { + "result": "torch", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_BASHING", + "skill_used": "fabrication", + "time": "2 m", + "autolearn": true, + "components": [ + [ [ "rag", 1 ] ], + [ [ "stick", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ], [ "torch_done", 1 ] ], + [ + [ "lamp_oil", 50 ], + [ "chem_ethanol", 100 ], + [ "denat_alcohol", 100 ], + [ "gasoline", 250 ], + [ "diesel", 250 ] + ] + ], + "flags": [ "BLIND_HARD" ] + }, + { + "type": "recipe", + "result": "torch", + "id_suffix": "pine", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_BASHING", + "skill_used": "survival", + "time": "3 m", "autolearn": true, - "qualities": [ { "id": "DRILL", "level": 1 } ], - "tools": [ [ [ "forge", 100 ], [ "oxy_torch", 20 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], - "components": [ [ [ "shillelagh", 1 ] ], [ [ "weights", 15, "LIST" ] ] ] + "batch_time_factors": [ 50, 5 ], + "qualities": [ { "id": "CUT", "level": 1 }, { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 7, "LIST" ] ] ], + "components": [ [ [ "stick", 1 ], [ "2x4", 1 ], [ "splinter", 1 ], [ "pool_cue", 1 ], [ "torch_done", 1 ] ], [ [ "pine_bough", 2 ] ] ] } ] diff --git a/data/json/recipes/weapon/explosive.json b/data/json/recipes/weapon/explosive.json index 51414690c8213..eaf82296d8e97 100644 --- a/data/json/recipes/weapon/explosive.json +++ b/data/json/recipes/weapon/explosive.json @@ -148,46 +148,6 @@ [ [ "superglue", 1 ] ] ] }, - { - "result": "fungicidalbomb_makeshift", - "type": "recipe", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_EXPLOSIVE", - "skill_used": "cooking", - "skills_required": [ "mechanics", 1 ], - "difficulty": 4, - "time": "8 m", - "autolearn": true, - "book_learn": [ [ "textbook_gaswarfare", 3 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "bleach", 2 ], [ "oxy_powder", 200 ] ], - [ [ "fungicide", 50 ] ], - [ [ "chem_sulphur", 10 ] ], - [ [ "canister_empty", 1 ], [ "can_food_unsealed", 1 ], [ "can_drink_unsealed", 1 ] ], - [ [ "superglue", 1 ] ] - ] - }, - { - "result": "insecticidalbomb_makeshift", - "type": "recipe", - "category": "CC_WEAPON", - "subcategory": "CSC_WEAPON_EXPLOSIVE", - "skill_used": "cooking", - "skills_required": [ "mechanics", 1 ], - "difficulty": 4, - "time": "8 m", - "autolearn": true, - "book_learn": [ [ "textbook_gaswarfare", 3 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "bleach", 2 ], [ "oxy_powder", 200 ] ], - [ [ "insecticide", 50 ] ], - [ [ "water", 2 ], [ "water_clean", 2 ] ], - [ [ "canister_empty", 1 ], [ "can_food_unsealed", 1 ], [ "can_drink_unsealed", 1 ] ], - [ [ "superglue", 1 ] ] - ] - }, { "result": "makeshift_grenade", "type": "recipe", @@ -358,8 +318,8 @@ "difficulty": 2, "time": "15 m", "reversible": true, - "autolearn": true, - "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ], + "book_learn": [ [ "manual_launcher", 2 ], [ "textbook_anarch", 3 ] ], + "qualities": [ { "id": "SAW_M", "level": 1 } ], "components": [ [ [ "can_food_unsealed", 1 ] ], [ [ "chem_black_powder", 412 ] ], [ [ "string_6", 1 ] ] ] }, { diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index 443f90aaee080..0d1df8effe709 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -115,8 +115,7 @@ "overmap_lake_settings": { "noise_threshold_lake": 0.25, "lake_size_min": 20, - "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ], - "shore_extendable_overmap_terrain_aliases": [ ] + "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ] }, "overmap_forest_settings": { "noise_threshold_forest": 0.2, @@ -410,15 +409,16 @@ "forest": { "chance": 20, "extras": { - "mx_helicopter": 8, + "mx_helicopter": 40, "mx_military": 8, "mx_science": 20, "mx_collegekids": 25, - "mx_drugdeal": 8, - "mx_supplydrop": 8, + "mx_drugdeal": 20, + "mx_supplydrop": 10, "mx_portal": 3, "mx_crater": 10, - "mx_portal_in": 3, + "mx_portal_in": 1, + "mx_anomaly": 3, "mx_spider": 200, "mx_grove": 500, "mx_shrubbery": 500, @@ -433,7 +433,7 @@ "forest_thick": { "chance": 20, "extras": { - "mx_helicopter": 8, + "mx_helicopter": 40, "mx_military": 8, "mx_science": 20, "mx_collegekids": 25, @@ -441,7 +441,8 @@ "mx_supplydrop": 10, "mx_portal": 3, "mx_crater": 10, - "mx_portal_in": 3, + "mx_portal_in": 1, + "mx_anomaly": 3, "mx_shia": 1, "mx_spider": 200, "mx_jabberwock": 1, @@ -458,7 +459,7 @@ "forest_water": { "chance": 20, "extras": { - "mx_helicopter": 8, + "mx_helicopter": 40, "mx_military": 8, "mx_science": 20, "mx_collegekids": 25, @@ -466,7 +467,8 @@ "mx_supplydrop": 10, "mx_portal": 3, "mx_crater": 10, - "mx_portal_in": 3, + "mx_portal_in": 1, + "mx_anomaly": 3, "mx_spider": 200, "mx_grove": 500, "mx_shrubbery": 500, @@ -481,7 +483,7 @@ "field": { "chance": 90, "extras": { - "mx_helicopter": 8, + "mx_helicopter": 40, "mx_military": 8, "mx_science": 20, "mx_collegekids": 25, @@ -489,7 +491,8 @@ "mx_supplydrop": 10, "mx_portal": 3, "mx_crater": 10, - "mx_portal_in": 3, + "mx_portal_in": 1, + "mx_anomaly": 3, "mx_point_dead_vegetation": 50, "mx_point_burned_ground": 50, "mx_casings": 50 @@ -498,7 +501,7 @@ "road": { "chance": 75, "extras": { - "mx_helicopter": 25, + "mx_helicopter": 40, "mx_military": 25, "mx_science": 40, "mx_collegekids": 50, @@ -509,7 +512,8 @@ "mx_portal": 5, "mx_minefield": 80, "mx_crater": 10, - "mx_portal_in": 4, + "mx_portal_in": 2, + "mx_anomaly": 3, "mx_roadworks": 100, "mx_mayhem": 50, "mx_casings": 100 @@ -525,7 +529,8 @@ "mx_collegekids": 15, "mx_portal": 5, "mx_crater": 60, - "mx_portal_in": 3, + "mx_portal_in": 1, + "mx_anomaly": 3, "mx_point_burned_ground": 5, "mx_casings": 30 } @@ -533,17 +538,26 @@ "marloss": { "chance": 20, "extras": { "mx_marloss_pilgrimage": 100 } }, "subway": { "chance": 75, - "extras": { "mx_military": 5, "mx_science": 12, "mx_collegekids": 15, "mx_portal": 7, "mx_portal_in": 3, "mx_casings": 30 } + "extras": { + "mx_military": 5, + "mx_science": 12, + "mx_collegekids": 15, + "mx_portal": 7, + "mx_portal_in": 1, + "mx_anomaly": 3, + "mx_casings": 30 + } }, "research_facility_lot": { "chance": 3, "extras": { - "mx_helicopter": 65, + "mx_helicopter": 90, "mx_military": 65, "mx_collegekids": 1, "mx_portal": 200, "mx_crater": 180, - "mx_portal_in": 30, + "mx_portal_in": 20, + "mx_anomaly": 10, "mx_point_burned_ground": 100, "mx_casings": 30 } @@ -632,7 +646,6 @@ "s_hardware_1": 400, "s_hardware_2": 400, "s_hardware_3": 400, - "s_hunting": 300, "s_sports": 500, "dojo": 200, "dojo_1": 200, diff --git a/data/json/requirements/cooking_components.json b/data/json/requirements/cooking_components.json index 6e97ccf7648e1..481e55544a9ca 100644 --- a/data/json/requirements/cooking_components.json +++ b/data/json/requirements/cooking_components.json @@ -192,7 +192,6 @@ [ "plums", 1 ], [ "pomegranate", 1 ], [ "raspberries", 1 ], - [ "rose_hips", 1 ], [ "strawberries", 1 ], [ "huckleberries", 1 ], [ "mulberries", 1 ], @@ -227,7 +226,6 @@ [ "irradiated_plums", 1 ], [ "irradiated_pomegranate", 1 ], [ "irradiated_raspberries", 1 ], - [ "irradiated_rose_hips", 1 ], [ "irradiated_strawberries", 1 ], [ "irradiated_huckleberries", 1 ], [ "irradiated_mulberries", 1 ], @@ -318,6 +316,8 @@ [ "veggy_wild", 1 ], [ "zucchini", 1 ], [ "irradiated_zucchini", 1 ], + [ "veggy", 1 ], + [ "veggy_wild", 1 ], [ "carrot_wild", 1 ] ] ] diff --git a/data/json/requirements/materials.json b/data/json/requirements/materials.json index 07bd074c72060..afe1c60d7410d 100644 --- a/data/json/requirements/materials.json +++ b/data/json/requirements/materials.json @@ -132,11 +132,5 @@ [ "cash_card", 2 ] ] ] - }, - { - "id": "weights", - "type": "requirement", - "//": "Materials used for adding weight to weapons and to other items. The materials should be malleable, ductile and dense.", - "components": [ [ [ "lead", 5 ], [ "silver_small", 5 ], [ "gold_small", 3 ], [ "platinum_small", 3 ] ] ] } ] diff --git a/data/json/requirements/toolsets.json b/data/json/requirements/toolsets.json index 0ab205b8ea50b..bc72b5c35046e 100644 --- a/data/json/requirements/toolsets.json +++ b/data/json/requirements/toolsets.json @@ -17,20 +17,6 @@ "//": "Forging of steel items (per steel chunk), charcoal forge is already a substitute for forge", "tools": [ [ [ "forge", 20 ], [ "oxy_torch", 20 ] ] ] }, - { - "id": "mutagen_production_standard", - "type": "requirement", - "//": "Production of mutagens.", - "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "SEPARATE", "level": 1 }, { "id": "ANALYSIS", "level": 1 } ], - "tools": [ [ [ "surface_heat", 1, "LIST" ] ] ] - }, - { - "id": "serum_production_standard", - "type": "requirement", - "//": "Production of mutagenic serums.", - "qualities": [ { "id": "CHEM", "level": 3 }, { "id": "FINE_DISTILL", "level": 1 }, { "id": "CONCENTRATE", "level": 1 } ], - "tools": [ [ [ "surface_heat", 1, "LIST" ] ] ] - }, { "id": "sewing_standard", "type": "requirement", @@ -63,12 +49,6 @@ "tools": [ [ [ "soldering_iron", 1 ], [ "toolset", 1 ] ] ], "components": [ [ [ "solder_wire", 1 ] ] ] }, - { - "id": "anesthetic", - "type": "requirement", - "//": "Rate of anesthetic used for a surgery in 1E-2 mL/kg/min. Autodoc's interface only supports charges of anesthetic_kit, any other requirement will have unexpected results.", - "tools": [ [ [ "anesthetic_kit", 3 ] ] ] - }, { "id": "cutting_wire_standard", "type": "requirement", diff --git a/data/json/scenarios.json b/data/json/scenarios.json index b2fa9e0360f70..80aa5b9db3411 100644 --- a/data/json/scenarios.json +++ b/data/json/scenarios.json @@ -89,7 +89,7 @@ "ident": "isolationist", "name": "Safe Place", "points": 1, - "description": "You've found some distant safe place, devoid of the living dead. Looks like you're on your own...", + "description": "You've either made it to one of the refugee centers, but they've refused to let you join the others underground, or found some other distant safe place devoid of the living dead. Looks like you're on your own...", "allowed_locs": [ "refugee", "Swamp Shack", "survivalist farm", "cabin", "lmoe", "horse_farm_13" ], "start_name": "Safe Building", "flags": [ "LONE_START" ] @@ -192,7 +192,7 @@ "ident": "lab_chal", "name": "Challenge - Lab Patient", "points": -8, - "description": "The scientists stopped their experiments on you abruptly, leaving you behind while they evacuated before lockdown. Find a way to escape or starve to death.", + "description": "You've been locked in a lab with no (obvious) way out! Find a way to escape or starve to death.", "start_name": "Locked Lab", "professions": [ "unemployed", "mutant_patient", "mutant_volunteer", "labtech", "broken_cyborg" ], "allowed_locs": [ "lab_escape_cells", "lab_random", "lab_finale", "ice_lab_stairs", "ice_lab_finale" ], @@ -243,7 +243,7 @@ "ident": "lab_staff", "name": "Challenge - Lab Staff", "points": -8, - "description": "You were deemed non-essential and made to stay behind during the lab evacuation. Find a way to escape or starve to death.", + "description": "You've been locked in a lab with no (obvious) way out! Find a way to escape or starve to death.", "start_name": "Locked Lab", "professions": [ "labtech", "security", "medic" ], "allowed_locs": [ "lab_escape_cells", "lab_random", "lab_finale", "ice_lab_stairs", "ice_lab_finale" ], @@ -254,7 +254,7 @@ "ident": "ambushed", "name": "Ambush", "points": 0, - "description": "It is the winter after zero hour. As you were scavenging for food and a warm place to stay at, you heard the sound of lots of movement nearby.", + "description": "It is the winter after zero hour. At some point in the past, you've joined a survivor camp, in which you lived until fairly recently, when you were exiled for reasons that aren't important now, and wandered far away. As you were wandering around, looking for food and a warm place to stay at, you heard the sound of lots of movement nearby.", "allowed_locs": [ "cabin", "forest", @@ -285,7 +285,7 @@ "ident": "summer_advanced_start", "name": "The Next Summer", "points": 0, - "description": "A little over a year has passed since the apocalypse started, and you're about to face your second summer in Hell.", + "description": "A little over a year has passed since the apocalypse started, and you're about to face your second summer in Hell. At some point in the past, you've joined a survivor camp, in which you lived until fairly recently, when you were exiled for reasons that aren't important now, and wandered far away.", "allowed_locs": [ "forest", "field", @@ -350,7 +350,7 @@ "ident": "prisonbreak", "name": "Prison", "points": -4, - "description": "When the cataclysm happened, you were convicted or working in a prison. Now the prisoners have turned into mindless horrors and the security bots are shooting on sight... you might need to expedite your escape plans.", + "description": "When the cataclysm happened, you were in prison, either as a convict or as a staff member. Now the prisoners have turned into mindless horrors and the security bots are shooting on sight... you might need to expedite your escape plans.", "allowed_locs": [ "prison" ], "start_name": "Prison", "professions": [ @@ -368,9 +368,9 @@ { "type": "scenario", "ident": "alcatraz", - "name": "Challenge - Island Prison", + "name": "Challenge - Island Prison Break", "points": -6, - "description": "You were at a high-security prison right before the Cataclysm. You managed to make it outside the inner walls... Too bad it's located on a remote island, and now you need to find out how to escape it too.", + "description": "You were sent to some high-security prison right before the Cataclysm. You almost managed to escape the walls of a prison... Too bad it's located on a remote island, and now you need to find out how to escape it too.", "allowed_locs": [ "alcatraz" ], "start_name": "Island prison", "professions": [ @@ -452,7 +452,7 @@ "ident": "wilderness", "name": "Wilderness", "points": 0, - "description": "You find yourself amongst trees. The screaming and the moaning is fainter this far from civilization, but you'd better know what you're doing out here.", + "description": "When the cataclysm happened, you either already were in wilderness, or fled there to escape from the monsters. The screaming and the moaning is fainter this far from civilization, but you'd better know what you're doing out here.", "start_name": "Wilderness", "allowed_locs": [ "forest", "field", "campsite_a", "campsite", "campground_1a", "campground_2b" ], "flags": [ "LONE_START" ] diff --git a/data/json/snippets/snippets.json b/data/json/snippets/snippets.json index b93bef8e8b017..ecbca3d2c6739 100644 --- a/data/json/snippets/snippets.json +++ b/data/json/snippets/snippets.json @@ -3,321 +3,1805 @@ "type": "snippet", "category": "flier", "text": [ - "This is an advertisement for the Diet Devil brand Metabolic Exchange CBM. It shows a picture of a tiny obese devil sitting on a woman's shoulder. The woman stares intently at a gigantic wedding cake covered with bacon and candy bars. The caption reads: \"Burn calories! Burn!\"", - "This is an advertisement for the Diet Devil brand Ethanol Burner CBM. It shows a picture of a teenage boy driving a car while chugging a bottle of whiskey. A tiny obese devil sits on his shoulder and drinks a martini. The caption reads: \"Drink like there's no tomorrow!\"", - "This is an advertisement for the Twenty8 brand Diamond Cornea CBM. It shows a picture of the cyber-module being clutched by an eagle in flight. The captions read: \"Get the new Model 28.bx Eagle-Eye!\" and \"Twenty8. See what you've been missing.\"", - "This is an advertisement for the Twenty8 brand Night Vision CBM. It shows a picture of an owl swooping down on a the cyber-module. The captions read: \"Get the new Model 28.hx Night-Owl!\" and \"Twenty8. See what you've been missing.\"", - "This is an advertisement for the Twenty8 brand Diamond Cornea CBM. It shows a picture of a flying hawk carrying the cyber-module in its beak. The captions read: \"Get the new Model 28.xx Hawk-Eye!\" and \"Twenty8. See what you've been missing.\"", - "This is an advertisement for the Twenty8 brand Scent Vision CBM. It shows a picture of a vulture perched on a pile of skulls and cyber-modules. The captions read: \"Get the new Model 28.vx Vulture today!\" and \"Twenty8. See what you've been missing.\"", - "This is an ad for a Twenty8 brand Infrared Vision CBM. It shows a picture of a robotic phoenix covered in flames. The captions read: \"Get the new Model 28.tx Phoenix today!\" and \"Twenty8. See what you've been missing.\"", - "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of copbot and an eyebot boldly emerging from a cloud of teargas and flame. The caption reads: \"DoubleTech Industries. Built to Protect. Programmed to Serve.\"", - "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of an eyebot flying alongside a bald eagle and a Stealth bomber painted as an American flag. The caption reads: \"Built to Protect. Programmed to Serve.\"", - "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of a dozen eyebots floating over a woman as she jogs through a park. The captions read: \"Built to Protect. Programmed to Serve.\"", - "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of copbot pepper-spraying a handcuffed rioter. In the background a troop of boy scouts salutes the robot. The caption reads: \"Built to Protect. Programmed to Serve.\"", - "This is an advertisement for Robert's Universal Robotics brand law enforcement robots. It shows a picture of a tribot incinerating a mob of looters and stepping over charred and smoking corpses. The caption reads: \"R.U.R. Technology you can Trust.\"", - "This is an advertisement for Robert's Universal Robots brand labor-bots. It shows a picture of a robot carrying a heavy pallet of bricks. In the background a human foreman is sleeping on the job, with his hardhat pulled down over his eyes. The captions read: \"It's a tough job, so why should you have to do it?\" and \"R.U.R. Technology you can Trust.\"", - "This is an advertisement for Robert's Universal Robots brand labor-bots. It shows a picture of a factory floor run entirely by robots. In the background a man in a suit reads a newspaper that shows soaring stock prices. The caption reads: \"R.U.R. Technology you can Trust.\"", - "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of several bikini-clad female doctors removing the skin from man's face. The patient is strapped to a chair but cheerfully gives two thumbs up. The caption reads: \"Free Plastic Surgery While You Wait!\"", - "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of several bikini-clad nurses giving liquid medicine to a delighted patient, who uses a fingertip needle to suck it in into his veins. Outside the window two shadow figures using the same fingertip needles to absorb something less resembling medicine. The caption reads: \"Why use old IV when you can have Intravenous Needle CBM!\"", - "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a nerdy looking man surrounded by a group of admiring women. In the foreground a blood-drenched doctor gives an exaggerated wink and two thumbs up. The caption reads: \"Holiday sales! Get the package deals!\"", - "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a man flexing shiny cybernetic arms in front of a mirror. He is flanked by two scantily clad nurses who hold bloody chainsaws and give approving thumbs up. In the background feral dogs gnaw on the man's discarded former limbs. The caption reads: \"Spring Cleaning Sale! 20% off!\"", - "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a man carrying a somewhat confused horse on his shoulders. He is flanked by two scantily clad nurses who hold bloody chainsaws and give approving thumbs up. His bulging knees and elbows are stitched and seem to be the source of his ability. The caption reads: \"Brand new! Horse power at hand!\"", - "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a man smiling while being relentlessly punched by a boxer. He doesn't even sweat as punches have no effect on him. Two scantily clad nurses give approving thumbs up from the background. The caption reads: \"Bouncy as never before! Absorb those shocks!\"", - "This is an advertisement for Rivtech brand handguns. It shows a picture of a well armed couple in business suits with matching handguns facing down a legion of villainous looking characters. The caption reads: \"Protect yourself with the Rivtech caseless automagnum!\"", - "This is an advertisement for Rivtech brand rifles. It shows a picture of a smiling soldier with a futuristic looking rifle on her shoulder saluting the viewer. The caption reads: \"Rivtech caseless firearms proudly supports our Military.\"", - "This is an advertisement for Rivtech brand firearms. It shows a picture of a trio of well armed hunters. The three are each armed with different futuristic looking weapons and are shooting at a hostile crowd of approaching wildlife. The caption reads: \"Rivtech caseless firearms. Superior stopping power.\"", - "This is an advertisement for the Rivtech brand Muscle Augmentation CBM. It shows a picture of a stylized, howling wolf against a red background. The caption reads: \"Rivtech neuroreactive myomer bionics. The most efficient synthetic adenosine triphosphate recovery system on the market.\" and \"Rivtech Bionics, guaranteed for life.\"", - "This is an advertisement for the Rivtech brand Wired Reflexes CBM. It shows a picture of a stylized, snarling black cat against a red background. The caption reads: \"Rivtech neuroelectric stimulation bionics. The next level in quantum inductive piezochemical nerve stimulation technology.\" and \"Rivtech Bionics, guaranteed for life.\"", - "This is an advertisement for the Rivtech brand Monomolecular Blade CBM. It shows a picture of a woman with a bionic blade extending from her arm steadfastly defending her children from an angry bear. The caption reads: \"Rivtech retractable monomolecular blade system. Failure is never an option.\" and \"Rivtech Bionics, guaranteed for life.\"", - "This is an advertisement for the Rivtech brand Synaptic Accelerator CBM. It shows a picture of a stylized, soaring raven against a red background. The caption reads: \"Introducing the Rivtech Model Six myelination retrovirus system. The latest in synthetic high-performance glycoprotein deposition technology.\" and \"Rivtech Bionics, guaranteed for life.\"", - "This is an advertisement for Rivtech brand ammunition. It shows a picture of an armored steel plate with a gaping hole blasted through the middle. Sitting beside the plate is a block of brightly colored caseless ammunition. The caption reads: \"Rivtech 8x40mm caseless. Nothing else comes close.\"", - "This is an advertisement for Leadworks LLC's Home Frontier Starter Pack. It shows a picture of a young suburban parent, equipped with rifle and revolver, keeping a steely eye on the neighborhood from the front porch. Similarly-armed parents are visible in front of every house on the street. Young children are at play and older ones tend a large vegetable garden. The caption reads: \"A well-armed community is a SAFE community. Leadworks, LLC.\"", - "This is a propaganda poster showing the Northrop Dispatch's military variant. It depicts the iconic dark green, arachnoid dispatch, standing before a fence and facing away from the camera as blurring machines rush forward from its back towards black silhouettes menacing on the horizon. It reads: \"WE ARE HERE TO PROTECT YOU.\"", - "This is an advertisement for Leadworks LLC handguns. It shows a picture of a bionic police officer assisting a young couple, who were being attacked by a gang of ruffians. The caption reads: \"You don't have to void your warranty or wear out your thumb to achieve felon-stopping firepower. The L39B, tried and true by our fine cyborgs in blue, is available in .45 ACP for that extra punch, and we offer semiautomatic (but equally robust!) versions for the civilian market. Leadworks, LLC.\"", - "This is an advertisement for Leadworks LLC modular weapons. It shows a picture of an overworked-yet-grateful police sergeant assembling a sleek rifle, with similar-looking weapons racked neatly behind her. The caption reads: \"Leadworks is proud to offer the L523 modular weapon system. No more must armorers stock and maintain stacks and stacks of rifles, carbines, and squad support weapons, juggling multiple incompatible ammunition types! Just procure a base unit for every trooper, and use our lightweight and portable conversion kits to swap from house-to-house CQB carbine to rooftop-patrol DSR, safely and cleanly!\"", - "This is a public notice from the Centers for Disease Control. Its message, repeated in several languages, reads: Due to the rising threat of so-called \"Green Fever\" the CDC would like to remind the public to cover your nose and mouth with a tissue when you cough or sneeze and wash your hands frequently with soap and water. In light of recent events, the CDC also recommends an annual flu vaccine for everyone 6 months of age and older.", - "This is a public message from the Federal Emergency Management Agency. Its message, repeated in several languages, reads: STAY IN YOUR HOMES! The US government is taking steps to halt the current epidemic of \"Green Fever\" and help is currently on its way to afflicted areas. In the name of public safety you are hereby ordered to remain in your homes until evacuated to a treatment camp by authorized agents of the United States military. Thank you for your compliance.", - "This is a public warning from an unnamed source. Its rambling message, poorly-photocopied onto both sides of the page, reads: Don't believe the lies! The Army is rounding up people in death camps while the Green Fever spreads like wildfire. Do not believe what the mainstream news-media is reporting. All official evacuation points are death-traps. Secure supplies and escape the cities while there is still time.", - "This is a public message from an unnamed source. Its message, photocopied from a scrawled handwritten copy, reads: REPENT YOUR SINS O BABYLON FOR THE TIME OF HIS JUDGEMENT IS NIGH! LOOK UPON YOUR DESTRUCTION AND KNOW THAT IT IS JUST! YOU WILL BE DIVIDED FATHER AGAINST SON AND MOTHER AGAINST CHILD UNTO THE VERY LAST SINNER!", - "This is a public warning from the United States Army. Its brief message, repeated in several languages, reads: The President of the United States has declared unilateral martial law affecting the entire nation. Shelter in place until evacuated to an appropriate emergency management camp by authorized military personnel. This curfew will remain in effect until further notice. Stay indoors. Violators will be shot on sight.", - "This is an advertisement for Rivtech's 'ATOMIC POWER THIRST' energy drink. While intended to advertise a new flavor called Isotope RU-238 'FRUIT', most of the text is dedicated to a long list of possible side effects: anxiety, insomnia, severe insomnia, dizziness, tremors, nausea, headache, vomiting, delusions, hallucinations, rhabdomyolysis, internal burns, thyroid cancer, extensive internal bleeding, upper gastrointestinal bleeding, diarrhea, cardiac dysrhythmia, cardiovascular collapse, suicidal ideation, seizures, ataxia, amnesia, mania, stroke, neurodegeneration, malignalitaloptereosis, necrotizing fasciitis, recurrent flu, and pinkeye.", - "This is a soda advertisement. On the front is a picture of a happy couple on a beach watching the sun set. Between them are bottles of soda. The poster reads, \"Cascade Cola, for those special moments\" in bold white letters.", - "This is a flier for a fast food chain. In it, a man is placing an order with an attractive woman wearing a bright green shirt in the window with two happy children sitting in the back seat. The flier reads \"Burgers, fries, and a Smile.\" Down in one corner is a company logo.", - "This is an advertisement for soda. It shows a dark brown can of soda on a black background. The label reads \"Spin\".", - "This is a flyer for a local pizza chain. On it is a picture of a cartoon Italian holding a pizza, with the words \"It's a goooood pizza\" written above his head.", - "This is a poster advertising contact lenses. On it is a picture of a blood shot eye with a rather long block of information beneath it making some fairly exaggerated claims about the product.", - "This is a flyer advertising a local radio station. It has a lot of bright colors and patterns, but no definite message other than \"104.4 all the best, all the time!\" in big yellow letters.", - "This is a large movie poster for \"Action Packstone 6, Revenge of the Dog Men\". It shows a fit man in a leather jacket with a revolver and a claymore walking towards the viewer. At his side is his trusty cyberdog companion and in the background is an explosion.", - "This is an illustrated poster for a brand of solar car. The vehicle is driving through a lush country side as small animals look on. The slogan \"Improving the world, one tank at a time.\" is written across the top in small letters.", - "This is a soda advertisement. On the front is a picture of a happy couple on a beach watching the sun set. Between them are bottles of soda. The poster reads, \"Cascade Cola, for those special moments\" in bold white letters. Someone has colored in the sun with a black marker. The words \"oh Discordia\" are scrawled across the top.", - "This is a flier for a fast food chain. In it, a man is placing an order with an attractive woman wearing a bright green shirt in the window with two happy children in the back seat. The flier reads \"Burgers, fries, and a Smile.\" down in one corner is a company logo. Someone has gone to town on this one with a permanent marker. It is now covered in rude images and racial epithets.", - "This is a flier for a local pizza chain. On it is a picture of a cartoon Italian holding a pizza, with the words \"It's a goooood pizza\" written above his head. Someone has drawn an exaggerated mustache on the cartoon Italian, along with a pair of crude, oversized breasts.", - "This is a poster advertising contact lenses. On it is a picture of a blood shot eye. Someone has defaced this one. The informative part has been torn off, and written in jagged letters across the top in red crayon are the words \"ALL HAIL THE CRIMSON KING!\".", - "This is an illustrated poster for a brand of solar car. The vehicle is driving through a lush country side as small animals look on. The slogan \"Improving the world, one tank at a time.\" is written across the top. 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.", - "This is a poster advertising a underground bunker. The poster shows a nuclear bomb wiping out a city while a family huddles safely underground. There a slogan \"Concerned about enemy attack? Want to protect your family? Join the VAULT program today.\" which is written in the middle. However, there seems to be no information about *how* one might do so.", - "This is a flier for Red Ryder BBGuns. On it a child is pulling a shining red wagon with a cooked pheasant on it and a wooden rifle over one shoulder. The child has a dog trailing beside him and a satisfied look on his face. The caption reads \"When you chose Red Ryder, you invested in the American Dream. You invested in our Independence.\"", - "This is an old flier for a movie from the 30s. A tan man with slick black hair and muscles bulging through his offwhite suit is clasping a woman to his hip with one hand, and the woman is wearing a black leather dress. With her hips splayed, she is holding a pistol in one hand and starring directly out of the advert. The caption reads \"Witness the rebirth of New Noir with 'Jersey Shore Blues'. Starring Jenifer Languiz as 'Snookie'!\"", - "\"Have you found (y)our savior today? Atom is here for you, it is inside you!\" This flier marked the rising popularity of the Atom Cult, a religion in which the essence of life is discovered through meticulous inward study and pious donations.", - "\"Joe's Diner; 1/2 pound of meat, 3 toppings, 'your choice', all with a side of freedom fries and a BIG Gulp size pop.\"", - "This is an advertisement for the Wink & Nod brand Soporific Induction CBM. It shows a picture of a woman sleeping on a bed of nails with a satisfied smile on her face. The caption reads: \"Catch Zs with ease, wherever you please!\"", - "This is a leaflet about autoclaving procedure. One sentence catches your attention \"/!\\Always place your tools into an autoclave pouch before autoclaving./!\\\"", - "This is an advertisement for a local hospital. You see a clean hospital room with a smiling man lying on the bed. The bed is connected to some medical apparatus with a \"Autodoc Mk. X\" printed on it. A doctor is seen working with its console, while his assistant is unpacking some high-tech hardware. The caption reads: \"Autodoc - augmentation has never been so easy, reliable, and safe.\"" + "This is an advertisement for the Diet Devil brand Metabolic Exchange CBM. It shows a picture of a tiny obese devil sitting on a woman's shoulder. The woman stares intently at a gigantic wedding cake covered with bacon and candy bars. The caption reads: \"Burn calories! Burn!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Diet Devil brand Internal Furnace CBM. It shows a picture of a tiny obese devil sitting on a man's shoulder. The man is about to bite into a frosting-covered baby. The caption reads: \"Eat What You Want! How You Want! Who You Want!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Diet Devil brand Ethanol Burner CBM. It shows a picture of a teenage boy driving a car while chugging a bottle of whiskey. A tiny obese devil sits on his shoulder and drinks a martini. The caption reads: \"Drink like there's no tomorrow!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Twenty8 brand Diamond Cornea CBM. It shows a picture of the cyber-module being clutched by an eagle in flight. The captions read: \"Get the new Model 28.bx Eagle-Eye!\" and \"Twenty8. See what you've been missing.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Twenty8 brand Night Vision CBM. It shows a picture of an owl swooping down on a the cyber-module. The captions read: \"Get the new Model 28.hx Night-Owl!\" and \"Twenty8. See what you've been missing.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Twenty8 brand Diamond Cornea CBM. It shows a picture of a flying hawk carrying the cyber-module in its beak. The captions read: \"Get the new Model 28.xx Hawk-Eye!\" and \"Twenty8. See what you've been missing.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Twenty8 brand Scent Vision CBM. It shows a picture of a vulture perched on a pile of skulls and cyber-modules. The captions read: \"Get the new Model 28.vx Vulture today!\" and \"Twenty8. See what you've been missing.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an ad for a Twenty8 brand Infrared Vision CBM. It shows a picture of a robotic phoenix covered in flames. The captions read: \"Get the new Model 28.tx Phoenix today!\" and \"Twenty8. See what you've been missing.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of copbot and an eyebot boldly emerging from a cloud of teargas and flame. The caption reads: \"DoubleTech Industries. Built to Protect. Programmed to Serve.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of an eyebot flying alongside a bald eagle and a Stealth bomber painted as an American flag. The caption reads: \"Built to Protect. Programmed to Serve.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of a dozen eyebots floating over a woman as she jogs through a park. The captions read: \"Built to Protect. Programmed to Serve.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for DoubleTech brand law enforcement robots. It shows a picture of copbot pepper-spraying a handcuffed rioter. In the background a troop of boy scouts salutes the robot. The caption reads: \"Built to Protect. Programmed to Serve.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Robert's Universal Robotics brand law enforcement robots. It shows a picture of a tribot incinerating a mob of looters and stepping over charred and smoking corpses. The caption reads: \"R.U.R. Technology you can Trust.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Robert's Universal Robots brand labor-bots. It shows a picture of a robot carrying a heavy pallet of bricks. In the background a human foreman is sleeping on the job, with his hardhat pulled down over his eyes. The captions read: \"It's a tough job, so why should you have to do it?\" and \"R.U.R. Technology you can Trust.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Robert's Universal Robots brand labor-bots. It shows a picture of a factory floor run entirely by robots. In the background a man in a suit reads a newspaper that shows soaring stock prices. The caption reads: \"R.U.R. Technology you can Trust.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of several bikini-clad female doctors removing the skin from man's face. The patient is strapped to a chair but cheerfully gives two thumbs up. The caption reads: \"Free Plastic Surgery While You Wait!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of several bikini-clad nurses giving liquid medicine to a delighted patient, who uses a fingertip needle to suck it in into his veins. Outside the window two shadow figures using the same fingertip needles to absorb something less resembling medicine. The caption reads: \"Why use old IV when you can have Intravenous Needle CBM!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a nerdy looking man surrounded by a group of admiring women. In the foreground a blood-drenched doctor gives an exaggerated wink and two thumbs up. The caption reads: \"Holiday sales! Get the package deals!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a man flexing shiny cybernetic arms in front of a mirror. He is flanked by two scantily clad nurses who hold bloody chainsaws and give approving thumbs up. In the background feral dogs gnaw on the man's discarded former limbs. The caption reads: \"Spring Cleaning Sale! 20% off!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a man carrying a somewhat confused horse on his shoulders. He is flanked by two scantily clad nurses who hold bloody chainsaws and give approving thumbs up. His bulging knees and elbows are stitched and seem to be the source of his ability. The caption reads: \"Brand new! Horse power at hand!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Sybil's Cyber Boutique. It shows a picture of a man smiling while being relentlessly punched by a boxer. He doesn't even sweat as punches have no effect on him. Two scantily clad nurses give approving thumbs up from the background. The caption reads: \"Bouncy as never before! Absorb those shocks!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Rivtech brand handguns. It shows a picture of a well armed couple in business suits with matching handguns facing down a legion of villainous looking characters. The caption reads: \"Protect yourself with the Rivtech caseless automagnum!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Rivtech brand rifles. It shows a picture of a smiling soldier with a futuristic looking rifle on her shoulder saluting the viewer. The caption reads: \"Rivtech caseless firearms proudly supports our Military.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Rivtech brand firearms. It shows a picture of a trio of well armed hunters. The three are each armed with different futuristic looking weapons and are shooting at a hostile crowd of approaching wildlife. The caption reads: \"Rivtech caseless firearms. Superior stopping power.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Rivtech brand Muscle Augmentation CBM. It shows a picture of a stylized, howling wolf against a red background. The caption reads: \"Rivtech neuroreactive myomer bionics. The most efficient synthetic adenosine triphosphate recovery system on the market.\" and \"Rivtech Bionics, guaranteed for life.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Rivtech brand Wired Reflexes CBM. It shows a picture of a stylized, snarling black cat against a red background. The caption reads: \"Rivtech neuroelectric stimulation bionics. The next level in quantum inductive piezochemical nerve stimulation technology.\" and \"Rivtech Bionics, guaranteed for life.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Rivtech brand Monomolecular Blade CBM. It shows a picture of a woman with a bionic blade extending from her arm steadfastly defending her children from an angry bear. The caption reads: \"Rivtech retractable monomolecular blade system. Failure is never an option.\" and \"Rivtech Bionics, guaranteed for life.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Rivtech brand Synaptic Accelerator CBM. It shows a picture of a stylized, soaring raven against a red background. The caption reads: \"Introducing the Rivtech Model Six myelination retrovirus system. The latest in synthetic high-performance glycoprotein deposition technology.\" and \"Rivtech Bionics, guaranteed for life.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Rivtech brand ammunition. It shows a picture of an armored steel plate with a gaping hole blasted through the middle. Sitting beside the plate is a block of brightly colored caseless ammunition. The caption reads: \"Rivtech 8x40mm caseless. Nothing else comes close.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Leadworks LLC's Home Frontier Starter Pack. It shows a picture of a young suburban parent, equipped with rifle and revolver, keeping a steely eye on the neighborhood from the front porch. Similarly-armed parents are visible in front of every house on the street. Young children are at play and older ones tend a large vegetable garden. The caption reads: \"A well-armed community is a SAFE community. Leadworks, LLC.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a propaganda poster showing the Northrop Dispatch's military variant. It depicts the iconic dark green, arachnoid dispatch, standing before a fence and facing away from the camera as blurring machines rush forward from its back towards black silhouettes menacing on the horizon. It reads: \"WE ARE HERE TO PROTECT YOU.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Leadworks LLC handguns. It shows a picture of a bionic police officer assisting a young couple, who were being attacked by a gang of ruffians. The caption reads: \"You don't have to void your warranty or wear out your thumb to achieve felon-stopping firepower. The L39B, tried and true by our fine cyborgs in blue, is available in .45 ACP for that extra punch, and we offer semiautomatic (but equally robust!) versions for the civilian market. Leadworks, LLC.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Leadworks LLC modular weapons. It shows a picture of an overworked-yet-grateful police sergeant assembling a sleek rifle, with similar-looking weapons racked neatly behind her. The caption reads: \"Leadworks is proud to offer the L523 modular weapon system. No more must armorers stock and maintain stacks and stacks of rifles, carbines, and squad support weapons, juggling multiple incompatible ammunition types! Just procure a base unit for every trooper, and use our lightweight and portable conversion kits to swap from house-to-house CQB carbine to rooftop-patrol DSR, safely and cleanly!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a public notice from the Centers for Disease Control. Its message, repeated in several languages, reads: Due to the rising threat of so-called \"Green Fever\" the CDC would like to remind the public to cover your nose and mouth with a tissue when you cough or sneeze and wash your hands frequently with soap and water. In light of recent events, the CDC also recommends an annual flu vaccine for everyone 6 months of age and older." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a public message from the Federal Emergency Management Agency. Its message, repeated in several languages, reads: STAY IN YOUR HOMES! The US government is taking steps to halt the current epidemic of \"Green Fever\" and help is currently on its way to afflicted areas. In the name of public safety you are hereby ordered to remain in your homes until evacuated to a treatment camp by authorized agents of the United States military. Thank you for your compliance." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a public warning from an unnamed source. Its rambling message, poorly-photocopied onto both sides of the page, reads: Don't believe the lies! The Army is rounding up people in death camps while the Green Fever spreads like wildfire. Do not believe what the mainstream news-media is reporting. All official evacuation points are death-traps. Secure supplies and escape the cities while there is still time." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a public message from an unnamed source. Its message, photocopied from a scrawled handwritten copy, reads: REPENT YOUR SINS O BABYLON FOR THE TIME OF HIS JUDGEMENT IS NIGH! LOOK UPON YOUR DESTRUCTION AND KNOW THAT IT IS JUST! YOU WILL BE DIVIDED FATHER AGAINST SON AND MOTHER AGAINST CHILD UNTO THE VERY LAST SINNER!" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a public warning from the United States Army. Its brief message, repeated in several languages, reads: The President of the United States has declared unilateral martial law affecting the entire nation. Shelter in place until evacuated to an appropriate emergency management camp by authorized military personnel. This curfew will remain in effect until further notice. Stay indoors. Violators will be shot on sight." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for Rivtech's 'ATOMIC POWER THIRST' energy drink. While intended to advertise a new flavor called Isotope RU-238 'FRUIT', most of the text is dedicated to a long list of possible side effects: anxiety, insomnia, severe insomnia, dizziness, tremors, nausea, headache, vomiting, delusions, hallucinations, rhabdomyolysis, internal burns, thyroid cancer, extensive internal bleeding, upper gastrointestinal bleeding, diarrhea, cardiac dysrhythmia, cardiovascular collapse, suicidal ideation, seizures, ataxia, amnesia, mania, stroke, neurodegeneration, malignalitaloptereosis, necrotizing fasciitis, recurrent flu, and pinkeye." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a soda advertisement. On the front is a picture of a happy couple on a beach watching the sun set. Between them are bottles of soda. The poster reads, \"Cascade Cola, for those special moments\" in bold white letters." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a flier for a fast food chain. In it, a man is placing an order with an attractive woman wearing a bright green shirt in the window with two happy children sitting in the back seat. The flier reads \"Burgers, fries, and a Smile.\" Down in one corner is a company logo." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for soda. It shows a dark brown can of soda on a black background. The label reads \"Spin\"." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a flyer for a local pizza chain. On it is a picture of a cartoon Italian holding a pizza, with the words \"It's a goooood pizza\" written above his head." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a poster advertising contact lenses. On it is a picture of a blood shot eye with a rather long block of information beneath it making some fairly exaggerated claims about the product." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a flyer advertising a local radio station. It has a lot of bright colors and patterns, but no definite message other than \"104.4 all the best, all the time!\" in big yellow letters." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a large movie poster for \"Action Packstone 6, Revenge of the Dog Men\". It shows a fit man in a leather jacket with a revolver and a claymore walking towards the viewer. At his side is his trusty cyberdog companion and in the background is an explosion." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an illustrated poster for a brand of solar car. The vehicle is driving through a lush country side as small animals look on. The slogan \"Improving the world, one tank at a time.\" is written across the top in small letters." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a soda advertisement. On the front is a picture of a happy couple on a beach watching the sun set. Between them are bottles of soda. The poster reads, \"Cascade Cola, for those special moments\" in bold white letters. Someone has colored in the sun with a black marker. The words \"oh Discordia\" are scrawled across the top." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a flier for a fast food chain. In it, a man is placing an order with an attractive woman wearing a bright green shirt in the window with two happy children in the back seat. The flier reads \"Burgers, fries, and a Smile.\" down in one corner is a company logo. Someone has gone to town on this one with a permanent marker. It is now covered in rude images and racial epithets." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a flier for a local pizza chain. On it is a picture of a cartoon Italian holding a pizza, with the words \"It's a goooood pizza\" written above his head. Someone has drawn an exaggerated mustache on the cartoon Italian, along with a pair of crude, oversized breasts." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a poster advertising contact lenses. On it is a picture of a blood shot eye. Someone has defaced this one. The informative part has been torn off, and written in jagged letters across the top in red crayon are the words \"ALL HAIL THE CRIMSON KING!\"." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an illustrated poster for a brand of solar car. The vehicle is driving through a lush country side as small animals look on. The slogan \"Improving the world, one tank at a time.\" is written across the top. 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." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a poster advertising a underground bunker. The poster shows a nuclear bomb wiping out a city while a family huddles safely underground. There a slogan \"Concerned about enemy attack? Want to protect your family? Join the VAULT program today.\" which is written in the middle. However, there seems to be no information about *how* one might do so." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a flier for Red Ryder BBGuns. On it a child is pulling a shining red wagon with a cooked pheasant on it and a wooden rifle over one shoulder. The child has a dog trailing beside him and a satisfied look on his face. The caption reads \"When you chose Red Ryder, you invested in the American Dream. You invested in our Independence.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an old flier for a movie from the 30s. A tan man with slick black hair and muscles bulging through his offwhite suit is clasping a woman to his hip with one hand, and the woman is wearing a black leather dress. With her hips splayed, she is holding a pistol in one hand and starring directly out of the advert. The caption reads \"Witness the rebirth of New Noir with 'Jersey Shore Blues'. Starring Jenifer Languiz as 'Snookie'!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "\"Have you found (y)our savior today? Atom is here for you, it is inside you!\" This flier marked the rising popularity of the Atom Cult, a religion in which the essence of life is discovered through meticulous inward study and pious donations." + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "\"Joe's Diner; 1/2 pound of meat, 3 toppings, 'your choice', all with a side of freedom fries and a BIG Gulp size pop.\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is an advertisement for the Wink & Nod brand Soporific Induction CBM. It shows a picture of a woman sleeping on a bed of nails with a satisfied smile on her face. The caption reads: \"Catch Zs with ease, wherever you please!\"" + ] + }, + { + "type": "snippet", + "category": "flier", + "text": [ + "This is a leaflet about autoclaving procedure. One sentence catches your attention \"/!\\Always place your tools into an autoclave pouch before autoclaving./!\\\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Have seen a zombie making its kin raise even despite damage that normally would take them down, the air around it shimmered like around that hole in the air we've seen creatures coming through back home\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I shot the sheriff; but I couldn't find the deputy\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Some plant vines started chasin after me, so I took a gas mask and some teargas and I ran through them.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Slingshot right through the windshield k?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"When I was a kid I used to slingshot at bugs and birds. Its really playing off nowadays, Ill tell you what\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"ALL YOU STONERS WITH YOUR VIDEYA GAMES - I BET YOU WISH YOU TOOK THE TIME TO LEARN A SKILL NOW DONTYA\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I tried to be a bard, but the rats didn't like my piping.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I found a chocolate bar on my pillow when I got home last night. I left and don't wanna go back.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"this demon thing came after me it got me good i shot it but i dont know if ill make it\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"DANNY IF YOU READ THIS THIS IS CLARA WE'RE ALL OKAY AND WE'RE HEADING TO THE RIVER. A BOAT SAID THEY WERE DOCKED NEARBY.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"When I think of all the dead people I get mad, because I was supposed to be the next big leader. WHERES MY CHANCE!??\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"You know they got a machine that can change the weather now? You put in a bunch o'numbers and the whole thing funks around!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"A man in a black robe came up to me, said he wanted to make a deal...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Cha-cha-cha-chia! Saw a woman today, with fungus coming out her head like hair tendrils.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"If only I had had more time with that Autodoc I could have saved them! But with that damn chip in their brain those poor cyborg wil never be human again...\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Save the cyborg! Please whoever read this you must help them! Knock them out or inactivate them I don't care! But bring them on that Autodoc and remove the chip messing up their brain.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Gotta slow down, man. I don't think we spend more than 20% of our time fightin', Put some Marley on and take off that racketus tripcore nonsense, man.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I kept shooting with my handgun, but I never got any better!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"ITS OKEY GUYS! I BARRYED A TIME CAPSUL IN MY BACKYARD! I PUT IN SOME HOEHOES.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I got my tinfoil hat on. Good thing too, cause this monster was starrin at me kinda funny, trying to freeze my mind in place.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"You want my advice? Smoke Crack, It gets shit done.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"The raindrops keep falling on my head, the acid ensured my eyes would soon be bleedin red...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"ALWAYS WITH THE EFFICIENCY GUYS; YOURE ALWAYS WORKING TO GO HOME TO PAY RENT TO SLEEP TO WAKE UP TO WORK AGAIN. STOP\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"IM OFF TO THUNDERDOME, BYE SUCKERS.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"If you get a parasite, take some sand and some vodka. Rub the sand into the afflicted area, real good too; like you're washing your hair. Then rinse with vodka.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I put my toilet water into a gastank. Then I poured it into a glass cup. Then I drank it without vomiting my insides back into the toilet.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"This isn't real this is a test to turn you into a Manchurian Candidate!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Real Men do it with STYLE. SUPASTYLIN.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"They're all hiding on an oil rig, I heard it myself over the AM airwaves. They think they're the nobles of the 21st century, the prigs.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "The Green Fever shall purge the land for His Chosen children. I have seen His black fire shining in the eyes of the afflicted and eagerly await the day He shall consume us all. Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn." + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Some of 'em are big. Real big. Don't stick around, I saw my mate get fucking torn in half!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"po p y fl ow er s don t ea at them\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Some guy is walking through the horde without a scratch. Please tell me they're docile now. Please fucking tell me.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Swamp water tastes good! An\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Why are all the lawnmowers broken?!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Some of the bridges, they're right next to each other, right? If you see something up ahead one of those, just careen through to the other side. My van was long enough to bridge right across!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"BURN BURN BURN BURN BURN ALL BURN ALL BURN ALL BURN\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I took all the supplies. Don't follow me. I'm sorry, man. I have to look out for myself now.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"My next-door neighbor had a katana in his basement!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Am I the last one alive?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Boyfriend stole my pistol while I was asleep. I locked him in the bathroom and set the house on fire. At least he attracted their attention.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I get air conditioners, but... this whole laboratory is frozen to ice!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Fuck aerodynamics, I want another engine!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"A wood ax works pretty well against them. So does a machete, but you can't cut down a tree.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Why would you hide in a farm? Sure, it's isolated, but if they know where you are, you don't exactly have cover on all sides.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Imagine if this spread to, like, Australia. Zombie kangaroos. Haha...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"how DO I use THESE bionic THINGS? I just STUCK the wires IN my WRIST and now I CAN'T STOP twitching. AND now my LEG hurts! Is THAT acid?!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I tried playing memorial music for my dead brother, on a radio. They must have been attracted to it. I can't see his grave through the crowd anymore.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Took a picture of a dead dog leaping right onto a soldier. Sweet fucking shot!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Gas mask is nice and all, but I can hardly run with it on.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"One of those robot tanks was blocking the way out. Got some sort of sweetspot, though, where it can't decide what to shoot with, maybe 30 yards or so? Made it to the truck and just drove.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Those evac shelters have basements. Remember when they were full of food? Every single one is fucking empty now...\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I made mushroom babies. My arms hurt. I hurt. I had mushroom babies. They are growing now.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"It doesn't matter how you die. You're gonna turn into one of them.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"WHY DO ALL THE DEAD CHILDREN GO TO SCHOOL\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Don't keep your goddamn casings! They'll just weigh you down.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "There is a splotch of blood on it. \"blood of the zombie king\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Local auto shop is full of the things. And to think I worked with them on repairing cars... now they're just... fucking corpses.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"DON'T EAT THE SLIME DON'T EAT THE SLIME DON'T EAT THE SLIME\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I used to be human. But... my arms... they are like tentacles. I slither along akin to a snail and I shed my feathers every day.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I don't have enough time to double tap. You don't either.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"PINK TALL ONES RUN RUN RUN RUN RUN\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Are they still human inside?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"the eye it watches me it follows me everywhere help\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"tHE Portal it's so COld\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I can wear three backpacks! Fuck, I'm good.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"They build modern bullets fuckin crazy. Set some on fire and they all goes like a lil grenade. Need kindling first.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"GOD CAN'T SAVE US\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"SHOOT YOURSELF, LET IT END QUICKLY\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"There are five basic rules to survival. One, stay prepared and watchful. Two, keep your iron sights lined up or succumb. Three, stay FAR WAY from all\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"The bricks of this bathroom look like a face. Haha... it's all I can focus on. At least let me shit before you break down the door. Please...\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"What the hell are they mining for in these shafts?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I am one with the plants.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Broadsword! Yeah!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"If you see a trail of dirt getting displaced in your direction... run. Run for your life.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Don't fall down a nuclear silo, they left 'em all open\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"DINT ATE THE MUSHROM\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Libraries are useless after the apocalypse.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I swear to God I've seen these plant things before! In a book, or something! I swear...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Is robbing a bank easier or harder now that all the guards are undead?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Make sure your car is REALLY stopped before you get out.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I found some kind of stone pyramid with spikes. I feel... I feel like I'm being watched.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Why would you ever hide in a damn gun store? The owner... he was a moron alright.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"This apocalypse will be good for the US financial crisis\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"THEY DON'T feel ANYTHING\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"What was XEDRA doing, anyway?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Is that one pharmaceutical company gonna come out with a, like, cure for this anytime soon?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"THE MARLEY WAS RIGHT\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I... I just put a muffler onto a... nail gun.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Squeeze some ammonia into zombie flesh and hold it tight. You smell like one of them! I think.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I thought my damn terminal cancer was bad enough... now the dead are rising?!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"THE GOO IS IN THE WATER DON'T DRINK WATER\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Don't let the ember go out please don't go out I need you precious fire.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"What's with these pits... with, like, sli\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Everyone used their gas to get to another town... but it's the same story everywhere.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"The gas the gas the green gas spreads forever\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Most things can be taken out with a shotgun. More things can be taken out with a grenade. Imagine what a mini-nuke does.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"My friend gave me lit dynamite, but it hasn't exploded yet... I don't think that's supposed to happen. God help us.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Come to the bar if you see this, let's re-enact a zombie movie, friends.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"They are NOT slow! They are NEVER slow!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I had a phobia of bees BEFORE they grew to enormous sizes.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Your backpack's gonna weigh you down in the water. Hell, feel free to get naked. Nobody's going to judge your modesty.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Guns too loud. Crossbow too long. Running is best.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"99% dead? I'd like to see a million zombies on Wall Street.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Crawled in through the vents. Whole office building is infested.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Don't shoot the people who get bit! It's OK! Death is the only thing that makes you turn!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Zombies, walkers, dead ones, undead, reanimated, zed, animata, biters. Did I miss any?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I left a stash of rechargeable batteries in my safe and apparently the goddamn zombie Tooth Fairy has taken them all.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"All I've got is this keg of beer and an appetite. Come at me, apocalypse!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"My cousin says that murder nowadays is just a war crime. War for what, I don't know, since the undead seem to be rebels without a cause.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"SWAMPS RUN SWAMPS NO SWAMPS RUN\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"dog bit off my legs, magical hospital make all better\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"They said a walking cane was a useless weapon... but then I hit one of them with it.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"River water around these parts is extremely safe. Probably more safe than the damn tap water at this point.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"DON't bomB THe PORtals it MAKES iT WORSE\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"No wonder all the camps got overrun, they kept a goddamn zombie test subject! Each and every one of 'em!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I just realized how damn demented those fliers are.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I propose a new currency: 9mm.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Something wrong, with cars..., ram, and,. my speedometer read six hundred.,.thousand can't feel lungs,\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"My skin is crawling and I teleport every few minutes... what is going o\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"You can't see them through the smoke but they can't either.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"There's gotta be a better use of all this rebar...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"met schoolhouse of people, all crazy and mad they were, ate killed all of them, yum\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"STAY AWAY FROM THE BIG ONES IN THE FOREST\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"got into a prison with a halligan bar. makes me wonder how they kept prisoners inside\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Shopping carts become a lot more efficient when you plate-weld a trunk to them. Crate on wheels!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"telportfd itont wall, amr gone\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"This thing isn't a car any more. It's just a fucking mountain of metal on wheels, which I live in.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Anyone else seen those really... SQUARE-looking towns? I don't think they're normal.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"BOSTON IS FUNGUS DON'T GO THERE\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"big z threw me on top of the building, legs broken but at least im safe for a few more minutes\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I'm starting to feel bad about disabling all these turrets and stealing their ammunition.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Make sure you strip the house for all available resources-- tubes, pipes, ceramics, sheets, strings, and more\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"there was a giant shell in my backyard for a few weeks. one day a squid guy popped out of it and said his name was steve\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"FUCK FAUX-MUTANTS, BEING 'EXTREMELY THIRSTY' DOES NOT COUNT\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"There's nothing wrong with eating people if you HAVE to. I mean, I only did it because I didn't want to waste my potato chips!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"all these robotic police really take the piss out of kops\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"CHINA DID THIS\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"RUSSIA DID THIS\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Thank You RivTech. Thank You For Good Coffee. Will Always Stay Awake For You Rivtech.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"See, now I'm just not sure where I'm putting all these storage batteries in my body!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"dont try to leave they will shoot you\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"herbs + salt + cooking oil + coffee powder + ammonia = a meal, right?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"HA! YOU THOUGHT I WOULD LEAVE A USEFUL NOTE?! SCREW YOU! GO DIE IN A BLOB PIT!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I'd like to thank my high-school culinary arts class for teaching me how to make RDX and mutagenic serum.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Makayla Sanchez burned down my fucking house\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"he calls himself the 'man with the hands', don't approach\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"So... what happens if the military rescues us? We're all freaks by now, right? How the fuck are we gonna go back to real life?\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Not sure if my companion WANTED to turn into a bird, but I was the one giving her the serum, and I saved her life! That's fair, right?\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"what's a resonance cascade? can't be that bad, maybe i'll get some cool l##/###\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I've never been very confident, is that why my shots keep missing?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"FIRE BAD. NOW NAKED. PLEASE HELP.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Heard of a place up in Maine where people have their shit together. Hundreds of people, defense, food and shelter... let's go raid it, guys!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"The whispering fog is taking me in like a blanket. I'm warm now. I'm finally\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"got a video recording of hour one when the portals were still up. pretty cool\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Stuck here. Zombies outside. Friends were outside too, now they're part of zombies. Need to be quiet\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"if anyones reading this, please tell my mom i was right about insects being superior\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Diamond coated sword! Diamond coated hammer! Diamond coated clothes! Diamond coated hands help\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"waded through 14 miles of sewage for playboy magazine, wasnt worth it\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I'm coming back for this note in twelve hours. If I don't, take all my shit!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"all my friends died when they came near me. there's nothing funny about that\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Wow, this sinkhole is really comfortable!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"DOG NOT REAL DOG\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"This is all just a dream, right??! I'M GOING TO WAKE UP, SHE'S GOING TO BE OK\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"wek ik spak\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"IT'S BURIED! THE TEMPLE IS BURIED!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"If I had a dollar for every cash card I've found, I'd have more money than is on these stupid things!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"can never have enough kevlar. basically just live in a kevlar turtle shell.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Wow, I haven't had to piss in weeks!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"MY GLITTERING SNAKE COMPELS YOU! OBEY!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"can sunstasin self frorever off fof my funggnaloid babiues oout fo yme arms eat themm up eatbtb my chidlldren\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"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.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"got a video recording of hour one when the portals were still up. pretty cool\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"a ctulaly don t mi nd t he cold it s f i ne in h ere nn o problem\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"tried to shoot myself but the nanobots fixed it, fucked up the controls, now i can't turn them off i just want it to be over\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Tried wearing dead zombie clothes, but they still knew I was alive! It's like they're a hivemind, man!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"MY PALMS ONLY GROW IN POWER!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"riddle. what's 1/4 feathers, 1/4 scales, 1/4 metal, and 1/4 flesh? answer: sorry, but you should know this one.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"For anyone that's reading this, I just want to confirm (FROM AN UNBIASED SOURCE) that it was NOT the scientists' fault.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Whoops, I put my sister's insulin in my internal furnace. Shit.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"traveled with a few friends after the thing started. mostly stuck to bike paths and eaten fruit and mushroomdhfhghghhhh\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"We're the eagle-eyes in the sky! Just two mutant avians in our helicopter! Filming the Cataclysm! Check us out on any working electronics!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"My friend was getting eaten. Started ranting about how he had 70 HP on his head, and that the zombie shouldn't penetrate his armor... poor guy. Bad die roll, I guess.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"WE'RE GOING TO SAIL TO CANADA, BITCHES!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Anyone hear about that guy who tried to sail his family to Canada? What a moron, right?\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"recently canadian border has gotten more dangerous don't go there\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Hey, what happened to my dad's airboat?!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Reading is good! Never stop reading. Read EVERYTHING.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I'm gonna be honest here, I'm really gonna die soon so I dont want to gt forgnottedn ples dont forntget me y nrmmy name is h@@hbhbh\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"It wasn't Russia or China, guys. It was me. This whole apocalypse is my fault. You can just call me... Darkling.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"all it takes to seal a wound is a sawblade and a match! trust me\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I wonder what's in this sarcophagus? Maybe it's a real sarcophagus. Maybe there's a big guy named God under here.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"these hulks aint so incredible when ya got .50\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Got my legs dissected. It's OK, at least I have my dog! Her legs were also dissected, but that's OK, we're gonna be OK...\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Mi-go is friend! Go with Mi-go to friend dimension! On the Friend Team!!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"We have Landed our Comet. The Sky is Ablaze.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Last one standing. It's good feeling. I win. I win I win I win I win I win\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Adderall cures weakness, tramadol cures death\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"These turrets keep dodging my FUCKING BULLETS!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Best way to train is by throwing pebbles at birds. You'll be a legend.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"new bedford is overrun. i'm sorry. we tried.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Check out my cooking show on The Television! Making Mannwurst sausages out of some of those assholes who tried to raid my kitchen earlier...\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Renting out my rat tunnels for 50 9mm rounds a night. I dug them with my own claws, so you know they're the best.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Anyone wanna listen to some music at full volume and shoot the Zs that approach? You pick the tunes if I get some ammo.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Lots of new easy ways to burn calories now. Fighting aminata, managing the fields, running with my wings buzzing, and more.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"lotta dead mothers\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"FLAMING SWORD HUMANE. CAUTERIZES WOUNDS. SURGICAL.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"knife screams it screams i cant breathe so scared help me please help\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"when it started, we could still hope The Man was gonna save us...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Hey, Ted. Alexander and Cass and I are heading to Z-Mobile for the last of the meth. Keep the lizard fetus fed for us, OK?\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"i say we call the material from melting down cars and dead robots 'massachusetite' or 'vermontsteel' or 'connecticut composite'\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Sometimes what you need when you're infected, bleeding, sick and hungover is a J and some chips.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I am nothing without my supertank and storage megastructure.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Hahahahaa stupid fuck in his mansion, with his plate armor and big axe. Guy never swung the thing in his life. Can't block bullets, dipshit\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"I woke up with a dozen bears in a tribe outside the vault. One was covered in red markings, glowing-- speaking.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"poor guy. watched him from afar with my binocs for months and months. today he died fighting. feels like i knew him even though i never approached.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"I hope I don't leave this note in a pawn shop, bank vault, or library... 'cus that would mean I'm dead.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"ENGLAND DID THIS\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"That little fakkin rat din say anythin till we whacked him with a steel chain! Then 'e just wanted to know if he could buy the chain!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"tom, adorned with fluid sacs three layers deep, crawls to safety like a slug\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"my friend turned fuckin insane and ate his arms and then his sister's arms! he looked rather cross\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Starting today, the hallucinations are my only friends.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"For sale: zombaby shoes, very filthy\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Started my own brewery recently. I just need some glass bottles, now! Several thousand! I'm planning way ahead.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"We're the eagle-eyes in the sky! We're gonna fly our bird 'copter! Northward! And bomb the military checkpoint! Wish us luck!\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Heard recently of some radio op who lives in a skyscraper, announcing where those hordes are going. Couldn't find the frequency, though.\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Woah, bud! Not all cannibals eat meat!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"ay why aint my bullets fuckin explodin\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Those Fiktok clan people picked this place clean... no food...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"The fewer people in New England, the stronger we'll become.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"It all boils down to the Apex Predator.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"King Jameson ik goner! Thee cyber limbs isk falleng off me body! Stak pyroteknik I heear!\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Christian, but have no bible-- the Flying Spaghetti Monster is my god now. For morale's sake...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"THE GRANADE DEBUGGED MY SPIDER FRIEND WHERE IS SHE\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Got my mortar and pestle. Now if I could just find some avocados...\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"saw a girl standing with the mushrooms. spores coming out of slits in her neck. she looked happy.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Found some pink berries. Eating them makes bushes into more pink berries. Infinite berry.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"m ust grow unity\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"AMY IS FUNGUS. DO NOT LISTEN IF SHE ASKS YOU TO TAKE OFF MASK\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"my rabbi follows a new god now. asks us to call him a local guide. i dont mind, he keeps us fed\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Fungus are helping us. Help them and they will unite us\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Saw a boy couldnt be older than 16. Walked straight through the mushroom tower. THROUGH IT\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Found some food in a box outside my house. We ate it and now the fungaloids aren't harming us. I think we are a mushroom now\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"saw the girl again. she looked dead exhausted and walked right into the fungus. 30 mins later and she walked out good as new\"" + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"HADENSBROOK REBUILT AROUND FUNGUS. THEY EAT GRAY APPLES AND SPREAD IT\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"mycus must grow\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"School bus with solar panels = TRUST. Gave us berries and seeds, we were out of food\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"d o nThelp scho Ol buss makE seeeedS ARe FUNGUS!! !\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + "\"Go to every fungus patch you find but WEAR A SUIT. Food there is very very filling. Look for pink berries, blue flowers\"" ] }, + { + "type": "snippet", + "category": "note", + "text": [ "\"red blue yellow berry seed sap bloom flowers tower mycus mycus mycus.\"" ] + }, + { + "type": "snippet", + "category": "note", + "text": [ "\"Husband 30 yrs died in bombs. Mushrooms brought him back. GIVE YOURSELF TO THEm AND THEY WILL HELP YOU\"" ] + }, { "type": "snippet", "category": "note", "text": [ - "\"WE WERE RIGHT THE GOVERNMENT DID IT\"", - "\"Have seen a zombie making its kin raise even despite damage that normally would take them down, the air around it shimmered like around that hole in the air we've seen creatures coming through back home\"", - "\"I shot the sheriff; but I couldn't find the deputy\"", - "\"Some plant vines started chasin after me, so I took a gas mask and some teargas and I ran through them.\"", - "\"Slingshot right through the windshield k?\"", - "\"When I was a kid I used to slingshot at bugs and birds. Its really playing off nowadays, Ill tell you what\"", - "\"ALL YOU STONERS WITH YOUR VIDEYA GAMES - I BET YOU WISH YOU TOOK THE TIME TO LEARN A SKILL NOW DONTYA\"", - "\"I tried to be a bard, but the rats didn't like my piping.\"", - "\"I found a chocolate bar on my pillow when I got home last night. I left and don't wanna go back.\"", - "\"this demon thing came after me it got me good i shot it but i dont know if ill make it\"", - "\"DANNY IF YOU READ THIS THIS IS CLARA WE'RE ALL OKAY AND WE'RE HEADING TO THE RIVER. A BOAT SAID THEY WERE DOCKED NEARBY.\"", - "\"When I think of all the dead people I get mad, because I was supposed to be the next big leader. WHERES MY CHANCE!??\"", - "\"You know they got a machine that can change the weather now? You put in a bunch o'numbers and the whole thing funks around!\"", - "\"A man in a black robe came up to me, said he wanted to make a deal...\"", - "\"Cha-cha-cha-chia! Saw a woman today, with fungus coming out her head like hair tendrils.\"", - "\"If only I had had more time with that Autodoc I could have saved them! But with that damn chip in their brain those poor cyborg wil never be human again...\"", - "\"Save the cyborg! Please whoever read this you must help them! Knock them out or inactivate them I don't care! But bring them on that Autodoc and remove the chip messing up their brain.\"", - "\"Gotta slow down, man. I don't think we spend more than 20% of our time fightin', Put some Marley on and take off that racketus tripcore nonsense, man.\"", - "\"I kept shooting with my handgun, but I never got any better!\"", - "\"ITS OKEY GUYS! I BARRYED A TIME CAPSUL IN MY BACKYARD! I PUT IN SOME HOEHOES.\"", - "\"I got my tinfoil hat on. Good thing too, cause this monster was starrin at me kinda funny, trying to freeze my mind in place.\"", - "\"You want my advice? Smoke Crack, It gets shit done.\"", - "\"The raindrops keep falling on my head, the acid ensured my eyes would soon be bleedin red...\"", - "\"ALWAYS WITH THE EFFICIENCY GUYS; YOURE ALWAYS WORKING TO GO HOME TO PAY RENT TO SLEEP TO WAKE UP TO WORK AGAIN. STOP\"", - "\"IM OFF TO THUNDERDOME, BYE SUCKERS.\"", - "\"If you get a parasite, take some sand and some vodka. Rub the sand into the afflicted area, real good too; like you're washing your hair. Then rinse with vodka.\"", - "\"I put my toilet water into a gastank. Then I poured it into a glass cup. Then I drank it without vomiting my insides back into the toilet.\"", - "\"This isn't real this is a test to turn you into a Manchurian Candidate!\"", - "\"Real Men do it with STYLE. SUPASTYLIN.\"", - "\"They're all hiding on an oil rig, I heard it myself over the AM airwaves. They think they're the nobles of the 21st century, the prigs.\"", - "The Green Fever shall purge the land for His Chosen children. I have seen His black fire shining in the eyes of the afflicted and eagerly await the day He shall consume us all. Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.", - "\"Some of 'em are big. Real big. Don't stick around, I saw my mate get fucking torn in half!\"", - "\"po p y fl ow er s don t ea at them\"", - "\"Some guy is walking through the horde without a scratch. Please tell me they're docile now. Please fucking tell me.\"", - "\"Swamp water tastes good! An\"", - "\"Why are all the lawnmowers broken?!\"", - "\"Some of the bridges, they're right next to each other, right? If you see something up ahead one of those, just careen through to the other side. My van was long enough to bridge right across!\"", - "\"BURN BURN BURN BURN BURN ALL BURN ALL BURN ALL BURN\"", - "\"I took all the supplies. Don't follow me. I'm sorry, man. I have to look out for myself now.\"", - "\"My next-door neighbor had a katana in his basement!\"", - "\"Am I the last one alive?\"", - "\"Boyfriend stole my pistol while I was asleep. I locked him in the bathroom and set the house on fire. At least he attracted their attention.\"", - "\"I get air conditioners, but... this whole laboratory is frozen to ice!\"", - "\"Fuck aerodynamics, I want another engine!\"", - "\"A wood ax works pretty well against them. So does a machete, but you can't cut down a tree.\"", - "\"Why would you hide in a farm? Sure, it's isolated, but if they know where you are, you don't exactly have cover on all sides.\"", - "\"Imagine if this spread to, like, Australia. Zombie kangaroos. Haha...\"", - "\"how DO I use THESE bionic THINGS? I just STUCK the wires IN my WRIST and now I CAN'T STOP twitching. AND now my LEG hurts! Is THAT acid?!\"", - "\"I tried playing memorial music for my dead brother, on a radio. They must have been attracted to it. I can't see his grave through the crowd anymore.\"", - "\"Took a picture of a dead dog leaping right onto a soldier. Sweet fucking shot!\"", - "\"Gas mask is nice and all, but I can hardly run with it on.\"", - "\"One of those robot tanks was blocking the way out. Got some sort of sweetspot, though, where it can't decide what to shoot with, maybe 30 yards or so? Made it to the truck and just drove.\"", - "\"Those evac shelters have basements. Remember when they were full of food? Every single one is fucking empty now...\"", - "\"I made mushroom babies. My arms hurt. I hurt. I had mushroom babies. They are growing now.\"", - "\"It doesn't matter how you die. You're gonna turn into one of them.\"", - "\"WHY DO ALL THE DEAD CHILDREN GO TO SCHOOL\"", - "\"Don't keep your goddamn casings! They'll just weigh you down.\"", - "There is a splotch of blood on it. \"blood of the zombie king\"", - "\"Local auto shop is full of the things. And to think I worked with them on repairing cars... now they're just... fucking corpses.\"", - "\"DON'T EAT THE SLIME DON'T EAT THE SLIME DON'T EAT THE SLIME\"", - "\"I used to be human. But... my arms... they are like tentacles. I slither along akin to a snail and I shed my feathers every day.\"", - "\"I don't have enough time to double tap. You don't either.\"", - "\"PINK TALL ONES RUN RUN RUN RUN RUN\"", - "\"Are they still human inside?\"", - "\"the eye it watches me it follows me everywhere help\"", - "\"tHE Portal it's so COld\"", - "\"I can wear three backpacks! Fuck, I'm good.\"", - "\"They build modern bullets fuckin crazy. Set some on fire and they all goes like a lil grenade. Need kindling first.\"", - "\"GOD CAN'T SAVE US\"", - "\"SHOOT YOURSELF, LET IT END QUICKLY\"", - "\"There are five basic rules to survival. One, stay prepared and watchful. Two, keep your iron sights lined up or succumb. Three, stay FAR WAY from all\"", - "\"The bricks of this bathroom look like a face. Haha... it's all I can focus on. At least let me shit before you break down the door. Please...\"", - "\"What the hell are they mining for in these shafts?\"", - "\"I am one with the plants.\"", - "\"Broadsword! Yeah!\"", - "\"If you see a trail of dirt getting displaced in your direction... run. Run for your life.\"", - "\"Don't fall down a nuclear silo, they left 'em all open\"", - "\"DINT ATE THE MUSHROM\"", - "\"Libraries are useless after the apocalypse.\"", - "\"I swear to God I've seen these plant things before! In a book, or something! I swear...\"", - "\"Is robbing a bank easier or harder now that all the guards are undead?\"", - "\"Make sure your car is REALLY stopped before you get out.\"", - "\"I found some kind of stone pyramid with spikes. I feel... I feel like I'm being watched.\"", - "\"Why would you ever hide in a damn gun store? The owner... he was a moron alright.\"", - "\"This apocalypse will be good for the US financial crisis\"", - "\"THEY DON'T feel ANYTHING\"", - "\"What was XEDRA doing, anyway?\"", - "\"Is that one pharmaceutical company gonna come out with a, like, cure for this anytime soon?\"", - "\"THE MARLEY WAS RIGHT\"", - "\"I... I just put a muffler onto a... nail gun.\"", - "\"Squeeze some ammonia into zombie flesh and hold it tight. You smell like one of them! I think.\"", - "\"I thought my damn terminal cancer was bad enough... now the dead are rising?!\"", - "\"THE GOO IS IN THE WATER DON'T DRINK WATER\"", - "\"Don't let the ember go out please don't go out I need you precious fire.\"", - "\"What's with these pits... with, like, sli\"", - "\"Everyone used their gas to get to another town... but it's the same story everywhere.\"", - "\"The gas the gas the green gas spreads forever\"", - "\"Most things can be taken out with a shotgun. More things can be taken out with a grenade. Imagine what a mini-nuke does.\"", - "\"My friend gave me lit dynamite, but it hasn't exploded yet... I don't think that's supposed to happen. God help us.\"", - "\"Come to the bar if you see this, let's re-enact a zombie movie, friends.\"", - "\"They are NOT slow! They are NEVER slow!\"", - "\"I had a phobia of bees BEFORE they grew to enormous sizes.\"", - "\"Your backpack's gonna weigh you down in the water. Hell, feel free to get naked. Nobody's going to judge your modesty.\"", - "\"Guns too loud. Crossbow too long. Running is best.\"", - "\"99% dead? I'd like to see a million zombies on Wall Street.\"", - "\"Crawled in through the vents. Whole office building is infested.\"", - "\"Don't shoot the people who get bit! It's OK! Death is the only thing that makes you turn!\"", - "\"Zombies, walkers, dead ones, undead, reanimated, zed, animata, biters. Did I miss any?\"", - "\"I left a stash of rechargeable batteries in my safe and apparently the goddamn zombie Tooth Fairy has taken them all.\"", - "\"All I've got is this keg of beer and an appetite. Come at me, apocalypse!\"", - "\"My cousin says that murder nowadays is just a war crime. War for what, I don't know, since the undead seem to be rebels without a cause.\"", - "\"SWAMPS RUN SWAMPS NO SWAMPS RUN\"", - "\"dog bit off my legs, magical hospital make all better\"", - "\"They said a walking cane was a useless weapon... but then I hit one of them with it.\"", - "\"River water around these parts is extremely safe. Probably more safe than the damn tap water at this point.\"", - "\"DON't bomB THe PORtals it MAKES iT WORSE\"", - "\"No wonder all the camps got overrun, they kept a goddamn zombie test subject! Each and every one of 'em!\"", - "\"I just realized how damn demented those fliers are.\"", - "\"I propose a new currency: 9mm.\"", - "\"Something wrong, with cars..., ram, and,. my speedometer read six hundred.,.thousand can't feel lungs,\"", - "\"My skin is crawling and I teleport every few minutes... what is going o\"", - "\"You can't see them through the smoke but they can't either.\"", - "\"There's gotta be a better use of all this rebar...\"", - "\"met schoolhouse of people, all crazy and mad they were, ate killed all of them, yum\"", - "\"STAY AWAY FROM THE BIG ONES IN THE FOREST\"", - "\"got into a prison with a halligan bar. makes me wonder how they kept prisoners inside\"", - "\"Shopping carts become a lot more efficient when you plate-weld a trunk to them. Crate on wheels!\"", - "\"telportfd itont wall, amr gone\"", - "\"This thing isn't a car any more. It's just a fucking mountain of metal on wheels, which I live in.\"", - "\"Anyone else seen those really... SQUARE-looking towns? I don't think they're normal.\"", - "\"BOSTON IS FUNGUS DON'T GO THERE\"", - "\"big z threw me on top of the building, legs broken but at least im safe for a few more minutes\"", - "\"I'm starting to feel bad about disabling all these turrets and stealing their ammunition.\"", - "\"Make sure you strip the house for all available resources-- tubes, pipes, ceramics, sheets, strings, and more\"", - "\"there was a giant shell in my backyard for a few weeks. one day a squid guy popped out of it and said his name was steve\"", - "\"FUCK FAUX-MUTANTS, BEING 'EXTREMELY THIRSTY' DOES NOT COUNT\"", - "\"There's nothing wrong with eating people if you HAVE to. I mean, I only did it because I didn't want to waste my potato chips!\"", - "\"all these robotic police really take the piss out of kops\"", - "\"CHINA DID THIS\"", - "\"RUSSIA DID THIS\"", - "\"Thank You RivTech. Thank You For Good Coffee. Will Always Stay Awake For You Rivtech.\"", - "\"See, now I'm just not sure where I'm putting all these storage batteries in my body!\"", - "\"dont try to leave they will shoot you\"", - "\"herbs + salt + cooking oil + coffee powder + ammonia = a meal, right?\"", - "\"HA! YOU THOUGHT I WOULD LEAVE A USEFUL NOTE?! SCREW YOU! GO DIE IN A BLOB PIT!\"", - "\"I'd like to thank my high-school culinary arts class for teaching me how to make RDX and mutagenic serum.\"", - "\"Makayla Sanchez burned down my fucking house\"", - "\"he calls himself the 'man with the hands', don't approach\"", - "\"So... what happens if the military rescues us? We're all freaks by now, right? How the fuck are we gonna go back to real life?\"", - "\"Not sure if my companion WANTED to turn into a bird, but I was the one giving her the serum, and I saved her life! That's fair, right?\"", - "\"what's a resonance cascade? can't be that bad, maybe i'll get some cool l##/###\"", - "\"I've never been very confident, is that why my shots keep missing?\"", - "\"FIRE BAD. NOW NAKED. PLEASE HELP.\"", - "\"Heard of a place up in Maine where people have their shit together. Hundreds of people, defense, food and shelter... let's go raid it, guys!\"", - "\"The whispering fog is taking me in like a blanket. I'm warm now. I'm finally\"", - "\"got a video recording of hour one when the portals were still up. pretty cool\"", - "\"Stuck here. Zombies outside. Friends were outside too, now they're part of zombies. Need to be quiet\"", - "\"if anyones reading this, please tell my mom i was right about insects being superior\"", - "\"Diamond coated sword! Diamond coated hammer! Diamond coated clothes! Diamond coated hands help\"", - "\"waded through 14 miles of sewage for playboy magazine, wasnt worth it\"", - "\"I'm coming back for this note in twelve hours. If I don't, take all my shit!\"", - "\"all my friends died when they came near me. there's nothing funny about that\"", - "\"Wow, this sinkhole is really comfortable!\"", - "\"DOG NOT REAL DOG\"", - "\"This is all just a dream, right??! I'M GOING TO WAKE UP, SHE'S GOING TO BE OK\"", - "\"wek ik spak\"", - "\"IT'S BURIED! THE TEMPLE IS BURIED!\"", - "\"If I had a dollar for every cash card I've found, I'd have more money than is on these stupid things!\"", - "\"can never have enough kevlar. basically just live in a kevlar turtle shell.\"", - "\"Wow, I haven't had to piss in weeks!\"", - "\"MY GLITTERING SNAKE COMPELS YOU! OBEY!\"", - "\"can sunstasin self frorever off fof my funggnaloid babiues oout fo yme arms eat themm up eatbtb my chidlldren\"", - "\"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.\"", - "\"got a video recording of hour one when the portals were still up. pretty cool\"", - "\"a ctulaly don t mi nd t he cold it s f i ne in h ere nn o problem\"", - "\"tried to shoot myself but the nanobots fixed it, fucked up the controls, now i can't turn them off i just want it to be over\"", - "\"Tried wearing dead zombie clothes, but they still knew I was alive! It's like they're a hivemind, man!\"", - "\"riddle. what's 1/4 feathers, 1/4 scales, 1/4 metal, and 1/4 flesh? answer: sorry, but you should know this one.\"", - "\"For anyone that's reading this, I just want to confirm (FROM AN UNBIASED SOURCE) that it was NOT the scientists' fault.\"", - "\"traveled with a few friends after the thing started. mostly stuck to bike paths and eaten fruit and mushroomdhfhghghhhh\"", - "\"We're the eagle-eyes in the sky! Just two mutant avians in our helicopter! Filming the Cataclysm! Check us out on any working electronics!\"", - "\"My friend was getting eaten. Started ranting about how he had 70 HP on his head, and that the zombie shouldn't penetrate his armor... poor guy. Bad die roll, I guess.\"", - "\"WE'RE GOING TO SAIL TO CANADA, BITCHES!\"", - "\"Anyone hear about that guy who tried to sail his family to Canada? What a moron, right?\"", - "\"recently canadian border has gotten more dangerous don't go there\"", - "\"Hey, what happened to my dad's airboat?!\"", - "\"Reading is good! Never stop reading. Read EVERYTHING.\"", - "\"I'm gonna be honest here, I'm really gonna die soon so I dont want to gt forgnottedn ples dont forntget me y nrmmy name is h@@hbhbh\"", - "\"It wasn't Russia or China, guys. It was me. This whole apocalypse is my fault. You can just call me... Darkling.\"", - "\"all it takes to seal a wound is a sawblade and a match! trust me\"", - "\"I wonder what's in this sarcophagus? Maybe it's a real sarcophagus. Maybe there's a big guy named God under here.\"", - "\"these hulks aint so incredible when ya got .50\"", - "\"Got my legs dissected. It's OK, at least I have my dog! Her legs were also dissected, but that's OK, we're gonna be OK...\"", - "\"Mi-go is friend! Go with Mi-go to friend dimension! On the Friend Team!!\"", - "\"We have Landed our Comet. The Sky is Ablaze.\"", - "\"Last one standing. It's good feeling. I win. I win I win I win I win I win\"", - "\"Adderall cures weakness, tramadol cures death\"", - "\"These turrets keep dodging my FUCKING BULLETS!\"", - "\"Best way to train is by throwing pebbles at birds. You'll be a legend.\"", - "\"new bedford is overrun. i'm sorry. we tried.\"", - "\"Check out my cooking show on The Television! Making Mannwurst sausages out of some of those assholes who tried to raid my kitchen earlier...\"", - "\"Renting out my rat tunnels for 50 9mm rounds a night. I dug them with my own claws, so you know they're the best.\"", - "\"Anyone wanna listen to some music at full volume and shoot the Zs that approach? You pick the tunes if I get some ammo.\"", - "\"Lots of new easy ways to burn calories now. Fighting aminata, managing the fields, running with my wings buzzing, and more.\"", - "\"lotta dead mothers\"", - "\"FLAMING SWORD HUMANE. CAUTERIZES WOUNDS. SURGICAL.\"", - "\"knife screams it screams i cant breathe so scared help me please help\"", - "\"when it started, we could still hope The Man was gonna save us...\"", - "\"Hey, Ted. Alexander and Cass and I are heading to Z-Mobile for the last of the meth. Keep the lizard fetus fed for us, OK?\"", - "\"i say we call the material from melting down cars and dead robots 'massachusetite' or 'vermontsteel' or 'connecticut composite'\"", - "\"Sometimes what you need when you're infected, bleeding, sick and hungover is a J and some chips.\"", - "\"I am nothing without my supertank and storage megastructure.\"", - "\"Hahahahaa stupid fuck in his mansion, with his plate armor and big axe. Guy never swung the thing in his life. Can't block bullets, dipshit\"", - "\"I woke up with a dozen bears in a tribe outside the vault. One was covered in red markings, glowing-- speaking.\"", - "\"poor guy. watched him from afar with my binocs for months and months. today he died fighting. feels like i knew him even though i never approached.\"", - "\"I hope I don't leave this note in a pawn shop, bank vault, or library... 'cus that would mean I'm dead.\"", - "\"ENGLAND DID THIS\"", - "\"That little fakkin rat din say anythin till we whacked him with a steel chain! Then 'e just wanted to know if he could buy the chain!\"", - "\"tom, adorned with fluid sacs three layers deep, crawls to safety like a slug\"", - "\"my friend turned fuckin insane and ate his arms and then his sister's arms! he looked rather cross\"", - "\"Starting today, the hallucinations are my only friends.\"", - "\"For sale: zombaby shoes, very filthy\"", - "\"Started my own brewery recently. I just need some glass bottles, now! Several thousand! I'm planning way ahead.\"", - "\"We're the eagle-eyes in the sky! We're gonna fly our bird 'copter! Northward! And bomb the military checkpoint! Wish us luck!\"", - "\"Heard recently of some radio op who lives in a skyscraper, announcing where those hordes are going. Couldn't find the frequency, though.\"", - "\"Woah, bud! Not all cannibals eat meat!\"", - "\"ay why aint my bullets fuckin explodin\"", - "\"Those Fiktok clan people picked this place clean... no food...\"", - "\"The fewer people in New England, the stronger we'll become.\"", - "\"It all boils down to the Apex Predator.\"", - "\"King Jameson ik goner! Thee cyber limbs isk falleng off me body! Stak pyroteknik I heear!\"", - "\"Christian, but have no bible-- the Flying Spaghetti Monster is my god now. For morale's sake...\"", - "\"THE GRANADE DEBUGGED MY SPIDER FRIEND WHERE IS SHE\"", - "\"Got my mortar and pestle. Now if I could just find some avocados...\"", - "\"saw a girl standing with the mushrooms. spores coming out of slits in her neck. she looked happy.\"", - "\"Found some pink berries. Eating them makes bushes into more pink berries. Infinite berry.\"", - "\"m ust grow unity\"", - "\"AMY IS FUNGUS. DO NOT LISTEN IF SHE ASKS YOU TO TAKE OFF MASK\"", - "\"my rabbi follows a new god now. asks us to call him a local guide. i dont mind, he keeps us fed\"", - "\"Fungus are helping us. Help them and they will unite us\"", - "\"Saw a boy couldnt be older than 16. Walked straight through the mushroom tower. THROUGH IT\"", - "\"Found some food in a box outside my house. We ate it and now the fungaloids aren't harming us. I think we are a mushroom now\"", - "\"saw the girl again. she looked dead exhausted and walked right into the fungus. 30 mins later and she walked out good as new\"", - "\"HADENSBROOK REBUILT AROUND FUNGUS. THEY EAT GRAY APPLES AND SPREAD IT\"", - "\"mycus must grow\"", - "\"School bus with solar panels = TRUST. Gave us berries and seeds, we were out of food\"", - "\"d o nThelp scho Ol buss makE seeeedS ARe FUNGUS!! !\"", - "\"Go to every fungus patch you find but WEAR A SUIT. Food there is very very filling. Look for pink berries, blue flowers\"", - "\"red blue yellow berry seed sap bloom flowers tower mycus mycus mycus.\"", - "\"Husband 30 yrs died in bombs. Mushrooms brought him back. GIVE YOURSELF TO THEm AND THEY WILL HELP YOU\"", "\"Lisa always was a fan of sports. Thank God these Global Athletics Games in Harran started some time before the outbreak, so she was able to leave 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.\"" ] }, @@ -350,6 +1834,7 @@ "SECURIBOTS: Keeping your home safe, ready the second the alarm goes off... Who needs people?", "ROBOCOP BEATS CRIME: Due to the common usage of Securibots and their ability to respond more rapidly than people, crime is down 54% and dropping. Police chief says \"Don't trip an alarm and you have nothing to worry about\"", "ROBOT RAMPAGE: Three Protesters injured when surrounding a Military base, protesting automated turrets which put guards out of jobs. \"We warned them, turrets will open fire on anyone without a military ID,\" a general said.", + "GOVERNMENT INTRODUCES GUN SUBSIDIES: In a move the government says will boost the economy, encourage military production and support defense militia, the government has dropped taxes on guns and applied a subsidy for the poor.", "US IGNORES UN DEMANDS: The US ambassador to the UN today turned down UN requests to begin nuclear disarmament by China, the US and North Korea. \"We have a right to defend ourselves,\" insisted the ambassador. \"We'll back down when they do\".", "A WHOLE NEW YOU! Augment your world with CBMs! This ad features a man covered in solar panels with a miniature flashlight in the middle of his head.", "The Future... powered by COFFEE! Rivtech brings you the greatest revolution since espresso. Why wait for milk to boil? Have your coffee ready instantly with \"THE POWER OF THE ATOM\"!", @@ -384,6 +1869,7 @@ "type": "snippet", "category": "one_year_old_news", "text": [ + "SHOW THEM YOUR GUNS: In response to China's latest threats, the government has further relaxed gun control, expected to increase the economic boost of earlier gun subsidies and relieve public tension.", "READY FOR THE WORST: The government has proven it is ready to deal with China's threats. In the event of an actual attack, we have established evacuation centers, within a short distance of most towns.", "MUTANT COLD: A new cold virus has emerged in the New England area. \"There don't appear to be complications, but many sufferers are developing large amounts of benign tumorous tissue, A pound or more,\" said a doctor", "GRAVE BUSINESS: Recent reports show a large spike in thefts from and assaults on funeral homes in the last few weeks. Described as highly strange but not especially dangerous, Homeland Security is \"looking at the connections now.\"", @@ -439,99 +1925,314 @@ }, { "type": "snippet", - "category": "scores", + "category": "flier", "text": [ - "The card is printed with 2 boxes. In the first box you see a tally of 5 tick marks. The second box has a total of 9.", - "The card is printed with 2 boxes. In the first box you see a tally of 3 tick marks. The second box has line trailing off to the edge and a bloody fingerprint.", - "The card is printed for a game of golf. Someone has filled out their score for the first 9 holes." + "This is an advertisement for a local hospital. You see a clean hospital room with a smiling man lying on the bed. The bed is connected to some medical apparatus with a \"Autodoc Mk. X\" printed on it. A doctor is seen working with its console, while his assistant is unpacking some high-tech hardware. The caption reads: \"Autodoc - augmentation has never been so easy, reliable, and safe.\"" ] }, { "type": "snippet", - "category": "charsheet", + "category": "scores", "text": [ - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a fighter.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a bard.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a cleric.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a wizard.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a rogue.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a barbarian.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a warlock.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a paladin.", - "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a sorcerer." + "The card is printed with 2 boxes. In the first box you see a tally of 5 tick marks. The second box has a total of 9." ] }, { "type": "snippet", - "category": "pyromania_withdrawal", + "category": "scores", "text": [ - "You feel cold. You need the warmth of a fire.", - "Maybe a fire could calm your nerves?", - "You need to ignite something.", - "You daydream of crackling fire...", - "You shiver. A fire would be great right now.", - "You think of randomly lighting a fire, but decide against it." + "The card is printed with 2 boxes. In the first box you see a tally of 3 tick marks. The second box has line trailing off to the edge and a bloody fingerprint." ] }, + { + "type": "snippet", + "category": "scores", + "text": [ "The card is printed for a game of golf. Someone has filled out their score for the first 9 holes." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a fighter." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a bard." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a cleric." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a wizard." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a rogue." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a barbarian." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a warlock." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a paladin." ] + }, + { + "type": "snippet", + "category": "charsheet", + "text": [ "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a sorcerer." ] + }, + { + "type": "snippet", + "category": "pyromania_withdrawal", + "text": [ "You feel cold. You need the warmth of a fire." ] + }, + { + "type": "snippet", + "category": "pyromania_withdrawal", + "text": [ "Maybe a fire could calm your nerves?" ] + }, + { + "type": "snippet", + "category": "pyromania_withdrawal", + "text": [ "You need to ignite something." ] + }, + { + "type": "snippet", + "category": "pyromania_withdrawal", + "text": [ "You daydream of crackling fire..." ] + }, + { + "type": "snippet", + "category": "pyromania_withdrawal", + "text": [ "You shiver. A fire would be great right now." ] + }, + { + "type": "snippet", + "category": "pyromania_withdrawal", + "text": [ "You think of randomly lighting a fire, but decide against it." ] + }, { "type": "snippet", "category": "killer_withdrawal", - "text": [ - "You think of steel blades and warm dripping blood.", - "You'd like to hear the last breath of something living.", - "So much death around. Why not add some more?", - "You lick your lips, in anticipation for dead trophies.", - "By the blade or by the gun? How will you kill this time?", - "Ahh, how delightful would it be to kill something.", - "You are death, and you are coming for them. Soon.", - "You feel restless. It's been too long since your last kill.", - "Killing something would be nice right now.", - "Just one more death, one more kill and then you'd be right." - ] + "text": [ "You think of steel blades and warm dripping blood." ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "You'd like to hear the last breath of something living." ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "So much death around. Why not add some more?" ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "You lick your lips, in anticipation for dead trophies." ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "By the blade or by the gun? How will you kill this time?" ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "Ahh, how delightful would it be to kill something." ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "You are death, and you are coming for them. Soon." ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "You whisper a song to yourself. \"Stab stab stab stab stab, and then you die! Yeah!\"" ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "You whisper to yourself. \"Come, oh sweet death of yours.\"" ] + }, + { + "type": "snippet", + "category": "killer_withdrawal", + "text": [ "You whisper a song to yourself. \"I've seen the future, baby! It is murder!\"" ] }, { "type": "snippet", "category": "killer_on_kill", - "text": [ - "You feel the rush of the kill.", - "Your urge to kill is sated, for now.", - "You have the power of life and death, it feels good to be in control.", - "You exhale in bliss.", - "A calm feeling washes over.", - "This feels right.", - "You kill and your world is in order again.", - "Your worries evaporate as the creature dies by your hand.", - "That was nice! Maybe one more?", - "This feels so good! You could do this all day.", - "This brings a smile to your face.", - "You feel tension leave your body as your need to kill is satisfied.", - "You feel much better now." - ] + "text": [ "You whisper to yourself. \"Now I am become death, the destroyer of worlds!\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Another one bites the dust!\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Death takes you away.\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You exhale in bliss." ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Your death is my life.\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"No light for you anymore.\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Yet another one.\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Keep'em coming.\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Next!\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"The goal of all life is death!\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"By my hand!\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Die!\"" ] + }, + { + "type": "snippet", + "category": "killer_on_kill", + "text": [ "You whisper to yourself. \"Your time is up!\"" ] }, { "type": "snippet", "category": "tree_communion", - "text": [ - "You catch a glimpse of distant green.", - "The sense of a faraway place comes up through your roots.", - "The trees tell you of the world.", - "The rustling leaves paint a picture in your head.", - "Your consciousness drifts into the wild green yonder.", - "The trees whisper of remote acres.", - "The trees speak of their far-flung relatives.", - "Visions of unfamiliar forests flicker through your mind.", - "You picture yourself as one branch among many.", - "New knowledge blooms within you.", - "The horizon beckons with promises of pollen.", - "Your awareness grows in directions heretofore unknown.", - "A tree falls in a forest, and you hear its sound.", - "You feel the hum of untold biomass.", - "A tingle of understanding runs from your roots and up your spine.", - "You gain new appreciation for the interconnectedness of life.", - "You ask, and the trees answer.", - "You see the forest for the trees.", - "In the minute shifts and pivots of the trees, you hear the language of the universe." - ] + "text": [ "You catch a glimpse of distant green." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "The sense of a faraway place comes up through your roots." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "The trees tell you of the world." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "The rustling leaves paint a picture in your head." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "Your consciousness drifts into the wild green yonder." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "The trees whisper of remote acres." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "The trees speak of their far-flung relatives." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "Visions of unfamiliar forests flicker through your mind." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "You picture yourself as one branch among many." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "New knowledge blooms within you." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "The horizon beckons with promises of pollen." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "Your awareness grows in directions heretofore unknown." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "A tree falls in a forest, and you hear its sound." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "You feel the hum of untold biomass." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "A tingle of understanding runs from your roots and up your spine." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "You gain new appreciation for the interconnectedness of life." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "You ask, and the trees answer." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "You see the forest for the trees." ] + }, + { + "type": "snippet", + "category": "tree_communion", + "text": [ "In the minute shifts and pivots of the trees, you hear the language of the universe." ] }, { "type": "snippet", diff --git a/data/json/speech.json b/data/json/speech.json index 88cf66b1d5658..fb7cc35cb5cf0 100644 --- a/data/json/speech.json +++ b/data/json/speech.json @@ -1421,12 +1421,6 @@ "sound": "\"Don't worry, it isn't like anything could teleport out of the containment cells.\"", "volume": 20 }, - { - "type": "speech", - "speaker": "mon_mi_go", - "sound": "\"Hold on, I want to pulp that zombie corpse.\"", - "volume": 20 - }, { "type": "speech", "speaker": "mon_mutant_experimental", @@ -1643,42 +1637,6 @@ "sound": "\"Not that way! Go left!\"", "volume": 10 }, - { - "type": "speech", - "speaker": "mon_broken_cyborg", - "sound": "\"I told you to let me die.\"", - "volume": 10 - }, - { - "type": "speech", - "speaker": "mon_broken_cyborg", - "sound": "\"W-where am I? Why does it hur-REBOOTING IN 59 SECONDS.\"", - "volume": 20 - }, - { - "type": "speech", - "speaker": "mon_broken_cyborg", - "sound": "\"THIS UNIT IS BROKEN. PLEASE CALL AN ATTENDANT.\"", - "volume": 20 - }, - { - "type": "speech", - "speaker": "mon_broken_cyborg", - "sound": "\"Can't... breathe...\"", - "volume": 10 - }, - { - "type": "speech", - "speaker": "mon_broken_cyborg", - "sound": "\"This cannot continue.\"", - "volume": 10 - }, - { - "type": "speech", - "speaker": "mon_broken_cyborg", - "sound": "\"USER PASSWORD UNRECOGNIZED.\"", - "volume": 20 - }, { "type": "speech", "speaker": "mon_prototype_cyborg", @@ -1697,42 +1655,12 @@ "sound": "\"I have done what you asked. Please let me go!\"", "volume": 10 }, - { - "type": "speech", - "speaker": "mon_prototype_cyborg", - "sound": "\"I cannot... yet I must. How do you calculate that?\"", - "volume": 10 - }, - { - "type": "speech", - "speaker": "mon_prototype_cyborg", - "sound": "\"This is a dream. This has to be a dream.\"", - "volume": 10 - }, - { - "type": "speech", - "speaker": "mon_prototype_cyborg", - "sound": "\"This is my life now... this is my life now... this is my life now...\"", - "volume": 10 - }, - { - "type": "speech", - "speaker": "mon_prototype_cyborg", - "sound": "\"Wanna go home...\"", - "volume": 10 - }, { "type": "speech", "speaker": "mon_prototype_cyborg", "sound": "screams of pain.", "volume": 20 }, - { - "type": "speech", - "speaker": "mon_prototype_cyborg", - "sound": "muffled sobbing.", - "volume": 5 - }, { "type": "speech", "speaker": "mon_prototype_cyborg", diff --git a/data/json/techniques.json b/data/json/techniques.json index 3cbcfbf7a272a..4f79a38312540 100644 --- a/data/json/techniques.json +++ b/data/json/techniques.json @@ -279,364 +279,44 @@ "type": "technique", "id": "tec_boxing_cross", "name": "Cross", - "messages": [ "You throw a heavy cross at %s", " throws a cross at %s" ], - "min_unarmed": 0, + "min_unarmed": 2, "unarmed_allowed": true, + "messages": [ "You throw a heavy cross at %s", " throws a cross at %s" ], "mult_bonuses": [ [ "damage", "bash", 1.2 ] ] }, - { - "type": "technique", - "id": "tec_boxing_counter", - "name": "Cross Counter", - "messages": [ "You cross-counter %s", " throws a perfect counter at %s" ], - "min_unarmed": 5, - "unarmed_allowed": true, - "dodge_counter": true, - "knockback_dist": 1, - "knockback_spread": 1, - "stun_dur": 1, - "down_dur": 1, - "mult_bonuses": [ [ "movecost", 0.0 ], [ "damage", "bash", 1.25 ] ] - }, { "type": "technique", "id": "tec_boxing_rapid", "name": "Jab", - "messages": [ "You quickly jab %s", " quickly jabs at %s" ], - "min_unarmed": 2, + "min_unarmed": 3, "unarmed_allowed": true, + "messages": [ "You quickly jab %s", " quickly jabs at %s" ], "mult_bonuses": [ [ "movecost", 0.5 ], [ "damage", "bash", 0.66 ], [ "damage", "cut", 0.66 ], [ "damage", "stab", 0.66 ] ] }, { "type": "technique", "id": "tec_boxing_upper", "name": "Uppercut", - "messages": [ "You uppercut %s", " uppercuts %s" ], - "min_unarmed": 4, - "unarmed_allowed": true, - "crit_tec": true, - "stun_dur": 1, - "mult_bonuses": [ [ "damage", "bash", 1.4 ] ] - }, - { - "type": "technique", - "id": "tec_brawl_break_melee", - "name": "Grab Break", - "messages": [ "The %s tries to grab you, but you force yourself free!", "The %s tries to grab , but they break free!" ], - "min_melee": 6, - "melee_allowed": true, - "defensive": true, - "grab_break": true - }, - { - "type": "technique", - "id": "tec_brawl_break_unarmed", - "name": "Grab Break", - "messages": [ "The %s tries to grab you, but you force yourself free!", "The %s tries to grab , but they break free!" ], - "min_unarmed": 6, - "unarmed_allowed": true, - "defensive": true, - "grab_break": true - }, - { - "type": "technique", - "id": "tec_brawl_counter_melee", - "name": "Hit Them Back", - "messages": [ "You catch %s's attack, and hit back", " catches %s, and counters" ], - "min_melee": 5, - "melee_allowed": true, - "block_counter": true, - "crit_ok": true, - "mult_bonuses": [ [ "movecost", 0.0 ] ] - }, - { - "type": "technique", - "id": "tec_brawl_counter_unarmed", - "name": "Hit Them Back", - "messages": [ "You catch %s's attack, and hit back", " catches %s, and counters" ], - "min_unarmed": 5, - "unarmed_allowed": true, - "block_counter": true, - "crit_ok": true, - "mult_bonuses": [ [ "movecost", 0.0 ] ] - }, - { - "type": "technique", - "id": "tec_brawl_feint_melee", - "name": "Feint", - "messages": [ "You fake a strike at %s", " fakes a strike at %s" ], - "min_melee": 3, - "melee_allowed": true, - "defensive": true, - "miss_recovery": true - }, - { - "type": "technique", - "id": "tec_brawl_feint_unarmed", - "name": "Feint", - "messages": [ "You fake a strike at %s", " fakes a strike at %s" ], - "min_unarmed": 3, - "unarmed_allowed": true, - "defensive": true, - "miss_recovery": true - }, - { - "type": "technique", - "id": "tec_brawl_disarm_melee", - "name": "Disarm", - "messages": [ "You knock %s's weapon away", " knock %s's weapon away" ], - "min_melee": 8, - "melee_allowed": true, - "disarms": true, - "crit_ok": true - }, - { - "type": "technique", - "id": "tec_brawl_disarm_unarmed", - "name": "Disarm", - "messages": [ "You knock %s's weapon away", " knock %s's weapon away" ], - "min_unarmed": 8, - "unarmed_allowed": true, - "disarms": true, - "crit_ok": true - }, - { - "type": "technique", - "id": "tec_brawl_power", - "name": "Power Hit", - "messages": [ "You send %s reeling", " sends %s reeling" ], - "min_unarmed": 4, - "unarmed_allowed": true, - "crit_tec": true, - "knockback_dist": 1, - "stun_dur": 1 - }, - { - "type": "technique", - "id": "tec_brawl_trip", - "name": "Trip", - "messages": [ "You trip %s", " trip %s" ], - "min_unarmed": 5, - "unarmed_allowed": true, - "down_dur": 1 - }, - { - "type": "technique", - "id": "tec_capoeira_feint", - "name": "Feint", - "messages": [ "You fake a kick at %s", " fakes a kick at %s" ], - "min_unarmed": 3, - "unarmed_allowed": true, - "defensive": true, - "miss_recovery": true - }, - { - "type": "technique", - "id": "tec_capoeira_pushkick", - "name": "Push Kick", - "messages": [ "You push kick %s", " push kicks %s" ], - "min_unarmed": 0, - "unarmed_allowed": true, - "mult_bonuses": [ [ "damage", "bash", 1.2 ] ] - }, - { - "type": "technique", - "id": "tec_capoeira_circlekick", - "name": "Circle Kick", - "messages": [ "You circle kick %s", " circle kicks %s" ], "min_unarmed": 4, "unarmed_allowed": true, "crit_tec": true, - "mult_bonuses": [ [ "damage", "bash", 1.4 ] ] - }, - { - "type": "technique", - "id": "tec_capoeira_sweepkick", - "name": "Sweep Kick", - "messages": [ "You sweep kick %s", " sweep kicks %s" ], - "min_unarmed": 2, - "unarmed_allowed": true, - "req_buffs": [ "buff_capoeira_onmove" ], - "weighting": 2, - "down_dur": 1, - "mult_bonuses": [ [ "movecost", 0.75 ] ] + "messages": [ "You uppercut %s", " uppercuts %s" ], + "mult_bonuses": [ [ "damage", "bash", 1.4 ] ], + "stun_dur": 2 }, { "type": "technique", - "id": "tec_capoeira_spinkick", - "name": "Spin Kick", - "messages": [ "You spin kick %s", " spin kicks %s" ], + "id": "tec_boxing_counter", + "name": "Cross Counter", "min_unarmed": 5, "unarmed_allowed": true, - "req_buffs": [ "buff_capoeira_onmove" ], - "weighting": 2, - "crit_tec": true, - "stun_dur": 1, - "mult_bonuses": [ [ "movecost", 0.75 ], [ "damage", "bash", 1.4 ] ] - }, - { - "type": "technique", - "id": "tec_crane_feint", - "name": "Crane Wing", - "messages": [ "You raise your arms intimidatingly at %s.", " performs the Crane Wing at %s." ], - "min_unarmed": 0, - "unarmed_allowed": true, - "defensive": true, - "miss_recovery": true - }, - { - "type": "technique", - "id": "tec_crane_break", - "name": "Crane Flap", - "messages": [ - "The %s tries to grab you, but you swing your arms and break free!", - "The %s tries to grab , but they flap free!" - ], - "min_unarmed": 3, - "unarmed_allowed": true, - "defensive": true, - "grab_break": true - }, - { - "type": "technique", - "id": "tec_crane_counter", - "name": "Crane Strike", - "messages": [ "You hand-peck and swat down %s", " hand-pecks and swats down %s" ], - "min_unarmed": 2, - "unarmed_allowed": true, - "dodge_counter": true, - "down_dur": 1, - "mult_bonuses": [ [ "movecost", 0.0 ] ] - }, - { - "type": "technique", - "id": "tec_crane_precise", - "name": "Crane Kick", - "messages": [ "You leap and kick %s", " leaps and kicks %s" ], - "min_unarmed": 4, - "unarmed_allowed": true, "crit_tec": true, "knockback_dist": 1, "knockback_spread": 1, - "stun_dur": 2, - "mult_bonuses": [ [ "damage", "bash", 1.25 ] ] - }, - { - "type": "technique", - "id": "tec_dragon_claw", - "name": "Dragon Claw", - "min_unarmed": 1, - "unarmed_allowed": true, - "mult_bonuses": [ [ "damage", "bash", 1.2 ] ], - "messages": [ "You lash out at %s with a Dragon Claw", " lashes out at %s with a Dragon Claw" ] - }, - { - "type": "technique", - "id": "tec_dragon_blockcounter", - "name": "Dragon Vortex Block", - "messages": [ "You block the attack and send %s spinning", " blocks and spins %s" ], - "min_unarmed": 2, - "unarmed_allowed": true, - "req_buffs": [ "buff_dragon_onhit" ], - "block_counter": true, - "down_dur": 1, - "mult_bonuses": [ [ "movecost", 0.0 ], [ "damage", "bash", 0.5 ], [ "damage", "cut", 0.5 ], [ "damage", "stab", 0.5 ] ] - }, - { - "type": "technique", - "id": "tec_dragon_dodgecounter", - "name": "Dragon Wing Dodge", - "messages": [ "You dodge the attack and leave %s off balance", " dodges and leaves %s off balance" ], - "min_unarmed": 3, - "unarmed_allowed": true, - "req_buffs": [ "buff_dragon_onhit" ], - "dodge_counter": true, - "stun_dur": 1, - "mult_bonuses": [ [ "movecost", 0.0 ], [ "damage", "bash", 0.5 ], [ "damage", "cut", 0.5 ], [ "damage", "stab", 0.5 ] ] - }, - { - "type": "technique", - "id": "tec_dragon_tail", - "name": "Dragon Tail", - "messages": [ "You sweep %s with a quick Dragon Tail", " sweeps %s with a quick Dragon Tail sweep" ], - "min_unarmed": 4, - "unarmed_allowed": true, - "crit_tec": true, - "stunned_target": true, - "down_dur": 2, - "mult_bonuses": [ [ "damage", "bash", 1.5 ] ] - }, - { - "type": "technique", - "id": "tec_dragon_strike", - "name": "Dragon Strike", - "messages": [ "You descend upon %s with a powerful Dragon Strike", " descends upon %s with a powerful Dragon Strike" ], - "min_unarmed": 5, - "unarmed_allowed": true, - "crit_tec": true, - "downed_target": true, - "stun_dur": 1, - "mult_bonuses": [ [ "damage", "bash", 2.0 ] ] - }, - { - "type": "technique", - "id": "tec_eskrima_round", - "name": "Round Strike", - "messages": [ "You round strike %s", " round strikes %s" ], - "min_melee": 4, - "melee_allowed": true, - "mult_bonuses": [ [ "movecost", 0.6 ] ] - }, - { - "type": "technique", - "id": "tec_eskrima_fan", - "name": "Fan Strike", - "messages": [ "You fan strike %s", " fan strikes %s" ], - "min_melee": 2, - "melee_allowed": true, - "mult_bonuses": [ [ "movecost", 0.75 ] ] - }, - { - "type": "technique", - "id": "tec_eskrima_snap", - "name": "Snap Strike", - "messages": [ "You snap out at %s", " snaps quickly at %s" ], - "min_melee": 0, - "melee_allowed": true, - "mult_bonuses": [ [ "movecost", 0.8 ] ] - }, - { - "type": "technique", - "id": "tec_eskrima_combination", - "name": "Combination Strike", - "messages": [ "You combination strike %s", " combination strikes %s" ], - "min_melee": 2, - "melee_allowed": true, - "req_buffs": [ "buff_eskrima_oncrit" ], - "crit_tec": true, - "mult_bonuses": [ [ "movecost", 0.8 ], [ "damage", "bash", 1.5 ], [ "damage", "cut", 1.5 ], [ "damage", "stab", 1.5 ] ] - }, - { - "type": "technique", - "id": "tec_eskrima_puno", - "name": "Puño Strike", - "messages": [ "You deliver a puño to %s", " haftstrikes %s" ], - "min_melee": 3, - "min_bashing_damage": 2, - "melee_allowed": true, - "crit_tec": true, - "stun_dur": 1, - "mult_bonuses": [ [ "movecost", 0.6 ], [ "damage", "bash", 0.7 ], [ "damage", "cut", 0.0 ], [ "damage", "stab", 0.0 ] ] - }, - { - "type": "technique", - "id": "tec_eskrima_low", - "name": "Low Strike", - "messages": [ "Your weapon becomes a blur as you ground %s", "'s weapon becomes a blur as they ground %s" ], - "min_melee": 4, - "melee_allowed": true, - "crit_tec": true, - "down_dur": 1 + "req_buffs": [ "boxing_counter" ], + "messages": [ "You cross-counter %s", " throws a perfect counter at %s" ], + "mult_bonuses": [ [ "movecost", 0.0 ] ], + "stun_dur": 2 }, { "type": "technique", @@ -766,6 +446,16 @@ "stun_dur": 2, "messages": [ "You strike %s", " strikes %s" ] }, + { + "type": "technique", + "id": "tec_capoeira_feint", + "name": "feint at", + "min_unarmed": 1, + "unarmed_allowed": true, + "defensive": true, + "miss_recovery": true, + "messages": [ "You feint at %s", " feints at %s" ] + }, { "type": "technique", "id": "tec_muay_thai_elbow", @@ -948,6 +638,75 @@ "stun_dur": 1, "messages": [ "You deliver a perfect stop thrust to %s", " delivers a perfect stop thrust to %s" ] }, + { + "type": "technique", + "id": "tec_eskrima_round", + "name": "Round strike", + "min_melee": 4, + "melee_allowed": true, + "mult_bonuses": [ [ "movecost", 0.6 ] ], + "messages": [ "You round strike %s", " round strikes %s" ] + }, + { + "type": "technique", + "id": "tec_eskrima_fan", + "name": "Fan strike", + "min_melee": 2, + "melee_allowed": true, + "mult_bonuses": [ [ "movecost", 0.75 ] ], + "messages": [ "You fan strike %s", " fan strikes %s" ] + }, + { + "type": "technique", + "id": "tec_eskrima_snap", + "name": "Snap strike", + "min_melee": 0, + "melee_allowed": true, + "mult_bonuses": [ [ "movecost", 0.8 ] ], + "messages": [ "You snap out at %s", " snaps quickly at %s" ] + }, + { + "type": "technique", + "id": "tec_eskrima_combination", + "name": "Combination strike", + "min_melee": 2, + "melee_allowed": true, + "mult_bonuses": [ [ "movecost", 0.8 ], [ "damage", "bash", 1.5 ], [ "damage", "cut", 1.5 ], [ "damage", "stab", 1.5 ] ], + "req_buffs": [ "eskrima_hit_buff" ], + "messages": [ "You combination strike %s", " combination strikes %s" ] + }, + { + "type": "technique", + "id": "tec_eskrima_free", + "name": "free strike", + "min_melee": 4, + "melee_allowed": true, + "mult_bonuses": [ [ "movecost", 0.0 ] ], + "req_buffs": [ "eskrima_hit_buff" ], + "messages": [ "You whip a free strike onto %s", " free strikes %s" ] + }, + { + "type": "technique", + "id": "tec_eskrima_puno", + "name": "puño strike", + "min_melee": 3, + "melee_allowed": true, + "min_bashing_damage": 2, + "mult_bonuses": [ [ "movecost", 0.6 ], [ "damage", "bash", 0.7 ], [ "damage", "cut", 0.0 ], [ "damage", "stab", 0.0 ] ], + "crit_tec": true, + "stun_dur": 1, + "messages": [ "You deliver a puño to %s", " haftstrikes %s" ] + }, + { + "type": "technique", + "id": "tec_eskrima_kick", + "name": "knee strike", + "min_unarmed": 3, + "melee_allowed": true, + "crit_tec": true, + "down_dur": 2, + "messages": [ "You deliver a knee strike to %s", " knees %s" ] + }, { "type": "technique", "id": "tec_silat_hamstring", @@ -1029,6 +788,93 @@ "mult_bonuses": [ [ "movecost", 0.0 ], [ "damage", "bash", 1.5 ] ], "messages": [ "You dodge the attack and swipe at %s's exposed flank", " dodges and catches %s exposed" ] }, + { + "type": "technique", + "id": "tec_dragon_grab", + "name": "Dragon Snatch", + "min_unarmed": 4, + "unarmed_allowed": true, + "stun_dur": 2, + "mult_bonuses": [ [ "damage", "bash", 1.2 ] ], + "messages": [ "You grab and knee %s", " grabs and knees %s" ] + }, + { + "type": "technique", + "id": "tec_dragon_counterb", + "name": "Dragon's Vortex Block", + "min_unarmed": 4, + "unarmed_allowed": true, + "block_counter": true, + "crit_ok": true, + "mult_bonuses": [ [ "movecost", 0.0 ] ], + "stun_dur": 2, + "messages": [ "You block the attack and send %s spinning", " blocks and spins %s" ] + }, + { + "type": "technique", + "id": "tec_dragon_counterd", + "name": "Dragon's Vortex Dodge", + "min_unarmed": 4, + "unarmed_allowed": true, + "dodge_counter": true, + "crit_ok": true, + "mult_bonuses": [ [ "movecost", 0.0 ] ], + "stun_dur": 2, + "messages": [ "You dodge the attack and send %s spinning", " dodges and spins %s" ] + }, + { + "type": "technique", + "id": "tec_dragon_sweep", + "name": "Dragon Sweeper", + "min_unarmed": 5, + "unarmed_allowed": true, + "down_dur": 2, + "messages": [ "You low-roundhouse %s 's legs", " low-roundhouses %s 's legs" ] + }, + { + "type": "technique", + "id": "tec_dragon_brutal", + "name": "Dragon Strike", + "min_unarmed": 6, + "unarmed_allowed": true, + "crit_tec": true, + "stun_dur": 1, + "knockback_dist": 1, + "messages": [ "You send %s reeling with a Dragon Strike", " sends %s reeling with a Dragon Strike" ] + }, + { + "type": "technique", + "id": "tec_crane_feint", + "name": "Crane Wing", + "min_unarmed": 2, + "unarmed_allowed": true, + "defensive": true, + "miss_recovery": true, + "messages": [ "You raise your arms intimidatingly at %s.", " performs the Crane Wing at %s." ] + }, + { + "type": "technique", + "id": "tec_crane_break", + "name": "Crane Flap", + "min_unarmed": 3, + "unarmed_allowed": true, + "defensive": true, + "grab_break": true, + "messages": [ + "The %s tries to grab you, but you swing your arms and break free!", + "The %s tries to grab , but they flap free!" + ] + }, + { + "type": "technique", + "id": "tec_crane_precise", + "name": "Crane Strike", + "min_unarmed": 4, + "unarmed_allowed": true, + "crit_tec": true, + "messages": [ "You hand-peck %s", " hand-pecks %s" ], + "stun_dur": 3 + }, { "type": "technique", "id": "tec_snake_rapid", @@ -1068,6 +914,51 @@ "messages": [ "You strike out at %s", " strikes out at %s" ], "stun_dur": 2 }, + { + "type": "technique", + "id": "tec_brawl_feint", + "name": "Feint", + "min_unarmed": 3, + "unarmed_allowed": true, + "melee_allowed": true, + "defensive": true, + "miss_recovery": true, + "messages": [ "You fake a strike at %s", " feints at %s" ] + }, + { + "type": "technique", + "id": "tec_brawl_power", + "name": "Power Hit", + "min_unarmed": 4, + "unarmed_allowed": true, + "melee_allowed": true, + "crit_tec": true, + "stun_dur": 1, + "knockback_dist": 1, + "messages": [ "You send %s reeling", " sends %s reeling" ] + }, + { + "type": "technique", + "id": "tec_brawl_counter", + "name": "Hit Them Back", + "min_unarmed": 5, + "unarmed_allowed": true, + "block_counter": true, + "melee_allowed": true, + "crit_ok": true, + "mult_bonuses": [ [ "movecost", 0.0 ] ], + "messages": [ "You catch %s's attack, and hit back", " catches %s, and counters" ] + }, + { + "type": "technique", + "id": "tec_brawl_trip", + "name": "Trip", + "min_unarmed": 5, + "unarmed_allowed": true, + "melee_allowed": true, + "down_dur": 2, + "messages": [ "You trip %s", " trips %s" ] + }, { "type": "technique", "id": "niten_water_cut", @@ -1202,7 +1093,7 @@ { "type": "technique", "id": "tec_wingchun_feint", - "name": "ask the way", + "name": "keep punching at", "min_unarmed": 2, "unarmed_allowed": true, "strictly_unarmed": true, @@ -1213,7 +1104,7 @@ { "type": "technique", "id": "tec_wingchun_stumble", - "name": "White Crane stumble", + "name": "stumble", "min_unarmed": 4, "unarmed_allowed": true, "crit_tec": true, diff --git a/data/json/terrain.json b/data/json/terrain.json new file mode 100644 index 0000000000000..45e6b0f7b3c37 --- /dev/null +++ b/data/json/terrain.json @@ -0,0 +1,11625 @@ +[ + { + "type": "item_group", + "id": "wall_bash_results", + "subtype": "collection", + "entries": [ + { "item": "rock", "count": [ 0, 2 ] }, + { "item": "wood_panel", "count": [ 0, 1 ] }, + { "item": "nail", "charges": [ 2, 8 ] }, + { "item": "splinter", "count": [ 1, 5 ] } + ] + }, + { + "type": "terrain", + "id": "t_hole", + "name": "empty space", + "description": "This is empty space.", + "symbol": " ", + "color": "black", + "move_cost": 2, + "trap": "tr_ledge", + "flags": [ "TRANSPARENT", "NOITEM" ] + }, + { + "type": "terrain", + "id": "t_open_air_rooved", + "name": "open air", + "description": "This is open air.", + "symbol": " ", + "color": "i_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "trap": "tr_ledge", + "flags": [ "TRANSPARENT", "NO_FLOOR" ], + "examine_action": "ledge" + }, + { + "type": "terrain", + "id": "t_brick_wall_halfway", + "name": "half-built brick wall", + "description": "Half of a brick wall, looks like it still requires some more resources and effort before being considered a real wall.", + "symbol": "#", + "color": "brown", + "move_cost": 5, + "coverage": 60, + "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], + "bash": { + "str_min": 30, + "str_max": 100, + "sound": "crash!", + "sound_fail": "bash!", + "ter_set": "t_null", + "items": [ { "item": "rock", "count": [ 5, 8 ] }, { "item": "brick", "count": [ 1, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_brick_wall", + "name": "brick wall", + "description": "A solid brick wall, sturdy enough to support a roof with enough walls and keep out any unwanted visitors.", + "symbol": "LINE_OXOX", + "color": "brown", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 60, + "str_max": 160, + "sound": "crash!", + "sound_fail": "bash!", + "ter_set": "t_null", + "items": [ { "item": "rock", "count": [ 8, 15 ] }, { "item": "brick", "count": [ 2, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_scrap_wall", + "name": "simple metal wall", + "description": "A relatively simple wall made of scraped together metal. It's still capable of blocking intruders and supporting a roof with adjacent walls.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 80, + "str_max": 200, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pit_shallow", + "items": [ { "item": "steel_chunk", "count": [ 10, 22 ] } ] + } + }, + { + "type": "terrain", + "id": "t_scrap_wall_halfway", + "name": "half-built simple metal wall", + "description": "A partially built makeshift wall of metal that could potentially support a roof if it were completed.", + "symbol": "#", + "color": "dark_gray", + "move_cost": 4, + "coverage": 60, + "flags": [ "NOITEM", "TRANSPARENT", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], + "bash": { + "str_min": 50, + "str_max": 130, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pit_shallow", + "items": [ { "item": "steel_chunk", "count": [ 5, 11 ] } ] + } + }, + { + "type": "terrain", + "id": "t_sconc_wall", + "name": "simple concrete wall", + "description": "A durable and uniform concrete wall, quite drab without decoration. More than capable of supporting a roof, as well as keeping out most anything, save for vehicles.", + "symbol": "LINE_OXOX", + "color": "light_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 90, + "str_max": 350, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_pit_shallow", + "items": [ { "item": "rock", "count": [ 10, 22 ] } ] + } + }, + { + "type": "terrain", + "id": "t_sconc_wall_halfway", + "name": "half-built simple concrete wall", + "description": "A partially poured concrete wall that could probably keep anything behind it quite safe if it were finished.", + "symbol": "*", + "color": "light_gray", + "move_cost": 4, + "coverage": 60, + "flags": [ "NOITEM", "TRANSPARENT", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 40, + "str_max": 350, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_pit_shallow", + "items": [ { "item": "rock", "count": [ 5, 11 ] } ] + } + }, + { + "type": "terrain", + "id": "t_strconc_wall", + "name": "reinforced concrete wall", + "description": "An extremely resilient wall, filled with concrete and rebar. Best suited for supporting multi-level buildings, only serious explosives and high-speed impacts would be capable of damaging this wall.", + "symbol": "LINE_OXOX", + "color": "light_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 120, + "str_max": 460, + "sound": "scrrrash!", + "sound_fail": "whump!", + "ter_set": "t_reb_cage", + "items": [ { "item": "rock", "count": [ 10, 22 ] } ] + } + }, + { + "type": "terrain", + "id": "t_strconc_wall_halfway", + "name": "half-built reinforced concrete wall", + "description": "Poured concrete with methodically placed rebar sticking out, which isn't practical for supporting roofs or shelter. It appears to need more resources before being considered complete.", + "symbol": "*", + "color": "light_gray", + "move_cost": 5, + "coverage": 60, + "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 60, + "str_max": 460, + "sound": "scrrrash!", + "sound_fail": "whump!", + "ter_set": "t_reb_cage", + "items": [ { "item": "rock", "count": [ 5, 11 ] } ] + } + }, + { + "type": "terrain", + "id": "t_reb_cage", + "name": "rebar cage", + "description": "A structural support system made of rebar that appears to be the early stages of a reinforced concrete wall, just missing the poured concrete.", + "symbol": "#", + "color": "dark_gray", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "THIN_OBSTACLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 20, + "str_max": 100, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pit", + "items": [ { "item": "scrap", "count": [ 4, 12 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_thconc_floor", + "name": "concrete floor", + "description": "A bare and cold concrete floor with matching roof, could still insulate from the outdoors but roof collapse is possible if supporting walls are broken down.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 100, + "str_max": 400, + "str_min_supported": 150, + "items": [ + { "item": "rock", "count": [ 5, 10 ] }, + { "item": "scrap", "count": [ 5, 8 ] }, + { "item": "rebar", "count": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_thconc_y", + "name": "concrete floor", + "description": "A bare and cold concrete floor with a streak of yellow paint, could still insulate from the outdoors but roof collapse is possible if supporting walls are broken down.", + "symbol": ".", + "color": "yellow", + "looks_like": "t_wall_y", + "move_cost": 2, + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 100, + "str_max": 400, + "str_min_supported": 150, + "items": [ + { "item": "rock", "count": [ 5, 10 ] }, + { "item": "scrap", "count": [ 5, 8 ] }, + { "item": "rebar", "count": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_thconc_floor_olight", + "name": "concrete floor, overhead light", + "description": "A bare and cold concrete floor with a still-functioning light attached to the ceiling above.", + "symbol": ".", + "color": "white", + "move_cost": 2, + "light_emitted": 120, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_thconc_floor", + "items": [ { "item": "glass_shard", "count": [ 8, 16 ] } ] + } + }, + { + "type": "terrain", + "id": "t_ov_smreb_cage", + "name": "small rebar roof cage", + "description": "A series of structural support crafted from rebar in order to allow the pouring of concrete for a more stable floor and roof.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 4, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES" ], + "bash": { + "sound": "SCRRRASH!", + "ter_set": "t_null", + "str_min": 100, + "str_max": 400, + "str_min_supported": 150, + "items": [ { "item": "scrap", "count": [ 5, 8 ] }, { "item": "rebar", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_strconc_floor", + "name": "reinforced concrete floor", + "description": "Extremely resilient floor made from carefully placed rebar and poured concrete, capable of providing protection from the elements. As for the matching roof, it still requires supporting walls, otherwise it may very well cave in.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 150, + "str_max": 400, + "str_min_supported": 200, + "items": [ + { "item": "rock", "count": [ 10, 22 ] }, + { "item": "scrap", "count": [ 10, 12 ] }, + { "item": "rebar", "count": [ 0, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_ov_reb_cage", + "name": "rebar roof cage", + "description": "A network of architecturally sound rebar in order to support a floor and roof, looks like it's missing the poured concrete.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 4, + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES" ], + "bash": { + "sound": "SCRRRASH!", + "ter_set": "t_null", + "str_min": 100, + "str_max": 400, + "str_min_supported": 150, + "items": [ { "item": "scrap", "count": [ 10, 12 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_strconc_floor_halfway", + "name": "half-built reinforced concrete floor", + "description": "Unfinished series of rebar and poured concrete; the floor hasn't been smoothed and the roof isn't quite filled in yet.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ + { "item": "rock", "count": [ 5, 11 ] }, + { "item": "scrap", "count": [ 10, 12 ] }, + { "item": "rebar", "count": [ 0, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_dirt", + "name": "dirt", + "description": "It's dirt. Looks like some fine soil for tillage. Could also be dug out for construction projects.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_sand", + "name": "sand", + "description": "A large area of fine sand that could be useful in a number of ways, if it was extracted properly.", + "symbol": ".", + "color": "yellow", + "move_cost": 3, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_clay", + "name": "clay", + "description": "A field full of malleable clay, suitable for kiln firing if it was extracted properly.", + "symbol": ".", + "color": "light_red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_dirtmound", + "name": "mound of dirt", + "description": "An area of heaped dirt, not easily traversable. If examined more closely, it's quite favorable for planting seeds and the like.", + "symbol": "#", + "color": "brown", + "move_cost": 3, + "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE", "PLANTABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100 }, + "examine_action": "dirtmound" + }, + { + "type": "terrain", + "id": "t_dirtmoundfloor", + "name": "mound of dirt", + "description": "A giant hill of dirt that looks like you could crawl inside for shelter.", + "symbol": "#", + "color": "brown", + "move_cost": 3, + "coverage": 40, + "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS" ], + "bash": { + "sound": "thump", + "ter_set": "t_null", + "str_min": 50, + "str_max": 100, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] + }, + "examine_action": "dirtmound" + }, + { + "type": "terrain", + "id": "t_pit_shallow", + "name": "shallow pit", + "description": "A pit that could be dug even deeper or filled up. Also useful as a starting foundation for some constructions.", + "symbol": "0", + "color": "yellow", + "move_cost": 8, + "flags": [ "TRANSPARENT", "DIGGABLE", "DIGGABLE_CAN_DEEPEN" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_pit", + "name": "pit", + "description": "A steep hole that could seriously injure something if it fell in, potentially fatal if it was filled with sharp and dangerous things. Deep enough for more advanced construction projects, and possibly to reach groundwater if constructed properly.", + "symbol": "0", + "color": "brown", + "move_cost": 10, + "trap": "tr_pit", + "flags": [ "TRANSPARENT" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, + "examine_action": "pit" + }, + { + "type": "terrain", + "id": "t_pit_corpsed", + "name": "corpse filled pit", + "description": "A giant trench full of corpses, maybe even a mass graveyard. The bodies could be dug out but none of it looks remotely usable.", + "symbol": "#", + "color": "green", + "move_cost": 5, + "flags": [ "TRANSPARENT", "DIGGABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true }, + "//": "left diggable to clean out corpses-KA101" + }, + { + "type": "terrain", + "id": "t_pit_covered", + "name": "covered pit", + "description": "A deep pit with a two by four placed across it, looks sturdy enough to cross safely or the plank could be removed to turn it back into trap fall.", + "symbol": "#", + "color": "light_red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "ROAD" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, + "examine_action": "pit_covered" + }, + { + "type": "terrain", + "id": "t_pit_spiked", + "name": "spiked pit", + "description": "A narrow trench full of very pointy things that would easily puncture a body.", + "symbol": "0", + "color": "light_red", + "move_cost": 10, + "trap": "tr_spike_pit", + "flags": [ "TRANSPARENT" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, + "examine_action": "pit" + }, + { + "type": "terrain", + "id": "t_pit_spiked_covered", + "name": "covered spiked pit", + "description": "Menacing with sharp spears along the bottom, this pit has a plank across it to allow someone or something to cross safely. The two by four could be removed to revert it back into a trap.", + "symbol": "#", + "color": "light_red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "ROAD" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, + "examine_action": "pit_covered" + }, + { + "type": "terrain", + "id": "t_pit_glass", + "name": "glass pit", + "description": "Looks like a ton of broken glass was dumped into this pit, maybe not fatal to fall in but wouldn't be pleasant to try to crawl out.", + "symbol": "0", + "color": "light_cyan", + "move_cost": 10, + "trap": "tr_glass_pit", + "flags": [ "TRANSPARENT" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, + "examine_action": "pit" + }, + { + "type": "terrain", + "id": "t_pit_glass_covered", + "name": "covered glass pit", + "description": "A two by four has been placed carefully to allow traversal over this ditch full of large glass shards. The wooden board could be removed so it couldn't be safely crossed.", + "symbol": "#", + "color": "light_cyan", + "move_cost": 2, + "flags": [ "TRANSPARENT", "ROAD" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true }, + "examine_action": "pit_covered" + }, + { + "type": "terrain", + "id": "t_rock_floor", + "name": "rock floor", + "description": "A relatively flat area of rock and stone. Looks stable enough to be mined with the proper mining gear.", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "INDOORS", "COLLAPSES", "SUPPORTS_ROOF", "FLAT", "ROAD" ], + "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_rock_floor_no_roof", + "name": "rock floor", + "description": "A relatively flat area of rock and stone. Looks stable enough to be mined with the proper mining gear.", + "symbol": ".", + "color": "light_gray", + "looks_like": "t_rock_floor", + "move_cost": 2, + "roof": "t_open_air", + "flags": [ "TRANSPARENT", "FLAT", "ROAD" ], + "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_woodchips", + "name": "woodchips", + "looks_like": "t_dirt", + "description": "Small splinters of wood laid out in a layer to prevent unwanted plants from growing.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100 } + }, + { + "type": "terrain", + "id": "t_moss", + "name": "moss", + "looks_like": "t_grass", + "description": "Moist spongy moss.", + "symbol": ".", + "color": "light_green", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass", + "name": "grass", + "description": "An area of hardy Kentucky bluegrass about ankle high. Cutting the grass short enough would destroy the root system, causing this area to turn into a patch of dirt.", + "symbol": ".", + "color": "green", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass_white", + "name": "white grass", + "description": "A section of Kentucky bluegrass covered in white latex-based paint, with neat lines designed for recreational sports.", + "symbol": ".", + "color": "white", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass_long", + "name": "long grass", + "description": "Long shaggy grass about shin high.", + "looks_like": "t_grass", + "symbol": ",", + "color": "green", + "move_cost": 3, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass_tall", + "name": "tall grass", + "description": "Tall grass about head high.", + "looks_like": "t_shrub", + "symbol": ",", + "color": "brown_green", + "move_cost": 5, + "coverage": 50, + "flags": [ "TRANSPARENT", "DIGGABLE", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass_dead", + "name": "dead grass", + "description": "Long shaggy grass that hasn't been cut recently.", + "looks_like": "t_dirt", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass_golf", + "name": "golf green", + "description": "Grass mowed very short and neat.", + "looks_like": "t_grass", + "symbol": ".", + "color": "light_green", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_golf_hole", + "name": "golf hole", + "description": "A small plastic cup embedded in the grass.", + "symbol": "o", + "color": "white", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "ter_set": "t_null", "str_min": 50, "str_max": 400, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_metal_floor", + "name": "metal floor", + "description": "High-quality and tough checkered flooring to reduce risk of slips and falls, with a matching roof.", + "symbol": ".", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "thump", + "ter_set": "t_null", + "str_min": 200, + "str_max": 500, + "str_min_supported": 200, + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 3, 12 ] }, + { "item": "scrap", "count": [ 9, 36 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_pavement", + "name": "pavement", + "connects_to": "PAVEMENT", + "description": "A segment of asphalt, slowly degrading from cracks, frost heaves and lack of maintenance.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "rock", "count": [ 2, 10 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_pavement_y", + "name": "yellow pavement", + "connects_to": "PAVEMENT", + "description": "Streaks of carefully aligned yellow paint mark the road to inform drivers not to cross. No one is enforcing these rules anymore.", + "symbol": ".", + "color": "yellow", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "rock", "count": [ 2, 10 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_sidewalk", + "name": "sidewalk", + "description": "An area of common poured concrete, damaged by frost heaves and large cracks due to lack of maintenance.", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "rock", "count": [ 2, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_concrete", + "name": "concrete", + "description": "A newer segment of poured concrete with surface finishes for aesthetics and resistance to freeze-thaw cycles.", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "rock", "count": [ 2, 15 ] }, { "item": "rebar", "count": [ 0, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_floor", + "name": "floor", + "description": "Interlocking wooden tiles that are more than likely treated against fire, with wooden posts and beams supporting a roof.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_floor_noroof", + "name": "wooden floor", + "description": "Wooden floor created from boards, packed tightly together and nailed down. Common in patios.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_floor_primitive", + "name": "primitive floor", + "description": "Timber floor and supports, holding up a sod roof.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ + { "item": "log", "count": [ 0, 1 ] }, + { "item": "stick", "count": [ 1, 4 ] }, + { "item": "splinter", "charges": [ 1, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_scrap_floor", + "name": "simple metal floor", + "description": "A crudely welded together floor of metal with steel trusses and supporting girders.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "str_min": 50, + "str_max": 400, + "sound": "SMASH!", + "ter_set": "t_null", + "str_min_supported": 100, + "items": [ { "item": "steel_chunk", "count": [ 5, 11 ] } ] + } + }, + { + "type": "terrain", + "id": "t_floor_waxed", + "name": "waxed floor", + "description": "Hardwood flooring that has been treated with chemicals to improve slip resistance and sliding, commonly for recreational sports.", + "symbol": ".", + "color": [ "light_red" ], + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "wax", "count": [ 1, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_dirtfloor", + "name": "dirt floor", + "description": "Floor consisting of finely mixed earth that has been tamped down.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_shingle_flat_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_dirtfloor_thatchroof", + "name": "dirt floor", + "description": "Floor consisting of finely mixed earth that has been tamped down, with thatched roof above it.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_thatch_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "straw_pile", "charges": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_grate", + "name": "metal grate", + "description": "A type of walkway that can be used as protective covering over drains or even used as a filter.", + "symbol": "#", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT" ] + }, + { + "type": "terrain", + "id": "t_slime", + "name": "slime", + "description": "A disgusting and slippery mess that could be used to stash things because who'd want to touch it?", + "symbol": "~", + "color": "green", + "move_cost": 6, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_bridge", + "name": "walkway", + "description": "A metallic bridge commonly used in industrial settings to meet specified safety standards.", + "symbol": "#", + "color": "yellow", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ] + }, + { + "type": "terrain", + "id": "t_utility_light", + "name": "utility light", + "description": "An industrial flood light set up to illuminate the surroundings. Smashing it doesn't seem like it'd produce any worthwhile salvage.", + "symbol": ".", + "color": "white", + "move_cost": 2, + "light_emitted": 240, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_log_half", + "name": "half-built log wall", + "description": "A half-constructed wall of notched logs that interlock to provide stability. Needs a few more logs to hold up a roof. Looks flammable.", + "symbol": "#", + "color": "brown", + "move_cost": 4, + "coverage": 60, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "MINEABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 40, + "str_max": 120, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_log", + "name": "log wall", + "description": "A tall wall of timber suitable for housing and insulating from the weather. Quite flammable.", + "symbol": "LINE_OXOX", + "color": "brown", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 60, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_wall_log_chipped", + "items": [ { "item": "splinter", "count": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_log_chipped", + "name": "chipped log wall", + "description": "A moderately damaged wall, could probably be patched up with some planks and nails.", + "symbol": "LINE_OXOX", + "color": "brown", + "move_cost": 0, + "coverage": 100, + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 40, + "str_max": 160, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_wall_log_broken", + "items": [ { "item": "splinter", "count": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_log_broken", + "name": "broken log wall", + "description": "A destroyed wood wall, with only a supporting log left, ready to collapse. Looks repairable if the damage was replaced and patched together with nails and planks.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "PERMEABLE", "CONNECT_TO_WALL" ], + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + } + }, + { + "type": "terrain", + "id": "t_palisade", + "name": "palisade wall", + "description": "An age-old type of fortification consisting of hefty lumber staked into the ground and cabled together.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 100, + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "CONNECT_TO_WALL", "WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 35, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "splinter", "count": [ 10, 30 ] } ] + } + }, + { + "type": "terrain", + "id": "t_palisade_gate", + "name": "palisade gate", + "description": "A large doorway consisting of long logs cabled together, that could be expanded upon. Can act as a door if some type of pulley system were rigged on an adjacent palisade wall.", + "symbol": "+", + "color": "light_red", + "move_cost": 0, + "coverage": 55, + "flags": [ "FLAMMABLE", "NOITEM", "DOOR", "CONNECT_TO_WALL", "WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 24, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + } + }, + { + "type": "terrain", + "id": "t_palisade_gate_o", + "name": "open palisade gate", + "description": "A hanging palisade gate, hoisted by a nearby pulley system. Probably shouldn't be underneath when it comes down.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE", "FLAT", "CONNECT_TO_WALL" ], + "bash": { + "str_min": 6, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_half", + "name": "half-built wall", + "description": "An incomplete wall of refined wood, dotted with carefully placed nails to provide proper support. It requires some more two by fours and nails before it'd be considered a suitable wall.", + "symbol": "#", + "color": "light_red", + "move_cost": 4, + "coverage": 60, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "REDUCE_SCENT", "MOUNTABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 10, + "str_max": 70, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 0, 5 ] }, + { "item": "wood_panel", "count": [ 0, 1 ] }, + { "item": "nail", "charges": [ 0, 5 ] }, + { "item": "splinter", "count": [ 5, 10 ] } + ] + } + }, + { + "id": "t_wall_wattle", + "type": "terrain", + "name": "wattle-and-daub wall", + "description": "A relatively primitive wall made by daubing together a lattice of wooden strips using some combination of wet soil, clay, sand, animal dung and straw.", + "symbol": "LINE_OXOX", + "color": [ "light_red" ], + "move_cost": 0, + "coverage": 100, + "roof": "t_thatch_roof", + "bash": { + "str_min": 10, + "str_max": 140, + "ter_set": "t_wall_wattle_broken", + "sound": "crunch!", + "sound_fail": "whump!", + "items": [ { "item": "2x4", "count": [ 0, 3 ] }, { "item": "splinter", "count": [ 0, 6 ] } ] + }, + "flags": [ "FLAMMABLE_HARD", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ] + }, + { + "id": "t_wall_wattle_broken", + "type": "terrain", + "name": "broken wattle-and-daub wall", + "description": "This wattle-and-daub wall section has been destroyed, leaving mostly just frame, and is barely held together.", + "symbol": "&", + "color": [ "light_red" ], + "move_cost": 0, + "bash": { + "str_min": 4, + "str_max": 110, + "ter_set": "t_null", + "sound": "crash!", + "sound_fail": "whump!", + "items": [ { "item": "2x4", "count": [ 0, 3 ] }, { "item": "splinter", "count": [ 3, 6 ] } ] + }, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "PERMEABLE", "CONNECT_TO_WALL" ] + }, + { + "id": "t_wall_wattle_half", + "type": "terrain", + "name": "half-built wattle-and-daub wall", + "description": "This wattle-and-daub wall has some of the wooden strip lattice in place, and still requires the rest of the lattice and supporting wet compound to be filled in.", + "symbol": "#", + "color": [ "light_red" ], + "move_cost": 4, + "coverage": 60, + "bash": { + "str_min": 8, + "str_max": 75, + "ter_set": "t_null", + "sound": "crunch!", + "sound_fail": "whump!", + "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "splinter", "count": [ 6, 6 ] } ] + }, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "NOITEM", "REDUCE_SCENT", "MOUNTABLE" ] + }, + { + "type": "terrain", + "id": "t_wall_wood", + "name": "wooden wall", + "description": "A finished wall of planks and support beams, capable of supporting an upper level or roof. Still highly flammable.", + "symbol": "LINE_OXOX", + "color": "light_red", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 12, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_wall_wood_chipped", + "items": [ + { "item": "2x4", "count": [ 0, 3 ] }, + { "item": "wood_panel", "count": [ 0, 2 ] }, + { "item": "nail", "charges": [ 1, 5 ] }, + { "item": "splinter", "count": [ 1, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_wall_wood_chipped", + "name": "chipped wood wall", + "description": "A wall of aligned two by fours that's starting to crack and break open. Some cut wood and a number of nails could patch this up quick.", + "symbol": "LINE_OXOX", + "color": "light_red", + "move_cost": 0, + "coverage": 100, + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_wall_wood_broken", + "items": [ + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "wood_panel", "count": [ 0, 2 ] }, + { "item": "nail", "charges": [ 1, 3 ] }, + { "item": "splinter", "count": [ 1, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_wall_wood_broken", + "name": "broken wood wall", + "description": "A number of planks are missing and the structure is beginning to sag and fall apart. It's going to need quite a bit of work to repair this wall.", + "symbol": "&", + "color": "light_red", + "move_cost": 0, + "coverage": 35, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "REDUCE_SCENT", "PERMEABLE", "CONNECT_TO_WALL" ], + "bash": { + "str_min": 4, + "str_max": 110, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 2, 5 ] }, + { "item": "wood_panel", "count": [ 0, 2 ] }, + { "item": "nail", "charges": [ 4, 10 ] }, + { "item": "splinter", "count": [ 1, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_wall", + "aliases": [ "t_wall_h", "t_wall_v" ], + "name": "wall", + "description": "The stereotypical wall with wooden support structure filled with insulation and drywalled. Paint job is the all too common and neutral off-white or cream color, it could use more vibrant paint. Appears as though the material is still flammable.", + "symbol": "LINE_OXOX", + "color": "light_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_concrete_wall", + "aliases": [ "t_concrete_h", "t_concrete_v" ], + "name": "concrete wall", + "description": "An aesthetically pleasing design with simple lines, this type of concrete was used with a weaker chemical mixture in order to have faster setting times. Not ideal for multi-story buildings, but still capable of supporting a roof.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 70, + "str_max": 300, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_reb_cage", + "items": [ { "item": "rock", "count": [ 10, 22 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_metal", + "aliases": [ "t_wall_metal_h", "t_wall_metal_v" ], + "name": "metal wall", + "description": "An industrially fabricated thick sheet carefully positioned and joined seamlessly with perimeter sealant, this wall is capable of resisting extreme elements as well as hostile forces. Blast load rated and extremely fire-retardant, breaching will require specialized tools or industrial vehicles.", + "symbol": "LINE_OXOX", + "color": "cyan", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 200, + "str_max": 600, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 3, 12 ] }, + { "item": "scrap", "count": [ 9, 36 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_wall_glass", + "aliases": [ "t_wall_glass_h", "t_wall_glass_v" ], + "name": "glass wall", + "description": "A barrier made of glass, it's nothing complicated, and looks extremely fragile. Some contain glass break sensors or window sensors that trigger if the glass is tampered.", + "symbol": "LINE_OXOX", + "color": "light_cyan", + "move_cost": 0, + "coverage": 90, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_glass_alarm", + "aliases": [ "t_wall_glass_h_alarm", "t_wall_glass_v_alarm" ], + "name": "glass wall", + "description": "A barrier made of glass, it's nothing complicated, and looks extremely fragile. Some contain glass break sensors or window sensors that trigger if the glass is tampered.", + "symbol": "LINE_OXOX", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "ALARMED", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_reinforced_glass", + "aliases": [ "t_reinforced_glass_h", "t_reinforced_glass_v" ], + "name": "reinforced glass", + "description": "A thicker pane of glass with thin metal wires embedded throughout, strengthening the structural properties. Still weaker than other types of walls, and not made to support a roof either.", + "symbol": "LINE_OXOX", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 40, + "str_max": 210, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 20, + "sound_fail_vol": 14, + "ter_set": "t_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "wire", "prob": 20 } ] + } + }, + { + "type": "terrain", + "id": "t_reinforced_glass_shutter", + "name": "reinforced glass with closed shutters", + "description": "A secondary layer of protection over reinforced glass, these metal shutters are typically used to ward off criminals or protect against damage from extreme weather. Looks like it can only be opened from the inside. Even with the installed shutters, it isn't feasible in supporting a roof.", + "symbol": "LINE_OXOX", + "color": "light_gray", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "OPENCLOSE_INSIDE", "MINEABLE", "BLOCK_WIND" ], + "open": "t_reinforced_glass_shutter_open", + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 20, + "sound_fail_vol": 14, + "ter_set": "t_floor", + "items": [ + { "item": "glass_shard", "count": [ 42, 84 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_reinforced_glass_shutter_open", + "name": "reinforced glass with open shutters", + "description": "Hanging metal shutters that haven't been deployed, exposing the reinforced glass. It appears as though the metal shutters can only be activated from the inside.", + "symbol": "LINE_OXOX", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "OPENCLOSE_INSIDE", "MINEABLE", "BLOCK_WIND" ], + "close": "t_reinforced_glass_shutter", + "bash": { + "str_min": 40, + "str_max": 210, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 20, + "sound_fail_vol": 14, + "ter_set": "t_floor", + "items": [ + { "item": "glass_shard", "count": [ 42, 84 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_reinforced_door_glass_c", + "name": "closed reinforced glass door", + "description": "A closed glass door reinforced with woven steel wires in a stylish, but practical pattern.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "open": "t_reinforced_door_glass_o", + "bash": { + "str_min": 40, + "str_max": 210, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 20, + "sound_fail_vol": 14, + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "glass_shard", "count": [ 42, 84 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_reinforced_door_glass_lab_c", + "name": "closed reinforced glass door", + "description": "A closed glass door reinforced with woven steel wires in a stylish, but practical pattern.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "MINEABLE" ], + "open": "t_reinforced_door_glass_lab_o", + "bash": { + "str_min": 40, + "str_max": 210, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 20, + "sound_fail_vol": 14, + "ter_set": "t_thconc_floor", + "items": [ + { "item": "glass_shard", "count": [ 42, 84 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_reinforced_door_glass_o", + "name": "open reinforced glass door", + "description": "A glass door reinforced with woven steel wires in a stylish, but practical pattern. Yep, it's open.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], + "close": "t_reinforced_door_glass_c", + "bash": { + "str_min": 40, + "str_max": 210, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 20, + "sound_fail_vol": 14, + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "glass_shard", "count": [ 42, 84 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_reinforced_door_glass_lab_o", + "name": "open reinforced glass door", + "description": "A glass door reinforced with woven steel wires in a stylish, but practical pattern. Yep, it's open.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], + "close": "t_reinforced_door_glass_lab_c", + "bash": { + "str_min": 40, + "str_max": 210, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 20, + "sound_fail_vol": 14, + "ter_set": "t_thconc_floor", + "items": [ + { "item": "glass_shard", "count": [ 42, 84 ] }, + { "item": "wire", "prob": 20 }, + { "item": "scrap", "count": [ 3, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_bars", + "name": "metal bars", + "description": "Thick, heavy bars from the floor to the ceiling, interlaced wall to wall. Not made to support roofs, but great for blocking paths.", + "examine_action": "bars", + "symbol": "\"", + "color": "light_gray", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], + "bash": { + "str_min": 60, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_floor", + "items": [ + { "item": "steel_lump", "prob": 25 }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 1, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_c", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "open": "t_door_o", + "deconstruct": { + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_lab_c", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], + "open": "t_door_lab_o", + "deconstruct": { + "ter_set": "t_door_lab_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_lab_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_white_c", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], + "open": "t_door_white_o", + "deconstruct": { + "ter_set": "t_door_white_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_white_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_gray_c", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], + "open": "t_door_gray_o", + "deconstruct": { + "ter_set": "t_door_gray_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_gray_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_red_c", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], + "open": "t_door_red_o", + "deconstruct": { + "ter_set": "t_door_red_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_red_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_green_c", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL" ], + "open": "t_door_green_o", + "deconstruct": { + "ter_set": "t_door_green_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_green_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_white_o", + "name": "open wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_white_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "close": "t_door_white_c", + "bash": { + "str_min": 5, + "str_max": 80, + "str_min_blocked": 7, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_white_frame", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 1, 6 ] }, + { "item": "splinter", "count": [ 2, 6 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_gray_o", + "name": "open wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_gray_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "close": "t_door_gray_c", + "bash": { + "str_min": 5, + "str_max": 80, + "str_min_blocked": 7, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_gray_frame", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 1, 6 ] }, + { "item": "splinter", "count": [ 2, 6 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_red_o", + "name": "open wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_red_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "close": "t_door_red_c", + "bash": { + "str_min": 5, + "str_max": 80, + "str_min_blocked": 7, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_red_frame", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 1, 6 ] }, + { "item": "splinter", "count": [ 2, 6 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_green_o", + "name": "open wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_green_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "close": "t_door_green_c", + "bash": { + "str_min": 5, + "str_max": 80, + "str_min_blocked": 7, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_green_frame", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 1, 6 ] }, + { "item": "splinter", "count": [ 2, 6 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_white_b", + "name": "damaged wood door", + "description": "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.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 5, + "str_max": 70, + "str_min_blocked": 7, + "str_max_blocked": 90, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_white_frame", + "items": [ + { "item": "2x4", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_gray_b", + "name": "damaged wood door", + "description": "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.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 5, + "str_max": 70, + "str_min_blocked": 7, + "str_max_blocked": 90, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_gray_frame", + "items": [ + { "item": "2x4", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_red_b", + "name": "damaged wood door", + "description": "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.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 5, + "str_max": 70, + "str_min_blocked": 7, + "str_max_blocked": 90, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_red_frame", + "items": [ + { "item": "2x4", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_green_b", + "name": "damaged wood door", + "description": "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.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 5, + "str_max": 70, + "str_min_blocked": 7, + "str_max_blocked": 90, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_green_frame", + "items": [ + { "item": "2x4", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_white_frame", + "name": "empty door frame", + "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 6, + "str_max": 25, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 3, 6 ] }, + { "item": "splinter", "count": [ 3, 6 ] }, + { "item": "nail", "charges": [ 6, 12 ] } + ] + }, + "deconstruct": { "ter_set": "t_linoleum_white", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } + }, + { + "type": "terrain", + "id": "t_door_gray_frame", + "name": "empty door frame", + "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 6, + "str_max": 25, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 3, 6 ] }, + { "item": "splinter", "count": [ 3, 6 ] }, + { "item": "nail", "charges": [ 6, 12 ] } + ] + }, + "deconstruct": { "ter_set": "t_linoleum_gray", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } + }, + { + "type": "terrain", + "id": "t_door_red_frame", + "name": "empty door frame", + "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 6, + "str_max": 25, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 3, 6 ] }, + { "item": "splinter", "count": [ 3, 6 ] }, + { "item": "nail", "charges": [ 6, 12 ] } + ] + }, + "deconstruct": { "ter_set": "t_carpet_red", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } + }, + { + "type": "terrain", + "id": "t_door_green_frame", + "name": "empty door frame", + "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 6, + "str_max": 25, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 3, 6 ] }, + { "item": "splinter", "count": [ 3, 6 ] }, + { "item": "nail", "charges": [ 6, 12 ] } + ] + }, + "deconstruct": { "ter_set": "t_carpet_green", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } + }, + { + "type": "terrain", + "id": "t_door_glass_red_c", + "name": "closed glass door", + "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], + "open": "t_door_glass_red_o", + "deconstruct": { "ter_set": "t_door_red_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 6, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_red_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_green_c", + "name": "closed glass door", + "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], + "open": "t_door_glass_green_o", + "deconstruct": { "ter_set": "t_door_green_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 6, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_green_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_white_c", + "name": "closed glass door", + "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], + "open": "t_door_glass_white_o", + "deconstruct": { "ter_set": "t_door_white_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 6, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_white_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_gray_c", + "name": "closed glass door", + "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], + "open": "t_door_glass_gray_o", + "deconstruct": { "ter_set": "t_door_gray_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 6, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_gray_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_red_o", + "name": "open glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_red_c", + "deconstruct": { "ter_set": "t_door_red_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_red_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_green_o", + "name": "open glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_green_c", + "deconstruct": { "ter_set": "t_door_green_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_green_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_white_o", + "name": "open glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_white_c", + "deconstruct": { "ter_set": "t_door_white_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_white_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_gray_o", + "name": "open glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_gray_c", + "deconstruct": { "ter_set": "t_door_gray_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_gray_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_c_peep", + "name": "closed wood door with peephole", + "description": "A regular door made of ordinary wood, except this one has a peephole. If you examined it more closely, you'd be able to peek through the hole.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "examine_action": "door_peephole", + "open": "t_door_o_peep", + "deconstruct": { + "ter_set": "t_door_frame", + "items": [ + { "item": "peephole", "count": 1 }, + { "item": "2x4", "count": 4 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b_peep", + "items": [ + { "item": "peephole", "prob": 75 }, + { "item": "2x4", "prob": 25 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_b", + "name": "damaged wood door", + "description": "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.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 5, + "str_max": 70, + "str_min_blocked": 7, + "str_max_blocked": 90, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_lab_b", + "name": "damaged wood door", + "description": "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.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 5, + "str_max": 70, + "str_min_blocked": 7, + "str_max_blocked": 90, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_lab_frame", + "items": [ + { "item": "2x4", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_b_peep", + "name": "damaged wood door with peephole", + "//": "There's no need for a use-peephole, because the door is transparent", + "description": "Bad news is the peephole is broken and you can't look outside the door. Good news is the door is nearly broken down, so there's nothing blocking the view. A few planks, nails and the right tools could patch up all the damage.", + "symbol": "&", + "color": "brown", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 5, + "str_max": 70, + "str_min_blocked": 7, + "str_max_blocked": 90, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "prob": 50 }, + { "item": "2x4", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_o", + "name": "open wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "close": "t_door_c", + "bash": { + "str_min": 5, + "str_max": 80, + "str_min_blocked": 7, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 1, 6 ] }, + { "item": "splinter", "count": [ 2, 6 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_lab_o", + "name": "open wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one is wide open.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_lab_frame", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": 2 } + ] + }, + "close": "t_door_lab_c", + "bash": { + "str_min": 5, + "str_max": 80, + "str_min_blocked": 7, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_lab_frame", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 1, 6 ] }, + { "item": "splinter", "count": [ 2, 6 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_o_peep", + "name": "open wood door with peephole", + "description": "A regular door made of ordinary wood, except this one has a peephole. If you examined it more closely, you'd be able to peek through the hole. Although, you don't need to peek through it since the door is open anyway.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_frame", + "items": [ + { "item": "peephole", "count": 1 }, + { "item": "2x4", "count": 4 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 6, 12 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + }, + "close": "t_door_c_peep", + "bash": { + "str_min": 5, + "str_max": 80, + "str_min_blocked": 7, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_door_frame", + "items": [ + { "item": "peephole", "prob": 50 }, + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 1, 6 ] }, + { "item": "splinter", "count": [ 2, 6 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_rdoor_c", + "name": "closed reinforced wood door", + "description": "Just like other wooden doors, except this one has layers of nailed in two by fours and additional hinge for reinforcement. It might be barricaded, but still susceptible to fire.", + "symbol": "+", + "color": "red", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "BARRICADABLE_DOOR_REINFORCED", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "open": "t_rdoor_o", + "deconstruct": { + "ter_set": "t_door_c", + "items": [ + { "item": "2x4", "count": 24 }, + { "item": "wood_panel", "count": 2 }, + { "item": "nail", "charges": [ 36, 48 ] }, + { "item": "hinge", "count": 1 } + ] + }, + "bash": { + "str_min": 18, + "str_max": 100, + "str_min_blocked": 25, + "str_max_blocked": 120, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_rdoor_b", + "items": [ + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "splinter", "count": [ 2, 4 ] }, + { "item": "nail", "charges": [ 4, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_rdoor_b", + "name": "damaged reinforced wood door", + "description": "There are splintering planks and visible holes in the wood, it looks like it could be smashed apart if not repaired.", + "symbol": "&", + "color": "red", + "move_cost": 0, + "coverage": 75, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE_ASH", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_DOOR_REINFORCED_DAMAGED", + "PERMEABLE", + "CONNECT_TO_WALL" + ], + "bash": { + "str_min": 12, + "str_max": 90, + "str_min_blocked": 20, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "nail", "charges": [ 4, 18 ] }, + { "item": "splinter", "count": [ 2, 4 ] }, + { "item": "hinge", "count": [ 0, 1 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_rdoor_o", + "name": "open reinforced wood door", + "description": "Just like other wooden doors, except this one has layers of nailed in two by fours for reinforcement. It might be fortified, but still susceptible to fire. It's open so it's not stopping anything right now.", + "symbol": "'", + "color": "red", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "BARRICADABLE_DOOR_REINFORCED", "CONNECT_TO_WALL", "ROAD" ], + "deconstruct": { + "ter_set": "t_door_c", + "items": [ + { "item": "2x4", "count": 24 }, + { "item": "wood_panel", "count": 1 }, + { "item": "nail", "charges": [ 36, 48 ] }, + { "item": "hinge", "count": 1 } + ] + }, + "close": "t_rdoor_c", + "bash": { + "str_min": 12, + "str_max": 100, + "str_min_blocked": 20, + "str_max_blocked": 120, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "count": [ 2, 8 ] }, + { "item": "nail", "charges": [ 8, 30 ] }, + { "item": "splinter", "count": [ 4, 8 ] }, + { "item": "hinge", "count": [ 0, 1 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_locked_interior", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has an extra keyhole, so it's likely locked. You could pry it open or pick the lock.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BARRICADABLE_DOOR", "LOCKED", "BLOCK_WIND" ], + "examine_action": "locked_object", + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_locked", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has a deadbolt keyhole, so it's likely locked. You could pry it open or pick the lock, or unlock the deadbolt from the inside.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ + "FLAMMABLE_ASH", + "NOITEM", + "OPENCLOSE_INSIDE", + "REDUCE_SCENT", + "CONNECT_TO_WALL", + "BARRICADABLE_DOOR", + "LOCKED", + "BLOCK_WIND" + ], + "examine_action": "locked_object", + "open": "t_door_o", + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_locked_peep", + "name": "closed wood door", + "description": "A regular door made of ordinary wood, except this one has a peephole. If you examined it more closely, you'd be able to peek through the hole. This one has a deadbolt keyhole, so it's likely locked. You could pry it open or pick the lock, or unlock the deadbolt from the inside.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ + "FLAMMABLE_ASH", + "NOITEM", + "OPENCLOSE_INSIDE", + "REDUCE_SCENT", + "CONNECT_TO_WALL", + "BARRICADABLE_DOOR", + "LOCKED", + "BLOCK_WIND" + ], + "open": "t_door_o_peep", + "examine_action": "door_peephole", + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b_peep", + "items": [ + { "item": "peephole", "prob": 75 }, + { "item": "2x4", "prob": 25 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_locked_alarm", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has an extra keyhole, so it's likely locked. You could pry it open or pick the lock.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "ALARMED", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BARRICADABLE_DOOR", "LOCKED", "BLOCK_WIND" ], + "examine_action": "locked_object", + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_curtain_c", + "name": "closed door curtain", + "description": "Repurposed curtains from a window acting as a door. Could be easily taken down for supplies or placed somewhere else.", + "symbol": "+", + "color": "dark_gray", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "CONNECT_TO_WALL", "EASY_DECONSTRUCT" ], + "open": "t_door_curtain_o", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ { "item": "stick", "count": 1 }, { "item": "sheet", "count": 2 }, { "item": "withered", "count": 12 } ] + }, + "bash": { + "str_min": 1, + "str_max": 4, + "sound": "rrrrip!", + "sound_fail": "slap!", + "sound_vol": 6, + "sound_fail_vol": 3, + "ter_set": "t_dirt", + "items": [ + { "item": "sheet", "count": [ 0, 1 ] }, + { "item": "rag", "count": [ 2, 5 ] }, + { "item": "stick", "count": 1 }, + { "item": "withered", "count": [ 2, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_makeshift_c", + "name": "closed makeshift door", + "description": "A makeshift screen consisting of two by fours bound together with vertical rope hanging from the top of the doorway. Could be easily taken down and re-purposed.", + "symbol": "+", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "DOOR", "NOITEM", "CONNECT_TO_WALL", "EASY_DECONSTRUCT", "BLOCK_WIND" ], + "open": "t_door_makeshift_o", + "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "2x4", "count": 6 }, { "item": "rope_makeshift_6", "count": 2 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "str_min_blocked": 6, + "str_max_blocked": 30, + "sound": "crack.", + "sound_fail": "wham.", + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "count": [ 2, 5 ] }, + { "item": "rope_makeshift_6", "count": [ 0, 1 ] }, + { "item": "withered", "count": [ 2, 12 ] }, + { "item": "splinter", "count": [ 5, 10 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_curtain_o", + "name": "open door curtain", + "description": "Repurposed curtains from a window acting as a door. Could be easily taken down for supplies or placed somewhere else. These curtains are open, bundled and tied next to the doorway.", + "symbol": "'", + "color": "dark_gray", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "EASY_DECONSTRUCT" ], + "deconstruct": { + "ter_set": "t_dirt", + "items": [ { "item": "stick", "count": 1 }, { "item": "sheet", "count": 2 }, { "item": "withered", "count": 12 } ] + }, + "close": "t_door_curtain_c", + "bash": { + "str_min": 1, + "str_max": 4, + "sound": "rrrrip!", + "sound_fail": "slap!", + "sound_vol": 5, + "sound_fail_vol": 2, + "ter_set": "t_dirt", + "items": [ + { "item": "sheet", "count": [ 0, 1 ] }, + { "item": "rag", "count": [ 2, 5 ] }, + { "item": "stick", "count": 1 }, + { "item": "withered", "count": [ 2, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_makeshift_o", + "name": "open makeshift door", + "description": "A makeshift screen consisting of two by fours bound together with rope hanging from the top of the doorway. Could be easily taken down and re-purposed. The planks have been rolled up and attached to the top of the doorway, allowing free movement through.", + "symbol": "'", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "EASY_DECONSTRUCT" ], + "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "2x4", "count": 6 }, { "item": "rope_makeshift_6", "count": 2 } ] }, + "close": "t_door_makeshift_c", + "bash": { + "str_min": 3, + "str_max": 20, + "str_min_blocked": 4, + "str_max_blocked": 30, + "sound": "crack.", + "sound_fail": "wham.", + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "count": [ 2, 5 ] }, + { "item": "rope_makeshift_6", "count": [ 0, 1 ] }, + { "item": "withered", "count": [ 2, 12 ] }, + { "item": "splinter", "count": [ 5, 10 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_frame", + "name": "empty door frame", + "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 6, + "str_max": 25, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 3, 6 ] }, + { "item": "splinter", "count": [ 3, 6 ] }, + { "item": "nail", "charges": [ 6, 12 ] } + ] + }, + "deconstruct": { "ter_set": "t_floor", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } + }, + { + "type": "terrain", + "id": "t_door_lab_frame", + "name": "empty door frame", + "description": "An empty door frame made from two by fours and nails. A variety of doors could be constructed here.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 6, + "str_max": 25, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 3, 6 ] }, + { "item": "splinter", "count": [ 3, 6 ] }, + { "item": "nail", "charges": [ 6, 12 ] } + ] + }, + "deconstruct": { "ter_set": "t_thconc_floor", "items": [ { "item": "2x4", "count": 12 }, { "item": "nail", "charges": 24 } ] } + }, + { + "type": "terrain", + "id": "t_mdoor_frame", + "name": "empty metal door frame", + "description": "An empty door frame made of steel and assorted metal. A variety of doors could be constructed here.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 18, + "str_max": 75, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ { "item": "spike", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_mdoor_lab_frame", + "name": "empty metal door frame", + "description": "An empty door frame made of steel and assorted metal. A variety of doors could be constructed here.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 18, + "str_max": 75, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_thconc_floor", + "items": [ { "item": "spike", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_m_frame", + "name": "empty metal window frame", + "description": "An empty window frame constructed from assembled metal and carefully braced with various hardware.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "bash": { + "str_min": 18, + "str_max": 75, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ { "item": "spike", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_chaingate_l", + "name": "locked wire gate", + "description": "A gate for a chain link fence. This one has a locked padlock on the latch system. With the right tools, you could cut the metal fence or pick the lock. You could also examine the fence to see if it looks climbable.", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "flags": [ "TRANSPARENT", "PERMEABLE", "LOCKED", "THIN_OBSTACLE" ], + "connects_to": "CHAINFENCE", + "bash": { + "str_min": 10, + "str_max": 150, + "str_min_blocked": 15, + "str_max_blocked": 175, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ { "item": "wire", "count": [ 8, 20 ] }, { "item": "scrap", "count": [ 0, 12 ] } ] + } + }, + { + "type": "terrain", + "id": "t_fencegate_c", + "name": "closed wooden gate", + "description": "A commercial quality gate made of wood with a latch system.", + "symbol": "+", + "color": "brown", + "move_cost": 3, + "coverage": 60, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DOOR", "MOUNTABLE" ], + "connects_to": "WOODFENCE", + "open": "t_fencegate_o", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 5 }, + { "item": "pointy_stick", "count": 2 }, + { "item": "nail", "charges": 12 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + }, + "bash": { + "str_min": 4, + "str_max": 20, + "str_min_blocked": 6, + "str_max_blocked": 30, + "sound": "crack.", + "sound_fail": "wham.", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "nail", "charges": [ 2, 8 ] }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_fencegate_o", + "name": "open wooden gate", + "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "ROAD" ], + "connects_to": "WOODFENCE", + "close": "t_fencegate_c", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 5 }, + { "item": "pointy_stick", "count": 2 }, + { "item": "nail", "charges": 12 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + }, + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "nail", "charges": [ 2, 8 ] }, + { "item": "splinter", "count": 1 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_chaingate_c", + "name": "closed wire gate", + "description": "A gate for a chain link fence with a latch system to stay closed.", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "flags": [ "TRANSPARENT", "DOOR", "PERMEABLE", "THIN_OBSTACLE" ], + "connects_to": "CHAINFENCE", + "open": "t_chaingate_o", + "bash": { + "str_min": 10, + "str_max": 150, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ + { "item": "wire", "count": [ 6, 15 ] }, + { "item": "pipe", "count": [ 6, 15 ] }, + { "item": "scrap", "count": [ 0, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_chaingate_o", + "name": "open wire gate", + "description": "A gate for a chain link fence with a latch system to stay closed. The latch is undone, so the gate has swung open.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD" ], + "connects_to": "CHAINFENCE", + "close": "t_chaingate_c", + "bash": { + "str_min": 5, + "str_max": 150, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ + { "item": "wire", "count": [ 6, 15 ] }, + { "item": "pipe", "count": [ 6, 15 ] }, + { "item": "scrap", "count": [ 0, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_chickenwire_gate_c", + "name": "closed chickenwire gate", + "description": "A gate for a chickenwire fence with a simple latch system to stay closed.", + "symbol": "+", + "color": "brown", + "looks_like": "t_chaingate_c", + "move_cost": 0, + "flags": [ "TRANSPARENT", "DOOR", "PERMEABLE" ], + "connects_to": "CHAINFENCE", + "open": "t_chickenwire_gate_o", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 5 }, + { "item": "wire", "count": 10 }, + { "item": "nail", "charges": 20 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "str_min_blocked": 5, + "str_max_blocked": 15, + "sound": "rattle!", + "sound_fail": "thump!", + "ter_set": "t_null", + "items": [ { "item": "wire", "count": [ 4, 6 ] }, { "item": "2x4", "count": [ 2, 4 ] }, { "item": "hinge", "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_chickenwire_gate_o", + "name": "open chickenwire gate", + "description": "A gate for a chickenwire fence with a simple latch system to stay closed. The latch is undone, so the gate has swung open.", + "symbol": ".", + "color": "brown", + "looks_like": "t_chaingate_o", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD" ], + "connects_to": "CHAINFENCE", + "close": "t_chickenwire_gate_c", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 5 }, + { "item": "wire", "count": 10 }, + { "item": "nail", "charges": 20 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "rattle!", + "sound_fail": "thump!", + "ter_set": "t_null", + "items": [ { "item": "wire", "count": [ 4, 6 ] }, { "item": "2x4", "count": [ 2, 4 ] }, { "item": "hinge", "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_boarded", + "name": "boarded up door", + "description": "A standard wooden door that has several planks across it, nailed down to board it up and increase its durability. Still flammable though.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 15, + "str_max": 80, + "str_min_blocked": 17, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "wood_panel", "prob": 10 }, + { "item": "nail", "charges": [ 2, 10 ] }, + { "item": "splinter", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_boarded_damaged", + "name": "boarded up damaged door", + "description": "A boarded up wooden door, except some of the planks are fractured or coming loose. Without repairs, it could be broken down easily.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], + "bash": { + "str_min": 10, + "str_max": 40, + "str_min_blocked": 9, + "str_max_blocked": 50, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_door_frame", + "items": [ + { "item": "2x4", "count": [ 1, 8 ] }, + { "item": "nail", "charges": [ 2, 20 ] }, + { "item": "splinter", "count": 1 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_boarded_peep", + "name": "boarded up door with peephole", + "description": "A boarded up door made of ordinary wood, except this one has a peephole. Although it's been covered up in planks, you could still examine the peephole.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "examine_action": "door_peephole", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 15, + "str_max": 80, + "str_min_blocked": 17, + "str_max_blocked": 100, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_door_b_peep", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 2, 10 ] }, + { "item": "splinter", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_rdoor_boarded", + "name": "boarded up reinforced door", + "description": "An additionally reinforced door of layered two by fours that has been boarded up with more wood to prevent it from opening. Still susceptible to fire.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 25, + "str_max": 60, + "str_min_blocked": 32, + "str_max_blocked": 70, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_rdoor_b", + "items": [ + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "wood_panel", "prob": 10 }, + { "item": "nail", "charges": [ 1, 8 ] }, + { "item": "splinter", "count": 1 } + ] + } + }, + { + "type": "terrain", + "id": "t_rdoor_boarded_damaged", + "name": "boarded up damaged reinforced door", + "description": "A battered and torn reinforced door with planks bursting from the joints. The boarded up two by fours are fragmented and in pieces, this doesn't look like an easy repair.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], + "bash": { + "str_min": 20, + "str_max": 50, + "str_min_blocked": 24, + "str_max_blocked": 60, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "count": [ 2, 16 ] }, + { "item": "nail", "charges": [ 6, 54 ] }, + { "item": "splinter", "count": 1 }, + { "item": "hinge", "count": [ 0, 1 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_boarded_damaged_peep", + "name": "boarded up damaged door with peephole", + "description": "A wrecked door made of ordinary wood, except this one has a peephole. Although it's been covered up in planks, the peephole was damaged and can't be used to see through.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "examine_action": "door_peephole", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], + "bash": { + "str_min": 10, + "str_max": 40, + "str_min_blocked": 9, + "str_max_blocked": 50, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_door_frame", + "items": [ + { "item": "peephole", "prob": 75 }, + { "item": "2x4", "count": [ 1, 8 ] }, + { "item": "nail", "charges": [ 2, 20 ] }, + { "item": "splinter", "count": 1 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_c", + "name": "closed metal door", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape.", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "open": "t_door_metal_o", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_secretdoor_metal_c", + "name": "metal wall", + "description": "An industrially fabricated thick sheet carefully positioned and joined seamlessly with perimeter sealant, this wall is capable of resisting extreme elements as well as hostile forces. Blast load rated and extremely fire-retardant, breaching will require specialized tools or industrial vehicles.", + "symbol": "LINE_OXOX", + "looks_like": "t_wall_metal", + "color": "cyan", + "move_cost": 0, + "roof": "t_metal_floor", + "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "AUTO_WALL_SYMBOL", "MINEABLE" ], + "open": "t_secretdoor_metal_o", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ { "item": "scrap", "count": [ 12, 24 ] }, { "item": "steel_plate", "prob": 75 } ] + } + }, + { + "type": "terrain", + "id": "t_secretdoor_metal_o", + "name": "open secret door", + "looks_like": "t_mdoor_frame", + "description": "This apparently normal segment of metal wall has opened to reveal a secret passage.", + "symbol": "'", + "color": "cyan", + "move_cost": 2, + "roof": "t_metal_floor", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], + "close": "t_secretdoor_metal_c", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ { "item": "scrap", "count": [ 12, 24 ] }, { "item": "steel_plate", "prob": 75 } ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_lab_c", + "name": "closed metal door", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape.", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "MINEABLE" ], + "open": "t_door_metal_lab_o", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_lab_frame", + "items": [ + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_o", + "name": "open metal door", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. It's open, so no tools are needed to break in.", + "symbol": "'", + "color": "cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], + "close": "t_door_metal_c", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_lab_o", + "name": "open metal door", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. It's open, so no tools are needed to break in.", + "symbol": "'", + "color": "cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], + "close": "t_door_metal_lab_c", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_lab_frame", + "items": [ + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_c_peep", + "name": "closed metal door with peephole", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. If you examined it more closely, you'd be able to peek through the hole.", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "open": "t_door_metal_o_peep", + "examine_action": "door_peephole", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "peephole", "prob": 75 }, + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_o_peep", + "name": "open metal door with peephole", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. If you examined it more closely, you'd be able to peek through the hole. Although, you don't need to peek through it since the door is open anyway.", + "symbol": "'", + "color": "cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], + "close": "t_door_metal_c_peep", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "peephole", "prob": 75 }, + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_locked", + "name": "closed metal door", + "description": "A galvanized steel door, forged to withstand punishment and impede anyone or anything. Typically used in conjunction with automated electronic locking mechanisms that require an external source to unlock.", + "//": "Actually locked", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "LOCKED", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_metal_pickable", + "name": "closed metal door", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. This one has an extra keyhole, so it's likely locked. You could probably pick the lock.", + "//": "Actually pickable, but locked", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "REDUCE_SCENT", "OPENCLOSE_INSIDE", "CONNECT_TO_WALL", "LOCKED", "MINEABLE", "BLOCK_WIND" ], + "open": "t_door_metal_o", + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_bar_c", + "name": "closed bar door", + "description": "A detention door made up of crisscrossed stainless steel bars. The locking mechanism doesn't appear to be engaged.", + "//": "Unlocked, only created at map gen", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], + "open": "t_door_bar_o", + "close": "t_door_bar_locked", + "bash": { + "str_min": 30, + "str_max": 210, + "str_min_blocked": 40, + "str_max_blocked": 240, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_floor", + "items": [ + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_bar_o", + "name": "open bar door", + "description": "A detention door made up of crisscrossed stainless steel bars. It's swung wide open. Freedom!", + "symbol": "'", + "color": "cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_bar_c", + "bash": { + "str_min": 20, + "str_max": 210, + "str_min_blocked": 30, + "str_max_blocked": 240, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_bar_locked", + "name": "closed bar door", + "description": "A detention door made up of crisscrossed stainless steel bars. The locking mechanism appears to be engaged. The mechanism could be picked open with enough skill.", + "//": "Locked", + "symbol": "+", + "color": "cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "LOCKED", "THIN_OBSTACLE" ], + "bash": { + "str_min": 30, + "str_max": 210, + "str_min_blocked": 40, + "str_max_blocked": 240, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_frame", + "items": [ + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_c", + "name": "closed glass door", + "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "open": "t_door_glass_o", + "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 6, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_lab_c", + "name": "closed glass door", + "description": "A sliding glass door, the kind that was on social media with people and animals running into. This one is closed, so don't hurt yourself.", + "symbol": "+", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "DOOR", "NOITEM", "CONNECT_TO_WALL" ], + "open": "t_door_glass_lab_o", + "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 6, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_thconc_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_o", + "name": "open glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_c", + "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_door_frame", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_lab_o", + "name": "open glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "light_cyan", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_lab_c", + "deconstruct": { "ter_set": "t_door_frame", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_thconc_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] } ] + } + }, + { + "type": "terrain", + "id": "t_door_glass_frosted_c", + "name": "closed frosted glass door", + "description": "A sliding door of frosted white glass.", + "symbol": "+", + "color": "white", + "flags": [ "DOOR", "NOITEM", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "open": "t_door_glass_frosted_o", + "copy-from": "t_door_glass_c" + }, + { + "type": "terrain", + "id": "t_door_glass_frosted_lab_c", + "name": "closed frosted glass door", + "description": "A sliding door of frosted white glass.", + "symbol": "+", + "color": "white", + "flags": [ "DOOR", "NOITEM", "CONNECT_TO_WALL" ], + "open": "t_door_glass_frosted_lab_o", + "copy-from": "t_door_glass_frosted_c" + }, + { + "type": "terrain", + "id": "t_door_glass_frosted_o", + "name": "open frosted glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "white", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_frosted_c", + "copy-from": "t_door_glass_o" + }, + { + "type": "terrain", + "id": "t_door_glass_frosted_lab_o", + "name": "open frosted glass door", + "description": "A sliding glass door that has been left open for all manner of things to travel through.", + "symbol": "'", + "color": "white", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "close": "t_door_glass_frosted_lab_c", + "copy-from": "t_door_glass_lab_o" + }, + { + "type": "terrain", + "id": "t_portcullis", + "name": "makeshift portcullis", + "description": "An immense gateway scrapped together with various bits of steel and metal scraps.", + "symbol": "&", + "color": "cyan", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "CONNECT_TO_WALL", "MINEABLE" ], + "bash": { + "str_min": 60, + "str_max": 210, + "str_min_blocked": 80, + "str_max_blocked": 240, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 12 ] } ] + } + }, + { + "type": "terrain", + "id": "t_recycler", + "name": "metal compactor", + "description": "A hydraulic compactor that can accept items made of various metals, and press them into basic shapes, ready for further crafting.", + "symbol": "&", + "color": "green", + "move_cost": 0, + "max_volume": 8000, + "flags": [ "TRANSPARENT", "REDUCE_SCENT", "PERMEABLE" ], + "examine_action": "recycle_compactor", + "bash": { + "str_min": 20, + "str_max": 150, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_thconc_floor", + "items": [ + { "item": "steel_lump", "count": [ 0, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_window", + "name": "window", + "description": "A giant sheet of glass inserted into a window, typically found on the side of shops to showcase goods.", + "symbol": "\"", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "deconstruct": { "ter_set": "t_window_empty", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ { "item": "glass_shard", "count": 42 } ] + } + }, + { + "type": "terrain", + "id": "t_window_taped", + "name": "taped window", + "description": "Duct tape covers this window, blocking sunlight and visibility. You could remove the duct tape by cutting it off.", + "symbol": "\"", + "color": "dark_gray", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "WALL", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 6, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ { "item": "glass_shard", "count": 42 } ] + } + }, + { + "type": "terrain", + "id": "t_window_domestic", + "name": "window with curtains", + "description": "A window with fancy curtains on the inside that can be drawn closed to block visibility and shut out any light.", + "symbol": "\"", + "color": "light_gray", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE", + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", + "REDUCE_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], + "examine_action": "curtains", + "close": "t_curtains", + "open": "t_window_open", + "deconstruct": { + "ter_set": "t_window_empty", + "items": [ + { "item": "stick", "count": 1 }, + { "item": "sheet", "count": 2 }, + { "item": "glass_sheet", "count": 1 }, + { "item": "nail", "charges": [ 3, 4 ] }, + { "item": "string_36", "count": 1 } + ] + }, + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ + { "item": "glass_shard", "count": 25 }, + { "item": "sheet", "count": 2 }, + { "item": "stick", "count": 1 }, + { "item": "string_36", "count": 1 } + ] + } + }, + { + "type": "terrain", + "id": "t_window_no_curtains", + "name": "window without curtains", + "description": "A smaller window typically found in residential homes. You could install a curtain rod and drapes if you had the supplies and skill.", + "symbol": "\"", + "color": "white", + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE", + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", + "REDUCE_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], + "examine_action": "locked_object", + "open": "t_window_no_curtains_open", + "deconstruct": { "ter_set": "t_window_empty", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ { "item": "glass_shard", "count": 25 } ] + } + }, + { + "type": "terrain", + "id": "t_window_no_curtains_open", + "name": "open window without curtains", + "description": "A smaller window typically found in residential homes. It's open and can be crawled through.", + "symbol": "'", + "color": "white", + "move_cost": 4, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "OPENCLOSE_INSIDE", "MOUNTABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], + "close": "t_window_no_curtains", + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ { "item": "glass_shard", "count": 25 } ] + } + }, + { + "type": "terrain", + "id": "t_window_no_curtains_taped", + "name": "taped window", + "description": "A smaller window typically found in residential homes. This one has been blocked out with duct tape. You could remove the duct tape by cutting it off.", + "//": "Taped window without curtains", + "symbol": "\"", + "color": "dark_gray", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 6, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ { "item": "glass_shard", "count": 25 } ] + } + }, + { + "type": "terrain", + "id": "t_window_domestic_taped", + "name": "taped window", + "description": "A window with fancy curtains on the inside. This one has been blocked out with duct tape. You could remove the duct tape by cutting it off.", + "//": "Taped window with curtains", + "symbol": "\"", + "color": "dark_gray", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "WALL", "BLOCK_WIND" ], + "examine_action": "curtains", + "bash": { + "str_min": 6, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ + { "item": "glass_shard", "count": 25 }, + { "item": "sheet", "count": 2 }, + { "item": "stick", "count": 1 }, + { "item": "string_36", "count": 1 } + ] + } + }, + { + "type": "terrain", + "id": "t_window_open", + "name": "open window with curtains", + "description": "A window with fancy curtains on the inside that can be drawn closed to block visibility and shut out any light. It's open and you can crawl through.", + "symbol": "'", + "color": "light_gray", + "move_cost": 4, + "coverage": 60, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "OPENCLOSE_INSIDE", "MOUNTABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], + "examine_action": "curtains", + "close": "t_window_domestic", + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ + { "item": "glass_shard", "count": 25 }, + { "item": "sheet", "count": 2 }, + { "item": "stick", "count": 1 }, + { "item": "string_36", "count": 1 } + ] + } + }, + { + "type": "terrain", + "id": "t_curtains", + "name": "window with closed curtains", + "description": "A window with fancy curtains that have been drawn shut, blocking sunlight and visibility. The curtains can only be opened on the inside. If you examined the curtains more closely, you could peek through the drapes or tear down everything. Or you could just smash the window open.", + "symbol": "\"", + "color": "dark_gray", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ + "FLAMMABLE", + "NOITEM", + "OPENCLOSE_INSIDE", + "REDUCE_SCENT", + "BARRICADABLE_WINDOW_CURTAINS", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], + "open": "t_window_domestic", + "examine_action": "curtains", + "deconstruct": { + "ter_set": "t_window_empty", + "items": [ + { "item": "stick", "count": 1 }, + { "item": "sheet", "count": 2 }, + { "item": "glass_sheet", "count": 1 }, + { "item": "nail", "charges": [ 3, 4 ] }, + { "item": "string_36", "count": 1 } + ] + }, + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ + { "item": "glass_shard", "count": 25 }, + { "item": "sheet", "count": 2 }, + { "item": "stick", "count": 1 }, + { "item": "string_36", "count": 1 } + ] + } + }, + { + "type": "terrain", + "id": "t_window_alarm", + "name": "window", + "description": "A giant sheet of glass inserted into a window, typically found on the side of shops to showcase goods.", + "symbol": "\"", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE", + "ALARMED", + "NOITEM", + "REDUCE_SCENT", + "BARRICADABLE_WINDOW", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame" + } + }, + { + "type": "terrain", + "id": "t_window_alarm_taped", + "name": "taped window", + "description": "Duct tape covers this window, blocking out any sunlight and visibility. You could remove the duct tape by cutting it off.", + "symbol": "\"", + "color": "dark_gray", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "ALARMED", "WALL", "BARRICADABLE_WINDOW", "BLOCK_WIND" ], + "bash": { + "str_min": 6, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ { "item": "glass_shard", "count": 42 } ] + } + }, + { + "type": "terrain", + "id": "t_window_empty", + "name": "empty window", + "roof": "t_flat_roof", + "description": "An empty window frame consisting of two by fours and nails. You could install a sheet of glass, or even board it up for protection. You could also convert it into a wall if you took the time to construct it.", + "symbol": "0", + "color": "yellow", + "move_cost": 4, + "flags": [ "TRANSPARENT", "NOITEM", "FLAMMABLE", "SUPPORTS_ROOF", "MOUNTABLE", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], + "bash": { + "str_min": 10, + "str_max": 70, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 0, 5 ] }, + { "item": "nail", "charges": [ 0, 5 ] }, + { "item": "splinter", "count": [ 5, 10 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_window_frame", + "name": "window frame", + "description": "A wooden window frame that has shattered glass around it. You'll probably get hurt if you crawled through the sharp and jagged shards. You could smash out the remaining pieces, or take your time and quietly clean them up.", + "symbol": "0", + "color": "light_cyan", + "move_cost": 8, + "coverage": 60, + "roof": "t_flat_roof", + "bash": { + "str_min": 1, + "str_max": 1, + "sound": "glass crunching!", + "sound_fail": "whack!", + "sound_vol": 12, + "sound_fail_vol": 8, + "ter_set": "t_window_empty", + "items": [ { "item": "glass_shard", "count": 8 } ] + }, + "flags": [ "TRANSPARENT", "SHARP", "FLAMMABLE", "NOITEM", "MOUNTABLE", "CONNECT_TO_WALL" ] + }, + { + "type": "terrain", + "id": "t_window_boarded", + "name": "boarded up window", + "description": "A glass window that has been covered with nailed down planks, blocking sunlight and visibility. It's not much stronger, but it could be further reinforced with strategically placed two by fours.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 3, + "str_max": 30, + "sound": "crash!", + "sound_fail": "wham!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_frame", + "items": [ { "item": "splinter", "count": [ 0, 2 ] }, { "item": "glass_shard", "count": [ 25, 42 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_boarded_noglass", + "name": "boarded up window", + "description": "An empty window frame that has been covered with nailed down planks, blocking sunlight and visibility. It's not much stronger, but it could be further reinforced with strategically placed two by fours.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 3, + "str_max": 30, + "sound": "crash!", + "sound_fail": "wham!", + "sound_vol": 14, + "sound_fail_vol": 10, + "ter_set": "t_window_empty", + "items": [ { "item": "splinter", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_reinforced", + "name": "reinforced boarded up window", + "description": "A heavily fortified glass window with carefully placed planks across the glass to block vision. Adding a few spikes and metal plating would further increase its durability.", + "symbol": "#", + "color": "red", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 12, + "str_max": 30, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_window_boarded", + "items": [ { "item": "splinter", "count": [ 0, 8 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_reinforced_noglass", + "name": "reinforced boarded up window", + "description": "A heavily fortified window with carefully placed planks across the open frame to block vision. Adding a few spikes and metal plating would further increase its durability.", + "symbol": "#", + "color": "red", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 12, + "str_max": 30, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_window_boarded_noglass", + "items": [ { "item": "splinter", "count": [ 0, 8 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_enhanced", + "name": "armored boarded up window", + "description": "This once normal glass window now menaces with spikes along the edges, with laboriously placed metal sheeting to further strengthen the wooden reinforcements underneath.", + "symbol": "#", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 18, + "str_max": 40, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_window_reinforced", + "items": [ { "item": "spike", "count": [ 0, 2 ] }, { "item": "sheet_metal", "count": [ 1, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_enhanced_noglass", + "name": "armored boarded up window", + "description": "This once normal window frame now menaces with spikes along the edges, with laboriously placed metal sheeting to further strengthen the wooden reinforcements underneath.", + "symbol": "#", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 18, + "str_max": 40, + "sound": "crash!", + "sound_fail": "wham!", + "ter_set": "t_window_reinforced_noglass", + "items": [ { "item": "spike", "count": [ 0, 2 ] }, { "item": "sheet_metal", "count": [ 1, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_bars", + "name": "window frame with metal bars", + "description": "A giant sheet of glass inserted into a window with thick security grilles, making it impossible to crawl through. Typically installed for high-value stores, or at least stores in bad neighborhoods.", + "symbol": "#", + "color": "light_gray", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "CONNECT_TO_WALL", "THIN_OBSTACLE" ], + "bash": { + "str_min": 60, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_window_empty", + "items": [ + { "item": "steel_lump", "prob": 25 }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "glass_shard", "count": 100 } + ] + } + }, + { + "type": "terrain", + "id": "t_window_bars_alarm", + "name": "window with metal bars", + "description": "A giant sheet of glass inserted into a window with thick security grilles, making it impossible to crawl through. Typically installed for high-value stores, or at least stores in bad neighborhoods. This one has a small sticker in a corner stating, 'Protected by AtmoWeb, leading AI in terminating crime'.", + "symbol": "#", + "color": "light_gray", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "ALARMED", "CONNECT_TO_WALL" ], + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_window_bars", + "items": [ { "item": "glass_shard", "count": 42 } ] + } + }, + { + "type": "terrain", + "id": "t_window_stained_green", + "name": "high stained glass window", + "description": "Breathtaking craftsmanship of stained glass featuring an elegant emerald landscape.", + "symbol": "\"", + "color": "light_green", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "glass breaking!", + "sound_fail": "whack!", + "ter_set": "t_rock_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 67 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_stained_red", + "name": "high stained glass window", + "description": "Breathtaking craftsmanship of stained glass featuring an otherworldly radiant ruby flower blooming.", + "symbol": "\"", + "color": "light_red", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "glass breaking!", + "sound_fail": "whack!", + "ter_set": "t_rock_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 67 ] } ] + } + }, + { + "type": "terrain", + "id": "t_window_stained_blue", + "name": "high stained glass window", + "description": "Breathtaking craftsmanship of stained glass featuring an alluring azure oceanic abyss.", + "symbol": "\"", + "color": "light_blue", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "glass breaking!", + "sound_fail": "whack!", + "ter_set": "t_rock_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 67 ] } ] + } + }, + { + "type": "terrain", + "id": "t_rock", + "name": "solid rock", + "description": "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!", + "symbol": "#", + "color": "white", + "move_cost": 0, + "coverage": 100, + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "MINEABLE", "BLOCK_WIND" ], + "roof": "t_rock_floor", + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_rock_floor", + "ter_set_bashed_from_above": "t_rock_floor_no_roof", + "items": [ + { "item": "rock", "count": [ 3, 7 ] }, + { "item": "coal_lump", "charges": [ 250, 500 ], "prob": 10 }, + { "item": "material_limestone", "charges": [ 10, 25 ], "prob": 80 }, + { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 20 } + ] + } + }, + { + "type": "terrain", + "id": "t_rock_smooth", + "name": "smoothed rock", + "description": "A block of stone that's been smoothed and shaped, commonly granite or marble for funerary chapels and mausoleums.", + "symbol": "LINE_OXOX", + "//": "use pillars, 't_column', as a compliment.", + "color": "white", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 120, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_rock_floor", + "items": [ { "item": "rock", "count": [ 6, 12 ] }, { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 10 } ] + } + }, + { + "type": "terrain", + "id": "t_fault", + "name": "odd fault", + "description": "An unnaturally humanoid-shaped hole, it seems oddly familiar. There's a strange sensation to examine it closer, as if it belongs to you somehow.", + "symbol": "#", + "color": "magenta", + "move_cost": 0, + "roof": "t_rock_floor", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL" ], + "examine_action": "fault" + }, + { + "type": "terrain", + "id": "t_paper", + "name": "paper wall", + "description": "A huge wall of pulpy mass that has been salvaged from nearby buildings, covered in sticky wasp saliva. Whatever structure was underneath has been reformed and long gone. You could smash it down effortlessly.", + "symbol": "#", + "color": "white", + "move_cost": 0, + "coverage": 100, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "WALL" ], + "bash": { + "str_min": 1, + "str_max": 6, + "sound": "rrrrip!", + "sound_fail": "slap!", + "sound_vol": 8, + "sound_fail_vol": 4, + "ter_set": "t_null" + } + }, + { + "type": "terrain", + "id": "t_tree_walnut", + "name": "walnut tree", + "description": "A massive tree belonging to the 'Juglans' genus. If you look closely you can see some unharvested walnuts. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_walnut_harvested", + "examine_action": "harvest_ter", + "looks_like": "t_tree_hickory", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "walnut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_walnut_harvested", + "name": "walnut tree", + "description": "A massive tree belonging to the 'Juglans' genus. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_walnut", + "looks_like": "t_tree_hickory_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_chestnut", + "name": "chestnut tree", + "description": "A massive tree belonging to the 'Castanea' genus. If you look closely you can see some unharvested chestnuts. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_chestnut_harvested", + "examine_action": "harvest_ter", + "looks_like": "t_tree_hickory", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "chestnut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_chestnut_harvested", + "name": "chestnut tree", + "description": "A massive tree belonging to the 'Castanea' genus. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_chestnut", + "looks_like": "t_tree_hickory_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_beech", + "name": "beech tree", + "description": "A massive tree belonging to the 'Fagus' genus. If you look closely you can see some unharvested beech nuts. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_beech_harvested", + "examine_action": "harvest_ter", + "looks_like": "t_tree_hickory", + "harvest_by_season": [ + { "seasons": [ "autumn" ], "entries": [ { "drop": "beech_nuts", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_beech_harvested", + "name": "beech tree", + "description": "A massive tree belonging to the 'Fagus' genus. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_beech", + "looks_like": "t_tree_hickory_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_hazelnut", + "name": "hazelnut tree", + "description": "A stubby tree belonging to the 'Corylus' genus. If you look closely you can see some unharvested hazelnuts. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_hazelnut_harvested", + "examine_action": "harvest_ter", + "looks_like": "t_tree_hickory", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "hazelnut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_hazelnut_harvested", + "name": "hazelnut tree", + "description": "A stubby tree belonging to the 'Corylus' genus. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_hazelnut", + "looks_like": "t_tree_hickory_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree", + "name": "oak tree", + "description": "A massive deciduous tree belonging to the 'Quercus' genus, commonly found throughout New England region. If you look closely you can see some acorns the squirrels haven't gotten yet. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "brown_green", "brown" ], + "//": "barren in winter", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_harvested", + "examine_action": "harvest_ter", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "acorns", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_harvested", + "name": "oak tree", + "description": "A massive deciduous tree belonging to the 'Quercus' genus, commonly found throughout New England region. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_cottonwood", + "name": "cottonwood tree", + "looks_like": "t_tree", + "description": "A large tree belonging to the 'Populus' genus, commonly found throughout New England region. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "brown_green", "brown" ], + "//": "Do something cool with this and have it spread cotton around the area or something.", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_elm", + "name": "elm tree", + "looks_like": "t_tree", + "description": "A large tree belonging to the 'Ulmus' genus, commonly found throughout New England region. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "green", "green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_dead", + "name": "dead tree", + "description": "An indiscernible tree that has withered away, whether by weather, fire or otherworldy. You could cut it down with the right tools.", + "symbol": "7", + "color": "brown", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 70, + "str_max": 140, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_young", + "name": "young tree", + "description": "A relatively young sapling of an indeterminate species. It could take decades before reaching maturity, so there's no use waiting around.", + "symbol": "1", + "color": [ "green", "green", "green", "brown" ], + "//": "barren in winter", + "move_cost": 4, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "YOUNG", "REDUCE_SCENT" ], + "bash": { + "str_min": 4, + "str_max": 50, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 0, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_apple", + "name": "apple tree", + "description": "This tree is a member of the 'Malus' genus, producing fruit commonly known as apples. If you examined the branches more closely, you could probably find a few mature ones in autumn. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "red_green", "brown" ], + "//": "barren in winter, fruits in autumn", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_apple_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "apple", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_apple_harvested", + "name": "apple tree", + "description": "This tree is a member of the 'Malus' genus, producing fruit commonly known as apples. There doesn't appear to be any ripe apples now. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_apple", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pear", + "name": "pear tree", + "description": "This is 'Pyrus communis', or the common pear tree, which produces viable pears in the fall. If you examined the branches more closely, you could probably find a few mature ones. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green_green", "brown" ], + "//": "barren in winter, fruits in autumn", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_pear_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "pear", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pear_harvested", + "name": "pear tree", + "description": "This is 'Pyrus communis', or the common pear tree, which produces viable pears in the fall. Looks like all the ripe pears have been picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_pear", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_coffee", + "name": "coffee tree", + "description": "This is 'gymnocladus dioicus', or the kentucky coffee tree, which produces roastable coffee pods and brewable leaves in the fall. If you examined the branches more closely, you could probably find a few mature ones. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green_green", "brown" ], + "//": "barren in winter, fruits in autumn", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_coffee_harvested", + "looks_like": "t_tree_plum", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ + { + "seasons": [ "autumn" ], + "entries": [ + { "drop": "coffee_pod", "base_num": [ 4, 10 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "tea_raw", "base_num": [ 1, 3 ], "scaled_num": [ 0, 0.5 ] } + ] + } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_coffee_harvested", + "name": "coffee tree", + "description": "This is 'gymnocladus dioicus', or the kentucky coffee tree, which produces roastable coffee pods and brewable leaves in the fall. Looks like all the ripe pods have been picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_coffee", + "looks_like": "t_tree_plum_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_cherry", + "name": "cherry tree", + "description": "One of the several species of 'Prunus' trees found in New England, it bears cherries in the summer. If you examined the foliage more closely, you could probably find some viable clusters. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "red_green", "light_green", "brown" ], + "//": "barren in winter, fruits in summer", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_cherry_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "cherries", "base_num": [ 6, 18 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_cherry_harvested", + "name": "cherry tree", + "description": "One of the several species of 'Prunus' trees found in New England, it bears cherries in the summer. Looks like all the ripe bunches of cherries have been picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_cherry", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_juniper", + "name": "juniper tree", + "description": "One of the species of 'Juniperus' that grows in New England, juniper berries grow over two to three years, first flowering. On the second year producing a green berry, the last, they produce their more famed blue varieties. If you examined the foliage more closely, you could probably find some viable clusters. You could also cut it down with the right tools.", + "symbol": "7", + "looks_like": "t_tree_pine", + "color": [ "light_green", "blue_green", "light_green", "brown" ], + "//": "Can be picked at any point in the third year assuming the berries have turned blue. But it takes a long time to regrow.", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_juniper_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "juniper", "base_num": [ 12, 24 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_juniper_harvested", + "name": "juniper tree", + "description": "One of the species of 'Juniperus' that grows in New England, juniper berries grow over two to three years. In the first year they flower, in the second year they produce a green berry, the last, they produce their more famed blue varieties. Looks like all the ripe bunches of berries have been picked. You could also cut it down with the right tools.", + "symbol": "7", + "looks_like": "t_tree_pine", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "Will take three years to regrow, in reality.", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_juniper", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_peach", + "name": "peach tree", + "description": "One of the several species of 'Prunus' trees found in New England, it bears peaches in the summer. If you examined the branches more closely, you could probably find some mature peaches. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_red_green", "light_green", "brown" ], + "//": "barren in winter, fruits in summer", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_peach_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "peach", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_peach_harvested", + "name": "peach tree", + "description": "One of the several species of 'Prunus' trees found in New England, it bears peaches in the summer. Looks like all the ripe peaches have been picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_peach", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_apricot", + "name": "apricot tree", + "description": "A transplanted species of 'Prunus armeniaca', rarely found in New England. It produces apricots in the summer. If you examined the spurs more closely, you could probably find some mature apricots. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_red_green", "light_green", "brown" ], + "//": "barren in winter, fruits in summer", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_apricot_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "apricot", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_apricot_harvested", + "name": "apricot tree", + "description": "A transplanted species of 'Prunus armeniaca', rarely found in New England. It produces apricots in the summer. Looks like all the ripe apricots have been picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_apricot", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_plum", + "name": "plum tree", + "description": "One of the several species of 'Prunus' trees found in New England, it produces plums in the summer. If you examined the spurs more closely, you could probably find some ripe plums. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "magenta_green", "light_green", "brown" ], + "//": "barren in winter, fruits in summer", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_plum_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "summer" ], "entries": [ { "drop": "plums", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_plum_harvested", + "name": "plum tree", + "description": "One of the several species of 'Prunus' trees found in New England, it produces plums in the summer. Looks like all the ripe plums have been picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_plum", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_mulberry", + "name": "mulberry tree", + "description": "This tree is a member of the 'Morus' genus, producing fruit commonly known as mulberries. In the summer many berries can be picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "red_green", "brown" ], + "//": "barren in winter, fruits in summer", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_mulberry_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_tree_apple", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "mulberries", "base_num": [ 8, 20 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_mulberries", "base_num": [ 3, 5 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_mulberry_harvested", + "name": "mulberry tree", + "description": "This tree is a member of the 'Morus' genus, producing fruit commonly known as mulberries. There doesn't appear to be any ripe mulberries now. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_mulberry", + "looks_like": "t_tree_apple_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_elderberry", + "name": "elderberry tree", + "description": "This tree is a member of the 'Sambucus' genus, producing fruit commonly known as elderberries. In the summer many berries can be picked. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "red_green", "brown" ], + "//": "barren in winter, fruits in summer", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_elderberry_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_tree_plum", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "elderberries", "base_num": [ 8, 20 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_elderberries", "base_num": [ 3, 5 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_elderberry_harvested", + "name": "elderberry tree", + "description": "This tree is a member of the 'Sambucus' genus, producing fruit commonly known as elderberries. There doesn't appear to be any ripe elderberries now. You could also cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_elderberry", + "looks_like": "t_tree_plum_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pine", + "name": "pine tree", + "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. If you examined the tree more closely, you might find usable sticky whorls and unharvested pinecones. Also, you could cut it down with the right tools.", + "symbol": "4", + "color": "green", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_pine_harvested", + "examine_action": "harvest_ter", + "harvest_by_season": [ + { + "seasons": [ "spring", "summer", "autumn", "winter" ], + "entries": [ { "drop": "pine_bough", "base_num": [ 2, 8 ] }, { "drop": "pinecone", "base_num": [ 1, 4 ] } ] + } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pine_harvested", + "name": "pine tree", + "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. Some of the branches have been stripped away and many of the pinecones aren't developed fully yet, but given a season, it could be harvestable again. Also, you could cut it down with the right tools.", + "symbol": "4", + "color": "green", + "copy-from": "t_tree_pine", + "looks_like": "t_tree_deadpine", + "transforms_into": "t_tree_pine", + "examine_action": "harvested_plant" + }, + { + "type": "terrain", + "id": "t_tree_deadpine", + "name": "dead pine tree", + "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. This trees branches are bare, and it appears to be dead. You could cut it down with the right tools.", + "symbol": "4", + "color": "brown", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 60, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_birch", + "name": "birch tree", + "description": "A tall deciduous tree of the 'Betula' genus, with the characteristic peeling bark. Species like 'B. alleghaniensis', 'B. papyrifera', and 'B. populifolia' are the most common in the New England region. You could tear off some strips of bark if you examined the tree more closely. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, harvestable all year round", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "harvest_ter", + "transforms_into": "t_tree_birch_harvested", + "harvest_by_season": [ + { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "birchbark", "base_num": [ 2, 8 ] } ] } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_birch_harvested", + "name": "birch tree", + "description": "A tall deciduous tree of the 'Betula' genus, with the characteristic peeling bark. Species like 'B. alleghaniensis', 'B. papyrifera', and 'B. populifolia' are the most common in the New England region. Looks like there isn't enough rhytidome to peel off yet. You could cut it down with the right tools.", + "symbol": "7", + "color": "green", + "//": "dead, not harvestable", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_willow", + "name": "willow tree", + "description": "A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy branches that hang down like curtains. You could tear off some bark. You could cut it down with the right tools.", + "symbol": "4", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, harvestable all year round", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "harvest_ter", + "transforms_into": "t_tree_willow_harvested", + "harvest_by_season": [ + { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "willowbark", "base_num": [ 2, 8 ] } ] } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_willow_harvested", + "name": "willow tree", + "description": "A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy branches that hang down like curtains. Looks like all usable bark has been torn off, and new rhytidomes have not formed yet. You could cut it down with the right tools.", + "symbol": "4", + "color": [ "brown", "brown", "brown", "brown" ], + "//": "barren in winter, not harvestable", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_maple", + "name": "maple tree", + "description": "A large deciduous tree of the 'Acer' genus. The leaves are distinctively shaped with five prongs. It could be tapped in order to extract maple syrup. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "red", "light_green", "light_green", "red" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "tree_maple", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_maple_tapped", + "name": "maple tree", + "description": "A large deciduous tree of the 'Acer' genus. The leaves are distinctively shaped with five prongs. A spigot is wedged into the trunk, and sweet maple syrup can be extracted. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "red", "light_green", "light_green", "red" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "SEALED", "PLACE_ITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "LIQUIDCONT" ], + "examine_action": "tree_maple_tapped", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_hickory", + "name": "hickory tree", + "description": "A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts if you examined the tree more closely. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "brown_green", "brown" ], + "//": "barren in winter, harvestable in autum", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "tree_hickory", + "harvest_by_season": [ + { "seasons": [ "autumn" ], "entries": [ { "drop": "hickory_nut", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } + ], + "transforms_into": "t_tree_hickory_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_hickory_harvested", + "description": "A tall deciduous tree of the 'Carya' genus. It looks like the tree has been picked clean of hickory nuts. You could cut it down with the right tools.", + "name": "hickory tree", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, kind of harvestable", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "tree_hickory", + "transforms_into": "t_tree_hickory", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pistachio", + "name": "pistachio tree", + "description": "A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is not native to this region. You could look for pistachio nuts if you examined the tree more closely. You could cut it down with the right tools.", + "looks_like": "t_tree_hickory", + "//": "Pistachio tree is not a local native and is only used in specific locations like orchards and gardens.", + "symbol": "7", + "color": [ "light_green", "light_green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "harvest_ter", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "pistachio", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "transforms_into": "t_tree_pistachio_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pistachio_harvested", + "name": "pistachio tree", + "description": "A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is not native to this region. Unfortunately, it looks like it has been picked clean of pistachio nuts. You could cut it down with the right tools.", + "looks_like": "t_tree_hickory_harvested", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_pistachio", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_almond", + "name": "almond tree", + "description": "A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is not native to this region. You could look for fresh almonds if you examined the tree more closely. You could cut it down with the right tools.", + "looks_like": "t_tree_hickory", + "//": "Almond tree is not a local native and is only used in specific locations like orchards and gardens.", + "symbol": "7", + "color": [ "light_green", "light_green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "harvest_ter", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "almond", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "transforms_into": "t_tree_almond_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_almond_harvested", + "description": "A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is not native to this region. There are no almonds left to pick on the tree. You could cut it down with the right tools.", + "name": "almond tree", + "looks_like": "t_tree_hickory_harvested", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_almond", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pecan", + "name": "pecan tree", + "description": "A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts if you examined the tree more closely. You could cut it down with the right tools.", + "//": "Pecan tree is not a local native and is only used in specific locations like orchards and gardens.", + "symbol": "7", + "color": [ "light_green", "light_green", "brown_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "harvest_ter", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "pecan", "base_num": [ 5, 12 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "transforms_into": "t_tree_pecan_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_pecan_harvested", + "name": "pecan tree", + "description": "A tall deciduous tree of the 'Carya' genus. It doesn't look like there are any pecan nuts left on the tree. You could cut it down with the right tools.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_pecan", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_hickory_dead", + "name": "dead hickory tree", + "description": "The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing useful can be foraged from this poor, dead tree. You could cut it down with the right tools.", + "symbol": "7", + "color": "green", + "//": "dead, not usable at all", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 60, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_underbrush", + "name": "underbrush", + "description": "Small plants and shrubs that decorate the forest. An observant forager could obtain edible plants, acorns, eggs, and mushrooms from it.", + "symbol": "#", + "color": "light_green", + "move_cost": 6, + "flags": [ "TRANSPARENT", "DIGGABLE", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "PLACE_ITEM", "SHRUB", "SHORT" ], + "examine_action": "shrub_wildveggies", + "bash": { + "str_min": 4, + "str_max": 30, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_underbrush_harvested_spring", + "name": "underbrush", + "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it.", + "symbol": "#", + "color": "green", + "move_cost": 6, + "flags": [ + "TRANSPARENT", + "DIGGABLE", + "CONTAINER", + "FLAMMABLE_ASH", + "THIN_OBSTACLE", + "PLACE_ITEM", + "SHRUB", + "SHORT", + "HARVESTED" + ], + "harvest_season": "SPRING", + "transforms_into": "t_underbrush", + "bash": { + "str_min": 4, + "str_max": 30, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_underbrush_harvested_summer", + "name": "underbrush", + "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it.", + "symbol": "#", + "color": "green", + "move_cost": 6, + "flags": [ + "TRANSPARENT", + "DIGGABLE", + "CONTAINER", + "FLAMMABLE_ASH", + "THIN_OBSTACLE", + "PLACE_ITEM", + "SHRUB", + "SHORT", + "HARVESTED" + ], + "harvest_season": "SUMMER", + "transforms_into": "t_underbrush", + "bash": { + "str_min": 4, + "str_max": 30, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_underbrush_harvested_autumn", + "name": "underbrush", + "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it.", + "symbol": "#", + "color": "green", + "move_cost": 6, + "flags": [ + "TRANSPARENT", + "DIGGABLE", + "CONTAINER", + "FLAMMABLE_ASH", + "THIN_OBSTACLE", + "PLACE_ITEM", + "SHRUB", + "SHORT", + "HARVESTED" + ], + "harvest_season": "AUTUMN", + "transforms_into": "t_underbrush", + "bash": { + "str_min": 4, + "str_max": 30, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_underbrush_harvested_winter", + "name": "underbrush", + "description": "Small plants and shrubs that decorate the forest. It has been rummaged through and doesn't have anything useful left to forage from it. Frost covers it.", + "symbol": "#", + "color": "green", + "move_cost": 6, + "flags": [ + "TRANSPARENT", + "DIGGABLE", + "CONTAINER", + "FLAMMABLE_ASH", + "THIN_OBSTACLE", + "PLACE_ITEM", + "SHRUB", + "SHORT", + "HARVESTED" + ], + "harvest_season": "WINTER", + "transforms_into": "t_underbrush", + "bash": { + "str_min": 4, + "str_max": 30, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub", + "name": "shrub", + "description": "A small shrub.", + "symbol": "#", + "color": "green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "PLACE_ITEM", "SHRUB", "SHORT" ], + "bash": { + "str_min": 4, + "str_max": 30, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_peanut", + "name": "peanut bush", + "description": "A small bush of crunchy peanuts.", + "//": "Peanut bushes are not a local native so this is for use in specific locations like farms and gardens.", + "symbol": "#", + "color": "brown_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_peanut_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "peanut", "base_num": [ 5, 10 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_peanut_harvested", + "name": "peanut bush", + "description": "A small peanut bush that's fruitless.", + "symbol": "#", + "color": "brown_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_peanut", + "examine_action": "harvested_plant", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_blueberry", + "name": "blueberry bush", + "description": "A small bush of sweet blueberries.", + "symbol": "#", + "color": "light_blue_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_blueberry_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "blueberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_blueberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_blueberry_harvested", + "name": "blueberry bush", + "description": "A small blueberry bush that's fruitless.", + "symbol": "#", + "color": "blue_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_blueberry", + "examine_action": "harvested_plant", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_strawberry", + "name": "strawberry bush", + "description": "A small bush of juicy strawberries.", + "symbol": "#", + "color": "light_red_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_strawberry_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "strawberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_strawberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_strawberry_harvested", + "name": "strawberry bush", + "description": "A small strawberry bush that's fruitless.", + "symbol": "#", + "color": "red_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_strawberry", + "examine_action": "harvested_plant", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_blackberry", + "name": "blackberry bush", + "description": "A small bush of delicious blackberries. Watch out for its thorns!", + "symbol": "#", + "color": "black_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], + "transforms_into": "t_shrub_blackberry_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_shrub_blueberry", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "blackberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_blackberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_blackberry_harvested", + "name": "blackberry bush", + "description": "A small blackberry bush that's fruitless. Watch out for its thorns!", + "symbol": "#", + "color": "black_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP", "HARVESTED" ], + "transforms_into": "t_shrub_blackberry", + "examine_action": "harvested_plant", + "looks_like": "t_shrub_blueberry_harvested", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_huckleberry", + "name": "huckleberry bush", + "description": "A small bush of huckleberries, often mistaken as blueberries.", + "symbol": "#", + "color": "light_blue_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_huckleberry_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_shrub_blueberry", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "huckleberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_huckleberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_huckleberry_harvested", + "name": "huckleberry bush", + "description": "A small huckleberry bush that's fruitless.", + "symbol": "#", + "color": "blue_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_huckleberry", + "examine_action": "harvested_plant", + "looks_like": "t_shrub_blueberry_harvested", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_raspberry", + "name": "raspberry bush", + "description": "A small bush of delicious raspberries. Watch out for its thorns!", + "symbol": "#", + "color": "light_red_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], + "transforms_into": "t_shrub_raspberry_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_shrub_strawberry", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "raspberries", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_raspberries", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_raspberry_harvested", + "name": "raspberry bush", + "description": "A small raspberry bush that's fruitless. Watch out for its thorns!", + "symbol": "#", + "color": "red_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP", "HARVESTED" ], + "transforms_into": "t_shrub_raspberry", + "examine_action": "harvested_plant", + "looks_like": "t_shrub_strawberry_harvested", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_grape", + "name": "grape bush", + "description": "A bush of a different species invaded by vines of grapes.", + "symbol": "#", + "color": "light_green_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_grape_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_shrub_blueberry", + "harvest_by_season": [ + { + "seasons": [ "summer" ], + "entries": [ + { "drop": "grapes", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] }, + { "drop": "seed_grapes", "base_num": [ 1, 2 ], "scaled_num": [ 0, 0.25 ] } + ] + } + ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_grape_harvested", + "name": "grape bush", + "description": "A bush of a different species invaded by grape vines but they're fruitless.", + "symbol": "#", + "color": "green_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_grape", + "examine_action": "harvested_plant", + "looks_like": "t_shrub_blueberry_harvested", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_rose", + "name": "rose bush", + "description": "A fat bush of beautiful red roses, if only you could get a date! Watch out for its thorns!", + "symbol": "#", + "color": "light_red_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP" ], + "transforms_into": "t_shrub_rose_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_shrub_strawberry", + "harvest_by_season": [ { "seasons": [ "autumn" ], "entries": [ { "drop": "rose_hips", "base_num": [ 2, 5 ], "scaled_num": [ 0, 0.5 ] } ] } ], + "//": "Insert rose (flower) harvest in summer once flowers have a use (same for other generic flowers).", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_rose_harvested", + "name": "rose bush", + "description": "A fat rose bush that currently has no blooms. Watch out for its thorns!", + "symbol": "#", + "color": "red_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "SHARP", "HARVESTED" ], + "transforms_into": "t_shrub_rose", + "examine_action": "harvested_plant", + "looks_like": "t_shrub_strawberry_harvested", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_hydrangea", + "name": "hydrangea bush", + "description": "A fat, bush of fragrant blue hydrangeas.", + "symbol": "#", + "color": "light_blue_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_hydrangea_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_shrub_blueberry", + "//": "Insert hydrangea harvest in autumn once flowers have a use (same for other generic flowers).", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_hydrangea_harvested", + "name": "hydrangea bush", + "description": "A fat hydrangea bush that currently has no blooms.", + "symbol": "#", + "color": "blue_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_hydrangea", + "examine_action": "harvested_plant", + "looks_like": "t_shrub_blueberry_harvested", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_lilac", + "name": "lilac bush", + "description": "A wide, bush of bright pinkish purple lilacs.", + "symbol": "#", + "color": "magenta_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_lilac_harvested", + "examine_action": "harvest_ter_nectar", + "looks_like": "t_shrub_hydrangea", + "//": "Insert lilac harvest once flowers have a use (same for other generic flowers).", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_shrub_lilac_harvested", + "name": "lilac bush", + "description": "A wide lilac bush that currently has no blooms.", + "symbol": "#", + "color": "magenta_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_lilac", + "examine_action": "harvested_plant", + "looks_like": "t_shrub_hydrangea_harvested", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ { "item": "withered", "prob": 50, "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_trunk", + "name": "tree trunk", + "description": "A section of trunk from a tree that has been cut down. Can be sawn into logs with the right tool.", + "symbol": "1", + "color": "brown", + "move_cost": 4, + "coverage": 45, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DIGGABLE", "REDUCE_SCENT", "MOUNTABLE", "SHORT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "splinter", "count": [ 5, 15 ] } ] + } + }, + { + "type": "terrain", + "id": "t_stump", + "name": "tree stump", + "description": "A tree stump, remnant of a tree that has been cut down.", + "symbol": "^", + "color": "brown", + "move_cost": 3, + "coverage": 35, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DIGGABLE", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "FLAT_SURF" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "splinter", "count": [ 5, 15 ] } ] + } + }, + { + "type": "terrain", + "id": "t_root_wall", + "name": "root wall", + "description": "A dirt wall covered with roots.", + "symbol": "#", + "color": "brown", + "move_cost": 0, + "coverage": 100, + "roof": "t_dirt", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL" ], + "bash": { + "str_min": 12, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "splinter", "count": [ 2, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wax", + "name": "wax wall", + "description": "A wall made entirely out of wax.", + "symbol": "#", + "color": "yellow", + "move_cost": 0, + "coverage": 100, + "roof": "t_floor_wax", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "PLACE_ITEM", "WALL" ], + "bash": { + "str_min": 12, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_floor_wax", + "items": [ { "item": "wax", "count": [ 3, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_floor_wax", + "name": "wax floor", + "description": "A floor section made entirely out of wax.", + "symbol": ".", + "color": "yellow", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "INDOORS", "FLAT" ] + }, + { + "type": "terrain", + "id": "t_fence", + "aliases": [ "t_fence_h", "t_fence_v" ], + "name": "picket fence", + "description": "A barrier made of wood, it's nothing complicated. Mildly suggests where not to go.", + "symbol": "LINE_OXOX", + "color": "brown", + "move_cost": 3, + "flags": [ + "TRANSPARENT", + "DIGGABLE", + "FLAMMABLE_ASH", + "NOITEM", + "THIN_OBSTACLE", + "REDUCE_SCENT", + "MOUNTABLE", + "SHORT", + "AUTO_WALL_SYMBOL" + ], + "connects_to": "WOODFENCE", + "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "2x4", "count": 5 }, { "item": "nail", "charges": 8 } ] }, + "bash": { + "str_min": 4, + "str_max": 20, + "sound": "crack.", + "sound_fail": "wham.", + "ter_set": "t_null", + "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "nail", "charges": [ 2, 6 ] }, { "item": "splinter", "count": 1 } ] + } + }, + { + "type": "terrain", + "id": "t_chainfence", + "aliases": [ "t_chainfence_h", "t_chainfence_v" ], + "name": "chain link fence", + "description": "A tall fence made of woven wires. It doesn't suggest to stop, it just stops.", + "symbol": "LINE_OXOX", + "color": "cyan", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "PERMEABLE", "UNSTABLE", "CLIMBABLE", "AUTO_WALL_SYMBOL" ], + "connects_to": "CHAINFENCE", + "examine_action": "chainfence", + "bash": { + "str_min": 10, + "str_max": 150, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_chainfence_posts", + "items": [ { "item": "wire", "count": [ 8, 15 ] } ] + } + }, + { + "type": "terrain", + "id": "t_chainfence_posts", + "name": "metal post", + "description": "Set of metal posts, that can hold more serious fences.", + "symbol": "#", + "color": "cyan", + "move_cost": 2, + "flags": [ "TRANSPARENT", "THIN_OBSTACLE" ], + "bash": { + "str_min": 8, + "str_max": 30, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ { "item": "pipe", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_chickenwire_fence", + "aliases": [ "t_chickenwire_fence_h", "t_chickenwire_fence_v" ], + "name": "chickenwire fence", + "description": "A rather flimsy tall fence made of 2x4s and woven wire, suitable for containing small livestock like chickens.", + "symbol": "LINE_OXOX", + "color": "brown", + "looks_like": "t_chainfence", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "AUTO_WALL_SYMBOL" ], + "connects_to": "CHAINFENCE", + "examine_action": "chainfence", + "deconstruct": { + "ter_set": "t_chickenwire_fence_post", + "items": [ { "item": "wire", "count": 10 }, { "item": "nail", "charges": 20 } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "metal rattling!", + "sound_fail": "whack!", + "ter_set": "t_fence_post", + "items": [ { "item": "wire", "count": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_chickenwire_fence_post", + "name": "chickenwire fence post", + "description": "A couple of posts that support the fence. They look alone without the fence.", + "symbol": "#", + "color": "brown", + "looks_like": "t_fence_post", + "move_cost": 2, + "flags": [ "TRANSPARENT", "THIN_OBSTACLE" ], + "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "2x4", "count": 2 } ] }, + "bash": { + "str_min": 8, + "str_max": 20, + "sound": "crack.", + "sound_fail": "whump.", + "ter_set": "t_null", + "items": [ { "item": "2x4", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_fence_post", + "name": "fence post", + "description": "A couple of posts that support the fence. They look alone without the fence.", + "symbol": "#", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "SHORT" ], + "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "pointy_stick", "count": 2 } ] }, + "bash": { + "str_min": 8, + "str_max": 20, + "sound": "crack.", + "sound_fail": "whump.", + "ter_set": "t_null", + "items": [ { "item": "pointy_stick", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_fence_wire", + "name": "wire fence", + "description": "A barrier made of wire, it's nothing complicated. Mildly suggests where not to go.", + "symbol": "$", + "color": "blue", + "move_cost": 4, + "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "SHORT", "EASY_DECONSTRUCT" ], + "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "wire", "count": 2 } ] }, + "bash": { + "str_min": 8, + "str_max": 20, + "sound": "crack.", + "sound_fail": "whump.", + "ter_set": "t_null", + "items": [ { "item": "pointy_stick", "count": [ 0, 2 ] }, { "item": "wire", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_fence_barbed", + "name": "barbed wire fence", + "description": "A barrier made of sharp barbed wire. More persuasive brother of wire fence.", + "symbol": "$", + "color": "blue", + "move_cost": 4, + "flags": [ "TRANSPARENT", "SHARP", "THIN_OBSTACLE", "SHORT", "EASY_DECONSTRUCT" ], + "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "wire_barbed", "count": 2 } ] }, + "bash": { + "str_min": 8, + "str_max": 20, + "sound": "crack.", + "sound_fail": "whump.", + "ter_set": "t_null", + "items": [ { "item": "pointy_stick", "count": [ 0, 2 ] }, { "item": "wire_barbed", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_fence_rope", + "name": "rope fence", + "description": "A barrier made of rope, it's nothing complicated. Mildly suggests where not to go.", + "symbol": "$", + "color": "brown", + "move_cost": 3, + "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "EASY_DECONSTRUCT" ], + "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "rope_6", "count": 2 } ] }, + "bash": { + "str_min": 8, + "str_max": 20, + "sound": "crack.", + "sound_fail": "whump.", + "ter_set": "t_null", + "items": [ + { "item": "pointy_stick", "count": [ 0, 2 ] }, + { "item": "rope_6", "prob": 50 }, + { "item": "string_36", "count": [ 2, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_railing", + "aliases": [ "t_railing_h", "t_railing_v" ], + "name": "railing", + "description": "A section of wooden railing.", + "symbol": "LINE_OXOX", + "color": "yellow", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL" ], + "connects_to": "RAILING", + "bash": { + "str_min": 20, + "str_max": 80, + "sound": "crack!", + "sound_fail": "whump.", + "ter_set": "t_floor", + "items": [ + { "item": "2x4", "prob": 50 }, + { "item": "nail", "charges": [ 2, 6 ] }, + { "item": "scrap", "count": [ 1, 3 ] }, + { "item": "splinter", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_glass_railing", + "aliases": [ "t_glass_railing_h", "t_glass_railing_v" ], + "name": "glass railing", + "description": "A section of railing made out of glass.", + "symbol": "LINE_OXOX", + "color": "cyan", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL" ], + "connects_to": "RAILING", + "deconstruct": { "ter_set": "t_rock_floor", "items": [ { "item": "glass_sheet", "count": 2 }, { "item": "pipe", "count": 4 } ] }, + "bash": { + "str_min": 10, + "str_max": 40, + "sound": "glass braking!", + "sound_fail": "ker-rash!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "glass_shard", "count": [ 50, 164 ] }, + { "item": "pipe", "charges": [ 1, 2 ] }, + { "item": "scrap", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_metal_railing", + "aliases": [ "t_metal__railing_h", "t_metal__railing_v" ], + "name": "metal railing", + "description": "A section of metal railing.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL" ], + "connects_to": "RAILING", + "deconstruct": { "ter_set": "t_rock_floor", "items": [ { "item": "sheet_metal", "count": 2 }, { "item": "pipe", "count": 4 } ] }, + "bash": { + "str_min": 20, + "str_max": 80, + "sound": "clang!", + "sound_fail": "whump.", + "ter_set": "t_rock_floor", + "items": [ + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "sheet_metal_small", "charges": [ 1, 4 ] }, + { "item": "scrap", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_concrete_railing", + "aliases": [ "t_concrete_railing_h", "t_concrete_railing_v" ], + "name": "concrete railing", + "description": "A section of cemented concrete railing.", + "symbol": "LINE_OXOX", + "color": "cyan", + "looks_like": "t_ponywall", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL", "MINEABLE" ], + "connects_to": "RAILING", + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_thconc_floor", + "items": [ + { "item": "rock", "count": [ 5, 10 ] }, + { "item": "scrap", "count": [ 5, 8 ] }, + { "item": "rebar", "count": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_gutter_north", + "description": "Channels water from the roof towards the ground, it looks flimsy.", + "name": "rain gutter", + "symbol": "LINE_OXOX", + "color": "white", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], + "connects_to": "RAILING", + "deconstruct": { + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "clang!", + "sound_fail": "clang.", + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gutter_south", + "description": "Channels water from the roof towards the ground, it looks flimsy.", + "name": "rain gutter", + "symbol": "LINE_OXOX", + "color": "white", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], + "connects_to": "RAILING", + "deconstruct": { + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "clang!", + "sound_fail": "clang.", + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gutter_east", + "description": "Channels water from the roof towards the ground, it looks flimsy.", + "name": "rain gutter", + "symbol": "LINE_OXOX", + "color": "white", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], + "connects_to": "RAILING", + "deconstruct": { + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "clang!", + "sound_fail": "clang.", + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gutter_west", + "description": "Channels water from the roof towards the ground, it looks flimsy.", + "name": "rain gutter", + "symbol": "LINE_OXOX", + "color": "white", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE" ], + "connects_to": "RAILING", + "deconstruct": { + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "clang!", + "sound_fail": "clang.", + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gutter_drop", + "name": "gutter drop", + "description": "Funnels water from gutter system towards the ground, it looks flimsy. You may be able to climb down here.", + "symbol": "o", + "color": "white", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "TINY", "AUTO_WALL_SYMBOL", "UNSTABLE", "CLIMBABLE" ], + "connects_to": "RAILING", + "deconstruct": { + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "clang!", + "sound_fail": "clang.", + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gutter_downspout", + "name": "downspout", + "description": "A length of gutter running from the roof to the ground, you could place a container underneath it to collect rainwater. It looks flimsy. You may be able to climb down here.", + "symbol": "|", + "color": "white", + "move_cost": 3, + "trap": "tr_downspout_funnel", + "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "UNSTABLE", "CLIMBABLE" ], + "deconstruct": { + "ter_set": "t_flat_roof", + "items": [ { "item": "sheet_metal_small", "count": 2 }, { "item": "scrap", "count": [ 2, 3 ] } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "clang!", + "sound_fail": "clang.", + "ter_set": "t_dirt", + "items": [ { "item": "sheet_metal_small", "count": 1, "prob": 20 }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_ponywall", + "aliases": [ "t_ponywall_h", "t_ponywall_v" ], + "name": "pony wall", + "description": "A short divider wall with wooden support structure with drywall. Paint job is the all too common and neutral off-white or cream color. Appears as though the material is flammable.", + "symbol": "LINE_OXOX", + "looks_like": "f_counter", + "color": "light_gray", + "move_cost": 0, + "coverage": 60, + "connects_to": "WALL", + "roof": "t_flat_roof", + "flags": [ + "TRANSPARENT", + "FLAMMABLE", + "PLACE_ITEM", + "INDOORS", + "AUTO_WALL_SYMBOL", + "BASHABLE", + "THIN_OBSTACLE", + "MOUNTABLE", + "SHORT" + ], + "deconstruct": { "ter_set": "t_floor", "items": [ { "item": "2x4", "count": 10 }, { "item": "nail", "charges": 20 } ] }, + "bash": { + "str_min": 8, + "str_max": 20, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_marloss", + "name": "marloss bush", + "description": "This alien plant superficially resembles a blueberry bush, and hangs with large, juicy pink pomes that emit a heady, fruity aroma.", + "symbol": "#", + "color": "pink", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FUNGUS", "SHRUB", "SHORT" ], + "examine_action": "shrub_marloss", + "bash": { "str_min": 4, "str_max": 60, "sound": "crunch.", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_fungus", + "name": "fungal bed", + "description": "Fungus grows thick here, obscuring the ground beneath it.", + "symbol": ".", + "color": "light_gray", + "move_cost": 3, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DIGGABLE", "FUNGUS", "NOCOLLIDE" ], + "bash": { + "sound": "smash", + "//": "muffled because fungus", + "ter_set": "t_null", + "str_min": 20, + "str_max": 400, + "str_min_supported": 50 + } + }, + { + "type": "terrain", + "id": "t_fungus_floor_in", + "name": "fungal floor", + "description": "Grayish mold coats both the floor and the roof here, silent and still. Stray spores waft through the air.", + "//": "roofed", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "FUNGUS" ], + "bash": { "sound": "smash", "ter_set": "t_null", "str_min": 20, "str_max": 400, "str_min_supported": 50 } + }, + { + "type": "terrain", + "id": "t_fungus_floor_sup", + "name": "fungal floor", + "description": "Grayish mold coats the floor here, silent and still.", + "//": "supports", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SUPPORTS_ROOF", "FLAT", "FUNGUS" ], + "bash": { "sound": "smash", "ter_set": "t_null", "str_min": 20, "str_max": 400, "str_min_supported": 50 } + }, + { + "type": "terrain", + "id": "t_fungus_floor_out", + "name": "fungal floor", + "description": "Grayish mold coats the ground here, silent and still.", + "//": "outside", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "FUNGUS" ], + "bash": { "sound": "SMASH!", "ter_set": "t_null", "str_min": 20, "str_max": 400, "str_min_supported": 50 } + }, + { + "type": "terrain", + "id": "t_fungus_wall", + "aliases": [ "t_fungus_wall_h", "t_fungus_wall_v" ], + "name": "fungal wall", + "description": "Several thick, large tendrils of fungus perforate the wall here, piercing straight through it from the outside. Despite the apparent damage, the wall is still structurally sound.", + "symbol": "O", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "FUNGUS", "WALL", "MINEABLE" ], + "bash": { "str_min": 30, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_fungus_wall_transformed", + "name": "fungal wall", + "description": "The fungus here has grown thickly and tightly enough to form a solid wall. It feels very stiff to the touch, and seems to be very strong.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "FUNGUS", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE" ], + "bash": { "str_min": 30, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_fungus_mound", + "name": "fungal mound", + "description": "A mound of fungal matter, intertwined in itself.", + "symbol": "#", + "color": "light_gray", + "move_cost": 4, + "flags": [ "TRANSPARENT", "THIN_OBSTACLE", "FLAMMABLE_ASH", "FUNGUS", "MOUNTABLE" ], + "bash": { "str_min": 10, "str_max": 70, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_shrub_fungal", + "name": "fungal shrub", + "description": "This shrub has been completely absorbed by the mushrooms. Its branches droop and have lost much of their structure, and its leaves have vanished, replaced by fleshy gray sacks that visibly expand and contract.", + "symbol": "#", + "color": "dark_gray", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "PLACE_ITEM", "SHRUB", "FUNGUS", "SHORT" ], + "bash": { "str_min": 4, "str_max": 60, "sound": "crunch.", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_tree_fungal", + "name": "fungal tree", + "description": "Once tall and majestic, this tree is now a slave to the fungus like the landscape around it. Its bark is penetrated by and covered with fungal tendrils, and the canopy has rotted away, leaving only the branches, stretching forlornly to the sky as if to escape the infection overrunning it.", + "symbol": "7", + "color": "dark_gray", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "TREE", "REDUCE_SCENT" ], + "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_tree_fungal_young", + "name": "young fungal tree", + "description": "A small sapling poking through the ground, infested by fungal mold.", + "symbol": "1", + "color": "dark_gray", + "move_cost": 4, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "YOUNG", "REDUCE_SCENT" ], + "bash": { "str_min": 4, "str_max": 50, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_marloss_tree", + "name": "marloss tree", + "description": "This tree stands as a stark outlier to the landscape around it. Despite its infestation, its leaves wave proudly in the wind, colored pinkish-white. Its branches are heavy with pink fruit that looks both mutated and delicious.", + "symbol": "7", + "color": "pink", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "TREE", "REDUCE_SCENT" ], + "examine_action": "tree_marloss", + "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + }, + { + "type": "terrain", + "id": "t_water_sh", + "name": "shallow water", + "description": "The water isn't too deep here. With a watertight container, you could gather fresh water from here. Not safe to drink as is.", + "symbol": "~", + "color": "light_blue", + "move_cost": 5, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "FISHABLE" ], + "connects_to": "WATER", + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_water_dp", + "name": "deep water", + "description": "You're having trouble seeing the bottom through the deep water here. With a watertight container, you could gather fresh water from here. Not safe to drink as is.", + "symbol": "~", + "color": "blue", + "move_cost": 8, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "DEEP_WATER", "FISHABLE" ], + "connects_to": "WATER", + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_water_moving_sh", + "name": "flowing shallow water", + "description": "The streaming water isn't too deep here. With a watertight container, you could gather fresh water from here. Not safe to drink as is, although probably safer than stagnant water.", + "looks_like": "t_water_sh", + "symbol": "~", + "color": "light_blue", + "move_cost": 6, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "FISHABLE", "CURRENT" ], + "connects_to": "WATER", + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_water_moving_dp", + "name": "flowing deep water", + "description": "The streaming water looks deep here. With a watertight container, you could gather fresh water from here. Not safe to drink as is, although probably safer than stagnant water.", + "looks_like": "t_water_dp", + "symbol": "~", + "color": "blue", + "move_cost": 10, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "DEEP_WATER", "FISHABLE", "CURRENT" ], + "connects_to": "WATER", + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_swater_sh", + "name": "shallow water", + "description": "The water isn't too deep here. With a watertight container, you could gather salt water from here.", + "symbol": "~", + "color": "light_blue", + "move_cost": 5, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "SALT_WATER", "FISHABLE" ], + "connects_to": "WATER", + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_swater_dp", + "name": "deep water", + "description": "You're having trouble seeing the bottom through the deep water here. With a watertight container, you could gather salt water from here.", + "symbol": "~", + "color": "blue", + "move_cost": 8, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "SALT_WATER", "DEEP_WATER", "FISHABLE" ], + "connects_to": "WATER", + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_water_pool", + "name": "pool water", + "description": "A deep pool full of water. Never swim without a lifeguard present. Even though monsters probably ate them.", + "symbol": "~", + "color": "light_blue", + "move_cost": 5, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "INDOORS", "DEEP_WATER" ], + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_sewage", + "name": "sewage", + "description": "Gross. Sewage water flows through here. As if it needed saying, this isn't safe to drink.", + "symbol": "~", + "color": "light_green", + "move_cost": 6, + "flags": [ "TRANSPARENT", "SWIMMABLE" ], + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_lava", + "name": "lava", + "description": "An extremely hot, glowing liquid, composed of molten rock and/or metal. In some places, lava-grilled steak is a delicacy.", + "symbol": "~", + "color": "red", + "move_cost": 4, + "light_emitted": 50, + "trap": "tr_lava", + "flags": [ "TRANSPARENT", "LIQUID", "DESTROY_ITEM", "USABLE_FIRE" ], + "//": "lava-seared moose meat? yes, please" + }, + { + "type": "terrain", + "id": "t_sandbox", + "name": "sandbox", + "description": "Children used to play in this sandbox. The population of lice probably diminished considerably now that they no longer do.", + "symbol": "#", + "color": "yellow", + "move_cost": 3, + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 4 }, + { "item": "material_sand", "charges": [ 800, 1200 ] }, + { "item": "nail", "charges": [ 6, 10 ] } + ] + }, + "flags": [ "TRANSPARENT", "TINY" ], + "bash": { + "str_min": 8, + "str_max": 40, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": [ 0, 3 ] }, + { "item": "nail", "charges": [ 3, 8 ] }, + { "item": "material_sand", "charges": [ 800, 1200 ] }, + { "item": "splinter", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_slide", + "name": "slide", + "description": "A children's slide. Too small to slide on comfortably anymore.", + "symbol": "#", + "color": "light_cyan", + "move_cost": 4, + "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "sheet_metal", "count": 1 }, { "item": "pipe", "count": [ 4, 8 ] } ] }, + "flags": [ "TRANSPARENT", "MOUNTABLE" ], + "bash": { + "str_min": 16, + "str_max": 40, + "sound": "crack!", + "sound_fail": "whump.", + "ter_set": "t_dirt", + "items": [ { "item": "pipe", "count": [ 2, 6 ] }, { "item": "scrap", "count": [ 1, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_monkey_bars", + "name": "monkey bars", + "description": "A set of monkey bars, to be used by children to train their arms by hanging from the bars, and have fun.", + "symbol": "#", + "color": "cyan", + "move_cost": 4, + "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "pipe", "count": [ 6, 12 ] } ] }, + "flags": [ "TRANSPARENT", "MOUNTABLE" ], + "bash": { + "str_min": 16, + "str_max": 40, + "sound": "crack!", + "sound_fail": "whump.", + "ter_set": "t_dirt", + "items": [ { "item": "pipe", "count": [ 4, 8 ] }, { "item": "scrap", "count": [ 1, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_backboard", + "name": "backboard", + "description": "A basketball backboard.", + "symbol": "7", + "color": "red", + "move_cost": 0, + "deconstruct": { "ter_set": "t_pavement", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 10 ] } ] }, + "flags": [ "TRANSPARENT", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 8, + "str_max": 45, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_pavement", + "items": [ + { "item": "2x4", "count": [ 0, 3 ] }, + { "item": "nail", "charges": [ 3, 8 ] }, + { "item": "splinter", "count": [ 1, 3 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_gas_pump", + "name": "gasoline pump", + "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", + "name": "tank with gasoline", + "description": "A tank filled with gasoline.", + "symbol": "Q", + "color": "brown_red", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT" ] + }, + { + "type": "terrain", + "id": "t_little_column", + "name": "little column", + "description": "A small support column.", + "symbol": "1", + "color": "light_gray", + "move_cost": 0, + "coverage": 80, + "flags": [ "WALL", "TRANSPARENT" ], + "bash": { + "str_min": 40, + "str_max": 200, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "rock", "count": [ 1, 3 ] }, { "item": "rebar", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gas_pump_a", + "name": "gasoline pump", + "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.", + "//": "clone of t_gas_pump, but other color, must be clone every time", + "symbol": "&", + "color": "yellow_red", + "move_cost": 0, + "coverage": 65, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "SEALED", "CONTAINER", "REDUCE_SCENT" ], + "examine_action": "gaspump" + }, + { + "type": "terrain", + "id": "t_gas_pump_smashed", + "name": "smashed gas pump", + "description": "The horror! This gasoline pump has been destroyed, denying you access to the liquid gold.", + "symbol": "&", + "color": "light_red", + "move_cost": 0, + "coverage": 55, + "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 40, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pavement", + "items": [ + { "item": "steel_lump", "prob": 50 }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 7 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_diesel_pump", + "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.", + "symbol": "&", + "color": "green", + "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", + "name": "smashed diesel pump", + "description": "You're not getting any diesel out of this pump any time soon. Some barbarian decided to take their frustration out on it.", + "symbol": "&", + "color": "light_green", + "move_cost": 0, + "coverage": 55, + "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 40, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pavement", + "items": [ + { "item": "steel_lump", "prob": 50 }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 7 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_atm", + "name": "ATM", + "description": "For your banking convenience, this Automated Teller Machine is fully capable of operating autonomously in the event of complete network failure. You can deposit funds from cash cards and migrate all of your inflation-adjusted earnings to a single card. These things have seen better days. There's been a run on the bank, and this machine has the dents and cracks to prove it.", + "symbol": "&", + "color": "magenta", + "move_cost": 0, + "coverage": 55, + "flags": [ "TRANSPARENT", "NOITEM", "ALARMED", "REDUCE_SCENT", "PERMEABLE" ], + "examine_action": "atm", + "bash": { + "str_min": 40, + "str_max": 210, + "explosive": 5, + "sound": "Critical failure imminent, self destruct activated. Have a nice day!", + "sound_fail": "clang!", + "ter_set": "t_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 4, 8 ] } ] + } + }, + { + "type": "terrain", + "id": "t_generator_broken", + "name": "broken generator", + "description": "This generator is broken and will not help you produce usable electricity.", + "symbol": "&", + "color": "light_gray", + "move_cost": 0, + "coverage": 30, + "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pavement", + "items": [ + { "item": "steel_lump", "prob": 50 }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 7 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_missile", + "name": "missile", + "description": "This is a section of an ICBM, an Intercontinental Ballistic Missile. This isn't the kind of rocket that goes to the moon.", + "symbol": "#", + "color": "light_blue", + "move_cost": 0, + "flags": [ "NOITEM" ], + "bash": { + "str_min": 50, + "str_max": 400, + "explosive": 100, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_missile_exploded", + "items": [ { "item": "scrap", "count": [ 4, 8 ] }, { "item": "plut_cell", "charges": [ 0, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_missile_exploded", + "name": "blown-out missile", + "description": "This is a section of an ICBM, an Intercontiental Ballistic Missile. This isn't the kind of rocket that's going anywhere.", + "symbol": "#", + "color": "light_gray", + "move_cost": 0, + "flags": [ "NOITEM" ], + "bash": { + "str_min": 20, + "str_max": 150, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_metal_floor", + "items": [ + { "item": "steel_lump", "count": [ 0, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 3 ] }, + { "item": "scrap", "count": [ 4, 8 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_radio_tower", + "name": "radio tower", + "description": "This is the structure of a radio transmission tower.", + "symbol": "&", + "color": "light_gray", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE", "MINEABLE" ], + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_concrete", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_radio_controls", + "name": "radio controls", + "description": "This console appears to control a nearby radio transmission tower. It doesn't seem to be fully operational.", + "symbol": "6", + "color": "green", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE" ], + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "processor", "count": [ 1, 2 ] }, + { "item": "RAM", "count": [ 4, 8 ] }, + { "item": "cable", "charges": [ 4, 6 ] }, + { "item": "small_lcd_screen", "count": [ 1, 2 ] }, + { "item": "e_scrap", "count": [ 10, 16 ] }, + { "item": "circuit", "count": [ 6, 10 ] }, + { "item": "power_supply", "count": [ 2, 4 ] }, + { "item": "amplifier", "count": [ 2, 4 ] }, + { "item": "plastic_chunk", "count": [ 10, 12 ] }, + { "item": "scrap", "count": [ 6, 8 ] } + ] + }, + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_console_broken", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_console_broken", + "name": "broken console", + "description": "This is a standalone computer terminal. It doesn't seem to be working. It's the broken screen and shattered circuit boards that's telling you that.", + "symbol": "6", + "color": "light_gray", + "move_cost": 0, + "coverage": 50, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "SHORT", "PERMEABLE" ], + "deconstruct": { + "ter_set": "t_floor", + "items": [ + { "item": "processor", "count": [ 1, 2 ] }, + { "item": "RAM", "count": [ 4, 8 ] }, + { "item": "cable", "charges": [ 4, 6 ] }, + { "item": "small_lcd_screen", "count": [ 1, 2 ] }, + { "item": "e_scrap", "count": [ 10, 16 ] }, + { "item": "circuit", "count": [ 6, 10 ] }, + { "item": "power_supply", "count": [ 2, 4 ] }, + { "item": "amplifier", "count": [ 2, 4 ] }, + { "item": "plastic_chunk", "count": [ 10, 12 ] }, + { "item": "scrap", "count": [ 6, 8 ] } + ] + }, + "bash": { + "str_min": 16, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_floor", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_console", + "name": "computer console", + "description": "This is a standalone computer terminal. It can be used to view contents and perform any allowed functions. It might even be possible to hack it, given the skills.", + "symbol": "6", + "color": "blue", + "move_cost": 0, + "coverage": 50, + "light_emitted": 10, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "CONSOLE", "NOITEM", "INDOORS", "SHORT", "PERMEABLE" ], + "deconstruct": { + "ter_set": "t_floor", + "items": [ + { "item": "processor", "count": [ 1, 2 ] }, + { "item": "RAM", "count": [ 4, 8 ] }, + { "item": "cable", "charges": [ 4, 6 ] }, + { "item": "small_lcd_screen", "count": [ 1, 2 ] }, + { "item": "e_scrap", "count": [ 10, 16 ] }, + { "item": "circuit", "count": [ 6, 10 ] }, + { "item": "power_supply", "count": [ 2, 4 ] }, + { "item": "amplifier", "count": [ 2, 4 ] }, + { "item": "plastic_chunk", "count": [ 10, 12 ] }, + { "item": "scrap", "count": [ 6, 8 ] } + ] + }, + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_console_broken", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_gates_mech_control", + "name": "mechanical winch", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate or door.", + "symbol": "6", + "color": "cyan_red", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gates_mech_control_lab", + "name": "mechanical winch", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", + "symbol": "6", + "color": "cyan_red", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_thconc_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gates_control_concrete", + "name": "mechanical winch", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", + "symbol": "6", + "color": "cyan_red", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gates_control_concrete_lab", + "name": "mechanical winch", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", + "symbol": "6", + "color": "cyan_red", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_thconc_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gates_control_brick", + "name": "mechanical winch", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", + "symbol": "6", + "color": "cyan_red", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gates_control_brick_lab", + "name": "mechanical winch", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", + "symbol": "6", + "color": "cyan_red", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_thconc_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gates_control_metal", + "name": "control lever", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", + "symbol": "6", + "color": "white", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "COLLAPSES", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_gates_control_metal_lab", + "name": "control lever", + "description": "This is a gate control winch. If it's functioning, it can be used to open or close a nearby gate.", + "symbol": "6", + "color": "white", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "COLLAPSES", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_thconc_floor", + "items": [ { "item": "steel_chunk", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_barndoor", + "name": "rope and pulley", + "description": "A system of ropes and pulleys that allows to pull up heavy doors.", + "symbol": "|", + "color": "brown", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "INDOORS", "PERMEABLE", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 8, + "str_max": 40, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_dirtfloor", + "items": [ + { "item": "rope_6", "count": [ 3, 4 ] }, + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "splinter", "count": [ 2, 4 ] } + ] + }, + "deconstruct": { "ter_set": "t_dirtfloor", "items": [ { "item": "rope_30", "count": 1 }, { "item": "2x4", "count": 8 } ] } + }, + { + "type": "terrain", + "id": "t_palisade_pulley", + "name": "rope and pulley", + "description": "A system of ropes and pulleys that allows to pull up heavy doors or gates.", + "symbol": "|", + "color": "brown", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "SHORT", "PERMEABLE", "EASY_DECONSTRUCT", "THIN_OBSTACLE" ], + "examine_action": "controls_gate", + "bash": { + "str_min": 8, + "str_max": 40, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_null", + "items": [ + { "item": "rope_makeshift_6", "count": [ 3, 4 ] }, + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "splinter", "count": [ 2, 4 ] } + ] + }, + "deconstruct": { "ter_set": "t_dirt", "items": [ { "item": "rope_makeshift_30", "count": 1 }, { "item": "2x4", "count": 8 } ] } + }, + { + "type": "terrain", + "id": "t_sewage_pipe", + "name": "high gauge pipe", + "description": "This is a section of high gauge pipe.", + "symbol": "1", + "color": "light_gray", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "THIN_OBSTACLE", "MINEABLE" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_sewage", + "items": [ { "item": "scrap", "count": [ 4, 8 ] }, { "item": "steel_plate", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_sewage_pump", + "name": "high gauge pump", + "description": "This unpowered pump previously would have moved fluids around in a hurry.", + "symbol": "&", + "color": "light_gray", + "move_cost": 0, + "coverage": 50, + "flags": [ "NOITEM", "REDUCE_SCENT", "MOUNTABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_sewage", + "items": [ + { "item": "steel_lump", "prob": 50 }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 7 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_centrifuge", + "name": "centrifuge", + "description": "This is a centrifuge, a liquid separating device with an automated analyzer unit. It could be used to analyze a medical fluid sample, such as blood, if a test tube was placed in it.", + "symbol": "{", + "color": "magenta", + "move_cost": 0, + "coverage": 30, + "flags": [ "TRANSPARENT", "PERMEABLE" ], + "bash": { + "str_min": 3, + "str_max": 45, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 1, 6 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 5 ] }, + { "item": "steel_chunk", "count": [ 0, 3 ] }, + { "item": "sheet_metal", "count": [ 1, 3 ] }, + { "item": "cable", "charges": [ 1, 15 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_cvdbody", + "name": "CVD machine", + "description": "The bulk of a highly technical-looking apparatus controlled by a nearby console.", + "symbol": "%", + "color": "dark_gray", + "move_cost": 0, + "coverage": 65, + "flags": [ "NOITEM", "WALL" ], + "bash": { + "str_min": 6, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_floor", + "items": [ + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 1, 6 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 8 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_cvdmachine", + "name": "CVD control panel", + "description": "This is a VERY expensive-looking apparatus that's labeled 'Chemical Vapor Deposition Machine'. With the input of certain exceptionally rare chemicals and elements, one could conceievably coat one's weapon with diamond. While the process is extremely complicated, a previous user has helpfully sketched: Hydrogen + charcoal = smiley face.", + "symbol": "&", + "color": "cyan", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "NOITEM", "PERMEABLE" ], + "examine_action": "cvdmachine", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_console_broken", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_nanofab_body", + "name": "nanofabricator", + "symbol": "%", + "description": "A great column of advanced machinery. Within this self-contained, miniaturized factory, several 3d printers work in tandem with a robotic assembler to manufacture nearly any inorganic object.", + "color": "dark_gray", + "move_cost": 0, + "coverage": 65, + "flags": [ "PLACE_ITEM" ], + "bash": { + "str_min": 120, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_floor", + "items": [ + { "item": "e_scrap", "count": [ 10, 14 ] }, + { "item": "processor", "count": [ 10, 20 ] }, + { "item": "RAM", "count": [ 14, 20 ] }, + { "item": "nanomaterial", "count": 1, "prob": 10 }, + { "item": "bearing", "charges": [ 20, 60 ] }, + { "item": "motor", "count": 4 }, + { "item": "power_supply", "count": [ 4, 16 ] }, + { "item": "amplifier", "count": [ 4, 16 ] }, + { "item": "cable", "charges": [ 250, 500 ] }, + { "item": "circuit", "count": [ 1, 6 ] }, + { "item": "scrap", "count": [ 12, 18 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_nanofab", + "name": "nanofabricator control panel", + "symbol": "&", + "description": "A small computer panel attached to a nanofabricator. It has a single slot for reading templates.", + "color": "red", + "move_cost": 0, + "coverage": 50, + "flags": [ "WALL", "NOITEM", "PERMEABLE" ], + "examine_action": "nanofab", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_console_broken", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_column_halfway", + "name": "half-built column", + "description": "An empty wooden frame in the shape of a column, built around a concrete and rebar foundation. It isn't capable of supporting roofs or shelter, and appears to need more resources before being considered complete.", + "symbol": "*", + "color": "light_gray", + "move_cost": 5, + "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 60, + "str_max": 460, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_reb_cage", + "items": [ { "item": "rock", "count": [ 5, 11 ] } ] + } + }, + { + "type": "terrain", + "id": "t_column", + "name": "column", + "description": "A concrete column.", + "symbol": "1", + "color": "light_gray", + "move_cost": 0, + "coverage": 80, + "flags": [ "WALL", "MINEABLE" ], + "bash": { + "str_min": 120, + "str_max": 200, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_reb_cage", + "items": [ { "item": "rock", "count": [ 10, 22 ] } ] + } + }, + { + "type": "terrain", + "id": "t_vat", + "name": "cloning vat", + "description": "A vat full of solution, probably intended to hold growing clones of people or other life forms.", + "symbol": "0", + "color": "light_cyan", + "move_cost": 0, + "coverage": 40, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "SEALED", "PLACE_ITEM", "WALL" ], + "bash": { + "str_min": 2, + "str_max": 80, + "sound": "ker-rash!", + "sound_fail": "plunk.", + "sound_vol": 16, + "sound_fail_vol": 12, + "ter_set": "t_floor", + "items": [ { "item": "glass_shard", "count": [ 42, 84 ] }, { "item": "scrap", "count": [ 0, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wood_stairs_down", + "name": "wooden stairs", + "description": "A wooden staircase leading down.", + "symbol": ">", + "color": "light_red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "GOES_DOWN", "PLACE_ITEM" ], + "bash": { + "str_min": 10, + "str_max": 70, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_open_air", + "items": [ + { "item": "2x4", "count": [ 0, 2 ] }, + { "item": "nail", "charges": [ 0, 5 ] }, + { "item": "splinter", "count": [ 2, 8 ] } + ] + }, + "deconstruct": { "ter_set": "t_open_air", "items": [ { "item": "nail", "charges": [ 4, 8 ] }, { "item": "2x4", "count": [ 0, 4 ] } ] } + }, + { + "type": "terrain", + "id": "t_wood_stairs_up_half", + "name": "half-built wooden stairs", + "description": "Half of a wooden staircase. Some work still needs to be done before this staircase is complete.", + "symbol": "<", + "color": "light_red", + "move_cost": 4, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM" ], + "deconstruct": { + "deconstruct_above": true, + "ter_set": "t_floor", + "items": [ { "item": "nail", "charges": [ 12, 20 ] }, { "item": "2x4", "count": [ 2, 6 ] } ] + }, + "bash": { + "str_min": 10, + "str_max": 70, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_floor", + "items": [ + { "item": "2x4", "count": [ 0, 5 ] }, + { "item": "nail", "charges": [ 0, 5 ] }, + { "item": "splinter", "count": [ 5, 10 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_wood_stairs_up_broken", + "name": "broken wooden stairs", + "description": "A number of planks are missing and the structure is beginning to sag and fall apart. It's going to need quite a bit of work to repair this staircase.", + "symbol": "<", + "color": "light_red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "PLACE_ITEM" ], + "bash": { + "str_min": 8, + "str_max": 110, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_floor", + "items": [ + { "item": "2x4", "count": [ 0, 2 ] }, + { "item": "wood_panel", "count": [ 0, 1 ] }, + { "item": "nail", "charges": [ 0, 5 ] }, + { "item": "splinter", "count": [ 2, 8 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_wood_stairs_up", + "name": "wooden stairs", + "description": "A wooden staircase leading up", + "symbol": "<", + "color": "light_red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "GOES_UP", "PLACE_ITEM" ], + "deconstruct": { + "deconstruct_above": true, + "ter_set": "t_floor", + "items": [ + { "item": "nail", "charges": [ 12, 20 ] }, + { "item": "2x4", "count": [ 8, 12 ] }, + { "item": "wood_panel", "count": [ 1, 3 ] } + ] + }, + "bash": { + "str_min": 12, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_wood_stairs_up_broken", + "items": [ + { "item": "2x4", "count": [ 0, 3 ] }, + { "item": "wood_panel", "count": [ 0, 2 ] }, + { "item": "nail", "charges": [ 1, 5 ] }, + { "item": "splinter", "count": [ 1, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_stairs_down", + "name": "stairs", + "description": "A flight of stairs leading down.", + "symbol": ">", + "color": "yellow", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "GOES_DOWN", "INDOORS", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_stairs_up", + "name": "stairs", + "description": "A flight of stairs leading up.", + "symbol": "<", + "color": "yellow", + "move_cost": 2, + "flags": [ "TRANSPARENT", "GOES_UP", "INDOORS", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_manhole", + "name": "manhole", + "description": "This is a manhole. The heavy iron cover lies over an entrance to the underworld of hidden tunnels beneath the streets where sewage and rain water frolic freely.", + "symbol": ">", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "GOES_DOWN", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_ladder_up", + "name": "ladder", + "description": "A ladder leading up.", + "symbol": "<", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "GOES_UP", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_ladder_down", + "name": "ladder", + "description": "A ladder leading down.", + "symbol": ">", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "GOES_DOWN", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_slope_down", + "name": "downward slope", + "description": "A downward facing slope.", + "symbol": ">", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "GOES_DOWN", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_slope_up", + "name": "upward slope", + "description": "An upward facing slope.", + "symbol": "<", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "GOES_UP", "PLACE_ITEM" ] + }, + { + "type": "terrain", + "id": "t_rope_up", + "name": "rope leading up", + "description": "A rope. You could climb up it.", + "symbol": "<", + "color": "white", + "move_cost": 2, + "flags": [ "TRANSPARENT", "GOES_UP" ] + }, + { + "type": "terrain", + "id": "t_manhole_cover", + "name": "manhole cover", + "description": "Just a manhole cover.", + "symbol": "0", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT" ] + }, + { + "type": "terrain", + "id": "t_intercom", + "name": "intercom", + "description": "An intercom panel. For when you want to scare the crap out of someone, or just talk to them over the intercom system, if you're boring like that.", + "symbol": "=", + "color": "light_gray", + "move_cost": 0, + "flags": [ "NOITEM", "CONNECT_TO_WALL" ], + "//": "For the player to chat with an NPC through the intercom, the npc must have 'name_unique': 'the_intercom' and must be within 10 tiles of the intercom.", + "examine_action": "intercom", + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_concrete_wall", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_robofac", + "name": "card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom inside a flask that is universally known to indicate SCIENCE. An ominous red LED reminds you of a robot gone haywire from an old sci-fi flick. You could swipe a scientific ID badge near it if you do not fear the machine.", + "//": "It takes a science card/hack attempt and then calls iexamine::intercom", + "symbol": "6", + "color": "pink", + "move_cost": 0, + "flags": [ "NOITEM", "CONNECT_TO_WALL" ], + "examine_action": "cardreader_robofac", + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_science", + "name": "card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom inside a flask that is universally known to indicate SCIENCE. The stark red LED blinks askance at your geek cred. You could swipe a scientific ID badge near it to unlock the gates to discovery.", + "//": "Science", + "symbol": "6", + "color": "pink", + "move_cost": 0, + "flags": [ "NOITEM", "CONNECT_TO_WALL" ], + "examine_action": "cardreader", + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_military", + "name": "card reader", + "description": "This is a smartcard reader. The universal symbol of an eagle driving a tank, biting a grenade pin stands rampant in front of an American flag. A small, red LED remains constant, as if watching you, waiting. You could swipe a military ID card in front of the reader if you dared.", + "//": "Military", + "symbol": "6", + "color": "pink", + "move_cost": 0, + "flags": [ "NOITEM", "CONNECT_TO_WALL" ], + "examine_action": "cardreader", + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_industrial", + "looks_like": "t_card_science", + "name": "card reader", + "description": "This is a smartcard reader. The symbol of a gear in front of a bulging bicep is emblazoned on the matte black surface with an illegible heavy industrial company title. A red LED blinks on the card reader. Perhaps an industrial ID card could still open it.", + "//": "Industrial", + "symbol": "6", + "color": "pink", + "move_cost": 0, + "flags": [ "NOITEM", "CONNECT_TO_WALL" ], + "examine_action": "cardreader", + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_fp", + "looks_like": "t_card_science", + "name": "card reader", + "description": "This looks like the console controling the security door, there's a pretty big reading surface on it. You can see \"Fp\" soberly printed above the reader. You have no idea what could open it.", + "//": "FoodPlace", + "symbol": "6", + "color": "pink", + "move_cost": 0, + "flags": [ "NOITEM", "CONNECT_TO_WALL" ], + "examine_action": "cardreader_fp", + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_reader_broken", + "name": "broken card reader", + "description": "This is a smartcard reader, but it doesn't seem to be functioning. Probably because there's no more blinking red LED.", + "symbol": "6", + "color": "light_gray", + "move_cost": 0, + "flags": [ "NOITEM", "CONNECT_TO_WALL", "MINEABLE" ], + "bash": { + "str_min": 200, + "str_max": 600, + "sound": "crunch!", + "sound_fail": "whack!", + "//": "Since these are set into the walls, they ought to have the resilence of metal walls.", + "ter_set": "t_concrete", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 3 ], "prob": 50 }, + { "item": "circuit", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 6 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 4 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_slot_machine", + "name": "slot machine", + "description": "A machine with a bright screen flashing hypnotic promises of wealth. If gambling with your life on a daily basis isn't enough for you, you can also gamble with this.", + "symbol": "6", + "color": "green", + "move_cost": 0, + "coverage": 50, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "INDOORS" ], + "examine_action": "slot_machine", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_console_broken", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_elevator_control", + "name": "elevator controls", + "description": "This is the control face for an elevator. You could press the appropriate button to take you to your choice of floor.", + "symbol": "6", + "color": "light_blue", + "move_cost": 0, + "coverage": 50, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "INDOORS" ], + "examine_action": "elevator", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_console_broken", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_elevator_control_off", + "name": "powerless controls", + "description": "This is the control face for an elevator. It's currently unpowered.", + "symbol": "6", + "color": "light_gray", + "move_cost": 0, + "coverage": 50, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "INDOORS" ], + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_console_broken", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + }, + { + "type": "terrain", + "id": "t_elevator", + "name": "elevator", + "description": "The interior section of an elevator.", + "symbol": ".", + "color": "magenta", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "INDOORS", "TRANSPARENT", "FLAT" ] + }, + { + "type": "terrain", + "id": "t_pedestal_wyrm", + "name": "dark pedestal", + "description": "A dark stone pedestal covered in ancient, unintelligible symbols. Looks ominous.", + "symbol": "&", + "color": "dark_gray", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "MINEABLE" ], + "examine_action": "pedestal_wyrm", + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_rock_floor", + "items": [ { "item": "rock", "count": [ 2, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_pedestal_temple", + "name": "light pedestal", + "description": "A light stone pedestal covered in ancient, unintelligible symbols.", + "symbol": "&", + "color": "white", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "MINEABLE" ], + "examine_action": "pedestal_temple", + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_rock_floor", + "items": [ { "item": "rock", "count": [ 2, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_rock_red", + "name": "red stone", + "description": "A red stone.", + "symbol": "#", + "color": "red", + "move_cost": 0, + "coverage": 100, + "flags": [ "MINEABLE" ], + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_rock_floor", + "items": [ { "item": "rock", "count": [ 3, 7 ] } ] + } + }, + { + "type": "terrain", + "id": "t_rock_green", + "name": "green stone", + "description": "A green stone.", + "symbol": "#", + "color": "green", + "move_cost": 0, + "coverage": 100, + "flags": [ "MINEABLE" ], + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_rock_floor", + "items": [ { "item": "rock", "count": [ 3, 7 ] } ] + } + }, + { + "type": "terrain", + "id": "t_rock_blue", + "name": "blue stone", + "description": "A blue stone.", + "symbol": "#", + "color": "blue", + "move_cost": 0, + "coverage": 100, + "flags": [ "MINEABLE" ], + "bash": { + "str_min": 100, + "str_max": 400, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_rock_floor", + "items": [ { "item": "rock", "count": [ 3, 7 ] } ] + } + }, + { + "type": "terrain", + "id": "t_floor_red", + "name": "red floor", + "description": "A red section of flooring.", + "symbol": ".", + "color": "red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ] + }, + { + "type": "terrain", + "id": "t_floor_green", + "name": "green floor", + "description": "A green section of flooring.", + "symbol": ".", + "color": "green", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ] + }, + { + "type": "terrain", + "id": "t_floor_blue", + "name": "blue floor", + "description": "A blue section of flooring.", + "symbol": ".", + "color": "blue", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ] + }, + { + "type": "terrain", + "id": "t_switch_rg", + "name": "yellow switch", + "description": "A yellow switch. Should you activate it?", + "symbol": "6", + "color": "yellow", + "move_cost": 0, + "flags": [ "TRANSPARENT", "PERMEABLE" ], + "examine_action": "fswitch" + }, + { + "type": "terrain", + "id": "t_switch_gb", + "name": "cyan switch", + "description": "A cyan switch. Should you activate it?", + "symbol": "6", + "color": "cyan", + "move_cost": 0, + "flags": [ "TRANSPARENT", "PERMEABLE" ], + "examine_action": "fswitch" + }, + { + "type": "terrain", + "id": "t_switch_rb", + "name": "purple switch", + "description": "A purple switch. Should you activate it?", + "symbol": "6", + "color": "magenta", + "move_cost": 0, + "flags": [ "TRANSPARENT", "PERMEABLE" ], + "examine_action": "fswitch" + }, + { + "type": "terrain", + "id": "t_switch_even", + "name": "checkered switch", + "description": "A checkered switch. Should you activate it?", + "symbol": "6", + "color": "white", + "move_cost": 0, + "flags": [ "TRANSPARENT", "PERMEABLE" ], + "examine_action": "fswitch" + }, + { + "type": "terrain", + "id": "t_carpet_concrete", + "name": "industrial carpet", + "description": "Firm, low-pile, high-durability carpet in a neutral gray color, for laying down on bare concrete.", + "symbol": ".", + "color": "light_gray", + "looks_like": "t_carpet_red", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 100, + "str_max": 400, + "str_min_supported": 150, + "items": [ + { "item": "rock", "count": [ 5, 10 ] }, + { "item": "scrap", "count": [ 5, 8 ] }, + { "item": "rebar", "count": [ 0, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_carpet_metal", + "name": "bunker carpet", + "description": "Firm, low-pile, totally non-flammable carpet in a neutral cream color, with an insulation layer beneath.", + "symbol": ".", + "color": "white", + "looks_like": "t_carpet_yellow", + "move_cost": 2, + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], + "bash": { + "sound": "thump", + "ter_set": "t_null", + "str_min": 200, + "str_max": 500, + "str_min_supported": 200, + "items": [ + { "item": "steel_lump", "count": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 3, 12 ] }, + { "item": "scrap", "count": [ 9, 36 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_carpet_red", + "name": "red carpet", + "description": "Soft red carpet.", + "symbol": ".", + "color": "red", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] + } + }, + { + "type": "terrain", + "id": "t_carpet_yellow", + "name": "yellow carpet", + "description": "Soft yellow carpet.", + "symbol": ".", + "color": "yellow", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] + } + }, + { + "type": "terrain", + "id": "t_carpet_green", + "name": "green carpet", + "description": "Soft green carpet.", + "symbol": ".", + "color": "green", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] + } + }, + { + "type": "terrain", + "id": "t_carpet_purple", + "name": "purple carpet", + "description": "Soft purple carpet.", + "symbol": ".", + "color": "magenta", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] + } + }, + { + "type": "terrain", + "id": "t_linoleum_white", + "name": "linoleum tile", + "description": "A section of flooring made out of a tough, rubbery material. Colored a simple white.", + "symbol": ".", + "color": "white", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_linoleum_gray", + "name": "linoleum tile", + "roof": "t_flat_roof", + "description": "A section of flooring made out of a tough, gray, rubbery material.", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_null", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_r", + "aliases": [ "t_wall_h_r", "t_wall_v_r" ], + "name": "red wall", + "description": "Wall painted red.", + "symbol": "LINE_OXOX", + "color": "red", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_wall_w", + "aliases": [ "t_wall_h_w", "t_wall_v_w" ], + "name": "white wall", + "description": "Wall painted white.", + "symbol": "LINE_OXOX", + "color": "white", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_wall_b", + "aliases": [ "t_wall_h_b", "t_wall_v_b" ], + "name": "blue wall", + "description": "Wall painted blue.", + "symbol": "LINE_OXOX", + "color": "blue", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_wall_g", + "aliases": [ "t_wall_h_g", "t_wall_v_g" ], + "name": "green wall", + "description": "Wall painted green.", + "symbol": "LINE_OXOX", + "color": "green", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_wall_y", + "aliases": [ "t_wall_h_y", "t_wall_v_y" ], + "name": "yellow wall", + "description": "Wall painted yellow.", + "symbol": "LINE_OXOX", + "color": "yellow", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_wall_p", + "aliases": [ "t_wall_h_p", "t_wall_v_p" ], + "name": "pink wall", + "description": "Wall painted pink.", + "symbol": "LINE_OXOX", + "color": "pink", + "move_cost": 0, + "coverage": 100, + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_wall_p", + "aliases": [ "t_wall_h_p", "t_wall_v_p" ], + "name": "purple wall", + "description": "Wall painted purple.", + "symbol": "LINE_OXOX", + "color": "magenta", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "FLAMMABLE", "NOITEM", "SUPPORTS_ROOF", "WALL", "CHIP", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": "wall_bash_results" + } + }, + { + "type": "terrain", + "id": "t_rock_wall", + "name": "stone wall", + "description": "A sturdy stone wall.", + "symbol": "LINE_OXOX", + "color": "light_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 80, + "str_max": 300, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "rock", "count": [ 8, 18 ] } ] + } + }, + { + "type": "terrain", + "id": "t_rock_wall_half", + "name": "half-built stone wall", + "description": "Half of a sturdy stone wall. Some work still needs to be done before this stone wall is complete.", + "symbol": "#", + "color": "light_gray", + "move_cost": 4, + "coverage": 60, + "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "MINEABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 40, + "str_max": 200, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_null", + "items": [ { "item": "rock", "count": [ 3, 8 ] } ] + } + }, + { + "type": "terrain", + "id": "t_covered_well", + "name": "covered well", + "description": "Deep well collecting ground water. Requires a method to draw water from.", + "symbol": "#", + "color": "dark_gray", + "move_cost": 2, + "coverage": 40, + "flags": [ "TRANSPARENT", "FLAT", "MINEABLE" ], + "bash": { + "str_min": 80, + "str_max": 300, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_pit", + "items": [ + { "item": "rock", "count": [ 8, 18 ] }, + { "item": "2x4", "count": [ 0, 2 ] }, + { "item": "nail", "charges": [ 1, 4 ] }, + { "item": "splinter", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_water_pump", + "name": "water pump", + "description": "Deep well collecting ground water. Installed water pump allows to draw water from it.", + "symbol": "&", + "color": "light_gray", + "move_cost": 6, + "coverage": 40, + "flags": [ "TRANSPARENT", "THIN_OBSTACLE" ], + "deconstruct": { "ter_set": "t_covered_well", "items": [ { "item": "well_pump", "count": 1 }, { "item": "pipe", "count": [ 1, 6 ] } ] }, + "bash": { + "str_min": 15, + "str_max": 80, + "sound": "whack!", + "sound_fail": "thunk.", + "ter_set": "t_covered_well", + "items": [ + { "item": "steel_chunk", "count": [ 0, 2 ] }, + { "item": "scrap", "count": [ 3, 6 ] }, + { "item": "pipe", "count": [ 0, 2 ] } + ] + }, + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_water_dispenser", + "name": "water dispenser", + "description": "A machine with several taps that dispenses clean water.", + "symbol": "W", + "color": "light_blue", + "move_cost": 0, + "coverage": 40, + "flags": [ "TRANSPARENT" ], + "bash": { + "str_min": 15, + "str_max": 80, + "sound": "whack!", + "sound_fail": "thunk.", + "ter_set": "t_concrete", + "items": [ + { "item": "steel_chunk", "count": [ 0, 2 ] }, + { "item": "scrap", "count": [ 3, 6 ] }, + { "item": "pipe", "count": [ 0, 2 ] } + ] + }, + "examine_action": "clean_water_source" + }, + { + "type": "terrain", + "id": "t_improvised_shelter", + "name": "improvised shelter", + "description": "Improvised shelter providing little bit of protection, that can be used to take refuge from the elements or to protect a campfire from the rain.", + "symbol": "#", + "color": "brown_green", + "move_cost": 2, + "coverage": 30, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE", "HIDE_PLACE" ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_pit_shallow", + "items": [ { "item": "stick", "count": [ 3, 6 ] }, { "item": "pine_bough", "count": [ 6, 18 ] } ] + } + }, + { + "type": "terrain", + "id": "t_open_air", + "name": "open air", + "description": "This is open air.", + "symbol": " ", + "color": "i_cyan", + "move_cost": 2, + "trap": "tr_ledge", + "flags": [ "TRANSPARENT", "NO_FLOOR" ], + "examine_action": "ledge" + }, + { + "type": "terrain", + "id": "t_flat_roof", + "name": "flat roof", + "description": "A flat, gray section of rooftop.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_tar_flat_roof", + "name": "tar paper flat roof", + "description": "A flat, gray section of rooftop covered with tar paper.", + "looks_like": "t_flat_roof", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE", "FLAT" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_shingle_flat_roof", + "name": "shingle flat roof", + "description": "A flat section of rooftop covered in shingles.", + "looks_like": "t_flat_roof", + "symbol": ".", + "color": "green", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE", "FLAT" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_thatch_roof", + "name": "thatched roof", + "description": "A section of roof made out of straw.", + "looks_like": "t_flat_roof", + "symbol": ".", + "color": "yellow", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_metal_flat_roof", + "name": "metal flat roof", + "description": "A secton of flat, sheet metal rooftop.", + "looks_like": "t_flat_roof", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_tile_flat_roof", + "name": "tile flat roof", + "description": "A section of tiled, flat rooftop.", + "looks_like": "t_flat_roof", + "symbol": ".", + "color": "white", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "FLAMMABLE" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "crash!", + "sound_fail": "whump!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_glass_roof", + "name": "skylight", + "description": "A giant sheet of glass inserted into the roof, lets light pass through.", + "symbol": "o", + "color": "cyan", + "move_cost": 2, + "trap": "tr_ledge", + "flags": [ "TRANSPARENT", "NO_FLOOR", "INDOORS" ], + "bash": { + "str_min": 3, + "str_max": 6, + "sound": "glass braking!", + "sound_fail": "whack!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_plut_generator", + "name": "plutonium generator", + "description": "This imposing apparatus harnesses the power of the atom. Refined nuclear fuel is 'burned' to provide nearly limitless electrical power. It's not doing much good here though. Perhaps it could be salvaged for other purposes.", + "symbol": "0", + "color": "light_green", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "SEALED", "REDUCE_SCENT", "PERMEABLE" ], + "bash": { + "str_min": 50, + "str_max": 400, + "explosive": 25, + "ter_set": "t_concrete", + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 4, 16 ] }, + { "item": "steel_chunk", "count": [ 1, 6 ] }, + { "item": "plut_cell", "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 ] }, + { "item": "e_scrap", "count": [ 12, 24 ] }, + { "item": "circuit", "count": [ 6, 10 ] }, + { "item": "power_supply", "count": [ 4, 8 ] }, + { "item": "amplifier", "count": [ 3, 6 ] }, + { "item": "plut_cell", "charges": [ 2, 8 ] }, + { "item": "scrap", "count": [ 8, 16 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_sai_box", + "name": "telecom cabinet", + "description": "A cabinet full of telecoms equipment. With the lines down, you might be able to take it apart for its useful electronics.", + "symbol": "#", + "color": "light_gray", + "move_cost": 0, + "coverage": 90, + "flags": [ "NOITEM", "WALL" ], + "bash": { "str_min": 8, "str_max": 80, "sound": "whack!", "sound_fail": "clang!", "ter_set": "t_sai_box_damaged" }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "RAM", "count": [ 4, 8 ] }, + { "item": "cable", "charges": [ 16, 40 ] }, + { "item": "small_lcd_screen", "count": [ 2, 4 ] }, + { "item": "e_scrap", "count": [ 12, 24 ] }, + { "item": "circuit", "count": [ 6, 30 ] }, + { "item": "power_supply", "count": [ 4, 8 ] }, + { "item": "amplifier", "count": [ 3, 6 ] }, + { "item": "plastic_chunk", "count": [ 4, 8 ] }, + { "item": "scrap", "count": [ 8, 16 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_sai_box_damaged", + "name": "damaged telecom cabinet", + "description": "A damaged telecoms cabinet. Might still be able to salvage some useful electronics scrap from it.", + "symbol": "#", + "color": "light_gray", + "move_cost": 0, + "coverage": 90, + "flags": [ "NOITEM", "WALL" ], + "bash": { + "str_min": 6, + "str_max": 80, + "sound": "whack!", + "sound_fail": "clang!", + "ter_set": "t_concrete", + "items": [ + { "item": "cable", "charges": [ 4, 8 ], "prob": 80 }, + { "item": "e_scrap", "count": [ 2, 8 ], "prob": 60 }, + { "item": "circuit", "count": [ 1, 6 ], "prob": 50 }, + { "item": "amplifier", "count": [ 1, 4 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "RAM", "count": [ 1, 2 ] }, + { "item": "cable", "charges": [ 4, 24 ] }, + { "item": "e_scrap", "count": [ 4, 12 ] }, + { "item": "circuit", "count": [ 2, 12 ] }, + { "item": "power_supply", "count": [ 1, 4 ] }, + { "item": "amplifier", "count": [ 1, 3 ] }, + { "item": "plastic_chunk", "count": [ 2, 6 ] }, + { "item": "scrap", "count": [ 6, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_support_l", + "name": "large metal support", + "description": "A heavy-duty metal support beam.", + "symbol": "T", + "color": "light_gray", + "move_cost": 0, + "coverage": 80, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "WALL", "SUPPORTS_ROOF", "MINEABLE" ], + "bash": { + "str_min": 40, + "str_max": 200, + "sound": "metal screeching!", + "sound_fail": "whump!", + "ter_set": "t_concrete", + "items": [ + { "item": "steel_lump", "count": [ 0, 2 ] }, + { "item": "steel_chunk", "count": [ 2, 6 ] }, + { "item": "scrap", "count": [ 5, 18 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "frame", "count": [ 6, 8 ] }, + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 6 ] }, + { "item": "scrap", "count": [ 4, 8 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_support_s", + "name": "small metal support", + "description": "A metal support beam.", + "symbol": "l", + "color": "light_gray", + "move_cost": 0, + "coverage": 55, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "WALL", "SUPPORTS_ROOF", "MINEABLE" ], + "bash": { + "str_min": 20, + "str_max": 120, + "sound": "metal screeching!", + "sound_fail": "whump!", + "ter_set": "t_concrete", + "items": [ + { "item": "steel_lump", "prob": 50 }, + { "item": "steel_chunk", "count": [ 1, 3 ] }, + { "item": "scrap", "count": [ 2, 9 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "pipe", "count": [ 4, 6 ] }, + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 6 ] }, + { "item": "scrap", "count": [ 2, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_oil_circ_brkr_l", + "name": "HV oil circuit breaker", + "description": "A circuit breaker that uses oil in its arc supression chamber.", + "symbol": "B", + "color": "light_gray", + "move_cost": 0, + "coverage": 90, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 6, + "sound": "pow!", + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 8, 16 ] }, + { "item": "steel_chunk", "count": [ 2, 6 ] }, + { "item": "ceramic_shard", "count": [ 0, 4 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "cable", "charges": [ 8, 24 ] }, + { "item": "power_supply", "count": [ 4, 8 ] }, + { "item": "amplifier", "count": [ 8, 16 ] }, + { "item": "steel_chunk", "count": [ 4, 16 ] }, + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "sheet_metal", "count": [ 6, 12 ] }, + { "item": "ceramic_shard", "count": [ 2, 6 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_oil_circ_brkr_s", + "name": "small HV oil circuit breaker", + "description": "A small circuit breaker that uses oil in its arc supression chamber.", + "symbol": "b", + "color": "light_gray", + "move_cost": 0, + "coverage": 65, + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 4, + "sound": "pow!", + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 6, 12 ] }, + { "item": "steel_chunk", "count": [ 1, 3 ] }, + { "item": "ceramic_shard", "count": [ 0, 2 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "cable", "charges": [ 4, 12 ] }, + { "item": "power_supply", "count": [ 3, 6 ] }, + { "item": "amplifier", "count": [ 6, 12 ] }, + { "item": "steel_chunk", "count": [ 2, 12 ] }, + { "item": "scrap", "count": [ 8, 18 ] }, + { "item": "sheet_metal", "count": [ 4, 8 ] }, + { "item": "ceramic_shard", "count": [ 1, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_switchgear_l", + "name": "large switchgear", + "description": "A switchgear panel. It's covered in breaker switches, fuses, and gauges.", + "symbol": "H", + "color": "i_light_gray", + "move_cost": 0, + "coverage": 90, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 3, + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 5, 10 ] }, + { "item": "steel_chunk", "count": [ 2, 4 ] }, + { "item": "plastic_chunk", "count": [ 2, 4 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "RAM", "count": [ 2, 6 ] }, + { "item": "cable", "charges": [ 4, 24 ] }, + { "item": "small_lcd_screen", "count": [ 6, 12 ] }, + { "item": "e_scrap", "count": [ 16, 24 ] }, + { "item": "circuit", "count": [ 12, 30 ] }, + { "item": "power_supply", "count": [ 6, 8 ] }, + { "item": "amplifier", "count": [ 6, 8 ] }, + { "item": "plastic_chunk", "count": [ 2, 4 ] }, + { "item": "scrap", "count": [ 8, 16 ] }, + { "item": "sheet_metal", "count": [ 2, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_switchgear_s", + "name": "small switchgear", + "description": "A small switchgear panel. It's covered in breaker switches, fuses, and gauges.", + "symbol": "L", + "color": "i_light_gray", + "move_cost": 0, + "coverage": 65, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 2, + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 4, 8 ] }, + { "item": "steel_chunk", "count": [ 1, 2 ] }, + { "item": "e_scrap", "count": [ 0, 2 ] }, + { "item": "circuit", "count": [ 1, 4 ] }, + { "item": "power_supply", "count": [ 0, 2 ] }, + { "item": "amplifier", "prob": 50 }, + { "item": "plastic_chunk", "count": [ 1, 2 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "RAM", "count": [ 1, 2 ] }, + { "item": "cable", "charges": [ 2, 8 ] }, + { "item": "small_lcd_screen", "count": [ 2, 6 ] }, + { "item": "e_scrap", "count": [ 6, 12 ] }, + { "item": "circuit", "count": [ 8, 24 ] }, + { "item": "power_supply", "count": [ 2, 6 ] }, + { "item": "amplifier", "count": [ 1, 4 ] }, + { "item": "plastic_chunk", "count": [ 1, 2 ] }, + { "item": "scrap", "count": [ 4, 8 ] }, + { "item": "sheet_metal", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_lgtn_arrest", + "name": "lightning arrester", + "description": "A component designed to protect insulation and conductors in an electrical system by directing lightning through itself and into the ground.", + "symbol": "}", + "color": "i_light_gray", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 4, + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "cable", "charges": [ 0, 4 ] }, + { "item": "scrap", "count": [ 8, 12 ] }, + { "item": "steel_chunk", "count": [ 2, 4 ] }, + { "item": "ceramic_shard", "count": [ 8, 16 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "cable", "charges": [ 4, 8 ] }, + { "item": "steel_chunk", "count": [ 4, 6 ] }, + { "item": "scrap", "count": [ 12, 16 ] }, + { "item": "plastic_chunk", "count": [ 1, 4 ] }, + { "item": "ceramic_shard", "count": [ 12, 24 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_station_disc", + "name": "disconnect switch", + "description": "A switch used to make sure an electrical system doesn't have any current flowing through it, for maintenance periods.", + "symbol": "h", + "color": "light_gray", + "move_cost": 0, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 3, + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 4, 8 ] }, + { "item": "steel_chunk", "count": [ 2, 4 ] }, + { "item": "cable", "charges": [ 1, 4 ] }, + { "item": "ceramic_shard", "count": [ 0, 2 ] }, + { "item": "lead", "prob": 50 } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "RAM", "count": [ 12, 24 ] }, + { "item": "cable", "charges": [ 6, 12 ] }, + { "item": "small_lcd_screen", "count": [ 8, 16 ] }, + { "item": "e_scrap", "count": [ 8, 12 ] }, + { "item": "circuit", "count": [ 6, 18 ] }, + { "item": "power_supply", "count": [ 8, 12 ] }, + { "item": "amplifier", "count": [ 2, 4 ] }, + { "item": "plastic_chunk", "count": [ 4, 8 ] }, + { "item": "scrap", "count": [ 2, 6 ] }, + { "item": "sheet_metal", "count": [ 1, 2 ] }, + { "item": "lead", "charges": [ 1, 2 ] }, + { "item": "ceramic_shard", "count": [ 2, 6 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_current_trans", + "name": "current transformer", + "description": "An electronic component used to transform the voltage of a current.", + "symbol": "{", + "color": "light_gray", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 5, + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 10, 12 ] }, + { "item": "steel_chunk", "count": [ 4, 6 ] }, + { "item": "lead", "charges": [ 2, 8 ] }, + { "item": "cable", "charges": [ 20, 60 ] }, + { "item": "sheet_metal", "count": [ 1, 2 ] }, + { "item": "ceramic_shard", "count": [ 2, 6 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "scrap", "count": [ 12, 16 ] }, + { "item": "steel_chunk", "count": [ 4, 6 ] }, + { "item": "lead", "charges": [ 4, 16 ] }, + { "item": "cable", "charges": [ 60, 120 ] }, + { "item": "sheet_metal", "count": [ 2, 6 ] }, + { "item": "ceramic_shard", "count": [ 4, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_potential_trans", + "name": "potential transformer", + "description": "A specialised type of electrical transformer, ", + "symbol": "8", + "color": "i_light_gray", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 5, + "ter_set": "t_concrete", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 10, 12 ] }, + { "item": "steel_chunk", "count": [ 4, 6 ] }, + { "item": "lead", "charges": [ 8, 16 ] }, + { "item": "cable", "charges": [ 1, 20 ] }, + { "item": "sheet_metal", "count": [ 1, 2 ] }, + { "item": "ceramic_shard", "count": [ 2, 6 ] } + ] + }, + "deconstruct": { + "ter_set": "t_concrete", + "items": [ + { "item": "scrap", "count": [ 12, 16 ] }, + { "item": "steel_chunk", "count": [ 4, 6 ] }, + { "item": "lead", "charges": [ 12, 32 ] }, + { "item": "cable", "charges": [ 20, 40 ] }, + { "item": "sheet_metal", "count": [ 2, 6 ] }, + { "item": "ceramic_shard", "count": [ 4, 12 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_dock", + "name": "dock", + "description": "A wooden platform held by a support made of logs dug into the ground.", + "symbol": "8", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ], + "deconstruct": { "ter_set": "t_water_sh", "items": [ { "item": "nail", "charges": [ 6, 12 ] }, { "item": "2x4", "count": 8 } ] }, + "bash": { + "str_min": 8, + "str_max": 80, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_water_moving_sh", + "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_sh_bridge", + "name": "shallow bridge", + "description": "A wooden platform held by a support made of logs dug into the ground.", + "looks_like": "t_dock", + "symbol": "8", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ], + "deconstruct": { "ter_set": "t_water_sh", "items": [ { "item": "nail", "charges": [ 6, 12 ] }, { "item": "2x4", "count": 8 } ] }, + "bash": { + "str_min": 8, + "str_max": 80, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_water_sh", + "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_pontoon_dp", + "name": "pontoon bridge", + "description": "A floating temporary bridge, like the ones army used to make to cross rivers.", + "symbol": "8", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ], + "deconstruct": { + "ter_set": "t_water_dp", + "items": [ { "item": "rope_makeshift_6", "count": [ 3, 4 ] }, { "item": "2x4", "count": 8 } ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_water_dp", + "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_riverbridge_dp", + "name": "river bridge", + "description": "A floating temporary bridge, like the ones army used to make to cross rivers.", + "looks_like": "t_pontoon", + "symbol": "8", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT" ], + "deconstruct": { + "ter_set": "t_water_moving_dp", + "items": [ { "item": "rope_makeshift_6", "count": [ 3, 4 ] }, { "item": "2x4", "count": 8 } ] + }, + "bash": { + "str_min": 8, + "str_max": 80, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_water_dp", + "items": [ { "item": "2x4", "count": 2, "prob": 25 }, { "item": "splinter", "count": [ 2, 4 ] } ] + } + }, + { + "type": "terrain", + "id": "t_pavement_bg_dp", + "name": "bridge pavement", + "description": "A bridge section made out of metal and concrete.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "str_min": 70, + "str_max": 300, + "sound": "concrete cracking and metal screeching!", + "sound_fail": "whump!", + "ter_set": "t_water_dp", + "items": [ { "item": "rock", "count": [ 4, 20 ] }, { "item": "rebar", "count": [ 10, 20 ] } ] + } + }, + { + "type": "terrain", + "id": "t_pavement_y_bg_dp", + "name": "bridge yellow pavement", + "description": "A bridge section made out of metal and concrete. It's painted yellow.", + "symbol": ".", + "color": "yellow", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "str_min": 70, + "str_max": 300, + "sound": "concrete cracking and metal screeching!", + "sound_fail": "whump!", + "ter_set": "t_water_dp", + "items": [ { "item": "rock", "count": [ 4, 20 ] }, { "item": "rebar", "count": [ 10, 20 ] } ] + } + }, + { + "type": "terrain", + "id": "t_sidewalk_bg_dp", + "name": "bridge sidewalk", + "description": "The sidewalk section of a concrete bridge.", + "symbol": ".", + "color": "light_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "MINEABLE" ], + "bash": { + "str_min": 70, + "str_max": 300, + "sound": "concrete cracking and metal screeching!", + "sound_fail": "whump!", + "ter_set": "t_water_dp", + "items": [ { "item": "rock", "count": [ 4, 20 ] }, { "item": "rebar", "count": [ 10, 20 ] } ] + } + }, + { + "type": "terrain", + "id": "t_guardrail_bg_dp", + "name": "guard rail", + "description": "A section of metal railing, put in place to prevent people from falling or taking the easy way out.", + "symbol": "#", + "color": "light_gray", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "THIN_OBSTACLE", "ROAD" ], + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "clang!", + "ter_set": "t_pavement_bg_dp", + "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_guardrail", + "name": "guard rail", + "description": "A section of metal railing, put in place to prevent people from falling or taking the easy way out.", + "symbol": "#", + "color": "light_gray", + "move_cost": 3, + "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "THIN_OBSTACLE", "ROAD" ], + "looks_like": "t_guardrail_bg_dp", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "clang!", + "ter_set": "t_pavement", + "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_blackjack", + "name": "blackjack oak", + "description": "A deciduous tree of the genus 'Quercus', with bark cracked into rectangular black plates split by narrow orange fissures. You could peel off the bark sections if you examined the tree more closely. You could cut it down with the right tools.", + "symbol": "7", + "color": "brown", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_blackjack_harvested", + "examine_action": "harvest_ter", + "harvest_by_season": [ + { "seasons": [ "spring", "summer", "autumn", "winter" ], "entries": [ { "drop": "tanbark", "base_num": [ 1, 2 ] } ] } + ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_tree_blackjack_harvested", + "description": "A deciduous tree of the genus 'Quercus', with bark cracked into rectangular black plates split by narrow orange fissures. All usable bark has been stripped off. You could cut it down with the right tools.", + "name": "blackjack oak", + "symbol": "7", + "color": "brown", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_blackjack", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + } + }, + { + "type": "terrain", + "id": "t_claymound", + "name": "mound of clay", + "description": "A mound of clay soil.", + "symbol": "#", + "color": "brown", + "move_cost": 5, + "flags": [ "TRANSPARENT" ], + "bash": { + "str_min": 2, + "str_max": 4, + "sound": "splosh!", + "sound_fail": "splosh!", + "ter_set": "t_water_dp", + "items": [ { "item": "clay_lump", "count": [ 6, 12 ] } ] + } + }, + { + "type": "terrain", + "id": "t_sandmound", + "name": "mound of sand", + "description": "A mound of sand.", + "symbol": "#", + "color": "brown", + "move_cost": 5, + "flags": [ "TRANSPARENT" ], + "bash": { + "str_min": 2, + "str_max": 4, + "sound": "splosh!", + "sound_fail": "splosh!", + "ter_set": "t_water_dp", + "items": [ { "item": "material_sand", "charges": [ 300, 600 ] } ] + } + }, + { + "type": "terrain", + "id": "t_conveyor", + "name": "conveyor belt", + "description": "A convetor belt. Used to transport things.", + "symbol": "=", + "color": "brown", + "move_cost": 6, + "flags": [ "TRANSPARENT", "BASHABLE", "PLACE_ITEM", "INDOORS" ], + "coverage": 30, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": 1 }, + { "item": "pipe", "count": [ 1, 4 ] }, + { "item": "chain", "prob": 10 }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "xlframe", "prob": 5 } + ] + }, + "bash": { + "str_min": 12, + "str_max": 80, + "sound": "clang!", + "sound_fail": "ting.", + "ter_set": "t_rock_floor", + "items": [ { "item": "pipe", "count": [ 1, 3 ] }, { "item": "chain", "prob": 10 }, { "item": "scrap", "count": [ 1, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_machinery_light", + "name": "light machinery", + "description": "Assorted light machinery. You could scavenge it for parts.", + "symbol": "$", + "color": "dark_gray", + "move_cost": 10, + "coverage": 65, + "flags": [ "TRANSPARENT", "BASHABLE", "CONTAINER", "FLAMMABLE", "PLACE_ITEM" ], + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": [ 1, 3 ] }, + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "chain", "prob": 40 }, + { "item": "cu_pipe", "prob": 40 }, + { "item": "scrap", "count": [ 1, 4 ] }, + { "item": "hose", "count": 1 }, + { "item": "steel_chunk", "count": [ 1, 5 ] }, + { "item": "bearing", "charges": [ 4, 12 ] }, + { "item": "frame", "prob": 50 }, + { "item": "motor", "prob": 50 } + ] + }, + "bash": { + "str_min": 16, + "str_max": 80, + "sound": "clang!", + "sound_fail": "ting.", + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": 1 }, + { "item": "pipe", "count": 2, "prob": 40 }, + { "item": "chain", "prob": 20 }, + { "item": "cu_pipe", "prob": 10 }, + { "item": "scrap", "count": [ 3, 8 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "bearing", "charges": [ 2, 8 ] }, + { "item": "frame", "prob": 20 }, + { "item": "motor", "prob": 10 } + ] + } + }, + { + "type": "terrain", + "id": "t_machinery_heavy", + "name": "heavy machinery", + "description": "Assorted heavy machinery. You could scavenge it for parts.", + "symbol": "%", + "color": "light_gray", + "move_cost": 0, + "coverage": 75, + "flags": [ "BASHABLE", "CONTAINER", "SEALED", "PLACE_ITEM" ], + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": [ 1, 3 ] }, + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "chain", "prob": 60 }, + { "item": "cu_pipe", "prob": 20 }, + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "hose", "count": 1 }, + { "item": "sheet_metal", "count": [ 1, 3 ] }, + { "item": "steel_chunk", "count": [ 1, 3 ] }, + { "item": "bearing", "charges": [ 4, 12 ] }, + { "item": "frame", "prob": 60 }, + { "item": "motor", "prob": 30 }, + { "item": "metal_tank", "prob": 30 }, + { "item": "motor_large", "prob": 10 } + ] + }, + "bash": { + "str_min": 18, + "str_max": 80, + "sound": "clang!", + "sound_fail": "ting.", + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": 1 }, + { "item": "pipe", "count": 1 }, + { "item": "chain", "prob": 20 }, + { "item": "steel_lump", "count": 1 }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "sheet_metal", "count": 2 }, + { "item": "steel_chunk", "count": [ 1, 2 ] }, + { "item": "bearing", "charges": [ 2, 8 ] }, + { "item": "frame", "prob": 30 }, + { "item": "motor", "prob": 10 }, + { "item": "metal_tank", "prob": 20 }, + { "item": "motor_large", "prob": 5 } + ] + } + }, + { + "type": "terrain", + "id": "t_machinery_old", + "name": "old machinery", + "description": "Assorted old machinery. You could scavenge it for parts.", + "symbol": "&", + "color": "brown", + "move_cost": 4, + "coverage": 55, + "flags": [ "TRANSPARENT", "BASHABLE", "CONTAINER", "FLAMMABLE", "PLACE_ITEM" ], + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": 1 }, + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "chain", "prob": 40 }, + { "item": "cu_pipe", "prob": 60 }, + { "item": "scrap", "count": [ 1, 3 ] }, + { "item": "hose", "count": 1 }, + { "item": "steel_chunk", "count": [ 1, 3 ] }, + { "item": "bearing", "charges": [ 1, 5 ] }, + { "item": "frame", "prob": 30 }, + { "item": "motor", "prob": 30 }, + { "item": "splinter", "count": 3, "prob": 30 }, + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "nail", "charges": [ 3, 10 ] } + ] + }, + "bash": { + "str_min": 10, + "str_max": 80, + "sound": "clang!", + "sound_fail": "ting.", + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": 1 }, + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "chain", "prob": 20 }, + { "item": "cu_pipe", "prob": 10 }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "steel_chunk", "count": [ 1, 2 ] }, + { "item": "motor", "prob": 10 }, + { "item": "splinter", "count": [ 4, 8 ] }, + { "item": "2x4", "count": 2 }, + { "item": "nail", "charges": [ 2, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_machinery_electronic", + "name": "electronic machinery", + "description": "Assorted electronic machinery. You could scavenge it for parts.", + "symbol": "$", + "color": "yellow", + "move_cost": 8, + "coverage": 55, + "flags": [ "TRANSPARENT", "BASHABLE", "CONTAINER", "SEALED", "FLAMMABLE", "PLACE_ITEM" ], + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "count": [ 1, 3 ] }, + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "bearing", "charges": [ 2, 6 ] }, + { "item": "motor", "prob": 40 }, + { "item": "processor", "count": 1 }, + { "item": "RAM", "count": [ 1, 4 ] }, + { "item": "cable", "charges": [ 1, 4 ] }, + { "item": "small_lcd_screen", "count": 1 }, + { "item": "e_scrap", "count": [ 5, 10 ] }, + { "item": "circuit", "count": [ 3, 8 ] }, + { "item": "power_supply", "count": [ 1, 3 ] }, + { "item": "amplifier", "count": [ 1, 3 ] }, + { "item": "plastic_chunk", "count": [ 2, 8 ] }, + { "item": "scrap", "count": [ 1, 5 ] } + ] + }, + "bash": { + "str_min": 10, + "str_max": 80, + "sound": "clang!", + "sound_fail": "ting.", + "ter_set": "t_rock_floor", + "items": [ + { "item": "wire", "prob": 40 }, + { "item": "pipe", "prob": 40 }, + { "item": "steel_chunk", "prob": 40 }, + { "item": "bearing", "charges": [ 2, 4 ] }, + { "item": "motor", "prob": 10 }, + { "item": "processor", "prob": 40 }, + { "item": "RAM", "count": [ 1, 2 ] }, + { "item": "cable", "charges": [ 1, 2 ] }, + { "item": "small_lcd_screen", "prob": 40 }, + { "item": "e_scrap", "count": [ 3, 8 ] }, + { "item": "circuit", "count": [ 1, 3 ] }, + { "item": "power_supply", "prob": 40 }, + { "item": "amplifier", "prob": 40 }, + { "item": "plastic_chunk", "count": [ 2, 8 ] }, + { "item": "scrap", "count": [ 3, 8 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_low_stairs_begin", + "name": "low stairs (beginning section)", + "description": "A flight of stairs leading up.", + "symbol": "<", + "color": "dark_gray_white", + "move_cost": 4, + "flags": [ "TRANSPARENT", "BASHABLE", "FLAMMABLE", "PLACE_ITEM", "RAMP", "SEEN_FROM_ABOVE" ], + "bash": { + "str_min": 12, + "str_max": 50, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_floor", + "items": [ + { "item": "2x4", "count": [ 0, 3 ] }, + { "item": "nail", "charges": [ 1, 5 ] }, + { "item": "splinter", "count": [ 1, 4 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_low_stairs_end", + "name": "low stairs (end section)", + "description": "A flight of stairs leading up.", + "symbol": "<", + "color": "black_white", + "move_cost": 0, + "flags": [ "BASHABLE", "FLAMMABLE", "PLACE_ITEM", "RAMP", "RAMP_END", "SEEN_FROM_ABOVE" ], + "bash": { + "str_min": 20, + "str_max": 50, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_floor", + "items": [ + { "item": "2x4", "count": [ 0, 3 ] }, + { "item": "nail", "charges": [ 1, 5 ] }, + { "item": "splinter", "count": [ 1, 4 ] } + ] + } + }, + { + "id": "t_milking_machine", + "type": "terrain", + "name": "milking machine", + "description": "A machine used in the dairy industry to milk cows.", + "symbol": "%", + "color": [ "light_gray" ], + "move_cost": 1, + "bash": { + "str_min": 10, + "str_max": 50, + "ter_set": "t_floor", + "sound": "crunch!", + "sound_fail": "whump!", + "items": [ + { "item": "scrap", "count": [ 1, 6 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "hose", "count": [ 1, 3 ] } + ] + }, + "deconstruct": { + "ter_set": "t_floor", + "items": [ + { "item": "scrap", "count": [ 2, 9 ] }, + { "item": "steel_chunk", "count": [ 2, 5 ] }, + { "item": "hose", "count": [ 2, 6 ] } + ] + }, + "flags": [ "CONTAINER", "PLACE_ITEM", "BLOCKSDOOR" ] + }, + { + "id": "t_bulk_tank", + "type": "terrain", + "name": "bulk tank", + "description": "A heavy, high capacity tank.", + "symbol": "O", + "color": [ "light_gray" ], + "move_cost": 0, + "coverage": 85, + "bash": { + "str_min": 20, + "str_max": 80, + "ter_set": "t_floor", + "sound": "crunch!", + "sound_fail": "whump!", + "items": [ + { "item": "wire", "count": [ 1, 2 ] }, + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "steel_lump", "count": [ 1, 5 ] }, + { "item": "sheet_metal", "count": [ 1, 3 ] }, + { "item": "steel_chunk", "count": [ 1, 5 ] } + ] + }, + "deconstruct": { + "ter_set": "t_floor", + "items": [ + { "item": "wire", "count": [ 2, 8 ] }, + { "item": "pipe", "count": [ 1, 3 ] }, + { "item": "steel_lump", "count": [ 1, 8 ] }, + { "item": "sheet_metal", "count": [ 1, 6 ] }, + { "item": "steel_chunk", "count": [ 1, 10 ] } + ] + }, + "flags": [ "BASHABLE", "CONTAINER", "SEALED", "PLACE_ITEM", "WALL", "MINEABLE" ] + }, + { + "id": "t_railroad_rubble", + "type": "terrain", + "name": "gravel", + "description": "A small mallet that a judge uses to call - er, wait. Oh, gravel! Gravel is a collection of small stones often used for roads, as railroad ballast, and in many other applications.", + "symbol": "^", + "color": [ "brown" ], + "move_cost": 2, + "bash": { + "str_min": 4, + "str_max": 40, + "ter_set": "t_rock_floor", + "sound": "crunch!", + "sound_fail": "whump!", + "items": [ { "item": "pebble", "count": [ 1, 3 ] }, { "item": "sharp_rock", "count": [ 0, 1 ] } ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ { "item": "pebble", "count": [ 2, 6 ] }, { "item": "sharp_rock", "count": [ 1, 3 ] } ] + }, + "flags": [ "BASHABLE", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_h", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_v", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_d", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_d1", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_d2", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_tie", + "type": "terrain", + "name": "railroad tie", + "description": "This crosstie is used to support the rails.", + "symbol": "#", + "color": [ "dark_gray_yellow" ], + "move_cost": 2, + "bash": { + "str_min": 10, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_rock_floor", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "TRANSPARENT" ] + }, + { + "id": "t_railroad_tie_h", + "type": "terrain", + "name": "railroad tie", + "description": "This crosstie is used to support the rails.", + "symbol": "#", + "color": [ "dark_gray_yellow" ], + "move_cost": 2, + "bash": { + "str_min": 10, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_rock_floor", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "TRANSPARENT" ] + }, + { + "id": "t_railroad_tie_v", + "type": "terrain", + "name": "railroad tie", + "description": "This crosstie is used to support the rails.", + "symbol": "#", + "color": [ "dark_gray_yellow" ], + "move_cost": 2, + "bash": { + "str_min": 10, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_rock_floor", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "TRANSPARENT" ] + }, + { + "id": "t_railroad_tie_d", + "type": "terrain", + "name": "railroad tie", + "description": "This crosstie is used to support the rails.", + "symbol": "#", + "color": [ "dark_gray_yellow" ], + "move_cost": 2, + "bash": { + "str_min": 10, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_rock_floor", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_on_tie", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "log", "count": [ 0, 1 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_h_on_tie", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "log", "count": [ 0, 1 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_v_on_tie", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "log", "count": [ 0, 1 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_railroad_track_d_on_tie", + "type": "terrain", + "name": "railroad track", + "description": "Trains used to chug along on these. These rail tracks stand unused in the face of the Cataclysm. A crosstie sits underneath, supporting the rails.", + "symbol": "X", + "color": [ "cyan" ], + "move_cost": 3, + "bash": { + "str_min": 60, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ + { "item": "steel_lump", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "scrap", "count": [ 3, 12 ] }, + { "item": "log", "count": [ 0, 1 ] }, + { "item": "splinter", "count": [ 10, 20 ] } + ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "RAIL", "TRANSPARENT" ] + }, + { + "id": "t_floor_waxed_y", + "type": "terrain", + "name": "painted waxed floor", + "description": "This section of wax flooring has been painted.", + "symbol": ".", + "color": [ "yellow" ], + "move_cost": 2, + "roof": "t_flat_roof", + "bash": { + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "ter_set": "t_null", + "sound": "SMASH!", + "items": [ { "item": "wax", "count": [ 1, 3 ] } ] + }, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ] + }, + { + "id": "t_backboard_in", + "type": "terrain", + "name": "backboard", + "description": "A metal backboard.", + "symbol": "7", + "color": [ "red" ], + "move_cost": 0, + "roof": "t_flat_roof", + "bash": { + "str_min": 8, + "str_max": 45, + "ter_set": "t_floor_waxed", + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 2, 8 ] }, + { "item": "steel_chunk", "count": [ 1, 3 ] }, + { "item": "pipe", "count": [ 1, 2 ] } + ] + }, + "deconstruct": { "ter_set": "t_floor_waxed", "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 6, 10 ] } ] }, + "flags": [ "TRANSPARENT", "WALL", "PERMEABLE", "INDOORS" ] + }, + { + "id": "t_open_air_rooved", + "type": "terrain", + "name": "open air", + "description": "This is open air.", + "symbol": " ", + "color": [ "i_cyan" ], + "move_cost": 2, + "trap": "tr_ledge", + "roof": "t_flat_roof", + "examine_action": "ledge", + "flags": [ "TRANSPARENT", "NO_FLOOR", "INDOORS" ] + }, + { + "id": "t_buffer_stop", + "type": "terrain", + "name": "buffer stop", + "description": "A tiny blockade on the train tracks, meant to signify the end of a track, or mark a 'no-go' zone for trains.", + "symbol": "S", + "color": [ "brown" ], + "move_cost": 3, + "bash": { + "str_min": 4, + "str_max": 12, + "ter_set": "t_dirt", + "sound": "crack.", + "sound_fail": "whump.", + "items": [ { "item": "2x4", "count": [ 2, 5 ] }, { "item": "nail", "charges": [ 3, 8 ] }, { "item": "splinter", "count": 2 } ] + }, + "flags": [ "BASHABLE", "TRANSPARENT", "NOITEM", "MOUNTABLE" ] + }, + { + "id": "t_railroad_tie_d1", + "type": "terrain", + "name": "railroad tie", + "description": "This crosstie is used to support the rails.", + "symbol": "/", + "color": [ "dark_gray_yellow" ], + "move_cost": 2, + "bash": { + "str_min": 10, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_rock_floor", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "TRANSPARENT" ] + }, + { + "id": "t_railroad_tie_d2", + "type": "terrain", + "name": "railroad tie", + "description": "This crosstie is used to support the rails.", + "symbol": "\\", + "color": [ "dark_gray_yellow" ], + "move_cost": 2, + "bash": { + "str_min": 10, + "str_max": 120, + "sound": "crunch!", + "sound_fail": "whump.", + "ter_set": "t_rock_floor", + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "deconstruct": { + "ter_set": "t_rock_floor", + "items": [ { "item": "log", "count": [ 0, 1 ] }, { "item": "splinter", "count": [ 10, 20 ] } ] + }, + "connects_to": "RAIL", + "flags": [ "BASHABLE", "TRANSPARENT" ] + }, + { + "id": "t_railroad_crossing_signal", + "type": "terrain", + "name": "railroad crossing signal", + "description": "Traffic lights meant to light and make noise when a train approaches, to prevent people from turning into meaty mush while they cross the tracks. Won't stop people from turning into meaty mush by other means, though.", + "symbol": "1", + "color": [ "light_gray" ], + "move_cost": 0, + "bash": { + "str_min": 16, + "str_max": 75, + "ter_set": "t_dirt", + "sound": "crash!", + "sound_fail": "clang.", + "items": [ + { "item": "pipe", "count": [ 2, 4 ] }, + { "item": "scrap", "count": [ 2, 8 ] }, + { "item": "steel_chunk", "count": [ 0, 1 ] }, + { "item": "e_scrap", "count": [ 0, 1 ] }, + { "item": "power_supply", "count": [ 0, 1 ] } + ] + }, + "flags": [ "TRANSPARENT", "NOITEM" ] + }, + { + "id": "t_crossbuck_wood", + "type": "terrain", + "description": "A traffic sign intended to indicate a level railway crossing. If the trains were still running.", + "name": "crossbuck", + "symbol": "X", + "color": [ "brown" ], + "move_cost": 0, + "bash": { + "str_min": 6, + "str_max": 18, + "ter_set": "t_dirt", + "sound": "crack.", + "sound_fail": "whump.", + "items": [ + { "item": "2x4", "count": [ 1, 3 ] }, + { "item": "nail", "charges": [ 0, 4 ] }, + { "item": "splinter", "count": [ 1, 2 ] } + ] + }, + "flags": [ "TRANSPARENT", "NOITEM" ] + }, + { + "id": "t_crossbuck_metal", + "type": "terrain", + "name": "crossbuck", + "description": "A traffic sign intended to indicate a level railway crossing. If the trains were still running.", + "symbol": "X", + "color": [ "light_gray" ], + "move_cost": 0, + "bash": { + "str_min": 10, + "str_max": 50, + "ter_set": "t_dirt", + "sound": "crash!", + "sound_fail": "clang.", + "items": [ { "item": "pipe", "count": [ 2, 3 ] }, { "item": "scrap", "count": [ 0, 2 ] } ] + }, + "flags": [ "TRANSPARENT", "NOITEM" ] + }, + { + "type": "terrain", + "id": "t_rootcellar", + "name": "root cellar", + "symbol": "=", + "description": "A cellar dug into the earth for storing food in a cool environment.", + "color": [ "green" ], + "move_cost": 0, + "flags": [ "TRANSPARENT", "CONTAINER", "PLACE_ITEM", "INDOORS", "DECONSTRUCT" ], + "deconstruct": { "ter_set": "t_pit", "items": [ { "item": "rock", "count": 40 }, { "item": "stick", "count": [ 16, 16 ] } ] }, + "bash": { + "str_min": 18, + "str_max": 50, + "sound": "crunch!", + "sound_fail": "whump!", + "ter_set": "t_pit_shallow", + "items": [ { "item": "rock", "count": 8 }, { "item": "stick", "count": [ 8, 12 ] } ] + } + }, + { + "type": "terrain", + "id": "t_junk_palisade", + "name": "junk metal barrier", + "looks_like": "t_scrap_wall_halfway", + "description": "A simple wall of rusty scrap metal bolted and wire-tied to a makeshift frame. Very fashionable in post-apocalyptic shantytowns. This one isn't quite strong enough to support a roof, but could be reinforced.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 0, + "coverage": 60, + "flags": [ "NOITEM", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 30, + "str_max": 200, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pit_shallow", + "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 40 ] } ] + } + }, + { + "type": "terrain", + "id": "t_junk_wall", + "name": "junk metal wall", + "looks_like": "t_scrap_wall", + "description": "A wall of rusty scrap metal bolted and wire-tied to a sturdy frame. Very fashionable in post-apocalyptic shantytowns. Can support a roof.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "flags": [ "NOITEM", "WALL", "SUPPORTS_ROOF", "AUTO_WALL_SYMBOL", "MINEABLE" ], + "connects_to": "WALL", + "bash": { + "str_min": 60, + "str_max": 200, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_pit_shallow", + "items": [ + { "item": "pipe", "count": [ 1, 6 ] }, + { "item": "scrap", "count": [ 1, 40 ] }, + { "item": "sheet_metal", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 30 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_junk_floor", + "name": "junk metal floor", + "looks_like": "t_scrap_floor", + "description": "A simple roof and floor of rusty scrap metal bolted and wire-tied to a makeshift frame. Very fashionable in post-apocalyptic shantytowns. Hope you like the sound of rain on corrugated metal.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT" ], + "bash": { + "str_min": 30, + "str_max": 200, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_dirt", + "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 40 ] } ] + } + }, + { + "type": "terrain", + "id": "t_rad_platform", + "looks_like": "t_blue_floor", + "name": "radiation platform", + "description": "A dual purpose platform that serves as a containment, and as a device that exposes items places on in to the radioactive source, by temporarily hoisting the radioactive material stored within. Operated from external console.", + "symbol": "0", + "color": "light_blue", + "move_cost": 100, + "flags": [ "TRANSPARENT", "REDUCE_SCENT", "PERMEABLE" ], + "bash": { + "str_min": 50, + "str_max": 400, + "ter_set": "t_pit", + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 4, 16 ] }, + { "item": "steel_chunk", "count": [ 1, 6 ] }, + { "item": "cobalt_60", "charges": [ 1, 5 ] }, + { "item": "lead", "charges": [ 12, 18 ] } + ] + }, + "deconstruct": { + "ter_set": "t_pit", + "items": [ + { "item": "cable", "charges": [ 8, 16 ] }, + { "item": "cobalt_60", "charges": [ 2, 10 ] }, + { "item": "scrap", "count": [ 8, 16 ] }, + { "item": "sheet_metal", "count": [ 5, 10 ] }, + { "item": "lead", "count": [ 12, 18 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_grave", + "name": "grave", + "looks_like": "t_dirtmound", + "description": "A dirt grave, with some grass growing on it. At least some of the dead do actually rest in peace.", + "symbol": "#", + "color": "green", + "move_cost": 3, + "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE" ], + "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } + }, + { + "type": "terrain", + "id": "t_grave_new", + "name": "grave", + "looks_like": "t_dirtmound", + "description": "A fresh grave, covered with stones, either to keep something from digging it out or to keep one inside from digging out of it. Two planks mark this place of someone's eternal rest.", + "symbol": "#", + "color": "brown", + "move_cost": 3, + "flags": [ "TRANSPARENT", "DIGGABLE", "MOUNTABLE", "NOCOLLIDE", "CONTAINER", "SEALED" ], + "bash": { "sound": "thump", "ter_set": "t_dirt", "str_min": 50, "str_max": 100, "str_min_supported": 100 } + }, + { + "type": "terrain", + "id": "t_wall_rammed_earth", + "name": "rammed earth wall", + "description": "A solid wall of compressed dirt, sturdy enough to support a roof with enough walls and keep out some unwanted visitors.", + "symbol": "LINE_OXOX", + "color": "brown", + "move_cost": 0, + "coverage": 100, + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 60, + "str_max": 200, + "sound": "heavy rumbling!", + "sound_fail": "thump", + "ter_set": "t_fence_post", + "items": [ { "item": "material_soil", "count": [ 100, 150 ] } ] + } + }, + { + "type": "terrain", + "id": "t_splitrail_fence", + "aliases": [ "t_splitrail_fence_h", "t_splitrail_fence_v" ], + "name": "split rail fence", + "description": "A rather stout fence made of 2x4s and fence posts, suitable for containing livestock like horses, cows and pigs.", + "symbol": "LINE_OXOX", + "color": "brown", + "looks_like": "t_fence", + "move_cost": 0, + "examine_action": "chainfence", + "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "PERMEABLE", "FLAMMABLE_ASH", "CLIMBABLE", "AUTO_WALL_SYMBOL" ], + "connects_to": "WOODFENCE", + "deconstruct": { "ter_set": "t_fence_post", "items": [ { "item": "2x4", "count": 2 }, { "item": "nail", "charges": 20 } ] }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "whump!", + "sound_fail": "whack!", + "ter_set": "t_fence_post", + "items": [ { "item": "2x4", "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_splitrail_fencegate_c", + "name": "closed wooden split rail gate", + "description": "A commercial quality gate made of wood with a latch system.", + "symbol": "+", + "color": "brown", + "looks_like": "t_fencegate_c", + "move_cost": 0, + "coverage": 60, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DOOR" ], + "connects_to": "WOODFENCE", + "open": "t_splitrail_fencegate_o", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 5 }, + { "item": "pointy_stick", "count": 2 }, + { "item": "nail", "charges": 12 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + }, + "bash": { + "str_min": 4, + "str_max": 20, + "str_min_blocked": 6, + "str_max_blocked": 30, + "sound": "crack.", + "sound_fail": "wham.", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 1, 4 ] }, + { "item": "nail", "charges": [ 2, 8 ] }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_splitrail_fencegate_o", + "name": "open wooden split rail gate", + "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.", + "symbol": ".", + "color": "brown", + "looks_like": "t_fencegate_o", + "move_cost": 1, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "FLAT", "ROAD" ], + "connects_to": "WOODFENCE", + "close": "t_splitrail_fencegate_c", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 5 }, + { "item": "pointy_stick", "count": 2 }, + { "item": "nail", "charges": 12 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_privacy_fence", + "aliases": [ "t_privacy_fence_h", "t_privacy_fence_v" ], + "name": "wooden privacy fence", + "description": "A rather stout fence made of 2x4s and fence posts, it is tall and prevents people from seeing into your yard.", + "symbol": "LINE_OXOX", + "color": "brown", + "looks_like": "t_fence", + "move_cost": 0, + "examine_action": "chainfence", + "flags": [ "NOITEM", "CLIMBABLE", "PERMEABLE", "AUTO_WALL_SYMBOL", "FLAMMABLE_ASH", "THIN_OBSTACLE" ], + "connects_to": "WOODFENCE", + "deconstruct": { + "ter_set": "t_fence_post", + "items": [ { "item": "2x4", "count": 10 }, { "item": "nail", "charges": 20 }, { "item": "hinge", "count": [ 1, 2 ] } ] + }, + "bash": { + "str_min": 5, + "str_max": 12, + "sound": "whump!", + "sound_fail": "whack!", + "ter_set": "t_fence_post", + "items": [ { "item": "2x4", "count": [ 4, 10 ] }, { "item": "hinge", "count": [ 1, 2 ] } ] + } + }, + { + "type": "terrain", + "id": "t_privacy_fencegate_c", + "name": "closed wooden split rail gate", + "description": "A commercial quality gate made of wood with a latch system.", + "symbol": "+", + "color": "brown", + "looks_like": "t_fencegate_c", + "move_cost": 0, + "coverage": 60, + "flags": [ "FLAMMABLE_ASH", "DOOR" ], + "connects_to": "WOODFENCE", + "open": "t_privacy_fencegate_o", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 8 }, + { "item": "pointy_stick", "count": 2 }, + { "item": "nail", "charges": 20 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + }, + "bash": { + "str_min": 4, + "str_max": 20, + "str_min_blocked": 6, + "str_max_blocked": 30, + "sound": "crack.", + "sound_fail": "wham.", + "ter_set": "t_null", + "items": [ + { "item": "2x4", "count": [ 4, 8 ] }, + { "item": "nail", "charges": [ 10, 20 ] }, + { "item": "splinter", "count": [ 4, 6 ] }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_privacy_fencegate_o", + "name": "open wooden split rail gate", + "description": "A commercial quality gate made of wood with a latch system. The gate is wide open, allowing anything to travel through.", + "symbol": ".", + "color": "brown", + "looks_like": "t_fencegate_o", + "move_cost": 1, + "flags": [ "FLAMMABLE_ASH", "FLAT", "ROAD" ], + "connects_to": "WOODFENCE", + "close": "t_privacy_fencegate_c", + "deconstruct": { + "ter_set": "t_dirt", + "items": [ + { "item": "2x4", "count": 8 }, + { "item": "pointy_stick", "count": 2 }, + { "item": "nail", "charges": 20 }, + { "item": "hinge", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_water_pool_shallow", + "name": "shallow pool water", + "description": "A shallow pool of water.", + "symbol": "~", + "color": "light_blue", + "move_cost": 5, + "flags": [ "TRANSPARENT", "LIQUID", "SWIMMABLE", "INDOORS" ], + "examine_action": "water_source" + }, + { + "type": "terrain", + "id": "t_adobe_brick_wall_halfway", + "name": "half-built adobe wall", + "description": "Half of an adobe brick wall, looks like it still requires some more resources and effort before being considered a real wall.", + "symbol": "#", + "color": "brown", + "looks_like": "t_brick_wall_halfway", + "move_cost": 5, + "coverage": 60, + "flags": [ "TRANSPARENT", "NOITEM", "MOUNTABLE", "REDUCE_SCENT", "MINEABLE" ], + "bash": { + "str_min": 20, + "str_max": 90, + "sound": "crash!", + "sound_fail": "bash!", + "ter_set": "t_null", + "items": [ { "item": "material_soil", "count": [ 4, 10 ] }, { "item": "adobe_brick", "count": [ 1, 3 ] } ] + } + }, + { + "type": "terrain", + "id": "t_adobe_brick_wall", + "name": "adobe wall", + "description": "A solid adobe brick wall, sturdy enough to support a roof with enough walls and keep out any unwanted visitors.", + "symbol": "LINE_OXOX", + "color": "brown", + "looks_like": "t_brick_wall", + "move_cost": 0, + "coverage": 100, + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connects_to": "WALL", + "bash": { + "str_min": 40, + "str_max": 120, + "sound": "crash!", + "sound_fail": "bash!", + "ter_set": "t_null", + "items": [ { "item": "material_soil", "count": [ 8, 20 ] }, { "item": "adobe_brick", "count": [ 2, 6 ] } ] + } + }, + { + "id": "t_leanto", + "type": "terrain", + "name": "pine lean-to", + "description": "A small shelter roofed with pine leaves, that can be used to take refuge from the elements or to protect a campfire from the rain.", + "symbol": ";", + "color": [ "brown" ], + "move_cost": 2, + "bash": { + "str_min": 4, + "str_max": 60, + "ter_set": "t_tree_pine", + "sound": "crunch!", + "sound_fail": "whack!", + "items": [ + { "item": "stick", "count": [ 2, 7 ] }, + { "item": "splinter", "count": [ 8, 20 ] }, + { "item": "pine_bough", "count": [ 0, 2 ] } + ] + }, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "REDUCE_SCENT", "INDOORS", "MOUNTABLE" ] + }, + { + "id": "t_tarptent", + "type": "terrain", + "name": "tarp lean-to", + "description": "A small shelter covered by waterproof tarp, that can be used to take refuge from the elements or to protect a campfire from the rain.", + "symbol": ";", + "color": [ "light_blue" ], + "move_cost": 2, + "bash": { + "str_min": 6, + "str_max": 12, + "ter_set": "t_dirt", + "sound": "crash!", + "sound_fail": "whack!", + "items": [ + { "item": "stick", "count": [ 1, 2 ] }, + { "item": "splinter", "count": [ 1, 4 ] }, + { "item": "plastic_chunk", "count": [ 4, 8 ] } + ] + }, + "deconstruct": { + "ter_set": "t_dirt", + "items": [ { "item": "pointy_stick", "count": 4 }, { "item": "string_6", "count": 4 }, { "item": "tarp", "count": 1 } ] + }, + "flags": [ "TRANSPARENT", "FLAMMABLE", "THIN_OBSTACLE", "INDOORS", "MOUNTABLE", "EASY_DECONSTRUCT" ] + }, + { + "type": "terrain", + "id": "t_wall_resin", + "name": "resin wall", + "description": "This wall is made of a glistening, nearly opaque, plastic-like substance. Deep within the material making it up, you can barely see a network of pulsating green conduits, snaking like blood vessels through it. The material is hard, warm to the touch, and slightly damp.", + "symbol": "LINE_OXOX", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_resin_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], + "bash": { + "str_min": 250, + "str_max": 700, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_resin_hole", + "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ] + } + }, + { + "type": "terrain", + "id": "t_wall_resin_cage", + "name": "resin cage", + "description": "This resin wall opens into a series of small honeycomb-like hexagons, allowing the passage of air and light. While still made of the same sturdy material, it is thinner and more delicate in appearance.", + "symbol": "#", + "color": "dark_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_resin_roof", + "flags": [ "NOITEM", "WALL", "TRANSPARENT", "INDOORS", "NONFLAMMABLE", "MINEABLE" ], + "bash": { + "str_min": 70, + "str_max": 300, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_floor_resin", + "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_floor_resin", + "name": "resin floor", + "description": "This nearly opaque, plastic-like floor has a gentle curve from wall to wall, but in the central areas is quite flat. The material is hard, warm to the touch, and slightly damp.", + "symbol": "~", + "color": "dark_gray", + "move_cost": 1, + "roof": "t_resin_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "ROAD", "NONFLAMMABLE" ], + "bash": { + "str_min": 250, + "str_max": 700, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_null", + "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ] + } + }, + { + "type": "terrain", + "id": "t_platform_resin", + "name": "resin floor", + "description": "This nearly opaque, plastic-like floor is smooth and flat. The material is hard, warm to the touch, and slightly damp.", + "symbol": "~", + "color": "light_gray", + "move_cost": 1, + "flags": [ "TRANSPARENT", "COLLAPSES", "FLAT", "ROAD", "NONFLAMMABLE" ], + "bash": { + "str_min": 250, + "str_max": 700, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_null", + "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ] + } + }, + { + "type": "terrain", + "id": "t_resin_roof", + "name": "resin roof", + "description": "A wide, domed section of nearly opaque, plastic-like material. When the light hits it, a network of multicolored conduits like blood vessels can be seen snaking through its glistening interior.", + "symbol": "~", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "NONFLAMMABLE" ], + "bash": { + "str_min": 250, + "str_max": 700, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_open_air", + "bash_below": true + } + }, + { + "type": "terrain", + "id": "t_resin_hole_c", + "name": "closed resin portal", + "description": "A tricuspid hatch of some sort of damp, flexible, resinous material. This one is closed tightly, but it looks like a firm push would cause it to snap open.", + "symbol": "Y", + "color": "light_gray", + "move_cost": 0, + "coverage": 95, + "roof": "t_resin_roof", + "flags": [ "DOOR", "NOITEM", "CONNECT_TO_WALL", "BLOCK_WIND", "NONFLAMMABLE" ], + "open": "t_resin_hole_o", + "deconstruct": { "ter_set": "t_resin_hole", "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] }, + "bash": { + "str_min": 90, + "str_max": 120, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_resin_hole", + "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_resin_hole_o", + "name": "open resin portal", + "description": "A tricuspid hatch of some sort of damp, flexible, resinous material. This one is open, the flaps held out by some sort of stringy mucus-like substance.", + "symbol": "D", + "color": "light_gray", + "move_cost": 2, + "roof": "t_resin_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "NONFLAMMABLE" ], + "deconstruct": { "ter_set": "t_resin_hole", "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] }, + "close": "t_resin_hole_c", + "bash": { + "str_min": 90, + "str_max": 120, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_resin_hole", + "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_resin_hole", + "name": "resin-lined hole", + "description": "An open hole in the resin wall, large enough to pass through.", + "symbol": "O", + "color": "light_gray", + "move_cost": 4, + "roof": "t_resin_roof", + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "NONFLAMMABLE" ], + "bash": { + "str_min": 100, + "str_max": 500, + "sound": "boom!", + "sound_fail": "whack!", + "ter_set": "t_floor_resin", + "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] + } + } +] diff --git a/data/json/test_regions.json b/data/json/test_regions.json index 1040f98c58245..62640dd36cd31 100644 --- a/data/json/test_regions.json +++ b/data/json/test_regions.json @@ -16,8 +16,7 @@ "overmap_lake_settings": { "noise_threshold_lake": 0.25, "lake_size_min": 20, - "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ], - "shore_extendable_overmap_terrain_aliases": [ ] + "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ] }, "overmap_forest_settings": { "noise_threshold_forest": 0.6, diff --git a/data/json/tool_qualities.json b/data/json/tool_qualities.json index 58f601f231791..3701647585637 100644 --- a/data/json/tool_qualities.json +++ b/data/json/tool_qualities.json @@ -231,10 +231,5 @@ "type": "tool_quality", "id": "VICE", "name": "vicing" - }, - { - "type": "tool_quality", - "id": "PRESSURIZATION", - "name": "pressurizing" } ] diff --git a/data/json/traps.json b/data/json/traps.json index 8d06e5d01b231..91b1af9cfb335 100644 --- a/data/json/traps.json +++ b/data/json/traps.json @@ -538,20 +538,6 @@ "benign": true, "funnel_radius": 200 }, - { - "type": "trap", - "id": "tr_birchbark_funnel", - "name": "birchbark funnel", - "color": "white", - "symbol": "v", - "visibility": -1, - "avoidance": 0, - "difficulty": 0, - "action": "none", - "drops": [ "birchbark_funnel" ], - "benign": true, - "funnel_radius": 200 - }, { "type": "trap", "id": "tr_downspout_funnel", diff --git a/data/json/uncraft/ammo/10mm.json b/data/json/uncraft/ammo/10mm.json index 9cbd29fed0454..ccd8f575872f5 100644 --- a/data/json/uncraft/ammo/10mm.json +++ b/data/json/uncraft/ammo/10mm.json @@ -2,7 +2,7 @@ { "result": "10mm_fmj", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "10mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/22.json b/data/json/uncraft/ammo/22.json index 36a35659b737a..242bfa02d4b8b 100644 --- a/data/json/uncraft/ammo/22.json +++ b/data/json/uncraft/ammo/22.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 1 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ], [ [ "copper", 1 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -24,7 +24,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -34,7 +34,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "22_casing_new", 1 ] ], [ [ "gunpowder", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/223.json b/data/json/uncraft/ammo/223.json index a1740fb18c3b9..dca5e82256bff 100644 --- a/data/json/uncraft/ammo/223.json +++ b/data/json/uncraft/ammo/223.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ], [ [ "copper", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/270win.json b/data/json/uncraft/ammo/270win.json index b5cbfe387fea7..bf8bec409731e 100644 --- a/data/json/uncraft/ammo/270win.json +++ b/data/json/uncraft/ammo/270win.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 5 ] ], diff --git a/data/json/uncraft/ammo/30-06.json b/data/json/uncraft/ammo/30-06.json index c86eb571960de..a7e680458d406 100644 --- a/data/json/uncraft/ammo/30-06.json +++ b/data/json/uncraft/ammo/30-06.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 6 ] ], @@ -20,7 +20,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "incendiary", 6 ] ], @@ -36,7 +36,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 6 ] ], diff --git a/data/json/uncraft/ammo/300.json b/data/json/uncraft/ammo/300.json index 828093538a649..9e9e09c8a66f7 100644 --- a/data/json/uncraft/ammo/300.json +++ b/data/json/uncraft/ammo/300.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 8 ] ], diff --git a/data/json/uncraft/ammo/300blk.json b/data/json/uncraft/ammo/300blk.json deleted file mode 100644 index 77f4abe541377..0000000000000 --- a/data/json/uncraft/ammo/300blk.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "result": "300blk", - "type": "uncraft", - "skill_used": "gun", - "difficulty": 5, - "time": "5 s", - "qualities": [ { "id": "PULL", "level": 1 } ], - "components": [ - [ [ "lead", 5 ] ], - [ [ "300blk_casing", 1 ] ], - [ [ "smrifle_primer", 1 ] ], - [ [ "gunpowder", 4 ] ], - [ [ "copper", 2 ] ] - ], - "flags": [ "UNCRAFT_SINGLE_CHARGE" ] - } -] diff --git a/data/json/uncraft/ammo/308.json b/data/json/uncraft/ammo/308.json index e01067cfe0081..ff8d64baf1180 100644 --- a/data/json/uncraft/ammo/308.json +++ b/data/json/uncraft/ammo/308.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 6 ] ], diff --git a/data/json/uncraft/ammo/32.json b/data/json/uncraft/ammo/32.json index 5f3b2d4374940..4fb8413c7d042 100644 --- a/data/json/uncraft/ammo/32.json +++ b/data/json/uncraft/ammo/32.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "32_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/357mag.json b/data/json/uncraft/ammo/357mag.json index 41d027ea6190a..f587b02307009 100644 --- a/data/json/uncraft/ammo/357mag.json +++ b/data/json/uncraft/ammo/357mag.json @@ -2,7 +2,7 @@ { "result": "357mag_fmj", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "357mag_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -10,7 +10,7 @@ { "result": "357mag_jhp", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "357mag_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/357sig.json b/data/json/uncraft/ammo/357sig.json index c80a0926a5997..913c90803b63d 100644 --- a/data/json/uncraft/ammo/357sig.json +++ b/data/json/uncraft/ammo/357sig.json @@ -2,7 +2,7 @@ { "result": "357sig_fmj", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "357sig_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -10,7 +10,7 @@ { "result": "357sig_jhp", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "357sig_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/38.json b/data/json/uncraft/ammo/38.json index b51fa23972ec7..d034900d42df2 100644 --- a/data/json/uncraft/ammo/38.json +++ b/data/json/uncraft/ammo/38.json @@ -2,7 +2,7 @@ { "result": "38_fmj", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -10,7 +10,7 @@ { "result": "38_special", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -18,7 +18,7 @@ { "result": "38_super", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "38_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/38super.json b/data/json/uncraft/ammo/38super.json index 7810c99fca71f..d76b4f831346b 100644 --- a/data/json/uncraft/ammo/38super.json +++ b/data/json/uncraft/ammo/38super.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "38super_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/40.json b/data/json/uncraft/ammo/40.json index 6c7265ba44957..240584f56149f 100644 --- a/data/json/uncraft/ammo/40.json +++ b/data/json/uncraft/ammo/40.json @@ -2,7 +2,7 @@ { "result": "40fmj", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -10,7 +10,7 @@ { "result": "40sw", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "40_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/410shot.json b/data/json/uncraft/ammo/410shot.json index f8cd941656d39..a3f888c4e0052 100644 --- a/data/json/uncraft/ammo/410shot.json +++ b/data/json/uncraft/ammo/410shot.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "1 s", + "time": 100, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "410shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "lead", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/44.json b/data/json/uncraft/ammo/44.json index e191b9aae3b48..8fca89f163f86 100644 --- a/data/json/uncraft/ammo/44.json +++ b/data/json/uncraft/ammo/44.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 7 ] ], @@ -20,7 +20,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 10 ] ], [ [ "44_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/45.json b/data/json/uncraft/ammo/45.json index 3b9fbbde76cac..28e8d3d39bdb0 100644 --- a/data/json/uncraft/ammo/45.json +++ b/data/json/uncraft/ammo/45.json @@ -2,7 +2,7 @@ { "result": "45_acp", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -10,7 +10,7 @@ { "result": "45_jhp", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -18,7 +18,7 @@ { "result": "45_super", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "45_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/454.json b/data/json/uncraft/ammo/454.json index bae0e66db6290..9aadc461c0446 100644 --- a/data/json/uncraft/ammo/454.json +++ b/data/json/uncraft/ammo/454.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 20 ] ], diff --git a/data/json/uncraft/ammo/4570.json b/data/json/uncraft/ammo/4570.json index 87629aa32304e..28f25f887e966 100644 --- a/data/json/uncraft/ammo/4570.json +++ b/data/json/uncraft/ammo/4570.json @@ -2,7 +2,7 @@ { "result": "4570_sp", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "copper", 2 ] ], @@ -16,7 +16,7 @@ { "result": "4570_pen", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "copper", 7 ] ], [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 17 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -24,7 +24,7 @@ { "result": "4570_low", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 9 ] ], [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/45colt.json b/data/json/uncraft/ammo/45colt.json index ca3b831d8adfe..2f67622036f70 100644 --- a/data/json/uncraft/ammo/45colt.json +++ b/data/json/uncraft/ammo/45colt.json @@ -2,7 +2,7 @@ { "result": "45colt_jhp", "type": "uncraft", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 5 ] ], [ [ "45colt_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/460.json b/data/json/uncraft/ammo/460.json index c9dac3edbcb7b..1166cac807b01 100644 --- a/data/json/uncraft/ammo/460.json +++ b/data/json/uncraft/ammo/460.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "460_casing", 1 ] ], [ [ "lgpistol_primer", 1 ] ], [ [ "gunpowder", 10 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/46mm.json b/data/json/uncraft/ammo/46mm.json index 540d26c2be90d..af175720d8fa8 100644 --- a/data/json/uncraft/ammo/46mm.json +++ b/data/json/uncraft/ammo/46mm.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "46mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/500.json b/data/json/uncraft/ammo/500.json index b79146ae5ca73..67cf5a9ba064b 100644 --- a/data/json/uncraft/ammo/500.json +++ b/data/json/uncraft/ammo/500.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 24 ] ], diff --git a/data/json/uncraft/ammo/50bmg.json b/data/json/uncraft/ammo/50bmg.json index 8a4b0df1185c2..531146972e632 100644 --- a/data/json/uncraft/ammo/50bmg.json +++ b/data/json/uncraft/ammo/50bmg.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 12 ] ], @@ -21,7 +21,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 12 ] ], @@ -37,7 +37,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "50_casing", 1 ] ], diff --git a/data/json/uncraft/ammo/545.json b/data/json/uncraft/ammo/545.json index 4537e16fcb72b..f54ccecae44ed 100644 --- a/data/json/uncraft/ammo/545.json +++ b/data/json/uncraft/ammo/545.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "545_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 5 ] ], [ [ "copper", 3 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/556.json b/data/json/uncraft/ammo/556.json index 804b80af2f5fd..2a327fd8ee8e1 100644 --- a/data/json/uncraft/ammo/556.json +++ b/data/json/uncraft/ammo/556.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "223_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "copper", 2 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "incendiary", 2 ] ], diff --git a/data/json/uncraft/ammo/57mm.json b/data/json/uncraft/ammo/57mm.json index 01e20020fd831..27de3401554ab 100644 --- a/data/json/uncraft/ammo/57mm.json +++ b/data/json/uncraft/ammo/57mm.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "57mm_casing", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 4 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/5x50.json b/data/json/uncraft/ammo/5x50.json index a3666d230316b..ab22c90e367f7 100644 --- a/data/json/uncraft/ammo/5x50.json +++ b/data/json/uncraft/ammo/5x50.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/700nx.json b/data/json/uncraft/ammo/700nx.json index 052d144a30b0b..41daf44340173 100644 --- a/data/json/uncraft/ammo/700nx.json +++ b/data/json/uncraft/ammo/700nx.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 14 ] ], diff --git a/data/json/uncraft/ammo/762x39.json b/data/json/uncraft/ammo/762x39.json index dff9f0b6bb674..f50b3fca5bf61 100644 --- a/data/json/uncraft/ammo/762x39.json +++ b/data/json/uncraft/ammo/762x39.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 7 ] ], [ [ "copper", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 5 ] ], [ [ "762_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 8 ] ], [ [ "copper", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/ammo/762x51.json b/data/json/uncraft/ammo/762x51.json index ff1acdd9e7b0e..0bda4e337e908 100644 --- a/data/json/uncraft/ammo/762x51.json +++ b/data/json/uncraft/ammo/762x51.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 6 ] ], @@ -20,7 +20,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "incendiary", 6 ] ], diff --git a/data/json/uncraft/ammo/762x54.json b/data/json/uncraft/ammo/762x54.json index 2a6a899ee8f7e..af1afcadb4cb7 100644 --- a/data/json/uncraft/ammo/762x54.json +++ b/data/json/uncraft/ammo/762x54.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 3 ] ], diff --git a/data/json/uncraft/ammo/9x18mm.json b/data/json/uncraft/ammo/9x18mm.json index 870af31ad4661..bef3947b3a268 100644 --- a/data/json/uncraft/ammo/9x18mm.json +++ b/data/json/uncraft/ammo/9x18mm.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 3 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], [ [ "9x18mm_casing", 1 ] ], [ [ "smpistol_primer", 1 ] ], [ [ "gunpowder", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -24,7 +24,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "lead", 2 ] ], diff --git a/data/json/uncraft/ammo/shot.json b/data/json/uncraft/ammo/shot.json index 6d4153075aade..eaee2d6d688a3 100644 --- a/data/json/uncraft/ammo/shot.json +++ b/data/json/uncraft/ammo/shot.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "1 s", + "time": 100, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "lead", 10 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -14,7 +14,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "1 s", + "time": 100, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 3 ] ], [ [ "rubber_slug", 1 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -24,7 +24,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "1 s", + "time": 100, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 3 ] ], [ [ "lead", 10 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -34,7 +34,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "1 s", + "time": 100, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 3 ] ], [ [ "magnesium", 5 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -44,7 +44,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "1 s", + "time": 100, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "combatnail", 10 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] @@ -54,7 +54,7 @@ "result": "shot_he", "skill_used": "gun", "difficulty": 5, - "time": "50 s", + "time": 5000, "//": "A little more carefully...", "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 3 ] ], [ [ "chem_rdx", 1 ] ] ], @@ -65,7 +65,7 @@ "type": "uncraft", "skill_used": "gun", "difficulty": 5, - "time": "1 s", + "time": 100, "qualities": [ { "id": "PULL", "level": 1 } ], "components": [ [ [ "shot_hull", 1 ] ], [ [ "shotgun_primer", 1 ] ], [ [ "gunpowder", 6 ] ], [ [ "lead", 20 ] ] ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] diff --git a/data/json/uncraft/armor/pets_dog.json b/data/json/uncraft/armor/pets_dog.json index eb7bcb2e48a0f..adf50f7d7c791 100644 --- a/data/json/uncraft/armor/pets_dog.json +++ b/data/json/uncraft/armor/pets_dog.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "fabrication", "difficulty": 2, - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "acidchitin_piece", 6 ] ] ] }, @@ -13,7 +13,7 @@ "type": "uncraft", "skill_used": "fabrication", "difficulty": 2, - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "chitin_piece", 6 ] ] ] }, @@ -22,7 +22,7 @@ "type": "uncraft", "skill_used": "fabrication", "difficulty": 3, - "time": "100 s", + "time": 10000, "qualities": [ { "id": "SAW_M_FINE", "level": 1 } ], "components": [ [ [ "link_sheet", 3 ] ], [ [ "leather", 3 ] ], [ [ "chain_link", 70 ] ] ] }, @@ -31,7 +31,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 1, - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "leather", 4 ] ] ] }, @@ -40,7 +40,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 1, - "time": "30 s", + "time": 3000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "leather", 4 ] ], [ [ "bone", 7 ] ] ] }, @@ -49,14 +49,14 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 1, - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "kevlar_plate", 6 ] ] ] }, { "result": "rubber_harness_dog", "type": "uncraft", - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "rag", 5 ] ], [ [ "plastic_chunk", 5 ] ] ] }, @@ -65,7 +65,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 1, - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "alloy_sheet", 6 ] ] ] } diff --git a/data/json/uncraft/armor/storage.json b/data/json/uncraft/armor/storage.json index 229eefdb1068c..4be40b3214d87 100644 --- a/data/json/uncraft/armor/storage.json +++ b/data/json/uncraft/armor/storage.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 1, - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "leather", 5 ] ], [ [ "scrap", 3 ] ] ] }, @@ -13,7 +13,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 1, - "time": "10 s", + "time": 1000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "leather", 6 ] ], [ [ "scrap", 3 ] ] ] } diff --git a/data/json/uncraft/armor/suit.json b/data/json/uncraft/armor/suit.json index 050c2d25f1256..3c103fa7af3bb 100644 --- a/data/json/uncraft/armor/suit.json +++ b/data/json/uncraft/armor/suit.json @@ -4,7 +4,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 3, - "time": "5 m", + "time": 30000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "rag", 33 ] ], [ [ "leather", 35 ] ], [ [ "scrap", 24 ] ], [ [ "kevlar", 48 ] ] ] }, @@ -13,7 +13,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 3, - "time": "150 s", + "time": 15000, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "rag", 23 ] ], [ [ "leather", 25 ] ], [ [ "scrap", 12 ] ], [ [ "kevlar", 24 ] ] ] } diff --git a/data/json/uncraft/cbm/cbm.json b/data/json/uncraft/cbm/cbm.json index 09b0a4058ddb4..ef59e8faba96d 100644 --- a/data/json/uncraft/cbm/cbm.json +++ b/data/json/uncraft/cbm/cbm.json @@ -4,7 +4,7 @@ "result": "bio_power_storage", "skill_used": "electronics", "difficulty": 6, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 6 ] ], [ [ "amplifier", 4 ] ], [ [ "light_battery_cell", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -14,7 +14,7 @@ "result": "bio_power_storage_mkII", "skill_used": "electronics", "difficulty": 10, - "time": "700 s", + "time": 70000, "using": [ [ "soldering_standard", 32 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ @@ -30,7 +30,7 @@ "result": "bio_solar", "skill_used": "electronics", "difficulty": 7, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 4 ] ], [ [ "amplifier", 2 ] ], [ [ "solar_cell", 4 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -40,7 +40,7 @@ "result": "bio_batteries", "skill_used": "electronics", "difficulty": 7, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 2 ] ], [ [ "amplifier", 2 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -50,7 +50,7 @@ "result": "bio_reactor", "skill_used": "electronics", "difficulty": 10, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 120 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "minireactor", 1 ] ], [ [ "metal_tank_little", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -60,7 +60,7 @@ "result": "bio_plut_filter", "skill_used": "electronics", "difficulty": 10, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 80 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "tools": [ [ [ "laptop", -1 ], [ "control_laptop", -1 ] ] ], @@ -71,7 +71,7 @@ "result": "bio_reactor_upgrade", "skill_used": "electronics", "difficulty": 10, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 120 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "tools": [ [ [ "laptop", -1 ], [ "control_laptop", -1 ] ] ], @@ -82,7 +82,7 @@ "result": "bio_advreactor", "skill_used": "electronics", "difficulty": 10, - "time": "50 s", + "time": 5000, "using": [ [ "soldering_standard", 10 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "bio_reactor", 1 ] ], [ [ "bio_reactor_upgrade", 1 ] ] ] @@ -92,7 +92,7 @@ "result": "bio_ups", "skill_used": "electronics", "difficulty": 6, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 2 ] ], [ [ "recharge_station", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -102,7 +102,7 @@ "result": "bio_power_armor_interface", "skill_used": "electronics", "difficulty": 6, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 2 ] ], [ [ "amplifier", 2 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -112,7 +112,7 @@ "result": "bio_power_armor_interface_mkII", "skill_used": "electronics", "difficulty": 9, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 5 ] ], [ [ "amplifier", 3 ] ], [ [ "plut_cell", 5 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -122,7 +122,7 @@ "result": "bio_evap", "skill_used": "electronics", "difficulty": 7, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 2 ] ], [ [ "hose", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -132,7 +132,7 @@ "result": "bio_flashlight", "skill_used": "electronics", "difficulty": 6, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 1 ] ], [ [ "amplifier", 1 ] ], [ [ "lens", 2 ] ], [ [ "burnt_out_bionic", 1 ] ] ] @@ -142,7 +142,7 @@ "result": "bio_water_extractor", "skill_used": "electronics", "difficulty": 7, - "time": "500 s", + "time": 50000, "using": [ [ "soldering_standard", 20 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ [ [ "power_supply", 2 ] ], [ [ "element", 1 ] ], [ [ "hose", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] diff --git a/data/json/uncraft/classes/ammo.json b/data/json/uncraft/classes/ammo.json index 50f290cfd2ed3..f95aa8dee01b2 100644 --- a/data/json/uncraft/classes/ammo.json +++ b/data/json/uncraft/classes/ammo.json @@ -3,7 +3,7 @@ "abstract": "ammo_cartridge", "type": "uncraft", "//": "Disassemble a single ammo cartridge", - "time": "5 s", + "time": 500, "qualities": [ { "id": "PULL", "level": 1 } ], "flags": [ "UNCRAFT_SINGLE_CHARGE" ] } diff --git a/data/json/uncraft/food/sourdough.json b/data/json/uncraft/food/sourdough.json deleted file mode 100644 index 0990103a783a2..0000000000000 --- a/data/json/uncraft/food/sourdough.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "type": "uncraft", - "result": "sourdough_split", - "time": "5 s", - "components": [ [ [ "jar_glass", 1 ] ] ] - }, - { - "type": "uncraft", - "result": "sourdough_young", - "time": "5 s", - "components": [ [ [ "jar_glass", 1 ] ] ] - } -] diff --git a/data/json/uncraft/generic.json b/data/json/uncraft/generic.json index c4dd4d3a29134..3f2eb9decc47a 100644 --- a/data/json/uncraft/generic.json +++ b/data/json/uncraft/generic.json @@ -2,7 +2,7 @@ { "result": "basket_laundry", "type": "uncraft", - "time": "30 s", + "time": 3000, "components": [ [ [ "plastic_chunk", 10 ] ] ] }, { @@ -16,16 +16,16 @@ "result": "handflare", "skill_used": "fabrication", "difficulty": 1, - "time": "20 s", + "time": 2000, "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "incendiary", 75 ] ] ] + "components": [ [ [ "incendiary", 25 ] ] ] }, { "result": "sheet_metal", "type": "uncraft", "skill_used": "fabrication", "difficulty": 1, - "time": "150 s", + "time": 15000, "qualities": [ { "id": "SAW_M", "level": 2 } ], "components": [ [ [ "sheet_metal_small", 24 ] ] ] }, @@ -34,7 +34,7 @@ "type": "uncraft", "skill_used": "fabrication", "difficulty": 1, - "time": "12 s", + "time": 1200, "qualities": [ { "id": "SAW_M", "level": 2 } ], "components": [ [ [ "scrap", 5 ] ] ] }, @@ -52,7 +52,7 @@ "type": "uncraft", "skill_used": "tailor", "difficulty": 1, - "time": "22 s", + "time": 2200, "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "rag", 60 ] ], [ [ "sheet", 4 ] ], [ [ "scrap", 20 ] ], [ [ "wire", 20 ] ] ] }, @@ -60,21 +60,7 @@ "result": "character_sheet", "type": "uncraft", "skill_used": "fabrication", - "time": "1 s", + "time": 100, "components": [ [ [ "paper", 3 ] ] ] - }, - { - "result": "sandbag", - "type": "uncraft", - "skill_used": "fabrication", - "time": "10 s", - "components": [ [ [ "bag_canvas", 1 ] ], [ [ "material_sand", 60 ] ] ] - }, - { - "result": "earthbag", - "type": "uncraft", - "skill_used": "fabrication", - "time": "10 s", - "components": [ [ [ "bag_canvas", 1 ] ], [ [ "material_soil", 3 ] ] ] } ] diff --git a/data/json/uncraft/vehicle/alternator.json b/data/json/uncraft/vehicle/alternator.json index c873058a27ff7..81c13b71d9ad7 100644 --- a/data/json/uncraft/vehicle/alternator.json +++ b/data/json/uncraft/vehicle/alternator.json @@ -4,7 +4,7 @@ "result": "alternator_car", "skill_used": "mechanics", "difficulty": 3, - "time": "5 m", + "time": 30000, "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ], "using": [ [ "soldering_standard", 40 ], [ "welding_standard", 10 ] ], "components": [ [ [ "power_supply", 1 ] ], [ [ "cable", 40 ] ], [ [ "bearing", 20 ] ], [ [ "scrap", 2 ] ], [ [ "steel_chunk", 2 ] ] ] @@ -14,7 +14,7 @@ "result": "alternator_motorbike", "skill_used": "mechanics", "difficulty": 2, - "time": "100 s", + "time": 10000, "qualities": [ { "id": "SCREW", "level": 1 } ], "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ], "components": [ [ [ "power_supply", 1 ] ], [ [ "cable", 20 ] ], [ [ "bearing", 5 ] ], [ [ "scrap", 2 ] ] ] @@ -24,7 +24,7 @@ "result": "alternator_truck", "skill_used": "mechanics", "difficulty": 3, - "time": "500 s", + "time": 30000, "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ], "using": [ [ "soldering_standard", 40 ], [ "welding_standard", 10 ] ], "components": [ [ [ "power_supply", 1 ] ], [ [ "cable", 60 ] ], [ [ "bearing", 20 ] ], [ [ "scrap", 3 ] ], [ [ "steel_chunk", 3 ] ] ] @@ -34,7 +34,7 @@ "result": "generator_7500w", "skill_used": "mechanics", "difficulty": 4, - "time": "40 m", + "time": 240000, "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M", "level": 1 } ], "tools": [ [ [ "soldering_iron", 80 ], [ "toolset", 80 ], [ "oxy_torch", 40 ] ] ], "components": [ diff --git a/data/json/uncraft/weapon/explosive.json b/data/json/uncraft/weapon/explosive.json index 5df941dd4e2bb..9cda101e0d70a 100644 --- a/data/json/uncraft/weapon/explosive.json +++ b/data/json/uncraft/weapon/explosive.json @@ -4,7 +4,7 @@ "result": "grenade", "skill_used": "fabrication", "difficulty": 2, - "time": "50 s", + "time": 5000, "qualities": [ { "id": "SCREW", "level": 1 } ], "//": "No trinitrotoluene in the game at present, but Composition B includes RDX as well.", "components": [ [ [ "pilot_light", 1 ] ], [ [ "canister_empty", 1 ] ], [ [ "chem_rdx", 2 ] ] ] @@ -14,8 +14,8 @@ "result": "grenade_inc", "skill_used": "fabrication", "difficulty": 2, - "time": "50 s", + "time": 5000, "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ [ [ "pilot_light", 1 ] ], [ [ "canister_empty", 1 ] ], [ [ "incendiary", 150 ] ] ] + "components": [ [ [ "pilot_light", 1 ] ], [ [ "canister_empty", 1 ] ], [ [ "incendiary", 50 ] ] ] } ] diff --git a/data/json/uncraft/weapon/ranged.json b/data/json/uncraft/weapon/ranged.json index 9a4626ae3e29b..3d543e925083d 100644 --- a/data/json/uncraft/weapon/ranged.json +++ b/data/json/uncraft/weapon/ranged.json @@ -2,13 +2,13 @@ { "type": "uncraft", "result": "compositebow", - "time": "30 s", + "time": 3000, "components": [ [ [ "splinter", 2 ] ], [ [ "string_36", 2 ] ] ] }, { "type": "uncraft", "result": "compositecrossbow", - "time": "30 s", + "time": 3000, "components": [ [ [ "splinter", 7 ] ], [ [ "string_36", 1 ] ] ] } ] diff --git a/data/json/vehicleparts/alternator.json b/data/json/vehicleparts/alternator.json index 1a9b6926c1c96..0a229958a8e48 100644 --- a/data/json/vehicleparts/alternator.json +++ b/data/json/vehicleparts/alternator.json @@ -27,8 +27,7 @@ { "item": "steel_chunk", "count": [ 2, 5 ] }, { "item": "scrap", "count": [ 2, 5 ] } ], - "extend": { "flags": [ "FOLDABLE", "TOOL_SCREWDRIVER" ] }, - "damage_reduction": { "all": 12 } + "extend": { "flags": [ "FOLDABLE", "TOOL_SCREWDRIVER" ] } }, { "id": "alternator_motorbike", @@ -48,8 +47,7 @@ { "item": "steel_chunk", "count": [ 2, 5 ] }, { "item": "scrap", "count": [ 2, 5 ] } ], - "extend": { "flags": [ "FOLDABLE", "TOOL_SCREWDRIVER" ] }, - "damage_reduction": { "all": 12 } + "extend": { "flags": [ "FOLDABLE", "TOOL_SCREWDRIVER" ] } }, { "id": "alternator_car", @@ -68,8 +66,7 @@ { "item": "steel_chunk", "count": [ 3, 6 ] }, { "item": "scrap", "count": [ 3, 6 ] } ], - "extend": { "flags": [ "TOOL_WRENCH" ] }, - "damage_reduction": { "all": 20 } + "extend": { "flags": [ "TOOL_WRENCH" ] } }, { "id": "alternator_truck", @@ -88,8 +85,7 @@ { "item": "steel_chunk", "count": [ 4, 7 ] }, { "item": "scrap", "count": [ 4, 7 ] } ], - "extend": { "flags": [ "TOOL_WRENCH" ] }, - "damage_reduction": { "all": 20 } + "extend": { "flags": [ "TOOL_WRENCH" ] } }, { "id": "generator_7500w", @@ -107,7 +103,6 @@ { "item": "steel_lump", "count": [ 10, 18 ] }, { "item": "steel_chunk", "count": [ 10, 18 ] }, { "item": "scrap", "count": [ 10, 18 ] } - ], - "damage_reduction": { "all": 25 } + ] } ] diff --git a/data/json/vehicleparts/armor.json b/data/json/vehicleparts/armor.json index 1fb9b773adb11..057562ad531bd 100644 --- a/data/json/vehicleparts/armor.json +++ b/data/json/vehicleparts/armor.json @@ -14,8 +14,7 @@ "folded_volume": 4, "description": "Improvised armor plate. Will partially protect other components on the same frame from damage.", "breaks_into": [ { "item": "rebar", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 4, 8 ] } ], - "flags": [ "ARMOR", "FOLDABLE" ], - "damage_reduction": { "all": 10, "cut": 45, "stab": 45 } + "flags": [ "ARMOR", "FOLDABLE" ] }, { "id": "spring_plate", @@ -28,10 +27,9 @@ "color": "dark_gray", "broken_color": "dark_gray", "difficulty": 4, - "durability": 340, + "durability": 1500, "description": "A system of springs and pads, intended to cushion the effects of collisions on the interior of your vehicle.", "breaks_into": [ { "item": "scrap", "count": [ 1, 5 ] }, { "item": "spring", "count": [ 0, 4 ] } ], - "flags": [ "ARMOR" ], - "damage_reduction": { "all": 15, "bash": 100 } + "flags": [ "ARMOR" ] } ] diff --git a/data/json/vehicleparts/boards.json b/data/json/vehicleparts/boards.json index d5a35d437daae..973882431a7b4 100644 --- a/data/json/vehicleparts/boards.json +++ b/data/json/vehicleparts/boards.json @@ -6,11 +6,10 @@ "item": "sheet_metal", "location": "center", "difficulty": 1, - "durability": 120, + "durability": 240, "description": "A metal wall. Keeps zombies outside the vehicle and prevents people from seeing through it.", "breaks_into": "ig_vp_sheet_metal", - "flags": [ "OPAQUE", "OBSTACLE", "FULL_BOARD", "NO_ROOF_NEEDED" ], - "damage_reduction": { "all": 28 } + "flags": [ "OPAQUE", "OBSTACLE", "FULL_BOARD", "NO_ROOF_NEEDED" ] }, { "abstract": "clothboard", @@ -44,8 +43,7 @@ "description": "A half-height metal wall. Keeps zombies outside the vehicle but allows people to see over it.", "proportional": { "durability": 0.8 }, "extend": { "flags": [ "HALF_BOARD" ] }, - "delete": { "flags": [ "OPAQUE", "FULL_BOARD" ] }, - "damage_reduction": { "all": 28 } + "delete": { "flags": [ "OPAQUE", "FULL_BOARD" ] } }, { "abstract": "stowboard", @@ -57,11 +55,10 @@ "broken_symbol": "#", "broken_color": "light_gray", "difficulty": 2, - "durability": 160, + "durability": 200, "description": "A metal wall with a storage locker. Keeps zombies outside the vehicle and prevents people from seeing through it.", "size": 250, - "flags": [ "OBSTACLE", "OPAQUE", "CARGO", "COVERED", "FULL_BOARD", "NO_ROOF_NEEDED" ], - "damage_reduction": { "all": 34 } + "flags": [ "OBSTACLE", "OPAQUE", "CARGO", "COVERED", "FULL_BOARD", "NO_ROOF_NEEDED" ] }, { "abstract": "hdstowboard", @@ -72,8 +69,7 @@ "color": "brown", "broken_color": "dark_gray", "proportional": { "durability": 4.15, "size": 0.76 }, - "flags": [ "OBSTACLE", "OPAQUE", "CARGO", "COVERED", "FULL_BOARD" ], - "damage_reduction": { "all": 72, "cut": 80, "stab": 80 } + "flags": [ "OBSTACLE", "OPAQUE", "CARGO", "COVERED", "FULL_BOARD" ] }, { "abstract": "hdboard", @@ -83,11 +79,10 @@ "location": "center", "color": "dark_gray", "difficulty": 1, - "durability": 450, + "durability": 1000, "description": "A strong metal wall. Keeps zombies outside the vehicle and prevents people from seeing through it.", "breaks_into": "ig_vp_steel_plate", - "flags": [ "OPAQUE", "OBSTACLE", "FULL_BOARD", "NO_ROOF_NEEDED" ], - "damage_reduction": { "all": 75, "cut": 80, "stab": 80 } + "flags": [ "OPAQUE", "OBSTACLE", "FULL_BOARD", "NO_ROOF_NEEDED" ] }, { "abstract": "hdhalfboard", @@ -97,8 +92,7 @@ "description": "A half-height strong metal wall. Keeps zombies outside the vehicle but allows people to see over it.", "proportional": { "durability": 0.8 }, "extend": { "flags": [ "HALF_BOARD" ] }, - "delete": { "flags": [ "OPAQUE", "FULL_BOARD" ] }, - "damage_reduction": { "all": 75, "cut": 80, "stab": 80 } + "delete": { "flags": [ "OPAQUE", "FULL_BOARD" ] } }, { "abstract": "woodboard", @@ -109,11 +103,10 @@ "color": "brown", "broken_color": "brown", "difficulty": 1, - "durability": 100, + "durability": 300, "description": "A wooden wall. Keeps zombies outside the vehicle and prevents people from seeing through it.", "breaks_into": "ig_vp_wood_plate", - "flags": [ "OPAQUE", "OBSTACLE", "NAILABLE", "FULL_BOARD", "NO_ROOF_NEEDED" ], - "damage_reduction": { "all": 16, "cut": 8, "stab": 8 } + "flags": [ "OPAQUE", "OBSTACLE", "NAILABLE", "FULL_BOARD", "NO_ROOF_NEEDED" ] }, { "abstract": "woodhalfboard", @@ -123,8 +116,7 @@ "description": "A half-height wooden wall. Keeps zombies outside the vehicle but allows people to see over it.", "proportional": { "durability": 0.8 }, "extend": { "flags": [ "HALF_BOARD" ] }, - "delete": { "flags": [ "OPAQUE", "FULL_BOARD" ] }, - "damage_reduction": { "all": 16, "cut": 8, "stab": 8 } + "delete": { "flags": [ "OPAQUE", "FULL_BOARD" ] } }, { "abstract": "xlhalfboard", @@ -133,11 +125,10 @@ "item": "pipe", "location": "center", "difficulty": 1, - "durability": 96, + "durability": 100, "description": "A half-height thin metal wall. Keeps zombies outside the vehicle but allows people to see over it.", "breaks_into": [ { "item": "pipe", "prob": 50 } ], - "flags": [ "OBSTACLE", "HALF_BOARD", "NO_ROOF_NEEDED" ], - "damage_reduction": { "all": 8 } + "flags": [ "OBSTACLE", "HALF_BOARD", "NO_ROOF_NEEDED" ] }, { "id": "halfboard_cover", diff --git a/data/json/vehicleparts/cargo.json b/data/json/vehicleparts/cargo.json index ef2b391470c69..879e552c49ea2 100644 --- a/data/json/vehicleparts/cargo.json +++ b/data/json/vehicleparts/cargo.json @@ -14,8 +14,7 @@ "description": "Storage space, mounted outside your vehicle's armor and vulnerable to damage.", "size": 200, "damage_modifier": 60, - "flags": [ "UNMOUNT_ON_DAMAGE", "CARGO", "PROTRUSION" ], - "damage_reduction": { "all": 6 } + "flags": [ "UNMOUNT_ON_DAMAGE", "CARGO", "PROTRUSION" ] }, { "id": "basketsm_external", @@ -32,8 +31,7 @@ "description": "Storage space, mounted outside your vehicle's armor and vulnerable to damage.", "size": 60, "damage_modifier": 60, - "flags": [ "UNMOUNT_ON_DAMAGE", "CARGO", "PROTRUSION" ], - "damage_reduction": { "all": 6 } + "flags": [ "UNMOUNT_ON_DAMAGE", "CARGO", "PROTRUSION" ] }, { "id": "cargo_space_external", @@ -50,8 +48,7 @@ "description": "Storage space, mounted outside your vehicle's armor and vulnerable to damage.", "size": 1000, "breaks_into": [ ], - "flags": [ "UNMOUNT_ON_DAMAGE", "CARGO", "PROTRUSION", "COVERED", "BOARDABLE" ], - "damage_reduction": { "all": 26 } + "flags": [ "UNMOUNT_ON_DAMAGE", "CARGO", "PROTRUSION", "COVERED", "BOARDABLE" ] }, { "id": "bike_rack", @@ -71,8 +68,7 @@ { "item": "steel_chunk", "count": [ 6, 8 ] }, { "item": "scrap", "count": [ 6, 8 ] } ], - "flags": [ "BIKE_RACK_VEH", "MULTISQUARE", "TOOL_WRENCH" ], - "damage_reduction": { "all": 10 } + "flags": [ "BIKE_RACK_VEH", "MULTISQUARE", "TOOL_WRENCH" ] }, { "id": "mounted_spare_tire", @@ -89,7 +85,6 @@ "description": "Spare tire stored on an external carrier rig.", "size": 60, "damage_modifier": 60, - "flags": [ "UNMOUNT_ON_DAMAGE", "PROTRUSION", "TOOL_WRENCH" ], - "damage_reduction": { "all": 10 } + "flags": [ "UNMOUNT_ON_DAMAGE", "PROTRUSION", "TOOL_WRENCH" ] } ] diff --git a/data/json/vehicleparts/combustion.json b/data/json/vehicleparts/combustion.json index 196a3d31f2432..29cb97d792ed5 100644 --- a/data/json/vehicleparts/combustion.json +++ b/data/json/vehicleparts/combustion.json @@ -60,8 +60,7 @@ { "item": "steel_lump", "count": [ 30, 40 ] }, { "item": "steel_chunk", "count": [ 30, 40 ] }, { "item": "scrap", "count": [ 30, 40 ] } - ], - "damage_reduction": { "all": 100 } + ] }, { "id": "diesel_engine_v6", @@ -77,8 +76,7 @@ { "item": "steel_lump", "count": [ 30, 40 ] }, { "item": "steel_chunk", "count": [ 30, 40 ] }, { "item": "scrap", "count": [ 30, 40 ] } - ], - "damage_reduction": { "all": 100 } + ] }, { "id": "diesel_engine_v8", @@ -94,8 +92,7 @@ { "item": "steel_lump", "count": [ 30, 40 ] }, { "item": "steel_chunk", "count": [ 30, 40 ] }, { "item": "scrap", "count": [ 30, 40 ] } - ], - "damage_reduction": { "all": 100 } + ] }, { "id": "engine_1cyl", @@ -114,8 +111,7 @@ { "item": "steel_chunk", "count": [ 5, 10 ] }, { "item": "scrap", "count": [ 5, 10 ] } ], - "extend": { "flags": [ "FOLDABLE" ] }, - "damage_reduction": { "all": 40 } + "extend": { "flags": [ "FOLDABLE" ] } }, { "id": "engine_1cyl_large", @@ -134,8 +130,7 @@ { "item": "steel_chunk", "count": [ 6, 12 ] }, { "item": "scrap", "count": [ 6, 12 ] } ], - "extend": { "flags": [ "FOLDABLE" ] }, - "damage_reduction": { "all": 40 } + "extend": { "flags": [ "FOLDABLE" ] } }, { "id": "engine_1cyl_small", @@ -155,8 +150,7 @@ { "item": "steel_chunk", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 2, 4 ] } ], - "extend": { "flags": [ "FOLDABLE" ] }, - "damage_reduction": { "all": 40 } + "extend": { "flags": [ "FOLDABLE" ] } }, { "id": "engine_inline4", @@ -172,8 +166,7 @@ { "item": "steel_lump", "count": [ 20, 30 ] }, { "item": "steel_chunk", "count": [ 20, 30 ] }, { "item": "scrap", "count": [ 20, 30 ] } - ], - "damage_reduction": { "all": 50 } + ] }, { "id": "engine_v12", @@ -189,8 +182,7 @@ { "item": "steel_lump", "count": [ 45, 58 ] }, { "item": "steel_chunk", "count": [ 45, 58 ] }, { "item": "scrap", "count": [ 45, 58 ] } - ], - "damage_reduction": { "all": 110 } + ] }, { "id": "diesel_engine_v12", @@ -206,8 +198,7 @@ { "item": "steel_lump", "count": [ 45, 58 ] }, { "item": "steel_chunk", "count": [ 45, 58 ] }, { "item": "scrap", "count": [ 45, 58 ] } - ], - "damage_reduction": { "all": 110 } + ] }, { "id": "engine_v6", @@ -223,8 +214,7 @@ { "item": "steel_lump", "count": [ 30, 40 ] }, { "item": "steel_chunk", "count": [ 30, 40 ] }, { "item": "scrap", "count": [ 30, 40 ] } - ], - "damage_reduction": { "all": 100 } + ] }, { "id": "engine_v8", @@ -240,8 +230,7 @@ { "item": "steel_lump", "count": [ 40, 50 ] }, { "item": "steel_chunk", "count": [ 40, 50 ] }, { "item": "scrap", "count": [ 40, 50 ] } - ], - "damage_reduction": { "all": 100 } + ] }, { "id": "engine_vtwin", @@ -259,8 +248,7 @@ { "item": "steel_chunk", "count": [ 10, 20 ] }, { "item": "scrap", "count": [ 10, 20 ] } ], - "extend": { "flags": [ "FOLDABLE" ] }, - "damage_reduction": { "all": 60 } + "extend": { "flags": [ "FOLDABLE" ] } }, { "abstract": "steam_engine", @@ -275,8 +263,7 @@ "backfire_threshold": 0.7, "backfire_freq": 10, "noise_factor": 20, - "description": "A closed cycle, external combustion steam engine. Burns coal or charcoal from a bunker in the vehicle to produce steam.", - "damage_reduction": { "all": 75 } + "description": "A closed cycle, external combustion steam engine. Burns coal or charcoal from a bunker in the vehicle to produce steam." }, { "id": "engine_steam_makeshift", @@ -293,8 +280,7 @@ { "item": "steel_chunk", "count": [ 30, 60 ] }, { "item": "scrap", "count": [ 30, 60 ] }, { "item": "water", "count": [ 50, 120 ] } - ], - "damage_reduction": { "all": 40 } + ] }, { "id": "engine_steam_small", @@ -328,8 +314,7 @@ { "item": "steel_chunk", "count": [ 30, 60 ] }, { "item": "scrap", "count": [ 30, 60 ] }, { "item": "water", "count": [ 50, 120 ] } - ], - "damage_reduction": { "all": 50 } + ] }, { "id": "engine_turbine_small", @@ -346,8 +331,7 @@ { "item": "steel_lump", "count": [ 45, 58 ] }, { "item": "steel_chunk", "count": [ 45, 58 ] }, { "item": "scrap", "count": [ 45, 58 ] } - ], - "damage_reduction": { "all": 60 } + ] }, { "id": "engine_turbine_medium", @@ -364,8 +348,7 @@ { "item": "steel_lump", "count": [ 50, 65 ] }, { "item": "steel_chunk", "count": [ 50, 65 ] }, { "item": "scrap", "count": [ 50, 65 ] } - ], - "damage_reduction": { "all": 65 } + ] }, { "id": "engine_turbine_large", @@ -382,7 +365,6 @@ { "item": "steel_lump", "count": [ 100, 120 ] }, { "item": "steel_chunk", "count": [ 100, 120 ] }, { "item": "scrap", "count": [ 100, 120 ] } - ], - "damage_reduction": { "all": 70 } + ] } ] diff --git a/data/json/vehicleparts/engineering.json b/data/json/vehicleparts/engineering.json index 2561ececc4994..c74821a2fa652 100644 --- a/data/json/vehicleparts/engineering.json +++ b/data/json/vehicleparts/engineering.json @@ -14,8 +14,7 @@ "description": "A rigid steel boom crane. If it is in your line of sight and within two tiles of another vehicle, you will automatically use it when you want jack up the other vehicle to change the its wheels. To use it to lift a heavy component like an engine that you are installing or removing, the crane must have line of sight to where it is going and it must be within four tiles of it.", "breaks_into": [ { "item": "pipe", "count": [ 8, 32 ] }, { "item": "scrap", "count": [ 8, 24 ] } ], "qualities": [ [ "LIFT", 40 ], [ "JACK", 40 ] ], - "flags": [ "TOOL_WRENCH", "PROTRUSION" ], - "damage_reduction": { "all": 48 } + "flags": [ "TOOL_WRENCH", "PROTRUSION" ] }, { "id": "crane_medium_internal", @@ -33,8 +32,7 @@ "description": "A rigid steel boom crane. If it is in your line of sight and within two tiles of another vehicle, you will automatically use it when you want jack up the other vehicle to change the its wheels. To use it to lift a heavy component like an engine that you are installing or removing, the crane must have line of sight to where it is going and it must be within four tiles of it.", "breaks_into": [ { "item": "pipe", "count": [ 8, 32 ] }, { "item": "scrap", "count": [ 8, 24 ] } ], "qualities": [ [ "LIFT", 40 ], [ "JACK", 40 ] ], - "flags": [ "TOOL_WRENCH", "OBSTACLE" ], - "damage_reduction": { "all": 48 } + "flags": [ "TOOL_WRENCH", "OBSTACLE" ] }, { "id": "crane_small", @@ -52,8 +50,7 @@ "folded_volume": 12, "breaks_into": [ { "item": "pipe", "count": [ 2, 8 ] }, { "item": "scrap", "count": [ 2, 6 ] } ], "qualities": [ [ "LIFT", 7 ], [ "JACK", 7 ] ], - "flags": [ "TOOL_WRENCH", "PROTRUSION", "FOLDABLE" ], - "damage_reduction": { "all": 42 } + "flags": [ "TOOL_WRENCH", "PROTRUSION", "FOLDABLE" ] }, { "id": "crane_tiny", @@ -71,8 +68,7 @@ "folded_volume": 12, "breaks_into": [ { "item": "pipe", "count": [ 1, 4 ] }, { "item": "scrap", "count": [ 2, 6 ] } ], "qualities": [ [ "LIFT", 1 ], [ "JACK", 1 ] ], - "flags": [ "TOOL_WRENCH", "PROTRUSION", "FOLDABLE" ], - "damage_reduction": { "all": 40 } + "flags": [ "TOOL_WRENCH", "PROTRUSION", "FOLDABLE" ] }, { "id": "forklift_fork", @@ -95,8 +91,7 @@ { "item": "scrap", "count": [ 4, 6 ] } ], "qualities": [ [ "LIFT", 2 ], [ "JACK", 6 ] ], - "flags": [ "CARGO", "PROTRUSION" ], - "damage_reduction": { "all": 42 } + "flags": [ "CARGO", "PROTRUSION" ] }, { "id": "rockwheel", @@ -121,8 +116,7 @@ { "item": "scrap", "count": [ 4, 6 ] } ], "transform_terrain": { "pre_flags": [ "DIGGABLE" ], "post_terrain": "t_pit_shallow" }, - "flags": [ "FOLDABLE", "PROTRUSION", "EXTRA_DRAG", "ROCKWHEEL", "TRANSFORM_TERRAIN" ], - "damage_reduction": { "all": 132 } + "flags": [ "FOLDABLE", "PROTRUSION", "EXTRA_DRAG", "ROCKWHEEL", "TRANSFORM_TERRAIN" ] }, { "type": "vehicle_part", @@ -144,8 +138,7 @@ { "item": "jack", "count": [ 1, 1 ] } ], "qualities": [ [ "SELF_JACK", 17 ] ], - "flags": [ "PROTRUSION", "SELF_JACK" ], - "damage_reduction": { "all": 36 } + "flags": [ "PROTRUSION", "SELF_JACK" ] }, { "type": "vehicle_part", @@ -161,7 +154,6 @@ "description": "A kickstand to keep the bike from falling over. You could use this to lean it forward or backward to change a tire.", "breaks_into": [ { "item": "pipe", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ], "qualities": [ [ "SELF_JACK", 1 ] ], - "flags": [ "SELF_JACK" ], - "damage_reduction": { "all": 5 } + "flags": [ "SELF_JACK" ] } ] diff --git a/data/json/vehicleparts/faults.json b/data/json/vehicleparts/faults.json index 22372da7d7cd2..705ec3181da16 100644 --- a/data/json/vehicleparts/faults.json +++ b/data/json/vehicleparts/faults.json @@ -4,7 +4,7 @@ "type": "fault", "name": "drive belt", "description": "Required for operation of an attached alternator.", - "time": "5 m", + "time": 30000, "skills": [ [ "mechanics", 2 ] ], "requirements": { "qualities": [ { "id": "WRENCH", "level": 1 } ], @@ -16,7 +16,7 @@ "type": "fault", "name": "glow plugs", "description": "Help when starting an engine in low ambient temperatures.", - "time": "40 m", + "time": 240000, "skills": [ [ "mechanics", 4 ] ], "requirements": { "qualities": [ { "id": "WRENCH_FINE", "level": 1 } ], "components": [ [ [ "glowplug", 1 ] ] ] } }, @@ -25,7 +25,7 @@ "type": "fault", "name": "immobiliser", "description": "Prevents starting of the vehicle without the appropriate key.", - "time": "5 m", + "time": 30000, "skills": [ [ "mechanics", 2 ], [ "electronics", 5 ] ], "requirements": { "qualities": [ { "id": "SCREW_FINE", "level": 1 } ] } }, @@ -34,7 +34,7 @@ "type": "fault", "name": "diesel pump", "description": "Required to pump and pressurize diesel from a vehicles tank.", - "time": "40 m", + "time": 240000, "skills": [ [ "mechanics", 4 ] ], "requirements": { "qualities": [ { "id": "WRENCH_FINE", "level": 1 } ], "components": [ [ [ "pump_complex", 1 ] ] ] } }, @@ -43,7 +43,7 @@ "type": "fault", "name": "air filter", "description": "An expired filter reduces fuel efficiency and increases smoke production.", - "time": "5 m", + "time": 30000, "skills": [ [ "mechanics", 1 ] ], "requirements": { "qualities": [ { "id": "SCREW", "level": 1 } ], @@ -55,7 +55,7 @@ "type": "fault", "name": "fuel filter", "description": "An expired filter reduces performance and increases the chance of backfires.", - "time": "5 m", + "time": 30000, "skills": [ [ "mechanics", 1 ] ], "requirements": { "qualities": [ { "id": "SCREW", "level": 1 } ], @@ -67,7 +67,7 @@ "type": "fault", "name": "fuel pump", "description": "Required to pump gasoline from a vehicles tank.", - "time": "40 m", + "time": 240000, "skills": [ [ "mechanics", 4 ] ], "requirements": { "qualities": [ { "id": "WRENCH_FINE", "level": 1 } ], "components": [ [ [ "well_pump", 1 ] ] ] } }, @@ -76,7 +76,7 @@ "type": "fault", "name": "water pump", "description": "Required to pump water to an external radiator or heatsink.", - "time": "20 m", + "time": 120000, "skills": [ [ "mechanics", 4 ] ], "requirements": { "qualities": [ { "id": "WRENCH_FINE", "level": 1 } ], "components": [ [ [ "well_pump", 1 ] ] ] } }, @@ -85,7 +85,7 @@ "type": "fault", "name": "starter motor", "description": "Required to initially start the engine.", - "time": "10 m", + "time": 60000, "skills": [ [ "mechanics", 3 ] ], "requirements": { "qualities": [ { "id": "WRENCH_FINE", "level": 1 } ], "components": [ [ [ "motor_small", 1 ] ] ] } } diff --git a/data/json/vehicleparts/frames.json b/data/json/vehicleparts/frames.json index 6e0b3b2f2ebce..acc487071fa08 100644 --- a/data/json/vehicleparts/frames.json +++ b/data/json/vehicleparts/frames.json @@ -11,8 +11,7 @@ "description": "A light metal framework, designed to fold. Other vehicle components can be mounted on it. If all the frames and components of a vehicle are foldable, the vehicle can be folding into a small package and picked up as a normal item.", "folded_volume": 10, "breaks_into": [ { "item": "steel_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "count": [ 1, 2 ] } ], - "flags": [ "INITIAL_PART", "MOUNTABLE", "FOLDABLE" ], - "damage_reduction": { "all": 8 } + "flags": [ "INITIAL_PART", "MOUNTABLE", "FOLDABLE" ] }, { "id": "folding_wooden_frame", @@ -28,8 +27,7 @@ "description": "A light wooden framework, designed to fold. Other vehicle components can be mounted on it. If all the frames and components of a vehicle are foldable, the vehicle can be folding into a small package and picked up as a normal item.", "folded_volume": 15, "breaks_into": [ { "item": "splinter", "count": [ 0, 6 ] }, { "item": "nail", "charges": [ 1, 15 ] } ], - "flags": [ "INITIAL_PART", "MOUNTABLE", "FOLDABLE", "NAILABLE" ], - "damage_reduction": { "all": 12 } + "flags": [ "INITIAL_PART", "MOUNTABLE", "FOLDABLE", "NAILABLE" ] }, { "abstract": "frame", @@ -46,8 +44,7 @@ "removal": { "skills": [ [ "mechanics", 1 ] ], "using": "vehicle_weld_removal" }, "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 30000, "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "MOUNTABLE" ], - "damage_reduction": { "all": 52 } + "flags": [ "MOUNTABLE" ] }, { "abstract": "frame_wood", @@ -61,8 +58,7 @@ "durability": 150, "description": "A wooden framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size. Wood and nail construction means it can be constructed and added to the vehicle without welding tools.", "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] }, { "item": "nail", "charges": [ 5, 10 ] } ], - "flags": [ "NAILABLE" ], - "damage_reduction": { "all": 52 } + "flags": [ "NAILABLE" ] }, { "abstract": "frame_wood_light", @@ -79,8 +75,7 @@ "requirements": { "install": { "time": 60000, "using": [ [ "rope_natural_short", 1 ] ] }, "repair": { "time": 30000, "using": [ [ "adhesive", 1 ] ] } - }, - "damage_reduction": { "all": 46 } + } }, { "abstract": "hdframe", @@ -90,7 +85,7 @@ "location": "structure", "color": "dark_gray", "difficulty": 3, - "durability": 760, + "durability": 1600, "description": "A heavy metal framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size. Increased mass makes it more resistant to damage in collisions.", "breaks_into": "ig_vp_hdframe", "requirements": { @@ -98,8 +93,7 @@ "removal": { "skills": [ [ "mechanics", 1 ] ], "using": "vehicle_weld_removal" }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": 60000, "using": [ [ "welding_standard", 10 ] ] } }, - "flags": [ "MOUNTABLE" ], - "damage_reduction": { "all": 112 } + "flags": [ "MOUNTABLE" ] }, { "abstract": "xlframe", @@ -112,8 +106,7 @@ "durability": 150, "description": "A light metal framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size.", "breaks_into": "ig_vp_xlframe", - "flags": [ "MOUNTABLE" ], - "damage_reduction": { "all": 28 } + "flags": [ "MOUNTABLE" ] }, { "id": "frame_cover", diff --git a/data/json/vehicleparts/lights.json b/data/json/vehicleparts/lights.json index 02ca0c611f32b..bf521b2c2267e 100644 --- a/data/json/vehicleparts/lights.json +++ b/data/json/vehicleparts/lights.json @@ -156,8 +156,7 @@ "name": "reinforced headlight", "item": "headlight_reinforced", "color": "light_blue", - "proportional": { "durability": 4 }, - "damage_reduction": { "all": 12 } + "proportional": { "durability": 4 } }, { "id": "wide_headlight_reinforced", @@ -166,8 +165,7 @@ "name": "reinforced wide-angle headlight", "item": "wide_headlight_reinforced", "color": "light_blue", - "proportional": { "durability": 4 }, - "damage_reduction": { "all": 12 } + "proportional": { "durability": 4 } }, { "abstract": "light_emergency", @@ -194,8 +192,7 @@ "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] }, "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 2000, "using": [ [ "adhesive", 1 ] ] } }, - "flags": [ "CIRCLE_LIGHT", "FOLDABLE", "ENABLED_DRAINS_EPOWER" ], - "damage_reduction": { "all": 6 } + "flags": [ "CIRCLE_LIGHT", "FOLDABLE", "ENABLED_DRAINS_EPOWER" ] }, { "id": "light_blue", diff --git a/data/json/vehicleparts/manual.json b/data/json/vehicleparts/manual.json index 4811e69894fb7..2a04e36f855eb 100644 --- a/data/json/vehicleparts/manual.json +++ b/data/json/vehicleparts/manual.json @@ -27,8 +27,7 @@ "muscle_power_factor": 140, "folded_volume": 2, "breaks_into": [ { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 0, 2 ] } ], - "extend": { "flags": [ "FOLDABLE", "MUSCLE_LEGS", "CONTROLS", "TOOL_WRENCH" ] }, - "damage_reduction": { "all": 4 } + "extend": { "flags": [ "FOLDABLE", "MUSCLE_LEGS", "CONTROLS", "TOOL_WRENCH" ] } }, { "id": "hand_rims", @@ -43,7 +42,6 @@ "damage_modifier": 50, "folded_volume": 2, "breaks_into": [ { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 0, 2 ] } ], - "extend": { "flags": [ "FOLDABLE", "MUSCLE_ARMS", "CONTROLS" ] }, - "damage_reduction": { "all": 4 } + "extend": { "flags": [ "FOLDABLE", "MUSCLE_ARMS", "CONTROLS" ] } } ] diff --git a/data/json/vehicleparts/motor.json b/data/json/vehicleparts/motor.json index 43241c2862028..683e28ec179c9 100644 --- a/data/json/vehicleparts/motor.json +++ b/data/json/vehicleparts/motor.json @@ -54,8 +54,7 @@ { "item": "cable", "charges": [ 3, 6 ] } ], "extend": { "flags": [ "TOOL_SCREWDRIVER", "FOLDABLE" ] }, - "delete": { "flags": [ "TOOL_WRENCH" ] }, - "damage_reduction": { "all": 6 } + "delete": { "flags": [ "TOOL_WRENCH" ] } }, { "id": "engine_electric", @@ -74,8 +73,7 @@ { "item": "steel_chunk", "count": [ 3, 5 ] }, { "item": "scrap", "count": [ 3, 5 ] }, { "item": "cable", "charges": [ 10, 15 ] } - ], - "damage_reduction": { "all": 32 } + ] }, { "id": "engine_electric_large", @@ -93,8 +91,7 @@ { "item": "steel_chunk", "count": [ 3, 5 ] }, { "item": "scrap", "count": [ 3, 5 ] }, { "item": "cable", "charges": [ 10, 15 ] } - ], - "damage_reduction": { "all": 43 } + ] }, { "id": "engine_electric_enhanced", @@ -112,8 +109,7 @@ { "item": "steel_chunk", "count": [ 3, 5 ] }, { "item": "scrap", "count": [ 3, 5 ] }, { "item": "cable", "charges": [ 10, 15 ] } - ], - "damage_reduction": { "all": 50 } + ] }, { "id": "engine_electric_super", @@ -131,7 +127,6 @@ { "item": "steel_chunk", "count": [ 6, 10 ] }, { "item": "scrap", "count": [ 6, 10 ] }, { "item": "cable", "charges": [ 20, 30 ] } - ], - "damage_reduction": { "all": 60 } + ] } ] diff --git a/data/json/vehicleparts/rams.json b/data/json/vehicleparts/rams.json index 74d257d886361..f7edc7dc0da5b 100644 --- a/data/json/vehicleparts/rams.json +++ b/data/json/vehicleparts/rams.json @@ -19,13 +19,13 @@ "color": "dark_gray", "broken_color": "dark_gray", "difficulty": 4, - "durability": 650, + "durability": 900, "breaks_into": [ { "item": "steel_lump", "count": [ 4, 6 ] }, { "item": "steel_chunk", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } ], - "damage_reduction": { "all": 120 } + "damage_reduction": { "all": 14 } }, { "id": "ram_hardsteel", @@ -35,14 +35,14 @@ "item": "hard_plate", "color": "cyan", "broken_color": "cyan", - "durability": 860, + "durability": 2300, "difficulty": 4, "breaks_into": [ { "item": "steel_lump", "count": [ 4, 6 ] }, { "item": "steel_chunk", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } ], - "damage_reduction": { "all": 200 } + "damage_reduction": { "all": 18 } }, { "id": "ram_military_horizontal", @@ -52,7 +52,7 @@ "item": "mil_plate", "color": "green", "broken_color": "green", - "durability": 800, + "durability": 2000, "difficulty": 6, "breaks_into": [ { "item": "steel_lump", "count": [ 4, 6 ] }, @@ -60,7 +60,7 @@ { "item": "scrap", "count": [ 4, 6 ] }, { "item": "ceramic_armor", "count": [ 0, 4 ] } ], - "damage_reduction": { "all": 180, "cut": 210, "stab": 280 } + "damage_reduction": { "all": 18, "cut": 36, "stab": 60 } }, { "id": "ram_spiked", @@ -70,7 +70,7 @@ "item": "spiked_plate", "color": "red", "broken_color": "red", - "durability": 550, + "durability": 900, "difficulty": 3, "damage_modifier": 200, "breaks_into": [ @@ -79,7 +79,7 @@ { "item": "scrap", "count": [ 4, 6 ] }, { "item": "spike", "count": [ 0, 2 ] } ], - "damage_reduction": { "all": 148 } + "damage_reduction": { "all": 8 } }, { "id": "ram_steel", @@ -89,9 +89,9 @@ "item": "steel_plate", "color": "light_cyan", "broken_color": "light_cyan", - "durability": 650, + "durability": 1000, "breaks_into": "ig_vp_steel_plate", - "damage_reduction": { "all": 156 } + "damage_reduction": { "all": 10 } }, { "id": "ram_wood", @@ -104,7 +104,7 @@ "durability": 300, "extend": { "flags": [ "NAILABLE" ] }, "breaks_into": "ig_vp_wood_plate", - "damage_reduction": { "all": 75 } + "damage_reduction": { "all": 6 } }, { "id": "ram_chitin", @@ -115,9 +115,9 @@ "color": "yellow", "broken_color": "light_gray", "looks_like": "ram_wood", - "durability": 320, + "durability": 500, "breaks_into": [ { "item": "chitin_piece", "count": [ 5, 15 ] } ], - "damage_reduction": { "all": 80 } + "damage_reduction": { "all": 12 } }, { "id": "ram_acidchitin", @@ -127,7 +127,7 @@ "item": "acidchitin_plate", "proportional": { "durability": 1.5 }, "breaks_into": [ { "item": "chitin_piece", "count": [ 6, 19 ] } ], - "damage_reduction": { "all": 110 } + "damage_reduction": { "all": 14 } }, { "id": "tearer", @@ -140,12 +140,11 @@ "color": "dark_gray", "broken_color": "dark_gray", "difficulty": 5, - "durability": 450, + "durability": 900, "power": -1750, "damage_modifier": 500, "breaks_into": [ ], "description": "A circular blade, powered by the vehicle's engine. It will dramatically increase the damage the vehicle delivers in collisions. Mount on the edges of the vehicle, preferably the front.", - "flags": [ "UNMOUNT_ON_DAMAGE", "SHARP", "PROTRUSION" ], - "damage_reduction": { "all": 82 } + "flags": [ "UNMOUNT_ON_DAMAGE", "SHARP", "PROTRUSION" ] } ] diff --git a/data/json/vehicleparts/tanks.json b/data/json/vehicleparts/tanks.json index 1381e2a340d8a..81f1e7aff9b8a 100644 --- a/data/json/vehicleparts/tanks.json +++ b/data/json/vehicleparts/tanks.json @@ -14,8 +14,7 @@ "damage_modifier": 80, "folded_volume": 8, "breaks_into": [ { "item": "scrap", "count": [ 1, 2 ] } ], - "flags": [ "FLUIDTANK", "FOLDABLE" ], - "damage_reduction": { "all": 26, "stab": 8 } + "flags": [ "FLUIDTANK", "FOLDABLE" ] }, { "id": "tank_small", @@ -31,8 +30,7 @@ "size": 10000, "damage_modifier": 80, "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 40 ] } ], - "flags": [ "FLUIDTANK" ], - "damage_reduction": { "all": 9, "stab": 0 } + "flags": [ "FLUIDTANK" ] }, { "id": "tank_medium", @@ -52,8 +50,7 @@ { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 2 ] } ], - "flags": [ "FLUIDTANK" ], - "damage_reduction": { "all": 28, "stab": 10 } + "flags": [ "FLUIDTANK" ] }, { "id": "tank", @@ -73,8 +70,7 @@ { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 5 ] } ], - "flags": [ "FLUIDTANK" ], - "damage_reduction": { "all": 28, "stab": 12 } + "flags": [ "FLUIDTANK" ] }, { "id": "external_tank_small", @@ -89,8 +85,7 @@ "description": "A storage space for holding liquids, mounted outside the vehicle's walls and armor. 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.", "size": 100000, "damage_modifier": 80, - "flags": [ "PROTRUSION", "UNMOUNT_ON_DAMAGE", "FLUIDTANK" ], - "damage_reduction": { "all": 30, "stab": 12 } + "flags": [ "PROTRUSION", "UNMOUNT_ON_DAMAGE", "FLUIDTANK" ] }, { "id": "external_tank", @@ -98,8 +93,7 @@ "type": "vehicle_part", "name": "external tank (200L)", "item": "55gal_drum", - "size": 200000, - "damage_reduction": { "all": 30, "stab": 12 } + "size": 200000 }, { "id": "tank_barrel", @@ -119,8 +113,7 @@ { "item": "2x4", "count": [ 2, 8 ] }, { "item": "scrap", "count": [ 1, 3 ] } ], - "flags": [ "NAILABLE", "FLUIDTANK" ], - "damage_reduction": { "all": 18, "stab": 12 } + "flags": [ "NAILABLE", "FLUIDTANK" ] }, { "id": "tank_30gal_drum", @@ -140,8 +133,7 @@ { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 5 ] } ], - "flags": [ "FLUIDTANK" ], - "damage_reduction": { "all": 30, "stab": 12 } + "flags": [ "FLUIDTANK" ] }, { "id": "tank_55gal_drum", @@ -155,8 +147,7 @@ { "item": "steel_chunk", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 2, 10 ] } ], - "flags": [ "FLUIDTANK", "OPAQUE", "OBSTACLE" ], - "damage_reduction": { "all": 30, "stab": 12 } + "flags": [ "FLUIDTANK", "OPAQUE", "OBSTACLE" ] }, { "id": "fuel_bunker", @@ -177,7 +168,6 @@ { "item": "steel_lump", "count": [ 2, 2 ] }, { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 5 ] } - ], - "damage_reduction": { "all": 24, "stab": 18 } + ] } ] diff --git a/data/json/vehicleparts/vehicle_parts.json b/data/json/vehicleparts/vehicle_parts.json index 8c323e1582480..9d8fe753716ca 100644 --- a/data/json/vehicleparts/vehicle_parts.json +++ b/data/json/vehicleparts/vehicle_parts.json @@ -109,8 +109,7 @@ "difficulty": 1, "location": "center", "flags": [ "SEAT", "BOARDABLE", "CARGO", "BELTABLE", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_seat", - "damage_reduction": { "all": 2 } + "breaks_into": "ig_vp_seat" }, { "type": "vehicle_part", @@ -128,8 +127,7 @@ "size": 25, "location": "center", "flags": [ "BED", "SEAT", "BOARDABLE", "BELTABLE", "CARGO", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_seat", - "damage_reduction": { "all": 3 } + "breaks_into": "ig_vp_seat" }, { "type": "vehicle_part", @@ -159,8 +157,7 @@ "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] } }, "breaks_into": "ig_vp_wood_plate", - "flags": [ "ENGINE", "BOARDABLE", "TOOL_NONE", "E_STARTS_INSTANTLY", "ANIMAL_CTRL", "STEERABLE", "UNMOUNT_ON_DAMAGE", "WHEEL" ], - "damage_reduction": { "all": 2 } + "flags": [ "ENGINE", "BOARDABLE", "TOOL_NONE", "E_STARTS_INSTANTLY", "ANIMAL_CTRL", "STEERABLE", "UNMOUNT_ON_DAMAGE", "WHEEL" ] }, { "type": "vehicle_part", @@ -245,8 +242,7 @@ "difficulty": 1, "location": "center", "flags": [ "BED", "BOARDABLE", "CARGO", "MOUNTABLE" ], - "breaks_into": "ig_vp_seat", - "damage_reduction": { "all": 3 } + "breaks_into": "ig_vp_seat" }, { "type": "vehicle_part", @@ -267,8 +263,7 @@ { "item": "steel_lump", "count": [ 4, 6 ] }, { "item": "steel_chunk", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } - ], - "damage_reduction": { "all": 5 } + ] }, { "type": "vehicle_part", @@ -284,8 +279,7 @@ "difficulty": 1, "location": "structure", "flags": [ "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] }, { "item": "nail", "charges": [ 5, 10 ] } ], - "damage_reduction": { "all": 4 } + "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] }, { "type": "vehicle_part", @@ -320,8 +314,7 @@ "difficulty": 1, "location": "center", "flags": [ "AISLE", "BOARDABLE" ], - "breaks_into": "ig_vp_sheet_metal", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_sheet_metal" }, { "type": "vehicle_part", @@ -337,8 +330,7 @@ "difficulty": 1, "location": "center", "flags": [ "AISLE", "BOARDABLE" ], - "breaks_into": "ig_vp_sheet_metal", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_sheet_metal" }, { "type": "vehicle_part", @@ -354,8 +346,7 @@ "difficulty": 1, "location": "center", "flags": [ "AISLE", "BOARDABLE", "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] }, { "item": "nail", "charges": [ 5, 10 ] } ], - "damage_reduction": { "all": 16 } + "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] }, { "type": "vehicle_part", @@ -371,8 +362,7 @@ "difficulty": 1, "location": "center", "flags": [ "AISLE", "BOARDABLE", "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] }, { "item": "nail", "charges": [ 5, 10 ] } ], - "damage_reduction": { "all": 16 } + "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] }, { "item": "nail", "charges": [ 5, 10 ] } ] }, { "type": "vehicle_part", @@ -389,8 +379,7 @@ "difficulty": 1, "location": "center", "flags": [ "AISLE", "BOARDABLE", "CARGO", "LOCKABLE_CARGO", "COVERED" ], - "breaks_into": "ig_vp_sheet_metal", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_sheet_metal" }, { "type": "vehicle_part", @@ -427,8 +416,7 @@ "difficulty": 1, "location": "roof", "flags": [ "ROOF" ], - "breaks_into": "ig_vp_sheet_metal", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_sheet_metal" }, { "type": "vehicle_part", @@ -444,8 +432,7 @@ "difficulty": 1, "location": "roof", "flags": [ "ROOF" ], - "breaks_into": "ig_vp_steel_plate", - "damage_reduction": { "all": 75 } + "breaks_into": "ig_vp_steel_plate" }, { "type": "vehicle_part", @@ -463,8 +450,7 @@ "difficulty": 2, "location": "center", "flags": [ "CARGO", "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 21 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -482,8 +468,7 @@ "difficulty": 2, "location": "center", "flags": [ "CARGO", "OBSTACLE", "OPAQUE", "OPENABLE", "BOARDABLE", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -502,8 +487,7 @@ "difficulty": 2, "location": "center", "flags": [ "CARGO", "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_hdframe", - "damage_reduction": { "all": 68 } + "breaks_into": "ig_vp_hdframe" }, { "type": "vehicle_part", @@ -522,8 +506,7 @@ "difficulty": 2, "location": "center", "flags": [ "CARGO", "OBSTACLE", "OPAQUE", "OPENABLE", "BOARDABLE", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_hdframe", - "damage_reduction": { "all": 75 } + "breaks_into": "ig_vp_hdframe" }, { "type": "vehicle_part", @@ -540,8 +523,7 @@ "difficulty": 2, "location": "center", "flags": [ "OBSTACLE", "OPAQUE", "OPENABLE", "ROOF", "BOARDABLE", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -559,8 +541,7 @@ "difficulty": 2, "location": "center", "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 30 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -578,8 +559,7 @@ "difficulty": 2, "location": "center", "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "OPAQUE" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 34 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -598,8 +578,7 @@ "difficulty": 3, "location": "center", "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED" ], - "breaks_into": "ig_vp_hdframe", - "damage_reduction": { "all": 78 } + "breaks_into": "ig_vp_hdframe" }, { "type": "vehicle_part", @@ -618,8 +597,7 @@ "difficulty": 3, "location": "center", "flags": [ "CARGO", "LOCKABLE_CARGO", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "COVERED", "OPAQUE" ], - "breaks_into": "ig_vp_hdframe", - "damage_reduction": { "all": 80 } + "breaks_into": "ig_vp_hdframe" }, { "type": "vehicle_part", @@ -672,8 +650,7 @@ "folded_volume": 3, "location": "structure", "flags": [ "SHARP", "PROTRUSION", "FOLDABLE" ], - "breaks_into": [ { "item": "steel_chunk", "prob": 50 } ], - "damage_reduction": { "all": 12 } + "breaks_into": [ { "item": "steel_chunk", "prob": 50 } ] }, { "type": "vehicle_part", @@ -691,8 +668,7 @@ "folded_volume": 1, "location": "structure", "flags": [ "SHARP", "PROTRUSION", "FOLDABLE" ], - "breaks_into": [ { "item": "steel_chunk", "count": [ 1, 2 ] } ], - "damage_reduction": { "all": 12 } + "breaks_into": [ { "item": "steel_chunk", "count": [ 1, 2 ] } ] }, { "type": "vehicle_part", @@ -713,8 +689,7 @@ { "item": "steel_lump", "prob": 50 }, { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 0, 3 ] } - ], - "damage_reduction": { "all": 8 } + ] }, { "type": "vehicle_part", @@ -736,8 +711,7 @@ { "item": "steel_lump", "count": [ 0, 2 ] }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "e_scrap", "count": [ 1, 2 ] } - ], - "damage_reduction": { "all": 80 } + ] }, { "type": "vehicle_part", @@ -762,8 +736,7 @@ { "item": "steel_lump", "count": [ 6, 11 ] }, { "item": "steel_chunk", "count": [ 6, 11 ] }, { "item": "scrap", "count": [ 6, 11 ] } - ], - "damage_reduction": { "all": 50 } + ] }, { "type": "vehicle_part", @@ -789,8 +762,7 @@ { "item": "scrap", "count": [ 8, 13 ] }, { "item": "hose", "prob": 50 }, { "item": "motor_tiny", "prob": 25 } - ], - "damage_reduction": { "all": 32 } + ] }, { "type": "vehicle_part", @@ -815,8 +787,7 @@ { "item": "scrap", "count": [ 8, 13 ] }, { "item": "hose", "prob": 50 }, { "item": "motor_tiny", "prob": 25 } - ], - "damage_reduction": { "all": 32 } + ] }, { "type": "vehicle_part", @@ -835,32 +806,6 @@ "difficulty": 3, "location": "center", "flags": [ "CARGO", "OBSTACLE", "WASHING_MACHINE", "COVERED", "TOOL_WRENCH", "ENABLED_DRAINS_EPOWER" ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 8, 13 ] }, - { "item": "steel_chunk", "count": [ 8, 13 ] }, - { "item": "scrap", "count": [ 8, 13 ] }, - { "item": "hose", "prob": 50 } - ], - "damage_reduction": { "all": 32 } - }, - { - "type": "vehicle_part", - "id": "dishwasher", - "name": "dishwasher", - "symbol": "d", - "color": "light_blue", - "broken_symbol": "#", - "broken_color": "light_blue", - "damage_modifier": 80, - "durability": 100, - "description": "A small dishwasher. With detergent or soap, water, and some electrical power, you could clean your dishes... Or something more useful like a CBM dripping with zombie gore. 'e'xamine the tile with the dishwasher to use it.", - "epower": -400, - "size": 160, - "item": "dishwasher", - "difficulty": 3, - "location": "center", - "looks_like": "washing_machine", - "flags": [ "CARGO", "OBSTACLE", "DISHWASHER", "COVERED", "TOOL_WRENCH", "ENABLED_DRAINS_EPOWER" ], "breaks_into": [ { "item": "steel_lump", "count": [ 8, 13 ] }, { "item": "steel_chunk", "count": [ 8, 13 ] }, @@ -868,30 +813,6 @@ { "item": "hose", "prob": 50 } ] }, - { - "type": "vehicle_part", - "id": "autoclave", - "name": "autoclave", - "symbol": "A", - "color": "yellow", - "broken_symbol": "#", - "broken_color": "light_blue", - "damage_modifier": 80, - "durability": 100, - "description": "This is an autoclave. It's useful for sterilizing things like CBMs. 'e'xamine the tile with the autoclave to use it.", - "epower": -1500, - "size": 11, - "item": "vh_autoclave", - "difficulty": 3, - "location": "center", - "flags": [ "CARGO", "OBSTACLE", "AUTOCLAVE", "COVERED", "TOOL_WRENCH", "ENABLED_DRAINS_EPOWER" ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 6, 10 ] }, - { "item": "steel_chunk", "count": [ 6, 10 ] }, - { "item": "scrap", "count": [ 6, 10 ] }, - { "item": "hose", "prob": 50 } - ] - }, { "type": "vehicle_part", "id": "trunk", @@ -907,8 +828,7 @@ "difficulty": 1, "location": "center", "flags": [ "CARGO", "LOCKABLE_CARGO", "COVERED", "BOARDABLE" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 30 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -925,8 +845,7 @@ "difficulty": 1, "location": "center", "flags": [ "CARGO", "TOOL_SCREWDRIVER", "BOARDABLE", "COVERED", "LOCKABLE_CARGO" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -947,8 +866,7 @@ "requirements": { "install": { "time": 60000, "using": [ [ "rope_natural_short", 1 ] ] }, "repair": { "time": 30000, "using": [ [ "adhesive", 1 ] ] } - }, - "damage_reduction": { "all": 18, "stab": 8, "cut": 8 } + } }, { "type": "vehicle_part", @@ -965,8 +883,7 @@ "difficulty": 0, "location": "center", "flags": [ "CARGO", "BOARDABLE", "COVERED", "NAILABLE", "LOCKABLE_CARGO" ], - "breaks_into": [ { "item": "splinter", "count": [ 3, 5 ] }, { "item": "nail", "charges": [ 10, 15 ] } ], - "damage_reduction": { "all": 16, "stab": 6, "cut": 6 } + "breaks_into": [ { "item": "splinter", "count": [ 3, 5 ] }, { "item": "nail", "charges": [ 10, 15 ] } ] }, { "type": "vehicle_part", @@ -984,8 +901,7 @@ "difficulty": 1, "location": "center", "flags": [ "CARGO", "BOARDABLE", "COVERED", "NAILABLE", "FOLDABLE", "LOCKABLE_CARGO" ], - "breaks_into": [ { "item": "splinter", "count": [ 3, 5 ] }, { "item": "nail", "charges": [ 10, 15 ] } ], - "damage_reduction": { "all": 10, "stab": 4, "cut": 5 } + "breaks_into": [ { "item": "splinter", "count": [ 3, 5 ] }, { "item": "nail", "charges": [ 10, 15 ] } ] }, { "type": "vehicle_part", @@ -1025,8 +941,7 @@ "install": { "time": 15000, "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] }, "repair": { "skills": [ [ "mechanics", 1 ], [ "fabrication", 1 ] ], "time": 25000, "using": [ [ "welding_standard", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] } - }, - "damage_reduction": { "all": 6 } + } }, { "type": "vehicle_part", @@ -1047,8 +962,7 @@ "install": { "time": 45000, "skills": [ [ "mechanics", 1 ] ], "using": [ [ "welding_standard", 2 ] ] }, "repair": { "skills": [ [ "mechanics", 1 ], [ "fabrication", 2 ] ], "time": 35000, "using": [ [ "welding_standard", 2 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SAW_M", "level": 1 } ] } - }, - "damage_reduction": { "all": 6 } + } }, { "type": "vehicle_part", @@ -1070,8 +984,7 @@ "install": { "time": 45000, "skills": [ [ "mechanics", 1 ] ], "using": [ [ "welding_standard", 2 ] ] }, "repair": { "skills": [ [ "mechanics", 1 ], [ "fabrication", 2 ] ], "time": 35000, "using": [ [ "welding_standard", 2 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SAW_M", "level": 1 } ] } - }, - "damage_reduction": { "all": 4 } + } }, { "type": "vehicle_part", @@ -1093,8 +1006,7 @@ { "item": "splinter", "count": [ 4, 6 ] }, { "item": "nail", "charges": [ 4, 7 ] } ], - "workbench": { "multiplier": 1.1, "mass": 150000, "volume": "20L" }, - "damage_reduction": { "all": 24 } + "workbench": { "multiplier": 1.1, "mass": 150000, "volume": "20L" } }, { "type": "vehicle_part", @@ -1116,8 +1028,7 @@ { "item": "splinter", "count": [ 4, 6 ] }, { "item": "nail", "charges": [ 4, 7 ] } ], - "workbench": { "multiplier": 1.1, "mass": 150000, "volume": "20L" }, - "damage_reduction": { "all": 16 } + "workbench": { "multiplier": 1.1, "mass": 150000, "volume": "20L" } }, { "type": "vehicle_part", @@ -1142,8 +1053,7 @@ { "item": "steel_chunk", "count": [ 4, 8 ] }, { "item": "scrap", "count": [ 12, 24 ] } ], - "workbench": { "multiplier": 1.2, "mass": 300000, "volume": "30L" }, - "damage_reduction": { "all": 29 } + "workbench": { "multiplier": 1.2, "mass": 300000, "volume": "30L" } }, { "type": "vehicle_part", @@ -1160,8 +1070,7 @@ "difficulty": 2, "location": "under", "flags": [ "FLOATS", "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 10, 20 ] } ], - "damage_reduction": { "all": 10 } + "breaks_into": [ { "item": "splinter", "count": [ 10, 20 ] } ] }, { "type": "vehicle_part", @@ -1179,8 +1088,7 @@ "difficulty": 3, "location": "under", "flags": [ "FLOATS" ], - "breaks_into": [ { "item": "plastic_chunk", "count": [ 4, 8 ] } ], - "damage_reduction": { "all": 12, "stab": 4, "cut": 4 } + "breaks_into": [ { "item": "plastic_chunk", "count": [ 4, 8 ] } ] }, { "type": "vehicle_part", @@ -1198,8 +1106,7 @@ "difficulty": 4, "location": "under", "flags": [ "FLOATS" ], - "breaks_into": "ig_vp_sheet_metal", - "damage_reduction": { "all": 28 } + "breaks_into": "ig_vp_sheet_metal" }, { "type": "vehicle_part", @@ -1217,8 +1124,7 @@ "difficulty": 6, "location": "under", "flags": [ "FLOATS", "BOARDABLE" ], - "breaks_into": [ { "item": "kevlar_plate", "count": [ 1, 3 ] } ], - "damage_reduction": { "all": 14 } + "breaks_into": [ { "item": "kevlar_plate", "count": [ 1, 3 ] } ] }, { "type": "vehicle_part", @@ -1235,8 +1141,7 @@ "location": "structure", "folded_volume": 3, "flags": [ "MOUNTABLE", "FOLDABLE", "BOARDABLE", "CARGO" ], - "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ], - "damage_reduction": { "smash": 10 } + "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ] }, { "type": "vehicle_part", @@ -1253,8 +1158,7 @@ "location": "under", "folded_volume": 3, "flags": [ "FLOATS", "VARIABLE_SIZE", "FOLDABLE" ], - "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ], - "damage_reduction": { "smash": 10 } + "breaks_into": [ { "item": "plastic_chunk", "count": [ 10, 20 ] } ] }, { "type": "vehicle_part", @@ -1311,8 +1215,7 @@ "location": "engine_block", "folded_volume": 2, "flags": [ "ENGINE", "CONTROLS", "FOLDABLE", "MUSCLE_ARMS", "TOOL_NONE", "E_STARTS_INSTANTLY" ], - "breaks_into": [ { "item": "splinter", "count": [ 2, 4 ] } ], - "damage_reduction": { "all": 5 } + "breaks_into": [ { "item": "splinter", "count": [ 2, 4 ] } ] }, { "type": "vehicle_part", @@ -1335,8 +1238,7 @@ { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] }, { "item": "cable", "charges": [ 0, 4 ] } - ], - "damage_reduction": { "all": 6 } + ] }, { "type": "vehicle_part", @@ -1389,8 +1291,7 @@ "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 3000, "using": [ [ "adhesive", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] } }, - "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ], - "damage_reduction": { "all": 15 } + "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ] }, { "id": "mountable_cooler", @@ -1416,8 +1317,7 @@ "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 3000, "using": [ [ "adhesive", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] } }, - "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ], - "damage_reduction": { "all": 15 } + "breaks_into": [ { "item": "steel_lump" }, { "item": "steel_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 1, 3 ] } ] }, { "type": "vehicle_part", @@ -1444,8 +1344,7 @@ "repair": { "skills": [ [ "mechanics", 2 ] ], "time": 8000, "using": [ [ "adhesive", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 3 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] } }, - "breaks_into": "ig_vp_device", - "damage_reduction": { "all": 6 } + "breaks_into": "ig_vp_device" }, { "type": "vehicle_part", @@ -1466,8 +1365,7 @@ { "item": "steel_lump", "count": [ 3, 5 ] }, { "item": "steel_chunk", "count": [ 3, 5 ] }, { "item": "scrap", "count": [ 3, 5 ] } - ], - "damage_reduction": { "all": 9 } + ] }, { "type": "vehicle_part", @@ -1562,7 +1460,7 @@ "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 2000, "using": [ [ "adhesive", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] } }, - "flags": [ "OPENABLE", "OPENCLOSE_INSIDE", "OPAQUE", "CURTAIN", "WINDOW_CURTAIN", "MULTISQUARE" ], + "flags": [ "OPENABLE", "OPENCLOSE_INSIDE", "OPAQUE", "CURTAIN", "WINDOW_CURTAIN" ], "breaks_into": [ ] }, { @@ -1589,7 +1487,7 @@ "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 2000, "using": [ [ "adhesive", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] } }, - "flags": [ "OPENABLE", "OPAQUE", "OPENCLOSE_INSIDE", "CURTAIN", "MULTISQUARE" ], + "flags": [ "OPENABLE", "OPAQUE", "OPENCLOSE_INSIDE", "CURTAIN" ], "breaks_into": [ ] }, { @@ -1613,8 +1511,7 @@ "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 2000, "using": [ [ "rope_natural_short", 1 ] ] }, "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "WRENCH", "level": 1 } ] } }, - "breaks_into": [ { "item": "splinter", "count": [ 40, 60 ] } ], - "damage_reduction": { "all": 15, "stab": 6, "cut": 8 } + "breaks_into": [ { "item": "splinter", "count": [ 40, 60 ] } ] }, { "type": "vehicle_part", @@ -1637,8 +1534,7 @@ "repair": { "skills": [ [ "mechanics", 3 ] ], "time": 6000, "using": [ [ "rope_natural_short", 2 ] ] }, "removal": { "skills": [ [ "mechanics", 3 ] ], "qualities": [ { "id": "WRENCH", "level": 1 } ] } }, - "breaks_into": [ { "item": "splinter", "count": [ 60, 100 ] } ], - "damage_reduction": { "all": 16, "stab": 6, "cut": 8 } + "breaks_into": [ { "item": "splinter", "count": [ 60, 100 ] } ] }, { "type": "vehicle_part", @@ -1687,8 +1583,7 @@ { "item": "steel_lump", "count": [ 2, 4 ] }, { "item": "steel_chunk", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 2, 4 ] } - ], - "damage_reduction": { "all": 8 } + ] }, { "type": "vehicle_part", @@ -1715,8 +1610,7 @@ { "item": "steel_lump", "count": [ 6, 12 ] }, { "item": "steel_chunk", "count": [ 6, 12 ] }, { "item": "scrap", "count": [ 6, 12 ] } - ], - "damage_reduction": { "all": 9 } + ] }, { "type": "vehicle_part", @@ -1735,8 +1629,7 @@ { "item": "steel_chunk", "count": [ 4, 7 ] }, { "item": "scrap", "count": [ 4, 7 ] }, { "item": "solar_cell", "count": [ 1, 4 ] } - ], - "damage_reduction": { "all": 12 } + ] }, { "type": "vehicle_part", @@ -1772,8 +1665,7 @@ { "item": "steel_chunk", "count": [ 4, 7 ] }, { "item": "scrap", "count": [ 4, 7 ] }, { "item": "solar_cell", "count": [ 1, 6 ] } - ], - "damage_reduction": { "all": 10 } + ] }, { "type": "vehicle_part", @@ -1812,29 +1704,7 @@ "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "WRENCH", "level": 1 } ] } }, "flags": [ "FAUCET", "FOLDABLE" ], - "breaks_into": [ { "item": "scrap", "count": [ 1, 3 ] } ], - "damage_reduction": { "all": 6 } - }, - { - "type": "vehicle_part", - "id": "towel_hanger", - "name": "towel hanger", - "symbol": "h", - "color": "brown", - "broken_symbol": "-", - "broken_color": "brown", - "damage_modifier": 10, - "description": "A towel hanger with towels.", - "durability": 45, - "folded_volume": "2500 ml", - "item": "towel_hanger", - "requirements": { - "install": { "time": 30000, "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "WRENCH", "level": 1 } ] }, - "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 2000, "using": [ [ "welding_standard", 5 ] ] }, - "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "WRENCH", "level": 1 } ] } - }, - "flags": [ "TOWEL", "FOLDABLE" ], - "breaks_into": [ { "item": "scrap", "count": [ 1, 3 ] }, { "item": "rag", "count": [ 1, 6 ] } ] + "breaks_into": [ { "item": "scrap", "count": [ 1, 3 ] } ] }, { "type": "vehicle_part", @@ -1858,8 +1728,7 @@ { "item": "scrap", "count": [ 4, 6 ] }, { "item": "pan", "prob": 50 }, { "item": "pot", "prob": 50 } - ], - "damage_reduction": { "all": 30 } + ] }, { "type": "vehicle_part", @@ -1882,8 +1751,7 @@ { "item": "steel_chunk", "count": [ 3, 6 ] }, { "item": "scrap", "count": [ 3, 6 ] }, { "item": "welder", "charges": 0, "prob": 50 } - ], - "damage_reduction": { "all": 24 } + ] }, { "type": "vehicle_part", @@ -1912,8 +1780,7 @@ { "item": "dehydrator", "charges": 0, "prob": 50 }, { "item": "food_processor", "charges": 0, "prob": 50 }, { "item": "press", "charges": 0, "prob": 50 } - ], - "damage_reduction": { "all": 20 } + ] }, { "type": "vehicle_part", @@ -1937,8 +1804,7 @@ { "item": "scrap", "count": [ 4, 7 ] }, { "item": "chemistry_set", "charges": 0, "prob": 50 }, { "item": "hotplate", "charges": 0, "prob": 50 } - ], - "damage_reduction": { "all": 19 } + ] }, { "type": "vehicle_part", @@ -1960,8 +1826,7 @@ { "item": "steel_lump", "count": [ 4, 5 ] }, { "item": "steel_chunk", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } - ], - "damage_reduction": { "all": 29 } + ] }, { "type": "vehicle_part", @@ -1983,8 +1848,7 @@ { "item": "steel_lump", "count": [ 4, 5 ] }, { "item": "steel_chunk", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } - ], - "damage_reduction": { "all": 25 } + ] }, { "type": "vehicle_part", @@ -1994,13 +1858,13 @@ "color": "brown", "broken_symbol": ")", "broken_color": "brown", - "durability": 250, + "durability": 300, "item": "wood_plate", "difficulty": 2, "location": "armor", "flags": [ "ARMOR", "NAILABLE" ], "breaks_into": "ig_vp_wood_plate", - "damage_reduction": { "all": 16, "cut": 8, "stab": 8 } + "damage_reduction": { "all": 5 } }, { "type": "vehicle_part", @@ -2010,13 +1874,13 @@ "color": "light_cyan", "broken_symbol": ")", "broken_color": "light_cyan", - "durability": 660, + "durability": 1000, "item": "steel_plate", "difficulty": 2, "location": "armor", "flags": [ "ARMOR" ], "breaks_into": "ig_vp_steel_plate", - "damage_reduction": { "all": 56 } + "damage_reduction": { "all": 10 } }, { "type": "vehicle_part", @@ -2026,7 +1890,7 @@ "color": "dark_gray", "broken_symbol": ")", "broken_color": "dark_gray", - "durability": 600, + "durability": 900, "item": "alloy_plate", "difficulty": 4, "location": "armor", @@ -2036,7 +1900,7 @@ { "item": "steel_chunk", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } ], - "damage_reduction": { "all": 56 } + "damage_reduction": { "all": 12 } }, { "type": "vehicle_part", @@ -2047,7 +1911,7 @@ "broken_symbol": ")", "broken_color": "red", "damage_modifier": 150, - "durability": 620, + "durability": 500, "description": "A spiked plate that will increase the damage delivered to someone else in collisions.", "item": "spiked_plate", "difficulty": 3, @@ -2059,7 +1923,7 @@ { "item": "scrap", "count": [ 4, 6 ] }, { "item": "spike", "count": [ 0, 2 ] } ], - "damage_reduction": { "all": 58 } + "damage_reduction": { "all": 7 } }, { "type": "vehicle_part", @@ -2069,7 +1933,7 @@ "color": "cyan", "broken_symbol": ")", "broken_color": "cyan", - "durability": 780, + "durability": 1000, "item": "hard_plate", "difficulty": 4, "location": "armor", @@ -2079,7 +1943,7 @@ { "item": "steel_chunk", "count": [ 4, 6 ] }, { "item": "scrap", "count": [ 4, 6 ] } ], - "damage_reduction": { "all": 75 } + "damage_reduction": { "all": 15 } }, { "type": "vehicle_part", @@ -2089,7 +1953,7 @@ "color": "green", "broken_symbol": ")", "broken_color": "green", - "durability": 700, + "durability": 2000, "item": "mil_plate", "difficulty": 6, "location": "armor", @@ -2100,7 +1964,7 @@ { "item": "scrap", "count": [ 4, 6 ] }, { "item": "ceramic_armor", "count": [ 0, 4 ] } ], - "damage_reduction": { "all": 70, "cut": 95, "stab": 88 } + "damage_reduction": { "all": 15, "cut": 30, "stab": 50 } }, { "type": "vehicle_part", @@ -2117,8 +1981,7 @@ "difficulty": 4, "location": "center", "flags": [ "WINDSHIELD", "OBSTACLE", "WINDOW" ], - "breaks_into": [ { "item": "glass_shard", "count": [ 25, 50 ] }, { "item": "wire", "count": [ 4, 8 ] } ], - "damage_reduction": { "all": 16 } + "breaks_into": [ { "item": "glass_shard", "count": [ 25, 50 ] }, { "item": "wire", "count": [ 4, 8 ] } ] }, { "type": "vehicle_part", @@ -2221,8 +2084,7 @@ "difficulty": 2, "location": "center", "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "TOOL_WRENCH", "LOW_FINAL_AIR_DRAG", "NO_ROOF_NEEDED" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 25 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -2240,8 +2102,7 @@ "difficulty": 2, "location": "center", "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "TOOL_WRENCH", "LOW_FINAL_AIR_DRAG" ], - "breaks_into": "ig_vp_hdframe", - "damage_reduction": { "all": 78 } + "breaks_into": "ig_vp_hdframe" }, { "type": "vehicle_part", @@ -2258,8 +2119,7 @@ "difficulty": 2, "location": "center", "flags": [ "OPAQUE", "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_sheet_metal", - "damage_reduction": { "all": 24 } + "breaks_into": "ig_vp_sheet_metal" }, { "type": "vehicle_part", @@ -2276,8 +2136,7 @@ "difficulty": 2, "location": "center", "flags": [ "OBSTACLE", "OPENABLE", "MULTISQUARE", "BOARDABLE", "TOOL_WRENCH" ], - "breaks_into": "ig_vp_frame", - "damage_reduction": { "all": 26 } + "breaks_into": "ig_vp_frame" }, { "type": "vehicle_part", @@ -2297,8 +2156,7 @@ { "item": "steel_lump", "count": [ 6, 8 ] }, { "item": "steel_chunk", "count": [ 6, 8 ] }, { "item": "scrap", "count": [ 6, 8 ] } - ], - "damage_reduction": { "all": 28 } + ] }, { "type": "vehicle_part", @@ -2320,8 +2178,7 @@ { "item": "steel_lump", "count": [ 6, 8 ] }, { "item": "steel_chunk", "count": [ 6, 8 ] }, { "item": "scrap", "count": [ 6, 8 ] } - ], - "damage_reduction": { "all": 30 } + ] }, { "type": "vehicle_part", @@ -2358,8 +2215,7 @@ { "item": "steel_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "count": [ 1, 2 ] }, { "item": "cable", "charges": [ 1, 3 ] } - ], - "damage_reduction": { "all": 10 } + ] }, { "type": "vehicle_part", @@ -2515,8 +2371,7 @@ "difficulty": 1, "location": "center", "flags": [ "SEAT", "BOARDABLE", "BELTABLE", "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ], - "damage_reduction": { "all": 8 } + "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ] }, { "type": "vehicle_part", @@ -2551,8 +2406,7 @@ "difficulty": 2, "location": "center", "flags": [ "OBSTACLE", "OPENABLE", "BOARDABLE", "WINDOW", "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ], - "damage_reduction": { "all": 8 } + "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ] }, { "type": "vehicle_part", @@ -2569,8 +2423,7 @@ "difficulty": 2, "location": "center", "flags": [ "OBSTACLE", "OPENABLE", "BOARDABLE", "OPAQUE", "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ], - "damage_reduction": { "all": 12 } + "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ] }, { "type": "vehicle_part", @@ -2586,8 +2439,7 @@ "difficulty": 1, "location": "roof", "flags": [ "ROOF", "NAILABLE" ], - "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ], - "damage_reduction": { "all": 16 } + "breaks_into": [ { "item": "splinter", "count": [ 7, 9 ] } ] }, { "type": "vehicle_part", @@ -2597,7 +2449,7 @@ "color": "yellow", "broken_symbol": ")", "broken_color": "light_gray", - "durability": 320, + "durability": 500, "item": "chitin_plate", "difficulty": 2, "location": "armor", @@ -2607,7 +2459,7 @@ "install": { "skills": [ [ "mechanics", 2 ] ], "time": 60000, "using": [ [ "rope_natural", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": 30000, "using": [ [ "adhesive", 1 ] ] } }, - "damage_reduction": { "all": 58 } + "damage_reduction": { "all": 10 } }, { "type": "vehicle_part", @@ -2617,7 +2469,7 @@ "proportional": { "durability": 1.5 }, "item": "acidchitin_plate", "breaks_into": [ { "item": "acidchitin_piece", "count": [ 6, 19 ] } ], - "damage_reduction": { "all": 72 } + "damage_reduction": { "all": 12 } }, { "type": "vehicle_part", @@ -2627,13 +2479,13 @@ "color": "white", "broken_symbol": ")", "broken_color": "light_gray", - "durability": 120, + "durability": 400, "item": "bone_plate", "difficulty": 2, "location": "armor", "flags": [ "ARMOR" ], "breaks_into": [ { "item": "bone_tainted", "count": [ 10, 30 ] } ], - "damage_reduction": { "all": 18 } + "damage_reduction": { "all": 5 } }, { "type": "vehicle_part", @@ -2650,8 +2502,7 @@ "difficulty": 2, "folded_volume": 1, "flags": [ "DOOR_MOTOR", "UNMOUNT_ON_DAMAGE", "FOLDABLE", "TOOL_SCREWDRIVER" ], - "breaks_into": [ { "item": "scrap", "count": [ 4, 6 ] } ], - "damage_reduction": { "all": 12 } + "breaks_into": [ { "item": "scrap", "count": [ 4, 6 ] } ] }, { "type": "vehicle_part", @@ -2682,7 +2533,7 @@ "description": "An LCD display attached to one or more cameras. When turned on, it lets you see from the cameras, but drains power from the vehicle's batteries. You can 'e'xamine the tile to access the controls, or use the vehicle control key (default '^').", "folded_volume": 10, "item": "camera_control", - "epower": -20, + "epower": -100, "difficulty": 3, "flags": [ "VISION", "CAMERA", "CAMERA_CONTROL", "TOOL_SCREWDRIVER", "ENABLED_DRAINS_EPOWER" ], "breaks_into": [ { "item": "e_scrap", "count": [ 4, 10 ] }, { "item": "plastic_chunk", "count": [ 2, 8 ] } ] @@ -2770,25 +2621,6 @@ "flags": [ "FUNNEL", "NAILABLE", "FOLDABLE" ], "breaks_into": [ { "item": "leather", "count": [ 1, 2 ] } ] }, - { - "type": "vehicle_part", - "id": "birchbark_funnel", - "name": "birchbark funnel", - "symbol": "V", - "color": "white", - "broken_symbol": "*", - "broken_color": "light_gray", - "damage_modifier": 5, - "durability": 60, - "description": "A funnel that will collect rainwater into the tank beneath it.", - "size": 240, - "item": "birchbark_funnel", - "difficulty": 1, - "location": "on_roof", - "folded_volume": 1, - "flags": [ "FUNNEL", "NAILABLE", "FOLDABLE" ], - "breaks_into": [ { "item": "birchbark", "count": [ 1, 2 ] } ] - }, { "type": "vehicle_part", "id": "makeshift_funnel", @@ -2842,8 +2674,7 @@ "difficulty": 1, "location": "on_roof", "flags": [ "FUNNEL" ], - "breaks_into": [ { "item": "scrap", "count": [ 8, 12 ] } ], - "damage_reduction": { "all": 12 } + "breaks_into": [ { "item": "scrap", "count": [ 8, 12 ] } ] }, { "type": "vehicle_part", @@ -2862,8 +2693,7 @@ "difficulty": 1, "flags": [ "SCOOP", "CARGO", "ENABLED_DRAINS_EPOWER" ], "location": "under", - "breaks_into": [ { "item": "scrap", "count": [ 2, 5 ] }, { "item": "plastic_chunk", "count": [ 1, 5 ] } ], - "damage_reduction": { "all": 24 } + "breaks_into": [ { "item": "scrap", "count": [ 2, 5 ] }, { "item": "plastic_chunk", "count": [ 1, 5 ] } ] }, { "type": "vehicle_part", @@ -2880,8 +2710,7 @@ "difficulty": 4, "location": "anywhere", "flags": [ "WATER_PURIFIER", "TOOL_SCREWDRIVER" ], - "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] } ], - "damage_reduction": { "all": 26 } + "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] } ] }, { "type": "vehicle_part", @@ -2900,8 +2729,7 @@ "power": -300, "transform_terrain": { "pre_flags": [ "PLOWABLE" ], "post_terrain": "t_dirtmound" }, "flags": [ "TRANSFORM_TERRAIN", "PLOW", "EXTRA_DRAG" ], - "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] } ], - "damage_reduction": { "all": 46 } + "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] } ] }, { "type": "vehicle_part", @@ -2920,8 +2748,7 @@ "size": 50, "power": -700, "flags": [ "PLANTER", "PROTRUSION", "CARGO", "EXTRA_DRAG" ], - "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 2 ] } ], - "damage_reduction": { "all": 16 } + "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 2 ] } ] }, { "type": "vehicle_part", @@ -2945,8 +2772,7 @@ { "item": "e_scrap", "count": [ 4, 10 ] }, { "item": "plastic_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 2 ] } - ], - "damage_reduction": { "all": 18 } + ] }, { "type": "vehicle_part", @@ -2965,8 +2791,7 @@ "difficulty": 4, "location": "structure", "flags": [ "REAPER", "PROTRUSION", "EXTRA_DRAG" ], - "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 2, 4 ] } ], - "damage_reduction": { "all": 10 } + "breaks_into": [ { "item": "plastic_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 2, 4 ] } ] }, { "type": "vehicle_part", @@ -2992,8 +2817,7 @@ { "item": "e_scrap", "count": [ 4, 10 ] }, { "item": "plastic_chunk", "count": [ 1, 3 ] }, { "item": "scrap", "count": [ 2, 6 ] } - ], - "damage_reduction": { "all": 12 } + ] }, { "type": "vehicle_part", @@ -3010,8 +2834,7 @@ "difficulty": 1, "location": "on_lockable_cargo", "flags": [ "CARGO_LOCKING", "FOLDABLE", "INTERNAL", "TOOL_SCREWDRIVER" ], - "breaks_into": [ { "item": "clockworks", "count": [ 0, 2 ] }, { "item": "scrap", "count": [ 2, 6 ] } ], - "damage_reduction": { "all": 60 } + "breaks_into": [ { "item": "clockworks", "count": [ 0, 2 ] }, { "item": "scrap", "count": [ 2, 6 ] } ] }, { "type": "vehicle_part", @@ -3022,7 +2845,7 @@ "broken_symbol": "X", "broken_color": "light_gray", "damage_modifier": 80, - "durability": 320, + "durability": 400, "description": "A rotating, universal mount for a weapon. If your hands are empty, you can stand next to a turret mount and 'f'ire the weapon by selecting the tile.", "item": "turret_mount", "difficulty": 2, @@ -3032,7 +2855,6 @@ "repair": { "skills": [ [ "mechanics", 1 ] ], "time": 30000, "using": [ [ "welding_standard", 5 ] ] } }, "flags": [ "TURRET_MOUNT" ], - "breaks_into": [ { "item": "scrap", "count": [ 1, 4 ] } ], - "damage_reduction": { "all": 54 } + "breaks_into": [ { "item": "scrap", "count": [ 1, 4 ] } ] } ] diff --git a/data/json/vehicleparts/wheel.json b/data/json/vehicleparts/wheel.json index e21976eacc700..8d4020b0461af 100644 --- a/data/json/vehicleparts/wheel.json +++ b/data/json/vehicleparts/wheel.json @@ -15,8 +15,7 @@ "rolling_resistance": 0.375, "wheel_type": "rigid", "contact_area": 80, - "flags": [ "WHEEL" ], - "damage_reduction": { "all": 66 } + "flags": [ "WHEEL" ] }, { "id": "rail_wheel", @@ -34,8 +33,7 @@ "rolling_resistance": 0.25, "wheel_type": "rail", "contact_area": 80, - "flags": [ "WHEEL", "RAIL" ], - "damage_reduction": { "all": 66 } + "flags": [ "WHEEL", "RAIL" ] }, { "id": "rail_wheel_steerable", @@ -66,7 +64,7 @@ "flags": [ "ARMOR", "OBSTACLE", "WHEEL", "STEERABLE" ], "wheel_type": "rigid", "contact_area": 400, - "damage_reduction": { "all": 280 } + "damage_reduction": { "all": 10000 } }, { "id": "wheel", @@ -89,8 +87,7 @@ "rolling_resistance": 1, "wheel_type": "standard", "contact_area": 153, - "flags": [ "WHEEL" ], - "damage_reduction": { "bash": 20 } + "flags": [ "WHEEL" ] }, { "id": "wheel_steerable", @@ -106,8 +103,7 @@ "name": "racing slick", "item": "wheel_slick", "wheel_type": "racing", - "contact_area": 180, - "damage_reduction": { "bash": 12 } + "contact_area": 180 }, { "id": "wheel_slick_steerable", @@ -138,8 +134,7 @@ "rolling_resistance": 0.6, "wheel_type": "standard", "contact_area": 480, - "flags": [ "WHEEL" ], - "damage_reduction": { "all": 60, "cut": 30, "stab": 16 } + "flags": [ "WHEEL" ] }, { "id": "wheel_armor_steerable", @@ -166,8 +161,7 @@ "rolling_resistance": 1.62, "wheel_type": "off-road", "contact_area": 30, - "flags": [ "WHEEL", "STABLE", "TOOL_WRENCH", "STEERABLE", "FOLDABLE" ], - "damage_reduction": { "bash": 10 } + "flags": [ "WHEEL", "STABLE", "TOOL_WRENCH", "STEERABLE", "FOLDABLE" ] }, { "id": "wheel_bicycle", @@ -191,8 +185,7 @@ "rolling_resistance": 0.45, "wheel_type": "standard", "contact_area": 40, - "flags": [ "WHEEL", "FOLDABLE", "TOOL_WRENCH" ], - "damage_reduction": { "bash": 6 } + "flags": [ "WHEEL", "FOLDABLE", "TOOL_WRENCH" ] }, { "id": "wheel_bicycle_steerable", @@ -262,8 +255,7 @@ "rolling_resistance": 1.9, "wheel_type": "standard", "contact_area": 66, - "flags": [ "WHEEL" ], - "damage_reduction": { "bash": 10 } + "flags": [ "WHEEL" ] }, { "id": "wheel_motorbike_steerable", @@ -279,8 +271,7 @@ "name": "off-road motorbike wheel", "item": "wheel_motorbike_or", "contact_area": 60, - "wheel_type": "off-road", - "damage_reduction": { "bash": 10, "cut": 8, "stab": 4 } + "wheel_type": "off-road" }, { "id": "wheel_motorbike_or_steerable", @@ -338,8 +329,7 @@ "rolling_resistance": 10, "wheel_type": "standard", "contact_area": 10, - "flags": [ "STABLE", "STEERABLE", "TOOL_WRENCH", "WHEEL" ], - "damage_reduction": { "bash": 8 } + "flags": [ "STABLE", "STEERABLE", "TOOL_WRENCH", "WHEEL" ] }, { "id": "wheel_unicycle", @@ -363,8 +353,7 @@ "rolling_resistance": 0.45, "wheel_type": "standard", "contact_area": 20, - "flags": [ "WHEEL", "STABLE", "FOLDABLE", "TOOL_WRENCH", "STEERABLE" ], - "damage_reduction": { "bash": 8 } + "flags": [ "WHEEL", "STABLE", "FOLDABLE", "TOOL_WRENCH", "STEERABLE" ] }, { "id": "wheel_wheelchair", @@ -388,8 +377,7 @@ "rolling_resistance": 1.95, "wheel_type": "racing", "contact_area": 40, - "flags": [ "WHEEL", "STABLE", "FOLDABLE", "TOOL_WRENCH", "STEERABLE" ], - "damage_reduction": { "bash": 6 } + "flags": [ "WHEEL", "STABLE", "FOLDABLE", "TOOL_WRENCH", "STEERABLE" ] }, { "id": "wheel_wide", @@ -412,8 +400,7 @@ "rolling_resistance": 0.575, "wheel_type": "standard", "contact_area": 360, - "flags": [ "WHEEL" ], - "damage_reduction": { "bash": 25 } + "flags": [ "WHEEL" ] }, { "id": "wheel_wide_steerable", @@ -429,8 +416,7 @@ "name": "off-road wide wheel", "item": "wheel_wide_or", "wheel_type": "off-road", - "contact_area": 320, - "damage_reduction": { "bash": 20, "cut": 15, "stab": 10 } + "contact_area": 320 }, { "id": "wheel_wide_or_steerable", @@ -461,8 +447,7 @@ "rolling_resistance": 2.15, "wheel_type": "rigid", "contact_area": 60, - "flags": [ "WHEEL" ], - "damage_reduction": { "all": 14 } + "flags": [ "WHEEL" ] }, { "id": "wheel_wood_b", @@ -477,7 +462,6 @@ { "item": "scrap", "count": [ 1, 2 ] } ], "rolling_resistance": 2.05, - "proportional": { "durability": 2, "damage_modifier": 2 }, - "damage_reduction": { "all": 20 } + "proportional": { "durability": 2, "damage_modifier": 2 } } ] diff --git a/data/json/vehicles/emergency.json b/data/json/vehicles/emergency.json index 37c1456834dce..80a3a127a6295 100644 --- a/data/json/vehicles/emergency.json +++ b/data/json/vehicles/emergency.json @@ -23,7 +23,7 @@ { "x": 0, "y": 0, "part": "dashboard" }, { "x": 0, "y": 0, "part": "vehicle_clock" }, { "x": 0, "y": 0, "part": "vehicle_alarm" }, - { "x": 0, "y": 0, "part": "horn_big" }, + { "x": 0, "y": 0, "part": "horn_car" }, { "x": 0, "y": 0, "part": "roof" }, { "x": 0, "y": 2, "part": "frame_vertical_2" }, { "x": 0, "y": 2, "part": "seat" }, @@ -1187,7 +1187,9 @@ "items": [ { "x": 0, "y": 1, "chance": 14, "items": [ "dog_whistle" ] }, { "x": -2, "y": 0, "chance": 7, "item_groups": [ "cop_gear" ] }, + { "x": -2, "y": 0, "chance": 4, "items": [ "dogfood_canned" ] }, { "x": -2, "y": 1, "chance": 7, "item_groups": [ "cop_gear" ] }, + { "x": -2, "y": 1, "chance": 4, "items": [ "dogfood_canned" ] }, { "x": -3, "y": 0, "chance": 10, "items": [ "blanket" ] }, { "x": -3, "y": 1, "chance": 10, "items": [ "blanket" ] } ] diff --git a/data/json/vehicles/trucks.json b/data/json/vehicles/trucks.json index 19a7d96962a92..081db2ae45384 100644 --- a/data/json/vehicles/trucks.json +++ b/data/json/vehicles/trucks.json @@ -891,10 +891,10 @@ { "x": -2, "y": 1, "chance": 20, "items": [ "blanket" ] }, { "x": -3, "y": 0, "chance": 20, "items": [ "blanket" ] }, { "x": -3, "y": 1, "chance": 20, "items": [ "blanket" ] }, - { "x": -4, "y": 0, "chance": 10, "items": { "item": "dog_food", "container-item": "can_food" } }, - { "x": -4, "y": 0, "chance": 10, "items": { "item": "dog_food", "container-item": "can_food" } }, - { "x": -4, "y": 1, "chance": 10, "items": { "item": "cat_food", "container-item": "can_food" } }, - { "x": -4, "y": 1, "chance": 10, "items": { "item": "cat_food", "container-item": "can_food" } }, + { "x": -4, "y": 0, "chance": 10, "items": [ "catfood" ] }, + { "x": -4, "y": 0, "chance": 10, "items": [ "dogfood_canned" ] }, + { "x": -4, "y": 1, "chance": 10, "items": [ "catfood_canned" ] }, + { "x": -4, "y": 1, "chance": 10, "items": [ "dogfood_canned" ] }, { "x": -4, "y": 0, "chance": 3, "items": [ "beartrap" ] } ] } diff --git a/data/json/vehicles/vans_busses.json b/data/json/vehicles/vans_busses.json index 4519e3b44cd2c..45056a652e4f5 100644 --- a/data/json/vehicles/vans_busses.json +++ b/data/json/vehicles/vans_busses.json @@ -751,7 +751,6 @@ { "x": -2, "y": 0, "part": "frame_vertical_2" }, { "x": -2, "y": 0, "part": "tank", "fuel": "water_clean" }, { "x": -2, "y": 0, "part": "kitchen_unit" }, - { "x": -2, "y": 0, "part": "towel_hanger" }, { "x": -2, "y": 0, "part": "roof" }, { "x": -2, "y": 1, "part": "frame_vertical_2" }, { "x": -2, "y": 1, "part": "aisle_horizontal" }, @@ -797,7 +796,7 @@ { "x": -5, "y": -1, "part": "windshield" }, { "x": -5, "y": -1, "part": "v_curtain" }, { "x": -5, "y": 0, "part": "frame_vertical_2" }, - { "x": -5, "y": 0, "part": "dishwasher" }, + { "x": -5, "y": 0, "part": "veh_table" }, { "x": -5, "y": 0, "part": "roof" }, { "x": -5, "y": 1, "part": "frame_vertical_2" }, { "x": -5, "y": 1, "part": "aisle_horizontal" }, @@ -1235,7 +1234,6 @@ { "x": -5, "y": 2, "part": "roof" }, { "x": -5, "y": 0, "part": "frame_vertical_2" }, { "x": -5, "y": 0, "part": "kitchen_unit" }, - { "x": -5, "y": 0, "part": "towel_hanger" }, { "x": -5, "y": 0, "part": "roof" }, { "x": -5, "y": 3, "part": "frame_vertical" }, { "x": -5, "y": 3, "part": "board_vertical" }, diff --git a/data/mods/Aftershock/items/afs_comestibles.json b/data/mods/Aftershock/items/afs_comestibles.json index 4374cc626e9f4..d7b3d38ab89a7 100644 --- a/data/mods/Aftershock/items/afs_comestibles.json +++ b/data/mods/Aftershock/items/afs_comestibles.json @@ -110,8 +110,8 @@ "type": "consume_drug", "activation_message": "Your vision sharpens and your eyes widen as the sungel slams your senses.", "effects": [ - { "id": "pkill3", "duration": 120 }, - { "id": "pkill2", "duration": 1200 }, + { "id": "pkill3", "duration": 20 }, + { "id": "pkill2", "duration": 200 }, { "id": "cough_suppress", "duration": 1000 } ] } @@ -130,8 +130,8 @@ "type": "consume_drug", "activation_message": "You go limp and collapse as the sunesthesia knocks you senseless.", "effects": [ - { "id": "pkill3", "duration": 480 }, - { "id": "pkill2", "duration": 1200 }, + { "id": "pkill3", "duration": 80 }, + { "id": "pkill2", "duration": 200 }, { "id": "cough_suppress", "duration": 1000 }, { "id": "downed", "duration": 1 } ] diff --git a/data/mods/Aftershock/items/afs_tools.json b/data/mods/Aftershock/items/afs_tools.json index 14ca18088d4ab..b6e95a60d306a 100644 --- a/data/mods/Aftershock/items/afs_tools.json +++ b/data/mods/Aftershock/items/afs_tools.json @@ -127,7 +127,7 @@ "cutting": 3, "material": [ "steel", "plastic", "diamond" ], "symbol": "/", - "color": "light_red", + "color": "ltred", "ammo": "gasoline", "max_charges": 500, "charges_per_use": 1, diff --git a/data/mods/Aftershock/items/afs_weapons.json b/data/mods/Aftershock/items/afs_weapons.json index 668edcf53a8da..1780b8989011b 100644 --- a/data/mods/Aftershock/items/afs_weapons.json +++ b/data/mods/Aftershock/items/afs_weapons.json @@ -10,7 +10,7 @@ "price_postapoc": 20000, "material": [ "superalloy", "diamond" ], "symbol": "[", - "color": "light_gray", + "color": "ltgray", "ammo": "battery", "charges_per_use": 1, "use_action": { diff --git a/data/mods/Aftershock/recipes/afs_bionic_recipes.json b/data/mods/Aftershock/recipes/afs_bionic_recipes.json index e4ba280ffe77e..ff26621bd9ad6 100644 --- a/data/mods/Aftershock/recipes/afs_bionic_recipes.json +++ b/data/mods/Aftershock/recipes/afs_bionic_recipes.json @@ -298,70 +298,6 @@ "qualities": [ { "id": "SCREW_FINE", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], "components": [ [ [ "pipe", 1 ] ], [ [ "spring", 1 ] ], [ [ "plastic_chunk", 2 ] ], [ [ "nail", 1 ] ] ] }, - { - "type": "recipe", - "result": "bio_armor_head", - "category": "CC_ELECTRONIC", - "subcategory": "CSC_ELECTRONIC_CBMS", - "skill_used": "electronics", - "skills_required": [ "firstaid", 5 ], - "difficulty": 6, - "time": "50 m", - "reversible": true, - "decomp_learn": 5, - "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ], - "using": [ [ "soldering_standard", 20 ] ], - "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] - }, - { - "type": "recipe", - "result": "bio_armor_arms", - "category": "CC_ELECTRONIC", - "subcategory": "CSC_ELECTRONIC_CBMS", - "skill_used": "electronics", - "skills_required": [ "firstaid", 5 ], - "difficulty": 6, - "time": "50 m", - "reversible": true, - "decomp_learn": 5, - "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ], - "using": [ [ "soldering_standard", 20 ] ], - "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] - }, - { - "type": "recipe", - "result": "bio_armor_torso", - "category": "CC_ELECTRONIC", - "subcategory": "CSC_ELECTRONIC_CBMS", - "skill_used": "electronics", - "skills_required": [ "firstaid", 5 ], - "difficulty": 6, - "time": "50 m", - "reversible": true, - "decomp_learn": 5, - "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 5 ] ], - "using": [ [ "soldering_standard", 20 ] ], - "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] - }, - { - "type": "recipe", - "result": "bio_armor_legs", - "category": "CC_ELECTRONIC", - "subcategory": "CSC_ELECTRONIC_CBMS", - "skill_used": "electronics", - "skills_required": [ "firstaid", 5 ], - "difficulty": 6, - "time": "50 m", - "reversible": true, - "decomp_learn": 5, - "book_learn": [ [ "recipe_lab_elec", 6 ], [ "recipe_mil_augs", 6 ] ], - "using": [ [ "soldering_standard", 20 ] ], - "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "alloy_sheet", 4 ], [ "alloy_plate", 1 ] ], [ [ "burnt_out_bionic", 1 ] ] ] - }, { "type": "recipe", "result": "afs_bio_precision_solderers", diff --git a/data/mods/Aftershock/vehicles/afs_vehicle_parts.json b/data/mods/Aftershock/vehicles/afs_vehicle_parts.json index 2118a0f8beb68..38363883eecf6 100644 --- a/data/mods/Aftershock/vehicles/afs_vehicle_parts.json +++ b/data/mods/Aftershock/vehicles/afs_vehicle_parts.json @@ -4,8 +4,8 @@ "id": "afs_cargo_trough", "copy-from": "trunk", "name": "cargo trough", - "color": "light_gray", - "broken_color": "light_gray", + "color": "ltgray", + "broken_color": "ltgray", "looks_like": "trunk", "location": "center", "durability": 200, @@ -34,7 +34,7 @@ "name": "crude plating", "description": "A piece of sheet metal welded onto a vehicle as armor. Thin, and not as protective as proper armor, but it'll do if there's nothing else available.", "symbol": ")", - "color": "light_gray", + "color": "ltgray", "broken_symbol": ")", "broken_color": "dark_gray", "durability": 300, @@ -183,7 +183,7 @@ "symbol": "$", "color": "red", "broken_symbol": "$", - "broken_color": "light_gray", + "broken_color": "ltgray", "damage_modifier": 10, "durability": 400, "description": "A large and complex dashboard mounted with steering controls and several LCD touch screens for controlling vehicle systems.", diff --git a/data/mods/CRT_EXPANSION/constructions/crt_terrain.json b/data/mods/CRT_EXPANSION/constructions/crt_terrain.json index 1f1454cfb6723..8520bcb47dfff 100644 --- a/data/mods/CRT_EXPANSION/constructions/crt_terrain.json +++ b/data/mods/CRT_EXPANSION/constructions/crt_terrain.json @@ -5,7 +5,7 @@ "name": "stick wall", "description": "A cheap wall of planks and sticks with a log pillar to keep it together. It is capable of supporting an upper level or roof. Dirt and stones make the wall secure. Somewhat flammable.", "symbol": "LINE_OXOX", - "color": "brown_white", + "color": "tan", "move_cost": 0, "flags": [ "FLAMMABLE_HARD", "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL" ], "connects_to": "WALL", diff --git a/data/mods/CRT_EXPANSION/items/crt_armor.json b/data/mods/CRT_EXPANSION/items/crt_armor.json index 773c2bbe09962..b6f0274154ae7 100644 --- a/data/mods/CRT_EXPANSION/items/crt_armor.json +++ b/data/mods/CRT_EXPANSION/items/crt_armor.json @@ -167,7 +167,7 @@ "to_hit": -1, "material": [ "neoprene", "rubber", "kevlar" ], "symbol": "[", - "color": "black_green", + "color": "dark_green", "covers": [ "TORSO", "ARMS", "LEGS" ], "coverage": 100, "encumbrance": 20, diff --git a/data/mods/CRT_EXPANSION/items/crt_clothes.json b/data/mods/CRT_EXPANSION/items/crt_clothes.json index a1fd3ab9c749b..d23b7af8894c2 100644 --- a/data/mods/CRT_EXPANSION/items/crt_clothes.json +++ b/data/mods/CRT_EXPANSION/items/crt_clothes.json @@ -6,7 +6,7 @@ "name": "C.R.I.T blouse", "description": "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.", "flags": [ "COLLAR", "VARSIZE", "WATERPROOF", "STURDY", "FANCY", "ALLOWS_NATURAL_ATTACKS" ], - "color": "light_gray", + "color": "gray", "material": [ "neoprene", "kevlar" ], "warmth": 35 }, @@ -16,7 +16,7 @@ "type": "ARMOR", "name": "C.R.I.T trousers", "description": "C.R.I.T standard-issue trousers. Durable, lightweight and has ample storage. Super-flex neoprene keeps one warm in moderately cold weather.", - "color": "light_gray", + "color": "ltgray", "material": [ "neoprene", "kevlar" ], "warmth": 35, "coverage": 100, @@ -27,7 +27,7 @@ "type": "ARMOR", "name": "C.R.I.T trousers", "description": "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.", - "color": "light_gray", + "color": "ltgray", "symbol": "[", "material": [ "cotton", "neoprene" ], "warmth": 17, @@ -43,7 +43,7 @@ "type": "ARMOR", "name": "C.R.I.T helmet liner", "description": "C.R.I.T standard-issue helmet liner. Keeps the noggin warm.", - "color": "light_gray", + "color": "ltgray", "material": [ "neoprene" ], "material_thickness": 1, "warmth": 35 @@ -96,7 +96,7 @@ "type": "ARMOR", "name": "C.R.I.T web belt", "description": "C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your hip.", - "color": "blue", + "color": "dark_blue", "material": [ "leather", "brass" ], "use_action": { "type": "holster", @@ -121,7 +121,7 @@ "to_hit": -1, "material": [ "cotton", "neoprene", "rubber" ], "symbol": "[", - "color": "black_green", + "color": "dark_green", "covers": [ "TORSO", "ARMS", "LEGS" ], "coverage": 100, "encumbrance": 13, diff --git a/data/mods/CRT_EXPANSION/items/crt_gun.json b/data/mods/CRT_EXPANSION/items/crt_gun.json index bc3a113cbcd82..6aacfea3a4022 100644 --- a/data/mods/CRT_EXPANSION/items/crt_gun.json +++ b/data/mods/CRT_EXPANSION/items/crt_gun.json @@ -147,7 +147,7 @@ "type": "GUN", "reload_noise_volume": 7, "symbol": "(", - "color": "light_gray", + "color": "ltgray", "name": "pellet gun", "description": "A surprisingly powerful airgun that can reliably hunt small game. The small lead or alloy pellets that can be chambered provide it decent powet in every shot. It's fairly accurate and can be somewhat as damaging as a .22 short, but the break action charging system requires some arm strength to load a pellet.", "price": 9900, @@ -210,7 +210,7 @@ "bashing": 3, "material": [ "superalloy", "steel" ], "symbol": "(", - "color": "light_gray", + "color": "ltgray", "skill": "pistol", "range": 4, "ranged_damage": { "damage_type": "stab", "amount": 1 }, @@ -266,7 +266,7 @@ "bashing": 5, "material": [ "superalloy", "steel" ], "symbol": "(", - "color": "light_gray", + "color": "ltgray", "skill": "rifle", "range": 12, "ranged_damage": { "damage_type": "stab", "amount": 1 }, diff --git a/data/mods/CRT_EXPANSION/items/crt_toolarmor.json b/data/mods/CRT_EXPANSION/items/crt_toolarmor.json index 647c5edda72bd..740593ab0a041 100644 --- a/data/mods/CRT_EXPANSION/items/crt_toolarmor.json +++ b/data/mods/CRT_EXPANSION/items/crt_toolarmor.json @@ -159,7 +159,7 @@ "type": "TOOL_ARMOR", "name": "C.R.I.T helmet (off)", "description": "C.R.T standard-issue helmet. Protects the noggin and has a stretch of insulated steel mesh for neck warmth and protection.", - "color": "light_gray", + "color": "ltgray", "material": [ "kevlar", "hardsteel" ], "material_thickness": 2, "warmth": 20, @@ -182,7 +182,7 @@ "type": "TOOL_ARMOR", "name": "C.R.I.T helmet (on)", "description": "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 attatched to the side. This light is currently on and drawing power.", - "color": "light_gray", + "color": "ltgray", "material": [ "kevlar", "hardsteel" ], "flags": [ "WATERPROOF", diff --git a/data/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json b/data/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json index b2f9e0582df94..f5971acdf042d 100644 --- a/data/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json +++ b/data/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json @@ -29,7 +29,7 @@ "type": "COMESTIBLE", "name": "vampire serum", "description": "A super-concentrated pitch-black substance with silvery flecks that reminds you of a starry-night sky. You need a syringe to inject it... if you really want to?", - "color": "light_gray", + "color": "ltgray", "healthy": -2, "use_action": { "type": "mutagen_iv", "mutation_category": "VAMP" } }, diff --git a/data/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json b/data/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json index 9098e00c6de73..9979c93ce445f 100644 --- a/data/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json +++ b/data/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json @@ -29,7 +29,7 @@ "type": "COMESTIBLE", "name": "wendigo serum", "description": "A super-concentrated peat-brown substance with glittering green flecks that reminds you of a a tree. You need a syringe to inject it... if you really want to?", - "color": "light_gray", + "color": "ltgray", "healthy": -2, "use_action": { "type": "mutagen_iv", "mutation_category": "WENDIGO" } }, diff --git a/data/mods/CRT_EXPANSION/scenarios/crt_scenarios.json b/data/mods/CRT_EXPANSION/scenarios/crt_scenarios.json index 1bbe36c01c1e8..bdc8ac0860209 100644 --- a/data/mods/CRT_EXPANSION/scenarios/crt_scenarios.json +++ b/data/mods/CRT_EXPANSION/scenarios/crt_scenarios.json @@ -23,5 +23,11 @@ "ident": "lab_chal", "copy-from": "lab_chal", "extend": { "professions": [ "crt", "crt_engineer", "crt_employee", "crt_vamp" ] } + }, + { + "type": "scenario", + "ident": "wilderness", + "copy-from": "wilderness", + "extend": { "professions": [ "crt_normie", "crt_vamp", "crt", "crt_exile" ] } } ] diff --git a/data/mods/Hydroponics/construction.json b/data/mods/Hydroponics/construction.json index 8d2d340f2db27..eec20b81e6dbc 100644 --- a/data/mods/Hydroponics/construction.json +++ b/data/mods/Hydroponics/construction.json @@ -4,7 +4,7 @@ "description": "Build Hydroponics", "category": "CONSTRUCT", "required_skills": [ [ "fabrication", 4 ], [ "survival", 2 ], [ "electronics", 2 ] ], - "time": "3 h", + "time": 180, "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ], "components": [ [ [ "pipe", 6 ], [ "xlframe", 1 ] ], @@ -21,23 +21,5 @@ ], "pre_special": "check_empty", "post_terrain": "f_hydroponics" - }, - { - "type": "construction", - "description": "Build Hydroponics Heater", - "category": "CONSTRUCT", - "required_skills": [ [ "fabrication", 4 ], [ "electronics", 3 ] ], - "time": "45 m", - "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "WRENCH", "level": 2 } ] ], - "components": [ - [ [ "plut_cell", 1 ] ], - [ [ "small_storage_battery", 1 ] ], - [ [ "element", 12 ] ], - [ [ "cable", 6 ] ], - [ [ "sheet_metal", 4 ] ], - [ [ "power_supply", 1 ] ] - ], - "pre_special": "check_empty", - "post_terrain": "f_hydro_heater" } ] diff --git a/data/mods/Hydroponics/furniture.json b/data/mods/Hydroponics/furniture.json index 0d0ea0c129cd5..64222dd4da406 100644 --- a/data/mods/Hydroponics/furniture.json +++ b/data/mods/Hydroponics/furniture.json @@ -74,41 +74,5 @@ "examine_action": "aggie_plant", "copy-from": "f_hydroponics_mature", "plant_data": { "transform": "f_hydroponics", "base": "f_hydroponics", "harvest_multiplier": 2.5 } - }, - { - "type": "furniture", - "id": "f_hydro_heater", - "name": "hydroponics heater", - "description": "This is a self-contained heater, used to warm hydroponics units.", - "symbol": "#", - "color": "light_blue", - "move_cost_mod": 1, - "required_str": 12, - "looks_like": "mountable_heater", - "flags": [ "TRANSPARENT", "FLAT", "MOUNTABLE", "EMITTER" ], - "emissions": [ "emit_hot_air2_blast" ], - "deconstruct": { - "items": [ - { "item": "small_storage_battery" }, - { "item": "element", "count": [ 10, 12 ] }, - { "item": "cable", "count": [ 4, 6 ] }, - { "item": "sheet_metal", "count": [ 2, 4 ] }, - { "item": "power_supply", "count": [ 0, 1 ] } - ] - }, - "bash": { - "str_min": 6, - "str_max": 14, - "sound": "crunch.", - "sound_fail": "whish.", - "items": [ - { "item": "small_storage_battery", "count": [ 0, 1 ] }, - { "item": "element", "count": [ 4, 12 ] }, - { "item": "cable", "count": [ 2, 6 ] }, - { "item": "sheet_metal", "count": [ 1, 3 ] }, - { "item": "scrap", "count": [ 3, 12 ] }, - { "item": "power_supply", "count": [ 0, 1 ] } - ] - } } ] diff --git a/data/mods/Hydroponics/modinfo.json b/data/mods/Hydroponics/modinfo.json index b0e3a2d65bcd1..6ee7375ff096f 100644 --- a/data/mods/Hydroponics/modinfo.json +++ b/data/mods/Hydroponics/modinfo.json @@ -5,7 +5,7 @@ "name": "Hydroponics", "authors": [ "Unknown" ], "maintainers": [ "Tiny Hippo" ], - "description": "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.", + "description": "Adds hydroponic units, a terrain which can be harvested for vegetables once a season. Spawn occasionally in labs or basements. Or build your own.", "category": "misc_additions", "dependencies": [ "dda" ] } diff --git a/data/mods/Magiclysm/Spells/debug.json b/data/mods/Magiclysm/Spells/debug.json index 629fae550317c..e6ab30a280ff6 100644 --- a/data/mods/Magiclysm/Spells/debug.json +++ b/data/mods/Magiclysm/Spells/debug.json @@ -7,7 +7,7 @@ "description": "This is a template to show off all the available values", "valid_targets": [ "hostile", "ground", "self", "ally" ], "//": "effect is only limited by what is coded.", - "effect": "none", + "effect": "shallow_pit", "//": "base_casting_time is in moves", "base_casting_time": 100, "base_energy_cost": 10, diff --git a/data/mods/Magiclysm/Spells/druid.json b/data/mods/Magiclysm/Spells/druid.json index 88ab16ada6186..01e7c1b591657 100644 --- a/data/mods/Magiclysm/Spells/druid.json +++ b/data/mods/Magiclysm/Spells/druid.json @@ -187,24 +187,6 @@ "effect": "summon", "effect_str": "mon_bear" }, - { - "id": "fungicide", - "type": "SPELL", - "name": "Kill Fungus", - "description": "Kills fungus affected areas", - "valid_targets": [ "ground", "hostile" ], - "effect": "ter_transform", - "effect_str": "fungicide", - "min_aoe": 5, - "max_aoe": 25, - "aoe_increment": 1, - "max_level": 20, - "difficulty": 4, - "energy_source": "MANA", - "base_energy_cost": 175, - "base_casting_time": 550, - "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_LEGS", "NO_HANDS" ] - }, { "id": "create_rune_druid", "type": "SPELL", diff --git a/data/mods/Magiclysm/Spells/earthshaper.json b/data/mods/Magiclysm/Spells/earthshaper.json index f835e7fb6f4a1..acda7c7aec3b6 100644 --- a/data/mods/Magiclysm/Spells/earthshaper.json +++ b/data/mods/Magiclysm/Spells/earthshaper.json @@ -163,30 +163,6 @@ "energy_source": "MANA", "effect": "projectile_attack" }, - { - "id": "move_earth", - "type": "SPELL", - "name": "Move Earth", - "description": "Your essense flows around you, and the earth follows.", - "valid_targets": [ "hostile", "ally", "ground", "self" ], - "flags": [ "SOMATIC", "LOUD" ], - "min_aoe": 1, - "max_aoe": 2, - "min_damage": 100, - "max_damage": 1, - "damage_increment": -5, - "aoe_increment": 0.25, - "base_energy_cost": 200, - "spell_class": "EARTHSHAPER", - "difficulty": 4, - "max_level": 20, - "min_range": 5, - "max_range": 5, - "base_casting_time": 100, - "energy_source": "MANA", - "effect": "ter_transform", - "effect_str": "move_earth" - }, { "id": "create_rune_earthshaper", "type": "SPELL", diff --git a/data/mods/Magiclysm/Spells/item_only.json b/data/mods/Magiclysm/Spells/item_only.json deleted file mode 100644 index 63d1e67e96f8b..0000000000000 --- a/data/mods/Magiclysm/Spells/item_only.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "id": "twisted_restore", - "type": "SPELL", - "name": "Twisted Restoration", - "\\": "Used for potion of Twisted Restoration, not castable", - "description": "This spell overclocks your heart, generating new flesh and muscle. It is unwise to use this in immediate danger, and may be fatal if done in critical condition.", - "valid_targets": [ "self" ], - "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], - "max_level": 1, - "min_damage": 10, - "max_damage": 10, - "damage_increment": 0, - "damage_type": "bio", - "difficulty": 0, - "spell_class": "NONE", - "effect": "target_attack", - "energy_source": "HP", - "base_casting_time": 30000, - "base_energy_cost": 2, - "extra_effects": [ - { "id": "light_healing" }, - { "id": "pain_damage" }, - { "id": "pain_damage" }, - { "id": "stamina_damage" }, - { "id": "stamina_damage" }, - { "id": "stamina_damage" } - ] - }, - { - "id": "twisted_restore_improved", - "type": "SPELL", - "name": "Improved Twisted Restoration", - "\\": "Used for Animist-exclusive potion, not castable", - "description": "This spell overclocks your heart, generating new flesh and muscle. It is unwise to use this in immediate danger, and may be fatal if done in critical condition. Improved brewing mitigates the strain of the spell.", - "valid_targets": [ "self" ], - "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], - "max_level": 1, - "min_damage": 8, - "max_damage": 8, - "damage_increment": 0, - "damage_type": "bio", - "difficulty": 0, - "spell_class": "NONE", - "effect": "target_attack", - "energy_source": "HP", - "base_casting_time": 12000, - "base_energy_cost": 2, - "extra_effects": [ { "id": "light_healing" }, { "id": "pain_damage" }, { "id": "stamina_damage" }, { "id": "stamina_damage" } ] - } -] diff --git a/data/mods/Magiclysm/itemgroups/itemgroups.json b/data/mods/Magiclysm/itemgroups/itemgroups.json index 8fc2fe3d24f5d..89f4c23d018f3 100644 --- a/data/mods/Magiclysm/itemgroups/itemgroups.json +++ b/data/mods/Magiclysm/itemgroups/itemgroups.json @@ -28,20 +28,12 @@ { "type": "item_group", "id": "lab_bookshelves", - "items": [ - { "group": "spellbook_loot_1", "prob": 3 }, - { "group": "magic_recipe_basic", "prob": 3 }, - { "group": "dragon_books", "prob": 3 } - ] + "items": [ { "group": "spellbook_loot_1", "prob": 3 }, [ "alchemy_basic", 3 ], { "group": "dragon_books", "prob": 3 } ] }, { "type": "item_group", "id": "mansion_books", - "items": [ - { "group": "spellbook_loot_0", "prob": 6 }, - { "group": "magic_recipe_basic", "prob": 6 }, - { "group": "dragon_books", "prob": 5 } - ] + "items": [ { "group": "spellbook_loot_0", "prob": 6 }, [ "alchemy_basic", 10 ], { "group": "dragon_books", "prob": 5 } ] }, { "type": "item_group", @@ -104,7 +96,7 @@ { "group": "spellbook_tier_1", "prob": 50 }, { "group": "spellbook_tier_2", "prob": 35 }, { "group": "spellbook_tier_3", "prob": 20 }, - { "group": "magic_recipe_basic", "prob": 50 } + [ "alchemy_basic", 30 ] ] }, { diff --git a/data/mods/Magiclysm/itemgroups/recipe_books.json b/data/mods/Magiclysm/itemgroups/recipe_books.json deleted file mode 100644 index 09bc263b1f1d0..0000000000000 --- a/data/mods/Magiclysm/itemgroups/recipe_books.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "id": "magic_recipe_basic", - "type": "item_group", - "//": "Lower tier recipes, many of which can be done with the alchemist rune. Usually has at least one recipe requiring related school rune or rune weapon", - "items": [ [ "alchemy_basic", 30 ], [ "necro_basic", 30 ] ] - } -] diff --git a/data/mods/Magiclysm/items/alchemy_items.json b/data/mods/Magiclysm/items/alchemy_items.json index 147189e850d58..82476a11f6042 100644 --- a/data/mods/Magiclysm/items/alchemy_items.json +++ b/data/mods/Magiclysm/items/alchemy_items.json @@ -11,7 +11,7 @@ "to_hit": -1, "material": "stone", "symbol": ";", - "color": "light_gray", + "color": "gray", "qualities": [ [ "HAMMER", 2 ] ], "use_action": "HAMMER", "//": "In terms of alchemy the gastrolith could serve to combie different effects, such as safely mixing together potions, or it could be used as an element of change, such as for shapechanging potions." @@ -20,7 +20,7 @@ "id": "stone_shell", "type": "GENERIC", "symbol": "*", - "color": "light_gray", + "color": "gray", "name": "stone shell", "description": "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.", "material": "stone", @@ -82,6 +82,25 @@ "qualities": [ [ "CHISEL", 1 ] ], "flags": [ "BELT_CLIP" ] }, + { + "id": "alchemy_basic", + "type": "BOOK", + "name": "A Beginner's Guide to Alchemy", + "description": "A paperback tome for the art of liquid magic, alcohol not included.", + "weight": 1000, + "volume": 3, + "price": 7900, + "bashing": 5, + "material": [ "paper" ], + "symbol": "?", + "color": "white", + "skill": "cooking", + "required_level": 3, + "max_level": 5, + "intelligence": 9, + "time": "20 m", + "fun": 1 + }, { "id": "potion_starter", "copy-from": "mixed_alcohol_strong", diff --git a/data/mods/Magiclysm/items/cast_spell_items.json b/data/mods/Magiclysm/items/cast_spell_items.json index 43a322dd1793a..02e43298a1447 100644 --- a/data/mods/Magiclysm/items/cast_spell_items.json +++ b/data/mods/Magiclysm/items/cast_spell_items.json @@ -8,7 +8,7 @@ "weight": 265, "quench": 10, "calories": 75, - "volume": "250ml", + "volume": 1, "charges": 1, "fun": -1, "healthy": 1, @@ -46,7 +46,7 @@ "weight": 265, "quench": 10, "calories": 75, - "volume": "250ml", + "volume": 1, "charges": 1, "fun": -1, "symbol": "~", @@ -81,72 +81,5 @@ "use_action": { "type": "cast_spell", "spell_id": "foxs_cunning", "no_fail": true, "level": 9 }, "type": "COMESTIBLE", "copy-from": "cats_grace_potion" - }, - { - "id": "animist_doll_zombie", - "name": "zombie voodoo doll", - "description": "A remarkably accurate effigy of an undead human, including pieces of bone and organs. Necromantic magic delays immediate rot, but it won't last forever. Piercing it with the attached needle could compel it to serve you.", - "use_action": { "type": "cast_spell", "spell_id": "summon_zombie", "no_fail": true, "level": 12 }, - "type": "COMESTIBLE", - "comestible_type": "FOOD", - "category": "weapons", - "material": [ "leather", "flesh", "bone" ], - "weight": 225, - "volume": "700ml", - "symbol": "t", - "color": "pink", - "stack_size": 1, - "spoils_in": "4 days", - "flags": [ "TRADER_AVOID", "INEDIBLE" ] - }, - { - "id": "animist_doll_skeleton", - "name": "ossified voodoo doll", - "description": "A remarkably accurate effigy of an undead human covered with bone, including pieces of organs. Necromantic magic delays immediate rot, but it won't last forever. Piercing it with the attached needle could compel it to serve you.", - "use_action": { "type": "cast_spell", "spell_id": "summon_skeleton", "no_fail": true, "level": 10 }, - "type": "TOOL", - "category": "weapons", - "copy-from": "animist_doll_zombie" - }, - { - "id": "animist_doll_decayed_pouncer", - "name": "cougar voodoo doll", - "description": "A remarkably accurate effigy of an undead cougar, complete with fur, bones, and organs. Necromantic magic delays immediate rot, but it won't last forever. Piercing it with the attached needle could compel it to serve you.", - "use_action": { "type": "cast_spell", "spell_id": "summon_decayed_pouncer", "no_fail": true, "level": 13 }, - "type": "TOOL", - "category": "weapons", - "material": [ "fur", "flesh", "bone" ], - "copy-from": "animist_doll_skeleton" - }, - { - "id": "twisted_restore_potion", - "name": "potion of Twisted Restoration", - "description": "This foul-smelling liquid simulates undead regeneration by accelerating your heart to dangerous levels. Drinking this in danger or at critical condition may be lethal.", - "use_action": { "type": "cast_spell", "spell_id": "twisted_restore", "no_fail": true, "level": 1 }, - "type": "COMESTIBLE", - "weight": 265, - "quench": -30, - "calories": 100, - "volume": "250ml", - "charges": 5, - "fun": -5, - "healthy": -1, - "symbol": "~", - "container": "flask_glass", - "color": "brown", - "spoils_in": "5 days", - "comestible_type": "DRINK", - "flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE" ], - "phase": "liquid", - "price": 2500, - "freezing_point": 10 - }, - { - "id": "twisted_restore_potion_improved", - "name": "potion of Improved Twisted Restoration", - "description": "This foul-smelling liquid simulates undead regeneration by accelerating your heart to dangerous levels. Drinking this in danger or at critical condition may be lethal. Improved infusion techniques lessen the strain of the process.", - "use_action": { "type": "cast_spell", "spell_id": "twisted_restore_improved", "no_fail": true, "level": 1 }, - "type": "COMESTIBLE", - "copy-from": "twisted_restore_potion" } ] diff --git a/data/mods/Magiclysm/items/class_runes.json b/data/mods/Magiclysm/items/class_runes.json index 7d4671ed64858..6a0e5de802261 100644 --- a/data/mods/Magiclysm/items/class_runes.json +++ b/data/mods/Magiclysm/items/class_runes.json @@ -12,26 +12,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "id": "rune_biomancer_weapon", - "type": "GENERIC", - "name": "Biomancer spear", - "plural": "Biomancer spears", - "\\": "Effectively a durable stone spear +1 with IMPALE tech. based off Wicked Bonespear. Lorewise, it would make sense for novice Biomancers to be developing their skills in spears so they can adequately use the Bonespear(No whips/REACH3 for you!) once they're proficient enough to summon one. Should be weaker than other school weapons DPSwise due to reach.", - "description": "A grotesque bone spearhead on a stout wooden pole. There is a Biomancer rune embedded at the base of the head.", - "weight": 988, - "volume": "1250 ml", - "price": 3900, - "to_hit": 2, - "bashing": 6, - "cutting": 15, - "material": [ "wood", "bone" ], - "symbol": "/", - "color": "light_gray", - "techniques": [ "WBLOCK_1", "IMPALE" ], - "qualities": [ [ "COOK", 1 ] ], - "flags": [ "SPEAR", "REACH_ATTACK", "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ] - }, { "id": "rune_technomancer", "type": "TOOL", @@ -45,26 +25,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "id": "rune_technomancer_weapon", - "type": "GENERIC", - "name": "Technomancer toolbar", - "plural": "Technomancer toolbars", - "\\": "Combat stats based off crowbar +1, techniques off Halligan bar(closest non-magical substitute), weight based on 75% of hammer & wrench(since their handles aren't included) + 100% crowbar with benefit from +1 enchantment", - "description": "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.", - "weight": 1536, - "volume": "1750 ml", - "price": 3900, - "to_hit": 1, - "bashing": 15, - "cutting": 1, - "material": [ "steel" ], - "symbol": "/", - "color": "light_gray", - "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], - "qualities": [ [ "PRY", 3 ], [ "HAMMER", 3 ], [ "HAMMER_FINE", 1 ], [ "WRENCH", 2 ], [ "WRENCH_FINE", 2 ] ], - "flags": [ "DURABLE_MELEE", "BELT_CLIP", "TRADER_AVOID", "MAGIC_FOCUS" ] - }, { "id": "rune_magus", "type": "TOOL", @@ -78,24 +38,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "id": "rune_magus_weapon", - "type": "GENERIC", - "name": "Magus staff", - "plural": "Magus staves", - "\\": "The classical vision of the wizard gets a classic weapon. DPS Stats are between the regular and ironshod versions. Stats are slightly worse than the QS+1 due to the glass weight slowing attack speed.", - "description": "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.", - "weight": 1530, - "volume": "1500 ml", - "price": 3900, - "to_hit": 2, - "bashing": 20, - "material": [ "wood", "diamond" ], - "symbol": "/", - "color": "brown", - "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], - "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ] - }, { "id": "rune_earthshaper", "type": "TOOL", @@ -109,24 +51,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "type": "GENERIC", - "id": "rune_earthshaper_weapon", - "symbol": "3", - "color": "light_gray", - "name": "Earthshaper cestus", - "name_plural": "Earthshaper cesti", - "\\": "Equivalent to cestus +1 with BRUTAL and WBLOCK1", - "description": "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.", - "material": [ "stone", "leather", "steel" ], - "volume": "500 ml", - "weight": 873, - "bashing": 13, - "to_hit": 1, - "qualities": [ [ "HAMMER", 1 ] ], - "techniques": [ "WBLOCK_1", "BRUTAL" ], - "flags": [ "UNARMED_WEAPON", "DURABLE_MELEE", "TRADER_AVOID", "MAGIC_FOCUS" ] - }, { "id": "rune_kelvinist", "type": "TOOL", @@ -140,27 +64,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "id": "rune_kelvinist_weapon", - "type": "GENERIC", - "name": "Kelvinist flamberge", - "plural": "Kelvinist flamberges", - "\\": "Flame-bladed sword covers half of Kelvinist's heat-cold theme. Combat stats equivalent to cutlass +1 with BRUTAL technique.", - "description": "A sword with an undulating blade, reminiscent of a flame. There is a Kelvinist rune embedded in the pommel.", - "weight": 1530, - "volume": "1250 ml", - "price": 3900, - "to_hit": 3, - "bashing": 7, - "cutting": 29, - "material": [ "wood", "steel" ], - "symbol": "/", - "color": "gray", - "techniques": [ "WBLOCK_2", "BRUTAL" ], - "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 9 ] ], - "use_action": "WEATHER_TOOL", - "flags": [ "DURABLE_MELEE", "SHEATH_SWORD", "TRADER_AVOID", "MAGIC_FOCUS", "THERMOMETER" ] - }, { "id": "rune_stormshaper", "type": "TOOL", @@ -174,27 +77,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "id": "rune_stormshaper_weapon", - "type": "GENERIC", - "name": "Stormshaper axe", - "plural": "Stormshaper axes", - "\\": "Equivalent to copper ax +1, with volume reduction so it can be sheathed like the other school weapons. Metals chosen for being two most conductive metals + balancing reasons", - "description": "A forged copper axe with silver trimmings and a wooden handle. There is a Stormshaper rune embedded in the eye.", - "weight": 3330, - "volume": "2 L", - "price": 3900, - "to_hit": 3, - "bashing": 19, - "cutting": 13, - "material": [ "wood", "copper", "silver" ], - "symbol": "/", - "color": "brown", - "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], - "qualities": [ [ "AXE", 1 ], [ "BUTCHER", -20 ] ], - "use_action": "WEATHER_TOOL", - "flags": [ "DURABLE_MELEE", "BELT_CLIP", "TRADER_AVOID", "MAGIC_FOCUS", "HYGROMETER", "BAROMETER" ] - }, { "id": "rune_druid", "type": "TOOL", @@ -208,44 +90,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "id": "rune_druid_weapon", - "type": "GUN", - "symbol": "(", - "color": "yellow", - "name": "Druid composite bow", - "\\": "Equivalent to composite bow +1 for dispersion/reload/weight/range/encumb/bash, with two mod slots added equivalent to other weapons getting techniques", - "description": "A bow made of multiple materials to maximize energy efficiency. There are two Druid runes embedded at the tips.", - "price": 32000, - "material": [ "wood", "bone" ], - "flags": [ - "FIRE_TWOHAND", - "STR_DRAW", - "RELOAD_AND_SHOOT", - "PRIMITIVE_RANGED_WEAPON", - "BELTED", - "TRADER_AVOID", - "MAGIC_FOCUS", - "DURABLE_MELEE", - "WATER_FRIENDLY" - ], - "skill": "archery", - "min_strength": 5, - "ammo": "arrow", - "weight": 360, - "volume": "1750 ml", - "bashing": 9, - "armor_data": { "covers": [ "TORSO" ], "coverage": 5, "material_thickness": 1, "encumbrance": 13 }, - "reload_noise_volume": 3, - "loudness": 6, - "ranged_damage": 5, - "range": 13, - "dispersion": 135, - "durability": 7, - "clip_size": 1, - "reload": 32, - "valid_mod_locations": [ [ "sights", 1 ], [ "accessories", 1 ], [ "dampening", 1 ] ] - }, { "id": "rune_animist", "type": "TOOL", @@ -259,25 +103,6 @@ "material": "stone", "flags": "TRADER_AVOID" }, - { - "id": "rune_animist_weapon", - "type": "GENERIC", - "name": "Animist athame", - "name_plural": "Animist athames", - "\\": "Tool qualities equivalent to steak knife, combat equiv. to copper knife + 1 w/ RAPID and BLOCK1, size/weight off combat knife +1", - "description": "A steel ritual knife used by Animists to draw blood for summoning. Their school rune is embedded in the crossguard.", - "weight": 504, - "volume": "500 ml", - "price": 3000, - "bashing": 2, - "cutting": 13, - "material": [ "wood", "steel" ], - "symbol": ";", - "color": "gray", - "techniques": [ "WBLOCK_1", "PRECISE" ], - "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 11 ] ], - "flags": [ "STAB", "SHEATH_KNIFE", "MAGIC_FOCUS", "TRADER_AVOID" ] - }, { "id": "rune_alchemist", "type": "TOOL", diff --git a/data/mods/Magiclysm/items/comestibles.json b/data/mods/Magiclysm/items/comestibles.json index 2cf55a84e0a25..4c70508fc920b 100644 --- a/data/mods/Magiclysm/items/comestibles.json +++ b/data/mods/Magiclysm/items/comestibles.json @@ -4,7 +4,7 @@ "id": "egg_owlbear_rock", "name": "owlbear egg", "weight": 2395, - "color": "light_gray", + "color": "gray", "spoils_in": "14 days", "comestible_type": "FOOD", "symbol": "0", diff --git a/data/mods/Magiclysm/items/ethereal_items.json b/data/mods/Magiclysm/items/ethereal_items.json index 2437a40a771f9..c1780c84be035 100644 --- a/data/mods/Magiclysm/items/ethereal_items.json +++ b/data/mods/Magiclysm/items/ethereal_items.json @@ -74,8 +74,7 @@ "bashing": 8, "symbol": ",", "color": "light_green", - "covers": [ "HEAD" ], - "flags": [ "LIGHT_15", "LEAK_DAM", "AURA", "SEMITANGIBLE" ] + "flags": [ "LIGHT_15", "LEAK_DAM" ] }, { "id": "magic_light", @@ -88,8 +87,7 @@ "price": 0, "symbol": ",", "color": "light_green", - "covers": [ "HEAD" ], - "flags": [ "LIGHT_5", "LEAK_DAM", "AURA", "SEMITANGIBLE" ] + "flags": [ "LIGHT_5", "LEAK_DAM" ] }, { "id": "shield_ice", diff --git a/data/mods/Magiclysm/items/recipe_books.json b/data/mods/Magiclysm/items/recipe_books.json index 6890cf6b72c7c..cc603fcf6b013 100644 --- a/data/mods/Magiclysm/items/recipe_books.json +++ b/data/mods/Magiclysm/items/recipe_books.json @@ -17,44 +17,5 @@ "intelligence": 10, "time": "32 m", "fun": 1 - }, - { - "id": "alchemy_basic", - "type": "BOOK", - "name": "A Beginner's Guide to Alchemy", - "description": "A paperback tome for the art of liquid magic, alcohol not included.", - "weight": 1000, - "volume": 3, - "price": 7900, - "bashing": 5, - "material": [ "paper" ], - "symbol": "?", - "color": "white", - "skill": "cooking", - "required_level": 3, - "max_level": 5, - "intelligence": 9, - "time": "20 m", - "fun": 1 - }, - { - "id": "necro_basic", - "type": "BOOK", - "name": "A Soulbinder's Guide to Necromancy", - "description": "A paperback tome for the art of binding undead creatures' souls to dolls, along with emulating their healing factor.", - "weight": 1000, - "volume": 3, - "price": 7900, - "bashing": 5, - "material": [ "paper" ], - "symbol": "?", - "color": "black", - "looks_like": "summon_undead_spellbook", - "skill": "tailoring", - "required_level": 4, - "max_level": 6, - "intelligence": 9, - "time": "20 m", - "fun": -2 } ] diff --git a/data/mods/Magiclysm/recipes/magic_tools.json b/data/mods/Magiclysm/recipes/magic_tools.json index e17020540cc4d..27ee31c86c44b 100644 --- a/data/mods/Magiclysm/recipes/magic_tools.json +++ b/data/mods/Magiclysm/recipes/magic_tools.json @@ -45,7 +45,7 @@ "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_TOOLS", "skill_used": "fabrication", - "skills_required": [ "spellcraft", 6 ], + "skills_required": [ "spellcraft", 4 ], "difficulty": 2, "time": "120m", "autolearn": true, diff --git a/data/mods/Magiclysm/recipes/recipe_potions.json b/data/mods/Magiclysm/recipes/recipe_potions.json index 4884b57cfdd0f..1cd2c9b7072c8 100644 --- a/data/mods/Magiclysm/recipes/recipe_potions.json +++ b/data/mods/Magiclysm/recipes/recipe_potions.json @@ -10,7 +10,7 @@ "charges": 7, "time": "120 m", "batch_time_factors": [ 75, 4 ], - "book_learn": [ [ "alchemy_basic", 3 ], [ "necro_basic", 4 ] ], + "book_learn": [ [ "alchemy_basic", 3 ] ], "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "using": [ [ "hard_liquor", 7 ] ] @@ -27,7 +27,7 @@ "batch_time_factors": [ 50, 4 ], "book_learn": [ [ "alchemy_basic", 4 ] ], "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ], [ "rune_magus_weapon", -1 ] ] ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ] ] ], "components": [ [ [ "potion_starter", 5 ] ], [ [ "hairball", 2 ] ], @@ -59,7 +59,7 @@ "batch_time_factors": [ 50, 4 ], "book_learn": [ [ "alchemy_basic", 4 ] ], "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ], [ "rune_magus_weapon", -1 ] ] ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ] ] ], "components": [ [ [ "potion_starter", 5 ] ], [ [ "sinew", 40 ] ], [ [ "adrenal_gland_large", 2 ] ] ] }, { @@ -74,7 +74,7 @@ "batch_time_factors": [ 50, 4 ], "book_learn": [ [ "alchemy_basic", 4 ] ], "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ], [ "rune_magus_weapon", -1 ] ] ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ] ] ], "components": [ [ [ "potion_starter", 5 ] ], [ @@ -116,7 +116,7 @@ "batch_time_factors": [ 50, 4 ], "book_learn": [ [ "alchemy_basic", 4 ] ], "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ], [ "rune_magus_weapon", -1 ] ] ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_magus", -1 ] ] ], "components": [ [ [ "potion_starter", 5 ] ], [ [ "brain", 2 ], [ "brain_cooked", 2 ] ], @@ -129,45 +129,5 @@ [ "handrolled_cig", 20 ] ] ] - }, - { - "type": "recipe", - "result": "twisted_restore_potion", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "cooking", - "skills_required": [ "spellcraft", 4 ], - "difficulty": 4, - "time": "60 m", - "result_mult": 5, - "batch_time_factors": [ 50, 4 ], - "book_learn": [ [ "necro_basic", 3 ] ], - "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ - [ [ "surface_heat", 10, "LIST" ] ], - [ [ "rune_alchemist", -1 ], [ "rune_animist", -1 ], [ "rune_animist_weapon", -1 ] ] - ], - "components": [ [ [ "potion_starter", 5 ] ], [ [ "blood", 3 ] ], [ [ "slime_scrap", 4 ], [ "meat_tainted", 12 ] ] ] - }, - { - "type": "recipe", - "result": "twisted_restore_potion_improved", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "cooking", - "skills_required": [ "spellcraft", 6 ], - "difficulty": 6, - "time": "60 m", - "result_mult": 5, - "batch_time_factors": [ 50, 4 ], - "book_learn": [ [ "necro_basic", 5 ] ], - "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_animist", -1 ], [ "rune_animist_weapon", -1 ] ] ], - "components": [ - [ [ "potion_starter", 5 ] ], - [ [ "blood", 5 ] ], - [ [ "slime_scrap", 5 ], [ "meat_tainted", 15 ] ], - [ [ "bandages", 5 ], [ "bandages_makeshift_bleached", 7 ], [ "bandages_makeshift_boiled", 7 ] ] - ] } ] diff --git a/data/mods/Magiclysm/recipes/weapons.json b/data/mods/Magiclysm/recipes/weapons.json deleted file mode 100644 index c245b9ae5996e..0000000000000 --- a/data/mods/Magiclysm/recipes/weapons.json +++ /dev/null @@ -1,230 +0,0 @@ -[ - { - "type": "recipe", - "result": "rune_magus_weapon", - "\\": "Forging and water included for glass heat-tempering process", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "skills_required": [ [ "spellcraft", 2 ], [ "bashing", 2 ] ], - "difficulty": 4, - "time": "360 m", - "autolearn": true, - "using": [ [ "forging_standard", 2 ] ], - "qualities": [ { "id": "CHISEL", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "water", -1 ] ], [ [ "tongs", -1 ] ] ], - "components": [ - [ [ "q_staff", 1 ] ], - [ [ "jar_glass", 2 ] ], - [ [ "rune_magus", 2 ] ], - [ [ "tallow", 2 ], [ "tallow_tainted", 2 ], [ "cooking_oil", 16 ], [ "cooking_oil2", 16 ], [ "lamp_oil", 250 ] ] - ] - }, - { - "type": "recipe", - "result": "rune_biomancer_weapon", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "skills_required": [ [ "spellcraft", 2 ], [ "piercing", 2 ] ], - "difficulty": 4, - "time": "2 m", - "autolearn": true, - "qualities": [ { "id": "CUT", "level": 1 } ], - "tools": [ [ [ "fire", -1 ] ] ], - "components": [ - [ [ "stick_long", 1 ], [ "pool_cue", 1 ] ], - [ [ "rag", 1 ], [ "felt_patch", 1 ], [ "leather", 1 ], [ "fur", 1 ] ], - [ [ "duct_tape", 20 ], [ "filament", 20, "LIST" ] ], - [ [ "bone", 3 ], [ "bone_human", 3 ], [ "bone_tainted", 6 ] ], - [ [ "rune_biomancer", 1 ] ] - ] - }, - { - "type": "recipe", - "result": "rune_animist_weapon", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "skills_required": [ [ "spellcraft", 2 ], [ "piercing", 2 ] ], - "difficulty": 4, - "time": "360 m", - "autolearn": true, - "using": [ [ "forging_standard", 2 ], [ "steel_tiny", 1 ] ], - "qualities": [ - { "id": "ANVIL", "level": 3 }, - { "id": "HAMMER", "level": 3 }, - { "id": "CHISEL", "level": 3 }, - { "id": "MANA_INFUSE", "level": 1 } - ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], - "components": [ [ [ "2x4", 1 ], [ "stick", 1 ] ], [ [ "rune_animist", 1 ] ] ] - }, - { - "type": "recipe", - "result": "rune_druid_weapon", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "skills_required": [ [ "spellcraft", 2 ], [ "archery", 2 ] ], - "difficulty": 4, - "time": "360 m", - "autolearn": true, - "qualities": [ { "id": "CUT", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "components": [ [ [ "compositebow", 1 ] ], [ [ "rune_druid", 2 ] ] ] - }, - { - "type": "recipe", - "result": "rune_technomancer_weapon", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "difficulty": 5, - "skills_required": [ [ "spellcraft", 2 ], [ "mechanics", 2 ] ], - "time": "360 m", - "autolearn": true, - "using": [ [ "forging_standard", 14 ], [ "steel_standard", 3 ] ], - "qualities": [ - { "id": "ANVIL", "level": 3 }, - { "id": "HAMMER", "level": 3 }, - { "id": "CHISEL", "level": 3 }, - { "id": "MANA_INFUSE", "level": 1 } - ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], - "components": [ [ [ "rune_technomancer", 1 ] ] ] - }, - { - "type": "recipe", - "result": "rune_stormshaper_weapon", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "difficulty": 4, - "skills_required": [ [ "spellcraft", 2 ], [ "bashing", 2 ] ], - "time": "360 m", - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "MANA_INFUSE", "level": 1 } ], - "using": [ [ "forging_standard", 5 ] ], - "components": [ - [ [ "stick", 1 ], [ "2x4", 1 ] ], - [ [ "scrap_copper", 10 ], [ "copper", 1000 ] ], - [ [ "silver", 100 ] ], - [ [ "cordage_short", 2, "LIST" ], [ "filament", 40, "LIST" ], [ "duct_tape", 40 ] ], - [ [ "rune_stormshaper", 1 ] ] - ] - }, - { - "type": "recipe", - "result": "rune_earthshaper_weapon", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "skills_required": [ [ "spellcraft", 2 ], [ "bashing", 2 ] ], - "difficulty": 4, - "time": "360 m", - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "components": [ [ [ "leather", 4 ] ], [ [ "scrap", 8 ] ], [ [ "rock", 1 ] ], [ [ "rune_earthshaper", 1 ] ] ] - }, - { - "result": "rune_kelvinist_weapon", - "type": "recipe", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "fabrication", - "difficulty": 8, - "skills_required": [ [ "spellcraft", 2 ], [ "cutting", 2 ] ], - "time": "420 m", - "autolearn": true, - "using": [ [ "forging_standard", 4 ], [ "steel_standard", 2 ] ], - "qualities": [ - { "id": "ANVIL", "level": 3 }, - { "id": "HAMMER", "level": 3 }, - { "id": "CHISEL", "level": 3 }, - { "id": "MANA_INFUSE", "level": 1 } - ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], - "components": [ [ [ "2x4", 1 ], [ "stick", 2 ] ], [ [ "fur", 2 ], [ "leather", 2 ] ], [ [ "rune_kelvinist", 1 ] ] ] - }, - { - "type": "recipe", - "result": "animist_doll_zombie", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "tailoring", - "skills_required": [ [ "spellcraft", 4 ] ], - "difficulty": 4, - "time": "120 m", - "result_mult": 3, - "book_learn": [ [ "necro_basic", 3 ] ], - "qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT_FINE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "rune_alchemist", -1 ], [ "rune_animist", -1 ], [ "rune_animist_weapon", -1 ] ] ], - "components": [ - [ [ "brain", 1 ], [ "brain_cooked", 1 ] ], - [ [ "lung", 2 ], [ "lung_cooked", 2 ] ], - [ [ "stomach", 1 ], [ "hstomach", 1 ] ], - [ [ "liver", 1 ], [ "liver_cooked", 1 ] ], - [ [ "kidney", 2 ], [ "kidney_cooked", 2 ] ], - [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], - [ [ "sinew", 60 ] ], - [ [ "bone", 1 ], [ "bone_human", 1 ], [ "bone_tainted", 2 ] ], - [ [ "bone_needle", 1 ] ] - ] - }, - { - "type": "recipe", - "result": "animist_doll_skeleton", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "tailoring", - "skills_required": [ [ "spellcraft", 5 ] ], - "difficulty": 5, - "time": "180 m", - "result_mult": 3, - "book_learn": [ [ "necro_basic", 4 ] ], - "qualities": [ - { "id": "SEW", "level": 1 }, - { "id": "CUT_FINE", "level": 1 }, - { "id": "HAMMER_FINE", "level": 1 }, - { "id": "MANA_INFUSE", "level": 1 } - ], - "tools": [ [ [ "rune_alchemist", -1 ], [ "rune_animist", -1 ], [ "rune_animist_weapon", -1 ] ] ], - "components": [ - [ [ "brain", 1 ], [ "brain_cooked", 1 ] ], - [ [ "lung", 2 ], [ "lung_cooked", 2 ] ], - [ [ "stomach", 1 ], [ "hstomach", 1 ] ], - [ [ "liver", 1 ], [ "liver_cooked", 1 ] ], - [ [ "kidney", 2 ], [ "kidney_cooked", 2 ] ], - [ [ "leather", 6 ], [ "tanned_hide", 1 ] ], - [ [ "sinew", 60 ] ], - [ [ "bone", 4 ], [ "bone_human", 4 ], [ "bone_tainted", 8 ] ], - [ [ "bone_needle", 1 ] ] - ] - }, - { - "type": "recipe", - "result": "animist_doll_decayed_pouncer", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "tailoring", - "skills_required": [ [ "spellcraft", 7 ] ], - "difficulty": 7, - "time": "210 m", - "result_mult": 3, - "book_learn": [ [ "necro_basic", 6 ] ], - "qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT_FINE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "rune_animist", -1 ], [ "rune_animist_weapon", -1 ] ] ], - "components": [ - [ [ "brain", 1 ], [ "brain_cooked", 1 ] ], - [ [ "lung", 2 ], [ "lung_cooked", 2 ] ], - [ [ "stomach", 1 ], [ "hstomach", 1 ] ], - [ [ "liver", 1 ], [ "liver_cooked", 1 ] ], - [ [ "kidney", 2 ], [ "kidney_cooked", 2 ] ], - [ [ "fur", 6 ], [ "tanned_pelt", 1 ] ], - [ [ "hairball", 2 ] ], - [ [ "sinew", 60 ] ], - [ [ "bone", 1 ], [ "bone_human", 1 ], [ "bone_tainted", 2 ] ], - [ [ "bone_needle", 1 ] ] - ] - } -] diff --git a/data/mods/Magiclysm/ter_fur_transform/ter_fur_transform.json b/data/mods/Magiclysm/ter_fur_transform/ter_fur_transform.json deleted file mode 100644 index 1841135172a0a..0000000000000 --- a/data/mods/Magiclysm/ter_fur_transform/ter_fur_transform.json +++ /dev/null @@ -1,88 +0,0 @@ -[ - { - "type": "ter_furn_transform", - "id": "move_earth", - "fail_message": "The earth here does not listen to your command to move.", - "terrain": [ - { "result": "t_hole", "valid_terrain": [ "t_pit", "t_slope_down" ], "message": "The pit has deepened further." }, - { - "result": "t_pit", - "valid_terrain": [ - "t_pit_corpsed", - "t_pit_covered", - "t_pit_glass", - "t_pit_glass_covered", - "t_pit_spiked", - "t_pit_spiked_covered", - "t_rootcellar", - "t_pit_shallow" - ], - "message": "More debris shifts out of the pit." - }, - { - "result": "t_pit_shallow", - "valid_terrain": [ - "t_grave", - "t_dirt", - "t_sand", - "t_clay", - "t_dirtmound", - "t_grass", - "t_grass_long", - "t_grass_tall", - "t_grass_dead", - "t_grass_white", - "t_dirtfloor", - "t_fungus_floor_in", - "t_fungus_floor_sup", - "t_fungus_floor_out", - "t_sandbox" - ], - "message": "The earth moves out of the way for you." - }, - { - "result": "t_sand", - "valid_terrain": [ - "t_pavement", - "t_pavement_y", - "t_sidewalk", - "t_concrete", - "t_thconc_floor", - "t_thconc_floor_olight", - "t_strconc_floor", - "t_floor", - "t_floor_waxed", - "t_carpet_red", - "t_carpet_yellow", - "t_carpet_purple", - "t_carpet_green", - "t_linoleum_white", - "t_linoleum_gray", - "t_slope_up", - "t_rock_red", - "t_rock_blue", - "t_floor_red", - "t_floor_green", - "t_floor_blue", - "t_pavement_bg_dp", - "t_pavement_y_bg_dp", - "t_sidewalk_bg_dp" - ], - "message": "The rocks here are ground into sand." - }, - { "result": "t_rock_floor", "valid_terrain": [ "t_rock" ], "message": "The rock crumbles to dust." }, - { - "result": "t_hole", - "valid_terrain": [ "t_null" ], - "message": "All the dust in the air here falls to the ground.", - "message_good": false - } - ] - }, - { - "type": "ter_furn_transform", - "id": "fungicide", - "terrain": [ { "result": "t_dirt_barren", "valid_flags": [ "FUNGUS" ], "message": "The fungus here dies back." } ], - "furniture": [ { "result": "f_null", "valid_flags": [ "FUNGUS" ], "message": "The fungus here dies back." } ] - } -] diff --git a/data/mods/Magiclysm/terrain.json b/data/mods/Magiclysm/terrain.json index d00b3d1cfca2d..f15e95838fd3b 100644 --- a/data/mods/Magiclysm/terrain.json +++ b/data/mods/Magiclysm/terrain.json @@ -48,17 +48,5 @@ "roof": "t_flat_roof", "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], "connects_to": "WALL" - }, - { - "type": "terrain", - "id": "t_dirt_barren", - "name": "barren dirt", - "description": "It's dirt. The ground here is infertile. Could also be dug out for construction projects.", - "symbol": ".", - "color": "brown", - "move_cost": 2, - "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], - "looks_like": "t_dirt", - "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } } ] diff --git a/data/mods/Medieval_Stuff/item_groups.json b/data/mods/Medieval_Stuff/item_groups.json index cd7ae857fb719..c1b08ddc94c99 100644 --- a/data/mods/Medieval_Stuff/item_groups.json +++ b/data/mods/Medieval_Stuff/item_groups.json @@ -31,6 +31,11 @@ [ "shield_buckler", 5 ] ] }, + { + "id": "museum_melee", + "type": "item_group", + "items": [ [ "ji", 2 ], [ "dao", 3 ], [ "sword_xiphos", 4 ], [ "khopesh", 4 ], [ "spear_dory", 3 ] ] + }, { "id": "museum_guns", "type": "item_group", @@ -41,6 +46,11 @@ "type": "item_group", "items": [ [ "fire_lance", 2 ], [ "lance_charge", 1 ], [ "lance_charge_shot", 1 ] ] }, + { + "id": "mansion_books", + "type": "item_group", + "items": [ [ "manual_swordsmanship", 3 ] ] + }, { "id": "museum_armor", "type": "item_group", diff --git a/data/mods/Medieval_Stuff/tools.json b/data/mods/Medieval_Stuff/tools.json index 8d966ee09ab08..cc3f870f26e04 100644 --- a/data/mods/Medieval_Stuff/tools.json +++ b/data/mods/Medieval_Stuff/tools.json @@ -18,5 +18,81 @@ "techniques": [ "WBLOCK_2" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ] + }, + { + "id": "sword_xiphos", + "type": "TOOL", + "category": "weapons", + "name": "xiphos", + "name_plural": "xiphoses", + "description": "A bronze sword of ancient Greek origin, wielded as a sidearm to the dory spear.", + "weight": 800, + "volume": 8, + "price": 12000, + "to_hit": 2, + "bashing": 8, + "cutting": 20, + "material": "bronze", + "symbol": "!", + "color": "yellow", + "techniques": [ "WBLOCK_2" ], + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], + "flags": [ "SHEATH_SWORD", "DURABLE_MELEE" ] + }, + { + "id": "khopesh", + "type": "TOOL", + "category": "weapons", + "name": "khopesh", + "name_plural": "khopeshes", + "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, + "volume": 7, + "price": 12000, + "to_hit": 1, + "bashing": 7, + "cutting": 19, + "material": "bronze", + "symbol": "/", + "color": "yellow", + "techniques": [ "WBLOCK_2", "DEF_DISARM" ], + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], + "flags": [ "DURABLE_MELEE" ] + }, + { + "id": "dao", + "type": "TOOL", + "category": "weapons", + "name": "dao", + "name_plural": "dao", + "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, + "volume": 7, + "price": 12500, + "to_hit": 2, + "bashing": 10, + "cutting": 26, + "material": "bronze", + "symbol": "/", + "color": "yellow", + "techniques": [ "WBLOCK_2" ], + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], + "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ] + }, + { + "id": "anvil_bronze", + "type": "TOOL", + "name": "bronze anvil", + "description": "This is a block of oddly shaped bronze with a chisel-like projection set into the corner. It's used in most metalworking fabrication recipes.", + "weight": 2180, + "volume": 10, + "price": 60000, + "to_hit": -5, + "bashing": 20, + "material": "bronze", + "symbol": ";", + "color": "yellow", + "qualities": [ [ "ANVIL", 2 ] ], + "flags": [ "DURABLE_MELEE" ] } ] diff --git a/data/mods/More_Locations/refugee_faction/refugee_item_groups.json b/data/mods/More_Locations/refugee_faction/refugee_item_groups.json index a82a9bbef3eab..714de60a51dae 100644 --- a/data/mods/More_Locations/refugee_faction/refugee_item_groups.json +++ b/data/mods/More_Locations/refugee_faction/refugee_item_groups.json @@ -147,11 +147,11 @@ }, { "collection": [ - { "item": "gold_ring", "prob": 15 }, + { "item": "ring", "prob": 15 }, { "item": "diamond_ring", "prob": 15 }, { "item": "gold_ear", "prob": 15 }, { "item": "silver_ear", "prob": 15 }, - { "item": "silver_necklace", "prob": 15 } + { "item": "necklace", "prob": 15 } ], "prob": 10 } diff --git a/data/mods/Mundane_Zombies/modinfo.json b/data/mods/Mundane_Zombies/modinfo.json index ea5fc653871d5..14f4c87f615b9 100644 --- a/data/mods/Mundane_Zombies/modinfo.json +++ b/data/mods/Mundane_Zombies/modinfo.json @@ -62,11 +62,7 @@ "mon_zombie_grenadier", "mon_zombie_grenadier_elite", "mon_zombie_soldier_acid_1", - "mon_zombie_soldier_acid_2", - "mon_zombie_gasbag_fungus", - "mon_zombie_smoker_fungus", - "mon_skeleton_hulk_fungus", - "mon_skeleton_electric" + "mon_zombie_soldier_acid_2" ] } ] diff --git a/data/mods/Salvaged_Robots/monster_attacks.json b/data/mods/Salvaged_Robots/monster_attacks.json index ecbfa16a22ef6..96dfb8e8691e1 100644 --- a/data/mods/Salvaged_Robots/monster_attacks.json +++ b/data/mods/Salvaged_Robots/monster_attacks.json @@ -6,7 +6,7 @@ "cooldown": 5, "move_cost": 150, "damage_max_instance": [ { "damage_type": "stab", "amount": 5, "armor_penetration": 15, "armor_multiplier": 0.2 } ], - "effects": [ { "id": "pkill3", "duration": 300 }, { "id": "pkill2", "duration": 600 } ], + "effects": [ { "id": "pkill3", "duration": 50 }, { "id": "pkill2", "duration": 100 } ], "hit_dmg_u": "The %1$s injects you with a syringe!", "hit_dmg_npc": "The %1$s injects with a syringe!", "no_dmg_msg_u": "The %1$s tries to inject you, but fails to penetrate your armor!", diff --git a/data/mods/blazemod/blaze_test.json b/data/mods/blazemod/blaze_test.json index 54264e03b47c7..e6ec1333495a5 100644 --- a/data/mods/blazemod/blaze_test.json +++ b/data/mods/blazemod/blaze_test.json @@ -663,7 +663,6 @@ "difficulty": 8, "durability": 400, "size": 40000, - "cargo_weight_modifier": 0, "breaks_into": [ ], "flags": [ "CARGO", "COVERED", "UNMOUNT_ON_DAMAGE" ] }, diff --git a/data/mods/desert_region/desert_regional_map_settings.json b/data/mods/desert_region/desert_regional_map_settings.json index 4e9d72e617aaf..497cdfe99f56a 100644 --- a/data/mods/desert_region/desert_regional_map_settings.json +++ b/data/mods/desert_region/desert_regional_map_settings.json @@ -111,8 +111,7 @@ "overmap_lake_settings": { "noise_threshold_lake": 0.5, "lake_size_min": 10, - "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ], - "shore_extendable_overmap_terrain_aliases": [ ] + "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ] }, "overmap_forest_settings": { "noise_threshold_forest": 0.5, diff --git a/data/mods/fast_healing/meds.json b/data/mods/fast_healing/meds.json index 44957fb20e05b..23905ae0cc3ba 100644 --- a/data/mods/fast_healing/meds.json +++ b/data/mods/fast_healing/meds.json @@ -11,7 +11,6 @@ "type": "COMESTIBLE", "copy-from": "antibiotics", "name": "antibiotics", - "plural_name": "antibiotics", "use_action": "STRONG_ANTIBIOTIC" } ] diff --git a/data/mods/more_classes_scenarios/cs_classes.json b/data/mods/more_classes_scenarios/cs_classes.json index 640d78649c13e..3845db922cdc6 100644 --- a/data/mods/more_classes_scenarios/cs_classes.json +++ b/data/mods/more_classes_scenarios/cs_classes.json @@ -288,7 +288,7 @@ "pants", "socks", "dress_shoes", - "tie_skinny", + "skinny_tie", "tieclip", "fancy_sunglasses", "knit_scarf", diff --git a/data/motd/ru.motd b/data/motd/ru.motd index 4df8b00b6e566..826198d07fea4 100644 --- a/data/motd/ru.motd +++ b/data/motd/ru.motd @@ -12,72 +12,10 @@ Участвуйте в обсуждениях на форумах и чатах: * Discourse: https://discourse.cataclysmdda.org/ -* Discord: https://discord.gg/jFEc7Yp +* Discord: https://discord.gg/jFEc7Yp * IRC: #CataclysmDDA at freenode.net * Reddit (неофициальный): https://www.reddit.com/r/cataclysmdda/ Остальные полезные ссылки можно найти на нашем сайте. Во время игры доступ к настройкам можно получить через главное меню (Esc). - -****************************************************************************** - Дисклеймер по экспериментальным версиям: -****************************************************************************** -В: Что такое экспериментальная версия? -О: Экспериментальные версии - вторая ступень контроля качества разработки. -В них происходит тестирование и балансировка нового контента, добавленного -после первоначального контроля качества, осуществляемого на площадке GitHub -руководителями проекта и ключевыми разработчиками. Выбирая для игры -экспериментальные версии, вы фактически принимаете участие в разработке -посредством игрового тестирования новых игровых механик и контента, так как -они зачастую могут вызывать баги и иметь недоделанные функции. - -В: Для чего вообще существуют экспериментальные версии? -О: Можно считать их своего рода альфа/бета-версиями, которые обычно полны -багов и недоделанных функций. Так как разработка игры представляет собой -непрерывный процесс добавления новых или изменения старых фич, то именно с -помощью экспериментальных версий разработчики имеют возможность отлавливать -баги и балансировать различные элементы игры. В экспериментальных версиях -происходит доводка и отладка всех проблемных моментов. В связи с большим -количеством ежедневных добавлений/удалений/изменений/исправлений, имеющих -место в экспериментальных версиях, разработчики не гарантируют их общие -стабильность и баланс. Можно даже сказать, что в экспериментальных версиях -вообще ничего не гарантируется. - -В: Играбельны ли экспериментальные версии? -О: Да. Но хотя в целом экспериментальные версии являются стабильными, иногда -в них просачиваются баги, в том числе и критичные, которые могут сделать -прохождение игры невозможным, либо же испортить файл сохранения. Это бывает -довольно редко, но всё же необходимо быть к этому готовым. В связи со -сложностью и обилием ежедневной работы первоначальный контроль качества со -стороны разработчиков (перед непосредственным добавлением изменений в игру) -может не выявить такие ситуации. И в этих случаях как раз и пригождаются -экспериментальные версии, где есть возможность исправить ошибку -человеческого фактора. - -В: Что же предпочесть? Экспериментальные или стабильные версии? -О: Экспериментальные версии предлагают возможность опробовать новейший -контент, новейшие игровые механики и т.д. с ненулевой вероятностью потери -игрового прогресса в случае возникновения критичного бага. Стабильная же -версия обеспечивает отсутствие серьёзных багов, могущих сломать игру, но -в ней не будет последних наработок игрового сообщества. Решение о выборе -той или иной версии всегда остаётся за игроком. Вся ответственность при -выборе экспериментальной версии ложится на ваши плечи, имейте это в виду. -Вы можете принять некоторые меры предосторожности, например, делать бэкапы -на регулярной основе. Иногда лучше отложить обновление на несколько дней, -пока разработчики не исправят какой-нибудь серьёзный баг. - -В: Что-нибудь ещё? -О: Помните, что всё, что вы видите в игре, может быть в любое время -изменено. Все механики, весь контент считаются постоянной "работой в -процессе". Любой аспект игры, ранее считавшийся абсолютно стабильным, -в результате процесса разработки может быть изменён, что может привести -к появлению багов и, в результате, к снижению стабильности. - -В: Что делать, если я считаю перечисленные выше риски экспериментальных -версий неприемлемыми для себя? -О: В таком случае лучше играть в стабильную версию. Экспериментальные -версии подходят тем, кто осознает риски, готов мириться с возникающими -проблемами, а, может быть, даже и принять участие в их разрешении - -посредством сообщений о багах, предложений по улучшению игры или -непосредственном участии в разработке. Удачи. diff --git a/data/raw/keybindings.json b/data/raw/keybindings.json index c1bc5ce8d874b..587e2365c7114 100644 --- a/data/raw/keybindings.json +++ b/data/raw/keybindings.json @@ -782,13 +782,6 @@ "name": "Place Overmap Special", "bindings": [ { "input_method": "keyboard", "key": "s" } ] }, - { - "type": "keybinding", - "name": "View Missions", - "category": "OVERMAP", - "id": "MISSIONS", - "bindings": [ { "input_method": "keyboard", "key": "M" } ] - }, { "type": "keybinding", "id": "ROTATE", @@ -1888,12 +1881,6 @@ "category": "DEFAULTMODE", "id": "debug_visibility" }, - { - "type": "keybinding", - "name": "View Radiation Map", - "category": "DEFAULTMODE", - "id": "debug_radiation" - }, { "type": "keybinding", "name": "Switch Sidebar Style", diff --git a/doc/GAME_BALANCE.md b/doc/GAME_BALANCE.md index 5f22972423d21..fe17908ad61d4 100644 --- a/doc/GAME_BALANCE.md +++ b/doc/GAME_BALANCE.md @@ -227,8 +227,6 @@ Ammo ID | Description | Energy, J | Dmg | Base Brl | 5.45x39mm 7N22 | 57gr steel core FMJ bullet | 1461 | 38 | 16.3in | | .223 Remington | 36gr JHP bullet | 1524 | 39 | 20in |Uses 5.56 NATO barrel baseline; damage increased by 5 | 5.56x45mm M855A1 | 62gr copper core FMJBT bullet | 1843 | 43 | 20in | | -.300BLK supersonic | 125gr OTM | 1840 | 43 | 16in | -,300BLK subsonic | 220gr OTM | 675 | 26 | 16in | subsonic 7.62x54mmR | 150gr FMJ bullet | 3629 | 60 | 28in | | .308 Winchester | 168gr hollow point bullet | 3570 | 60 | 24in | | 7.62 NATO M80 | 147gr FMJ bullet | 3304 | 57 | 24in | | diff --git a/doc/JSON_FLAGS.md b/doc/JSON_FLAGS.md index 31e131016b43b..00e9fbc0f5a35 100644 --- a/doc/JSON_FLAGS.md +++ b/doc/JSON_FLAGS.md @@ -224,7 +224,6 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite - ```ACTIVE_CLOAKING``` While active, drains UPS to provide invisibility. - ```ALARMCLOCK``` Has an alarm-clock feature. - ```ALLOWS_NATURAL_ATTACKS``` Doesn't prevent any natural attacks or similar benefits from mutations, fingertip razors, etc., like most items covering the relevant body part would. -- ```AURA``` This item goes in the outer aura layer, intended for metaphysical effects. - ```BAROMETER``` This gear is equipped with an accurate barometer (which is used to measure atmospheric pressure). - ```BELTED``` Layer for backpacks and things worn over outerwear. - ```BLIND``` Blinds the wearer while worn, and provides nominal protection v. flashbang flashes. @@ -247,7 +246,6 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite - ```OUTER``` Outer garment layer. - ```OVERSIZE``` Can always be worn no matter encumbrance/mutations/bionics/etc., but prevents any other clothing being worn over this. - ```PARTIAL_DEAF``` Reduces the volume of sounds to a safe level. -- ```PERSONAL``` This item goes in the personal aura layer, intended for metaphysical effects. - ```POCKETS``` Increases warmth for hands if the player's hands are cold and the player is wielding nothing. - ```PSYSHIELD_PARTIAL``` 25% chance to protect against fear_paralyze monster attack when worn. - ```RAD_PROOF``` This piece of clothing completely protects you from radiation. @@ -258,7 +256,6 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite - ```ROLLER_ONE``` A less stable and slower version of ROLLER_QUAD, still allows the player to move faster than walking speed. - ```ROLLER_QUAD```The medium choice between ROLLER_INLINE and ROLLER_ONE, while it is more stable, and moves faster, it also has a harsher non-flat terrain penalty then ROLLER_ONE. - ```ROLLER_INLINE``` Faster, but less stable overall, the penalty for non-flat terrain is even harsher. -- ```SEMITANGIBLE``` Prevents the item from participating in the encumbrance system when worn. - ```SKINTIGHT``` Undergarment layer. - ```SLOWS_MOVEMENT``` This piece of clothing multiplies move cost by 1.1. - ```SLOWS_THIRST``` This piece of clothing multiplies the rate at which the player grows thirsty by 0.70. @@ -677,8 +674,6 @@ List of known flags, used in both `terrain.json` and `furniture.json`. - ```FIRE_50``` Uses 50 shots per firing. - ```FIRE_TWOHAND``` Gun can only be fired if player has two free hands. - ```IRREMOVABLE``` Makes so that the gunmod cannot be removed. -- ```MECH_BAT``` This is an exotic battery designed to power military mechs. -- ```MECH_WEAPON``` A built-in mech weapon, cannot be removed or have mods added / removed. - ```MOUNTED_GUN``` Gun can only be used on terrain / furniture with the "MOUNTABLE" flag. - ```NEVER_JAMS``` Never malfunctions. - ```NO_BOOM``` Cancels the ammo effect "FLAME". @@ -908,8 +903,6 @@ Multiple death functions can be used. Not all combinations make sense. - ```LARVA``` Creature is a larva. Currently used for gib and blood handling. - ```LEATHER``` May produce leather when butchered. - ```LOUDMOVES``` Mkes move noises as if ~2 sizes louder, even if flying. -- ```MECH_RECON_VISION``` This mech grants you night-vision and enhanced overmap sight radius when piloted. -- ```MILITARY_MECH``` Is a military-grade mech. - ```MILKABLE``` Produces milk when milked. - ```NIGHT_INVISIBILITY``` Monster becomes invisible if it's more than one tile away and the lighting on its tile is LL_LOW or less. Visibility is not affected by night vision. - ```NOGIB``` Does not leave gibs / meat chunks when killed with huge damage. @@ -929,7 +922,6 @@ Multiple death functions can be used. Not all combinations make sense. - ```REGENERATES_IN_DARK``` Monster regenerates very quickly in poorly lit tiles. - ```REGEN_MORALE``` Will stop fleeing if at max hp, and regen anger and morale. - ```REVIVES``` Monster corpse will revive after a short period of time. -- ```RIDEABLE_MECH``` This monster is a mech suit that can be piloted. - ```SEES``` It can see you (and will run/follow). - ```SLUDGEPROOF``` Ignores the effect of sludge trails. - ```SLUDGETRAIL``` Causes the monster to leave a sludge trap trail when moving. @@ -1014,7 +1006,6 @@ Also see `monster_attacks.json` for more special attacks, for example, impale an - ```NONE``` No special attack. - ```PARA_STING``` Shoot a paralyzing dart at the player. - ```PARROT``` Parrots the speech defined in `speech.json`, picks one of the lines randomly. "speaker" points to a monster id. -- ```PARROT_AT_DANGER``` Performs the same function as PARROT, but only if the creature sees an angry monster from a hostile faction. - ```PHOTOGRAPH``` Photograph the player. Causes a robot attack? - ```PLANT``` Fungal spores take seed and grow into a fungaloid. - ```PULL_METAL_WEAPON``` Pull weapon that's made of iron or steel from the player's hand. @@ -1032,7 +1023,7 @@ Also see `monster_attacks.json` for more special attacks, for example, impale an - ```SHRIEK_STUN``` "a stunning shriek!", causes a small bash, can cause a stun. - ```SHRIEK``` "a terrible shriek!" - ```SLIMESPRING``` Can provide a morale boost to the player, and cure bite and bleed effects. -- ```SMASH``` Smashes the target for massive damage, sending it flying for a number of tiles equal to `("melee_dice" * "melee_dice_sides" * 3) / 10`. +- ```SMASH``` Smashes the target for massive damage, sending it flying for a number of tiles equal to `("melee_dice" * "melee_dice_sides" * 3) / 10`. - ```SMG``` SMG turret fires. - ```SPIT_SAP``` Spit sap. - ```STARE``` Stare at the player and inflict teleglow. @@ -1088,7 +1079,6 @@ These branches are also the valid entries for the categories of `dreams` in `dre - ```CLASSIC``` Location is allowed when classic zombies are enabled. - ```FUNGAL``` Location is related to fungi. Used to classify location. - ```TRIFFID``` Location is related to triffids. Used to classify location. -- ```LAKE``` Location is is placed on a lake and will be ignored for placement if the overmap doesn't contain any lake terrain. - ```UNIQUE``` Location is unique and will only occur once per overmap. `occurrences` is overridden to define a percent chance (e.g. `"occurrences" : [75, 100]` is 75%) ### Overmap terrains @@ -1332,7 +1322,6 @@ Those flags are added by the game code to specific items (that specific welder, - ```TOOL_NONE``` Can be removed/installed without any tools - ```TOOL_SCREWDRIVER``` Attached with screws, can be removed/installed with a screwdriver - ```TOOL_WRENCH``` Attached with bolts, can be removed/installed with a wrench -- ```TOWEL``` Can be used to dry yourself up. - ```TRACKED``` Contributes to steering effectiveness but doesn't count as a steering axle for install difficulty and still contributes to drag for the center of steering calculation. - ```TRACK``` Allows the vehicle installed on, to be marked and tracked on map. - ```TURRET_MOUNT``` Parts with this flag are suitable for installing turrets. @@ -1342,7 +1331,6 @@ Those flags are added by the game code to specific items (that specific welder, - ```VARIABLE_SIZE``` Has 'bigness' for power, wheel radius, etc. - ```VISION``` - ```WASHING_MACHINE``` Can be used to wash filthy clothes en masse. -- ```DISHWASHER``` Can be used to wash filthy non-soft items en masse. - ```WATER_WHEEL``` Recharges vehicle batteries when in flowing water. - ```WATER_WHEEL``` Recharges vehicle batteries when submerged in moving water. - ```WELDRIG``` Acts as a welder for crafting. diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md index db1f6a60786d1..90849aaddd617 100644 --- a/doc/JSON_INFO.md +++ b/doc/JSON_INFO.md @@ -171,12 +171,9 @@ Currently, only effect names, item action names, and item category names support | cost | How many PUs it costs to use the bionic. (default: `0`) | time | How long, when activated, between drawing cost. If 0, it draws power once. (default: `0`) | description | In-game description. -| encumbrance | (_optional_) A list of body parts and how much this bionic encumber them. | canceled_mutations | (_optional_) A list of mutations/traits that are removed when this bionic is installed (e.g. because it replaces the fault biological part). | included_bionics | (_optional_) Additional bionics that are installed automatically when this bionic is installed. This can be used to install several bionics from one CBM item, which is useful as each of those can be activated independently. | included | (_optional_) Whether this bionic is included with another. If true this bionic does not require a CBM item to be defined. (default: `false`) -| env_protec | (_optional_) How much environmental protection does this bionic provide on the specified body parts. -| occupied_bodyparts | (_optional_) A list of body parts occupied by this bionic, and the number of bionic slots it take on those parts. ```C++ { @@ -187,19 +184,9 @@ Currently, only effect names, item action names, and item category names support "faulty" : false, "cost" : 0, "time" : 0, - "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"], "included_bionics": ["bio_blindfold"] -}, -{ - "id": "bio_purifier", - "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 ] ], - "env_protec": [ [ "MOUTH", 7 ] ], - "flags": [ "BIONIC_NPC_USABLE" ] } ``` @@ -270,8 +257,8 @@ The syntax listed here is still valid. | `vitamins` | Vitamins in a material. Usually overridden by item specific values. | `specific_heat_liquid` | Specific heat of a material when not frozen (J/(g K)). Default 4.186. | `specific_heat_solid` | Specific heat of a material when frozen (J/(g K)). Default 2.108. -| `latent_heat` | Latent heat of fusion for a material (J/g). Default 334. -| `freeze_point` | Freezing point of this material (F). Default 32 F ( 0 C ). +| `latent_heat` | Latent heat of a material (J/g). Default 334. +| `freeze_point` | Freezing point of this material (F). Default 32 F ( 0 C ). ```C++ { @@ -725,7 +712,6 @@ Vehicle components when installed on a vehicle. * power = base engine power in watts * bonus = bonus granted; muffler = noise reduction%, seatbelt = bonus to not being thrown from vehicle * par1 = generic value used for unique bonuses, like the headlight's light intensity */ -"cargo_weight_modifier": 33, // (Optional, default = 100) Modifies cargo weight by set percentage "fuel_type": "NULL", // (Optional, default = "NULL") Type of fuel/ammo the part consumes, as an item id "item": "wheel", // The item used to install this part, and the item obtained when removing this part @@ -1180,8 +1166,7 @@ Gun mods can be defined like this: "sub": "hotplate", // optional; this tool has the same functions as another tool "charge_factor": 5, // this tool uses charge_factor charges for every charge required in a recipe; intended for tools that have a "sub" field but use a different ammo that the original tool "charges_per_use": 1, // Charges consumed per tool use -"turns_per_charge": 20, // Charges consumed over time, deprecated in favor of power_draw -"power_draw": 50, // Energy consumption rate in mW +"turns_per_charge": 20, // Charges consumed over time "ammo": [ "NULL" ], // Ammo types used for reloading "revert_to": "torch_done", // Transforms into item when charges are expended "use_action": "firestarter" // Action performed when tool is used, see special definition below diff --git a/doc/MAGIC.md b/doc/MAGIC.md index faf9a0f5906e6..5dcb1ac8735b2 100644 --- a/doc/MAGIC.md +++ b/doc/MAGIC.md @@ -88,8 +88,6 @@ Any aoe will manifest as a circular area centered on the target, and will only d - "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. - ##### For Spells that have an attack type, these are the available damage types: * "fire" * "acid" diff --git a/doc/MAPGEN.md b/doc/MAPGEN.md index 965053ccec788..2d2fd6f7b2499 100644 --- a/doc/MAPGEN.md +++ b/doc/MAPGEN.md @@ -67,7 +67,6 @@ * 2.5.18 "graffiti" * 2.5.19 "translate_ter" * 2.5.20 "zones" - * 2.5.21 "ter_furn_transforms" * 2.6 "rotation" * 2.7 "predecessor_mapgen" * 3 update_mapgen @@ -707,11 +706,6 @@ Places a zone for an NPC faction. NPCs in the faction will use the zone to infl - "faction": (required, string) the faction id of the NPC faction that will use the zone. - "name": (optional, string) the name of the zone. -### 2.5.21 "ter_furn_transforms" -Run a `ter_furn_transform` at the specified location. This is mostly useful for applying transformations as part of -an update_mapgen, as normal mapgen can just specify the terrain directly. -- "transform": (required, string) the id of the `ter_furn_transform` to run. - # 2.6 "rotation" Rotates the generated map after all the other mapgen stuff has been done. The value can be a single integer or a range (out of which a value will be randomly chosen). Example: ```JSON diff --git a/doc/MARTIALART_JSON.md b/doc/MARTIALART_JSON.md index 1ea018d07b799..1920e5a122936 100644 --- a/doc/MARTIALART_JSON.md +++ b/doc/MARTIALART_JSON.md @@ -45,8 +45,6 @@ "req_buffs": [ "eskrima_hit_buff" ], // This technique requires a named buff to be active "crit_tec" : true, // This technique only works on a critical hit "crit_ok" : true, // This technique works on both normal and critical hits -"downed_target": true, // Technique only works on a downed target -"stunned_target": true, // Technique only works on a stunned target "knockback_dist": 1, // Distance target is knocked back "knockback_spread": 1, // The knockback may not send the target straight back "knockback_follow": 1, // Attacker will follow target if they are knocked back diff --git a/doc/MISSIONS_JSON.md b/doc/MISSIONS_JSON.md index ca9351731498e..a442984f571a4 100644 --- a/doc/MISSIONS_JSON.md +++ b/doc/MISSIONS_JSON.md @@ -51,14 +51,12 @@ Must be included, and must be one of these strings: "MGOAL_FIND_ANY_ITEM" - Find 1 or more items of a given type, tagged for this mission "MGOAL_FIND_MONSTER" - Find and retrieve a friendly monster "MGOAL_FIND_NPC" - Find a specific NPC -"MGOAL_TALK_TO_NPC" - Talk to a specific NPC "MGOAL_RECRUIT_NPC" - Recruit a specific NPC "MGOAL_RECRUIT_NPC_CLASS" - Recruit an NPC of a specific class "MGOAL_ASSASSINATE" - Kill a specific NPC "MGOAL_KILL_MONSTER" - Kill a specific hostile monster "MGOAL_KILL_MONSTER_TYPE" - Kill some number of a specific monster type "MGOAL_KILL_MONSTER_SPEC" - Kill some number of monsters from a specific species -"MGOAL_CONDITION" - Satisfy the dynamically created condition and talk to the mission giver ### monster_species For "MGOAL_KILL_MONSTER_SPEC", sets the target monster species. @@ -70,10 +68,6 @@ For "MGOAL_KILL_MONSTER_TYPE", sets the target monster type. For "MGOAL_KILL_MONSTER_SPEC" and "MGOAL_KILL_MONSTER_TYPE", sets the number of monsters above the player's current kill count that must be killed to complete the mission. -### goal_condition -For "MGOAL_CONDITION", defines the condition that must be satisified for the mission to be considered complete. -Conditions are explained in more detail in [NPCs.md](./NPCs.md), and are used here in exactly the same way. - ### dialogue This is a dictionary of strings. The NPC says these exact strings in response to the player inquiring about the mission or reporting its completion. All these strings are required, even if they may not be used in the mission. diff --git a/doc/MONSTERS.md b/doc/MONSTERS.md index 3bdfc4bb890ec..6587751fd37a4 100644 --- a/doc/MONSTERS.md +++ b/doc/MONSTERS.md @@ -250,16 +250,13 @@ Example: The upgrades object may have the following members: ### "half_life" -(int) -Time in which half of the monsters upgrade according to an approximated exponential progression. It is scaled with the evolution scaling factor which defaults to 4 days. +TODO: describe this. ### "into_group" -(string, optional) -The upgraded monster's type is taken from the specified group. The cost in these groups is for an upgrade in the spawn process (related to the rare "replace_monster_group" and "new_monster_group_id" attributes of spawning groups). +TODO: describe this. ### "into" -(string, optional) -The upgraded monster's type. +TODO: describe this. ## "special_when_hit" (array, optional) diff --git a/doc/NPCs.md b/doc/NPCs.md index e43a706671349..641fbbf05e913 100644 --- a/doc/NPCs.md +++ b/doc/NPCs.md @@ -561,7 +561,6 @@ Condition | Type | Description `"u_can_stow_weapon"`
`"npc_can_stow_weapon"` | simple string | `true` if the player character or NPC is wielding a weapon and has enough space to put it away. `"u_has_weapon"`
`"npc_has_weapon"` | simple string | `true` if the player character or NPC is wielding a weapon. `"u_driving"`
`"npc_driving"` | simple string | `true` if the player character or NPC is operating a vehicle. Note NPCs cannot currently operate vehicles. -`"u_has_skill"`
`"npc_has_skill"` | dictionary | `u_has_skill` or `npc_has_skill` must be a dictionary with a `skill` string and a `level` int.
`true` if the player character or NPC has at least the value of `level` in `skill`. #### Player Only conditions diff --git a/doc/REGION_SETTINGS.md b/doc/REGION_SETTINGS.md index 4861dc1d8a31f..8af0ba13a520b 100644 --- a/doc/REGION_SETTINGS.md +++ b/doc/REGION_SETTINGS.md @@ -89,12 +89,11 @@ are interpreted. ### Fields -| Identifier | Description | -| ------------------------------------------ | --------------------------------------------------------------------------- | -| `noise_threshold_lake` | [0, 1], x > value spawns a `lake_surface` or `lake_shore`. | -| `lake_size_min` | Minimum size of the lake in overmap terrains for it to actually spawn. | -| `shore_extendable_overmap_terrain` | List of overmap terrains that can be extended to the shore if adjacent. | -| `shore_extendable_overmap_terrain_aliases` | Overmap terrains to treat as different overmap terrain for extending shore. | +| Identifier | Description | +| ---------------------------------- | ----------------------------------------------------------------------- | +| `noise_threshold_lake` | [0, 1], x > value spawns a `lake_surface` or `lake_shore`. | +| `lake_size_min` | Minimum size of the lake in overmap terrains for it to actually spawn. | +| `shore_extendable_overmap_terrain` | List of overmap terrains that can be extended to the shore if adjacent. | ### Example @@ -103,10 +102,7 @@ are interpreted. "overmap_lake_settings": { "noise_threshold_lake": 0.25, "lake_size_min": 20, - "shore_extendable_overmap_terrain": ["forest_thick", "forest_water", "field"], - "shore_extendable_overmap_terrain_aliases": [ - { "om_terrain": "forest", "om_terrain_match_type": "TYPE", "alias": "forest_thick" } - ] + "shore_extendable_overmap_terrain": ["forest", "forest_thick", "forest_water", "field"] } } ``` diff --git a/doc/TER_FURN_TRANSFORM.md b/doc/TER_FURN_TRANSFORM.md deleted file mode 100644 index 043a68df950d2..0000000000000 --- a/doc/TER_FURN_TRANSFORM.md +++ /dev/null @@ -1,75 +0,0 @@ -# ter_furn_transform - -A ter_furn_transform is a type of json object that allows you to specify a transformation of a tile from one terrain to another terrain, and from one furniture to another furniture. - -```json -[ - { - "type": "ter_furn_transform", - "id": "example", - "terrain": [ - { - "result": "t_dirt", - "valid_terrain": [ "t_sand" ], - "message": "sandy!", - "message_good": true - } - ] - } -] -``` - -The example above turns "sand" into "dirt". It does so by comparing the direct terrain ids. In addition, we can add a fail message to the transform. -If, however, we wanted to turn sand into "dirt or grass" we can do: - -```json -"terrain": [ - { - "fail_message": "no sand!", - "result": [ "t_dirt", "t_grass" ], - "valid_terrain": [ "t_sand" ], - "message": "sandy!" - } -] -``` - -message_good is optional and defaults to true. -This example chooses either dirt or grass at a 1:1 ratio. But, if you want a 4:1 ratio: - -```json -"terrain": [ - { - "result": [ [ "t_dirt", 4 ], "t_grass" ], - "valid_terrain": [ "t_sand" ], - "message": "sandy!" - } -] -``` - -As you can see, you can mix and match arrays with weights with single strings. Each single string has a weight of 1. - -All of the above applies to furniture as well. - -```json -"furniture": [ - { - "result": [ [ "f_null", 4 ], "f_chair" ], - "valid_furniture": [ "f_hay", "f_woodchips" ], - "message": "I need a chair" - } -] -``` - -You can also use flags instead of specific IDs for both furniture and terrain. - -```json -"terrain": [ - { - "result": "t_dirt", - "valid_flags": [ "DIGGABLE" ], - "message": "digdug" - } -] -``` - -A ter_furn_transform can have both terrain and furniture fields. It treats them separately, so no "if dirt, add chair." diff --git a/gfx/HitButton_iso/tile_config.json b/gfx/HitButton_iso/tile_config.json index 4680583be6405..e124d6bdfccc7 100644 --- a/gfx/HitButton_iso/tile_config.json +++ b/gfx/HitButton_iso/tile_config.json @@ -4008,11 +4008,11 @@ "fg": 1317 }, { - "id": ["bra", "undershirt", "camisole", "waistcoat", "tshirt", "tshirt_text", "postman_shirt", "flag_shirt", "polo_shirt", "army_top", "tank_top", "bikini_top", "chestwrap", "sleeveless_trenchcoat", "vest", "chestrig", "ragpouch", "tie_skinny", "makeshift_sling", "technician_shirt_blue", "technician_shirt_ltblue", "technician_shirt_gray", "linuxtshirt", "halter_top", "makeshift_knapsack", "sports_bra", "under_armor", "bookplate" ], + "id": ["bra", "undershirt", "camisole", "waistcoat", "tshirt", "tshirt_text", "postman_shirt", "flag_shirt", "polo_shirt", "army_top", "tank_top", "bikini_top", "chestwrap", "sleeveless_trenchcoat", "vest", "chestrig", "ragpouch", "skinny_tie", "makeshift_sling", "technician_shirt_blue", "technician_shirt_ltblue", "technician_shirt_gray", "linuxtshirt", "halter_top", "makeshift_knapsack", "sports_bra", "under_armor", "bookplate" ], "fg": 1318 }, { - "id": ["overlay_worn_bra", "overlay_worn_undershirt", "overlay_worn_camisole", "overlay_worn_waistcoat", "overlay_worn_tshirt", "overlay_worn_tshirt_text", "overlay_worn_postman_shirt", "overlay_worn_flag_shirt", "overlay_worn_polo_shirt", "overlay_worn_army_top", "overlay_worn_tank_top", "overlay_worn_bikini_top", "overlay_worn_chestwrap", "overlay_worn_sleeveless_trenchcoat", "overlay_worn_vest", "overlay_worn_chestrig", "overlay_worn_ragpouch", "overlay_worn_tie_skinny", "overlay_worn_makeshift_sling", "overlay_worn_technician_shirt_blue", "overlay_worn_technician_shirt_ltblue", "overlay_worn_technician_shirt_gray", "overlay_worn_linuxtshirt", "overlay_worn_halter_top", "overlay_worn_makeshift_knapsack", "overlay_worn_sports_bra", "overlay_worn_under_armor", "bookplate" ], + "id": ["overlay_worn_bra", "overlay_worn_undershirt", "overlay_worn_camisole", "overlay_worn_waistcoat", "overlay_worn_tshirt", "overlay_worn_tshirt_text", "overlay_worn_postman_shirt", "overlay_worn_flag_shirt", "overlay_worn_polo_shirt", "overlay_worn_army_top", "overlay_worn_tank_top", "overlay_worn_bikini_top", "overlay_worn_chestwrap", "overlay_worn_sleeveless_trenchcoat", "overlay_worn_vest", "overlay_worn_chestrig", "overlay_worn_ragpouch", "overlay_worn_skinny_tie", "overlay_worn_makeshift_sling", "overlay_worn_technician_shirt_blue", "overlay_worn_technician_shirt_ltblue", "overlay_worn_technician_shirt_gray", "overlay_worn_linuxtshirt", "overlay_worn_halter_top", "overlay_worn_makeshift_knapsack", "overlay_worn_sports_bra", "overlay_worn_under_armor", "bookplate" ], "fg": 1319 }, { @@ -4656,7 +4656,7 @@ "fg": 1479 }, { - "id": ["copper_ear", "copper_bracelet", "holy_symbol", "gold_ring", "diamond_ring", "gold_ear", "gold_bracelet", "badge_detective", "gold_dental_grill", "diamond_dental_grill" ], + "id": ["copper_ear", "copper_bracelet", "holy_symbol", "ring", "diamond_ring", "gold_ear", "gold_bracelet", "badge_detective", "gold_dental_grill", "diamond_dental_grill" ], "fg": 1480 }, { @@ -4664,7 +4664,7 @@ "fg": 1481 }, { - "id": ["silver_ear", "silver_necklace", "silver_locket", "silver_bracelet", "badge_deputy", "badge_swat", "badge_cybercop", "badge_marshal", "tieclip", "collarpin", "pearl_collar", "jade_brooch" ], + "id": ["silver_ear", "necklace", "locket", "silver_bracelet", "badge_deputy", "badge_swat", "badge_cybercop", "badge_marshal", "tieclip", "collarpin", "pearl_collar", "brooch" ], "fg": 1482 }, { diff --git a/gfx/HoderTileset/tile_config.json b/gfx/HoderTileset/tile_config.json index 224e08a55bb13..282f932974ac5 100644 --- a/gfx/HoderTileset/tile_config.json +++ b/gfx/HoderTileset/tile_config.json @@ -7052,14 +7052,14 @@ "multitile" : false }, { - "id" : "gold_ring", + "id" : "ring", "fg" : 828, "bg" : 193, "rotates" : false, "multitile" : false }, { - "id" : "silver_necklace", + "id" : "necklace", "fg" : 829, "bg" : 193, "rotates" : false, diff --git a/gfx/RetroDaysTileset/tiles.png b/gfx/RetroDaysTileset/tiles.png index fc10f3ed26429..bf347489c9e42 100644 Binary files a/gfx/RetroDaysTileset/tiles.png and b/gfx/RetroDaysTileset/tiles.png differ diff --git a/gfx/tile_config_template.json b/gfx/tile_config_template.json index 8276160cbda33..ce45b75c9183a 100644 --- a/gfx/tile_config_template.json +++ b/gfx/tile_config_template.json @@ -5707,14 +5707,14 @@ "multitile":false }, { - "id": "gold_ring", + "id": "ring", "fg":-1, "bg":-1, "rotates":false, "multitile":false }, { - "id": "silver_necklace", + "id": "necklace", "fg":-1, "bg":-1, "rotates":false, diff --git a/lang/extract_json_strings.py b/lang/extract_json_strings.py index 8908e703d7355..19c37e850d1a0 100755 --- a/lang/extract_json_strings.py +++ b/lang/extract_json_strings.py @@ -205,7 +205,6 @@ def extract_harvest(item): def extract_bodypart(item): outfile = get_outfile("bodypart") - writestr(outfile, item["name"]) writestr(outfile, item["name"], context="bodypart_accusative") writestr(outfile, item["encumbrance_text"]) writestr(outfile, item["heading_singular"], item["heading_plural"]) @@ -689,12 +688,6 @@ def extract_field_type(item): for fd in item.get("intensity_levels"): if "name" in fd: writestr(outfile,fd.get("name")) - -def extract_ter_furn_transform_messages(item): - outfile = get_outfile("ter_furn_transform_messages") - writestr(outfile,item.get("fail_message")) - for terrain in item.get("terrain"): - writestr(outfile,terrain.get("message")) # these objects need to have their strings specially extracted extract_specials = { @@ -720,8 +713,7 @@ def extract_ter_furn_transform_messages(item): "talk_topic": extract_talk_topic, "gate": extract_gate, "vehicle_spawn": extract_vehspawn, - "field_type": extract_field_type, - "ter_furn_transform": extract_ter_furn_transform_messages + "field_type": extract_field_type } diff --git a/lang/po/cataclysm-dda.pot b/lang/po/cataclysm-dda.pot index f6dc288f90209..1570b1b95923b 100644 --- a/lang/po/cataclysm-dda.pot +++ b/lang/po/cataclysm-dda.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-08-11 16:22+0800\n" +"POT-Creation-Date: 2019-07-26 21:00+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -440,19 +440,6 @@ msgid "" "remove contaminants out of air and water." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "calcium carbide premix" -msgid_plural "calcium carbide premix" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for calcium carbide premix -#: lang/json/AMMO_from_json.py -msgid "" -"A powdered mixture of coke and lime ready to be smelted into usable calcium " -"carbide in an arc furnace." -msgstr "" - #: lang/json/AMMO_from_json.py msgid "coal" msgstr "" @@ -558,7 +545,7 @@ msgstr "" msgid "A bait used in traps to lure fish." msgstr "" -#: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py +#: lang/json/AMMO_from_json.py msgid "oxygen" msgstr "" @@ -614,17 +601,6 @@ msgid "" "fuel in a charcoal kiln." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "unfinished calcium carbide" -msgstr "" - -#. ~ Description for unfinished calcium carbide -#: lang/json/AMMO_from_json.py -msgid "" -"The incomplete process of converting coal and lime into calcium carbide. " -"Useless in this state/" -msgstr "" - #: lang/json/AMMO_from_json.py msgid "chain link" msgstr "" @@ -849,6 +825,59 @@ msgid "" "should shoot it soon before it burns your bow." msgstr "" +#: lang/json/AMMO_from_json.py +msgid "throwing knife" +msgid_plural "throwing knives" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for throwing knife +#: lang/json/AMMO_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." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "throwing axe" +msgstr "" + +#. ~ Description for throwing axe +#: lang/json/AMMO_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." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "lawn dart" +msgstr "" + +#. ~ Description for lawn dart +#: lang/json/AMMO_from_json.py +msgid "A large plastic dart made for outdoor games." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "frisbee" +msgstr "" + +#. ~ Description for frisbee +#: lang/json/AMMO_from_json.py +msgid "A plastic frisbee made for outdoor games." +msgstr "" + +#: lang/json/AMMO_from_json.py src/artifact.cpp +msgid "disc" +msgstr "" + +#. ~ Description for disc +#: lang/json/AMMO_from_json.py +msgid "" +"A plastic disc made for playing disc golf, it is smaller and denser then a " +"normal frisbee." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "wooden fishing spear" msgstr "" @@ -1602,20 +1631,6 @@ msgid "" "flamethrower." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "autoclave pouch" -msgid_plural "autoclave pouches" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for autoclave pouch -#: lang/json/AMMO_from_json.py -msgid "" -"This is a medical device that bears the approval of the FDA (Food and Drug " -"Administration). If used properly, these pouches can keep things sterile " -"indefinitely." -msgstr "" - #: lang/json/AMMO_from_json.py msgid "shrapnel" msgstr "" @@ -2057,44 +2072,6 @@ msgstr "" msgid "reloaded .30-06 M2 AP" msgstr "" -#: lang/json/AMMO_from_json.py -msgid ".300 AAC Blackout" -msgstr "" - -#. ~ Description for .300 AAC Blackout -#: lang/json/AMMO_from_json.py -msgid "" -".300 AAC Blackout is an intermediate cartridge that achieves ballistics " -"similar to the 7.62x39 but allows use on the AR-15 platform. The round is " -"necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It " -"requires a specific barrel, so will not work in a standard M4 or similar " -"carbine. This loading is supersonic." -msgstr "" - -#. ~ Description for .300 AAC Blackout -#: lang/json/AMMO_from_json.py -msgid "" -".300 AAC Blackout is an intermediate cartridge that achieves ballistics " -"similar to the 7.62x39 but allows use on the AR-15 platform. The round is " -"necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It " -"requires a specific barrel, so will not work in a standard M4 or similar " -"carbine. This loading is subsonic." -msgstr "" - -#: lang/json/AMMO_from_json.py -msgid "reloaded .300 AAC Blackout" -msgstr "" - -#. ~ Description for reloaded .300 AAC Blackout -#: lang/json/AMMO_from_json.py -msgid "" -".300 AAC Blackout is an intermediate cartridge that achieves ballistics " -"similar to the 7.62x39 but allows use on the AR-15 platform. The round is " -"necked-up from the 5.56mm NATO, but feeds from a STANAG magazine. It " -"requires a specific barrel, so will not work in a standard M4 or similar " -"carbine. This one has been hand-reloaded." -msgstr "" - #: lang/json/AMMO_from_json.py msgid ".308 Winchester" msgstr "" @@ -3413,17 +3390,6 @@ msgid "" "chemical thrower. Best be used with some kind of mask or mouth protection." msgstr "" -#: lang/json/AMMO_from_json.py -msgid "sprayable insecticide" -msgstr "" - -#. ~ Description for sprayable insecticide -#: lang/json/AMMO_from_json.py -msgid "" -"Strong sprayable insecticide ammo for the chemical thrower. Best be used " -"with some kind of mask or mouth protection." -msgstr "" - #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "paper cartridge" msgstr "" @@ -3525,10 +3491,6 @@ msgstr "" msgid "blackpowder birdshot" msgstr "" -#: lang/json/AMMO_from_json.py -msgid "blackpowder dragon's breath shell" -msgstr "" - #: lang/json/AMMO_from_json.py msgid "blackpowder 00 shot" msgstr "" @@ -5529,7 +5491,6 @@ msgstr[1] "" #. ~ Use action holster_msg for scabbard. #. ~ Use action holster_msg for sheath. #. ~ Use action holster_msg for survivor belt. -#. ~ Use action holster_msg for hiking backpack. #. ~ Use action holster_msg for survivor utility belt. #. ~ Use action holster_msg for pair of boots. #. ~ Use action holster_msg for pair of bone armor boots. @@ -6481,6 +6442,38 @@ msgid "" "collection of plates provides decent but not the most convenient protection." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "salvaged power armor" +msgid_plural "salvaged power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for salvaged power armor +#: lang/json/ARMOR_from_json.py +msgid "" +"The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, " +"offering very good protection against attacks, but hard to move in. This " +"suit has had its servos and cooling system stripped out, meaning it no " +"longer requires power, but also encumbers you greatly and doesn't provide " +"internal thermal regulation." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "salvaged power armor helmet" +msgid_plural "salvaged power armor helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for salvaged power armor helmet +#: lang/json/ARMOR_from_json.py +msgid "" +"A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. " +"Offers excellent protection from both attacks and environmental hazards. " +"This suit has had its internal computer and cooling system stripped out, " +"meaning it no longer requires power, but it has no internal chronometer and " +"doesn't provide internal thermal regulation." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "dinosaur suit" msgid_plural "dinosaur suits" @@ -9062,17 +9055,6 @@ msgstr[1] "" msgid "A long underwear top that helps to maintain body temperature." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "sleeveless underwear top" -msgid_plural "sleeveless underwear tops" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for sleeveless underwear top -#: lang/json/ARMOR_from_json.py -msgid "A sleeveless underwear top that helps to maintain body temperature." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "long-sleeved shirt" msgid_plural "long-sleeved shirts" @@ -9694,6 +9676,116 @@ msgid "" "better than nothing." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "basic power armor" +msgid_plural "basic power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action activate_msg for basic power armor. +#. ~ Use action activate_msg for heavy power armor. +#. ~ Use action activate_msg for light power armor. +#: lang/json/ARMOR_from_json.py +msgid "Your power armor engages." +msgstr "" + +#. ~ Description for basic power armor +#: lang/json/ARMOR_from_json.py +msgid "" +"The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, " +"offering very good protection against attacks, but hard to move in. The UPS " +"compartment can store other things if you don't mind powering the suit " +"yourself. Like all DoubleTech power armor, the control and climate-" +"regulation systems require direct skin contact." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "power armor hauling frame" +msgid_plural "power armor hauling frames" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for power armor hauling frame +#: lang/json/ARMOR_from_json.py +msgid "A heavy duty hauling frame designed to interface with power armor." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "heavy power armor" +msgid_plural "heavy power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy power armor +#: lang/json/ARMOR_from_json.py +msgid "" +"A suit of DoubleTech Power Armor, Mk. II-H. This model offers several " +"improvements over the Mk. I, most notably the improved environmental " +"protection. Like all DoubleTech power armor, the control and climate-" +"regulation systems require direct skin contact." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "basic power armor helmet" +msgid_plural "basic power armor helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basic power armor helmet +#: lang/json/ARMOR_from_json.py +msgid "" +"A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. " +"Offers excellent protection from both attacks and environmental hazards. " +"Like all DoubleTech power armor, the control and climate-regulation systems " +"require direct skin contact." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "heavy power armor helmet" +msgid_plural "heavy power armor helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy power armor helmet +#: lang/json/ARMOR_from_json.py +msgid "" +"A power armor helmet designed for use with the DoubleTech Power Armor, Mk. " +"II-H. This improved design is heavier than the Mk. I helmet, but cooler, " +"and offers better environmental protection. Like all DoubleTech power " +"armor, the control and climate-regulation systems require direct skin " +"contact." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "light power armor helmet" +msgid_plural "light power armor helmets" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light power armor helmet +#: lang/json/ARMOR_from_json.py +msgid "" +"A power armor helmet designed for use with the DoubleTech Power Armor, Mk. " +"II-L. This improved design is lighter and cooler than the Mk. I helmet. " +"Like all DoubleTech power armor, the control and climate-regulation systems " +"require direct skin contact." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "light power armor" +msgid_plural "light power armors" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for light power armor +#: lang/json/ARMOR_from_json.py +msgid "" +"A suit of DoubleTech Power Armor, Mk. II-L. This model offers several " +"improvements over the Mk. I, most notably the reduced weight. Like all " +"DoubleTech power armor, the control and climate-regulation systems require " +"direct skin contact." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "purse" msgid_plural "purses" @@ -10452,7 +10544,6 @@ msgstr[0] "" msgstr[1] "" #. ~ Use action holster_prompt for survivor belt. -#. ~ Use action holster_prompt for hiking backpack. #. ~ Use action holster_prompt for survivor utility belt. #. ~ Use action holster_prompt for C.R.I.T web belt. #: lang/json/ARMOR_from_json.py @@ -10702,44 +10793,6 @@ msgid "" "A long, loose-fitting robe with wide sleeves, a traditional Arab garment." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "bow tie" -msgid_plural "bow ties" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for bow tie -#: lang/json/ARMOR_from_json.py -msgid "A simple black bow tie. Best worn with a suit." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "clip-on tie" -msgid_plural "clip-on ties" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for clip-on tie -#: lang/json/ARMOR_from_json.py -msgid "" -"A clip-on necktie, with blue and silver stripes. It's quick and easy to put " -"on, and much better than the necktie." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "necktie" -msgid_plural "neckties" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for necktie -#: lang/json/ARMOR_from_json.py -msgid "" -"An ordinary, green necktie. It's more difficult to put on, but it takes " -"real skill to do so. Wearing a necktie is much better than wearing a clip-" -"on tie." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "tights" msgid_plural "tights" @@ -10950,7 +11003,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "" -"A short-sleeved black cotton shirt with a stylized representation of a radio " +"A short-sleeved black cotton shirt with a stylised representation of a radio " "wave printed on the front." msgstr "" @@ -11543,67 +11596,6 @@ msgid "" "Useful for improvised rain protection." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "high-volume rucksack" -msgid_plural "high-volume rucksacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for high-volume rucksack -#: lang/json/ARMOR_from_json.py -msgid "" -"Also know as a \"bigpack\", this rucksack is prized by pack rats but may " -"lead to a bad back." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "hiking backpack" -msgid_plural "hiking backpacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for hiking backpack -#: lang/json/ARMOR_from_json.py -msgid "A large sized hiking backpack with plenty of storage space." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "petpack" -msgid_plural "petpacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for petpack -#: lang/json/ARMOR_from_json.py -msgid "" -"Before the Cataclysm this would allow your four-legged friend to see the " -"world, now it's used to shield them from the world." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "large tactical backpack" -msgid_plural "large tactical backpacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for large tactical backpack -#: lang/json/ARMOR_from_json.py -msgid "" -"A large tactical multi-compartment backpack that has great lower back " -"support." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "travelpack" -msgid_plural "travelpacks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for travelpack -#: lang/json/ARMOR_from_json.py -msgid "A hiking pack used for short trips." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "survivor utility belt" msgid_plural "survivor utility belts" @@ -12677,65 +12669,6 @@ msgid "" "straps that hold it flat against your leg, Activate to holster/draw a gun." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "beaded bracelet" -msgid_plural "beaded bracelets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for beaded bracelet -#. ~ Description for beaded earring -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple bracelet of string and wooden beads. You can wear it if you like, " -"but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "beaded earring" -msgid_plural "beaded earrings" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/ARMOR_from_json.py -msgid "beaded necklace" -msgid_plural "beaded necklaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for beaded necklace -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple necklace made of string and wooden beads. You can wear it if you " -"like, but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "friendship bracelet" -msgid_plural "friendship bracelets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for friendship bracelet -#: lang/json/ARMOR_from_json.py -msgid "" -"A homemade bracelet crafted from colorful knickknacks. It's not very " -"expensive, but it's the effort that makes it special." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "bronze medal" -msgid_plural "bronze medals" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for bronze medal -#: lang/json/ARMOR_from_json.py -msgid "" -"A medal awarded for achieving third place in some event. It might be worth " -"something if it was made of bronze; this one is made from iron." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "diamond dental grill" msgid_plural "diamond dental grills" @@ -12759,8 +12692,7 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "" "A gold ring with a sparkling diamond mounted on top of it. Back in the old " -"days this could be worth a fortune. You can wear it if you like, but it " -"won't provide any effects." +"days this could be worth a fortune." msgstr "" #: lang/json/ARMOR_from_json.py @@ -12786,8 +12718,7 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "" "A staple accessory for gentlemen. Keeps your shirt collar in place and " -"provides a more aesthetically pleasing arc to your necktie. You can wear it " -"if you like, but it won't provide any effects." +"provides a more aesthetically pleasing arc to your necktie." msgstr "" #: lang/json/ARMOR_from_json.py @@ -12798,9 +12729,7 @@ msgstr[1] "" #. ~ Description for copper bracelet #: lang/json/ARMOR_from_json.py -msgid "" -"An old-fashioned, copper bracelet. You can wear it if you like, but it " -"won't provide any effects." +msgid "An old-fashioned, copper bracelet." msgstr "" #: lang/json/ARMOR_from_json.py @@ -12812,103 +12741,45 @@ msgstr[1] "" #. ~ Description for copper earring #: lang/json/ARMOR_from_json.py msgid "" -"A copper earring. It's pretty heavy. You can wear it if you like, but it " -"won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "copper hairpin" -msgid_plural "copper hairpins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for copper hairpin -#: lang/json/ARMOR_from_json.py -msgid "" -"A hairpin made from copper. You can wear it if you like, but it won't " -"provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "copper locket" -msgid_plural "copper lockets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for copper locket -#: lang/json/ARMOR_from_json.py -msgid "" -"A circular, copper locket. It's been tarnished with use, and has gained " -"some dull green spots. You can wear it if you like, but it won't provide " -"any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "copper necklace" -msgid_plural "copper necklaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for copper necklace -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple chain of copper, with a clasp in the middle to create a necklace. " -"You can wear it if you like, but it won't provide any effects." +"A copper earring. It's pretty heavy; wearing it for an extended period of " +"time may stretch your ear longer." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "copper ring" -msgid_plural "copper rings" +msgid "beaded bracelet" +msgid_plural "beaded bracelets" msgstr[0] "" msgstr[1] "" -#. ~ Description for copper ring +#. ~ Description for beaded bracelet #: lang/json/ARMOR_from_json.py msgid "" -"A plain, copper ring. Not very shiny, and not very popular. You can wear " -"it if you like, but it won't provide any effects." +"A simple bracelet of string and wooden beads, there is enough space to " +"inscribe something." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "cufflinks" -msgid_plural "cufflinkss" +msgid "beaded necklace" +msgid_plural "beaded necklaces" msgstr[0] "" msgstr[1] "" -#. ~ Description for cufflinks +#. ~ Description for beaded necklace #: lang/json/ARMOR_from_json.py msgid "" -"An unmarked, pair of silver cufflinks. Cufflinks are used to secure the " -"cuffs of dress shirts - a must-have for men in formal wear. You can wear it " -"if you like, but it won't provide any effects." +"A simple necklace made of string and wooden beads, there is enough space to " +"inscribe something." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "intricate cufflinks" -msgid_plural "intricate cufflinkss" +msgid "jade brooch" +msgid_plural "jade brooches" msgstr[0] "" msgstr[1] "" -#. ~ Description for intricate cufflinks +#. ~ Description for jade brooch #: lang/json/ARMOR_from_json.py -msgid "" -"An expensive pair of silver cufflinks, stylized with detailed overlays of " -"gold gears and fractal patterns. You can wear it if you like, but it won't " -"provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "plug" -msgid_plural "plugs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for plug -#: lang/json/ARMOR_from_json.py -msgid "" -"Those round things people plug into their earlobes as earrings, also called " -"\"ear plug\" or \"ear spool.\" You can wear it if you like, but it won't " -"provide any effects." +msgid "A hand-crafted jade brooch of Oriental origin." msgstr "" #: lang/json/ARMOR_from_json.py @@ -12950,83 +12821,28 @@ msgid "" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "gold hairpin" -msgid_plural "gold hairpins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for gold hairpin -#: lang/json/ARMOR_from_json.py -msgid "" -"A gold hairpin, designed by the rich, for the rich. You can wear it if you " -"like, but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "gold locket" -msgid_plural "gold lockets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for gold locket -#: lang/json/ARMOR_from_json.py -msgid "" -"A heart-shaped, gold locket with a frame inside to store photographs or " -"small objects. You can wear it if you like, but it won't provide any " -"effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "gold medal" -msgid_plural "gold medals" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for gold medal -#: lang/json/ARMOR_from_json.py -msgid "" -"A medal awarded for achieving first place in some event. Before everything " -"fell apart, this could be a source of pride for its owner. Now it's just " -"another shiny bauble." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "gold necklace" -msgid_plural "gold necklaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for gold necklace -#: lang/json/ARMOR_from_json.py -msgid "" -"A shiny, unadorned gold necklace. You can wear it if you like, but it won't " -"provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "gold ring" -msgid_plural "gold rings" +msgid "gold watch" +msgid_plural "gold watches" msgstr[0] "" msgstr[1] "" -#. ~ Description for gold ring +#. ~ Description for gold watch #: lang/json/ARMOR_from_json.py msgid "" -"A flashy gold ring. You can wear it if you like, but it won't provide any " -"effects." +"A gold-plated steel self-winding wristwatch, suitable for a retirement " +"present. Tells the time and looks good." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "gold watch" -msgid_plural "gold watches" +msgid "locket" +msgid_plural "lockets" msgstr[0] "" msgstr[1] "" -#. ~ Description for gold watch +#. ~ Description for locket #: lang/json/ARMOR_from_json.py msgid "" -"A gold-plated steel self-winding wristwatch, suitable for a retirement " -"present. Tells the time and looks good." +"A small locket with a frame inside to store photographs or small objects." msgstr "" #: lang/json/ARMOR_from_json.py @@ -13037,23 +12853,20 @@ msgstr[1] "" #. ~ Description for tie clip #: lang/json/ARMOR_from_json.py -msgid "" -"A fancy silver tie clip, a great match for your skinny tie. You can wear it " -"if you like, but it won't provide any effects." +msgid "A fancy silver tie clip, a great match for your skinny tie." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "silver watch" -msgid_plural "silver watches" +msgid "silver necklace" +msgid_plural "silver necklaces" msgstr[0] "" msgstr[1] "" -#. ~ Description for silver watch +#. ~ Description for silver necklace #: lang/json/ARMOR_from_json.py msgid "" -"An elegant silver watch, crafted from silver-plated stainless steel. It's " -"much cheaper than other metal watches, and more classy than an ordinary " -"wristwatch." +"A nice silver necklace. You can wear it if you like, but it won't provide " +"any effects." msgstr "" #: lang/json/ARMOR_from_json.py @@ -13133,251 +12946,44 @@ msgid "A simple necklace representing a religious faith." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "jade brooch" -msgid_plural "jade brooches" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for jade brooch -#: lang/json/ARMOR_from_json.py -msgid "" -"A hand-crafted jade brooch of Oriental origin. You can wear it if you like, " -"but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "platinum watch" -msgid_plural "platinum watches" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for platinum watch -#: lang/json/ARMOR_from_json.py -msgid "" -"Flex on those gold-watch wearers with the rare, expensive and superior " -"platinum watch. This one is made from solid platinum." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "platinum bracelet" -msgid_plural "platinum bracelets" +msgid "plug" +msgid_plural "plugs" msgstr[0] "" msgstr[1] "" -#. ~ Description for platinum bracelet +#. ~ Description for plug #: lang/json/ARMOR_from_json.py msgid "" -"A flawless platinum bracelet. You can wear it if you like, but it won't " -"provide any effects." +"Those round things people plug into their earlobes as earrings, also called " +"\"ear plug\" or \"ear spool.\"" msgstr "" #: lang/json/ARMOR_from_json.py -msgid "platinum dental grill" -msgid_plural "platinum dental grills" +msgid "leather collar" +msgid_plural "leather collars" msgstr[0] "" msgstr[1] "" -#. ~ Description for platinum dental grill -#: lang/json/ARMOR_from_json.py -msgid "" -"Fake platinum-and-silver teeth. They may be cheaper than fake gold teeth, " -"but they're much more rare. Fits horribly, but looks very shiny." -msgstr "" - -#. ~ Description for gold earring +#. ~ Description for leather collar #: lang/json/ARMOR_from_json.py msgid "" -"Plain platinum earrings, the rich person's earring - if gold is getting " -"boring, just use another rare metal. You can wear it if you like, but it " -"won't provide any effects." +"A black leather 'collar' with a bell dangling from the front. Don't worry, " +"the bell is silent." msgstr "" #: lang/json/ARMOR_from_json.py -msgid "platinum hairpin" -msgid_plural "platinum hairpins" +msgid "gold ring" +msgid_plural "gold rings" msgstr[0] "" msgstr[1] "" -#. ~ Description for platinum hairpin +#. ~ Description for gold ring #: lang/json/ARMOR_from_json.py msgid "" -"The ultimate in esoteric, metal hair accessories, this hairpin is made from " -"pure platinum. You can wear it if you like, but it won't provide any " +"A flashy gold ring. You can wear it if you like, but it won't provide any " "effects." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "platinum locket" -msgid_plural "platinum lockets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for platinum locket -#: lang/json/ARMOR_from_json.py -msgid "" -"A small, platinum locket for storing photographs or other small objects. " -"You can wear it if you like, but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "platinum necklace" -msgid_plural "platinum necklaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for platinum necklace -#: lang/json/ARMOR_from_json.py -msgid "" -"A platinum necklace, with a small, empty heart frame hanging from a chain. " -"You can wear it if you like, but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "platinum ring" -msgid_plural "platinum rings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for platinum ring -#: lang/json/ARMOR_from_json.py -msgid "" -"A platinum ring, engraved with all manner of swirls and spirals. You can " -"wear it if you like, but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "engagement ring" -msgid_plural "engagement rings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for engagement ring -#: lang/json/ARMOR_from_json.py -msgid "" -"This ring is an intricate gold band, with a small cluster of diamonds set in " -"the center. Before the world broke down, this ring would've cost a small " -"fortune." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "purity ring" -msgid_plural "purity rings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for purity ring -#: lang/json/ARMOR_from_json.py -msgid "" -"Also known as a promise ring, this ring is worn as a sign of chastity. This " -"one bears the inscription, \"Love is patient.\"" -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "signet ring" -msgid_plural "signet rings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for signet ring -#: lang/json/ARMOR_from_json.py -msgid "" -"A gold and silver ring with a wide stamp attached to the band. A long time " -"ago, the stamp was legible, but now the pattern is too worn to discern its " -"former use." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "wedding ring" -msgid_plural "wedding rings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for wedding ring -#: lang/json/ARMOR_from_json.py -msgid "" -"A flawless ring, ensnaring a diamond with twists of pure gold. It's a " -"constant reminder that the wearer is married." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "silver necklace" -msgid_plural "silver necklaces" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for silver necklace -#: lang/json/ARMOR_from_json.py -msgid "" -"A nice silver necklace. You can wear it if you like, but it won't provide " -"any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "silver hairpin" -msgid_plural "silver hairpins" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for silver hairpin -#: lang/json/ARMOR_from_json.py -msgid "" -"A shiny, silver hairpin with a tiny bee engraved onto it. You can wear it " -"if you like, but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "silver locket" -msgid_plural "silver lockets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for silver locket -#: lang/json/ARMOR_from_json.py -msgid "" -"A small, silver locket with a frame inside to store photographs or small " -"objects. You can wear it if you like, but it won't provide any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "silver medal" -msgid_plural "silver medals" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for silver medal -#: lang/json/ARMOR_from_json.py -msgid "" -"A medal awarded for achieving second place in some event. Before everything " -"fell apart, this could be a source of pride for its owner. Now it's just " -"another shiny bauble." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "silver ring" -msgid_plural "silver rings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for silver ring -#: lang/json/ARMOR_from_json.py -msgid "" -"A simple, silver ring. You can wear it if you like, but it won't provide " -"any effects." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "leather collar" -msgid_plural "leather collars" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for leather collar -#: lang/json/ARMOR_from_json.py -msgid "" -"A black leather 'collar' with a bell dangling from the front. Don't worry, " -"the bell is silent." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "wrist watch" msgid_plural "wrist watches" @@ -13618,148 +13224,6 @@ msgid "" "A pair of covered pouches laid across the back of a horse behind the saddle." msgstr "" -#: lang/json/ARMOR_from_json.py -msgid "salvaged power armor" -msgid_plural "salvaged power armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for salvaged power armor -#: lang/json/ARMOR_from_json.py -msgid "" -"The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, " -"offering very good protection against attacks, but hard to move in. This " -"suit has had its servos and cooling system stripped out, meaning it no " -"longer requires power, but also encumbers you greatly and doesn't provide " -"internal thermal regulation." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "salvaged power armor helmet" -msgid_plural "salvaged power armor helmets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for salvaged power armor helmet -#: lang/json/ARMOR_from_json.py -msgid "" -"A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. " -"Offers excellent protection from both attacks and environmental hazards. " -"This suit has had its internal computer and cooling system stripped out, " -"meaning it no longer requires power, but it has no internal chronometer and " -"doesn't provide internal thermal regulation." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "basic power armor" -msgid_plural "basic power armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action activate_msg for basic power armor. -#. ~ Use action activate_msg for heavy power armor. -#. ~ Use action activate_msg for light power armor. -#: lang/json/ARMOR_from_json.py -msgid "Your power armor engages." -msgstr "" - -#. ~ Description for basic power armor -#: lang/json/ARMOR_from_json.py -msgid "" -"The DoubleTech Power Armor, Mk. I: A heavy suit of basic power armor, " -"offering very good protection against attacks, but hard to move in. The UPS " -"compartment can store other things if you don't mind powering the suit " -"yourself. Like all DoubleTech power armor, the control and climate-" -"regulation systems require direct skin contact." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "power armor hauling frame" -msgid_plural "power armor hauling frames" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for power armor hauling frame -#: lang/json/ARMOR_from_json.py -msgid "A heavy duty hauling frame designed to interface with power armor." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "heavy power armor" -msgid_plural "heavy power armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for heavy power armor -#: lang/json/ARMOR_from_json.py -msgid "" -"A suit of DoubleTech Power Armor, Mk. II-H. This model offers several " -"improvements over the Mk. I, most notably the improved environmental " -"protection. Like all DoubleTech power armor, the control and climate-" -"regulation systems require direct skin contact." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "basic power armor helmet" -msgid_plural "basic power armor helmets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for basic power armor helmet -#: lang/json/ARMOR_from_json.py -msgid "" -"A basic helmet, designed for use with the DoubleTech Power Armor, Mk. I. " -"Offers excellent protection from both attacks and environmental hazards. " -"Like all DoubleTech power armor, the control and climate-regulation systems " -"require direct skin contact." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "heavy power armor helmet" -msgid_plural "heavy power armor helmets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for heavy power armor helmet -#: lang/json/ARMOR_from_json.py -msgid "" -"A power armor helmet designed for use with the DoubleTech Power Armor, Mk. " -"II-H. This improved design is heavier than the Mk. I helmet, but cooler, " -"and offers better environmental protection. Like all DoubleTech power " -"armor, the control and climate-regulation systems require direct skin " -"contact." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "light power armor helmet" -msgid_plural "light power armor helmets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for light power armor helmet -#: lang/json/ARMOR_from_json.py -msgid "" -"A power armor helmet designed for use with the DoubleTech Power Armor, Mk. " -"II-L. This improved design is lighter and cooler than the Mk. I helmet. " -"Like all DoubleTech power armor, the control and climate-regulation systems " -"require direct skin contact." -msgstr "" - -#: lang/json/ARMOR_from_json.py -msgid "light power armor" -msgid_plural "light power armors" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for light power armor -#: lang/json/ARMOR_from_json.py -msgid "" -"A suit of DoubleTech Power Armor, Mk. II-L. This model offers several " -"improvements over the Mk. I, most notably the reduced weight. Like all " -"DoubleTech power armor, the control and climate-regulation systems require " -"direct skin contact." -msgstr "" - #: lang/json/ARMOR_from_json.py msgid "helmet netting" msgid_plural "helmet nettings" @@ -18750,172 +18214,6 @@ 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. It's pages 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 Defence of Terrorism\" 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 "phone book" msgid_plural "phone books" @@ -20399,19 +19697,6 @@ msgid "" "infections in plants." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "insecticide" -msgid_plural "insecticide" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 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" @@ -20620,32 +19905,10 @@ msgid "" "whole bunch of useful water-soluble gels." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "acetylene" -msgstr "" - -#. ~ Description for 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 "Spice" msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "marloss wine" -msgid_plural "marloss wine" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 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" @@ -20693,41 +19956,6 @@ msgid "" "elegant wines." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "marsala" -msgid_plural "marsala" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 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 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 barley wine -#: lang/json/COMESTIBLE_from_json.py -msgid "A strong ale." -msgstr "" - #: lang/json/COMESTIBLE_from_json.py msgid "whiskey" msgid_plural "whiskey" @@ -21185,17 +20413,6 @@ msgid "" "it will keep for a long time." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "martini" -msgstr "" - -#. ~ Description for martini -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"This is a popular cocktail made with gin and dry vermouth, dating from the " -"Prohibition era." -msgstr "" - #: lang/json/COMESTIBLE_from_json.py msgid "sourdough bread" msgstr "" @@ -21284,17 +20501,6 @@ msgid "" "It's filling, and that's what matters." msgstr "" -#: lang/json/COMESTIBLE_from_json.py -msgid "mycus wine must" -msgstr "" - -#. ~ Description for mycus wine must -#: lang/json/COMESTIBLE_from_json.py -msgid "" -"Unfermented mycus wine. A goopy white mess, made from fruit of mycus. It " -"smells sweetly of mushrooms." -msgstr "" - #: lang/json/COMESTIBLE_from_json.py msgid "whiskey wort" msgstr "" @@ -25518,10 +24724,10 @@ msgid "" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "antibiotics" +msgid "antibiotic" msgstr "" -#. ~ Description for antibiotics +#. ~ Description for antibiotic #: lang/json/COMESTIBLE_from_json.py msgid "" "A prescription-strength antibacterial medication designed to prevent or stop " @@ -28617,7 +27823,7 @@ msgstr "" #. ~ Description for dahlia root #: lang/json/COMESTIBLE_from_json.py msgid "" -"The large, tuberous root of a dahlia flower. It smells spicy, but is too " +"The large, tuberous root of a dahlia flower. It smells spicy, but is too " "starchy to eat without cooking." msgstr "" @@ -28630,7 +27836,7 @@ msgstr[1] "" #. ~ Description for salsify #: lang/json/COMESTIBLE_from_json.py msgid "" -"An herb with a small purple flower. The roots are nutritious, but tough and " +"An herb with a small purple flower. The roots are nutritious, but tough and " "bland until cooked." msgstr "" @@ -28644,8 +27850,8 @@ msgstr[1] "" #. ~ Description for chicory #: lang/json/COMESTIBLE_from_json.py msgid "" -"A modest blue flower. The flower's roots are very bitter and not meant to " -"be eaten raw." +"A modest blue flower. The flower's roots are very bitter and not meant to be " +"eaten raw." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28657,7 +27863,7 @@ msgstr[1] "" #. ~ Description for wild root #: lang/json/COMESTIBLE_from_json.py msgid "" -"A weed with a cluster of tiny white flowers. These are often wild carrots, " +"A weed with a cluster of tiny white flowers. These are often wild carrots, " "but beware of poisonous lookalikes." msgstr "" @@ -30579,7 +29785,7 @@ msgstr "" #. ~ Description for roasted salsify #: lang/json/COMESTIBLE_from_json.py msgid "" -"When properly cooked, salsify tastes vaguely like oysters. Makes a great " +"When properly cooked, salsify tastes vaguely like oysters. Makes a great " "side dish." msgstr "" @@ -31952,6 +31158,10 @@ msgstr "" msgid "The candy of the Mojave Indigenous peoples." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "antibiotics" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "revival serum" msgstr "" @@ -32732,31 +31942,6 @@ msgid "" "it's anyone's guess what it's for." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "large tin can" -msgid_plural "large tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for large tin can -#: lang/json/CONTAINER_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 -msgid "opened large tin can" -msgid_plural "opened large tin cans" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for opened large tin can -#: lang/json/CONTAINER_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 msgid "blood draw kit" msgid_plural "blood draw kits" @@ -33190,67 +32375,6 @@ msgid "" "impact." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "throwing knife" -msgid_plural "throwing knives" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for throwing knife -#: 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." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "throwing axe" -msgid_plural "throwing axes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for throwing axe -#: 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." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "lawn dart" -msgid_plural "lawn darts" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for lawn dart -#: lang/json/GENERIC_from_json.py -msgid "A large plastic dart made for outdoor games." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "frisbee" -msgid_plural "frisbees" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for frisbee -#: lang/json/GENERIC_from_json.py -msgid "A plastic frisbee made for outdoor games." -msgstr "" - -#: lang/json/GENERIC_from_json.py src/artifact.cpp -msgid "disc" -msgid_plural "discs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for disc -#: lang/json/GENERIC_from_json.py -msgid "" -"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 "limestone shard" msgid_plural "limestone shards" @@ -34292,31 +33416,6 @@ msgid "" "parts." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "broken recon mech" -msgid_plural "broken recon mechs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken recon mech -#. ~ Description for broken mech lifter -#. ~ Description for broken combat mech -#: lang/json/GENERIC_from_json.py -msgid "This is a broken mech exoskeleton suit, it looks beyond repair." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken mech lifter" -msgid_plural "broken mech lifters" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken combat mech" -msgid_plural "broken combat mechs" -msgstr[0] "" -msgstr[1] "" - #: lang/json/GENERIC_from_json.py msgid "broken riot dispatch" msgid_plural "broken riot dispatchs" @@ -35830,61 +34929,6 @@ msgid "" "musical instruments. Basically only good for spare parts now." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "broken turret" -msgid_plural "broken turrets" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken turret -#: 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." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "broken milspec turret" -msgid_plural "broken milspec turrets" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken antimateriel turret" -msgid_plural "broken antimateriel turrets" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken laser turret" -msgid_plural "broken laser turrets" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/GENERIC_from_json.py -msgid "broken secubot" -msgid_plural "broken secubots" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for broken secubot -#: lang/json/GENERIC_from_json.py -msgid "" -"A broken secubot, with its casing broken and fluid drained. Could be gutted " -"for parts." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "fire brick" -msgid_plural "fire bricks" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fire brick -#: lang/json/GENERIC_from_json.py -msgid "A reinforced brick designed to withstand intense heat." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "canister grenade" msgid_plural "canister grenades" @@ -35952,118 +34996,6 @@ msgstr[1] "" msgid "This smoke bomb has had its pin removed and is expelling thick smoke." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "fungicidal gas grenade" -msgid_plural "fungicidal gas grenades" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for fungicidal gas grenade -#: 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." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "armed fungicidal gas canister" -msgid_plural "armed fungicidal gas canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for armed fungicidal gas canister -#: lang/json/GENERIC_from_json.py -msgid "" -"This fungicidal bomb has had its pin removed and is expelling highly toxic " -"gas." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "insecticidal gas grenade" -msgid_plural "insecticidal gas grenades" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for insecticidal gas grenade -#: 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." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "armed insecticidal gas canister" -msgid_plural "armed insecticidal gas canisters" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for armed insecticidal gas canister -#: lang/json/GENERIC_from_json.py -msgid "" -"This insecticidal bomb has had its pin removed and is expelling highly toxic " -"haze." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "makeshift fungicidal gas grenade" -msgid_plural "makeshift fungicidal gas grenades" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for makeshift fungicidal gas grenade -#: 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." -msgstr "" - -#: 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 armed makeshift fungicidal gas canister -#: lang/json/GENERIC_from_json.py -msgid "" -"This makeshift fungicidal bomb has had its pin removed and is expelling " -"highly toxic haze." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "makeshift insecticidal gas grenade" -msgid_plural "makeshift insecticidal gas grenades" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for makeshift insecticidal gas grenade -#: 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." -msgstr "" - -#: 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 armed makeshift insecticidal gas canister -#: lang/json/GENERIC_from_json.py -msgid "" -"This makeshift insecticidal bomb has had its pin removed and is expelling " -"highly toxic haze." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "hatchet" msgid_plural "hatchets" @@ -37575,17 +36507,6 @@ msgstr[1] "" 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 "towel hanger" -msgid_plural "towel hangers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for 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 "vehicle tracking device" msgid_plural "vehicle tracking devices" @@ -38237,7 +37158,7 @@ msgstr[1] "" #. ~ Description for sourdough starter #: lang/json/GENERIC_from_json.py msgid "" -"This jar contains a precious mix of flour, water, molds and bacteria from " +"This jar contains precious mix of flour, water, and molds and bacteria from " "the air. When you add flour and water to it, after a few hours it froths " "and rises." msgstr "" @@ -39124,17 +38045,6 @@ msgstr[1] "" msgid "An empty hull from a .410 shotgun shell." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid ".300BLK casing" -msgid_plural ".300BLK casings" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for .300BLK casing -#: lang/json/GENERIC_from_json.py -msgid "An empty casing from a .300BLK round." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "Merch" msgid_plural "Merchs" @@ -43017,17 +41927,6 @@ msgstr[1] "" msgid "A very small washing machine designed for use in vehicles." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "mountable autoclave" -msgid_plural "mountable autoclaves" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for mountable autoclave -#: lang/json/GENERIC_from_json.py -msgid "This autoclave has been rigged to run off a vehicle power grid." -msgstr "" - #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "minifridge" msgid_plural "minifridges" @@ -43054,18 +41953,6 @@ msgid "" "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 dishwasher -#: lang/json/GENERIC_from_json.py -msgid "A very small dishwasher designed for use in vehicles." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "Dana's family sourdough starter" msgid_plural "Dana's family sourdough starters" @@ -46245,6 +45132,12 @@ msgid "" "be able to use this in some alchemical recipe?" msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "broken turret" +msgid_plural "broken turrets" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for broken turret #: lang/json/GENERIC_from_json.py msgid "" @@ -46410,6 +45303,12 @@ msgid "" "it lies limp on solid ground. Could be gutted for parts." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "broken laser turret" +msgid_plural "broken laser turrets" +msgstr[0] "" +msgstr[1] "" + #. ~ Description for broken laser turret #: lang/json/GENERIC_from_json.py msgid "" @@ -47939,19 +46838,6 @@ msgid "" "it cannot be recharged." msgstr "" -#: lang/json/MAGAZINE_from_json.py -msgid "military plutonium fuel cell" -msgstr "" - -#. ~ Description for military plutonium fuel cell -#: lang/json/MAGAZINE_from_json.py -msgid "" -"This battery uses a huge plutonium-244 rod to stablize an exotic " -"nanocompound. It was used in military mech-suits, was highly experimental, " -"and had no civilian applications. Although it stores a stupendous amount of " -"power, it cannot be recharged." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "heavy disposable battery" msgid_plural "heavy disposable batteries" @@ -49333,30 +48219,6 @@ msgid "" "shells. Notably less reliable than metal ammo belts." msgstr "" -#: lang/json/MAGAZINE_from_json.py -msgid "shotgun 6-round speedloader" -msgstr "" - -#. ~ Description for shotgun 6-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"A steel tube with attached handle that when inserted into a 6 round shotgun " -"can be used to quickly load the full tube in a much shorter period of time " -"than by hand." -msgstr "" - -#: lang/json/MAGAZINE_from_json.py -msgid "shotgun 8-round speedloader" -msgstr "" - -#. ~ Description for shotgun 8-round speedloader -#: lang/json/MAGAZINE_from_json.py -msgid "" -"A steel tube with attached handle that when inserted into an 8 round shotgun " -"can be used to quickly load the full tube in a much shorter period of time " -"than by hand." -msgstr "" - #: lang/json/MAGAZINE_from_json.py msgid "small welding tank" msgstr "" @@ -49379,17 +48241,6 @@ msgid "" "is marked with several faded and now unreadable symbols." msgstr "" -#: lang/json/MAGAZINE_from_json.py -msgid "oxygen cylinder" -msgstr "" - -#. ~ Description for oxygen cylinder -#: lang/json/MAGAZINE_from_json.py -msgid "" -"A large steel cylinder used for storing pressurized gas. It is marked with a " -"faded, but legible O2 symbol." -msgstr "" - #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "car battery" msgid_plural "car batteries" @@ -50118,9 +48969,8 @@ 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." +"Adds hydroponic units, a terrain which can be harvested for vegetables once " +"a season. Spawn occasionally in labs or basements. Or build your own." msgstr "" #: lang/json/MOD_INFO_from_json.py @@ -51727,18 +50577,6 @@ msgid "" "vast webs that it weaves between the trees." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "fungal spider" -msgstr "" - -#. ~ Description for fungal spider -#: lang/json/MONSTER_from_json.py -msgid "" -"The abdomen of this sickly looking giant spider is now home to many lumps of " -"blooming fungi. It is leaving behind a trail of tainted secretions when the " -"spider struggles to drag it along the ground." -msgstr "" - #: lang/json/MONSTER_from_json.py msgid "immature giant web spider" msgstr "" @@ -52658,52 +51496,6 @@ msgid "" "hymns in rapturous ecstasy." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "X-03: 'Spectre' Recon Mech" -msgstr "" - -#. ~ Description for X-03: 'Spectre' Recon Mech -#: lang/json/MONSTER_from_json.py -msgid "" -"The Boeing-Daewoo RMES (Recon Mechanical Exoskeleton Suit), a recent " -"acquisition by the US military, it was designed to be used in a scout-recon-" -"sniper role, due to its mobility and integrated laser sniper rifle and suite " -"of optics for target designation and battlefield awareness. It was not " -"deployed before the Cataclysm hit, though there were a few 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 "" - -#: lang/json/MONSTER_from_json.py -msgid "X-02: 'Grunt' Combat Mech" -msgstr "" - -#. ~ Description for X-02: 'Grunt' Combat Mech -#: lang/json/MONSTER_from_json.py -msgid "" -"The Boeing-Daewoo CMES (Combat Mechanical Exoskeleton Suit), a recent " -"acquisition by the US military, it was designed to be used in a fire support " -"role, due to its fearsome integrated gatling laser. It was not deployed " -"before the Cataclysm hit, though there were a few 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 "" - -#: lang/json/MONSTER_from_json.py -msgid "X-01: 'Jack' Lifting Mech" -msgstr "" - -#. ~ Description for X-01: 'Jack' Lifting Mech -#: lang/json/MONSTER_from_json.py -msgid "" -"The Boeing-Daewoo LMES (Lifting Mechanical Exoskeleton Suit), a recent " -"acquisition by the US military, it was designed to be piloted by an operator " -"to load and unload heavy material, and for limited combat support roles, it " -"was not deployed before the Cataclysm hit, though there were a few " -"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 "" - #: lang/json/MONSTER_from_json.py msgid "mi-go" msgstr "" @@ -54119,41 +52911,6 @@ msgid "" "disturbances." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "gangrenous flesh" -msgstr "" - -#. ~ Description for gangrenous flesh -#: lang/json/MONSTER_from_json.py -msgid "" -"Immobile from grievous wounds, its gray skin has bloated to near rupture " -"with putrid gas. Between lumps of unrecognizable gore, a human head lamely " -"follows your walking with empty, black eyes." -msgstr "" - -#: lang/json/MONSTER_from_json.py -msgid "gangrenous crawler" -msgstr "" - -#. ~ Description for gangrenous crawler -#: lang/json/MONSTER_from_json.py -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 "" - -#: lang/json/MONSTER_from_json.py -msgid "bloated fungal zombie" -msgstr "" - -#. ~ Description for bloated fungal zombie -#: lang/json/MONSTER_from_json.py -msgid "" -"With its swollen gray skin overgrown by thick layer of mold, this baloon-" -"like fungal zombie looks like it could violently burst with a cloud of " -"noxious spores." -msgstr "" - #: lang/json/MONSTER_from_json.py msgid "grabber zombie" msgstr "" @@ -54391,17 +53148,6 @@ msgid "" "body, and it emits a constant haze of thick black smoke." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "pollinator zombie" -msgstr "" - -#. ~ Description for pollinator zombie -#: lang/json/MONSTER_from_json.py -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 myst." -msgstr "" - #: lang/json/MONSTER_from_json.py msgid "spitter zombie" msgstr "" @@ -54522,18 +53268,6 @@ msgid "" "growing. And growing. And growing." msgstr "" -#: lang/json/MONSTER_from_json.py -msgid "fungal juggernaut" -msgstr "" - -#. ~ Description for 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." -msgstr "" - #: lang/json/MONSTER_from_json.py msgid "ancient red dragon" msgstr "" @@ -57556,33 +56290,6 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" -#: lang/json/SPELL_from_json.py -msgid "Test Area Pull" -msgstr "" - -#. ~ Description for Test Area Pull -#: lang/json/SPELL_from_json.py -msgid "Pulls all objects inside." -msgstr "" - -#: lang/json/SPELL_from_json.py -msgid "Test Area Pull (Field)" -msgstr "" - -#. ~ Description for Test Area Pull (Field) -#: lang/json/SPELL_from_json.py -msgid "Pulls field contents tiles inside." -msgstr "" - -#: lang/json/SPELL_from_json.py -msgid "Test Area Push" -msgstr "" - -#. ~ Description for Test Area Push -#: lang/json/SPELL_from_json.py -msgid "Pushes all objects outside." -msgstr "" - #: lang/json/SPELL_from_json.py msgid "Black Dragons' Breath" msgstr "" @@ -57629,15 +56336,6 @@ msgid "" "find out, though!" msgstr "" -#: lang/json/SPELL_from_json.py -msgid "Kill Fungus" -msgstr "" - -#. ~ Description for Kill Fungus -#: lang/json/SPELL_from_json.py -msgid "Kills fungus affected areas" -msgstr "" - #: lang/json/SPELL_from_json.py msgid "Druid Rune" msgstr "" @@ -57688,15 +56386,6 @@ msgstr "" msgid "Rockbolt" msgstr "" -#: lang/json/SPELL_from_json.py -msgid "Move Earth" -msgstr "" - -#. ~ Description for Move Earth -#: lang/json/SPELL_from_json.py -msgid "Your essense flows around you, and the earth follows." -msgstr "" - #: lang/json/SPELL_from_json.py msgid "Earthshaper Rune" msgstr "" @@ -58894,7 +57583,6 @@ msgid "A pink hairpin with cute flower textures." msgstr "" #: lang/json/TOOL_ARMOR_from_json.py -#: src/iuse.cpp msgid "towel" msgid_plural "towels" msgstr[0] "" @@ -59940,12 +58628,6 @@ msgstr[1] "" msgid "A fake drop hammer used for basecamps." msgstr "" -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -msgid "arc furnace" -msgid_plural "arc furnaces" -msgstr[0] "" -msgstr[1] "" - #: lang/json/TOOL_from_json.py msgid "teeth and claws" msgid_plural "teeth and clawss" @@ -61295,20 +59977,6 @@ msgid "" "partake of certain illicit substances." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "crash axe" -msgid_plural "crash axes" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for crash axe -#: lang/json/TOOL_from_json.py -msgid "" -"A short lightweight emergency tool with a quarter circular blade, a short " -"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 "" - #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "crossbow trap" msgid_plural "crossbow traps" @@ -62219,20 +60887,6 @@ msgid "" "and windows. It has myriad other uses as well." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "claw bar" -msgid_plural "claw bars" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for claw bar -#: lang/json/TOOL_from_json.py -msgid "" -"This is a small prying tool with a clawed bend at one end for pulling " -"spikes. Use it to open locked doors without destroying them or to lift " -"manhole covers. You could also wield it to bash some heads in." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "hand drill" msgid_plural "hand drills" @@ -62535,25 +61189,6 @@ msgid "" "and place a container beneath it to collect water when it rains." msgstr "" -#: lang/json/TOOL_from_json.py lang/json/trap_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "birchbark funnel" -msgid_plural "birchbark funnels" -msgstr[0] "" -msgstr[1] "" - -#. ~ Use action done_message for birchbark funnel. -#: lang/json/TOOL_from_json.py -msgid "You place the birchbark funnel, waiting to collect rain." -msgstr "" - -#. ~ Description for birchbark funnel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a small birchbark funnel. Place it above an outdoor container to " -"collect rainwater." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "lighter" msgid_plural "lighters" @@ -63177,19 +61812,6 @@ msgid "" "animal to capture, use it on an empty tile to release." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "wooden pet carrier" -msgid_plural "wooden pet carriers" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for wooden pet carrier -#: lang/json/TOOL_from_json.py -msgid "" -"A wooden container meant to hold pets for transport. Use it on a suitable " -"animal to capture, use it on an empty tile to release." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "chicken cage" msgid_plural "chicken cages" @@ -63510,19 +62132,6 @@ msgid "" "staunching bleeding." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "sponge" -msgid_plural "sponges" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for sponge -#: lang/json/TOOL_from_json.py -msgid "" -"A sponge is a tool or cleaning aid made of soft, porous material. Typically " -"used for cleaning impervious surfaces." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "reading light" msgid_plural "reading lights" @@ -64046,21 +62655,6 @@ msgid "" "other, more curious substances." msgstr "" -#: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py -#: lang/json/vehicle_part_from_json.py -msgid "autoclave" -msgid_plural "autoclaves" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for autoclave -#: lang/json/TOOL_from_json.py -msgid "" -"This is an autoclave. It's useful for sterilizing things like CBMs. It " -"requires a massive amount of power, so standard batteries will not power it " -"sufficiently." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "survival marker" msgid_plural "survival markers" @@ -65258,19 +63852,6 @@ msgstr[1] "" msgid "This is a small bathroom scale, meant to weigh a person while naked." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "acetylene-gas machine" -msgid_plural "acetylene-gas machines" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for acetylene-gas machine -#: lang/json/TOOL_from_json.py -msgid "" -"This bulky device takes water and calcium carbide and yields unpressurised " -"acetylene." -msgstr "" - #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -67194,7 +65775,7 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "" "Metal butchering rack designed to hang a carcass in the air. It is folded " -"for easy transportation." +"for easy transportation and can be deployed as a furniture." msgstr "" #: lang/json/TOOL_from_json.py lang/json/vehicle_from_json.py @@ -67226,7 +65807,7 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "" "A metal rack designed to smoke food for better preservation and taste. It " -"is folded for easy transportation." +"is folded for easy transportation and can be deployed as a furniture." msgstr "" #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py @@ -67239,7 +65820,7 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "" "Metal tourist table for off-road trips. It is folded for easy " -"transportation." +"transportation and can be deployed as a furniture." msgstr "" #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py @@ -70797,10 +69378,6 @@ msgstr "" msgid "chopping down" msgstr "" -#: lang/json/activity_type_from_json.py -msgid "cutting planks" -msgstr "" - #: lang/json/activity_type_from_json.py #: lang/json/tool_quality_from_json.py msgid "drilling" @@ -71086,10 +69663,6 @@ msgstr "" msgid "5x50mm flechette" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "powdered calcium carbide premix" -msgstr "" - #: lang/json/ammunition_type_from_json.py msgid "ferrous rail projectile" msgstr "" @@ -71162,10 +69735,6 @@ msgstr "" msgid "semi-charred fuel" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid "partially burned calcium carbide" -msgstr "" - #: lang/json/ammunition_type_from_json.py msgid "sprayable chemical" msgstr "" @@ -71174,10 +69743,6 @@ msgstr "" msgid "compressed air" msgstr "" -#: lang/json/ammunition_type_from_json.py -msgid ".308 AAC Blackout" -msgstr "" - #: lang/json/ammunition_type_from_json.py msgid "pulse ammo" msgstr "" @@ -72905,38 +71470,6 @@ msgstr "" msgid "It's inflamed." msgstr "" -#: lang/json/clothing_mod_from_json.py -msgid "Pad with leather" -msgstr "" - -#: lang/json/clothing_mod_from_json.py -msgid "Destroy leather padding" -msgstr "" - -#: lang/json/clothing_mod_from_json.py -msgid "Pad with Kevlar" -msgstr "" - -#: lang/json/clothing_mod_from_json.py -msgid "Destroy Kevlar padding" -msgstr "" - -#: lang/json/clothing_mod_from_json.py -msgid "Line it with fur" -msgstr "" - -#: lang/json/clothing_mod_from_json.py -msgid "Destroy fur lining" -msgstr "" - -#: lang/json/clothing_mod_from_json.py -msgid "Line it with wool" -msgstr "" - -#: lang/json/clothing_mod_from_json.py -msgid "Destroy wool lining" -msgstr "" - #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp msgid "All" @@ -73716,22 +72249,6 @@ msgstr "" msgid "Build Brick Wall from Adobe" msgstr "" -#: lang/json/construction_from_json.py -msgid "Extrude Resin Lattice" -msgstr "" - -#: lang/json/construction_from_json.py -msgid "Extrude Resin Wall" -msgstr "" - -#: lang/json/construction_from_json.py -msgid "Extrude Resin Floor and Roof" -msgstr "" - -#: lang/json/construction_from_json.py -msgid "Extrude Resin Floor (no roof)" -msgstr "" - #: lang/json/construction_from_json.py msgid "Build Pine Lean-To" msgstr "" @@ -73748,10 +72265,6 @@ msgstr "" msgid "Dig a Deep Pit" msgstr "" -#: lang/json/construction_from_json.py -msgid "Build Arc Furnace" -msgstr "" - #: lang/json/construction_from_json.py msgid "Convert Fridge Power Supply" msgstr "" @@ -73788,10 +72301,6 @@ msgstr "" 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 "" @@ -75098,7 +73607,7 @@ msgid "You are riding an animal." msgstr "" #. ~ Apply message for effect(s) 'Riding'. -#: lang/json/effects_from_json.py +#: lang/json/effects_from_json.py src/monexamine.cpp msgid "You mount your steed." msgstr "" @@ -76110,7 +74619,7 @@ msgid "You are high as a kite." msgstr "" #. ~ Apply message for effect(s) 'High'. -#. ~ Apply message for effect(s) 'Tipsy, Drunk, Trashed, Wasted, Dead Drunk'. +#. ~ Apply message for effect(s) 'Tipsy, Drunk, Trashed, Wasted'. #: lang/json/effects_from_json.py msgid "You feel lightheaded." msgstr "" @@ -76177,18 +74686,7 @@ msgid "" "care?" msgstr "" -#: lang/json/effects_from_json.py -msgid "Dead Drunk" -msgstr "" - -#. ~ Description of effect 'Dead Drunk'. -#: lang/json/effects_from_json.py -msgid "" -"You embalmed yourself alive with so much alcohol, that even zombies will " -"leave your dead body alone." -msgstr "" - -#. ~ Miss message for effect(s) 'Tipsy, Drunk, Trashed, Wasted, Dead Drunk'. +#. ~ Miss message for effect(s) 'Tipsy, Drunk, Trashed, Wasted'. #. ~ Miss message for effect(s) 'Depressants'. #: lang/json/effects_from_json.py msgid "You feel woozy." @@ -77698,15 +76196,6 @@ msgid_plural "humans" msgstr[0] "" msgstr[1] "" -#: lang/json/fault_from_json.py -msgid ": already deployed" -msgstr "" - -#. ~ Description for : already deployed -#: lang/json/fault_from_json.py -msgid "This bionic needs to be reset to its factory state." -msgstr "" - #: lang/json/fault_from_json.py msgid "blackpowder fouling" msgstr "" @@ -77805,453 +76294,6 @@ msgstr "" msgid "Required to initially start the engine." msgstr "" -#: lang/json/field_type_from_json.py lang/json/overmap_terrain_from_json.py -#: lang/json/overmap_terrain_from_json.py src/mapdata.cpp -#: src/mapdata.cpp -msgid "nothing" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "blood splatter" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "blood stain" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "puddle of blood" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "bile splatter" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "bile stain" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "puddle of bile" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "scraps of flesh" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "bloody meat chunks" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "heap of gore" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "shredded leaves and twigs" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "shattered branches and leaves" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "broken vegetation tangle" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "cowebs" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "webs" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick webs" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "slime trail" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "slime stain" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "puddle of slime" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "acid splatter" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "acid streak" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "pool of acid" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "sap splatter" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "glob of sap" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "pool of sap" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thin sludge trail" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "sludge trail" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick sludge trail" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "small fire" -msgstr "" - -#: lang/json/field_type_from_json.py -#: lang/json/keybinding_from_json.py -msgid "fire" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "raging fire" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "legacy rubble" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thin smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "hazy cloud" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "toxic gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick toxic gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "tear gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick tear gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "radioactive gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick radioactive gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "gas vent" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "fire vent" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "sparks" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "electric crackle" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "electric cloud" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "odd ripple" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "swirling air" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "tear in reality" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "push items" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "shock vent" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "acid vent" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "faint plasma" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "glowing plasma" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "glaring plasma" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "faint glimmer" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "beam of light" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "intense beam of light" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "spotlight" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "dazzling" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "plant sap splatter" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "plant sap stain" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "puddle of resin" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "bug blood splatter" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "bug blood stain" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "puddle of bug blood" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "hemolymph splatter" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "hemolymph stain" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "puddle of hemolymph" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "shards of chitin" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "shattered bug leg" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "torn insect organs" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "gooey scraps" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "icky mess" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "heap of squishy gore" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "swirl of tobacco smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "tobacco smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick tobacco smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "swirl of pot smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "pot smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick pot smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "swirl of crack smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "crack smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick crack smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "swirl of meth smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "meth smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick meth smoke" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "some bees" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "swarm of bees" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "angry swarm of bees" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "airborne incendiary" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "sedative gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "relaxation gas" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "fungal haze" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick fungal haze" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "cold air 1" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "cold air 2" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "cold air 3" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "cold air 4" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "hot air 1" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "hot air 2" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "hot air 3" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "hot air 4" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "fungicidal mist" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "fungicidal haze" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick fungicidal haze" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "insecticidal mist" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "insecticidal haze" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "thick insecticidal haze" -msgstr "" - -#: lang/json/field_type_from_json.py -msgid "smoke vent" -msgstr "" - #: lang/json/furniture_from_json.py msgid "pile of rubble" msgstr "" @@ -78313,12 +76355,11 @@ msgstr "" #: lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py -#: lang/json/terrain_from_json.py src/iuse.cpp +#: src/iuse.cpp 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 "whump." msgstr "" @@ -78335,13 +76376,11 @@ msgid "" 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 "metal screeching!" 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 "clang!" msgstr "" @@ -78368,9 +76407,8 @@ msgid "Read it. Warnings ahead." 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 +#: lang/json/terrain_from_json.py src/map.cpp msgid "smash!" msgstr "" @@ -78633,7 +76671,6 @@ msgid "" 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 "" @@ -79125,18 +77162,6 @@ msgstr "" msgid "filled metal charcoal kiln" msgstr "" -#. ~ Description for arc furnace -#. ~ Description for filled arc furnace -#: lang/json/furniture_from_json.py -msgid "" -"An arc furnace designed to burn a powdery mix of coke and limestone to " -"create calcium carbide." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "filled arc furnace" -msgstr "" - #: lang/json/furniture_from_json.py msgid "robotic arm" msgstr "" @@ -79412,6 +77437,45 @@ msgid "" "Its brake has been removed and it is turning." msgstr "" +#. ~ Description for tourist table +#: lang/json/furniture_from_json.py +msgid "Small metal folding table, ideal for off-road trips into the wild." +msgstr "" + +#. ~ Description for leather tarp +#: lang/json/furniture_from_json.py +msgid "" +"A large sheet of sewn leather that can be used instead of a picnic blanket, " +"but it's more valuable as a butchery appliance as it does not soak in blood." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "plastic groundsheet" +msgstr "" + +#. ~ Description for plastic groundsheet +#: lang/json/furniture_from_json.py +msgid "" +"A large sheet of thick plastic has been tossed on the ground here. It would " +"be a useful place to do some butchery, perhaps." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "whuff!" +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "crinkle." +msgstr "" + +#. ~ Description for fiber mat +#: lang/json/furniture_from_json.py +msgid "" +"A large mat woven from fibrous material that can be used instead of a picnic " +"blanket, but it's more valuable as a butchery appliance. Too thin to be a " +"comfortable sleeping place." +msgstr "" + #: lang/json/furniture_from_json.py msgid "pillow fort" msgstr "" @@ -79715,18 +77779,17 @@ msgid "" "bacteria. This is great for microbiology, but terrible for preserving food." msgstr "" +#: lang/json/furniture_from_json.py +msgid "autoclave" +msgstr "" + #. ~ Description for autoclave -#. ~ 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 "" -#: lang/json/furniture_from_json.py -msgid "filled autoclave" -msgstr "" - #: lang/json/furniture_from_json.py msgid "sample freezer" msgstr "" @@ -80162,6 +78225,10 @@ msgstr "" msgid "Cleans out dust mites, smoke particles, and more!" msgstr "" +#: lang/json/furniture_from_json.py +msgid "dishwasher" +msgstr "" + #. ~ Description for dishwasher #: lang/json/furniture_from_json.py msgid "" @@ -80507,15 +78574,6 @@ msgstr "" msgid "A more comfortable way of sitting down." msgstr "" -#: lang/json/furniture_from_json.py -msgid "airplane seat" -msgstr "" - -#. ~ Description for airplane seat -#: lang/json/furniture_from_json.py -msgid "An airplane seat with a seatbelt." -msgstr "" - #: lang/json/furniture_from_json.py msgid "chair" msgstr "" @@ -80824,47 +78882,6 @@ msgstr "" msgid "Sit down at it or work on it." msgstr "" -#. ~ Description for leather tarp -#: lang/json/furniture_from_json.py -msgid "" -"A large sheet of sewn leather that can be used instead of a picnic blanket, " -"but it's more valuable as a butchery appliance as it does not soak in blood." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "plastic groundsheet" -msgstr "" - -#. ~ Description for plastic groundsheet -#: lang/json/furniture_from_json.py -msgid "" -"A large sheet of thick plastic has been tossed on the ground here. It would " -"be a useful place to do some butchery, perhaps." -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "whuff!" -msgstr "" - -#: lang/json/furniture_from_json.py -msgid "crinkle." -msgstr "" - -#. ~ Description for fiber mat -#: lang/json/furniture_from_json.py -msgid "" -"A large mat woven from fibrous material that can be used instead of a picnic " -"blanket, but it's more valuable as a butchery appliance. Too thin to be a " -"comfortable sleeping place." -msgstr "" - -#. ~ Description for tourist table -#: lang/json/furniture_from_json.py -msgid "" -"Small metal folding table, ideal for off-road trips into the wild. Can be " -"used as a workbench in a pinch." -msgstr "" - #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -80932,15 +78949,6 @@ msgid "" "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 "" @@ -82517,33 +80525,6 @@ msgid "" "generous amounts of faith." msgstr "" -#: lang/json/gun_from_json.py -msgid "Remington ACR .300BLK" -msgid_plural "Remington ACR .300BLKs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This carbine was developed for military use in the early 21st century. It " -"is damaging and accurate, though its rate of fire is a bit slower than " -"competing carbines. This version is chambered for the .300 AAC Blackout " -"round." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "IWI Tavor X95 .300BLK" -msgid_plural "IWI Tavor X95 .300BLKs" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"The IWI Tavor X95 (also called Micro-Tavor or MTAR) is an Israeli bullpup " -"assault rifle designed and produced by Israel Weapon Industries. This is " -"the civilian version chambered for .300 AAC Blackout." -msgstr "" - #: lang/json/gun_from_json.py msgid "FN FAL" msgid_plural "FN FAL" @@ -84650,31 +82631,6 @@ msgid "" "Especially effective against electronic targets." msgstr "" -#: lang/json/gun_from_json.py -msgid "CMES laser cannon" -msgid_plural "CMES laser cannons" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This is the integral weapon system for the CMES exoskeleton mech-suit, a " -"rotating-barrel active-cooled rapid-fire laser system, can spray death " -"downrange with ease." -msgstr "" - -#: lang/json/gun_from_json.py -msgid "RMES marksman system" -msgid_plural "RMES marksman systems" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gun_from_json.py -msgid "" -"This is the integral weapon system for the RMES exoskeleton mech-suit, a " -"quiet and accurate marksman laser rifle." -msgstr "" - #: lang/json/gun_from_json.py msgid "handheld laser cannon" msgid_plural "handheld laser cannons" @@ -86536,27 +84492,6 @@ msgid "" "cartridges." msgstr "" -#: lang/json/gunmod_from_json.py -msgid ".300 AAC Blackout caliber conversion kit" -msgid_plural ".300 AAC Blackout caliber conversion kits" -msgstr[0] "" -msgstr[1] "" - -#: lang/json/gunmod_from_json.py -msgid "" -"This kit is used to convert an AR-15 .223/5.56mm rifle to the new .300BLK " -"caliber." -msgstr "" - -#: lang/json/gunmod_from_json.py -msgid "bore" -msgstr "" - -#: lang/json/gunmod_from_json.py -msgctxt "gun_type_type" -msgid "ar15" -msgstr "" - #: lang/json/gunmod_from_json.py msgid "barrel extension" msgid_plural "barrel extensions" @@ -86639,6 +84574,10 @@ msgid "" "slight reduction to accuracy." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "bore" +msgstr "" + #: lang/json/gunmod_from_json.py msgid ".223 caliber conversion kit" msgid_plural ".223 caliber conversion kits" @@ -87088,6 +85027,11 @@ 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" +msgstr "" + #: lang/json/gunmod_from_json.py msgid "lightning link" msgid_plural "lightning links" @@ -88253,28 +86197,25 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm is a survival roguelike with a monster apocalypse setting. You " +"Cataclysm is a survival roguelike with a monster apocalypse setting. You " "have survived the original onslaught, but the future looks pretty grim." msgstr "" #: lang/json/help_from_json.py msgid "" "You must prepare to face the many hardships to come including dwindling " -"supplies, hostile creatures, and harmful weather. Even among fellow " +"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." msgstr "" #: lang/json/help_from_json.py msgid "" -"Cataclysm differs from the traditional roguelikes in several ways. Rather " +"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." +"directions. In this survival roguelike, you will have to find food; you also " +"need to keep yourself hydrated and sleep periodically." msgstr "" #: lang/json/help_from_json.py @@ -88311,19 +86252,19 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "You may find doors, ('+'); these may be opened with or closed " -"with . Some doors are locked. Locked doors, windows, and some " +"with . Some doors are locked. Locked doors, windows, and some " "other obstacles can be destroyed by smashing them (, then " -"choose a direction). Smashing down obstacles is much easier with a good " +"choose a direction). Smashing down obstacles is much easier with a good " "weapon or a strong character." msgstr "" #: lang/json/help_from_json.py msgid "" "There may be times when you want to move more quickly by holding down a " -"movement key. However, fast movement in this fashion may lead to the player " +"movement key. However, fast movement in this fashion may lead to the player " "getting into a dangerous situation or even killed before they have a chance " -"to react. Pressing will toggle \"Safe Mode\". While this " -"is on, any movement will be ignored if new monsters enter the player's view." +"to react. Pressing will toggle \"Safe Mode\". While this is " +"on, any movement will be ignored if new monsters enter the player's view." msgstr "" #: lang/json/help_from_json.py @@ -88332,21 +86273,14 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"The player can often see more than can be displayed on the screen at a " -"time. Pressing enters \"look around mode\", which allows you " -"to scroll around using the movement keys and view items on the map as well " -"as monsters and their stance toward the character. Pressing " -" provides a list of nearby visible items, though items shut " -"away in crates, cupboards, refrigerators and the like won't be displayed " -"until you are close enough. Pressing Shift+vikeys (h,j,k,l,y,u,b,n) will " -"scroll the view persistently, allowing you to keep an eye on things as you " -"move around." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Places outside of your view but seen peviously and memorized can be " -"visualized, but covered by the \"fog of war\"." +"The player can often see more than can be displayed on the screen at a time. " +"Pressing enters \"look around mode\", which allows you to " +"scroll around using the movement keys and view items on the map as well as " +"monsters and their stance toward the character. Pressing " +"provides a list of nearby visible items, though items shut away in crates, " +"cupboards, refrigerators and the like won't be displayed until you are close " +"enough. Pressing Shift+vikeys (h,j,k,l,y,u,b,n) will scroll the view " +"persistently, allowing you to keep an eye on things as you move around." msgstr "" #: lang/json/help_from_json.py @@ -88355,76 +86289,48 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"As time passes, you will begin to feel hunger and thirst, and your stomach " -"will remind you of that. When this happens, a status info at the sidebar " -"will appear. Don't get confused - depending on your condition it will " -"display both how full is your stomach and hunger intensity in relation to " -"your nutrition status. Your body nutrition level is something different " -"then your current hunger. For example you may feel full after a big meal, " -"while still being malnourished. And you still will get hungry while being " -"overweight. With regular meals may even never get hungry and yet get " -"malnurished, if your calories intake is too low. In other words you need to " -"track both your immediate hunger/fullness and overall nutrition of your " -"whole body." +"As time passes, you will begin to feel hunger and thirst. When this happens, " +"a status warning at the sidebar will appear. As hunger and thirst reach " +"critical levels, you will begin to suffer movement penalties." msgstr "" #: lang/json/help_from_json.py msgid "" -"Food takes some time to digest, and water travels faster through your " -"digestive system. Sudden overeating and overdrinking may make you feel " -"excessively full, so split your meals. If you starved before, it will take " -"some time to recover your body mass, by building up stored calories when " -"eating regulary. Overeating in a long time leads to obesity. Both sides of " -"the spectrum are penalized. When hunger and thirst progress to severe " -"levels, you will also suffer penalties. Thirst will kill you faster then " -"hunger." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"You can develop various vitamin deficiencies if you eat poorly. These " -"deficiencies come in stages, so for example you won't go from perfectly good " -"health into a full-blown scurvy in an instant. Any developing and on-going " -"deficiencies will be reported in the character sheet. Deficiencies will " -"inflict various penalties, but luckily they are always reversible, and " -"multivitamin pills can help you to correct any deficiencies. You can also " -"ingest too much vitamins, and that too can create problems. Be sure to have " -"a balanced diet, or at least not a completely atrocious one. You can and " -"should examine food items to view their nutritional facts." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Eating and drinking poorly will affect your health. Fast foods, quick " -"snacks and sweet drinks are high in calories, but are a poor choice for a " -"sustainable food source, if you don't want your health to get worse. On the " -"other hand vegetables, herbal teas, and many other self-prepared meals are " -"good for your health, and are welcomed additions to your diet." +"Thirst is more dangerous than hunger but you can develop various vitamin " +"deficiencies if you eat poorly. These deficiencies come in stages, so for " +"example you won't go from perfectly good health into a full-blown scurvy in " +"an instant. Any developing and on-going deficiencies will be reported in the " +"character sheet. Deficiencies will inflict various penalties, but luckily " +"they are always reversible, and multivitamin pills can help you to correct " +"any deficiencies. You can also ingest too much vitamins, and that too can " +"create problems. Be sure to have a balanced diet, or at least not a " +"completely atrocious one. You can and should examine food items to view " +"their nutritional facts." msgstr "" #: lang/json/help_from_json.py msgid "" "Finding food in a city is usually easy; outside of a city, you may have to " -"hunt or forage. After killing an animal, stand over the animal's corpse and " -"butcher it into small chunks of meat by pressing . You might " -"also be able to forage for edible fruit or vegetables; to do it, find a " -"promising plant and examine it. Likewise, you may have to drink water from " -"a river or another natural source. To collect it, stand in shallow water " -"and press . You'll need a watertight container to store it. " -"Be forewarned that most sources of water aren't trustworthy and may produce " -"diseased water. To make sure it's healthy, purify the water by boiling it " -"or using water purifier before drinking." +"hunt. After killing an animal, stand over the animal's corpse and butcher it " +"into small chunks of meat by pressing . You might also be " +"able to forage for edible fruit or vegetables; to do it, find a promising " +"plant and examine it. Likewise, you may have to drink water from a river or " +"another natural source. To collect it, stand in shallow water and press " +". You'll need a watertight container to store it. Be " +"forewarned that some sources of water aren't trustworthy and may produce " +"diseased water. To make sure it's healthy, purify the water by boiling it or " +"using water purifier before drinking." msgstr "" #: lang/json/help_from_json.py msgid "" -"Every dozen or so hours, you'll find yourself growing sleepy. If you do not " +"Every 14 to 20 hours, you'll find yourself growing sleepy. If you do not " "sleep by pressing , you'll start suffering stat and movement " -"penalties. You may not always fall asleep right away. Sleeping indoors, " -"especially on a bed, will help. If that's not enough, sleeping pills may be " -"of use. While sleeping, you'll slowly replenish lost hit points. You'll " -"also be vulnerable to attack, so try to find a safe place to sleep, or set " -"traps for unwary intruders." +"penalties. You may not always fall asleep right away. Sleeping indoors, " +"especially on a bed, will help. If that's not enough, sleeping pills may be " +"of use. While sleeping, you'll slowly replenish lost hit points. You'll also " +"be vulnerable to attack, so try to find a safe place to sleep, or set traps " +"for unwary intruders." msgstr "" #: lang/json/help_from_json.py @@ -88433,17 +86339,17 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"When you take damage from almost any source, you'll start to feel pain. " -"Pain slows you down and reduces your stats, and finding a way to manage pain " -"is an early imperative. The most common is drugs: aspirin, codeine, " -"tramadol, oxycodone, and more are all great options. Be aware that while " -"under the influence of many painkillers, the physiological side effects may " -"slow you or reduce your stats." +"When you take damage from almost any source, you'll start to feel pain. Pain " +"slows you down and reduces your stats, and finding a way to manage pain is " +"an early imperative. The most common is drugs: aspirin, codeine, tramadol, " +"oxycodone, and more are all great options. Be aware that while under the " +"influence of many painkillers, the physiological side effects may slow you " +"or reduce your stats." msgstr "" #: lang/json/help_from_json.py msgid "" -"Note that most painkillers take a little while to kick in. If you take some " +"Note that most painkillers take a little while to kick in. If you take some " "oxycodone and don't notice the effects right away, don't start taking more " "- you may overdose and die!" msgstr "" @@ -88457,121 +86363,40 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Another common class of drugs is stimulants. Stimulants provide you with a " +"Another common class of drugs is stimulants. Stimulants provide you with a " "temporary rush of energy, increasing your movement speed and many stats " -"(most notably intelligence), making them useful study aids. There are two " +"(most notably intelligence), making them useful study aids. There are two " "drawbacks to stimulants: they make it more difficult to sleep and, more " -"importantly, most are highly addictive. Stimulants range from the caffeine " +"importantly, most are highly addictive. Stimulants range from the caffeine " "rush of cola to the more intense high of Adderall and methamphetamine." msgstr "" #: lang/json/help_from_json.py -msgid "" -"Depressants are opposite to stimulants. They will make you groggy and " -"sluggish, but may help you in falling asleep." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Extreme levels of stimulants or depressants in your system are dangerous to " -"your health." -msgstr "" - -#: lang/json/help_from_json.py -msgid ": Healing and medication" -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"When you take damage it will change status of affected body part shown in " -"the sidebar. Its overall wellness is represented by bars, that will deplete " -"the more damage you take. If the accumulated damage is more then the " -"bodypart can suffer, it will break. If that happens to critical body part " -"you will die. For other body parts it means broken bones, significant " -"penalties and a long process of healing, after placing affected limb in a " -"splint." +msgid ": Addiction" msgstr "" #: lang/json/help_from_json.py msgid "" -"Normal damage heals with time. You heal more overnight during good sleep, " -"but wounds also heal a bit by day." +"Many drugs have a potential for addiction. Each time you consume such a drug " +"there is a chance that you will grow dependent on it. Consuming more of that " +"drug will increase your dependence. Effects vary greatly between drugs, but " +"all addictions have only one cure; 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 "" #: lang/json/help_from_json.py msgid "" -"You need to treat your wounds properly, because untreated wounds heal very " -"slowly. First, you need to bandage your wounds, and if possible disinfect " -"them as well. This will set conditions for a proper healing and results in " -"faster recovery. You can make makeshift bandages if you have the skill, and " -"there are a few options to replenish your disinfectant stocks. But remember " -"to always treat your wounds by default, as this is the proper way to get " -"them healed." +"If you are suffering from drug withdrawal, taking more of the drug will " +"cause the effects to cease immediately, but may deepen your dependence." msgstr "" #: lang/json/help_from_json.py -msgid "" -"You can get bitten if a zombie grabs you. Bite wounds can be deep and " -"infected. If that happens the status bar of affected body part will change " -"color to blue. This means you need to disinfect it as soon as possible to " -"clean the wound and prevent serious infection. If there is no chance of " -"getting disinfectant on the horizon you may try more drastic method of " -"cauterizing the wound, but it often worsens its state instead of helping. " -"If you leave it be, the affected body part will develop serious infection, " -"and it's status bar color will change to green. At this stage it is too " -"late to disinfect the wound, and you need antibiotics to fight it. Your " -"body will fight the infection by itself, and regular antibiotics intake may " -"keep you alive long enough for it to happen. You have to wait it out in " -"hope that you will not die in the process." +msgid ": Morale and learning" msgstr "" #: lang/json/help_from_json.py msgid "" -"If you are bleeding the status bar of the wounded part turns red. Affected " -"limb takes damage as long as it bleeding. Simpliest way to stop bleeding is " -"using a bandage, and there are more medical items dedicated to stopping " -"hemorrage." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"You may be affected by one of many medical conditions and maladies " -"throughout the game. In that case, you may want to seek proper medication, " -"if one exists for the affliction you suffer. There are many medications " -"beside painkillers, some of which have some extra effects that you might " -"utilize even in a way not originaly intended. With some skill you can also " -"try natural medicine, as many herbs have more or less beneficial effects, " -"and if you are a seasoned chemist you can synthetize your own drugs." -msgstr "" - -#: lang/json/help_from_json.py -msgid ": Addiction" -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Many drugs (and some consumables) have a potential for addiction. Each time " -"you consume such there is a chance that you will grow dependent on it. " -"Consuming more of that drug will increase your dependence. Effects vary " -"greatly between addictive substances, but all addictions have only one cure; " -"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 "" - -#: lang/json/help_from_json.py -msgid "" -"If you are suffering from withdrawal effects, taking more of the addictive " -"substance will cause the effects to cease immediately, but may deepen your " -"dependence." -msgstr "" - -#: lang/json/help_from_json.py -msgid ": Morale and learning" -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Your character has a morale level, which affects you in many ways. The " +"Your character has a morale level, which affects you in many ways. The " "depressing post-apocalypse world is tough to deal with, and your mood will " "naturally decrease very slowly." msgstr "" @@ -88587,108 +86412,97 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "There are also lots of ways for your morale to decrease, beyond its natural " -"decay. Eating disgusting food, reading a boring technical book, killing a " +"decay. Eating disgusting food, reading a boring technical book, killing a " "friendly NPC, or going through drug withdrawal are some prominent examples." msgstr "" #: lang/json/help_from_json.py msgid "" -"Low morale will make you sluggish and unmotivated. If your morale drops " -"very low, you won't be able to perform crafting at all. If you become " -"sufficiently depressed, you will suffer stat penalties. Very high morale " -"fills you with gusto and energy, and you will find yourself moving faster. " +"Low morale will make you sluggish and unmotivated. If your morale drops very " +"low, you won't be able to perform crafting at all. If you become " +"sufficiently depressed, you will suffer stat penalties. Very high morale " +"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 msgid "" "Morale is also responsible for ensuring you can learn effectively, via a " -"mechanic referred to as 'focus'. Your focus level is a measure of how " -"effectively you can learn. The natural level is 100, which indicates normal " -"learning potential. Higher or lower focus levels make it easier or harder " -"to learn from practical experience." +"mechanic referred to as 'focus'. Your focus level is a measure of how " +"effectively you can learn. The natural level is 100, which indicates normal " +"learning potential. Higher or lower focus levels make it easier or harder to " +"learn from practical experience." msgstr "" #: lang/json/help_from_json.py msgid "" -"Your focus level has a natural set point that it converges towards. When " +"Your focus level has a natural set point that it converges towards. When " "your focus is much lower - or higher - than this set point, it will change " -"faster than when it is near the set point. Having high morale will raise " -"the set point, and having low morale will lower the set point. Pain is also " +"faster than when it is near the set point. Having high morale will raise the " +"set point, and having low morale will lower the set point. Pain is also " "factored into the set point calculation - it's harder to learn when you're " "in pain." msgstr "" #: lang/json/help_from_json.py msgid "" -"Your focus is also lowered by certain activities. Training your skills " +"Your focus is also lowered by certain activities. Training your skills " "through real-world practice lowers your focus gradually, by an amount that " "depends on your current level of focus (higher focus means larger decreases, " -"as well as improved learning). Training your skills by reading books " +"as well as improved learning). Training your skills by reading books " "decreases your focus rapidly, by giving a significant penalty to the set " "point of your focus." msgstr "" #: lang/json/help_from_json.py -msgid "" -"You can disable a skill in the Player Info Menu (press ) " -"if you don't want to practice it, and it will prevent focus drain while " -"performing relevant action, but you will not progress in that skill while " -"it's disabled." -msgstr "" - -#: lang/json/help_from_json.py -msgid ": Radioactivity and mutation" +msgid ": Radioactivity and mutation" msgstr "" #: lang/json/help_from_json.py msgid "" "Though it is relatively rare, certain areas of the world may be contaminated " -"with radiation. It will gradually accumulate in your body, weakening you " -"more and more. While in radiation-free areas, your radiation level will " -"slowly decrease. Taking Prussian blue tablets will help speed the process. " -"Get yourself a measuring device, as radiation is invisible and you may not " -"know it that you are under its influence until it results in radiation " -"sickness." +"with radiation. It will gradually accumulate in your body, weakening you " +"more and more. While in radiation-free areas, your radiation level will " +"slowly decrease. Taking Prussian blue tablets will help speed the process." msgstr "" #: lang/json/help_from_json.py msgid "" -"If you become very irradiated, you may develop mutations. Most of the time, " +"If you become very irradiated, you may develop mutations. Most of the time, " "these mutations will be negative; however, many are beneficial, and others " -"have both positive and negative effects. Your mutations may change your " -"play style considerably. It is possible to find substances that will remove " +"have both positive and negative effects. Your mutations may change your play " +"style considerably. It is possible to find substances that will remove " "mutations, though these are extremely rare." msgstr "" #: lang/json/help_from_json.py msgid "" "There are various mutagenic substances, and consuming (or injecting) them " -"will grant mutations. However, the process taxes your body significantly, " -"and can be addictive. With enough mutations and certain conditions being " +"will grant mutations. However, the process taxes your body significantly, " +"and can be addictive. With enough mutations and certain conditions being " "met, you will permanently transcend your humanity into a wholly different " "life-form." msgstr "" #: lang/json/help_from_json.py -msgid ": Bionics" +msgid ": Bionics" msgstr "" #: lang/json/help_from_json.py msgid "" -"Bionics are biomechanical upgrades to your body. While many are simply " +"Bionics are biomechanical upgrades to your body. While many are simply " "'built-in' versions of items you would otherwise have to carry, some bionics " -"have unique effects that are otherwise unobtainable. Some bionics are " +"have unique effects that are otherwise unobtainable. Some bionics are " "constantly working, whereas others need to be toggled on and off as needed." msgstr "" #: lang/json/help_from_json.py msgid "" "Most bionics require a source of power, and you will need an internal " -"battery to store energy for them. Your current amount of energy is " -"displayed in the sidebar right below your health. Replenishing energy can " -"be done in a variety of ways, but all require the installation of a special " -"bionic just for that purpose." +"battery to store energy for them. Your current amount of energy is displayed " +"in the sidebar right below your health. Replenishing energy can be done in a " +"variety of ways, but all require the installation of a special bionic just " +"for fuel consumption." msgstr "" #: lang/json/help_from_json.py @@ -88698,14 +86512,12 @@ msgid "" "requires high levels of Intelligence, first aid, mechanics, and " "electronics. Beware, though, a failure may cripple you! Many bionic " "modules are difficult to find, but may be purchased from certain wandering " -"vagabonds for a very high price, or aquired by skillful dissection of " -"corpses of deceased bionic users. Bionic modules obtained this way may " -"require extra preparations to become usable." +"vagabonds for a very high price." msgstr "" #: lang/json/help_from_json.py msgid "" -"Any bionic can be removed from your body but it may be even harder than its " +"Any bionic can be removed from your body but it's not any easier than its " "installation; and as well as installation, this non-trivial surgical " "procedure requires anesthesia." msgstr "" @@ -88714,7 +86526,7 @@ msgstr "" msgid "" "For lone survivors, the standard choice for installing or uninstalling " "bionics is an Autodoc. Usually you can find one in a hospital or clinic. " -"All Autodoc procedures require an anesthetic kit. However, you can bypass " +"All Autodoc procedures require an anesthetic kit. However, you can bypass " "this restriction if you find a way to completely negate pain. Don't even " "try without proper anesthesia - normal drugs won't help." msgstr "" @@ -88727,62 +86539,52 @@ msgid "" msgstr "" #: lang/json/help_from_json.py -msgid ": Crafting" +msgid ": Crafting" msgstr "" #: lang/json/help_from_json.py msgid "" "Many important items can be very hard to find or will cost a great deal of " -"money to trade for. Fortunately, it is possible to craft a wide variety of " +"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 "" #: lang/json/help_from_json.py msgid "" -"Some recipes require a set of tools. These are not used up when crafting, " -"so you can keep your tool set. All recipes require one or more " -"ingredients. These ARE used up in crafting." +"Some recipes require a set of tools. These are not used up when crafting, so " +"you can keep your tool set. All recipes require one or more ingredients. " +"These ARE used up in crafting." msgstr "" #: lang/json/help_from_json.py msgid "" -"To craft items, press . There are eight categories: Weapons, " -"Ammo, Food, Chemicals, Electronics, Armor, Animals and Other. In each major " -"category there are several smaller sub-categories. While a few items " -"require no particular skill to create, the majority require you to have some " -"knowledge. Sometimes a skilled survivor will work out a given recipe from " -"her or his knowledge of the skill, but more often you will need reference " -"material, commonly a book of some sort. Reading such references gives a " -"chance to memorize recipes outright, and you can also craft while referring " -"to the book: just have it handy when crafting. Different knowledge is " -"useful for different applications:" -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"-> Fabrication is the generic artisan skill, used for a wide variety of gear." +"To craft items, press . There are seven categories: Weapons, " +"Ammo, Food, Chemicals, Electronics, Armor, and Other. In each major category " +"there are several smaller sub-categories. While a few items require no " +"particular skill to create, the majority require you to have some knowledge. " +"Sometimes a skilled survivor will work out a given recipe from her or his " +"knowledge of the skill, but more often you will need reference material, " +"commonly a book of some sort. Reading such references gives a chance to " +"memorize recipes outright, and you can also craft while referring to the " +"book: just have it handy when crafting. Different knowledge is useful for " +"different applications:" msgstr "" #: lang/json/help_from_json.py msgid "" +"-> Fabrication is the generic artisan skill, used for a wide variety of " +"gear.\n" "-> Cooking, at low levels, is used for making tasty recipes; at higher " "levels, you have an understanding of chemistry and can make chemical weapons " -"and beneficial elixirs." -msgstr "" - -#: lang/json/help_from_json.py -msgid "-> Tailoring is used to create basic clothing, and armor later on." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" +"and beneficial elixirs.\n" +"-> Tailoring is used to create basic clothing, and armor later on.\n" "-> Electronics lets you make a wide variety of tools with intricate uses." msgstr "" #: lang/json/help_from_json.py msgid "" "In addition to the primary crafting skills, other skills may be necessary to " -"create certain items. Traps, Marksmanship, and First Aid are all required " +"create certain items. Traps, Marksmanship, and First Aid are all required " "for certain items." msgstr "" @@ -88796,50 +86598,35 @@ msgstr "" msgid "" "Crafting very large/heavy items or batches of items is best done at a " "workbench of some kind. You could use any ordinary table, or build your own " -"out of metal to handle even heavier loads. Using a workbench or other " -"furniture for crafting is benefitial for the added comfort, thus making the " -"process faster." +"out of metal to handle even heavier loads." msgstr "" #: lang/json/help_from_json.py -msgid "" -"If for any reason the crafting process is interupted the progress is wrapped " -"in a special item representing craft in making. You may use it to resume " -"crafting at any point." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Batch crafting in most cases means time saving, and your companions can also " -"help if they know the ropes." -msgstr "" - -#: lang/json/help_from_json.py -msgid ": Traps" +msgid ": Traps" msgstr "" #: lang/json/help_from_json.py msgid "" "Before sleeping in a dangerous territory, it may be wise to set traps to " -"ward off unwanted intrusions. There are a few traps to be found in the " +"ward off unwanted intrusions. There are a few traps to be found in the " "world, most notably bubble wrap (which will make a loud noise if stepped on, " "helping to wake you up) and bear traps (which make noise AND damage, and " -"trap anything that steps on them). Others need to be crafted; this requires " +"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 msgid "" "To set a trap, simply use the item (press ) and choose a " -"direction; the trap will be placed on an adjacent tile. Some traps may " -"require additional tools, like a shovel, to be set. Once set, a trap will " +"direction; the trap will be placed on an adjacent tile. Some traps may " +"require additional tools, like a shovel, to be set. Once set, a trap will " "remain in place until stepped on or disarmed." msgstr "" #: lang/json/help_from_json.py msgid "" -"To disarm a trap, examine (press ) the space it is on. Your " -"success depends upon your Traps skill and Dexterity. If you succeed, the " +"To disarm a trap, examine (press ) the space it is on. Your " +"success depends upon your Traps skill and Dexterity. If you succeed, the " "trap is removed and replaced by some or all of its constituent parts; " "however, if you fail, there is a chance that you will set off the trap, " "suffering the consequences." @@ -88847,26 +86634,20 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"Many traps are fully or partially hidden. Your ability to detect traps is " -"entirely dependent upon your Perception. Should you stumble into a trap, " -"you may have a chance to avoid it, depending on your Dodge skill." +"Many traps are fully or partially hidden. Your ability to detect traps is " +"entirely dependent upon your Perception. Should you stumble into a trap, you " +"may have a chance to avoid it, depending on your Dodge skill." msgstr "" #: lang/json/help_from_json.py -msgid "" -"Some traps can be build via the construction menu. Pit traps are the most " -"common example of such traps." -msgstr "" - -#: lang/json/help_from_json.py -msgid ": Items overview" +msgid ": Items overview" msgstr "" #: lang/json/help_from_json.py msgid "" -"There is a wide variety of items available for your use. You may find them " +"There is a wide variety of items available for your use. You may find them " "lying on the ground; if so, simply press to pick up items on " -"the same square. Some items are found inside a container, drawn as a { with " +"the same square. Some items are found inside a container, drawn as a { with " "a blue background. Pressing , then a direction key, will " "allow you to examine these containers and loot their contents." msgstr "" @@ -88875,72 +86656,48 @@ msgstr "" msgid "" "Pressing opens a comparison menu, where you can see two " "items side-by-side with their attributes highlighted to indicate which is " -"superior. You can also access the item comparison menu by pressing C after " +"superior. You can also access the item comparison menu by pressing C after " " to view nearby items menu is open and an item is selected." msgstr "" #: lang/json/help_from_json.py msgid "" -"All items may be used as a melee weapon, though some are better than " -"others. You can check the melee attributes of an item you're carrying by " -"hitting to enter your inventory, then pressing the letter " -"of the item. There are 3 melee values: bashing, cutting, and to-hit bonus " -"(or penalty). Bashing damage is universally effective, but is capped by low " -"strength. Cutting damage is a guaranteed increase in damage, but it may be " +"All items may be used as a melee weapon, though some are better than others. " +"You can check the melee attributes of an item you're carrying by hitting " +" to enter your inventory, then pressing the letter of the " +"item. There are 3 melee values: bashing, cutting, and to-hit bonus (or " +"penalty). Bashing damage is universally effective, but is capped by low " +"strength. Cutting damage is a guaranteed increase in damage, but it may be " "reduced by a monster's natural armor." msgstr "" #: lang/json/help_from_json.py msgid "" -"To wield an item as a weapon, press then the proper letter. " -"Wielding the item you are currently wielding will unwield it, leaving your " -"hands empty. A wielded weapon will not contribute to your volume carried, " -"so holding a large item in your hands may be a good option for travel. When " -"unwielding your weapon, it will go back in your inventory, or may be dropped " -"on the ground if there is no space." +"To wield an item as a weapon, press then the proper letter. " +"wielding the item you are currently wielding will unwield it, leaving your " +"hands empty. A wielded weapon will not contribute to your volume carried, so " +"holding a large item in your hands may be a good option for travel. When " +"unwielding your weapon, it will go back in your inventory, or will be " +"dropped on the ground if there is no space." msgstr "" #: lang/json/help_from_json.py msgid "" -"To wear a piece of clothing, press then the proper letter. " -"Armor reduces damage and helps you resist things like smoke. To take off an " -"item, press then the proper letter. Clothing and armor are " -"worn on layers, and provide different coverage, protection and warmth. Each " -"piece has its own encumbrance, and wearing too much on each layer can " -"significantly hamper your movement and other abilities, especially during " -"combat. You can view and sort worn items by pressing ." +"To wear a piece of clothing, press then the proper letter. " +"Armor reduces damage and helps you resist things like smoke. To take off an " +"item, press then the proper letter." msgstr "" #: lang/json/help_from_json.py msgid "" -"Your clothing can sit in one of five layers on your body: next-to-skin, " -"standard, waist, over, and belted. You can wear one item from each layer on " -"a body part without incurring an encumbrance penalty for too many worn " -"items. Any items beyond the first on each layer add the encumbrance of the " -"additional article(s) of clothing to the body part's encumbrance. The " -"layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per " -"article of clothing." +"Also available in the view nearby items menu (press to " +"open) is the ability to filter or prioritize items. You can enter item " +"names, or various advanced filter strings: {:}" msgstr "" #: lang/json/help_from_json.py msgid "" -"For example, on her torso, a character might wear a leather corset (next-to-" -"skin), a leather touring suit (standard), a trenchcoat (over), and a " -"survivor's runner pack (belted). Her encumbrance penalty is 0. If she put " -"on a tank top it would conflict with the leather touring suit and add the " -"minimum encumbrance penalty of 2." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"In the view nearby items menu (press to open) you can " -"filter or prioritize items. You can enter item names, or various advanced " -"filter strings: {:}" -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Some available tokens:\n" +"Currently Available tokens:\n" "\t c = category (books, food, etc) | {c:books}\n" "\t m = material (cotton, kevlar, etc) | {m:iron}\n" "\t dgt = damage greater than (0-5) | {dgt:2}\n" @@ -88948,35 +86705,33 @@ msgid "" msgstr "" #: lang/json/help_from_json.py -msgid ": Combat" +msgid ": Combat" msgstr "" #: lang/json/help_from_json.py msgid "" -"Zombies in cities will spawn at the start of the game but may also wander " -"around. All monsters are represented by letters on your screen; a list of " -"monster names, and their positions relative to you, is displayed on the " -"right side of the screen. The so called compass will display monsters that " -"you see but are outside the screen." +"Zombies in cities will spawn at the start of the game. All monsters are " +"represented by letters on your screen; a list of monster names, and their " +"positions relative to you, is displayed on the right side of the screen." msgstr "" #: lang/json/help_from_json.py msgid "" -"To attack a monster with a melee weapon, simply move into them. The time it " -"takes to attack depends on the size and weight of your weapon. Small, light " +"To attack a monster with a melee weapon, simply move into them. The time it " +"takes to attack depends on the size and weight of your weapon. Small, light " "weapons are the fastest; unarmed attacks increase in speed with your Unarmed " -"Combat skill, and will eventually be VERY fast. A successful hit with a " -"bashing weapon may stun the monster temporarily. A miss may make you " -"stumble and lose movement points. If a monster hits you, your clothing may " -"absorb some damage, but you will absorb the excess." +"Combat skill, and will eventually be VERY fast. A successful hit with a " +"bashing weapon may stun the monster temporarily. A miss may make you stumble " +"and lose movement points. If a monster hits you, your clothing may absorb " +"some damage, but you will absorb the excess." msgstr "" #: lang/json/help_from_json.py msgid "" -"Swarms of monsters may call for firearms. Most firearms in the game require " -"compatible magazines to hold the ammunition. Compatible magazines are " -"listed in a given firearm's description. Fortunately, a firearm often " -"spawns with one such magazine in it." +"Swarms of monsters may call for firearms. Most firearms in the game require " +"compatible magazines to hold the ammunition. Compatible magazines are listed " +"in a given firearm's description. Fortunately, a firearm often spawns with " +"one such magazine in it." msgstr "" #: lang/json/help_from_json.py @@ -88986,15 +86741,15 @@ msgid "" "partially filled magazine in it, and some matching loose ammo in the " "inventory, you can simply order a reload by pressing , so you " "will automatically eject the magazine, fill it with as much ammo as " -"possible, and then put the magazine back in. You don't have to worry about " -"chambering a round though. Of course all this takes some time, so try not " -"to do it if there are monsters nearby." +"possible, and then put the magazine back in. You don't have to worry about " +"chambering a round though. Of course all this takes some time, so try not to " +"do it if there are monsters nearby." msgstr "" #: lang/json/help_from_json.py msgid "" "While magazines are often firearm-specific, on some occasions a magazine is " -"compatible with several other firearms. The firearms in the game often " +"compatible with several other firearms. The firearms in the game often " "reflect real-world prototypes in terms of caliber and compatibility. Below " "are some examples of interchangeable ammo:\n" ".308 = 7.62x51mm,\n" @@ -89010,7 +86765,7 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "Note that while several ammo types exist for a given caliber and magazine " -"type, you can't mix and match these types into a single magazine. You can't " +"type, you can't mix and match these types into a single magazine. You can't " "for example load 9x19mm JHP and 9x19mm FMJ ammo into the same magazine, " "since a magazine always requires identical rounds to be loaded in it." msgstr "" @@ -89018,10 +86773,11 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "Magazines can be stored inside several worn accessories for quicker access, " -"such as chest rigs and ammo pouches. All these compatible storage items are " -"listed in a given magazine's description. To store a magazine into a " -"clothing item, activate () appropriate clothing item, at which " -"point you'll get to choose which magazine to store." +"such as chest rigs and ammo pouches. All these compatible storage items are " +"listed in a given magazine's description. At the moment, you can only store " +"one magazine per clothing item. To store a magazine into a clothing item, " +"'a'ctivate the appropriate clothing item, at which point you'll get to " +"choose which magazine to store." msgstr "" #: lang/json/help_from_json.py @@ -89034,178 +86790,140 @@ msgid "" "severely reduce accuracy." msgstr "" -#: lang/json/help_from_json.py -msgid "" -"Key is not reserved only for guns. It also works for other " -"distance weapons like spears or launchers, but the aiming options may vary." -msgstr "" - #: lang/json/help_from_json.py msgid "" "Fleeing will often be a solid tactic, especially when overwhelmed by a swarm " -"of zombies. Try to avoid getting cornered inside a building. Ducking down " +"of zombies. Try to avoid getting cornered inside a building. Ducking down " "into the subways or sewers is often an excellent escape tactic." msgstr "" #: lang/json/help_from_json.py -msgid ": Martial arts styles" +msgid ": Martial arts styles" msgstr "" #: lang/json/help_from_json.py msgid "" "A variety of fighting styles are available, particularly for the unarmed " -"fighter. You can start with your choice of a single, commonly-taught style " -"by starting with the Martial Arts Training trait. Many, many more can be " -"found in their own traits, trained from manuals or by taking lessons from " +"fighter. You can start with your choice of a single, commonly-taught style " +"by starting with the Martial Arts Training trait. Many, many more can be " +"found in their own traits, learned from manuals or by taking lessons from " "wandering masters." msgstr "" #: lang/json/help_from_json.py msgid "" -"To select a fighting style, press . Some styles are " +"To select a fighting style, press . Some styles are " "relevant only when you are unarmed, others are compatible with or require " -"certain weapons. If your current weapon is compatible with the chosen " -"style, you will start using the selected style immediately. Otherwise, it " -"will be locked in as your default style. To start using it, wield a " -"relevant weapon or empty your hands, by pressing , then the key " -"for the item you are currently wielding. If you wish to prevent yourself " -"from accidentally wielding weapons taken from the ground, enable \"Keep " -"hands free\" found in the styles menu." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Remember to read the style's description, by pressing 'F1' in the pick style " -"menu. You will be provided with a list of passive and active abilities " -"associated with the style. These are varied and unique to each style, and " -"range from special combo moves to bonuses depending on the situation you are " -"in." +"certain weapons. If your current weapon is compatible with the chosen style, " +"you will start using the selected style immediately. Otherwise, it will be " +"locked in as your default style. To start using it, wield a relevant weapon " +"or empty your hands, by pressing , then the key for the item " +"you are currently wielding. If you wish to prevent yourself from " +"accidentally wielding weapons taken from the ground, enable \"Keep hands free" +"\" found in the styles menu." msgstr "" #: lang/json/help_from_json.py msgid "" -"Most styles have a variety of special moves associated with them. Most have " +"Most styles have a variety of special moves associated with them. Most have " "a skill requirement, and will be unavailable until you reach a level of " -"unarmed skill. Those special moves or combos are executed automatically " -"during attacks you make." +"unarmed skill. You can check the moves by pressing '?' in the pick style " +"menu." msgstr "" #: lang/json/help_from_json.py msgid "" -"Many styles also have special passive effects unlocked under certain " -"conditions. You can also check these by examining your style." +"Many styles also have special effects unlocked under certain conditions. " +"These are varied and unique to each style, and range from special combo " +"moves to bonuses depending on the situation you are in. You can check these " +"by examining your style." msgstr "" #: lang/json/help_from_json.py -msgid ": Survival tips" +msgid ": Survival tips" msgstr "" #: lang/json/help_from_json.py msgid "" -"Survival hierarchy of needs in most cases is as follows: shelter, fire, " -"water, food. The rest is the process of trying to answer a question what " -"would you do in a survival situation?" -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"The first thing to do, when you are out of immediate danger, is checking " -"your starting location for useful items. Your initial storage is limited, " -"and a backpack, trenchcoat, or other storage medium will let you carry a lot " -"more. Finding a weapon is important, but not a first priority; frying pans, " -"butcher knives, and more are common in houses; hardware stores may carry " -"others. Initially keep the guns as a last resort trump card. Ammo is " -"scarce, while zombies are plenty, and unwanted attention may be more you can " -"handle." +"The first thing to do is checking your starting location for useful items. " +"Your initial storage is limited, and a backpack, trenchcoat, or other " +"storage medium will let you carry a lot more. Finding a weapon is important; " +"frying pans, butcher knives, and more are common in houses; hardware stores " +"may carry others. Unless you plan on concentrating on melee combat, seek out " +"gun stores as soon as possible and load up on more than one type." msgstr "" #: lang/json/help_from_json.py msgid "" "It's also important to carry a few medications; painkillers are a must-have, " "and drugs such as cigarettes will make your life easier (but beware of " -"addiction). Leave the city as soon as you have a good stockpile of " -"equipment. The high concentration of zombies makes them a deathtrap - but a " +"addiction). Leave the city as soon as you have a good stockpile of " +"equipment. The high concentration of zombies makes them a deathtrap -- but a " "necessary resource of food and ammunition." msgstr "" #: lang/json/help_from_json.py msgid "" -"Avoid combat whenever you can. Run if you have to, but control your " -"stamina, as zombieas are inexhaustible unlike yourself. Combat is always " -"risky, and sometimes one wrong step may be your last. Therefore in most " -"cases you gain nothing from combat, unless you are equipped for it and " -"killing zombies will help you achieve something." -msgstr "" - -#: lang/json/help_from_json.py -msgid "" -"Combat is much easier if you can fight just one monster at once. You can " -"sometimes kite singled-out zombies. Use doorways as a choke point or stand " -"behind a window and strike as the zombies slowly climb through. Be wary - in " -"number they will push through anyway. Never be afraid to just run if you " -"can outpace your enemies. Irregular terrain, like forests, may help you lose " -"monsters." +"Combat is much easier if you can fight just one monster at once. Use " +"doorways as a choke point or stand behind a window and strike as the zombies " +"slowly climb through. Never be afraid to just run if you can outpace your " +"enemies. Irregular terrain, like forests, may help you lose monsters." msgstr "" #: lang/json/help_from_json.py msgid "" "Using firearms is the easiest way to kill an enemy, but the sound will " -"attract unwanted attention. Save the guns for emergencies, and melee when " +"attract unwanted attention. Save the guns for emergencies, and melee when " "you can." msgstr "" #: lang/json/help_from_json.py msgid "" "If you need to protect yourself from acid, clothing made of cloth < leather " -"< kevlar < plastic. So while leather and kevlar will protect you from " -"active enemies, a hazmat suit and rubber boots will make you nigh-immune to " -"acid damage. Items made of glass, ceramics, diamond or precious metals will " -"be totally immune to acid." +"< kevlar < plastic. So while leather and kevlar will protect you from active " +"enemies, a hazmat suit and rubber boots will make you nigh-immune to acid " +"damage. Items made of glass, ceramics, diamond or precious metals will be " +"totally immune to acid." msgstr "" #: lang/json/help_from_json.py msgid "" -"When looting try to fill your inventory as much as possible without being " -"overloaded. You never know when you might need an item, most are good to " -"sell, and you can easily drop unwanted items on the floor. But don't go " -"looting empty-handed, you never know what might happen, so have your most " -"crucial survival items with you." +"Try to keep your inventory as full as possible without being overloaded. You " +"never know when you might need an item, most are good to sell, and you can " +"easily drop unwanted items on the floor." msgstr "" #: lang/json/help_from_json.py msgid "" -"Keep an eye on the weather. Wind and humidity will exacerbate dire " -"conditions, so seek shelter if you're unable to withstand them. Staying dry " +"Keep an eye on the weather. Wind and humidity will exacerbate dire " +"conditions, so seek shelter if you're unable to withstand them. Staying dry " "is important, especially if conditions are so low that they would cause " -"frostbite. Use a towel to dry yourself if you are wet from the rain. If " -"you're having trouble staying warm over night, make a pile of clothing on " -"the floor to sleep on. Finding a pillow and a blanket for your bed is " -"always good for the quality of your sleep. If you can't have those, " -"improvise, even a chair in a basement is better then a wet ground in the " -"field. Finding or making a shelter with a place to sleep is very important " -"to your survival." +"frostbite. If you're having trouble staying warm over night, make a pile of " +"clothing on the floor to sleep on." msgstr "" #: lang/json/help_from_json.py msgid "" -"Winter is harsh. Liquids and food may freeze, and you may need to defrost " -"them using cooking appliance. Placing them by the lit fire might also " -"help. Basements are warmer in winter and cooler in summer, so its a good " -"place to place your excess food. Most food decays with time, and that " -"process can be speed up or slowed down by temperature. Frozen food will not " -"rot. It you will be able to bring a freezer or a fridge back to life it " -"will help you in the long run. If those are out of your reach think about " -"constructing root cellar." +"Your clothing can sit in one of five layers on your body: next-to-skin, " +"standard, waist, over, and belted. You can wear one item from each layer on " +"a body part without incurring an encumbrance penalty for too many worn " +"items. Any items beyond the first on each layer add the encumbrance of the " +"additional article(s) of clothing to the body part's encumbrance. The " +"layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per " +"article of clothing." msgstr "" #: lang/json/help_from_json.py msgid "" -"You may preserve food in many other ways, for example by using a smoking " -"rack, or using it in a meal that has a longer shelf life." +"For example, on her torso, a character might wear a leather corset (next-to-" +"skin), a leather touring suit (standard), a trenchcoat (over), and a " +"survivor's runner pack (belted). Her encumbrance penalty is 0. If she put " +"on a tank top it would conflict with the leather touring suit and add the " +"minimum encumbrance penalty of 2." msgstr "" #: lang/json/help_from_json.py -msgid ": Vehicles and Driving" +msgid ": Vehicles and Driving" msgstr "" #: lang/json/help_from_json.py @@ -89217,24 +86935,24 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "In order to assume control of the vehicle, get to a location with working " -"\"vehicle controls\" and a \"seat\", then press . " +"\"vehicle controls\" and a \"seat\", then press . " "Once you are in control, accelerates, slows or " -"reverses, & & turn left or right. Diagonals " -"adjust course and speed. You default to cruise control, so the gas/brake " +"reverses, & & turn left or right. Diagonals " +"adjust course and speed. You default to cruise control, so the gas/brake " "adjust the speed which the vehicle will attempt to maintain." msgstr "" #: lang/json/help_from_json.py msgid "" "10-30 MPH, or 16-48 KPH, is a good speed for beginning drivers, who tend to " -"fumble the controls. As your Driving skill improves, you will fumble less " -"and less. To simply maintain course and speed, hit ." +"fumble the controls. As your Driving skill improves, you will fumble less " +"and less. To simply maintain course and speed, hit ." msgstr "" #: lang/json/help_from_json.py msgid "" "It's a good idea to pull the handbrake - \"s\" - when parking, just to be " -"safe. If you want to get out, hit the lights, toggle cruise control, turn " +"safe. If you want to get out, hit the lights, toggle cruise control, turn " "the engine on or off, or otherwise use the vehicle controls, press " " to bring up the \"Vehicle Controls\" menu, which has " "options for things you'd do from the driver's seat." @@ -89332,8 +87050,8 @@ msgstr "" #: lang/json/help_from_json.py msgid "" -"You can use boat hull parts to create boats or amphibious vehicles that can " -"move between water and land." +"If you have the Boats mod installed in a world, you can use boat hull parts " +"to create boats or amphibious vehicles that can move between water and land." msgstr "" #: lang/json/help_from_json.py @@ -89383,7 +87101,7 @@ msgid "" "~ Liquid\n" "%% Food\n" "! Medication\n" -"These are all consumed by using . They provide a certain amount " +"These are all consumed by using . They provide a certain amount " "of nutrition, quench your thirst, may be a stimulant or a depressant, and " "may provide morale. There may also be more subtle effects." msgstr "" @@ -89393,16 +87111,16 @@ msgid "" "/ Large weapon\n" "; Small weapon or tool\n" ", Tiny item\n" -"These are all generic items, useful only to be wielded as a weapon. " -"However, some have special uses; they will show up under the TOOLS section " -"in your inventory. Press to use these." +"These are all generic items, useful only to be wielded as a weapon. However, " +"some have special uses; they will show up under the TOOLS section in your " +"inventory. Press to use these." msgstr "" #: lang/json/help_from_json.py msgid "" ") Container\n" -"These items may hold other items. Some are passable weapons. Many will be " -"listed with their contents, e.g. \"plastic bottle of water\". Those " +"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 "" @@ -89411,10 +87129,10 @@ msgstr "" msgid "" "[ Clothing\n" "This may be worn with the key or removed with the " -" key. It may cover one or more body parts; you can wear " +" 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 " +"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 "" @@ -89422,20 +87140,20 @@ msgstr "" msgid "" "( Firearm\n" "This weapon may be loaded with ammunition with , unloaded with " -", and fired with . Some have automatic fire, " -"which may be used with at a penalty to accuracy. " -"The color refers to the type; handguns are gray, shotguns are red, " -"submachine guns are cyan, rifles are brown, assault rifles are blue, and " -"heavy machine guns are light red. Each has a dispersion rating, a bonus to " -"damage, a rate of fire, and a maximum load. Note that most firearms load " -"fully in one action, while shotguns must be loaded one shell at a time." +", and fired with . Some have automatic fire, which " +"may be used with at a penalty to accuracy. The " +"color refers to the type; handguns are gray, shotguns are red, submachine " +"guns are cyan, rifles are brown, assault rifles are blue, and heavy machine " +"guns are light red. Each has a dispersion rating, a bonus to damage, a rate " +"of fire, and a maximum load. Note that most firearms load fully in one " +"action, while shotguns must be loaded one shell at a time." msgstr "" #: lang/json/help_from_json.py msgid "" "= Ammunition\n" -"Ammunition is worthless without a gun to load it into. Generally, there are " -"several variants for any particular caliber. Ammunition has damage, " +"Ammunition is worthless without a gun to load it into. Generally, there are " +"several variants for any particular caliber. Ammunition has damage, " "dispersion, and range ratings, and an armor-piercing quality." msgstr "" @@ -89443,7 +87161,7 @@ msgstr "" msgid "" "* Thrown weapon; simple projectile or grenade\n" "These items are suited for throwing, and many are only useful when thrown, " -"such as grenades, Molotov cocktails, or tear gas. Once activated be certain " +"such as grenades, Molotov cocktails, or tear gas. Once activated be certain " "to throw these items by pressing , then the letter of the item " "to throw." msgstr "" @@ -89451,9 +87169,9 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "? Book or magazine\n" -"This can be read for training or entertainment by pressing . " +"This can be read for training or entertainment by pressing . " "Most require a basic level of intelligence; some require some base knowledge " -"in the relevant subject. Some books may contain useful crafting recipes." +"in the relevant subject. Some books may contain useful crafting recipes." msgstr "" #: lang/json/help_from_json.py @@ -89596,28 +87314,28 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "( Crossbows\n" -"The best feature of crossbows is their silence. The bolts they fire are " -"only rarely destroyed; if you pick up the bolts after firing them, your " -"ammunition supply will last much longer. Crossbows suffer from a short " -"range and a very long reload time (modified by your strength); plus, most " -"only hold a single round. \n" -"For this reason, it is advisable to carry a few loaded crossbows. Crossbows " +"The best feature of crossbows is their silence. The bolts they fire are only " +"rarely destroyed; if you pick up the bolts after firing them, your " +"ammunition supply will last much longer. Crossbows suffer from a short range " +"and a very long reload time (modified by your strength); plus, most only " +"hold a single round. \n" +"For this reason, it is advisable to carry a few loaded crossbows. Crossbows " "can be very difficult to find; however, it is possible to craft one given " -"enough Mechanics skill. Likewise, it is possible to make wooden bolts from " +"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." +"steel bolts. Crossbows use the handgun skill." msgstr "" #: lang/json/help_from_json.py msgid "" "( Bows\n" -"Silent, deadly, easy to make, and the arrows are reusable. Bows have been " -"used forever. Bows are two handed and require the user to have a certain " -"strength level. If you do not have enough strength to draw the string back, " -"you will fire at a reduced effectiveness. This reduces the reload and fire " -"speeds and decreases the range of the arrows fired. \n" +"Silent, deadly, easy to make, and the arrows are reusable. Bows have been " +"used forever. Bows are two handed and require the user to have a certain " +"strength level. If you do not have enough strength to draw the string back, " +"you will fire at a reduced effectiveness. This reduces the reload and fire " +"speeds and decreases the range of the arrows fired. \n" "Most normal bows require strength of at least 8, others require an above " -"average strength of 10, or a significant strength of 12. Bows use the " +"average strength of 10, or a significant strength of 12. Bows use the " "archery skill." msgstr "" @@ -89625,13 +87343,13 @@ msgstr "" msgid "" "( Shotguns\n" "Shotguns are some of the most powerful weapons in the game, capable of " -"taking out almost any enemy with a single hit. Birdshot and 00 shot spread, " +"taking out almost any enemy with a single hit. Birdshot and 00 shot spread, " "making it very easy to hit nearby monsters. However, they are very " "ineffective against armor, and some armored monsters might shrug off 00 shot " "completely. Shotgun slugs are the answer to this problem; they also offer " "much better range than shot.\n" "The biggest drawback to shotguns is their noisiness. They are very loud, " -"and impossible to silence. A shot that kills one zombie might attract three " +"and impossible to silence. A shot that kills one zombie might attract three " "more! Beware of that." msgstr "" @@ -89640,9 +87358,9 @@ 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 " +"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 "" @@ -89661,12 +87379,12 @@ msgstr "" msgid "" "( Assault Rifles\n" "Assault rifles are similar to hunting rifles in many ways; they are also " -"suited for long range combat, with similar bonuses and penalties. Unlike " -"hunting rifles, assault rifles are capable of automatic fire. Assault " -"rifles are less accurate than hunting rifles, and this is worsened under " -"automatic fire, so save it for when you're highly skilled. \n" +"suited for long range combat, with similar bonuses and penalties. Unlike " +"hunting rifles, assault rifles are capable of automatic fire. Assault rifles " +"are less accurate than hunting rifles, and this is worsened under automatic " +"fire, so save it for when you're highly skilled. \n" "Assault rifles are an excellent choice for medium or long range combat, or " -"even close-range bursts again a large number of enemies. They are difficult " +"even close-range bursts again a large number of enemies. They are difficult " "to use, and are best saved for skilled riflemen." msgstr "" @@ -89685,11 +87403,11 @@ msgstr "" msgid "" "( Energy Weapons\n" "Energy weapons is an umbrella term used to describe a variety of rifles and " -"handguns which fire lasers, plasma, or energy attacks. They are mostly " -"prototypes that started to appear in military use just prior to the start of " -"the apocalypse, and as such are very difficult to find.\n" +"handguns which fire lasers, plasma, or energy attacks. They started to " +"appear in military use just prior to the start of the apocalypse, and as " +"such are very difficult to find.\n" "Energy weapons have no recoil at all; they are nearly silent, have a long " -"range, and are fairly damaging. The biggest drawback to energy weapons is " +"range, and are fairly damaging. The biggest drawback to energy weapons is " "scarcity of ammunition; it is wise to reserve the precious ammo for when you " "really need it." msgstr "" @@ -89702,7 +87420,7 @@ msgstr "" msgid "" "Q: What is Safe Mode, and why does it prevent me from moving?\n" "A: Safe Mode is a way to guarantee that you won't die by holding a movement " -"key down. When a monster comes into view, your movement will be ignored " +"key down. When a monster comes into view, your movement will be ignored " "until Safe Mode is turned off with the ! key. This ensures that the sudden " "appearance of a monster won't catch you off guard." msgstr "" @@ -89711,9 +87429,9 @@ msgstr "" msgid "" "Q: It seems like everything I eat makes me sick! What's wrong?\n" "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, " +"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 "" @@ -89735,26 +87453,24 @@ msgstr "" msgid "" "Q: How can I prevent monsters from attacking while I sleep?\n" "A: Find a safe place to sleep, for example in a cleared building far from " -"the front door. Set traps if you have them, or build a fire to scare off " -"wild animals." +"the front door. Set traps if you have them, or build a fire." msgstr "" #: lang/json/help_from_json.py msgid "" "Q: Why do I always sink when I try to swim?\n" "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 " +"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." +"remove your clothing to swim, making it a last-ditch escape plan." msgstr "" #: lang/json/help_from_json.py msgid "" "Q: How can I cure a fungal infection?\n" "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 " +"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 "" @@ -89762,11 +87478,11 @@ msgstr "" msgid "" "Q: How do I get into science labs?\n" "A: You can enter the front door if you have an ID card by examining " -"() the keypad. If you are skilled in computers and have an " -"electrohack, it is possible to hack the keypad. An EMP blast has a chance " -"to force the doors open, but it's more likely to break them. You can also " -"sneak in through the sewers sometimes, or try to smash through the walls " -"with explosions." +"() the keypad. If you are skilled in computers and have an " +"electrohack, it is possible to hack the keypad. An EMP blast has a chance to " +"force the doors open, but it's more likely to break them. You can also sneak " +"in through the sewers sometimes, or try to smash through the walls with " +"explosions." msgstr "" #: lang/json/help_from_json.py @@ -89780,29 +87496,26 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "Q: Why can't I carry anything?\n" -"A: At the start of the game you only have the space in your pockets. A good " +"A: At the start of the game you only have the space in your pockets. A good " "first goal of many survivors is to find a backpack or pouch to store things " -"in." +"in. (The shelter basement is a good place to check first!)" msgstr "" #: lang/json/help_from_json.py msgid "" -"Q: Help! I started a fire and now my house is burning down!\n" -"A: Fires will spread to nearby flammable tiles if they are able. Lighting a " -"fire in a set-up brazier, stove, wood stove, stone fireplace, pit, or even " -"in a kitchen stove will stop it from spreading. Fire extinguishers can put " -"out fires that get out of control. You can put out a fire in the fireplace " -"by examining it." +"Q: Help! I started a fire and now my house is burning down!\n" +"A: Fires will spread to nearby flammable tiles if they are able. Lighting a " +"fire in a set-up brazier, stove, wood stove, stone fireplace, or pit will " +"stop it from spreading. Fire extinguishers can put out fires that get out of " +"control." msgstr "" #: lang/json/help_from_json.py msgid "" "Q: I'm cold and can't sleep at night!\n" -"A: Gather some clothes and put them in the place you use to sleep in. Being " +"A: Gather some clothes and put them in the place you use to sleep in. Being " "hungry, thirsty, wet, or injured can also make you feel the cold more, so " -"try to avoid these effects before you go to sleep. Pillows and some other " -"appliances will help you sleep, and the quality of your sleeping spot is " -"also very important." +"try to avoid these effects before you go to sleep." msgstr "" #: lang/json/help_from_json.py @@ -89812,9 +87525,9 @@ msgid "" "A: Try to remember few usual calibers: \n" "9x19 (or simply 9mm) - fits most basic pistols (Glock, for example) and " "SMGs, quite easy to find and gets job done versus usual zombies;\n" -" 00 buckshot - for most shotguns. Very powerful against unarmored target at " +" 00 buckshot - for most shotguns. Very powerful against unarmored target at " "closer ranges;\n" -" .223 (5.56) - for rifles. Good long range option.\n" +" .223 (5.56) - for rifles. Good long range option.\n" " .308 (7.62) - for even more powerful rifles. Also good long range option.\n" " It should be enough in the beginning. Or even just grab any shotgun, fill " "it with buckshot and give them hell!" @@ -89823,8 +87536,8 @@ msgstr "" #: lang/json/help_from_json.py msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" -"A: Check the wiki, or ask the helpful people on the forum or at the chat " -"channels. Links are provided in MOTD in the main menu." +"A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at " +"the IRC channel #CataclysmDDA on freenode." msgstr "" #: lang/json/item_action_from_json.py @@ -89871,10 +87584,6 @@ msgstr "" msgid "Dig through rock" msgstr "" -#: lang/json/item_action_from_json.py -msgid "Pack CBM in pouch" -msgstr "" - #: lang/json/item_action_from_json.py msgid "Burrow through rock" msgstr "" @@ -89996,10 +87705,6 @@ msgstr "" msgid "Use" msgstr "" -#: lang/json/item_action_from_json.py -msgid "Sterilize" -msgstr "" - #: lang/json/item_action_from_json.py src/artifact.cpp msgid "Ring" msgstr "" @@ -90258,10 +87963,6 @@ msgstr "" msgid "Wash clothes" msgstr "" -#: lang/json/item_action_from_json.py -msgid "Wash CBMs" -msgstr "" - #: lang/json/item_action_from_json.py msgid "Purify some water" msgstr "" @@ -90353,16 +88054,6 @@ msgid "" "up." msgstr "" -#: lang/json/json_flag_from_json.py -msgid "" -"This item goes in the outer aura layer, intended for metaphysical effects." -msgstr "" - -#. ~ Please leave anything in unchanged. -#: lang/json/json_flag_from_json.py -msgid "This is in your outer aura." -msgstr "" - #: lang/json/json_flag_from_json.py msgid "" "This gear is equipped with an accurate barometer (which is used to measure " @@ -90521,13 +88212,12 @@ msgstr "" #: lang/json/json_flag_from_json.py msgid "" -"Zombie-dropped clothing giving various penalties if Filthy mod is active. " -"Also CBMs harvested from zombies." +"Zombie-dropped clothing giving various penalties if Filthy mod is active." msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py -msgid "This item is filthy." +msgid "This piece of clothing is filthy." msgstr "" #: lang/json/json_flag_from_json.py @@ -90646,16 +88336,6 @@ msgid "" "level." msgstr "" -#: lang/json/json_flag_from_json.py -msgid "" -"This item goes in the personal aura layer, intended for metaphysical effects." -msgstr "" - -#. ~ Please leave anything in unchanged. -#: lang/json/json_flag_from_json.py -msgid "This is in your personal aura." -msgstr "" - #: lang/json/json_flag_from_json.py msgid "" "Increases warmth for hands if the player's hands are cold and the player is " @@ -90727,18 +88407,6 @@ msgid "" "use if the weapon permits it." msgstr "" -#: lang/json/json_flag_from_json.py -msgid "" -"Prevents the item from participating in the encumbrance system when worn." -msgstr "" - -#. ~ Please leave anything in unchanged. -#: lang/json/json_flag_from_json.py -msgid "" -"It seems partially intangible, and can occupy the same space as " -"other things when worn." -msgstr "" - #: lang/json/json_flag_from_json.py msgid "This item can be stored in a sheath of the appropriate size." msgstr "" @@ -91515,10 +89183,6 @@ msgstr "" msgid "Place Overmap Special" msgstr "" -#: lang/json/keybinding_from_json.py -msgid "View Missions" -msgstr "" - #: lang/json/keybinding_from_json.py msgid "Rotate" msgstr "" @@ -92072,6 +89736,10 @@ msgstr "" msgid "Look at the sky" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Missions" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "View Factions" msgstr "" @@ -92120,10 +89788,6 @@ msgstr "" msgid "View Visibility Map" msgstr "" -#: lang/json/keybinding_from_json.py -msgid "View Radiation Map" -msgstr "" - #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "" @@ -92301,6 +89965,10 @@ msgstr "" msgid "look around" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "fire" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "List items and monsters" msgstr "" @@ -93851,11 +91519,6 @@ msgstr "" msgid "The Green Leaf Tea Shop" msgstr "" -#. ~ Sign -#: lang/json/mapgen_from_json.py -msgid "RESTRICTED AREA! AUTHORIZED PERSONNEL ONLY" -msgstr "" - #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Please don't litter, keep the trail nice!" @@ -93976,11 +91639,6 @@ msgstr "" msgid "UNLOCK STORAGE" msgstr "" -#. ~ Computer name -#: lang/json/mapgen_from_json.py -msgid "Prototype DARPA-713 AUTHORIZED PILOTS ONLY" -msgstr "" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE019 \"Sculptor\" Secure Storage" @@ -94126,59 +91784,6 @@ msgid "" "+1 Block attempts, +1 Dodge attempts." msgstr "" -#: lang/json/martial_art_from_json.py -msgid "Boxing" -msgstr "" - -#. ~ Description for martial art 'Boxing' -#: lang/json/martial_art_from_json.py -msgid "" -"Sport of the true gentleman, modern boxing has evolved from the prizefights " -"of the Victorian era. Strength reduces blocked damage and moving increase " -"dodge skill." -msgstr "" - -#: lang/json/martial_art_from_json.py -msgid "Boxing Stance" -msgstr "" - -#. ~ Description of buff 'Boxing Stance' for martial art 'Boxing' -#: lang/json/martial_art_from_json.py -#, no-python-format -msgid "" -"A solid stance allows you block more damage than normal and deliver better " -"punches.\n" -"\n" -"+2 Bash damage, Blocked damge reduced by 50%% of Strength." -msgstr "" - -#: lang/json/martial_art_from_json.py -msgid "Footwork" -msgstr "" - -#. ~ Description of buff 'Footwork' for martial art 'Boxing' -#: lang/json/martial_art_from_json.py -msgid "" -"You are make yourself harder to hit by bobbing and weaving as you move.\n" -"\n" -"+1.0 Dodge skill.\n" -"Lasts for 1 turns. Stacks 2 times." -msgstr "" - -#: lang/json/martial_art_from_json.py -msgid "Counter Chance" -msgstr "" - -#. ~ Description of buff 'Counter Chance' for martial art 'Boxing' -#: lang/json/martial_art_from_json.py -#, no-python-format -msgid "" -"You've seen your chance. Now strike back!\n" -"\n" -"+25% Bash damage.\n" -"Lasts for 1 turn." -msgstr "" - #: lang/json/martial_art_from_json.py msgid "Brawling" msgstr "" @@ -94186,158 +91791,129 @@ msgstr "" #. ~ Description for martial art 'Brawling' #: lang/json/martial_art_from_json.py msgid "" -"You're used to hand-to-creature fighting. You know how to fight when " -"unarmed or with any weapon to a certain extent. It's not stylish or " -"sporting, but it gets the job done." +"You're used to hand-to-creature fighting. Not stylish or sporting, but it " +"gets the job done." msgstr "" #: lang/json/martial_art_from_json.py -msgid "Capoeira" +msgid "Karate" msgstr "" -#. ~ Description for martial art 'Capoeira' +#. ~ Description for martial art 'Karate' #: lang/json/martial_art_from_json.py msgid "" -"A dance-like style with its roots in Brazilian slavery, Capoeira is focused " -"on fluid movement and sweeping kicks. Moving briefly enables stronger " -"techniques. Missing an attack grants bonus damage for a short time." +"Karate is a popular martial art, originating from Japan. It focuses on " +"rapid, precise attacks, blocks, and fluid movement. A successful hit allows " +"you an extra dodge and two extra blocks on the following round." msgstr "" #: lang/json/martial_art_from_json.py -msgid "Capoeira Stance" +msgid "Karate Hit" msgstr "" -#. ~ Description of buff 'Capoeira Stance' for martial art 'Capoeira' +#. ~ Description of buff 'Karate Hit' for martial art 'Karate' #: lang/json/martial_art_from_json.py -msgid "" -"You never stop moving while performing the ginga. This makes you very " -"mobile while fighting.\n" -"\n" -"+1.0 Dodge skill, +1 Dodge attempts." +msgid "+1 Dodges, +2 Blocks" msgstr "" #: lang/json/martial_art_from_json.py -msgid "Capoeira Momentum" +msgid "Boxing" msgstr "" -#. ~ Description of buff 'Capoeira Momentum' for martial art 'Capoeira' +#. ~ Description for martial art 'Boxing' #: lang/json/martial_art_from_json.py msgid "" -"You can feel the rhythm as you move. Not only are you harder to hit, but " -"your kicks are even more amazing!\n" -"\n" -"+1.0 Dodge skill.\n" -"Enables \"Spin Kick\" and \"Sweep Kick\" techniques.\n" -"Lasts 3 turns." -msgstr "" - -#: lang/json/martial_art_from_json.py -msgid "Crane Kung Fu" +"Sport of the true gentleman, modern boxing has evolved from the prizefights " +"of the Victorian era." msgstr "" -#. ~ Description for martial art 'Crane Kung Fu' +#. ~ Description of buff for martial art 'Boxing' #: lang/json/martial_art_from_json.py -msgid "" -"One of the five Shaolin animal styles. The Crane uses intricate hand " -"techniques and jumping dodges. Dexterity determines your damage, rather " -"than Strength; you also receive a dodge bonus move or dodge an attack." +msgid "Per increases unarmed power, Str reduces block damage." msgstr "" #: lang/json/martial_art_from_json.py -msgid "Crane's Precision" +msgid "Footwork" msgstr "" -#. ~ Description of buff 'Crane's Precision' for martial art 'Crane Kung Fu' +#. ~ Description of buff 'Footwork' for martial art 'Boxing' #: lang/json/martial_art_from_json.py -#, no-python-format -msgid "" -"Your attacks strike at your opponents weakness with speed and percision " -"instead of brute force.\n" -"Dexterity increases melee damage instead of Strength.\n" -"\n" -"Bash damage increased by 75%% of Dexterity but decreased by 75%% of Strength." +msgid "Gain an extra dodge while moving." msgstr "" #: lang/json/martial_art_from_json.py -msgid "Crane's Flight" +msgid "Counter Chance" msgstr "" -#. ~ Description of buff 'Crane's Flight' for martial art 'Crane Kung Fu' +#. ~ Description of buff 'Counter Chance' for martial art 'Boxing' #: lang/json/martial_art_from_json.py -msgid "" -"Just like a bird, you take to the air to avoid danger.\n" -"\n" -"+1.0 Dodge skill.\n" -"Lasts 2 turns." +msgid "They're wide open!" msgstr "" #: lang/json/martial_art_from_json.py -msgid "Crane's Grace" +msgid "Judo" msgstr "" -#. ~ Description of buff 'Crane's Grace' for martial art 'Crane Kung Fu' +#. ~ Description for martial art 'Judo' #: lang/json/martial_art_from_json.py msgid "" -"Much like the crane, you a quick to avoid danger.\n" -"\n" -"+1 Dodge attempts, +1.0 Dodge skill.\n" -"Lasts 2 turns." +"Judo is a martial art that focuses on grabs and throws, both defensive and " +"offensive. It also focuses on recovering from throws; while using judo, you " +"will not lose any turns to being thrown or knocked down." msgstr "" +#. ~ Description of buff for martial art 'Judo' #: lang/json/martial_art_from_json.py -msgid "Karate" +msgid "Immune to throws and knockdowns." msgstr "" -#. ~ Description for martial art 'Karate' #: lang/json/martial_art_from_json.py -msgid "" -"Karate is a popular martial art, originating from Japan. It focuses on " -"rapid, precise attacks, blocks, and fluid movement. A successful hit allows " -"you an extra dodge and two extra blocks on the following round." +msgid "Tai Chi" msgstr "" +#. ~ Description for martial art 'Tai Chi' #: lang/json/martial_art_from_json.py -msgid "Karate Hit" +msgid "" +"Though Tai Chi is often seen as a form of mental and physical exercise, it " +"is a legitimate martial art, focused on self-defense. Its ability to absorb " +"the force of an attack makes your Perception decrease damage further on a " +"block." msgstr "" -#. ~ Description of buff 'Karate Hit' for martial art 'Karate' +#. ~ Description of buff for martial art 'Tai Chi' #: lang/json/martial_art_from_json.py -msgid "+1 Dodges, +2 Blocks" +msgid "+1 Block. Perception decreases damage when blocking." msgstr "" #: lang/json/martial_art_from_json.py -msgid "Judo" +msgid "Capoeira" msgstr "" -#. ~ Description for martial art 'Judo' +#. ~ Description for martial art 'Capoeira' #: lang/json/martial_art_from_json.py msgid "" -"Judo is a martial art that focuses on grabs and throws, both defensive and " -"offensive. It also focuses on recovering from throws; while using judo, you " -"will not lose any turns to being thrown or knocked down." +"A dance-like style with its roots in Brazilian slavery, Capoeira is focused " +"on fluid movement and sweeping kicks. Moving a tile will boost attack and " +"damage and attacking boosts dodge. These bonuses stack up to three times " +"each." msgstr "" -#. ~ Description of buff for martial art 'Judo' #: lang/json/martial_art_from_json.py -msgid "Immune to throws and knockdowns." +msgid "Capoeira Tempo" msgstr "" +#. ~ Description of buff 'Capoeira Tempo' for martial art 'Capoeira' #: lang/json/martial_art_from_json.py -msgid "Tai Chi" +msgid "+1 dodge and +1 blocks per stack" msgstr "" -#. ~ Description for martial art 'Tai Chi' #: lang/json/martial_art_from_json.py -msgid "" -"Though Tai Chi is often seen as a form of mental and physical exercise, it " -"is a legitimate martial art, focused on self-defense. Its ability to absorb " -"the force of an attack makes your Perception decrease damage further on a " -"block." +msgid "Capoeira Momentum" msgstr "" -#. ~ Description of buff for martial art 'Tai Chi' +#. ~ Description of buff 'Capoeira Momentum' for martial art 'Capoeira' #: lang/json/martial_art_from_json.py -msgid "+1 Block. Perception decreases damage when blocking." +msgid "+2 bash and +1 acc per stack" msgstr "" #: lang/json/martial_art_from_json.py @@ -94461,6 +92037,27 @@ msgstr "" msgid "Strength decreases damage when blocking." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Bionic Combatives" +msgstr "" + +#. ~ Description for martial art 'Bionic Combatives' +#: lang/json/martial_art_from_json.py +msgid "" +"A modern combat style for the post-modern human. Bionic Combatives combines " +"integrated weaponry, armor and augments into an consolidated fighting " +"discipline." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Biojutsu" +msgstr "" + +#. ~ Description of buff 'Biojutsu' for martial art 'Bionic Combatives' +#: lang/json/martial_art_from_json.py +msgid "+1 Blocks" +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Zui Quan" msgstr "" @@ -94611,6 +92208,37 @@ msgstr "" msgid "Increased bashing damage." msgstr "" +#: lang/json/martial_art_from_json.py +msgid "Crane Kung Fu" +msgstr "" + +#. ~ Description for martial art 'Crane Kung Fu' +#: lang/json/martial_art_from_json.py +msgid "" +"One of the five Shaolin animal styles. The Crane uses intricate hand " +"techniques and jumping dodges. Dexterity determines the majority of your " +"damage, rather than Strength; you also receive a dodge bonus the turn after " +"moving a tile." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Crane's Precision" +msgstr "" + +#. ~ Description of buff 'Crane's Precision' for martial art 'Crane Kung Fu' +#: lang/json/martial_art_from_json.py +msgid "Damage bonus from dexterity at the cost of damage from strength." +msgstr "" + +#: lang/json/martial_art_from_json.py +msgid "Crane's Flight" +msgstr "" + +#. ~ Description of buff 'Crane's Flight' for martial art 'Crane Kung Fu' +#: lang/json/martial_art_from_json.py +msgid "+2 Dodge" +msgstr "" + #: lang/json/martial_art_from_json.py msgid "Dragon Kung Fu" msgstr "" @@ -94819,7 +92447,7 @@ msgstr "" #. ~ Description of buff 'You moved' for martial art 'Fior Di Battaglia' #: lang/json/martial_art_from_json.py -msgid "Nullifies Stand Your Ground, don't move, stand there and counter!" +msgid "Nulifies Stand Your Ground, don't move, stand there and counter!" msgstr "" #: lang/json/martial_art_from_json.py @@ -94838,33 +92466,6 @@ msgstr "" msgid "Displacement" msgstr "" -#: lang/json/martial_art_from_json.py -msgid "Bionic Combatives" -msgstr "" - -#. ~ Description for martial art 'Bionic Combatives' -#: lang/json/martial_art_from_json.py -msgid "" -"A modern combat style for the post-modern human. Nicknamed \"Biojutsu\", " -"Bionic Combatives combines integrated weaponry, armor and augments into an " -"consolidated fighting discipline." -msgstr "" - -#: lang/json/martial_art_from_json.py -msgid "Biojutsu Stance" -msgstr "" - -#. ~ Description of buff 'Biojutsu Stance' for martial art 'Bionic Combatives' -#: lang/json/martial_art_from_json.py -msgid "" -"void player::ApplyBiojutsuStatic() {\n" -" blocks_left += 2;\n" -" set_hit_bonus( get_hit_bonus() + 1 );\n" -"}\n" -"\n" -"+2 Blocks attemps, +1 Accuracy." -msgstr "" - #: lang/json/martial_art_from_json.py msgid "Centipede Kung Fu" msgstr "" @@ -94872,23 +92473,17 @@ msgstr "" #. ~ Description for martial art 'Centipede Kung Fu' #: lang/json/martial_art_from_json.py msgid "" -"One of the Five Deadly Venoms, used by Zhang Yiaotian. Centipede Style uses " -"an onslaught of rapid strikes. Each attack you land increases your attack " -"speed. Critical hits increase your damage further." +"One of the Five Deadly Venoms. Centipede Style uses an onslaught of rapid " +"strikes. Each attack you land increases your speed by 4." msgstr "" #: lang/json/martial_art_from_json.py -msgid "Centipede's Frenzy" +msgid "Hundred-Hitter" msgstr "" -#. ~ Description of buff 'Centipede's Frenzy' for martial art 'Centipede Kung Fu' +#. ~ Description of buff 'Hundred-Hitter' for martial art 'Centipede Kung Fu' #: lang/json/martial_art_from_json.py -msgid "" -"Your attacks are a blur of hands and legs that become faster as your strike " -"your opponents without rest.\n" -"\n" -"-4 move cost.\n" -"Lasts 3 turns. Stacks 4 times." +msgid "+4 Atk Speed" msgstr "" #: lang/json/martial_art_from_json.py @@ -95129,22 +92724,22 @@ msgid "Alcohol" msgstr "" #: lang/json/material_from_json.py -#: lang/json/material_from_json.py src/material.cpp +#: src/material.cpp msgid "damaged" msgstr "" #: lang/json/material_from_json.py -#: lang/json/material_from_json.py src/material.cpp +#: src/material.cpp msgid "lightly damaged" msgstr "" #: lang/json/material_from_json.py -#: lang/json/material_from_json.py src/material.cpp +#: src/material.cpp msgid "very damaged" msgstr "" #: lang/json/material_from_json.py -#: lang/json/material_from_json.py src/material.cpp +#: src/material.cpp msgid "thoroughly damaged" msgstr "" @@ -95421,10 +93016,6 @@ msgstr "" msgid "Superalloy" msgstr "" -#: lang/json/material_from_json.py -msgid "Tin" -msgstr "" - #: lang/json/material_from_json.py msgid "Vegetable Matter" msgstr "" @@ -96745,171 +94336,6 @@ msgstr "" msgid "I'm so disappointed in you kid..." msgstr "" -#: lang/json/mission_def_from_json.py -msgid "Prove You're A Survivor" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "It's hard to tell who actually has the skills to survive these days..." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"It's hard surviving out here on our own, and we'd probably have a better " -"chance working together. Problem is, I don't really know you and what " -"you're capable of. You might have what it takes, or you might not. Either " -"way, I'm going to need some proof. Come back in a few days and I'll gladly " -"follow you. It's basically a win-win for me: either you come back and I'll " -"know you've got what it takes, or you don't and I'll know that I was right " -"not to follow you." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"I'll see you then...or I won't, and then I'll know I made the right decision." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"Don't die. If you're asking me for advice, that doesn't bode well for you." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Well, you're not dead...yet." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"I'll be honest, I wasn't really expecting to see you again. A promise is a " -"promise, I'll follow you now!" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "I know time is relative and all that." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "I'm not quite sure how you failed to survive AND are talking to me." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Find an anvil" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "I need an anvil to do advanced metal work." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "I could really use an anvil." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "You might be able to find one in a hardware store or similar." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Thanks anyway, we'll find the time to make it ourselves." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "If you can't find one, maybe you can make one for me." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Do you have the anvil?" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"I appreciate it, this will really make a difference, here's some horse armor " -"I've been working on, eventually I'll have the whole herd outfitted." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "What good does this do me?" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Find Chris Isherwood" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Our son still isn't back, I'm getting concerned." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Can you go find my son and tell him to check in with us." -msgstr "" - -#: lang/json/mission_def_from_json.py -#: lang/json/mission_def_from_json.py lang/json/talk_topic_from_json.py -msgid "Thank you." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Oh well. I hope he turns up soon." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"He should be on the property somewhere, maybe by that old cabin near the " -"entrance, sometimes he camps there." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "How is the search going?" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Thanks, I was getting ready to go look myself." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "I hope he didn't meet Barry's fate..." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Find mysterious structure" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "We need to investigate the alien encampment." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "I can take you to the structure those things were building." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Awesome, I want some answers!" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Thanks anyway, I'll keep my eye on it." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"I feel like we are underprepared if they see us, I marked the location for " -"you." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "You ready?" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"It's even bigger then I remember, we should explore some. I left a note for " -"my family before we left. If we survive, the cabin should be fixed up and " -"ready for you to move in if you want to stay." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Well it was here..." -msgstr "" - #: lang/json/mission_def_from_json.py msgid "Gather 50 dandelions" msgstr "" @@ -96936,6 +94362,10 @@ msgstr "" msgid "You can find them in the fields during the spring and summer months." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "How is the search going?" +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Thanks. Here's a small reward to show my appreciation for your help." msgstr "" @@ -97025,6 +94455,11 @@ msgid "" "production going." msgstr "" +#: lang/json/mission_def_from_json.py +#: lang/json/mission_def_from_json.py lang/json/talk_topic_from_json.py +msgid "Thank you." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Oh well. I'll try to find time to get it myself, thanks." msgstr "" @@ -97063,13 +94498,11 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "" -"Thanks, now Luke can get started making jugs, We'd like to give you a cow if " -"you want it. Here's a rope an some fodder, feel free to pick one out." +msgid "Thanks, now Luke can get started making jugs." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find 10 3L jars" +msgid "Find 20 3L jars" msgstr "" #: lang/json/mission_def_from_json.py @@ -97128,46 +94561,6 @@ msgstr "" msgid "I wonder where all the seeds went..." msgstr "" -#: lang/json/mission_def_from_json.py -msgid "Kill monster" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "We could use some help killing some monsters." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"I don't know what it is, but it is very fast, I'm willing to outfit you with " -"a horse if you succeed." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Be ready for anything." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Thanks anyway, we will try some traps." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "A gun will probably help." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Did you kill it?" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"I appreciate it, this will help keep our animals safe, here's an extra " -"saddle for you. Take this fodder and choose a horse for your bravery." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Show me the body." -msgstr "" - #: lang/json/mission_def_from_json.py msgid "Find The Art of Glassblowing book" msgstr "" @@ -97724,6 +95117,10 @@ msgid "" "helps." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + #: lang/json/mission_def_from_json.py msgid "" "It's okay. I don't know how much comfort I'd have found in an old book " @@ -102078,7 +99475,7 @@ msgstr "" #: lang/json/mutation_from_json.py 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." +"you will suffer morale penalties due to nausea." msgstr "" #: lang/json/mutation_from_json.py @@ -102097,9 +99494,9 @@ msgstr "" #. ~ Description for Hates Vegetables #: lang/json/mutation_from_json.py msgid "" -"You have problems with eating vegetables. It's possible for you to eat " -"them, but you will suffer morale penalties and obtain less nutrition from " -"them." +"You, like many children, hated eating your vegetables; however, you didn't " +"outgrow it. It's possible for you to eat them, but you will suffer morale " +"penalties due to nausea." msgstr "" #: lang/json/mutation_from_json.py @@ -102121,7 +99518,7 @@ msgstr "" #: lang/json/mutation_from_json.py 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." +"suffer morale penalties due to nausea." msgstr "" #. ~ Description for Lactose Intolerance @@ -102129,7 +99526,7 @@ msgstr "" msgid "" "You, like 75 percent of the world, cannot tolerate milk or milk based " "products. It's possible for you to eat them, but you will suffer morale " -"penalties and obtain less nutrition from them." +"penalties due to nausea." msgstr "" #: lang/json/mutation_from_json.py @@ -102140,8 +99537,8 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "" "Something in those heavily processed foods doesn't agree with you. It's " -"possible for you to eat them, but you will suffer morale penalties and " -"obtain less nutrition from them." +"possible for you to eat them, but you will suffer morale penalties due to " +"nausea." msgstr "" #: lang/json/mutation_from_json.py @@ -102153,7 +99550,7 @@ msgstr "" msgid "" "You have a rare allergy that prevents you from eating most types of grains " "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." +"suffer morale penalties due to nausea." msgstr "" #: lang/json/mutation_from_json.py @@ -107754,22 +105151,6 @@ msgstr "" msgid "I used to be a police officer, but I'm just a survivor now." msgstr "" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py -msgid "Carlos Isherwood" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "I'm Jesse's husband, part of the Isherwood family" -msgstr "" - -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py -msgid "Chris Isherwood" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "I'm Jesse and Carlos' son, part of the Isherwood family" -msgstr "" - #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Claire Isherwood" msgstr "" @@ -107794,22 +105175,6 @@ msgstr "" msgid "I'm the patriarch of the Isherwood family" msgstr "" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py -msgid "Jesse Isherwood" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "I'm a horse trainer, part of the Isherwood family" -msgstr "" - -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py -msgid "Lisa Isherwood" -msgstr "" - -#: lang/json/npc_class_from_json.py -msgid "Part of the Isherwood family" -msgstr "" - #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Luke Isherwood" msgstr "" @@ -108674,6 +106039,12 @@ msgstr "" msgid "noname" msgstr "" +#: lang/json/overmap_terrain_from_json.py +#: lang/json/overmap_terrain_from_json.py src/mapdata.cpp +#: src/mapdata.cpp +msgid "nothing" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "city building" msgstr "" @@ -108695,11 +106066,11 @@ msgid "boat rental" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "forest" +msgid "riverside dwelling" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "riverside dwelling" +msgid "forest" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -108817,24 +106188,6 @@ msgstr "" msgid "irradiation plant" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "field" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -msgid "crashed airliner" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -#: lang/json/terrain_from_json.py -msgid "open air" -msgstr "" - -#: lang/json/overmap_terrain_from_json.py -#: lang/json/terrain_from_json.py -msgid "solid rock" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "generic_cropland" msgstr "" @@ -109057,59 +106410,59 @@ msgid "farm barn hayloft" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "carriage house" +msgid "small cemetery" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "carriage house roof" +msgid "moonshine still" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "horse stable" +msgid "moonshine still roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "horse stable hayloft" +msgid "tree farm" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "horse stable roof" +msgid "carriage house" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "green house" +msgid "carriage house roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "green house roof" +msgid "horse stable" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "chicken coop" +msgid "horse stable hayloft" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "chicken coop roof" +msgid "horse stable roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "farm house 2nd floor" +msgid "green house" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "small cemetery" +msgid "green house roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "moonshine still" +msgid "chicken coop" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "moonshine still roof" +msgid "chicken coop roof" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "tree farm" +msgid "farm house 2nd floor" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -109217,7 +106570,9 @@ msgid "office courtyard" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "collapsed tower" +#: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py +msgid "open air" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -109709,19 +107064,20 @@ msgid "empty commercial lot" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "hunting supply store" +msgid "road" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "hunting supply store roof" +msgid "refugee center" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "road" +msgid "field" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "refugee center" +#: lang/json/terrain_from_json.py +msgid "solid rock" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -119117,7 +116473,7 @@ msgid " Craft: Rebar" msgstr "" #: lang/json/recipe_group_from_json.py -msgid " Craft: Gold Ring" +msgid " Craft: Golden Ring" msgstr "" #: lang/json/recipe_group_from_json.py @@ -122640,7 +119996,7 @@ msgstr "" msgid "never" msgstr "" -#: lang/json/snippet_from_json.py +#: lang/json/snippet_from_json.py src/crafting_gui.cpp msgid "no" msgstr "" @@ -125548,6 +122904,14 @@ msgid "" "candy bars. The caption reads: \"Burn calories! Burn!\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"This is an advertisement for the Diet Devil brand Internal Furnace CBM. It " +"shows a picture of a tiny obese devil sitting on a man's shoulder. The man " +"is about to bite into a frosting-covered baby. The caption reads: \"Eat " +"What You Want! How You Want! Who You Want!\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "This is an advertisement for the Diet Devil brand Ethanol Burner CBM. It " @@ -126035,23 +123399,6 @@ msgid "" "please!\"" msgstr "" -#: lang/json/snippet_from_json.py -msgid "" -"This is a leaflet about autoclaving procedure. One sentence catches your " -"attention \"/!\\Always place your tools into an autoclave pouch before " -"autoclaving./!\\\"" -msgstr "" - -#: lang/json/snippet_from_json.py -msgid "" -"This is an advertisement for a local hospital. You see a clean hospital " -"room with a smiling man lying on the bed. The bed is connected to some " -"medical apparatus with a \"Autodoc Mk. X\" printed on it. A doctor is seen " -"working with its console, while his assistant is unpacking some high-tech " -"hardware. The caption reads: \"Autodoc - augmentation has never been so " -"easy, reliable, and safe.\"" -msgstr "" - #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" msgstr "" @@ -126962,6 +124309,10 @@ msgid "" "like they're a hivemind, man!\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "\"MY PALMS ONLY GROW IN POWER!\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "\"riddle. what's 1/4 feathers, 1/4 scales, 1/4 metal, and 1/4 flesh? " @@ -126974,6 +124325,10 @@ msgid "" "SOURCE) that it was NOT the scientists' fault.\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "\"Whoops, I put my sister's insulin in my internal furnace. Shit.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "\"traveled with a few friends after the thing started. mostly stuck to bike " @@ -127496,6 +124851,14 @@ msgid "" "said." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"GOVERNMENT INTRODUCES GUN SUBSIDIES: In a move the government says will " +"boost the economy, encourage military production and support defense " +"militia, the government has dropped taxes on guns and applied a subsidy for " +"the poor." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "US IGNORES UN DEMANDS: The US ambassador to the UN today turned down UN " @@ -127652,6 +125015,13 @@ msgid "" "pretty big command from the government." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"SHOW THEM YOUR GUNS: In response to China's latest threats, the government " +"has further relaxed gun control, expected to increase the economic boost of " +"earlier gun subsidies and relieve public tension." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "READY FOR THE WORST: The government has proven it is ready to deal with " @@ -127865,6 +125235,16 @@ msgid "" "research labs will keep even the hungriest minds fed!" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"This is an advertisement for a local hospital. You see a clean hospital " +"room with a smiling man lying on the bed. The bed is connected to some " +"medical apparatus with a \"Autodoc Mk. X\" printed on it. A doctor is seen " +"working with its console, while his assistant is unpacking some high-tech " +"hardware. The caption reads: \"Autodoc - augmentation has never been so " +"easy, reliable, and safe.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "The card is printed with 2 boxes. In the first box you see a tally of 5 " @@ -127991,27 +125371,32 @@ msgid "You are death, and you are coming for them. Soon." msgstr "" #: lang/json/snippet_from_json.py -msgid "You feel restless. It's been too long since your last kill." +msgid "" +"You whisper a song to yourself. \"Stab stab stab stab stab, and then you " +"die! Yeah!\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "Killing something would be nice right now." +msgid "You whisper to yourself. \"Come, oh sweet death of yours.\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "Just one more death, one more kill and then you'd be right." +msgid "" +"You whisper a song to yourself. \"I've seen the future, baby! It is murder!" +"\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "You feel the rush of the kill." +msgid "" +"You whisper to yourself. \"Now I am become death, the destroyer of worlds!\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "Your urge to kill is sated, for now." +msgid "You whisper to yourself. \"Another one bites the dust!\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "You have the power of life and death, it feels good to be in control." +msgid "You whisper to yourself. \"Death takes you away.\"" msgstr "" #: lang/json/snippet_from_json.py @@ -128019,39 +125404,39 @@ msgid "You exhale in bliss." msgstr "" #: lang/json/snippet_from_json.py -msgid "A calm feeling washes over." +msgid "You whisper to yourself. \"Your death is my life.\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "This feels right." +msgid "You whisper to yourself. \"No light for you anymore.\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "You kill and your world is in order again." +msgid "You whisper to yourself. \"Yet another one.\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "Your worries evaporate as the creature dies by your hand." +msgid "You whisper to yourself. \"Keep'em coming.\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "That was nice! Maybe one more?" +msgid "You whisper to yourself. \"Next!\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "This feels so good! You could do this all day." +msgid "You whisper to yourself. \"The goal of all life is death!\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "This brings a smile to your face." +msgid "You whisper to yourself. \"By my hand!\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "You feel tension leave your body as your need to kill is satisfied." +msgid "You whisper to yourself. \"Die!\"" msgstr "" #: lang/json/snippet_from_json.py -msgid "You feel much better now." +msgid "You whisper to yourself. \"Your time is up!\"" msgstr "" #: lang/json/snippet_from_json.py @@ -130316,10 +127701,6 @@ msgid "" "cells.\"" msgstr "" -#: lang/json/speech_from_json.py -msgid "\"Hold on, I want to pulp that zombie corpse.\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "\"Burning... from the inside...\"" msgstr "" @@ -130458,30 +127839,6 @@ msgstr "" msgid "\"Not that way! Go left!\"" msgstr "" -#: lang/json/speech_from_json.py -msgid "\"I told you to let me die.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"W-where am I? Why does it hur-REBOOTING IN 59 SECONDS.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"THIS UNIT IS BROKEN. PLEASE CALL AN ATTENDANT.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Can't... breathe...\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"This cannot continue.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"USER PASSWORD UNRECOGNIZED.\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "" "\"Have you seen my friend? He went into surgery yesterday... or maybe the " @@ -130496,31 +127853,10 @@ msgstr "" msgid "\"I have done what you asked. Please let me go!\"" msgstr "" -#: lang/json/speech_from_json.py -msgid "\"I cannot... yet I must. How do you calculate that?\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"This is a dream. This has to be a dream.\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "" -"\"This is my life now... this is my life now... this is my life now...\"" -msgstr "" - -#: lang/json/speech_from_json.py -msgid "\"Wanna go home...\"" -msgstr "" - #: lang/json/speech_from_json.py msgid "screams of pain." msgstr "" -#: lang/json/speech_from_json.py -msgid "muffled sobbing." -msgstr "" - #: lang/json/speech_from_json.py msgid "" "\"You lied to me! Look at what you've done!\", followed by an electronic " @@ -133202,10 +130538,6 @@ msgstr "" msgid "Here I am." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "I talked to them." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Here it is!" msgstr "" @@ -134507,14 +131839,6 @@ msgstr "" msgid "Please test mapgen_update linked" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "This is a driving test response." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "This is a low driving test response." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Greetings friend, it's nice to see you." msgstr "" @@ -137498,181 +134822,6 @@ msgstr "" msgid "What were you saying before that?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, I think you need ot 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 "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 "" - -#: lang/json/talk_topic_from_json.py -msgid "Hi, looks like you are building a forage setup." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hi, Jack and Claire suggested I come talk to you about a job." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'd better get going." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"It is coming together. I want to make our own tools, repair our items and " -"even create some weapons and ammuntion reloading." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I heard about Barry, can you tell me what killed him?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"It was pink and really fast, it had lots of limbs, definitly not human. It " -"easily kept up with us when we tried to escape, horrifying stuff. We burned " -"the corpse to be safe." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"The big item I need is an anvil, once I have that I can get a lot of repairs " -"done." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Chris is hiking the perimeter of our land, planning some defense options." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You should get off my farm, I won't deal with a a government stooge." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Go on..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Is your forge operational?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Where can I find Chris?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I see that badge, You need to leave our land, my relatives have no fondess " -"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." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was talking to Luke earlier, said you had some interesting ideas about the " -"world ending." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, they are always worried about us, I prefer to survey the land and try " -"to track the changes. I'm thinking about fixing up this cabin for some " -"peace and quiet..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds like you are restless, why not leave?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What sort of changes have you seen?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"My family is convinced that if we stay here, we'll be able to weather this " -"catastrophe. Since technology has failed, they've doubled down on older " -"traditions. I think we need to get out there and find some answers before " -"settling on a path." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"In one of my longer trips I saw something out in a field, I didn't get close " -"but I swear unbelievable monsters were coming out of it. It kinda " -"shimmered, almost like it wasn't quite there. I followed the monsters for a " -"while..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What did you find?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"They made their way to this weird structure, I've never seen anything like " -"it, it glistened in the sun like something organic..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "If you join up with me, we can go check it out." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Yeah, I'll join with you, I hope we can come back and check on my family " -"some occasionally. Getting some information is more important now though." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What is this place we are going to?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well, wildlife is more hostile and I've seen gigantic insects around, never " -"mind all these monsters. I've also found mysterious dead spots and mutated " -"vegetation. I don't think staying on a farm is sustainable forever, there " -"are big planet wide changes occurring." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You should leave before my family sees you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Your dad asked me to come find you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was talking to Luke earlier, he said you had some interesting ideas about " -"the world ending." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Is that a U.S. Marshal's badge you're wearing?" msgstr "" @@ -137698,7 +134847,11 @@ msgid "Hi, Jack suggested I stop by and say hello." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Let's trade." +msgid "Have anything to trade?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137739,7 +134892,7 @@ msgid "He did mention you make remedies, are they effective?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'd like to ask you something else..." +msgid "I'd like to ask you something else ..." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137750,6 +134903,10 @@ msgid "" "pinch." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'd like to ask you something else..." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Some of their cows were killed before we realized what was happening, Barry " @@ -137771,8 +134928,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Jesse and her family live up at the horse farm. They may have some jobs for " -"you." +"Jesse and her family live up at the horse farm. Her husband, Carlos, may " +"have some jobs for you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137802,15 +134959,29 @@ msgid "Where is your brother's place?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Nice dairy, must be tough keeping it running." +msgid "" +"I see that badge, I think you need ot keep on walking, straight off this " +"property." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hi, Jack and Claire suggested I come down here and meet you." +msgid "Hello Sir, what brings you here?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Have anything to trade?" +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 "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice dairy, must be tough keeping it running." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Jack and Claire suggested I come down here and meet you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137865,6 +135036,14 @@ msgid "" "a forage set up." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "You should get off my farm, I won't deal with a a government stooge." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Go on..." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Your son helps with the dairy?" msgstr "" @@ -137909,17 +135088,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"We've had our losses... now we stay close to home, preparing for trouble. " -"We've always taken disaster prepardness seriously, but we didn't expect " -"anything like this though." +"Yes, we have been staying close to home since the news began to turn bad, " +"preparing for troubled times. We didn't expect anything like this though." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Even out here we've had some attacks and seen ... other things. We have " -"been working on our defenses, but it takes time. We've been able to keep up " -"with the crops and animals though so we won't have to risk our necks for " -"supplies." +"Even out here we've had some attacks and seen... other things. We have been " +"working on our defenses, but it takes time. We've been able to keep up with " +"the crops and animals though so we won't have to risk our necks for supplies." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137945,12 +135122,6 @@ msgid "" "is probably in the house, you should stop in." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "" -"Jesse and her family live up at the horse farm. Her husband, Carlos, may " -"have some jobs for you." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Eddie's dairy is at the end of the road. It's just him and his son since " @@ -137960,14 +135131,10 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"You should get off my land, the governemnt proved its incompetence with this " +"You should get off my land, the government proved its incompetence with this " "catastrophe." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Go on ..." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Tell me about your wife, is she around?" msgstr "" @@ -137984,139 +135151,6 @@ msgstr "" msgid "That's all for now. I'd best get going." 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 "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"It would be a lot harder without family. Keeping the animals safe is " -"essential to our future." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sounds like you are betting on civilization not coming back." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Do you have any animal care tips?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We can't wait for someone else to fix things, we need to take care of " -"ourselves." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We can't wait for someone else to fix things, we need to take care of " -"ourselves. Horses make good all around companions. They can get places " -"that cars can't and also help when all the engines fail. They become very " -"trusting if you feed them some nice fodder." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Oh good, I'm sure Jack wanted to put you to work. If you're interested, I " -"could use a hand clearing out the woods. My son, Chris has his hands full " -"trying to keep the predators under control." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'd like to speak with Carlos too about some work." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Is Chris around? I'd like to know what he's run into out in the woods." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What needs killing?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "He's out back in the workshop." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"He's out doing some surveying, we are planning on adding a fence line and " -"some defenses." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Looks like you are doing well here." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Jack and Claire suggested I come talk to you." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Is Chris around?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hi, this is a nice farm, your family live here?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hi, I'm looking for Jesse." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hi, I'm looking for Chris." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"My family owns all the land around here, my parents are out in the barn and " -"my other family is down he road." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Ok, I'll go find them." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Mom is in her office, in the barn. Be careful that you don't let our horses " -"out." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Chris is out hunting or something right now." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Oh, ok." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Or something?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Nice talking to you, bye." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Well he's supposed to be hunting, but since you've been talking to Luke, I " -"bet he mentioned Chris wants to learn more about the end of the world. " -"Sometimes he'll take off for a few days and I end up patching him up so my " -"parents don't know he left the property." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "I see that badge, you should leave before my father sees you." msgstr "" @@ -138139,6 +135173,10 @@ msgid "" "so I can't find some things I need." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What do you need?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Must be tough having the world fall apart when you had you future to look " @@ -138159,6 +135197,10 @@ msgid "" "matter." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Where can I find Chris?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What sort of ideas does Chris have?" msgstr "" @@ -139085,9 +136127,11 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "" -"It'd be dangerous. What kind of benefit is there from taking a risk like " -"that?" +msgid "It'd be dangerous, what's in it for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sure, easy enough. What do you need?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -142958,6 +140002,10 @@ msgstr "" msgid "Safe travels, scavenger." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I keep to my own business, and you keep to yours, marshal. Seems like a " @@ -143561,95 +140609,6 @@ msgstr "" msgid "Pack your bags, . We're going on a trip." msgstr "" -#: lang/json/technique_from_json.py -msgid "Biojutsu Counter" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You block and counter-attack %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " blocks and counter-attacks %s" -msgstr "" - -#: lang/json/technique_from_json.py -#: lang/json/technique_from_json.py src/game.cpp -msgid "Disarm" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You effortlessly disarm and stun %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " effortlessly disarms and stuns %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Measured Strike (melee)" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You make an efficent strike against %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " makes an efficent strike against %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Measured Strike (unarmed)" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Biojutsu Impale" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You brutally impale %s with your weapon" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " brutally impales %s with their weapon" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Biojutsu Takedown" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You kick and slam %s to the ground" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " kicks and slams %s to the ground" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Biojutsu Cleave" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You quickly cleave through %s and those nearby" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " quickly cleaves through %s and those nearby" -msgstr "" - #: lang/json/technique_from_json.py msgid "Viper Hiss" msgstr "" @@ -143753,21 +140712,7 @@ msgid " snatches and slug %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Grab Break" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "The %s tries to grab you, but you skitter free!" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "The %s tries to grab , but they skitter free!" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Centipede Strike" +msgid "Rapid Strike" msgstr "" #: lang/json/technique_from_json.py @@ -143780,30 +140725,6 @@ msgstr "" msgid " swiftly hits %s" msgstr "" -#: lang/json/technique_from_json.py -msgid "Centipede Bite" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You palm strike %s with a painful Centipede Bite" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " palm strikes %s with a painful Centipede Bite" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You disarm %s with lightning speed" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " disarms %s with lightning speed" -msgstr "" - #: lang/json/technique_from_json.py msgid "Not at technique at all" msgstr "" @@ -143962,10 +140883,6 @@ msgstr "" msgid " sends %s reeling" msgstr "" -#: lang/json/technique_from_json.py -msgid "Rapid Strike" -msgstr "" - #. ~ Description for Rapid Strike #: lang/json/technique_from_json.py msgid "50% moves, 66% damage" @@ -144060,6 +140977,10 @@ msgstr "" msgid " precisely hits %s" msgstr "" +#: lang/json/technique_from_json.py src/game.cpp +msgid "Disarm" +msgstr "" + #: lang/json/technique_from_json.py #, python-format msgid "You disarm %s using your whip" @@ -144098,6 +141019,10 @@ msgstr "" msgid " feints at %s." msgstr "" +#: lang/json/technique_from_json.py +msgid "Grab Break" +msgstr "" + #: lang/json/technique_from_json.py #: lang/json/technique_from_json.py src/monattack.cpp #, c-format, python-format @@ -144200,20 +141125,6 @@ msgstr "" msgid " throws a cross at %s" msgstr "" -#: lang/json/technique_from_json.py -msgid "Cross Counter" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You cross-counter %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " throws a perfect counter at %s" -msgstr "" - #: lang/json/technique_from_json.py msgid "Jab" msgstr "" @@ -144243,435 +141154,321 @@ msgid " uppercuts %s" msgstr "" #: lang/json/technique_from_json.py -#, python-format -msgid "The %s tries to grab you, but you force yourself free!" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "The %s tries to grab , but they break free!" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Hit Them Back" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You catch %s's attack, and hit back" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " catches %s, and counters" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You fake a strike at %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " fakes a strike at %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You knock %s's weapon away" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " knock %s's weapon away" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Power Hit" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Trip" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You trip %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " trip %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid "You fake a kick at %s" -msgstr "" - -#: lang/json/technique_from_json.py -#, python-format -msgid " fakes a kick at %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Push Kick" +msgid "Cross Counter" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You push kick %s" +msgid "You cross-counter %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " push kicks %s" +msgid " throws a perfect counter at %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Circle Kick" +msgid "quick punch" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You circle kick %s" +msgid "You quickly punch %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " circle kicks %s" +msgid " quickly punches %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Sweep Kick" +msgid "karate chop" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You sweep kick %s" +msgid "You karate chop %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " sweep kicks %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Spin Kick" +msgid " karate chops %s" msgstr "" #: lang/json/technique_from_json.py -#, python-format -msgid "You spin kick %s" +msgid "kick" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " spin kicks %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "Crane Wing" +msgid "You kick %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You raise your arms intimidatingly at %s." +msgid " kicks %s" msgstr "" #: lang/json/technique_from_json.py -#, python-format -msgid " performs the Crane Wing at %s." +msgid "grab break" msgstr "" #: lang/json/technique_from_json.py -msgid "Crane Flap" +msgid "counter-grab" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "The %s tries to grab you, but you swing your arms and break free!" +msgid "You counter and grab %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "The %s tries to grab , but they flap free!" +msgid " counters and grabs %s" msgstr "" #: lang/json/technique_from_json.py -msgid "Crane Strike" +msgid "arm lock" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You hand-peck and swat down %s" +msgid "You put %s in an arm lock" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " hand-pecks and swats down %s" +msgid " puts %s in an arm lock" msgstr "" #: lang/json/technique_from_json.py -msgid "Crane Kick" +msgid "throw" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You leap and kick %s" +msgid "You throw %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " leaps and kicks %s" +msgid " throws %s" msgstr "" #: lang/json/technique_from_json.py -msgid "quick punch" +msgid "chokehold" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You quickly punch %s" +msgid "You put %s in a chokehold" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " quickly punches %s" +msgid " puts %s in a chokehold" msgstr "" #: lang/json/technique_from_json.py -msgid "karate chop" +msgid "grab" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You karate chop %s" +msgid "You disarm %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " karate chops %s" +msgid " disarms %s" msgstr "" #: lang/json/technique_from_json.py -msgid "kick" +msgid "precise strike" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s" +msgid "You strike %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "grab break" +msgid " strikes %s" msgstr "" #: lang/json/technique_from_json.py -msgid "counter-grab" +msgid "feint at" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You counter and grab %s" +msgid "You feint at %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " counters and grabs %s" +msgid " feints at %s" msgstr "" #: lang/json/technique_from_json.py -msgid "arm lock" +msgid "elbow" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You put %s in an arm lock" +msgid "You elbow %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " puts %s in an arm lock" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "throw" +msgid " elbows %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You throw %s" +msgid "You power-kick %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " throws %s" +msgid " power-kicks %s" msgstr "" #: lang/json/technique_from_json.py -msgid "chokehold" +msgid "flying knee" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You put %s in a chokehold" +msgid "You flying knee %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " puts %s in a chokehold" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "grab" +msgid " flying knees %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You disarm %s" +msgid "You jab %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " disarms %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "precise strike" +msgid " jabs %s" msgstr "" #: lang/json/technique_from_json.py -#, python-format -msgid "You strike %s" +msgid "surprise attack" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " strikes %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "elbow" +msgid "You surprise attack %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You elbow %s" +msgid " surprise attacks %s" msgstr "" #: lang/json/technique_from_json.py -#, python-format -msgid " elbows %s" +msgid "axe-kick" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You power-kick %s" +msgid "You axe-kick %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " power-kicks %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "flying knee" +msgid " axe-kicks %s" msgstr "" #: lang/json/technique_from_json.py -#, python-format -msgid "You flying knee %s" +msgid "side kick" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " flying knees %s" -msgstr "" - -#: lang/json/technique_from_json.py -msgid "feint at" +msgid "You side-kick %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You feint at %s" +msgid " side-kicks %s" msgstr "" #: lang/json/technique_from_json.py -#, python-format -msgid " feints at %s" +msgid "sweep kick" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You jab %s" +msgid "You sweep-kick %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " jabs %s" +msgid " sweep-kicks %s" msgstr "" #: lang/json/technique_from_json.py -msgid "surprise attack" +msgid "biojutsu counter" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You surprise attack %s" +msgid "You block and counter-attack %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " surprise attacks %s" +msgid " blocks and counter-attacks %s" msgstr "" #: lang/json/technique_from_json.py -msgid "axe-kick" +msgid "quick slash" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You axe-kick %s" +msgid "You quickly slash %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " axe-kicks %s" +msgid " quickly slashes %s" msgstr "" #: lang/json/technique_from_json.py -msgid "side kick" +msgid "biojutsu impale" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You side-kick %s" +msgid "You brutally impale %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " side-kicks %s" +msgid " brutally impales %s" msgstr "" #: lang/json/technique_from_json.py -msgid "sweep kick" +msgid "wide strike" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You sweep-kick %s" +msgid "You cleave through %s" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " sweep-kicks %s" +msgid " cleave through %s" msgstr "" #: lang/json/technique_from_json.py @@ -145019,6 +141816,48 @@ msgstr "" msgid " sends %s reeling with a Dragon Strike" msgstr "" +#: lang/json/technique_from_json.py +msgid "Crane Wing" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " performs the Crane Wing at %s." +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Crane Flap" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Crane Strike" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You hand-peck %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " hand-pecks %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "Snake Snap" msgstr "" @@ -145075,6 +141914,43 @@ msgstr "" msgid " strikes out at %s" msgstr "" +#: lang/json/technique_from_json.py +#, python-format +msgid "You fake a strike at %s" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Power Hit" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Hit Them Back" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You catch %s's attack, and hit back" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " catches %s, and counters" +msgstr "" + +#: lang/json/technique_from_json.py +msgid "Trip" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid "You trip %s" +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " trips %s" +msgstr "" + #: lang/json/technique_from_json.py msgid "Flowing Water Cut" msgstr "" @@ -145225,7 +142101,7 @@ msgid " slips out of a grab" msgstr "" #: lang/json/technique_from_json.py -msgid "ask the way" +msgid "keep punching at" msgstr "" #: lang/json/technique_from_json.py @@ -145239,7 +142115,7 @@ msgid " misses but keeps striking at %s" msgstr "" #: lang/json/technique_from_json.py -msgid "White Crane stumble" +msgid "stumble" msgstr "" #: lang/json/technique_from_json.py @@ -145916,1072 +142792,859 @@ msgstr "" msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "The earth here does not listen to your command to move." -msgstr "" - -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "The pit has deepened further." -msgstr "" - -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "More debris shifts out of the pit." -msgstr "" - -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "The earth moves out of the way for you." -msgstr "" - -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "The rocks here are ground into sand." -msgstr "" - -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "The rock crumbles to dust." -msgstr "" - -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "All the dust in the air here falls to the ground." -msgstr "" - -#: lang/json/ter_furn_transform_messages_from_json.py -msgid "The fungus here dies back." -msgstr "" - #: lang/json/terrain_from_json.py -msgid "walkway" -msgstr "" - -#. ~ Description for walkway -#: lang/json/terrain_from_json.py -msgid "" -"A metallic bridge commonly used in industrial settings to meet specified " -"safety standards." +msgid "empty space" msgstr "" +#. ~ Description for empty space #: lang/json/terrain_from_json.py -msgid "metal compactor" +msgid "This is empty space." msgstr "" -#. ~ Description for metal compactor +#. ~ Description for open air #: lang/json/terrain_from_json.py -msgid "" -"A hydraulic compactor that can accept items made of various metals, and " -"press them into basic shapes, ready for further crafting." +msgid "This is open air." msgstr "" #: lang/json/terrain_from_json.py -msgid "sandbox" +msgid "half-built brick wall" msgstr "" -#. ~ Description for sandbox +#. ~ Description for half-built brick wall #: lang/json/terrain_from_json.py msgid "" -"Children used to play in this sandbox. The population of lice probably " -"diminished considerably now that they no longer do." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "slide" -msgstr "" - -#. ~ Description for slide -#: lang/json/terrain_from_json.py -msgid "A children's slide. Too small to slide on comfortably anymore." +"Half of a brick wall, looks like it still requires some more resources and " +"effort before being considered a real wall." msgstr "" #: lang/json/terrain_from_json.py -msgid "crack!" +msgid "bash!" msgstr "" #: lang/json/terrain_from_json.py -msgid "monkey bars" +msgid "brick wall" msgstr "" -#. ~ Description for monkey bars +#. ~ Description for brick wall #: lang/json/terrain_from_json.py msgid "" -"A set of monkey bars, to be used by children to train their arms by hanging " -"from the bars, and have fun." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "backboard" -msgstr "" - -#. ~ Description for backboard -#: lang/json/terrain_from_json.py -msgid "A basketball backboard." +"A solid brick wall, sturdy enough to support a roof with enough walls and " +"keep out any unwanted visitors." msgstr "" #: lang/json/terrain_from_json.py -msgid "gasoline pump" +msgid "simple metal wall" msgstr "" -#. ~ Description for gasoline pump +#. ~ Description for simple metal wall #: 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 "tank with gasoline" -msgstr "" - -#. ~ Description for tank with gasoline -#: lang/json/terrain_from_json.py -msgid "A tank filled with gasoline." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "little column" +"A relatively simple wall made of scraped together metal. It's still capable " +"of blocking intruders and supporting a roof with adjacent walls." msgstr "" -#. ~ Description for little column #: lang/json/terrain_from_json.py -msgid "A small support column." +msgid "half-built simple metal wall" msgstr "" +#. ~ Description for half-built simple metal wall #: lang/json/terrain_from_json.py -msgid "smashed gas pump" +msgid "" +"A partially built makeshift wall of metal that could potentially support a " +"roof if it were completed." msgstr "" -#. ~ Description for smashed gas pump #: lang/json/terrain_from_json.py -msgid "" -"The horror! This gasoline pump has been destroyed, denying you access to " -"the liquid gold." +msgid "simple concrete wall" msgstr "" -#. ~ Description for diesel pump +#. ~ Description for simple concrete wall #: lang/json/terrain_from_json.py msgid "" -"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." +"A durable and uniform concrete wall, quite drab without decoration. More " +"than capable of supporting a roof, as well as keeping out most anything, " +"save for vehicles." msgstr "" #: lang/json/terrain_from_json.py -msgid "smashed diesel pump" +msgid "half-built simple concrete wall" msgstr "" -#. ~ Description for smashed diesel pump +#. ~ Description for half-built simple concrete wall #: lang/json/terrain_from_json.py msgid "" -"You're not getting any diesel out of this pump any time soon. Some " -"barbarian decided to take their frustration out on it." +"A partially poured concrete wall that could probably keep anything behind it " +"quite safe if it were finished." msgstr "" #: lang/json/terrain_from_json.py -msgid "ATM" +msgid "reinforced concrete wall" msgstr "" -#. ~ Description for ATM +#. ~ Description for reinforced concrete wall #: lang/json/terrain_from_json.py msgid "" -"For your banking convenience, this Automated Teller Machine is fully capable " -"of operating autonomously in the event of complete network failure. You can " -"deposit funds from cash cards and migrate all of your inflation-adjusted " -"earnings to a single card. These things have seen better days. There's been " -"a run on the bank, and this machine has the dents and cracks to prove it." +"An extremely resilient wall, filled with concrete and rebar. Best suited " +"for supporting multi-level buildings, only serious explosives and high-speed " +"impacts would be capable of damaging this wall." msgstr "" #: lang/json/terrain_from_json.py -msgid "Critical failure imminent, self destruct activated. Have a nice day!" +msgid "scrrrash!" msgstr "" #: lang/json/terrain_from_json.py -msgid "broken generator" +msgid "half-built reinforced concrete wall" msgstr "" -#. ~ Description for broken generator +#. ~ Description for half-built reinforced concrete wall #: lang/json/terrain_from_json.py msgid "" -"This generator is broken and will not help you produce usable electricity." +"Poured concrete with methodically placed rebar sticking out, which isn't " +"practical for supporting roofs or shelter. It appears to need more " +"resources before being considered complete." msgstr "" #: lang/json/terrain_from_json.py -msgid "missile" +msgid "rebar cage" msgstr "" -#. ~ Description for missile +#. ~ Description for rebar cage #: lang/json/terrain_from_json.py msgid "" -"This is a section of an ICBM, an Intercontinental Ballistic Missile. This " -"isn't the kind of rocket that goes to the moon." +"A structural support system made of rebar that appears to be the early " +"stages of a reinforced concrete wall, just missing the poured concrete." msgstr "" #: lang/json/terrain_from_json.py -msgid "blown-out missile" +msgid "concrete floor" msgstr "" -#. ~ Description for blown-out missile +#. ~ Description for concrete floor #: lang/json/terrain_from_json.py msgid "" -"This is a section of an ICBM, an Intercontiental Ballistic Missile. This " -"isn't the kind of rocket that's going anywhere." -msgstr "" - -#. ~ Description for radio tower -#: lang/json/terrain_from_json.py -msgid "This is the structure of a radio transmission tower." +"A bare and cold concrete floor with matching roof, could still insulate from " +"the outdoors but roof collapse is possible if supporting walls are broken " +"down." msgstr "" #: lang/json/terrain_from_json.py -msgid "radio controls" +msgid "SMASH!" msgstr "" -#. ~ Description for radio controls +#. ~ Description for concrete floor #: lang/json/terrain_from_json.py msgid "" -"This console appears to control a nearby radio transmission tower. It " -"doesn't seem to be fully operational." +"A bare and cold concrete floor with a streak of yellow paint, could still " +"insulate from the outdoors but roof collapse is possible if supporting walls " +"are broken down." msgstr "" #: lang/json/terrain_from_json.py -msgid "broken console" +msgid "concrete floor, overhead light" msgstr "" -#. ~ Description for broken console +#. ~ Description for concrete floor, overhead light #: lang/json/terrain_from_json.py msgid "" -"This is a standalone computer terminal. It doesn't seem to be working. " -"It's the broken screen and shattered circuit boards that's telling you that." +"A bare and cold concrete floor with a still-functioning light attached to " +"the ceiling above." msgstr "" #: lang/json/terrain_from_json.py -msgid "computer console" +msgid "small rebar roof cage" msgstr "" -#. ~ Description for computer console +#. ~ Description for small rebar roof cage #: lang/json/terrain_from_json.py msgid "" -"This is a standalone computer terminal. It can be used to view contents and " -"perform any allowed functions. It might even be possible to hack it, given " -"the skills." +"A series of structural support crafted from rebar in order to allow the " +"pouring of concrete for a more stable floor and roof." msgstr "" #: lang/json/terrain_from_json.py -msgid "mechanical winch" +msgid "SCRRRASH!" msgstr "" -#. ~ Description for mechanical winch #: lang/json/terrain_from_json.py -msgid "" -"This is a gate control winch. If it's functioning, it can be used to open " -"or close a nearby gate or door." +msgid "reinforced concrete floor" msgstr "" -#. ~ Description for mechanical winch -#. ~ Description for control lever +#. ~ Description for reinforced concrete floor #: lang/json/terrain_from_json.py 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 -msgid "control lever" +"Extremely resilient floor made from carefully placed rebar and poured " +"concrete, capable of providing protection from the elements. As for the " +"matching roof, it still requires supporting walls, otherwise it may very " +"well cave in." msgstr "" #: lang/json/terrain_from_json.py -msgid "rope and pulley" -msgstr "" - -#. ~ Description for rope and pulley -#: lang/json/terrain_from_json.py -msgid "A system of ropes and pulleys that allows to pull up heavy doors." +msgid "rebar roof cage" msgstr "" -#. ~ Description for rope and pulley +#. ~ Description for rebar roof cage #: lang/json/terrain_from_json.py msgid "" -"A system of ropes and pulleys that allows to pull up heavy doors or gates." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "high gauge pipe" -msgstr "" - -#. ~ Description for high gauge pipe -#: lang/json/terrain_from_json.py -msgid "This is a section of high gauge pipe." +"A network of architecturally sound rebar in order to support a floor and " +"roof, looks like it's missing the poured concrete." msgstr "" #: lang/json/terrain_from_json.py -msgid "high gauge pump" +msgid "half-built reinforced concrete floor" msgstr "" -#. ~ Description for high gauge pump +#. ~ Description for half-built reinforced concrete floor #: lang/json/terrain_from_json.py msgid "" -"This unpowered pump previously would have moved fluids around in a hurry." +"Unfinished series of rebar and poured concrete; the floor hasn't been " +"smoothed and the roof isn't quite filled in yet." msgstr "" #: lang/json/terrain_from_json.py -msgid "centrifuge" +msgid "dirt" msgstr "" -#. ~ Description for centrifuge +#. ~ Description for dirt #: lang/json/terrain_from_json.py msgid "" -"This is a centrifuge, a liquid separating device with an automated analyzer " -"unit. It could be used to analyze a medical fluid sample, such as blood, if " -"a test tube was placed in it." +"It's dirt. Looks like some fine soil for tillage. Could also be dug out " +"for construction projects." msgstr "" #: lang/json/terrain_from_json.py -msgid "CVD machine" +msgid "thump" msgstr "" -#. ~ Description for CVD machine +#. ~ Description for sand #: lang/json/terrain_from_json.py msgid "" -"The bulk of a highly technical-looking apparatus controlled by a nearby " -"console." +"A large area of fine sand that could be useful in a number of ways, if it " +"was extracted properly." msgstr "" #: lang/json/terrain_from_json.py -msgid "CVD control panel" +msgid "clay" msgstr "" -#. ~ Description for CVD control panel +#. ~ Description for clay #: lang/json/terrain_from_json.py msgid "" -"This is a VERY expensive-looking apparatus that's labeled 'Chemical Vapor " -"Deposition Machine'. With the input of certain exceptionally rare chemicals " -"and elements, one could conceievably coat one's weapon with diamond. While " -"the process is extremely complicated, a previous user has helpfully " -"sketched: Hydrogen + charcoal = smiley face." +"A field full of malleable clay, suitable for kiln firing if it was extracted " +"properly." msgstr "" #: lang/json/terrain_from_json.py -msgid "nanofabricator" +msgid "mound of dirt" msgstr "" -#. ~ Description for nanofabricator +#. ~ Description for mound of dirt #: lang/json/terrain_from_json.py msgid "" -"A great column of advanced machinery. Within this self-contained, " -"miniaturized factory, several 3d printers work in tandem with a robotic " -"assembler to manufacture nearly any inorganic object." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "nanofabricator control panel" +"An area of heaped dirt, not easily traversable. If examined more closely, " +"it's quite favorable for planting seeds and the like." msgstr "" -#. ~ Description for nanofabricator control panel +#. ~ Description for mound of dirt #: lang/json/terrain_from_json.py msgid "" -"A small computer panel attached to a nanofabricator. It has a single slot " -"for reading templates." +"A giant hill of dirt that looks like you could crawl inside for shelter." msgstr "" #: lang/json/terrain_from_json.py -msgid "half-built column" +msgid "shallow pit" msgstr "" -#. ~ Description for half-built column +#. ~ Description for shallow pit #: lang/json/terrain_from_json.py msgid "" -"An empty wooden frame in the shape of a column, built around a concrete and " -"rebar foundation. It isn't capable of supporting roofs or shelter, and " -"appears to need more resources before being considered complete." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "column" -msgstr "" - -#. ~ Description for column -#: lang/json/terrain_from_json.py -msgid "A concrete column." +"A pit that could be dug even deeper or filled up. Also useful as a starting " +"foundation for some constructions." msgstr "" -#: lang/json/terrain_from_json.py -msgid "cloning vat" +#: lang/json/terrain_from_json.py lang/json/trap_from_json.py +msgid "pit" msgstr "" -#. ~ Description for cloning vat +#. ~ Description for pit #: lang/json/terrain_from_json.py msgid "" -"A vat full of solution, probably intended to hold growing clones of people " -"or other life forms." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "ker-rash!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "plunk." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wooden stairs" -msgstr "" - -#. ~ Description for wooden stairs -#: lang/json/terrain_from_json.py -msgid "A wooden staircase leading down." +"A steep hole that could seriously injure something if it fell in, " +"potentially fatal if it was filled with sharp and dangerous things. Deep " +"enough for more advanced construction projects, and possibly to reach " +"groundwater if constructed properly." msgstr "" #: lang/json/terrain_from_json.py -msgid "half-built wooden stairs" +msgid "corpse filled pit" msgstr "" -#. ~ Description for half-built wooden stairs +#. ~ Description for corpse filled pit #: lang/json/terrain_from_json.py msgid "" -"Half of a wooden staircase. Some work still needs to be done before this " -"staircase is complete." +"A giant trench full of corpses, maybe even a mass graveyard. The bodies " +"could be dug out but none of it looks remotely usable." msgstr "" #: lang/json/terrain_from_json.py -msgid "broken wooden stairs" +msgid "covered pit" msgstr "" -#. ~ Description for broken wooden stairs +#. ~ Description for covered pit #: lang/json/terrain_from_json.py msgid "" -"A number of planks are missing and the structure is beginning to sag and " -"fall apart. It's going to need quite a bit of work to repair this staircase." -msgstr "" - -#. ~ Description for wooden stairs -#: lang/json/terrain_from_json.py -msgid "A wooden staircase leading up" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "stairs" -msgstr "" - -#. ~ Description for stairs -#: lang/json/terrain_from_json.py -msgid "A flight of stairs leading down." -msgstr "" - -#. ~ Description for stairs -#. ~ Description for low stairs (beginning section) -#. ~ Description for low stairs (end section) -#: lang/json/terrain_from_json.py -msgid "A flight of stairs leading up." +"A deep pit with a two by four placed across it, looks sturdy enough to cross " +"safely or the plank could be removed to turn it back into trap fall." msgstr "" -#: lang/json/terrain_from_json.py -msgid "manhole" +#: lang/json/terrain_from_json.py lang/json/trap_from_json.py +msgid "spiked pit" msgstr "" -#. ~ Description for manhole +#. ~ Description for spiked pit #: lang/json/terrain_from_json.py msgid "" -"This is a manhole. The heavy iron cover lies over an entrance to the " -"underworld of hidden tunnels beneath the streets where sewage and rain water " -"frolic freely." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "ladder" -msgstr "" - -#. ~ Description for ladder -#: lang/json/terrain_from_json.py -msgid "A ladder leading up." -msgstr "" - -#. ~ Description for ladder -#: lang/json/terrain_from_json.py -msgid "A ladder leading down." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "downward slope" -msgstr "" - -#. ~ Description for downward slope -#: lang/json/terrain_from_json.py -msgid "A downward facing slope." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "upward slope" -msgstr "" - -#. ~ Description for upward slope -#: lang/json/terrain_from_json.py -msgid "An upward facing slope." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "rope leading up" -msgstr "" - -#. ~ Description for rope leading up -#: lang/json/terrain_from_json.py -msgid "A rope. You could climb up it." +"A narrow trench full of very pointy things that would easily puncture a body." msgstr "" -#. ~ Description for manhole cover #: lang/json/terrain_from_json.py -msgid "Just a manhole cover." +msgid "covered spiked pit" msgstr "" -#. ~ Description for intercom +#. ~ Description for covered spiked pit #: lang/json/terrain_from_json.py msgid "" -"An intercom panel. For when you want to scare the crap out of someone, or " -"just talk to them over the intercom system, if you're boring like that." +"Menacing with sharp spears along the bottom, this pit has a plank across it " +"to allow someone or something to cross safely. The two by four could be " +"removed to revert it back into a trap." msgstr "" -#: lang/json/terrain_from_json.py -msgid "card reader" +#: lang/json/terrain_from_json.py lang/json/trap_from_json.py +msgid "glass pit" msgstr "" -#. ~ Description for card reader +#. ~ Description for glass pit #: lang/json/terrain_from_json.py msgid "" -"This is a smartcard reader. It sports the stylized symbol of an atom inside " -"a flask that is universally known to indicate SCIENCE. An ominous red LED " -"reminds you of a robot gone haywire from an old sci-fi flick. You could " -"swipe a scientific ID badge near it if you do not fear the machine." +"Looks like a ton of broken glass was dumped into this pit, maybe not fatal " +"to fall in but wouldn't be pleasant to try to crawl out." msgstr "" -#. ~ Description for card reader #: lang/json/terrain_from_json.py -msgid "" -"This is a smartcard reader. It sports the stylized symbol of an atom inside " -"a flask that is universally known to indicate SCIENCE. The stark red LED " -"blinks askance at your geek cred. You could swipe a scientific ID badge " -"near it to unlock the gates to discovery." +msgid "covered glass pit" msgstr "" -#. ~ Description for card reader +#. ~ Description for covered glass pit #: lang/json/terrain_from_json.py msgid "" -"This is a smartcard reader. The universal symbol of an eagle driving a " -"tank, biting a grenade pin stands rampant in front of an American flag. A " -"small, red LED remains constant, as if watching you, waiting. You could " -"swipe a military ID card in front of the reader if you dared." +"A two by four has been placed carefully to allow traversal over this ditch " +"full of large glass shards. The wooden board could be removed so it " +"couldn't be safely crossed." msgstr "" -#. ~ Description for card reader #: lang/json/terrain_from_json.py -msgid "" -"This is a smartcard reader. The symbol of a gear in front of a bulging " -"bicep is emblazoned on the matte black surface with an illegible heavy " -"industrial company title. A red LED blinks on the card reader. Perhaps an " -"industrial ID card could still open it." +msgid "rock floor" msgstr "" -#. ~ Description for card reader +#. ~ Description for rock floor #: lang/json/terrain_from_json.py msgid "" -"This looks like the console controling the security door, there's a pretty " -"big reading surface on it. You can see \"Fp\" soberly printed above the " -"reader. You have no idea what could open it." +"A relatively flat area of rock and stone. Looks stable enough to be mined " +"with the proper mining gear." msgstr "" #: lang/json/terrain_from_json.py -msgid "broken card reader" +msgid "woodchips" msgstr "" -#. ~ Description for broken card reader +#. ~ Description for woodchips #: lang/json/terrain_from_json.py msgid "" -"This is a smartcard reader, but it doesn't seem to be functioning. Probably " -"because there's no more blinking red LED." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "slot machine" +"Small splinters of wood laid out in a layer to prevent unwanted plants from " +"growing." msgstr "" -#. ~ Description for slot machine #: lang/json/terrain_from_json.py -msgid "" -"A machine with a bright screen flashing hypnotic promises of wealth. If " -"gambling with your life on a daily basis isn't enough for you, you can also " -"gamble with this." +msgid "moss" msgstr "" +#. ~ Description for moss #: lang/json/terrain_from_json.py -msgid "elevator controls" +msgid "Moist spongy moss." msgstr "" -#. ~ Description for elevator controls +#. ~ Description for grass #: lang/json/terrain_from_json.py msgid "" -"This is the control face for an elevator. You could press the appropriate " -"button to take you to your choice of floor." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "powerless controls" -msgstr "" - -#. ~ Description for powerless controls -#: lang/json/terrain_from_json.py -msgid "This is the control face for an elevator. It's currently unpowered." +"An area of hardy Kentucky bluegrass about ankle high. Cutting the grass " +"short enough would destroy the root system, causing this area to turn into a " +"patch of dirt." msgstr "" #: lang/json/terrain_from_json.py -msgid "dark pedestal" +msgid "white grass" msgstr "" -#. ~ Description for dark pedestal +#. ~ Description for white grass #: lang/json/terrain_from_json.py msgid "" -"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " -"ominous." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "light pedestal" +"A section of Kentucky bluegrass covered in white latex-based paint, with " +"neat lines designed for recreational sports." msgstr "" -#. ~ Description for light pedestal #: lang/json/terrain_from_json.py -msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgid "long grass" msgstr "" +#. ~ Description for long grass #: lang/json/terrain_from_json.py -msgid "yellow switch" +msgid "Long shaggy grass about shin high." msgstr "" -#. ~ Description for yellow switch #: lang/json/terrain_from_json.py -msgid "A yellow switch. Should you activate it?" +msgid "tall grass" msgstr "" +#. ~ Description for tall grass #: lang/json/terrain_from_json.py -msgid "cyan switch" +msgid "Tall grass about head high." msgstr "" -#. ~ Description for cyan switch #: lang/json/terrain_from_json.py -msgid "A cyan switch. Should you activate it?" +msgid "dead grass" msgstr "" +#. ~ Description for dead grass #: lang/json/terrain_from_json.py -msgid "purple switch" +msgid "Long shaggy grass that hasn't been cut recently." msgstr "" -#. ~ Description for purple switch #: lang/json/terrain_from_json.py -msgid "A purple switch. Should you activate it?" +msgid "golf green" msgstr "" +#. ~ Description for golf green #: lang/json/terrain_from_json.py -msgid "checkered switch" +msgid "Grass mowed very short and neat." msgstr "" -#. ~ Description for checkered switch #: lang/json/terrain_from_json.py -msgid "A checkered switch. Should you activate it?" +msgid "golf hole" msgstr "" +#. ~ Description for golf hole #: lang/json/terrain_from_json.py -msgid "covered well" +msgid "A small plastic cup embedded in the grass." msgstr "" -#. ~ Description for covered well #: lang/json/terrain_from_json.py -msgid "" -"Deep well collecting ground water. Requires a method to draw water from." +msgid "metal floor" msgstr "" -#. ~ Description for water pump +#. ~ Description for metal floor #: lang/json/terrain_from_json.py msgid "" -"Deep well collecting ground water. Installed water pump allows to draw " -"water from it." +"High-quality and tough checkered flooring to reduce risk of slips and falls, " +"with a matching roof." msgstr "" #: lang/json/terrain_from_json.py -msgid "water dispenser" +msgid "pavement" msgstr "" -#. ~ Description for water dispenser +#. ~ Description for pavement #: lang/json/terrain_from_json.py -msgid "A machine with several taps that dispenses clean water." +msgid "" +"A segment of asphalt, slowly degrading from cracks, frost heaves and lack of " +"maintenance." msgstr "" #: lang/json/terrain_from_json.py -msgid "improvised shelter" +msgid "yellow pavement" msgstr "" -#. ~ Description for improvised shelter +#. ~ Description for yellow pavement #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection, that can be used to " -"take refuge from the elements or to protect a campfire from the rain." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "brush." +"Streaks of carefully aligned yellow paint mark the road to inform drivers " +"not to cross. No one is enforcing these rules anymore." msgstr "" #: lang/json/terrain_from_json.py -msgid "plutonium generator" +msgid "sidewalk" msgstr "" -#. ~ Description for plutonium generator +#. ~ Description for sidewalk #: lang/json/terrain_from_json.py msgid "" -"This imposing apparatus harnesses the power of the atom. Refined nuclear " -"fuel is 'burned' to provide nearly limitless electrical power. It's not " -"doing much good here though. Perhaps it could be salvaged for other " -"purposes." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "telecom cabinet" +"An area of common poured concrete, damaged by frost heaves and large cracks " +"due to lack of maintenance." msgstr "" -#. ~ Description for telecom cabinet +#. ~ Description for concrete #: lang/json/terrain_from_json.py msgid "" -"A cabinet full of telecoms equipment. With the lines down, you might be " -"able to take it apart for its useful electronics." +"A newer segment of poured concrete with surface finishes for aesthetics and " +"resistance to freeze-thaw cycles." msgstr "" #: lang/json/terrain_from_json.py -msgid "damaged telecom cabinet" +msgid "floor" msgstr "" -#. ~ Description for damaged telecom cabinet +#. ~ Description for floor #: lang/json/terrain_from_json.py msgid "" -"A damaged telecoms cabinet. Might still be able to salvage some useful " -"electronics scrap from it." +"Interlocking wooden tiles that are more than likely treated against fire, " +"with wooden posts and beams supporting a roof." msgstr "" #: lang/json/terrain_from_json.py -msgid "large metal support" +msgid "wooden floor" msgstr "" -#. ~ Description for large metal support +#. ~ Description for wooden floor #: lang/json/terrain_from_json.py -msgid "A heavy-duty metal support beam." +msgid "" +"Wooden floor created from boards, packed tightly together and nailed down. " +"Common in patios." msgstr "" #: lang/json/terrain_from_json.py -msgid "small metal support" +msgid "primitive floor" msgstr "" -#. ~ Description for small metal support +#. ~ Description for primitive floor #: lang/json/terrain_from_json.py -msgid "A metal support beam." +msgid "Timber floor and supports, holding up a sod roof." msgstr "" #: lang/json/terrain_from_json.py -msgid "HV oil circuit breaker" +msgid "simple metal floor" msgstr "" -#. ~ Description for HV oil circuit breaker +#. ~ Description for simple metal floor #: lang/json/terrain_from_json.py -msgid "A circuit breaker that uses oil in its arc supression chamber." +msgid "" +"A crudely welded together floor of metal with steel trusses and supporting " +"girders." msgstr "" #: lang/json/terrain_from_json.py -msgid "pow!" +msgid "waxed floor" msgstr "" +#. ~ Description for waxed floor #: lang/json/terrain_from_json.py -msgid "small HV oil circuit breaker" +msgid "" +"Hardwood flooring that has been treated with chemicals to improve slip " +"resistance and sliding, commonly for recreational sports." msgstr "" -#. ~ Description for small HV oil circuit breaker #: lang/json/terrain_from_json.py -msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgid "dirt floor" msgstr "" +#. ~ Description for dirt floor #: lang/json/terrain_from_json.py -msgid "large switchgear" +msgid "Floor consisting of finely mixed earth that has been tamped down." msgstr "" -#. ~ Description for large switchgear +#. ~ Description for dirt floor #: lang/json/terrain_from_json.py msgid "" -"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +"Floor consisting of finely mixed earth that has been tamped down, with " +"thatched roof above it." msgstr "" #: lang/json/terrain_from_json.py -msgid "small switchgear" +msgid "metal grate" msgstr "" -#. ~ Description for small switchgear +#. ~ Description for metal grate #: lang/json/terrain_from_json.py msgid "" -"A small switchgear panel. It's covered in breaker switches, fuses, and " -"gauges." +"A type of walkway that can be used as protective covering over drains or " +"even used as a filter." msgstr "" #: lang/json/terrain_from_json.py -msgid "lightning arrester" +msgid "slime" msgstr "" -#. ~ Description for lightning arrester +#. ~ Description for slime #: lang/json/terrain_from_json.py msgid "" -"A component designed to protect insulation and conductors in an electrical " -"system by directing lightning through itself and into the ground." +"A disgusting and slippery mess that could be used to stash things because " +"who'd want to touch it?" msgstr "" #: lang/json/terrain_from_json.py -msgid "disconnect switch" +msgid "walkway" msgstr "" -#. ~ Description for disconnect switch +#. ~ Description for walkway #: lang/json/terrain_from_json.py msgid "" -"A switch used to make sure an electrical system doesn't have any current " -"flowing through it, for maintenance periods." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "current transformer" -msgstr "" - -#. ~ Description for current transformer -#: lang/json/terrain_from_json.py -msgid "An electronic component used to transform the voltage of a current." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "potential transformer" -msgstr "" - -#. ~ Description for potential transformer -#: lang/json/terrain_from_json.py -msgid "A specialised type of electrical transformer, " +"A metallic bridge commonly used in industrial settings to meet specified " +"safety standards." msgstr "" -#. ~ Description for dock -#. ~ Description for shallow bridge #: lang/json/terrain_from_json.py -msgid "A wooden platform held by a support made of logs dug into the ground." +msgid "utility light" msgstr "" +#. ~ Description for utility light #: lang/json/terrain_from_json.py -msgid "shallow bridge" +msgid "" +"An industrial flood light set up to illuminate the surroundings. Smashing " +"it doesn't seem like it'd produce any worthwhile salvage." msgstr "" #: lang/json/terrain_from_json.py -msgid "pontoon bridge" +msgid "half-built log wall" msgstr "" -#. ~ Description for pontoon bridge -#. ~ Description for river bridge +#. ~ Description for half-built log wall #: lang/json/terrain_from_json.py msgid "" -"A floating temporary bridge, like the ones army used to make to cross rivers." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "river bridge" +"A half-constructed wall of notched logs that interlock to provide " +"stability. Needs a few more logs to hold up a roof. Looks flammable." msgstr "" #: lang/json/terrain_from_json.py -msgid "bridge pavement" +msgid "log wall" msgstr "" -#. ~ Description for bridge pavement +#. ~ Description for log wall #: lang/json/terrain_from_json.py -msgid "A bridge section made out of metal and concrete." +msgid "" +"A tall wall of timber suitable for housing and insulating from the weather. " +"Quite flammable." msgstr "" #: lang/json/terrain_from_json.py -msgid "concrete cracking and metal screeching!" +msgid "chipped log wall" msgstr "" +#. ~ Description for chipped log wall #: lang/json/terrain_from_json.py -msgid "bridge yellow pavement" +msgid "" +"A moderately damaged wall, could probably be patched up with some planks and " +"nails." msgstr "" -#. ~ Description for bridge yellow pavement #: lang/json/terrain_from_json.py -msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgid "broken log wall" msgstr "" +#. ~ Description for broken log wall #: lang/json/terrain_from_json.py -msgid "bridge sidewalk" +msgid "" +"A destroyed wood wall, with only a supporting log left, ready to collapse. " +"Looks repairable if the damage was replaced and patched together with nails " +"and planks." msgstr "" -#. ~ Description for bridge sidewalk #: lang/json/terrain_from_json.py -msgid "The sidewalk section of a concrete bridge." +msgid "palisade wall" msgstr "" +#. ~ Description for palisade wall #: lang/json/terrain_from_json.py -msgid "conveyor belt" +msgid "" +"An age-old type of fortification consisting of hefty lumber staked into the " +"ground and cabled together." msgstr "" -#. ~ Description for conveyor belt #: lang/json/terrain_from_json.py -msgid "A convetor belt. Used to transport things." +msgid "palisade gate" msgstr "" +#. ~ Description for palisade gate #: lang/json/terrain_from_json.py -msgid "ting." +msgid "" +"A large doorway consisting of long logs cabled together, that could be " +"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 "light machinery" +msgid "open palisade gate" msgstr "" -#. ~ Description for light machinery +#. ~ Description for open palisade gate #: lang/json/terrain_from_json.py -msgid "Assorted light machinery. You could scavenge it for parts." +msgid "" +"A hanging palisade gate, hoisted by a nearby pulley system. Probably " +"shouldn't be underneath when it comes down." msgstr "" #: lang/json/terrain_from_json.py -msgid "heavy machinery" +msgid "half-built wall" msgstr "" -#. ~ Description for heavy machinery +#. ~ Description for half-built wall #: lang/json/terrain_from_json.py -msgid "Assorted heavy machinery. You could scavenge it for parts." +msgid "" +"An incomplete wall of refined wood, dotted with carefully placed nails to " +"provide proper support. It requires some more two by fours and nails before " +"it'd be considered a suitable wall." msgstr "" #: lang/json/terrain_from_json.py -msgid "old machinery" +msgid "wattle-and-daub wall" msgstr "" -#. ~ Description for old machinery +#. ~ Description for wattle-and-daub wall #: lang/json/terrain_from_json.py -msgid "Assorted old machinery. You could scavenge it for parts." +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and straw." msgstr "" #: lang/json/terrain_from_json.py -msgid "electronic machinery" +msgid "broken wattle-and-daub wall" msgstr "" -#. ~ Description for electronic machinery +#. ~ Description for broken wattle-and-daub wall #: lang/json/terrain_from_json.py -msgid "Assorted electronic machinery. You could scavenge it for parts." +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." msgstr "" #: lang/json/terrain_from_json.py -msgid "low stairs (beginning section)" +msgid "half-built wattle-and-daub wall" msgstr "" +#. ~ Description for half-built wattle-and-daub wall #: lang/json/terrain_from_json.py -msgid "low stairs (end section)" +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and " +"still requires the rest of the lattice and supporting wet compound to be " +"filled in." msgstr "" #: lang/json/terrain_from_json.py -msgid "milking machine" +msgid "wooden wall" msgstr "" -#. ~ Description for milking machine +#. ~ Description for wooden wall #: lang/json/terrain_from_json.py -msgid "A machine used in the dairy industry to milk cows." +msgid "" +"A finished wall of planks and support beams, capable of supporting an upper " +"level or roof. Still highly flammable." msgstr "" #: lang/json/terrain_from_json.py -msgid "bulk tank" +msgid "chipped wood wall" msgstr "" -#. ~ Description for bulk tank +#. ~ Description for chipped wood wall #: lang/json/terrain_from_json.py -msgid "A heavy, high capacity tank." +msgid "" +"A wall of aligned two by fours that's starting to crack and break open. " +"Some cut wood and a number of nails could patch this up quick." msgstr "" #: lang/json/terrain_from_json.py -msgid "painted waxed floor" +msgid "broken wood wall" msgstr "" -#. ~ Description for painted waxed floor +#. ~ Description for broken wood wall #: lang/json/terrain_from_json.py -msgid "This section of wax flooring has been painted." +msgid "" +"A number of planks are missing and the structure is beginning to sag and " +"fall apart. It's going to need quite a bit of work to repair this wall." msgstr "" #: lang/json/terrain_from_json.py -msgid "SMASH!" +msgid "wall" msgstr "" -#. ~ Description for backboard +#. ~ Description for wall #: lang/json/terrain_from_json.py -msgid "A metal backboard." +msgid "" +"The stereotypical wall with wooden support structure filled with insulation " +"and drywalled. Paint job is the all too common and neutral off-white or " +"cream color, it could use more vibrant paint. Appears as though the " +"material is still flammable." msgstr "" #: lang/json/terrain_from_json.py -msgid "root cellar" +msgid "concrete wall" msgstr "" -#. ~ Description for root cellar +#. ~ Description for concrete wall #: lang/json/terrain_from_json.py -msgid "A cellar dug into the earth for storing food in a cool environment." +msgid "" +"An aesthetically pleasing design with simple lines, this type of concrete " +"was used with a weaker chemical mixture in order to have faster setting " +"times. Not ideal for multi-story buildings, but still capable of supporting " +"a roof." msgstr "" #: lang/json/terrain_from_json.py -msgid "radiation platform" +msgid "metal wall" msgstr "" -#. ~ Description for radiation platform +#. ~ Description for metal wall #: lang/json/terrain_from_json.py msgid "" -"A dual purpose platform that serves as a containment, and as a device that " -"exposes items places on in to the radioactive source, by temporarily " -"hoisting the radioactive material stored within. Operated from external " -"console." +"An industrially fabricated thick sheet carefully positioned and joined " +"seamlessly with perimeter sealant, this wall is capable of resisting extreme " +"elements as well as hostile forces. Blast load rated and extremely fire-" +"retardant, breaching will require specialized tools or industrial vehicles." msgstr "" #: lang/json/terrain_from_json.py -msgid "grave" +msgid "glass wall" msgstr "" -#. ~ Description for grave +#. ~ Description for glass wall #: lang/json/terrain_from_json.py msgid "" -"A dirt grave, with some grass growing on it. At least some of the dead do " -"actually rest in peace." +"A barrier made of glass, it's nothing complicated, and looks extremely " +"fragile. Some contain glass break sensors or window sensors that trigger if " +"the glass is tampered." msgstr "" #: lang/json/terrain_from_json.py -msgid "thump" +msgid "reinforced glass" msgstr "" -#. ~ Description for grave +#. ~ Description for reinforced glass #: lang/json/terrain_from_json.py msgid "" -"A fresh grave, covered with stones, either to keep something from digging it " -"out or to keep one inside from digging out of it. Two planks mark this " -"place of someone's eternal rest." +"A thicker pane of glass with thin metal wires embedded throughout, " +"strengthening the structural properties. Still weaker than other types of " +"walls, and not made to support a roof either." msgstr "" #: lang/json/terrain_from_json.py -msgid "pine lean-to" +msgid "reinforced glass with closed shutters" msgstr "" -#. ~ Description for pine lean-to +#. ~ Description for reinforced glass with closed shutters #: lang/json/terrain_from_json.py msgid "" -"A small shelter roofed with pine leaves, that can be used to take refuge " -"from the elements or to protect a campfire from the rain." +"A secondary layer of protection over reinforced glass, these metal shutters " +"are typically used to ward off criminals or protect against damage from " +"extreme weather. Looks like it can only be opened from the inside. Even " +"with the installed shutters, it isn't feasible in supporting a roof." msgstr "" #: lang/json/terrain_from_json.py -msgid "tarp lean-to" +msgid "reinforced glass with open shutters" msgstr "" -#. ~ Description for tarp lean-to +#. ~ Description for reinforced glass with open shutters #: lang/json/terrain_from_json.py msgid "" -"A small shelter covered by waterproof tarp, that can be used to take refuge " -"from the elements or to protect a campfire from the rain." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "scorched earth" +"Hanging metal shutters that haven't been deployed, exposing the reinforced " +"glass. It appears as though the metal shutters can only be activated from " +"the inside." msgstr "" #: lang/json/terrain_from_json.py @@ -147006,6 +143669,17 @@ msgid "" "pattern. Yep, it's open." msgstr "" +#: lang/json/terrain_from_json.py +msgid "metal bars" +msgstr "" + +#. ~ Description for metal bars +#: lang/json/terrain_from_json.py +msgid "" +"Thick, heavy bars from the floor to the ceiling, interlaced wall to wall. " +"Not made to support roofs, but great for blocking paths." +msgstr "" + #: lang/json/terrain_from_json.py msgid "closed wood door" msgstr "" @@ -147242,6 +143916,85 @@ msgid "" "with various hardware." msgstr "" +#: lang/json/terrain_from_json.py +msgid "locked wire gate" +msgstr "" + +#. ~ Description for locked wire gate +#: lang/json/terrain_from_json.py +msgid "" +"A gate for a chain link fence. This one has a locked padlock on the latch " +"system. With the right tools, you could cut the metal fence or pick the " +"lock. You could also examine the fence to see if it looks climbable." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "closed wooden gate" +msgstr "" + +#. ~ Description for closed wooden gate +#. ~ 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 "" + +#: lang/json/terrain_from_json.py +msgid "open wooden gate" +msgstr "" + +#. ~ Description for open wooden gate +#. ~ Description for open wooden split rail gate +#: lang/json/terrain_from_json.py +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 wire gate" +msgstr "" + +#. ~ Description for closed wire gate +#: lang/json/terrain_from_json.py +msgid "A gate for a chain link fence with a latch system to stay closed." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "open wire gate" +msgstr "" + +#. ~ Description for open wire gate +#: lang/json/terrain_from_json.py +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 +msgid "closed chickenwire gate" +msgstr "" + +#. ~ Description for closed chickenwire gate +#: lang/json/terrain_from_json.py +msgid "" +"A gate for a chickenwire fence with a simple latch system to stay closed." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "rattle!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "open chickenwire gate" +msgstr "" + +#. ~ Description for open chickenwire gate +#: lang/json/terrain_from_json.py +msgid "" +"A gate for a chickenwire fence with a simple latch system to stay closed. " +"The latch is undone, so the gate has swung open." +msgstr "" + #: lang/json/terrain_from_json.py msgid "boarded up door" msgstr "" @@ -147323,19 +144076,6 @@ msgid "" "shape." msgstr "" -#: lang/json/terrain_from_json.py -msgid "metal wall" -msgstr "" - -#. ~ Description for metal wall -#: lang/json/terrain_from_json.py -msgid "" -"An industrially fabricated thick sheet carefully positioned and joined " -"seamlessly with perimeter sealant, this wall is capable of resisting extreme " -"elements as well as hostile forces. Blast load rated and extremely fire-" -"retardant, breaching will require specialized tools or industrial vehicles." -msgstr "" - #: lang/json/terrain_from_json.py msgid "open secret door" msgstr "" @@ -147442,29 +144182,6 @@ msgstr "" msgid "open frosted glass door" msgstr "" -#: lang/json/terrain_from_json.py -msgid "palisade gate" -msgstr "" - -#. ~ Description for palisade gate -#: lang/json/terrain_from_json.py -msgid "" -"A large doorway consisting of long logs cabled together, that could be " -"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" -msgstr "" - -#. ~ Description for open palisade gate -#: lang/json/terrain_from_json.py -msgid "" -"A hanging palisade gate, hoisted by a nearby pulley system. Probably " -"shouldn't be underneath when it comes down." -msgstr "" - #: lang/json/terrain_from_json.py msgid "makeshift portcullis" msgstr "" @@ -147477,683 +144194,295 @@ msgid "" msgstr "" #: lang/json/terrain_from_json.py -msgid "locked wire gate" -msgstr "" - -#. ~ Description for locked wire gate -#: lang/json/terrain_from_json.py -msgid "" -"A gate for a chain link fence. This one has a locked padlock on the latch " -"system. With the right tools, you could cut the metal fence or pick the " -"lock. You could also examine the fence to see if it looks climbable." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "closed wire gate" -msgstr "" - -#. ~ Description for closed wire gate -#: lang/json/terrain_from_json.py -msgid "A gate for a chain link fence with a latch system to stay closed." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "open wire gate" -msgstr "" - -#. ~ Description for open wire gate -#: lang/json/terrain_from_json.py -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 -msgid "closed wooden gate" -msgstr "" - -#. ~ Description for closed wooden gate -#. ~ 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 "" - -#: lang/json/terrain_from_json.py -msgid "open wooden gate" -msgstr "" - -#. ~ Description for open wooden gate -#. ~ Description for open wooden split rail gate -#: lang/json/terrain_from_json.py -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 chickenwire gate" -msgstr "" - -#. ~ Description for closed chickenwire gate -#: lang/json/terrain_from_json.py -msgid "" -"A gate for a chickenwire fence with a simple latch system to stay closed." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "rattle!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "open chickenwire gate" -msgstr "" - -#. ~ Description for open chickenwire gate -#: lang/json/terrain_from_json.py -msgid "" -"A gate for a chickenwire fence with a simple latch system to stay closed. " -"The latch is undone, so the gate has swung open." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "picket fence" -msgstr "" - -#. ~ Description for picket fence -#: lang/json/terrain_from_json.py -msgid "" -"A barrier made of wood, it's nothing complicated. Mildly suggests where not " -"to go." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "chain link fence" -msgstr "" - -#. ~ Description for chain link fence -#: lang/json/terrain_from_json.py -msgid "" -"A tall fence made of woven wires. It doesn't suggest to stop, it just stops." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "metal post" -msgstr "" - -#. ~ Description for metal post -#: lang/json/terrain_from_json.py -msgid "Set of metal posts, that can hold more serious fences." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "chickenwire fence" -msgstr "" - -#. ~ Description for chickenwire fence -#: lang/json/terrain_from_json.py -msgid "" -"A rather flimsy tall fence made of 2x4s and woven wire, suitable for " -"containing small livestock like chickens." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "metal rattling!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "chickenwire fence post" -msgstr "" - -#. ~ Description for chickenwire fence post -#. ~ Description for fence post -#: lang/json/terrain_from_json.py -msgid "" -"A couple of posts that support the fence. They look alone without the fence." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "fence post" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wire fence" -msgstr "" - -#. ~ Description for wire fence -#: lang/json/terrain_from_json.py -msgid "" -"A barrier made of wire, it's nothing complicated. Mildly suggests where not " -"to go." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "barbed wire fence" -msgstr "" - -#. ~ Description for barbed wire fence -#: lang/json/terrain_from_json.py -msgid "" -"A barrier made of sharp barbed wire. More persuasive brother of wire fence." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "rope fence" -msgstr "" - -#. ~ Description for rope fence -#: lang/json/terrain_from_json.py -msgid "" -"A barrier made of rope, it's nothing complicated. Mildly suggests where not " -"to go." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "split rail fence" -msgstr "" - -#. ~ Description for split rail fence -#: lang/json/terrain_from_json.py -msgid "" -"A rather stout fence made of 2x4s and fence posts, suitable for containing " -"livestock like horses, cows and pigs." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "closed wooden split rail gate" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "open wooden split rail gate" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wooden privacy fence" +msgid "metal compactor" msgstr "" -#. ~ Description for wooden privacy fence +#. ~ Description for metal compactor #: lang/json/terrain_from_json.py msgid "" -"A rather stout fence made of 2x4s and fence posts, it is tall and prevents " -"people from seeing into your yard." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "railing" -msgstr "" - -#. ~ Description for railing -#: lang/json/terrain_from_json.py -msgid "A section of wooden railing." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "glass railing" -msgstr "" - -#. ~ Description for glass railing -#: lang/json/terrain_from_json.py -msgid "A section of railing made out of glass." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "glass braking!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "metal railing" -msgstr "" - -#. ~ Description for metal railing -#: lang/json/terrain_from_json.py -msgid "A section of metal railing." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "concrete railing" -msgstr "" - -#. ~ Description for concrete railing -#: lang/json/terrain_from_json.py -msgid "A section of cemented concrete railing." +"A hydraulic compactor that can accept items made of various metals, and " +"press them into basic shapes, ready for further crafting." msgstr "" #: lang/json/terrain_from_json.py -msgid "guard rail" +msgid "window" msgstr "" -#. ~ Description for guard rail +#. ~ Description for window #: lang/json/terrain_from_json.py 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" +"A giant sheet of glass inserted into a window, typically found on the side " +"of shops to showcase goods." msgstr "" -#. ~ Description for dirt #: lang/json/terrain_from_json.py -msgid "" -"It's dirt. Looks like some fine soil for tillage. Could also be dug out " -"for construction projects." +msgid "taped window" msgstr "" -#. ~ Description for sand +#. ~ Description for taped window #: lang/json/terrain_from_json.py msgid "" -"A large area of fine sand that could be useful in a number of ways, if it " -"was extracted properly." +"Duct tape covers this window, blocking sunlight and visibility. You could " +"remove the duct tape by cutting it off." msgstr "" #: lang/json/terrain_from_json.py -msgid "clay" +msgid "window with curtains" msgstr "" -#. ~ Description for clay +#. ~ Description for window with curtains #: lang/json/terrain_from_json.py msgid "" -"A field full of malleable clay, suitable for kiln firing if it was extracted " -"properly." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "mound of clay" -msgstr "" - -#. ~ Description for mound of clay -#: lang/json/terrain_from_json.py -msgid "A mound of clay soil." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "splosh!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "mound of sand" -msgstr "" - -#. ~ Description for mound of sand -#: lang/json/terrain_from_json.py -msgid "A mound of sand." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "mound of dirt" +"A window with fancy curtains on the inside that can be drawn closed to block " +"visibility and shut out any light." msgstr "" -#. ~ Description for mound of dirt #: lang/json/terrain_from_json.py -msgid "" -"An area of heaped dirt, not easily traversable. If examined more closely, " -"it's quite favorable for planting seeds and the like." +msgid "window without curtains" msgstr "" -#. ~ Description for mound of dirt +#. ~ Description for window without curtains #: lang/json/terrain_from_json.py msgid "" -"A giant hill of dirt that looks like you could crawl inside for shelter." +"A smaller window typically found in residential homes. You could install a " +"curtain rod and drapes if you had the supplies and skill." msgstr "" #: lang/json/terrain_from_json.py -msgid "odd fault" +msgid "open window without curtains" msgstr "" -#. ~ Description for odd fault +#. ~ Description for open window without curtains #: lang/json/terrain_from_json.py msgid "" -"An unnaturally humanoid-shaped hole, it seems oddly familiar. There's a " -"strange sensation to examine it closer, as if it belongs to you somehow." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "rock floor" +"A smaller window typically found in residential homes. It's open and can be " +"crawled through." msgstr "" -#. ~ Description for rock floor +#. ~ Description for taped window #: lang/json/terrain_from_json.py msgid "" -"A relatively flat area of rock and stone. Looks stable enough to be mined " -"with the proper mining gear." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "pavement" +"A smaller window typically found in residential homes. This one has been " +"blocked out with duct tape. You could remove the duct tape by cutting it " +"off." msgstr "" -#. ~ Description for pavement +#. ~ Description for taped window #: lang/json/terrain_from_json.py msgid "" -"A segment of asphalt, slowly degrading from cracks, frost heaves and lack of " -"maintenance." +"A window with fancy curtains on the inside. This one has been blocked out " +"with duct tape. You could remove the duct tape by cutting it off." msgstr "" #: lang/json/terrain_from_json.py -msgid "yellow pavement" +msgid "open window with curtains" msgstr "" -#. ~ Description for yellow pavement +#. ~ Description for open window with curtains #: lang/json/terrain_from_json.py msgid "" -"Streaks of carefully aligned yellow paint mark the road to inform drivers " -"not to cross. No one is enforcing these rules anymore." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "sidewalk" +"A window with fancy curtains on the inside that can be drawn closed to block " +"visibility and shut out any light. It's open and you can crawl through." msgstr "" -#. ~ Description for sidewalk #: lang/json/terrain_from_json.py -msgid "" -"An area of common poured concrete, damaged by frost heaves and large cracks " -"due to lack of maintenance." +msgid "window with closed curtains" msgstr "" -#. ~ Description for concrete +#. ~ Description for window with closed curtains #: lang/json/terrain_from_json.py msgid "" -"A newer segment of poured concrete with surface finishes for aesthetics and " -"resistance to freeze-thaw cycles." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wooden floor" +"A window with fancy curtains that have been drawn shut, blocking sunlight " +"and visibility. The curtains can only be opened on the inside. If you " +"examined the curtains more closely, you could peek through the drapes or " +"tear down everything. Or you could just smash the window open." msgstr "" -#. ~ Description for wooden floor +#. ~ Description for taped window #: lang/json/terrain_from_json.py msgid "" -"Wooden floor created from boards, packed tightly together and nailed down. " -"Common in patios." +"Duct tape covers this window, blocking out any sunlight and visibility. You " +"could remove the duct tape by cutting it off." msgstr "" #: lang/json/terrain_from_json.py -msgid "linoleum tile" +msgid "empty window" msgstr "" -#. ~ Description for linoleum tile +#. ~ Description for empty window #: lang/json/terrain_from_json.py msgid "" -"A section of flooring made out of a tough, rubbery material. Colored a " -"simple white." -msgstr "" - -#. ~ Description for linoleum tile -#: lang/json/terrain_from_json.py -msgid "A section of flooring made out of a tough, gray, rubbery material." +"An empty window frame consisting of two by fours and nails. You could " +"install a sheet of glass, or even board it up for protection. You could " +"also convert it into a wall if you took the time to construct it." msgstr "" #: lang/json/terrain_from_json.py -msgid "concrete floor" +msgid "window frame" msgstr "" -#. ~ Description for concrete floor +#. ~ Description for window frame #: lang/json/terrain_from_json.py msgid "" -"A bare and cold concrete floor with matching roof, could still insulate from " -"the outdoors but roof collapse is possible if supporting walls are broken " -"down." +"A wooden window frame that has shattered glass around it. You'll probably " +"get hurt if you crawled through the sharp and jagged shards. You could " +"smash out the remaining pieces, or take your time and quietly clean them up." msgstr "" -#. ~ Description for concrete floor #: lang/json/terrain_from_json.py -msgid "" -"A bare and cold concrete floor with a streak of yellow paint, could still " -"insulate from the outdoors but roof collapse is possible if supporting walls " -"are broken down." +msgid "glass crunching!" msgstr "" #: lang/json/terrain_from_json.py -msgid "concrete floor, overhead light" +msgid "boarded up window" msgstr "" -#. ~ Description for concrete floor, overhead light +#. ~ Description for boarded up window #: lang/json/terrain_from_json.py 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" +"A glass window that has been covered with nailed down planks, blocking " +"sunlight and visibility. It's not much stronger, but it could be further " +"reinforced with strategically placed two by fours." msgstr "" -#. ~ Description for small rebar roof cage +#. ~ Description for boarded up window #: lang/json/terrain_from_json.py msgid "" -"A series of structural support crafted from rebar in order to allow the " -"pouring of concrete for a more stable floor and roof." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "SCRRRASH!" +"An empty window frame that has been covered with nailed down planks, " +"blocking sunlight and visibility. It's not much stronger, but it could be " +"further reinforced with strategically placed two by fours." msgstr "" #: lang/json/terrain_from_json.py -msgid "reinforced concrete floor" +msgid "reinforced boarded up window" msgstr "" -#. ~ Description for reinforced concrete floor +#. ~ Description for reinforced boarded up window #: lang/json/terrain_from_json.py msgid "" -"Extremely resilient floor made from carefully placed rebar and poured " -"concrete, capable of providing protection from the elements. As for the " -"matching roof, it still requires supporting walls, otherwise it may very " -"well cave in." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "rebar roof cage" +"A heavily fortified glass window with carefully placed planks across the " +"glass to block vision. Adding a few spikes and metal plating would further " +"increase its durability." msgstr "" -#. ~ Description for rebar roof cage +#. ~ Description for reinforced boarded up window #: lang/json/terrain_from_json.py msgid "" -"A network of architecturally sound rebar in order to support a floor and " -"roof, looks like it's missing the poured concrete." +"A heavily fortified window with carefully placed planks across the open " +"frame to block vision. Adding a few spikes and metal plating would further " +"increase its durability." msgstr "" #: lang/json/terrain_from_json.py -msgid "half-built reinforced concrete floor" +msgid "armored boarded up window" msgstr "" -#. ~ Description for half-built reinforced concrete floor +#. ~ Description for armored boarded up window #: lang/json/terrain_from_json.py msgid "" -"Unfinished series of rebar and poured concrete; the floor hasn't been " -"smoothed and the roof isn't quite filled in yet." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "metal floor" +"This once normal glass window now menaces with spikes along the edges, with " +"laboriously placed metal sheeting to further strengthen the wooden " +"reinforcements underneath." msgstr "" -#. ~ Description for metal floor +#. ~ Description for armored boarded up window #: lang/json/terrain_from_json.py msgid "" -"High-quality and tough checkered flooring to reduce risk of slips and falls, " -"with a matching roof." +"This once normal window frame now menaces with spikes along the edges, with " +"laboriously placed metal sheeting to further strengthen the wooden " +"reinforcements underneath." msgstr "" #: lang/json/terrain_from_json.py -msgid "floor" +msgid "window frame with metal bars" msgstr "" -#. ~ Description for floor +#. ~ Description for window frame with metal bars #: lang/json/terrain_from_json.py msgid "" -"Interlocking wooden tiles that are more than likely treated against fire, " -"with wooden posts and beams supporting a roof." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "primitive floor" -msgstr "" - -#. ~ Description for primitive floor -#: lang/json/terrain_from_json.py -msgid "Timber floor and supports, holding up a sod roof." +"A giant sheet of glass inserted into a window with thick security grilles, " +"making it impossible to crawl through. Typically installed for high-value " +"stores, or at least stores in bad neighborhoods." msgstr "" #: lang/json/terrain_from_json.py -msgid "simple metal floor" +msgid "window with metal bars" msgstr "" -#. ~ Description for simple metal floor +#. ~ Description for window with metal bars #: lang/json/terrain_from_json.py msgid "" -"A crudely welded together floor of metal with steel trusses and supporting " -"girders." +"A giant sheet of glass inserted into a window with thick security grilles, " +"making it impossible to crawl through. Typically installed for high-value " +"stores, or at least stores in bad neighborhoods. This one has a small " +"sticker in a corner stating, 'Protected by AtmoWeb, leading AI in " +"terminating crime'." msgstr "" #: lang/json/terrain_from_json.py -msgid "waxed floor" +msgid "high stained glass window" msgstr "" -#. ~ Description for waxed floor +#. ~ Description for high stained glass window #: lang/json/terrain_from_json.py msgid "" -"Hardwood flooring that has been treated with chemicals to improve slip " -"resistance and sliding, commonly for recreational sports." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "dirt floor" -msgstr "" - -#. ~ Description for dirt floor -#: lang/json/terrain_from_json.py -msgid "Floor consisting of finely mixed earth that has been tamped down." +"Breathtaking craftsmanship of stained glass featuring an elegant emerald " +"landscape." msgstr "" -#. ~ Description for dirt floor +#. ~ Description for high stained glass window #: lang/json/terrain_from_json.py msgid "" -"Floor consisting of finely mixed earth that has been tamped down, with " -"thatched roof above it." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "metal grate" +"Breathtaking craftsmanship of stained glass featuring an otherworldly " +"radiant ruby flower blooming." msgstr "" -#. ~ Description for metal grate +#. ~ Description for high stained glass window #: lang/json/terrain_from_json.py msgid "" -"A type of walkway that can be used as protective covering over drains or " -"even used as a filter." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "utility light" +"Breathtaking craftsmanship of stained glass featuring an alluring azure " +"oceanic abyss." msgstr "" -#. ~ Description for utility light +#. ~ Description for solid rock #: lang/json/terrain_from_json.py msgid "" -"An industrial flood light set up to illuminate the surroundings. Smashing " -"it doesn't seem like it'd produce any worthwhile salvage." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wax floor" -msgstr "" - -#. ~ Description for wax floor -#: lang/json/terrain_from_json.py -msgid "A floor section made entirely out of wax." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "elevator" -msgstr "" - -#. ~ Description for elevator -#: lang/json/terrain_from_json.py -msgid "The interior section of an elevator." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "red floor" -msgstr "" - -#. ~ Description for red floor -#: lang/json/terrain_from_json.py -msgid "A red section of flooring." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "green floor" -msgstr "" - -#. ~ Description for green floor -#: lang/json/terrain_from_json.py -msgid "A green section of flooring." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "blue floor" -msgstr "" - -#. ~ Description for blue floor -#: lang/json/terrain_from_json.py -msgid "A blue section of flooring." +"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 "industrial carpet" +msgid "smoothed rock" msgstr "" -#. ~ Description for industrial carpet +#. ~ Description for smoothed rock #: lang/json/terrain_from_json.py msgid "" -"Firm, low-pile, high-durability carpet in a neutral gray color, for laying " -"down on bare concrete." +"A block of stone that's been smoothed and shaped, commonly granite or marble " +"for funerary chapels and mausoleums." msgstr "" #: lang/json/terrain_from_json.py -msgid "bunker carpet" +msgid "odd fault" msgstr "" -#. ~ Description for bunker carpet +#. ~ Description for odd fault #: lang/json/terrain_from_json.py msgid "" -"Firm, low-pile, totally non-flammable carpet in a neutral cream color, with " -"an insulation layer beneath." -msgstr "" - -#. ~ Description for red carpet -#: lang/json/terrain_from_json.py -msgid "Soft red carpet." -msgstr "" - -#. ~ Description for yellow carpet -#: lang/json/terrain_from_json.py -msgid "Soft yellow carpet." -msgstr "" - -#. ~ Description for green carpet -#: lang/json/terrain_from_json.py -msgid "Soft green carpet." -msgstr "" - -#. ~ Description for purple carpet -#: lang/json/terrain_from_json.py -msgid "Soft purple carpet." +"An unnaturally humanoid-shaped hole, it seems oddly familiar. There's a " +"strange sensation to examine it closer, as if it belongs to you somehow." msgstr "" #: lang/json/terrain_from_json.py -msgid "junk metal floor" +msgid "paper wall" msgstr "" -#. ~ Description for junk metal floor +#. ~ Description for paper wall #: lang/json/terrain_from_json.py msgid "" -"A simple roof and floor of rusty scrap metal bolted and wire-tied to a " -"makeshift frame. Very fashionable in post-apocalyptic shantytowns. Hope " -"you like the sound of rain on corrugated metal." +"A huge wall of pulpy mass that has been salvaged from nearby buildings, " +"covered in sticky wasp saliva. Whatever structure was underneath has been " +"reformed and long gone. You could smash it down effortlessly." msgstr "" #: lang/json/terrain_from_json.py @@ -148175,27 +144504,6 @@ msgid "" "the right tools." msgstr "" -#: lang/json/terrain_from_json.py -msgid "blackjack oak" -msgstr "" - -#. ~ Description for blackjack oak -#: lang/json/terrain_from_json.py -msgid "" -"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " -"black plates split by narrow orange fissures. You could peel off the bark " -"sections if you examined the tree more closely. You could cut it down with " -"the right tools." -msgstr "" - -#. ~ Description for blackjack oak -#: lang/json/terrain_from_json.py -msgid "" -"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " -"black plates split by narrow orange fissures. All usable bark has been " -"stripped off. You could cut it down with the right tools." -msgstr "" - #: lang/json/terrain_from_json.py msgid "chestnut tree" msgstr "" @@ -148724,6 +145032,10 @@ msgid "" "could obtain edible plants, acorns, eggs, and mushrooms from it." msgstr "" +#: lang/json/terrain_from_json.py +msgid "brush." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -148913,87 +145225,218 @@ msgid "A tree stump, remnant of a tree that has been cut down." msgstr "" #: lang/json/terrain_from_json.py -msgid "woodchips" +msgid "root wall" msgstr "" -#. ~ Description for woodchips +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "wax wall" +msgstr "" + +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "wax floor" +msgstr "" + +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "picket fence" +msgstr "" + +#. ~ Description for picket fence #: lang/json/terrain_from_json.py msgid "" -"Small splinters of wood laid out in a layer to prevent unwanted plants from " -"growing." +"A barrier made of wood, it's nothing complicated. Mildly suggests where not " +"to go." msgstr "" #: lang/json/terrain_from_json.py -msgid "moss" +msgid "chain link fence" msgstr "" -#. ~ Description for moss +#. ~ Description for chain link fence #: lang/json/terrain_from_json.py -msgid "Moist spongy moss." +msgid "" +"A tall fence made of woven wires. It doesn't suggest to stop, it just stops." msgstr "" -#. ~ Description for grass +#: lang/json/terrain_from_json.py +msgid "metal post" +msgstr "" + +#. ~ Description for metal post +#: lang/json/terrain_from_json.py +msgid "Set of metal posts, that can hold more serious fences." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "chickenwire fence" +msgstr "" + +#. ~ Description for chickenwire fence #: lang/json/terrain_from_json.py msgid "" -"An area of hardy Kentucky bluegrass about ankle high. Cutting the grass " -"short enough would destroy the root system, causing this area to turn into a " -"patch of dirt." +"A rather flimsy tall fence made of 2x4s and woven wire, suitable for " +"containing small livestock like chickens." msgstr "" #: lang/json/terrain_from_json.py -msgid "white grass" +msgid "metal rattling!" msgstr "" -#. ~ Description for white grass +#: lang/json/terrain_from_json.py +msgid "chickenwire fence post" +msgstr "" + +#. ~ Description for chickenwire fence post +#. ~ Description for fence post #: lang/json/terrain_from_json.py msgid "" -"A section of Kentucky bluegrass covered in white latex-based paint, with " -"neat lines designed for recreational sports." +"A couple of posts that support the fence. They look alone without the fence." msgstr "" #: lang/json/terrain_from_json.py -msgid "long grass" +msgid "fence post" msgstr "" -#. ~ Description for long grass #: lang/json/terrain_from_json.py -msgid "Long shaggy grass about shin high." +msgid "wire fence" msgstr "" +#. ~ Description for wire fence #: lang/json/terrain_from_json.py -msgid "tall grass" +msgid "" +"A barrier made of wire, it's nothing complicated. Mildly suggests where not " +"to go." msgstr "" -#. ~ Description for tall grass #: lang/json/terrain_from_json.py -msgid "Tall grass about head high." +msgid "barbed wire fence" msgstr "" +#. ~ Description for barbed wire fence #: lang/json/terrain_from_json.py -msgid "dead grass" +msgid "" +"A barrier made of sharp barbed wire. More persuasive brother of wire fence." msgstr "" -#. ~ Description for dead grass #: lang/json/terrain_from_json.py -msgid "Long shaggy grass that hasn't been cut recently." +msgid "rope fence" msgstr "" +#. ~ Description for rope fence #: lang/json/terrain_from_json.py -msgid "golf green" +msgid "" +"A barrier made of rope, it's nothing complicated. Mildly suggests where not " +"to go." msgstr "" -#. ~ Description for golf green #: lang/json/terrain_from_json.py -msgid "Grass mowed very short and neat." +msgid "railing" msgstr "" +#. ~ Description for railing #: lang/json/terrain_from_json.py -msgid "golf hole" +msgid "A section of wooden railing." msgstr "" -#. ~ Description for golf hole #: lang/json/terrain_from_json.py -msgid "A small plastic cup embedded in the grass." +msgid "crack!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "glass railing" +msgstr "" + +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "glass braking!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "ker-rash!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "metal railing" +msgstr "" + +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "concrete railing" +msgstr "" + +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "rain gutter" +msgstr "" + +#. ~ Description for rain gutter +#: lang/json/terrain_from_json.py +msgid "Channels water from the roof towards the ground, it looks flimsy." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "clang." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "gutter drop" +msgstr "" + +#. ~ Description for gutter drop +#: lang/json/terrain_from_json.py +msgid "" +"Funnels water from gutter system towards the ground, it looks flimsy. You " +"may be able to climb down here." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "downspout" +msgstr "" + +#. ~ Description for downspout +#: lang/json/terrain_from_json.py +msgid "" +"A length of gutter running from the roof to the ground, you could place a " +"container underneath it to collect rainwater. It looks flimsy. You may be " +"able to climb down here." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "pony wall" +msgstr "" + +#. ~ Description for pony wall +#: lang/json/terrain_from_json.py +msgid "" +"A short divider wall with wooden support structure with drywall. Paint job " +"is the all too common and neutral off-white or cream color. Appears as " +"though the material is flammable." msgstr "" #: lang/json/terrain_from_json.py @@ -149187,15 +145630,6 @@ msgid "" "though monsters probably ate them." msgstr "" -#: lang/json/terrain_from_json.py -msgid "shallow pool water" -msgstr "" - -#. ~ Description for shallow pool water -#: lang/json/terrain_from_json.py -msgid "A shallow pool of water." -msgstr "" - #: lang/json/terrain_from_json.py msgid "sewage" msgstr "" @@ -149219,420 +145653,733 @@ msgid "" msgstr "" #: lang/json/terrain_from_json.py -msgid "resin wall" +msgid "sandbox" msgstr "" -#. ~ Description for resin wall +#. ~ Description for sandbox #: lang/json/terrain_from_json.py msgid "" -"This wall is made of a glistening, nearly opaque, plastic-like substance. " -"Deep within the material making it up, you can barely see a network of " -"pulsating green conduits, snaking like blood vessels through it. The " -"material is hard, warm to the touch, and slightly damp." +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." msgstr "" #: lang/json/terrain_from_json.py -msgid "boom!" +msgid "slide" msgstr "" +#. ~ Description for slide #: lang/json/terrain_from_json.py -msgid "resin cage" +msgid "A children's slide. Too small to slide on comfortably anymore." msgstr "" -#. ~ Description for resin cage #: lang/json/terrain_from_json.py -msgid "" -"This resin wall opens into a series of small honeycomb-like hexagons, " -"allowing the passage of air and light. While still made of the same sturdy " -"material, it is thinner and more delicate in appearance." +msgid "monkey bars" msgstr "" +#. ~ Description for monkey bars #: lang/json/terrain_from_json.py -msgid "resin floor" +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." msgstr "" -#. ~ Description for resin floor #: lang/json/terrain_from_json.py -msgid "" -"This nearly opaque, plastic-like floor has a gentle curve from wall to wall, " -"but in the central areas is quite flat. The material is hard, warm to the " -"touch, and slightly damp." +msgid "backboard" msgstr "" -#. ~ Description for resin floor +#. ~ Description for backboard #: lang/json/terrain_from_json.py -msgid "" -"This nearly opaque, plastic-like floor is smooth and flat. The material is " -"hard, warm to the touch, and slightly damp." +msgid "A basketball backboard." msgstr "" #: lang/json/terrain_from_json.py -msgid "resin roof" +msgid "gasoline pump" msgstr "" -#. ~ Description for resin roof +#. ~ Description for gasoline pump #: lang/json/terrain_from_json.py msgid "" -"A wide, domed section of nearly opaque, plastic-like material. When the " -"light hits it, a network of multicolored conduits like blood vessels can be " -"seen snaking through its glistening interior." +"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 "closed resin portal" +msgid "tank with gasoline" msgstr "" -#. ~ Description for closed resin portal +#. ~ Description for tank with gasoline #: lang/json/terrain_from_json.py -msgid "" -"A tricuspid hatch of some sort of damp, flexible, resinous material. This " -"one is closed tightly, but it looks like a firm push would cause it to snap " -"open." +msgid "A tank filled with gasoline." msgstr "" #: lang/json/terrain_from_json.py -msgid "open resin portal" +msgid "little column" +msgstr "" + +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." msgstr "" -#. ~ Description for open resin portal +#: lang/json/terrain_from_json.py +msgid "smashed gas pump" +msgstr "" + +#. ~ Description for smashed gas pump #: lang/json/terrain_from_json.py msgid "" -"A tricuspid hatch of some sort of damp, flexible, resinous material. This " -"one is open, the flaps held out by some sort of stringy mucus-like substance." +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." msgstr "" +#. ~ Description for diesel pump #: lang/json/terrain_from_json.py -msgid "resin-lined hole" +msgid "" +"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." msgstr "" -#. ~ Description for resin-lined hole #: lang/json/terrain_from_json.py -msgid "An open hole in the resin wall, large enough to pass through." +msgid "smashed diesel pump" msgstr "" +#. ~ Description for smashed diesel pump #: lang/json/terrain_from_json.py -msgid "gravel" +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 "" -#. ~ Description for gravel +#: lang/json/terrain_from_json.py +msgid "ATM" +msgstr "" + +#. ~ Description for ATM #: lang/json/terrain_from_json.py msgid "" -"A small mallet that a judge uses to call - er, wait. Oh, gravel! Gravel is " -"a collection of small stones often used for roads, as railroad ballast, and " -"in many other applications." +"For your banking convenience, this Automated Teller Machine is fully capable " +"of operating autonomously in the event of complete network failure. You can " +"deposit funds from cash cards and migrate all of your inflation-adjusted " +"earnings to a single card. These things have seen better days. There's been " +"a run on the bank, and this machine has the dents and cracks to prove it." msgstr "" #: lang/json/terrain_from_json.py -msgid "railroad track" +msgid "Critical failure imminent, self destruct activated. Have a nice day!" msgstr "" -#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "broken generator" +msgstr "" + +#. ~ Description for broken generator #: lang/json/terrain_from_json.py msgid "" -"Trains used to chug along on these. These rail tracks stand unused in the " -"face of the Cataclysm." +"This generator is broken and will not help you produce usable electricity." msgstr "" #: lang/json/terrain_from_json.py -msgid "railroad tie" +msgid "missile" msgstr "" -#. ~ Description for railroad tie +#. ~ Description for missile #: lang/json/terrain_from_json.py -msgid "This crosstie is used to support the rails." +msgid "" +"This is a section of an ICBM, an Intercontinental Ballistic Missile. This " +"isn't the kind of rocket that goes to the moon." msgstr "" -#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "blown-out missile" +msgstr "" + +#. ~ Description for blown-out missile #: lang/json/terrain_from_json.py msgid "" -"Trains used to chug along on these. These rail tracks stand unused in the " -"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +"This is a section of an ICBM, an Intercontiental Ballistic Missile. This " +"isn't the kind of rocket that's going anywhere." msgstr "" +#. ~ Description for radio tower #: lang/json/terrain_from_json.py -msgid "buffer stop" +msgid "This is the structure of a radio transmission tower." msgstr "" -#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "radio controls" +msgstr "" + +#. ~ Description for radio controls #: lang/json/terrain_from_json.py msgid "" -"A tiny blockade on the train tracks, meant to signify the end of a track, or " -"mark a 'no-go' zone for trains." +"This console appears to control a nearby radio transmission tower. It " +"doesn't seem to be fully operational." msgstr "" #: lang/json/terrain_from_json.py -msgid "railroad crossing signal" +msgid "broken console" msgstr "" -#. ~ Description for railroad crossing signal +#. ~ Description for broken console #: lang/json/terrain_from_json.py msgid "" -"Traffic lights meant to light and make noise when a train approaches, to " -"prevent people from turning into meaty mush while they cross the tracks. " -"Won't stop people from turning into meaty mush by other means, though." +"This is a standalone computer terminal. It doesn't seem to be working. " +"It's the broken screen and shattered circuit boards that's telling you that." msgstr "" #: lang/json/terrain_from_json.py -msgid "clang." +msgid "computer console" msgstr "" +#. ~ Description for computer console #: lang/json/terrain_from_json.py -msgid "crossbuck" +msgid "" +"This is a standalone computer terminal. It can be used to view contents and " +"perform any allowed functions. It might even be possible to hack it, given " +"the skills." msgstr "" -#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "mechanical winch" +msgstr "" + +#. ~ Description for mechanical winch #: lang/json/terrain_from_json.py msgid "" -"A traffic sign intended to indicate a level railway crossing. If the trains " -"were still running." +"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 open air +#. ~ Description for mechanical winch +#. ~ Description for control lever #: lang/json/terrain_from_json.py -msgid "This is open air." +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 -msgid "rain gutter" +msgid "control lever" msgstr "" -#. ~ Description for rain gutter #: lang/json/terrain_from_json.py -msgid "Channels water from the roof towards the ground, it looks flimsy." +msgid "rope and pulley" msgstr "" +#. ~ Description for rope and pulley #: lang/json/terrain_from_json.py -msgid "gutter drop" +msgid "A system of ropes and pulleys that allows to pull up heavy doors." msgstr "" -#. ~ Description for gutter drop +#. ~ Description for rope and pulley #: lang/json/terrain_from_json.py msgid "" -"Funnels water from gutter system towards the ground, it looks flimsy. You " -"may be able to climb down here." +"A system of ropes and pulleys that allows to pull up heavy doors or gates." msgstr "" #: lang/json/terrain_from_json.py -msgid "downspout" +msgid "high gauge pipe" msgstr "" -#. ~ Description for downspout +#. ~ Description for high gauge pipe +#: lang/json/terrain_from_json.py +msgid "This is a section of high gauge pipe." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "high gauge pump" +msgstr "" + +#. ~ Description for high gauge pump #: lang/json/terrain_from_json.py msgid "" -"A length of gutter running from the roof to the ground, you could place a " -"container underneath it to collect rainwater. It looks flimsy. You may be " -"able to climb down here." +"This unpowered pump previously would have moved fluids around in a hurry." msgstr "" #: lang/json/terrain_from_json.py -msgid "flat roof" +msgid "centrifuge" msgstr "" -#. ~ Description for flat roof +#. ~ Description for centrifuge #: lang/json/terrain_from_json.py -msgid "A flat, gray section of rooftop." +msgid "" +"This is a centrifuge, a liquid separating device with an automated analyzer " +"unit. It could be used to analyze a medical fluid sample, such as blood, if " +"a test tube was placed in it." msgstr "" #: lang/json/terrain_from_json.py -msgid "tar paper flat roof" +msgid "CVD machine" msgstr "" -#. ~ Description for tar paper flat roof +#. ~ Description for CVD machine #: lang/json/terrain_from_json.py -msgid "A flat, gray section of rooftop covered with tar paper." +msgid "" +"The bulk of a highly technical-looking apparatus controlled by a nearby " +"console." msgstr "" #: lang/json/terrain_from_json.py -msgid "shingle flat roof" +msgid "CVD control panel" msgstr "" -#. ~ Description for shingle flat roof +#. ~ Description for CVD control panel #: lang/json/terrain_from_json.py -msgid "A flat section of rooftop covered in shingles." +msgid "" +"This is a VERY expensive-looking apparatus that's labeled 'Chemical Vapor " +"Deposition Machine'. With the input of certain exceptionally rare chemicals " +"and elements, one could conceievably coat one's weapon with diamond. While " +"the process is extremely complicated, a previous user has helpfully " +"sketched: Hydrogen + charcoal = smiley face." msgstr "" #: lang/json/terrain_from_json.py -msgid "thatched roof" +msgid "nanofabricator" msgstr "" -#. ~ Description for thatched roof +#. ~ Description for nanofabricator #: lang/json/terrain_from_json.py -msgid "A section of roof made out of straw." +msgid "" +"A great column of advanced machinery. Within this self-contained, " +"miniaturized factory, several 3d printers work in tandem with a robotic " +"assembler to manufacture nearly any inorganic object." msgstr "" #: lang/json/terrain_from_json.py -msgid "metal flat roof" +msgid "nanofabricator control panel" msgstr "" -#. ~ Description for metal flat roof +#. ~ Description for nanofabricator control panel #: lang/json/terrain_from_json.py -msgid "A secton of flat, sheet metal rooftop." +msgid "" +"A small computer panel attached to a nanofabricator. It has a single slot " +"for reading templates." msgstr "" #: lang/json/terrain_from_json.py -msgid "tile flat roof" +msgid "half-built column" msgstr "" -#. ~ Description for tile flat roof +#. ~ Description for half-built column #: lang/json/terrain_from_json.py -msgid "A section of tiled, flat rooftop." +msgid "" +"An empty wooden frame in the shape of a column, built around a concrete and " +"rebar foundation. It isn't capable of supporting roofs or shelter, and " +"appears to need more resources before being considered complete." msgstr "" #: lang/json/terrain_from_json.py -msgid "skylight" +msgid "column" msgstr "" -#. ~ Description for skylight +#. ~ Description for column #: lang/json/terrain_from_json.py -msgid "A giant sheet of glass inserted into the roof, lets light pass through." +msgid "A concrete column." msgstr "" #: lang/json/terrain_from_json.py -msgid "empty space" +msgid "cloning vat" msgstr "" -#. ~ Description for empty space +#. ~ Description for cloning vat #: lang/json/terrain_from_json.py -msgid "This is empty space." +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." msgstr "" #: lang/json/terrain_from_json.py -msgid "shallow pit" +msgid "plunk." msgstr "" -#. ~ Description for shallow pit +#: lang/json/terrain_from_json.py +msgid "wooden stairs" +msgstr "" + +#. ~ Description for wooden stairs +#: lang/json/terrain_from_json.py +msgid "A wooden staircase leading down." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "half-built wooden stairs" +msgstr "" + +#. ~ Description for half-built wooden stairs #: lang/json/terrain_from_json.py msgid "" -"A pit that could be dug even deeper or filled up. Also useful as a starting " -"foundation for some constructions." +"Half of a wooden staircase. Some work still needs to be done before this " +"staircase is complete." msgstr "" -#: lang/json/terrain_from_json.py lang/json/trap_from_json.py -msgid "pit" +#: lang/json/terrain_from_json.py +msgid "broken wooden stairs" msgstr "" -#. ~ Description for pit +#. ~ Description for broken wooden stairs #: lang/json/terrain_from_json.py msgid "" -"A steep hole that could seriously injure something if it fell in, " -"potentially fatal if it was filled with sharp and dangerous things. Deep " -"enough for more advanced construction projects, and possibly to reach " -"groundwater if constructed properly." +"A number of planks are missing and the structure is beginning to sag and " +"fall apart. It's going to need quite a bit of work to repair this staircase." msgstr "" +#. ~ Description for wooden stairs #: lang/json/terrain_from_json.py -msgid "corpse filled pit" +msgid "A wooden staircase leading up" msgstr "" -#. ~ Description for corpse filled pit +#: lang/json/terrain_from_json.py +msgid "stairs" +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#. ~ Description for low stairs (beginning section) +#. ~ Description for low stairs (end section) +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "manhole" +msgstr "" + +#. ~ Description for manhole #: lang/json/terrain_from_json.py msgid "" -"A giant trench full of corpses, maybe even a mass graveyard. The bodies " -"could be dug out but none of it looks remotely usable." +"This is a manhole. The heavy iron cover lies over an entrance to the " +"underworld of hidden tunnels beneath the streets where sewage and rain water " +"frolic freely." msgstr "" #: lang/json/terrain_from_json.py -msgid "covered pit" +msgid "ladder" +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "downward slope" +msgstr "" + +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." msgstr "" -#. ~ Description for covered pit +#: lang/json/terrain_from_json.py +msgid "upward slope" +msgstr "" + +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "rope leading up" +msgstr "" + +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom #: lang/json/terrain_from_json.py msgid "" -"A deep pit with a two by four placed across it, looks sturdy enough to cross " -"safely or the plank could be removed to turn it back into trap fall." +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." msgstr "" -#: lang/json/terrain_from_json.py lang/json/trap_from_json.py -msgid "spiked pit" +#: lang/json/terrain_from_json.py +msgid "card reader" msgstr "" -#. ~ Description for spiked pit +#. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" -"A narrow trench full of very pointy things that would easily puncture a body." +"This is a smartcard reader. It sports the stylized symbol of an atom inside " +"a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." msgstr "" +#. ~ Description for card reader #: lang/json/terrain_from_json.py -msgid "covered spiked pit" +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside " +"a flask that is universally known to indicate SCIENCE. The stark red LED " +"blinks askance at your geek cred. You could swipe a scientific ID badge " +"near it to unlock the gates to discovery." msgstr "" -#. ~ Description for covered spiked pit +#. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" -"Menacing with sharp spears along the bottom, this pit has a plank across it " -"to allow someone or something to cross safely. The two by four could be " -"removed to revert it back into a trap." +"This is a smartcard reader. The universal symbol of an eagle driving a " +"tank, biting a grenade pin stands rampant in front of an American flag. A " +"small, red LED remains constant, as if watching you, waiting. You could " +"swipe a military ID card in front of the reader if you dared." msgstr "" -#: lang/json/terrain_from_json.py lang/json/trap_from_json.py -msgid "glass pit" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. The symbol of a gear in front of a bulging " +"bicep is emblazoned on the matte black surface with an illegible heavy " +"industrial company title. A red LED blinks on the card reader. Perhaps an " +"industrial ID card could still open it." msgstr "" -#. ~ Description for glass pit +#. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" -"Looks like a ton of broken glass was dumped into this pit, maybe not fatal " -"to fall in but wouldn't be pleasant to try to crawl out." +"This looks like the console controling the security door, there's a pretty " +"big reading surface on it. You can see \"Fp\" soberly printed above the " +"reader. You have no idea what could open it." msgstr "" #: lang/json/terrain_from_json.py -msgid "covered glass pit" +msgid "broken card reader" msgstr "" -#. ~ Description for covered glass pit +#. ~ Description for broken card reader #: lang/json/terrain_from_json.py msgid "" -"A two by four has been placed carefully to allow traversal over this ditch " -"full of large glass shards. The wooden board could be removed so it " -"couldn't be safely crossed." +"This is a smartcard reader, but it doesn't seem to be functioning. Probably " +"because there's no more blinking red LED." msgstr "" #: lang/json/terrain_from_json.py -msgid "slime" +msgid "slot machine" msgstr "" -#. ~ Description for slime +#. ~ Description for slot machine #: lang/json/terrain_from_json.py msgid "" -"A disgusting and slippery mess that could be used to stash things because " -"who'd want to touch it?" +"A machine with a bright screen flashing hypnotic promises of wealth. If " +"gambling with your life on a daily basis isn't enough for you, you can also " +"gamble with this." msgstr "" #: lang/json/terrain_from_json.py -msgid "wall" +msgid "elevator controls" msgstr "" -#. ~ Description for wall +#. ~ Description for elevator controls #: lang/json/terrain_from_json.py msgid "" -"The stereotypical wall with wooden support structure filled with insulation " -"and drywalled. Paint job is the all too common and neutral off-white or " -"cream color, it could use more vibrant paint. Appears as though the " -"material is still flammable." +"This is the control face for an elevator. You could press the appropriate " +"button to take you to your choice of floor." msgstr "" #: lang/json/terrain_from_json.py -msgid "half-built wall" +msgid "powerless controls" +msgstr "" + +#. ~ Description for powerless controls +#: lang/json/terrain_from_json.py +msgid "This is the control face for an elevator. It's currently unpowered." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "elevator" +msgstr "" + +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." msgstr "" -#. ~ Description for half-built wall +#: lang/json/terrain_from_json.py +msgid "dark pedestal" +msgstr "" + +#. ~ Description for dark pedestal #: lang/json/terrain_from_json.py msgid "" -"An incomplete wall of refined wood, dotted with carefully placed nails to " -"provide proper support. It requires some more two by fours and nails before " -"it'd be considered a suitable wall." +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." msgstr "" #: lang/json/terrain_from_json.py -msgid "pony wall" +msgid "light pedestal" +msgstr "" + +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "red stone" +msgstr "" + +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." msgstr "" -#. ~ Description for pony wall +#: lang/json/terrain_from_json.py +msgid "green stone" +msgstr "" + +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "blue stone" +msgstr "" + +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "red floor" +msgstr "" + +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "green floor" +msgstr "" + +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "blue floor" +msgstr "" + +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "yellow switch" +msgstr "" + +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "cyan switch" +msgstr "" + +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "purple switch" +msgstr "" + +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "checkered switch" +msgstr "" + +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "industrial carpet" +msgstr "" + +#. ~ Description for industrial carpet #: lang/json/terrain_from_json.py msgid "" -"A short divider wall with wooden support structure with drywall. Paint job " -"is the all too common and neutral off-white or cream color. Appears as " -"though the material is flammable." +"Firm, low-pile, high-durability carpet in a neutral gray color, for laying " +"down on bare concrete." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "bunker carpet" +msgstr "" + +#. ~ Description for bunker carpet +#: lang/json/terrain_from_json.py +msgid "" +"Firm, low-pile, totally non-flammable carpet in a neutral cream color, with " +"an insulation layer beneath." +msgstr "" + +#. ~ Description for red carpet +#: lang/json/terrain_from_json.py +msgid "Soft red carpet." +msgstr "" + +#. ~ Description for yellow carpet +#: lang/json/terrain_from_json.py +msgid "Soft yellow carpet." +msgstr "" + +#. ~ Description for green carpet +#: lang/json/terrain_from_json.py +msgid "Soft green carpet." +msgstr "" + +#. ~ Description for purple carpet +#: lang/json/terrain_from_json.py +msgid "Soft purple carpet." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "linoleum tile" +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Colored a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." msgstr "" #: lang/json/terrain_from_json.py @@ -149699,60 +146446,661 @@ msgid "Wall painted purple." msgstr "" #: lang/json/terrain_from_json.py -msgid "half-built brick wall" +msgid "stone wall" msgstr "" -#. ~ Description for half-built brick wall +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "half-built stone wall" +msgstr "" + +#. ~ Description for half-built stone wall #: lang/json/terrain_from_json.py msgid "" -"Half of a brick wall, looks like it still requires some more resources and " -"effort before being considered a real wall." +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." msgstr "" #: lang/json/terrain_from_json.py -msgid "bash!" +msgid "covered well" msgstr "" +#. ~ Description for covered well #: lang/json/terrain_from_json.py -msgid "brick wall" +msgid "" +"Deep well collecting ground water. Requires a method to draw water from." msgstr "" -#. ~ Description for brick wall +#. ~ Description for water pump #: lang/json/terrain_from_json.py msgid "" -"A solid brick wall, sturdy enough to support a roof with enough walls and " -"keep out any unwanted visitors." +"Deep well collecting ground water. Installed water pump allows to draw " +"water from it." msgstr "" #: lang/json/terrain_from_json.py -msgid "stone wall" +msgid "water dispenser" msgstr "" -#. ~ Description for stone wall +#. ~ Description for water dispenser #: lang/json/terrain_from_json.py -msgid "A sturdy stone wall." +msgid "A machine with several taps that dispenses clean water." msgstr "" #: lang/json/terrain_from_json.py -msgid "half-built stone wall" +msgid "improvised shelter" msgstr "" -#. ~ Description for half-built stone wall +#. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Half of a sturdy stone wall. Some work still needs to be done before this " -"stone wall is complete." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" #: lang/json/terrain_from_json.py -msgid "smoothed rock" +msgid "flat roof" msgstr "" -#. ~ Description for smoothed rock +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "tar paper flat roof" +msgstr "" + +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "shingle flat roof" +msgstr "" + +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "thatched roof" +msgstr "" + +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "metal flat roof" +msgstr "" + +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "tile flat roof" +msgstr "" + +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "skylight" +msgstr "" + +#. ~ Description for skylight +#: lang/json/terrain_from_json.py +msgid "A giant sheet of glass inserted into the roof, lets light pass through." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "plutonium generator" +msgstr "" + +#. ~ Description for plutonium generator #: lang/json/terrain_from_json.py msgid "" -"A block of stone that's been smoothed and shaped, commonly granite or marble " -"for funerary chapels and mausoleums." +"This imposing apparatus harnesses the power of the atom. Refined nuclear " +"fuel is 'burned' to provide nearly limitless electrical power. It's not " +"doing much good here though. Perhaps it could be salvaged for other " +"purposes." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "telecom cabinet" +msgstr "" + +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "damaged telecom cabinet" +msgstr "" + +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "large metal support" +msgstr "" + +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "small metal support" +msgstr "" + +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "HV oil circuit breaker" +msgstr "" + +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "pow!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "small HV oil circuit breaker" +msgstr "" + +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "large switchgear" +msgstr "" + +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "small switchgear" +msgstr "" + +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "lightning arrester" +msgstr "" + +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "disconnect switch" +msgstr "" + +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "current transformer" +msgstr "" + +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "potential transformer" +msgstr "" + +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + +#. ~ Description for dock +#. ~ Description for shallow bridge +#: lang/json/terrain_from_json.py +msgid "A wooden platform held by a support made of logs dug into the ground." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "shallow bridge" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "pontoon bridge" +msgstr "" + +#. ~ Description for pontoon bridge +#. ~ Description for river bridge +#: lang/json/terrain_from_json.py +msgid "" +"A floating temporary bridge, like the ones army used to make to cross rivers." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "river bridge" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "bridge pavement" +msgstr "" + +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "concrete cracking and metal screeching!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "bridge yellow pavement" +msgstr "" + +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "bridge sidewalk" +msgstr "" + +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "guard rail" +msgstr "" + +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +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 "blackjack oak" +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "mound of clay" +msgstr "" + +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "splosh!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "mound of sand" +msgstr "" + +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "conveyor belt" +msgstr "" + +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "ting." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "light machinery" +msgstr "" + +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "heavy machinery" +msgstr "" + +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "old machinery" +msgstr "" + +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "electronic machinery" +msgstr "" + +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "low stairs (beginning section)" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "low stairs (end section)" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "milking machine" +msgstr "" + +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "bulk tank" +msgstr "" + +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "gravel" +msgstr "" + +#. ~ Description for gravel +#: lang/json/terrain_from_json.py +msgid "" +"A small mallet that a judge uses to call - er, wait. Oh, gravel! Gravel is " +"a collection of small stones often used for roads, as railroad ballast, and " +"in many other applications." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "railroad track" +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "railroad tie" +msgstr "" + +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "painted waxed floor" +msgstr "" + +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "buffer stop" +msgstr "" + +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or " +"mark a 'no-go' zone for trains." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "railroad crossing signal" +msgstr "" + +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "crossbuck" +msgstr "" + +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains " +"were still running." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "root cellar" +msgstr "" + +#. ~ Description for root cellar +#: lang/json/terrain_from_json.py +msgid "A cellar dug into the earth for storing food in a cool environment." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "junk metal barrier" +msgstr "" + +#. ~ Description for junk metal barrier +#: lang/json/terrain_from_json.py +msgid "" +"A simple wall of rusty scrap metal bolted and wire-tied to a makeshift " +"frame. Very fashionable in post-apocalyptic shantytowns. This one isn't " +"quite strong enough to support a roof, but could be reinforced." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "junk metal wall" +msgstr "" + +#. ~ Description for junk metal wall +#: lang/json/terrain_from_json.py +msgid "" +"A wall of rusty scrap metal bolted and wire-tied to a sturdy frame. Very " +"fashionable in post-apocalyptic shantytowns. Can support a roof." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "junk metal floor" +msgstr "" + +#. ~ Description for junk metal floor +#: lang/json/terrain_from_json.py +msgid "" +"A simple roof and floor of rusty scrap metal bolted and wire-tied to a " +"makeshift frame. Very fashionable in post-apocalyptic shantytowns. Hope " +"you like the sound of rain on corrugated metal." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "radiation platform" +msgstr "" + +#. ~ Description for radiation platform +#: lang/json/terrain_from_json.py +msgid "" +"A dual purpose platform that serves as a containment, and as a device that " +"exposes items places on in to the radioactive source, by temporarily " +"hoisting the radioactive material stored within. Operated from external " +"console." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "grave" +msgstr "" + +#. ~ Description for grave +#: lang/json/terrain_from_json.py +msgid "" +"A dirt grave, with some grass growing on it. At least some of the dead do " +"actually rest in peace." +msgstr "" + +#. ~ Description for grave +#: lang/json/terrain_from_json.py +msgid "" +"A fresh grave, covered with stones, either to keep something from digging it " +"out or to keep one inside from digging out of it. Two planks mark this " +"place of someone's eternal rest." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "rammed earth wall" +msgstr "" + +#. ~ Description for rammed earth wall +#: lang/json/terrain_from_json.py +msgid "" +"A solid wall of compressed dirt, sturdy enough to support a roof with enough " +"walls and keep out some unwanted visitors." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "heavy rumbling!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "split rail fence" +msgstr "" + +#. ~ Description for split rail fence +#: lang/json/terrain_from_json.py +msgid "" +"A rather stout fence made of 2x4s and fence posts, suitable for containing " +"livestock like horses, cows and pigs." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "closed wooden split rail gate" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "open wooden split rail gate" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "wooden privacy fence" +msgstr "" + +#. ~ Description for wooden privacy fence +#: lang/json/terrain_from_json.py +msgid "" +"A rather stout fence made of 2x4s and fence posts, it is tall and prevents " +"people from seeing into your yard." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "shallow pool water" +msgstr "" + +#. ~ Description for shallow pool water +#: lang/json/terrain_from_json.py +msgid "A shallow pool of water." msgstr "" #: lang/json/terrain_from_json.py @@ -149778,625 +147126,121 @@ msgid "" msgstr "" #: lang/json/terrain_from_json.py -msgid "concrete wall" -msgstr "" - -#. ~ Description for concrete wall -#: lang/json/terrain_from_json.py -msgid "" -"An aesthetically pleasing design with simple lines, this type of concrete " -"was used with a weaker chemical mixture in order to have faster setting " -"times. Not ideal for multi-story buildings, but still capable of supporting " -"a roof." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "simple concrete wall" -msgstr "" - -#. ~ Description for simple concrete wall -#: lang/json/terrain_from_json.py -msgid "" -"A durable and uniform concrete wall, quite drab without decoration. More " -"than capable of supporting a roof, as well as keeping out most anything, " -"save for vehicles." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "half-built simple concrete wall" -msgstr "" - -#. ~ Description for half-built simple concrete wall -#: lang/json/terrain_from_json.py -msgid "" -"A partially poured concrete wall that could probably keep anything behind it " -"quite safe if it were finished." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "reinforced concrete wall" -msgstr "" - -#. ~ Description for reinforced concrete wall -#: lang/json/terrain_from_json.py -msgid "" -"An extremely resilient wall, filled with concrete and rebar. Best suited " -"for supporting multi-level buildings, only serious explosives and high-speed " -"impacts would be capable of damaging this wall." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "scrrrash!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "half-built reinforced concrete wall" -msgstr "" - -#. ~ Description for half-built reinforced concrete wall -#: lang/json/terrain_from_json.py -msgid "" -"Poured concrete with methodically placed rebar sticking out, which isn't " -"practical for supporting roofs or shelter. It appears to need more " -"resources before being considered complete." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "rebar cage" -msgstr "" - -#. ~ Description for rebar cage -#: lang/json/terrain_from_json.py -msgid "" -"A structural support system made of rebar that appears to be the early " -"stages of a reinforced concrete wall, just missing the poured concrete." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "simple metal wall" -msgstr "" - -#. ~ Description for simple metal wall -#: lang/json/terrain_from_json.py -msgid "" -"A relatively simple wall made of scraped together metal. It's still capable " -"of blocking intruders and supporting a roof with adjacent walls." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "half-built simple metal wall" -msgstr "" - -#. ~ Description for half-built simple metal wall -#: lang/json/terrain_from_json.py -msgid "" -"A partially built makeshift wall of metal that could potentially support a " -"roof if it were completed." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wooden wall" -msgstr "" - -#. ~ Description for wooden wall -#: lang/json/terrain_from_json.py -msgid "" -"A finished wall of planks and support beams, capable of supporting an upper " -"level or roof. Still highly flammable." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "chipped wood wall" -msgstr "" - -#. ~ Description for chipped wood wall -#: lang/json/terrain_from_json.py -msgid "" -"A wall of aligned two by fours that's starting to crack and break open. " -"Some cut wood and a number of nails could patch this up quick." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "broken wood wall" -msgstr "" - -#. ~ Description for broken wood wall -#: lang/json/terrain_from_json.py -msgid "" -"A number of planks are missing and the structure is beginning to sag and " -"fall apart. It's going to need quite a bit of work to repair this wall." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "half-built log wall" -msgstr "" - -#. ~ Description for half-built log wall -#: lang/json/terrain_from_json.py -msgid "" -"A half-constructed wall of notched logs that interlock to provide " -"stability. Needs a few more logs to hold up a roof. Looks flammable." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "log wall" -msgstr "" - -#. ~ Description for log wall -#: lang/json/terrain_from_json.py -msgid "" -"A tall wall of timber suitable for housing and insulating from the weather. " -"Quite flammable." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "chipped log wall" -msgstr "" - -#. ~ Description for chipped log wall -#: lang/json/terrain_from_json.py -msgid "" -"A moderately damaged wall, could probably be patched up with some planks and " -"nails." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "broken log wall" -msgstr "" - -#. ~ Description for broken log wall -#: lang/json/terrain_from_json.py -msgid "" -"A destroyed wood wall, with only a supporting log left, ready to collapse. " -"Looks repairable if the damage was replaced and patched together with nails " -"and planks." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "palisade wall" -msgstr "" - -#. ~ Description for palisade wall -#: lang/json/terrain_from_json.py -msgid "" -"An age-old type of fortification consisting of hefty lumber staked into the " -"ground and cabled together." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wattle-and-daub wall" -msgstr "" - -#. ~ Description for wattle-and-daub wall -#: lang/json/terrain_from_json.py -msgid "" -"A relatively primitive wall made by daubing together a lattice of wooden " -"strips using some combination of wet soil, clay, sand, animal dung and straw." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "broken wattle-and-daub wall" -msgstr "" - -#. ~ Description for broken wattle-and-daub wall -#: lang/json/terrain_from_json.py -msgid "" -"This wattle-and-daub wall section has been destroyed, leaving mostly just " -"frame, and is barely held together." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "half-built wattle-and-daub wall" -msgstr "" - -#. ~ Description for half-built wattle-and-daub wall -#: lang/json/terrain_from_json.py -msgid "" -"This wattle-and-daub wall has some of the wooden strip lattice in place, and " -"still requires the rest of the lattice and supporting wet compound to be " -"filled in." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "junk metal wall" -msgstr "" - -#. ~ Description for junk metal wall -#: lang/json/terrain_from_json.py -msgid "" -"A wall of rusty scrap metal bolted and wire-tied to a sturdy frame. Very " -"fashionable in post-apocalyptic shantytowns. Can support a roof." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "rammed earth wall" -msgstr "" - -#. ~ Description for rammed earth wall -#: lang/json/terrain_from_json.py -msgid "" -"A solid wall of compressed dirt, sturdy enough to support a roof with enough " -"walls and keep out some unwanted visitors." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "heavy rumbling!" -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "junk metal barrier" -msgstr "" - -#. ~ Description for junk metal barrier -#: lang/json/terrain_from_json.py -msgid "" -"A simple wall of rusty scrap metal bolted and wire-tied to a makeshift " -"frame. Very fashionable in post-apocalyptic shantytowns. This one isn't " -"quite strong enough to support a roof, but could be reinforced." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "glass wall" -msgstr "" - -#. ~ Description for glass wall -#: lang/json/terrain_from_json.py -msgid "" -"A barrier made of glass, it's nothing complicated, and looks extremely " -"fragile. Some contain glass break sensors or window sensors that trigger if " -"the glass is tampered." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "reinforced glass" -msgstr "" - -#. ~ Description for reinforced glass -#: lang/json/terrain_from_json.py -msgid "" -"A thicker pane of glass with thin metal wires embedded throughout, " -"strengthening the structural properties. Still weaker than other types of " -"walls, and not made to support a roof either." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "reinforced glass with closed shutters" -msgstr "" - -#. ~ Description for reinforced glass with closed shutters -#: lang/json/terrain_from_json.py -msgid "" -"A secondary layer of protection over reinforced glass, these metal shutters " -"are typically used to ward off criminals or protect against damage from " -"extreme weather. Looks like it can only be opened from the inside. Even " -"with the installed shutters, it isn't feasible in supporting a roof." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "reinforced glass with open shutters" -msgstr "" - -#. ~ Description for reinforced glass with open shutters -#: lang/json/terrain_from_json.py -msgid "" -"Hanging metal shutters that haven't been deployed, exposing the reinforced " -"glass. It appears as though the metal shutters can only be activated from " -"the inside." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "metal bars" -msgstr "" - -#. ~ Description for metal bars -#: lang/json/terrain_from_json.py -msgid "" -"Thick, heavy bars from the floor to the ceiling, interlaced wall to wall. " -"Not made to support roofs, but great for blocking paths." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "paper wall" -msgstr "" - -#. ~ Description for paper wall -#: lang/json/terrain_from_json.py -msgid "" -"A huge wall of pulpy mass that has been salvaged from nearby buildings, " -"covered in sticky wasp saliva. Whatever structure was underneath has been " -"reformed and long gone. You could smash it down effortlessly." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "root wall" -msgstr "" - -#. ~ Description for root wall -#: lang/json/terrain_from_json.py -msgid "A dirt wall covered with roots." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "wax wall" -msgstr "" - -#. ~ Description for wax wall -#: lang/json/terrain_from_json.py -msgid "A wall made entirely out of wax." -msgstr "" - -#. ~ Description for solid rock -#: lang/json/terrain_from_json.py -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" -msgstr "" - -#. ~ Description for red stone -#: lang/json/terrain_from_json.py -msgid "A red stone." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "green stone" -msgstr "" - -#. ~ Description for green stone -#: lang/json/terrain_from_json.py -msgid "A green stone." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "blue stone" -msgstr "" - -#. ~ Description for blue stone -#: lang/json/terrain_from_json.py -msgid "A blue stone." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "window" -msgstr "" - -#. ~ Description for window -#: lang/json/terrain_from_json.py -msgid "" -"A giant sheet of glass inserted into a window, typically found on the side " -"of shops to showcase goods." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "taped window" -msgstr "" - -#. ~ Description for taped window -#: lang/json/terrain_from_json.py -msgid "" -"Duct tape covers this window, blocking sunlight and visibility. You could " -"remove the duct tape by cutting it off." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "window with curtains" -msgstr "" - -#. ~ Description for window with curtains -#: lang/json/terrain_from_json.py -msgid "" -"A window with fancy curtains on the inside that can be drawn closed to block " -"visibility and shut out any light." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "window without curtains" -msgstr "" - -#. ~ Description for window without curtains -#: lang/json/terrain_from_json.py -msgid "" -"A smaller window typically found in residential homes. You could install a " -"curtain rod and drapes if you had the supplies and skill." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "open window without curtains" -msgstr "" - -#. ~ Description for open window without curtains -#: lang/json/terrain_from_json.py -msgid "" -"A smaller window typically found in residential homes. It's open and can be " -"crawled through." -msgstr "" - -#. ~ Description for taped window -#: lang/json/terrain_from_json.py -msgid "" -"A smaller window typically found in residential homes. This one has been " -"blocked out with duct tape. You could remove the duct tape by cutting it " -"off." -msgstr "" - -#. ~ Description for taped window -#: lang/json/terrain_from_json.py -msgid "" -"A window with fancy curtains on the inside. This one has been blocked out " -"with duct tape. You could remove the duct tape by cutting it off." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "open window with curtains" -msgstr "" - -#. ~ Description for open window with curtains -#: lang/json/terrain_from_json.py -msgid "" -"A window with fancy curtains on the inside that can be drawn closed to block " -"visibility and shut out any light. It's open and you can crawl through." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "window with closed curtains" -msgstr "" - -#. ~ Description for window with closed curtains -#: lang/json/terrain_from_json.py -msgid "" -"A window with fancy curtains that have been drawn shut, blocking sunlight " -"and visibility. The curtains can only be opened on the inside. If you " -"examined the curtains more closely, you could peek through the drapes or " -"tear down everything. Or you could just smash the window open." +msgid "pine lean-to" msgstr "" -#. ~ Description for taped window +#. ~ Description for pine lean-to #: lang/json/terrain_from_json.py msgid "" -"Duct tape covers this window, blocking out any sunlight and visibility. You " -"could remove the duct tape by cutting it off." +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." msgstr "" #: lang/json/terrain_from_json.py -msgid "empty window" +msgid "tarp lean-to" msgstr "" -#. ~ Description for empty window +#. ~ Description for tarp lean-to #: lang/json/terrain_from_json.py msgid "" -"An empty window frame consisting of two by fours and nails. You could " -"install a sheet of glass, or even board it up for protection. You could " -"also convert it into a wall if you took the time to construct it." +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." msgstr "" #: lang/json/terrain_from_json.py -msgid "window frame" +msgid "resin wall" msgstr "" -#. ~ Description for window frame +#. ~ Description for resin wall #: lang/json/terrain_from_json.py msgid "" -"A wooden window frame that has shattered glass around it. You'll probably " -"get hurt if you crawled through the sharp and jagged shards. You could " -"smash out the remaining pieces, or take your time and quietly clean them up." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "glass crunching!" +"This wall is made of a glistening, nearly opaque, plastic-like substance. " +"Deep within the material making it up, you can barely see a network of " +"pulsating green conduits, snaking like blood vessels through it. The " +"material is hard, warm to the touch, and slightly damp." msgstr "" #: lang/json/terrain_from_json.py -msgid "boarded up window" +msgid "boom!" msgstr "" -#. ~ Description for boarded up window #: lang/json/terrain_from_json.py -msgid "" -"A glass window that has been covered with nailed down planks, blocking " -"sunlight and visibility. It's not much stronger, but it could be further " -"reinforced with strategically placed two by fours." +msgid "resin cage" msgstr "" -#. ~ Description for boarded up window +#. ~ Description for resin cage #: lang/json/terrain_from_json.py msgid "" -"An empty window frame that has been covered with nailed down planks, " -"blocking sunlight and visibility. It's not much stronger, but it could be " -"further reinforced with strategically placed two by fours." +"This resin wall opens into a series of small honeycomb-like hexagons, " +"allowing the passage of air and light. While still made of the same sturdy " +"material, it is thinner and more delicate in appearance." msgstr "" #: lang/json/terrain_from_json.py -msgid "reinforced boarded up window" +msgid "resin floor" msgstr "" -#. ~ Description for reinforced boarded up window +#. ~ Description for resin floor #: lang/json/terrain_from_json.py msgid "" -"A heavily fortified glass window with carefully placed planks across the " -"glass to block vision. Adding a few spikes and metal plating would further " -"increase its durability." +"This nearly opaque, plastic-like floor has a gentle curve from wall to wall, " +"but in the central areas is quite flat. The material is hard, warm to the " +"touch, and slightly damp." msgstr "" -#. ~ Description for reinforced boarded up window +#. ~ Description for resin floor #: lang/json/terrain_from_json.py msgid "" -"A heavily fortified window with carefully placed planks across the open " -"frame to block vision. Adding a few spikes and metal plating would further " -"increase its durability." -msgstr "" - -#: lang/json/terrain_from_json.py -msgid "armored boarded up window" +"This nearly opaque, plastic-like floor is smooth and flat. The material is " +"hard, warm to the touch, and slightly damp." msgstr "" -#. ~ Description for armored boarded up window #: lang/json/terrain_from_json.py -msgid "" -"This once normal glass window now menaces with spikes along the edges, with " -"laboriously placed metal sheeting to further strengthen the wooden " -"reinforcements underneath." +msgid "resin roof" msgstr "" -#. ~ Description for armored boarded up window +#. ~ Description for resin roof #: lang/json/terrain_from_json.py msgid "" -"This once normal window frame now menaces with spikes along the edges, with " -"laboriously placed metal sheeting to further strengthen the wooden " -"reinforcements underneath." +"A wide, domed section of nearly opaque, plastic-like material. When the " +"light hits it, a network of multicolored conduits like blood vessels can be " +"seen snaking through its glistening interior." msgstr "" #: lang/json/terrain_from_json.py -msgid "window frame with metal bars" +msgid "closed resin portal" msgstr "" -#. ~ Description for window frame with metal bars +#. ~ Description for closed resin portal #: lang/json/terrain_from_json.py msgid "" -"A giant sheet of glass inserted into a window with thick security grilles, " -"making it impossible to crawl through. Typically installed for high-value " -"stores, or at least stores in bad neighborhoods." +"A tricuspid hatch of some sort of damp, flexible, resinous material. This " +"one is closed tightly, but it looks like a firm push would cause it to snap " +"open." msgstr "" #: lang/json/terrain_from_json.py -msgid "window with metal bars" +msgid "open resin portal" msgstr "" -#. ~ Description for window with metal bars +#. ~ Description for open resin portal #: lang/json/terrain_from_json.py msgid "" -"A giant sheet of glass inserted into a window with thick security grilles, " -"making it impossible to crawl through. Typically installed for high-value " -"stores, or at least stores in bad neighborhoods. This one has a small " -"sticker in a corner stating, 'Protected by AtmoWeb, leading AI in " -"terminating crime'." +"A tricuspid hatch of some sort of damp, flexible, resinous material. This " +"one is open, the flaps held out by some sort of stringy mucus-like substance." msgstr "" #: lang/json/terrain_from_json.py -msgid "high stained glass window" -msgstr "" - -#. ~ Description for high stained glass window -#: lang/json/terrain_from_json.py -msgid "" -"Breathtaking craftsmanship of stained glass featuring an elegant emerald " -"landscape." +msgid "resin-lined hole" msgstr "" -#. ~ Description for high stained glass window +#. ~ Description for resin-lined hole #: lang/json/terrain_from_json.py -msgid "" -"Breathtaking craftsmanship of stained glass featuring an otherworldly " -"radiant ruby flower blooming." +msgid "An open hole in the resin wall, large enough to pass through." msgstr "" -#. ~ Description for high stained glass window #: lang/json/terrain_from_json.py -msgid "" -"Breathtaking craftsmanship of stained glass featuring an alluring azure " -"oceanic abyss." +msgid "scorched earth" msgstr "" #: lang/json/terrain_from_json.py @@ -150460,17 +147304,6 @@ msgid "" "detritus, and some kind of dark-colored resin." msgstr "" -#: lang/json/terrain_from_json.py -msgid "barren dirt" -msgstr "" - -#. ~ Description for barren dirt -#: lang/json/terrain_from_json.py -msgid "" -"It's dirt. The ground here is infertile. Could also be dug out for " -"construction projects." -msgstr "" - #: lang/json/terrain_from_json.py msgid "electro furnace" msgstr "" @@ -150752,10 +147585,6 @@ msgstr "" msgid "vicing" msgstr "" -#: lang/json/tool_quality_from_json.py -msgid "pressurizing" -msgstr "" - #: lang/json/tool_quality_from_json.py msgid "mana focusing" msgstr "" @@ -152626,21 +149455,6 @@ msgid "" "washing machine to use it." msgstr "" -#. ~ Description for dishwasher -#: lang/json/vehicle_part_from_json.py -msgid "" -"A small dishwasher. With detergent or soap, water, and some electrical " -"power, you could clean your dishes... Or something more useful like a CBM " -"dripping with zombie gore. 'e'xamine the tile with the dishwasher to use it." -msgstr "" - -#. ~ Description for autoclave -#: lang/json/vehicle_part_from_json.py -msgid "" -"This is an autoclave. It's useful for sterilizing things like CBMs. " -"'e'xamine the tile with the autoclave to use it." -msgstr "" - #: lang/json/vehicle_part_from_json.py msgid "trunk" msgstr "" @@ -153209,7 +150023,6 @@ msgid "A clock, so you know what time it is." msgstr "" #. ~ Description for leather funnel -#. ~ Description for birchbark funnel #. ~ Description for makeshift funnel #. ~ Description for funnel #. ~ Description for metal funnel @@ -155662,10 +152475,6 @@ msgctxt "memorial_female" msgid "Learned %s." msgstr "" -#: src/activity_handlers.cpp -msgid "You've charged the battery completely." -msgstr "" - #: src/activity_handlers.cpp src/iuse.cpp msgid "You're too exhausted to keep cranking." msgstr "" @@ -155970,8 +152779,8 @@ msgstr "" #: src/activity_handlers.cpp msgid "" -"The Autodoc returns to its resting position after successfully performing " -"the operation." +"The Autodoc retuns to its resting position after succesfully performing the " +"operation." msgstr "" #: src/activity_handlers.cpp @@ -155987,14 +152796,6 @@ msgstr "" msgid "a sad beeping noise: \"Operation failed\"" msgstr "" -#: src/activity_handlers.cpp -msgid "The operation is a success." -msgstr "" - -#: src/activity_handlers.cpp src/bionics.cpp -msgid "The operation is a failure." -msgstr "" - #: src/activity_handlers.cpp #, c-format msgid "%s did not find an unfinished construction at the activity spot." @@ -156052,20 +152853,6 @@ msgstr "" msgid "You finish chopping wood." msgstr "" -#: src/activity_handlers.cpp -#, c-format -msgid "You produce %d planks." -msgstr "" - -#: src/activity_handlers.cpp -#, c-format -msgid "You produce %d splinters." -msgstr "" - -#: src/activity_handlers.cpp -msgid "You waste a lot of the wood." -msgstr "" - #. ~ Sound of a jackhammer at work! #: src/activity_handlers.cpp msgid "TATATATATATATAT!" @@ -156469,7 +153256,7 @@ msgid "You need %1$i charges of cleansing agent to wash these items." msgstr "" #: src/activity_item_handling.cpp -msgid "You washed your items." +msgid "You washed your clothing." msgstr "" #: src/activity_item_handling.cpp @@ -156979,6 +153766,10 @@ msgstr "" msgid "You can't put items there!" msgstr "" +#: src/advanced_inv.cpp +msgid "Really remove all your clothes? (woo hoo)" +msgstr "" + #: src/advanced_inv.cpp msgid "Really drop all your favorite items?" msgstr "" @@ -157074,10 +153865,6 @@ msgstr "" msgid "Hang on a bit..." msgstr "" -#: src/armor_layers.cpp -msgid "in your personal aura" -msgstr "" - #: src/armor_layers.cpp msgid "close to your skin" msgstr "" @@ -157098,10 +153885,6 @@ msgstr "" msgid "strapped to you" msgstr "" -#: src/armor_layers.cpp -msgid "an aura around you" -msgstr "" - #: src/armor_layers.cpp #, c-format msgid "" @@ -157135,10 +153918,6 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/armor_layers.cpp -msgid "This is in your personal aura." -msgstr "" - #: src/armor_layers.cpp msgid "This is worn next to the skin." msgstr "" @@ -157155,10 +153934,6 @@ msgstr "" msgid "This is strapped onto you." msgstr "" -#: src/armor_layers.cpp -msgid "This is an aura around you." -msgstr "" - #: src/armor_layers.cpp msgid "Properties" msgstr "" @@ -157240,10 +154015,6 @@ msgstr "" msgid "It helps you to see clearly underwater." msgstr "" -#: src/armor_layers.cpp -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." @@ -157292,7 +154063,7 @@ msgstr "" msgid "Encumbrance and Warmth" msgstr "" -#: src/armor_layers.cpp src/iuse_actor.cpp +#: src/armor_layers.cpp msgid "Encumbrance" msgstr "" @@ -158855,8 +155626,7 @@ msgid "That part of the vehicle is currently unsafe." msgstr "" #: src/avatar_action.cpp -#, c-format -msgid "The %s cannot swim while it is carrying you!" +msgid "Your mount shies away from the water!" msgstr "" #: src/avatar_action.cpp @@ -158970,10 +155740,6 @@ msgid "" "charges to fire that!" msgstr "" -#: src/avatar_action.cpp -msgid "Your mech has an empty battery, its weapon will not fire." -msgstr "" - #: src/avatar_action.cpp msgid "" "You must stand near acceptable terrain or furniture to use this weapon. A " @@ -158994,12 +155760,6 @@ msgstr "" msgid "You can't effectively throw while you're in your shell." 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 "" - #: src/avatar_action.cpp msgid "Throw item" msgstr "" @@ -159414,22 +156174,12 @@ msgstr "" #: src/bionics.cpp #, c-format -msgid "'s %s is damaged." -msgstr "" - -#: src/bionics.cpp -#, c-format -msgid "Your %s is damaged." -msgstr "" - -#: src/bionics.cpp -#, c-format -msgid "Your %s is severely damaged." +msgid "%s body is damaged!" msgstr "" #: src/bionics.cpp #, c-format -msgid "'s %s is severely damaged." +msgid "%s body is severely damaged!" msgstr "" #: src/bionics.cpp @@ -159446,6 +156196,10 @@ msgstr "" msgid "The operation fails." msgstr "" +#: src/bionics.cpp +msgid "The operation is a failure." +msgstr "" + #: src/bionics.cpp #, c-format msgid "The %s screws up the operation." @@ -159621,14 +156375,14 @@ msgstr "" msgid "The installation is a failure." msgstr "" -#. ~"Complications" is USian medical-speak for "unintended damage from a medical procedure". #: src/bionics.cpp -#, c-format -msgid "%s training helps to minimize the complications." +msgid "The installation fails without incident." msgstr "" +#. ~"Complications" is USian medical-speak for "unintended damage from a medical procedure". #: src/bionics.cpp -msgid "The installation fails without incident." +#, c-format +msgid "%s training helps to minimize the complications." msgstr "" #: src/bionics.cpp @@ -160509,7 +157263,7 @@ msgid "No limb would benefit from it." msgstr "" #: src/character.cpp src/inventory_ui.cpp src/monexamine.cpp -#: src/monexamine.cpp src/npctalk_funcs.cpp src/pickup.cpp +#: src/npctalk_funcs.cpp src/pickup.cpp msgid "Cancel" msgstr "" @@ -161015,14 +157769,6 @@ msgstr "" msgid "Destination for firewood and items that can be used as such." msgstr "" -#: src/clzones.cpp -msgid "Loot: Custom" -msgstr "" - -#: src/clzones.cpp -msgid "Destination for loot with a custom filter that you can modify." -msgstr "" - #: src/clzones.cpp msgid "Loot: Ignore" msgstr "" @@ -161057,32 +157803,11 @@ msgid "" "Distribute Food mission." msgstr "" -#: src/clzones.cpp src/game.cpp -msgid "Filter:" -msgstr "" - #: src/clzones.cpp #: src/vehicle_use.cpp msgid "No seed" msgstr "" -#: src/clzones.cpp -#, c-format -msgid "Loot: Custom : %s" -msgstr "" - -#: src/clzones.cpp -msgid "Loot: Custom : No Filter" -msgstr "" - -#: src/clzones.cpp -msgid "Loot: Custom: " -msgstr "" - -#: src/clzones.cpp -msgid "No filter" -msgstr "" - #: src/clzones.cpp msgid "No construction" msgstr "" @@ -162306,7 +159031,7 @@ msgstr "" #: src/consumption.cpp src/iuse.cpp #: src/iuse.cpp #: src/iuse_actor.cpp -#: src/player.cpp +#: src/iuse_actor.cpp src/player.cpp msgid "You can't do that while underwater." msgstr "" @@ -163244,13 +159969,17 @@ msgid "tool required to craft" msgstr "" #: src/crafting_gui.cpp -msgid "recipes which are memorized or not" +msgid "recipes which are hidden or not" msgstr "" #: src/crafting_gui.cpp msgid "yes" msgstr "" +#: src/crafting_gui.cpp +msgid "recipes which are memorized or not" +msgstr "" + #: src/crafting_gui.cpp msgid "" "The default is to search result names. Some single-character prefixes can " @@ -163618,10 +160347,6 @@ msgstr "" msgid "Toggle display visibility" msgstr "" -#: src/debug_menu.cpp -msgid "Toggle display radiation" -msgstr "" - #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "" @@ -165610,6 +162335,112 @@ msgstr "" msgid "perfect" msgstr "" +#: src/event.cpp +msgctxt "memorial_male" +msgid "Became wanted by the police!" +msgstr "" + +#: src/event.cpp +msgctxt "memorial_female" +msgid "Became wanted by the police!" +msgstr "" + +#: src/event.cpp +msgctxt "memorial_male" +msgid "Drew the attention of more dark wyrms!" +msgstr "" + +#: src/event.cpp +msgctxt "memorial_female" +msgid "Drew the attention of more dark wyrms!" +msgstr "" + +#: src/event.cpp +msgid "a tortured scream!" +msgstr "" + +#: src/event.cpp +msgid "The eye you're carrying lets out a tortured scream!" +msgstr "" + +#: src/event.cpp +msgctxt "memorial_male" +msgid "Angered a group of amigara horrors!" +msgstr "" + +#: src/event.cpp +msgctxt "memorial_female" +msgid "Angered a group of amigara horrors!" +msgstr "" + +#: src/event.cpp +msgctxt "memorial_male" +msgid "Destroyed a triffid grove." +msgstr "" + +#: src/event.cpp +msgctxt "memorial_female" +msgid "Destroyed a triffid grove." +msgstr "" + +#: src/event.cpp +msgctxt "memorial_male" +msgid "Opened a strange temple." +msgstr "" + +#: src/event.cpp +msgctxt "memorial_female" +msgid "Opened a strange temple." +msgstr "" + +#: src/event.cpp +msgid "The nearby grates open to reveal a staircase!" +msgstr "" + +#: src/event.cpp +msgid "Water quickly floods up to your knees." +msgstr "" + +#: src/event.cpp +msgctxt "memorial_male" +msgid "Water level reached knees." +msgstr "" + +#: src/event.cpp +msgctxt "memorial_female" +msgid "Water level reached knees." +msgstr "" + +#: src/event.cpp +msgid "Water fills nearly to the ceiling!" +msgstr "" + +#: src/event.cpp +msgctxt "memorial_male" +msgid "Water level reached the ceiling." +msgstr "" + +#: src/event.cpp +msgctxt "memorial_female" +msgid "Water level reached the ceiling." +msgstr "" + +#: src/event.cpp +msgid "An eyebot swoops down nearby!" +msgstr "" + +#: src/event.cpp +msgid "You hear screeches from the rock above and around you!" +msgstr "" + +#: src/event.cpp +msgid "The entire cavern shakes!" +msgstr "" + +#: src/event.cpp +msgid "The earth rumbles." +msgstr "" + #: src/explosion.cpp msgid "You're caught in the explosion!" msgstr "" @@ -168270,18 +165101,10 @@ msgstr "" msgid "You take control of the %s." msgstr "" -#: src/game.cpp -msgid "No vehicle controls found." -msgstr "" - #: src/game.cpp msgid "Control vehicle where?" msgstr "" -#: src/game.cpp -msgid "The vehicle doesn't have controls there." -msgstr "" - #: src/game.cpp msgid "No vehicle there." msgstr "" @@ -168579,10 +165402,6 @@ msgstr "" msgid "Edit type" msgstr "" -#: src/game.cpp -msgid "Edit filter" -msgstr "" - #: src/game.cpp msgid "Edit options" msgstr "" @@ -168646,6 +165465,10 @@ msgstr "" msgid "You don't see any items or monsters around you!" msgstr "" +#: src/game.cpp +msgid "Filter:" +msgstr "" + #: src/game.cpp msgid "UP: history, CTRL-U: clear line, ESC: abort, ENTER: save" msgstr "" @@ -169039,8 +165862,7 @@ msgstr "" msgid "Your %s refuses to move over that ledge!" msgstr "" -#: src/game.cpp src/monexamine.cpp src/player.cpp -#: src/player.cpp +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -169049,7 +165871,7 @@ msgid "Can't find grabbed object." msgstr "" #: src/game.cpp -msgid "You cannot board a vehicle whilst riding." +msgid "You cannot board a vehicle whilst mounted." msgstr "" #: src/game.cpp @@ -169146,6 +165968,10 @@ msgstr "" msgid "There's something here, but you can't see what it is." msgstr "" +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -170153,11 +166979,6 @@ msgstr "" msgid "Available anesthetic: %i mL" msgstr "" -#: src/game_inventory.cpp -#, c-format -msgid "Money available: %s" -msgstr "" - #: src/game_inventory.cpp #, c-format msgid "Bionic removal patient: %s" @@ -170184,18 +167005,6 @@ msgstr "" msgid "ANESTHETIC REQUIRED" msgstr "" -#: src/game_inventory.cpp -msgid "/!\\ CBM is highly contaminated. /!\\" -msgstr "" - -#: src/game_inventory.cpp -msgid "/!\\ CBM is not sterile. /!\\" -msgstr "" - -#: src/game_inventory.cpp -msgid "CBM already deployed. Please reset to factory state." -msgstr "" - #: src/game_inventory.cpp msgid "CBM already installed" msgstr "" @@ -170219,72 +167028,31 @@ msgstr "" #: src/game_inventory.cpp #, c-format -msgid "%i%%" -msgstr "" - -#: src/game_inventory.cpp -msgid "kit available" -msgstr "" - -#: src/game_inventory.cpp -msgid "PRICE" -msgstr "" - -#: src/game_inventory.cpp -msgid "CBM is filthy." -msgstr "" - -#: src/game_inventory.cpp -msgid "CBM is not sterile." -msgstr "" - -#: src/game_inventory.cpp -msgid "CBM is already deployed." -msgstr "" - -#: src/game_inventory.cpp -msgid "CBM is already installed." -msgstr "" - -#: src/game_inventory.cpp -msgid "No base version installed." -msgstr "" - -#: src/game_inventory.cpp -msgid "Superior version installed." -msgstr "" - -#: src/game_inventory.cpp -msgid "CBM is not compatible with patient." +msgid "%i minutes" msgstr "" #: src/game_inventory.cpp -msgid "CYCLE DURATION" -msgstr "" - -#: src/game_inventory.cpp -msgctxt "volume of water" -msgid "2 L" -msgstr "" - -#: src/game_inventory.cpp -msgid "WATER REQUIRED" +#, c-format +msgid "%i hours" msgstr "" #: src/game_inventory.cpp -msgid "CBM is filthy. Wash it first." +#, c-format +msgid "%i hour" msgstr "" -#: src/game_inventory.cpp -msgid "Sterilization" +#: src/game_inventory.cpp src/player.cpp +#, c-format +msgid "%s, %s" msgstr "" #: src/game_inventory.cpp -msgid "Select one CBM to sterilize" +#, c-format +msgid "%i%%" msgstr "" #: src/game_inventory.cpp -msgid "You don't have any CBM to sterilize." +msgid "kit available" msgstr "" #: src/gamemode.cpp @@ -170834,6 +167602,10 @@ msgstr "" msgid "You can't go down stairs while you're riding." msgstr "" +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "" @@ -171828,116 +168600,11 @@ msgstr "" msgid "It has finished burning, yielding %d charcoal." msgstr "" -#: src/iexamine.cpp -msgid "This furnace already contains calcium carbide." -msgstr "" - -#: src/iexamine.cpp -msgid "Remove it before activating the arc furnace again." -msgstr "" - -#: src/iexamine.cpp -#, c-format -msgid "This furnace contains %s, which can't be made into calcium carbide!" -msgstr "" - -#: src/iexamine.cpp -msgid "" -"This furance is empty. Fill it with powdered coke and lime mix, and try " -"again." -msgstr "" - -#: src/iexamine.cpp -msgid "The batch in this furance is too small to yield usable calcium carbide." -msgstr "" - -#: src/iexamine.cpp -msgid "" -"This furnace is ready to be turned on, but you lack a UPS with sufficient " -"power." -msgstr "" - -#: src/iexamine.cpp -#, c-format -msgid "This furnace contains %s %s of material, and is ready to be turned on." -msgstr "" - -#: src/iexamine.cpp -msgid "Turn on the furnace?" -msgstr "" - -#: src/iexamine.cpp -msgid "You turn on the furnace." -msgstr "" - -#: src/iexamine.cpp -msgid "This furnace is empty..." -msgstr "" - -#: src/iexamine.cpp -msgid "There's an arc furnace there." -msgstr "" - -#: src/iexamine.cpp -#, c-format -msgid "It has finished burning, yielding %d calcium carbide." -msgstr "" - -#: src/iexamine.cpp -msgid "This autoclave is empty..." -msgstr "" - -#: src/iexamine.cpp -msgid "" -"You need to remove all non-CBM items from the autoclave to start the program." -msgstr "" - -#: src/iexamine.cpp -msgid "" -"Some of those CBMs are filthy, you should wash them first for the " -"sterilization process to work properly." -msgstr "" - -#: src/iexamine.cpp src/iuse.cpp -msgid "Start the autoclave?" -msgstr "" - -#: src/iexamine.cpp -msgid "You start the autoclave." -msgstr "" - -#: src/iexamine.cpp -msgid "ERROR Autoclave can't process non CBM items." -msgstr "" - -#: src/iexamine.cpp -msgid "The autoclave is running." -msgstr "" - -#: src/iexamine.cpp -#, c-format -msgid "The cycle will be complete in %s." -msgstr "" - -#: src/iexamine.cpp -msgid "The cycle is complete, the CBMs are now sterile." -msgstr "" - -#: src/iexamine.cpp -msgid "" -"CBMs in direct contact with the environment will almost immediately become " -"contaminated." -msgstr "" - #: src/iexamine.cpp #: src/iexamine.cpp src/vehicle_use.cpp msgid "Select an action" msgstr "" -#: src/iexamine.cpp src/vehicle_use.cpp -msgid "Get items" -msgstr "" - #: src/iexamine.cpp msgid "Start a fire" msgstr "" @@ -171950,14 +168617,6 @@ msgstr "" msgid "Use a CBM to start a fire" msgstr "" -#: src/iexamine.cpp -msgid "Extinguish fire" -msgstr "" - -#: src/iexamine.cpp -msgid "Extinguish fire (bashing item required)" -msgstr "" - #: src/iexamine.cpp #, c-format msgid "Take down the %s" @@ -171977,11 +168636,6 @@ msgstr "" msgid "Really take down the %s while it's on fire?" msgstr "" -#: src/iexamine.cpp -#, c-format -msgid "With a few determined moves you put out the fire in the %s." -msgstr "" - #: src/iexamine.cpp msgid "This keg is empty." msgstr "" @@ -172326,22 +168980,22 @@ msgstr "" msgid "The %1$s contains %2$d %3$s. Unload?" msgstr "" -#. ~ Reloading or restocking a piece of furniture, for example a forge. +#. ~ %1$s - furniture, %2$d - number, %3$s items. #: src/iexamine.cpp #, c-format -msgid "You need some %1$s to reload this %2$s." +msgid "The %1$s contains %2$d %3$s." msgstr "" -#. ~ Loading fuel or other items into a piece of furniture. +#. ~ Reloading or restocking a piece of furniture, for example a forge. #: src/iexamine.cpp #, c-format -msgid "Put how many of the %1$s into the %2$s?" +msgid "You need some %1$s to reload this %2$s." msgstr "" -#. ~ %1$s - furniture, %2$d - number, %3$s items. +#. ~ Loading fuel or other items into a piece of furniture. #: src/iexamine.cpp #, c-format -msgid "The %1$s contains %2$d %3$s." +msgid "Put how many of the %1$s into the %2$s?" msgstr "" #: src/iexamine.cpp @@ -173087,6 +169741,10 @@ msgstr "" msgid "Craft items" msgstr "" +#: src/iexamine.cpp src/vehicle_use.cpp +msgid "Get items" +msgstr "" + #: src/iexamine.cpp msgid "Which craft to work on?" msgstr "" @@ -173266,10 +169924,6 @@ msgstr "" msgid "Overmap locations" msgstr "" -#: src/init.cpp -msgid "Map extras" -msgstr "" - #: src/init.cpp msgid "Ammunition types" msgstr "" @@ -174141,10 +170795,6 @@ msgstr "" msgid "Layer: " msgstr "" -#: src/item.cpp -msgid "Personal aura. " -msgstr "" - #: src/item.cpp msgid "Close to skin. " msgstr "" @@ -174161,10 +170811,6 @@ msgstr "" msgid "Waist. " msgstr "" -#: src/item.cpp -msgid "Outer aura. " -msgstr "" - #: src/item.cpp msgid "Normal. " msgstr "" @@ -174912,14 +171558,6 @@ msgstr "" msgid " (filthy)" msgstr "" -#: src/item.cpp -msgid " (sterile)" -msgstr "" - -#: src/item.cpp -msgid " (packed)" -msgstr "" - #: src/item.cpp msgid " (UPS)" msgstr "" @@ -175808,12 +172446,12 @@ msgstr "" #: src/iuse.cpp msgctxt "memorial_male" -msgid "Consumed a marloss product." +msgid "Ate a marloss berry." msgstr "" #: src/iuse.cpp msgctxt "memorial_female" -msgid "Consumed a marloss product." +msgid "Ate a marloss berry." msgstr "" #: src/iuse.cpp @@ -175823,22 +172461,22 @@ msgstr "" #: src/iuse.cpp msgctxt "memorial_male" -msgid "Consumed a marloss seed." +msgid "Ate a marloss seed." msgstr "" #: src/iuse.cpp msgctxt "memorial_female" -msgid "Consumed a marloss seed." +msgid "Ate a marloss seed." msgstr "" #: src/iuse.cpp msgctxt "memorial_male" -msgid "Consumed some marloss jelly." +msgid "Ate some marloss jelly." msgstr "" #: src/iuse.cpp msgctxt "memorial_female" -msgid "Consumed some marloss jelly." +msgid "Ate some marloss jelly." msgstr "" #: src/iuse.cpp @@ -175852,13 +172490,15 @@ msgid "Became one with the Mycus." msgstr "" #: src/iuse.cpp -msgid "It tastes amazing, and you finish it quickly." +msgid "" +"The apple tastes amazing, and you finish it quickly, not even noticing the " +"lack of any core or seeds." msgstr "" #: src/iuse.cpp msgid "" -"As it settles in, you feel ecstasy radiating through every part of your " -"body..." +"As the apple settles in, you feel ecstasy radiating through every part of " +"your body..." msgstr "" #: src/iuse.cpp @@ -175912,7 +172552,7 @@ msgid "" msgstr "" #: src/iuse.cpp -msgid "This tastes really weird! You're not sure it's good for you..." +msgid "This apple tastes really weird! You're not sure it's good for you..." msgstr "" #: src/iuse.cpp @@ -175981,7 +172621,11 @@ msgid "There is nothing to be fed here." msgstr "" #: src/iuse.cpp -msgid "Modify what?" +msgid "You can't see to sew!" +msgstr "" + +#: src/iuse.cpp +msgid "Enhance which clothing?" msgstr "" #: src/iuse.cpp @@ -175989,6 +172633,91 @@ msgstr "" msgid "You do not have that item!" msgstr "" +#: src/iuse.cpp +msgid "This can be used to repair or modify other items, not itself." +msgstr "" + +#: src/iuse.cpp +msgid "How do you want to modify it?" +msgstr "" + +#: src/iuse.cpp +msgid "Not enough thread to modify. Which modification do you want to remove?" +msgstr "" + +#: src/iuse.cpp +#, c-format +msgid "%s (Warmth: %d->%d, Encumbrance: %d->%d)" +msgstr "" + +#: src/iuse.cpp +msgid "Destroy wool lining" +msgstr "" + +#: src/iuse.cpp +msgid "Line it with wool" +msgstr "" + +#: src/iuse.cpp +msgid "Destroy fur lining" +msgstr "" + +#: src/iuse.cpp +msgid "Line it with fur" +msgstr "" + +#: src/iuse.cpp +#, c-format +msgid "%s (Bash/Cut: %d/%d->%d/%d, Encumbrance: %d->%d)" +msgstr "" + +#: src/iuse.cpp +msgid "Pad with leather" +msgstr "" + +#: src/iuse.cpp +msgid "Destroy leather padding" +msgstr "" + +#: src/iuse.cpp +msgid "Pad with Kevlar" +msgstr "" + +#: src/iuse.cpp +msgid "Destroy Kevlar padding" +msgstr "" + +#: src/iuse.cpp +msgid "Are you sure? You will not gain any materials back." +msgstr "" + +#: src/iuse.cpp +#, c-format +msgid "You damage your %s trying to modify it! ( %s-> %s)" +msgstr "" + +#: src/iuse.cpp src/iuse_actor.cpp +msgid "You destroy it!" +msgstr "" + +#: src/iuse.cpp +msgid "You fail to modify the clothing, and you waste thread and materials." +msgstr "" + +#: src/iuse.cpp +#, c-format +msgid "You modify your %s, but waste a lot of thread." +msgstr "" + +#: src/iuse.cpp +#, c-format +msgid "You modify your %s!" +msgstr "" + +#: src/iuse.cpp +msgid "Modify what?" +msgstr "" + #: src/iuse.cpp msgid "Which signal should activate the item?:" msgstr "" @@ -176122,34 +172851,6 @@ msgstr "" msgid "You unpack your %s for use." msgstr "" -#: src/iuse.cpp -msgid "Choose CBM to pack" -msgstr "" - -#: src/iuse.cpp -msgid "You don't have any CBMs." -msgstr "" - -#: src/iuse.cpp -msgid "This CBM is faulty. You should mend it first. Do you want to try?" -msgstr "" - -#: src/iuse.cpp -msgid "This CBM is already packed. Do you want to put it in a new pouch?" -msgstr "" - -#: src/iuse.cpp -msgid "You carefully prepare the CBM for sterilization." -msgstr "" - -#: src/iuse.cpp -msgid "You put the CBM in the pouch and close it." -msgstr "" - -#: src/iuse.cpp -msgid "You're not sure about the quality of your work." -msgstr "" - #: src/iuse.cpp #, c-format msgid "You can't pack your %s until you take it off." @@ -177160,6 +173861,20 @@ msgstr "" msgid "You cut the log into planks." msgstr "" +#: src/iuse.cpp +#, c-format +msgid "You produce %d planks." +msgstr "" + +#: src/iuse.cpp +#, c-format +msgid "You produce %d splinters." +msgstr "" + +#: src/iuse.cpp +msgid "You waste a lot of the wood." +msgstr "" + #: src/iuse.cpp msgid "Chop down which tree?" msgstr "" @@ -178555,31 +175270,6 @@ msgstr "" msgid "You're surrounded by aggressive multi-cookers!" msgstr "" -#: src/iuse.cpp -msgid "" -"The autoclave ran out of battery and stopped before completing its cycle." -msgstr "" - -#: src/iuse.cpp -msgid "Autoclave already contains a CBM. Do you want to remove it?" -msgstr "" - -#: src/iuse.cpp -msgid "Do you want to use the autoclave?" -msgstr "" - -#: src/iuse.cpp -#, c-format -msgid "" -"The autoclave doesn't have enough battery for one cycle. You need at least " -"%s charges." -msgstr "" - -#: src/iuse.cpp -#, c-format -msgid "The cycle will be completed in %s." -msgstr "" - #: src/iuse.cpp msgid "The multi-cooker should be finishing shortly..." msgstr "" @@ -179167,47 +175857,6 @@ msgstr "" msgid "The lock stumps your efforts to pick it." msgstr "" -#: src/iuse_actor.cpp -msgid "a crafting station" -msgstr "" - -#: src/iuse_actor.cpp -msgid "a place to hang corpses for butchering" -msgstr "" - -#: src/iuse_actor.cpp -msgid "" -"a flat surface to butcher onto or eat meals from" -msgstr "" - -#: src/iuse_actor.cpp -msgid "a place to sit" -msgstr "" - -#: src/iuse_actor.cpp -msgid "a place to hide" -msgstr "" - -#: src/iuse_actor.cpp -msgid "a safe place to contain a fire" -msgstr "" - -#: src/iuse_actor.cpp -msgid "a place to smoke or dry food for preservation" -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid "Can be activated to deploy as furniture (%s)." -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid "" -"Can be activated to deploy as furniture (%s), " -"which can then be used as %s." -msgstr "" - #: src/iuse_actor.cpp msgid "Deploy where?" msgstr "" @@ -179745,10 +176394,6 @@ msgstr "" msgid "You damage your %s! ( %s-> %s)" msgstr "" -#: src/iuse_actor.cpp -msgid "You destroy it!" -msgstr "" - #: src/iuse_actor.cpp #, c-format msgid "You take your %s in, improving the fit." @@ -180086,73 +176731,6 @@ msgstr "" msgid "ERROR: Max weight of %.0f %s exceeded" msgstr "" -#: src/iuse_actor.cpp -msgid "You can't see to sew!" -msgstr "" - -#: src/iuse_actor.cpp -msgid "Enhance which clothing?" -msgstr "" - -#: src/iuse_actor.cpp -msgid "This can be used to repair or modify other items, not itself." -msgstr "" - -#: src/iuse_actor.cpp -msgid "How do you want to modify it?" -msgstr "" - -#: src/iuse_actor.cpp -msgid "Not enough thread to modify. Which modification do you want to remove?" -msgstr "" - -#: src/iuse_actor.cpp -msgid "Bash" -msgstr "" - -#: src/iuse_actor.cpp -msgid "Cut" -msgstr "" - -#: src/iuse_actor.cpp -msgid "Acid" -msgstr "" - -#: src/iuse_actor.cpp -msgid "Fire" -msgstr "" - -#: src/iuse_actor.cpp -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 "" - -#: src/iuse_actor.cpp -#, c-format -msgid "You damage your %s trying to modify it! ( %s-> %s)" -msgstr "" - -#: src/iuse_actor.cpp -msgid "You fail to modify the clothing, and you waste thread and materials." -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid "You modify your %s, but waste a lot of thread." -msgstr "" - -#: src/iuse_actor.cpp -#, c-format -msgid "You modify your %s!" -msgstr "" - #: src/iuse_software.cpp msgid "You found kitten!" msgstr "" @@ -181609,6 +178187,30 @@ msgstr "" msgid "Your injuries even out." msgstr "" +#: src/magic_spell_effect.cpp +msgid "All the dust in the air here falls to the ground." +msgstr "" + +#: src/magic_spell_effect.cpp +msgid "The pit has deepened further." +msgstr "" + +#: src/magic_spell_effect.cpp +msgid "More debris shifts out of the pit." +msgstr "" + +#: src/magic_spell_effect.cpp +msgid "The earth moves out of the way for you." +msgstr "" + +#: src/magic_spell_effect.cpp +msgid "The rocks here are ground into sand." +msgstr "" + +#: src/magic_spell_effect.cpp +msgid "The earth here does not listen to your command to move." +msgstr "" + #: src/magic_spell_effect.cpp #, c-format msgid "%s wounds are closing up!" @@ -181955,21 +178557,6 @@ msgstr "" msgid "The washing machine in the %s has finished washing." msgstr "" -#: src/map.cpp -#, c-format -msgid "The dishwasher in the %s has finished washing." -msgstr "" - -#: src/map.cpp -#, c-format -msgid "It should take %d minutes to finish sterilising items in the %s." -msgstr "" - -#: src/map.cpp -#, c-format -msgid "The autoclave in the %s has finished washing." -msgstr "" - #: src/map.cpp #, c-format msgid "The %s is taken down." @@ -182105,6 +178692,10 @@ msgstr "" msgid "You feel sick from inhaling the %s" msgstr "" +#: src/map_field.cpp +msgid "This radioactive gas burns!" +msgstr "" + #: src/map_field.cpp msgid "You're torched by flames!" msgstr "" @@ -182719,16 +179310,6 @@ msgstr "" msgid "You can't hit reliably due to your farsightedness." msgstr "" -#: src/melee.cpp -#, c-format -msgid "The %s has dead batteries and will not move its arms." -msgstr "" - -#: src/melee.cpp -#, c-format -msgid "The %s hisses as its hydraulic arm pumps forward!" -msgstr "" - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "" @@ -185661,16 +182242,6 @@ msgstr "" msgid "Rats suddenly swarm into view." msgstr "" -#: src/mondeath.cpp -#, c-format -msgid "The %s inflates and melts away." -msgstr "" - -#: src/mondeath.cpp -#, c-format -msgid "a %s explodes!" -msgstr "" - #: src/mondeath.cpp #, c-format msgid "" @@ -185848,36 +182419,6 @@ msgstr "" msgid "Despite the saddle, you still don't know how to ride %s" msgstr "" -#: src/monexamine.cpp -#, c-format -msgid "%s battery level is %d%%" -msgstr "" - -#: src/monexamine.cpp -msgid "Climb into the mech and take control" -msgstr "" - -#: src/monexamine.cpp -msgid "You cannot pilot the mech whilst wielding something" -msgstr "" - -#: src/monexamine.cpp -msgid "This mech has a dead battery and won't turn on" -msgstr "" - -#: src/monexamine.cpp -msgid "Remove the mech's battery pack" -msgstr "" - -#: src/monexamine.cpp -msgid "Insert a new battery pack" -msgstr "" - -#: src/monexamine.cpp -#, c-format -msgid "You need a %s to power this mech" -msgstr "" - #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -185891,39 +182432,11 @@ msgstr "" msgid "Pet armor" msgstr "" -#: src/monexamine.cpp -#, c-format -msgid "Select an battery to insert into your %s." -msgstr "" - -#: src/monexamine.cpp -msgid "Swipe your ID card into the mech's security port?" -msgstr "" - -#: src/monexamine.cpp -#, c-format -msgid "The %s whirs into life and opens its restraints to accept a pilot." -msgstr "" - -#: src/monexamine.cpp -msgid "You do not have the required ID card to activate this mech." -msgstr "" - #: src/monexamine.cpp #, c-format msgid "You remove the %s's harness." msgstr "" -#: src/monexamine.cpp -#, c-format -msgid "You climb on the %s." -msgstr "" - -#: src/monexamine.cpp -#, c-format -msgid "You hear your %s whir to life." -msgstr "" - #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -186539,11 +183052,6 @@ msgctxt "memorial_female" msgid "Killed a %s." msgstr "" -#: src/monster.cpp -#, c-format -msgid "Your %s emits a beeping noise as its batteries start to get low." -msgstr "" - #: src/monster.cpp #, c-format msgid "The %s is visibly regenerating!" @@ -186575,11 +183083,11 @@ msgid "The spores transform %1$s into a %2$s!" msgstr "" #: src/morale.cpp -msgid "Total morale:" +msgid "Total morale change" msgstr "" #: src/morale.cpp -msgid "Focus trends towards:" +msgid "Focus gain per minute" msgstr "" #: src/morale.cpp @@ -188784,11 +185292,11 @@ msgid "You start a fight with %s!" msgstr "" #: src/npctalk_funcs.cpp -msgid "You don't have any bionics installed..." +msgid "You have no bionics to install!" msgstr "" #: src/npctalk_funcs.cpp -msgid "Which bionic do you wish to uninstall?" +msgid "Which bionic do you wish to have installed?" msgstr "" #: src/npctalk_funcs.cpp @@ -188799,6 +185307,14 @@ msgstr "" msgid "You can't afford the procedure..." msgstr "" +#: src/npctalk_funcs.cpp +msgid "You don't have any bionics installed..." +msgstr "" + +#: src/npctalk_funcs.cpp +msgid "Which bionic do you wish to uninstall?" +msgstr "" + #: src/npctalk_funcs.cpp #, c-format msgid "%s has nothing to give!" @@ -189679,19 +186195,6 @@ msgid "" "the chat log." msgstr "" -#: src/options.cpp -msgid "Pickup position" -msgstr "" - -#: src/options.cpp -msgid "" -"Switch between pickup panel being left, right, or overlapping the sidebar." -msgstr "" - -#: src/options.cpp -msgid "Overlapping" -msgstr "" - #: src/options.cpp msgid "Aim window display style" msgstr "" @@ -189721,6 +186224,7 @@ msgstr "" msgid "Horizontal" msgstr "" +#. ~ aim bar style - bars or numbers #: src/options.cpp msgid "Vertical" msgstr "" @@ -190041,22 +186545,6 @@ msgstr "" msgid "Choose the tileset you want to use." msgstr "" -#: src/options.cpp -msgid "Memory map drawing mode" -msgstr "" - -#: src/options.cpp -msgid "Specified the mode in which the memory map is drawn. Requires restart." -msgstr "" - -#: src/options.cpp -msgid "Darkened" -msgstr "" - -#: src/options.cpp -msgid "Sepia" -msgstr "" - #: src/options.cpp msgid "Pixel minimap" msgstr "" @@ -191580,21 +188068,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 "" @@ -191635,6 +188108,21 @@ msgstr "" msgid "Move :" msgstr "" +#: src/panels.cpp +msgctxt "movement-type" +msgid "W" +msgstr "" + +#: src/panels.cpp +msgctxt "movement-type" +msgid "R" +msgstr "" + +#: src/panels.cpp +msgctxt "movement-type" +msgid "C" +msgstr "" + #: src/panels.cpp msgid "Str :" msgstr "" @@ -191735,10 +188223,6 @@ msgstr "" msgid "Underground" msgstr "" -#: src/panels.cpp -msgid "Wind" -msgstr "" - #: src/panels.cpp msgid "Stm" msgstr "" @@ -191884,10 +188368,6 @@ msgstr "" msgid "Movement" msgstr "" -#: src/panels.cpp -msgid "Location Alt" -msgstr "" - #: src/panels.cpp msgid "classic" msgstr "" @@ -191896,10 +188376,6 @@ msgstr "" msgid "compact" msgstr "" -#: src/panels.cpp -msgid "labels-narrow" -msgstr "" - #: src/panels.cpp msgid "labels" msgstr "" @@ -192164,21 +188640,13 @@ msgid " attempts to put out the fire on them!" msgstr "" #: src/player.cpp -msgid "You set your mech's leg power to a loping fast walk." -msgstr "" - -#: src/player.cpp -msgid "You nudge your steed into a steady trot." +msgid "You nudge your steed to a steady trot." msgstr "" #: src/player.cpp msgid "You start walking." msgstr "" -#: src/player.cpp -msgid "You set the power of your mech's leg servos to maximum." -msgstr "" - #: src/player.cpp msgid "You spur your steed into a gallop." msgstr "" @@ -192195,10 +188663,6 @@ msgstr "" msgid "You're too tired to run." msgstr "" -#: src/player.cpp -msgid "You reduce the power of your mech's leg servos to minimum." -msgstr "" - #: src/player.cpp msgid "You slow your steed to a walk." msgstr "" @@ -192461,20 +188925,6 @@ msgctxt "memorial_female" msgid "Died of adrenaline overdose." msgstr "" -#: src/player.cpp -msgid "Your breathing slows down to a stop." -msgstr "" - -#: src/player.cpp -msgctxt "memorial_male" -msgid "Died of an alcohol overdose." -msgstr "" - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Died of an alcohol overdose." -msgstr "" - #: src/player.cpp msgid "You have starved to death." msgstr "" @@ -193475,11 +189925,6 @@ msgstr "" msgid "%s with %s (%d)" msgstr "" -#: src/player.cpp -#, c-format -msgid "%s, %s" -msgstr "" - #: src/player.cpp msgid "| Location " msgstr "" @@ -194130,10 +190575,6 @@ msgstr "" msgid "Your body strains under the weight!" msgstr "" -#: src/player.cpp -msgid "You are ejected from your mech!" -msgstr "" - #: src/player.cpp msgid "You fall off your mount!" msgstr "" @@ -194291,18 +190732,19 @@ msgid "" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Base HP: %d" +msgid "Base HP:" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Carry weight (%s): %.1f" +msgid "Carry weight(kg):" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Melee damage: %.1f" +msgid "Carry weight(lbs):" +msgstr "" + +#: src/player_display.cpp +msgid "Melee damage:" msgstr "" #: src/player_display.cpp @@ -194312,18 +190754,15 @@ msgid "" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Melee to-hit bonus: %+.1lf" +msgid "Melee to-hit bonus:" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Ranged penalty: %+d" +msgid "Ranged penalty:" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Throwing penalty per target's dodge: %+d" +msgid "Throwing penalty per target's dodge:" msgstr "" #: src/player_display.cpp @@ -194334,18 +190773,15 @@ msgid "" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Read times: %d%%" +msgid "Read times:" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Crafting bonus: %d%%" +msgid "Skill rust:" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Skill rust: %d%%" +msgid "Crafting bonus:" msgstr "" #: src/player_display.cpp @@ -194355,13 +190791,11 @@ msgid "" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Trap detection level: %d" +msgid "Trap detection level:" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Aiming penalty: %+d" +msgid "Aiming penalty:" msgstr "" #: src/player_display.cpp @@ -195744,112 +192178,6 @@ msgstr "" msgid "d: delete history" msgstr "" -#: src/timed_event.cpp -msgctxt "memorial_male" -msgid "Became wanted by the police!" -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_female" -msgid "Became wanted by the police!" -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_male" -msgid "Drew the attention of more dark wyrms!" -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_female" -msgid "Drew the attention of more dark wyrms!" -msgstr "" - -#: src/timed_event.cpp -msgid "a tortured scream!" -msgstr "" - -#: src/timed_event.cpp -msgid "The eye you're carrying lets out a tortured scream!" -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_male" -msgid "Angered a group of amigara horrors!" -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_female" -msgid "Angered a group of amigara horrors!" -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_male" -msgid "Destroyed a triffid grove." -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_female" -msgid "Destroyed a triffid grove." -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_male" -msgid "Opened a strange temple." -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_female" -msgid "Opened a strange temple." -msgstr "" - -#: src/timed_event.cpp -msgid "The nearby grates open to reveal a staircase!" -msgstr "" - -#: src/timed_event.cpp -msgid "Water quickly floods up to your knees." -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_male" -msgid "Water level reached knees." -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_female" -msgid "Water level reached knees." -msgstr "" - -#: src/timed_event.cpp -msgid "Water fills nearly to the ceiling!" -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_male" -msgid "Water level reached the ceiling." -msgstr "" - -#: src/timed_event.cpp -msgctxt "memorial_female" -msgid "Water level reached the ceiling." -msgstr "" - -#: src/timed_event.cpp -msgid "An eyebot swoops down nearby!" -msgstr "" - -#: src/timed_event.cpp -msgid "You hear screeches from the rock above and around you!" -msgstr "" - -#: src/timed_event.cpp -msgid "The entire cavern shakes!" -msgstr "" - -#: src/timed_event.cpp -msgid "The earth rumbles." -msgstr "" - #: src/translations.cpp msgid "Select your language" msgstr "" @@ -198396,32 +194724,6 @@ msgstr "" msgid "WREEP" msgstr "" -#: src/vehicle_use.cpp -msgid "" -"You turn the autoclave off before it's finished the program, and open its " -"door." -msgstr "" - -#: src/vehicle_use.cpp -#, c-format -msgid "" -"You need 8 charges of water in tanks of the %s for the autoclave to run." -msgstr "" - -#: src/vehicle_use.cpp -msgid "" -"You need to remove all filthy items from the autoclave to start the " -"sterilizing cycle." -msgstr "" - -#: src/vehicle_use.cpp -msgid "Only CBMs can be sterilized in an autoclave." -msgstr "" - -#: src/vehicle_use.cpp -msgid "You turn the autoclave on and it starts its cycle." -msgstr "" - #: src/vehicle_use.cpp msgid "" "You turn the washing machine off before it's finished the program, and open " @@ -198444,49 +194746,12 @@ msgid "" "the washing program." msgstr "" -#: src/vehicle_use.cpp -msgid "CBMs can't be cleaned in a washing machine. You need to remove them." -msgstr "" - #: src/vehicle_use.cpp msgid "" "You pour some detergent into the washing machine, close its lid, and turn it " "on. The washing machine is being filled with water from vehicle tanks." msgstr "" -#: src/vehicle_use.cpp -msgid "" -"Soft items can't be cleaned in a dishwasher, you should use a washing " -"machine for that. You need to remove them:" -msgstr "" - -#: src/vehicle_use.cpp -msgid "" -"You turn the dishwasher off before it's finished the program, and open its " -"lid." -msgstr "" - -#: src/vehicle_use.cpp -#, c-format -msgid "You need 24 charges of water in tanks of the %s to fill the dishwasher." -msgstr "" - -#: src/vehicle_use.cpp -msgid "You need 5 charges of detergent for the dishwasher." -msgstr "" - -#: src/vehicle_use.cpp -msgid "" -"You need to remove all non-filthy items from the dishwasher to start the " -"washing program." -msgstr "" - -#: src/vehicle_use.cpp -msgid "" -"You pour some detergent into the dishwasher, close its lid, and turn it on. " -"The dishwasher is being filled with water from vehicle tanks." -msgstr "" - #: src/vehicle_use.cpp msgid "Where is the creature to harness?" msgstr "" @@ -198521,14 +194786,6 @@ msgstr "" msgid "Examine vehicle" msgstr "" -#: src/vehicle_use.cpp -msgid "Deactivate the autoclave" -msgstr "" - -#: src/vehicle_use.cpp -msgid "Activate the autoclave (1.5 hours)" -msgstr "" - #: src/vehicle_use.cpp msgid "Deactivate the washing machine" msgstr "" @@ -198537,14 +194794,6 @@ msgstr "" msgid "Activate the washing machine (1.5 hours)" msgstr "" -#: src/vehicle_use.cpp -msgid "Deactivate the dishwasher" -msgstr "" - -#: src/vehicle_use.cpp -msgid "Activate the dishwasher (1.5 hours)" -msgstr "" - #: src/vehicle_use.cpp msgid "Use the hotplate" msgstr "" @@ -198553,10 +194802,6 @@ msgstr "" msgid "Fill a container with water" msgstr "" -#: src/vehicle_use.cpp -msgid "Use a towel" -msgstr "" - #: src/vehicle_use.cpp msgid "Use the welding rig?" msgstr "" diff --git a/lang/po/de.po b/lang/po/de.po index 26093ed27d720..b2e1939c5e900 100644 --- a/lang/po/de.po +++ b/lang/po/de.po @@ -5,8 +5,8 @@ # OzoneH3 , 2018 # Kitty M , 2018 # Robert Boettcher , 2018 -# Mark Bies, 2018 # Nipaporn P. , 2018 +# Mark Bies, 2018 # - - , 2018 # Tarnath , 2018 # Phil Mait , 2018 diff --git a/lang/po/es_AR.po b/lang/po/es_AR.po index 323776b1d045d..233b1aaaa6c07 100644 --- a/lang/po/es_AR.po +++ b/lang/po/es_AR.po @@ -13581,8 +13581,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "chest rig" msgid_plural "chest rigs" -msgstr[0] "arnés utilitario" -msgstr[1] "arneses utilitarios" +msgstr[0] "tirador utilitario" +msgstr[1] "tiradores utilitarios" #. ~ Description for chest rig #: lang/json/ARMOR_from_json.py @@ -13591,8 +13591,8 @@ msgid "" "favored by the military, as it is capable of holding four magazines close at" " hand." msgstr "" -"Es un arnés liviano con bolsillos, correas y cinchas. Es de los que utilizan" -" los soldados porque te permite tener cuatro cargadores a mano." +"Unos tiradores livianos con bolsillos, correas y cinchas. Es de los que " +"utilizan los soldados porque te permite tener cuatro cargadores a mano." #: lang/json/ARMOR_from_json.py msgid "ankle ammo pouch" @@ -13729,8 +13729,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "XL kevlar vest" msgid_plural "XL kevlar vests" -msgstr[0] "chaleco XL de kevlar" -msgstr[1] "chalecos XL de kevlar" +msgstr[0] "" +msgstr[1] "" #. ~ Description for XL kevlar vest #: lang/json/ARMOR_from_json.py @@ -13738,8 +13738,6 @@ msgid "" "A massive, hand-built kevlar vest based on the design of existing bullet " "resistant vests. It has four pouches capable of carrying magazines." msgstr "" -"Es un chaleco de kevlar enorme hecho a mano, basado en el diseño de otros " -"chalecos antibalas existentes. Tiene cuatro bolsas para llevar cargadores." #: lang/json/ARMOR_from_json.py msgid "pistol bandolier" @@ -14082,13 +14080,13 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of scrap boots" msgid_plural "pairs of scrap boots" -msgstr[0] "par de botas de chatarra" -msgstr[1] "pares de botas de chatarra" +msgstr[0] "" +msgstr[1] "" #. ~ Description for pair of scrap boots #: lang/json/ARMOR_from_json.py msgid "Boots made of random scraps." -msgstr "Son unas botas hechas con pedazos de metal." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of steeltoed boots" @@ -14427,9 +14425,6 @@ msgid "" "A pair of inline skates. Very fast on flat floors, but they make it hard to" " move on rough terrain, take hits, or to dodge effectively." msgstr "" -"Es un par de patines en línea, más conocidos como rollers. Muy rápidos para " -"pisos lisos, pero muy difíciles de usar en terreno irregular, para golpear " -"algo o para esquivar ataques." #: lang/json/ARMOR_from_json.py msgid "pair of rollerskates" @@ -14444,9 +14439,6 @@ msgid "" "quite fast on flat floors, they make it difficult to take hits or to move on" " rough terrain." msgstr "" -"Es un viejo par de patines de cuero de ruedas, con armazón de acero. Son " -"bastante rápidos en pisos lisos, pero muy difíciles para caminar en terreno " -"irregular o para golpear algo." #: lang/json/ARMOR_from_json.py msgid "pair of birchbark shoes" @@ -14561,36 +14553,34 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of heelys (off)" msgid_plural "pairs of heelys (off)" -msgstr[0] "par de heelys (apag.)" -msgstr[1] "pares de heelys (apag.)" +msgstr[0] "" +msgstr[1] "" #. ~ Use action msg for pair of heelys (off). #: lang/json/ARMOR_from_json.py msgid "You pop the wheels out." -msgstr "Sacás las rueditas." +msgstr "" #. ~ Description for pair of heelys (off) #: lang/json/ARMOR_from_json.py msgid "A pair of sneakers with wheels, currently the wheels are hidden." msgstr "" -"Es un par de zapatillas con rueditas, que en este momento están metidas." #: lang/json/ARMOR_from_json.py msgid "pair of heelys (on)" msgid_plural "pairs of heelys (on)" -msgstr[0] "par de heelys (enc.)" -msgstr[1] "pares de heelys (enc.)" +msgstr[0] "" +msgstr[1] "" #. ~ Use action msg for pair of heelys (on). #: lang/json/ARMOR_from_json.py msgid "You pop the wheels back in." -msgstr "Metés las rueditas." +msgstr "" #. ~ Description for pair of heelys (on) #: lang/json/ARMOR_from_json.py msgid "A pair of sneakers with wheels, currently the wheels are out." msgstr "" -"Es un par de zapatillas con rueditas, que en este momento están afuera." #: lang/json/ARMOR_from_json.py msgid "back holster" @@ -14674,8 +14664,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "deep concealment holster" msgid_plural "deep concealment holsters" -msgstr[0] "funda secreta" -msgstr[1] "fundas secretas" +msgstr[0] "" +msgstr[1] "" #. ~ Description for deep concealment holster #: lang/json/ARMOR_from_json.py @@ -14684,9 +14674,6 @@ msgid "" "close to the body. It is awkward to use without practice. Activate to " "holster/draw a gun." msgstr "" -"Es una banda elástica con varios lugares para esconder una pistola chiquita " -"cerca del cuerpo. Es un poco incómoda de usar si no tenés práctica. Hay que " -"activarla para enfundar o desenfundar el arma." #: lang/json/ARMOR_from_json.py msgid "survivor harness" @@ -15130,8 +15117,6 @@ msgid "" "This is a template for police/medical badges. If found in a game it is a " "bug." msgstr "" -"Esta es la plantilla para las placas de policía/médicos. Si lo encontrás " -"durante el juego, es un bug." #: lang/json/ARMOR_from_json.py msgid "cybercop badge" @@ -15204,22 +15189,20 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "doctor badge" msgid_plural "doctor badges" -msgstr[0] "placa de médico" -msgstr[1] "placas de médico" +msgstr[0] "" +msgstr[1] "" #. ~ Description for doctor badge #: lang/json/ARMOR_from_json.py msgid "" "A plastic name tag marking the wearer as a real doctor of the medical kind." msgstr "" -"Es una placa plástica para nombre que determina que quien la lleva es un " -"verdadero doctor en medicina." #: lang/json/ARMOR_from_json.py msgid "Foodkid badge" msgid_plural "Foodkid badges" -msgstr[0] "placa de Foodkid" -msgstr[1] "placas de Foodkid" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Foodkid badge #: lang/json/ARMOR_from_json.py @@ -15227,8 +15210,6 @@ msgid "" "A star shaped badge, on it you can read \"Foodkid\" in bold letters. This " "is Foodperson's trusty sidekick's badge." msgstr "" -"Es una placa con forma de estrella que dice \"Foodkid\" en negrita. Es la " -"placa del compañero fiel de Foodperson." #: lang/json/ARMOR_from_json.py msgid "pair of fuzzy cat ears" @@ -15354,15 +15335,14 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "saddle bags" msgid_plural "saddle bagss" -msgstr[0] "bolsa de montura" -msgstr[1] "bolsas de montura" +msgstr[0] "" +msgstr[1] "" #. ~ Description for saddle bags #: lang/json/ARMOR_from_json.py msgid "" "A pair of covered pouches laid across the back of a horse behind the saddle." msgstr "" -"Es un par de bolsas que se pone por sobre el caballo, detrás de la montura." #: lang/json/ARMOR_from_json.py msgid "helmet netting" @@ -15668,8 +15648,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T face mask" msgid_plural "C.R.I.T face masks" -msgstr[0] "máscara C.R.I.T." -msgstr[1] "máscaras C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T face mask #: lang/json/ARMOR_from_json.py @@ -15678,16 +15658,12 @@ msgid "" "protection. A few filters provide decent enviromental 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." #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T boots" msgid_plural "pair of C.R.I.T bootss" -msgstr[0] "par de botas C.R.I.T." -msgstr[1] "pares de botas C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for pair of C.R.I.T boots #: lang/json/ARMOR_from_json.py @@ -15697,16 +15673,12 @@ msgid "" "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." #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T LA boots" msgid_plural "pairs of C.R.I.T LA boots" -msgstr[0] "par de botas C.R.I.T. LA" -msgstr[1] "pares de botas C.R.I.T. LA" +msgstr[0] "" +msgstr[1] "" #. ~ Description for pair of C.R.I.T LA boots #: lang/json/ARMOR_from_json.py @@ -15716,16 +15688,12 @@ msgid "" "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., " -"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." #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T fingertip-less gloves" msgid_plural "pair of C.R.I.T fingertip-less glovess" -msgstr[0] "par de guantes sin dedos C.R.I.T." -msgstr[1] "pares de guantes sin dedos C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for pair of C.R.I.T fingertip-less gloves #: lang/json/ARMOR_from_json.py @@ -15734,15 +15702,12 @@ msgid "" "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." #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T fingertip-less liners" msgid_plural "pair of C.R.I.T fingertip-less linerss" -msgstr[0] "par de guantes internos sin dedos C.R.I.T." -msgstr[1] "pares de guantes internos sin dedos C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for pair of C.R.I.T fingertip-less liners #: lang/json/ARMOR_from_json.py @@ -15751,16 +15716,12 @@ msgid "" " 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, " -"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." #: lang/json/ARMOR_from_json.py msgid "C.R.I.T backpack" msgid_plural "C.R.I.T backpacks" -msgstr[0] "mochila C.R.I.T." -msgstr[1] "mochilas C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T backpack #: lang/json/ARMOR_from_json.py @@ -15770,17 +15731,12 @@ msgid "" "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." #: lang/json/ARMOR_from_json.py msgid "C.R.I.T chestrig" msgid_plural "C.R.I.T chestrigs" -msgstr[0] "arnés utilitario C.R.I.T." -msgstr[1] "arneses utilitarios C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T chestrig #: lang/json/ARMOR_from_json.py @@ -15788,14 +15744,12 @@ msgid "" "C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" " for 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 para colocar placas ligeras de protección." #: lang/json/ARMOR_from_json.py msgid "C.R.I.T leg guards" msgid_plural "C.R.I.T leg guardss" -msgstr[0] "par de perneras C.R.I.T." -msgstr[1] "pares de perneras C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T leg guards #: lang/json/ARMOR_from_json.py @@ -15804,15 +15758,12 @@ msgid "" "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." #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T arm guards" msgid_plural "pairs of C.R.I.T arm guards" -msgstr[0] "par de mangas C.R.I.T." -msgstr[1] "pares de mangas C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for pair of C.R.I.T arm guards #: lang/json/ARMOR_from_json.py @@ -15821,15 +15772,12 @@ msgid "" "insulated with rubber. They are sturdy and will block attacks, but they are " "ridiculously heavy." msgstr "" -"Es un par de mangas hechas de superaleación sobre neopreno, y con una capa " -"de goma. Son duraderas y pueden bloquear ataques, pero son ridículamente " -"pesadas." #: 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." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T web belt #: lang/json/ARMOR_from_json.py @@ -15837,14 +15785,12 @@ msgid "" "C.R.I.T 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." #: lang/json/ARMOR_from_json.py msgid "C.R.I.T infantry duster" msgid_plural "C.R.I.T infantry dusters" -msgstr[0] "gabardina de infantería C.R.I.T." -msgstr[1] "gabardinas de infantería C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T infantry duster #: lang/json/ARMOR_from_json.py @@ -15853,15 +15799,12 @@ msgid "" "but rather protective against any anti-infantry electrical discharges from " "the robots. Has several pockets for storage." msgstr "" -"Es una gabardina gruesa y larga con aislamiento de goma. Es un poco incómoda" -" pero brinda bastante protección contra las descargas eléctricas de los " -"robots. Tiene varios bolsillos." #: lang/json/ARMOR_from_json.py msgid "R&D Engineering Suit" msgid_plural "R&D Engineering Suits" -msgstr[0] "Traje de Ingeniería R&D" -msgstr[1] "Trajes de Ingeniería R&D" +msgstr[0] "" +msgstr[1] "" #. ~ Description for R&D Engineering Suit #: lang/json/ARMOR_from_json.py @@ -15871,17 +15814,12 @@ msgid "" "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 "C.R.I.T Armored Anomaly Suit" msgid_plural "C.R.I.T Armored Anomaly Suits" -msgstr[0] "Traje Anómalo Blindado C.R.I.T." -msgstr[1] "Trajes Anómalos Blindados C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T Armored Anomaly Suit #: lang/json/ARMOR_from_json.py @@ -15891,17 +15829,12 @@ msgid "" " the suit light-weight and the one wearing it alive while offering superb " "resistance to the elements and ambient radiation. " msgstr "" -"Es una armadura relativamente simple. Es un conjunto de fibras compuestas " -"combinadas con una base de traje estéril, y estratégicamente ubicado en " -"placas segmentadas de kevlar que mantienen el bajo peso del traje y al que " -"lo usa, vivo. Ofrece una impresionante resistencia a los elementos y a la " -"radiación ambiental." #: lang/json/ARMOR_from_json.py msgid "C.R.I.T drop leg pouch" msgid_plural "C.R.I.T drop leg pouches" -msgstr[0] "bolsa de pierna C.R.I.T." -msgstr[1] "bolsas de pierna C.R.I.T." +msgstr[0] "" +msgstr[1] "" #. ~ Description for C.R.I.T drop leg pouch #: lang/json/ARMOR_from_json.py @@ -15909,9 +15842,6 @@ msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " "variety is more compact and is favored by the C.R.I.T for its ease of use." msgstr "" -"Son unas bolsas que se pueden poner en los muslos usando las correas que " -"tiene. Este modelo es más compacto y es el preferido por C.R.I.T. por su " -"facilidad de uso." #: lang/json/ARMOR_from_json.py msgid "C.R.I.T Enforcer armor assembly" @@ -16594,9 +16524,6 @@ msgid "" "Concealed in your left arm is a surgically integrated one-shot sawn-off " "shotgun barrel, that pops-up upon activation. Perfect in a pinch." msgstr "" -"Escondida dentro de tu brazo izquierda, hay integrada quirúrgicamente una " -"escopeta recortada de un disparo, que sale cuando es activada. Perfecta para" -" emergencias." #: lang/json/BIONIC_ITEM_from_json.py msgid "Blood Analysis CBM" @@ -17031,8 +16958,8 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Respirator CBM" msgid_plural "Respirator CBMs" -msgstr[0] "MCB Respirador" -msgstr[1] "MCB Respirador" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Respirator CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -17041,10 +16968,6 @@ msgid "" "air and allows breathing water. Will automatically turn on when drowning. " "Turn on to recharge stamina faster, at moderate power cost." msgstr "" -"Es un complejo sistema de aumento de la respiración. Mejora la capacidad " -"respiratoria y permite respirar agua. Se activará automáticamente cuando te " -"estés ahogando. Activalo para recargar la resistencia más rápido, a cambio " -"de un gasto moderado de energía." #: lang/json/BIONIC_ITEM_from_json.py msgid "Terranian Sonar CBM" @@ -17539,10 +17462,6 @@ msgid "" "iron and steel objects at a cost of 1 power per throw, causing them to leave" " a trail of electricity that can cause additional damage." msgstr "" -"Son unos generadores de campos electromagnéticos en tus brazos, incrementan " -"la distancia y el daño causado por el lanzamiento de objetos de hierro y de " -"acero con un costo de 1 unidad de energía por lanzamiento. Además, dejan una" -" estela de electricidad que puede causar daño adicional." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingertip Razors CBM" @@ -17852,10 +17771,6 @@ msgid "" "screwdriver, hammer, wrench, hacksaw, hand drill, and heating elements. You" " can use this in place of many tools when crafting." msgstr "" -"En tus manos y dedos tenés implantados quirúrgicamente un juego de " -"herramientas -destornillador, martillo, llave inglesa taladro y resistencias" -" térmicas. Podés usar esto para reemplazar muchas herramientas cuando " -"fabricás cosas." #: lang/json/BIONIC_ITEM_from_json.py msgid "Joint Torsion Ratchet CBM" @@ -18331,8 +18246,8 @@ msgstr "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Deployable Grenade Launcher CBM" msgid_plural "Deployable Grenade Launcher CBMs" -msgstr[0] "MCB Lanzagranadas Desplegable" -msgstr[1] "MCB Lanzagranadas Desplegable" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Deployable Grenade Launcher CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -18341,15 +18256,12 @@ msgid "" "can serve as a portable, integrated tool for firing 40mm grenades and " "canisters." msgstr "" -"Es un pequeño tubo plegable que está en tu brazo derecho. Una vez " -"implantado, puede usarse como arma integrada y portátil para disparar " -"granadas de 40mm." #: lang/json/BIONIC_ITEM_from_json.py msgid "Linguistic Coprocessor CBM" msgid_plural "Linguistic Coprocessor CBMs" -msgstr[0] "MCB Coprocesador Lingüístico" -msgstr[1] "MCB Coprocesador Lingüístico" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Linguistic Coprocessor CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -18358,15 +18270,12 @@ msgid "" " the speed that it processes language. When installed, it provides a " "passive boost to reading speed." msgstr "" -"Es una microcomputadora instalada en el hemisferio izquierdo de tu cerebro " -"para incrementar la velocidad de procesamiento de lenguaje. Cuando está " -"instalado, acelera tu velocidad de lectura." #: lang/json/BIONIC_ITEM_from_json.py msgid "Dopamine Stimulators CBM" msgid_plural "Dopamine Stimulators CBMs" -msgstr[0] "MCB Simulador de Dopamina" -msgstr[1] "MCB Simulador de Dopamina" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Dopamine Stimulators CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -18376,10 +18285,6 @@ msgid "" "of dopamine and other reward chemicals, inducing a state of euphoria and " "suppressing fear." msgstr "" -"Son un conjunto de pequeños estimuladores nervales biónicos instalados en el" -" centro de recompensa de tu cerebro. Cuando se lo alimenta con energía " -"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 msgid "Ionic Overload Generator CBM" @@ -18817,9 +18722,6 @@ msgid "" " instructions for its use as some sort of ... crowd-control catalyst? That " "can't be right..." msgstr "" -"Este manojo de artículos describe una nueva fórmula química en detalle y " -"ofrece las instrucciones para su uso como algún tipo de... ¿catalizador para" -" controlar a las masas? Debe ser un error..." #: lang/json/BOOK_from_json.py msgid "lab journal-Smythe" @@ -18923,9 +18825,6 @@ msgid "" "\"PE065\". Scribbled notes throughout seem to think that it might work, but" " that there's no time." msgstr "" -"Este manojo de artículos es una propuesta muy especulativa para concentrar " -"el \"PE065\". Los garabatos parecen decir que puede funcionar, pero que ya " -"no hay tiempo." #: lang/json/BOOK_from_json.py msgid "Best Practices for Compound Delivery" @@ -19289,8 +19188,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 generic" msgid_plural "schematics generics" -msgstr[0] "esquema genérico" -msgstr[1] "esquemas genéricos" +msgstr[0] "" +msgstr[1] "" #. ~ Description for schematics generic #. ~ Description for animal @@ -19313,8 +19212,8 @@ msgstr[1] "si ves esto es un bugs" #: lang/json/BOOK_from_json.py msgid "nurse bot schematics" msgid_plural "nurse bot schematics" -msgstr[0] "esquema de enfermerabot" -msgstr[1] "esquemas de enfermerabot" +msgstr[0] "" +msgstr[1] "" #. ~ Description for nurse bot schematics #: lang/json/BOOK_from_json.py @@ -19324,16 +19223,12 @@ msgid "" "you could use the assembly plans to re-assemble the robot from salvaged " "parts." msgstr "" -"Con el logo de Uncanny, estos son planos de ensamblaje, especificaciones de " -"diseño y dibujos técnicos para una enfermerabot. De esto no te sirve casi " -"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" msgid_plural "police bot schematics" -msgstr[0] "esquema de policíabot" -msgstr[1] "esquemas de policíabot" +msgstr[0] "" +msgstr[1] "" #. ~ Description for police bot schematics #: lang/json/BOOK_from_json.py @@ -19342,15 +19237,12 @@ msgid "" "Most of this is useless to you, but you could use the assembly plans to re-" "assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un policíabot. De esto no te sirve casi nada, pero podrías " -"usar los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "eyebot schematics" msgid_plural "eyebot schematics" -msgstr[0] "esquema de ojobot" -msgstr[1] "esquemas de ojobot" +msgstr[0] "" +msgstr[1] "" #. ~ Description for eyebot schematics #: lang/json/BOOK_from_json.py @@ -19359,15 +19251,12 @@ msgid "" "of this is useless to you, but you could use the assembly plans to re-" "assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un ojobot. De esto no te sirve casi nada, pero podrías usar " -"los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "security bot schematics" msgid_plural "security bot schematics" -msgstr[0] "esquema de robot de seguridad" -msgstr[1] "esquemas de robot de seguridad" +msgstr[0] "" +msgstr[1] "" #. ~ Description for security bot schematics #: lang/json/BOOK_from_json.py @@ -19376,15 +19265,12 @@ msgid "" "Most of this is useless to you, but you could use the assembly plans to re-" "assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un robot de seguridad. De esto no te sirve casi nada, pero " -"podrías usar los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "skitterbot schematics" msgid_plural "skitterbot schematics" -msgstr[0] "esquema de arañabot" -msgstr[1] "esquemas de arañabot" +msgstr[0] "" +msgstr[1] "" #. ~ Description for skitterbot schematics #: lang/json/BOOK_from_json.py @@ -19393,15 +19279,12 @@ msgid "" "Most of this is useless to you, but you could use the assembly plans to re-" "assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un arañabot. De esto no te sirve casi nada, pero podrías usar " -"los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "chicken walker schematics" msgid_plural "chicken walker schematics" -msgstr[0] "esquema de mecha-gallina" -msgstr[1] "esquemas de mecha-gallina" +msgstr[0] "" +msgstr[1] "" #. ~ Description for chicken walker schematics #: lang/json/BOOK_from_json.py @@ -19411,16 +19294,12 @@ msgid "" "but you could use the assembly plans to re-assemble the robot from salvaged " "parts." msgstr "" -"Con el logo de Northrop, estos son planos de ensamblaje, especificaciones de" -" diseño y dibujos técnicos para una mecha-gallina. De esto no te sirve casi " -"nada, pero podrías usar los planos para rearmar el robot con las partes " -"recuperadas." #: lang/json/BOOK_from_json.py msgid "cleaner bot schematics" msgid_plural "cleaner bot schematics" -msgstr[0] "esquema de robot de limpieza" -msgstr[1] "esquemas de robot de limpieza" +msgstr[0] "" +msgstr[1] "" #. ~ Description for cleaner bot schematics #: lang/json/BOOK_from_json.py @@ -19429,15 +19308,12 @@ msgid "" "Most of this is useless to you, but you could use the assembly plans to re-" "assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un robot de limpieza. De esto no te sirve casi nada, pero " -"podrías usar los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "miner bot schematics" msgid_plural "miner bot schematics" -msgstr[0] "esquema de minerobot" -msgstr[1] "esquemas de minerobot" +msgstr[0] "" +msgstr[1] "" #. ~ Description for miner bot schematics #: lang/json/BOOK_from_json.py @@ -19446,15 +19322,12 @@ msgid "" "Most of this is useless to you, but you could use the assembly plans to re-" "assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un minerobot. De esto no te sirve casi nada, pero podrías usar" -" los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "riot control bot schematics" msgid_plural "riot control bot schematics" -msgstr[0] "esquema de antidisturbot" -msgstr[1] "esquemas de antidisturbot" +msgstr[0] "" +msgstr[1] "" #. ~ Description for riot control bot schematics #: lang/json/BOOK_from_json.py @@ -19463,15 +19336,12 @@ 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 "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un antidisturbot. De esto no te sirve casi nada, pero podrías " -"usar los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "lab defense bot schematics" msgid_plural "lab defense bot schematics" -msgstr[0] "esquema de robot defensor de laboratorio" -msgstr[1] "esquemas de robot defensor de laboratorio" +msgstr[0] "" +msgstr[1] "" #. ~ Description for lab defense bot schematics #: lang/json/BOOK_from_json.py @@ -19480,16 +19350,12 @@ 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 "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un robot defensor de laboratorio. De esto no te sirve casi " -"nada, pero podrías usar los planos para rearmar el robot con las partes " -"recuperadas." #: lang/json/BOOK_from_json.py msgid "tank drone schematics" msgid_plural "tank drone schematics" -msgstr[0] "esquema de dron tanque" -msgstr[1] "esquemas de dron tanque" +msgstr[0] "" +msgstr[1] "" #. ~ Description for tank drone schematics #: lang/json/BOOK_from_json.py @@ -19499,16 +19365,12 @@ msgid "" "you could use the assembly plans to re-assemble the robot from salvaged " "parts." msgstr "" -"Con el logo de Northrop, estos son planos de ensamblaje, especificaciones de" -" diseño y dibujos técnicos para un dron tanque. De esto no te sirve casi " -"nada, pero podrías usar los planos para rearmar el robot con las partes " -"recuperadas." #: lang/json/BOOK_from_json.py msgid "tripod schematics" msgid_plural "tripod schematics" -msgstr[0] "esquema de trípode" -msgstr[1] "esquemas de trípode" +msgstr[0] "" +msgstr[1] "" #. ~ Description for tripod schematics #: lang/json/BOOK_from_json.py @@ -19517,10 +19379,6 @@ msgid "" "technical drawings for the tripod. Most of this is useless to you, but you " "could use the assembly plans to re-assemble the robot from salvaged parts." msgstr "" -"Con el logo de Honda, estos son planos de ensamblaje, especificaciones de " -"diseño y dibujos técnicos para un trípode. De esto no te sirve casi nada, " -"pero podrías usar los planos para rearmar el robot con las partes " -"recuperadas." #: lang/json/BOOK_from_json.py msgid "dispatch schematics" @@ -19555,8 +19413,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "anti-materiel turret schematics" msgid_plural "anti-materiel turret schematics" -msgstr[0] "esquema de torreta anti-material" -msgstr[1] "esquemas de torreta anti-material" +msgstr[0] "" +msgstr[1] "" #. ~ Description for anti-materiel turret schematics #: lang/json/BOOK_from_json.py @@ -19565,15 +19423,12 @@ msgid "" "turret. Most of this is useless to you, but you could use the assembly " "plans to re-assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para una torreta anti-material. De esto no te sirve casi nada, pero" -" podrías usar los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "milspec searchlight schematics" msgid_plural "milspec searchlight schematics" -msgstr[0] "esquema de foco reflector milspec" -msgstr[1] "esquemas de foco reflector milspec" +msgstr[0] "" +msgstr[1] "" #. ~ Description for milspec searchlight schematics #: lang/json/BOOK_from_json.py @@ -19582,9 +19437,6 @@ msgid "" "searchlight. Most of this is useless to you, but you could use the assembly" " plans to re-assemble the robot from salvaged parts." msgstr "" -"Estos son planos de ensamblaje, especificaciones de diseño y dibujos " -"técnicos para un foco reflector milspec. De esto no te sirve casi nada, pero" -" podrías usar los planos para rearmar el robot con las partes recuperadas." #: lang/json/BOOK_from_json.py msgid "The Art of Glassblowing" @@ -19643,7 +19495,7 @@ msgid "" "A large, paperback book detailing a hundred and one beginner's projects in " "fabrication." msgstr "" -"Es un libro grande en rústica que detalla 101 proyectos de fabricación para " +"Un libro en rústica grande que detalla 101 proyectos de fabricación para " "principiantes." #: lang/json/BOOK_from_json.py @@ -19935,7 +19787,7 @@ msgstr[1] "101 Reparaciones Hogareñas" msgid "" "A paperback book detailing 101 home repair projects the novice carpenter." msgstr "" -"Es un libro en rústica que detalla 101 proyectos de reparaciones hogareñas, " +"Un libro en rústica que detalla 101 proyectos de reparaciones hogareñas, " "para el carpintero principiante." #: lang/json/BOOK_from_json.py @@ -19977,8 +19829,8 @@ msgid "" "A large, paperback book detailing several beginner's projects in " "construction." msgstr "" -"Es un libro grande en rústica que detalla varios proyectos de construcción " -"para principiantes." +"Un gran libro en rústica que detalla varios proyectos de construcción para " +"principiantes." #: lang/json/BOOK_from_json.py msgid "Engineering 301" @@ -20379,8 +20231,8 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Mycenacean Hymns" msgid_plural "Mycenacean Hymnss" -msgstr[0] "Hymnos Myceanos" -msgstr[1] "Hymnos Myceanos" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Mycenacean Hymns #: lang/json/BOOK_from_json.py @@ -20388,9 +20240,6 @@ 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" @@ -20417,8 +20266,7 @@ msgstr[1] "Biblias Ortodoxas de Oriente" #: 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." +"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" @@ -20444,8 +20292,7 @@ msgstr[1] "copias de El Gurú Granth Sahib" #. ~ Description for 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." +msgstr "Una copia de un solo volumen del texto religioso central del Sijismo." #: lang/json/BOOK_from_json.py msgid "Hadith" @@ -21316,7 +21163,7 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a well-worn paperback copy of \"Lord of the Flies\"." -msgstr "Es una copia en rústica gastada de \"El señor de las moscas\"." +msgstr "Es una copia de tapa blanda y gastada de \"El señor de las moscas\"." #: lang/json/BOOK_from_json.py msgid "This is a copy of \"To Kill a Mockingbird\" by Harper Lee." @@ -21370,9 +21217,9 @@ msgid "" "K. G. Ranade. There are scrawled margin notes all over it, apparently the " "workings of a confused and feverish mind." msgstr "" -"Es una copia en rústica del famoso clásico \"Se vienen días oscuros\" de K. " -"G. Ranade. Tiene notas garabateadas en los márgenes, aparentemente hechos " -"por una mente confundida y afiebrada." +"Es una copia de tapa blanda del famoso clásico \"Se vienen días oscuros\" de" +" K. G. Ranade. Tiene notas garabateadas en los márgenes, aparentemente " +"hechos por una mente confundida y afiebrada." #: lang/json/BOOK_from_json.py msgid "" @@ -21388,83 +21235,64 @@ msgid "" "Stephen King, autographed by the author. It contains a certificate of " "authenticity pronouncing it to be a first edition." msgstr "" -"Es una copia de tapa dura perfectamente preservada de \"El pistolero\" de " -"Stephen King, autografiado por el autor. Contiene el certificado de " -"autenticidad que dice ser una primera edición." #: lang/json/BOOK_from_json.py msgid "" "This paperback copy of \"Wuthering Heights\" has a large coffee stain on the" " first page." msgstr "" -"Es una copia en rústica de \"Cumbres borrascosas\", con una mancha grande de" -" café en la primera página." #: lang/json/BOOK_from_json.py msgid "" "This is a hardbound copy of \"Lady Chatterly's Lover\", by D. H. Lawrence. " "It has some very explicit illustrations." msgstr "" -"Es una copia de tapa dura de \"El amante de Lady Chatterley\" de D. H. " -"Lawrence. Tiene unas ilustraciones muy explícitas." #: lang/json/BOOK_from_json.py msgid "" "This is a hardbound copy of \"The Catcher in the Rye.\". It has some very " "nicely done illustrations." msgstr "" -"Es una copia en tapa dura de \"El guardián entre el centeno\". Tiene unas " -"ilustraciones muy bien hechas." #: lang/json/BOOK_from_json.py msgid "" "This is a collection of classic renaissance era stories, headlined by \"Don " "Quixote\"." msgstr "" -"Es una colección de historias clásicas renascentistas, encabezado por \"El " -"Quijote\"." #: lang/json/BOOK_from_json.py msgid "This is a paperback copy of \"The Fellowship of the Ring\" by Tolkien." -msgstr "Es una copia en tapa blanda de \"La comunidad del anillo\" de Tolkien." +msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a paperback copy of \"The Two Towers\" by Tolkien." -msgstr "Es una copia en tapa blanda de \"Las dos torres\" de Tolkien." +msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a paperback copy of \"The Return of the King\" by Tolkien." -msgstr "Es una copia en tapa blanda de \"El retorno del rey\" de Tolkien." +msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is a hardbound collection of George Orwell's works, including \"1984\" " "and \"Animal Farm\" as well as many of his less infamous titles." msgstr "" -"Es una colección en tapa dura de los trabajos de George Orwell, incluyendo " -"\"1984\" y \"Rebelión en la granja\", como también sus escritos menos " -"conocidos." #: lang/json/BOOK_from_json.py msgid "" "This is a paperback copy of \"Little Women\" by Louisa May Alcott. It " "appears to have been read a great many times." msgstr "" -"Es una copia en tapa blanda de \"Mujercitas\" de Louisa May Alcott. Parece " -"haber sido leído muchísimas veces." #: lang/json/BOOK_from_json.py msgid "This is a paperback copy of \"Of Mice and Men\" by Steinbeck." -msgstr "Es una copia en tapa blanda de \"De ratones y hombres\" de Steinbeck." +msgstr "" #: lang/json/BOOK_from_json.py msgid "" "This is a hefty hardcover copy of \"Run and Run Again\" by Finn Calpay. " "There is a lengthy forward about the controversy around the book's release." msgstr "" -"Es una copia pesada en tapa dura de \"Correr y correr otra vez\" de Finn " -"Calpay. Tiene una introducción bastante larga sobre la controversia del " -"lanzamiento del libro." #: lang/json/BOOK_from_json.py msgid "" @@ -21472,62 +21300,49 @@ msgid "" " You feel like you've read this before, but can't remember where. " "Something about the book fills you with unease." msgstr "" -"Es una copia en tapa dura de \"Las puertas se han abierto\" de Arianna " -"Methusalah. Sentís que ya lo leíste, pero no te acordás cuándo. Algo en este" -" libro te hace sentir intranquilo." #: lang/json/BOOK_from_json.py msgid "This is a copy of \"The Count of Monte Cristo\" by Dumas." -msgstr "Es una copia de \"El Conde de Monte Cristo\" de Dumas." +msgstr "" #: lang/json/BOOK_from_json.py msgid "This is a copy of \"The Secret Garden\" by Frances Burnett." -msgstr "Es una copia de \"El jardín secreto\" de Frances Burnett." +msgstr "" #: lang/json/BOOK_from_json.py msgid "collector's edition book" msgid_plural "collector's edition book" -msgstr[0] "libro edición de colección" -msgstr[1] "libro edición de colección" +msgstr[0] "" +msgstr[1] "" #. ~ Description for collector's edition book #: lang/json/BOOK_from_json.py msgid "A unique, valuable book that has been kept as a collector's item." msgstr "" -"Es un libro único y muy valioso que ha sido mantenido como objeto de " -"colección." #: lang/json/BOOK_from_json.py msgid "" "This is a high-quality leather bound copy of Charles Dickens' \"A Tale of " "Two Cities\"." msgstr "" -"Es una copia con tapa de cuero de muy buena calidad de \"Historia de dos " -"ciudades\" de Charles Dickens." #: lang/json/BOOK_from_json.py msgid "" "This is a very old but well-preserved copy of Charles Dickens' \"Oliver " "Twist\"." msgstr "" -"Es una copia muy vieja pero bien preservada de \"Oliver Twiste\" de Charles " -"Dickens." #: lang/json/BOOK_from_json.py msgid "" "This high-quality copy of Jane Austen's \"Pride and Prejudice\" is dog-eared" " and looks to have been read many times." msgstr "" -"Es una copia de muy buena calidad de \"Orgullo y prejuicio\" de Jane Austen," -" tiene páginas dobladas y parece haber sido leído muchas veces." #: lang/json/BOOK_from_json.py msgid "" "This is a hefty, hardcover print of William Shinderling's \"Vanity before " "Justice\" with beautiful illustrations." msgstr "" -"Es una copia pesada de tapa dura de \"Vanidad antes que justicia\" de " -"William Shinderling, con bellísimas ilustraciones." #: lang/json/BOOK_from_json.py msgid "" @@ -21535,32 +21350,24 @@ msgid "" "authenticity declaring it to be an early edition. It would have been worth " "an enormous amount of money, not long ago." msgstr "" -"Es una copia de \"Sentido y sensibilidad\" de Jane Austen con 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 "" "This is an excellent quality copy of \"To Kill a Mockingbird\" by Harper " "Lee." msgstr "" -"Es una copia de excelente calidad de \"Matar a un ruiseñor\" de Harper Lee." #: lang/json/BOOK_from_json.py msgid "" "This is a high-quality leather bound copy of F. Scott Fitzgerald's \"The " "Great Gatsby.\"" msgstr "" -"Es una copia de muy buena calidad con tapa de cuero de \"El gran Gatsby\" de" -" F. Scott Fitzgerald." #: lang/json/BOOK_from_json.py msgid "" "This is a hefty, hardcover print of Michael Abanaderly's opus, \"Lady " "Wanderlust\". It is over a hundred years old, but doesn't look it." msgstr "" -"Es una copia pesada de tapa dura de \"Lady Wanderlust\" de Michael " -"Abanaderly. Tiene más de cien años de antigüedad, pero no parece." #: lang/json/BOOK_from_json.py msgid "" @@ -21568,17 +21375,12 @@ 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 \"Farenheit 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 "" "This high-quality copy of \"Pride and Prejudice and Zombies\" has been " "autographed by the author." msgstr "" -"Es una copia de muy buena calidad de \"Orgullo y prejuicio y zombis\", " -"autografiada por el autor." #: lang/json/BOOK_from_json.py msgid "" @@ -21586,9 +21388,6 @@ msgid "" " Finn\" by Mark Twain. It contains some margin notes which themselves are " "quite old, and look to have been done by a scholar of some sort." msgstr "" -"Es una copia con tapa de cuero de muy buena calidad de \"Las aventuras de " -"Huckleberry Finn\" de Mark Twain. Tiene algunas notas escritas en los " -"márgenes que parecen bastante viejas, y hechas por algún estudiante." #: lang/json/BOOK_from_json.py msgid "" @@ -21596,8 +21395,6 @@ msgid "" "certificate of authenticity with it that declares it a genuine early " "edition." msgstr "" -"Es una muy linda edición de \"Drácula\" de Bram Stroker. Tiene certificado " -"de autenticidad que dice ser una genuina primera edición." #: lang/json/BOOK_from_json.py msgid "" @@ -21605,17 +21402,12 @@ msgid "" "certificate of authenticity declaring it to be a first edition, and is " "autographed by the author himself." msgstr "" -"Es una copia de \"Guía del autoestopista galáctico\" de Douglas Adams, con " -"un certificado de autenticidad que declara ser primera edición, y está " -"autografiada por el autor." #: lang/json/BOOK_from_json.py msgid "" "This is a high-quality leather bound copy of the well-known classic \"Dark " "Days Ahead\", by K. G. Ranade." msgstr "" -"Es una copia con tapa de cuero de muy buena calidad del clásico \"Dark Days " -"Ahead\" de K. G. Ranade." #: lang/json/BOOK_from_json.py msgid "" @@ -21623,9 +21415,6 @@ msgid "" "Atwood. Inscribed in the inner cover is a faded note wishing the owner a " "happy birthday." msgstr "" -"Es una copia con tapa de cuero muy bien conservada de \"Oryx y Crake\" de " -"Margaret Atwood. En la solapa interior tiene una nota medio borrada que le " -"desea al dueño del libro un feliz cumpleaños." #: lang/json/BOOK_from_json.py msgid "" @@ -21633,25 +21422,18 @@ msgid "" "carefully preserved, and appears to be a first or second edition judging " "from the publisher's information." msgstr "" -"Es una copia de tapa dura naranja de \"1984\" de George Orwell " -"cuidadosamente conservada, y que parece ser primera o segunda edición, a " -"juzgar por la información de la editorial." #: lang/json/BOOK_from_json.py msgid "" "This is a very nice copy of \"Lady Chatterly's Lover\", probably quite " "expensive in the days before the apocalypse." msgstr "" -"Es una copia muy linda de \"El amante de Lady Chatterley\", probablemente " -"bastante cara en los días previos al apocalipsis." #: lang/json/BOOK_from_json.py msgid "" "This is a high quality early edition hardcover copy of \"The Handmaid's " "Tale\" by Margaret Atwood, signed by the author." msgstr "" -"Es una copia de muy buena calidad y primera edición en tapa dura de \"El " -"cuento de la criada\" de Margaret Atwood, firmada por la autora." #: lang/json/BOOK_from_json.py msgid "" @@ -21660,11 +21442,6 @@ msgid "" "have been worth an absolute fortune. Now it's either a priceless piece of " "history, some light reading before bed, or excellent kindling." msgstr "" -"Este copia de \"Don Quixote\" antigua y desgastada parece ser del siglo " -"XVIII o principios del XIX, y está escrita a mano. En los días de los " -"comerciantes de libros esto debería haber valido una fortuna. Ahora, o es un" -" pedazo invalorable de historia, o una lectura leve para antes de dormir, o " -"excelente para encender un fueguito." #: lang/json/BOOK_from_json.py msgid "" @@ -21672,9 +21449,6 @@ msgid "" "In the inner cover is a handwritten note that reads \"To Chris, thanks for " "believing I could do it. Best regards, Terry.\"" msgstr "" -"Es una primera edición de \"El color de la magia\" de Terry Pratchett. En la" -" 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 "Tactical Handgun Digest" @@ -22120,15 +21894,13 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Traditional Japanese Kimono" msgid_plural "Traditional Japanese Kimonos" -msgstr[0] "Kimonos Tradicionales Japoneses" -msgstr[1] "Kimonos Tradicionales Japoneses" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Traditional Japanese Kimono #: lang/json/BOOK_from_json.py msgid "An illustrated textbook on the crafting of Japanese traditional garb." msgstr "" -"Es un libro de texto ilustrado acerca de la fabricación de indumentario " -"clásica japonesa." #: lang/json/BOOK_from_json.py msgid "Friendly, Humane Fashion" @@ -22307,8 +22079,8 @@ 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" +msgstr[0] "" +msgstr[1] "" #. ~ Description for original copy of Housefly #: lang/json/BOOK_from_json.py @@ -22318,17 +22090,12 @@ msgid "" "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 "lab journal-Curie" msgid_plural "lab journals-Curie" -msgstr[0] "registro de laboratorio-Curie" -msgstr[1] "registros de laboratorio-Curie" +msgstr[0] "" +msgstr[1] "" #. ~ Description for lab journal-Curie #: lang/json/BOOK_from_json.py @@ -22341,20 +22108,12 @@ msgid "" " you're ready to start a second Cataclysm, but the details about the " "miniaturized handheld version on the next page might be useful..." msgstr "" -"Este libro de notas de laboratorio está lleno de descubrimientos colectivos " -"y refinamientos en investigación en grupo dedicado a la energía nuclear. Más" -" que nada, concierne acerca de la fisión pero también tiene planos para el " -"plutonio de reciclado, la adaptación de la energía nuclear en las baterías " -"de uso diario, especificaciones de los productos Rivtech, y... planos para " -"una ojiva nuclear. No creés estar preparado para comenzar un segundo " -"Cataclismo, pero los detalles de su versión miniatura de la página siguiente" -" te podría servir..." #: 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" +msgstr[0] "" +msgstr[1] "" #. ~ Description for USMC M1014 technical manual #: lang/json/BOOK_from_json.py @@ -22364,16 +22123,12 @@ msgid "" "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" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Black Powder to Berettas #: lang/json/BOOK_from_json.py @@ -22384,16 +22139,12 @@ msgid "" "passing knowledge in pistols, but an experienced handgun user could glean " "much from it." msgstr "" -"Este libro de tapa dura, dirigida al fanático de las armas, tiene una " -"historia concisa e ilustrada del arma de mano, incluyendo especificaciones y" -" técnicas de uso. Es difícil de seguir sin tener conocimiento en pistolas, " -"pero un usuario avanzado puede obtener mucha información." #: 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" +msgstr[0] "" +msgstr[1] "" #. ~ Description for America's Rifle #: lang/json/BOOK_from_json.py @@ -22403,16 +22154,12 @@ msgid "" " of the M1 Garand rifle's use throughout history as well as its design and " "quirks with the weapon." msgstr "" -"Es un libro de historia escrito con bolígrafo por un autor desconocido. " -"Comienza por el diseño hecho por John Garand y termina en la guerra de " -"Vietnam. Brinda detalles del uso del rifle M1 Garand a través de la " -"historia, y también del diseño y peculiaridades del arma." #: lang/json/BOOK_from_json.py msgid "Jane's Flamethrowers and Firestarters" msgid_plural "copies of Jane's Flamethrowers and Firestarters" -msgstr[0] "copia de Lanzallamas y Enciendefuegos de Jane" -msgstr[1] "copias de Lanzallamas y Enciendefuegos de Jane" +msgstr[0] "" +msgstr[1] "" #. ~ Description for Jane's Flamethrowers and Firestarters #: lang/json/BOOK_from_json.py @@ -22422,10 +22169,6 @@ msgid "" "Mortars and Rocket Launchers, and so it's mostly incomprehensible to anyone " "without prior knowledge." msgstr "" -"Es una guía detallada y colorida sobre lanzallamas, armas incendiarias y " -"napalm. Está basado en la información de su libro hermano, \"Lanzamisiles y " -"Morteros de Jane\", así que resulta casi incomprensible sin conocimientos " -"previos." #: lang/json/BOOK_from_json.py msgid "Nuclear Physics Made Easy" @@ -22627,15 +22370,13 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "A Beginner's Guide to Alchemy" msgid_plural "A Beginner's Guide to Alchemys" -msgstr[0] "Guía de Principiante en Alquimia" -msgstr[1] "Guía de Principiante en Alquimia" +msgstr[0] "" +msgstr[1] "" #. ~ Description for A Beginner's Guide to Alchemy #: lang/json/BOOK_from_json.py msgid "A paperback tome for the art of liquid magic, alcohol not included." msgstr "" -"Es un tomo de tapa blanda acerca del arte de la magia líquida, pero no " -"incluye alcohol." #: lang/json/BOOK_from_json.py msgid "The Weapons of Asgard" @@ -22999,8 +22740,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dimethyl sulfoxide" msgid_plural "dimethyl sulfoxide" -msgstr[0] "dimetilsulfóxido" -msgstr[1] "dimetilsulfóxido" +msgstr[0] "" +msgstr[1] "" #. ~ Description for dimethyl sulfoxide #: lang/json/COMESTIBLE_from_json.py @@ -23010,16 +22751,12 @@ msgid "" "that it absorbs very quickly through the skin, causing a garlic flavor in " "the mouth even if it touched your arm." msgstr "" -"Es dimetilsulfóxido, o DMSO, un solvente aprótico común e importante, capaz " -"de disolver una gran variedad de cosas. Tiene la extraña propiedad de " -"absorberse rápidamente a través de la piel, causando gusto a ajo en la boca " -"incluso solo tocando un brazo." #: lang/json/COMESTIBLE_from_json.py msgid "chloroform" msgid_plural "chloroform" -msgstr[0] "cloroformo" -msgstr[1] "cloroformo" +msgstr[0] "" +msgstr[1] "" #. ~ Description for chloroform #: lang/json/COMESTIBLE_from_json.py @@ -23028,15 +22765,12 @@ msgid "" "very good solvent. In particular, it's used a lot in nuclear magnetic " "resonance spectroscopy." msgstr "" -"Famoso por su capacidad como sedante ilícito, esta sustancia es también un " -"buen solvente. En particular, es muy utilizado en espectroscopia resonancia " -"magnética nuclear." #: lang/json/COMESTIBLE_from_json.py msgid "phenol" msgid_plural "phenol" -msgstr[0] "fenol" -msgstr[1] "fenol" +msgstr[0] "" +msgstr[1] "" #. ~ Description for phenol #: lang/json/COMESTIBLE_from_json.py @@ -23047,16 +22781,12 @@ msgid "" " and it can burn your skin away like tissue paper under a heat gun. Wear " "gloves." msgstr "" -"Esta útil cosa es un potente solvente y tiene un amplio rango de " -"aplicaciones. Puede ser usado para hacer una enorme cantidad de plásticos y " -"polímeros, puede ser un desinfectante, puede quitar pintar y romper epoxy, y" -" puede quemarte la piel como si fuera papel bajo el fuego. Usá guantes." #: lang/json/COMESTIBLE_from_json.py msgid "glycerol" msgid_plural "glycerol" -msgstr[0] "glicerol" -msgstr[1] "glicerol" +msgstr[0] "" +msgstr[1] "" #. ~ Description for glycerol #: lang/json/COMESTIBLE_from_json.py @@ -23064,15 +22794,12 @@ 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 "" -"Este líquido inocente, dulce e incoloro puede ser usado en muchas cosas, " -"desde endulzar comida hasta manufacturar medicina y hacer potentes " -"explosivos." #: lang/json/COMESTIBLE_from_json.py msgid "peptone broth powder" msgid_plural "peptone broth powder" -msgstr[0] "caldo de peptona" -msgstr[1] "caldo de peptona" +msgstr[0] "" +msgstr[1] "" #. ~ Description for peptone broth powder #: lang/json/COMESTIBLE_from_json.py @@ -23081,15 +22808,12 @@ msgid "" "bacteria to eat, but if you were desperate you could eat it too; it's not " "much different from cup noodle stock." msgstr "" -"Es una solución salada premezclada de proteína y azúcar. Está diseñada para " -"ser consumida por las bacterias, pero si estás desesperado podés comerla " -"vos. No es muy distinta a uno de esas sopas de fideos en cajita." #: lang/json/COMESTIBLE_from_json.py msgid "agar" msgid_plural "agar" -msgstr[0] "agar" -msgstr[1] "agar" +msgstr[0] "" +msgstr[1] "" #. ~ Description for agar #: lang/json/COMESTIBLE_from_json.py @@ -23099,16 +22823,12 @@ msgid "" "making gels to separate molecules by size, but it's a great cheat ingredient" " to make sure your jellies set properly." msgstr "" -"Estas láminas transparentes de alga procesada puede ser disuelta en agua " -"hirviendo para crear un gel muy fuerte y resistente a la temperatura. No " -"solamente es bueno para hacer gel para separar las moléculas por tamaño, " -"también sirve como ingrediente para hacer que tus gelatinas firmes." #: lang/json/COMESTIBLE_from_json.py msgid "acrylamide" msgid_plural "acrylamide" -msgstr[0] "acrilamida" -msgstr[1] "acrilamida" +msgstr[0] "" +msgstr[1] "" #. ~ Description for acrylamide #: lang/json/COMESTIBLE_from_json.py @@ -23116,8 +22836,6 @@ msgid "" "This highly carcinogenic white powder can be readily polymerized into a " "whole bunch of useful water-soluble gels." msgstr "" -"Este polvo blanco altamente cancerígeno puede ser inmediatamente " -"polimerizado a un gran conjunto de gel soluble en agua." #: lang/json/COMESTIBLE_from_json.py msgid "Spice" @@ -23750,7 +23468,7 @@ msgstr "juanqueque" #. ~ Description for johnnycake #: lang/json/COMESTIBLE_from_json.py msgid "A dense and tasty fried bread treat." -msgstr "Es un pedazo de pan frito denso y sabroso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "corn tortilla" @@ -23782,7 +23500,6 @@ msgstr "galleta" #: lang/json/COMESTIBLE_from_json.py msgid "Wholesome and filling, this home made biscuit is pretty good!" msgstr "" -"Saludables y rendidoras, ¡estas galletas caseras están bastante buenas!" #: lang/json/COMESTIBLE_from_json.py msgid "wastebread" @@ -23827,20 +23544,19 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fermenting gin mash" msgid_plural "fermenting gin mashes" -msgstr[0] "pasta de gin fermentando" -msgstr[1] "pastas de gin fermentando" +msgstr[0] "" +msgstr[1] "" #. ~ Description for fermenting gin mash #: lang/json/COMESTIBLE_from_json.py msgid "Undistilled gin mash. Distilling it will produce gin." msgstr "" -"Es la pasta de gin todavía sin destilar. Una vez destilada, producirá gin." #: lang/json/COMESTIBLE_from_json.py msgid "gin mash" msgid_plural "gin mashes" -msgstr[0] "pasta de gin" -msgstr[1] "pastas de gin" +msgstr[0] "" +msgstr[1] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py @@ -23848,8 +23564,6 @@ msgid "" "Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" -"Es pasta de gin, ya los gálbulos le han agregado sabor, está listo para ser " -"destilado o se puede tomar así como está." #: lang/json/COMESTIBLE_from_json.py msgid "vodka wort" @@ -24334,9 +24048,6 @@ msgid "" "quickly. It can be a delicacy if properly prepared - but if improperly " "prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"Es un pedazo de pulmón de un animal. Es esponjoso y rosa, y se pudre muy " -"rápido. Puede ser una exquisitez si se lo prepara correctamente, pero si se " -"lo prepara mal, es un pedazos gomoso de tejido conectivo sin sabor." #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -24351,9 +24062,6 @@ msgid "" "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" -"Preparado de esta manera, es un pedazo de tejido conectivo gomoso y gris sin" -" sabor. No parece más sabroso que cuando estaba crudo, pero al menos los " -"parásitos han sido eliminados." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -24703,7 +24411,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "seeping heart" -msgstr "corazón con agujeritos" +msgstr "" #. ~ Description for seeping heart #: lang/json/COMESTIBLE_from_json.py @@ -24711,8 +24419,6 @@ msgid "" "A thick mass of flesh superficially resembling a mammalian heart, covered in" " dimpled grooves and the size of your fist." msgstr "" -"Es una masa gruesa de carne del tamaño de un puño, que tiene un parecido con" -" el corazón de un mamífero, y está cubierto de ranuras y hoyuelos." #: lang/json/COMESTIBLE_from_json.py msgid "putrid heart" @@ -24752,8 +24458,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw milk" msgid_plural "raw milk" -msgstr[0] "leche sin pasteurizar" -msgstr[1] "leche sin pasteurizar" +msgstr[0] "" +msgstr[1] "" #. ~ Description for raw milk #: lang/json/COMESTIBLE_from_json.py @@ -24763,16 +24469,12 @@ msgid "" "it. Depending on your dietary sensibilities, you might want to pasteurize " "or even boil this before drinking." msgstr "" -"Es leche cruda de vaca, sin homogeneizar ni pasteurizar. Es lo más fresco " -"que vas a verla, salvo que la tomés derecho de la vaca, lo que podría " -"molestarle. Dependiendo de tu sensibilidad dietaria, podrías preferir " -"pasteurizarla o hervirla antes de tomarla." #: lang/json/COMESTIBLE_from_json.py msgid "shelf stable milk" msgid_plural "shelf stable milk" -msgstr[0] "leche larga vida" -msgstr[1] "leche larga vida" +msgstr[0] "" +msgstr[1] "" #. ~ Description for shelf stable milk #: lang/json/COMESTIBLE_from_json.py @@ -24781,28 +24483,24 @@ msgid "" "normal. It tastes slightly different, but, unopened, will last far longer " "than regular milk." msgstr "" -"Esta lechc ha sido pasteurizada a temperaturas muy superiores a la normal. " -"Tiene un gusto un poco diferente, pero, sin abrir, puede durar mucho más que" -" la leche común." #: lang/json/COMESTIBLE_from_json.py msgid "evaporated milk" msgid_plural "evaporated milk" -msgstr[0] "leche evaporada" -msgstr[1] "leche evaporada" +msgstr[0] "" +msgstr[1] "" #. ~ Description for evaporated milk #: lang/json/COMESTIBLE_from_json.py #, no-python-format msgid "Milk that's had about 60% of its water removed prior to canning." msgstr "" -"Es leche a la que se le ha quitado el 60% del agua antes de ser enlatada." #: lang/json/COMESTIBLE_from_json.py msgid "buttermilk" msgid_plural "buttermilk" -msgstr[0] "suero de manteca" -msgstr[1] "suero de manteca" +msgstr[0] "" +msgstr[1] "" #. ~ Description for buttermilk #: lang/json/COMESTIBLE_from_json.py @@ -24810,8 +24508,6 @@ msgid "" "This is cultured milk defatted either due to churning or curdling. Spoils " "quickly." msgstr "" -"Es leche cultivada sin grasa, ya sea por medio de haber sido batida o " -"cuajada. Se pudre rápidamente." #: lang/json/COMESTIBLE_from_json.py msgid "yogurt" @@ -24825,22 +24521,20 @@ msgstr "Delicioso producto lácteo fermentado. Tiene gusto a vainilla." #: lang/json/COMESTIBLE_from_json.py msgid "butter" msgid_plural "butter" -msgstr[0] "manteca" -msgstr[1] "manteca" +msgstr[0] "" +msgstr[1] "" #. ~ Description for butter #: lang/json/COMESTIBLE_from_json.py msgid "" "A yellow stick of milkfat and milk solids, usually made from cow's milk." msgstr "" -"Es un pedazo amarillo de grasa de leche y leche sólida, usualmente hecha a " -"partir de la leche de vaca." #: lang/json/COMESTIBLE_from_json.py msgid "ghee" msgid_plural "ghee" -msgstr[0] "ghee" -msgstr[1] "ghee" +msgstr[0] "" +msgstr[1] "" #. ~ Description for ghee #: lang/json/COMESTIBLE_from_json.py @@ -24848,8 +24542,6 @@ msgid "" "Clarified butter, free from milk solids and water. Will last a very long " "time." msgstr "" -"Es manteca clarificada, hecha con leche sólida y agua. Puede durar mucho " -"tiempo." #: lang/json/COMESTIBLE_from_json.py msgid "pudding" @@ -24950,7 +24642,7 @@ msgstr "Exprimida de manzanas frescas. Sabrosa y nutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "almond milk" -msgstr "leche de almendra" +msgstr "" #. ~ Description for almond milk #: lang/json/COMESTIBLE_from_json.py @@ -24958,12 +24650,10 @@ 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" -msgstr "leche de soja" +msgstr "" #. ~ Description for soy milk #: lang/json/COMESTIBLE_from_json.py @@ -24971,8 +24661,6 @@ msgid "" "Milk some soybeans? Not quite, but blend them with water, yes! A dairy-" "free alternative strong in protein! Rival to almond milk." msgstr "" -"¿Ordeñar soja? No, pero mezclarla con agua, ¡sí! Es una alternativa a la " -"leche, rica en proteínas. Compite con la leche de almendra." #: lang/json/COMESTIBLE_from_json.py msgid "atomic coffee" @@ -30632,8 +30320,8 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of junipers" msgid_plural "handful of junipers" -msgstr[0] "puñado de gálbulos" -msgstr[1] "puñado de gálbulos" +msgstr[0] "" +msgstr[1] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py @@ -30641,8 +30329,6 @@ msgid "" "Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" -"Son gálbulos, se usan para hacer gin y por su sabor natural. Son picantes y " -"tiene un sabor similar al romero." #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled pistachios" @@ -38024,8 +37710,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken lab defense bot" msgid_plural "broken lab defense bots" -msgstr[0] "robot defensor de laboratorio roto" -msgstr[1] "robots defensores de laboratorio rotos" +msgstr[0] "" +msgstr[1] "" #. ~ Description for broken lab defense bot #: lang/json/GENERIC_from_json.py @@ -38033,8 +37719,6 @@ msgid "" "A broken lab defense bot, with its casing broken and fluid drained. Could " "be gutted for parts." msgstr "" -"Es un robot defensor de laboratorio, con su chasis roto y perdiendo fluidos." -" Puede ser desarmado para recuperar partes." #: lang/json/GENERIC_from_json.py msgid "broken police bot" @@ -38125,7 +37809,7 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken tank drone" msgid_plural "broken tank drones" -msgstr[0] "dron tanque roto" +msgstr[0] "drone tanque roto" msgstr[1] "drones tanque rotos" #. ~ Description for broken tank drone @@ -38135,8 +37819,8 @@ msgid "" "inoperative, possibly due to the sheer size and mass. Could be gutted for " "parts." msgstr "" -"Es un dron tanque roto. A pesar de estar totalmente fuera de servicio sigue " -"siendo intimidatorio, posiblemente debido a su tamaño y masa. Puede ser " +"Es un drone tanque roto. A pesar de estar totalmente fuera de servicio sigue" +" siendo intimidatorio, posiblemente debido a su tamaño y masa. Puede ser " "desarmado para recuperar las partes." #: lang/json/GENERIC_from_json.py @@ -40786,8 +40470,8 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "tripod chassis" msgid_plural "tripod chassis" -msgstr[0] "chasis de trípode" -msgstr[1] "chasis de trípode" +msgstr[0] "" +msgstr[1] "" #. ~ Description for tripod chassis #: lang/json/GENERIC_from_json.py @@ -40795,8 +40479,6 @@ msgid "" "What's left when you remove all moving parts and electronics. It's the " "skeleton and armor of the tripod." msgstr "" -"Es lo que queda cuando sacás todas las partes y lo electrónico. Es el " -"esqueleto y la armadura del trípode." #: lang/json/GENERIC_from_json.py msgid "chicken walker chassis" @@ -50160,12 +49842,12 @@ 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." +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] "dron tanque desarmado roto" +msgstr[0] "drone tanque desarmado roto" msgstr[1] "drones tanque desarmados rotos" #. ~ Description for broken disarmed tank drone @@ -50174,7 +49856,7 @@ 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 " +"Es un drone tanque roto. Puede ser desarmado para recuperar partes o " "convertido en un robot recuperado." #: lang/json/GENERIC_from_json.py @@ -56189,8 +55871,6 @@ msgid "" "An adorable, defenseless Labrador puppy. Much safer to tame than an adult " "dog." msgstr "" -"Es un cachorrito de labrador, adorable e indefenso. Mucho más fácil de " -"domesticar que uno adulto." #: lang/json/MONSTER_from_json.py msgid "bulldog" @@ -57786,7 +57466,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "miner bot" -msgstr "minerobot" +msgstr "robot anti-minas" #. ~ Description for miner bot #: lang/json/MONSTER_from_json.py @@ -58015,7 +57695,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "tripod" -msgstr "trípode" +msgstr "" #. ~ Description for tripod #: lang/json/MONSTER_from_json.py @@ -71865,8 +71545,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive miner bot" msgid_plural "inactive miner bots" -msgstr[0] "minerobot inactivo" -msgstr[1] "minerobots inactivos" +msgstr[0] "" +msgstr[1] "" #. ~ Use action friendly_msg for inactive miner bot. #: lang/json/TOOL_from_json.py @@ -71938,14 +71618,13 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive lab defense bot" msgid_plural "inactive lab defense bots" -msgstr[0] "robot defensor de laboratorio inactivo" -msgstr[1] "robots defensores de laboratorio inactivos" +msgstr[0] "" +msgstr[1] "" #. ~ Use action friendly_msg for inactive lab defense bot. #: lang/json/TOOL_from_json.py msgid "The lab defense bot shudders briefly and skitters away." msgstr "" -"El robot defensor de laboratorio tiembla por un momento y se estremece." #. ~ Use action hostile_msg for inactive lab defense bot. #: lang/json/TOOL_from_json.py @@ -71953,8 +71632,6 @@ msgid "" "The lab defense bot raises its front legs and shines a multitude of colored " "lights in your face!" msgstr "" -"¡El robot defensor de laboratorio levanta sus patas delanteras y hace " -"brillar muchos rayos de colores en tu cara!" #. ~ Description for inactive lab defense bot #: lang/json/TOOL_from_json.py @@ -71969,13 +71646,13 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive tank drone" msgid_plural "inactive tank drones" -msgstr[0] "dron tanque inactivo" -msgstr[1] "drones tanques inactivos" +msgstr[0] "" +msgstr[1] "" #. ~ Use action friendly_msg for inactive tank drone. #: lang/json/TOOL_from_json.py msgid "The tank drone rolls out and begins acquiring targets." -msgstr "El dron tanque avanza y comienza a buscar objetivos." +msgstr "" #. ~ Use action hostile_msg for inactive tank drone. #: lang/json/TOOL_from_json.py @@ -71983,8 +71660,6 @@ 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. ¡Ponete los " -"pantalones marrones!" #. ~ Description for inactive tank drone #: lang/json/TOOL_from_json.py @@ -72001,8 +71676,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive tripod" msgid_plural "inactive tripods" -msgstr[0] "trípode inactivo" -msgstr[1] "trípodes inactivos" +msgstr[0] "" +msgstr[1] "" #. ~ Use action friendly_msg for inactive tripod. #: lang/json/TOOL_from_json.py @@ -111053,7 +110728,7 @@ msgid "" " reducing wet effects." msgstr "" "Nosotros hemos comenzado a adaptar la fisiología local hacia la estructura " -"física Mycus, reduciendo mucho los efectos de estar mojado." +"física Mycis, reduciendo mucho los efectos de estar mojado." #: lang/json/mutation_from_json.py msgid "Mycus Fireproofing" @@ -115259,7 +114934,7 @@ msgid "" "but there's always work for a good doctor." msgstr "" "Justo terminaste todas las formalidades administrativas de tu residencia, " -"cuando sucedió el Cataclismo. \"Tu\" hospital fue invadido y evacuado, pero " +"cuando ocurrió el Cataclismo. \"Tu\" hospital fue invadido y evacuado, pero " "siempre hay trabajo para un buen doctor." #: lang/json/mutation_from_json.py @@ -121225,7 +120900,7 @@ msgid "" "when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" " need a smoke." msgstr "" -"Cuando sucedió el Cataclismo, estabas en el umbral de hacer un gran " +"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. Necesitás un cigarrillo." @@ -121242,7 +120917,7 @@ msgid "" "when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" " need a smoke." msgstr "" -"Cuando sucedió el Cataclismo, estabas en el umbral de hacer un gran " +"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. Necesitás un cigarrillo." @@ -121734,7 +121409,7 @@ msgid "" msgstr "" "Trabajabas para algunas pequeñas empresas haciendo trabajos eléctricos " "menores, y justo estabas trabajando en uno de esos refugios de evacuados " -"cuando sucedió el cataclismo. Lamentablemente, no pudiste terminar de " +"cuando ocurrió el cataclismo. Lamentablemente, no pudiste terminar de " "conectar nada excepto la computadora... que ahora no te sirve de mucho." #: lang/json/professions_from_json.py @@ -121753,7 +121428,7 @@ msgid "" msgstr "" "Trabajabas para algunas pequeñas empresas haciendo trabajos eléctricos " "menores, y justo estabas trabajando en uno de esos refugios de evacuados " -"cuando sucedió el cataclismo. Lamentablemente, no pudiste terminar de " +"cuando ocurrió el cataclismo. Lamentablemente, no pudiste terminar de " "conectar nada excepto la computadora... que ahora no te sirve de mucho." #: lang/json/professions_from_json.py @@ -123665,7 +123340,7 @@ msgid "" "tip!" msgstr "" "Estabas entregando la última pizza de la noche al laboratorio de " -"criogénesis, cuando sucedió el cataclismo. Escapaste al refugio más cercano," +"criogénesis, cuando ocurrió el cataclismo. Escapaste al refugio más cercano," " y solo te queda tu buen juicio y sobras de pizza. ¡Y ni siquiera te dieron " "propina!" @@ -123684,7 +123359,7 @@ msgid "" "tip!" msgstr "" "Estabas entregando la última pizza de la noche al laboratorio de " -"criogénesis, cuando sucedió el cataclismo. Escapaste al refugio más cercano," +"criogénesis, cuando ocurrió el cataclismo. Escapaste al refugio más cercano," " y solo te queda tu buen juicio y sobras de pizza. ¡Y ni siquiera te dieron " "propina!" @@ -123736,7 +123411,7 @@ msgid "" "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 " +"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 @@ -123753,7 +123428,7 @@ msgid "" "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 " +"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 @@ -141627,7 +141302,7 @@ 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 " +"\"Drone tanque, enfretate 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 @@ -160915,7 +160590,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "juniper tree" -msgstr "enebro" +msgstr "" #. ~ Description for juniper tree #: lang/json/terrain_from_json.py @@ -160926,11 +160601,6 @@ msgid "" "you examined the foliage more closely, you could probably find some viable " "clusters. You could also cut it down with the right tools." msgstr "" -"Es una de las especies de 'Juniperus' que crece en New England, los frutos " -"del enebro crecen en dos o tres años, luego de florecer. Al segundo año " -"produce un fruto verde, al último, producen los más conocidos de color azul." -" Si examinás el follaje más de cerca, podrías encontrar algunos racimos. " -"También podrías talarlo con las herramientas adecuadas." #. ~ Description for juniper tree #: lang/json/terrain_from_json.py @@ -160941,11 +160611,6 @@ msgid "" "blue varieties. Looks like all the ripe bunches of berries have been " "picked. You could also cut it down with the right tools." msgstr "" -"Es una de las especies de 'Juniperus' que crece en New England, los frutos " -"del enebro crecen en dos o tres años. En el primer año florecen, en el " -"segundo año producen un fruto verde, y en el último, producen el fruto azul," -" más conocido. Parece que todos los racimos maduros ya han sido sacados. " -"También podrías talarlo con las herramientas adecuadas." #: lang/json/terrain_from_json.py msgid "peach tree" diff --git a/lang/po/es_ES.po b/lang/po/es_ES.po index ee37ec32a0623..c7d3f1164476e 100644 --- a/lang/po/es_ES.po +++ b/lang/po/es_ES.po @@ -5,10 +5,10 @@ # keno xite , 2019 # Emma Forner, 2019 # lokatronao , 2019 +# Miguel de Dios Matias , 2019 # Toni López , 2019 # Vlasov Vitaly , 2019 # Brett Dong , 2019 -# Miguel de Dios Matias , 2019 # msgid "" msgstr "" @@ -16,7 +16,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-07-07 23:49+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Miguel de Dios Matias , 2019\n" +"Last-Translator: Brett Dong , 2019\n" "Language-Team: Spanish (Spain) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -142,7 +142,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "plutonium fuel cell" -msgstr "celda de combustible de plutonio" +msgstr "" #. ~ Description for plutonium fuel cell #: lang/json/AMMO_from_json.py @@ -707,24 +707,24 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "RPG die" msgid_plural "RPG dice" -msgstr[0] "dado de rol" -msgstr[1] "dados de rol" +msgstr[0] "" +msgstr[1] "" #. ~ Description for RPG die #: lang/json/AMMO_from_json.py msgid "A die used to play various role-playing games." -msgstr "Un dado usado para jugar a varios juegos de rol." +msgstr "" #: lang/json/AMMO_from_json.py msgid "metal RPG die" msgid_plural "metal RPG dice" -msgstr[0] "dado de rol de metal" -msgstr[1] "dados de rol de metal" +msgstr[0] "" +msgstr[1] "" #. ~ Description for metal RPG die #: lang/json/AMMO_from_json.py msgid "A metal die used to play various role-playing games" -msgstr "Un dado de metal usado para jugar a varios juegos de rol." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bronze" diff --git a/lang/po/it_IT.po b/lang/po/it_IT.po index 25c8567cad723..12ce2c7462617 100644 --- a/lang/po/it_IT.po +++ b/lang/po/it_IT.po @@ -8,7 +8,6 @@ # Luca Di Bartolomeo , 2019 # Vlasov Vitaly , 2019 # Brett Dong , 2019 -# Aba Baba , 2019 # msgid "" msgstr "" @@ -16,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-07-07 23:49+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Aba Baba , 2019\n" +"Last-Translator: Brett Dong , 2019\n" "Language-Team: Italian (Italy) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/it_IT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -27,8 +26,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "battery" msgid_plural "batteries" -msgstr[0] "batterie" -msgstr[1] "batterie" +msgstr[0] "" +msgstr[1] "" #. ~ Description for battery #: lang/json/AMMO_from_json.py @@ -36,9 +35,6 @@ msgid "" "Some free-floating battery charge. This can be reloaded into rechargable " "battery cells, but can never be unloaded." msgstr "" -"Della carica per batterie galleggiante liberamente. Può essere usata per " -"ricaricare le celle per batterie ricaricabili, ma non può mai essere " -"scaricata." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -140,7 +136,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "plutonium fuel cell" -msgstr "Cella per carburante al plutonio" +msgstr "" #. ~ Description for plutonium fuel cell #: lang/json/AMMO_from_json.py @@ -151,12 +147,6 @@ msgid "" "conventional means: expended cells had to be sent to a central reprocessing " "facility that almost certainly doesn't exist anymore." msgstr "" -"Questa non è nè una cella per carburante, nè nucleare, ma il nome è rimasto." -" Usa plutonio-244 come catalizzatore per stabilizzare un complesso " -"nanocomposto che può immagazzinare quantità enormi di potenza. " -"Sfortunatamente non può essere ricaricata in modi convenzionali: le cellule " -"scariche devono essere mandate ad una struttura centrale di ritrattamento " -"che quasi certamente non esiste più." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "plutonium slurry" @@ -187,7 +177,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "clay pellet" -msgstr "pallina di argilla" +msgstr "" #. ~ Description for clay pellet #: lang/json/AMMO_from_json.py @@ -213,19 +203,17 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "bearings" msgid_plural "bearings" -msgstr[0] "sfere in cuscinetti" -msgstr[1] "sfere in cuscinetti" +msgstr[0] "" +msgstr[1] "" #. ~ Description for bearings #: lang/json/AMMO_from_json.py msgid "A box of ball bearings, useful as ammunition for slings or slingshots." msgstr "" -"Una scatola di sfere di metallo in cuscinetti, utili come munizioni per " -"fionde o mazzafionde." #: lang/json/AMMO_from_json.py msgid "BB" -msgstr "BB" +msgstr "" #. ~ Description for BB #: lang/json/AMMO_from_json.py @@ -239,22 +227,20 @@ msgstr "piuma" #. ~ Description for feather #: lang/json/AMMO_from_json.py msgid "Feathers from a bird. Useful for fletching arrows." -msgstr "Piume ottenute da un uccello. Utili per impennare le frecce." +msgstr "" #: lang/json/AMMO_from_json.py msgid "down feather" -msgstr "Piumino" +msgstr "" #. ~ Description for down feather #: lang/json/AMMO_from_json.py msgid "Fluffy down feathers from a bird. Useful for making cozy bedclothes." msgstr "" -"Soffice piumino ottenuto da un uccello. Utile per fare accoglienti vestiti " -"da letto." #: lang/json/AMMO_from_json.py msgid "fusion pack" -msgstr "Carica a fusione" +msgstr "" #. ~ Description for fusion pack #: lang/json/AMMO_from_json.py @@ -270,7 +256,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "66mm HEAT" -msgstr "66mm HEAT" +msgstr "" #. ~ Description for 66mm HEAT #: lang/json/AMMO_from_json.py @@ -278,24 +264,20 @@ msgid "" "A 60mm high-explosive anti-tank round. It could blow through up to two feet" " of concrete." msgstr "" -"Un colpo alto-esplosivo anti-carro da 60mm. Può penetrare fino a due piedi " -"di asfalto. " #: lang/json/AMMO_from_json.py msgid "120mm HEAT" -msgstr "120mm HEAT" +msgstr "" #. ~ 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 "" -"Un colpo alto-esplosivo anti-carro da 120mm. Può rovinare l'intera giornata " -"di chiunque." #: lang/json/AMMO_from_json.py msgid "hydrogen canister" -msgstr "bombola d'idrogeno" +msgstr "" #. ~ Description for hydrogen canister #: lang/json/AMMO_from_json.py @@ -308,13 +290,12 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "unused .22 casing" -msgstr "Involucro .22 non utilizzato" +msgstr "" #. ~ Description for unused .22 casing #: lang/json/AMMO_from_json.py msgid "An unfired, like-new .22 round casing, with the primer still intact." msgstr "" -"Un involucro per colpo .22 non sparato, con l'innesco ancora intatto." #: lang/json/AMMO_from_json.py msgid "gunpowder" @@ -323,7 +304,7 @@ msgstr "polvere da sparo" #. ~ Description for gunpowder #: lang/json/AMMO_from_json.py msgid "Firearm-quality gunpowder." -msgstr "Polvere da sparo di qualità adatta per le armi." +msgstr "" #: lang/json/AMMO_from_json.py msgid "oxidizer powder" @@ -345,16 +326,16 @@ msgstr "Soda caustica polverizzata." #: lang/json/AMMO_from_json.py msgid "shotgun primer" -msgstr "Innesco di fucile a pompa" +msgstr "primer per fucile a pompa" #. ~ Description for shotgun primer #: lang/json/AMMO_from_json.py msgid "Primer from a shotgun shell." -msgstr "Innesco di un pallettone da fucile a pompa" +msgstr "" #: lang/json/AMMO_from_json.py msgid "small pistol primer" -msgstr "Piccolo innesco di pistola" +msgstr "" #. ~ Description for small pistol primer #: lang/json/AMMO_from_json.py @@ -363,25 +344,25 @@ msgstr "Primer di un proiettile per pistole da piccolo calibro." #: lang/json/AMMO_from_json.py msgid "large pistol primer" -msgstr "Grande innesco di pistola" +msgstr "" #. ~ Description for large pistol primer #: lang/json/AMMO_from_json.py msgid "Primer from a large caliber pistol round." -msgstr "Innesco di proiettile per pistole di grosso calibro." +msgstr "Primer da proiettole per pistole di grosso calibro." #: lang/json/AMMO_from_json.py msgid "small rifle primer" -msgstr "Innesco di fucile piccolo" +msgstr "" #. ~ Description for small rifle primer #: lang/json/AMMO_from_json.py msgid "Primer from a small caliber rifle round." -msgstr "Innesco di proiettile per fucili di piccolo calibro." +msgstr "Primer da proiettole per fucili di piccolo calibro." #: lang/json/AMMO_from_json.py msgid "large rifle primer" -msgstr "Innesco di fucile grande" +msgstr "" #. ~ Description for large rifle primer #: lang/json/AMMO_from_json.py @@ -390,7 +371,7 @@ msgstr "Primer da proiettili di grosso calibro." #: lang/json/AMMO_from_json.py msgid "rubber slug" -msgstr "Cartuccia a palla di gomma" +msgstr "" #. ~ Description for rubber slug #: lang/json/AMMO_from_json.py @@ -437,7 +418,7 @@ msgstr "Scarti di latta e peltro. Utile per creare munizioni." #: lang/json/AMMO_from_json.py msgid "medical tape" -msgstr "Nastro chirurgico" +msgstr "" #. ~ Description for medical tape #: lang/json/AMMO_from_json.py @@ -446,7 +427,7 @@ msgstr "Un rotolo di nastro chirurgico, simile al nastro adesivo." #: lang/json/AMMO_from_json.py msgid "PG-7VL 93mm rocket" -msgstr "Razzo PG-7VL 93mm" +msgstr "" #. ~ Description for PG-7VL 93mm rocket #: lang/json/AMMO_from_json.py @@ -455,7 +436,7 @@ msgstr "Munizione 93mm HE altamente esplosiva a stage singolo per RPG-7." #: lang/json/AMMO_from_json.py msgid "M235 66mm TPA rocket" -msgstr "Razzo M235 66mm TPA " +msgstr "" #. ~ Description for M235 66mm TPA rocket #: lang/json/AMMO_from_json.py @@ -483,10 +464,6 @@ msgid "" " in recipes requiring a pure, hot flame. Can also be used in filters to " "remove contaminants out of air and water." msgstr "" -"Un materiale a base di carbone infiammabile,prodotto da legna bruciante " -"lentamente. Utilizzata in ricette che richiedono una fiamma pura e calda. " -"Può anche essere usata nei filtri per rimuovere contaminanti dall'aria e " -"dall'acqua." #: lang/json/AMMO_from_json.py msgid "coal" @@ -503,7 +480,7 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "modified mininuke" -msgstr "Mini bomba atomica modificata" +msgstr "" #. ~ Description for modified mininuke #: lang/json/AMMO_from_json.py @@ -513,14 +490,10 @@ msgid "" "instead of on a timer. It can fly further than the explosion will reach, " "probably." msgstr "" -"Uno strumento nucleare portatile pesantemente modificato,montato su un " -"razzo. Pensato per essere sparato da un lanciatore specializzato, è stato " -"truccato per esplodere all'impatto, invece che secondo un timer. Può volare " -"più lontano di quanto l'esplosione non raggiungerà, probabilmente." #: lang/json/AMMO_from_json.py msgid "RA21E medical ampoule" -msgstr "Ampolla medica RA21E" +msgstr "" #. ~ Description for RA21E medical ampoule #: lang/json/AMMO_from_json.py @@ -535,7 +508,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "RA10K stimulant module" -msgstr "Modulo stimolante RA10K" +msgstr "" #. ~ Description for RA10K stimulant module #: lang/json/AMMO_from_json.py @@ -550,7 +523,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "rebreather filter cartridge" -msgstr "Filtro cartuccia per autorespiratore" +msgstr "" #. ~ Description for rebreather filter cartridge #: lang/json/AMMO_from_json.py @@ -559,34 +532,34 @@ msgstr "Una cartuccia filtro di ricambio per un Autorespiratore" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "filter mask cartridge" -msgstr "cartuccia per maschera filtro" +msgstr "" #. ~ Description for filter mask cartridge #: lang/json/AMMO_from_json.py msgid "Small replacement filter cartridge for air filtration masks." -msgstr "Piccola cartuccia di ricambio per maschere filtranti aria." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gas mask cartridge" -msgstr "Cartuccia per maschera antigas" +msgstr "" #. ~ Description for gas mask cartridge #: lang/json/AMMO_from_json.py msgid "Medium replacement filter cartridge for air filtration masks." -msgstr "Filtro di ricambio medio per maschere filtranti aria." +msgstr "" #: lang/json/AMMO_from_json.py msgid "chemical mask cartridge" -msgstr "Cartuccia per maschera chimica" +msgstr "" #. ~ Description for chemical mask cartridge #: lang/json/AMMO_from_json.py msgid "Heavy replacement filter cartridge for air filtration masks." -msgstr "Filtro di ricambio pesante per maschere filtranti aria." +msgstr "" #: lang/json/AMMO_from_json.py msgid "nicotine liquid" -msgstr "Liquido alla nicotina" +msgstr "" #. ~ Description for nicotine liquid #: lang/json/AMMO_from_json.py @@ -594,8 +567,6 @@ msgid "" "A liquid that is made up of propylene glycol, vegetable glycerin, flavorings" " and nicotine." msgstr "" -"Un liquido fatto di glicole propilenico, glicerina vegetale, aromi e " -"nicotina." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "fish bait" @@ -604,7 +575,7 @@ msgstr "esca per pesci" #. ~ Description for fish bait #: lang/json/AMMO_from_json.py msgid "A bait used in traps to lure fish." -msgstr "Un'esca usata nelle trappole per attirare i pesci." +msgstr "" #: lang/json/AMMO_from_json.py msgid "oxygen" @@ -617,7 +588,7 @@ msgstr "Una bombola d'ossigeno." #: lang/json/AMMO_from_json.py msgid "spiked home-made rocket" -msgstr "Razzo spuntonato fatto in casa " +msgstr "" #. ~ Description for spiked home-made rocket #: lang/json/AMMO_from_json.py @@ -626,14 +597,10 @@ msgid "" "filled with improvised rocket fuel. Horribly inaccurate, as can be expected" " of this grade of weapon, but packs a fierce punch... if it hits." msgstr "" -"Un razzo costruito manualmente, consistente in uno spuntone saldato su di un" -" tubo che è stato riempito di carburante per razzi improvvisato. " -"Orribilmente impreciso, come ci si può aspettare da questo tipo arma, ma è " -"capace di un fiero colpo.....Se colpisce." #: lang/json/AMMO_from_json.py msgid "explosive home-made rocket" -msgstr "Razzo esplosivo fatto in casa" +msgstr "" #. ~ Description for explosive home-made rocket #: lang/json/AMMO_from_json.py @@ -642,13 +609,10 @@ msgid "" "a pipe, filled with improvised rocket fuel. Not very powerful, but can be " "made from scratch." msgstr "" -"Un razzo costruito manualmente, consistente di una semplice testata " -"esplosiva attaccata su di un tubo, riempito con carburante per razzi " -"improvvisato. Non molto potente, ma può essere creato dal nulla." #: lang/json/AMMO_from_json.py msgid "incendiary home-made rocket" -msgstr "razzo incendiario fatto in casa" +msgstr "" #. ~ Description for incendiary home-made rocket #: lang/json/AMMO_from_json.py @@ -657,9 +621,6 @@ msgid "" "onto a pipe, filled with improvised rocket fuel. Short-range incendiary - " "handle with care!" msgstr "" -"Un razzo costruito manualmente, consistente in un contenitore di gel " -"infiammabile attaccato su di un tubo, riempito con carburante per razzi " -"improvvisato. Arma incendiaria a corto raggio - maneggiare con cura!" #: lang/json/AMMO_from_json.py msgid "unfinished charcoal" @@ -676,23 +637,23 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "chain link" -msgstr "Collegamento a catena" +msgstr "" #. ~ Description for chain link #: lang/json/AMMO_from_json.py msgid "Small metal rings, suitable for constructing chainmail." -msgstr "Piccoli anelli di metallo, adatti a costruire una cotta di maglia." +msgstr "" #: lang/json/AMMO_from_json.py msgid "nitrox" msgid_plural "nitrox" -msgstr[0] "nitrox" -msgstr[1] "Nitrox" +msgstr[0] "" +msgstr[1] "" #. ~ Description for nitrox #: lang/json/AMMO_from_json.py msgid "Mixture of oxygen and nitrogen in proportions suitable for diving." -msgstr "Miscela di ossigeno e nitrogeno in proporzioni adatte all'immersione." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "tinder" @@ -709,24 +670,24 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "RPG die" msgid_plural "RPG dice" -msgstr[0] "Dado da RPG" -msgstr[1] "Dadi da RPG" +msgstr[0] "" +msgstr[1] "" #. ~ Description for RPG die #: lang/json/AMMO_from_json.py msgid "A die used to play various role-playing games." -msgstr "Un dado utilizzato per giocare a vari giochi di ruolo." +msgstr "" #: lang/json/AMMO_from_json.py msgid "metal RPG die" msgid_plural "metal RPG dice" -msgstr[0] "Dado da RPG metallico" -msgstr[1] "Dadi da RPG metallici" +msgstr[0] "" +msgstr[1] "" #. ~ Description for metal RPG die #: lang/json/AMMO_from_json.py msgid "A metal die used to play various role-playing games" -msgstr " Un dado metallico usato per giocare a vari giochi di ruolo." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bronze" @@ -743,7 +704,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "crude wooden arrow" -msgstr "Freccia di legno grezzo" +msgstr "" #. ~ Description for crude wooden arrow #: lang/json/AMMO_from_json.py @@ -751,12 +712,10 @@ msgid "" "A crude pointed wooden shaft with a notch at the back. Stands a very low " "chance of remaining intact once fired." msgstr "" -"Una grezza asta di legno appuntita con una nocca sul retro. Ha pochissime " -"possibilità di rimanere intatta dopo essere stata sparata." #: lang/json/AMMO_from_json.py msgid "wooden bodkin arrow" -msgstr "Freccia bodkin di legno" +msgstr "" #. ~ Description for wooden bodkin arrow #: lang/json/AMMO_from_json.py @@ -764,12 +723,10 @@ msgid "" "A fletched wooden arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." msgstr "" -"Un'asta piumata di legno con una punta appuntita. Utile per penetrare " -"armature. Vi sono decenti possibilità che rimanga intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "simple wooden small game arrow" -msgstr "Freccia semplice di legno per caccia" +msgstr "" #. ~ Description for simple wooden small game arrow #: lang/json/AMMO_from_json.py @@ -778,13 +735,10 @@ msgid "" " small woodland creatures without splattering them all over the ground. " "Stands a low chance of remaining intact once fired." msgstr "" -"Una semplice asta di legno piumata dalla punta smussata. Utile per cacciare " -"piccole creature della foresta senza spiaccicarle sul terreno. Ha poche " -"possibilità di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "wooden broadhead arrow" -msgstr "Freccia broadhead di legno" +msgstr "" #. ~ Description for wooden broadhead arrow #: lang/json/AMMO_from_json.py @@ -793,13 +747,10 @@ msgid "" "damage to the target. Stands a decent chance of remaining intact once " "fired." msgstr "" -"Un'asta di legno piumata con una punta a lama. Utile per massimizzare i " -"danni del bersaglio. Ha decenti possibilità di rimanere intatta una volta " -"sparata." #: lang/json/AMMO_from_json.py msgid "simple wooden arrow" -msgstr "Freccia semplice di legno" +msgstr "" #. ~ Description for simple wooden arrow #: lang/json/AMMO_from_json.py @@ -807,12 +758,10 @@ msgid "" "A simple fletched wooden arrow shaft with a fire-hardened and sharpened tip." " Stands a low chance of remaining intact once fired." msgstr "" -"Una semplice asta di legno piumata dalla punta indurita e affilata dal " -"fuoco. Ha poche possibilità di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "wooden small game arrow" -msgstr "Piccola freccia di legno per caccia" +msgstr "" #. ~ Description for wooden small game arrow #: lang/json/AMMO_from_json.py @@ -821,13 +770,10 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." msgstr "" -"Un'asta di legno piumata dalla punta smussata. Utile per cacciare piccole " -"creature della foresta senza spiaccicarle sul terreno. Ha possibilità " -"decenti di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" -msgstr "Freccia di legno improvvisata" +msgstr "" #. ~ Description for makeshift wooden arrow #: lang/json/AMMO_from_json.py @@ -835,12 +781,10 @@ msgid "" "A simple fletched wooden arrow shaft with a makeshift arrowhead. Stands a " "low chance of remaining intact once fired." msgstr "" -"Una semplice freccia di legno piumata con una punta improvvisata. Ha poche " -"probabilità di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "simple metal arrow" -msgstr "Freccia metallica semplice" +msgstr "" #. ~ Description for simple metal arrow #: lang/json/AMMO_from_json.py @@ -848,12 +792,10 @@ msgid "" "A simple fletched steel arrow shaft with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." msgstr "" -"Una semplice asta d'acciaio piumata con una punta appiattita ed affilata. Ha" -" pressoché poche possibilità di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "aluminum broadhead arrow" -msgstr "Freccia broadhead d'alluminio" +msgstr "" #. ~ Description for aluminum broadhead arrow #: lang/json/AMMO_from_json.py @@ -861,13 +803,10 @@ msgid "" "A fletched aluminum arrow shaft with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." msgstr "" -"Un'asta d'alluminio piumata con una punta a lama. Utile per massimizzare i " -"danni del bersaglio. Ha buone possibilità di rimanere intatta una volta " -"sparata." #: lang/json/AMMO_from_json.py msgid "aluminum field point arrow" -msgstr "Freccia field point d'alluminio" +msgstr "" #. ~ Description for aluminum field point arrow #: lang/json/AMMO_from_json.py @@ -875,12 +814,10 @@ msgid "" "A fletched aluminum arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." msgstr "" -"Un'asta d'alluminio piumata con una punta appuntita. Utile per penetrare " -"armature. Ha buone possibilità di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "aluminum small game arrow" -msgstr "Freccia piccola d'alluminio da caccia" +msgstr "" #. ~ Description for aluminum small game arrow #: lang/json/AMMO_from_json.py @@ -889,13 +826,10 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "good chance of remaining intact once fired." msgstr "" -"Un'asta d'alluminio piumata con una punta smussata. Utile per cacciare " -"piccole creature della foresta senza spiaccicarle sul terreno. Ha buone " -"possibilità di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "carbon fiber hunting arrow" -msgstr "Freccia in fibra di carbonio da caccia" +msgstr "" #. ~ Description for carbon fiber hunting arrow #: lang/json/AMMO_from_json.py @@ -904,13 +838,10 @@ msgid "" "impressive damage to targets. Stands a good chance of remaining intact once" " fired." msgstr "" -"Un'asta in fibra di carbonio piumata con una punta broadhead espansiva. " -"Causa danni impressionanti ai bersagli. Ha buone possibilità di rimanere " -"intatta una volta sparata." #: lang/json/AMMO_from_json.py msgid "explosive arrow" -msgstr "Freccia esplosiva" +msgstr "" #. ~ Description for explosive arrow #: lang/json/AMMO_from_json.py @@ -920,15 +851,10 @@ msgid "" "a shot, it requires one to loose this with a small measure of confidence " "that the shooter won't be caught in the blast radius." msgstr "" -"Questa freccia ha un piccolo Congegno esplosivo improvvisato attaccato alla" -" sua punta. Orribilmente imprecisa,pesante e ingombrante, non solo " -"quest'aggeggio richiede mani esperte per mandare a segno il tiro, ma ne " -"richiede anche per lanciarla con un piccolo margine di sicurezza che il " -"tiratore non venga colto nel raggio esplosivo." #: lang/json/AMMO_from_json.py msgid "flaming arrow" -msgstr "Freccia infuocata" +msgstr "" #. ~ Description for flaming arrow #: lang/json/AMMO_from_json.py @@ -970,7 +896,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "lawn dart" -msgstr "Freccetta da giardino" +msgstr "" #. ~ Description for lawn dart #: lang/json/AMMO_from_json.py @@ -979,12 +905,12 @@ msgstr "Un grande dardo di plastica fatto per giocare all'aperto." #: lang/json/AMMO_from_json.py msgid "frisbee" -msgstr "frisbee" +msgstr "" #. ~ Description for frisbee #: lang/json/AMMO_from_json.py msgid "A plastic frisbee made for outdoor games." -msgstr "Un frisbee di plastica pensato per i giochi all'esterno." +msgstr "" #: lang/json/AMMO_from_json.py src/artifact.cpp msgid "disc" @@ -996,12 +922,10 @@ msgid "" "A plastic disc made for playing disc golf, it is smaller and denser then a " "normal frisbee." msgstr "" -"Un disco di plastica fatto per giocare a disc golf, é più piccolo e più " -"denso di un normale frisbee." #: lang/json/AMMO_from_json.py msgid "wooden fishing spear" -msgstr "Lancia di legno da pesca" +msgstr "" #. ~ Description for wooden fishing spear #: lang/json/AMMO_from_json.py @@ -1016,7 +940,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "metal fishing spear" -msgstr "Lancia di metallo da pesca" +msgstr "" #. ~ Description for metal fishing spear #: lang/json/AMMO_from_json.py @@ -1030,7 +954,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "carbon fiber fishing spear" -msgstr "Lancia in fibra di carbonio da pesca" +msgstr "" #. ~ Description for carbon fiber fishing spear #: lang/json/AMMO_from_json.py @@ -1045,7 +969,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden rubber blunt arrow" -msgstr "Freccia di legno con punta smussata in gomma" +msgstr "" #. ~ Description for wooden rubber blunt arrow #: lang/json/AMMO_from_json.py @@ -1053,12 +977,10 @@ msgid "" "A fletched wooden arrow shaft with a blunt rubber tip. Can stun weaker " "enemies. Stands a good chance of remaining intact once fired." msgstr "" -"Un'asta di legno piumata con una punta in gomma smussata. Può stordire " -"nemici deboli. Ha buone possibilità di rimanere intatta una volta sparata." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "anesthetic" -msgstr "Anestetico" +msgstr "" #. ~ Description for anesthetic #: lang/json/AMMO_from_json.py @@ -1067,9 +989,6 @@ msgid "" "intended for use in specialized medical equipment, and can't be administered" " manually. You can reload an anesthesia kit with it." msgstr "" -"Una varietà di potenti medicinali ipnotici,analgetici e stimolativi. L'uso " -"inteso é come equipaggiamento medico specializzato,e non può essere " -"somministrato manualmente. Puoi ricaricare un kit d'anestesia con questo." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1094,13 +1013,13 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "chunk of sulfur" msgid_plural "chunks of sulfur" -msgstr[0] "Pezzo di zolfo" -msgstr[1] "Pezzi di zolfo" +msgstr[0] "" +msgstr[1] "" #. ~ Description for chunk of sulfur #: lang/json/AMMO_from_json.py msgid "A large chunk of pure sulfur. Break it up to use it." -msgstr "Un grande pezzo di zolfo puro. Rompilo per usarlo." +msgstr "" #: lang/json/AMMO_from_json.py msgid "cement" @@ -1151,10 +1070,6 @@ msgid "" "severe burns to any tissue it comes in contact with. This property could " "probably be exploited." msgstr "" -"Il prodotto di calcare bruciato, questa polvere bianca é un ingrediente " -"cruciale per creare il cemento. Detto ciò, é inoltre estremamente caustico, " -"e causerà bruciature severe a qualunque tessuto vi entri in contatto. Questa" -" proprietà potrebbe probabilmente essere sfruttata." #: lang/json/AMMO_from_json.py lang/json/terrain_from_json.py msgid "sand" @@ -1174,8 +1089,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "soil" msgid_plural "soil" -msgstr[0] "suolo" -msgstr[1] "suolo" +msgstr[0] "" +msgstr[1] "" #. ~ Description for soil #: lang/json/AMMO_from_json.py @@ -1183,8 +1098,6 @@ msgid "" "A pile of loosely packed, slightly damp loamy soil. This mixture of sand, " "silt and clay is ideal for growing plants." msgstr "" -"Una pila di suolo leggermente umido, e pressappoco contenuto. Questa miscela" -" di sabbia, limo ed argilla é ideale per la crescita delle piante." #: lang/json/AMMO_from_json.py msgid "aluminum powder" @@ -1321,12 +1234,6 @@ msgid "" "and sealed, it will explode with little strength, but with relatively loud " "noise and could maybe be used as a decoy." msgstr "" -"Una manciata di pezzi di carburo di calcio, che emanano un debole odore " -"d'aglio. Commercialmente,il carburo di calcio era usato per la manifattura " -"sul posto dell'acetilene e storicamente per accendere le lampade " -"all'acetilene. Se miscelato con acqua e sigillato, esploderà con poca forza," -" ma con un rumore relativamente forte, e potrebbe forse essere usato come " -"esca." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "hexamine" @@ -1409,8 +1316,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "niter" msgid_plural "niter" -msgstr[0] "nitro" -msgstr[1] "nitro" +msgstr[0] "" +msgstr[1] "" #. ~ Description for niter #: lang/json/AMMO_from_json.py @@ -1418,8 +1325,6 @@ msgid "" "A large crystal of niter, the mineral form of potassium nitrate. It can be " "processed into saltpeter." msgstr "" -"Un grande cristallo di nitro, la forma minerale del nitrato di potassio. Può" -" essere processato in salnitro." #: lang/json/AMMO_from_json.py msgid "aluminum sulfate" @@ -1459,16 +1364,12 @@ msgid "" "types of perfumes, but would making perfume not be too fancy for " "postapocalyptic New England?" msgstr "" -"Acido acetico concentrato, tipicamente usato come reagente chimico e agente " -"antifungale. Nonostante l'orrido odore, era usato per preparare diversi tipi" -" di profumi, ma non sarebbe forse non troppo lussuoso creare profumi per la " -"Nuova Inghilterra postapocalittica?" #: lang/json/AMMO_from_json.py msgid "formaldehyde" msgid_plural "formaldehyde" -msgstr[0] "Formaldeide" -msgstr[1] "Formaldeide" +msgstr[0] "" +msgstr[1] "" #. ~ Description for formaldehyde #: lang/json/AMMO_from_json.py @@ -1478,10 +1379,6 @@ msgid "" "embalming agent. Easily identifiable by its pungent odor. Terribly toxic, " "carcinogenic, and volatile." msgstr "" -"Il formaldeide, qui dissolto in acqua, era ampiamente usato prima del " -"Cataclisma come un precursore alla produzione di molti agenti chimici e " -"materiali e come un agente di imbalsamazione. Facilmente identificabile dal " -"suo odore pungente. Terribilmente tossico, cancerogeno e volatile." #: lang/json/AMMO_from_json.py msgid "thermite" @@ -1517,12 +1414,6 @@ msgid "" "mixture is a common industrial explosive due to its stability and low price." " Burns fast, but needs an explosive primer to detonate." msgstr "" -"Parecchie palline color marroncino che sono state create facendo assorbire " -"del carburante organico sul nitrato d'ammonio. Questa miscela di carburante " -"all'olio di nitrato d'ammonio, o ANFO, come viene chiamato, è un comune " -"esplosivo industriale a causa della sua stabilità e del suo basso prezzo. " -"Brucia velocemente, ma necessita di un innesco esplosivo per essere " -"detonato." #: lang/json/AMMO_from_json.py msgid "black gunpowder" @@ -1556,10 +1447,6 @@ msgid "" " high explosive. Can be cast into shaped charges or mixed with scrap to " "pepper the blast area with high-velocity shrapnel." msgstr "" -"Parecchi cristalli color bianco sporco di RDX o esogeno: un esplosivo di " -"grado militare conservabile. Può essere fuso in cariche cave o miscelato con" -" dei rottami per pepare il raggio esplosivo con schegge volanti ad alta " -"velocità." #: lang/json/AMMO_from_json.py msgid "HMTD" @@ -1574,10 +1461,6 @@ msgid "" "explosive, used to initiate detonation of more stable explosives, such as " "RDX. Relatively stable, but best not store it for too long." msgstr "" -"Perossido di esamina: questa polvere fine e giallastra è un potente " -"esplosivo primario, usato per innescare la detonazione di esplosivi più " -"stabili, come l'RDX. Relativamente stabile, ma è meglio non conservarlo " -"troppo a lungo." #: lang/json/AMMO_from_json.py msgid "rocket fuel" @@ -1597,16 +1480,16 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "detergent" -msgstr "detergente" +msgstr "" #. ~ Description for detergent #: lang/json/AMMO_from_json.py msgid "A popular pre-cataclysm washing powder." -msgstr "Una polvere per pre-lavaggio popolare nel pre-cataclisma." +msgstr "" #: lang/json/AMMO_from_json.py msgid "nanomaterial canister" -msgstr "Contenitore di nanomateriali" +msgstr "" #. ~ Description for nanomaterial canister #: lang/json/AMMO_from_json.py @@ -1615,26 +1498,22 @@ msgid "" " in specifically engineered atomic scale configurations. A nanofabricator " "can assemble them into usable items." msgstr "" -"Contenitori di acciaio contenenti carbonio, ferro, titanio, rame ed altri " -"elementi in specialmente ingegnerizzate configurazioni su scala atomica. Un " -"nanofabbricatore può assemblarli in oggetti usabili. " #: lang/json/AMMO_from_json.py msgid "wood ash" msgid_plural "wood ashes" -msgstr[0] "Cenere di legno" -msgstr[1] "Ceneri di legno" +msgstr[0] "" +msgstr[1] "" #. ~ Description for wood ash #: lang/json/AMMO_from_json.py msgid "" "This is almost weightless residue left after the burning of some substance." msgstr "" -"Questo è del residuo quasi senza peso della bruciatura di qualche sostanza." #: lang/json/AMMO_from_json.py msgid "wooden bead" -msgstr "Perlina di legno" +msgstr "" #. ~ Description for wooden bead #: lang/json/AMMO_from_json.py @@ -1642,23 +1521,19 @@ msgid "" "This is a wooden bead. It can be used to craft inscribable jewelry or " "create a beaded curtain door." msgstr "" -"Questa è una perlina di legno. Può essere usata per fabbricare della " -"gioielleria inscrivibile o per creare una porta dalle tende perlate." #: lang/json/AMMO_from_json.py msgid "rosin" -msgstr "Colofonia" +msgstr "" #. ~ Description for rosin #: lang/json/AMMO_from_json.py msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." msgstr "" -"Questo è un pezzo di colofonia giallastra,utilizzabile come flussante per " -"saldare." #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" -msgstr "Dardo grezzo di legno" +msgstr "" #. ~ Description for crude wooden bolt #: lang/json/AMMO_from_json.py @@ -1666,12 +1541,10 @@ msgid "" "A crude pointed wooden crossbow bolt with a notch at the back. Stands a " "very low chance of remaining intact once fired." msgstr "" -"Un dardo da balestra grezzo, fatto di legno e appuntito, con una nocca sul " -"retro. Ha pochissime probabilità di rimanere intatto una volta sparato." #: lang/json/AMMO_from_json.py msgid "simple wooden bolt" -msgstr "Dardo semplice di legno" +msgstr "" #. ~ Description for simple wooden bolt #: lang/json/AMMO_from_json.py @@ -1679,12 +1552,10 @@ msgid "" "A simple fletched wooden crossbow bolt with a fire-hardened and sharpened " "tip. Stands a low chance of remaining intact once fired." msgstr "" -"Un semplice dardo da balestra piumato, con una punta indurita ed appuntita " -"dal fuoco. Ha poche probabilità di rimanere intatto una volta sparato." #: lang/json/AMMO_from_json.py msgid "simple wooden small game bolt" -msgstr "Dardo piccolo semplice di legno" +msgstr "" #. ~ Description for simple wooden small game bolt #: lang/json/AMMO_from_json.py @@ -1693,13 +1564,10 @@ msgid "" "hunting small woodland creatures without splattering them all over the " "ground. Stands a low chance of remaining intact once fired." msgstr "" -"Un semplice dardo di legno piumato da balestra, con una punta smussata. " -"Utile per cacciare piccole creature della foresta senza spiaccicarle sul " -"terreno. Ha poche probabilità di rimanere intatto una volta sparato." #: lang/json/AMMO_from_json.py msgid "makeshift wooden bolt" -msgstr "Dardo improvvisato di legno" +msgstr "" #. ~ Description for makeshift wooden bolt #: lang/json/AMMO_from_json.py @@ -1707,12 +1575,10 @@ msgid "" "A simple fletched wooden crossbow bolt with a makeshift head. Stands a low " "chance of remaining intact once fired." msgstr "" -"Un semplice dardo da balestra piumato con una punta improvvisata. Ha poche " -"probabilità di rimanere intatto una volta sparato." #: lang/json/AMMO_from_json.py msgid "wooden broadhead bolt" -msgstr "Dardo broadhead di legno" +msgstr "" #. ~ Description for wooden broadhead bolt #: lang/json/AMMO_from_json.py @@ -1721,13 +1587,10 @@ msgid "" "damage to the target. Stands a decent chance of remaining intact once " "fired." msgstr "" -"Un dardo da balestra di legno piumato con una punta a lama. Utile per " -"massimizzare i danni inflitti al bersaglio. Ha decenti probabilità di " -"rimanere intatto una volta sparato." #: lang/json/AMMO_from_json.py msgid "wooden bodkin bolt" -msgstr "Dardo appuntito di legno " +msgstr "" #. ~ Description for wooden bodkin bolt #: lang/json/AMMO_from_json.py @@ -1735,13 +1598,10 @@ msgid "" "A fletched wooden crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." msgstr "" -"Un dardo da balestra di legno piumato con una punta appuntita. Utile per " -"penetrare armature. Ha decenti probabilità di rimanere intatto una volta " -"sparato." #: lang/json/AMMO_from_json.py msgid "wooden small game bolt" -msgstr "Dardo piccolo da caccia di legno" +msgstr "" #. ~ Description for wooden small game bolt #: lang/json/AMMO_from_json.py @@ -1750,13 +1610,10 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." msgstr "" -"Un dardo da balestra di legno piumato con una punta smussata. Utile per " -"cacciare piccole creature della foresta senza spiaccicarle sul terreno. Ha " -"decenti probabilità di rimanere intatto una volta sparato." #: lang/json/AMMO_from_json.py msgid "simple metal bolt" -msgstr "Piccolo dardo metallico" +msgstr "" #. ~ Description for simple metal bolt #: lang/json/AMMO_from_json.py @@ -1764,13 +1621,10 @@ msgid "" "A simple fletched steel crossbow bolt with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." msgstr "" -"Un semplice dardo da balestra metallico piumato con una punta appiattita ed " -"affilata. Ha pressappoco poche probabilità di rimanere intatto una volta " -"sparato." #: lang/json/AMMO_from_json.py msgid "aluminum broadhead bolt" -msgstr "Dardo broadhead d'alluminio" +msgstr "" #. ~ Description for aluminum broadhead bolt #: lang/json/AMMO_from_json.py @@ -1778,13 +1632,10 @@ msgid "" "A fletched aluminum crossbow bolt with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." msgstr "" -"Un dardo da balestra d'alluminio piumato con una punta a lama. Utile per " -"massimizzare i danni inflitti al bersaglio. Ha poche probabilità di rimanere" -" intatto una volta sparato." #: lang/json/AMMO_from_json.py msgid "aluminum field point bolt" -msgstr "Dardo d'alluminio field point" +msgstr "" #. ~ Description for aluminum field point bolt #: lang/json/AMMO_from_json.py @@ -1792,13 +1643,10 @@ msgid "" "A fletched aluminum crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." msgstr "" -"Un dardo da balestra d'alluminio piumato con una punta appuntita. Utile per " -"penetrare armature. Ha buone probabilità di rimanere intatto una volta " -"sparato." #: lang/json/AMMO_from_json.py msgid "aluminum small game bolt" -msgstr "Dardo piccolo da caccia d'alluminio" +msgstr "" #. ~ Description for aluminum small game bolt #: lang/json/AMMO_from_json.py @@ -1807,9 +1655,6 @@ msgid "" "small woodland creatures without splattering them all over the ground. " "Stands a good chance of remaining intact once fired." msgstr "" -"Un dardo da balestra d'alluminio piumato con una punta smussata. Utile per " -"cacciare piccole creature della foresta senza spiaccicarle sul terreno. Ha " -"buone probabilità di rimanere intatto una volta sparato" #: lang/json/AMMO_from_json.py msgid "explosive crossbow bolt" @@ -1845,7 +1690,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "denatured alcohol" -msgstr "alcool denaturato" +msgstr "" #. ~ Description for denatured alcohol #: lang/json/AMMO_from_json.py @@ -1861,7 +1706,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "methanol" -msgstr "metanolo" +msgstr "" #. ~ Description for methanol #: lang/json/AMMO_from_json.py @@ -1869,8 +1714,6 @@ msgid "" "High purity methanol suitable for use in chemical reactions. Could be used " "in alcohol-burning stoves. Very toxic." msgstr "" -"Metanolo ad alta purezza, adatto ad essere usato in reazioni chimiche. " -"Potrebbe essere usato con dei fornelli brucianti alcool. Molto tossico." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "diesel" @@ -1887,8 +1730,8 @@ msgstr "Carburante a base di petrolio creato da un sottoprodotto del gasolio." #: lang/json/AMMO_from_json.py msgid "biodiesel" msgid_plural "biodiesel" -msgstr[0] "Biodiesel" -msgstr[1] "Biodiesel" +msgstr[0] "" +msgstr[1] "" #. ~ Description for biodiesel #: lang/json/AMMO_from_json.py @@ -1896,8 +1739,6 @@ msgid "" "Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " "alkyl (methyl, ethyl, or propyl) esters." msgstr "" -"Olio vegetale- o carburante diesel basato sul grasso animale, consistente in" -" alchilici a lunga catena (metile, etile o propile) esteri." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" @@ -1944,16 +1785,16 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "shrapnel" -msgstr "Scheggia" +msgstr "" #. ~ Description for shrapnel #: lang/json/AMMO_from_json.py msgid "A twisted shard of jagged metal." -msgstr "Un coccio contorto di metallo frastagliato." +msgstr "" #: lang/json/AMMO_from_json.py msgid "blunderbuss slug" -msgstr "Cartuccia a palla per archibugio" +msgstr "" #. ~ Description for blunderbuss slug #: lang/json/AMMO_from_json.py @@ -1965,7 +1806,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "blunderbuss shot" -msgstr "Colpo per archibugio" +msgstr "" #. ~ Description for blunderbuss shot #: lang/json/AMMO_from_json.py @@ -1980,7 +1821,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "blunderbuss flechette" -msgstr "Flechette per archibugio" +msgstr "" #. ~ Description for blunderbuss flechette #: lang/json/AMMO_from_json.py @@ -1993,7 +1834,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "bootleg fusion pack" -msgstr "Cella a fusione pirata" +msgstr "" #. ~ Description for bootleg fusion pack #: lang/json/AMMO_from_json.py @@ -2010,7 +1851,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "throwing stick" -msgstr "Legnetto da lancio" +msgstr "" #. ~ Description for throwing stick #: lang/json/AMMO_from_json.py @@ -2018,14 +1859,12 @@ msgid "" "A stick carved into a shape suitable for throwing at a target. Not a " "boomerang, so don't expect it to return to your hand." msgstr "" -"Un legnetto lavorato in una forma adatta per essere lanciato ad un " -"bersaglio. Non un boomerang, quindi non aspettarti che ti ritorni in mano." #: lang/json/AMMO_from_json.py msgid "bolas" msgid_plural "bolases" -msgstr[0] "bolas" -msgstr[1] "bolases" +msgstr[0] "" +msgstr[1] "" #. ~ Description for bolas #: lang/json/AMMO_from_json.py @@ -2033,13 +1872,10 @@ msgid "" "Some ropes with weights, designed to tangle the legs of a target when " "thrown, usually at an animal. Used by the Gauchos of Argentina." msgstr "" -"Delle corde con dei pesi attaccati, progettate per far aggrovigliare le " -"gambe del bersaglio quando vengono lanciate, solitamente quelle di un " -"animale. Usate dai Gauchos dell'Argentina." #: lang/json/AMMO_from_json.py msgid "net" -msgstr "rete" +msgstr "" #. ~ Description for net #: lang/json/AMMO_from_json.py @@ -2047,12 +1883,10 @@ msgid "" "A mesh of string and weights, traditionally used to catch fish, and to " "entangle oponents in combat." msgstr "" -"Una maglia di stringhe e pesi, tradizionalmente usate per catturare pesci, e" -" per intrappolare nemici in combattimento." #: lang/json/AMMO_from_json.py msgid "anesthetic kit" -msgstr "Kit anestetico" +msgstr "" #. ~ Description for anesthetic kit #. ~ Description for anesthesia kit @@ -2063,14 +1897,10 @@ msgid "" " intended for use in specialized medical equipment, and can't be " "administered manually." msgstr "" -"Un kit per indurre l'anestesia durante un'operazione chirurgica, contenente " -"dei contenitori specializzati di vari e potenti medicinali " -"ipnotici,analgesici e stimolativi. L'uso inteso è come equipaggiamento " -"medico specializzato, e non può essere amministrato manualmente." #: lang/json/AMMO_from_json.py msgid "10mm Auto FMJ" -msgstr "10mm Auto FMJ" +msgstr "" #. ~ Description for 10mm Auto FMJ #: lang/json/AMMO_from_json.py @@ -2078,12 +1908,10 @@ msgid "" "A jacketed 10mm Auto round. The 10mm Auto cartridge is a rather powerful " "handgun round and the progenitor to the more popular .40 S&W." msgstr "" -"Un proiettile incamiciato 10mm Auto. La cartuccia 10mm Auto è un proiettile " -"per pistole piuttosto potente, ed è il progenitore del più popolare .40 S&W." #: lang/json/AMMO_from_json.py msgid "reloaded 10mm Auto FMJ" -msgstr "10mm Auto FMJ ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid "H&K 12mm" @@ -2100,7 +1928,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm beanbag" -msgstr "pouf 20x66mm" +msgstr "" #. ~ Description for 20x66mm beanbag #: lang/json/AMMO_from_json.py @@ -2114,7 +1942,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm flechette" -msgstr "Cartuccia flechette 20x66mm fatta manualmente " +msgstr "" #. ~ Description for handmade 20x66mm flechette #: lang/json/AMMO_from_json.py @@ -2127,7 +1955,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm buckshot" -msgstr "Cartuccia a pallettoni 20x66mm fatti manualmente" +msgstr "" #. ~ Description for handmade 20x66mm buckshot #: lang/json/AMMO_from_json.py @@ -2140,7 +1968,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm slug" -msgstr "Cartuccia a palla 20x66mm fatta manualmente" +msgstr "" #. ~ Description for handmade 20x66mm slug #: lang/json/AMMO_from_json.py @@ -2154,7 +1982,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm explosive" -msgstr "esplosivo 20x66mm" +msgstr "" #. ~ Description for 20x66mm explosive #: lang/json/AMMO_from_json.py @@ -2169,7 +1997,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm flare" -msgstr "bagliore 20x66mm" +msgstr "" #. ~ Description for 20x66mm flare #: lang/json/AMMO_from_json.py @@ -2183,7 +2011,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm flechette" -msgstr "Cartuccia flechette 20x66mm" +msgstr "" #. ~ Description for 20x66mm flechette #: lang/json/AMMO_from_json.py @@ -2198,7 +2026,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm frag" -msgstr "Cartuccia a frammentazione 20x66mm" +msgstr "" #. ~ Description for 20x66mm frag #: lang/json/AMMO_from_json.py @@ -2213,7 +2041,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm incendiary" -msgstr "Cartuccia incendiaria 20x66mm" +msgstr "" #. ~ Description for 20x66mm incendiary #: lang/json/AMMO_from_json.py @@ -2228,7 +2056,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm buckshot" -msgstr "Cartuccia a pallettoni 20x66mm" +msgstr "" #. ~ Description for 20x66mm buckshot #: lang/json/AMMO_from_json.py @@ -2243,7 +2071,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm slug" -msgstr "Cartuccia a palla 20x66mm" +msgstr "" #. ~ Description for 20x66mm slug #: lang/json/AMMO_from_json.py @@ -2282,10 +2110,6 @@ msgid "" "extremely weak with very low stopping power, short range, and negligible " "recoil. It is most useful for rifle training, and hunting small animals." msgstr "" -"Munizioni .22 Long Rifle con proiettili 30gr FMJ. Il proiettile .22LR è " -"estremamente debole, con potere d'arresto molto debole, corto raggio e " -"rinculo trascurabile. La sua maggiore utilità è nell'allenamento ai fucili, " -"e nella caccia di piccoli animali. " #: lang/json/AMMO_from_json.py msgid ".22 LR" @@ -2298,10 +2122,6 @@ msgid "" "extremely weak with very low stopping power, short range, and negligible " "recoil. It is most useful for rifle training, and hunting small animals." msgstr "" -"Munizioni .22 Long Rifle con un proiettile da 40gr senza rivestimento. Il " -"proiettile .22LR è estremamente debole con una potenza di arresto molto " -"bassa, una portata corta e un rinculo trascurabile. E' più utile per " -"addestramento o per cacciare piccoli animali." #: lang/json/AMMO_from_json.py msgid ".22 rat-shot" @@ -2314,10 +2134,6 @@ msgid "" "within a fragmenting plastic capsule. It has an extremely short range and " "penetration ability, but it can hit targets with greater ease." msgstr "" -"Una cartuccia calibro .22 con pezzetti molto piccoli di pallettoni contenuti" -" dentro una capsula di plastica a frammentazione. Ha una portata " -"estremamente corta e debole abilità di penetrazione, ma può colpire i " -"bersagli con maggiore facilità." #: lang/json/AMMO_from_json.py msgid "handloaded .22 LR" @@ -2357,10 +2173,6 @@ msgid "" "use in the 20th century and it remains popular among militaries and " "civilians." msgstr "" -"Munizioni 5.56x45mm con un proiettile 62gr FMJ contenente un penetratore " -"d'acciaio. Il suo peso leggero, la sua alta precisione ed il rinculo " -"gestibile hanno portato al suo uso di massa nel 20esimo secolo, e rimane " -"popolare fra i militari ed i civili." #: lang/json/AMMO_from_json.py msgid "5.56 NATO tracer" @@ -2389,7 +2201,7 @@ msgstr "5.56 NATO traccianti artigianali" #: lang/json/AMMO_from_json.py msgid ".270 Winchester JSP" -msgstr ".270 Winchester JSP" +msgstr "" #. ~ Description for .270 Winchester JSP #: lang/json/AMMO_from_json.py @@ -2399,15 +2211,10 @@ msgid "" "most popular rifle cartridges for hunting and silhouette shooting. It is a " "powerful round capable of taking down large targets with ease." msgstr "" -"Munizioni Winchester .270 con proiettili a punta morbida 130gr. Il " -"proiettile .270 non è stato inizialmente un successo, ma nel giro di pochi " -"decenni è diventato una delle cartucce per fucili più popolari per la caccia" -" e per il tiro al bersaglio. É un proiettile potente, capace di abbattere " -"grossi bersagli facilmente." #: lang/json/AMMO_from_json.py msgid "reloaded .270 Winchester JSP" -msgstr ".270 Winchester JSP ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".300 Winchester Magnum" @@ -2452,13 +2259,10 @@ msgid "" "cartridge has excellent accuracy, range, and stopping power making it " "popular with hunters and snipers for well over a century." msgstr "" -"Munizioni Springfield .30-06 con proiettii a punta morbida 165gr. La " -"cartuccia .30-06 ha eccellente precisione,portata e potere d'arresto, " -"rendendola popolare fra cacciatori e cecchini per più di un secolo." #: lang/json/AMMO_from_json.py msgid ".30-06 M14A1 tracer" -msgstr ".30-06 M4A1 tracciante" +msgstr "" #. ~ Description for .30-06 M14A1 tracer #: lang/json/AMMO_from_json.py @@ -2467,14 +2271,10 @@ msgid "" "to help keep the weapon they are fired from on target. It penetrates all " "but the strongest body armor with ease." msgstr "" -"Munizioni incendiarie perforanti .30-06 M14A1 contenenti proiettili " -"traccianti che aiutano a mantenere l'arma dal quale vengono sparati sul " -"bersaglio. Penetra tutte tranne la più forte delle armature corporee con " -"facilità." #: lang/json/AMMO_from_json.py msgid ".30-06 M2 AP" -msgstr ".30-06 M2 AP" +msgstr "" #. ~ Description for .30-06 M2 AP #: lang/json/AMMO_from_json.py @@ -2483,21 +2283,18 @@ msgid "" "extremely powerful and accurate cartridge but pays for its armor penetration" " abilities with lowered damage." msgstr "" -"Munizioni perforanti .30-06 M2 con proiettili 168gr FMJ. É una cartuccia " -"estremamente potente e precisa, ma le sue abilità perforanti causano un " -"abbassamento dei danni." #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 Springfield" -msgstr ".30-06 Springfield ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 incendiary" -msgstr ".30-06 incendiario ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 M2 AP" -msgstr ".30-06 M2 AP ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".308 Winchester" @@ -2510,13 +2307,10 @@ msgid "" "is one of the most popular hunting cartridges in the world due to its " "accuracy and power." msgstr "" -"Munizioni .308 Winchester con proiettili a punta cava 168gr. Il proiettile " -".308 è una delle cartucce da caccia più popolari nel mondo per via della sua" -" precisione e del suo potere." #: lang/json/AMMO_from_json.py msgid "7.62x51mm M80" -msgstr "7.62x51mm M80" +msgstr "" #. ~ Description for 7.62x51mm M80 #: lang/json/AMMO_from_json.py @@ -2525,13 +2319,10 @@ msgid "" "cartridge commonly used by hunters and military snipers because of its high " "accuracy and long range." msgstr "" -"Munizioni 7.62x51mm NATO con un proiettile 147gr FMJ. É una cartuccia per " -"fucili potente, comunemente usata da cacciatori e cecchini militari a causa " -"della sua alta precisione e lunga portata. " #: lang/json/AMMO_from_json.py msgid "7.62x51mm NATO tracer" -msgstr "7.62x51mm NATO tracciante" +msgstr "" #. ~ Description for 7.62x51mm NATO tracer #: lang/json/AMMO_from_json.py @@ -2539,20 +2330,18 @@ msgid "" "This ammunition is a one-in-five mix of M80 and M62 tracer rounds to help " "keep the weapon they are fired from on target." msgstr "" -"Queste munizioni sono un misto uno su cinque di proiettili traccianti M80 e " -"M62 che aiutano a mantenere l'arma dal quale vengono sparati sul bersaglio." #: lang/json/AMMO_from_json.py msgid "reloaded .308 Winchester" -msgstr ".308 Winchester ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x51mm" -msgstr "7.62x51mm ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x51mm incendiary" -msgstr "7.62x51mm incendiario ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".32 ACP" @@ -2564,16 +2353,14 @@ msgid "" "The .32 ACP was a popular handgun cartridge in the 20th century. Not so " "powerful as the .38 or the 9x19mm though." msgstr "" -"La .32 ACP era una cartuccia popolare nel 20esimo secolo. Non ha la stessa " -"potenza del .38 o della 9x19mm, però." #: lang/json/AMMO_from_json.py msgid "reloaded .32 ACP" -msgstr ".32 ACP ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".357 magnum FMJ" -msgstr ".357 magnum FMJ" +msgstr "" #. ~ Description for .357 magnum FMJ #: lang/json/AMMO_from_json.py @@ -2582,13 +2369,10 @@ msgid "" "earlier .38 special, with a marginally longer case and generating greater " "pressure." msgstr "" -"Munizioni magnum .357 incamiciate. Il proiettile magnum .357 è derivato dal " -"precedente .38 speciale, con un bossolo marginalmente più lungo, generante " -"una pressione più forte." #: lang/json/AMMO_from_json.py msgid ".357 magnum JHP" -msgstr ".357 magnum JHP" +msgstr "" #. ~ Description for .357 magnum JHP #: lang/json/AMMO_from_json.py @@ -2597,25 +2381,22 @@ msgid "" "derived from the earlier .38 special, with a marginally longer case and " "generating greater pressure." msgstr "" -"Munizioni magnum .357 a punta cava incamiciate. Il proiettile .357 magnum è " -"derivato dal precedente .38 speciale, con un bossolo marginalmente più " -"lungo, generante una pressione più forte." #: lang/json/AMMO_from_json.py msgid "reloaded .357 Magnum FMJ" msgid_plural "reloaded .357 Magnum FMJ" -msgstr[0] ".357 Magnum FMJ ricaricato" -msgstr[1] ".357 Magnum FMJ ricaricati" +msgstr[0] "" +msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "reloaded .357 Magnum JHP" msgid_plural "reloaded .357 Magnum JHP" -msgstr[0] ".357 Magnum JHP ricaricato" -msgstr[1] ".357 Magnum JHP ricaricati" +msgstr[0] "" +msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".357 SIG FMJ" -msgstr ".357 SIG FMJ" +msgstr "" #. ~ Description for .357 SIG FMJ #: lang/json/AMMO_from_json.py @@ -2623,13 +2404,10 @@ msgid "" "Jacketed .357 SIG ammunition. The .357 SIG round is a high velocity pistol " "cartridge, giving it a flatter trajectory than many handgun rounds." msgstr "" -"Munizioni .357 SIG incamiciate. Il proiettile .357 SIG è una cartuccia per " -"pistole ad alta velocità, garantendo una traiettoria più piatta rispetto a " -"molti altri proiettili per pistole." #: lang/json/AMMO_from_json.py msgid ".357 SIG JHP" -msgstr ".357 SIG JHP" +msgstr "" #. ~ Description for .357 SIG JHP #: lang/json/AMMO_from_json.py @@ -2638,21 +2416,18 @@ msgid "" "velocity pistol cartridge, giving it a flatter trajectory than many handgun " "rounds." msgstr "" -"Munizioni .357 SIG incamiciate con punta cava. Il proiettile .357 SIG è una " -"cartuccia per pistole ad alta velocità, garantendo una traiettoria più " -"piatta rispetto a molti altri proiettili per pistole." #: lang/json/AMMO_from_json.py msgid "reloaded .357 SIG FMJ" -msgstr ".357 SIG FMJ ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .357 SIG JHP" -msgstr ".357 SIG JHP ricaricato" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".36 paper cartridge" -msgstr "Cartuccia .36 di carta" +msgstr "" #. ~ Description for .36 paper cartridge #: lang/json/AMMO_from_json.py @@ -2673,9 +2448,6 @@ msgid "" ".38 Special ammunition with brass jacketed 130gr bullets. The .38 Special " "round has been known from its inception for its accuracy and low recoil." msgstr "" -"Munizioni .38 Special con proiettili incamiciati di ottone 130 gr. Il " -"proiettile .38 Special è stato conosciuto fin dalla sua creazione per la sua" -" precisione e per il suo basso rinculo." #: lang/json/AMMO_from_json.py msgid ".38 Special" @@ -5502,22 +5274,20 @@ msgstr "Piccole schegge di metallo. Non sai cosa farne." #: lang/json/AMMO_from_json.py msgid "liquified blob feed" msgid_plural "bfeedfuel" -msgstr[0] "bcibocarburante" -msgstr[1] "bcibocarburante" +msgstr[0] "" +msgstr[1] "" #. ~ Description for liquified blob feed #: lang/json/AMMO_from_json.py msgid "" "Liquified blob feed, useful for fueling certain blob based vehicle parts" msgstr "" -"Cibo per blob liquidificato, utile per rifornire certe parti di veicoli " -"basate sul blob" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "blob feed" msgid_plural "blob feed" -msgstr[0] "Cibo per blob" -msgstr[1] "Cibo per blob" +msgstr[0] "" +msgstr[1] "" #. ~ Description for blob feed #: lang/json/AMMO_from_json.py @@ -5525,8 +5295,6 @@ msgid "" "An amalgam of various types of organic material, contains everything the " "blob needs to be healthy. You think..." msgstr "" -"Un amalgamato di vari tipi di materiale organico, che contiene tutto ciò di " -"cui il blob ha bisogno per mantenersi in salute. Pensi che..." #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py #: lang/json/snippet_from_json.py @@ -5553,27 +5321,23 @@ msgid "" "decays when separated from the catalyst; these fragments are small enough to" " remain stable." msgstr "" -"Questi piccoli frammenti di diamante sono formati come un sottoprodotto dal " -"processo di cristallizzazione di una matrice di diamante. Mentre la sostanza" -" di solito decade quando è separata dal catalizzatore; questi frammenti sono" -" abbastanza piccoli da rimanere stabili." #: lang/json/AMMO_from_json.py msgid "vortex core" msgid_plural "vortex core" -msgstr[0] "Nucleo di vortice" -msgstr[1] "Nucleo di vortice" +msgstr[0] "" +msgstr[1] "" #. ~ Description for vortex core #: lang/json/AMMO_from_json.py msgid "Seeing this is a bug." -msgstr "Vedere questo è un bug." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "ten-gallon hat" msgid_plural "ten-gallon hats" -msgstr[0] "cappello da dieci galloni" -msgstr[1] "cappelli da dieci galloni" +msgstr[0] "" +msgstr[1] "" #. ~ Description for ten-gallon hat #: lang/json/ARMOR_from_json.py @@ -5581,14 +5345,12 @@ msgid "" "These may not be the Great Plains, but you can still be the Boss with this " "high-crowned, wide-brimmed hat." msgstr "" -"Queste non saranno le Grandi Pianure, ma puoi pur sempre essere il Capo quen" -" questo cappello dall'alta corona e dalla tesa larga." #: lang/json/ARMOR_from_json.py msgid "pair of 2-by-arm guards" msgid_plural "pairs of 2-by-arm guards" -msgstr[0] "un paio di protezioni 2-per-braccia " -msgstr[1] "Paia di protezioni 2-per-braccia" +msgstr[0] "" +msgstr[1] "" #. ~ Description for pair of 2-by-arm guards #: lang/json/ARMOR_from_json.py @@ -5597,9 +5359,6 @@ msgid "" "that are tied to your arms with rags and string. They offer good " "protection, but are really uncomfortable to wear." msgstr "" -"Un paio di protezioni per braccia improvvisate fatte da pezzi rotti di un " -"due per quattro che sono legati alle tue braccia da stracci e stringa. " -"Offrono buona protezione, ma sono davvero scomode da portare." #: lang/json/ARMOR_from_json.py msgid "pair of 2-by-shin guards" @@ -5632,15 +5391,13 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "American flag" msgid_plural "American flags" -msgstr[0] "Bandiera americana" -msgstr[1] "Bandiere americane" +msgstr[0] "" +msgstr[1] "" #. ~ Description for American flag #: lang/json/ARMOR_from_json.py msgid "A large American flag made to fly in even the worst conditions." msgstr "" -"Una larga bandiera americana fatta per essere innalzata anche nelle peggiori" -" condizioni." #: lang/json/ARMOR_from_json.py msgid "leather apron" diff --git a/lang/po/ja.po b/lang/po/ja.po index 53b28dcce0e11..14f4620aac00e 100644 --- a/lang/po/ja.po +++ b/lang/po/ja.po @@ -179,14 +179,14 @@ msgstr "一掴み分の小石です。スリングまたはスリングショッ #: lang/json/AMMO_from_json.py msgid "clay pellet" -msgstr "ペレット(陶器)" +msgstr "ペレット(粘土)" #. ~ Description for clay pellet #: lang/json/AMMO_from_json.py msgid "" "A handful of round projectiles made of clay, useful for slings or " "slingshots." -msgstr "スリングやスリングショットに使用できる、陶器でできた丸い弾薬です。" +msgstr "スリングやスリングショットに使用できる、粘土でできた丸い弾薬です。" #: lang/json/AMMO_from_json.py msgid "marble" @@ -17404,7 +17404,7 @@ msgid "" "the people in them, but seeing these pictures still makes you think of " "happier times." msgstr "" -"見知らぬ家族がたくさん貼られた革張りのアルバムです。この写真に写っている人々に知っている人はいませんが...幸せな写真を眺めていると平和だった頃を思い出します。" +"見知らぬ家族の写真で一杯の革張りのアルバムです。この写真に写っている人々に知っている人はいませんが...幸せな写真を眺めていると平和だった頃を思い出します。" #: lang/json/BOOK_from_json.py msgid "book of plays" @@ -29984,14 +29984,14 @@ msgstr "2Lの容量があるペットボトルです。たくさんのソーダ #: lang/json/CONTAINER_from_json.py msgid "clay bowl" msgid_plural "clay bowls" -msgstr[0] "ボウル(250ml/陶器)" +msgstr[0] "ボウル(250ml/粘土)" #. ~ Description for clay bowl #: lang/json/CONTAINER_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の容量があります。" +msgstr "水密性のある粗皮の蓋が付いた粘土製のボウルです。容器や道具として使えます。250mlの容量があります。" #: lang/json/CONTAINER_from_json.py msgid "pack" @@ -30172,14 +30172,14 @@ msgstr "液体を保温できるサーモス社製の魔法瓶です。1Lの容 #: lang/json/CONTAINER_from_json.py msgid "clay canister" msgid_plural "clay canisters" -msgstr[0] "円筒容器(250ml/陶器)" +msgstr[0] "円筒容器(250ml/粘土)" #. ~ Description for clay canister #: lang/json/CONTAINER_from_json.py msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." -msgstr "陶器製の脆い容器です。簡単な手榴弾の製作や液体の貯蔵に使います。" +msgstr "脆い粘土製の容器です。簡単な手榴弾の製作や液体の貯蔵に使うことができます。" #: lang/json/CONTAINER_from_json.py msgid "clay hydria" @@ -30189,7 +30189,7 @@ msgstr[0] "水瓶(15L)" #. ~ Description for clay hydria #: lang/json/CONTAINER_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." -msgstr "運んだり注いだりするための持ち手が3つ付いた陶器製の鉢です。15Lの容量があります。" +msgstr "運んだり注いだりするための持ち手が3つ付いた粘土製の鉢です。15Lの容量があります。" #: lang/json/CONTAINER_from_json.py msgid "large clay pot" @@ -30201,7 +30201,7 @@ msgstr[0] "大型素焼鉢(37.5L)" 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 "水を貯めておくのに使う、水密性のある蓋がついた陶器製の鉢です。いざという時には他の液体を入れることもできます。" +msgstr "水を貯めておくのに使う、水密性のある蓋がついた粘土製の鉢です。いざという時には他の液体を入れることもできます。" #: lang/json/CONTAINER_from_json.py msgid "plastic cup" @@ -30367,12 +30367,12 @@ msgstr "鋼製の大きなジェリカンです。燃料の運搬を想定して #: lang/json/CONTAINER_from_json.py msgid "clay jug" msgid_plural "clay jugs" -msgstr[0] "水差し(1L/陶器)" +msgstr[0] "水差し(1L/粘土)" #. ~ Description for clay jug #: lang/json/CONTAINER_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." -msgstr "液体を注ぐために使う、蓋が付いた陶器製の容器です。" +msgstr "液体を注ぐために使う、蓋つきの粘土製容器です。" #: lang/json/CONTAINER_from_json.py msgid "gallon jug" @@ -31261,7 +31261,8 @@ msgstr[0] "フードプレイスポイントカード" 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 "全てのスタンプが押された、鮮やかなピンク色のポイントカードです。フードプレイスへの忠誠心を示す以外の使い道が残っているとは思えません..." +msgstr "" +"全てのスタンプが押された、鮮やかなピンク色のポイントカードです。このカードにまだ意味があるとすれば、フードプレイスへの忠誠心を示しているに違いありません..." #: lang/json/GENERIC_from_json.py msgid "withered plant" @@ -32833,7 +32834,7 @@ msgstr[0] "日干し煉瓦用モルタル" 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." -msgstr "砂の含有量が少なく乾燥しても崩れにくい、濃厚なペースト状の泥です。泥や粘土を固めて作った大きく重い建材同士の接着に使います。" +msgstr "砂の含有量が少なく乾燥しても崩れにくい、濃厚なペースト状の泥です。泥や粘土を固めて作った大きく重い建材の接着に使います。" #: lang/json/GENERIC_from_json.py msgid "tanbark" @@ -33206,7 +33207,7 @@ msgstr "かつては全ての光源装置で使用されていた、やや時代 #: lang/json/GENERIC_from_json.py msgid "clay flower pot" msgid_plural "clay flower pots" -msgstr[0] "植木鉢(陶器)" +msgstr[0] "植木鉢(粘土)" #. ~ Description for clay flower pot #: lang/json/GENERIC_from_json.py @@ -34458,27 +34459,27 @@ msgstr[0] "素焼鉢" #. ~ Description for clay pot #: lang/json/GENERIC_from_json.py msgid "A crude clay pot with lid used for cooking." -msgstr "素焼きの鉢です。調理にも使えるよう蓋が付いています。" +msgstr "素焼きの鉢です。調理用に蓋が付いています。" #: lang/json/GENERIC_from_json.py msgid "clay quern" msgid_plural "clay querns" -msgstr[0] "挽臼(陶器)" +msgstr[0] "挽臼(粘土)" #. ~ Description for clay quern #: lang/json/GENERIC_from_json.py msgid "This is a simple hand-powered clay quern for grinding grain." -msgstr "陶器製の挽臼です。手で回して穀物を粉にします。" +msgstr "粘土製の挽臼です。人力で回して穀物を粉にします。" #: lang/json/GENERIC_from_json.py msgid "clay teapot" msgid_plural "clay teapots" -msgstr[0] "ティーポット(陶器)" +msgstr[0] "ティーポット(粘土)" #. ~ Description for clay teapot #: lang/json/GENERIC_from_json.py msgid "A clay teapot. Now all you need is tea and water." -msgstr "陶器製のティーポットです。あとは紅茶と水があれば完璧です。" +msgstr "粘土製のティーポットです。あとは紅茶と水があれば完璧です。" #: lang/json/GENERIC_from_json.py msgid "digging stick" @@ -36367,32 +36368,32 @@ msgstr[0] "汎用鍋" #: lang/json/GENERIC_from_json.py msgid "ceramic plate" msgid_plural "ceramic plates" -msgstr[0] "セラミック皿" +msgstr[0] "陶器皿" #. ~ Description for ceramic plate #: lang/json/GENERIC_from_json.py msgid "A ceramic dinner plate, unremarkable in every way." -msgstr "セラミック製の食器です。特筆すべき点は何もありません。" +msgstr "陶器製の食器です。特筆すべき点は何もありません。" #: lang/json/GENERIC_from_json.py msgid "ceramic bowl" msgid_plural "ceramic bowls" -msgstr[0] "セラミックボウル" +msgstr[0] "陶器ボウル" #. ~ Description for ceramic bowl #: lang/json/GENERIC_from_json.py msgid "A perfectly ordinary ceramic soup bowl." -msgstr "ごく一般的なセラミック製のスープ椀です。" +msgstr "全くもって普通の陶器製スープ皿です。" #: lang/json/GENERIC_from_json.py msgid "ceramic cup" msgid_plural "ceramic cups" -msgstr[0] "セラミックカップ" +msgstr[0] "陶器カップ" #. ~ Description for ceramic cup #: lang/json/GENERIC_from_json.py msgid "A light ceramic teacup. Quite classy." -msgstr "セラミック製のティーカップです。中々に上品なデザインです。" +msgstr "陶器製のティーカップです。中々に上品なデザインです。" #: lang/json/GENERIC_from_json.py msgid "coffee mug" @@ -36402,7 +36403,7 @@ msgstr[0] "コーヒーマグ" #. ~ Description for coffee mug #: lang/json/GENERIC_from_json.py msgid "A ceramic coffee cup with a logo on the side." -msgstr "側面にロゴが付いたセラミック製のコーヒーマグです。" +msgstr "側面にロゴが付いた陶器製のコーヒーマグです。" #: lang/json/GENERIC_from_json.py msgid "The side of the mug reads 'World's Greatest Dad'." @@ -36486,7 +36487,7 @@ msgstr "軽量で素朴なブリキ製の皿です。" #: lang/json/GENERIC_from_json.py msgid "tin cup" msgid_plural "tin cups" -msgstr[0] "ブリキカップ" +msgstr[0] "ブリキコップ" #. ~ Description for tin cup #: lang/json/GENERIC_from_json.py @@ -36613,7 +36614,7 @@ msgstr "ボウルの所々にかわいらしい家畜のイラストが描かれ #: lang/json/GENERIC_from_json.py msgid "sippy cup" msgid_plural "sippy cups" -msgstr[0] "子供用カップ(250ml)" +msgstr[0] "子供用コップ(250ml)" #. ~ Description for sippy cup #: lang/json/GENERIC_from_json.py @@ -49504,7 +49505,7 @@ msgstr "時折、躓きながら肥満体を引き摺り歩く死体は、黒い #: lang/json/MONSTER_from_json.py msgid "fiend" -msgstr "悪鬼ゾンビ" +msgstr "悪鬼" #. ~ Description for fiend #: lang/json/MONSTER_from_json.py @@ -52905,7 +52906,7 @@ msgstr "アニミスト・ルーン" msgid "" "This ritual creates a small pebble attuned to Animists. You can use the rune" " as a catalyst for recipes." -msgstr "儀式によってアニミストと波長の合う神秘的な石を創り出します。石はレシピの触媒として利用できます。" +msgstr "儀式によって精霊術師と波長の合う神秘的な石を創り出します。石はレシピの触媒として利用できます。" #: lang/json/SPELL_from_json.py msgid "Cure Light Wounds" @@ -56878,7 +56879,7 @@ msgstr[0] "携帯型操作端末" msgid "" "A modified laptop, now capable of transmitting in the ultra high frequencies" " utilized by robots. Activate it to command robots from afar." -msgstr "ロボットが使っている高周波帯で通信ができるように改造した、携帯型の操作端末です。ロボットを遠隔操作できます。" +msgstr "ロボットが使っている高周波帯で通信ができるに修正した携帯型の操作端末です。ロボットを遠隔操作できます。" #: lang/json/TOOL_from_json.py msgid "copper axe" @@ -57000,14 +57001,14 @@ msgstr "金属加工に用いられるるつぼです。いくつかのレシピ #: lang/json/TOOL_from_json.py msgid "clay crucible" msgid_plural "clay crucibles" -msgstr[0] "るつぼ(陶器)" +msgstr[0] "るつぼ(粘土)" #. ~ Description for clay crucible #: lang/json/TOOL_from_json.py msgid "" "This is a primitive metalworking crucible made of clay. You could use it " "for metalworking." -msgstr "金属加工に用いられる陶器製のるつぼです。原始的ですが実際に使えます。" +msgstr "金属加工に用いられる粘土製のるつぼです。原始的ですが実際に使えます。" #: lang/json/TOOL_from_json.py msgid "electric firestarter" @@ -63789,14 +63790,14 @@ msgstr "表面に自然と木々を表す印が刻まれた奇妙な小石です #: lang/json/TOOL_from_json.py msgid "Animist rune" msgid_plural "Animist runes" -msgstr[0] "ルーン(アニミスト)" +msgstr[0] "ルーン(精霊使い)" #. ~ Description for Animist rune #: lang/json/TOOL_from_json.py msgid "" "This magical pebble has an insignia of summoners on it. It is necessary for " "Animists to channel magic into their crafts." -msgstr "表面に召喚士を表す印が刻まれた奇妙な小石です。アニミストがアイテムに魔力を込める際に必要になります。" +msgstr "表面に召喚士を表す印が刻まれた奇妙な小石です。精霊使いがアイテムに魔力を込める際に必要になります。" #: lang/json/TOOL_from_json.py msgid "alchemist rune" @@ -69650,7 +69651,7 @@ msgstr "意識が朦朧としています!" #: lang/json/effects_from_json.py msgid "Dazed" -msgstr "放心" +msgstr "呆然" #. ~ Description of effect 'Dazed'. #: lang/json/effects_from_json.py @@ -69662,7 +69663,7 @@ msgstr "目に見えて動揺しています。周囲を見ようとしてもな #. ~ Apply message for effect(s) 'Dazed'. #: lang/json/effects_from_json.py msgid "The scream dazes you!" -msgstr "突然の金切声に放心しています!" +msgstr "突然の金切声に呆然としています!" #: lang/json/effects_from_json.py msgid "Riding" @@ -71301,7 +71302,7 @@ msgstr "鎮静剤" #. ~ Description of effect 'Depressants'. #: lang/json/effects_from_json.py msgid "You are under the influence of depressants, and in a bit of a daze." -msgstr "鎮静剤の影響を受け、放心しているようです。" +msgstr "鎮静剤の影響を受け、茫然としているようです。" #: lang/json/effects_from_json.py msgid "Took weak antibiotic" @@ -88718,7 +88719,7 @@ msgstr "キチン" #: lang/json/material_from_json.py msgid "Clay" -msgstr "陶器" +msgstr "粘土" #: lang/json/material_from_json.py msgid "Copper" @@ -88782,7 +88783,7 @@ msgstr "完全に切り裂かれた" #: lang/json/material_from_json.py msgid "Fresh Clay" -msgstr "粘土" +msgstr "新鮮な粘土" #: lang/json/material_from_json.py msgid "squished" @@ -100602,7 +100603,7 @@ msgstr "魔法の歴史と同じくらい古くから存在する魔法使いで #: lang/json/mutation_from_json.py msgid "Animist" -msgstr "アニミスト" +msgstr "精霊使い" #. ~ Description for Animist #: lang/json/mutation_from_json.py @@ -100612,7 +100613,7 @@ msgid "" "to the natural world. This does not mean that animists are passive: the " "natural world is a savage place." msgstr "" -"アニミストは、調和と自然界との繋がりに焦点を当てて様々な古い方法を組み合わせた、比較的新しい魔法の流派です。調和と言っても精霊使いが無抵抗という訳ではありません。自然界は残酷な世界です。" +"精霊使いは、調和と自然界との繋がりに焦点を当てて様々な古い方法を組み合わせた、比較的新しい魔法の流派です。調和と言っても精霊使いが無抵抗という訳ではありません。自然界は残酷な世界です。" #: lang/json/mutation_from_json.py msgid "Kelvinist" @@ -110926,7 +110927,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Awakened" -msgstr "目覚めた人" +msgstr "寝起きの人" #. ~ Profession (male Awakened) description #: lang/json/professions_from_json.py @@ -110939,7 +110940,7 @@ msgstr "夜中に騒音で目覚めました。懐中電灯だけ持って外を #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Awakened" -msgstr "目覚めた人" +msgstr "寝起きの人" #. ~ Profession (female Awakened) description #: lang/json/professions_from_json.py @@ -118682,7 +118683,7 @@ msgstr "は必要に応じて自由に動きます。" #: lang/json/snippet_from_json.py msgid " will follow you at about two paces." -msgstr "は2タイルの間隔をあけて追従します。" +msgstr "は2タイルの間隔をあけて従します。" #: lang/json/snippet_from_json.py msgid " will follow you at about four paces." @@ -127011,7 +127012,7 @@ msgstr "私は現在は何の行動もしていない。" #: lang/json/talk_topic_from_json.py msgid "Carry on." -msgstr "今の行動を続けてくれ。" +msgstr "続けてくれ。" #: lang/json/talk_topic_from_json.py msgid "Please stop your current activity." @@ -132225,7 +132226,7 @@ msgstr "毒が入ってるものは、砂っぽいからすぐ分かる。でも msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " "I told him to go fuck himself." -msgstr "段ボールで家を建てているんだ。砂男には好かれていないようだが、私も奴に言ってやったんだ、失せろってね。" +msgstr "段ボールで家を建てているんだ。眠りの精には好かれていないようだが、私も奴に言ってやったんだ、失せろってね。" #: lang/json/talk_topic_from_json.py msgid "Why cardboard?" @@ -135162,7 +135163,7 @@ msgid "" "hadn't made a stink about it, I'd probably be out in the lobby with those " "poor souls that couldn't get in at all." msgstr "" -"私は救急救命士だった。最悪の場面を何度も乗り越えて、ここにいる。あの状況は、とても言葉じゃ説明できない。移動に介助が必要な人たちの世話をするために、成り行きでバスに乗ったんだ。確か腕の骨折だったかな。それが避難センターに到着した最初のバスだった。その後、酷い頭部裂傷の患者を治療してる時に、私が事務書類を「失くした」とか言ってある女が騒ぎ出したんだ。あのとき文句を言い返さなかったら、私も気の毒な人たちと同じくロビーに締め出されていただろうな。" +"私は救急救命士だった。最悪の場面を何度も乗り越えて、ここにいる。あの状況は、とても言葉じゃ説明できない。移動に介助が必要な人たちの世話をするために、成り行きでバスに乗ったんだ。確か腕の骨折だったかな。それが避難センターに到着した最初のバスだった。それで、酷い頭部裂傷の患者を治療してる間、ある女が処理中だった私の書類を「失くした」。その事について騒ぎ立てなかったら、私もあの気の毒な人たちと同じくロビーに締め出されていただろうな。" #: lang/json/talk_topic_from_json.py msgid "" @@ -137937,17 +137938,17 @@ msgstr "掴み倒し" #: lang/json/technique_from_json.py msgid "precise strike" -msgstr "精密攻撃" +msgstr "掌底" #: lang/json/technique_from_json.py #, python-format msgid "You strike %s" -msgstr "%sに正確な一撃を叩き込みました。" +msgstr "%sに掌底を打ち込みました。" #: lang/json/technique_from_json.py #, python-format msgid " strikes %s" -msgstr "は%sに正確な一撃を叩き込みました。" +msgstr "は%sに掌底を打ち込みました。" #: lang/json/technique_from_json.py msgid "elbow" diff --git a/lang/po/ko.po b/lang/po/ko.po index dc50e0912f0b2..dd884ae5bc921 100644 --- a/lang/po/ko.po +++ b/lang/po/ko.po @@ -12,7 +12,6 @@ # T itan , 2019 # fenjo , 2019 # 발렌슈타인 , 2019 -# Nick, 2019 # msgid "" msgstr "" @@ -20,7 +19,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-07-07 23:49+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Nick, 2019\n" +"Last-Translator: 발렌슈타인 , 2019\n" "Language-Team: Korean (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,7 +37,7 @@ msgstr[0] "배터리" msgid "" "Some free-floating battery charge. This can be reloaded into rechargable " "battery cells, but can never be unloaded." -msgstr "흔히 찾을 수 있는 일회용 배터리. 충전식 배터리를 충전하는 데 쓸 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -136,7 +135,7 @@ msgstr "작은 전자기기에 사용되는 비닐절연 구리 전선." #: lang/json/AMMO_from_json.py msgid "plutonium fuel cell" -msgstr "플루토늄 연료 전지" +msgstr "" #. ~ Description for plutonium fuel cell #: lang/json/AMMO_from_json.py @@ -147,9 +146,6 @@ msgid "" "conventional means: expended cells had to be sent to a central reprocessing " "facility that almost certainly doesn't exist anymore." msgstr "" -"햄버거에 햄이 없고 곰탕에 곰이 없듯이, 플루토늄 연료 전지는 사실 연료도 아니고 핵분열도 하지 않는다. 전력 저장에 사용되는 첨단 " -"나노물질의 안정제로 플루토늄-244가 쓰일 뿐인데, 어쩌다 이름이 그대로 굳어버린 것. 크기에 비해서 엄청난 양의 에너지를 저장할 수 " -"있지만, 재충전을 하려면 특수 처리공장에 보내야 하기 때문에 사실상 일회용품이나 다름없다." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "plutonium slurry" @@ -199,7 +195,7 @@ msgstr "슬링이나 새총의 탄약으로 사용할 수 있는 한 움큼의 #: lang/json/AMMO_from_json.py msgid "bearings" msgid_plural "bearings" -msgstr[0] "베어링" +msgstr[0] "" #. ~ Description for bearings #: lang/json/AMMO_from_json.py @@ -244,8 +240,8 @@ msgid "" "energy based weapons. The result was the standard fusion pack, capable of " "delivering bolts of superheated gas at near light speed with no recoil." msgstr "" -"초고열 플라즈마를 광속에 가까운 속도로 날려보낼 수 있는 에너지 병기의 탄약. 21세기 중반 즈음 군사 강국들이 차세대 무기를 찾으면서 " -"개발되었다." +"21세기 중반, 군사 강국들은 에너지 무기에 관심을 보이기 시작했습니다. 그 결과 초고온 가스탄을 아광속으로 날리면서도 반동은 전혀 없는" +" 규격화된 핵융합 전지가 만들어졌습니다." #: lang/json/AMMO_from_json.py msgid "66mm HEAT" @@ -630,12 +626,12 @@ msgstr "작은 금속 고리. 쇠사슬 갑옷을 만드는데 적합하다." #: lang/json/AMMO_from_json.py msgid "nitrox" msgid_plural "nitrox" -msgstr[0] "잠수용 공기통" +msgstr[0] "" #. ~ Description for nitrox #: lang/json/AMMO_from_json.py msgid "Mixture of oxygen and nitrogen in proportions suitable for diving." -msgstr "스쿠버 다이빙에 쓰이는 산소-질소 혼합 가스." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "tinder" @@ -650,22 +646,22 @@ msgstr "가연성 물질. 불이 쉽게 붙도록 잘게 나눠 놓았습니다. #: lang/json/AMMO_from_json.py msgid "RPG die" msgid_plural "RPG dice" -msgstr[0] "테이블탑 주사위" +msgstr[0] "" #. ~ Description for RPG die #: lang/json/AMMO_from_json.py msgid "A die used to play various role-playing games." -msgstr "테이블탑 게임을 하는 데 쓰이는 주사위." +msgstr "" #: lang/json/AMMO_from_json.py msgid "metal RPG die" msgid_plural "metal RPG dice" -msgstr[0] "금속 테이블탑 주사위" +msgstr[0] "" #. ~ Description for metal RPG die #: lang/json/AMMO_from_json.py msgid "A metal die used to play various role-playing games" -msgstr "테이블탑 게임을 하는 데 쓰이는 쇠로 된 주사위." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bronze" @@ -679,29 +675,29 @@ msgstr "적당한 크기의 청동 덩어리. 오래된 물건 제작에 사용 #: lang/json/AMMO_from_json.py msgid "crude wooden arrow" -msgstr "조잡한 목재 화살" +msgstr "" #. ~ Description for crude wooden arrow #: lang/json/AMMO_from_json.py msgid "" "A crude pointed wooden shaft with a notch at the back. Stands a very low " "chance of remaining intact once fired." -msgstr "활시위에 걸 수 있게 홈을 판, 뾰족한 나무 막대기. 재사용 확률 매우 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden bodkin arrow" -msgstr "목재 보드킨 화살" +msgstr "" #. ~ Description for wooden bodkin arrow #: lang/json/AMMO_from_json.py msgid "" "A fletched wooden arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." -msgstr "갑옷을 뚫는 데 쓰이는 뾰족한 나무 화살. 재사용 확률 평균." +msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden small game arrow" -msgstr "조잡한 목재 소형 동물용 화살" +msgstr "" #. ~ Description for simple wooden small game arrow #: lang/json/AMMO_from_json.py @@ -709,11 +705,11 @@ msgid "" "A simple fletched wooden arrow shaft with a blunted tip. Useful for hunting" " small woodland creatures without splattering them all over the ground. " "Stands a low chance of remaining intact once fired." -msgstr "뭉툭한 촉과 깃이 달린 조잡한 나무 화살. 위력이 낮아 작은 동물을 피떡으로 만들지 않는다. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden broadhead arrow" -msgstr "목재 브로드헤드 화살" +msgstr "" #. ~ Description for wooden broadhead arrow #: lang/json/AMMO_from_json.py @@ -721,22 +717,22 @@ msgid "" "A fletched wooden arrow shaft with a bladed tip. Useful for maximising " "damage to the target. Stands a decent chance of remaining intact once " "fired." -msgstr "날이 세워진 촉과 깃을 붙인 나무 화살. 목표에게 최대한 큰 피해를 줘야 할 때 쓰인다. 재사용 확률 평균." +msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden arrow" -msgstr "간이 목재 화살" +msgstr "" #. ~ Description for simple wooden arrow #: lang/json/AMMO_from_json.py msgid "" "A simple fletched wooden arrow shaft with a fire-hardened and sharpened tip." " Stands a low chance of remaining intact once fired." -msgstr "불로 그을린 뾰족한 촉과 깃을 붙인 나무 화살. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden small game arrow" -msgstr "목재 소형 동물용 화살" +msgstr "" #. ~ Description for wooden small game arrow #: lang/json/AMMO_from_json.py @@ -744,55 +740,55 @@ msgid "" "A fletched wooden arrow shaft with a blunt tip. Useful for hunting small " "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." -msgstr "뭉툭한 촉과 깃이 달린 나무 화살. 위력이 낮아 작은 동물을 피떡으로 만들지 않는다. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" -msgstr "조잡한 목재 화살" +msgstr "" #. ~ Description for makeshift wooden arrow #: lang/json/AMMO_from_json.py msgid "" "A simple fletched wooden arrow shaft with a makeshift arrowhead. Stands a " "low chance of remaining intact once fired." -msgstr "조잡한 화살촉과 깃이 달린 나무 화살. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "simple metal arrow" -msgstr "간이 금속 화살" +msgstr "" #. ~ Description for simple metal arrow #: lang/json/AMMO_from_json.py msgid "" "A simple fletched steel arrow shaft with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." -msgstr "날카롭게 두드린 촉과 깃이 달린 단순한 강철 화살. 재사용 확률 조금 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum broadhead arrow" -msgstr "알루미늄 브로드헤드 화살" +msgstr "" #. ~ Description for aluminum broadhead arrow #: lang/json/AMMO_from_json.py msgid "" "A fletched aluminum arrow shaft with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." -msgstr "날을 세운 촉과 깃을 붙인 알루미늄 화살. 목표에게 최대한 큰 피해를 줘야 할 때 쓰인다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum field point arrow" -msgstr "알루미늄 필드 포인트 화살" +msgstr "" #. ~ Description for aluminum field point arrow #: lang/json/AMMO_from_json.py msgid "" "A fletched aluminum arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." -msgstr "뾰족한 촉과 깃이 달린 알루미늄 화살. 갑옷을 쉽게 관통한다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum small game arrow" -msgstr "알루미늄 소형 동물용 화살" +msgstr "" #. ~ Description for aluminum small game arrow #: lang/json/AMMO_from_json.py @@ -800,11 +796,11 @@ msgid "" "A fletched aluminum arrow shaft with a blunt tip. Useful for hunting small " "woodland creatures without splattering them all over the ground. Stands a " "good chance of remaining intact once fired." -msgstr "뭉툭한 촉과 깃이 달린 알루미늄 화살. 위력이 낮아 작은 사냥감을 피떡으로 만들지 않는다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "carbon fiber hunting arrow" -msgstr "탄소섬유 사냥용 화살" +msgstr "" #. ~ Description for carbon fiber hunting arrow #: lang/json/AMMO_from_json.py @@ -812,7 +808,7 @@ msgid "" "A fletched carbon fiber arrow shaft with an expanding broadhead tip. Deals " "impressive damage to targets. Stands a good chance of remaining intact once" " fired." -msgstr "명중 시 펼쳐지는 브로드헤드 촉과 깃이 달린 탄소섬유 화살. 엄청난 피해를 입힐 수 있다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "explosive arrow" @@ -875,12 +871,12 @@ msgstr "야외 놀이용 큰 플라스틱 다트." #: lang/json/AMMO_from_json.py msgid "frisbee" -msgstr "프리스비" +msgstr "" #. ~ Description for frisbee #: lang/json/AMMO_from_json.py msgid "A plastic frisbee made for outdoor games." -msgstr "밖에서 던지고 놀 때 쓰이는 원반." +msgstr "" #: lang/json/AMMO_from_json.py src/artifact.cpp msgid "disc" @@ -891,7 +887,7 @@ msgstr "원반" msgid "" "A plastic disc made for playing disc golf, it is smaller and denser then a " "normal frisbee." -msgstr "디스크 골프를 할 때 쓰이는 플라스틱 원반. 일반적인 프리스비보다 조금 더 작고 무겁다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden fishing spear" @@ -930,18 +926,18 @@ msgstr "탄소섬유로 만든 작살. 매우 가볍지만, 그다지 멀리 날 #: lang/json/AMMO_from_json.py msgid "wooden rubber blunt arrow" -msgstr "목재 연습용 화살" +msgstr "" #. ~ Description for wooden rubber blunt arrow #: lang/json/AMMO_from_json.py msgid "" "A fletched wooden arrow shaft with a blunt rubber tip. Can stun weaker " "enemies. Stands a good chance of remaining intact once fired." -msgstr "고무로 된 촉과 깃이 달린 나무 화살. 작은 동물들을 기절시킬 수 있다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "anesthetic" -msgstr "마취제" +msgstr "" #. ~ Description for anesthetic #: lang/json/AMMO_from_json.py @@ -949,7 +945,7 @@ msgid "" "A variety of powerful hypnotic, analgetic, and stimulative drugs. It's " "intended for use in specialized medical equipment, and can't be administered" " manually. You can reload an anesthesia kit with it." -msgstr "수술을 할 때 쓰이는 강력한 마취제와 진통제. 전문 수술용 장비이므로 직접 사용할 수 없다. 마취 키트를 채우는 데 쓰인다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1021,8 +1017,6 @@ msgid "" "severe burns to any tissue it comes in contact with. This property could " "probably be exploited." msgstr "" -"산화칼슘이라고도 불리는 이 하얀 가루는 석회를 태우면 만들어진다. 시멘트 제조에 들어가는 중요한 물질이지만, 부식성이 매우 높아서 " -"조직을 녹이고 화상을 입힐 수 있다. 이걸로 무기 같은 걸 만들어볼 수도 있을 듯 하다." #: lang/json/AMMO_from_json.py lang/json/terrain_from_json.py msgid "sand" @@ -1039,14 +1033,14 @@ msgstr "한 줌의 뉴잉글랜드산 모래. 작동 중인 용광로가 있다 #: lang/json/AMMO_from_json.py msgid "soil" msgid_plural "soil" -msgstr[0] "흙" +msgstr[0] "" #. ~ Description for soil #: lang/json/AMMO_from_json.py msgid "" "A pile of loosely packed, slightly damp loamy soil. This mixture of sand, " "silt and clay is ideal for growing plants." -msgstr "풀내가 진하게 나는 축축한 흙 한 덩어리. 식물 키우기에 딱 좋아 보인다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum powder" @@ -1160,8 +1154,6 @@ msgid "" "and sealed, it will explode with little strength, but with relatively loud " "noise and could maybe be used as a decoy." msgstr "" -"탄화 칼슘 덩어리. 마늘 비슷한 냄새가 난다. 즉석 아세틸렌 제조에 쓰이며 과거에는 등불의 연료로도 쓰였다. 물과 섞어 밀봉하면 큰 " -"소리를 내며 터지는데, 이걸로 유인용 미끼 같은 걸 만들 수도 있다." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "hexamine" @@ -1272,8 +1264,6 @@ msgid "" "types of perfumes, but would making perfume not be too fancy for " "postapocalyptic New England?" msgstr "" -"역겨운 냄새가 풍기는 농축된 초산. 실험용 시약이나 곰팡이 제거제로 쓰인다. 향수 제조에 사용되기도 하지만, 대충 망한 이 세상에선 " -"냄새가 좋다고 알아줄 사람도 없다." #: lang/json/AMMO_from_json.py msgid "formaldehyde" @@ -1320,8 +1310,6 @@ msgid "" "mixture is a common industrial explosive due to its stability and low price." " Burns fast, but needs an explosive primer to detonate." msgstr "" -"질산 암모늄에 석유를 흡수시켜 만드는 산업용 폭발물. 그 위력이나 폭속은 비교적 떨어지지만, 엄청나게 싼 가격과 단순한 사용법 덕에 광산" -" 등에서 흔히 사용된다. 불을 붙이면 빠르게 타지만, 터트리려면 기폭제가 필요하다." #: lang/json/AMMO_from_json.py msgid "black gunpowder" @@ -1351,8 +1339,6 @@ msgid "" " high explosive. Can be cast into shaped charges or mixed with scrap to " "pepper the blast area with high-velocity shrapnel." msgstr "" -"뿌연 흰색의 RDX 결정. 군사용 고폭탄에 사용된다. 녹여도 될 만큼 안정적이기 때문에 틀에 부어 성형작약을 만들 수도 있고, 쇳조각을 " -"섞어서 치명적인 세열폭탄을 만들 수도 있다." #: lang/json/AMMO_from_json.py msgid "HMTD" @@ -1366,8 +1352,6 @@ msgid "" "explosive, used to initiate detonation of more stable explosives, such as " "RDX. Relatively stable, but best not store it for too long." msgstr "" -"노란색 과산화헥사민 가루. 굉장히 민감한 폭약으로, RDX 따위의 둔감한 폭발물을 점화하는 데 쓰인다. 폭약 치고는 비교적 안정적이지만," -" 스스로 분해되기 전에 빠르게 써버리는 게 좋다." #: lang/json/AMMO_from_json.py msgid "rocket fuel" @@ -1392,7 +1376,7 @@ msgstr "대중적이었던 대재앙 전 분말 세제." #: lang/json/AMMO_from_json.py msgid "nanomaterial canister" -msgstr "나노물질 용기" +msgstr "" #. ~ Description for nanomaterial canister #: lang/json/AMMO_from_json.py @@ -1416,49 +1400,49 @@ msgstr "이것은 물질이 불에 타고 남은 가벼운 잔류물입니다." #: lang/json/AMMO_from_json.py msgid "wooden bead" -msgstr "나무 구슬" +msgstr "" #. ~ Description for wooden bead #: lang/json/AMMO_from_json.py msgid "" "This is a wooden bead. It can be used to craft inscribable jewelry or " "create a beaded curtain door." -msgstr "나무를 깎아 만든 구슬. 뭔가를 새겨 장신구를 만들거나, 커튼 문에 달 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "rosin" -msgstr "로진" +msgstr "" #. ~ Description for rosin #: lang/json/AMMO_from_json.py msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." -msgstr "나무 송진을 증류해 만드는 누런색 로진 덩어리. 납땜용 플럭스로 쓸 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" -msgstr "조잡한 목재 볼트" +msgstr "" #. ~ Description for crude wooden bolt #: lang/json/AMMO_from_json.py msgid "" "A crude pointed wooden crossbow bolt with a notch at the back. Stands a " "very low chance of remaining intact once fired." -msgstr "뾰족하게 깎은 촉과 홈이 파여있는 단순한 나무 볼트. 재사용 확률 매우 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden bolt" -msgstr "단순한 나무 볼트" +msgstr "" #. ~ Description for simple wooden bolt #: lang/json/AMMO_from_json.py msgid "" "A simple fletched wooden crossbow bolt with a fire-hardened and sharpened " "tip. Stands a low chance of remaining intact once fired." -msgstr "불로 그을린 뾰족한 촉과 깃이 달린 나무 볼트. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden small game bolt" -msgstr "단순한 목재 소형 동물용 볼트" +msgstr "" #. ~ Description for simple wooden small game bolt #: lang/json/AMMO_from_json.py @@ -1466,22 +1450,22 @@ msgid "" "A simple fletched wooden crossbow bolt with a blunted tip. Useful for " "hunting small woodland creatures without splattering them all over the " "ground. Stands a low chance of remaining intact once fired." -msgstr "뭉툭한 촉과 깃이 달린 단순한 나무 볼트. 위력이 낮아 작은 동물을 피떡으로 만들지 않는다. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "makeshift wooden bolt" -msgstr "급조한 목재 볼트" +msgstr "" #. ~ Description for makeshift wooden bolt #: lang/json/AMMO_from_json.py msgid "" "A simple fletched wooden crossbow bolt with a makeshift head. Stands a low " "chance of remaining intact once fired." -msgstr "조잡한 화살촉과 깃이 달린 나무 볼트. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden broadhead bolt" -msgstr "목재 브로드헤드 볼트" +msgstr "" #. ~ Description for wooden broadhead bolt #: lang/json/AMMO_from_json.py @@ -1489,22 +1473,22 @@ msgid "" "A fletched wooden crossbow bolt with a bladed tip. Useful for maximising " "damage to the target. Stands a decent chance of remaining intact once " "fired." -msgstr "날을 세운 촉과 깃을 붙인 나무 볼트. 목표에게 최대한 큰 피해를 줘야 할 때 쓰인다. 재사용 확률 평균." +msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden bodkin bolt" -msgstr "목재 보드킨 볼트" +msgstr "" #. ~ Description for wooden bodkin bolt #: lang/json/AMMO_from_json.py msgid "" "A fletched wooden crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." -msgstr "갑옷을 뚫는 데 쓰이는 뾰족한 나무 볼트. 재사용 확률 평균." +msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden small game bolt" -msgstr "목재 소형 동물용 볼트" +msgstr "" #. ~ Description for wooden small game bolt #: lang/json/AMMO_from_json.py @@ -1512,44 +1496,44 @@ msgid "" "A fletched wooden crossbow bolt with a blunt tip. Useful for hunting small " "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." -msgstr "뭉툭한 촉과 깃이 달린 나무 볼트. 위력이 낮아 작은 동물을 피떡으로 만들지 않는다. 재사용 확률 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "simple metal bolt" -msgstr "단순한 금속 볼트" +msgstr "" #. ~ Description for simple metal bolt #: lang/json/AMMO_from_json.py msgid "" "A simple fletched steel crossbow bolt with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." -msgstr "날카롭게 두드린 촉과 깃이 달린 단순한 강철 볼트. 재사용 확률 조금 낮음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum broadhead bolt" -msgstr "알루미늄 브로드헤드 볼트" +msgstr "" #. ~ Description for aluminum broadhead bolt #: lang/json/AMMO_from_json.py msgid "" "A fletched aluminum crossbow bolt with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." -msgstr "날을 세운 촉과 깃을 붙인 알루미늄 볼트. 목표에게 최대한 큰 피해를 줘야 할 때 쓰인다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum field point bolt" -msgstr "알루미늄 필드 포인트 볼트" +msgstr "" #. ~ Description for aluminum field point bolt #: lang/json/AMMO_from_json.py msgid "" "A fletched aluminum crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." -msgstr "뾰족한 촉과 깃이 달린 알루미늄 볼트. 갑옷을 쉽게 관통한다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum small game bolt" -msgstr "알루미늄 소형 동물용 볼트" +msgstr "" #. ~ Description for aluminum small game bolt #: lang/json/AMMO_from_json.py @@ -1557,7 +1541,7 @@ msgid "" "A fletched aluminum crossbow bolt with a blunt tip. Useful for hunting " "small woodland creatures without splattering them all over the ground. " "Stands a good chance of remaining intact once fired." -msgstr "뭉툭한 촉과 깃이 달린 알루미늄 볼트. 위력이 낮아 작은 사냥감을 피떡으로 만들지 않는다. 재사용 확률 높음." +msgstr "" #: lang/json/AMMO_from_json.py msgid "explosive crossbow bolt" @@ -1624,14 +1608,14 @@ msgstr "휘발유 생산 과정에서 발생한 부산물로부터 만들어진 #: lang/json/AMMO_from_json.py msgid "biodiesel" msgid_plural "biodiesel" -msgstr[0] "바이오디젤" +msgstr[0] "" #. ~ Description for biodiesel #: lang/json/AMMO_from_json.py msgid "" "Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " "alkyl (methyl, ethyl, or propyl) esters." -msgstr "폐식용유나 동물성 지방 따위로 만든 친환경적 디젤 연료." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" @@ -1729,7 +1713,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "throwing stick" -msgstr "투척용 막대기" +msgstr "" #. ~ Description for throwing stick #: lang/json/AMMO_from_json.py @@ -1741,7 +1725,7 @@ msgstr "목표를 향해 던지기 좋은 모양으로 깎아낸 막대기. 부 #: lang/json/AMMO_from_json.py msgid "bolas" msgid_plural "bolases" -msgstr[0] "볼라" +msgstr[0] "" #. ~ Description for bolas #: lang/json/AMMO_from_json.py @@ -1749,19 +1733,17 @@ msgid "" "Some ropes with weights, designed to tangle the legs of a target when " "thrown, usually at an animal. Used by the Gauchos of Argentina." msgstr "" -"로프에 무거운 추를 매달아 만드는 사냥용 도구. 동물 따위에 던지면 다리를 묶어 넘어뜨릴 수 있다. 아르헨티나 목동들이 썼으며, 서부 " -"영화에서도 자주 나온다." #: lang/json/AMMO_from_json.py msgid "net" -msgstr "그물" +msgstr "" #. ~ Description for net #: lang/json/AMMO_from_json.py msgid "" "A mesh of string and weights, traditionally used to catch fish, and to " "entangle oponents in combat." -msgstr "격자 모양으로 엮은 밧줄과 추. 낚시를 하거나 함정을 만들 때 쓰인다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "anesthetic kit" @@ -1781,18 +1763,18 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "10mm Auto FMJ" -msgstr "10mm Auto FMJ" +msgstr "" #. ~ Description for 10mm Auto FMJ #: lang/json/AMMO_from_json.py msgid "" "A jacketed 10mm Auto round. The 10mm Auto cartridge is a rather powerful " "handgun round and the progenitor to the more popular .40 S&W." -msgstr "10mm AUTO 풀 메탈 재킷, .40 S&W의 조상 뻘 되는 강력한 권총탄이다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 10mm Auto FMJ" -msgstr "100 Auto FMJ (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "H&K 12mm" @@ -2057,7 +2039,7 @@ msgstr "5.56 NATO 예광탄 (재생)" #: lang/json/AMMO_from_json.py msgid ".270 Winchester JSP" -msgstr ".270 윈체스터 JSP" +msgstr "" #. ~ Description for .270 Winchester JSP #: lang/json/AMMO_from_json.py @@ -2067,12 +2049,10 @@ msgid "" "most popular rifle cartridges for hunting and silhouette shooting. It is a " "powerful round capable of taking down large targets with ease." msgstr "" -".270 윈체스터 재키티드 소프트 포인트. 처음엔 외면당하던 라이플 탄약으로, 사냥이나 실루엣 슈팅 등에 쓰이며 서서히 인기를 모았다. " -"위력이 강해 큰 동물도 쉽게 제압할 수 있다." #: lang/json/AMMO_from_json.py msgid "reloaded .270 Winchester JSP" -msgstr ".270 윈체스터 JSP (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".300 Winchester Magnum" @@ -2226,7 +2206,7 @@ msgstr ".32 ACP (재생)" #: lang/json/AMMO_from_json.py msgid ".357 magnum FMJ" -msgstr ".357 매그넘 FMJ" +msgstr "" #. ~ Description for .357 magnum FMJ #: lang/json/AMMO_from_json.py @@ -2235,11 +2215,10 @@ msgid "" "earlier .38 special, with a marginally longer case and generating greater " "pressure." msgstr "" -".357 매그넘 풀 메탈 재킷. 본래 .38 스페셜에서 파생된 탄으로, 조금 더 길어진 몸체가 조금 더 높은 압력을 제공한다." #: lang/json/AMMO_from_json.py msgid ".357 magnum JHP" -msgstr ".357 매그넘 JHP" +msgstr "" #. ~ Description for .357 magnum JHP #: lang/json/AMMO_from_json.py @@ -2248,17 +2227,16 @@ msgid "" "derived from the earlier .38 special, with a marginally longer case and " "generating greater pressure." msgstr "" -".357 매그넘 재키티드 할로우 포인트. 본래 .38 스페셜에서 파생된 탄으로, 조금 더 길어진 몸체가 조금 더 높은 압력을 제공한다." #: lang/json/AMMO_from_json.py msgid "reloaded .357 Magnum FMJ" msgid_plural "reloaded .357 Magnum FMJ" -msgstr[0] ".357 매그넘 FMJ (재생)" +msgstr[0] "" #: lang/json/AMMO_from_json.py msgid "reloaded .357 Magnum JHP" msgid_plural "reloaded .357 Magnum JHP" -msgstr[0] ".357 매그넘 JHP (재생)" +msgstr[0] "" #: lang/json/AMMO_from_json.py msgid ".357 SIG FMJ" @@ -2354,7 +2332,7 @@ msgstr ".38 Super (재생)" #: lang/json/AMMO_from_json.py msgid "blackpowder .38 Special" -msgstr ".38 Special (흑색화약)" +msgstr "" #. ~ Description for blackpowder .38 Special #: lang/json/AMMO_from_json.py @@ -2363,12 +2341,10 @@ msgid "" "23gr of blackpowder. While it's much slower than a regular .38, it has " "tremendous stopping power." msgstr "" -"200gr짜리 주조한 납 할로 포인트 탄두와 흑색화약 23gr을 채워 만든 .38 Special 탄약. 무연화약보다는 탄속이 느리지만 " -"무거운 탄두 덕에 위력은 훨씬 강력하다." #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" -msgstr ".380 ACP FMJ" +msgstr "" #. ~ Description for .380 ACP FMJ #: lang/json/AMMO_from_json.py @@ -2378,12 +2354,10 @@ msgid "" "consider carrying. One should be careful not to chamber it in 9x18mm " "Makarov or 9x19mm firearms." msgstr "" -".380 오토매틱 콜트 피스톨 풀 메탈 재킷, 95gr. 백 년이 넘는 역사를 지닌 유명한 권총탄이지만, 그나마 살상력이 있는 탄종 중 " -"가장 약한 축에 속한다. 9x18mm 마카로프나 9x19mm 파라벨럼과 헷갈리지 않게 주의하자." #: lang/json/AMMO_from_json.py msgid ".380 ACP JHP" -msgstr ".380 ACP JHP" +msgstr "" #. ~ Description for .380 ACP JHP #: lang/json/AMMO_from_json.py @@ -2393,12 +2367,10 @@ msgid "" "recommended defensive caliber. One should be careful not to chamber it in " "9x18mm Makarov or 9x19mm firearms." msgstr "" -".380 오토매틱 콜트 피스톨 재키티드 할로 포인트, 95gr. 백 년이 넘는 역사를 지닌 유명한 권총탄이지만, 그나마 살상력이 있는 " -"탄종 중 가장 약한 축에 속한다. 9x18mm 마카로프나 9x19mm 파라벨럼과 헷갈리지 않게 주의하자." #: lang/json/AMMO_from_json.py msgid ".380 ACP +P" -msgstr ".380 ACP +P" +msgstr "" #. ~ Description for .380 ACP +P #: lang/json/AMMO_from_json.py @@ -2408,24 +2380,22 @@ msgid "" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" -"고압력 .380 오토매틱 콜트 피스톨, 90gr. 향상된 성능을 중점으로 설계되었으며, 일반적인 .380탄보다 정확하다. 9x18mm " -"마카로프나 9x19mm 파라벨럼과 헷갈리지 않게 주의하자." #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP FMJ" -msgstr ".380 ACP FMJ (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP JHP" -msgstr ".380 ACP JHP (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP +P" -msgstr ".380 ACP +P (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".38 Super FMJ" -msgstr ".38 Super FMJ" +msgstr "" #. ~ Description for .38 Super FMJ #: lang/json/AMMO_from_json.py @@ -2433,11 +2403,11 @@ msgid "" ".38 Super ammunition with 147gr FMJ bullets. The .38 Super round was " "developed from .38 ACP in the 1920s, designed to penetrate the body armor of" " the era." -msgstr ".38 Super 풀 메탈 재킷, 147gr. 방탄복을 관통하기 위해 1920년대에 만들어진, .38 ACP의 파생종이다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .38 Super FMJ" -msgstr ".38 Super FMJ (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".40 S&W FMJ" @@ -2488,7 +2458,7 @@ msgstr "40mm 빈백" msgid "" "A 40mm less-lethal beanbag that delivers strong impact on target, causing " "major pain and disorientation. May still injure or kill." -msgstr "콩주머니가 든 40mm 유탄. 맞으면 엄청나게 아프다. 비살상탄이지만 위력이 충분히 강해 자칫하면 살해할 수도 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "40mm concussive" @@ -2562,7 +2532,7 @@ msgstr "40mm 벅샷" msgid "" "A 40mm shell with a powerful buckshot load, designed to be used as " "alternative to shotguns or when breaching barricades and other obstacles." -msgstr "벅샷이 채워진 40mm 유탄. 장애물을 부수거나 근접전에서 샷건 대용으로 쓰이도록 설계되었다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "40mm smoke cover" @@ -2587,27 +2557,27 @@ msgstr "최루가스가 탑재된 40mm 유탄. 터지면서 강력한 무력화 #: lang/json/AMMO_from_json.py msgid "40mm slug" -msgstr "40mm 슬러그 유탄" +msgstr "" #. ~ Description for 40mm slug #: lang/json/AMMO_from_json.py msgid "" "A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " "guess." -msgstr "커다란 슬러그가 채워진 40mm 유탄. 어깨가 아작나는 고통을 감수할 수 있다면 엄청난 파괴력을 보여줄 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid ".410 000 shot" -msgstr ".410 000 샷" +msgstr "" #. ~ Description for .410 000 shot #: lang/json/AMMO_from_json.py msgid "A .410 shell with 5 000 pellets. Good for a hunting or combat load." -msgstr "000 샷 5개가 채워진 .410 산탄총 탄약. 사냥이나 전투에 걸맞는 위력을 가졌다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .410 000 shot" -msgstr ".410 000 샷 (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" @@ -2644,7 +2614,7 @@ msgstr ".44 Magnum (재생)" #: lang/json/AMMO_from_json.py msgid "blackpowder .44 Magnum" -msgstr ".44 Magnum (흑색화약)" +msgstr "" #. ~ Description for blackpowder .44 Magnum #: lang/json/AMMO_from_json.py @@ -2652,8 +2622,6 @@ msgid "" "This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " "cast lead semi-wadcutter." msgstr "" -"200gr짜리 주조한 납 세미와드커터 탄두와 흑색화약 39gr을 채워 만든 .44 Magnum 탄약. 무연화약보다는 탄속이 느리지만 " -"무거운 탄두 덕에 위력은 훨씬 강력하다." #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" @@ -2741,7 +2709,7 @@ msgstr ".454 Casull (재생)" #: lang/json/AMMO_from_json.py msgid "blackpowder .454 Casull" -msgstr ".454 Casull (흑색화약)" +msgstr "" #. ~ Description for blackpowder .454 Casull #: lang/json/AMMO_from_json.py @@ -2749,12 +2717,10 @@ msgid "" "This strange anachronism of a cartridge is loaded with 45gr of blackpowder " "and a relatively light 190gr cast lead hollowpoint." msgstr "" -"190gr짜리 주조한 납 할로 포인트 탄두와 흑색화약 45gr을 채워 만든 .454 Casull 탄약. 무연화약을 쓰는 원본보다 탄자 " -"무게가 낮아서 꽤나 다른 성격의 탄약이 되어 버렸다." #: lang/json/AMMO_from_json.py msgid ".45-70 SP" -msgstr ".45-70 Government SP" +msgstr "" #. ~ Description for .45-70 SP #: lang/json/AMMO_from_json.py @@ -2763,12 +2729,10 @@ msgid "" "of the oldest cartridges still in use, it is still a favorite for large game" " hunting at short ranges." msgstr "" -".45-70 거버먼트 소프트 포인트, 305gr. 장수만세 소리가 절로 나오는 오래된 탄약이지만, 근거리에서의 막강한 위력은 세월이 " -"지나도 변하지 않는다." #: lang/json/AMMO_from_json.py msgid ".45-70 +P penetrator" -msgstr ".45-70 Government +P 관통탄" +msgstr "" #. ~ Description for .45-70 +P penetrator #: lang/json/AMMO_from_json.py @@ -2777,12 +2741,10 @@ msgid "" "penetrator projectile. Designed for maximum penetration through thick hide " "and bone while maintaining ideal wounding characteristics." msgstr "" -".45-70 거버먼트 구리 페네트레이터, 305gr. 무엇을 어떻게 쏘던지 상관없이 무조건 뚫고 들어가서 죽이도록 만든 사냥용 탄약이다." -" " #: lang/json/AMMO_from_json.py msgid ".45-70 LFN cowboy" -msgstr ".45-70 Government LFN 카우보이" +msgstr "" #. ~ Description for .45-70 LFN cowboy #: lang/json/AMMO_from_json.py @@ -2791,12 +2753,10 @@ msgid "" "to original specifications for safe use in antique firearms. Quite a bit " "less powerful than modern ammo, but still packs a punch." msgstr "" -".45-70 거버먼트 플랫 노즈, 405gr. 그때 그 시절 그 모양 그대로 만들어서, 마찬가지로 오래된 그때 그 시절 앤티크 총기와 " -"쓰인다. 현대판보다 비교적 약하지만, 그래도 충분히 강력하다." #: lang/json/AMMO_from_json.py msgid "reloaded .45-70 SP" -msgstr ".45-70 Government SP (재생)" +msgstr "" #. ~ Description for reloaded .45-70 SP #: lang/json/AMMO_from_json.py @@ -2805,12 +2765,10 @@ msgid "" "of the oldest cartridges still in use, it is still a favorite for large game" " hunting at short ranges. This one has been hand-loaded." msgstr "" -".45-70 거버먼트 소프트 포인트, 305gr. 장수만세 소리가 절로 나오는 오래된 탄약이지만, 근거리에서의 막강한 위력은 세월이 지나도 변하지 않는다.\n" -"이것은 재생탄이다." #: lang/json/AMMO_from_json.py msgid "reloaded .45-70 +P penetrator" -msgstr ".45-70 Government +P 관통탄 (재생)" +msgstr "" #. ~ Description for reloaded .45-70 +P penetrator #: lang/json/AMMO_from_json.py @@ -2820,12 +2778,10 @@ msgid "" "and bone while maintaining ideal wounding characteristics. This one has " "been hand-loaded." msgstr "" -".45-70 거버먼트 구리 페네트레이터, 305gr. 무엇을 어떻게 쏘던지 상관없이 무조건 뚫고 들어가서 죽이도록 만든 사냥용 탄약이다.\n" -"이것은 재생탄이다." #: lang/json/AMMO_from_json.py msgid "reloaded .45-70 LFN cowboy" -msgstr ".45-70 Government LFN 카우보이 (재생)" +msgstr "" #. ~ Description for reloaded .45-70 LFN cowboy #: lang/json/AMMO_from_json.py @@ -2835,12 +2791,10 @@ msgid "" "less powerful than modern ammo, but still packs a punch. This one has been " "hand-loaded." msgstr "" -".45-70 거버먼트 플랫 노즈, 405gr. 그때 그 시절 그 모양 그대로 만들어서, 마찬가지로 오래된 그때 그 시절 앤티크 총기와 쓰인다. 현대판보다 비교적 약하지만, 그래도 충분히 강력하다.\n" -"이것은 재생탄이다." #: lang/json/AMMO_from_json.py msgid "reloaded .45-70 black powder" -msgstr ".45-70 Government (흑색화약, 재생)" +msgstr "" #. ~ Description for reloaded .45-70 black powder #: lang/json/AMMO_from_json.py @@ -2850,12 +2804,10 @@ msgid "" "and a lot dirtier than modern ammo, but still packs a punch. This one has " "been hand-loaded." msgstr "" -".45-70 거버먼트 플랫 노즈, 405gr. 그때 그 시절 쓰던 흑색 화약을 써서 현대판보다 상당히 약하고 훨씬 더럽지만, 그래도 충분히 강력하다. 역사고증 하나는 제대로 한 셈.\n" -"이것은 재생탄이다." #: lang/json/AMMO_from_json.py msgid ".45 Colt JHP" -msgstr ".45 Colt JHP" +msgstr "" #. ~ Description for .45 Colt JHP #: lang/json/AMMO_from_json.py @@ -2865,12 +2817,10 @@ msgid "" "reproduction revolvers. Originally a black powder cartridge, modern loads " "can make this round competitive in the new era." msgstr "" -".45 콜트 재키티드 할로 포인트, 250gr. 본래 콜트 싱글 액션 아미를 위해 만들어진 150년의 역사를 지닌 탄약이다. 본래 " -"흑색화약을 썼지만, 무연화약이 개발되면서 위력이 증가해 지금도 현대식 리볼버에 사용된다." #: lang/json/AMMO_from_json.py msgid "reloaded .45 Colt JHP" -msgstr ".45 Colt JHP (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "4.6x30mm" @@ -3458,11 +3408,11 @@ msgstr "고압 9x19mm +P 탄보다 더 나아간 +P+ 탄은 더욱 높은 내부 #: lang/json/AMMO_from_json.py msgid "9x19mm JHP blackpowder" -msgstr "9x19mm JHP (흑색화약)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "9x19mm FMJ blackpowder" -msgstr "9x19mm FMJ (흑색화약)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm JHP" @@ -3561,14 +3511,14 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "152mm ATGM HEAT" -msgstr "152mm 대전차 고폭 유도 미사일" +msgstr "" #. ~ Description for 152mm ATGM HEAT #: lang/json/AMMO_from_json.py 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 "sprayable toxic gas" @@ -3677,7 +3627,7 @@ msgstr "버드샷 (재생)" #: lang/json/AMMO_from_json.py msgid "reloaded dragon's breath shell" -msgstr "드래곤 브레스 탄 (재생)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 00 shot" @@ -3693,19 +3643,19 @@ msgstr "슬러그탄 (재생)" #: lang/json/AMMO_from_json.py msgid "blackpowder birdshot" -msgstr "버드샷 (흑색화약)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "blackpowder 00 shot" -msgstr "00 샷 (흑색화약)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "blackpowder flechette shell" -msgstr "플레셰트 탄 (흑색화약)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "blackpowder shotgun slug" -msgstr "슬러그 탄 (흑색화약)" +msgstr "" #: lang/json/AMMO_from_json.py msgid "00 shot" @@ -3740,7 +3690,7 @@ msgstr "조류나 작은 동물들을 사냥하기 위해 만들어진 약한 #: lang/json/AMMO_from_json.py msgid "dragon's breath shell" -msgstr "드래곤 브레스 탄" +msgstr "" #. ~ Description for dragon's breath shell #: lang/json/AMMO_from_json.py @@ -3750,8 +3700,6 @@ msgid "" "temperature sparks and flames shoot out of the barrel, igniting everything " "in their path." msgstr "" -"마그네슘 파편이 채워진 샷건 탄약. 발사 시 마그네슘이 급속히 연소하며 초고열을 발생시킨다. 보통 신호탄이나 불꽃놀이 따위에 쓰이지만, " -"충분히 불을 지르는 데 쓸 수 있다." #: lang/json/AMMO_from_json.py msgid "flechette shell" @@ -3803,18 +3751,18 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "scrap shotcanister" -msgstr "수제 고철 탄" +msgstr "" #. ~ Description for scrap shotcanister #: lang/json/AMMO_from_json.py msgid "" "This small paper canister resembling a crude shotshell is filled to the brim" " with assorted pieces of scrap metal." -msgstr "종이에 고철을 채워 만든 수제 산탄총 탄약." +msgstr "" #: lang/json/AMMO_from_json.py msgid "pebble shotcanister" -msgstr "수제 조약돌 탄" +msgstr "" #. ~ Description for pebble shotcanister #: lang/json/AMMO_from_json.py @@ -3822,29 +3770,29 @@ msgid "" "This small paper canister resembling a crude shotshell is filled to the brim" " with tiny pebbles. Damage is pathetic but flight is much more stable than " "scrap" -msgstr "종이에 조약돌을 채워 만든 수제 산탄총 탄약." +msgstr "" #: lang/json/AMMO_from_json.py msgid "flechette shotcanister" -msgstr "수제 플레셰트 탄" +msgstr "" #. ~ Description for flechette shotcanister #: lang/json/AMMO_from_json.py msgid "" "This small paper canister resembling a crude shotshell is filled to the brim" " with handmade flechettes, giving it some armor piercing capabilities." -msgstr "종이에 날카로운 다트를 채워 만든 수제 산탄총 탄약. 어느 정도 장갑을 관통할 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bearing shotcanister" -msgstr "수제 베어링 탄" +msgstr "" #. ~ Description for bearing shotcanister #: lang/json/AMMO_from_json.py msgid "" "This small paper canister resembling a crude shotshell is filled to the brim" " with handmade bearings, stabilizing it's flight pattern a tiny bit." -msgstr "종이에 베어링을 채워 만든 수제 산탄총 탄약. 조잡하게 만든 것 치곤 탄도가 안정적이다." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "signal flare" @@ -3988,7 +3936,7 @@ msgstr "고철" msgid "" "A bulky assortment of small bits of scrap steel useful in all kinds of " "crafting." -msgstr "온갖 종류의 작은 고철 한 무더기. 온갖 것들을 만들 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bismuth" @@ -4086,14 +4034,14 @@ msgstr "무거운 강철 조각. 물품 제작에 사용됩니다." #: lang/json/AMMO_from_json.py msgid "door hinge" -msgstr "경첩" +msgstr "" #. ~ Description for door hinge #: lang/json/AMMO_from_json.py msgid "" "A small metal hinge with two metal plates with screw holes. Useful for " "making doors." -msgstr "쇠로 된 경첩. 스크류 구멍이 있다. 문을 달 때 쓰인다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "incendiary" @@ -4200,17 +4148,17 @@ msgstr "플루토늄 전지" msgid "" "Some free-floating battery charge. This can be reloaded into rechargable " "battery cells, but can never be unloaded." -msgstr "흔히 찾을 수 있는 일회용 배터리. 충전식 배터리를 충전하는 데 쓸 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "chunk of rubber" msgid_plural "chunks of rubber" -msgstr[0] "고무 덩어리" +msgstr[0] "" #. ~ Description for chunk of rubber #: lang/json/AMMO_from_json.py msgid "A chunk of useful rubber, can be molded easily." -msgstr "쓸만한 고무 한 덩어리. 쉽게 녹여서 모양을 잡을 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "lead pellets" @@ -4222,11 +4170,11 @@ msgid "" "A round tin of small light grain .177 lead pellets. These are common, " "tipped field pellets that can deal some light damage but are generally used " "for plinking." -msgstr "비비건에 쓰이는 .177 납 펠릿 한 통. 끝이 뾰족해 약간의 피해를 입힐 수는 있지만, 보통 연습용으로 쓰인다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "domed HP pellets" -msgstr "할로 포인트 펠릿" +msgstr "" #. ~ Description for domed HP pellets #: lang/json/AMMO_from_json.py @@ -4235,11 +4183,10 @@ msgid "" "hitting a target for maximized damage, the dome shape allows it to pack " "quite a punch for something so small" msgstr "" -"비비건에 쓰이는 납 할로 포인트 펠릿 한 통. 명중 시 탄자가 뭉개지기 때문에 조그마한 크기 치고는 상당한 피해를 줄 수 있다." #: lang/json/AMMO_from_json.py msgid "tipped HP pellets" -msgstr "소프트 포인트 펠릿" +msgstr "" #. ~ Description for tipped HP pellets #: lang/json/AMMO_from_json.py @@ -4247,12 +4194,10 @@ msgid "" "A medium grain lead pellet tipped with a pointed bit of hard plastic with " "the purpose of maximum expansion upon hitting a target." msgstr "" -"비비건에 쓰이는 납 소프트 포인트 펠릿 한 통. 명중 시 뭉개지며 상당한 피해를 주는 건 똑같지만, 탄두 끝을 감싸는 플라스틱 껍데기가 " -"탄도를 약간 향상시킨다." #: lang/json/AMMO_from_json.py msgid "alloy pellets" -msgstr "합금 펠릿" +msgstr "" #. ~ Description for alloy pellets #: lang/json/AMMO_from_json.py @@ -4260,7 +4205,7 @@ msgid "" "An gimmicky alloy pellet with the purpose of reaching a higher velocity than" " a normal lead pellet for breaking the sound barrier resulting in an " "extremely loud crack, not so useful for stealth." -msgstr "비비건에서 초음속탄을 쏘기 위해 쓰이는 초경량 합금 펠릿. 소닉붐이 일어나기 때문에 실제 총기와 견줄만한 소음을 발생시킨다." +msgstr "" #: lang/json/AMMO_from_json.py msgid "pulse round" @@ -4626,14 +4571,14 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "crystallized mana" msgid_plural "crystallized mana" -msgstr[0] "마나 결정" +msgstr[0] "" #. ~ Description for crystallized mana #: lang/json/AMMO_from_json.py msgid "" "Some crystallized mana. This can be reloaded into rechargable mana crystals," " but can never be unloaded." -msgstr "결정으로 굳은 마나 조각들. 충전식 마나 크리스탈을 충전하는 데 쓰일 수 있다." +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "fire lance charge" @@ -5384,7 +5329,7 @@ msgstr "종이를 여러 장 덧대고 접착 테이프로 붙여 만든 팔 보 #: lang/json/ARMOR_from_json.py msgid "pair of scrap arm guards" msgid_plural "pairs of scrap arm guards" -msgstr[0] "고철 팔 보호구" +msgstr[0] "" #. ~ Description for pair of scrap arm guards #: lang/json/ARMOR_from_json.py @@ -5392,7 +5337,7 @@ msgid "" "A pair of arm guards made from scraps of metal secured by simple strings; " "the loose collection of plates provides decent but not the most convenient " "protection." -msgstr "고철을 줄로 묶어서 만든 간단한 팔 보호구. 나름 괜찮은 방어력을 제공하지만 굉장히 불편하고 거추장스럽다." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of neoprene arm sleeves" @@ -5557,7 +5502,7 @@ msgstr "엄청나게 무거운 의장용 갑옷." #: lang/json/ARMOR_from_json.py msgid "riot armor" msgid_plural "riot armors" -msgstr[0] "시위 진압용 보호구" +msgstr[0] "" #. ~ Description for riot armor #: lang/json/ARMOR_from_json.py @@ -5566,8 +5511,6 @@ msgid "" "plastic shoulder guards offer good protection without much encumbrance. The" " word POLICE is emblazoned across the front." msgstr "" -"경찰이 쓰는 검은색 방어구. 플라스틱과 섬유로 되어서 비교적 가볍고 유연하다. 큼지막한 \"POLICE\" 글자가 앞에 새겨져 있지만, " -"안타깝게도 좀비들은 체포가 무엇인지 이해하지 못한다." #: lang/json/ARMOR_from_json.py msgid "O-yoroi" @@ -5602,7 +5545,7 @@ msgid "" "A suit of armor made from scraps of metal secured by simple strings; the " "loose collection of plates provides decent but not the most convenient " "protection." -msgstr "고철을 줄로 묶어서 만든 간단한 갑옷. 나름 괜찮은 방어력을 제공하지만 굉장히 불편하고 거추장스럽다." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -6185,12 +6128,12 @@ msgstr "실크로 만들어진 작은 캐미솔. 보통 속옷으로 사용하 #: lang/json/ARMOR_from_json.py msgid "Foodperson's cape" msgid_plural "Foodperson's capes" -msgstr[0] "로떼리아 망토" +msgstr[0] "" #. ~ Description for Foodperson's cape #: lang/json/ARMOR_from_json.py msgid "A brightly-colored cape emblazoned with the \"Fp\" symbol." -msgstr "로떼리아 로고가 새겨진 알록달록한 망토." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "cassock" @@ -43028,7 +42971,7 @@ msgstr[0] "" msgid "" "A broken robotic incubator for alien blobs. Could be stripped down or re-" "crafted." -msgstr "외계 블럽을 위한 고장난 로봇 인큐베이터. 분해하거나 다시 만들 수 있다." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken slime breeder" @@ -43040,7 +42983,7 @@ msgstr[0] "" msgid "" "A broken robotic incubator for alien slimes. Could be stripped down or re-" "crafted." -msgstr "외계 슬라임을 위한 고장난 로봇 인큐베이터. 분해하거나 다시 만들 수 있다." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken digestron" @@ -43052,7 +42995,7 @@ msgstr[0] "" msgid "" "A broken acid digestor robot, now cold and unmoving. Could be stripped down" " or re-crafted." -msgstr "고장난 산성 소화로봇, 차갑고 움직임이 없다. 분해하거나 다시 만들 수 있다." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken bee-bot" @@ -43064,7 +43007,7 @@ msgstr[0] "" msgid "" "A broken beehive robot, now still and bee-less. Could be stripped down or " "re-crafted." -msgstr "고장난 로봇, 여전히 벌소리를 낸다. 분해하거나 다시 만들 수 있다." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken medical bot" @@ -43076,7 +43019,7 @@ msgstr[0] "" msgid "" "A broken medical robot, now crumpled and inert. Could be stripped down for " "parts." -msgstr "고장난 소방 로봇, 구겨지고 비활성화 되어있다. 부품 회수 가능." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken disarmed medical robot" @@ -43089,7 +43032,7 @@ 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 "고장난 비무장 의료용 로봇. 수술 도구가 제거되었습니다. 부품으로 분해하거나 재활용된 로봇으로 만들 수 있습니다." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken assassin robot" @@ -43101,7 +43044,7 @@ msgstr[0] "" msgid "" "A broken assassin robot, now limp and immobile. Could be stripped down or " "re-crafted." -msgstr "고장난 암살 로봇, 지금은 절뚝거리고 움직이지 않습니다. 분해하거나 다시 만들 수 있다." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken elixirator" @@ -43125,7 +43068,7 @@ msgstr[0] "" msgid "" "A broken party robot, now wasted and burnt out. Looks like the party's " "over. Could be stripped down or re-crafted." -msgstr "고장난 파티 로봇,폐기되고 타버렸다. 파티가 끝난 것 같다. 분해하거나 다시 만들 수 있다." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken insane cyborg" @@ -46600,7 +46543,7 @@ msgstr "Mapgen Demo" #. ~ Description for Mapgen Demo #: lang/json/MOD_INFO_from_json.py msgid "Demo for JSONized mapgens (FEMA, megastore, missile silo)." -msgstr "Demo for JSONized mapgens (FEMA, 초대형상점, 미사일 저장고)." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Classes and Scenarios Mod" @@ -48507,7 +48450,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "piglet" -msgstr "돼지 새끼" +msgstr "" #. ~ Description for piglet #. ~ Description for pig @@ -50699,8 +50642,6 @@ msgid "" "large specimen doesn't look like it sees humans as anything other than a " "meal." msgstr "" -"20세기 후반에 반려동물 악어가 화장실에서 하수구로 내려가 성체로 성장했다는 도시전설이 있었습니다. 이 종은 사람을 음식으로밖에 보지 " -"않는 것 같습니다." #: lang/json/MONSTER_from_json.py msgid "rattlesnake" @@ -50743,16 +50684,16 @@ msgstr "호전적인 변종 지렁이뱀으로, 지하에서의 오랜 삶 때 #: lang/json/MONSTER_from_json.py msgid "biollante sprig" -msgstr "비오란테 잔가지" +msgstr "" #. ~ Description for biollante sprig #: lang/json/MONSTER_from_json.py msgid "A short fat stalk with broad leaves and tiny flower buds." -msgstr "잎이 넓고 작은 꽃봉오리가 있는 짧은 지방 줄기가 있습니다." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "biollante sprout" -msgstr "비오란테 새싹" +msgstr "" #. ~ Description for biollante sprout #: lang/json/MONSTER_from_json.py @@ -50760,8 +50701,6 @@ msgid "" "A thick stalk that rises five feet from the ground and has heavy broad " "leaves at its base. Purple flower buds adorn the top." msgstr "" -"땅으로부터 5피트 높이 솟아 있고 그 밑부분에는 무거운 넓은 잎이 있는 굵은 줄기가 있습니다. 보라색 꽃봉오리가 꼭대기에 장식되어 " -"있습니다." #: lang/json/MONSTER_from_json.py msgid "biollante" @@ -50796,7 +50735,7 @@ msgstr "가시달린 줄기로, 엄청난 속도로 자라나고 있습니다." #: lang/json/MONSTER_from_json.py msgid "triffid sprig" -msgstr "트리피드 잔가지" +msgstr "" #. ~ Description for triffid sprig #: lang/json/MONSTER_from_json.py @@ -52188,14 +52127,14 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "utility robot" -msgstr "유틸리티 로봇" +msgstr "" #. ~ 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 "정부 기관, 민간 기업 및 민간인이 이전에 사용하던 많은 유틸리티 로봇 모델 중 하나이다." +msgstr "" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py @@ -52204,8 +52143,6 @@ msgid "" "blinding flash. No longer linked to police or security network, it " "continues its unending hunt for criminals and trespassers." msgstr "" -"카메라 한 세트를 장착하고 좋은 신호로 무장한 소형 공중 로봇. 더 이상 경찰이나 보안망과 연결되지 않고, 범죄자와 침입자에 대한 끝없는" -" 추적을 계속하고 있다." #. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py @@ -52214,12 +52151,10 @@ msgid "" "Armed with two close-range tazers, it can skate across the ground with great" " speed." msgstr "" -"가정용 보안용으로 설계된 작은 개 크기의 곤충 모양의 로봇. 두 개의 근거리 테이저로 무장된 이 스케이트는 엄청난 속도로 지면을 횡단할 " -"수 있다." #: lang/json/MONSTER_from_json.py msgid "defense robot" -msgstr "방어 로봇" +msgstr "" #. ~ Description for defense robot #: lang/json/MONSTER_from_json.py @@ -52230,7 +52165,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "security robot" -msgstr "보안 로봇" +msgstr "" #. ~ Description for security robot #: lang/json/MONSTER_from_json.py @@ -52241,7 +52176,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "riotcontrol robot" -msgstr "폭동진압 로봇" +msgstr "" #. ~ Description for riotcontrol robot #: lang/json/MONSTER_from_json.py @@ -52312,7 +52247,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "craftbuddy" -msgstr "크래프트버디" +msgstr "" #. ~ Description for craftbuddy #: lang/json/MONSTER_from_json.py @@ -52325,7 +52260,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "automated armor" -msgstr "자동화 방어구" +msgstr "" #. ~ Description for automated armor #: lang/json/MONSTER_from_json.py @@ -52335,8 +52270,6 @@ msgid "" "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" @@ -52345,7 +52278,7 @@ msgstr[0] "" #: lang/json/MONSTER_from_json.py msgid "auto armor" -msgstr "자동 방어구" +msgstr "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "heavy auto armor" @@ -52354,12 +52287,12 @@ msgstr[0] "" #: lang/json/MONSTER_from_json.py msgid "floating lantern" -msgstr "떠다니는 랜턴" +msgstr "" #. ~ Description for floating lantern #: lang/json/MONSTER_from_json.py msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "재활용된 무인기가 이동식 조명장치로 용도 변경되었다." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "distract-o-hack" @@ -52401,7 +52334,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "watercannon turret" -msgstr "물대포 터렛" +msgstr "" #. ~ Description for watercannon turret #: lang/json/MONSTER_from_json.py @@ -52432,7 +52365,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "floating furnace" -msgstr "떠다니는 용광로" +msgstr "" #. ~ Description for floating furnace #: lang/json/MONSTER_from_json.py @@ -52467,7 +52400,7 @@ msgstr "오염된 지역에서 오염물질을 제거하기 위해 설계된 유 #: lang/json/MONSTER_from_json.py msgid "butler-bot" -msgstr "집사-봇" +msgstr "" #. ~ Description for butler-bot #: lang/json/MONSTER_from_json.py @@ -52476,7 +52409,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "construction robot" -msgstr "건설 로봇" +msgstr "" #. ~ Description for construction robot #: lang/json/MONSTER_from_json.py @@ -52488,7 +52421,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "firefighter robot" -msgstr "소방 로봇" +msgstr "" #. ~ Description for firefighter robot #: lang/json/MONSTER_from_json.py @@ -52500,7 +52433,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "blob breeder" -msgstr "블럽 사육사" +msgstr "" #. ~ Description for blob breeder #: lang/json/MONSTER_from_json.py @@ -52512,7 +52445,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "slime breeder" -msgstr "슬라임 사육사" +msgstr "" #. ~ Description for slime breeder #: lang/json/MONSTER_from_json.py @@ -52536,7 +52469,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bee bot" -msgstr "벌 로봇" +msgstr "" #. ~ Description for bee bot #: lang/json/MONSTER_from_json.py @@ -52548,7 +52481,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "medical robot" -msgstr "의료용 로봇" +msgstr "" #. ~ Description for medical robot #: lang/json/MONSTER_from_json.py @@ -52560,7 +52493,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "assassination robot" -msgstr "암살 로봇" +msgstr "" #. ~ Description for assassination robot #: lang/json/MONSTER_from_json.py @@ -52922,7 +52855,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "chainsaw horror" -msgstr "사슬톱 공포" +msgstr "" #. ~ Description for chainsaw horror #: lang/json/MONSTER_from_json.py @@ -52939,7 +52872,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "screeching terror" -msgstr "으르렁거리는 공포" +msgstr "" #. ~ Description for screeching terror #: lang/json/MONSTER_from_json.py @@ -53016,7 +52949,7 @@ msgstr[0] "젤라틴 덩어리" #: lang/json/MONSTER_from_json.py msgid "" "An escaping noisy blob, catch it before it brings in every zombie for miles!" -msgstr "도망치는 시끄러운 블럽, 몇 마일이나 떨어진 좀비를 데려오기 전에 잡아요!" +msgstr "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "gray mass" @@ -54340,7 +54273,7 @@ msgstr[0] "배터리 수납함 모드" msgid "" "A battery compartment mod that allows using vehicle batteries and small " "storage batteries in regular tools." -msgstr "배터리 수납함 모드는 자동차 배터리와 작은 저장 소형 배터리를 일반 도구에 사용할 수 있게 해줍니다." +msgstr "" #: lang/json/TOOLMOD_from_json.py msgid "light battery mod" @@ -54501,7 +54434,7 @@ msgid "" "A cloak woven with metallic fibers and covered with hexagonal sheets of " "reflective carbide. When activated, it will create an holographic decoy of " "its wearer." -msgstr "금속 섬유로 엮어 반사탄화 육각판으로 덮은 망토입니다. 활성화되면 착용자의 홀로그래픽 디코이를 만듭니다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "fedora" @@ -54512,7 +54445,7 @@ msgstr[0] "페도라" #. ~ Use action menu_text for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py msgid "Tip" -msgstr "팁" +msgstr "" #. ~ Use action msg for fedora. #. ~ Use action msg for straw fedora. @@ -54690,8 +54623,6 @@ msgid "" "the distance around you that is mapped during your travels. You could also " "use them to focus the sunlight." msgstr "" -"목에 걸 수 있게 끈이 달린 광학장비로 먼 곳을 볼 때 유용합니다. 먼 거리를 볼 때 유용합니다. 착용하거나 인벤토리에 저장하면 여행 " -"중에 볼 수있는 주변 거리가 두 배로 늘어납니다.햇빛을 모을 때 쓸 수도 있습니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp" @@ -54701,19 +54632,19 @@ msgstr[0] "" #. ~ Use action msg for headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the headlamp on." -msgstr "헤드램프를 켰다." +msgstr "" #. ~ Use action need_charges_msg for headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "The headlamp batteries are dead." -msgstr "헤드램프의 배터리가 나갔다." +msgstr "" #. ~ Description for headlamp #: lang/json/TOOL_ARMOR_from_json.py 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 "머리에 편하게 착용하거나 헬멧에 부착할 수 있도록 조절 가능한 스트랩이 달린 LED 헤드램프입니다. 사용(a)하면 켜집니다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp (on)" @@ -54727,8 +54658,6 @@ 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 "" -"머리에 쓰거나 헬멧에 달 수 있도록 조절할 수 있는 끈이 달린 LED 헤드램프. 현재 켜져있으며, 지속적으로 배터리를 소모하고 있습니다." -" 사용(a)하면 꺼집니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor headlamp" @@ -54738,12 +54667,12 @@ msgstr[0] "" #. ~ Use action msg for survivor headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the survivor headlamp on." -msgstr "생존용 헤드램프를 켰다." +msgstr "" #. ~ Use action need_charges_msg for survivor headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "The survivor headlamp batteries are dead." -msgstr "생존용 헤드랜턴의 배터리가 다 되었다." +msgstr "" #. ~ Description for survivor headlamp #: lang/json/TOOL_ARMOR_from_json.py @@ -54753,8 +54682,6 @@ msgid "" "allows it to be comfortably worn on your head or attached to your helmet. " "Use it to turn it on." msgstr "" -"지속성, 밝기, 크기, 배터리팩을 효율적으로 만든 강화된 LED 헤드 랜턴.머리에 쓰거나 헬멧에 달 수 있도록 조절할 수 있는 끈이 " -"달려있습니다. 사용(a)하면 켜집니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor headlamp (on)" @@ -54769,8 +54696,6 @@ 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 헤드 랜턴.머리에 쓰거나 헬멧에 달 수 있도록 조절할 수 있는 끈이 " -"달려있습니다. 지속적으로 배터리를 소모하고 있습니다. 사용(a)하면 꺼집니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" @@ -54884,7 +54809,7 @@ msgid "" "A mask that straps over your mouth and nose and filters air. Protects from " "smoke, dust, and other contaminants quite well. It must be prepared before " "use." -msgstr "입과 코를 덮어서 공기를 걸러주는 마스크. 연기, 먼지 등의 오염을 꽤 괜찮게 막아줍니다.사용하기 전에 준비해야 합니다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "gas mask" @@ -54898,7 +54823,6 @@ 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" @@ -54912,8 +54836,6 @@ 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" @@ -54927,8 +54849,6 @@ msgid "" "provides excellent protection from heat, smoke, teargas, and shrapnel. It " "must be prepared before use." msgstr "" -"얼굴 전체와 눈을 덮을 수 있는 가스 마스크로, 노멕스로 단열처리가 된 수제작품입니다. 고열, 일반적인 연기, 최루가스, 각종 파편에 " -"대해 뛰어난 방호력을 제공합니다. 사용하기 전에 준비해야 합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor firemask" @@ -54942,8 +54862,6 @@ msgid "" "regardless of your state of mutation. It provides excellent protection from" " heat, smoke, teargas, and shrapnel. It must be prepared before use." msgstr "" -"변이상태에 상관없이 얼굴 전체와 눈을 덮을 수 있는 맞춤형 노멕스 단열 방독면. 일반적인 연기, 최루가스, 각종 파편에 대해 뛰어난 " -"방호력을 제공합니다. 사용하기 전에 준비해야 합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "firefighter PBA mask" @@ -54957,8 +54875,6 @@ msgid "" "apparatus provides excellent protection from smoke, flame, and other " "dangers. It must be prepared before use." msgstr "" -"일반적으로 소방관이 사용하는 전면 마스크. 연기, 화염 및 다른 위험요소에 대해 뛰어난 방호력을 제공하는 배터리 작동식 방호형 " -"호흡장치이다. 사용하면 전원이 켜진다. 사용하기 전에 준비해야 합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "heavy survivor mask" @@ -54972,7 +54888,6 @@ msgid "" "Provides excellent protection from smoke, teargas, and shrapnel. It must be" " prepared before use." msgstr "" -"강철로 보강된 수제 가스 마스크로, 얼굴과 눈을 덮습니다. 연막, 최루가스, 파편에 대한 매우 효과적인 보호력을 제공합니다. " #: lang/json/TOOL_ARMOR_from_json.py msgid "light survivor mask" @@ -54986,8 +54901,6 @@ msgid "" " excellent protection from smoke, teargas, and shrapnel. It must be " "prepared before use." msgstr "" -"수제 가스 마스크. 얼굴과 눈을 보호하며, 연막, 최루가스, 각종 파편에 대해 뛰어난 방호력을 제공합니다. 사용하기 전에 준비해야 " -"합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor mask" @@ -55001,8 +54914,6 @@ msgid "" "Provides excellent protection from smoke, teargas, and shrapnel. It must be" " prepared before use." msgstr "" -"가죽으로 보강된 수제 가스 마스크. 얼굴과 눈을 보호하며, 연막, 최루가스, 각종 파편에 대해 뛰어난 방호력을 제공합니다. 사용하기 전에" -" 준비해야 합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor mask" @@ -55016,8 +54927,6 @@ msgid "" " of your state of mutation. Provides excellent protection from smoke, " "teargas, and shrapnel. It must be prepared before use." msgstr "" -"보강된 수제 가스 마스크. 변이 상태에 관계없이 착용할수 있다. 얼굴과 눈을 보호하며, 연막, 최루가스, 각종 파편에 대해 뛰어난 " -"방호력을 제공합니다. 사용하기 전에 준비해야 합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "winter survivor mask" @@ -55031,8 +54940,6 @@ msgid "" "warm, it still provides excellent protection from smoke, teargas, and " "shrapnel. It must be prepared before use." msgstr "" -"얼굴 전체와 눈을 덮을 수 있는 가스 마스크로, 모피가 덮인 수제작품입니다. 상당히 따뜻하며, 일반적인 연기, 최루가스, 각종 파편에 " -"대해 뛰어난 방호력을 제공합니다. 사용하기 전에 준비해야 합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL winter survivor mask" @@ -55047,8 +54954,6 @@ msgid "" "excellent protection from smoke, teargas, and shrapnel. It must be prepared" " before use." msgstr "" -"변이상태에 상관없이 얼굴 전체와 눈을 덮을 수 있는 맞춤형 모피 보온 방독면. 일반적인 연기, 최루가스, 각종 파편에 대해 뛰어난 " -"방호력을 제공합니다. 사용하기 전에 준비해야 합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of light amp goggles" @@ -55215,7 +55120,7 @@ msgstr[0] "생체 방사선량 측정기" msgid "" "A small battery-powered biometric safety device worn on the wrist. Activate" " to check your current level of radiation exposure." -msgstr "손목에 착용하는 배터리 구동 소형 생체 안전장치입니다. 활성화하여 현재 방사선 노출 수준을 확인합니다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "hairpin" @@ -55732,7 +55637,6 @@ msgid "" "will block sounds over a certain decibel amount, assuming it is charged with" " batteries." msgstr "" -"총잡이들이 선호하는 귀마개 한 쌍입니다. 귀마개가 꺼져있습니다. 배터리로 충전된다고 가정할 때 특정 데시벨 양 이상의 소리를 차단합니다." #. ~ Description for shooter's earmuffs #: lang/json/TOOL_ARMOR_from_json.py @@ -55741,8 +55645,6 @@ msgid "" "will block sounds over a certain decibel amount, assuming it is charged with" " batteries." msgstr "" -"총잡이들이 선호하는 귀마개 한 쌍입니다. 귀마개가 켜져 있습니다. 배터리로 충전된다고 가정할 때 특정 데시벨 양 이상의 소리를 " -"차단합니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "stethoscope" @@ -55767,8 +55669,6 @@ msgid "" "neatly folded in a form of a large backpack. It can be worn as one, and has" " an integrated cable to plug it into a cable charger system." msgstr "" -"대형 백팩 형태로 깔끔하게 접혀진 태양광 패널의 배열로 구성된 개인용 휴대형 충전 시스템입니다. 하나로 착용할 수 있으며 케이블이 " -"통합되어 있어 케이블 충전기 시스템에 꽂을 수 있습니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "solar backpack (unfolded)" @@ -55780,7 +55680,7 @@ msgstr[0] "" msgid "" "Unfolded array of portable solar panels ready to push some power into an " "active cable charger system." -msgstr "케이블 충전기 시스템에 약간의 전력을 공급할 수 있도록 접히지 않은 휴대용 태양 전지판이 준비되어 있습니다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "quantum solar backpack (folded)" @@ -55795,8 +55695,6 @@ msgid "" "and has an integrated cable to plug it into a cable charger system. Cutting" " edge technology." msgstr "" -"대형 백팩 형태로 깔끔하게 접혀진 양자 태양 전지판으로 구성된 개인용 휴대형 충전 시스템입니다. 하나로 착용할 수 있으며 케이블이 " -"통합되어 있어 케이블 충전기 시스템에 꽂을 수 있습니다. 최첨단 기술입니다." #: lang/json/TOOL_ARMOR_from_json.py msgid "quantum solar backpack (unfolded)" @@ -55808,7 +55706,7 @@ msgstr[0] "" msgid "" "Unfolded array of portable quantum solar panels ready to push some power " "into an active cable charger system." -msgstr "케이블 충전기 시스템에 약간의 전력을 공급할 수 있도록 접히지 않은 휴대용 양자 태양 전지판이 준비되어 있습니다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "riot helmet" @@ -55818,14 +55716,14 @@ msgstr[0] "시위 진압용 헬멧" #. ~ Use action msg for riot helmet. #: lang/json/TOOL_ARMOR_from_json.py msgid "You raise your visor." -msgstr "헬멧의 얼굴 가리개를 올렸다." +msgstr "" #. ~ Description for riot helmet #: lang/json/TOOL_ARMOR_from_json.py msgid "" "A helmet with a plastic shield that covers your entire face. Activate to " "raise the face shield." -msgstr "얼굴 전체를 덮는 투명 플라스틱 보호대가 달린 헬멧. 사용시 얼굴 가리개를 올린다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "riot helmet (raised visor)" @@ -55835,14 +55733,14 @@ msgstr[0] "" #. ~ Use action msg for riot helmet (raised visor). #: lang/json/TOOL_ARMOR_from_json.py msgid "You put down your visor." -msgstr "헬멧의 얼굴 가리개를 내렸다." +msgstr "" #. ~ Description for riot helmet (raised visor) #: lang/json/TOOL_ARMOR_from_json.py msgid "" "A riot helmet with a plastic face shield which is raised up. Activate to " "lower the shield." -msgstr "얼굴 전체를 덮는 투명 플라스틱 보호대가 올려진 헬멧. 사용시 얼굴 가리개를 내린다." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "scuba tank" @@ -56552,8 +56450,6 @@ msgid "" " adjacent enemy, damaging and temporarily paralyzing them. Because the " "shock can actually jump through the air, it is difficult to miss." msgstr "" -"고출력 스턴 건. 사용하면 인접한 적을 감전시켜 손상을 입히고 일시적으로 마비시킵니다. 충격은 실제로 공기를 뛰어 넘을 수 있기 때문에 " -"놓치기가 어렵습니다." #. ~ Description for battle axe #: lang/json/TOOL_from_json.py @@ -56618,8 +56514,6 @@ msgid "" "grenade. You will then have three turns before it detonates, creating an " "EMP field that damages robots and drains bionic energy." msgstr "" -"매우 조그마한 핵폭발을 일으키며 전자기 펄스를 발생시키는 수류탄. 사용하면 핀이 뽑히면서 도화전이 점화되며, 곧 작동되는 EMP " -"수류탄으로 될 겁니다. 터지기 전까지 3턴이 걸립니다. EMP 필드를 생성시켜 바이오닉 에너지를 고갈시키고 로봇에게 피해를 줍니다." #: lang/json/TOOL_from_json.py msgid "riding saddle" @@ -56861,8 +56755,6 @@ msgid "" "and damage anything that steps on it. If you are carrying a shovel, you " "will have the option of burying it." msgstr "" -" 세심한 압력판에 연결된 스프링이 달린 강철 턱 한 쌍입니다. 땅에 설치할 때 사용하세요. 그 위에 있는 모든 것을 파괴하고 노예로 만들" -" 수 있는 함정을 만들죠. 만약 여러분이 삽을 들고 있다면, 여러분은 그것을 묻을 수 있는 선택권을 갖게 될 것입니다." #: lang/json/TOOL_from_json.py msgid "blade trap" @@ -56882,8 +56774,6 @@ msgid "" " its throttle. When the tripwire is pulled, the blade is swung around with " "great force. The trap forms a 3x3 area of effect." msgstr "" -"덫으로 쳐 놓은 철사를 목을 조르는것을 제어하는 모터에 측면으로 부착된 마체테입니다. 철사를 당기자 칼날이 힘차게 휘감깁니다. 트랩은 " -"3x3 효과 영역을 형성합니다." #: lang/json/TOOL_from_json.py msgid "nailboard trap" @@ -56903,7 +56793,6 @@ msgid "" "straight up. If an unsuspecting victim steps on it, they'll get nails " "through the foot." msgstr "" -"여러 나무 조각들이 못과 함께 박혀있고, 몇 개의 못은 똑바로 세워져 있습니다. 의심하지 않는 피해자가 밟으면 발에 못이 박힐 거예요." #: lang/json/TOOL_from_json.py msgid "pair of bolt cutters" @@ -56988,7 +56877,7 @@ msgid "" "This is a sheet of plastic covered with air-filled bubbles. Use it to set " "it on the ground, creating a trap that will warn you with noise when " "something steps on it." -msgstr "공기로 가득 찬 기포로 뒤덮인 플라스틱 시트입니다. 땅 위에 무언가가 밟을 때 소음으로 경고하는 트랩을 만들 때 사용합니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "C-4 explosive" @@ -57175,7 +57064,7 @@ msgstr[0] "휴대폰" #. ~ Use action msg for cellphone. #: lang/json/TOOL_from_json.py msgid "You light up the screen." -msgstr "핸드폰의 화면을 켰다." +msgstr "" #. ~ Use action need_charges_msg for cellphone. #: lang/json/TOOL_from_json.py @@ -57202,7 +57091,7 @@ msgstr[0] "휴대폰 - 손전등" #. ~ Use action msg for cellphone - Flashlight. #: lang/json/TOOL_from_json.py msgid "You stop lighting up the screen." -msgstr "핸의폰의 화면을 껏다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "smartphone" @@ -57253,7 +57142,7 @@ msgstr[0] "" #. ~ Use action menu_text for atomic smartphone - Flashlight. #: lang/json/TOOL_from_json.py msgid "Turn off flashlight" -msgstr "손전등을 끔" +msgstr "" #. ~ Use action msg for smartphone - Flashlight. #. ~ Use action msg for atomic smartphone - Flashlight. @@ -57376,8 +57265,6 @@ msgid "" "enough to cut wood, zombies, or in an emergency, pizza. The blade, while " "effective in combat, is hard to hit with due to its small size." msgstr "" -"휴대용 원형톱입니다. 나무나 금속, 아니면 좀비, 또는 최악의 상황에서는 피자를 자를 수 있을 정도로 톱이 회전합니다. 톱은 전투에서 " -"효과적이지만 크기가 작아 맞추기는 어렵습니다." #: lang/json/TOOL_from_json.py msgid "circular saw (on)" @@ -57990,8 +57877,6 @@ msgid "" "so. Shortly after you light the fuse they will begin to explode, so throw " "them quickly!" msgstr "" -"시작 도화선과 함께 25개의 폭죽이 있는 팩입니다. 사용하면 도화선에 불을 붙입니다. 물론 그러려면 라이터나 성냥을 가지고 있어야 " -"합니다. 도화선에 불을 붙이고 난 직후 폭발하므로, 빨리 던지세요!" #: lang/json/TOOL_from_json.py msgid "pack of firecrackers (lit)" @@ -58003,7 +57888,7 @@ msgstr[0] "폭죽다발 (불붙음)" msgid "" "A pack of 25 firecrackers that has been lit; the fuse is hissing. Throw " "them quickly before the start to explode." -msgstr "이 폭죽다발은 불이 붙었습니다. 도화선이 타고 있습니다. 폭발하기 전에 재빨리 던지세요." +msgstr "" #: lang/json/TOOL_from_json.py msgid "plastic fish trap" @@ -58044,7 +57929,7 @@ msgstr[0] "전문가용 낚싯대" msgid "" "A professional fishing rod with a matching set of weights. With this you " "should be able to catch 'em all." -msgstr "적당한 무게의 전문 낚싯대. 이놈과 함께라면 모조리 낚아버릴 수 있을 겁니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "flammable arrow" @@ -58075,8 +57960,6 @@ msgid "" "and light the fuse. You will then have five turns before it detonates with " "intense light and sound, blinding, deafening and disorienting anyone nearby." msgstr "" -"군용 스타일 섬광탄. 사용하면 핀을 뽑아 도화선을 점화시킵니다. 핀을 뽑고 폭발하기까지 5턴이 걸립니다. 강렬한 빛과 소리로 폭발하고, " -"눈을 가리고, 귀를 막고, 주변 사람들을 혼란스럽게 한다." #: lang/json/TOOL_from_json.py msgid "active flashbang" @@ -58090,8 +57973,6 @@ msgid "" "sound, blinding, deafening and disorienting anyone nearby. It may be a good" " idea to throw it!" msgstr "" -"이 섬광탄은 켜져있다. 곧 강렬한 빛과 소리로 폭발할 것이며, 눈 가리고 주변 사람들을 혼란스럽게 할 것입니다. 던지는 것이 좋은 " -"생각일지도 몰라요!" #: lang/json/TOOL_from_json.py msgid "tear gas payload" @@ -58261,7 +58142,7 @@ msgid "" "This homemade canister of poison gas has been unsealed, and is (or will " "shortly be) expelling highly toxic gas. You should consider getting rid of " "it soon." -msgstr "수제 독가스의 통은 봉인되지 않았으며, 곧 독가스를 배출할 것이다. 이것을 곧 없애는 것을 고려해야 한다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "gasoline cooker" @@ -58388,7 +58269,7 @@ msgstr[0] "야광봉 (켜짐)" msgid "" "This is an active glowstick and is producing light. It will last for a few " "hours before burning out." -msgstr "마그네슘 섬광탄이 타오르며 빛을 내뿜고 있습니다. 몇 시간 동안 지속될 것입니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "hacksaw" @@ -58428,8 +58309,6 @@ msgid "" " nails, and two by fours in your inventory, you could board up adjacent " "doors and windows. It has myriad other uses as well." msgstr "" -"나무 손잡이가 달린 강철 망치. 머리 부분은 비자기화 처리되어 있습니다. 망치, 못, 각목이 있으면 주변의 문이나 창문을 막을 수 있으며" -" 그 외에도 무수히 많은 다른 용도가 있습니다." #: lang/json/TOOL_from_json.py msgid "hand drill" @@ -58481,7 +58360,7 @@ msgstr[0] "괭이" msgid "" "This is a farming implement. You can use it to turn tillable land into a " "slow-to-cross pile of dirt, or dig a shallow pit." -msgstr "농사지을 때 쓰는 도구입니다. 땅을 개간하여 농지로 만드는데 사용하거나 얕은 구덩이를 만드는데 사용 합니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "honey scraper" @@ -58585,8 +58464,6 @@ msgid "" "climbing tool used by mountaineers. It is sturdy enough to pry open closed " "doors or lift manhole covers." msgstr "" -"위쪽에 (등산용)얼음 도끼가 달려있습니다, 등산객들이 사용하는 다목적 하이킹과 등산도구 입니다. 닫힌 문을 열거나 맨홀 뚜껑을 들어올릴 " -"만큼 충분히 튼튼합니다." #: lang/json/TOOL_from_json.py msgid "jackhammer" @@ -58906,7 +58783,7 @@ msgid "" "A self-contained camping mess kit, containing everything you might need for " "wilderness cooking. This model relies on a battery-operated hotplate, " "rather than the more commonplace chemical-fueled Esbit stove." -msgstr "야영지 요리에 필요한 모든 것이 들어 있는 자급식 캠핑 키트입니다. 이 모델은 배터리로 작동하는 핫플레이트를 사용합니다." +msgstr "" #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py #: lang/json/vehicle_part_from_json.py @@ -58917,7 +58794,7 @@ msgstr[0] "금속 깔때기" #. ~ Use action done_message for metal funnel. #: lang/json/TOOL_from_json.py msgid "You place the metal funnel, waiting to collect rain." -msgstr "깔때기를 설치했다. 빗물이 모이길 기다리자." +msgstr "" #. ~ Description for metal funnel #: lang/json/TOOL_from_json.py @@ -59037,7 +58914,7 @@ msgstr "불 붙이기" #. ~ Use action msg for Molotov cocktail. #: lang/json/TOOL_from_json.py msgid "You light the Molotov cocktail!" -msgstr "화염병에 불을 붙였다!" +msgstr "" #. ~ Description for Molotov cocktail #: lang/json/TOOL_from_json.py @@ -59057,8 +58934,6 @@ msgid "" "Dropping it will set you on fire, so don't do that unless you want to burn " "to death." msgstr "" -"병 안에 인화성 액체와 불에 잘 붙는 천이 들어가 있습니다. 던지면 병이 깨질 것이고, 불이 확산할 것입니다. 당신이 던지지 않으면 불이" -" 꺼질 것입니다. 불붙은 상태로 버리는 것은 안전하지 않습니다." #: lang/json/TOOL_from_json.py msgid "mop" @@ -59153,7 +59028,7 @@ msgstr[0] "멀티툴" msgid "" "A cleverly designed all-in-one tool which combines several smaller tools " "into the handles of a pair of pliers." -msgstr "여러 개의 작은 도구를 펜치로 결합하여 솜씨 좋게 설계된 일체형 도구입니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "bone needle" @@ -59349,8 +59224,6 @@ msgid "" "A plastic container meant to hold pets for transport. Use it on a suitable " "animal to capture, use it on an empty tile to release." msgstr "" -"운반용으로 애완동물을 기르기 위한 플라스틱 컨테이너입니다. 포획할 수 있는 적당한 동물에 사용하고, 풀어줄 때에는 빈 타일위에 풀어줄 수" -" 있습니다." #: lang/json/TOOL_from_json.py msgid "chicken cage" @@ -59523,8 +59396,6 @@ msgid "" "hand from a couple of aluminum soda cans. It comes with a 500 ml plastic " "bottle to hold concentrated alcohol fuel." msgstr "" -"알루미늄 소다수 캔에서 손으로 만든 심머링을 가진 초경량 알코올 연소 난로입니다. 농축 알코올 연료를 담을 수 있는 500ml 플라스틱 " -"병과 함께 제공됩니다." #: lang/json/TOOL_from_json.py msgid "handheld game system" @@ -59563,7 +59434,6 @@ msgid "" "This is a small hand press for hand loading firearm ammunition. It comes " "with everything you need to start hand loading your own munitions." msgstr "" -"이것은 화기 탄약을 손으로 싣기 위한 작은 핸드 프레스 입니다. 직접 탄약을 싣기 시작하는 데 필요한 모든 것이 함께 제공됩니다." #: lang/json/TOOL_from_json.py msgid "stone adze" @@ -59586,7 +59456,7 @@ msgstr[0] "돌 도끼" msgid "" "This is a sharpened stone affixed to a stick. It works passably well as an " "axe but really can't compare to a proper axe." -msgstr "날카롭게 간 돌토막을 막대에 붙인 것입니다. 도끼로 쓰기에 충분하지만 진짜 도끼와는 비교할 수 없습니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "stone hammer" @@ -59610,7 +59480,7 @@ msgstr[0] "돌 칼" msgid "" "This is a sharpened stone set into a hollowed handle. Not nearly as usable " "as a proper knife, but it's better than nothing." -msgstr "날카롭게 간 돌입니다.  제대로 된 칼만큼 쓸 수 있는 것은 아니지만 없는 것보다는 낫습니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "stone shovel" @@ -59666,17 +59536,17 @@ msgstr[0] "" #. ~ Use action msg for atomic reading light. #: lang/json/TOOL_from_json.py msgid "You switch on the reading light." -msgstr "독서용 램프" +msgstr "" #. ~ Use action need_charges_msg for reading light. #: lang/json/TOOL_from_json.py msgid "The reading light winks out." -msgstr "독서용 램프를 껏다." +msgstr "" #. ~ Description for reading light #: lang/json/TOOL_from_json.py msgid "A little clip-on LED light, meant for reading books in the dark." -msgstr "작은 클립으로 된 LED 조명, 어두운곳에서 책을 읽는것을 의미한다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "reading light (active)" @@ -59686,14 +59556,14 @@ msgstr[0] "" #. ~ Use action msg for reading light (active). #: lang/json/TOOL_from_json.py msgid "You switch off the reading light." -msgstr "독서용 램프를 껏다." +msgstr "" #. ~ Description for reading light (active) #: lang/json/TOOL_from_json.py msgid "" "A little clip-on LED light, meant for reading books in the dark. This one " "is turned on." -msgstr "작은 클립으로 된 LED 조명, 어두운곳에서 책을 읽는것을 의미한다.켜져있다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "refillable lighter" @@ -59829,7 +59699,7 @@ msgstr[0] "메스" 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 "외과 수술용으로 쓰이는 매우 예리한 칼. 숙련자의 손에 들어가면 정확한 일격을 가할 수 있는 무기로 변한다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "pair of scissors" @@ -60015,8 +59885,6 @@ msgid "" "barreled shotgun. When pulled, the shotgun fires. Two shells are loaded; " "the first time the trigger is pulled, one or both shells may be discharged." msgstr "" -"장전된 이중 총신 산탄총의 방아쇠에 철사가 묶여진 단순한 함정입니다철사를 당기면 산탄총이 발사됩니다. 두 발이 장전되어있으며, 철사가 " -"방아쇠를 한번 당겨주면, 한 발 혹은 두 발이 발사됩니다." #: lang/json/TOOL_from_json.py msgid "shovel" @@ -60052,7 +59920,7 @@ msgstr[0] "소형 소화기" msgid "" "This is a hand held fire extinguisher containing a liter of highly " "compressed CO2 gas. It would be useful for putting out adjacent fires." -msgstr "고도로 압축된 1리터의 CO2 가스가 들어있는 소형 소화기입니다. 인접한 불을 끄는데 효과적입니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "firearm repair kit" @@ -60205,8 +60073,6 @@ msgid "" "apocalyptic cuisine. Powered by a lamp oil burner, it is composed of simple" " yet durable tools and materials." msgstr "" -"대제앙 이후의 요리를 만드는 데 필요한 모든 것이 들어 있는 집에서 만든 수제 도구입니다. 램프 오일 버너로 구동되는 이 제품은 " -"간단하지만 내구성이 뛰어난 도구와 재료로 구성되어 있습니다." #: lang/json/TOOL_from_json.py msgid "survivor telescope" @@ -60220,7 +60086,6 @@ msgid "" "weapon scope, but carrying this item in your inventory will double the " "distance that is mapped around you during your travels." msgstr "" -"수제 접이식 망원경입니다. 무기 스코프로 사용하기에는 너무 크고 부정확하지만, 인벤토리에 넣기만 해도 시야를 두 배로 늘려줍니다" #: lang/json/TOOL_from_json.py msgid "makeshift shaving kit" @@ -60486,8 +60351,6 @@ msgid "" "dynamite primer. Use this item to light the fuse. You will then have " "twenty turns before it explodes and creates a large fireball." msgstr "" -"큰 금속 통에 ANFO 알갱이를 넣고 다이너마이트용 뇌관을 장치한 것이다. 사용하면 뇌관을 작동시킨다. 20턴 후 폭발하며 큰 화염 " -"폭발을 일으킨다." #: lang/json/TOOL_from_json.py msgid "active ANFO charge" @@ -60505,7 +60368,7 @@ msgstr "이미 도화선에 불을 붙였다. 도망가자!" msgid "" "This is a large metal keg filled with ANFO pellets and equipped with a " "dynamite primer. The fuse has been lit - better run like hell!" -msgstr "큰 금속 통에 ANFO 알갱이를 넣고 다이너마이트용 뇌관을 장치한 것이다. 뇌관이 작동되었다. 살고 싶으면 도망쳐야 한다!" +msgstr "" #: lang/json/TOOL_from_json.py msgid "black gunpowder bomb" @@ -60524,7 +60387,7 @@ msgstr "흑색화약 폭탄의 뇌관을 작동시켰다. 머리가 날아가기 msgid "" "This is a tin can filled to the brim with black gunpowder and with a bit of " "fuse sticking out of it." -msgstr "검은 화약으로 가득 채워져 있고 그 속에서 도화선이 약간 튀어나온 깡통이다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "active black gunpowder bomb" @@ -60549,7 +60412,7 @@ msgstr "치지직." msgid "" "This is a tin can filled to the brim with black gunpowder and with a lit " "fuse stuck inside of it." -msgstr "검은 화약으로 가득 채워진 깡통, 안에 불붙은 도화선이 박혀 있다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "black gunpowder charge" @@ -62130,9 +61993,6 @@ msgid "" "standard light sources, the L-stick or light stick as it is commonly called," " batteries last longer than other light sources." msgstr "" -"라이트 코퍼레이션이 제작한 이 스타일리쉬한 지팡이는 광원의 기능을 할 뿐만 아니라, 초합금 소재로 인해 경량 무기의 기능을 겸비하고 " -"있습니다. 광원에 대한 독점적 효율성 향상으로 인해, 일반적으로 L-스틱 또는 라이트 스틱이라고 불리는 배터리는 다른 광원보다 더 오래 " -"지속됩니다." #: lang/json/TOOL_from_json.py msgid "L-stick (on)" @@ -62154,9 +62014,6 @@ msgid "" " batteries last longer than other light sources. The staff is glowing " "brightly, which is slowly draining the batteries." msgstr "" -"라이트 코퍼레이션이 제작한 이 스타일리쉬한 지팡이는 광원의 기능을 할 뿐만 아니라, 초합금 소재로 인해 경량 무기의 기능을 겸비하고 " -"있습니다. 광원에 대한 독점적 효율성 향상으로 인해, 일반적으로 L-스틱 또는 라이트 스틱이라고 불리는 배터리는 다른 광원보다 더 오래 " -"지속됩니다.이 지팡이는 밝게 빛나고 있습니다." #: lang/json/TOOL_from_json.py msgid "Louisville Slaughterer" @@ -62175,8 +62032,6 @@ msgid "" " Nomex fabric. Light it, and the ball game will REALLY heat up. You'll " "need a lighter or matches to light it." msgstr "" -" 튼튼한 나무 배트, 가솔린에 젖은 누더기와 내화성 노멕스 원단으로 싸여 있습니다. 불을 붙이면, 야구 경기가 정말 뜨거워질 겁니다.불을" -" 붙이려면 라이터나 성냥이 필요하다." #. ~ Use action msg for Louisville Slaughterer. #: lang/json/TOOL_from_json.py @@ -62191,8 +62046,6 @@ msgid "" " see the baselines at night games (It also makes the umpire FAR more likely " "to call a ball instead of a strike)." msgstr "" -"휘발유에 젖은 누더기와 불꽃에 강한 노멕스 천으로 싸인 튼튼한 나무 배트. 밝게 타오르고 있으며 야간 경기에서는 베이스라인을 훨씬 쉽게 " -"볼 수 있다." #: lang/json/TOOL_from_json.py msgid "generic kitchen knife" @@ -62326,8 +62179,6 @@ msgid "" "It's long enough to slice from a distance, but its crude construction means " "it won't last long." msgstr "" -"나무로 만들어진 조잡한 막대에 똑같이 조잡한 금속 스파이크가 묶여 있습니다. 멀리서 잘라낼 만큼 길지만 조잡한 구조는 오래가지 못한다는 " -"의미입니다." #: lang/json/TOOL_from_json.py msgid "homemade halfpike" @@ -62400,7 +62251,7 @@ msgstr[0] "생존용 나이프" 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 "이 칼은 움푹 패인 손잡이와 안장에 나침반이 만들어져 있고 칼날 뒤쪽을 따라 무시무시하게 보이는 톱니가 줄지어 있습니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "RM42 fighting knife" @@ -62455,7 +62306,7 @@ msgstr[0] "간이 칼" msgid "" "A knife consisting of a long, somewhat sharpened, spike and a tightly " "wrapped rag as a handle. It makes a good melee weapon." -msgstr "길고, 다소 날카롭고, 뾰족하고, 손잡이로 꽉 싼 헝겊으로 구성된 칼입니다. 좋은 무기 입니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "makeshift machete" @@ -62538,7 +62389,7 @@ msgid "" "This huge steel knife has been modified with a fuel tank, insulated " "handguard, and ignition system. The blade is glowing with heat, making it a" " great plant scorcher and nightlight." -msgstr "이 거대한 칼은 연료탱크와 절연 핸드가드, 그리고 점화 시스템으로 개조되었습니다.  칼날이 열로 빛난다." +msgstr "" #. ~ Description for cavalry saber #: lang/json/TOOL_from_json.py @@ -62552,7 +62403,7 @@ msgstr "근대에 기병이 사용한 곡선형 검. 가볍지만 치명적인 msgid "" "This wavy bladed dagger comes from Southeast Asia. The design of the blade " "causes it to make broad, painful wounds." -msgstr "이 물결치는 단검은 동남아시아에서 왔습니다. 칼날의 디자인은 넓고 고통스럽게 합니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "kukri" @@ -62576,8 +62427,6 @@ msgid "" "guard and a tassel attached to the pommel. One of the four major weapons in" " folklore, alongside the dao sabre, qiang spear, and gun staff." msgstr "" -"고대 중국의 곧은 양날검. 가드가 화려하게 장식되었고, 폼멜에 길게 술이 달려 있습니다. 다오, 치앙, 곤과 함께 4대 전통 무기 중 " -"하나입니다." #. ~ Description for jian #: lang/json/TOOL_from_json.py @@ -62706,8 +62555,6 @@ msgid "" "weapon, before the advent of the larger wakizashi. It's still a deadly " "blade, even if it's smaller than its more famous relatives." msgstr "" -"현대적인 리메이크처럼 긴 일본 칼은 더 큰 와키자시가 등장하기 전에 사무라이의 예비 무기였습니다. 치명적인 칼날이며, 심지어 유명한 " -"동류의 검보다 더 작습니다." #. ~ Description for wakizashi #: lang/json/TOOL_from_json.py @@ -62827,7 +62674,7 @@ msgstr "태울 연료가 없다!" #. ~ Use action success_message for firebrand (off). #: lang/json/TOOL_from_json.py msgid "Charge!" -msgstr "불이 붙었다!" +msgstr "" #. ~ Description for firebrand (off) #: lang/json/TOOL_from_json.py @@ -62882,8 +62729,6 @@ msgid "" "appears to be made very poorly, but it should still stand up to a few " "swings." msgstr "" -"선원이나 해적들이 사용하던 날이 넓은 세이버입니다. 이 검은 매우 조잡하게 만들어진 것 같지만, 몇 번 베는 것 정돈 버틸 수 있을 것 " -"같습니다." #. ~ Description for rapier #: lang/json/TOOL_from_json.py @@ -62907,7 +62752,6 @@ msgid "" "This is a rare sword from Japan. While it's got the right edge and weight, " "the pommel just snaps off, and the blade seems pretty worn." msgstr "" -"이것은 일본에서 들여온 진귀한 검입니다. 오른쪽 가장자리와 무게는 맞지만, 안장은 그냥 툭툭 끊어지고, 칼날은 꽤 닳은 것 같습니다." #: lang/json/TOOL_from_json.py msgid "Rising Sun" @@ -62972,7 +62816,7 @@ msgstr "독일에서 사용된 거대한 양손검. 이게 원래 이렇게 휘 msgid "" "This is a comparatively-common Japanese short sword. There's something not " "quite right about this sword." -msgstr "이것은 비교적 흔한 일본의 짧은 칼입니다. 이 검에는 뭔가 맞지 않는 점이 있습니다." +msgstr "" #: lang/json/TOOL_from_json.py msgid "pair of butterfly swords" @@ -120067,11 +119911,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "ghost " -msgstr "유령" +msgstr "" #: lang/json/snippet_from_json.py msgid "shadow " -msgstr "그림자" +msgstr "" #: lang/json/snippet_from_json.py msgid "neuro " @@ -120099,7 +119943,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "robo" -msgstr "로보" +msgstr "" #: lang/json/snippet_from_json.py msgid "skate " @@ -122789,113 +122633,113 @@ msgstr "" msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "fighter." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 파이터 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "bard." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 바드 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "cleric." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 클레릭 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "wizard." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 위저드 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "rogue." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 로그 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "barbarian." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 바바리안 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "warlock." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 워록 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "paladin." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 팔라딘 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "It's a Dungeons & Dragons 6th Edition character sheet. This one is for a " "sorcerer." -msgstr "던전 앤 드래곤 6판 캐릭터 시트. 소서러 캐릭터가 적혀 있다." +msgstr "" #: lang/json/snippet_from_json.py msgid "You feel cold. You need the warmth of a fire." -msgstr "불이 필요하다." +msgstr "" #: lang/json/snippet_from_json.py msgid "Maybe a fire could calm your nerves?" -msgstr "불을 피우면 좀 안심이 되지 않을까?" +msgstr "" #: lang/json/snippet_from_json.py msgid "You need to ignite something." -msgstr "뭔가 태우고 싶다." +msgstr "" #: lang/json/snippet_from_json.py msgid "You daydream of crackling fire..." -msgstr "타오르는 화염이 머릿속에 떠오른다." +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." -msgstr "습관적으로 근처에 불을 지르려다가 그만뒀다." +msgstr "" #: lang/json/snippet_from_json.py msgid "You think of steel blades and warm dripping blood." -msgstr "차가운 칼날을 피로 데우는 상상을 한다." +msgstr "" #: lang/json/snippet_from_json.py msgid "You'd like to hear the last breath of something living." -msgstr "뭔가의 숨통을 끊고 싶다." +msgstr "" #: lang/json/snippet_from_json.py msgid "So much death around. Why not add some more?" -msgstr "이미 온통 죽은 놈들 천지다. 한두 명 더 죽이지 그래?" +msgstr "" #: lang/json/snippet_from_json.py msgid "You lick your lips, in anticipation for dead trophies." -msgstr "사냥을 할 생각에 입에 침이 고인다." +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." -msgstr "뭐 좀 죽여 버리면 기분이 좋아질 거 같은데." +msgstr "" #: lang/json/snippet_from_json.py msgid "You are death, and you are coming for them. Soon." -msgstr "저것들은 당신을 이겨낼 수 없다. 당신은 죽음 그 자체니까." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "You whisper a song to yourself. \"Stab stab stab stab stab, and then you " "die! Yeah!\"" -msgstr "\"까마귀 배때지 칼빵...\" 혼자 흥얼거린다. 씨발 누구든 당신을 건드리면 좆되는거에요." +msgstr "" #: lang/json/snippet_from_json.py msgid "You whisper to yourself. \"Come, oh sweet death of yours.\"" @@ -128493,7 +128337,7 @@ msgstr "알았어" msgid "" "I'm willing to pay per batch for a total of " "." -msgstr "한 묶음당 으로 해서 총합 ." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Works for me." @@ -128505,7 +128349,7 @@ msgstr "아마 나중에." #: lang/json/talk_topic_from_json.py msgid "Pleasure doing business!" -msgstr "다음에 필요하면 또 오라고!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You might be seeing more of me..." @@ -128513,106 +128357,106 @@ msgstr "니가 나보다 더 많이 보게 될지도 몰라..." #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" -msgstr "*치직* 또 만나네." +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 "나... 나 풀려난 거야? *지직* 진짜? 워후! 저기, 그, 내가 진짜 사람 만나는 건 진짜 오랜만이거든." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey. Let's chat for a second." -msgstr "저기, 잠깐 얘기 좀 하자." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That's because I saved you. Listen, I could use your help..." -msgstr "내가 너 구해줬으니까 당연히 그래야지. 좀 도와줬으면 하는데..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Big fucking deal. Do what I say or I'll shove that chip back where it " "belongs." -msgstr "그래 존나 중요하지. 하라는 대로 안 하면 니 후장에 그 칩 쑤셔넣어 버린다." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry, I'm nobody. Enjoy your freedom, I guess." -msgstr "됐어, 그냥 가." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "*buzz* Great! So what happens now?" -msgstr "*지직* 좋아! 이제 뭐 하면 돼?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Come with me. We can help each other out." -msgstr "같이 다니자. 서로 도와주고 뭐 그러자고." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "We both go our separate ways. Enjoy your freedom." -msgstr "서로 갈 길 가자고. 하고 싶은 거 다 해." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "...Wait. *BEEP* Why do I believe you? *ZZZT* You could be just as bad as " "them!" -msgstr "...아니, *삐익* 너도 그 놈들이랑 *지지직* 한 패 아냐? 내가 널 어떻게 믿어?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I wouldn't have pulled your chip out if I didn't want you to think for " "yourself." -msgstr "너 풀어줄려고 그 칩 뽑아줬는데 고맙단 소리도 못 하냐?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "For all you know, I did. I'm being nice for now. You'd better hope that it " "lasts." -msgstr "아저씨, 그거 내가 뽑았거든요? 일단은 좋게 봐줄 테니까 고마운 줄 알아." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Forget it. Enjoy your freedom." -msgstr "됐어. 니 알아서 해." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Okay, okay, *BUZZ* I'm sorry! Don't hurt me again! Anything but the chip!" -msgstr "아니 알았어! 제발! 하라는 대로 할 테니까 그 칩은...!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Follow me and do my bidding, then." -msgstr "이제야 좀 알아듣네. 따라와." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Get out of my sight." -msgstr "뒤지기 싫으면 꺼져." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "No, *I'm* sorry, I didn't mean that. Go do what you want." -msgstr "형씨, 내가 이렇게 사과할 테니까 제발 꺼지세요." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "...kill... *ZTZTZT* ...you!" -msgstr "죽일...*치지직*...거야!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Run while you still can!" -msgstr "죽기 싫으면 도망가라!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not if I kill you first!" -msgstr "널 먼저 죽이면 되지!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry! I shouldn't have said that!" -msgstr "미안, 미안! 말을 잘못 했어." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yeah, *beeeeep* I don't think so. Bye." -msgstr "*삐빅* 그닥... 안녕." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Suit yourself." -msgstr "꺼져." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What about faction camps?" @@ -128636,7 +128480,7 @@ msgstr "아무것도 아니야. 다른 이야기를 하자." #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about other things you can do" -msgstr "됐어. 다른 얘기 하자." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nothing. Lets' get back to work." @@ -128661,7 +128505,7 @@ msgstr "아무것도 아냐, 캠프 이야기로 돌아가자" #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about other things you can do." -msgstr "됐어. 다른 얘기 하자." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about something else." @@ -128763,20 +128607,18 @@ msgid "" "more. We could put up a bulletin board and you could write up what you want " "done there. What do you say?" msgstr "" -"저기, 그... 맨날 여기서 죽치고 앉아 있긴 좀 그래서 말인데, 게시판 같은 걸 세워서 할 일을 적어놓는 건 어때? 이게 다 힘든데 " -"서로 도와야지." #: lang/json/talk_topic_from_json.py msgid "What needs to be done?" -msgstr "할 거 있어?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yes, set up the bulletin board and then go back to normal duties." -msgstr "어, 게시판 세워놓고 나서 하던 거 해." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" @@ -128938,8 +128780,6 @@ msgid "" "place has gotta be safer than my apartment, and at least I've got all this " "food here." msgstr "" -"그, 어... 일이 터지고 나서 사흘 째 날에 설거지 알바가 혼자 탈출 시도를 했는데, 밖에 나가지도 못하고 좀비 밥이 되더라. 최소한 " -"여기가 내 아파트보단 안전할 거 같아서, 남은 음식 먹으면서 버티고 있었지." #: lang/json/talk_topic_from_json.py msgid "" @@ -128949,12 +128789,10 @@ msgid "" "something. What I witnessed was the most awful thing I've ever seen. I'm " "not even sure I could go over it again." msgstr "" -"숨어... 있었지 뭐. 밖에서 유리 깨지는 소리가 나길래 알바가 그릇 깨트렸나 봤더니, 세상에... 어찌나 끔찍한지 지금 생각해도 소름이" -" 돋네. 진짜 평생 못 잊을 장면이었지." #: lang/json/talk_topic_from_json.py msgid "What happened next?" -msgstr "그래서?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -128963,12 +128801,10 @@ msgid "" "neck. I thought the poor guy, girl-thing-whatever was dead. People began " "to crowd around it, some were taking pictures." msgstr "" -"무슨 새까만 기름 같은 걸 떡칠한 사람이 가게 앞에 유리 벽에 머리를 박고 엎어져 있더라. 온 몸에 유릿조각이 박혀 있길래 죽은 줄 " -"알았지. 손님들은 사진 찍기 바빴고." #: lang/json/talk_topic_from_json.py msgid "Horrible. Did you get any pictures yourself?" -msgstr "세상에. 너도 사진 찍은 거 있어?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -128976,12 +128812,10 @@ msgid "" " a moment. Everyone jumped back, a few screamed, and one curious stranger " "stepped in closer, kneeling a little... it attacked him!" msgstr "" -"없지! 일하는 중에 핸드폰 하면 혼나서 안 갖고 있었거든. 어쨌든 그게 갑자기 꿈틀거리길래 막 손님들이 물러서는데, 누구 한 명이 가까이" -" 와서 딱 자세히 보려고 하니까 갑자기 그 사람을 덮치잖아!" #: lang/json/talk_topic_from_json.py msgid "What'd you do?" -msgstr "그래서? 어떻게 했는데?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -128993,13 +128827,10 @@ msgid "" "all the doors and blocked the windows with what I could and barricaded " "myself in here." msgstr "" -"그래서 주방 뒤로 가서 숨었지. 온통 비명을 지르고 난장판이 펼쳐지는데, 좀 기다렸더니 유리 깨지는 소리가 더 들리길래 밖에 가서 봤더니" -" 그... 그거랑 물린 손님 둘 다 나가고 없더라. 밖에 사람들이 총 들고 뛰어다니길래, 가게 문 잠그고 창문 다 막아놓고 여기 " -"숨어있었어." #: lang/json/talk_topic_from_json.py msgid "Crazy, so you have been here ever since?" -msgstr "큰일 날 뻔 했네. 그래서 쭉 여기 있었어?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -129008,14 +128839,12 @@ msgid "" "swear I even heard what sounded like a freaking tank drive by at one time! " "I've been hiding here since." msgstr "" -"어, 며칠 있으니까 좀 조용해지더라. 밖이 전쟁터도 아니고 무슨 온갖 총 쏘고 터지는 소리랑 제트기랑 탱크랑 별 게 다 들리길래 쫄아서 " -"나가지도 못했지. 그래서 여기 계속 숨어 있었어." #: lang/json/talk_topic_from_json.py msgid "" "I've been a cook since forever, this wasn't the best joint, but management " "was cool." -msgstr "평생 요리사 일 하고 살았어. 여기가 좀 시급이 별로긴 한데, 주인 양반이 사람이 되게 좋더라." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a test conversation that shouldn't appear in the game." @@ -129609,19 +129438,19 @@ msgstr "" msgid "" "It might have something to do with , mind if I stay here " "while we try to figure this out?" -msgstr "(이)랑 관련된 일이라고 생각해. 그.. 이거 궁리할 동안 같이 좀 지내도 될까?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This can't be true, you're trying to trick me!" -msgstr "동작 그만. 밑장빼기냐?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I need time to think." -msgstr "잠깐 생각 좀 할래." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Wha... But. But... How?" -msgstr "아니, 무슨... 뭐?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -129869,7 +129698,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "내가 두 손 모아 부탁할 테니까 제발 좀 닥쳐!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -152047,7 +151876,7 @@ msgstr "%1$s %2$s에서 죽었다." #: src/avatar.cpp #, c-format msgid "Cash on hand: %s" -msgstr "보유 현금: %s" +msgstr "" #: src/avatar.cpp msgid "Final HP:" @@ -153608,7 +153437,7 @@ msgstr "" #, c-format msgid "" "Bionic Power: %i/%i" -msgstr "바이오닉 파워: %i/%i" +msgstr "" #: src/bionics_ui.cpp msgid "" @@ -153722,11 +153551,11 @@ msgstr "" #: src/bonuses.cpp msgid "Accuracy" -msgstr "명중률" +msgstr "" #: src/bonuses.cpp src/martialarts.cpp msgid "Dodge" -msgstr "회피" +msgstr "" #: src/bonuses.cpp src/panels.cpp src/player_display.cpp msgid "Speed" @@ -153734,11 +153563,11 @@ 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 pen" @@ -154585,7 +154414,7 @@ msgstr "" #: src/character.cpp msgid "a piercing howl!" -msgstr "날카로운 울음소리!" +msgstr "" #: src/character.cpp msgid "yourself let out a piercing howl!" @@ -154593,7 +154422,7 @@ msgstr "찢는듯한 소리로 울부짖었다!" #: src/character.cpp msgid "a loud scream!" -msgstr "큰 비명소리!" +msgstr "" #: src/character.cpp msgid "yourself scream loudly!" @@ -154601,7 +154430,7 @@ msgstr "시끄럽게 비명을 질렀다!" #: src/character.cpp msgid "a loud shout!" -msgstr "큰 소리!" +msgstr "" #: src/character.cpp msgid "yourself shout loudly!" @@ -154613,11 +154442,11 @@ msgstr "내 목소리가 거의 완전히 막혀 들리지 않는다!" #: src/character.cpp msgid "an indistinct voice" -msgstr "흐릿한 목소리" +msgstr "" #: src/character.cpp msgid "your muffled shout" -msgstr "우렁찬 외침" +msgstr "" #: src/character.cpp msgid "The sound of your voice is significantly muffled!" @@ -160528,8 +160357,6 @@ msgid "" "%s \n" "Are you sure you wish to continue? " msgstr "" -"%s\n" -"계속합니까?" #: src/faction_camp.cpp #, c-format @@ -160538,7 +160365,7 @@ msgstr "" #: src/faction_camp.cpp msgid "There is no faction camp here to recover!" -msgstr "여기에는 인계할 거점이 없다!" +msgstr "" #: src/faction_camp.cpp msgid ", Camp Manager" @@ -160547,7 +160374,7 @@ msgstr ", 캠프 관리자" #: src/faction_camp.cpp #, c-format msgid "%s has abandoned the camp." -msgstr "%s은(는) 캠프를 버렸다." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -163022,7 +162849,7 @@ msgstr "손에 들고 있는 것이 없다." #: src/game.cpp src/player.cpp #, c-format msgid "Draw %s from %s?" -msgstr "%s에서 %s을(를) 뽑습니까?" +msgstr "" #: src/game.cpp #, c-format @@ -173744,19 +173571,19 @@ msgstr "치료 확률 (퍼센트): " #: src/iuse_actor.cpp msgid "* Bleeding: " -msgstr "*출혈:" +msgstr "" #: src/iuse_actor.cpp msgid "* Bite: " -msgstr "*물림:" +msgstr "" #: src/iuse_actor.cpp msgid "* Infection: " -msgstr "*감염:" +msgstr "" #: src/iuse_actor.cpp msgid "Moves to use: " -msgstr "사용 요구 이동점수:" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -173823,7 +173650,7 @@ msgstr "개조된 총열은 자를 수 없다." #: src/iuse_actor.cpp msgid "You can't self-install bionics." -msgstr "바이오닉을 스스로 설치할 수 없다." +msgstr "" #: src/iuse_actor.cpp msgid "You have already installed this bionic." @@ -173889,7 +173716,7 @@ msgstr "어디에 %s을(를) 설치합니까?(%dx%d 공간 필요)" #: src/iuse_actor.cpp #, c-format msgid "The %s is in the way." -msgstr "그곳에는 %s이(가) 있다!" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -173899,7 +173726,7 @@ msgstr "" #: src/iuse_actor.cpp #, c-format msgid "There is already furniture (%s) there." -msgstr "%s(이)가 이미 불타고 있다." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -176252,7 +176079,7 @@ msgstr "" #: src/martialarts.cpp msgid "Bonus: " -msgstr "보너스:" +msgstr "" #: src/martialarts.cpp msgid "* Can activate on a normal or a crit hit" @@ -176994,7 +176821,7 @@ msgstr "" #: src/messages.cpp msgctxt "message type" msgid "debug" -msgstr "debug" +msgstr "" #: src/messages.cpp #, c-format @@ -177016,7 +176843,7 @@ msgstr "" #, c-format msgctxt "message log" msgid "%s, " -msgstr "%s, " +msgstr "" #. ~ the 2nd %s is a type name, this is used to format the last type name in a #. list of type names @@ -177024,7 +176851,7 @@ msgstr "%s, " #, c-format msgctxt "message log" msgid "%s." -msgstr "%s." +msgstr "" #: src/mission_companion.cpp msgid "Outpost Missions" @@ -179985,39 +179812,39 @@ msgstr "극심한 부상을 입음" #: src/monster.cpp msgid "It is nearly dead!" -msgstr "사망 직전!" +msgstr "" #: src/monster.cpp msgid " Difficulty " -msgstr "난이도" +msgstr "" #: src/monster.cpp msgid "Difficulty " -msgstr "난이도" +msgstr "" #: src/monster.cpp msgid "Minimal threat." -msgstr "최소 위협" +msgstr "" #: src/monster.cpp msgid "Mildly dangerous." -msgstr "사소한 위협" +msgstr "" #: src/monster.cpp msgid "Dangerous." -msgstr "위험" +msgstr "" #: src/monster.cpp msgid "Very dangerous." -msgstr "매우 위험" +msgstr "" #: src/monster.cpp msgid "Extremely dangerous." -msgstr "극도로 위험" +msgstr "" #: src/monster.cpp msgid "Fatally dangerous!" -msgstr "최고로 위험!" +msgstr "" #: src/monster.cpp #, c-format @@ -180270,7 +180097,7 @@ msgstr "" #: src/monster.cpp msgid "fwoosh!" -msgstr "푸슈우!" +msgstr "" #: src/monster.cpp #, c-format @@ -180297,11 +180124,11 @@ msgstr "" #: src/monster.cpp msgid "Your vision goes white!" -msgstr "시야가 점점 햐얘진다!" +msgstr "" #: src/monster.cpp msgid "VMMMMMMMMM!" -msgstr "비에메메메메메메메멤!" +msgstr "" #: src/monster.cpp #, c-format @@ -181746,7 +181573,7 @@ msgstr "은(는) 이제 두려워하지 않는다." #: src/npcmove.cpp msgid "" -msgstr "" +msgstr "" #: src/npcmove.cpp #, c-format @@ -181874,7 +181701,7 @@ msgstr "" #: src/npcmove.cpp #, c-format msgid "%s %s" -msgstr "%s %s" +msgstr "" #: src/npcmove.cpp #, c-format @@ -181888,7 +181715,7 @@ msgstr "%s 물린 상처의 상태가 좋지 않다." #: src/npcmove.cpp msgid "" -msgstr "" +msgstr "" #: src/npcmove.cpp msgid "I'm suffering from radiation sickness..." @@ -182217,17 +182044,17 @@ msgstr "체력 %d - %d" #: src/npctalk.cpp #, c-format msgid " Dex %d - %d" -msgstr "민첩 %d - %d" +msgstr "" #: src/npctalk.cpp #, c-format msgid " Int %d - %d" -msgstr "지능 %d - %d" +msgstr "" #: src/npctalk.cpp #, c-format msgid " Per %d - %d" -msgstr "지각 %d - %d" +msgstr "" #: src/npctalk.cpp msgid "Dead tired" @@ -182252,8 +182079,6 @@ msgid "" "\n" "Thirsty" msgstr "" -"\n" -"목마름" #: src/npctalk.cpp msgid "" @@ -182266,8 +182091,6 @@ msgid "" "\n" "Hungry" msgstr "" -"\n" -"배고픔" #: src/npctalk.cpp msgid "YES, MASTER!" @@ -182405,7 +182228,7 @@ msgstr "" #: src/npctalk.cpp #, c-format msgid "You don't have a %1$s!" -msgstr "%1$s이(가) 없다!" +msgstr "" #. ~ %1%s is the NPC name, %2$s is an item #: src/npctalk.cpp @@ -182576,11 +182399,11 @@ msgstr "어느 바이오닉을 설치합니까?" #: src/npctalk_funcs.cpp msgid "You decide to hold off..." -msgstr "그만 두기로 했습니다..." +msgstr "" #: src/npctalk_funcs.cpp msgid "You can't afford the procedure..." -msgstr "대금을 지불할 수 없어.." +msgstr "" #: src/npctalk_funcs.cpp msgid "You don't have any bionics installed..." @@ -183037,7 +182860,7 @@ msgstr "안전모드 재설정에 걸리는 턴 수를 정합니다. '안전모 #: src/options.cpp msgid "Turns to remember ignored monsters" -msgstr "안전모드/몬스터 무시 턴 수" +msgstr "" #: src/options.cpp msgid "" @@ -183162,11 +182985,11 @@ msgstr "끔" #: src/options.cpp msgid "Sound Enabled" -msgstr "소리 켜짐" +msgstr "" #: src/options.cpp msgid "If true, music and sound are enabled." -msgstr "이 설정을 켜면 음악과 소리가 켜집니다." +msgstr "" #: src/options.cpp msgid "Choose soundpack" @@ -183697,7 +183520,7 @@ msgstr "SCT 유니코드 폰트 사용" #: src/options.cpp msgid "If true, will display scrolling combat text with Unicode font." -msgstr "이 설정을 켜면 SCT 전투 메세지가 유니코드 폰트로 표시됩니다." +msgstr "" #: src/options.cpp msgid "Animation delay" @@ -183928,11 +183751,11 @@ msgstr "경계선 없는 창" #: src/options.cpp msgid "Renderer" -msgstr "렌더러" +msgstr "" #: src/options.cpp msgid "Set which renderer to use. Requires restart." -msgstr "사용하는 렌더러를 바꾼다.재시작 필요." +msgstr "" #: src/options.cpp msgid "Software rendering" @@ -183956,13 +183779,13 @@ msgstr "소프트웨어 렌더링을 사용할때 프레임버퍼에 하드웨 #: src/options.cpp msgid "Use color modulated textures" -msgstr "색조정 텍스쳐" +msgstr "" #: src/options.cpp msgid "" "If true, tries to use color modulated textures to speed-up ASCII drawing. " "Requires restart." -msgstr "true인 경우 색상 변조 텍스처를 사용하여 ASCII 묘사를 고속화합니다.재시작이 필요합니다." +msgstr "" #: src/options.cpp msgid "Scaling mode" @@ -184190,7 +184013,7 @@ msgstr "괴물 생성 밀도를 설정합니다. 높을수록 많아집니다." #: src/options.cpp msgid "Carrion spawn rate scaling factor" -msgstr "썩은 괴물 생성 계수" +msgstr "" #: src/options.cpp msgid "" @@ -184293,8 +184116,6 @@ msgid "" "seasons scales with this value, so adjusting it may cause nonsensical " "results." msgstr "" -"1계절의 날짜를 변경합니다.주의: 계절의 일수를 변경해도, 그 이외의 시간에 관한 값은 고정된 채입니다.일수변경이 의도한 결과를 초래하지" -" 않을 수 있습니다." #: src/options.cpp msgid "Construction scaling" @@ -184454,7 +184275,7 @@ msgstr "진동 지속시간" msgid "" "If non-zero, vibrate the device for this long on input, in milliseconds. " "Ignored if hardware keyboard connected." -msgstr "0으로 설정된게 아닐 경우 긴 입력으로 (0.1초 단위)장치를 진동시킵니다. 하드웨어 키보드가 연결된 경우 무시됩니다." +msgstr "" #: src/options.cpp msgid "Show virtual joystick" @@ -184562,8 +184383,6 @@ msgid "" "joystick. Helps keep the view uncluttered while traveling long distances and" " navigating menus." msgstr "" -"이 설정을 켜면 가상 조이스틱을 사용할 때 화면상의 키보드 단축키를 숨깁니다. 긴 거리를 움직이거나 메뉴 조작을 할 때 화면이 난잡해 " -"보이지 않도록 해줍니다." #: src/options.cpp msgid "Default gameplay shortcuts" @@ -184875,7 +184694,7 @@ msgstr "다음 페이지로 넘기시려면 아무 키나 눌러주세요..." #, c-format msgctxt "query_yn" msgid "%s (Case Sensitive)" -msgstr "%s(대소문자 식별)" +msgstr "" #: src/output.cpp #, c-format @@ -184916,12 +184735,12 @@ msgstr "예: -파이프,-,조각,-강철 등" #: src/output.cpp msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" -msgstr "검색 [c]카테고리, [m]재료, [q]성능 or [d]분해가능한 아이템:" +msgstr "" #. ~ An example of how to filter items based on category or material. #: src/output.cpp msgid "Examples: c:food,m:iron,q:hammering,d:pipe" -msgstr "예제: c:음식,m:철,q:망치,d:파이프" +msgstr "" #: src/output.cpp msgid "unknown" @@ -185083,15 +184902,15 @@ msgstr "색 코드: " #: src/overmap_ui.cpp msgid "Type GLYPH:TEXT to set a custom glyph." -msgstr "타입 상형 문자:TEXT를 입력하여 사용자 정의 상형문자를 설정." +msgstr "" #: src/overmap_ui.cpp msgid "Type COLOR;TEXT to set a custom color." -msgstr "타입 컬러;TEXT를 입력하여 사용자 정의 색상을 설정." +msgstr "" #: src/overmap_ui.cpp msgid "Examples: B:Base | g;Loot | !:R;Minefield" -msgstr "Examples: B:거점 | g;Loot | !:R:지뢰밭" +msgstr "" #: src/overmap_ui.cpp msgid "Note:" @@ -185103,7 +184922,7 @@ msgstr "단어 검색:" #: src/overmap_ui.cpp msgid "Multiple entries separated with , Excludes starting with -" -msgstr "복수의 단어로 검색하는 경우는-로 구분한다." +msgstr "" #: src/overmap_ui.cpp msgid "No results found." @@ -185893,7 +185712,7 @@ msgstr "%s에 한 시간 안에 심한 동상이 걸린다!" #: src/player.cpp #, c-format msgid "Your %s will be frostbitten any minute now!" -msgstr "%s에 곧 심한 동상이 걸린다!" +msgstr "" #. ~ %s is bodypart #: src/player.cpp @@ -186005,7 +185824,7 @@ msgstr "" #: src/player.cpp #, c-format msgid "You've spotted a %1$s to the %2$s!" -msgstr "%1$s을(를) %2$s에서 발견했다!" +msgstr "" #: src/player.cpp #, c-format @@ -186015,12 +185834,12 @@ msgstr "공격형 방호 시스템이 공격 도중 %s에게 전기충격을 가 #: src/player.cpp #, c-format msgid "%1$s's offensive defense system shocks %2$s in mid-attack!" -msgstr "%1$s의 공격형 방호 시스템이 공격 도중 %2$s에게 전기충격을 가했다!" +msgstr "" #: src/player.cpp #, c-format msgid "%1$s's %2$s puncture %3$s in mid-attack!" -msgstr "%1$s의 %2$s이(가) 공격 도중 %3$s을(를) 펑크를 냈다!" +msgstr "" #: src/player.cpp msgid "quills" @@ -186033,12 +185852,12 @@ msgstr "척추뼈" #: src/player.cpp #, c-format msgid "Your %1$s puncture %2$s in mid-attack!" -msgstr "%1$s이(가) 펑크를 공격 도중 %2$s(을) 펑크를 냈다!" +msgstr "" #: src/player.cpp #, c-format msgid "%1$s's %2$s scrape %3$s in mid-attack!" -msgstr "%1$s의 %2$s이(가) 공격 도중 %3$s을(를) 긁었다!" +msgstr "" #: src/player.cpp msgid "thorns" @@ -186052,7 +185871,7 @@ msgstr "가시가 공격 도중 %s을(를) 긁었다!" #: src/player.cpp #, c-format msgid "%1$s gets a load of %2$s's %3$s stuck in!" -msgstr "%1$s에%2$s의%3$s가 박혔다!" +msgstr "" #: src/player.cpp msgid "hair" @@ -186169,7 +185988,7 @@ msgstr "%s에 내던져져 %d의 피해를 입었다." #: src/player.cpp #, c-format msgid "You are slammed against %s!" -msgstr "%s에 내던져졌다!" +msgstr "" #: src/player.cpp msgid "...but your shock absorbers negate the damage!" @@ -186505,7 +186324,7 @@ msgstr "기절했다!" #: src/player.cpp msgid "We have mistakenly colonized a local guide! Purging now." -msgstr "현지민을 안내역으로 끌어들이겠다는 우리의 생각은 잘못되어 있었어!숙청중." +msgstr "" #: src/player.cpp msgid "Something writhes and inside of you as it dies." @@ -186640,19 +186459,19 @@ msgstr "어, 물론." #: src/player.cpp msgid "No way, man." -msgstr "안돼," +msgstr "" #: src/player.cpp msgid "Do you really think so?" -msgstr "정말 그렇게 생각해?" +msgstr "" #: src/player.cpp msgid "Is it really time for that?" -msgstr "정말 그것을 할 시간이야?" +msgstr "" #: src/player.cpp msgid "Sorry, I can't hear you." -msgstr "미안, 못 들었어." +msgstr "" #: src/player.cpp msgid "You've told me already." @@ -186664,15 +186483,15 @@ msgstr "나 알아!" #: src/player.cpp msgid "Why are you following me?" -msgstr "왜 나를 미행하는 거야?" +msgstr "" #: src/player.cpp msgid "This place is dangerous, you shouldn't be here." -msgstr "이 장소는 너무 위험해, 너는 여기있어선 안돼" +msgstr "" #: src/player.cpp msgid "That's not true, is it?" -msgstr "사실이 아니겠지?" +msgstr "" #: src/player.cpp msgid "Are you hurt?" @@ -186680,57 +186499,57 @@ msgstr "다쳤어?" #: src/player.cpp msgid "Your " -msgstr "Your" +msgstr "" #: src/player.cpp #, c-format msgid "Hey, let's go kill that %1$s!" -msgstr "이봐, 나%1$s을(를) 죽이러 가자!" +msgstr "" #: src/player.cpp #, c-format msgid "Did you see that %1$s!?" -msgstr "너 %1$s봤어?" +msgstr "" #: src/player.cpp #, c-format msgid "I want to kill that %1$s!" -msgstr "나는 %1$s을(를) 죽이고 싶어!" +msgstr "" #: src/player.cpp #, c-format msgid "Let me kill that %1$s!" -msgstr "%1$s을(를) 죽이게 해줘!" +msgstr "" #: src/player.cpp #, c-format msgid "Hey, I need to kill that %1$s!" -msgstr "이봐, 나는 %1$s을(를) 죽여야되!" +msgstr "" #: src/player.cpp #, c-format msgid "I want to watch that %1$s bleed!" -msgstr "나는 %1$s이(가) 피 흘리는걸 보고싶어!" +msgstr "" #: src/player.cpp #, c-format msgid "Wait, that %1$s needs to die!" -msgstr "잠깐, %1$s은(는) 죽여야되!" +msgstr "" #: src/player.cpp #, c-format msgid "Go kill that %1$s!" -msgstr "%1$s을(를) 죽이러 가자!" +msgstr "" #: src/player.cpp #, c-format msgid "Look at that %1$s!" -msgstr "%1$s을(를) 봐!" +msgstr "" #: src/player.cpp #, c-format msgid "That %1$s doesn't deserve to live!" -msgstr "그 %1$s은(는) 살 자격이 없어!" +msgstr "" #: src/player.cpp msgid "Hey, you're bleeding." @@ -186738,91 +186557,91 @@ msgstr "이봐, 너 피를 흘리고 있어..." #: src/player.cpp msgid "Your wound looks pretty bad." -msgstr "너 상처가 많이 않 좋아보여." +msgstr "" #: src/player.cpp msgid "Shouldn't you put a bandage on that?" -msgstr "붕대좀 감아야 될거같은데?" +msgstr "" #: src/player.cpp msgid "Please don't die! No one else lets me kill things!" -msgstr "제발 죽지 마! 아무도 날 죽이지 못하게 해!" +msgstr "" #: src/player.cpp msgid "You look hurt, did I do that?" -msgstr "다친 것 같은데, 내가 그랬어?" +msgstr "" #: src/player.cpp msgid "Are you supposed to be bleeding?" -msgstr "피를 흘리기로 한 거야?" +msgstr "" #: src/player.cpp msgid "You're not going to die, are you?" -msgstr "줄을 생각아니지?" +msgstr "" #: src/player.cpp msgid "Kill a few more before you bleed out!" -msgstr "피를 흘리기 전에 몇 명을 더 죽여!" +msgstr "" #: src/player.cpp msgid "Hey fix me up." -msgstr "이봐, 나 좀 고쳐줘." +msgstr "" #: src/player.cpp msgid "I need healing!" -msgstr "나 치료가 필요해!" +msgstr "" #: src/player.cpp msgid "I hurt all over..." -msgstr "온몸이 다쳤어..." +msgstr "" #: src/player.cpp msgid "You can put me back together, right?" -msgstr "나를 다시 합류시키겠지, 그렇지?" +msgstr "" #: src/player.cpp msgid "I... I can't move my legs!" -msgstr "다리를 움직일 수가 없어!" +msgstr "" #: src/player.cpp msgid "Medic!" -msgstr "의사!" +msgstr "" #: src/player.cpp msgid "I can still fight, don't replace me!" -msgstr "난 여전히 싸울 수 있어, 날 교체하지 마!" +msgstr "" #: src/player.cpp msgid "They got me!" -msgstr "그들이 날 잡았어!" +msgstr "" #: src/player.cpp msgid "Go on without me..." -msgstr "날 버리고가..." +msgstr "" #: src/player.cpp msgid "Am I gonna die?" -msgstr "내가 죽게 되?" +msgstr "" #: src/player.cpp msgid "Let me kill something already!" -msgstr "뭔가를 죽이게 해줘!" +msgstr "" #: src/player.cpp msgid "I'm your best friend, right?" -msgstr "난 너의 제일 친한 친구야, 그렇지?" +msgstr "" #: src/player.cpp msgid "Do you think it will rain today?" -msgstr "오늘 비가 올 것 같아?" +msgstr "" #: src/player.cpp msgid "Try not to drop me." -msgstr "나를 떨어트리지 마." +msgstr "" #: src/player.cpp msgid "How many do you think we've killed?" -msgstr "우리가 몇 명이나 죽였을까?" +msgstr "" #: src/player.cpp msgid "I'll keep you safe!" @@ -186830,7 +186649,7 @@ msgstr "내가 널 지켜줄게!" #: src/player.cpp msgid "You get a bad feeling." -msgstr "기분이 나쁘다." +msgstr "" #: src/player.cpp msgid "You suddenly feel so numb..." @@ -186902,7 +186721,7 @@ msgstr "\"너를 믿는 게 아니였는데!\"" #: src/player.cpp msgid "You're suddenly overcome with the urge to sleep and you pass out." -msgstr "당신은 갑자기 자고 싶은 충동에 사로잡혀 기절합니다." +msgstr "" #: src/player.cpp msgid "You have an asthma attack!" @@ -186910,11 +186729,11 @@ msgstr "천식으로 인해 호흡곤란이 일어났다!" #: src/player.cpp msgid "You use your Oxygenator to clear it up, then go back to sleep." -msgstr "산소호흡기를 사용한 다음 다시 잠을 청합니다." +msgstr "" #: src/player.cpp msgid "You use your inhaler and go back to sleep." -msgstr "흡입기를 사용하고 다시 잠을 잡니다." +msgstr "" #: src/player.cpp msgid "You take a deep breath from your oxygen tank and go back to sleep." @@ -187004,11 +186823,11 @@ msgstr "바이오닉에서 시끄러운 소음이 난다!" #: src/player.cpp msgid "You feel your faulty bionic shuddering." -msgstr "당신은 잘못된 생체 공학적인 떨림을 느낍니다." +msgstr "" #: src/player.cpp msgid "Crackle!" -msgstr "치직!" +msgstr "" #: src/player.cpp msgid "Your vision pixelates!" @@ -187112,33 +186931,33 @@ msgstr "시야가 약간 흐려졌다." #: src/player.cpp msgid "Your mind lapses into unawareness briefly." -msgstr "마음이 잠시동안 무의식 속으로 빠져듭니다." +msgstr "" #: src/player.cpp msgid "Your muscles ache in stressfully unpredictable ways." -msgstr "근육이 스트레스적으로 쑤신다." +msgstr "" #: src/player.cpp msgid "You have a distractingly painful headache." -msgstr "산만할 정도로 아픈 두통을 가진다." +msgstr "" #: src/player.cpp msgid "You feel heartburn and an acid taste in your mouth." -msgstr "여러분은 속이 쓰리고 입안에서 산 맛이 나는 것을 느낍니다." +msgstr "" #: src/player.cpp msgid "Your mind is so tired that you feel you can't trust your eyes anymore." -msgstr "여러분의 마음은 너무 피곤해서 여러분은 더 이상 눈을 믿을 수 없다고 느낍니다." +msgstr "" #: src/player.cpp msgid "" "Your muscles spasm uncontrollably, and you have trouble keeping your " "balance." -msgstr "여러분의 근육은 걷잡을 수 없이 경련을 일으키고, 균형을 유지하는 데 어려움을 겪습니다." +msgstr "" #: src/player.cpp msgid "Your shaking legs make you stumble." -msgstr "다리가 후들후들 떨린다." +msgstr "" #: src/player.cpp msgid " stumbles." @@ -187150,7 +186969,7 @@ msgstr "" #: src/player.cpp msgid "You fall over!" -msgstr "떨어졌다!" +msgstr "" #: src/player.cpp #, c-format @@ -187240,7 +187059,7 @@ msgstr "%s 재장전" #: src/player.cpp #, c-format msgid "Select ammo for %s" -msgstr "%s의 탄약 선택" +msgstr "" #. ~ magazine with ammo count #: src/player.cpp @@ -188742,7 +188561,7 @@ msgstr "신체적, 정신적으로 기절할 가능성이 매우 높아졌다." #: src/player_hardcoded_effects.cpp msgid "No one should be asked to handle this trip." -msgstr "아무도 이 여행을 맡으라고 해서는 안된다." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" @@ -191195,7 +191014,7 @@ msgstr "%1$d 단계 %2$s 기능을 가짐." #: src/veh_type.cpp #, c-format msgid " and is rated at %1$d %2$s" -msgstr "(최대%1$d%2$s)" +msgstr "" #: src/veh_utils.cpp #, c-format @@ -192168,11 +191987,11 @@ msgstr "차량 탱크의 물 정수" #: src/vehicle_use.cpp msgid "Capture or release a creature" -msgstr "동물 포획/해방" +msgstr "" #: src/vehicle_use.cpp msgid "Load or unload a vehicle" -msgstr "차량을 싣다 / 내리다" +msgstr "" #: src/vehicle_use.cpp msgid "Harness an animal" @@ -192180,7 +191999,7 @@ msgstr "" #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" -msgstr "파종기에 씨를 장전하다" +msgstr "" #: src/vehicle_use.cpp #, c-format diff --git a/lang/po/pl.po b/lang/po/pl.po index 35b3137221081..e74b90bbca0cf 100644 --- a/lang/po/pl.po +++ b/lang/po/pl.po @@ -730,28 +730,28 @@ msgstr "Palny materiał, drobno rozdrobniony, dla łatwego rozpalenia." #: lang/json/AMMO_from_json.py msgid "RPG die" msgid_plural "RPG dice" -msgstr[0] "kostka RPG" -msgstr[1] "kostki RPG" -msgstr[2] "kości RPG" -msgstr[3] "kości RPG" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. ~ Description for RPG die #: lang/json/AMMO_from_json.py msgid "A die used to play various role-playing games." -msgstr "Kostka używana do grania w różne gry fabularne." +msgstr "" #: lang/json/AMMO_from_json.py msgid "metal RPG die" msgid_plural "metal RPG dice" -msgstr[0] "metalowa kostka RPG" -msgstr[1] "metalowe kostki RPG" -msgstr[2] "metalowych kości RPG" -msgstr[3] "metalowych kości RPG" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. ~ Description for metal RPG die #: lang/json/AMMO_from_json.py msgid "A metal die used to play various role-playing games" -msgstr "Metalowa kostka używana do grania w różne gry fabularne." +msgstr "" #: lang/json/AMMO_from_json.py msgid "bronze" @@ -1792,7 +1792,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden bodkin bolt" -msgstr "drewniany bełt typu bodkin" +msgstr "" #. ~ Description for wooden bodkin bolt #: lang/json/AMMO_from_json.py @@ -1800,9 +1800,6 @@ msgid "" "A fletched wooden crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." msgstr "" -"Zakrojona drewniany bełt do kuszy z zaostrzoną końcówką. Przydatny do " -"przebijania zbroi. Po wystrzeleniu daje spore szanse na pozostanie " -"nietkniętym." #: lang/json/AMMO_from_json.py msgid "wooden small game bolt" @@ -92570,7 +92567,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "autoclave" -msgstr "autoklaw" +msgstr "" #. ~ Description for autoclave #: lang/json/furniture_from_json.py diff --git a/lang/po/pt_BR.po b/lang/po/pt_BR.po index 0c25c91bec915..5bcd284bd3148 100644 --- a/lang/po/pt_BR.po +++ b/lang/po/pt_BR.po @@ -15,8 +15,6 @@ # Douglas Onofre Rosas dos Santos , 2019 # Breno Gomes da Fonseca , 2019 # Lucas Reis , 2019 -# Hugo Santos , 2019 -# C. J. , 2019 # msgid "" msgstr "" @@ -24,7 +22,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-07-07 23:49+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: C. J. , 2019\n" +"Last-Translator: Lucas Reis , 2019\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -44,8 +42,6 @@ msgid "" "Some free-floating battery charge. This can be reloaded into rechargable " "battery cells, but can never be unloaded." msgstr "" -"Alguma bateria de carga flutuante. Isto pode ser recarregado em células de " -"bateria recarregáveis, mas não podem jamais ser descarregadas." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -151,7 +147,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "plutonium fuel cell" -msgstr "célula de combustível de plutônio" +msgstr "" #. ~ Description for plutonium fuel cell #: lang/json/AMMO_from_json.py @@ -162,12 +158,6 @@ msgid "" "conventional means: expended cells had to be sent to a central reprocessing " "facility that almost certainly doesn't exist anymore." msgstr "" -"Isto não é uma célula de combustível, nem é nuclear, mas o nome ficou. Usa " -"plutônio-244 como um catalisador para estabilizar um complexo nanocompósito " -"que pode armazernar enormes quantidades de nergia. Infelizmente, não pode " -"ser recarregada por meios convencionais: as células esgotadas tiveram que " -"ser enviadas para uma instalação de reprocessamento central que quase " -"certamente não existe mais." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "plutonium slurry" @@ -205,8 +195,8 @@ msgid "" "A handful of round projectiles made of clay, useful for slings or " "slingshots." msgstr "" -"Um punhado de projéteis redondos feitos de argila, utéis para fundas e " -"estilingues." +"Alguns projéteis redondos feito de argila, útil para atiradeira e " +"estilingues " #: lang/json/AMMO_from_json.py msgid "marble" @@ -223,15 +213,13 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "bearings" msgid_plural "bearings" -msgstr[0] "rolamento" -msgstr[1] "rolamentos" +msgstr[0] "" +msgstr[1] "" #. ~ Description for bearings #: lang/json/AMMO_from_json.py msgid "A box of ball bearings, useful as ammunition for slings or slingshots." -msgstr "" -"Uma caixa de rolamentos de esferas, úteis como munição para fundas e " -"estilingues." +msgstr "Uma caixa de bilhas, úteis como munição para fundas ou estilingues." #: lang/json/AMMO_from_json.py msgid "BB" @@ -241,7 +229,8 @@ msgstr "chumbinhos" #: lang/json/AMMO_from_json.py msgid "A box of small steel balls. They deal virtually no damage." msgstr "" -"Uma caixa de pequenas esferas de aço. Elas praticamente não causam dano." +"Uma caixa de pequenas bolas de ferro, elas praticamente não causam nenhum " +"dano." #: lang/json/AMMO_from_json.py msgid "feather" @@ -259,8 +248,7 @@ msgstr "pluma" #. ~ Description for down feather #: lang/json/AMMO_from_json.py msgid "Fluffy down feathers from a bird. Useful for making cozy bedclothes." -msgstr "" -"Plumas fofas de um pássaro. Útil para fazer roupas de cama aconchegantes." +msgstr "Penas fofas de um pássaro. Útil para fazer pijamas acolhedores" #: lang/json/AMMO_from_json.py msgid "fusion pack" @@ -273,7 +261,7 @@ msgid "" "energy based weapons. The result was the standard fusion pack, capable of " "delivering bolts of superheated gas at near light speed with no recoil." msgstr "" -"Em meados do século 21 , as potências militares começaram a estudar armas " +"Em meados do século 21 , os poderes militares começaram a estudar armas " "baseadas em energia. O resultado foi o pacote de fusão padrão , capaz de " "fornecer raios de gás superaquecido próximos a velocidade da luz e sem " "recuo." @@ -316,13 +304,13 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "unused .22 casing" -msgstr "cápsula .22 não usada" +msgstr "revestimento .22 inutilizado" #. ~ Description for unused .22 casing #: lang/json/AMMO_from_json.py msgid "An unfired, like-new .22 round casing, with the primer still intact." msgstr "" -"Uma cápsula .22, nunca usada, como nova, com a espoleta ainda intacta." +"Uma capsula .22, nunca usada, como nova, com a espoleta ainda intacta." #: lang/json/AMMO_from_json.py msgid "gunpowder" @@ -331,7 +319,7 @@ msgstr "pólvora" #. ~ Description for gunpowder #: lang/json/AMMO_from_json.py msgid "Firearm-quality gunpowder." -msgstr "Pólvora de qualidade para armas de fogo." +msgstr "Pólvora de qualidade para armas de fogo" #: lang/json/AMMO_from_json.py msgid "oxidizer powder" @@ -344,7 +332,7 @@ msgstr "Oxidante volátil químico em pó." #: lang/json/AMMO_from_json.py msgid "lye powder" -msgstr "lixívia em pó" +msgstr "soda cáustica" #. ~ Description for lye powder #: lang/json/AMMO_from_json.py @@ -708,8 +696,8 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "tinder" msgid_plural "tinder" -msgstr[0] "acendalha" -msgstr[1] "acendalhas" +msgstr[0] "" +msgstr[1] "" #. ~ Description for tinder #: lang/json/AMMO_from_json.py @@ -749,8 +737,6 @@ msgstr[1] "bronze" #: lang/json/AMMO_from_json.py msgid "Decent-sized chunks of bronze, for fashioning some old-school items." msgstr "" -"Pedaços de bronze de um tamanho decente, para confecção de alguns itens à " -"moda antiga." #: lang/json/AMMO_from_json.py msgid "crude wooden arrow" @@ -767,7 +753,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden bodkin arrow" -msgstr "flecha bodkin de madeira" +msgstr "" #. ~ Description for wooden bodkin arrow #: lang/json/AMMO_from_json.py @@ -780,7 +766,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "simple wooden small game arrow" -msgstr "flecha para caça-miúda de madeira simples " +msgstr "" #. ~ Description for simple wooden small game arrow #: lang/json/AMMO_from_json.py @@ -789,13 +775,10 @@ msgid "" " small woodland creatures without splattering them all over the ground. " "Stands a low chance of remaining intact once fired." msgstr "" -"Uma flecha de madeira emplumada simples com uma ponta embotada. Útil para " -"caçar pequenas criaturas da floresta sem despedaçá-las por todo o chão. Tem " -"uma pequena chance de permanecer intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "wooden broadhead arrow" -msgstr "flecha broadhead de madeira" +msgstr "" #. ~ Description for wooden broadhead arrow #: lang/json/AMMO_from_json.py @@ -804,9 +787,6 @@ msgid "" "damage to the target. Stands a decent chance of remaining intact once " "fired." msgstr "" -"Uma flecha de madeira emplumada com uma ponta laminada. Útil para maximizar " -"o dano ao alvo. Tem uma chance razoável de permanecer intacta uma vez " -"disparada." #: lang/json/AMMO_from_json.py msgid "simple wooden arrow" @@ -818,12 +798,10 @@ msgid "" "A simple fletched wooden arrow shaft with a fire-hardened and sharpened tip." " Stands a low chance of remaining intact once fired." msgstr "" -"Uma flecha de madeira emplumada simples com uma ponta endurecida pelo fogo e" -" afiada. Tem uma pequena chance de permanecer intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "wooden small game arrow" -msgstr "flecha para caça-miúda de madeira" +msgstr "" #. ~ Description for wooden small game arrow #: lang/json/AMMO_from_json.py @@ -832,13 +810,10 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." msgstr "" -"Uma flecha de madeira emplumada com uma ponta embotada. Útil para caçar " -"pequenas criaturas da floresta sem despedaçá-las por todo o chão. Tem uma " -"chance razoável de permanecer intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" -msgstr "flecha de madeira improvisada" +msgstr "" #. ~ Description for makeshift wooden arrow #: lang/json/AMMO_from_json.py @@ -846,12 +821,10 @@ msgid "" "A simple fletched wooden arrow shaft with a makeshift arrowhead. Stands a " "low chance of remaining intact once fired." msgstr "" -"Uma flecha de madeira emplumada simples com uma ponta improvisada. Tem uma " -"pequena chance de permanecer intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "simple metal arrow" -msgstr "Flecha de metal simples" +msgstr "" #. ~ Description for simple metal arrow #: lang/json/AMMO_from_json.py @@ -859,12 +832,10 @@ msgid "" "A simple fletched steel arrow shaft with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." msgstr "" -"Uma flecha de metal emplumada simples com uma ponta achatada e afiada. Tem " -"uma chance um pouco baixa de permanecer intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "aluminum broadhead arrow" -msgstr "flecha broadhead de alumínio" +msgstr "" #. ~ Description for aluminum broadhead arrow #: lang/json/AMMO_from_json.py @@ -872,12 +843,10 @@ msgid "" "A fletched aluminum arrow shaft with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." msgstr "" -"Uma flecha de alumínio emplumada com uma ponta laminada. Útil para maximizar" -" o dano ao alvo. Tem uma boa chance de permanecer intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "aluminum field point arrow" -msgstr "flecha ponta de campo de alumínio" +msgstr "" #. ~ Description for aluminum field point arrow #: lang/json/AMMO_from_json.py @@ -885,13 +854,10 @@ msgid "" "A fletched aluminum arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." msgstr "" -"Uma flecha de alumínio emplumada com uma ponta pontiaguda. Útil para " -"perfurar armadura. Tem uma boa chance de permanecer intacta uma vez " -"disparada." #: lang/json/AMMO_from_json.py msgid "aluminum small game arrow" -msgstr "flecha para caça-miúda de alumínio" +msgstr "" #. ~ Description for aluminum small game arrow #: lang/json/AMMO_from_json.py @@ -900,13 +866,10 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "good chance of remaining intact once fired." msgstr "" -"Uma flecha de alumínio emplumada com uma ponta embotada. Útil para caçar " -"pequenas criaturas da floresta sem despedaçá-las por todo o chão. Tem uma " -"boa chance de permanecer intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "carbon fiber hunting arrow" -msgstr "flecha de caça de fibra de carbono" +msgstr "" #. ~ Description for carbon fiber hunting arrow #: lang/json/AMMO_from_json.py @@ -915,9 +878,6 @@ msgid "" "impressive damage to targets. Stands a good chance of remaining intact once" " fired." msgstr "" -"Uma flecha de fibra de carbono emplumada com uma ponta broadhead expansível." -" Causa um dano impressionanteaos alvos. Tem uma boa chance de permanecer " -"intacta uma vez disparada." #: lang/json/AMMO_from_json.py msgid "explosive arrow" @@ -931,11 +891,6 @@ msgid "" "a shot, it requires one to loose this with a small measure of confidence " "that the shooter won't be caught in the blast radius." msgstr "" -"Esta flecha tem um pequeno dispositivo explosivo improvisado (IED) amarrado " -"à sua ponta. Horrivelmente imprecisa, pesada e volumosa, esta engenhoca não " -"apenas exige que mãos experientes realizem o disparo, mas requer que isso " -"seja feito com uma pequena medida de confiança de que o atirador não será " -"pego no raio da explosão." #: lang/json/AMMO_from_json.py msgid "flaming arrow" @@ -947,8 +902,6 @@ msgid "" "This arrow has a flaming rag wrapped around the shaft near the head. You " "should shoot it soon before it burns your bow." msgstr "" -"Esta flecha tem um um trapo flamejante enrolado próximo à ponta. Você deve " -"atirar logo antes de queimar seu arco." #: lang/json/AMMO_from_json.py msgid "throwing knife" @@ -989,16 +942,16 @@ msgstr "Um dardo de plástico feito para jogos ao ar livre." #: lang/json/AMMO_from_json.py msgid "frisbee" -msgstr "frisbee" +msgstr "" #. ~ Description for frisbee #: lang/json/AMMO_from_json.py msgid "A plastic frisbee made for outdoor games." -msgstr "Um frisbee de plástico feito para jogos ao ar livre." +msgstr "" #: lang/json/AMMO_from_json.py src/artifact.cpp msgid "disc" -msgstr "disco" +msgstr "" #. ~ Description for disc #: lang/json/AMMO_from_json.py @@ -1006,8 +959,6 @@ msgid "" "A plastic disc made for playing disc golf, it is smaller and denser then a " "normal frisbee." msgstr "" -"Um disco de plástico feito para jogar golfe de disco, é menor e mais denso " -"que um frisbee normal." #: lang/json/AMMO_from_json.py msgid "wooden fishing spear" @@ -1054,7 +1005,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden rubber blunt arrow" -msgstr "flecha de ponta cega de madeira" +msgstr "" #. ~ Description for wooden rubber blunt arrow #: lang/json/AMMO_from_json.py @@ -1062,13 +1013,10 @@ msgid "" "A fletched wooden arrow shaft with a blunt rubber tip. Can stun weaker " "enemies. Stands a good chance of remaining intact once fired." msgstr "" -"Uma flecha de madeira emplumada com uma ponta cega de borracha. Pode " -"atordoar inimigos mais fracos. Tem uma boa chance de permanecer intacta uma " -"vez disparada." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "anesthetic" -msgstr "anestésico" +msgstr "" #. ~ Description for anesthetic #: lang/json/AMMO_from_json.py @@ -1077,9 +1025,6 @@ msgid "" "intended for use in specialized medical equipment, and can't be administered" " manually. You can reload an anesthesia kit with it." msgstr "" -"Uma variedade poderosos medicamentos hipnóticos, analgésicos e estimulantes." -" É destinado para uso em equipamento médico especializado, e não pode ser " -"administrado manualmente. Você pode recarregar um kit de anestesia com ele." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1159,10 +1104,6 @@ msgid "" "severe burns to any tissue it comes in contact with. This property could " "probably be exploited." msgstr "" -"O produto da queima de calcário, este pó branco é um ingrediente crucial na " -"fabricação de cimento. Dito isto, também é extremamente cáustico, e causará " -"queimaduras graves a qualquer tecido com o qual entre em contato. Essa " -"propriedade provavelmente poderia ser explorada." #: lang/json/AMMO_from_json.py lang/json/terrain_from_json.py msgid "sand" @@ -1208,10 +1149,6 @@ msgid "" "explosives alike. Just before the Cataclysm, however, it was the basis of " "virtually all commercial metallic-hued paints and anti-corrosive coatings." msgstr "" -"Um punhado de pó de alumínio finamente moído. Este forte agente redutor era " -"usado combinado a vários oxidantes para soldagem química e explosivos. Pouco" -" antes do Cataclismo, no entanto, era a base de praticamente todas as tintas" -" metálicas comerciais e revestimentos anticorrosivos." #: lang/json/AMMO_from_json.py msgid "zinc powder" @@ -1226,10 +1163,6 @@ msgid "" "for paints, hobbyists used to mix it with sulfur to make basic rocket fuel /" " smokescreen. When treated with a strong acid, it will produce hydrogen." msgstr "" -"Um punhado de pós de zinco. Embora comercialmente usado principalmente em " -"cosméticos e para tintas, os amadores costumavam misturá-lo com enxofre para" -" fazer combustível de foguete básico / cortina de fumaça. Quando tratado com" -" um ácido forte, produzirá hidrogênio." #: lang/json/AMMO_from_json.py msgid "sulfuric acid" @@ -1245,10 +1178,6 @@ msgid "" "chemicals, it is mostly known as battery acid, due to its widest commercial " "application." msgstr "" -"Ácido sulfúrico: viscoso, malcheiroso e extremamente corrosivo, " -"particularmente à matéria orgânica e palhaços maléficos. Embora usado para " -"preparar uma série de produtos químicos, é mais conhecido como ácido de " -"bateria, devido à sua aplicação comercial mais ampla." #: lang/json/AMMO_from_json.py msgid "acetone" @@ -1263,10 +1192,6 @@ msgid "" " Flammable and can be easily used for potent home-made explosives, as " "demonstrated by the terrorist attacks of 2016." msgstr "" -"Acetona, mais conhecida como o principal constituinte da maioria dos " -"removedores de esmalte. Inflamável e pode facilmente ser usado para " -"explosivos caseiros potentes, como demonstrado pelos ataques terroristas de " -"2016." #: lang/json/AMMO_from_json.py msgid "nitric acid" @@ -1283,11 +1208,6 @@ msgid "" "pyrotechnic and explosive agents and as a direct weapon: not many beings " "enjoy being doused in nitric acid." msgstr "" -"Ácido nítrico, um forte oxidante e material extremamente corrosivo. Usado " -"principalmente na produção de fertilizantes sintéticos, para gravação de " -"placas de circuito e em marcenaria. Ainda é bastante útil tanto para criar " -"uma vasta gama de agentes pirotécnicos e explosivos quanto para ser uma arma" -" direta: não muitos seres gostam de ser ensopados em ácido nítrico." #: lang/json/AMMO_from_json.py msgid "chromium oxide" @@ -1304,12 +1224,6 @@ msgid "" " to a CVD machine and a laboratory worth of reagents, they might be able to " "produce very durable ceramic layers." msgstr "" -"Um punhado de pelotas de óxido de cromo. Esta substância, tipicamente " -"conhecida como o único pigmento verde estável para tintas, é também um " -"oxidante suave, que pode ser misturado pó de alumínio para fazer termita " -"para soldagem. Se alguém tivesse acesso a uma máquina de deposição de vapor " -"químico (CVD) e a um laboratório de reagentes, poderiam produzir camadas " -"cerâmicas muito duráveis." #: lang/json/AMMO_from_json.py msgid "calcium carbide" @@ -1326,11 +1240,6 @@ msgid "" "and sealed, it will explode with little strength, but with relatively loud " "noise and could maybe be used as a decoy." msgstr "" -"Um punhado de pedaços de carboneto de cálcio, exalando um leve cheiro de " -"alho. Comercialmente, carboneto de cálcio era usado na manufatura in loco de" -" acetileno e historicamente para alimentar lâmpadas de acetileno. Se " -"misturado com água e selado, ele explodirá com pouca força, mas com barulho " -"relativamente alto e talvez possa ser usado como chamariz." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "hexamine" @@ -1347,12 +1256,6 @@ msgid "" "before, being the key component in the preparation of several military-grade" " explosives." msgstr "" -" hexamineUm punhado de comprimidos de hexamina cerosa. " -"Estecombustívelonipresente foi usado para iniciar quase todas as " -"churrasqueirasde jardime nenhuma viagem de acampamento \"real\" poderia " -"fazer sua cozinha sem ele, até o Cataclismo. Hoje em dia, é ainda mais " -"valioso do que antes, sendo ocomponente chave na preparação de vários " -"explosivos militares." #: lang/json/AMMO_from_json.py msgid "hydrogen peroxide (concentrated)" @@ -1368,11 +1271,6 @@ msgid "" " high explosives. Causes severe burns to any organic matter and may ignite " "it on contact." msgstr "" -"Peróxido de de hidrogênio concentrado é um oxidante poderoso, decompondo-se " -"violentamente em contato com a maioria dos agentes redutores. Pode ser usado" -" como combustível de foguete ou para fazer altos explosivos. Provoca " -"queimaduras graves em qualquer matéria orgânica e pode incendiá-la ao " -"contato." #: lang/json/AMMO_from_json.py msgid "ammonium nitrate" @@ -1388,10 +1286,6 @@ msgid "" "in water to sharply lower its temperature, but is there any use for this " "quality in this new world?" msgstr "" -" nitrato de amônioUm punhado de nitrato de amônio. Este pó cristalinobrancoé" -" comumente usado como componente de fertilizantes e explosivos. Também pode " -"ser dissolvido em água para reduzir drasticamente a sua temperatura, mas " -"existe alguma utilidade para esta qualidade neste novomundo?" #: lang/json/AMMO_from_json.py msgid "saltpeter" @@ -1406,9 +1300,6 @@ msgid "" "nitrate is the principal constituent of black gunpowder and simple rocket " "propellants, such as rocket candy." msgstr "" -" salgado Um punhado de salitre. Às vezes usado como fertilizante, " -"essenitrato onipresente é o principal constituinte da pólvora negra " -"edospropelentes de foguetes simples, como o doce de foguete." #: lang/json/AMMO_from_json.py msgid "niter" @@ -1422,8 +1313,6 @@ msgid "" "A large crystal of niter, the mineral form of potassium nitrate. It can be " "processed into saltpeter." msgstr "" -" niter Um grande cristal de niter, a forma mineral de nitrato depotássio. " -"Pode ser processado em salitre." #: lang/json/AMMO_from_json.py msgid "aluminum sulfate" @@ -1441,13 +1330,6 @@ msgid "" " it could be used to saturate the soil with aluminum, causing all but the " "most resistant of plants to wither and die." msgstr "" -" Sulfato de alumínio Vários cristais de sulfato de alumínio. Historicamente," -" um agente para purificar a água e como moluscicida, devidoao fato de " -"quedegenera seu lodo. Pouco antes do Cataclismo, seus principaisusos " -"erampara ajustar a acidez do solo e como um aditivo ao fermento em " -"pó.Semisturado com um ácido forte, ele poderia ser usado para saturar o " -"solocomalumínio, fazendo com que todas as plantas, com exceção " -"dasmaisresistentes, murchassem e morressem." #: lang/json/AMMO_from_json.py msgid "acetic acid" @@ -1467,8 +1349,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "formaldehyde" msgid_plural "formaldehyde" -msgstr[0] "formaldeído" -msgstr[1] "formaldeídos" +msgstr[0] "" +msgstr[1] "" #. ~ Description for formaldehyde #: lang/json/AMMO_from_json.py @@ -1478,11 +1360,6 @@ msgid "" "embalming agent. Easily identifiable by its pungent odor. Terribly toxic, " "carcinogenic, and volatile." msgstr "" -" formaldeído O formaldeído, aqui dissolvido em água, foi " -"amplamenteutilizadoantes do Cataclismo como precursor da produção de muitos " -"produtosquímicos emateriais e como agente de embalsamamento. " -"Facilmenteidentificável pelo seuodor pungente. Terrivelmente tóxico, " -"cancerígeno evolátil." #: lang/json/AMMO_from_json.py msgid "thermite" @@ -1498,10 +1375,6 @@ msgid "" "high temperature, was once used for on-the-spot welding. Can be used as an " "incendiary material in a pinch." msgstr "" -" thermiteUm punhado de pó esverdeado-prateado, produzido pela " -"misturadealumínio e óxido de cromo. Esta mistura, queimando a um ritmo " -"constante eauma temperatura extremamente alta, já foi usada para soldagem " -"nolocal. Pode ser usado como um material incendiário em uma pitada." #: lang/json/AMMO_from_json.py msgid "ANFO" @@ -1532,16 +1405,12 @@ msgid "" "produced when it burns will quickly clog any firearm, but it could be used " "to make some vicious bombs." msgstr "" -" Pólvora Preta Um punhado de pólvora negra, feito pela mistura de " -"carvãoeenxofre com salitre. Inútil para a fabricação de cartuchos modernos, " -"poisafuligem produzida quando queima pode rapidamente entupir qualquer " -"armadefogo, mas pode ser usada para fazer algumas bombas perigosas." #: lang/json/AMMO_from_json.py msgid "RDX" msgid_plural "RDX" -msgstr[0] "Explosivo do Departamento de Pesquisa (RDX)" -msgstr[1] "Explosivos do Departamento de Pesquisa (RDX)" +msgstr[0] "" +msgstr[1] "" #. ~ Description for RDX #: lang/json/AMMO_from_json.py @@ -1577,9 +1446,6 @@ msgid "" "A chunk of a zinc powder and sulfur mixture, bound together by superglue, " "that can be used as an impromptu rocket fuel." msgstr "" -" combustível de fogueteUm pedaço de pó de zinco e mistura de enxofre, " -"ligadospor super cola, que pode ser usado como um combustível " -"defogueteimprovisado." #: lang/json/AMMO_from_json.py msgid "detergent" @@ -1601,10 +1467,6 @@ msgid "" " in specifically engineered atomic scale configurations. A nanofabricator " "can assemble them into usable items." msgstr "" -" latas de nanomateriaisDarças de aço que contêm carbono, ferro, titânio, " -"cobre e outros elementos em configurações de escala " -"atômicaespecificamenteprojetadas. Um nanofabricador pode montá-los em " -"itensutilizáveis." #: lang/json/AMMO_from_json.py msgid "wood ash" @@ -1617,8 +1479,6 @@ msgstr[1] "cinzas de madeira" msgid "" "This is almost weightless residue left after the burning of some substance." msgstr "" -" cinza de madeiraEste é um resíduo quase sem peso deixado após a " -"queimadealguma substância." #: lang/json/AMMO_from_json.py msgid "wooden bead" @@ -1813,7 +1673,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "methanol" -msgstr "metanol" +msgstr "" #. ~ Description for methanol #: lang/json/AMMO_from_json.py @@ -1821,8 +1681,6 @@ msgid "" "High purity methanol suitable for use in chemical reactions. Could be used " "in alcohol-burning stoves. Very toxic." msgstr "" -" Metanol de alta pureza adequado para uso em reações químicas. Pode " -"serusadoem fogões de queima de álcool. Muito tóxico." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "diesel" @@ -1835,14 +1693,12 @@ msgstr[1] "diesel" msgid "" "Petroleum-based fuel made from a byproduct of the gasoline making process." msgstr "" -" Combustível à base de petróleo, feito a partir de um subproduto " -"doprocessode fabricação de gasolina." #: lang/json/AMMO_from_json.py msgid "biodiesel" msgid_plural "biodiesel" -msgstr[0] "biodisel" -msgstr[1] "biodiesel" +msgstr[0] "" +msgstr[1] "" #. ~ Description for biodiesel #: lang/json/AMMO_from_json.py @@ -1850,14 +1706,12 @@ msgid "" "Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " "alkyl (methyl, ethyl, or propyl) esters." msgstr "" -"Combustível diesel à base de óleo vegetal ou gordura animal, consistindo em " -"ésteres alquílicos (metil, etil ou propil)." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" msgid_plural "gasoline" -msgstr[0] "gasolina" -msgstr[1] "gasolina" +msgstr[0] "" +msgstr[1] "" #. ~ Description for gasoline #: lang/json/AMMO_from_json.py @@ -1871,15 +1725,13 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "lamp oil" msgid_plural "lamp oil" -msgstr[0] "óleo de lamparina" -msgstr[1] "óleo de lamparina" +msgstr[0] "" +msgstr[1] "" #. ~ Description for lamp oil #: lang/json/AMMO_from_json.py msgid "A thin and clean-burning oil made for use in oil lamps." msgstr "" -" óleo da lâmpadaUm óleo fino e de queima limpa, feito para uso em " -"lâmpadasaóleo." #: lang/json/AMMO_from_json.py msgid "napalm" @@ -1905,23 +1757,21 @@ msgstr "estilhaços" #. ~ Description for shrapnel #: lang/json/AMMO_from_json.py msgid "A twisted shard of jagged metal." -msgstr "Um pedaço de metal irregular." +msgstr "" #: lang/json/AMMO_from_json.py msgid "blunderbuss slug" -msgstr "lesma de bacamarte" +msgstr "" #. ~ Description for blunderbuss slug #: lang/json/AMMO_from_json.py msgid "" "A prepared blunderbuss shot of a large hunk of metal. Better for distance." msgstr "" -" Um tiro de bacamarte preparado de um grande pedaço de metal. Melhor " -"paraadistância." #: lang/json/AMMO_from_json.py msgid "blunderbuss shot" -msgstr "tiro de bacamarte" +msgstr "" #. ~ Description for blunderbuss shot #: lang/json/AMMO_from_json.py @@ -1930,13 +1780,10 @@ msgid "" "whatever is at hand. The homemade pellet spread and number makes up for the" " shoddy quality." msgstr "" -" Um tiro de bacamarte preparado de mármores, pedras, rolamentos, " -"basicamentetudo o que está à mão. O pellet caseiro espalhado e o " -"númerocompensa aqualidade de má qualidade." #: lang/json/AMMO_from_json.py msgid "blunderbuss flechette" -msgstr "bacamarte flechette" +msgstr "" #. ~ Description for blunderbuss flechette #: lang/json/AMMO_from_json.py @@ -1944,12 +1791,10 @@ msgid "" "A prepared blunderbuss shot of homemade flechette made out of nails or " "glass. Shreds armor." msgstr "" -" Um tiro de bacamarte preparado de flechette caseiro feito de unhas ou " -"vidro. Shreds armadura." #: lang/json/AMMO_from_json.py msgid "bootleg fusion pack" -msgstr "pacote de fusão bootleg" +msgstr "" #. ~ Description for bootleg fusion pack #: lang/json/AMMO_from_json.py @@ -1959,10 +1804,6 @@ msgid "" "delivering bolts of superheated gas at near light speed with no recoil. " "This one has been hand-crafted from spare parts." msgstr "" -" Em meados do século XXI, as potências militares começaram a " -"procurararmasbaseadas na energia. O resultado foi o pacote de fusão padrão, " -"capazdefornecer parafusos de gás superaquecido a uma velocidade próxima da " -"luzsemrecuo. Este foi feito a mão a partir de peças de reposição." #: lang/json/AMMO_from_json.py msgid "throwing stick" @@ -1974,8 +1815,6 @@ msgid "" "A stick carved into a shape suitable for throwing at a target. Not a " "boomerang, so don't expect it to return to your hand." msgstr "" -" jogando stickA vara esculpida em uma forma adequada para jogar em umalvo. " -"Não é um bumerangue, então não espere que ele retorne à sua mão." #: lang/json/AMMO_from_json.py msgid "bolas" @@ -1992,7 +1831,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "net" -msgstr "rede" +msgstr "" #. ~ Description for net #: lang/json/AMMO_from_json.py @@ -2000,8 +1839,6 @@ msgid "" "A mesh of string and weights, traditionally used to catch fish, and to " "entangle oponents in combat." msgstr "" -"Uma malha de cordas e pesos, tradicionalmente usada para pegar peixes, e " -"para emaranhar oponentes em combate." #: lang/json/AMMO_from_json.py msgid "anesthetic kit" @@ -2016,10 +1853,6 @@ msgid "" " intended for use in specialized medical equipment, and can't be " "administered manually." msgstr "" -"Um kit para anestesia induzida para cirurgias, com vasilhas especializadas " -"com variedade de poderosos hipnóticos, analgésicos e drogas estimulativas. " -"Feito para ser usado em equipamento médico especializado e não pode ser " -"administrado manualmente." #: lang/json/AMMO_from_json.py msgid "10mm Auto FMJ" @@ -2051,7 +1884,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "20x66mm beanbag" -msgstr "Beanbag de 20x66mm" +msgstr "" #. ~ Description for 20x66mm beanbag #: lang/json/AMMO_from_json.py @@ -2060,13 +1893,10 @@ msgid "" "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." msgstr "" -" 20x66mm espingardas de espingarda sem caixa, tipo de saco de feijão sub- " -"letal. Munição proprietária para espingardas Rivtech. Sendo rodadassemcaixa," -" estas não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm flechette" -msgstr "flechette artesanal de 20x66mm" +msgstr "" #. ~ Description for handmade 20x66mm flechette #: lang/json/AMMO_from_json.py @@ -2074,12 +1904,10 @@ msgid "" "Handcrafted bootleg duplicates of Rivtech 20x66mm caseless flechette rounds." " Being caseless rounds, these cannot be disassembled or reloaded." msgstr "" -" Duplicatas piratas de Rivleech 20x66mm rodadas de flechette sem caixa. " -"Sendorodadas sem caixa, estas não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm buckshot" -msgstr "chumbo grosso 20x66mm feito à mão" +msgstr "" #. ~ Description for handmade 20x66mm buckshot #: lang/json/AMMO_from_json.py @@ -2087,12 +1915,10 @@ msgid "" "Handcrafted bootleg duplicates of Rivtech 20x66mm caseless buckshot rounds." " Being caseless rounds, these cannot be disassembled or reloaded." msgstr "" -" Duplicatas piratas de Rivtech 20x66mm casuais. Sendo rodadas semcaixa, " -"estas não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "handmade 20x66mm slug" -msgstr "slug 20x66mm feito à mão" +msgstr "" #. ~ Description for handmade 20x66mm slug #: lang/json/AMMO_from_json.py @@ -2100,12 +1926,10 @@ msgid "" "Handcrafted bootleg duplicates of Rivtech 20x66mm caseless solid projectile " "rounds. Being caseless rounds, these cannot be disassembled or reloaded." msgstr "" -" Duplicatas piratas de Rivtech 20x66mm rodadas de projéteis sólidos semuso. " -"Sendo rodadas sem caixa, estas não podem ser desmontadas ourecarregadas." #: lang/json/AMMO_from_json.py msgid "20x66mm explosive" -msgstr "Explosivo de 20x66mm" +msgstr "" #. ~ Description for 20x66mm explosive #: lang/json/AMMO_from_json.py @@ -2114,13 +1938,10 @@ msgid "" "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." msgstr "" -" 20x66mm espingardas de espingarda sem caixa, tipo projétilexplosivo. " -"Munição proprietária para espingardas Rivtech. Sendo rodadas semcaixa, estas" -" não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "20x66mm flare" -msgstr "Alargamento de 20x66mm" +msgstr "" #. ~ Description for 20x66mm flare #: lang/json/AMMO_from_json.py @@ -2129,13 +1950,10 @@ msgid "" "for Rivtech shotguns. Being caseless rounds, these cannot be disassembled " "or reloaded." msgstr "" -" 20x66mm espingardas de espingarda sem caixa, sinalização tipo flare. " -"Muniçãoproprietária para espingardas Rivtech. Sendo rodadas sem caixa, estas" -" não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "20x66mm flechette" -msgstr "Flechette de 20x66mm" +msgstr "" #. ~ Description for 20x66mm flechette #: lang/json/AMMO_from_json.py @@ -2144,13 +1962,10 @@ msgid "" " Rivtech shotguns. Being caseless rounds, these cannot be disassembled or " "reloaded." msgstr "" -" 20x66mm espingardas de espingarda sem caixa, tipo flechette. " -"Muniçãoproprietária para espingardas Rivtech. Sendo rodadas sem caixa, estas" -" não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "20x66mm frag" -msgstr "20x66mm perguntar" +msgstr "" #. ~ Description for 20x66mm frag #: lang/json/AMMO_from_json.py @@ -2159,13 +1974,10 @@ msgid "" "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." msgstr "" -" 20x66mm espingardas de espingarda sem caixa, tipo de fragmentaçãoexplosiva." -" Munição proprietária para espingardas Rivtech. Sendo rodadas semcaixa, " -"estas não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "20x66mm incendiary" -msgstr "Incendiário de 20x66mm" +msgstr "" #. ~ Description for 20x66mm incendiary #: lang/json/AMMO_from_json.py @@ -2174,13 +1986,10 @@ msgid "" "for Rivtech shotguns. Being caseless rounds, these cannot be disassembled " "or reloaded." msgstr "" -" 20x66mm espingardas de espingarda sem caixa, tipo incendiário. " -"Muniçãoproprietária para espingardas Rivtech. Sendo rodadas sem caixa, estas" -" não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "20x66mm buckshot" -msgstr "Chumbo grosso de 20x66mm" +msgstr "" #. ~ Description for 20x66mm buckshot #: lang/json/AMMO_from_json.py @@ -2189,13 +1998,10 @@ msgid "" "Rivtech shotguns. Being caseless rounds, these cannot be disassembled or " "reloaded." msgstr "" -" 20x66mm espingardas de espingarda sem caixa, tipo chumbo grosso. " -"Muniçãoproprietária para espingardas Rivtech. Sendo rodadas sem caixa, estas" -" não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "20x66mm slug" -msgstr "Lesma de 20x66mm" +msgstr "" #. ~ Description for 20x66mm slug #: lang/json/AMMO_from_json.py @@ -2204,9 +2010,6 @@ msgid "" "ammunition for Rivtech shotguns. Being caseless rounds, these cannot be " "disassembled or reloaded." msgstr "" -" 20x66mm espingardas de espingarda, tipo projétil sólido. " -"Muniçãoproprietária para espingardas Rivtech. Sendo rodadas sem caixa, estas" -" não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid ".22 CB" @@ -2219,10 +2022,6 @@ msgid "" "using a primer instead of gunpowder. The end result is a subsonic round " "that is so weak as to be nearly useless given your predicament." msgstr "" -" A bola cônica .22 é uma variedade de munição .22 que impulsiona " -"suabalausando um primer em vez de pólvora. O resultado final é " -"umarodadasubsônica que é tão fraca a ponto de ser quase inútil, dada a " -"suasituação." #: lang/json/AMMO_from_json.py msgid ".22 FMJ" @@ -2235,10 +2034,6 @@ msgid "" "extremely weak with very low stopping power, short range, and negligible " "recoil. It is most useful for rifle training, and hunting small animals." msgstr "" -" .22 Munição Long Rifle com 30gr de balas FMJ. A ronda de 22LR " -"éextremamentefraca, com muito baixo poder de travagem, curto alcance " -"erecuoinsignificante. É mais útil para o treinamento de rifles e caça " -"depequenosanimais." #: lang/json/AMMO_from_json.py msgid ".22 LR" @@ -2251,14 +2046,10 @@ msgid "" "extremely weak with very low stopping power, short range, and negligible " "recoil. It is most useful for rifle training, and hunting small animals." msgstr "" -" .22 Munição Long Rifle com 40gr de balas não-lacadas. A ronda de " -"22LRéextremamente fraca, com muito baixo poder de travagem, curto " -"alcanceerecuo insignificante. É mais útil para o treinamento de rifles e " -"caçadepequenos animais." #: lang/json/AMMO_from_json.py msgid ".22 rat-shot" -msgstr "0,22 tiro de rato" +msgstr "" #. ~ Description for .22 rat-shot #: lang/json/AMMO_from_json.py @@ -2267,18 +2058,14 @@ msgid "" "within a fragmenting plastic capsule. It has an extremely short range and " "penetration ability, but it can hit targets with greater ease." msgstr "" -" Um cartucho de calibre .22 carregado com pequenos pedaços " -"degranalhacontidos dentro de uma cápsula de plástico fragmentada. Tem " -"umalcanceextremamente curto e capacidade de penetração, mas pode " -"atingiralvos commaior facilidade." #: lang/json/AMMO_from_json.py msgid "handloaded .22 LR" -msgstr "handloaded .22 LR" +msgstr "" #: lang/json/AMMO_from_json.py msgid "handloaded .22 FMJ" -msgstr "handloaded .22 FMJ" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".223 Remington" @@ -2292,14 +2079,10 @@ msgid "" "wide variety of weapons. It generates lower pressure than 5.56 NATO leading" " to slightly decreased accuracy and recoil." msgstr "" -" .223 Munição Remington com 36gr de balas JHP. A rodada de 223 tem " -"sidomuitopopular entre os atiradores civis há quase um século, encontrando " -"usoem umagrande variedade de armas. Gera uma pressão mais baixa que a " -"5.56OTAN,levando a uma diminuição da precisão e recuo." #: lang/json/AMMO_from_json.py msgid "5.56 NATO M855A1" -msgstr "5,56 NATO M855A1" +msgstr "" #. ~ Description for 5.56 NATO M855A1 #: lang/json/AMMO_from_json.py @@ -2309,14 +2092,10 @@ msgid "" "use in the 20th century and it remains popular among militaries and " "civilians." msgstr "" -" Munição de 5.56x45mm com uma bala FMJ de 62gr contendo um penetrador deaço." -" Seu peso leve, alta precisão e capacidade de manobra levam " -"aousogeneralizado no século 20 e continuam populares entre militares e " -"civis." #: lang/json/AMMO_from_json.py msgid "5.56 NATO tracer" -msgstr "5.56 Marcador da OTAN" +msgstr "" #. ~ Description for 5.56 NATO tracer #: lang/json/AMMO_from_json.py @@ -2324,21 +2103,18 @@ msgid "" "This ammunition is a one-in-five mix of M855A1 and M856 tracer rounds to " "help keep the weapon they are fired from on target." msgstr "" -" Esta munição é uma combinação de uma em cinco das rodadas de " -"traçadorM855A1e M856 para ajudar a manter a arma em que são disparados no " -"alvo." #: lang/json/AMMO_from_json.py msgid "reloaded .223 Remington" -msgstr "recarregado .223 Remington" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 5.56 NATO" -msgstr "recarregado 5,56 NATO" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 5.56 NATO tracer" -msgstr "recarregado 5.56 rastreador da NATO" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".270 Winchester JSP" @@ -2359,7 +2135,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".300 Winchester Magnum" -msgstr ".300 Winchester Magnum" +msgstr "" #. ~ Description for .300 Winchester Magnum #: lang/json/AMMO_from_json.py @@ -2369,14 +2145,10 @@ msgid "" "proven popular with hunters and snipers, although it is not as common as " ".308 or .30-06." msgstr "" -" .300 Winchester Magnum arredonda com balas JHP de 220gr. A rodada de " -"300WMéuma ronda de rifle extremamente poderosa e precisa introduzida em " -"1963.Elaprovou ser popular entre caçadores e franco-atiradores, embora não " -"sejatãocomum quanto .308 ou .30-06." #: lang/json/AMMO_from_json.py msgid "reloaded .300 Winchester Magnum" -msgstr "recarregado .300 Winchester Magnum" +msgstr "" #. ~ Description for reloaded .300 Winchester Magnum #: lang/json/AMMO_from_json.py @@ -2385,14 +2157,10 @@ msgid "" "many shooting disciplines. The cartridge has found use by hunters, military" " units, and law enforcement departments. This one has been hand-reloaded." msgstr "" -" O .300 Winchester Magnum é extremamente versátil e foi adotado " -"pormuitasdisciplinas de tiro. O cartucho foi usado por caçadores, " -"unidadesmilitarese departamentos de aplicação da lei. Este foi " -"recarregadomanualmente." #: lang/json/AMMO_from_json.py msgid ".30-06 Springfield" -msgstr "30-06 Springfield" +msgstr "" #. ~ Description for .30-06 Springfield #: lang/json/AMMO_from_json.py @@ -2401,13 +2169,10 @@ msgid "" "cartridge has excellent accuracy, range, and stopping power making it " "popular with hunters and snipers for well over a century." msgstr "" -" 30-06 Springfield rodadas com balas de 165gr de ponta macia. " -"Ocartucho.30-06 tem excelente precisão, alcance e poder de parada, tornando-" -"opopular entre caçadores e franco-atiradores por mais de um século." #: lang/json/AMMO_from_json.py msgid ".30-06 M14A1 tracer" -msgstr "30-06 M14A1 marcador" +msgstr "" #. ~ Description for .30-06 M14A1 tracer #: lang/json/AMMO_from_json.py @@ -2416,14 +2181,10 @@ msgid "" "to help keep the weapon they are fired from on target. It penetrates all " "but the strongest body armor with ease." msgstr "" -" Armadura perfurante incendiária .30-06 Munição M14A1 contendo " -"marcadoresdetraçador para ajudar a manter a arma de onde são disparados no " -"alvo. Elepenetra com toda a facilidade, exceto a armadura corporal mais " -"forte." #: lang/json/AMMO_from_json.py msgid ".30-06 M2 AP" -msgstr "30-06 M2 AP" +msgstr "" #. ~ Description for .30-06 M2 AP #: lang/json/AMMO_from_json.py @@ -2432,21 +2193,18 @@ msgid "" "extremely powerful and accurate cartridge but pays for its armor penetration" " abilities with lowered damage." msgstr "" -" Perfuração de armadura .30-06 Munição M2 com balas FMJ de 168gr. " -"Éumcartucho extremamente poderoso e preciso, mas paga suas " -"habilidadesdepenetração de blindagem com danos reduzidos." #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 Springfield" -msgstr "recarregado .30-06 Springfield" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 incendiary" -msgstr "recarregado .30-06 incendiário" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .30-06 M2 AP" -msgstr "recarregado .30-06 M2 AP" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".308 Winchester" @@ -2459,13 +2217,10 @@ msgid "" "is one of the most popular hunting cartridges in the world due to its " "accuracy and power." msgstr "" -" 0,308 munição Winchester com 168gr balas de ponto oco. O round 308 é " -"umdoscartuchos de caça mais populares do mundo devido à sua precisão " -"epotência." #: lang/json/AMMO_from_json.py msgid "7.62x51mm M80" -msgstr "7,62x51mm M80" +msgstr "" #. ~ Description for 7.62x51mm M80 #: lang/json/AMMO_from_json.py @@ -2474,13 +2229,10 @@ msgid "" "cartridge commonly used by hunters and military snipers because of its high " "accuracy and long range." msgstr "" -" Um round da OTAN de 7.62x51mm com uma bala FMJ de 147gr. É um " -"cartuchoderifle poderoso comumente usado por caçadores e atiradores " -"militaresporcausa de sua alta precisão e longo alcance." #: lang/json/AMMO_from_json.py msgid "7.62x51mm NATO tracer" -msgstr "Rastreador NATO 7.62x51mm" +msgstr "" #. ~ Description for 7.62x51mm NATO tracer #: lang/json/AMMO_from_json.py @@ -2488,24 +2240,22 @@ msgid "" "This ammunition is a one-in-five mix of M80 and M62 tracer rounds to help " "keep the weapon they are fired from on target." msgstr "" -" Esta munição é uma mistura de um em cinco de rodadas de traçadores M80 " -"eM62para ajudar a manter a arma em que são disparados no alvo." #: lang/json/AMMO_from_json.py msgid "reloaded .308 Winchester" -msgstr "recarregado .308 Winchester" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x51mm" -msgstr "recarregado 7.62x51mm" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x51mm incendiary" -msgstr "recarregado 7.62x51mm incendiário" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".32 ACP" -msgstr ".32 ACP" +msgstr "" #. ~ Description for .32 ACP #: lang/json/AMMO_from_json.py @@ -2513,12 +2263,10 @@ msgid "" "The .32 ACP was a popular handgun cartridge in the 20th century. Not so " "powerful as the .38 or the 9x19mm though." msgstr "" -" O ACP .32 era um cartucho de arma popular no século XX. Não tão poderoso " -"quanto o .38 ou o 9x19mm." #: lang/json/AMMO_from_json.py msgid "reloaded .32 ACP" -msgstr "recarregado .32 ACP" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".357 magnum FMJ" @@ -2558,7 +2306,7 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid ".357 SIG FMJ" -msgstr "357 SIG FMJ" +msgstr "" #. ~ Description for .357 SIG FMJ #: lang/json/AMMO_from_json.py @@ -2566,13 +2314,10 @@ msgid "" "Jacketed .357 SIG ammunition. The .357 SIG round is a high velocity pistol " "cartridge, giving it a flatter trajectory than many handgun rounds." msgstr "" -" Munições revestidas de .357 SIG. O SIG redondo 357 é um cartucho " -"depistolade alta velocidade, proporcionando uma trajetória mais plana do " -"quemuitasrodadas de revólver." #: lang/json/AMMO_from_json.py msgid ".357 SIG JHP" -msgstr ", 357 DIZER JHP" +msgstr "" #. ~ Description for .357 SIG JHP #: lang/json/AMMO_from_json.py @@ -2581,21 +2326,18 @@ msgid "" "velocity pistol cartridge, giving it a flatter trajectory than many handgun " "rounds." msgstr "" -" Ponto oco revestido 357 munições SIG. O SIG redondo 357 é um " -"cartuchodepistola de alta velocidade, proporcionando uma trajetória mais " -"plana doquemuitas rodadas de revólver." #: lang/json/AMMO_from_json.py msgid "reloaded .357 SIG FMJ" -msgstr "recarregado .357 SIG FMJ" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .357 SIG JHP" -msgstr "recarregado .357 SIG JHP" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".36 paper cartridge" -msgstr ".36 cartucho de papel" +msgstr "" #. ~ Description for .36 paper cartridge #: lang/json/AMMO_from_json.py @@ -2603,8 +2345,6 @@ msgid "" "A paper cartridge containing a premeasured amount of black powder and a .36 " "projectile. Used by the Colt M1861 Navy." msgstr "" -" Um cartucho de papel contendo uma quantidade pré-medida de pó preto " -"eumprojétil .36. Usado pela Marinha Colt M1861." #: lang/json/AMMO_from_json.py msgid ".38 FMJ" @@ -2616,8 +2356,6 @@ msgid "" ".38 Special ammunition with brass jacketed 130gr bullets. The .38 Special " "round has been known from its inception for its accuracy and low recoil." msgstr "" -" 38 Munição especial com balas de latão com capuz 130gr. A rodadaespecial.38" -" é conhecida desde o início por sua precisão e baixorecolhimento." #: lang/json/AMMO_from_json.py msgid ".38 Special" @@ -2629,8 +2367,6 @@ msgid "" ".38 Special ammunition with 130gr FMJ bullets. The .38 Special round was " "extremely common among US police forces during the 20th century." msgstr "" -" .38 Especial.38 Munição especial com balas FMJ de 130gr. A RodadaEspecial38" -" foi extremamente comum entre as forças policiais dos EUA duranteoséculo XX." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid ".38 Super" @@ -2642,12 +2378,10 @@ msgid "" ".38 Super ammunition with 90gr JHP bullets. Designed in 1929, the .38 super" " cartridge was designed to penetrate body armor and vehicles." msgstr "" -" 38 Super.38 Super munição com 90gr balas JHP. Projetado em 1929, " -"osupercartucho 38 foi projetado para penetrar em armaduras e veículos." #: lang/json/AMMO_from_json.py msgid "reloaded .38 FMJ" -msgstr "recarregado .38 FMJ" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .38 Special" @@ -2747,10 +2481,6 @@ msgid "" " cartridge's power with lower recoil, the .40 S&W round became popular for " "law enforcement and personal defense." msgstr "" -" .40 S & W FMJ.40 Munição S & W com balas FMJ de 180gr. " -"Projetadopara reter a potência do cartucho Auto de 10mm com " -"menorrecolhimento, arodada de .40 S & W tornou-se popular para aplicação" -" dalei e defesapessoal." #: lang/json/AMMO_from_json.py msgid ".40 S&W JHP" @@ -2763,17 +2493,14 @@ msgid "" " from the 10mm Auto cartridge and maintains most of its predecessor's " "strengths while reducing recoil." msgstr "" -" .40 Munição S & W com balas JHP de 135gr. O round de .40 S & W " -"éumdescendente do cartucho Auto de 10mm e mantém a maior parte das " -"forçasdoseu predecessor enquanto reduz o recuo." #: lang/json/AMMO_from_json.py msgid "reloaded .40 S&W FMJ" -msgstr "recarregado 10mm Autoreloaded .40 S & W FMJ" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .40 S&W JHP" -msgstr "recarregado .40 S & W JHP" +msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "40mm grenade" @@ -2781,7 +2508,7 @@ msgstr "granada 40mm" #: lang/json/AMMO_from_json.py msgid "40mm beanbag" -msgstr "Beanbag de 40mm" +msgstr "" #. ~ Description for 40mm beanbag #: lang/json/AMMO_from_json.py @@ -2801,7 +2528,7 @@ msgstr "Uma granada de 40 milímetros com uma carga de explosão de concussão." #: lang/json/AMMO_from_json.py msgid "40mm flare" -msgstr "Alargamento de 40mm" +msgstr "" #. ~ Description for 40mm flare #: lang/json/AMMO_from_json.py @@ -2814,7 +2541,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "40mm flashbang" -msgstr "Flashbang de 40mm" +msgstr "" #. ~ Description for 40mm flashbang #: lang/json/AMMO_from_json.py @@ -2828,7 +2555,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "40mm flechette" -msgstr "Flechette de 40mm" +msgstr "" #. ~ Description for 40mm flechette #: lang/json/AMMO_from_json.py @@ -2865,7 +2592,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "40mm buckshot" -msgstr "Chumbo de 40 mm" +msgstr "" #. ~ Description for 40mm buckshot #: lang/json/AMMO_from_json.py @@ -2881,7 +2608,7 @@ msgstr "40mm fumacenta" #. ~ Description for 40mm smoke cover #: lang/json/AMMO_from_json.py msgid "A 40mm grenade designed to provide smoke cover." -msgstr "Uma granada de 40 mm projetada para fornecer cobertura de fumaça." +msgstr "" #: lang/json/AMMO_from_json.py msgid "40mm teargas" @@ -2924,7 +2651,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" -msgstr ".44 Magnum FMJ" +msgstr "" #. ~ Description for .44 Magnum FMJ #: lang/json/AMMO_from_json.py @@ -2946,17 +2673,14 @@ msgid "" "of the most powerful handgun cartridges available. It has excellent " "stopping power but suffers from extremely high recoil for a handgun round." msgstr "" -" Munição de magnum de .44 com balas de 240gr JHP. A rodada de magnum de0,44é" -" um dos mais poderosos cartuchos de armas disponíveis. Tem excelente poder " -"de parada, mas sofre de recuo extremamente alto para uma rodadaderevólver." #: lang/json/AMMO_from_json.py msgid "reloaded .44 Magnum FMJ" -msgstr "recarregado .44 Magnum FMJ" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .44 Magnum" -msgstr "recarregado .44 Magnum" +msgstr "" #: lang/json/AMMO_from_json.py msgid "blackpowder .44 Magnum" @@ -2971,7 +2695,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" -msgstr ".44 cartucho de papel" +msgstr "" #. ~ Description for .44 paper cartridge #: lang/json/AMMO_from_json.py @@ -2979,12 +2703,10 @@ msgid "" "A paper cartridge containing a premeasured amount of black powder and a .44 " "projectile. Used by the Colt M1860 Army." msgstr "" -" Um cartucho de papel contendo uma quantidade pré-medida de pó preto " -"eumprojétil de 0,44. Usado pelo Exército Colt M1860." #: lang/json/AMMO_from_json.py msgid ".45 ACP FMJ" -msgstr ".45 ACP FMJ" +msgstr "" #. ~ Description for .45 ACP FMJ #: lang/json/AMMO_from_json.py @@ -2992,12 +2714,10 @@ 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 munição ACP com balas FMJ de 230gr. Reconhecida por seu poder deparada," -" a rodada ACP .45 é comum há quase 150 anos." #: lang/json/AMMO_from_json.py msgid ".45 ACP JHP" -msgstr ".45 ACP JHP" +msgstr "" #. ~ Description for .45 ACP JHP #: lang/json/AMMO_from_json.py @@ -3006,13 +2726,10 @@ msgid "" "to replace the .38 Long Colt cartridge in the early 20th century. It has " "good stopping power but above average recoil." msgstr "" -" Munições .45 ACP com balas JHP de 185gr. A rodada de 0,45 " -"ACPfoidesenvolvida para substituir o cartucho Long Colt .38 no início " -"doséculoXX. Tem bom poder de parada mas recuo acima da média." #: lang/json/AMMO_from_json.py msgid ".45 ACP +P" -msgstr ".45 ACP + P" +msgstr "" #. ~ Description for .45 ACP +P #: lang/json/AMMO_from_json.py @@ -3021,21 +2738,18 @@ msgid "" "has higher muzzle energy than typical loads leading to greater damage, " "accuracy and recoil." msgstr "" -" Sobrepressão .45 munição ACP com 200gr balas JHP. Esta munição + P " -"temmaiorenergia de focinho do que cargas típicas, levando a maior dano, " -"precisão erecuo." #: lang/json/AMMO_from_json.py msgid "reloaded .45 FMJ" -msgstr "recarregado .45 FMJ" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .45 ACP JHP" -msgstr "recarregado .45 ACP JHP" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .45 ACP +P" -msgstr "recarregado .45 ACP + P" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".454 Casull" @@ -3050,15 +2764,10 @@ msgid "" "many rifle rounds, although it suffers from extreme recoil making it " "unsuitable for most purposes." msgstr "" -" Munição Casull, 454 com 300gr balas de ponta macia encamisadas. " -"ORoundCasull .454 é derivado de Long Colt, 45, com um case mais longo " -"ealongado.É um cartucho excepcionalmente poderoso com maior poder de " -"paradado quemuitos cartuchos de rifle, embora sofra de recuo extremo, " -"tornando-oinadequado para a maioria dos propósitos." #: lang/json/AMMO_from_json.py msgid "reloaded .454 Casull" -msgstr "recarregado .454 Casull" +msgstr "" #: lang/json/AMMO_from_json.py msgid "blackpowder .454 Casull" @@ -3186,18 +2895,14 @@ msgid "" "round was developed by H&K to compete with FN Herstal's 5.7x28mm cartridge." " It has low recoil and excellent armor penetration." msgstr "" -" Munição de 4.6x30mm com balas de aço revestidas com cobre de 31gr. " -"Arodadade 4.6x30mm foi desenvolvida pela H & K para competir com " -"ocartucho5.7x28mm da FN Herstal. Tem baixo recuo e excelente " -"penetraçãodeblindagem." #: lang/json/AMMO_from_json.py msgid "reloaded 4.6x30mm" -msgstr "recarregado 4.6x30mm" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".460 Rowland HCFN" -msgstr "0,460 Rowland HCFN" +msgstr "" #. ~ Description for .460 Rowland HCFN #: lang/json/AMMO_from_json.py @@ -3205,13 +2910,10 @@ msgid "" "A plated, hard cast flat nosed variant of the .460 Rowland round. This " "increases penetration slightly at the cost of reduced damage from expansion." msgstr "" -" Uma variante de bico chato, de gola achatada, do round Rowing " -".460.Issoaumenta a penetração levemente ao custo de dano reduzido pela " -"expansão." #: lang/json/AMMO_from_json.py msgid ".460 Rowland" -msgstr "0,460 Rowland" +msgstr "" #. ~ Description for .460 Rowland #: lang/json/AMMO_from_json.py @@ -3222,15 +2924,10 @@ msgid "" " dimensionally identical to .45ACP, save for having a longer case and deeper" " seated bullets to prevent ammunition mix-ups." msgstr "" -" Munição Rowland com 185gr balas JHP. O Round Rowing de 460 foiprojetadopara" -" imitar o magnum de 0,44 em pistolas comuns de carregamentoautomático. Como " -"o .44, .460 Rowland tem um poder excepcional - e recuo. " -"Équasedimensionalmente idêntico a .45ACP, exceto por ter um caso mais " -"longoebalas sentadas mais profundas para evitar confusões de munição." #: lang/json/AMMO_from_json.py msgid "reloaded .460 Rowland FMJ" -msgstr "recarregado .460 Rowland FMJ" +msgstr "" #. ~ Description for reloaded .460 Rowland FMJ #: lang/json/AMMO_from_json.py @@ -3238,16 +2935,14 @@ msgid "" "A brass-jacketed variant of the .460 Rowland round. This increases " "penetration slightly at the cost of reduced damage from expansion." msgstr "" -" Uma variante de jaqueta de latão da rodada de 0,460 Rowland. Isso " -"aumentaapenetração levemente ao custo de dano reduzido pela expansão." #: lang/json/AMMO_from_json.py msgid "reloaded .460 Rowland" -msgstr "recarregado .460 Rowland" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".50 BMG tracer" -msgstr "0,5 tracer BMG" +msgstr "" #. ~ Description for .50 BMG tracer #: lang/json/AMMO_from_json.py @@ -3256,13 +2951,10 @@ msgid "" "help keep the weapon they are fired from on target at the risk of igniting " "flammable substances." msgstr "" -" Uma variante do rastreador do poderoso .50 BMG sniper round. " -"Tracerarredonda-se para ajudar a manter a arma em que são disparados noalvo," -" sobrisco de inflamar substâncias inflamáveis." #: lang/json/AMMO_from_json.py msgid ".50 BMG Ball" -msgstr "0,50 bola BMG" +msgstr "" #. ~ Description for .50 BMG Ball #: lang/json/AMMO_from_json.py @@ -3271,10 +2963,6 @@ msgid "" " stupendous accuracy and armor piercing capabilities make it one of the most" " deadly rounds available, offset only by its drastic recoil and noise." msgstr "" -" O 0,50 BMG é um rifle muito poderoso projetado para uso em longoalcance. " -"Sua estupenda precisão e capacidade de perfuração de blindagemfazem deleum " -"dos rounds mais mortíferos disponíveis, compensados apenas porseu recuoe " -"ruído drásticos." #: lang/json/AMMO_from_json.py msgid ".50 BMG AP" @@ -3286,13 +2974,10 @@ msgid "" "Variant of the .50 BMG round that uses a core of very dense, hardened " "tungsten steel. Penetration is increased, but damage is reduced." msgstr "" -" .50 BMG APVariante da ronda de 0,50 BMG que utiliza um núcleo de " -"açodetungsténio muito denso e endurecido. A penetração é aumentada, mas o " -"danoéreduzido." #: lang/json/AMMO_from_json.py msgid "reloaded .50 BMG tracer" -msgstr "recarregado .50 BMG tracer" +msgstr "" #. ~ Description for reloaded .50 BMG tracer #: lang/json/AMMO_from_json.py @@ -3301,14 +2986,10 @@ msgid "" "help keep the weapon they are fired from on target at the risk of igniting " "flammable substances. This one has been hand-reloaded." msgstr "" -" Uma variante do rastreador do poderoso .50 BMG sniper round. " -"Tracerarredonda-se para ajudar a manter a arma em que são disparados noalvo," -" sobrisco de inflamar substâncias inflamáveis. Este " -"foirecarregadomanualmente." #: lang/json/AMMO_from_json.py msgid "reloaded .50 BMG Ball" -msgstr "bola recarregada .50 BMG" +msgstr "" #. ~ Description for reloaded .50 BMG Ball #: lang/json/AMMO_from_json.py @@ -3318,14 +2999,10 @@ msgid "" " deadly rounds available, offset only by its drastic recoil and noise. This" " one has been hand-reloaded." msgstr "" -" O 0,50 BMG é um rifle muito poderoso projetado para uso em longoalcance. " -"Sua estupenda precisão e capacidade de perfuração de blindagemfazem deleum " -"dos rounds mais mortíferos disponíveis, compensados apenas porseu recuoe " -"ruído drásticos. Este foi recarregado manualmente." #: lang/json/AMMO_from_json.py msgid "reloaded .50 BMG AP" -msgstr "recarregado .50 BMG AP" +msgstr "" #. ~ Description for reloaded .50 BMG AP #: lang/json/AMMO_from_json.py @@ -3334,9 +3011,6 @@ msgid "" "tungsten steel. Penetration is increased, but damage is reduced. This one " "has been hand-reloaded." msgstr "" -" Variante do round de 0,50 BMG que usa um núcleo de aço " -"detungstênioendurecido, muito denso. A penetração é aumentada, mas o dano " -"éreduzido. Este foi recarregado manualmente." #: lang/json/AMMO_from_json.py msgid ".500 S&W Magnum" @@ -3349,14 +3023,10 @@ msgid "" " a colossally powerful handgun cartridge capable of killing almost any " "target with one hit. It has extremely high damage and recoil to match." msgstr "" -" .500 Munição S & W Magnum com balas de 500gr. A rodada de 500 S " -"&WMagnum é um cartucho de arma colossalmente poderoso capaz de " -"matarquasequalquer alvo com apenas um golpe. Tem danos extremamente altos " -"erecuopara corresponder." #: lang/json/AMMO_from_json.py msgid "reloaded .500 S&W Magnum" -msgstr "recarregado .500 S & W Magnum" +msgstr "" #: lang/json/AMMO_from_json.py msgid "5.45x39mm 7N10" @@ -3390,7 +3060,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 5.45x39mm" -msgstr "recarregado 5.45x39mm" +msgstr "" #. ~ Description for reloaded 5.45x39mm #: lang/json/AMMO_from_json.py @@ -3399,13 +3069,10 @@ msgid "" "designers were inspired by the 5.56x45mm NATO cartridge. This one has been " "hand-reloaded." msgstr "" -" O 5.45x39mm foi a munição padrão para a série AK de 1974. " -"Seusprojetistasforam inspirados no cartucho NATO 5.56x45mm. Este " -"foirecarregadomanualmente." #: lang/json/AMMO_from_json.py msgid "reloaded 5.45x39mm AP" -msgstr "recarregado 5.45x39mm AP" +msgstr "" #. ~ Description for reloaded 5.45x39mm AP #: lang/json/AMMO_from_json.py @@ -3413,13 +3080,10 @@ msgid "" "Armor piercing 5.45x39mm ammunition with hand-reloaded bullets containing a " "steel penetrator. Developed in 1998 by the Russian military." msgstr "" -" Armadura perfurando munição de 5.45x39mm com balas recarregadas " -"àmãocontendo um penetrador de aço. Desenvolvido em 1998 pelos " -"militaresrussos." #: lang/json/AMMO_from_json.py msgid "5.7x28mm SS190" -msgstr "SS190 de 5,7x28 mm" +msgstr "" #. ~ Description for 5.7x28mm SS190 #: lang/json/AMMO_from_json.py @@ -3431,20 +3095,14 @@ msgid "" "reliable. It has very low recoil and its armor penetration is a defining " "feature." msgstr "" -" Munição de 5,7x28mm com 31gr balas AP FMJ. O cartucho de " -"5.7x28mmfoiprojetado pela FN Herstal para substituir a ronda de 9x19mm no " -"uso daOTAN. Embora o projeto para substituir 9x19mm Parabellum tenha " -"sidoefetivamentecancelado, a rodada de 5,7x28mm viu ação em muitos conflitos" -" eprovou serconfiável. Tem muito baixo recuo e sua penetração de armadura " -"éumacaracterística definidora." #: lang/json/AMMO_from_json.py msgid "reloaded 5.7x28mm" -msgstr "recarregado 5.7x28mm" +msgstr "" #: lang/json/AMMO_from_json.py msgid "RA110 5x50mm flechette" -msgstr "Flechette RA110 5x50mm" +msgstr "" #. ~ Description for RA110 5x50mm flechette #: lang/json/AMMO_from_json.py @@ -3452,13 +3110,10 @@ msgid "" "Designed to defeat modern body armor, the Rivtech 5x50mm flechette round " "features a biodegradable sabot and a single, fin-stabilized penetrator." msgstr "" -" Projetado para derrotar a moderna armadura corporal, a rivetech " -"5x50mmdaRivtech possui um sabot biodegradável e um único " -"penetradorestabilizadopor aleta." #: lang/json/AMMO_from_json.py msgid "RA119 5x50mm penetrator" -msgstr "Penetrador RA119 5x50mm" +msgstr "" #. ~ Description for RA119 5x50mm penetrator #: lang/json/AMMO_from_json.py @@ -3467,13 +3122,10 @@ msgid "" "round features a biodegradable sabot and a single, fin-stabilized tungsten " "alloy projectile." msgstr "" -" Projetado para derrotar a moderna armadura corporal, o " -"penetradorRivtech5x50mm RA119 possui um sabot biodegradável e um único " -"projétil deliga detungstênio estabilizado por aleta." #: lang/json/AMMO_from_json.py msgid "reloaded 5x50mm flechette" -msgstr "recarregado 5x50mm flechette" +msgstr "" #. ~ Description for reloaded 5x50mm flechette #: lang/json/AMMO_from_json.py @@ -3482,13 +3134,10 @@ msgid "" "features a biodegradable sabot and a single, fin-stabilized penetrator. " "This one has been hand-reloaded." msgstr "" -" Projetado para derrotar a moderna armadura corporal, a rivetech " -"5x50mmdaRivtech possui um sabot biodegradável e um único " -"penetradorestabilizadopor aleta. Este foi recarregado manualmente." #: lang/json/AMMO_from_json.py msgid ".700 NX" -msgstr ".700 NX" +msgstr "" #. ~ Description for .700 NX #: lang/json/AMMO_from_json.py @@ -3498,18 +3147,14 @@ msgid "" "one of the most deadly rounds available, offset only by its drastic recoil " "and noise." msgstr "" -" O .700 Nitro Express é um rifle muito poderoso projetado para uso " -"emlongoalcance. Sua estupenda precisão e capacidade de perfuração " -"deblindagemfazem dele um dos rounds mais mortíferos disponíveis, " -"compensadosapenaspor seu recuo e ruído drásticos." #: lang/json/AMMO_from_json.py msgid "reloaded .700 NX" -msgstr "recarregado .700 NX" +msgstr "" #: lang/json/AMMO_from_json.py msgid "7.62x39mm 57-N-231" -msgstr "7,62 x 39 mm 57-N-231" +msgstr "" #. ~ Description for 7.62x39mm 57-N-231 #: lang/json/AMMO_from_json.py @@ -3519,11 +3164,6 @@ msgid "" "extremely popular all over the world. The bullet has poor wounding " "potential due to its stability, only beginning to yaw after 26cm." msgstr "" -" Munição de 7.62x39mm 57-N-231 com balas FMJ de núcleo de aço de121.9gr. " -"Desenvolvido na Segunda Guerra Mundial pela União Soviética, arodada " -"de7,62x39mm rapidamente se tornou extremamente popular em todo omundo. Abala" -" tem baixo potencial de ferimento devido a sua estabilidade, apenascomeçando" -" a guinar após 26cm." #: lang/json/AMMO_from_json.py msgid "7.62x39mm M67" @@ -3537,14 +3177,10 @@ msgid "" "the 1960s. It destabilizes much faster than M43 after hitting a target " "leading to greater damage." msgstr "" -" 7,62 x 39 mm M67 com balas de 123gr. A balística terminal " -"inadequadadarodada M43 levou ao desenvolvimento da rodada M67 na Iugoslávia " -"nadécadade 1960. Desestabiliza muito mais rápido que M43 depois de acertar " -"umalvolevando a maiores danos." #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x39mm M43" -msgstr "recarregado 7.62x39mm M43" +msgstr "" #. ~ Description for reloaded 7.62x39mm M43 #: lang/json/AMMO_from_json.py @@ -3554,19 +3190,14 @@ msgid "" "world. The bullet has poor wounding potential due to its stability, only " "beginning to yaw after 26cm." msgstr "" -" Munição 7.62x39mm com balas 121.9gr. Desenvolvido na Segunda " -"GuerraMundialpela União Soviética, a rodada de 7,62x39mm rapidamente " -"setornouextremamente popular em todo o mundo. A bala tem baixo " -"potencialdeferimento devido a sua estabilidade, apenas começando a guinar " -"após 26cm." #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x39mm M67" -msgstr "recarregado 7.62x39mm M67" +msgstr "" #: lang/json/AMMO_from_json.py msgid "7.62x54mmR" -msgstr "7,62x54mmR" +msgstr "" #. ~ Description for 7.62x54mmR #: lang/json/AMMO_from_json.py @@ -3577,19 +3208,14 @@ msgid "" " decades it remains popular with civilians. It is a powerful cartridge " "capable of killing most targets with one shot." msgstr "" -" Munição 7.62x54mmR com balas FMJ de 150gr. O round 7.62x54mmR é um " -"dosmaisantigos ainda em uso comum, principalmente devido à popularidade " -"dorifleMosin-Nagant. Embora não tenha sido usado por militares há " -"váriasdécadas, continua sendo popular entre os civis. É um cartucho poderoso" -" capazdematar a maioria dos alvos com um único tiro." #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x54mmR" -msgstr "recarregado 7.62x54mmR" +msgstr "" #: lang/json/AMMO_from_json.py msgid "7.62x25mm JHP" -msgstr "7,62 x 25 mm JHP" +msgstr "" #. ~ Description for 7.62x25mm JHP #: lang/json/AMMO_from_json.py @@ -3598,13 +3224,10 @@ msgid "" " of Soviet Russia. It was derived from the 7.63x25mm cartridge used by the " "C96 pistol." msgstr "" -" Uma versão comercial do cartucho 7.62x25mm criado para as forças " -"armadasdaRússia Soviética. Foi derivado do cartucho 7.63x25mm usado " -"pelapistolaC96." #: lang/json/AMMO_from_json.py msgid "7.62x25mm FMJ hot load" -msgstr "Carga quente de 7.62x25mm FMJ" +msgstr "" #. ~ Description for 7.62x25mm FMJ hot load #: lang/json/AMMO_from_json.py @@ -3612,12 +3235,10 @@ msgid "" "A high-pressure commercial version of the 7.62x25mm cartridge, loaded with a" " 85 gr. FMJ bullet. It is more powerful than the original." msgstr "" -" Uma versão comercial de alta pressão do cartucho de 7.62x25mm, " -"carregadacom85 gr. Bala FMJ. É mais poderoso que o original." #: lang/json/AMMO_from_json.py msgid "7.62x25mm Type P" -msgstr "7,62 x 25 mm tipo P" +msgstr "" #. ~ Description for 7.62x25mm Type P #: lang/json/AMMO_from_json.py @@ -3626,17 +3247,14 @@ msgid "" "firearms. It offers good armor penetration at the cost of slightly less " "damage." msgstr "" -" Um cartucho subsônico derivado de 7.62x25mm, projetado para armas " -"defogosilenciadas. Oferece boa penetração de blindagem ao custo de um " -"poucomenosde dano." #: lang/json/AMMO_from_json.py msgid "reloaded 7.62x25mm" -msgstr "recarregado 7.62x25mm" +msgstr "" #: lang/json/AMMO_from_json.py msgid "84x246mm HE rocket" -msgstr "Foguete 84x246mm HE" +msgstr "" #. ~ Description for 84x246mm HE rocket #: lang/json/AMMO_from_json.py @@ -3649,7 +3267,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "84x246mm HEDP rocket" -msgstr "Foguete HEDP 84x246mm" +msgstr "" #. ~ Description for 84x246mm HEDP rocket #: lang/json/AMMO_from_json.py @@ -3664,7 +3282,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "84x246mm smoke rocket" -msgstr "Foguete de fumaça 84x246mm" +msgstr "" #. ~ Description for 84x246mm smoke rocket #: lang/json/AMMO_from_json.py @@ -3679,7 +3297,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "bootleg 8x40mm JHP" -msgstr "bootleg 8x40mm JHP" +msgstr "" #. ~ Description for bootleg 8x40mm JHP #: lang/json/AMMO_from_json.py @@ -3687,12 +3305,10 @@ msgid "" "Bootleg duplicates of Rivtech 8x40mm caseless rounds. Being caseless " "rounds, these cannot be disassembled or reloaded." msgstr "" -" Bootleg duplica de rodadas sem caixa Rivtech 8x40mm. Sendo rodadassemcaixa," -" estas não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "8x40mm caseless" -msgstr "8x40mm sem caixa" +msgstr "" #. ~ Description for 8x40mm caseless #: lang/json/AMMO_from_json.py @@ -3700,12 +3316,10 @@ msgid "" "8x40mm caseless rounds. Proprietary ammunition for Rivtech firearms. Being" " caseless rounds, these cannot be disassembled or reloaded." msgstr "" -" Rodas sem caixa de 8x40mm. Munições próprias para armas de fogoRivtech. " -"Sendo rodadas sem caixa, estas não podem ser desmontadas ourecarregadas." #: lang/json/AMMO_from_json.py msgid "8x40mm sporting" -msgstr "Esportivo 8x40mm" +msgstr "" #. ~ Description for 8x40mm sporting #: lang/json/AMMO_from_json.py @@ -3714,13 +3328,10 @@ msgid "" "Proprietary ammunition for Rivtech firearms. Being caseless rounds, these " "cannot be disassembled or reloaded." msgstr "" -" Rodas sem caixa de 8x40mm, carga esportiva leve vendida para usocivil. " -"Munições próprias para armas de fogo Rivtech. Sendo rodadas semcaixa, estas " -"não podem ser desmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "8x40mm FMJ" -msgstr "8x40mm FMJ" +msgstr "" #. ~ Description for 8x40mm FMJ #: lang/json/AMMO_from_json.py @@ -3729,13 +3340,10 @@ msgid "" "Rivtech firearms. Being caseless rounds, these cannot be disassembled or " "reloaded." msgstr "" -" Rodas sem manga 8x40mm, jaqueta de metal completa. Munição de " -"nívelmilitarpara armas de fogo Rivtech. Sendo rodadas sem caixa, estas não " -"podemserdesmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "8x40mm HVP" -msgstr "8x40mm HVP" +msgstr "" #. ~ Description for 8x40mm HVP #: lang/json/AMMO_from_json.py @@ -3745,14 +3353,10 @@ msgid "" "uranium flechette. Being caseless rounds, these cannot be disassembled or " "reloaded." msgstr "" -" Rodas sem casco 8x40mm, tipo penetrador de alta velocidade. " -"Graumilitaravançado, munição perfurante que dispara uma única flecha " -"deurânioempobrecido. Sendo rodadas sem caixa, estas não podem ser " -"desmontadasourecarregadas." #: lang/json/AMMO_from_json.py msgid "8x40mm tracer" -msgstr "Tracer de 8x40mm" +msgstr "" #. ~ Description for 8x40mm tracer #: lang/json/AMMO_from_json.py @@ -3762,15 +3366,10 @@ msgid "" " ammunition for Rivtech firearms. Being caseless rounds, these cannot be " "disassembled or reloaded." msgstr "" -" Rodas sem caixão de 8x40mm com rastreadores para ajudar a manter a " -"armadeonde são disparados no alvo, sob risco de " -"incendiarsubstânciasinflamáveis. Munição de nível militar para armas de " -"fogoRivtech. Sendorodadas sem caixa, estas não podem ser desmontadas " -"ourecarregadas." #: lang/json/AMMO_from_json.py msgid "8x40mm JHP" -msgstr "8x40mm JHP" +msgstr "" #. ~ Description for 8x40mm JHP #: lang/json/AMMO_from_json.py @@ -3779,13 +3378,10 @@ msgid "" " Rivtech firearms. Being caseless rounds, these cannot be disassembled or " "reloaded." msgstr "" -" Rodas sem casquilho 8x40mm, hollowpoint revestido. Munição de " -"nívelmilitarpara armas de fogo Rivtech. Sendo rodadas sem caixa, estas não " -"podemserdesmontadas ou recarregadas." #: lang/json/AMMO_from_json.py msgid "9x19mm JHP" -msgstr "9x19mm JHP" +msgstr "" #. ~ Description for 9x19mm JHP #: lang/json/AMMO_from_json.py @@ -3795,14 +3391,10 @@ msgid "" "increases stopping power against unarmored targets and reduces " "overpenetration." msgstr "" -" Munição de 9x19mm com uma bala de ponto oco revestida de 116gr. " -"AsrodadasJHP têm penetração inferior nas rodadas de FMJ, mas sua " -"expansãoaumentaligeiramente o poder de parada contra alvos não armados e " -"reduzasuperpenetração." #: lang/json/AMMO_from_json.py msgid "9x19mm FMJ" -msgstr "FMJ 9x19mm" +msgstr "" #. ~ Description for 9x19mm FMJ #: lang/json/AMMO_from_json.py @@ -3811,12 +3403,10 @@ msgid "" " for military, law enforcement, and civilian use even after almost 150 " "years." msgstr "" -" Munição de 9x19mm com bala de latão com 115gr. É uma rodada popular " -"parausomilitar, policial e civil, mesmo depois de quase 150 anos." #: lang/json/AMMO_from_json.py msgid "9x19mm +P" -msgstr "9x19mm + P" +msgstr "" #. ~ Description for 9x19mm +P #: lang/json/AMMO_from_json.py @@ -3824,12 +3414,10 @@ msgid "" "Overpressure 9x19mm ammunition. The round's increased velocity results in " "superior accuracy and stopping power at the cost of higher recoil." msgstr "" -" Munição de 9x19mm de sobrepressão. O aumento da velocidade da " -"rodadaresultaem precisão superior e poder de parada ao custo de maior recuo." #: lang/json/AMMO_from_json.py msgid "9x19mm +P+" -msgstr "9x19 mm + P +" +msgstr "" #. ~ Description for 9x19mm +P+ #: lang/json/AMMO_from_json.py @@ -3837,9 +3425,6 @@ msgid "" "A step beyond the high-pressure 9x19mm +P round, the +P+ has even higher " "internal pressure offering superior damage, accuracy, and penetration." msgstr "" -" Um passo além da 9x19mm + P de alta pressão, o + P + tem " -"pressãointernaainda maior, oferecendo dano, precisão e penetração " -"superiores." #: lang/json/AMMO_from_json.py msgid "9x19mm JHP blackpowder" @@ -3851,23 +3436,23 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm JHP" -msgstr "recarregado 9x19mm JHP" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm FMJ" -msgstr "recarregado 9x19mm FMJ" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm +P" -msgstr "recarregado 9x19mm + P" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 9x19mm +P+" -msgstr "recarregado 9x19mm + P +" +msgstr "" #: lang/json/AMMO_from_json.py msgid "9x18mm 57-N-181S" -msgstr "9x18mm 57-N-181S" +msgstr "" #. ~ Description for 9x18mm 57-N-181S #: lang/json/AMMO_from_json.py @@ -3876,9 +3461,6 @@ msgid "" "round was very common in the Eastern Bloc during the 20th century and " "remained in Russian military service into the 21st century." msgstr "" -" Munição Makarov 9x18mm com balas FMJ de núcleo de aço 93gr. A ronda " -"de9x18mm foi muito comum no Bloco Oriental durante o século XX e " -"permaneceunoserviço militar russo no século XXI." #: lang/json/AMMO_from_json.py msgid "9x18mm SP-7" @@ -3891,9 +3473,6 @@ msgid "" "Eastern Bloc during the 20th century and remained in Russian military " "service into the 21st century." msgstr "" -" 9x18mm munição Makarov SP-7. A ronda de 9x18 mm foi muito comum " -"noBlocoOriental durante o século XX e permaneceu no serviço militar " -"russonoséculo XXI." #: lang/json/AMMO_from_json.py msgid "9x18mm RG028" @@ -3910,7 +3489,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 9x18mm" -msgstr "9x18mm recarregado" +msgstr "" #. ~ Description for reloaded 9x18mm #: lang/json/AMMO_from_json.py @@ -3919,14 +3498,10 @@ msgid "" "Makarov PM. As the designation implies, it is a bit shorter in case length " "compared to 9mm Parabellum. This one has been hand-reloaded." msgstr "" -" Makarov 9x18 milímetro, um velho cartucho de pistola " -"soviéticousadoprincipalmente pelo PM Makarov. Como a designação implica, é " -"um poucomaiscurto no comprimento do caso comparado ao parabelo de 9mm. " -"Estefoirecarregado manualmente." #: lang/json/AMMO_from_json.py msgid "reloaded 9x18mm +P+" -msgstr "recarregado 9x18mm + P +" +msgstr "" #. ~ Description for reloaded 9x18mm +P+ #: lang/json/AMMO_from_json.py @@ -3935,14 +3510,10 @@ msgid "" "Makarov PM. This one has been hand-reloaded to generate higher internal " "pressure, boosting flight stability and damage." msgstr "" -" Makarov 9x18 milímetro, um velho cartucho de pistola " -"soviéticousadoprincipalmente pelo PM Makarov. Este foi recarregado à mão " -"paragerarpressão interna mais alta, aumentando a estabilidade do vôo e " -"osdanos." #: lang/json/AMMO_from_json.py msgid "reloaded 9x18mm FMJ" -msgstr "recarregado 9x18mm FMJ" +msgstr "" #. ~ Description for reloaded 9x18mm FMJ #: lang/json/AMMO_from_json.py @@ -3951,10 +3522,6 @@ msgid "" "Makarov PM. This brass-jacketed round increases penetration slightly, at " "the cost of reduced expansion. This one has been hand-reloaded." msgstr "" -" Makarov 9x18 milímetro, um velho cartucho de pistola " -"soviéticousadoprincipalmente pelo PM Makarov. Esta rodada de jaqueta de " -"latãoaumentaligeiramente a penetração, ao custo da expansão reduzida. " -"Estefoirecarregado manualmente." #: lang/json/AMMO_from_json.py msgid "152mm ATGM HEAT" @@ -3997,7 +3564,7 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "paper cartridge" -msgstr "cartucho de papel" +msgstr "" #. ~ Description for paper cartridge #: lang/json/AMMO_from_json.py @@ -4005,12 +3572,10 @@ msgid "" "A paper cartridge containing black powder and a metallic projectile. " "Historically used to reload muzzleloaders in a more reasonable time." msgstr "" -" Um cartucho de papel contendo pó preto e um projétilmetálico. " -"Historicamente usado para recarregar muzzleloaders em um tempomaisrazoável." #: lang/json/AMMO_from_json.py msgid "paper shot cartridge" -msgstr "cartucho de tiro de papel" +msgstr "" #. ~ Description for paper shot cartridge #: lang/json/AMMO_from_json.py @@ -4018,12 +3583,10 @@ msgid "" "A paper cartridge containing black powder and metallic shot. Historically " "used to reload muzzleloaders in a more reasonable time." msgstr "" -" Um cartucho de papel contendo pó preto e granalha metálica. " -"Historicamenteusado para recarregar muzzleloaders em um tempo maisrazoável." #: lang/json/AMMO_from_json.py msgid "rebar rail" -msgstr "trilho de vergalhão" +msgstr "" #. ~ Description for rebar rail #: lang/json/AMMO_from_json.py @@ -4032,13 +3595,10 @@ msgid "" "sharpened on one end. Could be used as a projectile by a sufficiently " "powerful electromagnetic weapon." msgstr "" -" Um pequeno pedaço de vergalhão ferromagnético que foi endireitado eafiadoem" -" uma extremidade. Poderia ser usado como um projétil por " -"umaarmaeletromagnética suficientemente poderosa." #: lang/json/AMMO_from_json.py msgid "steel rail" -msgstr "trilho de aço" +msgstr "" #. ~ Description for steel rail #: lang/json/AMMO_from_json.py @@ -4047,13 +3607,10 @@ msgid "" " Could be used as a projectile by a sufficiently powerful electromagnetic " "weapon." msgstr "" -" Um pequeno pedaço de aço que foi forjado e afiado em umaextremidade. " -"Poderia ser usado como um projétil por uma " -"armaeletromagnéticasuficientemente poderosa." #: lang/json/AMMO_from_json.py msgid "flechette" -msgstr "flechette" +msgstr "" #. ~ Description for flechette #: lang/json/AMMO_from_json.py @@ -4061,8 +3618,6 @@ msgid "" "A tiny steel dart. Can be fired from a nail gun or similar weapon or used " "when crafting ammunition" msgstr "" -" Um minúsculo dardo de aço. Pode ser demitido de uma pistola de pregosouarma" -" similar ou usado na fabricação de munição" #: lang/json/AMMO_from_json.py msgid "nail" @@ -4074,22 +3629,19 @@ msgid "" "A pin-shaped piece of iron, can be used to construct various things with a " "hammer." msgstr "" -" Um pedaço de ferro em forma de alfinete pode ser usado para " -"construirváriascoisas com um martelo." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "paintball" -msgstr "paintball" +msgstr "" #. ~ Description for paintball #: lang/json/AMMO_from_json.py msgid "A tube of small paintballs. They deal virtually no damage." msgstr "" -" Um tubo de pequenas bolas de tinta. Eles praticamente não causam danos." #: lang/json/AMMO_from_json.py msgid "reloaded birdshot" -msgstr "recarregado birdshot" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded dragon's breath shell" @@ -4097,15 +3649,15 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded 00 shot" -msgstr "recarregado 00 tiro" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded flechette shell" -msgstr "shell flechette recarregado" +msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded shotgun slug" -msgstr "slug shotgun recarregado" +msgstr "" #: lang/json/AMMO_from_json.py msgid "blackpowder birdshot" @@ -4125,7 +3677,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "00 shot" -msgstr "Tiro 00" +msgstr "" #. ~ Description for 00 shot #: lang/json/AMMO_from_json.py @@ -4133,12 +3685,10 @@ msgid "" "A shell filled with metal pellets. Extremely damaging, plus the spread " "makes it very accurate at short range. Favored by SWAT forces." msgstr "" -" Uma concha cheia de pellets de metal. Extremamente prejudicial, maisospread" -" torna muito preciso a curto alcance. Favorecido pelas forçasdaSWAT." #: lang/json/AMMO_from_json.py msgid "shotgun beanbag" -msgstr "bife de espingarda" +msgstr "" #. ~ Description for shotgun beanbag #: lang/json/AMMO_from_json.py @@ -4149,7 +3699,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "birdshot" -msgstr "passarinho" +msgstr "" #. ~ Description for birdshot #: lang/json/AMMO_from_json.py @@ -4175,7 +3725,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "flechette shell" -msgstr "escudo flechette" +msgstr "" #. ~ Description for flechette shell #: lang/json/AMMO_from_json.py @@ -4191,7 +3741,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "explosive slug" -msgstr "lesma explosiva" +msgstr "" #. ~ Description for explosive slug #: lang/json/AMMO_from_json.py @@ -4199,12 +3749,10 @@ msgid "" "A shotgun shell shooting a small explosive. Damaging, but rather inaccurate" " and short ranged. Banned in several states." msgstr "" -" Um projétil disparando um pequeno explosivo. Danos, mas imprecisos ecurtos." -" Banido em vários estados." #: lang/json/AMMO_from_json.py msgid "makeshift shotgun shot" -msgstr "tiro de espingarda improvisado" +msgstr "" #. ~ Description for makeshift shotgun shot #: lang/json/AMMO_from_json.py @@ -4212,12 +3760,10 @@ msgid "" "A shotgun shell filled with whatever was lying around. They are more " "damaging than birdshot, but fairly inaccurate." msgstr "" -" Uma concha de espingarda cheia do que quer que estivesse em volta. " -"Elessãomais prejudiciais do que o birdshot, mas bastante imprecisos." #: lang/json/AMMO_from_json.py msgid "shotgun slug" -msgstr "slug shotgun" +msgstr "" #. ~ Description for shotgun slug #: lang/json/AMMO_from_json.py @@ -4225,8 +3771,6 @@ msgid "" "A heavy metal slug used with shotguns to give them the range capabilities of" " a rifle. Extremely damaging but rather inaccurate." msgstr "" -" Uma lesma de metal pesado usada com espingardas para dar-lhes acapacidadede" -" alcance de um rifle. Extremamente prejudicial, mas bastanteimpreciso." #: lang/json/AMMO_from_json.py msgid "scrap shotcanister" @@ -4275,7 +3819,7 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "signal flare" -msgstr "sinalizador" +msgstr "" #. ~ Description for signal flare #: lang/json/AMMO_from_json.py @@ -4283,12 +3827,10 @@ msgid "" "A heavy plastic cartridge made for use in flare guns. It appears to be a " "modified 12 gauge shotgun shell." msgstr "" -" Um cartucho de plástico pesado feito para uso em pistolas desinalização. " -"Parece ser uma espingarda modificada de calibre 12." #: lang/json/AMMO_from_json.py msgid "oxyacetylene" -msgstr "oxiacetileno" +msgstr "" #. ~ Description for oxyacetylene #: lang/json/AMMO_from_json.py @@ -4296,8 +3838,6 @@ msgid "" "A highly explosive fuel mixture composed of equal parts of oxygen and " "acetylene gas." msgstr "" -" Uma mistura de combustível altamente explosiva composta de partes " -"iguaisdeoxigênio e gás acetileno." #: lang/json/AMMO_from_json.py msgid "fungal seeds" @@ -4438,8 +3978,6 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "A dense but brittle metal often used as an alternative to lead." msgstr "" -" Bismuto Um metal denso, mas quebradiço, usado frequentemente " -"comoumaalternativa ao chumbo." #: lang/json/AMMO_from_json.py msgid "gold" @@ -4454,8 +3992,6 @@ msgid "" "A soft shiny metal. Before the apocalypse this would've been worth a small " "fortune but now its value is greatly diminished." msgstr "" -" goldA metal macio e brilhante. Antes do apocalipse, isso valeria " -"umapequenafortuna, mas agora seu valor é muito diminuído." #: lang/json/AMMO_from_json.py msgid "platinum" @@ -4475,9 +4011,6 @@ msgid "" "A soft dull metal known since ancient times. Due to its malleability it has" " a wide variety of uses including the manufacture of ammunition." msgstr "" -" platinumlead Um metal opaco e macio conhecido desde a antiguidade. " -"Devidoàsua maleabilidade, possui uma ampla variedade de usos, " -"incluindoafabricação de munição." #: lang/json/AMMO_from_json.py msgid "magnesium powder" @@ -4491,8 +4024,6 @@ msgid "" "A gray powder composed of the highly flammable alkaline earth metal " "magnesium. Useful for constructing flares and similar items." msgstr "" -" pó de magnésioUm pó cinza composto de magnésio alcalino- " -"terrosoaltamenteinflamável. Útil para construir flares e itens semelhantes." #: lang/json/AMMO_from_json.py msgid "silver" @@ -4506,17 +4037,15 @@ msgid "" "A soft shiny metal. Before the cataclysm it was worth quite a bit but its " "value is now greatly diminished." msgstr "" -" silverA metal macio e brilhante. Antes do cataclismo, valeu um bocado, " -"masoseu valor é agora grandemente diminuído." #: lang/json/AMMO_from_json.py msgid "small metal sheet" -msgstr "pequena folha de metal" +msgstr "" #. ~ Description for small metal sheet #: lang/json/AMMO_from_json.py msgid "A small sheet of metal." -msgstr "Uma pequena folha de metal." +msgstr "" #: lang/json/AMMO_from_json.py msgid "chunk of steel" @@ -4528,18 +4057,15 @@ msgid "" "A misshapen chunk of steel. Makes a decent weapon in a pinch, and is also " "useful for some crafting recipes." msgstr "" -" Um pedaço de aço deformado. Faz uma arma decente em um aperto, e " -"tambéméútil para algumas receitas de artesanato." #: lang/json/AMMO_from_json.py msgid "lump of steel" -msgstr "pedaço de aço" +msgstr "" #. ~ Description for lump of steel #: lang/json/AMMO_from_json.py msgid "A heavy formed piece of steel. Useful for some crafting recipes." msgstr "" -" Um pedaço pesado de aço formado. Útil para algumas receitas de artesanato." #: lang/json/AMMO_from_json.py msgid "door hinge" @@ -4564,8 +4090,6 @@ msgid "" "Material from an incendiary round, useful in constructing incendiary " "ammunition." msgstr "" -" Material incendiário de uma rodada incendiária, útil na construçãodemunição" -" incendiária." #: lang/json/AMMO_from_json.py msgid "handloaded .22 CB" @@ -4581,14 +4105,10 @@ msgid "" " It is nearly silent, but is so weak as to be nearly useless. This one has" " been handmade using an intact casing." msgstr "" -" 22 Bola CBConica 22 é uma variedade de munição 0,22 com uma " -"cargadepropelente muito pequena e geralmente não tem pólvora. O resultado " -"finaléuma rodada subsônica. É quase silencioso, mas é tão fraco a ponto " -"deserquase inútil. Este foi feito à mão usando um invólucro intacto." #: lang/json/AMMO_from_json.py msgid "handloaded .22 rat-shot" -msgstr "handloaded .22 rat-shot" +msgstr "" #. ~ Description for handloaded .22 rat-shot #: lang/json/AMMO_from_json.py @@ -4598,14 +4118,10 @@ msgid "" " short range and is unable to injure all but the smallest creatures. This " "one has been handmade using an intact casing." msgstr "" -" O tiro de rato é uma munição extremamente fraca, projetada para matarratos," -" cobras ou outros vermes pequenos, sendo incapaz de danificarparedes. Tem " -"umalcance extremamente curto e é incapaz de ferir todas ascriaturas, menos " -"asmenores. Este foi feito à mão usando um invólucrointacto." #: lang/json/AMMO_from_json.py msgid "reloaded shotgun beanbag" -msgstr "Beanbag shotgun recarregado" +msgstr "" #. ~ Description for reloaded shotgun beanbag #: lang/json/AMMO_from_json.py @@ -4613,8 +4129,6 @@ msgid "" "A hand-reloaded beanbag round for shotguns, not deadly but designed to " "disable." msgstr "" -" Um saco de feijão recarregado à mão por espingardas, não mortal, " -"masprojetado para ser desativado." #: lang/json/AMMO_from_json.py msgid "charcoal pieces" @@ -4626,8 +4140,6 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "These are smaller pieces of charcoal used in smaller heating devices." msgstr "" -" pedaços de carvãoEstes são pedaços menores de carvão usado emdispositivosde" -" aquecimento menores." #: lang/json/AMMO_from_json.py msgid "coal pieces" @@ -4639,12 +4151,10 @@ msgstr[1] "pedaços de carvão" #: lang/json/AMMO_from_json.py msgid "These are smaller pieces of coal used in smaller heating devices." msgstr "" -" pedaços de carvão Estes são pedaços menores de carvão usados " -"emdispositivosde aquecimento menores." #: lang/json/AMMO_from_json.py msgid "fletching" -msgstr "fletching" +msgstr "" #. ~ Description for fletching #: lang/json/AMMO_from_json.py @@ -4652,9 +4162,6 @@ msgid "" "Also known as a flight, this item provides aerodynamic stabilization of " "arrows. You'll need to put these on your arrows to make them functional." msgstr "" -" Também conhecido como vôo, esse item fornece estabilização " -"aerodinâmicadeflechas. Você precisará colocá-las nas suas flechas para " -"torná-lasfuncionais." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "dart" @@ -4761,9 +4268,6 @@ msgid "" "improved .280 British, Alexander Sarafanov himself developed the 6.54x42mm " "rifle cartridge for his new SVS-24 Assault Rifle." msgstr "" -" Cartucho 6.54x42mm 9N8A 6.54x42mm, carregado com 120 gr. BalaFMJBT. " -"Inspirado pela melhoria de 280 britânicos, Alexander Sarafanovdesenvolveuo " -"cartucho de rifle de 6,54x42mm para seu novo rifle de assaltoSVS-24." #: lang/json/AMMO_from_json.py msgid "6.54x42mm 9N12" @@ -4779,10 +4283,6 @@ msgid "" " 20th and 21st century, whenever depleted uranium was unavailable or " "undesirable." msgstr "" -" 6.54x42mm 9N12O 6.54x42mm 9N12 possui capacidades superiores deperfuraçãode" -" blindagem graças ao seu núcleo de carboneto de tungstênio. Ocarbeto " -"detungstênio foi usado em rondas anti-tanques dos séculos XX e XXI,sempreque" -" o urânio empobrecido não estivesse disponível ou fosseindesejável." #: lang/json/AMMO_from_json.py msgid ".20 DREAD Pellet" @@ -4796,8 +4296,6 @@ msgid "" "These metal pellets are propelled with the help of electromagnets, therefore" " they do not produce sound, flash or heat signature." msgstr "" -" .20 DREAD PelletEstas pastilhas de metal são movidas com a " -"ajudadeeletroímãs, portanto não produzem som, flash ou assinatura térmica." #: lang/json/AMMO_from_json.py msgid "reloaded 6.54x42mm" @@ -4812,9 +4310,6 @@ msgid "" "6.54x42mm rifle cartridge for his new SVS-24 Assault Rifle. This one has " "been hand-reloaded." msgstr "" -" recarregado 6.54x42mmInspirado pelo aprimorado .280, o " -"próprioAlexanderSarafanov desenvolveu o cartucho de rifle de 6.54x42mm para " -"seunovo riflede assalto SVS-24. Este foi recarregado manualmente." #: lang/json/AMMO_from_json.py msgid "reloaded light rifle ammo" @@ -4828,8 +4323,6 @@ msgid "" "Hand-loaded ammunition for lighter rifles, designed for small game and " "humans." msgstr "" -" Recarregado light rifle munição munição carregada de rifles maisleves, " -"projetado para o jogo pequeno e os seres humanos." #: lang/json/AMMO_from_json.py msgid "reloaded rifle ammo" @@ -4843,8 +4336,6 @@ msgid "" "Hand-loaded ammunition for rifles, meant for taking down large game or " "humans." msgstr "" -" munição de rifle recarregado munição carregada com a mão pararifles, " -"destinada a derrubar caça grande ou humanos." #: lang/json/AMMO_from_json.py msgid "reloaded pistol ammo" @@ -4857,8 +4348,6 @@ msgstr[1] "" msgid "" "Hand-loaded ammunition for semiautomatic pistols as well as submachine guns." msgstr "" -" munição recarregada de pistola Munição carregada com a mão " -"parapistolassemiautomáticas, bem como metralhadoras." #: lang/json/AMMO_from_json.py msgid "reloaded pistol ammo+" @@ -4872,8 +4361,6 @@ msgid "" "Hand-loaded ammunition for pistols, packed with extra powder. It trades " "improved damage for increased recoil." msgstr "" -" munição de pistola recarregada + munição carregada de mão parapistolas, " -"embalada com pó extra. Troca dano melhorado por aumento do recuo." #: lang/json/AMMO_from_json.py msgid "reloaded pistol ammo, AP" @@ -4887,9 +4374,6 @@ msgid "" "Hand-loaded armor-piercing ammunition for pistols. It trades improved " "penetration for slightly reduced damage." msgstr "" -" munição de pistola recarregada, munição de armadura perfurada com " -"APHepistolas. Ele troca a penetração aprimorada por danos levemente " -"reduzidos." #: lang/json/AMMO_from_json.py msgid "reloaded revolver ammo" @@ -4901,8 +4385,6 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "Hand-loaded ammunition for large revolvers and magnum pistols." msgstr "" -" recarregado revólver munição ammoHand-carregado para grandes " -"revólveresepistolas magnum." #: lang/json/AMMO_from_json.py msgid "reloaded light rifle ammo, incendiary" @@ -4913,8 +4395,6 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "reloaded rifle ammo, incendiary" msgstr "" -" munição de rifle leve recarregada, munição de rifleincendiaryreloaded, " -"incendiary" #. ~ Description for reloaded rifle ammo, incendiary #: lang/json/AMMO_from_json.py @@ -4923,9 +4403,6 @@ msgid "" "impact, piercing armor and igniting flammable substances. This one has been" " hand-reloaded." msgstr "" -" Munição incendiária carregada a mão para rifles, projetada " -"paraqueimarcalorosamente após o impacto, perfurar armaduras e " -"acendersubstânciasinflamáveis. Este foi recarregado manualmente." #: lang/json/AMMO_from_json.py msgid "reloaded heavy rifle ammo" @@ -4939,9 +4416,6 @@ msgid "" "Hand-loaded ammunition for heavy machineguns and special military hardware, " "intended for destroying vehicles or very large creatures." msgstr "" -" recarregado munição pesada rifleHand-carregado munição " -"parametralhadoraspesadas e hardware militar especial, destinado a " -"destruirveículos oucriaturas muito grandes." #: lang/json/AMMO_from_json.py msgid "reloaded heavy rifle ammo, AP" @@ -4956,10 +4430,6 @@ msgid "" "military hardware. It trades improved penetration for slightly reduced " "damage." msgstr "" -" munição de rifle pesado recarregada, munição perfurante " -"deblindagemcarregada com APH e metralhadoras pesadas e outros " -"equipamentosmilitares. Ele troca a penetração aprimorada por danos levemente" -" reduzidos." #: lang/json/AMMO_from_json.py msgid "reloaded heavy rifle ammo, incendiary" @@ -4974,10 +4444,6 @@ msgid "" "designed to burn hotly upon impact, piercing armor and igniting flammable " "substances." msgstr "" -" munição pesada recarregada de fuzil, incendiária Munição " -"carregadacommunição para metralhadoras pesadas e outras ferragens militares," -" projetadapara queimar calorosamente no impacto, perfurar armaduras " -"eacendersubstâncias inflamáveis." #. ~ Description for 84x246mm HE rocket #: lang/json/AMMO_from_json.py @@ -4985,8 +4451,6 @@ msgid "" "A 84x246mm High Explosive anti-personnel round for the recoilless rifle. " "Designed to be highly effective against personnel." msgstr "" -" Uma ronda anti-pessoal alta explosiva de 84x246mm para o rifle semrecuo. " -"Projetado para ser altamente eficaz contra o pessoal." #. ~ Description for 84x246mm HEDP rocket #: lang/json/AMMO_from_json.py @@ -4995,9 +4459,6 @@ msgid "" "recoilless rifle. Designed to be highly effective against vehicles and " "structures." msgstr "" -" Uma munição anti-material de alto duplo explosivo 84x246mm para o " -"riflesemrecuo. Projetado para ser altamente eficaz contra veículos e " -"estruturas." #. ~ Description for 84x246mm smoke rocket #: lang/json/AMMO_from_json.py @@ -5005,9 +4466,6 @@ msgid "" "A 84x246mm smoke marker round for the recoilless rifle. Commonly used for " "signaling, target designation, and for screening troop movements." msgstr "" -" Um marcador de fumaça de 84x246mm redondo para o rifle sem recuo. " -"Comumenteusado para sinalização, designação de alvos e para " -"rastrearmovimentos detropas." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "pistol ammo" @@ -5021,8 +4479,6 @@ msgid "" "Ammunition for semiautomatic pistols, as well as submachineguns and the " "occasional robot." msgstr "" -" munição de pistola para pistolas semiautomáticas, bem como submáquinas " -"eorobô ocasional." #: lang/json/AMMO_from_json.py msgid "pistol ammo+" @@ -5036,8 +4492,6 @@ msgid "" "High power ammunition for pistols, packed with extra powder. It trades " "improved damage for increased recoil." msgstr "" -" Munição de pistola + Munição de alta potência para pistolas, embalada " -"compóextra. Troca dano melhorado por aumento do recuo." #: lang/json/AMMO_from_json.py msgid "pistol ammo, AP" @@ -5051,8 +4505,6 @@ msgid "" "Armor piercing ammunition for pistols. It trades improved penetration for " "slightly reduced damage." msgstr "" -" munição de pistola, munição perfurante APArmor para pistolas. Ele " -"trocaapenetração aprimorada por danos levemente reduzidos." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "revolver ammo" @@ -5064,7 +4516,6 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "Powerful ammunition for large revolvers and magnum pistols." msgstr "" -" revólver munição munição poderosa para grandes revólveres e pistolasmagnum." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "light rifle ammo" @@ -5090,9 +4541,6 @@ msgid "" "Military ammunition for rifles, designed to burn hotly upon impact, piercing" " armor and igniting flammable substances." msgstr "" -" munição de rifle leve, incendiária Munição militar para rifles, " -"projetadapara queimar calorosamente no impacto, perfurando armaduras " -"eacendendosubstâncias inflamáveis." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "rifle ammo" @@ -5106,8 +4554,6 @@ msgid "" "Powerful and accurate ammunition for rifles, meant for taking down large " "game or humans." msgstr "" -" rifle munição Munição potente e precisa para rifles, destinada " -"aderrubarcaça ou humanos." #: lang/json/AMMO_from_json.py msgid "rifle ammo, incendiary" @@ -5121,9 +4567,6 @@ msgid "" "Military ammo for rifles, designed to burn hotly upon impact, piercing armor" " and igniting flammable substances." msgstr "" -" munição rifle, incendiáriaMilitar munição para rifles, projetadaparaqueimar" -" quente sobre o impacto, perfurar armaduras e " -"inflamarsubstânciasinflamáveis." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "heavy rifle ammo" @@ -5137,8 +4580,6 @@ msgid "" "Serious ammunition for heavy machineguns and special military hardware, " "intended for destroying vehicles or very large creatures." msgstr "" -" Munição pesada para armas pesadas e equipamento militar especial, " -"destinadoa destruir veículos ou criaturas muito grandes." #: lang/json/AMMO_from_json.py msgid "heavy rifle ammo, AP" @@ -5152,9 +4593,6 @@ msgid "" "Armor piercing ammunition for heavy machineguns and other military hardware." " It trades improved penetration for slightly reduced damage." msgstr "" -" munição pesada do rifle, munição perfurando de APArmor " -"paramachinegunspesados e a outra ferragem militar. Ele troca a " -"penetraçãoaprimorada pordanos levemente reduzidos." #: lang/json/AMMO_from_json.py msgid "heavy rifle ammo, incendiary" @@ -5168,10 +4606,6 @@ msgid "" "Ammunition for heavy machine guns and other military hardware, designed to " "burn hotly upon impact, piercing armor and igniting flammable substances." msgstr "" -" Munição pesada para rifle, incendiária Munição para metralhadoras " -"pesadaseoutras ferragens militares, projetada para queimar " -"calorosamentenoimpacto, perfurar armaduras e inflamar substâncias " -"inflamáveis." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "crystallized mana" @@ -5188,7 +4622,7 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "fire lance charge" -msgstr "carga de lança de fogo" +msgstr "" #. ~ Description for fire lance charge #: lang/json/AMMO_from_json.py @@ -5196,12 +4630,10 @@ msgid "" "Little more than a charge of gunpowder for a basic firearm. Despite the " "minimal range, it packs a punch." msgstr "" -" Pouco mais que uma carga de pólvora por uma arma básica. Apesar " -"doalcancemínimo, ele embala um soco." #: lang/json/AMMO_from_json.py msgid "fire lance shot" -msgstr "tiro lance de fogo" +msgstr "" #. ~ Description for fire lance shot #: lang/json/AMMO_from_json.py @@ -5209,24 +4641,20 @@ 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 "" -" Pouco mais do que uma carga de pólvora por uma arma básica, " -"compequenaspelotas como tiro. Apesar do alcance mínimo, ele embala um soco." #: lang/json/AMMO_from_json.py msgid "lead pellet" -msgstr "pelota de chumbo" +msgstr "" #. ~ Description for lead pellet #: lang/json/AMMO_from_json.py msgid "" "Hefty round projectiles cast from lead, useful as ammunition for slings." msgstr "" -" Projéteis redondos pesados lançados de chumbo, úteis como " -"muniçãoparaslings." #: lang/json/AMMO_from_json.py msgid "bone crossbow bolt" -msgstr "parafuso de besta de osso" +msgstr "" #. ~ Description for bone crossbow bolt #: lang/json/AMMO_from_json.py @@ -5235,9 +4663,6 @@ msgid "" "providing decent damage and accuracy. Stands a good chance of remaining " "intact once fired." msgstr "" -" Um parafuso afiado esculpido em osso, com fletching anexado. Éleve, " -"proporcionando danos decentes e precisão. Existe uma boa chancedepermanecer " -"intacto uma vez disparado." #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "wooden javelin" @@ -5247,7 +4672,7 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "stone javelin" -msgstr "dardo de madeira javelinstone" +msgstr "" #. ~ Description for stone javelin #: lang/json/AMMO_from_json.py @@ -5255,8 +4680,6 @@ msgid "" "A throwing spear with a stone spearhead. The grip area has also been carved" " and covered for better grip." msgstr "" -" Uma lança de arremesso com ponta de lança de pedra. A área " -"deaderênciatambém foi esculpida e coberta para melhor aderência." #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py msgid "iron javelin" @@ -5266,7 +4689,7 @@ msgstr[1] "" #: lang/json/AMMO_from_json.py msgid "copper javelin" -msgstr "dardo de javelincopper de ferro" +msgstr "" #. ~ Description for copper javelin #: lang/json/AMMO_from_json.py @@ -5274,8 +4697,6 @@ msgid "" "A copper-tipped throwing spear. The grip area has also been carved and " "covered for better grip." msgstr "" -" Uma lança de arremesso com ponta de cobre. A área de aderência " -"tambémfoiesculpida e coberta para melhor aderência." #: lang/json/AMMO_from_json.py msgid "40mm EMP grenade" @@ -5289,13 +4710,10 @@ msgid "" "A 40mm grenade with an EMP charge. It will release an electromagnetic pulse" " capable of damaging robots and some equipment." msgstr "" -" Granilha EMP de 40mmUm granada de 40mm com carga EMP. Ele irá " -"liberarumpulso eletromagnético capaz de danificar robôs e alguns " -"equipamentos." #: lang/json/AMMO_from_json.py msgid "glowball" -msgstr "glowball" +msgstr "" #. ~ Description for glowball #: lang/json/AMMO_from_json.py @@ -5304,9 +4722,6 @@ msgid "" "They deal virtually no damage, but light up on impact. Useful for " "illuminating an area without lighting up yourself in the process." msgstr "" -" Um tubo de pequenas bolas luminosas retiradas do mercado devido " -"aprodutosquímicos perigosos. Eles praticamente não causam dano, mas " -"acendemnoimpacto. Útil para iluminar uma área sem se iluminar no processo." #: lang/json/AMMO_from_json.py msgid "30x113mm HEDP" @@ -5320,8 +4735,6 @@ msgid "" "A 30x113mm autocannon round using a high-explosive, dual-purpose shell. " "Used primarily against light armored vehicles." msgstr "" -" Cilindro automático 30x113mm HEDPA 30x113mm com um escudo de alta " -"potênciaeexplosivo. Usado principalmente contra veículos blindados leves." #: lang/json/AMMO_from_json.py msgid "30x113mm HEI" @@ -5335,8 +4748,6 @@ msgid "" "A 30x113mm autocannon round, high explosive incendiary. Designed for use " "against unarmored vehicles and to suppress infantry." msgstr "" -" 30x113mm HEIA 30x113mm autocanhão redondo, alto explosivoincendiário. " -"Projetado para uso contra veículos não blindados e parasuprimir ainfantaria." #: lang/json/AMMO_from_json.py msgid "reloaded 30x113mm" @@ -5350,9 +4761,6 @@ msgid "" "A 30x113mm autocannon round with its primer replaced, and loaded with a " "basic lead projectile. Not as effective as the real thing." msgstr "" -" recarregado 30x113mmA 30x113mm autocanhão redondo com o " -"seuprimersubstituído, e carregado com um projétil de chumbo básico. Não " -"tãoeficazquanto a coisa real." #. ~ Description for 120mm HEAT #: lang/json/AMMO_from_json.py @@ -5364,7 +4772,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "120mm APFSDS" -msgstr "APFSDS de 120 mm" +msgstr "" #. ~ Description for 120mm APFSDS #: lang/json/AMMO_from_json.py @@ -5372,13 +4780,10 @@ 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 "" -" Um 120 milímetros de armadura-Piercing Fin-estabilizado " -"descartandoSabotrodada. Usa um projétil de urânio empobrecido para dar o que" -" querqueaconteça em um dia muito ruim." #: lang/json/AMMO_from_json.py msgid "reloaded 120mm shot" -msgstr "recarregado tiro de 120mm" +msgstr "" #. ~ Description for reloaded 120mm shot #: lang/json/AMMO_from_json.py @@ -5387,13 +4792,10 @@ msgid "" "amount of buckshot. Effectively similar to no-longer-produced canister " "shot, but of lower quality." msgstr "" -" Um escudo de 120 mm com um novo primer elétrico instalado, preenchidocomuma" -" grande quantidade de chumbo grosso. Efetivamente semelhante aotirocanister " -"não mais produzido, mas de menor qualidade." #: lang/json/AMMO_from_json.py msgid "makeshift 120mm slug" -msgstr "lesma improvisada de 120mm" +msgstr "" #. ~ Description for makeshift 120mm slug #: lang/json/AMMO_from_json.py @@ -5401,13 +4803,10 @@ 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 "" -" Um escudo de 120 mm com um novo primer elétrico instalado, carregado " -"comumagrande lesma artesanal. Embora dificilmente seja ideal, é um " -"grandesucesso." #: lang/json/AMMO_from_json.py msgid "155mm HEAT" -msgstr "CALOR DE 155mm" +msgstr "" #. ~ Description for 155mm HEAT #: lang/json/AMMO_from_json.py @@ -5415,12 +4814,10 @@ msgid "" "A 155mm High Explosive Anti Tank round. More than enough firepower for " "whatever you could think to point it at." msgstr "" -" Uma volta de 155 mm de alto explosivo anti tanque. Poder de fogo mais " -"doquesuficiente para o que você poderia pensar em apontar." #: lang/json/AMMO_from_json.py msgid "155mm frag" -msgstr "155mm perguntar" +msgstr "" #. ~ Description for 155mm frag #: lang/json/AMMO_from_json.py @@ -5428,12 +4825,10 @@ msgid "" "A 155mm High Explosive Fragmentation round. Designed to give anything near " "what you hit a really bad day." msgstr "" -" Uma ronda de fragmentação explosiva de 155 mm. Projetado para " -"darqualquercoisa perto do que você atingiu um dia muito ruim." #: lang/json/AMMO_from_json.py msgid "reloaded 155mm shot" -msgstr "recarregado 155mm tiro" +msgstr "" #. ~ Description for reloaded 155mm shot #: lang/json/AMMO_from_json.py @@ -5442,13 +4837,10 @@ msgid "" "amount of buckshot. Effectively turns a howitzer into a punt gun on " "steroids." msgstr "" -" Um invólucro de 155 mm com um novo primer elétrico instalado, " -"preenchidocomuma enorme quantidade de chumbo grosso. Efetivamente transforma" -" um obusemuma arma em esteróides." #: lang/json/AMMO_from_json.py msgid "reloaded 155mm slug" -msgstr "Slug de 155mm recarregado" +msgstr "" #. ~ Description for reloaded 155mm slug #: lang/json/AMMO_from_json.py @@ -5457,9 +4849,6 @@ msgid "" "handmade slug. Despite the lower effectiveness, whatever it hits is sure to" " feel it." msgstr "" -" Um invólucro de 155 mm com um novo primer elétrico instalado, " -"preenchidocomuma enorme lesma artesanal. Apesar da menor eficácia, o que " -"quer queacerteé certo para sentir isso." #: lang/json/AMMO_from_json.py msgid "small electric primer" @@ -5469,8 +4858,6 @@ msgstr "espoleta elétrica pequena" #: lang/json/AMMO_from_json.py msgid "Primer for an autocannon shell. Seems to use an electric ignition." msgstr "" -" Primer para uma concha de canhão automático. Parece usar " -"umaigniçãoelétrica." #: lang/json/AMMO_from_json.py msgid "large electric primer" @@ -5481,16 +4868,14 @@ msgstr "espoleta elétrica grande" msgid "" "Primer for a tank or artillery shell. Seems to use an electric ignition." msgstr "" -" Primário para um tanque ou projétil de artilharia. Parece usar " -"umaigniçãoelétrica." #: lang/json/AMMO_from_json.py msgid "IED" -msgstr "IED" +msgstr "" #: lang/json/AMMO_from_json.py msgid "blast canister" -msgstr "caixinha de explosão" +msgstr "" #. ~ Description for blast canister #: lang/json/AMMO_from_json.py @@ -5498,13 +4883,10 @@ msgid "" "An IED composed of a sealed container filled with a payload material that " "triggers on impact. Carries a substantial explosive payload." msgstr "" -" Um IED composto por um contêiner selado preenchido com um material " -"decargaútil que é acionado no impacto. Carrega uma carga " -"explosivasubstancial." #: lang/json/AMMO_from_json.py msgid "Big Bang canister" -msgstr "Caixinha do Big Bang" +msgstr "" #. ~ Description for Big Bang canister #: lang/json/AMMO_from_json.py @@ -5512,13 +4894,10 @@ msgid "" "An IED composed of a sealed container filled with a payload material that " "triggers on impact. Carries a VERY substantial explosive payload." msgstr "" -" Um IED composto por um contêiner selado preenchido com um material " -"decargaútil que é acionado no impacto. Carrega uma carga " -"explosivamuitosubstancial." #: lang/json/AMMO_from_json.py msgid "fire canister" -msgstr "vasilha de fogo" +msgstr "" #. ~ Description for fire canister #: lang/json/AMMO_from_json.py @@ -5527,14 +4906,10 @@ msgid "" " trigger it. Intended to be fired from a specialized launcher. This one is" " designed to douse a small area with deadly flames." msgstr "" -" Um IED composto por um contêiner preenchido com um material de carga " -"útileum meio de acioná-lo. Destinado a ser demitido de " -"umlançadorespecializado. Este é projetado para apagar uma pequena área " -"comchamasmortais." #: lang/json/AMMO_from_json.py msgid "inferno canister" -msgstr "vasilha de inferno" +msgstr "" #. ~ Description for inferno canister #: lang/json/AMMO_from_json.py @@ -5543,14 +4918,10 @@ msgid "" " trigger it. Intended to be fired from a specialized launcher. This one is" " designed to douse a large area with deadly flames." msgstr "" -" Um IED composto por um contêiner preenchido com um material de carga " -"útileum meio de acioná-lo. Destinado a ser demitido de " -"umlançadorespecializado. Este é projetado para apagar uma grande área " -"comchamasmortais." #: lang/json/AMMO_from_json.py msgid "fragmentation canister" -msgstr "caixinha de fragmentação" +msgstr "" #. ~ Description for fragmentation canister #: lang/json/AMMO_from_json.py @@ -5559,10 +4930,6 @@ msgid "" " trigger it. Intended to be fired from a specialized launcher. This one is" " designed to spray the immediate area with deadly shrapnel." msgstr "" -" Um IED composto por um contêiner preenchido com um material de carga " -"útileum meio de acioná-lo. Destinado a ser demitido de " -"umlançadorespecializado. Este é projetado para pulverizar a área " -"imediatacomestilhaços mortais." #. ~ Description for modified mininuke #: lang/json/AMMO_from_json.py @@ -5579,7 +4946,7 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "harpoon" -msgstr "arpão" +msgstr "" #. ~ Description for harpoon #: lang/json/AMMO_from_json.py @@ -5587,17 +4954,14 @@ msgid "" "A large spear carved from wood. This was fashioned specifically to be fired" " from a compatible weapon; thus unsuitable for melee combat." msgstr "" -" Uma grande lança esculpida em madeira. Isto foi feito " -"especificamenteparaser disparado de uma arma compatível; assim inadequado " -"paracombatecorporal." #: lang/json/AMMO_from_json.py msgid "IED on a bolt" -msgstr "IED em um parafuso" +msgstr "" #: lang/json/AMMO_from_json.py msgid "nova bolt" -msgstr "novo parafuso" +msgstr "" #. ~ Description for nova bolt #: lang/json/AMMO_from_json.py @@ -5606,14 +4970,10 @@ msgid "" " to the end of a large ballista bolt. Intended to be fired from a " "specialized launcher. Carries a substantial explosive payload." msgstr "" -" Um IED composto de um contêiner selado preenchido com um material " -"decargafixado no final de um grande parafuso balista. Destinado a " -"serdemitido deum lançador especializado. Carrega uma carga " -"explosivasubstancial." #: lang/json/AMMO_from_json.py msgid "supernova bolt" -msgstr "supernova bolt" +msgstr "" #. ~ Description for supernova bolt #: lang/json/AMMO_from_json.py @@ -5622,14 +4982,10 @@ msgid "" " to the end of a large ballista bolt. Intended to be fired from a " "specialized launcher. Carries a very substantial explosive payload." msgstr "" -" Um IED composto de um contêiner selado preenchido com um material " -"decargafixado no final de um grande parafuso balista. Destinado a " -"serdemitido deum lançador especializado. Carrega uma carga explosiva " -"muitosubstancial." #: lang/json/AMMO_from_json.py msgid "searing bolt" -msgstr "parafuso abrasador" +msgstr "" #. ~ Description for searing bolt #: lang/json/AMMO_from_json.py @@ -5638,14 +4994,10 @@ msgid "" " 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 "" -" Um IED composto de um contêiner preenchido com um material de " -"cargaútilafixado no final de um grande parafuso balista. Destinado a " -"serdemitido deum lançador especializado. Este é projetado para apagar " -"umapequena áreacom chamas mortais." #: lang/json/AMMO_from_json.py msgid "napalm bolt" -msgstr "loja de napalm" +msgstr "" #. ~ Description for napalm bolt #: lang/json/AMMO_from_json.py @@ -5654,14 +5006,10 @@ msgid "" " 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 "" -" Um IED composto de um contêiner preenchido com um material de " -"cargaútilafixado no final de um grande parafuso balista. Destinado a " -"serdemitido deum lançador especializado. Este é projetado para apagar " -"umagrande área comchamas mortais." #: lang/json/AMMO_from_json.py msgid "shatter bolt" -msgstr "quebrar o parafuso" +msgstr "" #. ~ Description for shatter bolt #: lang/json/AMMO_from_json.py @@ -5671,14 +5019,10 @@ msgid "" "launcher. This one is designed to spray the immediate area with deadly " "shrapnel." msgstr "" -" Um IED composto de um contêiner preenchido com um material de " -"cargaútilafixado no final de um grande parafuso balista. Destinado a " -"serdemitido deum lançador especializado. Este é projetado para pulverizar " -"aárea imediatacom estilhaços mortais." #: lang/json/AMMO_from_json.py msgid "steel ballista bolt" -msgstr "bolinha de aço" +msgstr "" #. ~ Description for steel ballista bolt #: lang/json/AMMO_from_json.py @@ -5687,14 +5031,10 @@ msgid "" "quite heavy, capable of dealing large amounts of damage, but isn't " "particularly accurate. Stands a good chance of remaining intact once fired." msgstr "" -" Um longo cabo esculpido em madeira terminando em uma ponta de metalafiado.É" -" bem pesado, capaz de causar grandes quantidades de dano, mas " -"nãoéparticularmente preciso. Existe uma boa chance de permanecer " -"intactoumavez disparado." #: lang/json/AMMO_from_json.py msgid "nuclear bolt" -msgstr "parafuso nuclear" +msgstr "" #. ~ Description for nuclear bolt #: lang/json/AMMO_from_json.py @@ -5703,13 +5043,10 @@ msgid "" "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 "" -" Um dispositivo nuclear de mão pesado modificado afixado no final deumgrande" -" parafuso de balista. Seu estojo foi cortado e foi manipuladoparaexplodir " -"com o impacto. Não pode mais ser acionado manualmente." #: lang/json/AMMO_from_json.py msgid "wood ballista bolt" -msgstr "balista de madeira" +msgstr "" #. ~ Description for wood ballista bolt #: lang/json/AMMO_from_json.py @@ -5718,13 +5055,10 @@ msgid "" "large amounts of damage, but isn't particularly accurate. Stands a good " "chance of remaining intact once fired." msgstr "" -" Um parafuso afiado esculpido em madeira. É bastante pesado, capaz " -"decausargrandes quantidades de dano, mas não é particularmente preciso. " -"Existe umaboa chance de permanecer intacto uma vez disparado." #: lang/json/AMMO_from_json.py msgid "lead ball" -msgstr "bola de chumbo" +msgstr "" #. ~ Description for lead ball #: lang/json/AMMO_from_json.py @@ -5732,20 +5066,16 @@ 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 "" -" Uma bola de chumbo pesada com cerca de 8cm de diâmetro. Poderia " -"causarumgrande impacto se você tivesse algo para lançá-lo." #: lang/json/AMMO_from_json.py msgid "serrated disc" -msgstr "disco serrilhado" +msgstr "" #. ~ Description for serrated disc #: lang/json/AMMO_from_json.py msgid "" "A metal disc surrounded by serrated edges. It's as menacing as it sounds." msgstr "" -" Um disco de metal rodeado por bordas serrilhadas. É tão " -"ameaçadorquantoparece." #: lang/json/AMMO_from_json.py msgid "metal fragment" @@ -5754,7 +5084,7 @@ msgstr "fragmento de metal" #. ~ Description for metal fragment #: lang/json/AMMO_from_json.py msgid "Small slivers of metal. Can't see much use for them." -msgstr "Pequenas lascas de metal. Não vejo muito uso para eles." +msgstr "" #: lang/json/AMMO_from_json.py msgid "liquified blob feed" @@ -5767,8 +5097,6 @@ msgstr[1] "" msgid "" "Liquified blob feed, useful for fueling certain blob based vehicle parts" msgstr "" -" alimentação liquidificada blobAlimentação blob liquidificada, " -"útilparaabastecer certas peças de veículos baseadas em blob" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "blob feed" @@ -5782,8 +5110,6 @@ msgid "" "An amalgam of various types of organic material, contains everything the " "blob needs to be healthy. You think..." msgstr "" -" blob feed Um amálgama de vários tipos de material orgânico, contém tudooque" -" o blob precisa para ser saudável. Você pensa..." #: lang/json/AMMO_from_json.py lang/json/GENERIC_from_json.py #: lang/json/snippet_from_json.py @@ -5838,8 +5164,6 @@ msgid "" "These may not be the Great Plains, but you can still be the Boss with this " "high-crowned, wide-brimmed hat." msgstr "" -" chapéu de dez galõesEstes podem não ser as Grandes Planícies, mas você " -"ainda pode ser o Chefe com esse chapéu de aba larga e coroa alta." #: lang/json/ARMOR_from_json.py msgid "pair of 2-by-arm guards" @@ -5854,10 +5178,6 @@ msgid "" "that are tied to your arms with rags and string. They offer good " "protection, but are really uncomfortable to wear." msgstr "" -" par de guardas de 2 por braço Um par de guardas de braço " -"improvisadosfeitosde pedaços quebrados de dois por quatro que são amarrados " -"a seusbraços comtrapos e cordas. Eles oferecem boa proteção, mas " -"sãorealmentedesconfortáveis de usar." #: lang/json/ARMOR_from_json.py msgid "pair of 2-by-shin guards" @@ -5872,9 +5192,6 @@ msgid "" "that are tied to your shins with rags and string. They offer good " "protection, but are really hard to run with." msgstr "" -" Um par de guardas de canela improvisadas feitas de pedaços quebrados " -"dedoispor quatro que estão amarrados às tuas pernas com farrapos e barbante." -" Elesoferecem uma boa proteção, mas são realmente difíceis de executar." #: lang/json/ARMOR_from_json.py msgid "AEP suit" @@ -5889,9 +5206,6 @@ msgid "" " body armor, it provides excellent protection against both physical harm and" " ambient radiation." msgstr "" -" Terno AEP Um terno de proteção ambiental blindado. Feito sob medida " -"apartirde uma roupa limpa e uma armadura, oferece excelente proteção " -"contradanosfísicos e radiação ambiente." #: lang/json/ARMOR_from_json.py msgid "American flag" @@ -5903,8 +5217,6 @@ msgstr[1] "bandeiras americanas" #: lang/json/ARMOR_from_json.py msgid "A large American flag made to fly in even the worst conditions." msgstr "" -" Bandeira americana Uma grande bandeira americana feita para voar " -"mesmonaspiores condições." #: lang/json/ARMOR_from_json.py msgid "leather apron" @@ -5918,8 +5230,6 @@ msgid "" "An apron made of thick leather. Cumbersome, but offers excellent protection" " from cuts." msgstr "" -" Avental de couro Um avental de couro grosso. Incômodo, mas " -"ofereceexcelenteproteção contra cortes." #: lang/json/ARMOR_from_json.py msgid "arm splint" @@ -5932,7 +5242,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A tool to help set bones and hold them in place." msgstr "" -" arm splintUma ferramenta para ajudar a fixar os ossos e mantê-los no lugar." #: lang/json/ARMOR_from_json.py msgid "arm splint XL" @@ -5946,9 +5255,6 @@ msgid "" "A tool to help set bones and hold them in place. It is specifically " "designed to fit Huge survivors." msgstr "" -" ferramenta XLA de tala de braço para ajudar a fixar os ossos e mantê- " -"losnolugar. Ele é projetado especificamente para atender " -"aosgrandessobreviventes." #: lang/json/ARMOR_from_json.py msgid "pair of arm warmers" @@ -5960,8 +5266,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Snug, soft cloth sleeves to keep your arms warm." msgstr "" -" par de aquecedores de braçoSnug, mangas de pano macio para manterseusbraços" -" quentes." #: lang/json/ARMOR_from_json.py msgid "pair of bone arm guards" @@ -5975,8 +5279,6 @@ msgid "" "A pair of arm guards made from leather, reinforced with bone. Light and " "strong." msgstr "" -" par de guardas de braço de ossoUm par de guardas de braço feito decouro, " -"reforçado com osso. Leve e forte." #: lang/json/ARMOR_from_json.py msgid "pair of chitin arm guards" @@ -5990,8 +5292,6 @@ msgid "" "A pair of arm guards made from the exoskeletons of insects. Light and " "durable." msgstr "" -" par de guardas de braço de quitina Um par de guardas de braço feitasapartir" -" do exoesqueleto de insetos. Leve e durável." #: lang/json/ARMOR_from_json.py msgid "pair of biosilicified chitin arm guards" @@ -6005,9 +5305,6 @@ msgid "" "A pair of arm guards crafted from the carefully cleaned and pruned " "biosilicified exoskeletons of acidic ants. Acid-resistant and very durable." msgstr "" -" par de guardas de braço de quitina biosilicificadasUm par de guardasdebraço" -" trabalhadas a partir de exoesqueletos biosilicificadoscuidadosamentelimpos " -"e podados de formigas ácidas. Resistente a ácidos emuito durável." #: lang/json/ARMOR_from_json.py msgid "pair of hard arm guards" @@ -6019,8 +5316,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of neoprene arm sleeves covered with molded plastic sheaths." msgstr "" -" par de protetores de braço duroUm par de mangas de braço deneoprenecobertas" -" com bainhas de plástico moldadas." #: lang/json/ARMOR_from_json.py msgid "pair of leather arm guards" @@ -6032,8 +5327,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of tough leather arm guards. Light and comfortable." msgstr "" -" par de guardas de braço de couroUm par de guardas de braço " -"decouroresistentes. Leve e confortável." #: lang/json/ARMOR_from_json.py msgid "pair of steel arm guards" @@ -6048,9 +5341,6 @@ msgid "" "vambraces, with leather straps to secure each piece and connect it as part " "of a set." msgstr "" -" par de protetores de braço de açoUm conjunto completo de proteção " -"debraçomedieval. Rerebraces, couters e vambraces, com tiras de couro " -"paraprendercada peça e conectá-lo como parte de um conjunto." #: lang/json/ARMOR_from_json.py msgid "pair of metal arm guards" @@ -6064,8 +5354,6 @@ msgid "" "A pair of arm guards hammered out from metal. Perfect for the Post-" "Apocalyptic Warrior look." msgstr "" -" Um par de guardas de braço de metal Um par de guardas de braçomarteladopara" -" fora do metal. Perfeito para o olhar de guerreiro pós-apocalíptico." #: lang/json/ARMOR_from_json.py msgid "pair of paper arm guards" @@ -6077,8 +5365,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Arm guards made of stacked paper sheets held together with duct tape." msgstr "" -" par de protetores de braço de papel Protetores de braço feitos de " -"folhasdepapel empilhadas unidas com fita adesiva." #: lang/json/ARMOR_from_json.py msgid "pair of scrap arm guards" @@ -6104,8 +5390,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of soft neoprene arm sleeves. Often used in contact sports." msgstr "" -" par de mangas de braço de neopreneUm par de mangas de braço " -"deneoprenemacio. Freqüentemente usado em esportes de contato." #: lang/json/ARMOR_from_json.py msgid "boiled leather armor" @@ -6119,8 +5403,6 @@ msgid "" "Thick leather body armor that has been hardened via chemical treatment. " "Light and strong." msgstr "" -" Armadura de couro fervida que é endurecida por tratamento químico. " -"Leveeforte." #: lang/json/ARMOR_from_json.py msgid "bone body armor" @@ -6134,8 +5416,6 @@ msgid "" "Body armor consisting of a leather suit with strategically-placed bone " "reinforcement. Light and strong." msgstr "" -" armadura de corpo de ossoCorpo de armadura que consiste em um terno " -"decourocom reforço de osso estrategicamente colocado. Leve e forte." #: lang/json/ARMOR_from_json.py msgid "chitinous armor" @@ -6149,8 +5429,6 @@ msgid "" "Leg and body armor made from the exoskeletons of insects. Light and " "durable." msgstr "" -" armadura quitinaLeg e armadura feita a partir dos exoesqueletos deinsetos. " -"Leve e durável." #: lang/json/ARMOR_from_json.py msgid "biosilicified chitin armor" @@ -6164,9 +5442,6 @@ msgid "" "Leg and body armor crafted from the carefully cleaned and pruned " "biosilicified exoskeletons of acidic ants. Acid-resistant and very durable." msgstr "" -" armadura de quitina biosilicificada e armadura feita a " -"partirdeexoesqueletos biosilicificados cuidadosamente limpos e podados " -"deformigasácidas. Resistente a ácidos e muito durável." #: lang/json/ARMOR_from_json.py msgid "fur body armor" @@ -6177,7 +5452,7 @@ msgstr[1] "" #. ~ Description for fur body armor #: lang/json/ARMOR_from_json.py msgid "Thick body armor made from furs. Warm and comfortable." -msgstr "body armorThick body armor feito de peles. Quente e confortável." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "lamellar cuirass" @@ -6201,7 +5476,7 @@ msgstr[1] "" #. ~ Description for leather body armor #: lang/json/ARMOR_from_json.py msgid "Thick leather body armor. Light and comfortable." -msgstr "leather body armorThick armadura de couro. Leve e confortável." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "plate armor" @@ -6212,7 +5487,7 @@ msgstr[1] "" #. ~ Description for plate armor #: lang/json/ARMOR_from_json.py msgid "A suit of Gothic plate armor." -msgstr "armadura de placa armadura de placa gótica." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "lorica segmentata" @@ -6226,8 +5501,6 @@ msgid "" "An ancient Roman laminar armor, made of overlapping metal strips connected " "to internal leather straps." msgstr "" -" lorica segmentataUma antiga armadura laminar romana, feita de tiras " -"demetalsobrepostas ligadas a tiras de couro internas." #: lang/json/ARMOR_from_json.py msgid "nomad gear" @@ -6241,8 +5514,6 @@ msgid "" "A makeshift outfit made from pre-cataclysm clothing designed for long " "travels. It has a lot of storage space." msgstr "" -" nômades gearA roupa improvisada feita a partir de roupas pré- " -"cataclismoprojetado para viagens longas. Tem muito espaço de armazenamento." #: lang/json/ARMOR_from_json.py msgid "light nomad gear" @@ -6257,10 +5528,6 @@ msgid "" "summer travels. It offers less storage space and armor compared to regular " "nomad gear." msgstr "" -" Engrenagem nômade claraUma roupa improvisada leve feita de roupas pré- " -"cataclísmicas projetadas para longas viagens de verão. Ele " -"oferecemenosespaço de armazenamento e armadura em comparação com a " -"engrenagemnômadecomum." #: lang/json/ARMOR_from_json.py msgid "plated leather armor" @@ -6274,8 +5541,6 @@ msgid "" "Thick leather body armor that has been reinforced with strategically-placed " "metal plates. Strong and comfortable." msgstr "" -" armadura de couro banhado A armadura de couro reforçada com placas " -"demetalestrategicamente colocadas. Forte e confortável." #: lang/json/ARMOR_from_json.py msgid "ornamental plate armor" @@ -6287,8 +5552,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "An extremely heavy suit of ornamental armor." msgstr "" -" armadura de placa ornamentalUm traje extremamente pesado " -"dearmaduraornamental." #: lang/json/ARMOR_from_json.py msgid "riot armor" @@ -6313,7 +5576,7 @@ msgstr[1] "O-yorois" #. ~ Description for O-yoroi #: lang/json/ARMOR_from_json.py msgid "An ornamental suit of Japanese samurai armor." -msgstr "O-yoroi Um traje ornamental de armadura de samurai japonesa." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "scavenger gear" @@ -6327,9 +5590,6 @@ msgid "" "A sturdy scavenger's outfit made from refitted pre-cataclysm protective " "gear. It has a lot of storage space." msgstr "" -" Engrenagem do limpador Uma roupa robusta do escravo feito de " -"equipamentodeproteção pré-cataclismo reformado. Tem muito espaço de " -"armazenamento." #: lang/json/ARMOR_from_json.py msgid "scrap suit" @@ -6355,8 +5615,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A sleeveless cotton shirt with camouflage dye. Very easy to move in." msgstr "" -" camo tank topUma camisa de algodão sem mangas com tintura decamuflagem. " -"Muito fácil de se mudar." #: lang/json/ARMOR_from_json.py msgid "basketball shorts" @@ -6367,7 +5625,7 @@ msgstr[1] "" #. ~ Description for basketball shorts #: lang/json/ARMOR_from_json.py msgid "A pair of basketball shorts. Comfortable and light." -msgstr "short de basquete Um par de shorts de basquete. Confortável e leve." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "backpack" @@ -6379,7 +5637,6 @@ msgstr[1] "mochilas" #: lang/json/ARMOR_from_json.py msgid "A small backpack. Good storage for a little encumbrance." msgstr "" -"backpackA pequena mochila. Bom armazenamento por um pequeno empecilho." #: lang/json/ARMOR_from_json.py msgid "giant novelty backpack" @@ -6393,9 +5650,6 @@ msgid "" "A huge fabric backpack made mostly as a joke before the cataclysm. Now, " "it's still rather silly, but it can store a lot of stuff." msgstr "" -" Mochila de novidade giganteUma mochila de tecido enorme " -"feitaprincipalmentecomo uma piada antes do cataclismo. Agora, ainda é um " -"poucobobo, mas podearmazenar muitas coisas." #: lang/json/ARMOR_from_json.py msgid "leather backpack" @@ -6407,8 +5661,6 @@ msgstr[1] "mochilas de couro" #: lang/json/ARMOR_from_json.py msgid "A small leather backpack. Good storage for a little encumbrance." msgstr "" -" mochila de couroUma mochila de couro pequena. Bom armazenamento " -"porumpequeno empecilho." #: lang/json/ARMOR_from_json.py msgid "balaclava" @@ -6419,7 +5671,7 @@ msgstr[1] "" #. ~ Description for balaclava #: lang/json/ARMOR_from_json.py msgid "A warm covering that protects the head and face from the cold." -msgstr "balaclavaA cobertura quente que protege a cabeça e o rosto do frio." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "baldric" @@ -6468,7 +5720,7 @@ msgstr "" #. ~ Use action holster_prompt for scabbard. #: lang/json/ARMOR_from_json.py msgid "Sheath sword" -msgstr "Espada de bainha" +msgstr "" #. ~ Description for baldric #: lang/json/ARMOR_from_json.py @@ -6477,10 +5729,6 @@ msgid "" " larger than that. Designed to be worn at the waist, secured by a shoulder " "belt. Activate to sheath/draw a sword." msgstr "" -" Uma bainha de couro, grande o suficiente para qualquer coisa até " -"umaespadalonga, ou até um pouco maior que isso. Projetado para ser usado " -"nacintura, garantido por um cinto de ombro. Ative a bainha / desenhe " -"umaespada." #: lang/json/ARMOR_from_json.py msgid "bandana" @@ -6494,8 +5742,6 @@ msgid "" "A cotton bandana, worn over the mouth for warmth and minor protection from " "dust and other contaminants." msgstr "" -" BandanaA bandana de algodão, usada sobre a boca para o calor emenorproteção" -" contra poeira e outros contaminantes." #: lang/json/ARMOR_from_json.py msgid "barrette" @@ -6506,7 +5752,7 @@ msgstr[1] "" #. ~ Description for barrette #: lang/json/ARMOR_from_json.py msgid "A barrette with lots of ornaments." -msgstr "barretteA barrette com muitos ornamentos." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "laundry basket" @@ -6518,8 +5764,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A plastic basket meant for storing and hauling clothing." msgstr "" -" cesta de lavanderiaUm cesto de plástico destinado a armazenar " -"etransportarroupas." #: lang/json/ARMOR_from_json.py msgid "pair of beekeeping gloves" @@ -6531,8 +5775,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of white beekeeping gloves made out of smooth leather." msgstr "" -" par de luvas de apiculturaUm par de luvas brancas de apicultura " -"feitasdecouro liso." #: lang/json/ARMOR_from_json.py msgid "beekeeping hood" @@ -6546,9 +5788,6 @@ msgid "" "A beekeeping hood. Keeps the bees out, but lets fresh air in. Rather " "cumbersome to wear, as it is rather bulky and hinders vision." msgstr "" -" capuz de apiculturaUm capô de apicultura. Mantém as abelhas afastadas, " -"masdeixa entrar ar fresco. É um pouco complicado de usar, já que " -"ébastantevolumoso e dificulta a visão." #: lang/json/ARMOR_from_json.py msgid "beekeeping suit" @@ -6564,10 +5803,6 @@ msgid "" "fabric, but it's lightweight and has plenty of storage thanks to a chest " "pocket." msgstr "" -" Um terno branco comumente usado por apicultores profissionais com " -"tirasnostornozelos e pulsos para evitar abelhas de voar dentro Não é " -"umtecidomuito resistente, mas é leve e tem muito espaço de " -"armazenamentograças aum bolso no peito." #: lang/json/ARMOR_from_json.py msgid "beret" @@ -6579,8 +5814,6 @@ msgstr[1] "boinas" #: lang/json/ARMOR_from_json.py msgid "A soft cotton hat. Commonly worn by armed forces and existentialists." msgstr "" -" beret Um chapéu de algodão macio. Comumente usado pelas forças " -"armadaseexistencialistas." #: lang/json/ARMOR_from_json.py msgid "wool beret" @@ -6592,8 +5825,6 @@ msgstr[1] "boinas de lã" #: lang/json/ARMOR_from_json.py msgid "A soft wool hat. Commonly worn by armed forces and existentialists." msgstr "" -" boina de lãUm gorro de lã macia. Comumente usado pelas forças " -"armadaseexistencialistas." #: lang/json/ARMOR_from_json.py msgid "bikini bottom" @@ -6604,7 +5835,7 @@ msgstr[1] "" #. ~ Description for bikini bottom #: lang/json/ARMOR_from_json.py msgid "A simple bikini bottom." -msgstr "bottomA bikini bottomA simples biquíni." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "bikini top" @@ -6615,7 +5846,7 @@ msgstr[1] "" #. ~ Description for bikini top #: lang/json/ARMOR_from_json.py msgid "A simple bikini top." -msgstr "bikini topA top de biquíni simples." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "fur bikini top" @@ -6626,7 +5857,7 @@ msgstr[1] "" #. ~ Description for fur bikini top #: lang/json/ARMOR_from_json.py msgid "A simple fur bikini top." -msgstr "parte superior do biquini da pele topA top do biquini da pele." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather bikini top" @@ -6637,7 +5868,7 @@ msgstr[1] "" #. ~ Description for leather bikini top #: lang/json/ARMOR_from_json.py msgid "A simple leather bikini top." -msgstr "top de biquíni de couroUm top de biquíni de couro simples." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "bindle" @@ -6650,8 +5881,6 @@ msgstr[1] "" msgid "" "You're ready for a trip down some train tracks. Also known as a hobo stick." msgstr "" -" Você está pronto para uma viagem por alguns trilhos de trem. " -"Tambémconhecido como hobo stick." #: lang/json/ARMOR_from_json.py msgid "blanket" @@ -6662,7 +5891,7 @@ msgstr[1] "" #. ~ Description for blanket #: lang/json/ARMOR_from_json.py msgid "Hiding under here will not protect you from the monsters." -msgstr "O uso de cobertores aqui embaixo não protege você dos monstros." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "blazer" @@ -6673,7 +5902,7 @@ msgstr[1] "blazers" #. ~ Description for blazer #: lang/json/ARMOR_from_json.py msgid "A professional-looking wool blazer. Quite cumbersome." -msgstr "blazerUm blazer de lã com aparência profissional. Bastante pesado." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "blindfold" @@ -6687,8 +5916,6 @@ msgid "" "A simple fabric covering tied over the eyes to block sight. Useful for " "sleeping in bright areas." msgstr "" -" blindfoldA cobertura de tecido simples amarrada sobre os olhos " -"parabloqueara visão. Útil para dormir em áreas claras." #: lang/json/ARMOR_from_json.py msgid "bondage mask" @@ -6699,12 +5926,12 @@ msgstr[1] "" #. ~ Use action menu_text for bondage mask. #: lang/json/ARMOR_from_json.py msgid "Zip up" -msgstr "bondage maskZip up" +msgstr "" #. ~ Use action msg for bondage mask. #: lang/json/ARMOR_from_json.py msgid "You zip the eyes and mouth of the bondage mask closed." -msgstr "Você fecha os olhos e a boca da máscara de bondage fechada." +msgstr "" #. ~ Description for bondage mask #: lang/json/ARMOR_from_json.py @@ -6712,8 +5939,6 @@ msgid "" "A tight mask made of black leather. The eyes and mouth can be closed using " "zippers." msgstr "" -" Uma máscara apertada de couro preto. Os olhos e a boca podem " -"serfechadosusando zíperes." #: lang/json/ARMOR_from_json.py msgid "bondage mask (zipped)" @@ -6724,12 +5949,12 @@ msgstr[1] "" #. ~ Use action menu_text for bondage mask (zipped). #: lang/json/ARMOR_from_json.py msgid "Unzip" -msgstr "máscara de bondage (zipado) Descompacte" +msgstr "" #. ~ Use action msg for bondage mask (zipped). #: lang/json/ARMOR_from_json.py msgid "You unzip the eyes and mouth of the bondage mask." -msgstr "Você descompacta os olhos e a boca da máscara de bondage." +msgstr "" #. ~ Description for bondage mask (zipped) #: lang/json/ARMOR_from_json.py @@ -6737,8 +5962,6 @@ msgid "" "A tight mask made of black leather. The eyes and mouth have been zipped " "closed." msgstr "" -" Uma máscara apertada de couro preto. Os olhos e a boca foram " -"fechadoscomfecho." #: lang/json/ARMOR_from_json.py msgid "bondage suit" @@ -6752,8 +5975,6 @@ msgid "" "A suit of snug, black leather. Has no pockets, but does feature an " "abundance of unusually located zippers." msgstr "" -" terno de bondageUm terno de couro preto confortável. Não tem bolsos, " -"masapresenta uma abundância de zíperes invulgarmente localizados." #: lang/json/ARMOR_from_json.py msgid "bookplate" @@ -6767,9 +5988,6 @@ msgid "" "A crude form of armor made from stacked paper and rolls of duct tape, this " "breastplate offers a surprising amount of protection." msgstr "" -" bookplateA forma bruta de armadura feita de papel empilhado e rolos " -"defitaadesiva, este peitoral oferece uma quantidade surpreendente " -"deproteção." #: lang/json/ARMOR_from_json.py msgid "ankle sheath" @@ -6804,7 +6022,7 @@ msgstr[1] "" #. ~ Use action holster_prompt for pair of rollerskates. #: lang/json/ARMOR_from_json.py msgid "Sheath knife" -msgstr "faca de tornozelo" +msgstr "" #. ~ Description for ankle sheath #: lang/json/ARMOR_from_json.py @@ -6812,8 +6030,6 @@ msgid "" "A small concealed knife sheath worn on the ankle. It is awkward to use " "without practice. Activate to sheathe/draw a weapon." msgstr "" -" Uma pequena bainha de faca escondida usada no tornozelo. É estranho " -"usarsemprática. Ative para embainhar / sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "spear strap" @@ -6830,7 +6046,7 @@ msgstr "" #. ~ Use action holster_prompt for spear strap. #: lang/json/ARMOR_from_json.py msgid "Holster spear" -msgstr "Lança de coldre" +msgstr "" #. ~ Description for spear strap #: lang/json/ARMOR_from_json.py @@ -6839,9 +6055,6 @@ msgid "" "hands free. You have to duck to get through doors while one's in it, " "though. Activate to holster/draw a weapon." msgstr "" -" Uma correia de couro amarrada ao redor do tronco para " -"carregarlançasenquanto mantém as mãos livres. Você tem que se abaixar para " -"passarpelasportas enquanto está nela. Ative o coldre / sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "bowler hat" @@ -6855,8 +6068,6 @@ msgid "" "The only hat for a made man. Look like a real good fella while laughing in " "the face of your foes!" msgstr "" -" chapéu de cocoO único chapéu para um homem feito. Parece um cara " -"muitobomenquanto ri na cara dos seus inimigos!" #: lang/json/ARMOR_from_json.py msgid "boxer briefs" @@ -6868,7 +6079,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "The age-old question, boxers or briefs? Your answer? Yes." msgstr "" -"briefers boxerThe antiga questão, boxers ou cuecas? Sua resposta? Sim." #: lang/json/ARMOR_from_json.py msgid "boxer shorts" @@ -6881,8 +6091,6 @@ msgstr[1] "" msgid "" "Men's boxer shorts. More fashionable than briefs and just as comfortable." msgstr "" -" shorts boxerCamisetas masculinas. Mais elegante do que cuecas " -"etãoconfortável." #: lang/json/ARMOR_from_json.py msgid "pair of boxing gloves" @@ -6896,8 +6104,6 @@ msgid "" "A pair of big, red, 8 oz. boxing gloves. They make dexterous tasks near " "impossible, but provide ample protection." msgstr "" -" par de luvas de boxeUm par de grande, vermelho, 8 oz. luvas de boxe. " -"Elesfazem tarefas hábeis quase impossíveis, mas fornecem ampla proteção." #: lang/json/ARMOR_from_json.py msgid "boy shorts" @@ -6910,8 +6116,6 @@ msgstr[1] "" msgid "" "Female underwear similar to men's boxer shorts, but much more close-fitting." msgstr "" -" calções de rapazesCalças femininas semelhantes aos cuecas masculinas, " -"masmuito mais justas." #: lang/json/ARMOR_from_json.py msgid "bra" @@ -6924,8 +6128,6 @@ msgstr[1] "" msgid "" "A simple bra. For protecting those bits you don't want zombies to look at." msgstr "" -" braA sutiã simples. Para proteger os bits que você não quer que " -"oszumbisolhem." #: lang/json/ARMOR_from_json.py msgid "breeches" @@ -6939,8 +6141,6 @@ msgid "" "A well-made pair of old-fashioned pants, made of stiff yet baggy material. " "Comfortable, but lacks pockets." msgstr "" -" Calças Um par bem feito de calças antiquadas, feitas de material duro, " -"masfolgado. Confortável, mas não tem bolsos." #: lang/json/ARMOR_from_json.py msgid "briefcase" @@ -6952,8 +6152,6 @@ msgstr[1] "maletas" #: lang/json/ARMOR_from_json.py msgid "Useful for carrying money, documents, or smuggled goods." msgstr "" -" maletaUseful para transportar dinheiro, documentos " -"oumercadoriascontrabandeadas." #: lang/json/ARMOR_from_json.py msgid "briefs" @@ -6965,7 +6163,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of briefs. Comfortable underwear worn by men." msgstr "" -"cuecasUm par de cuecas. Roupa interior confortável usada pelos homens." #: lang/json/ARMOR_from_json.py msgid "back scabbard" @@ -6980,9 +6177,6 @@ msgid "" "strapped to the back, it's very difficult to draw from without considerable " "practice. Activate to sheath/draw a sword." msgstr "" -" Bainha de costasUma bainha de couro, grande o suficiente para " -"quasequalquerespada. Projetado para ser amarrado na parte de trás, é " -"muitodifícil deusar sem muita prática. Ative a bainha / desenhe uma espada." #: lang/json/ARMOR_from_json.py msgid "turnout coat" @@ -6996,9 +6190,6 @@ msgid "" "A heavy protective coat worn by firefighters. Highly resistant to heat and " "flame, it provides excellent protection from injury." msgstr "" -" casaco de proteçãoUm pesado casaco protetor usado pelos bombeiros. " -"Altamenteresistente ao calor e à chama, oferece excelente proteção " -"contraferimentos." #: lang/json/ARMOR_from_json.py msgid "turnout trousers" @@ -7012,9 +6203,6 @@ msgid "" "A heavy pair of protective overalls worn by firefighters. Highly resistant " "to heat and flame, they provide excellent protection from injury." msgstr "" -" calça de participação Um pesado par de macacões de proteção " -"usadospelosbombeiros. Altamente resistente ao calor e à chama, eles " -"fornecemexcelenteproteção contra ferimentos." #: lang/json/ARMOR_from_json.py msgid "camisole" @@ -7028,8 +6216,6 @@ msgid "" "A small camisole made from silk. Typically used as an undergarment, they " "are light and easy to wear." msgstr "" -" camisoleA pequena camisola feita de seda. Normalmente usado como " -"umaroupaíntima, eles são leves e fáceis de usar." #: lang/json/ARMOR_from_json.py msgid "Foodperson's cape" @@ -7051,7 +6237,7 @@ msgstr[1] "" #. ~ Description for cassock #: lang/json/ARMOR_from_json.py msgid "A piece of clerical clothing, usually worn by Christian priests." -msgstr "Uma peça de roupa clerical, geralmente usada por padres cristãos." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of chainmail sleeves" @@ -7077,8 +6263,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A customized chainmail hood. Can be worn comfortably under helmets." msgstr "" -" chainmail coifA capa de cota de malha personalizada. Pode " -"serusadoconfortavelmente sob capacetes." #: lang/json/ARMOR_from_json.py msgid "chainmail leggings" @@ -7148,8 +6332,6 @@ msgid "" "A pair of black leather chaps. Very tough and light, but doesn't offer any " "storage." msgstr "" -" Chaps de couro Um par de calças de couro preto. Muito resistente e leve, " -"masnão oferece armazenamento." #: lang/json/ARMOR_from_json.py msgid "hard chest guard" @@ -7174,8 +6356,6 @@ msgid "" "Rags wrapped around the chest. Preserves your modesty and keeps things out " "of the way, but not good for much else." msgstr "" -" chestwrapRags enrolado no peito. Preserva a sua modéstia e mantém " -"ascoisasfora do caminho, mas não é bom para muito mais." #: lang/json/ARMOR_from_json.py msgid "fur chestwrap" @@ -7189,9 +6369,6 @@ msgid "" "Fur pelts wrapped around the chest. Preserves your modesty and keeps things" " out of the way, but not good for much else." msgstr "" -" peles de pele de peloFur peles enroladas em volta do peito. Preserva " -"asuamodéstia e mantém as coisas fora do caminho, mas não é bom para " -"muitomais." #: lang/json/ARMOR_from_json.py msgid "leather chestwrap" @@ -7205,8 +6382,6 @@ msgid "" "Leather patches wrapped around the chest. Preserves your modesty and keeps " "things out of the way, but not good for much else." msgstr "" -" baú de couroEmbalados de couro enrolados no peito. Preserva a sua " -"modéstiaemantém as coisas fora do caminho, mas não é bom para muito mais." #: lang/json/ARMOR_from_json.py msgid "wool chestwrap" @@ -7220,9 +6395,6 @@ msgid "" "Felt patches wrapped around the chest. Preserves your modesty and keeps " "things out of the way, but not good for much else." msgstr "" -" envoltório de lã enrolado com remendos de feltro enrolados nopeito. " -"Preserva a sua modéstia e mantém as coisas fora do caminho, mas não ébompara" -" muito mais." #: lang/json/ARMOR_from_json.py msgid "cleansuit" @@ -7237,9 +6409,6 @@ msgid "" " fragile, wearing it will provide excellent protection against ambient " "radiation." msgstr "" -" cleansuitUm terno de manuseio de materiais perigosos simples. Emboraumpouco" -" restritivo e frágil, o uso proporcionará excelente proteção contraaradiação" -" ambiente." #: lang/json/ARMOR_from_json.py msgid "cloak" @@ -7250,7 +6419,7 @@ msgstr[1] "" #. ~ Description for cloak #: lang/json/ARMOR_from_json.py msgid "A heavy cloak meant to be thrown over your body." -msgstr "manto pesado significava ser jogado sobre seu corpo." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "fur cloak" @@ -7261,7 +6430,7 @@ msgstr[1] "" #. ~ Description for fur cloak #: lang/json/ARMOR_from_json.py msgid "A heavy fur cloak meant to be thrown over your body." -msgstr "Um manto de peles pesadas deveria ser jogado sobre o seu corpo." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather cloak" @@ -7275,8 +6444,6 @@ msgid "" "A heavy leather cloak meant to be thrown over your body. Provides decent " "protection." msgstr "" -" Um manto de couro pesado deveria ser jogado sobre o seu corpo. " -"Forneceproteção decente." #: lang/json/ARMOR_from_json.py msgid "wool cloak" @@ -7288,7 +6455,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A heavy woolen cloak meant to be thrown over your body." msgstr "" -"manto de lãUma capa de lã pesada deveria ser jogada sobre o seu corpo." #: lang/json/ARMOR_from_json.py msgid "clown suit" @@ -7301,8 +6467,6 @@ msgstr[1] "fantasias de palhaço" msgid "" "A colorful and ridiculous costume fit for a clown. Provides decent storage." msgstr "" -" traje de palhaço Um traje colorido e ridículo para um palhaço. " -"Fornecearmazenamento decente." #: lang/json/ARMOR_from_json.py msgid "fur coat" @@ -7314,8 +6478,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A fur coat with a couple small pockets. Extremely warm." msgstr "" -" casaco de peleUm casaco de pele com um par de pequenos bolsos. " -"Extremamentequente." #: lang/json/ARMOR_from_json.py msgid "faux fur coat" @@ -7329,9 +6491,6 @@ msgid "" "A garishly-colored faux fur coat with a couple small pockets. Although not " "as warm as the natural fur, it gives you some of that unique flair." msgstr "" -" Um casaco de peles artificiais de cores garridascom um par de " -"pequenosbolsos. Embora não seja tão quente quanto o pêlonatural, ele dá a " -"você umpouco desse estilo único." #: lang/json/ARMOR_from_json.py msgid "sable coat" @@ -7345,8 +6504,6 @@ msgid "" "A very well-made fur coat, featuring thick panels of sable fur. Very warm " "and very good-looking." msgstr "" -" Um casaco de pele muito bem feito, com grossos painéis depele de zibelina. " -"Muito quente e muito bonito." #: lang/json/ARMOR_from_json.py msgid "lab coat" @@ -7360,8 +6517,6 @@ msgid "" "A long white coat with several large pockets. Comes with a very nice pocket" " protector." msgstr "" -" Casaco de laboratórioUm casaco branco longo com vários bolsos grandes. " -"Vemcom um protetor de bolso muito bom." #: lang/json/ARMOR_from_json.py msgid "rain coat" @@ -7375,8 +6530,6 @@ msgid "" "A plastic coat with a hood and two very large pockets. Provides protection " "from rain." msgstr "" -" capa de chuvaUm casaco de plástico com um capuz e dois bolsos muitograndes." -" Fornece proteção contra chuva." #: lang/json/ARMOR_from_json.py msgid "gutskin parka" @@ -7390,9 +6543,6 @@ msgid "" "An intricately sewn coat of treated and split intestines, prized for its " "light weight and waterproofness among the indigenous peoples of the arctic." msgstr "" -" gutskin parka Uma camada intrinsecamente costurada de intestinos " -"tratadosedivididos, valorizada por seu peso leve e impermeabilidade entre " -"ospovosindígenas do Ártico." #: lang/json/ARMOR_from_json.py msgid "winter coat" @@ -7404,8 +6554,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A padded coat with deep pockets and a hood. Very warm." msgstr "" -" casaco de invernoUm casaco acolchoado com bolsos profundos e um capuz. " -"Muitoquente." #: lang/json/ARMOR_from_json.py msgid "leather corset" @@ -7419,8 +6567,6 @@ msgid "" "A snug, black leather corset. Has no pockets, but its thick material " "provides good protection from harm." msgstr "" -" espartilho de couroUm espartilho de couro preto e justo. Não tem bolsos, " -"masseu material grosso fornece boa proteção contra danos." #: lang/json/ARMOR_from_json.py msgid "cowboy hat" @@ -7434,8 +6580,6 @@ msgid "" "Whether yer hunting varmints, fixing up the ranch, or heading into the " "sunset, this is the hat for the job." msgstr "" -" Chapéu de vaqueiro Se você está caçando varmints, arrumando o rancho, " -"ouindo para o pôr do sol, este é o chapéu para o trabalho." #: lang/json/ARMOR_from_json.py msgid "knit cowl" @@ -7449,8 +6593,6 @@ msgid "" "A snuggly woolen cowl. It's one of those stylish and bulky cowls you see in" " fashion magazines." msgstr "" -" malha capuz snuggly capuz de lã. É um daqueles elegantes e " -"volumososcapuzesque você vê nas revistas de moda." #: lang/json/ARMOR_from_json.py msgid "golden crown" @@ -7461,12 +6603,12 @@ msgstr[1] "" #. ~ Description for golden crown #: lang/json/ARMOR_from_json.py msgid "A delicate golden crown featuring flowering trees." -msgstr "coroa douradaUma coroa dourada delicada com árvores floridas." +msgstr "" #. ~ Description for golden crown #: lang/json/ARMOR_from_json.py msgid "A golden crown for the monarch of survivors." -msgstr "Uma coroa de ouro para o monarca dos sobreviventes." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "cuirass" @@ -7480,9 +6622,6 @@ msgid "" "A steel breastplate, and a vital part of plate armor. Even as full armor " "went into decline, cuirasses remained in use among cavalry in Europe." msgstr "" -" O peitoral de aço e uma parte vital da armadura de placas. Mesmo " -"quandoaarmadura completa entrou em declínio, as couraças continuaram em " -"usoentrea cavalaria na Europa." #: lang/json/ARMOR_from_json.py msgid "scrap cuirass" @@ -7512,11 +6651,6 @@ msgid "" "longer requires power, but also encumbers you greatly and doesn't provide " "internal thermal regulation." msgstr "" -" armadura de energia recuperadaThe DoubleTech Power Armor, Mk. I:Umaarmadura" -" pesada de poder básico, oferecendo muito boa proteçãocontraataques, mas " -"difícil de se mover. Este traje teve seus servos esistema deresfriamento " -"retirados, o que significa que ele não precisa maisdeenergia, mas também o " -"sobrecarrega grandemente e não obriga. tfornecerregulação térmica interna." #: lang/json/ARMOR_from_json.py msgid "salvaged power armor helmet" @@ -7533,12 +6667,6 @@ msgid "" "meaning it no longer requires power, but it has no internal chronometer and " "doesn't provide internal thermal regulation." msgstr "" -" capacete de blindagem de energia recuperadoUm capacete básico, " -"projetadopara uso com o DoubleTech Power Armor, Mk. I. Oferece " -"excelenteproteçãocontra ataques e riscos ambientais. Este processo teve " -"seucomputadorinterno e sistema de refrigeração retirados, o que significa " -"queele nãoprecisa mais de energia, mas não possui cronômetro interno e " -"nãoforneceregulação térmica interna." #: lang/json/ARMOR_from_json.py msgid "dinosaur suit" @@ -7552,9 +6680,6 @@ 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 "" -" traje do dinossauroUm traje de corpo inteiro na forma de " -"umdinossauroantropomórfico. É bastante oneroso e tem pouco armazenamento, " -"masé muitoquente." #: lang/json/ARMOR_from_json.py msgid "dive bag" @@ -7566,7 +6691,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A lightweight mesh backpack, commonly worn by swimmers and divers." msgstr "" -"mochila de malha leve, geralmente usada por nadadores e mergulhadores." #: lang/json/ARMOR_from_json.py msgid "down-filled blanket" @@ -7580,8 +6704,6 @@ msgid "" "Hiding under here will not protect you from the monsters, but it'll keep you" " warm." msgstr "" -" Cobertores cheios de baixoEsconder-se aqui não o protegerá dos monstros, " -"masvai mantê-lo aquecido." #: lang/json/ARMOR_from_json.py msgid "dragon skin vest" @@ -7596,9 +6718,6 @@ msgid "" "ceramic disks used in its construction make it impossible to repair, only " "replace." msgstr "" -" colete de pele de dragão Um colete de última geração, leve, " -"flexíveleresistente a balas. Os discos cerâmicos utilizados na " -"suaconstruçãoimpossibilitam a reparação, apenas substituem." #: lang/json/ARMOR_from_json.py msgid "dress" @@ -7612,8 +6731,6 @@ msgid "" "A long cotton dress. Though comfortable to wear, it lacks any storage " "space." msgstr "" -" dressA longo vestido de algodão. Apesar de confortável de usar, " -"nãopossuiespaço de armazenamento." #: lang/json/ARMOR_from_json.py msgid "dress shirt" @@ -7625,8 +6742,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A white button-down shirt with long sleeves. Looks professional!" msgstr "" -" camisa de vestidoA camisa de botão branca com mangas compridas. " -"Pareceprofissional!" #: lang/json/ARMOR_from_json.py msgid "wedding dress" @@ -7638,7 +6753,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A beautiful white wedding dress. What good will it be now?" msgstr "" -" vestido de noivaUm lindo vestido de noiva branco. Que bem vai ser agora?" #: lang/json/ARMOR_from_json.py msgid "duffel bag" @@ -7651,8 +6765,6 @@ msgstr[1] "" msgid "" "A huge duffel bag. Provides plenty of storage, but is severely encumbering." msgstr "" -" mochila Uma mochila enorme. Fornece muito armazenamento, mas " -"estágravementeonerando." #: lang/json/ARMOR_from_json.py msgid "tactical dump pouch" @@ -7666,8 +6778,6 @@ msgid "" "An expandable pouch secured with straps. Provides a bit of extra storage " "with minimal encumbrance." msgstr "" -" bolsa de despejo tático Uma bolsa expansível presa com alças. " -"Forneceumpouco de armazenamento extra com o mínimo de ônus." #: lang/json/ARMOR_from_json.py msgid "duster" @@ -7679,8 +6789,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A rugged full-length duster coat. Has many pockets for storage." msgstr "" -" dusterA casaco robusto de comprimento total robusto. Tem muitos " -"bolsosparaarmazenamento." #: lang/json/ARMOR_from_json.py msgid "fur duster" @@ -7692,8 +6800,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thick fur full-length duster. Has many pockets for storage." msgstr "" -" espanador de pele DusterA espanador de comprimento total de pele. " -"Temmuitosbolsos para armazenamento." #: lang/json/ARMOR_from_json.py msgid "faux fur duster" @@ -7707,8 +6813,6 @@ msgid "" "A thick faux fur duster, falling below your knees. Has many pockets for " "storing things." msgstr "" -" faux fur dusterUm espanador de peles artificiais de espessura, " -"caindoabaixode seus joelhos. Tem muitos bolsos para armazenar coisas." #: lang/json/ARMOR_from_json.py msgid "leather duster" @@ -7720,8 +6824,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thick leather full-length duster. Has many pockets for storage." msgstr "" -" Duster de couro Um espanador de comprimento total de couro grosso. " -"Temmuitos bolsos para armazenamento." #: lang/json/ARMOR_from_json.py msgid "survivor duster" @@ -7735,9 +6837,6 @@ msgid "" "A Kevlar armored custom full-length duster, covered with pouches and " "pockets. Comfortable, durable, and great for storage." msgstr "" -" Sobrevivente DusterA Kevlar blindado espanador personalizado " -"decomprimentototal, coberto com bolsas e bolsos. Confortável, durável " -"eexcelente paraarmazenamento." #: lang/json/ARMOR_from_json.py msgid "pair of ear plugs" @@ -7749,8 +6848,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Industrial grade ear plugs. They fit inside the ear." msgstr "" -" par de tampões de ouvidoTampões de ouvido de grau industrial. " -"Elescabemdentro do ouvido." #: lang/json/ARMOR_from_json.py msgid "eboshi" @@ -7764,8 +6861,6 @@ msgid "" "A high, black cap with a very narrow top. Traditionally worn by Shinto " "priests." msgstr "" -" eboshi Um gorro alto preto com um topo muito estreito. " -"Tradicionalmenteusado por sacerdotes xintoístas." #: lang/json/ARMOR_from_json.py msgid "pair of elbow pads" @@ -7777,8 +6872,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of elbow pads made of stout plastic and cloth." msgstr "" -" par de almofadas de cotovelo Um par de cotoveleiras feitas " -"deplásticoresistente e pano." #: lang/json/ARMOR_from_json.py msgid "pair of stylish sunglasses" @@ -7792,8 +6885,6 @@ msgid "" "A pair of stylish sunglasses. Look good while keeping the glare out of your" " eyes." msgstr "" -" par de óculos de sol à modaUm par de óculos de sol à moda. Olhebem, " -"mantendo o brilho dos seus olhos." #: lang/json/ARMOR_from_json.py msgid "fanny pack" @@ -7805,7 +6896,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Provides a bit of extra storage, with minimal encumbrance." msgstr "" -" fanny packFornece um pouco de armazenamento extra, com o mínimo de ônus." #: lang/json/ARMOR_from_json.py msgid "fencing jacket" @@ -7819,9 +6909,6 @@ msgid "" "A padded jacket with the zipper on the back used by fencers to prevent " "accidents. It doesn't have any storage room, but it is very comfortable." msgstr "" -" jaqueta de esgrimaUm casaco acolchoado com o zíper nas costas " -"usadoporesgrimistas para evitar acidentes. Não possui depósito, mas " -"émuitoconfortável." #: lang/json/ARMOR_from_json.py msgid "fencing mask" @@ -7833,8 +6920,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A tough hood made of steel mesh used by fencers." msgstr "" -" máscara de esgrimaUm capô resistente feito de malha de aço " -"usadoporesgrimistas." #: lang/json/ARMOR_from_json.py msgid "fencing pants" @@ -7846,8 +6931,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of reinforced pants used by fencers to prevent injuries." msgstr "" -" calça de esgrimaUm par de calças reforçadas usadas por " -"esgrimistasparaevitar ferimentos." #: lang/json/ARMOR_from_json.py msgid "pair of fire gauntlets" @@ -7862,9 +6945,6 @@ msgid "" "protection. Highly resistant to heat and flame, they provide excellent " "protection from injury." msgstr "" -" par de luvas de fogoUm pesado par de luvas, usado por " -"bombeirosemetalúrgicos para proteção contra o calor. Altamente resistente ao" -" caloreà chama, eles fornecem excelente proteção contra ferimentos." #: lang/json/ARMOR_from_json.py msgid "firefighter helmet" @@ -7878,9 +6958,6 @@ msgid "" "A distinctive helmet worn by firefighters. More than just a piece of " "firefighting equipment, it serves as a badge of honor and respect." msgstr "" -" capacete de bombeiro Um capacete distinto usado pelos bombeiros. Mais " -"doqueapenas um equipamento de combate a incêndios, serve como um " -"distintivodehonra e respeito." #: lang/json/ARMOR_from_json.py msgid "firefighter belt" @@ -7901,7 +6978,7 @@ msgstr "" #. ~ Use action holster_prompt for survivor utility belt (holster). #: lang/json/ARMOR_from_json.py msgid "Attach what to belt loop?" -msgstr "Anexar o que cinto cinto?" +msgstr "" #. ~ Description for firefighter belt #: lang/json/ARMOR_from_json.py @@ -7910,9 +6987,6 @@ msgid "" " doubles as an equipment belt with a reinforced loop for holding a large " "tool." msgstr "" -" Um forte cinto de bombeiro. Útil para manter seu equipamento de bancas, " -"eletambém funciona como um cinto de equipamento com um laço " -"reforçadoparasegurar uma ferramenta grande." #: lang/json/ARMOR_from_json.py msgid "pair of fishing waders" @@ -7924,8 +6998,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Waterproof plastic fishing waders with a single large front pocket." msgstr "" -" par de pernaltas de pesca Waders de pesca de plástico impermeável " -"comumúnico bolso frontal grande." #: lang/json/ARMOR_from_json.py msgid "pair of fit-over sunglasses" @@ -7939,9 +7011,6 @@ msgid "" "A pair of fit-over sunglasses designed to be worn over a pair of corrective " "glasses. Good for keeping the glare out of your eyes." msgstr "" -" par de óculos de sol de ajusteUm par de óculos de sol de " -"encaixeprojetadospara serem usados sobre um par de óculos corretivos. Bom " -"paramanter obrilho dos seus olhos." #: lang/json/ARMOR_from_json.py msgid "flag shirt" @@ -7952,7 +7021,7 @@ msgstr[1] "" #. ~ Description for flag shirt #: lang/json/ARMOR_from_json.py msgid "A t-shirt embroidered with the pattern of an American flag." -msgstr "flag shirtA t-shirt bordado com o padrão de uma bandeira americana." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "flotation vest" @@ -7965,8 +7034,6 @@ msgstr[1] "" msgid "" "A brightly-colored vest designed to keep you upright and floating in water." msgstr "" -" colete de flutuaçãoColete de cores vivas projetado para mantê-lo " -"eretoeflutuando na água." #: lang/json/ARMOR_from_json.py msgid "makeshift flotation vest" @@ -7978,8 +7045,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A flotation vest made of inflated animal skins." msgstr "" -" colete de flutuação improvisado. Colete de flutuação feito de " -"pelesdeanimais infladas." #: lang/json/ARMOR_from_json.py msgid "football armor" @@ -7993,8 +7058,6 @@ msgid "" "Heavy plastic armor for your upper torso. Normally worn by football " "players." msgstr "" -" armadura de futebolArmadura de plástico pesada para o seu torsosuperior. " -"Normalmente usado por jogadores de futebol." #: lang/json/ARMOR_from_json.py msgid "survivor firesuit" @@ -8009,9 +7072,6 @@ msgid "" "and a reinforced flame-resistant Nomex jumpsuit. Protects the wearer from " "fire and the elements." msgstr "" -" Fato de combate para sobreviventesPlaca combinada pesada e feita à " -"mãofeitade um colete à prova de balas e um macacão Nomex reforçado " -"resistenteachamas. Protege o usuário contra o fogo e os elementos." #: lang/json/ARMOR_from_json.py msgid "fur blanket" @@ -8023,8 +7083,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A heavy fur blanket that covers most of your body." msgstr "" -" Cobertor de pelesUm cobertor de peles pesadas que cobre a maior parte " -"doseucorpo." #: lang/json/ARMOR_from_json.py msgid "gambeson" @@ -8038,9 +7096,6 @@ msgid "" "A thick jacket of quilted fabric, designed to be worn underneath mail or " "other armor. Or worn on its own, if you can't afford proper armor." msgstr "" -" gambesonA grossa jaqueta de tecido acolchoado, projetado para ser " -"usadoporbaixo do correio ou outra armadura. Ou usado sozinho, se você " -"nãopuderpagar uma armadura adequada." #: lang/json/ARMOR_from_json.py msgid "pair of bone armor gauntlets" @@ -8053,8 +7108,6 @@ msgstr[1] "" msgid "" "Leather gauntlets with bone armor reinforcement. Very light and strong." msgstr "" -" par de manoplas de armadura ósseaManoplas de couro com reforço " -"dearmaduraóssea. Muito leve e forte." #: lang/json/ARMOR_from_json.py msgid "pair of chitinous gauntlets" @@ -8067,8 +7120,6 @@ msgstr[1] "" msgid "" "Gauntlets made from the exoskeletons of insects. Very light and durable." msgstr "" -" par de manoplas quitinosasGauntlets feitas a partir do " -"exoesqueletodeinsetos. Muito leve e durável." #: lang/json/ARMOR_from_json.py msgid "pair of biosilicified chitin gauntlets" @@ -8082,9 +7133,6 @@ msgid "" "Gauntlets crafted from the carefully cleaned and pruned biosilicified " "exoskeletons of acidic ants. Acid-resistant and very durable." msgstr "" -" par de manoplas de quitina biosilicificadaGauntlets criados a " -"partirdeexoesqueletos biosilicificados cuidadosamente limpos e podados " -"deformigasácidas. Resistente a ácidos e muito durável." #: lang/json/ARMOR_from_json.py msgid "pair of leather armor gauntlets" @@ -8096,8 +7144,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Heavy fingerless leather gloves. Very flexible and comfortable." msgstr "" -" par de manoplas de armadura de couroLuvas de couro sem dedos pesadas. " -"Muitoflexível e confortável." #: lang/json/ARMOR_from_json.py msgid "pair of ballistic glasses" @@ -8111,9 +7157,6 @@ msgid "" "Modern tactical eyewear that protects from small projectiles and fragments." " Provides excellent protection from environmental dangers." msgstr "" -" Par de óculos balísticos. Óculos táticos modernos que protegem " -"depequenosprojéteis e fragmentos. Fornece excelente proteção " -"contraperigosambientais." #: lang/json/ARMOR_from_json.py msgid "pair of eclipse glasses" @@ -8128,10 +7171,6 @@ msgid "" "with a layer of aluminum coating. They allow safe viewing of extremely " "bright and harmful sources of light, like the sun during a solar eclipse." msgstr "" -" par de óculos eclipse Um par de óculos de armação de papelão " -"comlentesfiltradas UV e IR cobertas com uma camada de revestimento " -"dealumínio. Elespermitem a visualização segura de fontes de luz " -"extremamentebrilhantes enocivas, como o sol durante um eclipse solar." #: lang/json/ARMOR_from_json.py msgid "pair of bifocal glasses" @@ -8145,9 +7184,6 @@ msgid "" "A pair of bifocal glasses for those who are both near-sighted and far-" "sighted. You can use them to focus sunlight." msgstr "" -" par de óculos bifocaisUm par de óculos bifocais para aqueles que " -"sãotantomíopes quanto perspicazes. Você pode usá-los para focar a luz do " -"sol." #: lang/json/ARMOR_from_json.py msgid "pair of eyeglasses" @@ -8161,8 +7197,6 @@ msgid "" "A pair of glasses for the near-sighted. The concave lenses diffuse the " "sunlight, rendering them useless for starting fires." msgstr "" -" par de óculos Um par de óculos para o míope. As lentes côncavas " -"difundemaluz do sol, tornando-as inúteis para iniciar incêndios." #: lang/json/ARMOR_from_json.py msgid "monocle" @@ -8177,9 +7211,6 @@ msgid "" "sightedness. The concave lenses diffuse the sunlight, rendering them " "useless for starting fires." msgstr "" -" monocleAn artigo essencial do vestuário do cavalheiro. Também " -"corrigeamiopia. As lentes côncavas difundem a luz do sol, tornando-as " -"inúteisparainiciar incêndios." #: lang/json/ARMOR_from_json.py msgid "pair of reading glasses" @@ -8193,8 +7224,6 @@ msgid "" "A pair of glasses for the far-sighted. Useless for anyone else. You can " "use them to focus sunlight." msgstr "" -" par de óculos de leituraUm par de óculos para o clarividente. " -"Inútilparaqualquer outra pessoa. Você pode usá-los para focar a luz do sol." #: lang/json/ARMOR_from_json.py msgid "pair of safety glasses" @@ -8208,9 +7237,6 @@ msgid "" "A pair of plastic glasses, used in workshops, sports, chemistry labs, and " "many other places. Provides great protection from damage." msgstr "" -" par de óculos de segurançaUm par de óculos de plástico, usado emoficinas, " -"esportes, laboratórios de química e muitos outros lugares. " -"Fornecegrandeproteção contra danos." #: lang/json/ARMOR_from_json.py msgid "white glove" @@ -8221,7 +7247,7 @@ msgstr[1] "" #. ~ Description for white glove #: lang/json/ARMOR_from_json.py msgid "A single white glove covered with hundreds of rhinestones." -msgstr "luva branca Uma única luva branca coberta com centenas de strass." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of bag gloves" @@ -8233,8 +7259,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of disposable plastic bags, adapted to be used as gloves." msgstr "" -" par de luvas para sacosUm par de sacolas plásticas descartáveis, " -"adaptadaspara serem usadas como luvas." #: lang/json/ARMOR_from_json.py msgid "pair of fingerless gloves" @@ -8247,8 +7271,6 @@ msgstr[1] "" msgid "" "A pair of leather gloves with no fingers, allowing greater manual dexterity." msgstr "" -" par de luvas sem dedosUm par de luvas de couro sem dedos, " -"permitindomaiordestreza manual." #: lang/json/ARMOR_from_json.py msgid "pair of armored fingerless gloves" @@ -8262,9 +7284,6 @@ msgid "" "A pair of leather gloves with no fingers, allowing greater manual dexterity." " These have been crudely reinforced with steel guards across the back." msgstr "" -" par de luvas sem dedos blindadasUm par de luvas de couro semdedos, " -"permitindo maior destreza manual. Estes foram grosseiramentereforçados " -"comguardas de aço nas costas." #: lang/json/ARMOR_from_json.py msgid "pair of survivor firegloves" @@ -8278,9 +7297,6 @@ msgid "" "A pair of customized, Kevlar armored Nomex gloves, modified to be easy to " "wear while providing maximum protection under extreme conditions." msgstr "" -" par de óculos de sol sobreviventeUm par de luvas de Nomex " -"blindadasKevlarpersonalizadas, modificadas para serem fáceis de usar, " -"proporcionandoproteção máxima sob condições extremas." #: lang/json/ARMOR_from_json.py msgid "pair of fur gloves" @@ -8292,8 +7308,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of warm fur gloves. They are somewhat cumbersome." msgstr "" -" par de luvas de peleUm par de luvas de peles quentes. Eles são " -"umpoucocomplicados." #: lang/json/ARMOR_from_json.py msgid "pair of survivor wetsuit gloves" @@ -8307,9 +7321,6 @@ msgid "" "A pair of customized, Kevlar armored neoprene gloves, modified to be easy to" " wear while providing maximum protection under extreme conditions." msgstr "" -" um par de luvas de neoprene para sobreviventesUm par de luvas " -"deneopreneKevlar blindadas personalizadas, modificadas para serem fáceis " -"deusar, proporcionando proteção máxima sob condições extremas." #: lang/json/ARMOR_from_json.py msgid "pair of heavy survivor gloves" @@ -8324,9 +7335,6 @@ msgid "" "to be easy to wear while providing maximum protection under extreme " "conditions." msgstr "" -" par de luvas pesadas para sobreviventesUm par de luvas de " -"Kevlarblindadascom encosto de aço altamente personalizadas, modificadas " -"paraserem fáceisde usar, fornecendo proteção máxima sob condições extremas." #: lang/json/ARMOR_from_json.py msgid "pair of leather gloves" @@ -8337,7 +7345,7 @@ msgstr[1] "" #. ~ Description for pair of leather gloves #: lang/json/ARMOR_from_json.py msgid "A thin pair of black leather gloves." -msgstr "par de luvas de couroUm par de luvas de couro preto." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of light gloves" @@ -8348,7 +7356,7 @@ msgstr[1] "" #. ~ Description for pair of light gloves #: lang/json/ARMOR_from_json.py msgid "A pair of cotton gloves." -msgstr "Um par de luvas de algodão" +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of glove liners" @@ -8361,8 +7369,6 @@ msgstr[1] "" msgid "" "A pair of thin cotton gloves. Often used as a liner beneath other gloves." msgstr "" -" par de forros de luvasUm par de luvas de algodão fino. " -"Frequentementeusadocomo forro sob outras luvas." #: lang/json/ARMOR_from_json.py msgid "pair of light survivor gloves" @@ -8376,9 +7382,6 @@ msgid "" "A pair of customized, Kevlar armored cloth gloves, modified to be easy to " "wear while providing maximum protection under extreme conditions." msgstr "" -" par de luvas de sobrevivência leveUm par de luvas de " -"tecidoKevlarpersonalizadas, modificadas para serem fáceis de usar, " -"proporcionandoproteção máxima sob condições extremas." #: lang/json/ARMOR_from_json.py msgid "pair of medical gloves" @@ -8390,8 +7393,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of thin latex gloves, designed to limit the spread of disease." msgstr "" -" par de luvas médicas Um par de luvas de látex finas, projetado paralimitara" -" propagação da doença." #: lang/json/ARMOR_from_json.py msgid "pair of armored gauntlets" @@ -8403,8 +7404,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "An extremely heavy set of armor-plated leather gloves." msgstr "" -" par de manoplas blindadasUm conjunto extremamente pesado de luvas " -"decouroblindadas." #: lang/json/ARMOR_from_json.py msgid "pair of rubber gloves" @@ -8417,8 +7416,6 @@ msgstr[1] "" msgid "" "A pair of rubber gloves, often used while cleaning with caustic materials." msgstr "" -" par de luvas de borrachaUm par de luvas de borracha, " -"usadofrequentementedurante a limpeza com materiais cáusticos." #: lang/json/ARMOR_from_json.py msgid "pair of survivor gloves" @@ -8432,9 +7429,6 @@ msgid "" "A pair of customized, Kevlar armored leather gloves, modified to be easy to " "wear while providing maximum protection under extreme conditions." msgstr "" -" par de luvas de sobrevivênciaUm par de luvas de couro Kevlarpersonalizadas," -" modificadas para serem fáceis de usar, proporcionandoproteção máxima " -"sobcondições extremas." #: lang/json/ARMOR_from_json.py msgid "pair of tactical gloves" @@ -8448,8 +7442,6 @@ msgid "" "A pair of reinforced Kevlar tactical gloves. Commonly used by police and " "military units." msgstr "" -" par de luvas táticas Um par de luvas táticas reforçadas de Kevlar. " -"Comumenteusado pela polícia e unidades militares." #: lang/json/ARMOR_from_json.py msgid "pair of winter gloves" @@ -8461,7 +7453,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of padded gloves. Cumbersome, but warm." msgstr "" -" par de luvas de invernoUm par de luvas acolchoadas. Pesado, mas quente." #: lang/json/ARMOR_from_json.py msgid "pair of wool gloves" @@ -8472,7 +7463,7 @@ msgstr[1] "" #. ~ Description for pair of wool gloves #: lang/json/ARMOR_from_json.py msgid "A thick pair of wool gloves. Cumbersome, but warm." -msgstr "par de luvas de lãUm par de luvas grossas de lã. Pesado, mas quente." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of work gloves" @@ -8484,8 +7475,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A tough pair of gloves, for tough everyday work." msgstr "" -" par de luvas de trabalhoUm par de luvas resistentes, para um " -"trabalhodurotodos os dias." #: lang/json/ARMOR_from_json.py msgid "pair of cut resistant gloves" @@ -8512,9 +7501,6 @@ msgid "" "Provide small amounts of protection while punching and performing other " "general mischief." msgstr "" -" Um par de mãos envolve longos pedaços de tecido que devem ser " -"enroladosemsuas mãos. Forneça pequenas quantidades de proteção ao perfurar " -"erealizaroutros danos gerais." #: lang/json/ARMOR_from_json.py msgid "pair of fur hand wraps" @@ -8529,9 +7515,6 @@ msgid "" "Provide small amounts of protection while punching and performing other " "general mischief." msgstr "" -" Um par de envoltórios de mão de pele Peças de peles de animais que " -"devemserenroladas em suas mãos. Forneça pequenas quantidades de proteção " -"aoperfurare realizar outros danos gerais." #: lang/json/ARMOR_from_json.py msgid "pair of leather hand wraps" @@ -8546,9 +7529,6 @@ msgid "" "small amounts of protection while punching and performing other general " "mischief." msgstr "" -" par de envoltórios de mão de couro Peças de couro que devem ser " -"enroladasemsuas mãos. Forneça pequenas quantidades de proteção ao perfurar " -"erealizaroutros danos gerais." #: lang/json/ARMOR_from_json.py msgid "pair of wool hand wraps" @@ -8563,9 +7543,6 @@ msgid "" " small amounts of protection while punching and performing other general " "mischief." msgstr "" -" par de pedaços de lã de mãoLongos pedaços de lã que são feitos " -"paraseremenrolados em torno de suas mãos. Forneça pequenas quantidades " -"deproteçãoao perfurar e realizar outros danos gerais." #: lang/json/ARMOR_from_json.py msgid "pair of winter survivor gloves" @@ -8579,9 +7556,6 @@ msgid "" "A pair of customized, Kevlar armored fur gloves, modified to be easy to wear" " while providing maximum protection under extreme conditions." msgstr "" -" par de luvas de inverno para sobreviventesUm par de luvas de " -"peleblindadasKevlar personalizadas, modificadas para serem fáceis deusar, " -"proporcionando proteção máxima sob condições extremas." #: lang/json/ARMOR_from_json.py msgid "pair of XL survivor gloves" @@ -8595,9 +7569,6 @@ msgid "" "A massive pair of customized, Kevlar armored leather gloves, modified to be " "easy to wear while providing maximum protection under extreme conditions." msgstr "" -" par de luvas XL sobreviventesUm maciço par de luvas de " -"couroKevlarpersonalizadas, modificadas para serem fáceis de usar, " -"proporcionandoproteção máxima sob condições extremas." #: lang/json/ARMOR_from_json.py msgid "go bag" @@ -8638,8 +7609,6 @@ msgid "" "A large pair of goggles that completely seal off your eyes. Provides " "excellent protection from environmental dangers." msgstr "" -" par de óculos de esquiUm grande par de óculos que fecham " -"completamenteosolhos. Fornece excelente proteção contra perigos ambientais." #: lang/json/ARMOR_from_json.py msgid "pair of swim goggles" @@ -8650,7 +7619,7 @@ msgstr[1] "" #. ~ Description for pair of swim goggles #: lang/json/ARMOR_from_json.py msgid "A small pair of goggles made for swimming." -msgstr "Um par de óculos de natação feitos para nadar." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of welding goggles" @@ -8664,8 +7633,6 @@ msgid "" "A dark pair of goggles. They make seeing very difficult, but protect you " "from bright flashes." msgstr "" -" par de óculos de soldaUm par de óculos escuros. Eles tornam a " -"visãomuitodifícil, mas protegem você de flashes brilhantes." #: lang/json/ARMOR_from_json.py msgid "evening gown" @@ -8678,7 +7645,6 @@ msgstr[1] "" msgid "" "A luxurious evening gown. It accentuates your curves, or lack thereof." msgstr "" -" Um vestido de noite de luxo. Isso acentua suas curvas ou a falta delas." #: lang/json/ARMOR_from_json.py msgid "greatcoat" @@ -8691,8 +7657,6 @@ msgstr[1] "" msgid "" "A heavy, full-length wool coat. Cumbersome, but warm and with deep pockets." msgstr "" -" greatcoatUm casaco de lã pesado e comprido. Incômodo, mas quente ecombolsos" -" profundos." #: lang/json/ARMOR_from_json.py msgid "survivor wetsuit" @@ -8707,9 +7671,6 @@ msgid "" " vest and a reinforced neoprene wetsuit. Protects from the elements as well" " as from harm." msgstr "" -" roupa de mergulho para sobreviventesUma combinação de armadura leve, " -"feitaàmão, feita de um colete à prova de balas e um fato de " -"neoprenereforçado. Protege dos elementos, bem como do dano." #: lang/json/ARMOR_from_json.py msgid "hakama" @@ -8720,7 +7681,7 @@ msgstr[1] "" #. ~ Description for hakama #: lang/json/ARMOR_from_json.py msgid "Plain black hakama for use in kendo and other martial arts." -msgstr "hakamaPlain hakama preto para uso em kendo e outras artes marciais." +msgstr "" #. ~ Description for hakama #: lang/json/ARMOR_from_json.py @@ -8736,7 +7697,7 @@ msgstr[1] "" #. ~ Description for halter top #: lang/json/ARMOR_from_json.py msgid "A short top made from cotton. It is light and easy to wear." -msgstr "top de alçasUm top curto feito de algodão. É leve e fácil de usar." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "baseball cap" @@ -8747,7 +7708,7 @@ msgstr[1] "" #. ~ Description for baseball cap #: lang/json/ARMOR_from_json.py msgid "A Red Sox cap. It provides a little bit of warmth." -msgstr "boné de beisebol Red Sox cap. Ele fornece um pouco de calor." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "boonie hat" @@ -8761,9 +7722,6 @@ msgid "" "Also called a \"bucket hat.\" Often used in the military. Its wide brim " "helps keep the sun out of your eyes." msgstr "" -" boonie hatTambém chamado de \"chapéu de balde. \" Muitas vezes " -"usadonasforças armadas. Sua aba larga ajuda a manter o sol longe de seus " -"olhos." #: lang/json/ARMOR_from_json.py msgid "toque" @@ -8777,8 +7735,6 @@ msgid "" "A traditional chef's hat, standing tall and proud against the vulgarities of" " the world." msgstr "" -" chapéu de chef tradicional, de pé alto e orgulhoso contra as " -"vulgaridadesdomundo." #: lang/json/ARMOR_from_json.py msgid "cotton hat" @@ -8789,7 +7745,7 @@ msgstr[1] "" #. ~ Description for cotton hat #: lang/json/ARMOR_from_json.py msgid "A snug-fitting cotton hat. Quite warm." -msgstr "chapéu de algodãoUm chapéu de algodão confortável. Bastante quente." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "fur hat" @@ -8801,7 +7757,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A hat made from the pelts of animals. Extremely warm." msgstr "" -" chapéu de pele Um chapéu feito de peles de animais. Extremamente quente." #: lang/json/ARMOR_from_json.py msgid "faux fur hat" @@ -8815,9 +7770,6 @@ msgid "" "A stylish hat made of faux fur. Like real fur, but without the suffering, " "if the tag is to be believed. Very warm." msgstr "" -" chapéu de pele fauxUm chapéu elegante feito de peles artificiais. " -"Comopelesde verdade, mas sem o sofrimento, se a etiqueta é para " -"seracreditada. Muitoquente." #: lang/json/ARMOR_from_json.py msgid "hard hat" @@ -8831,8 +7783,6 @@ msgid "" "A hard plastic hat worn in construction sites. Excellent protection from " "cuts and percussion." msgstr "" -" chapéu duroUm chapéu de plástico duro usado em canteiros de obras. " -"Excelenteproteção contra cortes e percussão." #: lang/json/ARMOR_from_json.py msgid "hooded hard hat" @@ -8847,10 +7797,6 @@ msgid "" "it to serve as a makeshift hood. Makes it a bit more comfortable to wear, " "and better protects the neck from sun and rain." msgstr "" -" chapéu duro com capuzUm chapéu de plástico rígido usado em " -"locaisdeconstrução, com um pano dobrado sob ele para servir como " -"umcapôimprovisado. Torna um pouco mais confortável de usar e protege " -"melhoropescoço do sol e da chuva." #: lang/json/ARMOR_from_json.py msgid "hunting cap" @@ -8862,8 +7808,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A red plaid hunting cap with ear flaps. Notably warm." msgstr "" -" Tampão de caça da manta vermelha capA de caça com abas deorelha. " -"Notavelmente quente." #: lang/json/ARMOR_from_json.py msgid "knit hat" @@ -8874,7 +7818,7 @@ msgstr[1] "" #. ~ Description for knit hat #: lang/json/ARMOR_from_json.py msgid "A snug-fitting wool hat. Very warm." -msgstr "chapéu de malhaUm chapéu de lã confortável. Muito quente." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "newsboy cap" @@ -8888,8 +7832,6 @@ msgid "" "A slouching wool cap with a short front brim, traditionally associated with " "newspaper delivery boys. Quite warm." msgstr "" -" gorro de jornaleiro Um gorro de lã curvo com uma aba frontalcurta, " -"tradicionalmente associada a entregadores de jornal. Bastante quente." #: lang/json/ARMOR_from_json.py msgid "noise canceling headgear" @@ -8903,8 +7845,6 @@ msgid "" "Padding over your ears kept in place by some string. Blocks incoming " "sounds." msgstr "" -" headgear de cancelamento de ruídoPadding sobre suas orelhas mantidasnolugar" -" por alguma corda. Bloqueia os sons recebidos." #: lang/json/ARMOR_from_json.py msgid "sombrero" @@ -8919,9 +7859,6 @@ msgid "" "The wide brim keeps the sun out of your eyes, and a thin strap hooks around " "your chin." msgstr "" -" sombreroA sentiu sombrero laranja com costuras manuais brancas " -"eamarelastradicionais. A aba larga mantém o sol fora de seus olhos e umatira" -" finaengancha em seu queixo." #: lang/json/ARMOR_from_json.py msgid "headgear" @@ -8934,8 +7871,6 @@ msgstr[1] "" msgid "" "Lightweight sports headgear designed to protect the head while sparring." msgstr "" -" ChapelariaAcessórios esportivos leves projetados para proteger " -"acabeçadurante a luta." #: lang/json/ARMOR_from_json.py msgid "army helmet" @@ -8948,8 +7883,6 @@ msgstr[1] "" msgid "" "A heavy helmet that provides excellent protection from all sorts of damage." msgstr "" -" Capacete do ExércitoUm capacete pesado que fornece excelente " -"proteçãocontratodos os tipos de danos." #: lang/json/ARMOR_from_json.py msgid "baseball helmet" @@ -8963,8 +7896,6 @@ msgid "" "A hard plastic helmet that covers the head and ears. Designed to protect " "against a baseball to the head." msgstr "" -" baseball helmetUm capacete de plástico rígido que cobre a cabeça " -"easorelhas. Projetado para proteger contra uma bola de beisebol na cabeça." #: lang/json/ARMOR_from_json.py msgid "barbute helm" @@ -8978,8 +7909,6 @@ msgid "" "A medieval helmet that provides excellent protection for the head, with a Y " "shaped opening for the face." msgstr "" -" Barbudo HelmA capacete medieval que oferece excelente proteção paraacabeça," -" com uma abertura em forma de Y para o rosto." #: lang/json/ARMOR_from_json.py msgid "bike helmet" @@ -8991,8 +7920,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thick foam helmet. Designed to protect against concussion." msgstr "" -" capacete de bicicletaUm capacete espesso de espuma. Projetado " -"paraprotegercontra concussão." #: lang/json/ARMOR_from_json.py msgid "bone armor helmet" @@ -9006,8 +7933,6 @@ msgid "" "A grotesque, horned helmet carved from bone. Covers the entire head; very " "light and strong." msgstr "" -" capacete de armadura de ossoUm grotesco, capacete de chifre " -"esculpidoemosso. Cobre a cabeça inteira; muito leve e forte." #: lang/json/ARMOR_from_json.py msgid "chitinous helmet" @@ -9021,8 +7946,6 @@ msgid "" "A helmet made from the exoskeletons of insects. Covers the entire head; " "very light and durable." msgstr "" -" Capacete quitinosoUm capacete feito de exoesqueletos de insetos. " -"Cobreacabeça inteira; muito leve e durável." #: lang/json/ARMOR_from_json.py msgid "conical helm" @@ -9036,8 +7959,6 @@ msgid "" "A conical iron helm with additional protection for the neck, associated with" " the Mongol Empire." msgstr "" -" elmo cônico de ferro helicoidal cônico com proteção adicional paraopescoço," -" associado ao Império Mongol." #: lang/json/ARMOR_from_json.py msgid "biosilicified chitin helmet" @@ -9052,9 +7973,6 @@ msgid "" "exoskeletons of acidic ants. Covers the entire head; acid-resistant and " "very durable." msgstr "" -" capacete de quitina biosilicificadoUm capacete feito " -"deexosqueletosbiosilicificados cuidadosamente limpos e podados de " -"formigasácidas. Cobrea cabeça inteira; resistente a ácidos e muito durável." #: lang/json/ARMOR_from_json.py msgid "football helmet" @@ -9066,8 +7984,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A heavy plastic helmet normally worn by football players." msgstr "" -" football helmetUm capacete de plástico pesado normalmente usadoporjogadores" -" de futebol." #: lang/json/ARMOR_from_json.py msgid "galea" @@ -9081,8 +7997,6 @@ msgid "" "An Imperial Roman helmet, with distinct projections protecting the sides of " "the head." msgstr "" -" Capacete romano imperial da gala, com projeções distintas que " -"protegemoslados da cabeça." #: lang/json/ARMOR_from_json.py msgid "heavy survivor helmet" @@ -9096,9 +8010,6 @@ msgid "" "A customized, heavily armored steel and kevlar helmet, modified to provide " "maximum comfort and protection from harm." msgstr "" -" Capacete de Sobrevivente PesadoUm capacete de aço e kevlarpersonalizado, " -"fortemente blindado, modificado para proporcionar o máximoconforto eproteção" -" contra danos." #: lang/json/ARMOR_from_json.py msgid "kabuto" @@ -9112,8 +8023,6 @@ msgid "" "A medieval Japanese helmet with a scowling facemask that provides excellent " "protection to the entire head and face." msgstr "" -" kabuto Um capacete medieval japonês com uma máscara facial " -"queofereceexcelente proteção para toda a cabeça e face." #: lang/json/ARMOR_from_json.py msgid "leather armor helmet" @@ -9126,8 +8035,6 @@ msgstr[1] "" msgid "" "A thick leather helmet that provides excellent protection for the head." msgstr "" -" capacete de armadura de couroUm capacete de couro grosso " -"queforneceexcelente proteção para a cabeça." #: lang/json/ARMOR_from_json.py msgid "helmet liner" @@ -9140,8 +8047,6 @@ msgstr[1] "" msgid "" "This goes inside a helmet to help keep your head warm in cold climates." msgstr "" -" forro de capacete Isso vai dentro de um capacete para ajudar a " -"mantersuacabeça quente em climas frios." #: lang/json/ARMOR_from_json.py msgid "lobster helmet" @@ -9155,9 +8060,6 @@ msgid "" "A heavy helmet that provides excellent protection from all sorts of damage." " It has a tail coming off the back that provides protection to your neck." msgstr "" -" capacete de lagostaUm capacete pesado que fornece excelente " -"proteçãocontratodos os tipos de danos. Tem uma cauda saindo pela parte de " -"trásquefornece proteção ao seu pescoço." #: lang/json/ARMOR_from_json.py msgid "motorcycle helmet" @@ -9171,8 +8073,6 @@ msgid "" "A helmet with covers for your head and chin, leaving space in-between for " "you to wear goggles." msgstr "" -" Capacete de motocicletaUm capacete com capas para sua cabeça equeixo, " -"deixando espaço entre você para usar óculos de proteção." #: lang/json/ARMOR_from_json.py msgid "nasal helm" @@ -9187,10 +8087,6 @@ msgid "" "protect the face without obstructing vision. Proper viking gear, unlike the" " stereotypical horned helm." msgstr "" -" Capacete nasal Um capacete medieval antigo com uma projeção que " -"protegeonariz, para melhor proteger o rosto sem obstruir a visão. " -"Equipamentoadequado para viking, ao contrário do leme com " -"chifresestereotipado." #: lang/json/ARMOR_from_json.py msgid "nomad cowl" @@ -9204,8 +8100,6 @@ msgid "" "A makeshift cowl with protection for the eyes from rain and sun, designed " "for long travels." msgstr "" -" capuz nômade Capuz provisório com proteção para os olhos da chuva e dosol, " -"projetado para longas viagens." #: lang/json/ARMOR_from_json.py msgid "great helm" @@ -9219,8 +8113,6 @@ msgid "" "A medieval helmet that provides excellent protection to the entire head, at " "the cost of great encumbrance." msgstr "" -" grande capacete medieval helmA que proporciona excelente proteção paratodaa" -" cabeça, à custa de grande oneração." #: lang/json/ARMOR_from_json.py msgid "scavenger cowl" @@ -9234,9 +8126,6 @@ msgid "" "A sturdy protective cowl extending down to the neck, fitted with a " "respirator and eye protection. For dangerous scavenging ventures." msgstr "" -" gaiola de proteção resistente que se estende até o pescoço, equipada " -"comumrespirador e proteção para os olhos. Para empreendimentos " -"perigososdeeliminação." #: lang/json/ARMOR_from_json.py msgid "scrap helmet" @@ -9263,8 +8152,6 @@ msgid "" "A small metal helmet that covers the head and protects against cuts and " "percussion." msgstr "" -" skid lid Um pequeno capacete de metal que cobre a cabeça e " -"protegecontracortes e percussão." #: lang/json/ARMOR_from_json.py msgid "survivor helmet" @@ -9278,9 +8165,6 @@ msgid "" "A customized, heavily armored Kevlar helmet, modified with leather " "reinforcements to provide maximum comfort and protection from harm." msgstr "" -" Capacete de SobrevivênciaUm capacete de Kevlar personalizado " -"efortementeblindado, modificado com reforços de couro para proporcionar " -"omáximoconforto e proteção contra danos." #: lang/json/ARMOR_from_json.py msgid "XL survivor helmet" @@ -9294,9 +8178,6 @@ msgid "" "A massive customized, heavily armored Kevlar helmet, modified with leather " "reinforcements to provide maximum comfort and protection from harm." msgstr "" -" Capacete XL para sobreviventesUm maciço capacete Kevlarpersonalizado, " -"fortemente blindado, modificado com reforços de couro paraproporcionar " -"omáximo conforto e proteção contra danos." #: lang/json/ARMOR_from_json.py msgid "survivor firehood" @@ -9308,8 +8189,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A customized armored Nomex and Kevlar hood, very strong and durable." msgstr "" -" Sobrevivente IncêndioUm personalizado Nomex blindado e capô Kevlar, " -"muitoforte e durável." #: lang/json/ARMOR_from_json.py msgid "survivor wetsuit hood" @@ -9322,8 +8201,6 @@ msgstr[1] "" msgid "" "A customized armored neoprene and Kevlar hood, very strong and durable." msgstr "" -" capa de wetsuit survivorUm neoprene blindado personalizado e capuzKevlar, " -"muito forte e durável." #: lang/json/ARMOR_from_json.py msgid "light survivor hood" @@ -9335,8 +8212,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A customized armored cloth and Kevlar hood, very light and durable." msgstr "" -" capuz de sobrevivência leveUm pano blindado personalizado e capô deKevlar, " -"muito leve e durável." #: lang/json/ARMOR_from_json.py msgid "rain hood" @@ -9350,8 +8225,6 @@ msgid "" "A waterproof hood made to be worn in bad weather. Provides extra protection" " from rain." msgstr "" -" capa de chuvaUm capuz impermeável feito para ser usado em mau tempo. " -"Forneceproteção extra contra chuva." #: lang/json/ARMOR_from_json.py msgid "survivor hood" @@ -9365,8 +8238,6 @@ msgid "" "A customized, heavily armored leather and Kevlar hood, designed to provide " "comfort and protection from harm." msgstr "" -" hood de sobreviventeUm couro personalizado e fortemente blindado e " -"capôdeKevlar, projetado para proporcionar conforto e proteção contra danos." #: lang/json/ARMOR_from_json.py msgid "winter survivor hood" @@ -9378,8 +8249,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A customized armored fur and Kevlar hood, very warm and durable." msgstr "" -" capa de sobrevivente de invernoUma pele blindada personalizada e " -"capuzdeKevlar, muito quente e durável." #: lang/json/ARMOR_from_json.py msgid "XL survivor hood" @@ -9393,8 +8262,6 @@ msgid "" "A massive customized, heavily armored leather and Kevlar hood, designed to " "provide comfort and protection from harm." msgstr "" -" Blusa de sobrevivência XLUm maciço, couro fortemente blindado e " -"capuzdeKevlar, projetado para proporcionar conforto e proteção contra danos." #: lang/json/ARMOR_from_json.py msgid "hoodie" @@ -9407,7 +8274,6 @@ msgstr[1] "" msgid "" "A sweatshirt with a hood and a \"kangaroo pocket\" in the front for storage." msgstr "" -" hoodieA camisola com capuz e bolso \"canguru \" na frente para arrumação." #: lang/json/ARMOR_from_json.py msgid "hot pants" @@ -9418,7 +8284,7 @@ msgstr[1] "" #. ~ Description for hot pants #: lang/json/ARMOR_from_json.py msgid "A simple pair of short shorts." -msgstr "calças quentes Um par simples de shorts curtos." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "fur hot pants" @@ -9429,7 +8295,7 @@ msgstr[1] "" #. ~ Description for fur hot pants #: lang/json/ARMOR_from_json.py msgid "A simple pair of fur short shorts." -msgstr "calças quentes de peleUm simples par de shorts curtos de peles." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather hot pants" @@ -9440,7 +8306,7 @@ msgstr[1] "" #. ~ Description for leather hot pants #: lang/json/ARMOR_from_json.py msgid "A simple pair of leather short shorts." -msgstr "calça de couro quenteUm simples par de shorts curtos de couro." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "housecoat" @@ -9451,7 +8317,7 @@ msgstr[1] "" #. ~ Description for housecoat #: lang/json/ARMOR_from_json.py msgid "Makes you wish you had running water to take a shower." -msgstr "Casaco faz você desejar ter água corrente para tomar banho." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "heavy survivor suit" @@ -9466,9 +8332,6 @@ msgid "" "vest and a metal-plated leather jumpsuit. Protects from the elements as " "well as from harm." msgstr "" -" Fato de sobrevivente pesadoUma pesada armadura combinada feita à mãofeitade" -" um colete à prova de bala reforçado e um macacão de couro banhadoametal. " -"Protege dos elementos, bem como do dano." #: lang/json/ARMOR_from_json.py msgid "pair of snow goggles" @@ -9483,9 +8346,6 @@ msgid "" " Helps reduce glare, traditionally used by the Inuit to protect against " "snow blindness." msgstr "" -" Óculos de sol improvisadosEyewear esculpida a partir de madeira ou osso, " -"comapenas uma fenda fina para ver fora de. Ajuda a reduzir obrilho, " -"tradicionalmente usado pelos Inuit para proteger contra a cegueirada neve." #: lang/json/ARMOR_from_json.py msgid "army jacket" @@ -9497,8 +8357,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A tough jacket with lots of pockets. Favored by the military." msgstr "" -" jaqueta do exércitoUma jaqueta resistente com muitos bolsos. " -"Favorecidopelos militares." #: lang/json/ARMOR_from_json.py msgid "chef's jacket" @@ -9512,8 +8370,6 @@ msgid "" "This double-breasted uniform is unusually thick to protect against the heat " "of the kitchen." msgstr "" -" jaqueta do chefEste uniforme trespassado é extraordinariamente " -"grossoparaproteger contra o calor da cozinha." #: lang/json/ARMOR_from_json.py msgid "emergency jacket" @@ -9527,9 +8383,6 @@ msgid "" "A bright & cheaply made FEMA-issue windbreaker jacket with a hood. One " "size, fits none. Helps keep you unfrozen & visible for rescuers." msgstr "" -" jaqueta de emergênciaUma jaqueta blusão FEMA brilhante e barata comcapuz. " -"Um tamanho, não serve para nenhum. Ajuda a mantê-lo descongelado " -"evisívelpara os socorristas." #: lang/json/ARMOR_from_json.py msgid "flannel jacket" @@ -9543,8 +8396,6 @@ msgid "" "A jacket made from flannel-style denim, favored by outdoorsy types. " "Provides decent protection from cuts." msgstr "" -" jaqueta de flanelaUm casaco feito de denim de flanela, favorecido " -"portiposao ar livre. Fornece proteção decente contra cortes." #: lang/json/ARMOR_from_json.py msgid "jean jacket" @@ -9555,7 +8406,7 @@ msgstr[1] "" #. ~ Description for jean jacket #: lang/json/ARMOR_from_json.py msgid "A jacket made from denim. Provides decent protection from cuts." -msgstr "Uma jaqueta feita de denim. Fornece proteção decente contra cortes." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "" @@ -9575,8 +8426,6 @@ msgid "" "A jacket made from thick leather. Cumbersome, but offers excellent " "protection from cuts." msgstr "" -" jaqueta de couroUm casaco feito de couro grosso. Incômodo, " -"masofereceexcelente proteção contra cortes." #: lang/json/ARMOR_from_json.py msgid "armored leather jacket" @@ -9590,8 +8439,6 @@ msgid "" "An armored jacket made from thick leather and metal plates. Cumbersome, but" " offers excellent protection from harm." msgstr "" -" jaqueta de couro blindado Uma jaqueta blindada feita de couro grossoeplacas" -" de metal. Incômodo, mas oferece excelente proteção contra danos." #: lang/json/ARMOR_from_json.py msgid "red leather jacket" @@ -9605,8 +8452,6 @@ msgid "" "A candy-apple-red leather jacket with black strips and shoulder protrusions." " It has a number of zippers and snaps in the front." msgstr "" -" Uma jaqueta de couro vermelho-maçã com tiras pretas e " -"protuberânciasnosombros. Tem um número de zíperes e encaixa na frente." #: lang/json/ARMOR_from_json.py msgid "light jacket" @@ -9618,7 +8463,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thin cotton jacket with a hood. Good for brisk weather." msgstr "" -"jaqueta leveA jaqueta de algodão fino com capuz. Bom para o bom tempo." #: lang/json/ARMOR_from_json.py msgid "windbreaker" @@ -9632,8 +8476,6 @@ msgid "" "A light synthetic jacket with a hood. Not very warm, but will keep out the " "rain." msgstr "" -" windbreakerUm casaco sintético leve com capuz. Não muito quente, " -"masvaimanter a chuva." #: lang/json/ARMOR_from_json.py msgid "jeans" @@ -9644,7 +8486,7 @@ msgstr[1] "" #. ~ Description for jeans #: lang/json/ARMOR_from_json.py msgid "A pair of blue jeans with two deep pockets." -msgstr "jeansUm par de calças de ganga com dois bolsos profundos." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "red jeans" @@ -9656,8 +8498,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of tight-fitting candy-apple-red jeans with two deep pockets." msgstr "" -" calça jeans vermelhaUm par de jeans apertados de vermelho-doce-maçã " -"comdoisbolsos profundos." #: lang/json/ARMOR_from_json.py msgid "Jedi cloak" @@ -9671,8 +8511,6 @@ msgid "" "Long, flowing robes. Simple and comfortable to wear. Be sure to tear it " "off dramatically before fighting any foes!" msgstr "" -" Jedi manto Longos trajes esvoaçantes. Simples e confortável deusar. " -"Certifique-se de rasgá-lo dramaticamente antes de lutar contra osinimigos!" #: lang/json/ARMOR_from_json.py msgid "jerrypack" @@ -9684,8 +8522,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A jerrycan modified to be worn in a similar manner to a backpack." msgstr "" -" jerrypack Um jerrycan modificado para ser usado de forma semelhante " -"aumamochila." #: lang/json/ARMOR_from_json.py msgid "sports jersey" @@ -9699,80 +8535,60 @@ msgid "" "A shirt made of thick material imprinted with the name and logo of a sports " "team." msgstr "" -" jersey esportivoUma camisa feita de material grosso com o nome e o logoti " -"pode uma equipe esportiva." #: lang/json/ARMOR_from_json.py msgid "" "A pro thunderball jersey made of thick material imprinted with the logo of " "the Decatur Fist." msgstr "" -" Uma camisa pro thunderball feita de material grosso impresso com " -"ologotipodo Decatur Fist." #: lang/json/ARMOR_from_json.py msgid "" "A 43-man squamish jersey made of thick material imprinted with the logo of " "the Gainesville Veeblefetzers." msgstr "" -" Uma camisa squamish de 43 homens feita de material grosso impresso comologo" -" dos Veeblefetzers de Gainesville." #: lang/json/ARMOR_from_json.py msgid "" "A zero-G football jersey made of thick material imprinted with the logo of " "the London Jets." msgstr "" -" Uma camisa de futebol zero-G feita de material grosso impresso comologotipo" -" do London Jets." #: lang/json/ARMOR_from_json.py msgid "" "A football jersey made of thick material imprinted with the logo of the " "Endsville Fluffycats." msgstr "" -" Uma camisa de futebol feita de material grosso impresso com o " -"logotipodaEndsville Fluffycats." #: lang/json/ARMOR_from_json.py msgid "" "A baseball jersey made of thick material imprinted with the logo of the " "Tokyo Samurai." msgstr "" -" Uma camisa de beisebol feita de material grosso impresso com o " -"logotipodosamurai de Tóquio." #: lang/json/ARMOR_from_json.py msgid "" "A basketball jersey made of thick material imprinted with the logo of the " "Basin City Blues." msgstr "" -" Uma camisa de basquete feita de material grosso impresso com o " -"logotipodaBasin City Blues." #: lang/json/ARMOR_from_json.py msgid "" "A death race jersey made of thick material imprinted with Frankenstein's " "logo and signature." msgstr "" -" Uma camisa da raça da morte feita de material grosso impresso com " -"ologotipoe a assinatura de Frankenstein." #: lang/json/ARMOR_from_json.py msgid "" "A rollerball jersey made of thick material imprinted with the logo of the " "Houston Energy Corporation." msgstr "" -" Uma camisa de rollerball feita de material grosso impresso com o " -"logotipodaHouston Energy Corporation." #: lang/json/ARMOR_from_json.py msgid "" "A hockey jersey made of thick material imprinted with the logo of the " "Monroeville Zombies." msgstr "" -" Uma camisa de hóquei feita de material grosso impresso com o " -"logotipodosMonroeville Zombies." #: lang/json/ARMOR_from_json.py msgid "judo belt template" @@ -9784,8 +8600,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "This is a template for judo belts. If found in a game it is a bug." msgstr "" -" modelo de cinto de judôEste é um modelo para cintos de judô. Seencontradoem" -" um jogo, é um bug." #: lang/json/ARMOR_from_json.py msgid "black belt" @@ -9797,8 +8611,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A belt worn by martial arts practitioners, advertising a master." msgstr "" -" cinto pretoUm cinto usado por praticantes de artes marciais, " -"anunciandoummestre." #: lang/json/ARMOR_from_json.py msgid "blue belt" @@ -9812,8 +8624,6 @@ msgid "" "A belt worn by martial arts practitioners, advertising a strong " "intermediate." msgstr "" -" cinto azulUm cinto usado por praticantes de artes marciais, " -"anunciandoumintermediário forte." #: lang/json/ARMOR_from_json.py msgid "brown belt" @@ -9825,8 +8635,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A belt worn by martial arts practitioners, advertising a near-master." msgstr "" -" cinto marromUm cinto usado por praticantes de artes marciais, " -"anunciandoummestre próximo." #: lang/json/ARMOR_from_json.py msgid "green belt" @@ -9839,8 +8647,6 @@ msgstr[1] "" msgid "" "A belt worn by martial arts practitioners, advertising an intermediate." msgstr "" -" cinto verdeUm cinto usado por praticantes de artes marciais, " -"anunciandoumintermediário." #: lang/json/ARMOR_from_json.py msgid "orange belt" @@ -9853,8 +8659,6 @@ msgstr[1] "" msgid "" "A belt worn by martial arts practitioners, advertising a fresh intermediate." msgstr "" -" cinto laranjaUm cinto usado por praticantes de artes marciais, " -"anunciandoumintermediário fresco." #: lang/json/ARMOR_from_json.py msgid "white belt" @@ -9866,8 +8670,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A belt worn by martial arts practitioners, advertising a novice." msgstr "" -" cinto brancoUm cinto usado por praticantes de artes marciais, " -"anunciandoumnovato." #: lang/json/ARMOR_from_json.py msgid "yellow belt" @@ -9880,8 +8682,6 @@ msgstr[1] "" msgid "" "A belt worn by martial arts practitioners, advertising a moderate novice." msgstr "" -" cinto amareloUm cinto usado por praticantes de artes marciais, " -"anunciandoumnovato moderado." #: lang/json/ARMOR_from_json.py msgid "judo gi" @@ -9895,8 +8695,6 @@ msgid "" "Plain white judo gi. Thick and a little stiff, it gives minor protection " "from cuts and punches." msgstr "" -" judo giPlain branco judo gi. Grosso e um pouco duro, dá menorproteçãocontra" -" cortes e socos." #: lang/json/ARMOR_from_json.py msgid "jumpsuit" @@ -9910,9 +8708,6 @@ msgid "" "A thin, short-sleeved jumpsuit; similar to those worn by prisoners. " "Provides decent storage and is not very encumbering." msgstr "" -" macacãoA macacão de manga curta fina; semelhante aos " -"usadospelosprisioneiros. Fornece armazenamento decente e não é muito " -"oneroso." #: lang/json/ARMOR_from_json.py msgid "Hub 01 jumpsuit" @@ -9938,9 +8733,6 @@ msgid "" "body clothing. Provides some storage and is adjustable to minimize " "encumbrance." msgstr "" -" Macacão XLAlto macacão de mangas curtas atualizado para o " -"transexualqueprecisa de roupas de corpo inteiro. Fornece algum armazenamento" -" eéajustável para minimizar o ônus." #: lang/json/ARMOR_from_json.py msgid "karate gi" @@ -9954,8 +8746,6 @@ msgid "" "Plain white karate gi. Loose and flowing, it offers little protection, and " "little encumbrance." msgstr "" -" karate giPlain branco karatê gi. Solta e fluindo, oferece pouca " -"proteçãoepouco fardo." #: lang/json/ARMOR_from_json.py msgid "kariginu" @@ -9969,8 +8759,6 @@ msgid "" "A traditional, ankle-length Shinto robe with several layers and very wide " "sleeves." msgstr "" -" kariginuUm robe xintoísta tradicional, até os tornozelos, com " -"váriascamadase mangas muito largas." #: lang/json/ARMOR_from_json.py msgid "keffiyeh" @@ -9984,9 +8772,6 @@ msgid "" "A type of headdress traditionally used in the Middle East. It can be used " "in different ways to protect the head and mouth from the elements." msgstr "" -" keffiyeh Um tipo de cocar usado tradicionalmente no Oriente Médio. " -"Podeserusado de diferentes maneiras para proteger a cabeça e a boca " -"doselementos." #: lang/json/ARMOR_from_json.py msgid "cyan scarf" @@ -10010,7 +8795,7 @@ msgstr[1] "" #. ~ Description for keikogi #: lang/json/ARMOR_from_json.py msgid "Plain white keikogi for use in martial arts." -msgstr "keikogiPlain keikogi branco para uso em artes marciais." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "Kevlar vest" @@ -10023,8 +8808,6 @@ msgstr[1] "" msgid "" "A lightweight, bullet resistant vest. Suitable for wearing under clothing." msgstr "" -" Kevlar vestA colete leve e resistente a balas. Adequado para usar " -"sobaroupa." #: lang/json/ARMOR_from_json.py msgid "kilt" @@ -10036,7 +8819,7 @@ msgstr[1] "" #. ~ Description for leather kilt #: lang/json/ARMOR_from_json.py msgid "No true Scotsman would leave home without his kilt." -msgstr "kiltNão o verdadeiro escocês sairia de casa sem o kilt." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather kilt" @@ -10056,8 +8839,6 @@ msgid "" "A traditional, ankle-length Japanese robe, wrapped around the body with a " "sash." msgstr "" -" kiltkimono de couroUm robe tradicional japonês até o tornozelo, " -"enroladoemvolta do corpo com uma faixa." #: lang/json/ARMOR_from_json.py msgid "yukata" @@ -10095,7 +8876,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thin, rounded skullcap. A traditional headdress in Judaism." msgstr "" -" kippahA calota craniana fina e arredondada. Um cocar tradicionalnojudaísmo." #: lang/json/ARMOR_from_json.py msgid "kittel" @@ -10109,8 +8889,6 @@ msgid "" "A white, knee-length cotton robe, traditionally worn by Jews on special " "occasions." msgstr "" -" kittelUm robe branco de algodão até os joelhos, tradicionalmente " -"usadopelosjudeus em ocasiões especiais." #: lang/json/ARMOR_from_json.py msgid "pair of knee pads" @@ -10122,7 +8900,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of knee pads made of stout plastic and cloth." msgstr "" -" par de joelheirasUm par de joelheiras feitas de plástico robusto e pano." #: lang/json/ARMOR_from_json.py msgid "kufi cap" @@ -10133,7 +8910,7 @@ msgstr[1] "" #. ~ Description for kufi cap #: lang/json/ARMOR_from_json.py msgid "A brimless, short and rounded cap." -msgstr "kufi capA tampa sem aba, curta e arredondada." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather belt" @@ -10150,12 +8927,12 @@ msgstr "" #. ~ Use action holster_prompt for leather belt. #: lang/json/ARMOR_from_json.py msgid "Stick what into your belt" -msgstr "Cole o que em seu cinto" +msgstr "" #. ~ Description for leather belt #: lang/json/ARMOR_from_json.py msgid "A leather belt. Useful for making your pair of pants fit." -msgstr "Um cinto de couro. Útil para fazer o seu par de calças se encaixar." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "leather pouch" @@ -10169,8 +8946,6 @@ msgid "" "A bag stitched together from leather scraps. Doesn't hold an awful lot but " "is easy to wear." msgstr "" -" bolsa de couroUma bolsa costurada a partir de restos de couro. Não " -"temmuitacoisa, mas é fácil de usar." #: lang/json/ARMOR_from_json.py msgid "leg splint" @@ -10190,8 +8965,6 @@ msgid "" "A tool to help set bones and hold them in place. It is specifically " "designed to fit Huge people." msgstr "" -" ferramenta splintleg splintleg splintleg perna para ajudar a definirosossos" -" e mantê-los no lugar. É projetado especificamente para caberpessoasenormes." #: lang/json/ARMOR_from_json.py msgid "pair of leg warmers" @@ -10203,8 +8976,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Snug, soft cloth sleeves to keep your legs warm." msgstr "" -" par de aquecedores de pernaEncaixe, mangas de tecido macias para " -"manteraspernas aquecidas." #: lang/json/ARMOR_from_json.py msgid "pair of XL leg warmers" @@ -10216,8 +8987,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Large, soft, snug cloth sleeves to keep your exotic anatomy warm." msgstr "" -" par de aquecedores de perna XLLarga, macio, mangas de pano " -"confortávelparamanter sua anatomia exótica quente." #: lang/json/ARMOR_from_json.py msgid "pair of fetlock furs" @@ -10229,7 +8998,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Snug fur sleeves to keep your fetlocks warm." msgstr "" -" par de peles fetlockSnug mangas de pele para manter seus fetiches quentes." #: lang/json/ARMOR_from_json.py msgid "leggings" @@ -10243,8 +9011,6 @@ msgid "" "Skin-tight nylon leggings, sometimes used when exercising, that keep your " "legs nice and warm." msgstr "" -" leggingsLeggings de nylon justas em pele, por vezes usadas " -"duranteoexercício, que mantêm as suas pernas agradáveis e quentes." #: lang/json/ARMOR_from_json.py msgid "pair of hard leg guards" @@ -10256,8 +9022,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of polyurethane leg guards with neoprene backing." msgstr "" -" par de guardas de pernas durasUm par de proteções de perna depoliuretanocom" -" apoio de neoprene." #: lang/json/ARMOR_from_json.py msgid "pair of steel leg guards" @@ -10271,9 +9035,6 @@ msgid "" "A full assembly of medieval leg protection. Cuisses, poleyns, and greaves, " "with leather straps to secure each piece and connect it as part of a set." msgstr "" -" par de guardas de perna de açoUm conjunto completo de proteção " -"depernamedieval. Cuisses, poleyns e grevas, com tiras de couro para " -"prendercadapeça e conectá-la como parte de um conjunto." #: lang/json/ARMOR_from_json.py msgid "pair of iron greaves" @@ -10285,8 +9046,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of iron leg guards with a simple leather lining." msgstr "" -" par de ganchos de ferroUm par de guardas de perna de ferro com um " -"forrodecouro simples." #: lang/json/ARMOR_from_json.py msgid "pair of paper leg guards" @@ -10298,8 +9057,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Leg guards made of stacked paper sheets held together with duct tape." msgstr "" -" par de guardas de perna de papelLeg guardas feitas de folhas " -"depapelempilhadas realizada em conjunto com fita adesiva." #: lang/json/ARMOR_from_json.py msgid "pair of scrap leg guards" @@ -10327,9 +9084,6 @@ msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " "variety is favored by the military." msgstr "" -" par de bolsas para pernas baixasUm conjunto de bolsas que podem " -"serusadasnas coxas usando tiras afiveladas. Esta variedade é " -"favorecidapelosmilitares." #: lang/json/ARMOR_from_json.py msgid "Linux t-shirt" @@ -10343,73 +9097,54 @@ msgid "" "A t-shirt with a picture of the Tux mascot on it. Underneath it says \"You " "wouldn't buy a car with the hood welded shut.\"" msgstr "" -" T-shirt de Linux t-shirtA com uma imagem da mascote de Tux nele. " -"Porbaixodiz:\"Você não compraria um carro com o capô soldado e fechado.\"" #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with a picture of Tux, the Linux mascot! It says \"You wouldn't " "buy a car with the hood welded shut.\"" msgstr "" -" Uma camiseta com uma foto do Tux, a mascote do Linux! Diz\"Vocênãocompraria" -" um carro com o capô soldado e fechado." #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with the Ubuntu logo on it, underneath it says \"Ubuntu is a South" " African word for 'I can't configure Debian'\"" msgstr "" -" Uma camiseta com o logotipo do Ubuntu, abaixo dele, diz\"O Ubuntu " -"éumapalavra sul-africana para 'eu não consigo configurar o Debian' " -"\"" #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with the Arch Linux logo on it, underneath it says \"Keep it " "Simple Stupid\"" msgstr "" -" Uma camiseta com o logotipo do Arch Linux, abaixo dele, diz \"Keep " -"itSimpleStupid \"" #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with the Ubuntu logo on it, underneath it says \"Linux for human " "beings\"" msgstr "" -" Uma camiseta com o logotipo do Ubuntu, abaixo dele diz \"Linux " -"parasereshumanos \"" #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with the Linux Mint logo on it, underneath it says \"From freedom " "came elegance\"" msgstr "" -" Uma camiseta com o logo do Linux Mint, abaixo dele diz:\"Da liberdade " -"veioaelegância\"" #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with the Fedora logo on it, underneath it says \"Freedom. Friends." " Features. First.\"" msgstr "" -" Uma camiseta com o logotipo do Fedora, embaixo diz:\"Liberdade. Amigos. " -"Recursos. Primeiro." #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with Red Hat's logo on it, underneath it says \"The World's Open " "Source Leader\"" msgstr "" -" Uma camiseta com o logotipo da Red Hat, abaixo dele, diz:\"O Líder " -"deCódigoAberto do Mundo \"" #: lang/json/ARMOR_from_json.py msgid "" "A t-shirt with the Debian logo on it, underneath it says \"The Universal " "Operating System\"" msgstr "" -" Uma camiseta com o logotipo do Debian, abaixo dele, diz " -"\"OSistemaOperacional Universal \"" #: lang/json/ARMOR_from_json.py msgid "loincloth" @@ -10423,8 +9158,6 @@ msgid "" "Rags stitched together and tied into a makeshift loincloth. Covers your " "modesty, but not much else." msgstr "" -" loinclothRags costurados juntos e amarrados em uma tanga improvisada. " -"Cobresua modéstia, mas não muito mais." #: lang/json/ARMOR_from_json.py msgid "fur loincloth" @@ -10438,8 +9171,6 @@ msgid "" "A fur pelt tied into a loincloth. Covers your modesty, but not much else. " "Now you are a true barbarian warrior." msgstr "" -" pele de pele amarrada em uma tanga. Cobre sua modéstia, mas não muitomais. " -"Agora você é um verdadeiro guerreiro bárbaro." #: lang/json/ARMOR_from_json.py msgid "leather loincloth" @@ -10453,8 +9184,6 @@ msgid "" "Leather patches stitched together and tied into a makeshift loincloth. " "Covers your modesty, but not much else." msgstr "" -" tanga de couroAs manchas de couro costuradas e amarradas em " -"umatangaimprovisada. Cobre sua modéstia, mas não muito mais." #: lang/json/ARMOR_from_json.py msgid "wool loincloth" @@ -10468,8 +9197,6 @@ msgid "" "Bits of wool stitched together and tied into a makeshift loincloth. Covers " "your modesty, but not much else." msgstr "" -" Tanga de lãBotas de lã costuradas e amarradas em uma tangaimprovisada. " -"Cobre sua modéstia, mas não muito mais." #: lang/json/ARMOR_from_json.py msgid "pair of extra long white gloves" @@ -10480,7 +9207,7 @@ msgstr[1] "" #. ~ Description for pair of extra long white gloves #: lang/json/ARMOR_from_json.py msgid "Long white costume gloves." -msgstr "par de luvas brancas extra longasLuvas de fantasia brancas compridas." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "long underwear bottom" @@ -10492,8 +9219,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of long underwear that help to maintain body temperature." msgstr "" -" roupa íntima longa bottomUm par de roupas íntimas compridas que " -"ajudamamanter a temperatura corporal." #: lang/json/ARMOR_from_json.py msgid "long underwear top" @@ -10505,8 +9230,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A long underwear top that helps to maintain body temperature." msgstr "" -" roupa interior comprida topA roupa interior comprida que ajuda a " -"manteratemperatura corporal." #: lang/json/ARMOR_from_json.py msgid "long-sleeved shirt" @@ -10517,7 +9240,7 @@ msgstr[1] "" #. ~ Description for long-sleeved shirt #: lang/json/ARMOR_from_json.py msgid "A long-sleeved cotton shirt." -msgstr "camisa de manga compridaUma camisa de algodão de manga comprida." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "light survivor body armor" @@ -10531,8 +9254,6 @@ msgid "" "Lightweight, custom built body armor made from Kevlar and tough fabric. " "Mostly waterproof." msgstr "" -" armadura leve para o corpo do sobreviventeCarcaça leve feita sobmedidafeita" -" de tecido Kevlar e resistente. Principalmente impermeável." #: lang/json/ARMOR_from_json.py msgid "light survivor cargo pants" @@ -10546,9 +9267,6 @@ msgid "" "Lightweight, Kevlar armored cargo pants designed to hold as much as " "possible. Strong and mostly waterproof." msgstr "" -" calças de carga leves para sobreviventes Calça leve de cargaKevlar, " -"projetada para acomodar o máximo possível. Forte e principalmente " -"àprovad'água." #: lang/json/ARMOR_from_json.py msgid "light survivor suit" @@ -10563,9 +9281,6 @@ msgid "" " vest and a reinforced fabric jumpsuit. Protects from the elements as well " "as from harm." msgstr "" -" Fato de Sobrevivente LeveUma combinação de armadura leve, feita à mão, " -"feitade um colete à prova de bala e um macacão de tecido reforçado. Protege " -"doselementos, bem como do dano." #: lang/json/ARMOR_from_json.py msgid "French maid clothes" @@ -10577,8 +9292,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "The French maid dress, blue with a frilly white apron." msgstr "" -" Roupas de empregada francesa O vestido de empregada francesa, azul " -"comumavental branco com babados." #: lang/json/ARMOR_from_json.py msgid "French maid hat" @@ -10589,7 +9302,7 @@ msgstr[1] "" #. ~ Description for French maid hat #: lang/json/ARMOR_from_json.py msgid "A frilly white headpiece." -msgstr "Chapéu de empregada francesa hatA branco com babados." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "makeshift knapsack" @@ -10603,9 +9316,6 @@ msgid "" "A pair of pants with the bottom ends tied with string, and then passed " "through the belt loops so the knapsack can be carried on the back." msgstr "" -" mochila improvisada Um par de calças com as extremidadesinferioresamarradas" -" com barbante e, em seguida, passadas pelas alças dacinta, paraque a mochila" -" possa ser levada pelas costas." #: lang/json/ARMOR_from_json.py msgid "makeshift sling" @@ -10617,8 +9327,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A large sheet tied into a crude, over-the-shoulder sling." msgstr "" -" estilingue improvisadoUma folha grande amarrada em um estilinguebruto, " -"over- the-ombro." #: lang/json/ARMOR_from_json.py msgid "ballistic mask" @@ -10632,8 +9340,6 @@ msgid "" "A protective reinforced Kevlar mask that covers the face. Provides " "excellent protection from ballistic threats." msgstr "" -" Máscara balística Uma máscara protetora de Kevlar reforçada que " -"cobreorosto. Fornece excelente proteção contra ameaças balísticas." #: lang/json/ARMOR_from_json.py msgid "dust mask" @@ -10647,8 +9353,6 @@ msgid "" "A simple piece of cotton that straps over the mouth. Provides a small " "amount of protection from airborne illness and dust." msgstr "" -" máscara de poeiraUm simples pedaço de algodão que passa sobre aboca. " -"Fornece uma pequena quantidade de proteção contra doenças e poeira noar." #: lang/json/ARMOR_from_json.py msgid "Guy Fawkes mask" @@ -10659,7 +9363,7 @@ msgstr[1] "" #. ~ Description for Guy Fawkes mask #: lang/json/ARMOR_from_json.py msgid "Remember, remember, the fifth of November." -msgstr "Máscara de Guy Fawkes Lembre-se, lembre-se, no dia 5 de novembro." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "hockey mask" @@ -10673,8 +9377,6 @@ msgid "" "A protective face mask made of thick plastic. Commonly worn by hockey " "goalies." msgstr "" -" máscara de hóqueiUma máscara protetora feita de plástico grosso. " -"Comumenteusado por goleiros de hóquei." #: lang/json/ARMOR_from_json.py msgid "rioter mask" @@ -10688,8 +9390,6 @@ msgid "" "This is a t-shirt with sleeves tied on the back. These are usually worn by " "rioters to hide their identity." msgstr "" -" máscara de trapaceiroEsta é uma t-shirt com mangas amarradas nascostas. " -"Estes são geralmente usados pelos desordeiros para esconder suaidentidade." #: lang/json/ARMOR_from_json.py msgid "messenger bag" @@ -10700,7 +9400,7 @@ msgstr[1] "" #. ~ Description for messenger bag #: lang/json/ARMOR_from_json.py msgid "Light and easy to wear, but doesn't offer much storage." -msgstr "bagageiro leve e fácil de usar, mas não oferece muito armazenamento." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of mittens" @@ -10712,7 +9412,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of warm mittens. They are extremely cumbersome." msgstr "" -"par de luvas Um par de luvas quentes. Eles são extremamente incômodos." #: lang/json/ARMOR_from_json.py msgid "MOLLE pack" @@ -10727,9 +9426,6 @@ msgid "" "backpack. Covered with pockets and straps, it strikes a fine balance " "between storage space and encumbrance." msgstr "" -" MOLLE packThe Modular Lightweight Load-carrying Equipment é " -"umamochilamilitar avançada. Coberto com bolsos e correias, consegue um " -"bomequilíbrioentre espaço de armazenamento e sobrecarga." #: lang/json/ARMOR_from_json.py msgid "motorcycle armor" @@ -10741,7 +9437,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A suit of armor used by dirt bikers and motorcyclists." msgstr "" -" armor da motocicletaUma armadura usada por motociclistas e motociclistas." #: lang/json/ARMOR_from_json.py msgid "motorcycle pants" @@ -10753,7 +9448,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of pants designed for dirt bikers and motorcyclists." msgstr "" -" calça de motoUm par de calças projetadas para motociclistas emotociclistas." #: lang/json/ARMOR_from_json.py msgid "protective mouthpiece" @@ -10767,8 +9461,6 @@ msgid "" "A protective piece of equipment commonly used by athletes, which is worn " "inside the mouth to protect your teeth." msgstr "" -" bocal de proteçãoUm equipamento de proteção comumente usado pelosatletas, " -"que é usado dentro da boca para proteger os dentes." #: lang/json/ARMOR_from_json.py msgid "nanoskirt" @@ -10779,7 +9471,7 @@ msgstr[1] "" #. ~ Description for nanoskirt #: lang/json/ARMOR_from_json.py msgid "Apparently the microskirt wasn't short enough." -msgstr "nanoskirtAparentemente, o microskirt não foi curto o suficiente." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of flame-resistant gloves" @@ -10794,9 +9486,6 @@ msgid "" "resistant fabric. Tough yet breathable, they are light and comfortable to " "wear under clothing." msgstr "" -" par de luvas resistentes ao fogoUm par confortável de luvas feitas " -"detecidofino e leve Nomex resistente ao fogo. Resistente e respirável, " -"elessãoleves e confortáveis de usar sob a roupa." #: lang/json/ARMOR_from_json.py msgid "flame-resistant hood" @@ -10811,9 +9500,6 @@ msgid "" "lightweight Nomex fire-resistant fabric. Tough yet breathable, it is light " "and comfortable to wear under clothing." msgstr "" -" capuz resistente à chamaUm vestuário justo que protege a cabeça e opescoço," -" fabricado em tecido leve de Nomex resistente ao fogo. " -"Resistentemasrespirável, é leve e confortável de usar sob a roupa." #: lang/json/ARMOR_from_json.py msgid "pair of flame-resistant socks" @@ -10828,9 +9514,6 @@ msgid "" "resistant fabric. Tough yet breathable, they are light and comfortable to " "wear under clothing." msgstr "" -" par de meias resistentes a chamasUm par confortável de meias feitasdetecido" -" fino e leve Nomex resistente ao fogo. Resistente e respirável, elessão " -"leves e confortáveis de usar sob a roupa." #: lang/json/ARMOR_from_json.py msgid "flame-resistant suit" @@ -10844,9 +9527,6 @@ msgid "" "A snug body suit made from thin and lightweight Nomex fire-resistant fabric." " Tough yet breathable, it is light and comfortable to wear under clothing." msgstr "" -" terno resistente ao fogoUm macacão justo feito de tecido fino e " -"leveNomexresistente ao fogo. Resistente mas respirável, é leve e confortável" -" deusarsob a roupa." #: lang/json/ARMOR_from_json.py msgid "obi" @@ -10869,12 +9549,11 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Your optical cloak flickers as it becomes transparent." msgstr "" -" FB51 cloak óticoO seu manto óptico cintila quando se torna transparente." #. ~ Use action deactive_msg for FB51 optical cloak. #: lang/json/ARMOR_from_json.py msgid "Your optical cloak flickers for a moment as it becomes opaque." -msgstr "Seu manto óptico cintila por um momento, quando fica opaco." +msgstr "" #. ~ Description for FB51 optical cloak #: lang/json/ARMOR_from_json.py @@ -10883,10 +9562,6 @@ msgid "" "invisible to normal vision when powered and worn. You must be carrying a " "unified power supply, or UPS, to use it. Activate to toggle visibility." msgstr "" -" Um manto de plástico embutido com câmeras e LEDs que irá torná- " -"lototalmenteinvisível à visão normal quando ligado e gasto. Você deve " -"estarcarregandouma fonte de alimentação unificada, ou UPS, para usá-lo. " -"Ativepara alternara visibilidade." #: lang/json/ARMOR_from_json.py msgid "panties" @@ -10900,8 +9575,6 @@ msgid "" "Underwear designed to be worn by women. Preserves your modesty in desperate" " times." msgstr "" -" calcinhasUnderwear projetado para ser usado por mulheres. " -"Preservasuamodéstia em tempos desesperados." #: lang/json/ARMOR_from_json.py msgid "pants" @@ -10912,7 +9585,7 @@ msgstr[1] "" #. ~ Description for pants #: lang/json/ARMOR_from_json.py msgid "A pair of khaki pants. Slightly warmer than jeans." -msgstr "Um par de calças cáqui. Um pouco mais quente que jeans." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "army pants" @@ -10924,8 +9597,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A tough pair of pants lined with pockets. Favored by the military." msgstr "" -" calças do exército Um par de calças duras forradas com bolsos. " -"Favorecidopelos militares." #: lang/json/ARMOR_from_json.py msgid "cargo pants" @@ -10937,8 +9608,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of pants lined with pockets, offering lots of storage." msgstr "" -" calças de cargaUm par de calças forradas com bolsos, oferecendo " -"muitoespaçode armazenamento." #: lang/json/ARMOR_from_json.py msgid "checkered pants" @@ -10950,8 +9619,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "In a pinch, these pants can be used for an impromptu game of checkers." msgstr "" -" calças xadrez Em uma pitada, essas calças podem ser usadas para um " -"jogodedamas improvisado." #: lang/json/ARMOR_from_json.py msgid "pair of fur leggings" @@ -10965,8 +9632,6 @@ msgid "" "Snug fur sleeves to keep your legs warm. Simple yet effective since " "prehistoric times." msgstr "" -" par de caneleiras de peleSnug mangas de pele para manter as pernasquentes. " -"Simples, mas eficaz desde os tempos pré-históricos." #: lang/json/ARMOR_from_json.py msgid "fur pants" @@ -10977,7 +9642,7 @@ msgstr[1] "" #. ~ Description for fur pants #: lang/json/ARMOR_from_json.py msgid "A hefty pair of fur-lined pants." -msgstr "calças de pele Um par robusto de calças forrada de pele." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "faux fur pants" @@ -10989,8 +9654,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of long cotton pants lined with warm imitation fur." msgstr "" -" calça de peles artificiaisUm par de calças compridas de algodão " -"forradocompele de imitação quente." #: lang/json/ARMOR_from_json.py msgid "leather pants" @@ -11004,8 +9667,6 @@ msgid "" "A pair of black leather pants. Very tough, but cumbersome and without much " "storage." msgstr "" -" calça de couroUm par de calças de couro preto. Muito difícil, mas " -"pesadoesem muito armazenamento." #: lang/json/ARMOR_from_json.py msgid "ski pants" @@ -11016,7 +9677,7 @@ msgstr[1] "" #. ~ Description for ski pants #: lang/json/ARMOR_from_json.py msgid "A pair of pants meant for alpine skiing." -msgstr "calça de esquiUm par de calças significou para esqui alpino." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "survivor cargo pants" @@ -11030,9 +9691,6 @@ msgid "" "A pair of Kevlar armored pants covered with pouches and pockets. Custom " "built to be durable, comfortable, and easy to wear." msgstr "" -" calças de carga sobreviventeUm par de calças blindadas Kevlar " -"cobertocombolsas e bolsos. Custom construído para ser durável, confortável e" -" fácildeusar." #: lang/json/ARMOR_from_json.py msgid "peacoat" @@ -11044,7 +9702,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A heavy wool coat. Cumbersome, but warm and with deep pockets." msgstr "" -" casaco de lã pesada peacoatA. Incômodo, mas quente e com bolsos profundos." #: lang/json/ARMOR_from_json.py msgid "pearl collar" @@ -11058,8 +9715,6 @@ msgid "" "A collar made from round and lustrous pearls, its former owner must be a " "wealthy individual." msgstr "" -" colar de pérolas Um colar feito de pérolas redondas e brilhantes, " -"seuantigoproprietário deve ser um indivíduo rico." #: lang/json/ARMOR_from_json.py msgid "pickelhaube" @@ -11073,8 +9728,6 @@ msgid "" "A spiked helmet once worn by German military officers. The spike is very " "sharp." msgstr "" -" pickelhaube Um capacete cravado usado por oficiais militares alemães. " -"Oespigão é muito afiado." #: lang/json/ARMOR_from_json.py msgid "plastic shopping bag" @@ -11086,8 +9739,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A bag used to carry groceries home." msgstr "" -" saco de compras de plásticoUm saco usado para transportar " -"mantimentosparacasa." #: lang/json/ARMOR_from_json.py msgid "police duty belt" @@ -11123,8 +9774,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A short-sleeved cotton shirt, slightly thicker than a t-shirt." msgstr "" -" camisa poloUma camisa de algodão de manga curta, ligeiramente maisgrossaque" -" uma camiseta." #: lang/json/ARMOR_from_json.py msgid "wool poncho" @@ -11137,8 +9786,6 @@ msgstr[1] "" msgid "" "A simple wool garment worn over the torso. Provides a bit of protection." msgstr "" -" poncho de lãUma peça simples de lã usada sobre o tronco. Fornece um " -"poucodeproteção." #: lang/json/ARMOR_from_json.py msgid "porkpie hat" @@ -11153,9 +9800,6 @@ msgid "" "the 40s and 50s, still common among those in the mod scene, hipsters, and " "people named Heisenberg." msgstr "" -" Um chapéu de bico chato com recuo circular e aba estreita. Mais " -"popularnosanos 40 e 50, ainda comum entre os que estão na cena mod, " -"hipstersepessoas chamadas Heisenberg." #: lang/json/ARMOR_from_json.py msgid "mail carrier hat" @@ -11169,9 +9813,6 @@ msgid "" "A traditional mail carrier's cap, with the US postal service logo " "embroidered on the front above the plastic cap. A symbol of a bygone world." msgstr "" -" chapéu de carteiro Uma tampa de carteiro tradicional, com o " -"logotipodoserviço postal dos EUA bordado na frente acima da tampa de " -"plástico. Umsímbolo de um mundo passado." #: lang/json/ARMOR_from_json.py msgid "mail carrier shirt" @@ -11185,8 +9826,6 @@ msgid "" "A light blue button down shirt with a couple of pockets in front and the US " "postal service logo embroidered on it." msgstr "" -" Camisa de porta-malasA camisa azul clara com um par de bolsos na frente " -"eologotipo do serviço postal dos EUA bordado nela." #: lang/json/ARMOR_from_json.py msgid "mail carrier shorts" @@ -11198,8 +9837,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of dark blue shorts, the kind used by postal service workers." msgstr "" -" calções para transporte de correspondênciaUm par de calções azuisescuros, " -"do tipo usado pelos funcionários dos correios." #: lang/json/ARMOR_from_json.py msgid "pot helmet" @@ -11213,8 +9850,6 @@ msgid "" "A helmet made from a soup pot. It's not very good protection, but it's " "better than nothing." msgstr "" -" capacete de poteUm capacete feito de uma panela de sopa. Não é " -"umaproteçãomuito boa, mas é melhor que nada." #: lang/json/ARMOR_from_json.py msgid "basic power armor" @@ -11227,7 +9862,7 @@ msgstr[1] "" #. ~ Use action activate_msg for light power armor. #: lang/json/ARMOR_from_json.py msgid "Your power armor engages." -msgstr "armadura de poder básicaA armadura de poder dele empenha." +msgstr "" #. ~ Description for basic power armor #: lang/json/ARMOR_from_json.py @@ -11238,11 +9873,6 @@ msgid "" "yourself. Like all DoubleTech power armor, the control and climate-" "regulation systems require direct skin contact." msgstr "" -" O DoubleTech Power Armor, Mk. I: Uma armadura pesada de poderbásico, " -"oferecendo proteção muito boa contra ataques, mas difícil de semover. " -"Ocompartimento da UPS pode armazenar outras coisas se você não seimportarem " -"ligar o traje sozinho. Como todas as armaduras da DoubleTech, ossistemas de " -"controle e regulação do clima exigem contato direto com apele." #: lang/json/ARMOR_from_json.py msgid "power armor hauling frame" @@ -11254,8 +9884,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A heavy duty hauling frame designed to interface with power armor." msgstr "" -" quadro de transporte de blindagem de potênciaUm quadro de transportedecarga" -" pesada projetado para interagir com a blindagem de potência." #: lang/json/ARMOR_from_json.py msgid "heavy power armor" @@ -11271,10 +9899,6 @@ msgid "" "protection. Like all DoubleTech power armor, the control and climate-" "regulation systems require direct skin contact." msgstr "" -" armadura de poder pesado terno de DoubleTech Power Armor, Mk. II-H. " -"Estemodelo oferece várias melhorias sobre o Mk. Eu, principalmente " -"amelhoriada proteção ambiental. Como todas as armaduras da DoubleTech, " -"ossistemasde controle e regulação do clima exigem contato direto com a pele." #: lang/json/ARMOR_from_json.py msgid "basic power armor helmet" @@ -11290,10 +9914,6 @@ msgid "" "Like all DoubleTech power armor, the control and climate-regulation systems " "require direct skin contact." msgstr "" -" Capacete de armadura básica Um capacete básico, projetado para uso " -"comoDoubleTech Power Armor, Mk. I. Oferece excelente proteção contra " -"ataqueseriscos ambientais. Como todas as armaduras da DoubleTech, os " -"sistemasdecontrole e regulação do clima exigem contato direto com a pele." #: lang/json/ARMOR_from_json.py msgid "heavy power armor helmet" @@ -11310,11 +9930,6 @@ msgid "" "armor, the control and climate-regulation systems require direct skin " "contact." msgstr "" -" capacete de blindagem de alta potênciaUm capacete de blindagem " -"depotênciaprojetado para uso com o DoubleTech Power Armor, Mk. II-H. " -"Estedesignaprimorado é mais pesado que o Mk. Eu capacete, mas mais frio, " -"eoferecemelhor proteção ambiental. Como todas as armaduras da DoubleTech, " -"ossistemas de controle e regulação do clima exigem contato direto com apele." #: lang/json/ARMOR_from_json.py msgid "light power armor helmet" @@ -11330,11 +9945,6 @@ msgid "" "Like all DoubleTech power armor, the control and climate-regulation systems " "require direct skin contact." msgstr "" -" Capacete de armadura de força leveUm capacete de armadura de " -"poderprojetadopara uso com o DoubleTech Power Armor, Mk. II-L Este " -"designmelhorado é maisleve e mais frio que o Mk. Eu capacete. Como todas " -"asarmaduras daDoubleTech, os sistemas de controle e regulação do climaexigem" -" contatodireto com a pele." #: lang/json/ARMOR_from_json.py msgid "light power armor" @@ -11350,10 +9960,6 @@ msgid "" "DoubleTech power armor, the control and climate-regulation systems require " "direct skin contact." msgstr "" -" armadura de poder leve terno de DoubleTech Power Armor, Mk. II-L " -"Estemodelooferece várias melhorias sobre o Mk. Eu, principalmente o " -"pesoreduzido. Como todas as armaduras da DoubleTech, os sistemas de controle" -" eregulaçãodo clima exigem contato direto com a pele." #: lang/json/ARMOR_from_json.py msgid "purse" @@ -11364,7 +9970,7 @@ msgstr[1] "" #. ~ Description for purse #: lang/json/ARMOR_from_json.py msgid "A bit cumbersome to wear, but provides some storage." -msgstr "bolsa Um pouco complicado de usar, mas fornece algum armazenamento." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "quiver" @@ -11378,8 +9984,6 @@ msgid "" "A leather quiver worn at the waist that can hold 20 arrows. Activate to " "store arrows." msgstr "" -" Quiver Um quiver de couro usado na cintura que pode conter 20 flechas. " -"Ativepara armazenar flechas." #: lang/json/ARMOR_from_json.py msgid "birchbark quiver" @@ -11393,8 +9997,6 @@ msgid "" "A quiver woven from strips of birch bark, worn at the waist, that can hold " "20 arrows. Activate to store arrows." msgstr "" -" Quiver Quiver Um quiver tecido a partir de tiras de casca de bétula, " -"usadona cintura, que pode conter 20 flechas. Ative para armazenar flechas." #: lang/json/ARMOR_from_json.py msgid "large quiver" @@ -11409,10 +10011,6 @@ msgid "" "60 arrows. Historically used by horse archers, rather than foot archers, " "but neither of THEM had to fight zombies. Activate to store arrows." msgstr "" -" grande quiverUm grande quiver de couro enfeitado com metal, usadonascostas," -" que pode conter 60 flechas. Historicamente usado por arqueirosacavalo, ao " -"invés de arqueiros de pé, mas nenhum deles teve que lutarcontrazumbis. Ative" -" para armazenar flechas." #: lang/json/ARMOR_from_json.py msgid "large birchbark quiver" @@ -11426,8 +10024,6 @@ msgid "" "A large quiver woven from strips of birchbark, worn on the back, that can " "hold 60 arrows. Activate to store arrows." msgstr "" -" grande quiver birchbark quiver Um grande quiver tecido de tirasdebirchbark," -" usado nas costas, que pode conter 60 flechas. Ativeparaarmazenar flechas." #: lang/json/ARMOR_from_json.py msgid "pouch" @@ -11441,8 +10037,6 @@ msgid "" "A makeshift bag, cobbled together from rags. Really gets in the way, but " "provides a decent amount of storage." msgstr "" -" bolsa improvisada, montada em trapos. Realmente fica no caminho, " -"masforneceuma quantidade razoável de armazenamento." #: lang/json/ARMOR_from_json.py msgid "robe" @@ -11456,8 +10050,6 @@ msgid "" "A loose-fitting outer garment with sleeves, and a mysterious amount of well-" "hidden pockets." msgstr "" -" robeUm vestuário exterior solto com mangas e uma quantidade " -"misteriosadebolsos bem escondidos." #: lang/json/ARMOR_from_json.py msgid "military rucksack" @@ -11469,7 +10061,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A huge military rucksack, provides a lot of storage." msgstr "" -" mochila militarUma mochila militar enorme, fornece muito armazenamento." #: lang/json/ARMOR_from_json.py msgid "runner pack" @@ -11483,9 +10074,6 @@ msgid "" "The obvious choice for outdoor athletes, this ergonomic backpack is light " "and easy to wear, ensuring comfort when carrying heavy and bulky items." msgstr "" -" pack de corrida A escolha óbvia para os atletas ao ar livre, " -"estamochilaergonómica é leve e fácil de usar, garantindo conforto " -"aotransportar itenspesados e volumosos." #: lang/json/ARMOR_from_json.py msgid "scabbard" @@ -11499,8 +10087,6 @@ msgid "" "A large, adjustable sheath for holding swords and other large blades. " "Activate to sheathe/draw a weapon." msgstr "" -" Bainha Uma bainha grande e ajustável para segurar espadas e " -"outraslâminasgrandes. Ative para embainhar / sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "shark suit" @@ -11514,9 +10100,6 @@ msgid "" "A one piece chainmail suit used by scuba divers for protection against shark" " bites. It comes with attached plastic helmet and booties." msgstr "" -" terno de tubarãoUm terno de cota de malha de uma peça usadopormergulhadores" -" para proteção contra picadas de tubarão. Ele vem comcapacetede plástico e " -"botas." #: lang/json/ARMOR_from_json.py msgid "faraday shark suit" @@ -11531,9 +10114,6 @@ msgid "" " bites. It has been conductively interconnected, protecting against " "electricity." msgstr "" -" faraday shark suitUm terno de cota de malha de uma peça " -"usadopormergulhadores para proteção contra picadas de tubarão. " -"Foicondutivamenteinterligado, protegendo contra a eletricidade." #: lang/json/ARMOR_from_json.py msgid "sheath" @@ -11547,9 +10127,6 @@ msgid "" "A leather sheath for holding knives and other small blades. It is easy to " "use without much practice. Activate to sheathe/draw a weapon." msgstr "" -" bainha Uma bainha de couro para segurar facas e outras pequenas " -"lâminas.Éfácil de usar sem muita prática. Ative para embainhar / sacar uma " -"arma." #: lang/json/ARMOR_from_json.py msgid "sheet" @@ -11563,8 +10140,6 @@ msgid "" "A large fabric sheet, could be used as a curtain or bedsheets; or cut up for" " a bunch of rags." msgstr "" -" sheetA grande folha de tecido, pode ser usada como cortina ou " -"lençol;oucortar um monte de trapos." #: lang/json/ARMOR_from_json.py msgid "sheriff's shirt" @@ -11575,7 +10150,7 @@ msgstr[1] "" #. ~ Description for sheriff's shirt #: lang/json/ARMOR_from_json.py msgid "A tan button-down shirt with long sleeves." -msgstr "camisa do xerifeUma camisa de botão bege com mangas compridas." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "shorts" @@ -11586,7 +10161,7 @@ msgstr[1] "" #. ~ Description for shorts #: lang/json/ARMOR_from_json.py msgid "A pair of khaki shorts." -msgstr "calções Um par de calções cáqui." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "cargo shorts" @@ -11598,8 +10173,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of shorts lined with pockets, offering decent storage." msgstr "" -" short de cargaUm par de shorts forrado com bolsos, " -"oferecendoarmazenamentodecente." #: lang/json/ARMOR_from_json.py msgid "denim shorts" @@ -11613,8 +10186,6 @@ msgid "" "A pair of denim shorts. Thick and tough, they provide excellent protection " "from cuts." msgstr "" -" shorts jeans Um par de shorts jeans. Grosso e resistente, " -"elesfornecemexcelente proteção contra cortes." #: lang/json/ARMOR_from_json.py msgid "skinny tie" @@ -11625,7 +10196,7 @@ msgstr[1] "" #. ~ Description for skinny tie #: lang/json/ARMOR_from_json.py msgid "A skinny black and white checkered necktie." -msgstr "Gravata magro em preto e branco." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "skirt" @@ -11639,8 +10210,6 @@ msgid "" "A short, breezy cotton skirt. Easy to move in, but only has a single small " "pocket." msgstr "" -" saiaA saia de algodão curta e arejada. Fácil de se mover, mas tem " -"apenasumpequeno bolso." #: lang/json/ARMOR_from_json.py msgid "leather skirt" @@ -11653,8 +10222,6 @@ msgstr[1] "" msgid "" "A very short leather skirt, clearly designed to look good, not be practical." msgstr "" -" saia de couroUma saia de couro muito curta, claramente projetada paraterboa" -" aparência, não ser prática." #: lang/json/ARMOR_from_json.py msgid "sleeping bag" @@ -11666,17 +10233,17 @@ msgstr[1] "" #. ~ Use action menu_text for fur sleeping bag. #: lang/json/ARMOR_from_json.py msgid "Roll up" -msgstr "saco de dormirRoll up" +msgstr "" #. ~ Use action msg for sleeping bag. #: lang/json/ARMOR_from_json.py msgid "You roll up the sleeping bag, preparing it for transport." -msgstr "Você enrola o saco de dormir, preparando-o para o transporte." +msgstr "" #. ~ Description for sleeping bag #: lang/json/ARMOR_from_json.py msgid "A large sleeping bag that covers you head to toe." -msgstr "Um saco de dormir grande que cobre da cabeça aos pés." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "rolled sleeping bag" @@ -11688,12 +10255,12 @@ msgstr[1] "" #. ~ Use action menu_text for rolled fur sleeping bag. #: lang/json/ARMOR_from_json.py msgid "Unroll" -msgstr "saco de dormir enroladoUnroll" +msgstr "" #. ~ Use action msg for rolled sleeping bag. #: lang/json/ARMOR_from_json.py msgid "You unroll the sleeping bag." -msgstr "Você desenrola o saco de dormir." +msgstr "" #. ~ Description for rolled sleeping bag #: lang/json/ARMOR_from_json.py @@ -11701,8 +10268,6 @@ msgid "" "A large sleeping bag rolled up for transport. It has a strap to carry it " "with." msgstr "" -" Um saco de dormir grande enrolado para o transporte. Tem uma " -"alçaparacarregá-lo." #: lang/json/ARMOR_from_json.py msgid "fur sleeping bag" @@ -11714,14 +10279,11 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "You roll up the fur sleeping bag, preparing it for transport." msgstr "" -" Você está enrolando o saco de dormir de peles, preparando-o " -"paraotransporte." #. ~ Description for fur sleeping bag #: lang/json/ARMOR_from_json.py msgid "A large sleeping bag lined with fur. Who needs a tent?" msgstr "" -" Um saco de dormir grande forrado com pele. Quem precisa de uma barraca?" #: lang/json/ARMOR_from_json.py msgid "rolled fur sleeping bag" @@ -11733,7 +10295,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "You unroll up the fur sleeping bag." msgstr "" -" saco de dormir de pele enroladaVocê desenrola o saco de dormir de pele." #. ~ Description for rolled fur sleeping bag #: lang/json/ARMOR_from_json.py @@ -11741,8 +10302,6 @@ msgid "" "A large sleeping bag lined with fur, rolled for transport. It has a strap " "to carry it with." msgstr "" -" Um saco de dormir grande forrado com pele, enrolado para o transporte. " -"Temuma alça para carregá-lo." #: lang/json/ARMOR_from_json.py msgid "sleeveless duster" @@ -11756,9 +10315,6 @@ msgid "" "A rugged full-length duster that leaves your arms unencumbered. Has plenty " "of storage space due to its many pockets." msgstr "" -" Duster sem mangas Um espanador de comprimento total robusto que " -"deixaseusbraços desimpedidos. Tem muito espaço de armazenamento devido " -"aosseusmuitos bolsos." #: lang/json/ARMOR_from_json.py msgid "sleeveless fur duster" @@ -11772,8 +10328,6 @@ msgid "" "A thick fur full-length duster without sleeves, leaving your arms " "unencumbered. Has plenty of storage space due to its many pockets." msgstr "" -" mangas compridas sem mangas, deixando os braços desimpedidos. " -"Temmuitoespaço de armazenamento devido aos seus muitos bolsos." #: lang/json/ARMOR_from_json.py msgid "sleeveless faux fur duster" @@ -11787,8 +10341,6 @@ msgid "" "A thick, sleeveless faux fur duster, falling below your knees. Has many " "pockets for storing things." msgstr "" -" Duster de pele falso sem mangas Um espanador de peles artificiaissemmangas," -" caindo abaixo dos joelhos. Tem muitos bolsos para armazenarcoisas." #: lang/json/ARMOR_from_json.py msgid "sleeveless leather duster" @@ -11802,9 +10354,6 @@ msgid "" "A thick leather full-length duster without sleeves, leaving your arms " "unencumbered. Has plenty of storage space due to its many pockets." msgstr "" -" Duster de couro sem mangas Duster de couro grosso sem mangas, " -"deixandoosbraços livres. Tem muito espaço de armazenamento devido aos " -"seusmuitosbolsos." #: lang/json/ARMOR_from_json.py msgid "sleeveless survivor duster" @@ -11818,9 +10367,6 @@ msgid "" "A custom Kevlar armored full-length duster without sleeves, covered with " "pouches and pockets. Comfortable, durable, and great for storage." msgstr "" -" sleeveless survivor dusterUm espanador de corpo inteiro " -"blindadoKevlarpersonalizado sem mangas, coberto com bolsas e bolsos. " -"Confortável, durávele excelente para armazenamento." #: lang/json/ARMOR_from_json.py msgid "sleeveless trenchcoat" @@ -11834,8 +10380,6 @@ msgid "" "A thin cotton trenchcoat that leaves your arms unencumbered. Has plenty of " "storage space due to its many pockets." msgstr "" -" trenchcoat sem mangas Um casaco de algodão fino que deixa os braçoslivres. " -"Tem muito espaço de armazenamento devido aos seus muitos bolsos." #: lang/json/ARMOR_from_json.py msgid "sleeveless fur trenchcoat" @@ -11849,9 +10393,6 @@ msgid "" "A thick fur trenchcoat without sleeves, leaving your arms unencumbered. Has" " plenty of storage space due to its many pockets." msgstr "" -" trenchcoat de pele sem mangas Um casaco de pele grossa sem mangas, " -"deixandoos braços desimpedidos. Tem muito espaço de armazenamento devidoaos " -"seusmuitos bolsos." #: lang/json/ARMOR_from_json.py msgid "sleeveless faux fur trenchcoat" @@ -11865,8 +10406,6 @@ msgid "" "A thick faux fur trenchcoat without sleeves. Has plenty of storage space, " "and looks pretty good." msgstr "" -" trenchcoat de pele falsa sem mangas Um casaco de pele grossa de " -"falsosemmangas. Tem muito espaço de armazenamento e parece muito bom." #: lang/json/ARMOR_from_json.py msgid "sleeveless leather trenchcoat" @@ -11880,9 +10419,6 @@ msgid "" "A thick leather trenchcoat without sleeves, leaving your arms unencumbered." " Has plenty of storage space due to its many pockets." msgstr "" -" trenchcoat de couro sem mangas Um trenchcoat de couro grosso semmangas, " -"deixando seus braços desimpedidos. Tem muito espaço de " -"armazenamentodevidoaos seus muitos bolsos." #: lang/json/ARMOR_from_json.py msgid "sleeveless survivor trenchcoat" @@ -11896,9 +10432,6 @@ msgid "" "A custom Kevlar armored trenchcoat without sleeves, covered with pouches and" " pockets. Comfortable, durable, and great for storage." msgstr "" -" sleeveless survivor trenchcoatUm trenchcoat blindado Kevlarpersonalizadosem" -" mangas, coberto com bolsas e bolsos. Confortável, durávele excelentepara " -"armazenamento." #: lang/json/ARMOR_from_json.py msgid "sleeveless tunic" @@ -11910,8 +10443,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A sleeveless cloth garment that covers the torso and legs." msgstr "" -" túnica sem mangasUma peça de tecido sem mangas que cobre o tronco " -"easpernas." #: lang/json/ARMOR_from_json.py msgid "sling pack" @@ -11925,8 +10456,6 @@ msgid "" "A simple single-sling backpack. Easier to access than a normal backpack, " "but can't comfortably hold as much." msgstr "" -" sling packUma mochila simples de uma linga. Mais fácil de acessar do " -"queumamochila normal, mas que não pode aguentar muito." #: lang/json/ARMOR_from_json.py msgid "snuggie" @@ -11937,7 +10466,7 @@ msgstr[1] "" #. ~ Description for snuggie #: lang/json/ARMOR_from_json.py msgid "Perfect for reading all those books you scavenged." -msgstr "snuggiePerfect para ler todos os livros que você limpou." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of sock mitts" @@ -11949,7 +10478,7 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "" "A pair of improvised gloves made from socks with holes poked through them." -msgstr "Um par de luvas de meias feitas de meias com furos." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of socks" @@ -11960,7 +10489,7 @@ msgstr[1] "" #. ~ Description for pair of socks #: lang/json/ARMOR_from_json.py msgid "Socks. Put 'em on your feet." -msgstr "par de meiasSocks. Coloque-os em seus pés." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of bag socks" @@ -11972,8 +10501,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of disposable plastic bags, adapted to be used as socks." msgstr "" -" par de meias sacoUm par de sacolas plásticas descartáveis, " -"adaptadasparaserem usadas como meias." #: lang/json/ARMOR_from_json.py msgid "pair of disposable bowling socks" @@ -11987,8 +10514,6 @@ msgid "" "Cheap one time socks. Can keep your feet clean, but too thin to give any " "protection." msgstr "" -" par de meias de boliche descartáveis. Pode manter seus pés limpos, " -"masmuitofinos para dar alguma proteção." #: lang/json/ARMOR_from_json.py msgid "pair of wool socks" @@ -11999,7 +10524,7 @@ msgstr[1] "" #. ~ Description for pair of wool socks #: lang/json/ARMOR_from_json.py msgid "Warm socks made of wool." -msgstr "par de meias de lãMeias de lã feitas de lã." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "sports bra" @@ -12013,9 +10538,6 @@ 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." msgstr "" -" sutiã esportivo Um sutiã de nylon resistente para fornecer " -"suporteadicionaldurante o movimento físico. Normalmente usado durante " -"oexercício, ele seagarra à pele e é fácil de usar." #: lang/json/ARMOR_from_json.py msgid "WS-47G moisture retention suit" @@ -12044,8 +10566,6 @@ msgstr[1] "" msgid "" "Long cotton socks that reach above the knees to help protect from the cold." msgstr "" -" par de meias meias de algodão longas que atingem acima dos " -"joelhosparaajudar a proteger do frio." #: lang/json/ARMOR_from_json.py msgid "pair of tentacle sleeves" @@ -12059,8 +10579,6 @@ msgid "" "Long cotton tubes sized to fit over tentacles and help protect them from the" " cold." msgstr "" -" par de mangas de tentáculosTubos de algodão longos, " -"dimensionadosparacaberem sobre os tentáculos e ajudar a protegê-los do frio." #: lang/json/ARMOR_from_json.py msgid "pair of tentacle stockings" @@ -12074,8 +10592,6 @@ msgid "" "Six long cotton tubes sized to fit over tentacles and help protect them from" " the cold." msgstr "" -" par de meias tentáculosSe tubos longos de algodão são " -"dimensionadosparacaber sobre os tentáculos e ajudam a protegê-los do frio." #: lang/json/ARMOR_from_json.py msgid "straw basket" @@ -12087,8 +10603,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Hand made straw basket. Carry it with you for extra storage." msgstr "" -" cesta de palhaCesto de palha feito à mão. Carregue com " -"vocêparaarmazenamento extra." #: lang/json/ARMOR_from_json.py msgid "straw hat" @@ -12102,8 +10616,6 @@ msgid "" "Hat that is woven out of straw. Its brim helps keep the sun out of your " "eyes." msgstr "" -" chapéu de palha que é feito de palha. Sua borda ajuda a manter o sollongede" -" seus olhos." #: lang/json/ARMOR_from_json.py msgid "striped pants" @@ -12115,7 +10627,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of pants with horizontal black and white stripes." msgstr "" -" calça listradaUm par de calças com listras horizontais em preto e branco." #: lang/json/ARMOR_from_json.py msgid "striped shirt" @@ -12127,8 +10638,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A long-sleeved shirt with horizontal black and white stripes." msgstr "" -" camisa listradaUma camisa de mangas compridas com listras " -"horizontaisempreto e branco." #: lang/json/ARMOR_from_json.py msgid "subject suit" @@ -12143,10 +10652,6 @@ msgid "" "tailoring and adjustment points... maybe you don't want to know who wore " "it. Provides nominal storage and is not very encumbering." msgstr "" -" terno de sujeitoA um terno de uma peça fina, de manga curta e " -"depernascurtas. A julgar pelos estranhos pontos de ajuste e alfaiataria " -"...talvezvocê não queira saber quem usou. Fornece armazenamento nominal e " -"nãoémuito oneroso." #: lang/json/ARMOR_from_json.py msgid "suit" @@ -12160,8 +10665,6 @@ msgid "" "A full-body cotton suit. Makes the apocalypse a truly gentlemanly " "experience." msgstr "" -" ternoUm terno de algodão de corpo inteiro. Torna o apocalipseumaexperiência" -" verdadeiramente cavalheiresca." #: lang/json/ARMOR_from_json.py msgid "suitcase" @@ -12176,9 +10679,6 @@ msgid "" "possessions during trips, provides a decent amount of storage but hauling it" " around is neither fast nor comfortable." msgstr "" -" Uma enorme mala de rodas usada principalmente para transportar " -"roupaseoutros pertences durante as viagens, fornece uma quantidade " -"razoáveldearmazenamento, mas transportá-lo não é rápida nem confortável." #. ~ Description for suitcase #: lang/json/ARMOR_from_json.py @@ -12187,9 +10687,6 @@ msgid "" "possessions during trips, provides a decent amount of storage but hauling it" " around is not exactly comfortable." msgstr "" -" Uma mala de tamanho médio usada principalmente para transportar " -"roupaseoutros pertences durante viagens, fornece uma quantidade " -"razoáveldearmazenamento, mas transportá-la não é exatamente confortável." #: lang/json/ARMOR_from_json.py msgid "sundress" @@ -12203,8 +10700,6 @@ msgid "" "A light and breezy cotton dress. Though cool and comfortable to wear, it " "lacks any storage space." msgstr "" -" sundressA vestido de algodão leve e arejado. Apesar de legal econfortávelde" -" usar, não possui nenhum espaço de armazenamento." #: lang/json/ARMOR_from_json.py msgid "pair of sunglasses" @@ -12216,8 +10711,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of sunglasses, good for keeping the glare out of your eyes." msgstr "" -" par de óculos de solUm par de óculos de sol, bom para manter o " -"brilhodosolhos." #: lang/json/ARMOR_from_json.py msgid "survivor belt" @@ -12230,7 +10723,7 @@ msgstr[1] "" #. ~ Use action holster_prompt for C.R.I.T web belt. #: lang/json/ARMOR_from_json.py msgid "Sheath blade" -msgstr "Lâmina de sobrevivente" +msgstr "" #. ~ Description for survivor belt #: lang/json/ARMOR_from_json.py @@ -12239,10 +10732,6 @@ msgid "" "sheath to carry a smaller blade. Durable and carefully crafted to be " "comfortable to wear. Activate to sheathe/draw a weapon." msgstr "" -" Um cinto de utilidades de couro feito sob encomenda coberto com " -"tirasebolsas com uma bainha para transportar uma lâmina menor. " -"Durávelecuidadosamente trabalhada para ser confortável de usar. " -"Ativeparaembainhar / sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "survivor duffel bag" @@ -12256,9 +10745,6 @@ msgid "" "A custom-built heavy duffel bag. Durable and carefully crafted to hold as " "much stuff as possible." msgstr "" -" saco de lona do sobrevivente Uma mochila pesada custom-built. " -"Durávelecuidadosamente trabalhada para armazenar o máximo de material " -"possível." #: lang/json/ARMOR_from_json.py msgid "survivor goggles" @@ -12272,9 +10758,6 @@ msgid "" "A custom-built pair of armored goggles with tinted lenses. Comfortable and " "built to last, they provide excellent protection from environmental dangers." msgstr "" -" óculos de sobrevivênciaUm par de óculos blindados feitos sob " -"medidacomlentes coloridas. Confortável e construído para durar, " -"elesfornecemexcelente proteção contra os perigos ambientais." #: lang/json/ARMOR_from_json.py msgid "survivor backpack" @@ -12288,8 +10771,6 @@ msgid "" "A custom-built backpack. Durable and carefully crafted to hold as much " "stuff as possible." msgstr "" -" Sobrevivente backpackA mochila personalizada. Durável " -"ecuidadosamentetrabalhada para armazenar o máximo de material possível." #: lang/json/ARMOR_from_json.py msgid "survivor rucksack" @@ -12303,9 +10784,6 @@ msgid "" "A custom-built heavy backpack. Durable and carefully crafted to hold as " "much stuff as possible." msgstr "" -" Mochila de sobreviventeUma mochila pesada personalizada. " -"Durávelecuidadosamente trabalhada para armazenar o máximo de material " -"possível." #: lang/json/ARMOR_from_json.py msgid "survivor runner pack" @@ -12319,9 +10797,6 @@ msgid "" "A custom-built lightweight runner pack. Durable and carefully crafted to " "hold as much stuff as possible." msgstr "" -" pack runner sobreviventeUm pack runner leve e personalizado. " -"Durávelecuidadosamente trabalhada para armazenar o máximo de material " -"possível." #: lang/json/ARMOR_from_json.py msgid "survivor suit" @@ -12335,9 +10810,6 @@ msgid "" "A hand-built combination armor made from a bulletproof vest and a reinforced" " leather jumpsuit. Protects from the elements as well as from harm." msgstr "" -" Fato de sobreviventeUma combinação de armadura feita à mão feita deumcolete" -" à prova de balas e um macacão de couro reforçado. Protegedoselementos, bem " -"como do dano." #: lang/json/ARMOR_from_json.py msgid "swag bag" @@ -12351,8 +10823,6 @@ msgid "" "A large canvas sack, re-purposed for makeshift storage. Goes well with a " "striped shirt and a domino mask." msgstr "" -" saco de lonaUm grande saco de lona, adaptado para armazenamentoimprovisado." -" Vai bem com uma camisa listrada e uma máscara de dominó." #: lang/json/ARMOR_from_json.py msgid "SWAT armor" @@ -12366,8 +10836,6 @@ msgid "" "A suit of black bulletproof armor with lots of pockets. The word SWAT is " "emblazoned across the back." msgstr "" -" SWAT armorA armadura preta à prova de balas com muitos bolsos. ApalavraSWAT" -" é estampada nas costas." #: lang/json/ARMOR_from_json.py msgid "sweater" @@ -12378,7 +10846,7 @@ msgstr[1] "" #. ~ Description for sweater #: lang/json/ARMOR_from_json.py msgid "A wool shirt. Provides warmth." -msgstr "Uma camisa de lã. Fornece calor." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "sweatshirt" @@ -12389,7 +10857,7 @@ msgstr[1] "" #. ~ Description for sweatshirt #: lang/json/ARMOR_from_json.py msgid "A thick cotton shirt. Provides warmth and a bit of padding." -msgstr "Camisa de algodão grossa. Fornece calor e um pouco de preenchimento." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of tabi" @@ -12401,7 +10869,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of black tabi, as worn with traditional Japanese clothes." msgstr "" -" par de tabi Um par de tabi preto, usado com roupas tradicionais japonesas." #: lang/json/ARMOR_from_json.py msgid "pair of gi tabi" @@ -12413,8 +10880,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of white tabi, as used by martial arts practitioners." msgstr "" -" par de gi tabi Um par de tabi branco, usado pelos praticantes " -"deartesmarciais." #: lang/json/ARMOR_from_json.py msgid "tactical full helmet" @@ -12428,9 +10893,6 @@ msgid "" "An all-encompassing black helmet that covers your entire face and neck, " "providing excellent protection from all sorts of damage." msgstr "" -" capacete totalmente tático Um capacete preto abrangente que cobre " -"todoorosto e pescoço, fornecendo excelente proteção contra todos os " -"tiposdedanos." #: lang/json/ARMOR_from_json.py msgid "tactical helmet" @@ -12444,8 +10906,6 @@ msgid "" "A lightweight black helmet that provides excellent protection from all sorts" " of damage." msgstr "" -" capacete táticoUm capacete preto leve que fornece excelente " -"proteçãocontratodos os tipos de danos." #: lang/json/ARMOR_from_json.py msgid "tank top" @@ -12456,7 +10916,7 @@ msgstr[1] "" #. ~ Description for tank top #: lang/json/ARMOR_from_json.py msgid "A sleeveless cotton shirt. Very easy to move in." -msgstr "blusa de algodão sem mangas. Muito fácil de se mudar." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "work pants" @@ -12467,15 +10927,15 @@ msgstr[1] "" #. ~ Description for work pants #: lang/json/ARMOR_from_json.py msgid "A pair of gray work pants." -msgstr "calças de trabalhoUm par de calças de trabalho cinza." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "A pair of blue work pants." -msgstr "Um par de calças azuis de trabalho." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "A pair of light-blue work pants." -msgstr "Um par de calças de trabalho azul claro." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "work t-shirt" @@ -12486,15 +10946,15 @@ msgstr[1] "" #. ~ Description for work t-shirt #: lang/json/ARMOR_from_json.py msgid "A gray work t-shirt with a small front pocket." -msgstr "trabalho t-shirtUma t-shirt cinzenta com bolso frontal pequeno." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "A blue work t-shirt with a small front pocket." -msgstr "Uma t-shirt de trabalho azul com um pequeno bolso frontal." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "A light-blue work t-shirt with a small front pocket." -msgstr "Uma t-shirt de trabalho azul claro com um pequeno bolso frontal." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "thawb" @@ -12507,7 +10967,6 @@ msgstr[1] "" msgid "" "A long, loose-fitting robe with wide sleeves, a traditional Arab garment." msgstr "" -" thawbUm robe longo e solto com mangas largas, uma roupa tradicional árabe." #: lang/json/ARMOR_from_json.py msgid "tights" @@ -12521,8 +10980,6 @@ msgid "" "A snug cloth garment which clings tightly to the legs and feet to protect " "them from the cold." msgstr "" -" collantsUm vestuário apertado que se agarra firmemente às pernas e " -"pésparaprotegê-los do frio." #: lang/json/ARMOR_from_json.py msgid "tinfoil hat" @@ -12537,8 +10994,6 @@ msgid "" "Perfect for protecting yourself from the government, Illuminati, aliens, and" " THEM." msgstr "" -" folha de folha de alumínio que foi moldada em um chapéu de forma- montagem." -" Perfeito para proteger-se do governo, Illuminati, alienígenas eELES." #: lang/json/ARMOR_from_json.py msgid "tool belt" @@ -12552,8 +11007,6 @@ msgid "" "A common belt with pockets and four small belt loops. Widely used by " "handymen and electricians." msgstr "" -" cinto de ferramentasUm cinto comum com bolsos e quatro presilhaspequenas. " -"Amplamente utilizado por handymen e eletricistas." #: lang/json/ARMOR_from_json.py msgid "top hat" @@ -12567,8 +11020,6 @@ msgid "" "The only hat for a gentleman. Look exquisite while laughing in the face of " "danger!" msgstr "" -" cartolaO único chapéu para um cavalheiro. Olhe requintado ao rir na " -"caradoperigo!" #: lang/json/ARMOR_from_json.py msgid "leather touring suit" @@ -12582,8 +11033,6 @@ msgid "" "A thick leather body suit made for protection while riding motorcycles. " "Light and very comfortable." msgstr "" -" terno de couro de passeioUm terno de couro grosso feito para " -"proteçãoaoandar de motocicletas. Leve e muito confortável." #: lang/json/ARMOR_from_json.py msgid "trenchcoat" @@ -12595,8 +11044,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thin cotton trenchcoat, lined with pockets. Great for storage." msgstr "" -" Trenchcoat Um casaco de algodão fino, forrado com bolsos. " -"Ótimoparaarmazenamento." #: lang/json/ARMOR_from_json.py msgid "fur trenchcoat" @@ -12608,8 +11055,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thick fur trenchcoat, lined with pockets. Great for storage." msgstr "" -" trenchcoat de peleUm trenchcoat de pele grossa, forrado com " -"bolsos.Ótimopara armazenamento." #: lang/json/ARMOR_from_json.py msgid "faux fur trenchcoat" @@ -12623,8 +11068,6 @@ msgid "" "A thick faux fur trenchcoat, lined with pockets. Great for storage, and " "makes you the talk of the town." msgstr "" -" trenchcoat da pele do falsoUm trenchcoat grosso da pele do falso, " -"alinhadocom bolsos. Ótimo para armazenamento e faz você falar da cidade." #: lang/json/ARMOR_from_json.py msgid "leather trenchcoat" @@ -12636,8 +11079,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A thick leather trenchcoat, lined with pockets. Great for storage." msgstr "" -" trenchcoat de couroUm trenchcoat de couro grosso, forrado com " -"bolsos.Ótimopara armazenamento." #: lang/json/ARMOR_from_json.py msgid "survivor trenchcoat" @@ -12651,9 +11092,6 @@ msgid "" "A Kevlar armored custom trenchcoat, covered with pouches and pockets. " "Comfortable, durable, and great for storage." msgstr "" -" trenchcoat survivor Um trenchcoat personalizado Kevlar blindado, " -"cobertocombolsas e bolsos. Confortável, durável e excelente para " -"armazenamento." #: lang/json/ARMOR_from_json.py msgid "tricorne" @@ -12670,11 +11108,6 @@ msgid "" "\"guvnah\" of a settlement, or the captain of a post-apocalyptic crew, this " "is the hat for you." msgstr "" -" tricorneUm design clássico, o \"tricorne \", ou chapéu de trêspontas, " -"simplesmente deixa uma aba grande e flexível fora do caminho, " -"emboraesteexemplo adicione desenhos bem bordados e seja lubrificado contra " -"aágua. Se você é o \"guvnah\" de um assentamento, ou o capitão de uma " -"equipepós-apocalíptico, este é o chapéu para você." #: lang/json/ARMOR_from_json.py msgid "pair of swimming trunks" @@ -12685,7 +11118,7 @@ msgstr[1] "" #. ~ Description for pair of swimming trunks #: lang/json/ARMOR_from_json.py msgid "A pair of swimming trunks, with netting." -msgstr "par de calções de banho Um par de calções de banho, com rede." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "t-shirt" @@ -12697,15 +11130,13 @@ msgstr[1] "" #. ~ Description for tour t-shirt #: lang/json/ARMOR_from_json.py msgid "A short-sleeved cotton shirt." -msgstr "Uma camisa de algodão de manga curta." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "" "A short-sleeved cotton shirt with the text \"chown -R us ~your/base\" " "printed on the front." msgstr "" -" Uma camisa de algodão de manga curta com o texto \"chown -R us ~ your " -"/base\" impresso na frente." #: lang/json/ARMOR_from_json.py msgid "tour t-shirt" @@ -12773,7 +11204,7 @@ msgstr[1] "" #. ~ Description for tunic #: lang/json/ARMOR_from_json.py msgid "A simple garment long enough to cover down to the knees." -msgstr "túnica Uma roupa simples o suficiente para cobrir até os joelhos." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "rag tunic" @@ -12787,8 +11218,6 @@ msgid "" "A poorly made long tunic with a string tied around the waist to keep it all " "in place." msgstr "" -" túnica de pano Uma túnica longa mal feita com uma corda amarrada " -"nacinturapara manter tudo no lugar." #: lang/json/ARMOR_from_json.py msgid "turban" @@ -12799,7 +11228,7 @@ msgstr[1] "" #. ~ Description for turban #: lang/json/ARMOR_from_json.py msgid "Rags worn around the head." -msgstr "TurbanRags usados ao redor da cabeça." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "headscarf" @@ -12822,8 +11251,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A full-body tuxedo. Makes the apocalypse feel a little more classy." msgstr "" -" smokingUm smoking de corpo inteiro. Faz o apocalipse se sentir um " -"poucomaiselegante." #: lang/json/ARMOR_from_json.py msgid "compression top" @@ -12836,8 +11263,6 @@ msgstr[1] "" msgid "" "Nylon sportswear that clings to your chest and maintains body temperature." msgstr "" -" sportswear topNylon compressão que se agarra ao seu peito e " -"mantématemperatura corporal." #: lang/json/ARMOR_from_json.py msgid "compression shorts" @@ -12851,8 +11276,6 @@ msgid "" "Nylon sportswear that clings to your upper legs, aiding muscle tone and " "maintaining warmth." msgstr "" -" shorts de compressãoNylon sportswear que se agarra a sua parte " -"superiordaspernas, ajudando o tônus muscular e mantendo o calor." #: lang/json/ARMOR_from_json.py msgid "undershirt" @@ -12866,8 +11289,6 @@ msgid "" "A simple white undershirt. Worn beneath your regular clothes, it provides a" " little extra warmth." msgstr "" -" undershirtUma simples camisola branca. Desgastado sob suas roupasnormais, " -"ele fornece um pouco de calor extra." #: lang/json/ARMOR_from_json.py msgid "union suit" @@ -12881,8 +11302,6 @@ msgid "" "A one-piece suit of full-body long underwear that helps to maintain body " "temperature. It laces closed in the front." msgstr "" -" terno da uniãoUm terno de uma peça de roupa íntima longa de corpointeiroque" -" ajuda a manter a temperatura do corpo. Laços fechados na frente." #: lang/json/ARMOR_from_json.py msgid "pair of leather vambraces" @@ -12894,8 +11313,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of light leather arm guards, made for archery." msgstr "" -" Par de vambraces de couroUm par de guardas de braço de couro leve, " -"feitaspara tiro com arco." #: lang/json/ARMOR_from_json.py msgid "wedding veil" @@ -12906,7 +11323,7 @@ msgstr[1] "" #. ~ Description for wedding veil #: lang/json/ARMOR_from_json.py msgid "A lacy white wedding veil." -msgstr "véu do casamento Um véu de noiva branco rendado." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "utility vest" @@ -12918,8 +11335,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A light vest covered in pockets and straps for storage." msgstr "" -" colete utilitário colete leve coberto em bolsos e " -"correiasparaarmazenamento." #: lang/json/ARMOR_from_json.py msgid "leather vest" @@ -12932,8 +11347,6 @@ msgstr[1] "" msgid "" "A vest made from thick leather. Offers excellent protection from cuts." msgstr "" -" colete de couro Um colete feito de couro grosso. Oferece " -"excelenteproteçãocontra cortes." #: lang/json/ARMOR_from_json.py msgid "armored leather vest" @@ -12947,8 +11360,6 @@ msgid "" "An armored vest made from thick leather and metal plates. Cumbersome, but " "offers excellent protection from harm." msgstr "" -" colete de couro blindado Um colete blindado feito de couro grosso eplacasde" -" metal. Incômodo, mas oferece excelente proteção contra danos." #: lang/json/ARMOR_from_json.py msgid "waistcoat" @@ -12962,8 +11373,6 @@ msgid "" "An elegant waistcoat. Ideal for those occasions when wearing only a shirt " "would be too casual and a suit would be just overdoing it." msgstr "" -" coleteColete elegante. Ideal para aquelas ocasiões em que vestindoapenasuma" -" camisa seria muito casual e um terno seria apenas exagerar." #: lang/json/ARMOR_from_json.py msgid "wetsuit" @@ -12974,7 +11383,7 @@ msgstr[1] "" #. ~ Description for wetsuit #: lang/json/ARMOR_from_json.py msgid "A full-body neoprene wetsuit." -msgstr "wetsuitUm fato de neoprene de corpo inteiro." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of swimming gloves" @@ -12988,8 +11397,6 @@ msgid "" "A pair of very flexible neoprene-silicone rubber gloves, suitable for " "underwater use." msgstr "" -" par de luvas de nataçãoUm par de luvas de borracha de neopreno- " -"siliconemuito flexíveis, adequadas para uso subaquático." #: lang/json/ARMOR_from_json.py msgid "wetsuit hood" @@ -13001,7 +11408,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A neoprene hood, commonly worn by divers." msgstr "" -" capuz de neoprene Um capuz de neoprene, comumente usado por mergulhadores." #: lang/json/ARMOR_from_json.py msgid "spring suit" @@ -13016,9 +11422,6 @@ msgid "" "enhancing, hip-accentuating construction. Not as protective as a full-body " "suit, but also less restrictive." msgstr "" -" Fato de moletom de moletom de mangas compridas com detalhes em cor " -"rosaeconstrução que acentua o decote e acentua o quadril. Não é " -"tãoprotetorquanto um traje de corpo inteiro, mas também menos restritivo." #: lang/json/ARMOR_from_json.py msgid "pair of army winter gloves" @@ -13030,8 +11433,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of padded gloves. Favored by the military." msgstr "" -" par de luvas de inverno do exércitoUm par de luvas acolchoadas. " -"Favorecidopelos militares." #: lang/json/ARMOR_from_json.py msgid "army winter jacket" @@ -13045,9 +11446,6 @@ msgid "" "A tough hooded jacket with lots of pockets, thickly padded for warmth. " "Favored by the military." msgstr "" -" jaqueta de inverno do exércitoUma jaqueta com capuz resistente " -"commuitosbolsos, densamente acolchoada para o calor. Favorecido " -"pelosmilitares." #: lang/json/ARMOR_from_json.py msgid "army winter pants" @@ -13061,8 +11459,6 @@ msgid "" "A tough pair of pants lined with pockets, thickly padded for warmth. " "Favored by the military." msgstr "" -" calças de inverno do exército Um par de calças duras forradas combolsos, " -"densamente acolchoadas para o calor. Favorecido pelos militares." #: lang/json/ARMOR_from_json.py msgid "wolf suit" @@ -13076,9 +11472,6 @@ msgid "" "A full body fursuit in the form of an anthropomorphic wolf. It is quite " "encumbering and has little storage but is very warm." msgstr "" -" lobo ternoUma fursuit de corpo inteiro na forma de um lobo " -"antropomórfico.Ébastante oneroso e tem pouco armazenamento, mas é muito " -"quente." #: lang/json/ARMOR_from_json.py msgid "wool hoodie" @@ -13092,8 +11485,6 @@ msgid "" "A wool hooded shirt. It offers decent protection against the cold. The " "front pocket offers both storage room and shelter for your hands." msgstr "" -" hoodie de lãA camisa de lã com capuz. Oferece proteção decente contraofrio." -" O bolso frontal oferece espaço de armazenamento e abrigo paraasmãos." #: lang/json/ARMOR_from_json.py msgid "wool suit" @@ -13107,9 +11498,6 @@ msgid "" "An encumbering wool suit covered in nice patterns. It looks like full body " "armor but it only protects against cold, sadly." msgstr "" -" terno de lã Um terno de lã sobrecarregado coberto de padrõesagradáveis. " -"Parece uma armadura de corpo inteiro, mas protege contra ofrio, " -"infelizmente." #: lang/json/ARMOR_from_json.py msgid "winter survivor suit" @@ -13124,9 +11512,6 @@ msgid "" "bulletproof vest and an insulated leather jumpsuit. Protects from the " "elements as well as from harm." msgstr "" -" Fato de sobrevivente de invernoUma combinação de armadura quente " -"epesadafeita à mão feita de um colete à prova de balas reforçado e ummacacão" -" decouro isolado. Protege dos elementos, bem como do dano." #: lang/json/ARMOR_from_json.py msgid "XL survivor suit" @@ -13165,7 +11550,7 @@ msgstr[1] "" #. ~ Description for zubon #: lang/json/ARMOR_from_json.py msgid "Plain white zubon for use in martial arts." -msgstr "zubonPlain zubon branco para uso em artes marciais." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "violin case" @@ -13179,8 +11564,6 @@ msgid "" "Useful to carry your precious musical instrument around protected from any " "harm." msgstr "" -" Caso de violinoUseful para transportar seu precioso instrumento " -"musicalemtorno protegido contra qualquer dano." #: lang/json/ARMOR_from_json.py msgid "hazmat suit" @@ -13196,10 +11579,6 @@ msgid "" "complete protection against ambient radiation. It requires a separate gas " "mask for full protection." msgstr "" -" Terno para materiais perigososUm vestuário impermeável de corpointeirousado" -" como proteção contra materiais perigosos. Embora sejamuitorestritivo e " -"frágil, o seu uso fornecerá proteção completa contraaradiação ambiente. " -"Requer uma máscara de gás separada para proteção total." #: lang/json/ARMOR_from_json.py msgid "ANBC suit" @@ -13214,9 +11593,6 @@ msgid "" " as protecting from nuclear, biological, and chemical hazards. It requires " "a separate gas mask for full protection." msgstr "" -" Fato ANBCUm fato de corpo inteiro blindado e impermeável que " -"funcionacomoarmadura corporal, bem como protege contra perigos nucleares, " -"biológicos equímicos. Requer uma máscara de gás separada para proteçãototal." #: lang/json/ARMOR_from_json.py msgid "Hub 01 enviromental suit" @@ -13247,10 +11623,6 @@ msgid "" "excellent protection against fire and smoke. It requires a separate gas " "mask for full protection." msgstr "" -" roupa de entradaUma roupa de corpo inteiro resistente a chamas " -"usadapelosbombeiros como proteção contra o calor extremo. Embora " -"sejamuitorestritivo, o seu uso proporcionará excelente proteção contra " -"fogoefumaça. Requer uma máscara de gás separada para proteção total." #: lang/json/ARMOR_from_json.py msgid "pair of golfing gloves" @@ -13261,7 +11633,7 @@ msgstr[1] "" #. ~ Description for pair of golfing gloves #: lang/json/ARMOR_from_json.py msgid "A thin pair of black leather golfing gloves." -msgstr "par de luvas de golfeUm par fino de luvas de golfe de couro preto." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "golf cap" @@ -13275,8 +11647,6 @@ msgid "" "You're not actually sure if this is called a golf cap but its the " "stereotypical cap golfers wear." msgstr "" -" Você não tem certeza se isso é chamado de boné de golfe, mas é o usodebonés" -" estereotipados." #: lang/json/ARMOR_from_json.py msgid "golf bag" @@ -13293,7 +11663,7 @@ msgstr "" #. ~ Use action holster_prompt for golf bag. #: lang/json/ARMOR_from_json.py msgid "Sheath golf club" -msgstr "Clube de golfe bainha" +msgstr "" #. ~ Description for golf bag #: lang/json/ARMOR_from_json.py @@ -13301,8 +11671,6 @@ 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 "" -" Uma lona alta e saco de plástico com pernas dobráveis usadas " -"parajogargolfe. Ele ainda tem correias para serem usadas nas costas." #: lang/json/ARMOR_from_json.py msgid "javelin bag" @@ -13335,15 +11703,13 @@ msgstr "" #. ~ Use action holster_prompt for javelin bag. #: lang/json/ARMOR_from_json.py msgid "Stash javelins" -msgstr "Esconder dardos" +msgstr "" #. ~ Description for javelin bag #: lang/json/ARMOR_from_json.py msgid "" "An open medieval-looking bag, designed to store javelins for easy reach." msgstr "" -" Um saco de aparência medieval aberto, projetado para armazenar " -"dardosparafácil alcance." #: lang/json/ARMOR_from_json.py msgid "XL pot helmet" @@ -13357,8 +11723,6 @@ msgid "" "A huge makeshift helmet made from a canning pot. For the truly desperate " "man-bear-pig." msgstr "" -" Capacete de pote XL Um enorme capacete improvisado feito de um " -"potedeconserva. Para o homem verdadeiramente desesperado, o urso-porco." #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" @@ -13372,8 +11736,6 @@ msgid "" "An ancient Greek bronze helmet that provides excellent protection for the " "head, with slits for the eyes and mouth." msgstr "" -" Capacete corinthiano Um capacete de bronze grego antigo queofereceexcelente" -" proteção para a cabeça, com fendas para os olhos e a boca." #: lang/json/ARMOR_from_json.py msgid "bell cuirass" @@ -13384,7 +11746,7 @@ msgstr[1] "" #. ~ Description for bell cuirass #: lang/json/ARMOR_from_json.py msgid "An ancient Greek breastplate, made of bronze." -msgstr "couraça de sinoUma couraça grega antiga, feita de bronze." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of bronze greaves" @@ -13396,8 +11758,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of bronze leg guards with a simple leather lining." msgstr "" -" par de grevas de bronzeUm par de guardas de perna de bronze com um " -"forrodecouro simples." #: lang/json/ARMOR_from_json.py msgid "tarpaulin" @@ -13411,8 +11771,6 @@ msgid "" "A plastic sheet with several grommets for securing it with rope or cord. " "Useful for improvised rain protection." msgstr "" -" lona de plástico com vários ilhós para prendê-lo com corda ou cabo.Útilpara" -" proteção contra chuva improvisada." #: lang/json/ARMOR_from_json.py msgid "survivor utility belt" @@ -13428,11 +11786,6 @@ msgid "" "Durable and carefully crafted to be comfortable to wear. Activate to " "sheathe/draw a weapon." msgstr "" -" cinto utilitário de sobrevivênciaUm cinto utilitário de couropersonalizado," -" coberto com tiras e bolsas contendo muitas ferramentasmanuais úteis e " -"umabainha para transportar uma lâmina menor. Durável " -"ecuidadosamentetrabalhada para ser confortável de usar. Ative paraembainhar " -"/ sacar umaarma." #: lang/json/ARMOR_from_json.py msgid "ammo satchel" @@ -13456,7 +11809,7 @@ msgstr[1] "" #. ~ Use action holster_prompt for MBR vest (titanium). #: lang/json/ARMOR_from_json.py msgid "Stash ammo" -msgstr "munição de munição satchelStash" +msgstr "" #. ~ Description for ammo satchel #: lang/json/ARMOR_from_json.py @@ -13464,8 +11817,6 @@ msgid "" "A fabric ammo bag worn at the waist which is capable of holding a single " "large magazine close at hand." msgstr "" -" Um saco de munição de tecido usado na cintura que é capaz de " -"segurarumaúnica grande revista à mão." #: lang/json/ARMOR_from_json.py msgid "chest ammo pouch" @@ -13479,8 +11830,6 @@ msgid "" "A fabric ammo pouch that can be strapped to your chest which is capable of " "holding a single magazine close at hand." msgstr "" -" bolsa de munição de peitoUma bolsa de munição de tecido que podeseramarrada" -" ao seu peito que é capaz de segurar uma única revista à mão." #: lang/json/ARMOR_from_json.py msgid "magazine bandolier" @@ -13493,8 +11842,6 @@ msgstr[1] "" msgid "" "A bandolier of pouches capable of carrying four magazines close at hand." msgstr "" -" magazine bandolierUm bandoleiro de bolsas capaz de levar quatro " -"revistasàmão." #: lang/json/ARMOR_from_json.py msgid "chest rig" @@ -13509,9 +11856,6 @@ msgid "" "favored by the military, as it is capable of holding four magazines close at" " hand." msgstr "" -" colete de luz rigA peito coberto de correias, bolsos e correias. " -"Essavariedade é favorecida pelos militares, já que é capaz de " -"manterquatrorevistas por perto." #: lang/json/ARMOR_from_json.py msgid "ankle ammo pouch" @@ -13525,9 +11869,6 @@ msgid "" "A small fabric ammo pouch that can be strapped to your ankle which is " "capable of holding a single small magazine close at hand." msgstr "" -" bolsa de munição de tornozelo Uma bolsa de munição de tecido pequeno que " -"pode ser amarrada ao seu tornozelo, que é capaz de segurar umaúnicapequena " -"revista perto de si." #: lang/json/ARMOR_from_json.py msgid "leg ammo pouch" @@ -13541,8 +11882,6 @@ msgid "" "A fabric ammo pouch that can be strapped to your leg and capable of holding " "two magazine close at hand." msgstr "" -" bolsa de munição de pernaUma bolsa de munição de tecido que podeseramarrada" -" à sua perna e capaz de segurar duas revistas por perto." #: lang/json/ARMOR_from_json.py msgid "MBR vest (empty)" @@ -13557,10 +11896,6 @@ msgid "" "but without them provides little more protection over a regular vest. It " "has four pouches capable of carrying magazines." msgstr "" -" Colete MBR (vazio) Um Colete Modular Resistente a Bala. Ele tem " -"bolsasparainserções de armaduras extras, mas sem elas fornece pouca " -"proteçãosobre umcolete regular. Tem quatro bolsas capazes de carregar " -"revistas." #: lang/json/ARMOR_from_json.py msgid "MBR vest (ceramic plates)" @@ -13575,10 +11910,6 @@ msgid "" "improve its protection. The ceramic plates cannot be repaired, only " "replaced. It has four pouches capable of carrying magazines." msgstr "" -" Colete MBR (placas de cerâmica) Um Colete Modular Resistente a Bala. " -"Placascerâmicas foram inseridas para melhorar sua proteção. As placas " -"decerâmicanão podem ser reparadas, apenas substituídas. Tem quatro " -"bolsascapazes decarregar revistas." #: lang/json/ARMOR_from_json.py msgid "MBR vest (hard plates)" @@ -13593,10 +11924,6 @@ msgid "" "greatly increasing its protection at the cost of a great deal of weight and " "loss of flexibility. It has four pouches capable of carrying magazines." msgstr "" -" Colete MBR (chapas duras) Um Colete Modular Resistente a Bala. Placas " -"deaçoendurecidas foram inseridas, aumentando muito sua proteção ao custo " -"deumgrande peso e perda de flexibilidade. Tem quatro bolsas capazes " -"decarregarrevistas." #: lang/json/ARMOR_from_json.py msgid "MBR vest (Kevlar plates)" @@ -13610,9 +11937,6 @@ msgid "" "A Modular Bullet Resistant Vest. Kevlar plates have been inserted to " "improve its protection. It has four pouches capable of carrying magazines." msgstr "" -" Colete MBR (placas de Kevlar) Um Colete Modular Resistente a Bala. " -"PlacasdeKevlar foram inseridas para melhorar sua proteção. Tem quatro " -"bolsascapazesde carregar revistas." #: lang/json/ARMOR_from_json.py msgid "MBR vest (steel plating)" @@ -13627,10 +11951,6 @@ msgid "" "them; this improves protection, but makes the vest much heavier and " "encumbering. It has four pouches capable of carrying magazines." msgstr "" -" Colete MBR (chapeamento de aço) A Colete Modular Resistente a Bala. " -"Suasbolsas de armadura contêm placas de aço; isso melhora a proteção, " -"mastornao colete muito mais pesado e pesado. Tem quatro bolsas capazes " -"decarregarrevistas." #: lang/json/ARMOR_from_json.py msgid "MBR vest (superalloy)" @@ -13645,10 +11965,6 @@ msgid "" "in them, giving it extra protection with marginal flexibility loss and " "additional weight. It has four pouches capable of carrying magazines." msgstr "" -" Colete MBR (superliga) Um Colete Modular Resistente a Bala. Suas " -"bolsasdeblindagem possuem revestimento de superliga, proporcionando " -"proteçãoextracom perda de flexibilidade marginal e peso adicional. Tem " -"quatrobolsascapazes de carregar revistas." #: lang/json/ARMOR_from_json.py msgid "XL kevlar vest" @@ -13675,9 +11991,6 @@ msgid "" "An embroidered leather bandolier for keeping pistol cartridges close to " "hand. If this doesn't make you feel like a cowboy nothing will." msgstr "" -" bandoleira de pistolaUma bandoleira de couro bordado para mantercartuchosde" -" pistola perto da mão. Se isso não faz você se sentir como umvaqueironada " -"vai." #: lang/json/ARMOR_from_json.py msgid "rifle bandolier" @@ -13689,8 +12002,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A leather bandolier for keeping rifle cartridges close to hand." msgstr "" -" bandoleira rifleA bandoleira de couro para manter cartuchos de riflepertoda" -" mão." #: lang/json/ARMOR_from_json.py msgid "waist shotgun bandolier" @@ -13730,8 +12041,6 @@ msgid "" "A covered leather pouch, worn at the waist to store and protect prepared " "blackpowder cartridges." msgstr "" -" bolsa para cartuchos de papelUma bolsa de couro coberta, usada " -"nacinturapara guardar e proteger os cartuchos de pó preto." #: lang/json/ARMOR_from_json.py msgid "wrist bandolier" @@ -13745,8 +12054,6 @@ msgid "" "A small fabric bandolier for rifle cartridges designed to be worn around the" " wrist." msgstr "" -" pulse bandolierA bandoleira de tecido pequeno para cartuchos " -"derifleprojetado para ser usado em torno do pulso." #: lang/json/ARMOR_from_json.py msgid "grenade pouch" @@ -13760,8 +12067,6 @@ msgid "" "A small pouch for storing cartridge grenades with straps for attaching it to" " your belt or other webbing." msgstr "" -" granada pouchUma pequena bolsa para armazenar granadas de cartucho " -"comtiraspara prendê-lo ao cinto ou a outras correias." #: lang/json/ARMOR_from_json.py msgid "large grenade pouch" @@ -13772,12 +12077,12 @@ msgstr[1] "" #. ~ Use action holster_prompt for large grenade pouch. #: lang/json/ARMOR_from_json.py msgid "Stash grenades" -msgstr "grandes granadas pouchStash granadas" +msgstr "" #. ~ Description for large grenade pouch #: lang/json/ARMOR_from_json.py msgid "A pouch for holding up to four full-sized grenades of various types." -msgstr "Uma bolsa para guardar até quatro granadas de tamanho normal." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of cord sandals" @@ -13791,9 +12096,6 @@ msgid "" "Lightweight sandals made from wound cord. They offer little in the way of " "protection, but keep you cool during warmer months." msgstr "" -" par de sandálias de cordãoSandálias leves feitas de corda enrolada. " -"Elesoferecem pouco em termos de proteção, mas mantêm a calma durante " -"osmesesmais quentes." #: lang/json/ARMOR_from_json.py msgid "pair of boots" @@ -13804,7 +12106,7 @@ msgstr[1] "" #. ~ Description for pair of boots #: lang/json/ARMOR_from_json.py msgid "Tough leather boots. Very durable." -msgstr "botas de couro. Muito durável." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of bone armor boots" @@ -13817,8 +12119,6 @@ msgstr[1] "" msgid "" "Leather boots armored with reinforcements made from bone. Light and strong." msgstr "" -" par de botas de armadura de ossoBotas de couro blindadas com " -"reforçosfeitosde osso. Leve e forte." #: lang/json/ARMOR_from_json.py msgid "pair of turnout boots" @@ -13832,9 +12132,6 @@ msgid "" "A pair of steel-toed rubber boots, the sort worn by firefighters. Highly " "resistant to heat and flame, they provide excellent protection from injury." msgstr "" -" Um par de botas de borracha com ponta de aço, do tipo usado pelosbombeiros." -" Altamente resistente ao calor e à chama, eles fornecem " -"excelenteproteçãocontra ferimentos." #: lang/json/ARMOR_from_json.py msgid "pair of chitinous boots" @@ -13846,8 +12143,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Boots made from the exoskeletons of insects. Light and durable." msgstr "" -" par de botas quitinosasBotas feitas a partir dos exoesqueletos deinsetos. " -"Leve e durável." #: lang/json/ARMOR_from_json.py msgid "pair of biosilicified chitin boots" @@ -13861,9 +12156,6 @@ msgid "" "Boots crafted from carefully cleaned and pruned biosilicified exoskeletons " "of acidic ants. Acid-resistant and very durable." msgstr "" -" par de botas de quitina biosilicificadaBoots criadas a " -"partirdeexoesqueletos biosilicificados cuidadosamente limpos e podados " -"deformigasácidas. Resistente a ácidos e muito durável." #: lang/json/ARMOR_from_json.py msgid "pair of combat boots" @@ -13875,8 +12167,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Modern reinforced tactical combat boots. Very durable." msgstr "" -" par de botas de combateModern reforçado botas de combate táticas. " -"Muitodurável." #: lang/json/ARMOR_from_json.py msgid "pair of survivor fireboots" @@ -13891,9 +12181,6 @@ msgid "" "maximum protection from harm and the elements, even when knee-deep in the " "dead." msgstr "" -" par de fireboots de sobreviventeUm par de botas Nomex " -"blindadasKevlarcustomizadas, modificadas para fornecer proteção máxima " -"contra danoseelementos, mesmo quando os joelhos estão profundos." #: lang/json/ARMOR_from_json.py msgid "pair of fur boots" @@ -13904,7 +12191,7 @@ msgstr[1] "" #. ~ Description for pair of fur boots #: lang/json/ARMOR_from_json.py msgid "Boots lined with fur for warmth." -msgstr "par de botas de peleBotas forradas com pele para o calor." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of survivor wetsuit boots" @@ -13919,9 +12206,6 @@ msgid "" "maximum protection from harm and the elements, even when knee-deep in the " "dead." msgstr "" -" Um par de botas de neoprene blindadas em kevlar personalizadas, " -"modificadaspara fornecer proteção máxima contra danos e contra oselementos, " -"mesmoquando os joelhos estão profundos." #: lang/json/ARMOR_from_json.py msgid "pair of hiking boots" @@ -13933,8 +12217,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Tough yet light leather boots. Durable and comfortable." msgstr "" -" Par de botas para caminhada. Botas de couro resistentes e leves. " -"Duráveleconfortável." #: lang/json/ARMOR_from_json.py msgid "pair of heavy survivor boots" @@ -13948,9 +12230,6 @@ msgid "" "A pair of customized kevlar boots, heavily armored with steel and modified " "to provide maximum protection from harm, even when knee-deep in the dead." msgstr "" -" Um par de botas de kevlar personalizadas, pesadamente blindadas com " -"açoemodificadas para fornecer proteção máxima contra danos, mesmo " -"quandoosjoelhos estão profundos." #: lang/json/ARMOR_from_json.py msgid "pair of leather armor boots" @@ -13963,8 +12242,6 @@ msgstr[1] "" msgid "" "Thick leather boots made specifically to protect the feet. Light and tough." msgstr "" -" par de botas de couro de armadura. Botas de couro " -"grossasfeitasespecificamente para proteger os pés. Leve e resistente." #: lang/json/ARMOR_from_json.py msgid "pair of light survivor boots" @@ -13978,9 +12255,6 @@ msgid "" "A pair of customized, kevlar armored cloth boots, modified to provide " "maximum protection from harm, even when knee-deep in the dead." msgstr "" -" Par de botas de sobrevivência leve Um par de botas de " -"panoblindadascustomizadas em kevlar, modificadas para fornecer proteção " -"máximacontradanos, mesmo quando os joelhos estão profundos." #: lang/json/ARMOR_from_json.py msgid "pair of armored boots" @@ -13992,7 +12266,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "An extremely heavy set of armor plated boots." msgstr "" -" par de botas blindadasUm conjunto extremamente pesado de botas blindadas." #: lang/json/ARMOR_from_json.py msgid "pair of rubber boots" @@ -14005,8 +12278,6 @@ msgstr[1] "" msgid "" "A pair of rubber boots, often used while cleaning with caustic materials." msgstr "" -" par de botas de borrachaUm par de botas de borracha, " -"usadofrequentementedurante a limpeza com materiais cáusticos." #: lang/json/ARMOR_from_json.py msgid "pair of scrap boots" @@ -14029,8 +12300,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Leather boots with a steel toe. Extremely durable." msgstr "" -" par de botas de aço, botas de couro com biqueira de aço. " -"Extremamentedurável." #: lang/json/ARMOR_from_json.py msgid "pair of survivor boots" @@ -14044,9 +12313,6 @@ msgid "" "A pair of customized leather boots, armored with kevlar and modified to " "provide maximum protection from harm, even when knee-deep in the dead." msgstr "" -" Par de Botas de SobrevivênciaUm par de botas de couropersonalizadas, " -"blindadas com kevlar e modificadas para fornecer proteçãomáxima contradanos," -" mesmo quando os joelhos estão profundos." #: lang/json/ARMOR_from_json.py msgid "pair of western boots" @@ -14061,9 +12327,6 @@ msgid "" " good, but aren't made for running. Each boot is large enough to conceal a " "small holdout pistol." msgstr "" -" botas de couro stiff com bordados intricados e saltos de uma polegada. " -"Elesparecem bons, mas não são feitos para correr. Cada bota é " -"grandeosuficiente para esconder uma pequena pistola de segurança." #: lang/json/ARMOR_from_json.py msgid "pair of winter boots" @@ -14074,7 +12337,7 @@ msgstr[1] "" #. ~ Description for pair of winter boots #: lang/json/ARMOR_from_json.py msgid "Cumbersome boots designed for warmth." -msgstr "par de botas de inverno Botas grandes para o calor." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of winter survivor boots" @@ -14088,9 +12351,6 @@ msgid "" "A pair of customized, Kevlar armored fur boots, modified to provide maximum " "protection from harm and the elements, even when knee-deep in the dead." msgstr "" -" par de botas de sobrevivência para o invernoUm par de botas depeleblindadas" -" Kevlar personalizadas, modificadas para fornecer proteçãomáximacontra danos" -" e contra os elementos, mesmo quando os joelhosestãoprofundos." #: lang/json/ARMOR_from_json.py msgid "pair of XL survivor boots" @@ -14105,10 +12365,6 @@ msgid "" " to provide maximum protection from harm and the elements, even when knee-" "deep in the dead." msgstr "" -" par de botas de sobrevivente XLUm par maciço de botas " -"decouropersonalizadas, blindadas com kevlar e modificadas para " -"fornecerproteçãomáxima contra danos e os elementos, mesmo quando os joelhos " -"sãoprofundos." #: lang/json/ARMOR_from_json.py msgid "pair of cleats" @@ -14122,8 +12378,6 @@ msgid "" "Sport shoes with hard undersides, and studs on the bottom designed to dig " "into the grass." msgstr "" -" Par de chuteirasSapatos esportivos com partes inferiores duras e " -"tachasnaparte inferior projetadas para cavar a grama." #: lang/json/ARMOR_from_json.py msgid "pair of golf shoes" @@ -14135,7 +12389,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Snug fit sport shoes with hard ridges on the bottom." msgstr "" -" par de sapatos de golfeSnug fit sport shoes com hard cumes naparteinferior." #: lang/json/ARMOR_from_json.py msgid "pair of wooden clogs" @@ -14149,9 +12402,6 @@ msgid "" "Known as klompen in the Netherlands and sabots in France, these wooden shoes" " have endured through the ages due to their simple design and durability." msgstr "" -" par de tamancos de madeira Conhecidos como klompen nos Países Baixosesabots" -" na França, estes sapatos de madeira resistiram ao longo dostemposdevido ao " -"seu design simples e durabilidade." #: lang/json/ARMOR_from_json.py msgid "pair of clown shoes" @@ -14163,8 +12413,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Gigantic shoes fit for a clown. Incredibly difficult to walk in." msgstr "" -" Par de sapatos de palhaço Sapatos gigantes aptos para umpalhaço. " -"Incrivelmente difícil de entrar." #: lang/json/ARMOR_from_json.py msgid "pair of dance shoes" @@ -14176,7 +12424,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Expensive black dance shoes with large heels." msgstr "" -" par de sapatos de dança Sapatos de dança preto caros com saltos grandes." #: lang/json/ARMOR_from_json.py msgid "pair of dress shoes" @@ -14188,8 +12435,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Fancy patent leather shoes. Not designed for running in." msgstr "" -" par de sapatos de sapatos de couro patenteado. Não projetado " -"paraexecuçãoem." #: lang/json/ARMOR_from_json.py msgid "pair of flip-flops" @@ -14200,7 +12445,7 @@ msgstr[1] "" #. ~ Description for pair of flip-flops #: lang/json/ARMOR_from_json.py msgid "Simple sandals. Very difficult to run in." -msgstr "par de chinelosSimples sandálias. Muito difícil de correr." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of foot rags" @@ -14214,8 +12459,6 @@ msgid "" "Rags tied around your feet. Not much of an improvement over being barefoot," " still better than nothing." msgstr "" -" Um par de panos de pé, amarrados em seus pés. Não é muito melhor doqueestar" -" descalço, ainda melhor que nada." #: lang/json/ARMOR_from_json.py msgid "pair of fur foot wraps" @@ -14229,8 +12472,6 @@ msgid "" "Fur pelts tied around your feet. Not much of an improvement over being " "barefoot, still better than nothing." msgstr "" -" Um par de peles envolve as peles amarradas nos seus pés. Não é " -"muitomelhordo que estar descalço, ainda melhor que nada." #: lang/json/ARMOR_from_json.py msgid "pair of leather foot wraps" @@ -14244,8 +12485,6 @@ msgid "" "Leather patches tied around your feet. Not much of an improvement over " "being barefoot, still better than nothing." msgstr "" -" par de pegadas de couroAs manchas de couro amarradas em torno de seuspés. " -"Não é muito melhor do que estar descalço, ainda melhor que nada." #: lang/json/ARMOR_from_json.py msgid "pair of wool foot wraps" @@ -14259,8 +12498,6 @@ msgid "" "Felt patches tied around your feet. Not much of an improvement over being " "barefoot, still better than nothing." msgstr "" -" Um par de lãs de pé envolveu patches amarrados em torno de seus pés. " -"Nãoémuito melhor do que estar descalço, ainda melhor que nada." #: lang/json/ARMOR_from_json.py msgid "pair of geta" @@ -14271,7 +12508,7 @@ msgstr[1] "" #. ~ Description for pair of geta #: lang/json/ARMOR_from_json.py msgid "Simple wooden geta." -msgstr "par de getaSimple madeira geta." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of heels" @@ -14282,7 +12519,7 @@ msgstr[1] "" #. ~ Description for pair of heels #: lang/json/ARMOR_from_json.py msgid "A pair of high heels. Difficult to even walk in." -msgstr "par de saltos Um par de saltos altos. Difícil mesmo de entrar." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of knee-high boots" @@ -14296,8 +12533,6 @@ msgid "" "Very long leather boots that cover the lower legs. Difficult to wear but " "extremely durable." msgstr "" -" Par de botas até o joelho Muito botas de couro que cobrem as pernas. " -"Difícilde usar, mas extremamente durável." #: lang/json/ARMOR_from_json.py msgid "pair of leather sandals" @@ -14311,9 +12546,6 @@ msgid "" "Sturdy leather hiking sandals with a heel strap. Offers little in the way " "of protection, but keeps you cool during warmer months." msgstr "" -" Par de sandálias de couroSalto sandálias de couro com uma tira decalcanhar." -" Oferece pouco em termos de proteção, mas mantém a calma duranteos mesesmais" -" quentes." #: lang/json/ARMOR_from_json.py msgid "pair of lowtop tennis shoes" @@ -14324,7 +12556,7 @@ msgstr[1] "" #. ~ Description for pair of lowtop tennis shoes #: lang/json/ARMOR_from_json.py msgid "Lightweight shoes made of cloth and rubber." -msgstr "Sapatos leves feitos com pano e borracha." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of moccasins" @@ -14335,7 +12567,7 @@ msgstr[1] "" #. ~ Description for pair of moccasins #: lang/json/ARMOR_from_json.py msgid "Simple shoes made from animal pelts." -msgstr "Sapatos simples feitos de peles de animais." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of motorcycle boots" @@ -14347,8 +12579,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of durable boots to be used by dirt bikers and motorcyclists." msgstr "" -" par de botas de motociclista Um par de botas duráveis para ser " -"usadopormotociclistas e motociclistas." #: lang/json/ARMOR_from_json.py msgid "pair of rollerblades" @@ -14389,8 +12619,6 @@ msgid "" "Simple shoes woven from strips of birch bark. Not very comfortable, but " "better than going barefoot." msgstr "" -" par de sapatos de birchbarkSapatos simples tecidos a partir de tirasdecasca" -" de bétula. Não é muito confortável, mas é melhor do queandardescalço." #: lang/json/ARMOR_from_json.py msgid "pair of bowling shoes" @@ -14403,8 +12631,6 @@ msgstr[1] "" msgid "" "A pair of flat-soled shoes designed to give you a grip on slippery surfaces." msgstr "" -" par de sapatos de bolicheUm par de sapatos de sola plana projetadosparadar-" -" lhe um aperto em superfícies escorregadias." #: lang/json/ARMOR_from_json.py msgid "pair of slippers" @@ -14416,8 +12642,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Soft shoes that keep your feet warm. Not suitable for running." msgstr "" -" Par de chinelosSapatos macios que mantêm seus pés aquecidos. Não " -"éadequadopara correr." #: lang/json/ARMOR_from_json.py msgid "pair of sneakers" @@ -14429,8 +12653,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "Guaranteed to make you run faster and jump higher!" msgstr "" -" Par de sneakers Garantido para fazer você correr mais rápido e " -"pularmaisalto!" #: lang/json/ARMOR_from_json.py msgid "pair of straw sandals" @@ -14444,8 +12666,6 @@ msgid "" "Sandals made from straw rope. Not very comfortable, but can keep your feet " "safe." msgstr "" -" Par de sandálias de palhaSandálias feitas de corda de palha. Não " -"émuitoconfortável, mas pode manter seus pés seguros." #: lang/json/ARMOR_from_json.py msgid "pair of swim fins" @@ -14459,9 +12679,6 @@ msgid "" "A pair of rubber flippers worn on the feet which improve swimming speed " "while greatly impeding the wearer's ability to walk." msgstr "" -" par de nadadeiras de nadadeirasUm par de nadadeiras de borracha " -"usadasnospés que melhoram a velocidade de natação, ao mesmo tempo em que " -"impedemacapacidade do usuário de caminhar." #: lang/json/ARMOR_from_json.py msgid "pair of thigh-high boots" @@ -14475,8 +12692,6 @@ msgid "" "Very long leather boots that reach past the knees. Difficult to wear but " "extremely durable." msgstr "" -" Um par de botas de cano alto. Muito botas de couro compridas quepassampelos" -" joelhos. Difícil de usar, mas extremamente durável." #: lang/json/ARMOR_from_json.py msgid "pair of swimming booties" @@ -14488,7 +12703,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A pair of neoprene swimming booties, with individual toes." msgstr "" -" par de botas de nataçãoUm par de botas de neoprene, com dedos individuais." #: lang/json/ARMOR_from_json.py msgid "pair of heelys (off)" @@ -14535,10 +12749,6 @@ msgid "" "be strapped to the back. Whilst initially cumbersome it becomes much easier" " to use with practice. Activate to holster/draw a gun." msgstr "" -" coldre de couro de volta coldre, grande o suficiente para um rifle " -"ououtraarma grande. Projetado para ser amarrado nas costas. " -"Emborainicialmentecomplicado, torna-se muito mais fácil de usar com a " -"prática. Ative o coldre/ sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "ankle holster" @@ -14552,8 +12762,6 @@ msgid "" "A small concealed holster worn on the ankle. It is awkward to use without " "practice. Activate to holster/draw a small pistol." msgstr "" -" coldre de tornozeloUm pequeno coldre escondido usado no tornozelo.Éestranho" -" usar sem prática. Ative o coldre / desenhe uma pequena pistola." #: lang/json/ARMOR_from_json.py msgid "bow sling" @@ -14567,9 +12775,6 @@ msgid "" "A somewhat complicated set of straps and fabric to keep your bow close to " "hand and (mostly) out of harms way. Activate to holster/draw your bow." msgstr "" -" sling bow Um conjunto complicado de tiras e tecido para manter o " -"seuarcoperto da mão e (principalmente) fora de perigo. Ative o coldre " -"/desenheseu arco." #: lang/json/ARMOR_from_json.py msgid "holster" @@ -14583,8 +12788,6 @@ msgid "" "A leather strap worn on the hip for holding pistol sized guns. Activate to " "holster/draw a gun." msgstr "" -" coldre Uma pulseira de couro usada no quadril para segurar armas " -"dotamanhode pistolas. Ative o coldre / sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "fast draw holster" @@ -14598,8 +12801,6 @@ msgid "" "A comfortable quick draw holster for small guns. Activate to holster/draw a" " gun." msgstr "" -" cold draw holsterUm coldre de empate rápido confortável para armaspequenas." -" Ative o coldre / sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "deep concealment holster" @@ -14629,10 +12830,6 @@ msgid "" "carefully crafted to be comfortable to wear. Activate to holster/draw your " "weapon." msgstr "" -" Arnês de SobrevivênciaUm feixe de luz personalizado coberto com " -"bolsaseincluindo uma funda tática integral para um pequeno rifle ou " -"outraarmasemelhante. Durável e cuidadosamente trabalhada para ser " -"confortáveldeusar. Ative o coldre / sacar sua arma." #: lang/json/ARMOR_from_json.py msgid "XL holster" @@ -14647,10 +12844,6 @@ msgid "" "firearms. Slightly more cumbersome than a standard holster due to the " "straps that hold it flat against your leg, Activate to holster/draw a gun." msgstr "" -" Coldre XL Um estojo para cinto que consiste em um laço e " -"umacorreiadestinados ao uso com armas de fogo maiores. Um pouco mais pesado " -"doque umcoldre padrão, devido às tiras que o seguram contra a perna. Ative " -"ocoldre/ sacar uma arma." #: lang/json/ARMOR_from_json.py msgid "diamond dental grill" @@ -14664,9 +12857,6 @@ msgid "" "Fake teeth inlaid with diamonds, worn over the teeth. Fits horribly, but " "looks very shiny. For that high-class gangsta rap look." msgstr "" -" grade dentária de diamanteDentes falsos incrustados com diamantes, " -"usadossobre os dentes. Se encaixa horrivelmente, mas parece muitobrilhante. " -"Paraaquele visual de gangsta rap de alta classe." #: lang/json/ARMOR_from_json.py msgid "diamond ring" @@ -14680,8 +12870,6 @@ msgid "" "A gold ring with a sparkling diamond mounted on top of it. Back in the old " "days this could be worth a fortune." msgstr "" -" anel de diamanteUm anel de ouro com um diamante cintilante montado " -"emcimadele. Nos velhos tempos isso poderia valer uma fortuna." #: lang/json/ARMOR_from_json.py msgid "diver's watch" @@ -14695,9 +12883,6 @@ msgid "" "A waterproof, self-winding watch on a stainless steel watchband. Tells the " "time and current temperature. Activate to check the digital thermometer." msgstr "" -" relógio do mergulhadorUm relógio automático, à prova d'água, " -"emumapulseira de aço inoxidável. Diz a hora e a temperatura atual. " -"Ativeparaverificar o termômetro digital." #: lang/json/ARMOR_from_json.py msgid "collar pin" @@ -14711,9 +12896,6 @@ msgid "" "A staple accessory for gentlemen. Keeps your shirt collar in place and " "provides a more aesthetically pleasing arc to your necktie." msgstr "" -" gola pinA acessório de grampo para cavalheiros. Mantém o colarinho " -"dacamisano lugar e fornece um arco esteticamente mais agradável à " -"suagravata." #: lang/json/ARMOR_from_json.py msgid "copper bracelet" @@ -14724,7 +12906,7 @@ msgstr[1] "braceletes de cobre" #. ~ Description for copper bracelet #: lang/json/ARMOR_from_json.py msgid "An old-fashioned, copper bracelet." -msgstr "pulseira de cobre Uma pulseira de cobre antiquada." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "copper earring" @@ -14738,8 +12920,6 @@ msgid "" "A copper earring. It's pretty heavy; wearing it for an extended period of " "time may stretch your ear longer." msgstr "" -" brinco de cobreUm brinco de cobre. É bem pesado; usá-lo por um " -"longoperíodode tempo pode esticar sua orelha por mais tempo." #: lang/json/ARMOR_from_json.py msgid "beaded bracelet" @@ -14776,7 +12956,7 @@ msgstr[1] "" #. ~ Description for jade brooch #: lang/json/ARMOR_from_json.py msgid "A hand-crafted jade brooch of Oriental origin." -msgstr "broche de jade broche de jade artesanal de origem oriental." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "gold bracelet" @@ -14790,8 +12970,6 @@ msgid "" "A fancy golden bracelet. You can wear it if you like, but it won't provide " "any effects." msgstr "" -" pulseira de ouroUma pulseira de ouro chique. Você pode usá-lo, sequiser, " -"mas não fornecerá nenhum efeito." #: lang/json/ARMOR_from_json.py msgid "gold dental grill" @@ -14805,8 +12983,6 @@ msgid "" "Fake golden teeth, worn over the teeth. Fits horribly, but looks very " "shiny." msgstr "" -" grade dentária douradaFake dentes de ouro, usados sobre os dentes. " -"Seencaixa horrivelmente, mas parece muito brilhante." #: lang/json/ARMOR_from_json.py msgid "gold earring" @@ -14820,8 +12996,6 @@ msgid "" "A shiny gold earring. You can wear it if you like, but it won't provide any" " effects." msgstr "" -" brinco de ouroUm brinco de ouro brilhante. Você pode usá-lo, se quiser, " -"masnão fornecerá nenhum efeito." #: lang/json/ARMOR_from_json.py msgid "gold watch" @@ -14835,8 +13009,6 @@ msgid "" "A gold-plated steel self-winding wristwatch, suitable for a retirement " "present. Tells the time and looks good." msgstr "" -" relógio de ouroUm relógio de pulso automático de aço banhado aouro, " -"adequado para um presente de aposentadoria. Diz o tempo e parece serbom." #: lang/json/ARMOR_from_json.py msgid "locket" @@ -14849,8 +13021,6 @@ msgstr[1] "" msgid "" "A small locket with a frame inside to store photographs or small objects." msgstr "" -" locketUm pequeno medalhão com um quadro dentro para armazenar " -"fotografiasoupequenos objetos." #: lang/json/ARMOR_from_json.py msgid "tie clip" @@ -14862,8 +13032,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A fancy silver tie clip, a great match for your skinny tie." msgstr "" -" clip de gravata Um clip de gravata de fantasia, um grande jogo para " -"asuagravata skinny." #: lang/json/ARMOR_from_json.py msgid "silver necklace" @@ -14877,8 +13045,6 @@ msgid "" "A nice silver necklace. You can wear it if you like, but it won't provide " "any effects." msgstr "" -" Colar de prata Um belo colar de prata. Você pode usá-lo, se quiser, " -"masnãofornecerá nenhum efeito." #: lang/json/ARMOR_from_json.py msgid "silver bracelet" @@ -14892,8 +13058,6 @@ msgid "" "A nice silver bracelet. You can wear it if you like, but it won't provide " "any effects." msgstr "" -" pulseira de prataUma bela pulseira de prata. Você pode usá-lo, sequiser, " -"mas não fornecerá nenhum efeito." #: lang/json/ARMOR_from_json.py msgid "silver earring" @@ -14907,8 +13071,6 @@ msgid "" "A beautiful silver earring. You can wear it if you like, but it won't " "provide any effects." msgstr "" -" brinco de prataUm lindo brinco de prata. Você pode usá-lo, se quiser, " -"masnão fornecerá nenhum efeito." #: lang/json/ARMOR_from_json.py msgid "fancy watch" @@ -14923,9 +13085,6 @@ msgid "" " wrought gold with silver detailing. It's really the only timepiece " "suitable for someone of your exquisitely discerning tastes." msgstr "" -" relógio sofisticadoUm relógio de pulso bem grande e dispendiosamentefeito. " -"Diz o tempo em ouro elegantemente forjado com detalhes em prata.Érealmente o" -" único relógio adequado para alguém de seus gostos requintados." #: lang/json/ARMOR_from_json.py msgid "small relic" @@ -14939,8 +13098,6 @@ msgid "" "A small relic from a forgotten saint. As extraordinary as the world has " "become it may have some power yet." msgstr "" -" pequena relíquia Uma pequena relíquia de um santo esquecido. " -"Tãoextraordinário quanto o mundo se tornou, pode ter algum poder ainda." #: lang/json/ARMOR_from_json.py msgid "holy symbol" @@ -14953,8 +13110,6 @@ msgstr[1] "" msgid "" "A necklace made of fine gold chain bearing the symbol of a forgotten faith." msgstr "" -" santo símbolo Um colar feito de fina corrente de ouro com o símbolo deumafé" -" esquecida." #: lang/json/ARMOR_from_json.py msgid "handmade holy symbol" @@ -14965,7 +13120,7 @@ msgstr[1] "" #. ~ Description for handmade holy symbol #: lang/json/ARMOR_from_json.py msgid "A simple necklace representing a religious faith." -msgstr "handmade holy symbolA simples colar representando uma fé religiosa." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "plug" @@ -14979,8 +13134,6 @@ msgid "" "Those round things people plug into their earlobes as earrings, also called " "\"ear plug\" or \"ear spool.\"" msgstr "" -" plugThose round coisas as pessoas conectam em seus lóbulos das " -"orelhascomobrincos, também chamado \"ear plug\" ou \"ear spool.\"" #: lang/json/ARMOR_from_json.py msgid "leather collar" @@ -14994,8 +13147,6 @@ msgid "" "A black leather 'collar' with a bell dangling from the front. Don't worry, " "the bell is silent." msgstr "" -" gola de couroUm colarinho de couro preto com um sino pendurado nafrente. " -"Não se preocupe, o sino está em silêncio." #: lang/json/ARMOR_from_json.py msgid "gold ring" @@ -15009,8 +13160,6 @@ msgid "" "A flashy gold ring. You can wear it if you like, but it won't provide any " "effects." msgstr "" -" anel de ouro Um anel de ouro chamativo. Você pode usá-lo, se quiser, " -"masnãofornecerá nenhum efeito." #: lang/json/ARMOR_from_json.py msgid "wrist watch" @@ -15024,8 +13173,6 @@ msgid "" "A simple wristwatch on a plastic band. Tells the time and has an alarm " "clock feature." msgstr "" -" relógio de pulsoUm relógio de pulso simples em uma pulseira de plástico. " -"Dizo tempo e tem um recurso de despertador." #: lang/json/ARMOR_from_json.py msgid "radiation badge" @@ -15040,9 +13187,6 @@ msgid "" "as it is exposed to radiation. Wear on your lapel so you can notice if it " "changes." msgstr "" -" crachá de radiaçãoUm crachá de plástico com uma tira de filme incorporado. " -"Atira de filme muda de cor à medida que é exposta à radiação. Use " -"nasualapela para que você possa perceber se ela muda." #: lang/json/ARMOR_from_json.py msgid "badge template" @@ -15069,8 +13213,6 @@ msgid "" "A chromed silver shield identifies the wearer as an authority even the cop-" "killers couldn't kill." msgstr "" -" crachá de cybercopUm escudo de prata cromado identifica o usuário " -"comoumaautoridade que nem os matadores de policial poderiam matar." #: lang/json/ARMOR_from_json.py msgid "deputy badge" @@ -15082,8 +13224,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A tarnished silver star gives an air of authority to the wearer." msgstr "" -" distintivo adjunto Uma estrela de prata manchada dá um ar de " -"autoridadeaousuário." #: lang/json/ARMOR_from_json.py msgid "detective badge" @@ -15095,8 +13235,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A tarnished golden shield gives an air of authority to the wearer." msgstr "" -" emblema de detetiveUm escudo dourado manchado dá um ar de " -"autoridadeaousuário." #: lang/json/ARMOR_from_json.py msgid "marshal badge" @@ -15108,8 +13246,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A bright silver star strikes fear into the eyes of ne'er-do-wells." msgstr "" -" emblema do marechalUma estrela de prata brilhante ataca o medo nos " -"olhosdosque não fazem nada." #: lang/json/ARMOR_from_json.py msgid "SWAT badge" @@ -15123,9 +13259,6 @@ msgid "" "A matte-finish silver shield identifies the wearer as an authority who goes " "in when the bots just aren't enough." msgstr "" -" Distintivo da SWAT Um escudo de prata com acabamento fosco " -"identificaousuário como uma autoridade que entra quando os bots não são " -"suficientes." #: lang/json/ARMOR_from_json.py msgid "doctor badge" @@ -15164,9 +13297,6 @@ msgid "" "A fuzzy pair of brownish cat ears on a headband. It does nothing, but " "there's no reason not to look good even if no one's looking." msgstr "" -" par de orelhas de gato felpudoUm par de orelhas de gato acastanhadas " -"emumafaixa de cabeça. Não faz nada, mas não há razão para não parecer bem, " -"mesmoque ninguém esteja olhando." #: lang/json/ARMOR_from_json.py msgid "pair of faux fur cat ears" @@ -15180,9 +13310,6 @@ msgid "" "A fuzzy pair of garishly colored cat ears on a headband. It does nothing, " "but there's no reason not to look good even if no one's looking." msgstr "" -" par de orelhas de gato de peles artificiaisUm par fuzzy de orelhas " -"degatocoloridas garishly em uma faixa de cabeça. Não faz nada, mas não " -"hárazãopara não parecer bem, mesmo que ninguém esteja olhando." #: lang/json/ARMOR_from_json.py msgid "fuzzy cat tail" @@ -15196,8 +13323,6 @@ msgid "" "A fuzzy tawny tail weighted down with tiny beads of plastic. Sways behind " "you when you walk." msgstr "" -" cauda de gato fuzzyUm rabo-de-tauruz cheio de peso com pequenas " -"contasdeplástico. Balança atrás de você quando você anda." #: lang/json/ARMOR_from_json.py msgid "faux fur cat tail" @@ -15211,9 +13336,6 @@ msgid "" "A fuzzy garishly colored tail weighted down with tiny beads of plastic. " "Sways behind you when you walk." msgstr "" -" cauda de gato de peles artificiaisUma cauda de cor castanho- " -"avermelhadadistorcida com pequenas contas de plástico. Balança atrás devocê " -"quandovocê anda." #: lang/json/ARMOR_from_json.py msgid "fur kitty collar" @@ -15227,8 +13349,6 @@ msgid "" "A decorative 'collar' made out of fur, complete with a little bell hanging " "from the front. Don't worry, it's silent." msgstr "" -" gola de pele de vaquinha Uma gola decorativa feita de pele, completa " -"comumpequeno sino pendurado na frente. Não se preocupe, é silencioso." #: lang/json/ARMOR_from_json.py msgid "faux fur kitty collar" @@ -15242,9 +13362,6 @@ msgid "" "A decorative 'collar' made out of faux fur. Complete with a little bell " "hanging from the front. Don't worry, it's silent." msgstr "" -" colar de gola de pele de faux Um 'colar' decorativo feito " -"depelesartificiais. Complete com um pequeno sino pendurado na frente. " -"Nãosepreocupe, é silencioso." #: lang/json/ARMOR_from_json.py msgid "pair of leather cat ears" @@ -15258,9 +13375,6 @@ msgid "" "A shiny pair of black cat ears on a headband. It does nothing, but there's " "no reason not to look good even if no one's looking." msgstr "" -" par de orelhas de gato de couro Um par brilhante de orelhas de gato " -"pretoemuma faixa. Não faz nada, mas não há razão para não parecer bem, " -"mesmoqueninguém esteja olhando." #: lang/json/ARMOR_from_json.py msgid "leather cat tail" @@ -15274,8 +13388,6 @@ msgid "" "A glossy black leather tail weighted down with tiny beads of plastic. Sways" " behind you when you walk." msgstr "" -" cauda de couro de couroUm rabo de couro preto brilhante pesava " -"compequenascontas de plástico. Balança atrás de você quando você anda." #: lang/json/ARMOR_from_json.py msgid "saddle bags" @@ -15299,8 +13411,6 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "A webbing of strings worn on a helmet, to attach camouflage." msgstr "" -" rede de capacete Uma teia de cordas usadas em um capacete, " -"paraanexarcamuflagem." #: lang/json/ARMOR_from_json.py msgid "makeshift kevlar vest" @@ -15314,9 +13424,6 @@ msgid "" "A vest sewn together from Kevlar plates, less durable and protective than a " "proper Kevlar vest. Suitable for wearing under clothing." msgstr "" -" colete improvisado de colete de kevlar costurado em conjunto de " -"placasdeKevlar, menos durável e protetor do que um colete de Kevlaradequado." -" Adequado para usar sob a roupa." #. ~ Description for pair of western boots #: lang/json/ARMOR_from_json.py @@ -15324,8 +13431,6 @@ msgid "" "Stiff leather boots with intricate embroidery and one-inch heels. They look" " good, but aren't made for running." msgstr "" -" Botas de couro duro com bordados intricados e saltos de uma polegada. " -"Elesparecem bons, mas não são feitos para correr." #. ~ Description for pair of rollerblades #: lang/json/ARMOR_from_json.py @@ -15333,8 +13438,6 @@ msgid "" "A pair of inline skates. Very fast on flat floors, but they make it hard to" " move on rough terrain, or to dodge effectively." msgstr "" -" par de patins Um par de patins em linha. Muito rápido em pisos planos, " -"masdificultam a movimentação em terrenos acidentados ou a desvios eficazes." #. ~ Description for pair of rollerskates #: lang/json/ARMOR_from_json.py @@ -15342,9 +13445,6 @@ msgid "" "An old-fashioned pair of leather rollerskates with steel frames. While " "quite fast on flat floors, they make it difficult to move on rough terrain." msgstr "" -" pair of rollerskatesUm par antiquado de patins de couro com armações deaço." -" Embora muito rápido em pisos planos, eles dificultam a " -"movimentaçãoemterrenos acidentados." #: lang/json/ARMOR_from_json.py msgid "bag of holding" @@ -15933,9 +14033,6 @@ msgid "" "An embroidered leather bandolier for keeping revolver and pistol cartridges " "close to hand. If this doesn't make you feel like a cowboy, nothing will." msgstr "" -" Uma bandoleira de couro bordado para manter os cartuchos de " -"revólverepistola à mão. Se isso não faz você se sentir como um cowboy, nada " -"vai." #: lang/json/ARMOR_from_json.py msgid "shotgun bandolier" @@ -16052,8 +14149,6 @@ msgid "" "A crude wooden shield, lacking any metal or leather reinforcement. " "Lightweight but not very tough." msgstr "" -" escudo de madeiraUm escudo de madeira em bruto, sem qualquer reforçodemetal" -" ou couro. Leve, mas não muito resistente." #: lang/json/ARMOR_from_json.py msgid "large wooden shield" @@ -16067,9 +14162,6 @@ msgid "" "An ancient style of wooden shield, lacking any metal or leather " "reinforcement. Bulky, but offers a decent amount of protection." msgstr "" -" grande escudo de madeira Um estilo antigo de escudo de madeira, " -"semqualquerreforço de metal ou couro. Volumoso, mas oferece uma " -"quantidaderazoável deproteção." #: lang/json/ARMOR_from_json.py msgid "heater shield" @@ -16084,9 +14176,6 @@ msgid "" "from the longer kite shield. Mainly used in tournaments, but still viable " "in battle." msgstr "" -" escudo aquecedorUm estilo medieval de escudo feito de madeira " -"revestidacomcouro, desenvolvido a partir do escudo de pipa mais longo. " -"Usadoprincipalmente em torneios, mas ainda viável em batalha." #: lang/json/ARMOR_from_json.py msgid "kite shield" @@ -16101,9 +14190,6 @@ msgid "" "an elongated teardrop shape. Affords decent protection, but was better " "suited for cavalry." msgstr "" -" Escudo de pipaUm estilo clássico medieval de escudo, feito " -"demadeirarevestida com couro, em forma de lágrima alongada. " -"Ofereceproteçãodecente, mas foi mais adequada para a cavalaria." #: lang/json/ARMOR_from_json.py msgid "round shield" @@ -16117,8 +14203,6 @@ msgid "" "A simple round shield made of wood, with a rim and boss of iron. Made " "infamous by the Vikings." msgstr "" -" escudo redondoUm escudo redondo simples feito de madeira, com um aro " -"echefede ferro. Fez infame pelos vikings." #: lang/json/ARMOR_from_json.py msgid "hoplon" @@ -16132,8 +14216,6 @@ msgid "" "A convex round shield from ancient Greece, made of wood reinforced with " "bronze. Heavy but effective." msgstr "" -" hoplonA escudo redondo convexo da Grécia antiga, feito de " -"madeirareforçadacom bronze. Pesado, mas eficaz." #: lang/json/ARMOR_from_json.py msgid "scutum" @@ -16147,9 +14229,6 @@ 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 "" -" Escudo Um escudo retangular da Roma antiga, feito de madeira eferro. " -"Perfeito para lutar em formação, mas não é ideal para " -"enfrentarzumbissozinho." #: lang/json/ARMOR_from_json.py msgid "buckler" @@ -16164,9 +14243,6 @@ msgid "" "Extremely light and tough, but its small size is as much a hindrance as it " "is an advantage." msgstr "" -" bucklerUm pequeno escudo de metal do final do período " -"medievalerenascentista. Extremamente leve e resistente, mas seu pequeno " -"tamanhoétanto um obstáculo quanto uma vantagem." #: lang/json/ARMOR_from_json.py msgid "hooded hat" @@ -16180,8 +14256,6 @@ 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 "" -" chapéu com capuzUm chapéu de aba larga adequado, modificado pela adiçãodeum" -" capuz, para melhor proteger o pescoço do vento e da chuva." #: lang/json/BIONIC_ITEM_from_json.py msgid "abstract bionic module" @@ -16219,10 +14293,6 @@ msgid "" "allowing you to trigger your body's adrenaline response at the cost of some " "bionic power." msgstr "" -" Módulo Biônico Moduleabstract Resumo (usável em npc) Bomba " -"AdrenalinaOsistema estimulador CBMA foi implantado ao lado de suas glândulas" -" supra-renais, permitindo que você ative a resposta da adrenalina ao custo " -"dealgum poder biônico." #: lang/json/BIONIC_ITEM_from_json.py msgid "Active Defense System CBM" @@ -16239,11 +14309,6 @@ msgid "" "cost of energy. Bullets will be stopped more often than swords and those in" " turn more often than massive objects." msgstr "" -" Sistema de Defesa Ativo O campo de força fino da CBMA envolve seucorpo, " -"drenando continuamente a energia. Qualquer coisa que tente " -"penetrarnessecampo tem a chance de ser desviada ao custo da energia. As " -"balasserãoparadas com mais frequência do que espadas e aquelas, por sua vez," -" commaisfrequência do que objetos massivos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Advanced Microreactor CBM" @@ -16259,9 +14324,6 @@ msgid "" "radiation cleansers. There is no way to shut it down, but you can toggle " "additional fuel intake." msgstr "" -" Microreator Avançado CBMEste mini-reator despojado é mais seguro " -"doqueparece devido a limpadores de radiação integrados. Não há como desligá-" -"lo, mas você pode alternar a ingestão de combustível adicional." #: lang/json/BIONIC_ITEM_from_json.py msgid "Alarm System CBM" @@ -16277,10 +14339,6 @@ msgid "" "fifteen-foot radius, and will silently alert you. This is very useful " "during sleep, or if you suspect a cloaked pursuer." msgstr "" -" Sistema de alarme O sistema de alarme de detecção de movimento " -"daCBMAdetectará quase todos os movimentos dentro de um raio de cinco " -"metrosealertará você silenciosamente. Isso é muito útil durante o sono, ou " -"sevocêsuspeitar de um perseguidor camuflado." #: lang/json/BIONIC_ITEM_from_json.py msgid "Arms Alloy Plating CBM" @@ -16294,8 +14352,6 @@ msgid "" "The flesh on your arms has been replaced by a strong armor, protecting you " "greatly." msgstr "" -" Chapeamento da liga de braços CBM A carne em seus braços foi " -"substituídaporuma armadura forte, protegendo-o grandemente." #: lang/json/BIONIC_ITEM_from_json.py msgid "Protective Lenses CBM" @@ -16310,10 +14366,6 @@ msgid "" " your tear ducts have been re-routed to your mouth. When you cry, you must " "spit out or swallow your tears." msgstr "" -" Lentes de protecção CBM As suas órbitas oculares foram seladas " -"comlentesespelhadas altamente protectoras e os seus canais " -"lacrimaisforamreencaminhados para a sua boca. Quando você chora, você deve " -"cuspirouengolir suas lágrimas." #: lang/json/BIONIC_ITEM_from_json.py msgid "Head Alloy Plating CBM" @@ -16327,9 +14379,6 @@ msgid "" "The flesh on your head has been replaced by a strong armor, protecting both " "your head and jaw regions." msgstr "" -" Chapeamento de liga de cabeça CBMA carne em sua cabeça foi " -"substituídaporuma blindagem forte, protegendo tanto a região da cabeça " -"quantodamandíbula." #: lang/json/BIONIC_ITEM_from_json.py msgid "Legs Alloy Plating CBM" @@ -16343,8 +14392,6 @@ msgid "" "The flesh on your legs has been replaced by a strong armor, protecting you " "greatly." msgstr "" -" Galvanoplastia das Pernas CBM A carne das pernas foi substituída " -"porumaarmadura forte, protegendo-o muito." #: lang/json/BIONIC_ITEM_from_json.py msgid "Torso Alloy Plating CBM" @@ -16358,8 +14405,6 @@ msgid "" "The flesh on your torso has been replaced by a strong armor, protecting you " "greatly." msgstr "" -" Torso Alloy Plating CBM A carne em seu torso foi substituída porumaarmadura" -" forte, protegendo você grandemente." #: lang/json/BIONIC_ITEM_from_json.py msgid "Battery System CBM" @@ -16375,9 +14420,6 @@ msgid "" "contained in normal, everyday batteries. Use 'E' to consume batteries. Can" " be toggled on and off at will." msgstr "" -" Sistema de bateria CBMVocê tem um dispositivo de drenagem de bateriae, " -"portanto, pode utilizar a energia contida nas baterias comuns do dia-a-dia. " -"Use 'E' para consumir baterias. Pode ser ligado e desligadoàvontade." #: lang/json/BIONIC_ITEM_from_json.py msgid "Monomolecular Blade CBM" @@ -16394,11 +14436,6 @@ msgid "" "cost of a small amount of power. Though exceptionally sharp, it will " "prevent you from holding anything else while extended." msgstr "" -" Lâmina Monomolecular A lâmina mortífera CBMA, de um material avançado, " -"agorareside dentro do seu antebraço, capaz de ser estendida através daparte " -"detrás do seu pulso, ao custo de uma pequena quantidade de energia. " -"Emboraexcepcionalmente nítido, impedirá que você mantenha qualquer " -"outracoisaenquanto estendido." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fusion Blaster Arm CBM" @@ -16414,11 +14451,6 @@ msgid "" "use or carry two-handed items, and your strength limits what you can use " "with your one hand." msgstr "" -" Fusion Blaster Arm CBMO seu braço esquerdo foi substituído por um " -"blasterdefusão resistente! Você pode usar seus bancos de energia para " -"dispararumraio de calor prejudicial. No entanto, você não pode usar ou " -"carregaritensde duas mãos, e sua força limita o que você pode usar com a sua" -" mão." #: lang/json/BIONIC_ITEM_from_json.py msgid "Shotgun Arm CBM" @@ -16445,9 +14477,6 @@ msgid "" "Small sensors have been implanted in your heart, allowing you to analyze " "your blood. This will detect many illnesses, drugs, and other conditions." msgstr "" -" Análise de sangue Os sensores CBMSmall foram implantados em seucoração, " -"permitindo que você analise seu sangue. Isso detectará muitasdoenças, drogas" -" e outras condições." #: lang/json/BIONIC_ITEM_from_json.py msgid "Blood Filter CBM" @@ -16464,10 +14493,6 @@ msgid "" " that it is not a targeted filter; ALL drugs in your system will be " "affected." msgstr "" -" Filtro de sangue O sistema de filtragem CBMA em seu coração " -"permitefiltrarativamente as impurezas químicas, principalmente as drogas. " -"Teráimpactolimitado nos vírus. Note que não é um filtro direcionado; " -"TODOSosmedicamentos do seu sistema serão afetados." #: lang/json/BIONIC_ITEM_from_json.py msgid "Cable Charger System CBM" @@ -16481,9 +14506,6 @@ msgid "" "You have a complex port mounted above your hip. While active, it will drain" " power through a jumper cable held on your person." msgstr "" -" Cable Charger System CBMVocê tem uma porta complexa montada acimadoquadril." -" Enquanto estiver ativo, ele drenará a energia por meio de umcabode jumper " -"preso em sua pessoa." #: lang/json/BIONIC_ITEM_from_json.py msgid "Subdermal Carbon Filament CBM" @@ -16498,9 +14520,6 @@ 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 "" -" Filamentos de carbono subdérmico CBMLying logo abaixo da sua pele é " -"umafinaarmadura feita de nanotubos de carbono. Isso reduz o dano por 2 e " -"odano por4." #: lang/json/BIONIC_ITEM_from_json.py msgid "Chain Lightning CBM" @@ -16516,10 +14535,6 @@ msgid "" " a blast of lightning at a target, leaving a trail of lightning in its wake," " jumping to additional targets within 4 tiles of the previous target." msgstr "" -" Chain Lightning CBMO seu corpo é equipado com um gerador de " -"raiosdecorrente, permitindo que você emita uma rajada de raio em um alvo, " -"deixandoum rastro de raio em sua esteira, pulando para alvos " -"adicionaisdentro de 4blocos do alvo anterior." #: lang/json/BIONIC_ITEM_from_json.py msgid "Bionic Claws CBM" @@ -16535,10 +14550,6 @@ msgid "" "considerable cutting damage, but prevent you from holding anything else " "while extended." msgstr "" -" Garras Biônicas Garras CBMVicious foram instaladas dentro de seusdedos, " -"permitindo que você as estenda e retraia ao custo de uma pequenaquantidadede" -" energia. Eles causam danos consideráveis no corte, mas impedemque " -"vocêsegure qualquer outra coisa enquanto estendido." #: lang/json/BIONIC_ITEM_from_json.py msgid "Internal Climate Control CBM" @@ -16553,9 +14564,6 @@ msgid "" "Throughout your body lies a network of thermal piping which eases the " "effects of high and low ambient temperatures." msgstr "" -" Controle do Clima Interno CBMAo longo de seu corpo existe uma " -"rededetubulação térmica que facilita os efeitos de altas e " -"baixastemperaturasambientes." #: lang/json/BIONIC_ITEM_from_json.py msgid "Cloaking System CBM" @@ -16571,10 +14579,6 @@ msgid "" " your background, rendering you fully invisible to normal vision. However, " "you may be detected by infrared, sonar, etc." msgstr "" -" Sistema de Cloaking CBM Este sistema de alta potência usa um " -"conjuntodecâmeras e LEDs para fazer você se misturar ao seu fundo, tornando-" -"ototalmente invisível à visão normal. No entanto, você pode serdetectadopor " -"infravermelho, sonar, etc." #: lang/json/BIONIC_ITEM_from_json.py msgid "Close Quarters Battle CBM" @@ -16589,10 +14593,6 @@ msgid "" "are integrated into your nervous system. Whilst active, the CQB module will" " improve your hand to hand combat skills." msgstr "" -" Close Quarters Battle Processadores CBMBionic e bancos de dados, " -"carregadoscom programas de combate de artes marciais, são integrados ao " -"seusistemanervoso. Enquanto ativo, o módulo CQB aprimora suas habilidades " -"decombatemão a mão." #: lang/json/BIONIC_ITEM_from_json.py msgid "Wired Reflexes CBM" @@ -16607,8 +14607,6 @@ msgid "" "Your reaction time has been greatly enhanced with bionic nerve stimulators, " "giving you a +2 bonus to dexterity." msgstr "" -" Reflexos com Fios CBM O seu tempo de reação foi grandemente aumentado " -"comosestimuladores do nervo biônico, dando-lhe um bônus de +2 na destreza." #: lang/json/BIONIC_ITEM_from_json.py msgid "Expanded Digestive System CBM" @@ -16625,11 +14623,6 @@ msgid "" " are highly resistant to foodborne illness, and can sometimes eat rotten " "food." msgstr "" -" Sistema Digestivo Expandido CBMVocê foi equipado com " -"trêsestômagossintéticos e intestinos de grau industrial. Você não só " -"podeextrair muitomais nutrição dos alimentos, mas também é altamente " -"resistentea doençastransmitidas por alimentos e, às vezes, pode ingerir " -"alimentosestragados." #: lang/json/BIONIC_ITEM_from_json.py msgid "Enhanced Hearing CBM" @@ -16646,10 +14639,6 @@ msgid "" "Additionally, high-intensity sounds will be automatically dampened before " "they can damage your hearing." msgstr "" -" Audiência melhorada CBMQuando este biônico está ativo, sua " -"audiçãoserádrasticamente melhorada, permitindo que você ouça dez vezes " -"melhor doque apessoa média. Além disso, sons de alta intensidade " -"serãoautomaticamenteatenuados antes que possam danificar sua audição." #: lang/json/BIONIC_ITEM_from_json.py msgid "Directional EMP CBM" @@ -16664,9 +14653,6 @@ msgid "" " You may use power to fire a short-ranged blast which will disable " "electronics and robots." msgstr "" -" Direcional EMP CBM Montado nas palmas de suas mãos são pequenos " -"geradoresdecampo EMP parabólicos. Você pode usar o poder para disparar uma " -"rajadadecurto alcance que desativará eletrônicos e robôs." #: lang/json/BIONIC_ITEM_from_json.py msgid "EMP Projector CBM" @@ -16682,10 +14668,6 @@ msgid "" "and arm. Fires super-concentrated electric pulses for a short distance. " "Extremely effective against electronic targets but mostly useless otherwise." msgstr "" -" Projetor EMP O sistema gerador EMP de alcance variável CBMA é " -"implantadonapalma da mão direita e do braço. Atira pulsos " -"elétricossuperconcentradospor uma curta distância. Extremamente eficaz " -"contra alvoseletrônicos, masna maioria das vezes inútil." #: lang/json/BIONIC_ITEM_from_json.py msgid "Ethanol Burner CBM" @@ -16700,9 +14682,6 @@ msgid "" "You burn alcohol as fuel in an extremely efficient reaction. However, you " "will still suffer the inebriating effects of the substance." msgstr "" -" Queimador de Etanol CBMVocê queima álcool como combustível em " -"umareaçãoextremamente eficiente. No entanto, você ainda sofrerá " -"osefeitosinebriantes da substância." #: lang/json/BIONIC_ITEM_from_json.py msgid "Aero-Evaporator CBM" @@ -16717,9 +14696,6 @@ msgid "" "This unit draws moisture from the surrounding air, which then is poured from" " a fingertip in the form of water. It may fail in very dry environments." msgstr "" -" Aero-Evaporator CBMEsta unidade extrai a umidade do ar circundante, " -"queéentão vertida de uma ponta do dedo na forma de água. Pode " -"falharemambientes muito secos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Diamond Cornea CBM" @@ -16732,8 +14708,6 @@ msgstr[1] "" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Your vision is greatly enhanced, giving you a +2 bonus to perception." msgstr "" -" Diamond Cornea CBM Sua visão é bastante aprimorada, dando-lhe um bônus " -"de+2na percepção." #: lang/json/BIONIC_ITEM_from_json.py msgid "Telescopic Eyes CBM" @@ -16764,10 +14738,6 @@ msgid "" "of altering your facial structure so as to subtly affect the reactions of " "others. This grants a bonus to all social interactions." msgstr "" -" Distorção Facial CBM Através da aplicação controlada " -"deimpulsoseletroquímicos, você é capaz de alterar sua estrutura facial " -"demodo aafetar sutilmente as reações dos outros. Isso concede um bônus " -"atodas asinterações sociais." #: lang/json/BIONIC_ITEM_from_json.py msgid "Dielectric Capacitance System CBM" @@ -16783,10 +14753,6 @@ msgid "" "which can be charged with bionic power to temporarily protect you from " "external electrical discharge." msgstr "" -" Sistema de Capacitância Dielétrica CBM Através do seu corpo existe " -"umaredede capacitores piezoelétricos em miniatura que podem ser " -"carregadoscomenergia biônica para protegê-lo temporariamente contra " -"descargaselétricasexternas." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingerhack CBM" @@ -16802,11 +14768,6 @@ msgid "" "computers). Skill in computers is important, and a failed use may damage " "your circuits." msgstr "" -" Fingerhack CBMOne dos seus dedos tem um electrohack embutido " -"nele;umaunidade de hackers para todos os propósitos usada para " -"substituirospainéis de controle e similares (mas não os computadores). A " -"habilidadenoscomputadores é importante, e um uso fracassado pode " -"danificarseuscircuitos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Flashbang Generator CBM" @@ -16821,10 +14782,6 @@ msgid "" "comparable to a flashbang grenade, blinding nearby enemies. Speakers " "integrated into your body mimic the loud sound, deafening those nearby." msgstr "" -" O FlashBang Generator CBMLight que emite diodos integrados em sua pele pode" -" liberar um flash comparável a uma granada de flashbang, cegando inimigos " -"próximos. Alto-falantes integrados em seu corpo imitam o somalto, " -"ensurdecendo os próximos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Cranial Flashlight CBM" @@ -16836,8 +14793,6 @@ msgstr[1] "" #: lang/json/BIONIC_ITEM_from_json.py msgid "Mounted between your eyes is a small but powerful LED flashlight." msgstr "" -" Lanterna Craniana CBMMounted entre seus olhos é uma pequena lanternaLED,mas" -" poderosa." #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "LED Tattoo" @@ -16866,10 +14821,6 @@ msgid "" "you to analyze your level of absorbed radiation. They will also alert you " "whenever exposed to environmental radiation." msgstr "" -" Dosímetro Integrado Os sensores de radiação CBMSmall foram " -"implantadosemtodo o seu corpo, permitindo que você analise seu nível " -"deradiaçãoabsorvida. Eles também alertarão você sempre que exposto " -"àradiaçãoambiental." #: lang/json/BIONIC_ITEM_from_json.py msgid "Respirator CBM" @@ -16914,10 +14865,6 @@ msgid "" "that a successful hit will drain body heat, inflicting a small amount of " "extra damage, and increasing your power reserves slightly." msgstr "" -" Dreno de Calor - Enquanto ele luta desarmado contra um oponente " -"desanguequente, há uma chance de que um golpe de sucesso drene o calor " -"docorpo, causando uma pequena quantidade de dano extra e " -"aumentandoligeiramentesuas reservas de força." #: lang/json/BIONIC_ITEM_from_json.py msgid "Thermal Dissipation CBM" @@ -16932,10 +14879,6 @@ msgid "" "powered, this system will prevent heat damage up to 2000 degrees Fahrenheit." " Note that this does not affect your internal temperature." msgstr "" -" Dissipação térmica dissipadores de calor CBMPowerful e " -"supermaterialssãotecidas em sua carne. Enquanto estiver ligado, este sistema" -" evitarádanospor aquecimento até 2000 graus Fahrenheit. Note que isso não " -"afetasuatemperatura interna." #: lang/json/BIONIC_ITEM_from_json.py msgid "Hydraulic Muscles CBM" @@ -16950,8 +14893,6 @@ msgid "" "While activated, your muscles will be greatly enhanced, increasing your " "strength by 20." msgstr "" -" Músculos Hidráulicos CBMSe ativado, seus músculos serão muitomelhorados, " -"aumentando sua força em 20." #: lang/json/BIONIC_ITEM_from_json.py msgid "Infrared Vision CBM" @@ -16966,9 +14907,6 @@ msgid "" "Your range of vision extends into the infrared, allowing you to see warm-" "blooded creatures in the dark." msgstr "" -" Infravermelho Visão CBM Sua amplitude de visão se estende " -"paraoinfravermelho, permitindo que você veja criaturas de sangue " -"quentenoescuro." #: lang/json/BIONIC_ITEM_from_json.py msgid "Cerebral Booster CBM" @@ -16983,8 +14921,6 @@ msgid "" "Your brain has been enhanced with bionic coprocessors, giving you a +2 bonus" " to intelligence." msgstr "" -" Impulsionador Cerebral CBM Seu cérebro foi aprimorado " -"comcoprocessadoresbiônicos, dando-lhe um bônus de +2 em inteligência." #: lang/json/BIONIC_ITEM_from_json.py msgid "Finger-Mounted Laser CBM" @@ -16999,10 +14935,6 @@ msgid "" "long range weapon is not incredibly damaging, but is very accurate, and has " "the potential to start fires." msgstr "" -" O CBMOne a laser de dedos dos seus dedos possui um pequeno laser " -"dealtapotência embutido. Esta arma de longo alcance não é " -"incrivelmentedanosa, mas é muito precisa e tem o potencial de iniciar " -"incêndios." #: lang/json/BIONIC_ITEM_from_json.py msgid "Leukocyte Breeder System CBM" @@ -17019,11 +14951,6 @@ msgid "" "power. It is supposed to run continuously and may cause unpleasant side " "effects when turned off." msgstr "" -" Sistema de reprodução de leucócitos CBMVocê está equipado " -"comestimuladoresbiônicos que aumentam o sistema de hematopoiese, " -"permitindoacelerar aprodução de glóbulos brancos usando o poder biônico. Ele" -" devefuncionarcontinuamente e pode causar efeitos colaterais " -"desagradáveisquandodesligado." #: lang/json/BIONIC_ITEM_from_json.py msgid "Mini-Flamethrower CBM" @@ -17038,8 +14965,6 @@ msgid "" "The index fingers of both hands have powerful fire starters which extend " "from the tip." msgstr "" -" Mini-Lança-Chamas CBMOs indicadores das duas mãos têm potentesiniciadoresde" -" fogo que se estendem a partir da ponta." #: lang/json/BIONIC_ITEM_from_json.py msgid "Fingerpick CBM" @@ -17054,10 +14979,6 @@ msgid "" "automatic system will quickly unlock all but the most advanced key locks " "without any skill required on the part of the user." msgstr "" -" Fingerpick CBMOne dos seus dedos tem um lockpick eletrônico embutidonele. " -"Este sistema automático desbloqueará rapidamente todos os bloqueiosdechave, " -"exceto os mais avançados, sem a necessidade de qualquerhabilidadepor parte " -"do usuário." #: lang/json/BIONIC_ITEM_from_json.py msgid "Electromagnetic Unit CBM" @@ -17071,9 +14992,6 @@ msgid "" "Embedded in your hand is a powerful electromagnet, allowing you to pull " "items made of iron over short distances." msgstr "" -" Unidade Eletromagnética O CBMEincorporado em sua mão é um poderoso " -"eletroímã, permitindo que você puxe itens feitos de ferro " -"emdistânciascurtas." #: lang/json/BIONIC_ITEM_from_json.py msgid "Nictating Membrane CBM" @@ -17088,9 +15006,6 @@ msgid "" "Your eyes have a thin membrane that closes over your eyes while underwater, " "negating any vision penalties." msgstr "" -" Nictating Membrane CBMOs seus olhos têm uma membrana fina que se " -"fechasobreos olhos enquanto se está debaixo de água, negando " -"qualquerpenalidadevisual." #: lang/json/BIONIC_ITEM_from_json.py msgid "Enhanced Memory Banks CBM" @@ -17105,10 +15020,6 @@ msgid "" "While active, they increase the rate that you learn skills, and give you " "near-perfect memory of skills and terrain." msgstr "" -" Bancos de memória aprimorados O conjunto CBMA de unidades " -"dearmazenamentoquântico altamente avançadas usadas para melhorar a memória. " -"Enquanto estãoativos, eles aumentam a taxa de aprendizado e proporcionamuma " -"memóriaquase perfeita de habilidades e terreno." #: lang/json/BIONIC_ITEM_from_json.py msgid "Metabolic Interchange CBM" @@ -17139,10 +15050,6 @@ msgid "" "data. The data is compiled and presented as a simple readout of the current" " weather. It also passively tells you your external temperature." msgstr "" -" Weather Reader CBMA multidão de instrumentos científicos e " -"sensorescoletamdados ambientais. Os dados são compilados e apresentados como" -" umasimplesleitura do clima atual. Também lhe informa passivamente a " -"suatemperaturaexterna." #: lang/json/BIONIC_ITEM_from_json.py msgid "Repair Nanobots CBM" @@ -17158,9 +15065,6 @@ msgid "" "will flit about your body, repairing damage and stopping bleeding at the " "cost of power." msgstr "" -" Reparar Nanobots CBMInside seu corpo é uma frota de pequenosrobôsdormentes." -" Enquanto ativados, eles voarão sobre o seu corpo, reparandoosdanos e " -"parando o sangramento com o custo da energia." #: lang/json/BIONIC_ITEM_from_json.py msgid "Artificial Night Generator CBM" @@ -17173,8 +15077,6 @@ msgstr[1] "" #: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py msgid "Destructive interference eliminates all light within a 15 tile radius." msgstr "" -" Artificial Night Generator CBM Interferência destrutiva elimina toda " -"aluzdentro de um raio de 15 ladrilhos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Implanted Night Vision CBM" @@ -17188,8 +15090,6 @@ msgid "" "Your eyes have been modified to amplify existing light, allowing you to see " "in the dark." msgstr "" -" Implanted Night Vision CBM Seus olhos foram modificados para amplificaraluz" -" existente, permitindo que você veja no escuro." #: lang/json/BIONIC_ITEM_from_json.py msgid "Offensive Defense System CBM" @@ -17205,10 +15105,6 @@ msgid "" "field does not deflect penetration, but rather delivers a strong shock, " "damaging unarmed attackers and those with a conductive weapon." msgstr "" -" Sistema de Defesa Ofensivo O campo de força fino da CBMA envolve seucorpo, " -"drenando continuamente a energia. Este campo não desvia a penetração, mas, " -"em vez disso, provoca um forte choque, danificando os atacantesdesarmadose " -"aqueles com uma arma condutora." #: lang/json/BIONIC_ITEM_from_json.py msgid "Sensory Dulling CBM" @@ -17224,10 +15120,6 @@ msgid "" "allowing you to dull your senses at will. However, the use of this system " "may cause delayed reaction time and drowsiness." msgstr "" -" Sensory Bulling CBM Seu sistema nervoso é ligado para permitir quevocêiniba" -" os sinais de dor, permitindo que você entorpeça seus sentidosàvontade. No " -"entanto, o uso deste sistema pode causar atraso no tempo de reação e " -"sonolência." #: lang/json/BIONIC_ITEM_from_json.py msgid "Plutonium Filter CBM" @@ -17241,8 +15133,6 @@ msgid "" "System of tanks and filters to extract plutonium more rapidly from slurry " "for a microreactor." msgstr "" -" Filtro de plutônio Sistema CBMS de tanques e filtros para extrair " -"oplutôniomais rapidamente da lama para um micro-reator." #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Armor Interface CBM" @@ -17257,8 +15147,6 @@ msgid "" "Interfaces your power system with the internal charging port on suits of " "power armor." msgstr "" -" Interface de Armadura de Potência CBMInterga o seu sistema de potência " -"comaporta de carregamento interna em armaduras de força." #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Armor Mk. II Interface CBM" @@ -17274,10 +15162,6 @@ msgid "" "power armor. The Mk. II was designed by DoubleTech Inc., to meet the " "popularity of the Mk. II power armor series." msgstr "" -" Armadura de poder Mk. Interface II CBMInterga o seu sistema de energia " -"comaporta de carregamento interna em armaduras de energia. O Mk II " -"foiprojetadopor DoubleTech Inc., para atender a popularidade do Mk. II " -"sériede armadurade poder." #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Storage CBM" @@ -17293,10 +15177,6 @@ msgid "" "Having at least one of these is a prerequisite to using powered bionics. " "You will also need a power supply, found in another CBM." msgstr "" -" Power Storage Módulo CBMCompact Bionics que atualiza sua " -"capacidadedeenergia em 100 unidades. Ter pelo menos um deles é um pré- " -"requisito paraouso de biônica avançada. Você também precisará de uma fonte " -"dealimentação, encontrada em outro CBM." #: lang/json/BIONIC_ITEM_from_json.py msgid "Power Storage CBM Mk. II" @@ -17312,10 +15192,6 @@ msgid "" "for the highly successful Power Storage CBM. Increases your power capacity " "by 250 units." msgstr "" -" Armazenamento de Energia CBM Mk. IICompact Bionics Module " -"desenvolvidonaDoubleTech Industries como um substituto para o altamente " -"bemsucedidoPower Storage CBM. Aumenta sua capacidade de energia em " -"250unidades." #: lang/json/BIONIC_ITEM_from_json.py msgid "Probability Travel CBM" @@ -17331,10 +15207,6 @@ msgid "" "walls, reappearing on the other side. Power drain in standby is minimal, " "but each tile tunneled through costs 250 bionic power." msgstr "" -" Viagem de probabilidade CBMAumenta o comprimento de onda do seucorpo, " -"permitindo-lhe o túnel quântico através das paredes, reaparecendo " -"dooutrolado. A drenagem de energia no modo de espera é mínima, mas " -"cadaplacaescavada no túnel custa 250 de energia biônica." #: lang/json/BIONIC_ITEM_from_json.py msgid "Air Filtration System CBM" @@ -17349,10 +15221,6 @@ msgid "" "airborne diseases find their way into your windpipe, the filter will attempt" " to remove them. Reducing the toxic effects." msgstr "" -" Sistema de Filtragem de Ar O CBMI implantado na sua traqueia é " -"umsistemaavançado de filtragem. Se toxinas ou doenças transmitidas pelo " -"archegaremà sua traquéia, o filtro tentará removê-las. Reduzindo os " -"efeitostóxicos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Radiation Scrubber System CBM" @@ -17367,10 +15235,6 @@ msgid "" "throughout your body, allowing you to purge yourself of absorbed radiation " "at the cost of some bionic power." msgstr "" -" Sistema de Lavagem de Radiação O sistema CBMA de " -"filtrossanguíneospiezomecânicos avançados foi implantado em todo o seu " -"corpo, permitindo quevocê purgasse a radiação absorvida às custas de algum " -"poderbiônico." #: lang/json/BIONIC_ITEM_from_json.py msgid "Railgun CBM" @@ -17400,10 +15264,6 @@ msgid "" "double-edged blades four centimeters in length that do a small amount of " "unarmed slashing damage whenever your fingertips are uncovered." msgstr "" -" Lâminas de ponta dos dedos CBMVocê possui garras retráteis afiadasembaixode" -" suas unhas, dez lâminas de dois gumes de quatro centímetrosdecomprimento " -"que fazem uma pequena quantidade de dano desarmado semprequeas pontas dos " -"dedos são descobertas." #: lang/json/BIONIC_ITEM_from_json.py msgid "Internal Microreactor CBM" @@ -17419,9 +15279,6 @@ msgid "" "chest. There is no way to shut it down, but you can toggle additional fuel " "intake." msgstr "" -" Microrreator interno CBMEste mini-reactor despojado pode não ser " -"amelhorcoisa a ter no seu peito. Não há como desligá-lo, mas você " -"podealternar aingestão de combustível adicional." #: lang/json/BIONIC_ITEM_from_json.py msgid "Microreactor Upgrade CBM" @@ -17435,8 +15292,6 @@ msgid "" "A kit for upgrading a pre-installed microreactor with enhanced maximum yield" " and automatic radiation scrubbing." msgstr "" -" Atualização do microrreator Kit CBMA para atualização de ummicrorreatorpré-" -" instalado com rendimento máximo aprimorado e lavagemautomática porradiação." #: lang/json/BIONIC_ITEM_from_json.py msgid "Recycler Unit CBM" @@ -17452,10 +15307,6 @@ msgid "" "processors, allowing you to reclaim waste liquid and, to a lesser degree, " "nutrients. The net effect is a greatly reduced need to eat and drink." msgstr "" -" Unidade de Reciclador CBM O seu sistema digestivo foi equipado com " -"umasériede filtros e processadores, permitindo recuperar o líquido " -"residuale, emmenor grau, os nutrientes. O efeito líquido é uma necessidade " -"muitoreduzidade comer e beber." #: lang/json/BIONIC_ITEM_from_json.py msgid "Remote Controller CBM" @@ -17470,8 +15321,6 @@ msgid "" "A small module connected to your brain allows you to interface with nearby " "devices with wireless capabilities." msgstr "" -" Controlador remoto O pequeno módulo CBMA conectado ao seu cérebro " -"permiteainterface com dispositivos próximos com recursos sem fio." #: lang/json/BIONIC_ITEM_from_json.py msgid "Sonic Resonator CBM" @@ -17487,9 +15336,6 @@ msgid "" "shockwave. While it will not do much damage to creatures, stiff items such " "as walls and doors will be damaged." msgstr "" -" Ressonador Sônico CBM Seu corpo inteiro pode ressoar com potênciamuitoalta," -" criando uma onda de choque de curto alcance. Embora não causemuitodano às " -"criaturas, itens rígidos, como paredes e portas, serãodanificados." #: lang/json/BIONIC_ITEM_from_json.py msgid "Olfactory Mask CBM" @@ -17504,9 +15350,6 @@ msgid "" "While this system is powered, your body will produce very little odor, " "making it nearly impossible for creatures to track you by scent." msgstr "" -" Máscara Olfativa CBMEmbora este sistema seja energizado, seu " -"corpoproduzirámuito pouco odor, tornando quase impossível para as " -"criaturasrastreá-lopelo cheiro." #: lang/json/BIONIC_ITEM_from_json.py msgid "Scent Vision CBM" @@ -17522,9 +15365,6 @@ msgid "" "making it possible for you to recognize your surroundings even if you can't " "see it." msgstr "" -" Scent Vision CBMEmbora este sistema seja ativado, você é capaz " -"desentirvisualmente seu próprio perfume, possibilitando que você " -"reconheçaseuentorno, mesmo que você não possa vê-lo." #: lang/json/BIONIC_ITEM_from_json.py msgid "Electroshock Unit CBM" @@ -17540,10 +15380,6 @@ msgid "" " a chance that a successful hit will shock your opponent, inflicting extra " "damage and disabling them temporarily at the cost of some energy." msgstr "" -" Unidade de Eletrochoque Enquanto luta desarmada, ou com uma arma " -"queconduzeletricidade, há uma chance de que um golpe bem-sucedido " -"chocaseuoponente, causando dano extra e incapacitando-o temporariamente ao " -"custodealguma energia." #: lang/json/BIONIC_ITEM_from_json.py msgid "Shockwave Generator CBM" @@ -17559,10 +15395,6 @@ msgid "" "Targets are stunned briefly, take damage and additional stun upon impact " "with impassable terrain, and knockback any creatures they collide with." msgstr "" -" Gerador de Ondas de Choque CBMVocê gera uma poderosa onda dechoque, " -"repelindo todas as criaturas próximas. Os alvos ficamatordoadosbrevemente, " -"recebem dano e stun adicionais ao impacto comterrenointransponível, e " -"repelem quaisquer criaturas com as quais colidam." #: lang/json/BIONIC_ITEM_from_json.py msgid "Synaptic Accelerator CBM" @@ -17591,8 +15423,6 @@ msgid "" "Your muscular system has been enhanced with myomer fibers, giving you a +2 " "bonus to strength." msgstr "" -" Muscle Augmentation CBM O seu sistema muscular foi melhorado com " -"fibrasdemiomero, dando-lhe um bônus de +2 na força." #: lang/json/BIONIC_ITEM_from_json.py msgid "Autonomous Surgical Scalpels CBM" @@ -17607,10 +15437,6 @@ msgid "" "allow you to make automated precise cuts and can be used as a high-quality " "butchering tool." msgstr "" -" Bisturis Cirúrgicos Autônomos O sistema CBMA de bisturis " -"cirúrgicosestáimplantado em seus dedos. Eles permitem que você faça " -"cortesprecisosautomatizados e pode ser usado como uma ferramenta de " -"altaqualidade." #: lang/json/BIONIC_ITEM_from_json.py msgid "Anti-Glare Compensators CBM" @@ -17625,10 +15451,6 @@ msgid "" "negate glare penalties, partially protect you from bright flashes, and " "protect your eyes when welding." msgstr "" -" Compensadores anti-reflexos CBM Seus olhos têm lentes de transição " -"dereaçãorápida instaladas sobre eles. Eles negam as penalidades de reflexo, " -"protegemparcialmente contra flashes brilhantes e protegem seus olhosdurante " -"asoldagem." #: lang/json/BIONIC_ITEM_from_json.py msgid "Targeting System CBM" @@ -17643,10 +15465,6 @@ msgid "" " that of your arms, to a degree. Shots you fire will be much more accurate," " particularly at long range." msgstr "" -" Sistema de direcionamento CBM Seus olhos estão equipados com telêmetros, " -"eseu movimento é sincronizado com o de seus braços, até certo ponto. " -"Tirosque você atira serão muito mais precisos, particularmente " -"alongadistância." #: lang/json/BIONIC_ITEM_from_json.py msgid "Teleportation Unit CBM" @@ -17662,10 +15480,6 @@ msgid "" "transporting your body up to 25 feet at the cost of much power. Note that " "prolonged or frequent use may have dangerous side effects." msgstr "" -" Unidade de Teletransporte CBM Esta unidade altamente experimental dobra o " -"espaço em distâncias curtas, transportando instantaneamente o seu corpo até " -"25 pés ao custo de muita energia. Note que o uso prolongado ou freqüente " -"pode ter efeitos colaterais perigosos." #: lang/json/BIONIC_ITEM_from_json.py msgid "Time Dilation CBM" @@ -17681,10 +15495,6 @@ msgid "" " reactions dramatically, essentially freezing time. You are still delicate," " however, and violent or rapid movements may damage you due to friction." msgstr "" -" A dilatação do tempo CB Ao custo de todo o poder biônico armazenado, " -"vocêpode aumentar drasticamente a velocidade e as reações do seucorpo, " -"essencialmente congelando o tempo. Você ainda é delicado, noentanto, " -"movimentos violentos ou rápidos podem prejudicá-lo devido aoatrito." #: lang/json/BIONIC_ITEM_from_json.py msgid "Integrated Toolset CBM" @@ -17713,10 +15523,6 @@ msgid "" "slowly when you move. Whilst this is toggled, moving will require more " "effort, though more power will be generated." msgstr "" -" Articulação de torção de articulação CBM Suas articulações " -"foramequipadascom catracas de torção que geram energia lentamente quando " -"você semove. Enquanto isso for alternado, a movimentação exigirá mais " -"esforço, emboramais energia seja gerada." #: lang/json/BIONIC_ITEM_from_json.py msgid "Joint Servo CBM" @@ -17747,9 +15553,6 @@ msgid "" "Your nervous system has been augmented with bionic processors, allowing you " "to dodge attacks beyond normal human capability, including bullets." msgstr "" -" Esquiva Sobrenatural O seu sistema nervoso foi aumentado " -"comprocessadoresbiônicos, permitindo que você evite ataques além da " -"capacidadehumananormal, incluindo balas." #: lang/json/BIONIC_ITEM_from_json.py msgid "Unified Power System CBM" @@ -17764,10 +15567,6 @@ msgid "" "You have a unified power system wired into your power banks. Objects that " "run on a UPS can now draw directly from your internal power supply." msgstr "" -" Sistema de energia unificada CBMVocê tem um sistema de " -"energiaunificadoconectado aos seus bancos de energia. Objetos executados em " -"um no-breakagora podem ser extraídos diretamente de sua fonte de " -"alimentaçãointerna." #: lang/json/BIONIC_ITEM_from_json.py msgid "Internal Chronometer CBM" @@ -17783,9 +15582,6 @@ msgid "" " always know the current time. Additionally, it includes a silent alarm " "clock function." msgstr "" -" O cronômetro interno CBMYou foi equipado com um relógio atômicointerno, " -"garantindo que você sempre saiba a hora atual. Além disso, incluiumafunção " -"de despertador silencioso." #: lang/json/BIONIC_ITEM_from_json.py msgid "Water Extraction Unit CBM" @@ -17800,10 +15596,6 @@ msgid "" "out of a dead body, cleanse it of impurities and convert it into drinkable " "water. You must, however, have a container to store the water in." msgstr "" -" Unidade de extração de água Os nanotubos CBM embutidos na palma de " -"suamãobombearão qualquer fluido disponível de um corpo morto, " -"limparãoasimpurezas e o converterão em água potável. Você deve, no entanto, " -"terumrecipiente para armazenar a água." #: lang/json/BIONIC_ITEM_from_json.py msgid "Intravenous Needletip CBM" @@ -17819,10 +15611,6 @@ msgid "" "directly into your bloodstream through the needle without needing to carry a" " syringe." msgstr "" -" Tubo pequeno Needletip CBMA intravenoso com uma agulha retrátil, " -"queterminaem uma rede de minúsculas mangueiras em vez de um êmbolo. " -"Instalado, permiteque você retire substâncias diretamente em sua " -"correntesanguínea através daagulha sem precisar carregar uma seringa." #: lang/json/BIONIC_ITEM_from_json.py msgid "Titanium Skeletal Bracing CBM" @@ -17837,10 +15625,6 @@ msgid "" "structure. These artificial enhancers strengthen the knees and elbows, " "allowing you to carry more weight." msgstr "" -" Bracketing Esquelético de Titânio Conjunto CBMA de dobradiças, molaseoutros" -" aumentos sintéticos para a estrutura do esqueleto. Essesintensificadores " -"artificiais fortalecem os joelhos e cotovelos, permitindoque você carregue " -"mais peso." #: lang/json/BIONIC_ITEM_from_json.py msgid "Kinetic Shock Absorbers CBM" @@ -17856,11 +15640,6 @@ msgid "" "negate damage from severe impacts such as falling, at the cost of reducing " "your ability to move effectively." msgstr "" -" Conjunto de molas hidráulicas e acolchoamento dobrável CBMA " -"ShockAbsorbersque substitui a maior parte da carne em seus membros e " -"partesuperior dotronco. Enquanto ativos, esses absorvedores irão negar os " -"danoscausadospor impactos graves, como queda, com o custo de reduzir " -"suacapacidade dese mover efetivamente." #: lang/json/BIONIC_ITEM_from_json.py msgid "Taste Modifier CBM" @@ -18085,9 +15864,6 @@ msgid "" "You have a few solar panels installed. While in direct sunlight, your power" " level will slowly recharge." msgstr "" -" Painéis Solares CBMVocê tem alguns painéis solares instalados. " -"Enquantoestiver sob a luz solar direta, seu nível de " -"energiarecarregarálentamente." #: lang/json/BIONIC_ITEM_from_json.py msgid "Internal Furnace CBM" @@ -18103,10 +15879,6 @@ msgid "" " (use 'E'), recharging your power level. Some materials will burn better " "than others." msgstr "" -" Forno Interno CBMQuando este biônico está ativo, você " -"podequeimarpraticamente qualquer material orgânico como combustível " -"(use'E'),recarregando seu nível de energia. Alguns materiais " -"vãoqueimar melhor queoutros." #: lang/json/BIONIC_ITEM_from_json.py msgid "Internal Storage CBM" @@ -18120,9 +15892,6 @@ msgid "" "Space inside your chest cavity has been converted into a storage area. You " "may carry an extra 2 liters of volume." msgstr "" -" Armazenamento Interno O CBMSpace dentro da sua cavidade " -"torácicafoiconvertido em uma área de armazenamento. Você pode levar mais 2 " -"litrosdevolume." #. ~ Description for Solar Panels CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -18131,9 +15900,6 @@ msgid "" " sunlight, they will automatically deploy and slowly recharge your power " "level." msgstr "" -" Instalado em suas costas é um conjunto de painéis solares retráteis. " -"Quandosob a luz direta do sol, eles serão automaticamente " -"instaladoserecarregarão lentamente seu nível de energia." #: lang/json/BIONIC_ITEM_from_json.py msgid "Precision Solderers CBM" @@ -18206,11 +15972,6 @@ msgid "" "creating fires as it moves and an explosion on impact. Close range use is " "highly discouraged." msgstr "" -" Gerador de Sobrecarga Iônico O poderoso gerador de energia iônica " -"CBMAéimplantado em seu peito. Dispara uma poderosa explosão de " -"energiaemconstante expansão. A explosão resultante inflama o " -"oxigêniocriandoincêndios enquanto se move e uma explosão no impacto. O uso " -"acurtadistância é altamente desencorajado." #: lang/json/BIONIC_ITEM_from_json.py msgid "Synaptic Regeneration System CBM" @@ -18226,11 +15987,6 @@ msgid "" " active, you won't become sleep deprived; and if you're sleep deprived " "already, it will boost the rate of recovery." msgstr "" -" Sistema de Regeneração Sináptico O estimulador eletromagnético " -"CBMAnfoiimplantado cirurgicamente na parte de trás de sua cabeça e ao longo " -"desuacoluna, continuamente drenando energia. Enquanto estiver ativo, " -"vocênãoficará privado de sono; e se você já estiver privado de sono, " -"issoaumentará a taxa de recuperação." #: lang/json/BOOK_from_json.py msgid "Lessons for the Novice Bowhunter" @@ -18244,9 +16000,6 @@ 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 "" -" Lições para o novato Bowhunter Este livro de bolso pesado contém " -"todasasinformações necessárias para arqueiros novatos para começar a caça " -"comumavariedade de arcos e bestas." #: lang/json/BOOK_from_json.py msgid "Archery for Kids" @@ -18261,9 +16014,6 @@ msgid "" " easy, but once you know how it's done, you will have a lot of fun with " "archery." msgstr "" -" Arco e flecha para crianças Você será capaz de colocar a " -"flechadiretamenteno alvo? Não é assim tão fácil, mas uma vez que você sabe " -"como éfeito, você se divertirá muito com arco e flecha." #: lang/json/BOOK_from_json.py msgid "Zen and the Art of Archery" @@ -18277,8 +16027,6 @@ msgid "" "This massive book contains a wealth of vital information for the novice " "archer." msgstr "" -" O Zen e a Arte do Arco e FlechaEste enorme livro contém uma " -"riquezadeinformações vitais para o arqueiro novato." #: lang/json/BOOK_from_json.py msgid "car buyer's guide" @@ -18292,9 +16040,6 @@ msgid "" "Normally this glossy, ad-filled magazine about cars would be pointless, but " "it has a series of articles on haggling techniques." msgstr "" -" guia do comprador de carroNormalmente, esta revista cheia de " -"anúnciossobrecarros seria inútil, mas tem uma série de artigos sobre " -"técnicasdepechinchar." #: lang/json/BOOK_from_json.py msgid "How to Succeed in Business" @@ -18306,8 +16051,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Useful if you want to get a good deal when purchasing goods." msgstr "" -" Como ter sucesso no BusinessUseful se você quiser obter um bom " -"negócionacompra de mercadorias." #: lang/json/BOOK_from_json.py msgid "Advanced Economics" @@ -18318,7 +16061,7 @@ msgstr[1] "" #. ~ Description for Advanced Economics #: lang/json/BOOK_from_json.py msgid "A college textbook on economics." -msgstr "Advanced Economics Um livro universitário sobre economia." +msgstr "" #: lang/json/BOOK_from_json.py msgid "Batter Up!" @@ -18333,9 +16076,6 @@ msgid "" "colorful, full-page photos of skilled athletes demonstrating proper form and" " technique." msgstr "" -" Batter Up! Uma revista de beisebol que se concentra em dicas derebatidas. " -"Há muitas fotos coloridas, de página inteira, de " -"atletashabilidososdemonstrando forma e técnica adequadas." #: lang/json/BOOK_from_json.py msgid "tactical baton defense manual" @@ -18350,10 +16090,6 @@ msgid "" "law enforcement and military market, it is packed with time tested, no-" "nonsense information and written to be understandable for beginners." msgstr "" -" manual de defesa táctica do bastão Um guia informativo para " -"aautodefesausando clubes e bastões. Destinado a aplicação da lei e " -"mercadomilitar, éembalado com tempo testado, informações sem sentido e " -"escritopara sercompreensível para iniciantes." #: lang/json/BOOK_from_json.py msgid "SICP" @@ -18367,9 +16103,6 @@ msgid "" "A classic text, \"The Structure and Interpretation of Computer Programs.\" " "Written with examples in LISP, but applicable to any language." msgstr "" -" Texto clássico SICPA, \"A Estrutura e Interpretação de " -"ProgramasdeComputador. \" Escrito com exemplos no LISP, mas aplicável " -"aqualqueridioma." #: lang/json/BOOK_from_json.py msgid "Computer Science 301" @@ -18381,8 +16114,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A college textbook on computer science." msgstr "" -" Ciência da Computação 301A livro didático de faculdade em " -"ciênciadacomputação." #: lang/json/BOOK_from_json.py msgid "How to Browse the Web" @@ -18394,8 +16125,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Very beginner-level information about computers." msgstr "" -" Como procurar as informações no nível do iniciante do " -"WebVerysobrecomputadores." #: lang/json/BOOK_from_json.py msgid "Computer World" @@ -18408,8 +16137,6 @@ msgstr[1] "" msgid "" "An informative magazine all about computers, both hardware and software." msgstr "" -" Computer World Uma revista informativa sobre computadores, " -"hardwareesoftware." #: lang/json/BOOK_from_json.py msgid "Computer Science 101" @@ -18421,7 +16148,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "An entry-level textbook about computers." msgstr "" -" Ciência da Computação 101 Um livro de nível de entrada sobre computadores." #: lang/json/BOOK_from_json.py msgid "Principles of Advanced Programming" @@ -18435,9 +16161,6 @@ msgid "" "A heavy textbook dedicated to advanced-level software design, written for " "several different programming languages." msgstr "" -" Princípios da Programação AvançadaUm livro pesado dedicado ao " -"designdesoftware de nível avançado, escrito para várias linguagens " -"deprogramaçãodiferentes." #: lang/json/BOOK_from_json.py msgid "Advanced Physical Chemistry" @@ -18451,8 +16174,6 @@ msgid "" "A university-level textbook on advanced principles of chemistry, both " "organic and inorganic." msgstr "" -" Química Física AvançadaUm livro de nível universitário " -"sobreprincípiosavançados de química, tanto orgânicos como inorgânicos." #: lang/json/BOOK_from_json.py msgid "The Homebrewer's Bible" @@ -18466,9 +16187,6 @@ 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 Homebrewer's Bible - Um livro cheio de receitas fáceis de " -"seguireconselhos úteis sobre homebrewing, malte e fermentação. Até " -"cheiraabebida." #: lang/json/BOOK_from_json.py msgid "Cooking on a Budget" @@ -18481,8 +16199,6 @@ msgstr[1] "" msgid "" "A nice cook book that goes beyond recipes and into the chemistry of food." msgstr "" -" Cooking on a Budget Um bom livro de receitas que vai além das receitas " -"edaquímica dos alimentos." #: lang/json/BOOK_from_json.py msgid "To Serve Man" @@ -18493,7 +16209,7 @@ msgstr[1] "" #. ~ Description for To Serve Man #: lang/json/BOOK_from_json.py msgid "It's... it's a cookbook!" -msgstr "Para servir o homem ... é um livro de receitas!" +msgstr "" #: lang/json/BOOK_from_json.py msgid "Cucina Italiana" @@ -18507,8 +16223,6 @@ msgid "" "This cookbook is written in Italian, but handily illustrated with step by " "step photo instructions." msgstr "" -" Cucina Italiana Este livro de culinária foi escrito em italiano, " -"masilustrado com instruções passo a passo da foto." #: lang/json/BOOK_from_json.py msgid "Sushi Made Easy" @@ -18523,9 +16237,6 @@ msgid "" "filled with lots of helpful illustrations for everything from basic rice " "preparation to setting a proper Japanese table." msgstr "" -" Sushi Made Easy Um texto simples para o amante de sushi aspirante, " -"estefácil de ler guia é preenchido com muitas ilustrações úteis paratudo, " -"desde a preparação básica de arroz para definir uma tabelajaponesaadequada." #: lang/json/BOOK_from_json.py msgid "family cookbook" @@ -18541,10 +16252,6 @@ msgid "" "You could probably learn a lot about cooking from studying this domestic " "artifact." msgstr "" -" family cookbookUm grande fichário cheio de receitas familiares de alguém. " -"Aspáginas bem torneadas e cantos amassados falam muito " -"doconhecimentoculinário contido nele. Você provavelmente poderia " -"aprendermuito sobreculinária estudando esse artefato doméstico." #: lang/json/BOOK_from_json.py msgid "Bon Appetit" @@ -18557,8 +16264,6 @@ msgstr[1] "" msgid "" "Exciting recipes and restaurant reviews. Full of handy tips about cooking." msgstr "" -" Bon AppetitExciting receitas e resenhas de restaurantes. Cheio dedicasúteis" -" sobre culinária." #: lang/json/BOOK_from_json.py msgid "Glamopolitan" @@ -18573,9 +16278,6 @@ msgid "" "recipes and some simple cooking tips somewhere in between the fashion photos" " and the sex advice columns." msgstr "" -" GlamopolitanThis é uma revista feminina de tamanho brilhante. " -"Existemalgumas receitas não originais e algumas dicas simples de " -"culináriaentreas fotos de moda e as colunas de aconselhamento sexual." #: lang/json/BOOK_from_json.py msgid "The Modern Tanner" @@ -18589,8 +16291,6 @@ msgid "" "A in-depth and easy to read guide that details a very modern take on the " "ancient art of leather tanning." msgstr "" -" The Modern TannerA um guia detalhado e fácil de ler que detalha " -"umavisãomuito moderna da antiga arte do curtimento de couro." #: lang/json/BOOK_from_json.py msgid "PE050 \"Alpha\": Preliminary Report" @@ -18605,10 +16305,6 @@ msgid "" "new chemical formula, and its effects on human subjects. It's stamped " "\"APPROVED\"..." msgstr "" -" PE050 \"Alfa \": Relatório Preliminar Esse maço de papéis - datado " -"deduassemanas antes de tudo isso começar - descreve alguma nova " -"fórmulaquímica eseus efeitos sobre os seres humanos. É carimbado \"APROVADO " -"\" ..." #: lang/json/BOOK_from_json.py msgid "lab journal-Dionne" @@ -18623,10 +16319,6 @@ msgid "" "focusing on those derived from various Earth fauna. The team seems quite " "enthusiastic--if not eager--about their results." msgstr "" -" diário de laboratório - DionneEste registro de equipe " -"detalhadiversasvariedades de experimentos mutagênicos, com foco naqueles " -"derivadosdevárias espécies da fauna terrestre. A equipe parece bastante " -"entusiasmada-se não ansiosa - com seus resultados." #: lang/json/BOOK_from_json.py msgid "PE065 \"Chimera\": Best Practices" @@ -18655,10 +16347,6 @@ msgid "" "focusing on those derived from flesh contaminated with XE037. The results " "look promising but the procurement methods seem awfully vague..." msgstr "" -" Este diário de equipe detalha diversas variedades " -"deexperimentosmutagênicos, concentrando-se naqueles derivados de " -"carnecontaminada comXE037. Os resultados parecem promissores, mas os métodos" -" deaquisiçãoparecem muito vagos ..." #: lang/json/BOOK_from_json.py msgid "standpipe maintenance log" @@ -18673,10 +16361,6 @@ msgid "" "throughout the facility. However, some of the log sheets seem to be filled " "with...a chemical formula?" msgstr "" -" log de manutenção do tubo vertical Este encadernador detalha " -"amanutençãoprogramada para vários sistemas de encanamento em toda " -"ainstalação. Noentanto, algumas das folhas de registro parecem " -"serpreenchidas com ... umafórmula química?" #: lang/json/BOOK_from_json.py msgid "chemical reference-CLASSIFIED" @@ -18693,12 +16377,6 @@ msgid "" "methamphetamine and heroin, along with briefing on things called \"XE037\" " "and \"PE012\"." msgstr "" -" chemical reference-CLASSIFIED Este ligante fichário técnico " -"temváriasadvertências de segurança intimidantes na capa, mas garante " -"aosleitoresnão autorizados\"emprego permanente, por toda a vida\". " -"Elecontéminformações úteis sobre projetos químicos \"básicos \" " -"comometanfetamina eheroína, além de instruções sobre as coisas chamadas " -"\"XE037\" e \"PE012\"." #: lang/json/BOOK_from_json.py msgid "lab journal-x-|xp" @@ -18713,10 +16391,6 @@ msgid "" " but still contains useful information on several types of mutagen and their" " development." msgstr "" -" lab journal-x- | xpEsse registro de equipe danificado " -"nãopossui(deliberadamente?) nenhuma informação de identificação, mas " -"aindacontéminformações úteis sobre vários tipos de mutagênicos e " -"seudesenvolvimento." #: lang/json/BOOK_from_json.py msgid "PE023 \"Medical\": Application and Findings" @@ -18730,9 +16404,6 @@ msgid "" "This binder of highly technical papers describes some new chemical formula, " "and its effects on human subjects. It's stamped \"APPROVED\"...." msgstr "" -" PE023 \"Medical \": Aplicação e Descobertas Este fichário " -"dedocumentosaltamente técnicos descreve algumas novas fórmulas químicas " -"eseus efeitosem seres humanos. É carimbado \"APROVADO \" ...." #: lang/json/BOOK_from_json.py msgid "PE070 \"Raptor\": Proposal" @@ -18763,12 +16434,6 @@ msgid "" "are well-fed and in good health, as the concentrated serums draw heavily on " "subjects' bodies." msgstr "" -" Melhores Práticas para Entrega CompostaEste manual interno " -"detalhadiversasvariedades de experimentos mutagênicos, assim como descreve " -"osprotocolosusados para concentrar os mutagênicos em resultados mais " -"rápidos. Osautores recomendam que os pesquisadores assegurem que " -"seuspacientesestejam bem alimentados e com boa saúde, já que os " -"sorosconcentrados sebaseiam fortemente nos corpos dos indivíduos." #: lang/json/BOOK_from_json.py msgid "Ye Scots Beuk o Cuikery" @@ -18785,11 +16450,6 @@ msgid "" "into medieval Scottish culture and fashion as well as new uses for oatmeal, " "fish, and sheep liver." msgstr "" -" Ye Scots Beuk o Cuikery Um livro de receitas semi-traduzido da " -"Escóciadoséculo XIII. Embora um pouco difícil de ler, como há um " -"númeroinquietantede ilustrações de pessoas esfaqueando uns aos outros " -"misturadosentre asreceitas, ele fornece insights sobre cultura escocesa " -"medieval emoda, bemcomo novos usos para aveia, peixe e fígado de ovelha." #: lang/json/BOOK_from_json.py msgid "chemistry textbook" @@ -18800,7 +16460,7 @@ msgstr[1] "" #. ~ Description for chemistry textbook #: lang/json/BOOK_from_json.py msgid "A college textbook on chemistry." -msgstr "química textbookUm livro didático de faculdade em química." +msgstr "" #: lang/json/BOOK_from_json.py msgid "All About Swords" @@ -18814,8 +16474,6 @@ msgid "" "An interesting magazine that contains information about swords and sword " "fighting techniques from all across the world." msgstr "" -" All About SwordsUma revista interessante que contém informaçõessobreespadas" -" e técnicas de luta de espadas de todo o mundo." #: lang/json/BOOK_from_json.py msgid "knife fighter's notes" @@ -18830,9 +16488,6 @@ msgid "" "released on spiral- bound paper. Still, there are lots of useful tips for " "beginners." msgstr "" -" Notas do lutador de facas Parece ser um guia para o combate " -"comarmasafiadas, mal fotocopiado e lançado em papel encadernado em espiral. " -"Aindaassim, existem muitas dicas úteis para iniciantes." #: lang/json/BOOK_from_json.py msgid "Spetsnaz Knife Techniques" @@ -18844,8 +16499,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A classic Soviet text on the art of attacking with a blade." msgstr "" -" Spetsnaz Knife TechniquesUm clássico texto soviético sobre a arte " -"deatacarcom uma lâmina." #: lang/json/BOOK_from_json.py msgid "Dance Dance Dance!" @@ -18857,8 +16510,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Learn the moves of the trendiest dances right now." msgstr "" -" Dance Dance Dance! Aprenda os movimentos das danças mais " -"badaladasnomomento." #: lang/json/BOOK_from_json.py msgid "The Book of Dances" @@ -18873,9 +16524,6 @@ msgid "" "great detail. A perceptive reader could learn a lot about defensive " "footwork from some of the war dances." msgstr "" -" The Book of DancesEste maciço livro antigo documenta danças de todo " -"omundoem grande detalhe. Um leitor perspicaz pode aprender muito sobre " -"otrabalhodefensivo de algumas das danças de guerra." #: lang/json/BOOK_from_json.py msgid "Break a Leg!" @@ -18886,7 +16534,7 @@ msgstr[1] "" #. ~ Description for Break a Leg! #: lang/json/BOOK_from_json.py msgid "The Kids' Guide to Acting and Stagecraft." -msgstr "Break a Leg! O Guia para Crianças em Atuação e Stagecraft." +msgstr "" #: lang/json/BOOK_from_json.py msgid "AAA Guide" @@ -18901,9 +16549,6 @@ msgid "" "Though it focuses on the north-central US, the driving sections contain some" " practical tips on proper driving techniques." msgstr "" -" Guia AAA Guia turístico centrado em pontos de interesse em todo opaís. " -"Embora se concentre no centro-norte dos EUA, as seções de " -"direçãocontêmalgumas dicas práticas sobre técnicas de direção adequadas." #: lang/json/BOOK_from_json.py msgid "Top Gear magazine" @@ -18914,7 +16559,7 @@ msgstr[1] "" #. ~ Description for Top Gear magazine #: lang/json/BOOK_from_json.py msgid "Lots of articles about cars and driving techniques." -msgstr "Revista Top Gear Muitos artigos sobre carros e técnicas de direção." +msgstr "" #: lang/json/BOOK_from_json.py msgid "The Rules of the Road" @@ -18928,9 +16573,6 @@ msgid "" "A thick textbook for beginning drivers. It contains chapters on laws, safe " "vehicle operation, and defensive driving concepts." msgstr "" -" The Rules of the RoadUm livro de texto grosso para controladoresiniciais. " -"Ele contém capítulos sobre leis, operação segura do veículo econceitos " -"dedireção defensiva." #. ~ Description for AAA Guide #: lang/json/BOOK_from_json.py @@ -18940,10 +16582,6 @@ msgid "" "conceals a wealth of ways to help stick it to The Man, along with plenty of " "advice for avoiding police." msgstr "" -" Um guia centrado no turismo para pontos de interesse em todo o país. " -"Estacópia em particular é aparentemente Anonymous Anarchist's Anual: " -"acapaesconde uma variedade de maneiras para ajudar a colocá-la no The Man, " -"juntocom muitos conselhos para evitar a polícia." #: lang/json/BOOK_from_json.py msgid "Advanced Electronics" @@ -18955,7 +16593,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A college textbook on circuit design." msgstr "" -" Advanced ElectronicsUm livro didático de faculdade em design de circuito." #: lang/json/BOOK_from_json.py msgid "Ham Radio Illustrated" @@ -18969,9 +16606,6 @@ msgid "" "An amusing magazine about ham radio, with lots of diagrams and illustrations" " for making your own electronic devices." msgstr "" -" Ham Radio IllustratedUma divertida revista sobre rádio amador, " -"commuitosdiagramas e ilustrações para fazer seus próprios " -"dispositivoseletrônicos." #: lang/json/BOOK_from_json.py msgid "What's a Transistor?" @@ -18983,7 +16617,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A basic manual of electronics and circuit design." msgstr "" -" O que é um transistor? Um manual básico de eletrônica e design de circuito." #: lang/json/BOOK_from_json.py msgid "Amateur Home Radio for Enthusiasts" @@ -18997,9 +16630,6 @@ msgid "" "A book about ham radio and citizen's band radio. It contains numerous " "diagrams and illustrations explaining the science behind the electronics." msgstr "" -" Amador Home Radio para EntusiastasUm livro sobre rádio amador e " -"rádiodefaixa de cidadão. Ele contém vários diagramas e ilustrações " -"explicandoaciência por trás da eletrônica." #: lang/json/BOOK_from_json.py msgid "computer printout" @@ -19013,9 +16643,6 @@ msgid "" "One side of this sheet is printed with a meaningless jumble of characters, " "but the other side shows a complicated, hand-drawn circuit diagram." msgstr "" -" impressão de computadorUm lado desta folha é impresso com uma " -"confusãosemsentido de caracteres, mas o outro lado mostra um complicado " -"diagramadecircuito desenhado à mão." #: lang/json/BOOK_from_json.py msgid "Augmentative Tech Review" @@ -19031,10 +16658,6 @@ msgid "" " illustrated articles on bionic systems, though they tend to use too much " "jargon." msgstr "" -" Revisão de Tech AugmentativeThis publicação anual abrange as " -"váriasmaneirasem que as pessoas usam a tecnologia para melhorar seus corpos." -" Háalgunsartigos detalhados e minuciosamente ilustrados sobre " -"sistemasbiônicos, embora eles usem muito jargão." #: lang/json/BOOK_from_json.py msgid "lab journal-Herrera" @@ -19049,10 +16672,6 @@ msgid "" "specifications for various electronic materials. Some of the diagrams use " "symbols you've not seen before..." msgstr "" -" jornal de laboratório-HerreraEste fichário pesado contém uma " -"infinidadedediagramas e especificações técnicas para vários " -"materiaiseletrônicos. Alguns dos diagramas usam símbolos que você não viu " -"antes ..." #: lang/json/BOOK_from_json.py msgid "2XI design binder-CLASSIFIED" @@ -19068,11 +16687,6 @@ msgid "" "technical drawings, and test results for their military-grade bionic " "implants." msgstr "" -" Fichário de design 2XI-CLASSIFIEDEste encadernador da " -"DoubletechIndustriestem vários avisos de segurança intimidantes na capa. " -"Provavelmente porquecontém especificações completas de projeto, " -"desenhostécnicos e resultadosde testes para seus implantes biônicos de " -"nívelmilitar." #: lang/json/BOOK_from_json.py msgid "plans for a radio repeater mod" @@ -19086,9 +16700,6 @@ msgid "" "Instructions on how to create a mod for a radio station terminal which " "converts the entire system into a repeater." msgstr "" -" planos para um modificador de rádio repetidor de como criar um mod " -"paraumterminal de estação de rádio que converte todo o sistema em um " -"repetidor." #: lang/json/BOOK_from_json.py msgid "Electronic Circuit Theory" @@ -19101,8 +16712,6 @@ msgstr[1] "" msgid "" "An advanced college textbook on circuit theory, design, and organization." msgstr "" -" Teoria do Circuito Eletrônico Um livro avançado sobre teoria, " -"designeorganização de circuitos." #: lang/json/BOOK_from_json.py msgid "Robots for Fun & Profit" @@ -19116,8 +16725,6 @@ msgid "" "A rare book on the design of robots, with lots of helpful step-by-step " "guides." msgstr "" -" Robôs para diversão e lucroUm livro raro sobre o design de robôs, " -"commuitosguias passo-a-passo úteis." #: lang/json/BOOK_from_json.py msgid "schematics generic" @@ -19384,8 +16991,6 @@ msgid "" "A textbook that illustrates the science and technique of the ancient art of " "glassblowing." msgstr "" -" The Art of Glassblowing Um livro didático que ilustra a ciência e " -"atécnicada antiga arte do glassblowing." #: lang/json/BOOK_from_json.py msgid "Antique Adornments" @@ -19399,8 +17004,6 @@ msgid "" "A comprehensive and illustrated history of crown, bracelet, necklace and " "others." msgstr "" -" Adornos Antigos Uma história abrangente e ilustrada de coroa, pulseira, " -"colar e outros." #: lang/json/BOOK_from_json.py msgid "Crafty Crafter's Quarterly" @@ -19414,9 +17017,6 @@ msgid "" "A fun quarterly magazine all about macaroni art and things you can make by " "supergluing found objects together." msgstr "" -" Crafty's Crafter's QuarterlyUma revista trimestral " -"divertidasobrearte em macarrão e coisas que você pode fazer " -"supervalorizandoobjetosencontrados juntos." #: lang/json/BOOK_from_json.py msgid "101 Crafts for Beginners" @@ -19430,8 +17030,6 @@ msgid "" "A large, paperback book detailing a hundred and one beginner's projects in " "fabrication." msgstr "" -" 101 Artesanato para iniciantes Um grande livro de bolso detalhando centoeum" -" projetos de iniciante em fabricação." #: lang/json/BOOK_from_json.py msgid "The Fletcher's Friend" @@ -19447,10 +17045,6 @@ msgid "" "and legal, of using explosives and flammable materials. Look for its " "companion, \"The Bowyer's Buddy\"!" msgstr "" -" The Fletcher's Friend Este livro pesado é dedicado a pessoasqueprocuram" -" fazer suas próprias flechas. Começa com um aviso legal sobreosriscos, tanto" -" físicos quanto legais, do uso de explosivos emateriaisinflamáveis. Procure " -"por seu companheiro, \"The Bowyer's Buddy\"!" #: lang/json/BOOK_from_json.py msgid "The Bowyer's Buddy" @@ -19465,10 +17059,6 @@ msgid "" "make their own bows. It recommends its companion volume \"The Fletcher's " "Friend\" for instructions on producing their ammunition." msgstr "" -" The Buddy Buddy Este livro pesado é dedicado aos tipos de " -"artesanatoeoutdoor-y que procuram fazer seus próprios arcos. Recomenda o " -"volume deseucompanheiro \"O Amigo de Fletcher \" para instruções sobre " -"comoproduzirsua munição." #: lang/json/BOOK_from_json.py msgid "The Handloader's Helper" @@ -19483,10 +17073,6 @@ msgid "" "with a ...childproof cover. Apparently a liability thing, because the " "chapter on explosive rounds covers them in excellent detail too." msgstr "" -" The Handloader's HelperTudo que você poderia querer saber " -"sobrecarregarmunição, selado com uma ... capa para crianças. Aparentemente, " -"umacoisa deresponsabilidade, porque o capítulo sobre rodadas explosivas " -"oscobre emdetalhes excelentes também." #: lang/json/BOOK_from_json.py msgid "Rivtech design binder" @@ -19501,10 +17087,6 @@ msgid "" "subjects.\" With good reason: it contains complete design specs and " "technical drawings for their entire line of products." msgstr "" -" Encadernador de design RivtechEste encadernador Rivtech avisa " -"que\"Leitoresnão autorizados são os nossos melhores assuntos de teste \". " -"Poruma boarazão: ele contém especificações completas de projeto e " -"desenhostécnicospara toda a sua linha de produtos." #: lang/json/BOOK_from_json.py msgid "lab journal-Gustav" @@ -19521,13 +17103,6 @@ msgid "" "common metals. The author's intended goal was a better non-stick frying " "pan, but you can think of a couple of better uses for it." msgstr "" -" Jornal de laboratório-GustavEste caderno de papel é principalmente " -"cheioderegistros chatos, observações experimentais e anotações. Misturado, " -"noentanto, são reflexões sobre como usar a máquina de deposição de " -"vapordolaboratório para depositar carbono amorfo em forma de diamante " -"emmetaiscomuns. O objetivo pretendido pelo autor era uma " -"frigideiraantiaderentemelhor, mas você pode pensar em alguns usos melhores " -"para ela." #: lang/json/BOOK_from_json.py msgid "The Streetfighter's Sidekick" @@ -19543,11 +17118,6 @@ msgid "" "they rely heavily on technical jargon. More for machinists-turned-" "weaponsmiths than streetfighters, really." msgstr "" -" O Guia prático de SidekickA, do Streetfighter, para fazer armas " -"decombatecorpo-a-corpo. Embora os processos sejam minuciosamente detalhados " -"eváriasilustrações sejam fornecidas, eles dependem muito do jargão técnico. " -"Maispara maquinistas que se tornaram armeiros do que lutadores de rua, " -"naverdade." #: lang/json/BOOK_from_json.py msgid "238-NK: Practicality Enhancement" @@ -19562,10 +17132,6 @@ msgid "" "very persuasive case for the adoption of spring-driven nuclear shells. It's" " stamped \"DENIED\"." msgstr "" -" 238-NK: Aprimoramento da PraticidadeOs autores desta " -"propostatotalmentepesquisada e documentada fazem um argumento muito " -"persuasivo paraa adoçãode projéteis nucleares movidos a mola. Está " -"marcado\"NEGADO\"." #: lang/json/BOOK_from_json.py msgid "The Art of Japanese Armormaking" @@ -19579,9 +17145,6 @@ msgid "" "This in-depth and technical text details various forms of ancient Japanese " "armor crafting, and is well illustrated with lots of photos." msgstr "" -" The Art of Japanese ArmormakingEste texto aprofundado e " -"técnicodetalhavárias formas de artesanato de armaduras japonesas antigas e " -"ébemilustrado com muitas fotos." #: lang/json/BOOK_from_json.py msgid "Arms and Armor of Imperial China" @@ -19597,11 +17160,6 @@ msgid "" "details some of the equipment used by other cultures that came into conflict" " with the empire over various dynasties." msgstr "" -" Armas e Armaduras da China Imperial Este manual detalha a históriamilitarda" -" China antiga, com um foco particular na natureza das armas " -"earmadurashistóricas. Ele também detalha alguns dos equipamentos usados " -"poroutrasculturas que entraram em conflito com o império sobre " -"váriasdinastias." #: lang/json/BOOK_from_json.py msgid "Studies in Historic Armorsmithing" @@ -19615,9 +17173,6 @@ msgid "" "This in-depth and technical text details various forms of ancient European " "armor crafting, and is well illustrated with lots of photos." msgstr "" -" Studies in Historic ArmorsmithingEste texto aprofundado e " -"técnicodetalhavárias formas de artesanato de blindagem europeu antigo e é " -"bemilustradocom muitas fotos." #: lang/json/BOOK_from_json.py msgid "DIY Compendium" @@ -19631,9 +17186,6 @@ msgid "" "A thick, hardbound book detailing countless projects for inventions that " "claim to improve all aspects of life." msgstr "" -" Compêndio de bricolagem Um livro denso e encadernado que " -"detalhainúmerosprojetos de invenções que prometem melhorar todos os aspectos" -" davida." #: lang/json/BOOK_from_json.py msgid "A History of Firefighting" @@ -19648,9 +17200,6 @@ msgid "" "ancient times into the modern era, with a focus on the technology used to " "save lives." msgstr "" -" A History of Firefighting Este texto detalhado e técnico detalha " -"ahistóriado combate a incêndios desde a antiguidade até a era moderna, " -"comfoco natecnologia usada para salvar vidas." #: lang/json/BOOK_from_json.py msgid "Art and Science of Chemical Warfare" @@ -19666,10 +17215,6 @@ msgid "" "the centuries. The photographs the author chose make it a difficult read at" " times, though the information is top-notch." msgstr "" -" Arte e Ciência da Guerra QuímicaEste texto aprofundado e técnico " -"cobreodesign, desenvolvimento, disseminação e defesa contra várias " -"armasquímicasao longo dos séculos. As fotografias que o autor " -"escolheudificultam aleitura, embora a informação seja de alto nível." #: lang/json/BOOK_from_json.py msgid "The Swords of the Samurai" @@ -19684,9 +17229,6 @@ msgid "" "sword smithing, and is well illustrated with step by step photo " "instructions." msgstr "" -" The Swords of the SamuraiEste texto aprofundado e técnico " -"detalhaváriasformas de espada antiga japonesa, e é bem ilustrado com " -"instruções defotopasso a passo." #: lang/json/BOOK_from_json.py msgid "The Historic Weaponsmith" @@ -19701,9 +17243,6 @@ msgid "" "weapon smithing, and is well illustrated with step by step photo " "instructions." msgstr "" -" The Historic WeaponsmithEste texto aprofundado e técnico " -"detalhaváriasformas do antigo ferreiro europeu, e é bem ilustrado com " -"instruçõespasso apasso da foto." #: lang/json/BOOK_from_json.py msgid "Welding and Metallurgy" @@ -19717,8 +17256,6 @@ msgid "" "A rather technical textbook that illustrates the science and technique of " "becoming a better welder." msgstr "" -" Soldagem e Metalurgia Um livro bastante técnico que ilustra a ciência " -"eatécnica de se tornar um melhor soldador." #: lang/json/BOOK_from_json.py msgid "101 Home Repairs" @@ -19731,8 +17268,6 @@ msgstr[1] "" msgid "" "A paperback book detailing 101 home repair projects the novice carpenter." msgstr "" -" 101 Home RepairsUm livro de bolso detalhando 101 projetos de reparo emcasa," -" o carpinteiro novato." #: lang/json/BOOK_from_json.py msgid "The Complete Home Repair Guide" @@ -19746,9 +17281,6 @@ msgid "" "A massive book that details virtually every aspect of remodeling and " "repairing a home, with concise terminology aimed at experienced carpenters." msgstr "" -" The Complete Home Repair Guide Um livro enorme que detalhapraticamentetodos" -" os aspectos da remodelação e reparação de uma casa, comterminologiaconcisa " -"destinada a carpinteiros experientes." #: lang/json/BOOK_from_json.py msgid "Birdhouse Monthly" @@ -19760,8 +17292,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A riveting periodical all about birdhouses and their construction." msgstr "" -" Birdhouse MonthlyA rebitagem periódica tudo sobre birdhouses " -"esuaconstrução." #: lang/json/BOOK_from_json.py msgid "Building for Beginners" @@ -19775,8 +17305,6 @@ msgid "" "A large, paperback book detailing several beginner's projects in " "construction." msgstr "" -" Edifício para Iniciantes Um grande livro de bolso detalhando " -"váriosprojetospara iniciantes em construção." #: lang/json/BOOK_from_json.py msgid "Engineering 301" @@ -19787,7 +17315,7 @@ msgstr[1] "" #. ~ Description for Engineering 301 #: lang/json/BOOK_from_json.py msgid "A textbook on civil engineering and construction." -msgstr "Manual de engenharia 301A em engenharia civil e construção." +msgstr "" #: lang/json/BOOK_from_json.py msgid "Guide to Advanced Emergency Care" @@ -19801,9 +17329,6 @@ msgid "" "A thick textbook for paramedics describing advanced lifesaving procedures " "and field-expedient care methods." msgstr "" -" Guia de Atendimento Avançado de Emergência Um livro grosso " -"paraosparamédicos descrevendo procedimentos avançados de salva-vidas e " -"métodosdecuidado de campo." #: lang/json/BOOK_from_json.py msgid "Paramedics" @@ -19814,7 +17339,7 @@ msgstr[1] "" #. ~ Description for Paramedics #: lang/json/BOOK_from_json.py msgid "An educational magazine for EMTs." -msgstr "ParamedicsAn revista educacional para EMTs." +msgstr "" #: lang/json/BOOK_from_json.py msgid "The Big Book of First Aid" @@ -19826,8 +17351,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "It's big and heavy, but full of great information about first aid." msgstr "" -" O Grande Livro de Primeiros Socorros É grande e pesado, mas cheio " -"degrandesinformações sobre primeiros socorros." #: lang/json/BOOK_from_json.py msgid "Pocket Guide to First Aid" @@ -19842,9 +17365,6 @@ msgid "" "concise information with simple to follow instructions and easy to read " "illustrations." msgstr "" -" Guia de bolso para primeiros socorros Este guia de couro de " -"bolsoparaprimeiros socorros combina uma riqueza de informações concisas " -"comsimplespara seguir instruções e fácil de ler ilustrações." #: lang/json/BOOK_from_json.py msgid "First Responder Handbook" @@ -19858,9 +17378,6 @@ msgid "" "A hardbound book detailing advanced first aid techniques and field-expedient" " medical care." msgstr "" -" Manual do Primeiro RespondedorUm livro de capa dura " -"detalhandotécnicasavançadas de primeiros socorros e assistência médica de " -"campo." #: lang/json/BOOK_from_json.py msgid "First Aid Kit Instruction Booklet" @@ -19872,8 +17389,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Illustrated how-to guide for your first aid kit." msgstr "" -" Guia de instruções do kit de primeiros socorros Guia de " -"instruçõesilustradopara o kit de primeiros socorros." #: lang/json/BOOK_from_json.py msgid "Guns n Ammo" @@ -19885,7 +17400,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Reviews of firearms, and various useful tips about their use." msgstr "" -" Guns n AmmoReviews de armas de fogo e várias dicas úteis sobre seu uso." #: lang/json/BOOK_from_json.py msgid "The Gun Owner's Handbook" @@ -19899,8 +17413,6 @@ msgid "" "A thick soft-cover book that claims to be a complete guide to safely " "operating, maintaining, and repairing firearms." msgstr "" -" O manual do proprietário da arma Um livro de capa mole espesso queafirmaser" -" um guia completo para operar, manter e consertar armas de fogocomsegurança." #: lang/json/BOOK_from_json.py msgid "Pocket Guide to Firearm Safety" @@ -19915,9 +17427,6 @@ msgid "" " concise information with simple to follow instructions and easy to read " "illustrations." msgstr "" -" Guia de bolso para segurança de armas de fogoEste guia de bolso decouropara" -" segurança de armas de fogo combina uma riqueza de informaçõesconcisascom " -"simples para seguir instruções e fácil de ler ilustrações." #: lang/json/BOOK_from_json.py msgid "High Explosives Quarterly" @@ -19932,9 +17441,6 @@ msgid "" "rifles. There are lots of large, exciting photos of explosions and " "weaponry." msgstr "" -" High Explosives QuarterlyUm relatório trimestral " -"interessantesobrelançadores de foguetes e rifles sem recuo. Há muitas fotos " -"grandeseemocionantes de explosões e armas." #: lang/json/BOOK_from_json.py msgid "Jane's Mortars and Rocket Launchers" @@ -19949,10 +17455,6 @@ msgid "" "and recoilless weaponry. Lavishly illustrated with color photographs, it " "contains a wealth of information." msgstr "" -" Os Morteiros e Lançadores de Foguetes de Jane Um guiaincrivelmentedetalhado" -" de foguetes modernos, morteiros, lançadores degranadas e armassem recuo. " -"Ricamente ilustrado com fotografias coloridas, contém umariqueza de " -"informações." #: lang/json/BOOK_from_json.py msgid "Internal Combustion Fundamentals" @@ -19966,8 +17468,6 @@ msgid "" "A college-level textbook that details the operation, maintenance, and repair" " of internal combustion engines." msgstr "" -" Fundamentos de Combustão Interna Um livro de nível universitário " -"quedetalhaa operação, manutenção e reparo de motores de combustão interna." #: lang/json/BOOK_from_json.py msgid "army improvised field repairs" @@ -19981,9 +17481,6 @@ msgid "" "A compact manual with faded print detailing a number of improvised field " "repairs that can be made to vehicles." msgstr "" -" reparos de campo improvisados do exércitoUm manual compacto com estampa " -"desbotada detalhando uma série de reparos de campo improvisados que podem " -"ser feitos em veículos." #: lang/json/BOOK_from_json.py msgid "Popular Mechanics" @@ -19997,8 +17494,6 @@ msgid "" "A magazine about mechanical innovations. Full of entertaining articles and " "advertisements for esoteric gadgets." msgstr "" -" Popular MechanicsA revista sobre inovações mecânicas. Cheio de " -"artigosdeentretenimento e anúncios para aparelhos esotéricos." #: lang/json/BOOK_from_json.py msgid "Under the Hood" @@ -20010,7 +17505,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "An advanced mechanics manual, covering all sorts of topics." msgstr "" -" Sob o manual de mecânica avançada HoodAn, cobrindo todos os tiposdetópicos." #: lang/json/BOOK_from_json.py msgid "Biodiesel: Renewable Fuel Resource" @@ -20022,8 +17516,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A large textbook for college students about biodiesel." msgstr "" -" Biodiesel: Recurso de Combustível Renovável Um grande livro " -"paraestudantesuniversitários sobre biodiesel." #: lang/json/BOOK_from_json.py msgid "Mechanical Mastery" @@ -20037,8 +17529,6 @@ msgid "" "An advanced guide on mechanics and welding, covering topics like \"Grinding " "off rust\" and \"Making cursive E's\"." msgstr "" -" Maestria MecânicaUm guia avançado sobre mecânica e soldagem, " -"cobrindotópicos como \"Moagem de ferrugem \" e \"Fazendo E cursivos \"." #: lang/json/BOOK_from_json.py msgid "CQB Monthly" @@ -20052,8 +17542,6 @@ msgid "" "An in-depth look at various styles of close quarters fighting. There's an " "amusing essay about dirty tricks in the front section." msgstr "" -" CQB MonthlyAn olhar em profundidade em vários estilos de combate deperto. " -"Há um divertido ensaio sobre truques sujos na seção frontal." #: lang/json/BOOK_from_json.py msgid "Close Quarter Fighting Manual" @@ -20067,8 +17555,6 @@ msgid "" "A well-thumbed hardbound book which illustrates simple strategies and " "techniques for close quarters combat encounters." msgstr "" -" Close Quarter Fighting Manual Um livro de capa dura que ilustraestratégiase" -" técnicas simples para encontros de combate de perto." #: lang/json/BOOK_from_json.py msgid "Zombie Survival Guide" @@ -20082,9 +17568,6 @@ msgid "" "While this seems like it would be very useful in this situation, the sheer " "amount of misinformation present makes it practically useless." msgstr "" -" Guia de Sobrevivência de Zumbis Embora isso pareça ser muito " -"útilnessasituação, a enorme quantidade de desinformação presente " -"atornapraticamente inútil." #: lang/json/BOOK_from_json.py msgid "black box transcript" @@ -20097,8 +17580,6 @@ msgstr[1] "" msgid "" "A full flight log for a military aircraft. Nothing of interest stands out." msgstr "" -" transcrição de caixa preta Um registro de voo completo para " -"umaaeronavemilitar. Nada de interesse se destaca." #: lang/json/BOOK_from_json.py msgid "children's book" @@ -20113,10 +17594,6 @@ msgid "" " stories contained herein belong to a different time, before the dead walked" " and the world moved on." msgstr "" -" livro infantilUm livrinho para pequenos leitores. Os personagens " -"dedesenhosanimados coloridos e histórias doces contidas aqui pertencem a " -"umtempodiferente, antes que os mortos caminhassem e o mundo seguisse " -"emfrente." #: lang/json/BOOK_from_json.py msgid "Ranch Prospectus" @@ -20130,8 +17607,6 @@ msgid "" "A short paper of the economic viability of constructing an agricultural " "outpost." msgstr "" -" Ranch Prospectus Um breve artigo sobre a viabilidade econômica " -"daconstruçãode um posto avançado agrícola." #. ~ Description for standpipe maintenance log #: lang/json/BOOK_from_json.py @@ -20139,8 +17614,6 @@ msgid "" "This binder details the scheduled maintenance for several plumbing systems " "throughout the facility." msgstr "" -" Este fichário detalha a manutenção programada para vários " -"sistemasdeencanamento em toda a instalação." #: lang/json/BOOK_from_json.py msgid "book of essays" @@ -20154,8 +17627,6 @@ msgid "" "A collection of essays by various authors from around the world, including " "works by Churchill, Mailer, Eco, and Voltaire." msgstr "" -" livro de ensaiosUma coleção de ensaios de vários autores de todo omundo, " -"incluindo obras de Churchill, Mailer, Eco e Voltaire." #: lang/json/BOOK_from_json.py msgid "book of fairy tales" @@ -20169,8 +17640,6 @@ msgid "" "An amusing collection of folklore featuring the usual cast of fairies, " "goblins, and trolls." msgstr "" -" livro de contos de fadasUma divertida coleção de folclore com " -"oelencohabitual de fadas, goblins e trolls." #: lang/json/BOOK_from_json.py msgid "The Hitchhiker's Guide to the Cataclysm" @@ -20184,8 +17653,6 @@ msgid "" "Inscribed on the cover in large, friendly letters, is the message \"Don't " "Panic\"." msgstr "" -" O Guia do Mochileiro do Cataclismo Inscrito na capa em letras " -"grandeseamigáveis, está a mensagem\"Não entre em pânico\"." #: lang/json/BOOK_from_json.py msgid "Mycenacean Hymns" @@ -20212,8 +17679,6 @@ msgid "" "An English translation of the Christian Bible, which originated in England " "in the early 1600s." msgstr "" -" Bíblia King James Tradução inglesa da Bíblia cristã, que se " -"originounaInglaterra no início dos anos 1600." #: lang/json/BOOK_from_json.py msgid "Eastern Orthodox Bible" @@ -20225,8 +17690,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "An English copy of the Eastern Orthodox translation of The Holy Bible." msgstr "" -" Bíblia Ortodoxa Oriental Uma cópia em inglês da tradução ortodoxaorientalda" -" Bíblia Sagrada." #: lang/json/BOOK_from_json.py msgid "Gideon Bible" @@ -20240,8 +17703,6 @@ msgid "" "An English translation of the Christian Bible, distributed free of charge by" " Gideons International." msgstr "" -" Bíblia de Gideão Uma tradução inglesa da Bíblia " -"cristã,distribuídagratuitamente pela Gideons International." #: lang/json/BOOK_from_json.py msgid "The Guru Granth Sahib" @@ -20253,8 +17714,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A single-volume copy of the central religious texts of Sikhism." msgstr "" -" O Guru Granth SahibUma cópia em um único volume dos " -"textosreligiososcentrais do sikhismo." #: lang/json/BOOK_from_json.py msgid "Hadith" @@ -20268,8 +17727,6 @@ msgid "" "A Muslim religious text containing an account of the sayings and actions of " "the prophet Muhammad." msgstr "" -" Hadith Um texto religioso muçulmano contendo um relato dos ditos e " -"açõesdoprofeta Maomé." #: lang/json/BOOK_from_json.py msgid "Principia Discordia" @@ -20284,10 +17741,6 @@ msgid "" "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 "" -" Principia Discordia Um livro que incorpora as principais " -"crençasdoDiscordianismo. Parece preocupar-se principalmente com o caos, " -"eapresentaum cartão nas costas que informa que você é agora um\"Papa " -"genuínoeautorizado da Discórdia\"." #: lang/json/BOOK_from_json.py msgid "The Kojiki" @@ -20301,9 +17754,6 @@ 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 "" -" O Kojiki A mais antiga crônica existente dos mitos e da história doJapão, " -"as histórias contidas no Kojiki são parte da inspiração por trásdaspráticas " -"xintoístas." #: lang/json/BOOK_from_json.py msgid "The Book of Mormon" @@ -20317,8 +17767,6 @@ msgid "" "The sacred text of the Latter Day Saint movement of Christianity, originally" " published in 1830 by Joseph Smith." msgstr "" -" O Livro de Mórmon O texto sagrado do Movimento dos Últimos " -"DiasdoCristianismo, originalmente publicado em 1830 por Joseph Smith." #: lang/json/BOOK_from_json.py msgid "The Gospel of the Flying Spaghetti Monster" @@ -20333,10 +17781,6 @@ msgid "" "Monster. It seems to involve a lot of pirates and some sort of invisible " "drunken monster made of pasta." msgstr "" -" O Evangelho do Monstro de Espaguete VoadorUm livro que " -"incorporaasprincipais crenças da Igreja do Monstro de Espaguete Voador. " -"Pareceenvolver muitos piratas e algum tipo de monstro bêbado invisívelfeito " -"demacarrão." #: lang/json/BOOK_from_json.py msgid "Quran" @@ -20350,8 +17794,6 @@ msgid "" "An English translation of the Muslim book of holy scriptures, with " "explanatory notes and commentaries to aid in understanding." msgstr "" -" Alcorão Tradução em inglês do livro muçulmano de escrituras sagradas, " -"comnotas explicativas e comentários para ajudar na compreensão." #: lang/json/BOOK_from_json.py msgid "Dianetics" @@ -20366,9 +17808,6 @@ msgid "" "fiction author, it contains self-improvement techniques and musings on " "psychology called Dianetics." msgstr "" -" DianéticaEste livro é o texto canônico de Scientology. Escrito por " -"umautorde ficção científica, contém técnicas de auto-aperfeiçoamento " -"ereflexõessobre psicologia chamada Dianética." #: lang/json/BOOK_from_json.py msgid "The Book of the SubGenius" @@ -20382,8 +17821,6 @@ 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 "" -" O livro do SubGenius Um livro sobre a Igreja do SubGenius. Pareceenvolverum" -" vendedor chamado JR \"Bob \" Dobbs e um conceitochamado'folga'." #: lang/json/BOOK_from_json.py msgid "The Sutras of the Buddha" @@ -20396,8 +17833,6 @@ msgstr[1] "" msgid "" "A collection of discourses attributed to the Buddha and his close disciples." msgstr "" -" Os Sutras do Buda Uma coleção de discursos atribuídos ao Buda " -"eseusdiscípulos próximos." #: lang/json/BOOK_from_json.py msgid "Talmud" @@ -20411,8 +17846,6 @@ 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 "" -" TalmudUm dos textos centrais do judaísmo rabínico, o Talmud expõe " -"aBíbliahebraica com ensinamentos e opiniões de milhares de rabinos." #: lang/json/BOOK_from_json.py msgid "Tanakh" @@ -20425,7 +17858,6 @@ msgstr[1] "" msgid "" "A single-volume book containing the complete canon of the Jewish Bible." msgstr "" -" Tanakh Um livro de volume único contendo o cânon completo da Bíbliajudaica." #: lang/json/BOOK_from_json.py msgid "The Tripitaka" @@ -20439,8 +17871,6 @@ msgid "" "A collection of sacred Buddhist writings describing their canons of " "scriptures." msgstr "" -" A coleção TripitakaA de escritos sagrados budistas descrevendo " -"seuscânonesde escrituras." #: lang/json/BOOK_from_json.py msgid "The Upanishads" @@ -20454,8 +17884,6 @@ msgid "" "A collection of sacred Hindu writings regarding the nature of reality and " "describing the character and form of human salvation." msgstr "" -" A coleção UpanishadsA de escritos sagrados hindus sobre a " -"naturezadarealidade e descrevendo o caráter e a forma da salvação humana." #: lang/json/BOOK_from_json.py msgid "The Four Vedas" @@ -20469,8 +17897,6 @@ msgid "" "A single volume containing all four Vedas, which are the oldest scriptures " "of Hinduism." msgstr "" -" Os quatro Vedas Um único volume contendo todos os quatro Vedas, que " -"sãoasescrituras mais antigas do hinduísmo." #: lang/json/BOOK_from_json.py msgid "comic book" @@ -20481,7 +17907,7 @@ msgstr[1] "" #. ~ Description for comic book #: lang/json/BOOK_from_json.py msgid "A super-hero comic." -msgstr "Quadrinhos bookA super-hero comic." +msgstr "" #: lang/json/BOOK_from_json.py msgid "Computer Gaming" @@ -20494,8 +17920,6 @@ msgstr[1] "" msgid "" "Reviews of recently released computer games and previews of upcoming titles." msgstr "" -" Jogos de computadorAvaliações de jogos de computador lançados " -"recentementeeprévias de títulos futuros." #: lang/json/BOOK_from_json.py msgid "TIME magazine" @@ -20507,8 +17931,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Current events concerning a bunch of people who're all (un)dead now." msgstr "" -" TIME magazineEventos atuais sobre um grupo de pessoas que estão " -"todas(in)mortas agora." #: lang/json/BOOK_from_json.py msgid "Playboy" @@ -20519,7 +17941,7 @@ msgstr[1] "" #. ~ Description for Playboy #: lang/json/BOOK_from_json.py msgid "You can read it for the articles. Or not." -msgstr "PlayboyVocê pode ler para os artigos. Ou não." +msgstr "" #: lang/json/BOOK_from_json.py msgid "frequency list" @@ -20531,7 +17953,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A notepad with a number of frequencies scribbled on it." msgstr "" -" Lista de frequênciasUm bloco de notas com várias frequências escritas nele." #: lang/json/BOOK_from_json.py msgid "Rural Digest-Examiner" @@ -20546,9 +17967,6 @@ msgid "" "snowstorms and several letters to the editor concerning the community " "response." msgstr "" -" Examiner Digest RuralUma revista semanal cobrindo eventos regionais. " -"Háumartigo sobre as tempestades de neve do inverno e várias cartas " -"aoeditorsobre a resposta da comunidade." #: lang/json/BOOK_from_json.py msgid "adventure novel" @@ -20562,9 +17980,6 @@ msgid "" "The stirring tale of a race against time, in search of a lost city located " "in the dark heart of the African continent." msgstr "" -" romance de aventuraO conto emocionante de uma corrida contra o tempo, " -"embusca de uma cidade perdida localizada no coração escuro " -"docontinenteafricano." #: lang/json/BOOK_from_json.py msgid "buddy novel" @@ -20578,8 +17993,6 @@ msgid "" "A gripping tale of two friends struggling to survive on the streets of New " "York City." msgstr "" -" novela de amigoUma história emocionante de dois amigos " -"lutandoparasobreviver nas ruas de Nova York." #: lang/json/BOOK_from_json.py msgid "coming of age novel" @@ -20593,8 +18006,6 @@ msgid "" "A classic tale about growing up, portraying one young man's funny and " "poignant experiences with life, love, and sex." msgstr "" -" Um conto clássico sobre crescer, retratando experiências " -"engraçadasepungentes de um jovem com a vida, o amor e o sexo." #. ~ Description for coming of age novel #: lang/json/BOOK_from_json.py @@ -20602,8 +18013,6 @@ msgid "" "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." msgstr "" -" Um romance gráfico sobre uma jovem que vive no Irã durante os anos " -"80,vendoo mundo mudar ao seu redor enquanto o Iraque invadiu seu país." #: lang/json/BOOK_from_json.py msgid "crime novel" @@ -20617,9 +18026,6 @@ msgid "" "After their diamond heist goes wrong, the surviving criminals begin to " "suspect that one of them is a police informant." msgstr "" -" Depois de seu roubo de diamantes dar errado, os " -"criminosossobreviventescomeçam a suspeitar que um deles é um informante da " -"polícia." #. ~ Description for crime novel #: lang/json/BOOK_from_json.py @@ -20628,9 +18034,6 @@ msgid "" "an upper-class man, and a psychopath, eventually banding together to pull-" "off the biggest heist in the city's history" msgstr "" -" Uma história sobre três pessoas na cidade fictícia de Los Santos, " -"umgângster, um homem de classe alta e um psicopata, eventualmente " -"seunindopara fazer o maior assalto da história da cidade." #: lang/json/BOOK_from_json.py msgid "drama novel" @@ -20641,7 +18044,7 @@ msgstr[1] "" #. ~ Description for drama novel #: lang/json/BOOK_from_json.py msgid "A real book for real adults." -msgstr "novela de dramaUm livro real para adultos reais." +msgstr "" #: lang/json/BOOK_from_json.py msgid "erotic novel" @@ -20653,8 +18056,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Hackneyed narrative concealing low-grade literary smut." msgstr "" -" novela eróticaNarrativa empenhada escondendo obscenidade literária " -"debaixograu." #: lang/json/BOOK_from_json.py msgid "experimental novel" @@ -20668,8 +18069,6 @@ msgid "" "A bizarre play about the philosophy of existential absurdity. Or maybe it's" " about two guys waiting for their friend to show up. It's confusing." msgstr "" -" romance experimentalUm jogo bizarro sobre a filosofia doabsurdoexistencial." -" Ou talvez seja sobre dois caras esperando que seuamigoapareça. É confuso." #: lang/json/BOOK_from_json.py msgid "fantasy novel" @@ -20680,7 +18079,7 @@ msgstr[1] "" #. ~ Description for fantasy novel #: lang/json/BOOK_from_json.py msgid "Basic sword & sorcery." -msgstr "fantasy novelBasic sword & feitiçaria." +msgstr "" #: lang/json/BOOK_from_json.py msgid "horror novel" @@ -20692,8 +18091,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Maybe not the best reading material considering the situation." msgstr "" -" novela de horror Talvez não seja o melhor material de leitura " -"considerandoasituação." #: lang/json/BOOK_from_json.py msgid "mystery novel" @@ -20705,8 +18102,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A detective investigates an unusual murder in a secluded location." msgstr "" -" mistério novelA detetive investiga um assassinato incomum em " -"umlocalisolado." #: lang/json/BOOK_from_json.py msgid "pulp novel" @@ -20719,8 +18114,6 @@ msgstr[1] "" msgid "" "A hardboiled detective tale filled with hard hitting action and intrigue." msgstr "" -" novela de polpa Um conto de detetive hardboiled cheio com ação de " -"baterduroe intriga." #: lang/json/BOOK_from_json.py msgid "road novel" @@ -20734,8 +18127,6 @@ msgid "" "A tale about a group of friends who wander the USA in the 1960s against a " "backdrop of jazz, poetry and drug use." msgstr "" -" road novel Um conto sobre um grupo de amigos que vagam pelos EUA nadécadade" -" 1960 em um cenário de jazz, poesia e uso de drogas." #: lang/json/BOOK_from_json.py msgid "romance novel" @@ -20746,7 +18137,7 @@ msgstr[1] "" #. ~ Description for romance novel #: lang/json/BOOK_from_json.py msgid "Drama and mild smut." -msgstr "novela de romanceDrama e obscenidade moderada." +msgstr "" #: lang/json/BOOK_from_json.py msgid "samurai novel" @@ -20761,9 +18152,6 @@ msgid "" "and is hired to help the townsfolk defend themselves from a band of " "marauding outlaws." msgstr "" -" O conto clássico de um espadachim errante que chega a um pequeno povoado " -"eécontratado para ajudar os habitantes da cidade a se defenderem de " -"umbandode bandidos saqueadores." #: lang/json/BOOK_from_json.py msgid "satire novel" @@ -20777,8 +18165,6 @@ msgid "" "A political satire of the pre-apocalypse world. Looking back on it from " "this side of Armageddon makes it seem all the more ridiculous." msgstr "" -" Sátira novela Uma sátira política do mundo pré-apocalíptico. " -"Olhandoparatrás deste lado do Armagedom, isso parece ainda mais ridículo." #: lang/json/BOOK_from_json.py msgid "scifi novel" @@ -20789,7 +18175,7 @@ msgstr[1] "" #. ~ Description for scifi novel #: lang/json/BOOK_from_json.py msgid "Aliens, ray guns, and space ships." -msgstr "scifi novelAliens, armas de raios e naves espaciais." +msgstr "" #: lang/json/BOOK_from_json.py msgid "sports novel" @@ -20804,10 +18190,6 @@ msgid "" "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 "" -" novela de esportes O conto dramático de um boxeador de pequeno porte " -"quetemuma rara chance de lutar contra o campeão dos pesos pesados, " -"eaproveitarsua única chance de fazer uma vida melhor para si mesmo, " -"enquantoimpressiona a linda garota que trabalha na loja de animais." #: lang/json/BOOK_from_json.py msgid "spy novel" @@ -20820,8 +18202,6 @@ msgstr[1] "" msgid "" "A tale of intrigue and espionage amongst Nazis, no, Commies, no, Iraqis!" msgstr "" -" Um conto de intrigas e espionagem entre os nazistas, não, comunistas, não, " -"iraquianos!" #: lang/json/BOOK_from_json.py msgid "swashbuckling novel" @@ -20836,9 +18216,6 @@ msgid "" " comrades-in-chains escape and become heroic pirates of the Robin Hood " "variety." msgstr "" -" novela fanfarronaUma história empolgante do século XVII sobre como " -"ummédicoirlandês escravo e seus companheiros de cadeia escapam e se " -"tornamheróicospiratas da variedade Robin Hood." #: lang/json/BOOK_from_json.py msgid "thriller novel" @@ -20849,7 +18226,7 @@ msgstr[1] "" #. ~ Description for thriller novel #: lang/json/BOOK_from_json.py msgid "A suspenseful tale of betrayal and revenge." -msgstr "thriller novelA conto de suspense de traição e vingança." +msgstr "" #: lang/json/BOOK_from_json.py msgid "tragedy novel" @@ -20863,8 +18240,6 @@ msgid "" "The story of two young lovers whose feuding families threaten to keep them " "apart." msgstr "" -" novela da tragédiaA história de dois jovens amantes cujas " -"famíliasameaçamsepará-los." #: lang/json/BOOK_from_json.py msgid "war novel" @@ -20879,9 +18254,6 @@ msgid "" "Second World War, filled with riveting subplots about rat farming and " "dysentery." msgstr "" -" war novelA Uma emocionante narrativa de sobrevivência em um campo de " -"prisioneiros de guerra durante a Segunda Guerra Mundial, repleta de " -"fascinantes subtramas sobre criação de ratos e disenteria." #. ~ Description for war novel #: lang/json/BOOK_from_json.py @@ -20889,8 +18261,6 @@ msgid "" "A story about a Bosnian citizen who goes through many hardships and near " "death during the breakup of Yugoslavia." msgstr "" -" Uma história sobre um cidadão bósnio que passa por muitas " -"dificuldadesequase morre durante o colapso da Iugoslávia." #: lang/json/BOOK_from_json.py msgid "western novel" @@ -20905,9 +18275,6 @@ msgid "" "and is hired to help the townsfolk defend themselves from a band of " "marauding outlaws." msgstr "" -" O conto clássico de um estranho armado que chega a um pequeno povoado " -"eécontratado para ajudar o povo da cidade a se defender de um " -"bandodebandidos saqueadores." #: lang/json/BOOK_from_json.py msgid "book of philosophy" @@ -20920,8 +18287,6 @@ msgstr[1] "" msgid "" "A deep discussion of morality with an emphasis on epistemology and logic." msgstr "" -" livro de filosofiaUma discussão profunda da moralidade com " -"ênfaseemepistemologia e lógica." #: lang/json/BOOK_from_json.py msgid "phone book" @@ -20936,9 +18301,6 @@ msgid "" " and utilities in the nearby area, pretty useless during the apocalypse and " "all." msgstr "" -" Este volume robusto contém os números de telefone de indivíduos, " -"empresaseutilitários na área próxima, bastante inútil durante o apocalipse e" -" tudo." #: lang/json/BOOK_from_json.py msgid "photo album" @@ -20953,9 +18315,6 @@ msgid "" "the people in them, but seeing these pictures still makes you think of " "happier times." msgstr "" -" álbum de fotos Um álbum de couro cheio de fotos da família de alguém. " -"Vocênão conhece nenhuma das pessoas nelas, mas ver essas fotos ainda " -"fazvocêpensar em tempos mais felizes." #: lang/json/BOOK_from_json.py msgid "book of plays" @@ -20969,8 +18328,6 @@ msgid "" "A collection of plays by various authors from around the world, including " "scripts by Wilde, Beckett, Checkov, and Shakespeare." msgstr "" -" book of plays Uma coleção de peças de vários autores de todo omundo, " -"incluindo roteiros de Wilde, Beckett, Checkov e Shakespeare." #: lang/json/BOOK_from_json.py msgid "book of poetry" @@ -20984,8 +18341,6 @@ msgid "" "A collection of poetry by various authors from around the world, including " "writings by Dickinson, Goethe, Thoreau, and Yeats." msgstr "" -" book of poetryUma coleção de poesias de vários autores de todo omundo, " -"incluindo escritos de Dickinson, Goethe, Thoreau e Yeats." #: lang/json/BOOK_from_json.py msgid "priest's diary" @@ -20996,7 +18351,7 @@ msgstr[1] "" #. ~ Description for priest's diary #: lang/json/BOOK_from_json.py msgid "A small book filled with journal entries in Latin." -msgstr "Diário do padreUm pequeno livro cheio de anotações em latim." +msgstr "" #: lang/json/BOOK_from_json.py msgid "corporate accounting ledger" @@ -21008,8 +18363,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "If you knew what to look for something might stand out..." msgstr "" -" contabilidade corporativa Se você soubesse o que procurar algo " -"podesedestacar ..." #: lang/json/BOOK_from_json.py msgid "patient treatment records" @@ -21021,8 +18374,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A massive stack of medical records that contain every gory detail." msgstr "" -" registros de tratamento de pacientes Uma pilha enorme de " -"registrosmédicosque contêm todos os detalhes sangrentos." #: lang/json/BOOK_from_json.py msgid "national weather transcripts" @@ -21034,8 +18385,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Old weather records are about as interesting as a rock." msgstr "" -" Transcrições do tempo nacional Os registros antigos do tempo " -"sãotãointeressantes quanto uma rocha." #: lang/json/BOOK_from_json.py msgid "big book of short stories" @@ -21049,9 +18398,6 @@ msgid "" "This humongous volume contains a vast collection of short stories by " "different authors, spanning a wide variety of topics and genres." msgstr "" -" grande livro de histórias curtasEste enorme volume contém uma " -"vastacoleçãode contos de diferentes autores, abrangendo uma ampla variedade " -"detópicose gêneros." #: lang/json/BOOK_from_json.py msgid "book of tall tales" @@ -21065,9 +18411,6 @@ msgid "" "An entertaining collection of early American folklore, featuring tales of " "larger than life individuals and their amazing adventures." msgstr "" -" livro de contos altosUma coleção divertida do folclore americanoprimitivo, " -"apresentando contos de indivíduos maiores que a vida e " -"suasincríveisaventuras." #: lang/json/BOOK_from_json.py msgid "Visions in Solitude" @@ -21079,8 +18422,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A small book detailing 'visions' a prisoner had on death row." msgstr "" -" Visions in SolitudeUm pequeno livro detalhando\"visões\" de umprisioneirono" -" corredor da morte." #: lang/json/BOOK_from_json.py msgid "Hávamál" @@ -21095,9 +18436,6 @@ msgid "" "proverbs and stories attributed to the god Odin, many transcribed from oral " "history." msgstr "" -" HávamálAn Tradução inglesa de vários poemas nórdicos antigos. " -"Ospoemascontêm provérbios e histórias atribuídas ao deus Odin, " -"muitostranscritosda história oral." #: lang/json/BOOK_from_json.py msgid "book of classic literature" @@ -21418,8 +18756,6 @@ msgid "" "A glossy magazine all about handguns and shooting. There is a good article " "about proper sighting near the middle." msgstr "" -" Tactical Handgun DigestA revista brilhante tudo sobre armas de fogo etiro. " -"Há um bom artigo sobre o avistamento correto perto do meio." #: lang/json/BOOK_from_json.py msgid "The Tao of the Handgun" @@ -21433,9 +18769,6 @@ msgid "" "This introspective volume covers proper usage of handguns, from safety and " "stance, to maintenance and proper sighting technique." msgstr "" -" O Tao da Arma Este volume introspectivo cobre o uso adequado de " -"armasdefogo, desde a segurança e postura, até a manutenção e a " -"técnicadeobservação adequada." #: lang/json/BOOK_from_json.py msgid "Modern Rifleman" @@ -21449,8 +18782,6 @@ msgid "" "An informative magazine all about rifles and shooting. There is an " "excellent article about proper maintenance in this issue." msgstr "" -" Modern Rifleman Uma revista informativa sobre rifles e tiros. " -"Existeumexcelente artigo sobre manutenção adequada nesta edição." #: lang/json/BOOK_from_json.py msgid "FM 23-16 Army marksmanship manual" @@ -21464,9 +18795,6 @@ msgid "" "A hefty military field manual about automatic rifle usage and techniques " "which improve marksmanship and proper weapons-handling." msgstr "" -" FM 23-16 Manual de tiro ao alvo do ExércitoUm robusto manual decampomilitar" -" sobre o uso de rifles automáticos e técnicas que melhoramapontaria e o " -"manejo adequado de armas." #: lang/json/BOOK_from_json.py msgid "Trap and Field" @@ -21480,8 +18808,6 @@ msgid "" "An in-depth magazine all about shotguns and shooting. There is an " "informative article about proper shooting stance in the back pages." msgstr "" -" Trap and FieldUma revista detalhada sobre espingardas e tiro. Há " -"umartigoinformativo sobre a postura correta de tiro nas páginas anteriores." #: lang/json/BOOK_from_json.py msgid "Shotguns: The art and science" @@ -21495,9 +18821,6 @@ 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 "" -" Espingardas: A arte e a ciênciaEste livro alega tratar de todos " -"osproblemasque a arma de fogo provavelmente enfrentará e oferece " -"soluçõespara garantirque os atiradores possam fazer valer cada tiro." #: lang/json/BOOK_from_json.py msgid "Submachine Gun Enthusiast" @@ -21511,8 +18834,6 @@ msgid "" "An in-depth magazine about submachine guns and shooting. There is an " "exhaustive article about close quarter combat techniques in the front." msgstr "" -" Enthusiast Gun Enthusiast Uma revista detalhada sobre metralhadoras etiro. " -"Há um artigo exaustivo sobre as técnicas de combate próximo na frente." #: lang/json/BOOK_from_json.py msgid "The Submachine Gun Handbook" @@ -21527,10 +18848,6 @@ msgid "" "machine pistols and submachine guns currently used by regular armed and " "reserve forces as well as several obsolete weapons." msgstr "" -" Manual da Arma Submetralhadora Este guia conciso detalha os " -"cuidadoseoperações corretos da maioria das formas de pistolas- " -"metralhadorasemetralhadoras usadas atualmente pelas forças armadas e de " -"reserva, bemcomopor várias armas obsoletas." #: lang/json/BOOK_from_json.py msgid "US Weekly" @@ -21542,8 +18859,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Weekly news about a bunch of famous people who're all (un)dead now." msgstr "" -" EUA WeeklyWeekly notícias sobre um grupo de pessoas famosas que " -"estãotodas(in) mortas agora." #: lang/json/BOOK_from_json.py msgid "Self-Esteem for Dummies" @@ -21555,8 +18870,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "Full of useful tips for showing confidence in your speech." msgstr "" -" Self-Esteem for DummiesFull de dicas úteis para mostrar confiança " -"emseudiscurso." #: lang/json/BOOK_from_json.py msgid "Principles of Effective Communication" @@ -21568,8 +18881,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A hardbound book devoted to being an effective and persuasive speaker." msgstr "" -" Princípios da Comunicação Eficaz Um livro de capa dura dedicado a " -"serumorador eficaz e persuasivo." #: lang/json/BOOK_from_json.py msgid "Dungeon Master's Guide: 6th Edition" @@ -21584,9 +18895,6 @@ msgid "" " It's full of information, but finding the things you're looking for can be" " a chore." msgstr "" -" Guia do Mestre: 6ª EdiçãoGrande volume de capa dura com tudo o " -"queénecessário para tecer histórias lendárias. É cheio de informações, " -"masencontrar as coisas que você está procurando pode ser uma tarefadifícil." #: lang/json/BOOK_from_json.py msgid "Duelist's Annual" @@ -21600,8 +18908,6 @@ msgid "" "An annual publication about fencing and dueling. There are many good " "illustrations which describe proper technique and form." msgstr "" -" Anuário dos Duelistas Uma publicação anual sobre esgrima e duelo. " -"Hámuitasboas ilustrações que descrevem a técnica e a forma adequadas." #: lang/json/BOOK_from_json.py msgid "FM 23-25 Army bayonet manual" @@ -21613,8 +18919,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A hefty military field manual about bayonet usage and combat theory." msgstr "" -" FM 23-25 Manual de baioneta do ExércitoUm robusto manual de " -"campomilitarsobre o uso de baionetas e teoria de combate." #: lang/json/BOOK_from_json.py msgid "Survival Under Atomic Attack" @@ -21630,11 +18934,6 @@ msgid "" "wrote this was a terrible writer, and gleaning knowledge from the rants is a" " chore." msgstr "" -" Sobrevivência sob ataque atômico Um guia prolixo e intrincado para " -"avidaselvagem e a sobrevivência urbana no pior cenário possível. " -"Emborapreenchido com um monte de informações úteis, o louco que escreveuisso" -" foium escritor terrível, e recolher o conhecimento dos discursos é " -"umatarefaárdua." #: lang/json/BOOK_from_json.py msgid "Through the Lens" @@ -21649,9 +18948,6 @@ msgid "" "photos are beautiful, though the terminology in the sections on " "survivalcraft assume some proficiency." msgstr "" -" Através do resumo colorido LensA dedicado à fotografia de mochila edeserto." -" As fotos são lindas, embora a terminologia nas seções " -"sobresurvivalcraftassuma alguma proficiência." #: lang/json/BOOK_from_json.py msgid "Alpha Male Quarterly" @@ -21666,10 +18962,6 @@ msgid "" "hiking and a list of simple wilderness survival tips somewhere in between " "the photos of bikini-clad women and the gadget advertisements." msgstr "" -" Alpha Male QuarterlyEsta é uma revista masculina brilhante em tamanhoreal. " -"Há um breve artigo sobre caminhadas e uma lista de dicas " -"simplesdesobrevivência em algum lugar entre as fotos de mulheres de biquíni " -"easpropagandas de gadgets." #: lang/json/BOOK_from_json.py msgid "Outdoor Adventures" @@ -21683,8 +18975,6 @@ msgid "" "A glossy magazine about surviving and hunting in the wilderness. There's an" " exciting article about a bear attack in the back pages." msgstr "" -" Outdoor AdventuresUma revista brilhante sobre sobreviver e caçar nodeserto." -" Há um artigo emocionante sobre um ataque de urso nas últimaspáginas." #: lang/json/BOOK_from_json.py msgid "Pitching a Tent" @@ -21696,8 +18986,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A guide detailing the basics of woodsmanship and outdoor survival." msgstr "" -" Pitching a Tent Um guia detalhando os conceitos básicos de manejoflorestale" -" sobrevivência ao ar livre." #: lang/json/BOOK_from_json.py msgid "Pocket Survival Guide" @@ -21712,9 +19000,6 @@ msgid "" "information with simple to follow instructions and easy to read " "illustrations." msgstr "" -" Pocket Survival GuideEste guia de sobrevivência com encadernação em " -"courodebolso combina uma riqueza de informações concisas com " -"instruçõessimplespara seguir e fáceis de ler." #: lang/json/BOOK_from_json.py msgid "Autobiography of a Mountain Man" @@ -21729,9 +19014,6 @@ msgid "" "in the wild, potentially containing great insights for an experienced " "outdoorsman." msgstr "" -" Autobiografia de um Homem da Montanha Um divertido romance " -"históricorepletode descrições detalhadas de sobrevivência na natureza, " -"potencialmentecontendo grandes insights para um experiente homem do arlivre." #: lang/json/BOOK_from_json.py msgid "Outdoor Survival Guide" @@ -21745,9 +19027,6 @@ msgid "" "A thick soft-cover book filled with vital information about surviving in the" " wild, aimed at the experienced backpacker." msgstr "" -" Guia de Sobrevivência ao Ar Livre Um livro de capa mole e grossa, " -"repletodeinformações vitais sobre como sobreviver na natureza, " -"direcionadoaomochileiro experiente." #: lang/json/BOOK_from_json.py msgid "Swim Planet" @@ -21758,7 +19037,7 @@ msgstr[1] "" #. ~ Description for Swim Planet #: lang/json/BOOK_from_json.py msgid "The world's leading resource about aquatic sports." -msgstr "Swim PlanetThe recurso líder mundial sobre esportes aquáticos." +msgstr "" #: lang/json/BOOK_from_json.py msgid "Water Survival Training Field Manual" @@ -21772,10 +19051,6 @@ msgid "" "A commercially produced survival guide that details swimming and deep water " "survival techniques tailored to emergency scenarios." msgstr "" -" Manual de Campo de Treinamento de Sobrevivência em Água Um " -"guiadesobrevivência produzido comercialmente que detalha as " -"técnicasdesobrevivência em natação e águas profundas adaptadas a " -"cenáriosdeemergência." #: lang/json/BOOK_from_json.py msgid "Boston AnimeCon magazine" @@ -21790,9 +19065,6 @@ msgid "" "AnimeCon. A few costume ideas are intermixed with miscellaneous information" " about the event." msgstr "" -" Revista BostonConcon Uma pequena revista impressa como propaganda " -"doagoracancelado Boston AnimeCon. Algumas idéias de figurinos são " -"misturadascomdiversas informações sobre o evento." #: lang/json/BOOK_from_json.py msgid "Beauty Magazine" @@ -21807,9 +19079,6 @@ msgid "" "patterns and basic sewing tips somewhere in between the fashion photos and " "the makeup advertisements." msgstr "" -" Beauty MagazineEsta é uma revista feminina de tamanho brilhante. " -"Existemalguns padrões simples e dicas básicas de costura em algum lugarentre" -" asfotos de moda e os anúncios de maquiagem." #: lang/json/BOOK_from_json.py msgid "Sew Awesome Monthly" @@ -21823,8 +19092,6 @@ msgid "" "A well presented monthly magazine all about knitting, crocheting, and " "needlepoint. Filled with ideas and project patterns." msgstr "" -" Sew Awesome Monthly Uma revista mensal bem apresentada sobre tricô, " -"crochêebordado. Cheio de idéias e padrões de projeto." #: lang/json/BOOK_from_json.py msgid "Sew What? Clothing!" @@ -21835,7 +19102,7 @@ msgstr[1] "" #. ~ Description for Sew What? Clothing! #: lang/json/BOOK_from_json.py msgid "A colorful book about tailoring." -msgstr "Costurar o que? Roupas! Um livro colorido sobre alfaiataria." +msgstr "" #: lang/json/BOOK_from_json.py msgid "clothing designer's portfolio" @@ -21850,9 +19117,6 @@ msgid "" " with sketches and notes, a skilled tailor could learn a lot from this " "volume." msgstr "" -" portfolio de designers de roupasUma carteira com capa de couro " -"quejápertenceu a um designer de roupas. Cheio de esboços e anotações, " -"umalfaiate qualificado poderia aprender muito com esse volume." #: lang/json/BOOK_from_json.py msgid "Traditional Japanese Kimono" @@ -21879,11 +19143,6 @@ msgid "" "cover proudly states that the book is printed and distributed by the Gryphon" " Animal Rights Organization." msgstr "" -" Friendly, Humane Fashion Um livro educacional detalhando os usos " -"dapelefalsa, bem como seus benefícios e desvantagens. A prosa " -"ébastanteapaixonada, e uma declaração na capa afirma orgulhosamente que " -"olivro éimpresso e distribuído pela Organização dos Direitos dos " -"AnimaisdeGryphon." #: lang/json/BOOK_from_json.py msgid "Sewing Techniques for Designers" @@ -21897,8 +19156,6 @@ msgid "" "A massive, hardbound book full of a wealth of information for the " "professional clothing designer." msgstr "" -" Técnicas de Costura para Designers Um livro de capa dura cheiodeinformações" -" para o designer de roupas profissionais." #: lang/json/BOOK_from_json.py msgid "Diskobolus" @@ -21910,8 +19167,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A biannual magazine devoted to the art and science of discus-throwing." msgstr "" -" Diskobolus Uma revista semestral dedicada à arte e à ciência do " -"arremessodedisco." #: lang/json/BOOK_from_json.py msgid "The Complete Guide to Pitching" @@ -21925,9 +19180,6 @@ msgid "" "A detailed guide for baseball pitchers that combines time-tested techniques " "and information mixed with a common sense approach to pitching." msgstr "" -" O Guia Completo para PitchingUm guia detalhado para lançadores " -"debeisebolque combina técnicas testadas pelo tempo e informações " -"misturadascom umaabordagem de senso comum para pitching." #: lang/json/BOOK_from_json.py msgid "How to Trap Anything" @@ -21940,8 +19192,6 @@ msgstr[1] "" msgid "" "A worn manual that describes how to set and disarm a wide variety of traps." msgstr "" -" How to Trap Anything Um manual usado que descreve como definir edesarmaruma" -" grande variedade de armadilhas." #: lang/json/BOOK_from_json.py msgid "Trapper's Life" @@ -21955,8 +19205,6 @@ msgid "" "An in-depth magazine about trapping game. There are lots of articles and " "diagrams that explain simple trap designs." msgstr "" -" Vida do caçador Uma revista detalhada sobre o jogo de armadilhas. " -"Hámuitosartigos e diagramas que explicam os projetos simples de armadilhas." #: lang/json/BOOK_from_json.py msgid "The Modern Trapper" @@ -21968,8 +19216,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "An extensive volume that details numerous methods of trapping game." msgstr "" -" The Modern Trapper Um extenso volume que detalha numerosos " -"métodosdetrapping game." #: lang/json/BOOK_from_json.py msgid "The Compleat Trapper" @@ -21983,8 +19229,6 @@ msgid "" "An in-depth book about trapping game animals, covering methods both modern " "and ancient." msgstr "" -" The Compleat Trapper Um livro detalhado sobre caça de animais decaça, " -"cobrindo métodos modernos e antigos." #: lang/json/BOOK_from_json.py msgid "The Trapper's Companion" @@ -21999,10 +19243,6 @@ msgid "" "depth for the beginner, it can provide a wealth of information to a " "knowledgeable trapper." msgstr "" -" The Trapper's CompanionUm guia folclórico para capturar o " -"jogoselvagemusando métodos testados pelo tempo. Um pouco aprofundado para " -"oiniciante, ele pode fornecer uma riqueza de informações para um " -"caçadorconhecedor." #: lang/json/BOOK_from_json.py msgid "Boxing Monthly" @@ -22016,8 +19256,6 @@ msgid "" "An exciting monthly magazine about boxing. There are lots of large, " "colorful photos of pugilistic exploits." msgstr "" -" Boxe Mensal Uma revista mensal emocionante sobre o boxe. Há " -"muitasfotosgrandes e coloridas de façanhas pugilísticas." #: lang/json/BOOK_from_json.py msgid "101 Wrestling Moves" @@ -22032,9 +19270,6 @@ msgid "" "spiral- bound paper. Still, there are lots of useful tips for unarmed " "combat." msgstr "" -" 101 Wrestling MovesIsto parece ser um manual de luta livre, malfotocopiadoe" -" lançado em papel encadernado em espiral. Ainda assim, existemmuitasdicas " -"úteis para o combate desarmado." #: lang/json/BOOK_from_json.py msgid "Readable magazine" @@ -22148,9 +19383,6 @@ msgid "" "A book detailing the workings of state of the art atomic technology, and the" " physics behind it" msgstr "" -" Revista legívelFísica nuclear feita fácilUm livro detalhando " -"ofuncionamentoda tecnologia atômica de última geração e a física por " -"trásdisso" #: lang/json/BOOK_from_json.py msgid "Case #5846, Illegal Gun Modification" @@ -22164,9 +19396,6 @@ 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 "" -" Caso # 5846, Modificação ilegal da armaEste arquivo detalha " -"asmodificaçõesilegais da arma. Talvez você possa aprender alguma coisa. " -"Pelomenos vocênão precisa se preocupar mais com a polícia." #: lang/json/BOOK_from_json.py msgid "chess set" @@ -22179,8 +19408,6 @@ msgstr[1] "" msgid "" "A wooden box containing all the equipment needed to play a game of chess." msgstr "" -" Conjunto de xadrezUma caixa de madeira contendo todo oequipamentonecessário" -" para jogar uma partida de xadrez." #: lang/json/BOOK_from_json.py msgid "checkers set" @@ -22192,8 +19419,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A wooden box containing a set of round tokens used to play checkers." msgstr "" -" checker set Uma caixa de madeira contendo um conjunto de " -"tokensredondosusados para jogar damas." #: lang/json/BOOK_from_json.py msgid "deck of cards" @@ -22204,7 +19429,7 @@ msgstr[1] "" #. ~ Description for deck of cards #: lang/json/BOOK_from_json.py msgid "A collection of 52 cards made to play poker." -msgstr "baralho de cartasUma coleção de 52 cartas feitas para jogar poker." +msgstr "" #: lang/json/BOOK_from_json.py msgid "deck of Sorcery cards" @@ -22218,9 +19443,6 @@ msgid "" "A set of cards meant to play the game \"Sorcery.\" Each card has a fun " "picture of a different monster." msgstr "" -" cards de baralho de feitiçariaUm conjunto de cartas destinadas a " -"jogarojogo\"Feitiçaria\". Cada carta tem uma imagem divertida de " -"ummonstrodiferente." #: lang/json/BOOK_from_json.py msgid "Picturesque" @@ -22233,8 +19455,6 @@ msgstr[1] "" msgid "" "A game where one draws an image, and the others attempt to guess what it is." msgstr "" -" PicturesqueUm jogo em que um desenha uma imagem e os outros " -"tentamadivinharo que é." #: lang/json/BOOK_from_json.py msgid "Capitalism" @@ -22248,8 +19468,6 @@ msgid "" "A game where players traverse around the board buying property and swindling" " their friends." msgstr "" -" CapitalismoUm jogo em que os jogadores atravessam o " -"tabuleirocomprandopropriedades e enganando seus amigos." #: lang/json/BOOK_from_json.py msgid "Blobs and Bandits" @@ -22263,9 +19481,6 @@ msgid "" "A roleplaying game set in the post-apocalypse, so you can pretend to survive" " the apocalypse while surviving the apocalypse." msgstr "" -" Blobs e BanditsUm jogo de RPG ambientado no pós-apocalipse, para " -"quevocêpossa fingir sobreviver ao apocalipse enquanto sobrevive ao " -"apocalipse." #: lang/json/BOOK_from_json.py msgid "Battlehammer" @@ -22278,8 +19493,6 @@ msgstr[1] "" msgid "" "A strategy game featuring a set of tiny figurines of fantasy creatures." msgstr "" -" Battlehammer Um jogo de estratégia com um conjunto de pequenas " -"figurasdecriaturas de fantasia." #: lang/json/BOOK_from_json.py msgid "Battlehammer 20k" @@ -22293,8 +19506,6 @@ msgid "" "A strategy game featuring a set of tiny figurines of space aliens and " "grotesque space marines." msgstr "" -" Battlehammer 20kA jogo de estratégia com um conjunto de pequenas " -"figurasdealienígenas e espaço grotesco marines." #: lang/json/BOOK_from_json.py msgid "Settlers of the Ranch" @@ -22307,8 +19518,6 @@ msgstr[1] "" msgid "" "A strategy game where players build settlements and trade for supplies." msgstr "" -" Colonizadores do jogo de estratégia RanchA, onde os " -"jogadoresconstroemassentamentos e trocam suprimentos." #: lang/json/BOOK_from_json.py msgid "Warships" @@ -22322,8 +19531,6 @@ msgid "" "A game where players try to guess where the opponent placed their ships on " "the board." msgstr "" -" Navios de guerra Um jogo onde os jogadores tentam adivinhar ondeoadversário" -" colocou seus navios no tabuleiro." #: lang/json/BOOK_from_json.py msgid "Murder Mystery" @@ -22335,8 +19542,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A game where players try to figure out who murdered the butler." msgstr "" -" Mystery MurderUm jogo onde os jogadores tentam descobrir quem " -"assassinouomordomo." #: lang/json/BOOK_from_json.py msgid "A Beginner's Guide to Alchemy" @@ -22362,9 +19567,6 @@ msgid "" "such as the well-known Mjölnir. It is well illustrated with lots of " "pictures." msgstr "" -" As Armas de AsgardEste livro trata da criação de réplicas das " -"armasusadaspelos deuses nórdicos, como o bem conhecido Mjölnir. É bem " -"ilustradocommuitas fotos." #: lang/json/BOOK_from_json.py msgid "Hacking Robots for Fun & Profit" @@ -22378,9 +19580,6 @@ msgid "" "A book on illegally obtaining, reprogramming, and modifying robots. It has " "lots of helpful step-by-step guides and example blueprints." msgstr "" -" Hacking Robots for Fun & ProfitUm livro sobre como obter, " -"reprogramaremodificar ilegalmente robôs. Tem muitos guias passo-a-passo " -"úteiseesquemas de exemplo." #: lang/json/BOOK_from_json.py msgid "Popular Robotics" @@ -22392,8 +19591,6 @@ msgstr[1] "" #: lang/json/BOOK_from_json.py msgid "A magazine about building and altering your own robots." msgstr "" -" Revista RoboticsA popular sobre a construção e alteração de " -"seusprópriosrobôs." #: lang/json/BOOK_from_json.py msgid "Artillery and Field Gunnery" @@ -22409,10 +19606,6 @@ msgid "" "handloader or mechanic might find additional uses for the more technical " "parts of the text." msgstr "" -" Artilharia e campo de artilharia Um livro-texto sobre a " -"históriadaartilharia moderna, com uma série de ilustrações e trechos " -"deváriosmanuais de campo. Um handloader ou mecânico competente pode " -"encontrarusosadicionais para as partes mais técnicas do texto." #: lang/json/BOOK_from_json.py msgid "Principles of Postmortem Mind Control" @@ -22427,10 +19620,6 @@ msgid "" "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 "" -" Princípios do Controle da Mente Pós-morte Um livro grosso contendo " -"notasdepesquisa de um cientista maluco. Ele descreve vários métodos de " -"reanimarecontrolar os mortos. Há muitos detalhes sangrentos e " -"linguagemtécnicamisturada, então não é fácil de ler." #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "water" @@ -22444,12 +19633,10 @@ msgid "" "Water, the stuff of life, the best thirst-quencher available. It would be " "safer to drink once purified." msgstr "" -" waterWater, o material da vida, o melhor matador de sede disponível. " -"Seriamais seguro beber uma vez purificado." #: lang/json/COMESTIBLE_from_json.py msgid "hide bag" -msgstr "esconder saco" +msgstr "" #. ~ Description for hide bag #: lang/json/COMESTIBLE_from_json.py @@ -22457,13 +19644,10 @@ 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 "" -" A pele crua de um animal, rapidamente se transformou em um " -"sacoimprovisadopara armazenamento. Ele ainda apodrece e precisa ser curado " -"ebronzeado." #: lang/json/COMESTIBLE_from_json.py msgid "tainted hide bag" -msgstr "saco de couro contaminado" +msgstr "" #. ~ Description for tainted hide bag #: lang/json/COMESTIBLE_from_json.py @@ -22471,13 +19655,10 @@ 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 "" -" A pele crua de um monstro, rapidamente se transformou em um " -"sacoimprovisadopara armazenamento. Ele ainda apodrece e precisa ser curado " -"ebronzeado." #: lang/json/COMESTIBLE_from_json.py msgid "bird litter" -msgstr "ninhada de pássaros" +msgstr "" #. ~ Description for bird litter #: lang/json/COMESTIBLE_from_json.py @@ -22486,43 +19667,39 @@ msgstr "Excrementos de pássaro, penas, e pedaços sujos de detritos." #: lang/json/COMESTIBLE_from_json.py msgid "cow pie" -msgstr "torta de vaca" +msgstr "" #. ~ 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 "" -" Uma torta de vaca fresca, provavelmente poderia ser usada para fazerumótimo" -" fertilizante." #: lang/json/COMESTIBLE_from_json.py msgid "dog dung" -msgstr "estrume de cachorro" +msgstr "" #. ~ Description for dog dung #: lang/json/COMESTIBLE_from_json.py msgid "Droppings from a canine." -msgstr "Excrementos de um canino." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "manure" -msgstr "estrume" +msgstr "" #. ~ Description for manure #: lang/json/COMESTIBLE_from_json.py msgid "Common manure, could probably be used to make some great fertilizer." msgstr "" -" Estrume comum, provavelmente poderia ser usado para fazer " -"umótimofertilizante." #: lang/json/COMESTIBLE_from_json.py msgid "roach dirt" -msgstr "sujeira da barata" +msgstr "" #. ~ Description for roach dirt #: lang/json/COMESTIBLE_from_json.py msgid "Large black pellets of rotting material." -msgstr "Pelotas pretas grandes de material em decomposição." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bleach" @@ -22536,8 +19713,6 @@ msgid "" "This is sodium hypochlorite, a common household cleaning agent. It is " "highly unsafe to drink." msgstr "" -" bleachThis é hipoclorito de sódio, um agente de limpeza doméstico " -"comum.Éaltamente inseguro beber." #: lang/json/COMESTIBLE_from_json.py msgid "ammonia" @@ -22551,8 +19726,6 @@ msgid "" "This is ammonium hydroxide, a common household cleaning agent. It is highly" " unsafe to drink." msgstr "" -" amôniaEste é o hidróxido de amônio, um agente de limpeza doméstico " -"comum.Éaltamente inseguro beber." #: lang/json/COMESTIBLE_from_json.py msgid "liquid fertilizer" @@ -22563,7 +19736,7 @@ msgstr[1] "" #. ~ Description for liquid fertilizer #: lang/json/COMESTIBLE_from_json.py msgid "A nutrient rich elixir for plants." -msgstr "fertilizante líquidoUm elixir rico em nutrientes para plantas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "commercial fertilizer" @@ -22574,7 +19747,7 @@ msgstr[1] "" #. ~ Description for commercial fertilizer #: lang/json/COMESTIBLE_from_json.py msgid "Nutrient rich granules for plants." -msgstr "fertilizante comercial Grânulos ricos em nutrientes para plantas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fungicide" @@ -22588,8 +19761,6 @@ msgid "" "Agricultural grade chemical anti-fungal powder designed to destroy " "infections in plants." msgstr "" -" fungicidePlano anti-fúngico químico de grau agrícola concebido " -"paradestruirinfecções em plantas." #: lang/json/COMESTIBLE_from_json.py msgid "salt water" @@ -22600,7 +19771,7 @@ msgstr[1] "" #. ~ Description for salt water #: lang/json/COMESTIBLE_from_json.py msgid "Water with salt added. Not good for drinking." -msgstr "água salgada Água com sal adicionado. Não é bom para beber." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "acid water" @@ -22629,8 +19800,6 @@ msgid "" "A mixture of rain and acid rain. Don't drink it. Boiling it concentrates " "the acid." msgstr "" -" água ácida fracaUma mistura de chuva e chuva ácida. Não beba. " -"Ferverconcentra o ácido." #: lang/json/COMESTIBLE_from_json.py msgid "concentrated acid" @@ -22641,20 +19810,20 @@ msgstr[1] "" #. ~ Description for concentrated acid #: lang/json/COMESTIBLE_from_json.py msgid "Concentrated acid. Don't drink it." -msgstr "Ácido Concentrado Ácido Concentrado. Não beba." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sewage sample" -msgstr "amostra de esgoto" +msgstr "" #. ~ Description for sewage sample #: lang/json/COMESTIBLE_from_json.py msgid "A sample of sewage from a treatment plant. Gross." -msgstr "Uma amostra de esgoto de uma estação de tratamento. Bruto." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "water purification tablet" -msgstr "tablet de purificação de água" +msgstr "" #. ~ Description for water purification tablet #: lang/json/COMESTIBLE_from_json.py @@ -22664,10 +19833,6 @@ msgid "" "using powerful chemicals. The label says to use one tablet per unit of " "water." msgstr "" -" Destinado ao esclarecimento e desinfecção de água potável, " -"estescomprimidosde purificação à base de halazona removem " -"contaminantesperigosos usandoprodutos químicos poderosos. O rótulo diz para " -"usar umcomprimido porunidade de água." #: lang/json/COMESTIBLE_from_json.py msgid "sewage water" @@ -22678,7 +19843,7 @@ msgstr[1] "" #. ~ Description for sewage water #: lang/json/COMESTIBLE_from_json.py msgid "Turbid liquid from the sewers with awful stench." -msgstr "água de esgotoTurbídeo líquido dos esgotos com mau cheiro horrível." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lye" @@ -22692,8 +19857,6 @@ msgid "" "This is a liquid form of sodium hydroxide. It is highly corrosive, handle " "with care." msgstr "" -" lixíviaEsta é uma forma líquida de hidróxido de sódio. Éaltamentecorrosivo," -" manuseie com cuidado." #: lang/json/COMESTIBLE_from_json.py msgid "ether" @@ -22708,10 +19871,6 @@ msgid "" "anesthetic due to ether's more favorable therapeutic index, that is, a " "greater difference between an effective dose and a potentially toxic dose." msgstr "" -" Éter dietílico amplamente suplantou o uso de clorofórmio " -"comoanestésicogeral devido ao índice terapêutico mais favorável do éter, " -"ouseja, umadiferença maior entre uma dose efetiva e uma dose " -"potencialmentetóxica." #: lang/json/COMESTIBLE_from_json.py msgid "dimethyl sulfoxide" @@ -22815,7 +19974,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Spice" -msgstr "especiaria" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Riesling" @@ -22826,7 +19985,7 @@ msgstr[1] "" #. ~ Description for Riesling #: lang/json/COMESTIBLE_from_json.py msgid "Sparkling white wine, made from the world's noblest grape." -msgstr "RieslingVinho branco espumante, feito da mais nobre uva do mundo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Chardonnay" @@ -22837,7 +19996,7 @@ msgstr[1] "" #. ~ Description for Chardonnay #: lang/json/COMESTIBLE_from_json.py msgid "America's most popular wine, and for good reason." -msgstr "O vinho mais popular da ChardonnayAmerica e por boas razões." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Cabernet Sauvignon" @@ -22851,8 +20010,6 @@ msgid "" "The heavily disputed king of red wines. Pairs well with red meats and " "pasta." msgstr "" -" Cabernet SauvignonO rei dos vinhos tintos, muito disputado. Acompanhabemcom" -" carnes vermelhas e massas." #: lang/json/COMESTIBLE_from_json.py msgid "pinot noir" @@ -22866,8 +20023,6 @@ msgid "" "Prized by collectors and adored by critics, it is one of the rarer and more " "elegant wines." msgstr "" -" pinot noirPreciado por colecionadores e adorado pelos críticos, é " -"umdosvinhos mais raros e elegantes." #: lang/json/COMESTIBLE_from_json.py msgid "whiskey" @@ -22880,8 +20035,6 @@ msgstr[1] "" msgid "" "A distilled grain alcohol, made from, by, and for real Southern colonels!" msgstr "" -" whiskyUm álcool de cereais destilado, feito de, por e " -"paraverdadeiroscoronéis do sul!" #: lang/json/COMESTIBLE_from_json.py msgid "vodka" @@ -22895,8 +20048,6 @@ msgid "" "A beverage of alcohol, water, and not much else. In America, men make " "vodka, but in Soviet Russia, vodka makes the man." msgstr "" -" vodka Uma bebida de álcool, água e pouco mais. Na América, os " -"homensfazemvodka, mas na Rússia soviética, a vodca faz o homem." #: lang/json/COMESTIBLE_from_json.py msgid "gin" @@ -22910,8 +20061,6 @@ msgid "" "An alcoholic beverage flavored with juniper berries. It smells faintly of " "berries, but mostly booze." msgstr "" -" Uma bebida alcoólica aromatizada com bagas de zimbro. Cheira " -"fracamentedebagas, mas principalmente bebida." #: lang/json/COMESTIBLE_from_json.py msgid "rum" @@ -22925,8 +20074,6 @@ msgid "" "An distilled alcoholic beverage made from fermenting molasses. Drinking it " "might make you feel like a pirate. Or not." msgstr "" -" Bebida alcoólica destilada à base de melaço fermentado. Beber podefazervocê" -" se sentir um pirata. Ou não." #: lang/json/COMESTIBLE_from_json.py msgid "tequila" @@ -22940,9 +20087,6 @@ 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 "" -" Tequila Uma bebida alcoólica destilada feita a partir de umaplantasuculenta" -" com folhas pontiagudas. Não coma o verme! Espere, não háminhocanesta " -"garrafa." #: lang/json/COMESTIBLE_from_json.py msgid "triple sec" @@ -22953,7 +20097,7 @@ msgstr[1] "" #. ~ Description for triple sec #: lang/json/COMESTIBLE_from_json.py msgid "An orange flavored liquor used in many mixed drinks." -msgstr "triple sec Um licor de sabor laranja usado em muitas bebidas mistas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cheap wine" @@ -22964,7 +20108,7 @@ msgstr[1] "" #. ~ Description for cheap wine #: lang/json/COMESTIBLE_from_json.py msgid "Really cheap fortified wine." -msgstr "Vinho baratoRealmente barato vinho fortificado." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "strong mixed alcohol" @@ -22976,8 +20120,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Strong alcoholic drinks, mixed with no regard for taste." msgstr "" -" bebidas alcoólicas fortes e misturadasBebidas alcoólicas fortes, " -"misturadassem consideração pelo sabor." #: lang/json/COMESTIBLE_from_json.py msgid "weak mixed alcohol" @@ -22989,8 +20131,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Weak alcoholic drinks, mixed with no regard for taste." msgstr "" -" álcool misturado fraco Bebidas alcoólicas vazias, misturadassemconsideração" -" pelo sabor." #: lang/json/COMESTIBLE_from_json.py msgid "fruit wine" @@ -23003,8 +20143,6 @@ msgstr[1] "" msgid "" "Cheap booze made from fermented fruit juice. Tastes just like it sounds." msgstr "" -" vinho de frutasBarbo feito de suco de fruta fermentado. Tem gosto " -"decomoparece." #: lang/json/COMESTIBLE_from_json.py msgid "brandy" @@ -23018,8 +20156,6 @@ msgid "" "Wine that has been distilled to a higher proof. Great as an after-dinner " "drink, but packs a punch." msgstr "" -" brandyWine que foi destilado para uma maior prova. Ótimo como " -"umabebidadepois do jantar, mas um soco." #: lang/json/COMESTIBLE_from_json.py msgid "Irish coffee" @@ -23033,8 +20169,6 @@ msgid "" "Sweetened coffee and whiskey topped with milk. Start your day the closeted " "alcoholic way!" msgstr "" -" Café irlandêsChá adoçado e uísque coberto com leite. Comece o seu " -"diaamaneira alcoólica fechada!" #: lang/json/COMESTIBLE_from_json.py msgid "Long Island iced tea" @@ -23049,13 +20183,10 @@ msgid "" "of them. It contains no tea, but the inclusion of cola gives it a tea-like " "color." msgstr "" -" Chá gelado de Long Island - Uma mistura de licores " -"incrivelmentesaborososque de alguma forma não tem gosto nenhum. Não contém " -"chá, mas ainclusão decola dá-lhe uma cor semelhante a um chá." #: lang/json/COMESTIBLE_from_json.py msgid "screwdriver cocktail" -msgstr "coquetel chave de fenda" +msgstr "" #. ~ Description for screwdriver cocktail #: lang/json/COMESTIBLE_from_json.py @@ -23063,8 +20194,6 @@ msgid "" "A mix of orange juice and vodka. It's the surreptitious drunkard mechanic's" " drink of choice." msgstr "" -" Uma mistura de suco de laranja e vodka. É a bebida de escolha " -"domecânicobêbado clandestino." #: lang/json/COMESTIBLE_from_json.py msgid "wild apple" @@ -23075,7 +20204,7 @@ msgstr[1] "" #. ~ Description for wild apple #: lang/json/COMESTIBLE_from_json.py msgid "Like apple cider, only with vodka." -msgstr "cidra de maçã selvagem, apenas com vodka." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rum & cola" @@ -23086,7 +20215,7 @@ msgstr[1] "" #. ~ Description for rum & cola #: lang/json/COMESTIBLE_from_json.py msgid "Suitable for tropical retreats and Canadian artists alike." -msgstr "rum & colaSuitable para retiros tropicais e artistas canadenses." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "beer" @@ -23100,8 +20229,6 @@ 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 "" -" beerA álcool de cereais aromatizado com lúpulo. É melhor servir frio, " -"emumcopo e com um limão - mas você não é tão sortudo assim." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead" @@ -23114,8 +20241,6 @@ msgstr[1] "" msgid "" "Well-aged honey wine, spiced with a hint of hops. Goes down bittersweet." msgstr "" -" temperado meadWell-envelhecido vinho mel, temperado com uma pitadadelúpulo." -" Desce agridoce." #: lang/json/COMESTIBLE_from_json.py msgid "dandelion wine" @@ -23129,8 +20254,6 @@ msgid "" "A light and delicious wine made from dandelion flowers. Slightly " "effervescent, it is smooth and crisp." msgstr "" -" dandelion wine Um vinho leve e delicioso feito de flores de dente deleão. " -"Ligeiramente efervescente, é suave e crocante." #: lang/json/COMESTIBLE_from_json.py msgid "pine wine" @@ -23144,9 +20267,6 @@ msgid "" "A potent wine flavored with pine resin. Bold and pungent, its biting taste " "and strong aroma takes some getting used to." msgstr "" -" vinho de pinhoUm vinho potente aromatizado com resina de pinheiro. " -"Ousadoepungente, seu sabor cortante e aroma forte leva algum tempo " -"paraseacostumar." #: lang/json/COMESTIBLE_from_json.py msgid "homebrew beer" @@ -23158,8 +20278,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Not the finest drink you've had, but hey, it's alcohol by the gallon." msgstr "" -" cerveja homebrewNão a melhor bebida que você teve, mas hey, é o " -"álcoolporgalão." #: lang/json/COMESTIBLE_from_json.py msgid "moonshine" @@ -23174,9 +20292,6 @@ msgid "" "and sugar. Guaranteed to make you forget about the whole cataclysm thing, " "or you get your vision back." msgstr "" -" MoonshineOnly o mais forte, mais puro, bom ol 'fashionedhooch, " -"destilado de milho e açúcar. Garantido para fazer você esquecer todaacoisa " -"de cataclismo, ou você recupera sua visão." #: lang/json/COMESTIBLE_from_json.py msgid "European pilsner" @@ -23190,8 +20305,6 @@ msgid "" "A lager beer imported from Europe. Best served cold, in a glass - but " "you're not that lucky." msgstr "" -" European pilsner Uma cerveja lager importada da Europa. Melhor servidofrio," -" em um copo - mas você não é tão sortudo." #: lang/json/COMESTIBLE_from_json.py msgid "American pale ale" @@ -23205,8 +20318,6 @@ msgid "" "A tasty craft beer. Best served cold, in a glass - but you're not that " "lucky." msgstr "" -" Americana pálida aleA saborosa cerveja artesanal. Melhor servido frio, " -"emumcopo - mas você não é tão sortudo." #: lang/json/COMESTIBLE_from_json.py msgid "India pale ale" @@ -23220,8 +20331,6 @@ msgid "" "A very flavorful microbrewed beer. Best served cold, in a glass - but " "you're not that lucky." msgstr "" -" India pale aleUma cerveja microbrewed muito saborosa. Melhor servidofrio, " -"em um copo - mas você não é tão sortudo." #: lang/json/COMESTIBLE_from_json.py msgid "stout" @@ -23233,7 +20342,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A tasty craft beer, as dark in color as the days ahead." msgstr "" -"stoutA saborosa cerveja artesanal, tão escura quanto os dias à frente." #: lang/json/COMESTIBLE_from_json.py msgid "Belgian ale" @@ -23247,8 +20355,6 @@ msgid "" "A flavorful and filling beer brewed by monks in Belgium. Best served in a " "goblet." msgstr "" -" Cerveja ale belga saborosa e recheio fabricada por monges na Bélgica. " -"Melhorservido em uma taça." #: lang/json/COMESTIBLE_from_json.py msgid "imperial stout" @@ -23263,13 +20369,10 @@ msgid "" " as midnight on a moonless night and has the viscosity of oil. While very " "tasty, it also has an alcohol content on the level with wine." msgstr "" -" cerveja stoutA muito saborosa que foi envelhecida em barris de bourbon.Étão" -" preto quanto a meia-noite em uma noite sem lua e tem a viscosidadedoóleo. " -"Enquanto muito saboroso, também tem um teor alcoólico ao níveldovinho." #: lang/json/COMESTIBLE_from_json.py msgid "strawberry surprise" -msgstr "surpresa de morango" +msgstr "" #. ~ Description for strawberry surprise #: lang/json/COMESTIBLE_from_json.py @@ -23278,9 +20381,6 @@ msgid "" "surprisingly palatable mixture; you barely even have to force yourself to " "drink it after the first few gulps." msgstr "" -" Morangos deixados para fermentar com alguns outros ingredientes " -"deescolhaoferecem uma mistura surpreendentemente palatável; você mal " -"precisaseforçar a beber depois dos primeiros goles." #: lang/json/COMESTIBLE_from_json.py msgid "boozeberry" @@ -23294,9 +20394,6 @@ msgid "" "This fermented blueberry mixture is surprisingly hearty, though the soup-" "like consistency is slightly unsettling no matter how much you drink." msgstr "" -" boozeberryEsta mistura fermentada de mirtilo é surpreendentementesaudável, " -"embora a consistência de sopa seja um pouco inquietante, nãoimporta oquanto " -"você beba." #: lang/json/COMESTIBLE_from_json.py msgid "single malt whiskey" @@ -23307,20 +20404,20 @@ msgstr[1] "" #. ~ Description for single malt whiskey #: lang/json/COMESTIBLE_from_json.py msgid "Only the finest whiskey straight from the bung." -msgstr "uísque de malte ÚnicoO melhor uísque direto do batoque." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fancy hobo" -msgstr "vagabundo chique" +msgstr "" #. ~ Description for fancy hobo #: lang/json/COMESTIBLE_from_json.py msgid "This definitely tastes like a hobo drink." -msgstr "Isto definitivamente tem gosto de uma bebida de vagabundo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "kalimotxo" -msgstr "kalimotxo" +msgstr "" #. ~ Description for kalimotxo #: lang/json/COMESTIBLE_from_json.py @@ -23328,13 +20425,10 @@ msgid "" "A mix of equal parts wine and cola. It's not as bad as some might imagine, " "and pretty popular among young and/or poor people in some countries." msgstr "" -" Uma mistura de partes iguais de vinho e cola. Não é tão ruim quanto alguns " -"podem imaginar, e muito popular entre os jovens e / ou pobres em alguns " -"países." #: lang/json/COMESTIBLE_from_json.py msgid "bee's knees" -msgstr "joelhos de abelha" +msgstr "" #. ~ Description for bee's knees #: lang/json/COMESTIBLE_from_json.py @@ -23342,21 +20436,19 @@ msgid "" "This cocktail dates from the Prohibition era. Gin, honey and lemon in a " "delightful mix." msgstr "" -" Este cocktail data da era da proibição. Gin, mel e limão em " -"umamisturadeliciosa." #: lang/json/COMESTIBLE_from_json.py msgid "whiskey sour" -msgstr "uísque azedo" +msgstr "" #. ~ Description for whiskey sour #: lang/json/COMESTIBLE_from_json.py msgid "A mixed drink made of whiskey and lemon juice." -msgstr "Uma bebida mista feita de suco de uísque e limão." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "honeygold brew" -msgstr "cerveja honeygold" +msgstr "" #. ~ Description for honeygold brew #: lang/json/COMESTIBLE_from_json.py @@ -23364,13 +20456,10 @@ msgid "" "A mixed drink containing all the advantages of its ingredients and none of " "their disadvantages. It tastes great and it's a good source of nourishment." msgstr "" -" Uma bebida mista contendo todas as vantagens de seus ingredientes " -"enenhumade suas desvantagens. Tem um ótimo sabor e é uma boa fonte " -"denutrição." #: lang/json/COMESTIBLE_from_json.py msgid "honey ball" -msgstr "bola de mel" +msgstr "" #. ~ Description for honey ball #: lang/json/COMESTIBLE_from_json.py @@ -23379,14 +20468,10 @@ msgid "" "filled with sticky liquid. Unlike bee honey, this has mostly a sour taste, " "probably because ants feed upon a variety of things." msgstr "" -" Gota em forma de comida de formiga. É como um balão grosso do tamanho " -"deumabola de beisebol, cheio de líquido pegajoso. Ao contrário do mel " -"deabelha, isso tem um sabor amargo, provavelmente porque as formigas " -"sealimentam deuma variedade de coisas." #: lang/json/COMESTIBLE_from_json.py msgid "spiked eggnog" -msgstr "gemada cravada" +msgstr "" #. ~ Description for spiked eggnog #: lang/json/COMESTIBLE_from_json.py @@ -23395,13 +20480,10 @@ msgid "" "is a popular traditional holiday drink. Having been fortified with alcohol," " it will keep for a long time." msgstr "" -" Suave e rica, esta mistura de leite, creme, ovos e bebida é " -"umabebidatradicional e popular. Tendo sido fortificado com álcool, " -"elepermanecerápor muito tempo." #: lang/json/COMESTIBLE_from_json.py msgid "sourdough bread" -msgstr "pão de fermento" +msgstr "" #. ~ Description for sourdough bread #: lang/json/COMESTIBLE_from_json.py @@ -23409,39 +20491,37 @@ msgid "" "Healthy and filling, with a sharper taste and thicker crust than yeast-only " "bread." msgstr "" -" Saudável e recheado, com sabor mais acentuado e crosta mais espessa do " -"queopão só de fermento." #: lang/json/COMESTIBLE_from_json.py msgid "flatbread" -msgstr "pão sírio" +msgstr "" #. ~ Description for flatbread #: lang/json/COMESTIBLE_from_json.py msgid "Simple unleavened bread." -msgstr "Pão ázimo simples." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bread" -msgstr "pão" +msgstr "" #. ~ Description for bread #: lang/json/COMESTIBLE_from_json.py msgid "Healthy and filling." -msgstr "Saudável e enchimento." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cornbread" -msgstr "pão de milho" +msgstr "" #. ~ Description for cornbread #: lang/json/COMESTIBLE_from_json.py msgid "Healthy and filling cornbread." -msgstr "Pão de milho saudável e enchimento." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "johnnycake" -msgstr "johnnycake" +msgstr "" #. ~ Description for johnnycake #: lang/json/COMESTIBLE_from_json.py @@ -23450,17 +20530,16 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "corn tortilla" -msgstr "Tortilla de milho" +msgstr "" #. ~ Description for corn tortilla #: lang/json/COMESTIBLE_from_json.py msgid "A round, thin flatbread made from finely ground corn flour." msgstr "" -" Um pão achatado redondo e fino feito de farinha de milho finamente moída." #: lang/json/COMESTIBLE_from_json.py msgid "hardtack" -msgstr "hardtack" +msgstr "" #. ~ Description for hardtack #: lang/json/COMESTIBLE_from_json.py @@ -23468,12 +20547,10 @@ msgid "" "A dry and virtually tasteless bread product capable of remaining edible " "without spoilage for vast lengths of time." msgstr "" -" Um produto de pão seco e praticamente insípido capaz depermanecercomestível" -" sem deterioração por longos períodos de tempo." #: lang/json/COMESTIBLE_from_json.py msgid "biscuit" -msgstr "bolacha" +msgstr "" #. ~ Description for biscuit #: lang/json/COMESTIBLE_from_json.py @@ -23482,7 +20559,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wastebread" -msgstr "pão de desperdício" +msgstr "" #. ~ Description for wastebread #: lang/json/COMESTIBLE_from_json.py @@ -23491,14 +20568,10 @@ msgid "" " to mix it with leftovers of other ingredients and bake it all into bread. " "It's filling, and that's what matters." msgstr "" -" A farinha é uma commodity nos dias de hoje e, para lidar com isso, " -"amaioriados sobreviventes recorre a misturar com restos de " -"outrosingredientes eassar tudo no pão. Está enchendo, e isso é o que " -"importa." #: lang/json/COMESTIBLE_from_json.py msgid "whiskey wort" -msgstr "palavra de uísque" +msgstr "" #. ~ Description for whiskey wort #: lang/json/COMESTIBLE_from_json.py @@ -23506,8 +20579,6 @@ msgid "" "Unfermented whiskey. The base of a fine drink. Not the traditional " "preparation, but you don't have the time." msgstr "" -" Uísque não fermentado. A base de uma bebida fina. Não " -"apreparaçãotradicional, mas você não tem tempo." #: lang/json/COMESTIBLE_from_json.py msgid "whiskey wash" @@ -23519,7 +20590,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Fermented, but not distilled whiskey. No longer tastes sweet." msgstr "" -" whiskey washFermented, mas não uísque destilado. Não tem mais gosto doce." #: lang/json/COMESTIBLE_from_json.py msgid "fermenting gin mash" @@ -23547,7 +20617,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vodka wort" -msgstr "vodka palavra" +msgstr "" #. ~ Description for vodka wort #: lang/json/COMESTIBLE_from_json.py @@ -23555,8 +20625,6 @@ msgid "" "Unfermented vodka. Water with sugar from enzymatic breakdown of malted " "grains or just added in pure form." msgstr "" -" Vodka não fermentada. Água com açúcar a partir de degradação " -"enzimáticadegrãos maltados ou apenas adicionado em forma pura." #: lang/json/COMESTIBLE_from_json.py msgid "vodka wash" @@ -23568,11 +20636,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Fermented, but not distilled vodka. No longer tastes sweet." msgstr "" -"vodka washFermented, mas não vodka destilada. Não tem mais gosto doce." #: lang/json/COMESTIBLE_from_json.py msgid "rum wort" -msgstr "palavra rum" +msgstr "" #. ~ Description for rum wort #: lang/json/COMESTIBLE_from_json.py @@ -23580,8 +20647,6 @@ msgid "" "Unfermented rum. Sugar caramel or molasses brewed into sweet water. " "Basically a saccharine soup." msgstr "" -" Rum não fermentado. Caramelo ou melaço de açúcar feito em águadoce. " -"Basicamente uma sopa sacarina." #: lang/json/COMESTIBLE_from_json.py msgid "rum wash" @@ -23592,32 +20657,30 @@ msgstr[1] "" #. ~ Description for rum wash #: lang/json/COMESTIBLE_from_json.py msgid "Fermented, but not distilled rum. No longer tastes sweet." -msgstr "rum washFermented, mas não rum destilado. Não tem mais gosto doce." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fruit wine must" -msgstr "vinho de frutas deve" +msgstr "" #. ~ Description for fruit wine must #: lang/json/COMESTIBLE_from_json.py msgid "" "Unfermented fruit wine. A sweet, boiled juice made from berries or fruit." msgstr "" -" Vinho de fruta não fermentado. Um suco doce e cozido feito de " -"frutasoufrutas." #: lang/json/COMESTIBLE_from_json.py msgid "spiced mead must" -msgstr "Mead temperado deve" +msgstr "" #. ~ Description for spiced mead must #: lang/json/COMESTIBLE_from_json.py msgid "Unfermented spiced mead. Diluted honey and yeast." -msgstr "Hidromel temperado não fermentado. Mel diluído e fermento." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dandelion wine must" -msgstr "vinho dandelion deve" +msgstr "" #. ~ Description for dandelion wine must #: lang/json/COMESTIBLE_from_json.py @@ -23625,12 +20688,10 @@ msgid "" "Unfermented dandelion wine. A sticky mixture of water, sugar, yeast, and " "dandelion petals." msgstr "" -" Vinho de dente de leão não fermentado. Uma mistura pegajosa de água, " -"açúcar, fermento e pétalas de dente de leão." #: lang/json/COMESTIBLE_from_json.py msgid "pine wine must" -msgstr "vinho de pinho deve" +msgstr "" #. ~ Description for pine wine must #: lang/json/COMESTIBLE_from_json.py @@ -23638,12 +20699,10 @@ msgid "" "Unfermented pine wine. A sticky mixture of water, sugar, yeast, and pine " "resins." msgstr "" -" Vinho de pinho não fermentado. Uma mistura pegajosa de resinas deágua, " -"açúcar, fermento e pinho." #: lang/json/COMESTIBLE_from_json.py msgid "beer wort" -msgstr "palavra de cerveja" +msgstr "" #. ~ Description for beer wort #: lang/json/COMESTIBLE_from_json.py @@ -23651,8 +20710,6 @@ msgid "" "Unfermented homebrew beer. A boiled and chilled mash of malted barley, " "spiced with some fine hops." msgstr "" -" Cerveja homebrew não fermentada. Uma mistura cozida e gelada " -"decevadamaltada, temperada com alguns bons lúpulos." #: lang/json/COMESTIBLE_from_json.py msgid "moonshine mash" @@ -23666,8 +20723,6 @@ msgid "" "Unfermented moonshine. Just some water, sugar and corn, like good ol' " "aunt's recipe." msgstr "" -" moonshine mashUnfermented moonshine. Apenas um pouco de água, açúcaremilho," -" como a receita da boa e velha tia." #: lang/json/COMESTIBLE_from_json.py msgid "moonshine wash" @@ -23681,12 +20736,10 @@ msgid "" "Fermented, but not distilled moonshine. Contains all the contaminants you " "don't want in your moonshine." msgstr "" -" moonshine washFermented, mas não destilada moonshine. Contém " -"todososcontaminantes que você não quer no seu luar." #: lang/json/COMESTIBLE_from_json.py msgid "curdling milk" -msgstr "leite coalhado" +msgstr "" #. ~ Description for curdling milk #: lang/json/COMESTIBLE_from_json.py @@ -23694,12 +20747,10 @@ msgid "" "Milk with vinegar and natural rennet added. Used for making cheese if left " "in a fermenting vat for some time." msgstr "" -" Leite com vinagre e coalho natural adicionado. Usado para fazer " -"queijosedeixado em um tanque de fermentação por algum tempo." #: lang/json/COMESTIBLE_from_json.py msgid "unfermented vinegar" -msgstr "vinagre não fermentado" +msgstr "" #. ~ Description for unfermented vinegar #: lang/json/COMESTIBLE_from_json.py @@ -23707,11 +20758,10 @@ msgid "" "Mixture of water, alcohol and fruit juice that will eventually become " "vinegar." msgstr "" -" Mistura de água, álcool e suco de frutas que acabará se tornando vinagre." #: lang/json/COMESTIBLE_from_json.py msgid "meat/fish" -msgstr "carne de peixe" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fillet of fish" @@ -23723,7 +20773,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Freshly caught fish. Makes a passable meal raw." msgstr "" -" filé de peixe Peixe fresquamente pescado. Faz uma refeição passável crua." #: lang/json/COMESTIBLE_from_json.py msgid "cooked fish" @@ -23734,26 +20783,25 @@ msgstr[1] "" #. ~ Description for cooked fish #: lang/json/COMESTIBLE_from_json.py msgid "Freshly cooked fish. Very nutritious." -msgstr "peixe cozido Peixe cozido fresquinho. Muito nutritivo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "human stomach" -msgstr "estômago humano" +msgstr "" #. ~ Description for human stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a human. It is surprisingly durable." -msgstr "O estômago de um humano. É surpreendentemente durável." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "large human stomach" -msgstr "grande estômago humano" +msgstr "" #. ~ Description for large human stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large humanoid creature. It is surprisingly durable." msgstr "" -" O estômago de uma grande criatura humanóide. É surpreendentemente durável." #: lang/json/COMESTIBLE_from_json.py msgid "human flesh" @@ -23764,16 +20812,16 @@ msgstr[1] "" #. ~ Description for human flesh #: lang/json/COMESTIBLE_from_json.py msgid "Freshly butchered from a human body." -msgstr "carne humanaFreshly massacrado de um corpo humano." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked creep" -msgstr "creep cozido" +msgstr "" #. ~ Description for cooked creep #: lang/json/COMESTIBLE_from_json.py msgid "A freshly cooked slice of some unpleasant person. Tastes great." -msgstr "Uma fatia recém cozida de alguma pessoa desagradável. Ótimo sabor." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chunk of meat" @@ -23786,8 +20834,6 @@ msgstr[1] "" msgid "" "Freshly butchered meat. You could eat it raw, but cooking it is better." msgstr "" -" pedaço de carneFreshly matou carne. Você pode comê-lo cru, mas " -"cozinharémelhor." #: lang/json/COMESTIBLE_from_json.py msgid "scrap of meat" @@ -23801,8 +20847,6 @@ msgid "" "This is a tiny scrap of edible meat. It's not much, but it'll do in a " "pinch." msgstr "" -" pedaço de carneEste é um pequeno pedaço de carne comestível. Não émuito, " -"mas vai ser fácil." #: lang/json/COMESTIBLE_from_json.py msgid "butchery refuse" @@ -23818,14 +20862,10 @@ msgid "" " isn't even worth thinking about, but disposing of it might be a concern as " "it could attract vermin." msgstr "" -" açougue recusar. É uma bagunça de sujeira, excrementos, tecido " -"conjuntivoepedaços de matéria como cabelos e garras, restos do processo " -"deabate. Comê-lo nem vale a pena pensar, mas descartá-lo pode ser " -"umapreocupação, pois poderia atrair vermes." #: lang/json/COMESTIBLE_from_json.py msgid "cooked meat" -msgstr "carne cozida" +msgstr "" #. ~ Description for cooked meat #: lang/json/COMESTIBLE_from_json.py @@ -23833,8 +20873,6 @@ msgid "" "This is a chunk of freshly cooked meat. It's filling and nutritious, but " "unseasoned and a bit bland." msgstr "" -" Este é um pedaço de carne recém cozida. Está enchendo e nutritivo, " -"masunseasoned e um pouco sem graça." #: lang/json/COMESTIBLE_from_json.py msgid "cooked scrap of meat" @@ -23844,7 +20882,7 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "raw offal" -msgstr "sucata cozida de miudezas" +msgstr "" #. ~ Description for raw offal #: lang/json/COMESTIBLE_from_json.py @@ -23853,9 +20891,6 @@ msgid "" "vitamins, but most people consider it a bit gross unless very carefully " "prepared." msgstr "" -" Miudezas são órgãos internos e entranhas não cozidos. É cheio " -"devitaminasessenciais, mas a maioria das pessoas considera um " -"poucogrosseiro, a menosque seja cuidadosamente preparado." #: lang/json/COMESTIBLE_from_json.py msgid "cooked offal" @@ -23870,9 +20905,6 @@ msgid "" "vitamins, but most people consider it a bit gross unless very carefully " "prepared." msgstr "" -" Esta é a carne de órgãos recém cozida e as vísceras. É cheio " -"devitaminasessenciais, mas a maioria das pessoas considera um " -"poucogrosseiro, a menosque seja cuidadosamente preparado." #: lang/json/COMESTIBLE_from_json.py msgid "pickled offal" @@ -23887,9 +20919,6 @@ msgid "" "essential vitamins, and although it looks like a lab specimen, it actually " "tastes pretty palatable." msgstr "" -" Esta é uma massa de vísceras e carne de órgãos, preservada emsalmoura. " -"Embalado com vitaminas essenciais, e embora pareça um espécimedelaboratório," -" ele realmente tem um sabor muito agradável." #: lang/json/COMESTIBLE_from_json.py msgid "canned offal" @@ -23903,27 +20932,24 @@ msgid "" "Freshly cooked organ meat and entrails, preserved by canning. Unappetizing," " but filled with essential vitamins." msgstr "" -" miudezas enlatadasCarnes e vísceras de órgãos cozidas de maneirafrita, " -"conservadas em latas. Não apetitoso, mas repleto de vitaminasessenciais." #: lang/json/COMESTIBLE_from_json.py msgid "stomach" -msgstr "estômago" +msgstr "" #. ~ Description for stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a woodland creature. It is surprisingly durable." -msgstr "O estômago de uma criatura da floresta. É surpreendentemente durável." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "large stomach" -msgstr "estômago grande" +msgstr "" #. ~ Description for large stomach #: lang/json/COMESTIBLE_from_json.py msgid "The stomach of a large woodland creature. It is surprisingly durable." msgstr "" -" O estômago de uma grande criatura da floresta. É surpreendentementedurável." #: lang/json/COMESTIBLE_from_json.py msgid "meat jerky" @@ -23936,8 +20962,6 @@ msgstr[1] "" msgid "" "Salty dried meat that lasts for a long time, but will make you thirsty." msgstr "" -" carne seca Carne seca seca que dura muito tempo, mas vai deixar " -"vocêcomsede." #: lang/json/COMESTIBLE_from_json.py msgid "salted fish" @@ -23950,8 +20974,6 @@ msgstr[1] "" msgid "" "Salty dried fish that lasts for a long time, but will make you thirsty." msgstr "" -" Peixe salgado Peixe seco salgado que dura muito tempo, mas vai " -"deixarvocêcom sede." #: lang/json/COMESTIBLE_from_json.py msgid "jerk jerky" @@ -23965,12 +20987,10 @@ msgid "" "Salty dried human flesh that lasts for a long time, but will make you " "thirsty." msgstr "" -" jerk jerkySalty seco carne humana que dura por um longo tempo, mas " -"vaifazervocê com sede." #: lang/json/COMESTIBLE_from_json.py msgid "smoked meat" -msgstr "carne defumada" +msgstr "" #. ~ Description for smoked meat #: lang/json/COMESTIBLE_from_json.py @@ -23978,8 +20998,6 @@ msgid "" "Tasty meat that has been heavily smoked for preservation. It could be " "further smoked to dehydrate it completely." msgstr "" -" Carne saborosa que foi fortemente fumada para preservação. Pode " -"seraindamais fumado para desidratar completamente." #: lang/json/COMESTIBLE_from_json.py msgid "smoked fish" @@ -23993,13 +21011,10 @@ msgid "" "Tasty fish that has been heavily smoked for long term preservation. It " "could be further smoked to dehydrate it completely." msgstr "" -" peixe defumadoO peixe fumado que foi fortemente fumado para " -"preservaçãoalongo prazo. Pode ser ainda mais fumado para desidratar " -"completamente." #: lang/json/COMESTIBLE_from_json.py msgid "smoked sucker" -msgstr "otário fumado" +msgstr "" #. ~ Description for smoked sucker #: lang/json/COMESTIBLE_from_json.py @@ -24007,8 +21022,6 @@ msgid "" "A heavily smoked portion of human flesh. Lasts for a long time and tastes " "pretty good, if you like that sort of thing." msgstr "" -" Uma porção muito fumada de carne humana. Dura por um longo tempo e " -"temumgosto muito bom, se você gosta desse tipo de coisa." #: lang/json/COMESTIBLE_from_json.py msgid "piece of raw lung" @@ -24040,7 +21053,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" -msgstr "fígado cru" +msgstr "" #. ~ Description for raw liver #: lang/json/COMESTIBLE_from_json.py @@ -24049,13 +21062,10 @@ msgid "" "the more vitamin rich parts of the animal. It is very good in sausages, but" " maybe a little less appetizing when cooked on its own." msgstr "" -" O fígado de um animal. Embora muitos não gostem da textura, é uma " -"daspartesmais ricas em vitaminas do animal. É muito bom em salsichas, " -"mastalvez umpouco menos apetitoso quando cozido por conta própria." #: lang/json/COMESTIBLE_from_json.py msgid "cooked liver" -msgstr "fígado cozido" +msgstr "" #. ~ Description for cooked liver #: lang/json/COMESTIBLE_from_json.py @@ -24064,9 +21074,6 @@ msgid "" " you feel about the texture, but this is probably the least fancy way to do " "it." msgstr "" -" Chock cheio de vitaminas B! O fígado cozido não é tão ruim assim, " -"dependendode como você se sente sobre a textura, mas essa é provavelmentea " -"maneiramenos chique de fazê-lo." #: lang/json/COMESTIBLE_from_json.py msgid "raw brains" @@ -24078,7 +21085,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "The brain from an animal. You wouldn't want to eat this raw..." msgstr "" -" Cérebros crusO cérebro de um animal. Você não gostaria de comer isso cru..." #: lang/json/COMESTIBLE_from_json.py msgid "cooked brains" @@ -24092,13 +21098,10 @@ msgid "" "Now you can emulate those zombies you love so much! Preparing brain for " "eating is challenging, and this doesn't seem to be the best way to do it." msgstr "" -" Agora você pode emular os zumbis que você tanto ama! Preparar o " -"cérebroparacomer é um desafio, e isso não parece ser a melhor maneira de " -"fazê-lo." #: lang/json/COMESTIBLE_from_json.py msgid "raw kidney" -msgstr "rim cru" +msgstr "" #. ~ Description for raw kidney #: lang/json/COMESTIBLE_from_json.py @@ -24106,21 +21109,19 @@ msgid "" "The kidney from an animal. Preparing it for cooking is a challenge unless " "you want the kitchen to smell strongly of urine." msgstr "" -" O rim de um animal. Prepará-lo para cozinhar é um desafio, a menos " -"quevocêqueira que a cozinha tenha um forte cheiro de urina." #: lang/json/COMESTIBLE_from_json.py msgid "cooked kidney" -msgstr "rim cozido" +msgstr "" #. ~ Description for cooked kidney #: lang/json/COMESTIBLE_from_json.py msgid "No, this is not beans." -msgstr "Não, isso não é feijão." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw sweetbread" -msgstr "pão doce cru" +msgstr "" #. ~ Description for raw sweetbread #: lang/json/COMESTIBLE_from_json.py @@ -24128,17 +21129,15 @@ msgid "" "Sweetbreads are the thymus or pancreas of an animal. These are a delicacy, " "if prepared properly." msgstr "" -" Sweetbreads são o timo ou pâncreas de um animal. Estas são uma iguaria, " -"sepreparadas adequadamente." #: lang/json/COMESTIBLE_from_json.py msgid "cooked sweetbread" -msgstr "bolinho cozido" +msgstr "" #. ~ Description for cooked sweetbread #: lang/json/COMESTIBLE_from_json.py msgid "Normally a delicacy, it needs a little... something." -msgstr "Normalmente uma delicadeza, precisa de um pouco ... alguma coisa." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "blood" @@ -24149,7 +21148,7 @@ msgstr[1] "" #. ~ Description for blood #: lang/json/COMESTIBLE_from_json.py msgid "Blood, possibly that of a human. Disgusting!" -msgstr "sangue Sangue, possivelmente de um humano. Repugnante!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bone" @@ -24161,8 +21160,6 @@ msgid "" "A bone from some creature or other. Could be used to make some stuff, like " "needles." msgstr "" -" osso Um osso de alguma criatura ou outra. Pode ser usado para " -"fazeralgumascoisas, como agulhas." #: lang/json/COMESTIBLE_from_json.py msgid "chunk of fat" @@ -24176,12 +21173,10 @@ msgid "" "Freshly butchered fat. You could eat it raw, but it is better used as an " "ingredient in other foods or projects." msgstr "" -" pedaço de gordura. Gordura fracamente fracassada. Você poderia comê- locru," -" mas é melhor usado como um ingrediente em outros alimentos ou projetos." #: lang/json/COMESTIBLE_from_json.py msgid "tallow" -msgstr "sebo" +msgstr "" #. ~ Description for tallow #: lang/json/COMESTIBLE_from_json.py @@ -24190,13 +21185,10 @@ msgid "" "edible for a very long time, and can be used as an ingredient in many foods " "and projects." msgstr "" -" Um bloco branco liso de gordura animal limpa e renderizada. " -"Elepermanecerácomestível por muito tempo e pode ser usado como ingrediente " -"emmuitosalimentos e projetos." #: lang/json/COMESTIBLE_from_json.py msgid "lard" -msgstr "banha" +msgstr "" #. ~ Description for lard #: lang/json/COMESTIBLE_from_json.py @@ -24205,9 +21197,6 @@ msgid "" "a very long time, and can be used as an ingredient in many foods and " "projects." msgstr "" -" Um bloco branco liso de gordura animal renderizada a seco. " -"Elepermanecerácomestível por muito tempo e pode ser usado como ingrediente " -"emmuitosalimentos e projetos." #: lang/json/COMESTIBLE_from_json.py msgid "chunk of tainted meat" @@ -24220,12 +21209,10 @@ msgstr[1] "" msgid "" "Meat that's obviously unhealthy. You could eat it, but it will poison you." msgstr "" -" pedaço de carne contaminada, carne que é obviamente insalubre. " -"Vocêpodecomê-lo, mas vai envenená-lo." #: lang/json/COMESTIBLE_from_json.py msgid "tainted bone" -msgstr "osso contaminado" +msgstr "" #. ~ Description for tainted bone #: lang/json/COMESTIBLE_from_json.py @@ -24234,13 +21221,10 @@ msgid "" "used to make some stuff, like charcoal or glue. You could eat it, but it " "will poison you." msgstr "" -" Um osso podre e quebradiço de alguma criatura não natural ou outra. " -"Podeserusado para fazer algumas coisas, como carvão ou cola. Você pode comê-" -"lo, mas vai envenená-lo." #: lang/json/COMESTIBLE_from_json.py msgid "tainted fat" -msgstr "gordura contaminada" +msgstr "" #. ~ Description for tainted fat #: lang/json/COMESTIBLE_from_json.py @@ -24248,12 +21232,10 @@ msgid "" "A watery yellow glob of fat from some unnatural creature or other. You " "could eat it, but it will poison you." msgstr "" -" Um gotejamento amarelo de gordura de alguma criatura não natural ououtra. " -"Você pode comê-lo, mas vai envenená-lo." #: lang/json/COMESTIBLE_from_json.py msgid "tainted tallow" -msgstr "sebo contaminado" +msgstr "" #. ~ Description for tainted tallow #: lang/json/COMESTIBLE_from_json.py @@ -24262,24 +21244,20 @@ msgid "" "'fresh' for a very long time, and can be used as an ingredient in many " "projects. You could eat it, but it will poison you." msgstr "" -" Um bloco acinzentado suave de gordura de monstro limpa e renderizada. " -"Elepermanecerá\"fresco\" por muito tempo e pode ser usado como " -"umingredienteem muitos projetos. Você pode comê-lo, mas vai envenená-lo." #: lang/json/COMESTIBLE_from_json.py msgid "large boiled stomach" -msgstr "estômago grande e cozido" +msgstr "" #. ~ Description for large boiled stomach #: lang/json/COMESTIBLE_from_json.py msgid "" "A boiled stomach from an animal, nothing else. It looks all but appetizing." msgstr "" -" Um estômago fervido de um animal, nada mais. Parece tudo, menos apetitoso." #: lang/json/COMESTIBLE_from_json.py msgid "boiled large human stomach" -msgstr "estômago humano grande cozido" +msgstr "" #. ~ Description for boiled large human stomach #: lang/json/COMESTIBLE_from_json.py @@ -24287,12 +21265,10 @@ msgid "" "A boiled stomach from a large humanoid creature, nothing else. It looks all" " but appetizing." msgstr "" -" Um estômago fervido de uma grande criatura humanóide, nada mais. " -"Parecetudo, menos apetitoso." #: lang/json/COMESTIBLE_from_json.py msgid "boiled stomach" -msgstr "estômago fervido" +msgstr "" #. ~ Description for boiled stomach #: lang/json/COMESTIBLE_from_json.py @@ -24300,12 +21276,10 @@ msgid "" "A small boiled stomach from an animal, nothing else. It looks all but " "appetizing." msgstr "" -" Um pequeno estômago cozido de um animal, nada mais. Parece tudo, " -"menosapetitoso." #: lang/json/COMESTIBLE_from_json.py msgid "boiled human stomach" -msgstr "estômago humano fervido" +msgstr "" #. ~ Description for boiled human stomach #: lang/json/COMESTIBLE_from_json.py @@ -24313,12 +21287,10 @@ msgid "" "A small boiled stomach from a human, nothing else. It looks all but " "appetizing." msgstr "" -" Um pequeno estômago cozido de um humano, nada mais. Parece tudo, " -"menosapetitoso." #: lang/json/COMESTIBLE_from_json.py msgid "raw hide" -msgstr "pele crua" +msgstr "" #. ~ Description for raw hide #: lang/json/COMESTIBLE_from_json.py @@ -24326,13 +21298,10 @@ msgid "" "A carefully folded raw skin harvested from an animal. You can cure it for " "storage and tanning, or eat it if you're desperate enough." msgstr "" -" Uma pele crua cuidadosamente dobrada colhida de um animal. Você pode curá- " -"lo para armazenamento e bronzeamento, ou comê-lo, se estiver " -"desesperadoosuficiente." #: lang/json/COMESTIBLE_from_json.py msgid "tainted hide" -msgstr "pele contaminada" +msgstr "" #. ~ Description for tainted hide #: lang/json/COMESTIBLE_from_json.py @@ -24340,12 +21309,10 @@ msgid "" "A carefully folded poisonous raw skin harvested from an unnatural creature." " You can cure it for storage and tanning." msgstr "" -" Uma pele crua venenosa cuidadosamente dobrada, colhida de uma " -"criaturanãonatural. Você pode curá-lo para armazenamento e bronzeamento." #: lang/json/COMESTIBLE_from_json.py msgid "raw human skin" -msgstr "pele humana crua" +msgstr "" #. ~ Description for raw human skin #: lang/json/COMESTIBLE_from_json.py @@ -24353,13 +21320,10 @@ msgid "" "A carefully folded raw skin harvested from a human. You can cure it for " "storage and tanning, or eat it if you're desperate enough." msgstr "" -" Uma pele crua cuidadosamente dobrada colhida de um ser humano. " -"Vocêpodecurá-lo para armazenamento e bronzeamento, ou comê-lo, " -"seestiverdesesperado o suficiente." #: lang/json/COMESTIBLE_from_json.py msgid "raw pelt" -msgstr "pele crua" +msgstr "" #. ~ Description for raw pelt #: lang/json/COMESTIBLE_from_json.py @@ -24368,13 +21332,10 @@ msgid "" "has the fur attached. You can cure it for storage and tanning, or eat it if" " you're desperate enough." msgstr "" -" Uma pele crua cuidadosamente dobrada colhida de um animal com pele. " -"Aindatem a pele presa. Você pode curá-lo para armazenamento e bronzeamento, " -"oucomê- lo, se estiver desesperado o suficiente." #: lang/json/COMESTIBLE_from_json.py msgid "tainted pelt" -msgstr "pele contaminada" +msgstr "" #. ~ Description for tainted pelt #: lang/json/COMESTIBLE_from_json.py @@ -24383,9 +21344,6 @@ msgid "" " It still has the fur attached and is poisonous. You can cure it for " "storage and tanning." msgstr "" -" Uma pele crua cuidadosamente dobrada, colhida de uma criatura nãonatural. " -"Ainda tem a pele presa e é venenosa. Você pode curá-lo paraarmazenamento " -"ebronzeamento." #: lang/json/COMESTIBLE_from_json.py msgid "seeping heart" @@ -24400,7 +21358,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "putrid heart" -msgstr "coração pútrido" +msgstr "" #. ~ Description for putrid heart #: lang/json/COMESTIBLE_from_json.py @@ -24411,16 +21369,10 @@ msgid "" "hands. After everything you've seen lately, you can't help but remember old" " sayings about eating the hearts of your enemies..." msgstr "" -" Uma massa espessa de carne, superficialmente parecida com um " -"coraçãodemamífero, coberta de ranhuras estriadas e facilmente do tamanho " -"desuacabeça. Ainda está cheio de, er, o que passa por sangue em jabberwocks," -" e épesado em suas mãos. Depois de tudo o que você viu ultimamente, você não" -" pode deixar de lembrar os velhos ditos sobre comer os corações " -"deseusinimigos ..." #: lang/json/COMESTIBLE_from_json.py msgid "desiccated putrid heart" -msgstr "coração pútrido dessecado" +msgstr "" #. ~ Description for desiccated putrid heart #: lang/json/COMESTIBLE_from_json.py @@ -24429,9 +21381,6 @@ msgid "" "sliced open and drained of blood. It could be eaten if you're hungry, but " "looks *disgusting*." msgstr "" -" Uma enorme faixa de músculo - tudo o que resta de um coração pútrido " -"quefoicortado e drenado de sangue. Pode ser comido se estiver com fome, " -"masparece* nojento *." #: lang/json/COMESTIBLE_from_json.py msgid "raw milk" @@ -24489,12 +21438,12 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "yogurt" -msgstr "iogurte" +msgstr "" #. ~ Description for yogurt #: lang/json/COMESTIBLE_from_json.py msgid "Delicious fermented dairy. It tastes of vanilla." -msgstr "Leite fermentado delicioso. Tem gosto de baunilha." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "butter" @@ -24523,16 +21472,16 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pudding" -msgstr "pudim" +msgstr "" #. ~ Description for pudding #: lang/json/COMESTIBLE_from_json.py msgid "Sugary, fermented dairy. A wonderful treat." -msgstr "Laticínios fermentados e açucarados. Um deleite maravilhoso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "curdled milk" -msgstr "leite coalhado" +msgstr "" #. ~ Description for curdled milk #: lang/json/COMESTIBLE_from_json.py @@ -24540,8 +21489,6 @@ msgid "" "Milk that has been curdled with vinegar and rennet. It still needs to be " "salted and drained of whey." msgstr "" -" Leite que foi coalhado com vinagre e coalho. Ainda precisa ser " -"salgadoedrenado de soro." #: lang/json/COMESTIBLE_from_json.py msgid "hard cheese" @@ -24555,8 +21502,6 @@ msgid "" "Hard, dry cheese made to last, unlike modern processed cheese. Will make " "you thirsty though." msgstr "" -" queijo duro, queijo seco feito para durar, ao contrário do " -"queijoprocessadomoderno. Vai fazer você com sede embora." #: lang/json/COMESTIBLE_from_json.py msgid "cheese" @@ -24567,16 +21512,16 @@ msgstr[1] "" #. ~ Description for cheese #: lang/json/COMESTIBLE_from_json.py msgid "A block of yellow processed cheese." -msgstr "queijoUm bloco de queijo processado amarelo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "quesadilla" -msgstr "Quesadilla" +msgstr "" #. ~ Description for quesadilla #: lang/json/COMESTIBLE_from_json.py msgid "A tortilla filled with cheese and lightly grilled." -msgstr "Uma tortilla recheada com queijo e levemente grelhada." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "powdered milk" @@ -24588,8 +21533,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Dehydrated milk powder. Mix with water to make drinkable milk." msgstr "" -" Leite em pó Leite em pó desidratado. Misture com água para " -"fazerleitebebível." #: lang/json/COMESTIBLE_from_json.py msgid "condensed milk" @@ -24603,8 +21546,6 @@ msgid "" "Cow's milk that has been partly dehydrated to vastly increase its shelf " "life, and also sweetened." msgstr "" -" Leite condensado Leite da vaca parcialmente desidratado " -"paraaumentarconsideravelmente o prazo de validade e também adoçado." #: lang/json/COMESTIBLE_from_json.py msgid "apple cider" @@ -24616,7 +21557,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Pressed from fresh apples. Tasty and nutritious." msgstr "" -" cidreira de maçã Pressionado a partir de maçãs frescas. Saborosaenutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "almond milk" @@ -24653,10 +21593,6 @@ msgid "" "NUCLEAR brewing cycle. Every possible microgram of caffeine and flavor has " "been carefully extracted for your enjoyment, using the power of the atom." msgstr "" -" café atômicoEsta porção de café foi criada usando o ciclo de " -"fabricaçãodeFULL NUCLEAR de um pote de café atômico. Cada micrograma " -"possíveldecafeína e sabor foi cuidadosamente extraído para sua diversão, " -"usandoo poder do átomo." #: lang/json/COMESTIBLE_from_json.py msgid "bee balm tea" @@ -24670,18 +21606,15 @@ msgid "" "A healthy beverage made from bee balm steeped in boiling water. Can be used" " to reduce negative effects of common cold or flu." msgstr "" -" chá de bálsamo de abelha Uma bebida saudável feita de bálsamo " -"deabelhamergulhada em água fervente. Pode ser usado para reduzir " -"osefeitosnegativos do resfriado comum ou gripe." #: lang/json/COMESTIBLE_from_json.py msgid "coconut milk" -msgstr "Leite de côco" +msgstr "" #. ~ Description for coconut milk #: lang/json/COMESTIBLE_from_json.py msgid "A dense, sweet creamy sauce, often used in curries." -msgstr "Um molho cremoso denso e doce, usado frequentemente em caril." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chai tea" @@ -24692,7 +21625,7 @@ msgstr[1] "" #. ~ Description for chai tea #: lang/json/COMESTIBLE_from_json.py msgid "A traditional south Asian mixed-spice tea with milk." -msgstr "chai teaUm chá tradicional de especiarias asiáticas do sul com leite." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chamomile tea" @@ -24709,7 +21642,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chocolate drink" -msgstr "bebida de chocolate" +msgstr "" #. ~ Description for chocolate drink #: lang/json/COMESTIBLE_from_json.py @@ -24717,9 +21650,6 @@ msgid "" "A chocolate flavored beverage made of artificial flavoring and milk " "byproducts. Shelf stable and vaguely appetizing even when lukewarm." msgstr "" -" Uma bebida com sabor de chocolate feita de aroma artificial e " -"derivadosdeleite. Prateleira estável e vagamente apetitosa mesmo quando " -"morna." #: lang/json/COMESTIBLE_from_json.py msgid "coffee" @@ -24734,10 +21664,6 @@ msgid "" "cherries through a complex process of seed removal, roasting, grinding, and " "brewing. Coffee is substantially richer in caffeine than its rival tea." msgstr "" -" O ritual da manhã do mundo pré-apocalíptico, criado a partir de " -"cerejasdecafé através de um processo complexo de remoção de sementes, " -"torrefação, moagem e fabricação de cerveja. O café é substancialmente " -"maisrico emcafeína que seu chá rival." #: lang/json/COMESTIBLE_from_json.py msgid "coffee substitute" @@ -24768,16 +21694,16 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dark cola" -msgstr "cola escura" +msgstr "" #. ~ Description for dark cola #: lang/json/COMESTIBLE_from_json.py msgid "Things go better with cola. Sugar water with caffeine added." -msgstr "As coisas vão melhor com cola. Água de açúcar com cafeína adicionada." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "energy cola" -msgstr "cola de energia" +msgstr "" #. ~ Description for energy cola #: lang/json/COMESTIBLE_from_json.py @@ -24785,8 +21711,6 @@ msgid "" "It tastes and looks like windshield wiper fluid, but it's loaded to the brim" " with sugar and caffeine." msgstr "" -" Tem gosto e se parece com fluido limpador de pára-brisa, mas é " -"carregadoatéa borda com açúcar e cafeína." #. ~ Description for condensed milk #: lang/json/COMESTIBLE_from_json.py @@ -24797,21 +21721,21 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cream soda" -msgstr "refrigerante de creme" +msgstr "" #. ~ Description for cream soda #: lang/json/COMESTIBLE_from_json.py msgid "A caffeinated, carbonated drink, flavored with vanilla." -msgstr "Uma bebida com cafeína e carbonatada, aromatizada com baunilha." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cranberry juice" -msgstr "Suco de oxicoco" +msgstr "" #. ~ Description for cranberry juice #: lang/json/COMESTIBLE_from_json.py msgid "Made from real Massachusetts cranberries. Delicious and nutritious." -msgstr "Feito de cranberries reais de Massachusetts. Delicioso e nutritivo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "crispy cranberry" @@ -24823,8 +21747,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Mixing cranberry juice and lemon-lime soda works out quite well." msgstr "" -" cranberry crispyMixing suco de cranberry e refrigerante de limão " -"elimafunciona muito bem." #: lang/json/COMESTIBLE_from_json.py msgid "dandelion tea" @@ -24836,12 +21758,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A healthy beverage made from dandelion roots steeped in boiling water." msgstr "" -" dandelion teaUma bebida saudável feita a partir de raízes de dente " -"deleãomergulhada em água fervente." #: lang/json/COMESTIBLE_from_json.py msgid "eggnog" -msgstr "gemada" +msgstr "" #. ~ Description for eggnog #: lang/json/COMESTIBLE_from_json.py @@ -24850,13 +21770,10 @@ msgid "" "popular traditional holiday drink. While often spiked, it is still " "delicious on its own. Meant to be stored cold, it will spoil rapidly." msgstr "" -" Suave e rica, esta mistura de leite, creme e ovos é uma bebida " -"tradicionalepopular. Embora muitas vezes, ele ainda é delicioso por " -"contaprópria. Significa ser armazenado frio, vai estragar rapidamente." #: lang/json/COMESTIBLE_from_json.py msgid "energy drink" -msgstr "bebida energética" +msgstr "" #. ~ Description for energy drink #: lang/json/COMESTIBLE_from_json.py @@ -24864,12 +21781,10 @@ msgid "" "A heavily caffeinated soft drink. Energy drinks are popular among those who" " need to stay up late working." msgstr "" -" Um refrigerante fortemente cafeinado. Bebidas energéticas sãopopularesentre" -" aqueles que precisam ficar acordados até tarde trabalhando." #: lang/json/COMESTIBLE_from_json.py msgid "atomic energy drink" -msgstr "bebida de energia atômica" +msgstr "" #. ~ Description for atomic energy drink #: lang/json/COMESTIBLE_from_json.py @@ -24879,10 +21794,6 @@ msgid "" " consumer UNCOMFORTABLY ENERGETIC using ELECTROLYTES and THE POWER OF THE " "ATOM." msgstr "" -" De acordo com o rótulo, esta bebida de gosto repugnante é chamada " -"deATOMICPOWER THIRST. Juntamente com a longa advertência de saúde, " -"elaprometetornar o consumidor INTEGRADAMENTE ENERGÉTICO usando ELETRÓLITOS e" -" OPODERDO ATOM." #: lang/json/COMESTIBLE_from_json.py msgid "herbal tea" @@ -24894,7 +21805,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A healthy beverage made from herbs steeped in boiling water." msgstr "" -" herbal teaA bebida saudável feita de ervas mergulhada em água fervente." #: lang/json/COMESTIBLE_from_json.py msgid "hot chocolate" @@ -24908,27 +21818,24 @@ msgid "" "Also known as hot cocoa, this heated chocolate beverage is perfect for a " "cold winter day." msgstr "" -" chocolate quenteTambém conhecido como chocolate quente, esta " -"bebidadechocolate aquecida é perfeita para um dia frio de inverno." #: lang/json/COMESTIBLE_from_json.py msgid "fruit juice" -msgstr "suco de fruta" +msgstr "" #. ~ Description for fruit juice #: lang/json/COMESTIBLE_from_json.py msgid "Freshly-squeezed from real fruit! Tasty and nutritious." -msgstr "Recém-espremido de fruta real! Saborosa e nutritiva." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "kompot" -msgstr "compota" +msgstr "" #. ~ Description for kompot #: lang/json/COMESTIBLE_from_json.py msgid "Clear juice obtained by cooking fruit in a large volume of water." msgstr "" -"Suco claro obtido por cozimento de frutas em um grande volume de água." #: lang/json/COMESTIBLE_from_json.py msgid "lemonade" @@ -24942,12 +21849,10 @@ msgid "" "Lemon juice mixed with water and sugar to dull the sourness. Delicious and " "refreshing." msgstr "" -" limonadaLemon suco misturado com água e açúcar para amenizar aacidez. " -"Delicioso e refrescante." #: lang/json/COMESTIBLE_from_json.py msgid "lemon-lime soda" -msgstr "refrigerante de limão e lima" +msgstr "" #. ~ Description for lemon-lime soda #: lang/json/COMESTIBLE_from_json.py @@ -24955,9 +21860,6 @@ msgid "" "Unlike cola this is caffeine free, however it is still carbonated and has " "plenty of sugar. Not to mention a lemon-lime taste." msgstr "" -" Ao contrário de cola, esta é livre de cafeína, no entanto, " -"aindaégaseificada e tem muito açúcar. Para não mencionar um sabor de " -"limãoelima." #: lang/json/COMESTIBLE_from_json.py msgid "Mexican hot chocolate" @@ -24971,9 +21873,6 @@ msgid "" "This semi-bitter chocolate drink made from cocoa, cinnamon, and chilies, " "traces its history to the Maya and Aztecs. Perfect for a cold winter day." msgstr "" -" Chocolate quente mexicano Esta bebida de chocolate semi-amargo " -"feitodecacau, canela e pimenta, traça sua história para os maias eastecas. " -"Perfeito para um dia frio de inverno." #: lang/json/COMESTIBLE_from_json.py lang/json/ammunition_type_from_json.py msgid "milk" @@ -24985,8 +21884,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Baby cow food, appropriated for adult humans. Spoils rapidly." msgstr "" -" alimento de vaca milkBaby, apropriado para humanos adultos. " -"Estragarapidamente." #: lang/json/COMESTIBLE_from_json.py msgid "reconstituted milk" @@ -25003,7 +21900,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "coffee milk" -msgstr "café com leite" +msgstr "" #. ~ Description for coffee milk #: lang/json/COMESTIBLE_from_json.py @@ -25011,30 +21908,28 @@ msgid "" "Coffee syrup mixed into milk. It's been the state drink of Rhode Island " "since 1993." msgstr "" -" Xarope de café misturado com leite. Tem sido a bebida do estado " -"deRhodeIsland desde 1993." #: lang/json/COMESTIBLE_from_json.py msgid "milk tea" -msgstr "Chã com leite" +msgstr "" #. ~ Description for milk tea #: lang/json/COMESTIBLE_from_json.py msgid "Hot tea with cold milk." -msgstr "Chá quente com leite frio." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "orange juice" -msgstr "suco de laranja" +msgstr "" #. ~ Description for orange juice #: lang/json/COMESTIBLE_from_json.py msgid "Freshly-squeezed from real oranges! Tasty and nutritious." -msgstr "Recém-espremido de laranjas reais! Saborosa e nutritiva." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "orange soda" -msgstr "refrigerante de laranja" +msgstr "" #. ~ Description for orange soda #: lang/json/COMESTIBLE_from_json.py @@ -25042,8 +21937,6 @@ msgid "" "Unlike cola this is caffeine free, however it is still carbonated, sweet, " "and tastes vaguely orange-like." msgstr "" -" Ao contrário de cola, esta é livre de cafeína, no entanto, " -"aindaégaseificada, doce e tem um gosto ligeiramente semelhante a laranja." #: lang/json/COMESTIBLE_from_json.py msgid "pine needle tea" @@ -25057,12 +21950,10 @@ msgid "" "A fragrant and healthy beverage made from pine needles steeped in boiling " "water." msgstr "" -" Uma agulha perfumada e saudável feita a partir de agulhas " -"depinheiromergulhadas em água fervente." #: lang/json/COMESTIBLE_from_json.py msgid "grape drink" -msgstr "bebida de uva" +msgstr "" #. ~ Description for grape drink #: lang/json/COMESTIBLE_from_json.py @@ -25071,9 +21962,6 @@ msgid "" " you want something that tastes like fruit, but still don't care about your " "health." msgstr "" -" Uma bebida de origem artificial com sabor a uva produzida em massa. " -"Bomparaquando você quer algo que gosto de frutas, mas ainda não se " -"preocupamcomsua saúde." #: lang/json/COMESTIBLE_from_json.py msgid "root beer" @@ -25084,11 +21972,11 @@ msgstr[1] "" #. ~ Description for root beer #: lang/json/COMESTIBLE_from_json.py msgid "Like cola, but without caffeine. Still not that healthy." -msgstr "cerveja de raiz, mas sem cafeína. Ainda não é tão saudável." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "spezi" -msgstr "especi" +msgstr "" #. ~ Description for spezi #: lang/json/COMESTIBLE_from_json.py @@ -25096,12 +21984,10 @@ msgid "" "Originating in Germany almost a century ago, this mix of cola and orange " "soda tastes great." msgstr "" -" Originada na Alemanha há quase um século, essa mistura de " -"refrigerantedecola e laranja tem um ótimo sabor." #: lang/json/COMESTIBLE_from_json.py msgid "sports drink" -msgstr "bebida esportiva" +msgstr "" #. ~ Description for sports drink #: lang/json/COMESTIBLE_from_json.py @@ -25110,9 +21996,6 @@ msgid "" "beverage tastes like bottled sweat but rehydrates the body faster than " "water." msgstr "" -" Consistindo de uma mistura especial de eletrólitos e açúcares simples, " -"estabebida tem gosto de suor engarrafado, mas reidrata o corpo " -"maisrapidamentedo que a água." #: lang/json/COMESTIBLE_from_json.py msgid "sweet water" @@ -25123,11 +22006,11 @@ msgstr[1] "" #. ~ Description for sweet water #: lang/json/COMESTIBLE_from_json.py msgid "Water with sugar or honey added. Tastes okay." -msgstr "água doce Água com açúcar ou mel adicionado. Está tudo bem." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tea" -msgstr "chá" +msgstr "" #. ~ Description for tea #: lang/json/COMESTIBLE_from_json.py @@ -25135,12 +22018,10 @@ msgid "" "The beverage of gentlemen everywhere, made from applying hot water to leaves" " of the tea plant /Camellia sinensis/." msgstr "" -" A bebida dos cavalheiros em toda parte, feita a partir da aplicação " -"deáguaquente às folhas da planta do chá / Camellia sinensis /." #: lang/json/COMESTIBLE_from_json.py msgid "bark tea" -msgstr "chá da casca" +msgstr "" #. ~ Description for bark tea #: lang/json/COMESTIBLE_from_json.py @@ -25148,18 +22029,15 @@ msgid "" "Often regarded as folk medicine in some countries, bark tea tastes awful and" " tends to dry you out, but can help flush out stomach or other gut bugs." msgstr "" -" Muitas vezes considerado como medicina popular em alguns países, o " -"chádacasca tem um gosto horrível e tende a secá-lo, mas pode ajudar a " -"eliminaroestômago ou outros insectos intestinais." #: lang/json/COMESTIBLE_from_json.py msgid "V8" -msgstr "V8" +msgstr "" #. ~ Description for V8 #: lang/json/COMESTIBLE_from_json.py msgid "Contains up to eight vegetables! Nutritious and tasty." -msgstr "Contém até oito legumes! Nutritivo e saboroso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "clean water" @@ -25171,8 +22049,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Fresh, clean water. Truly the best thing to quench your thirst." msgstr "" -" Água limpaFresh, água limpa. Verdadeiramente a melhor coisa para " -"saciarsuasede." #: lang/json/COMESTIBLE_from_json.py msgid "mineral water" @@ -25184,17 +22060,15 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Fancy mineral water, so fancy it makes you feel fancy just holding it." msgstr "" -" Água mineralFancy mineral water, so fancy faz você se sentir " -"fantasiaapenassegurando-o." #: lang/json/COMESTIBLE_from_json.py msgid "red sauce" -msgstr "molho vermelho" +msgstr "" #. ~ Description for red sauce #: lang/json/COMESTIBLE_from_json.py msgid "A minimally seasoned sauce of cooked tomatoes." -msgstr "Um molho minimamente temperado de tomates cozidos." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "maple sap" @@ -25206,7 +22080,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A water and sugar solution that has been extracted from a maple tree." msgstr "" -" maple sapA água e solução de açúcar que foi extraída de uma árvore debordo." #: lang/json/COMESTIBLE_from_json.py msgid "mayonnaise" @@ -25220,17 +22093,15 @@ msgid "" "A gloppy mix of egg, oil, and salt that is traditionally used to moisten " "sandwiches." msgstr "" -" maioneseUma mistura desajeitada de ovo, óleo e sal que " -"étradicionalmenteusada para umedecer sanduíches." #: lang/json/COMESTIBLE_from_json.py msgid "ketchup" -msgstr "ketchup" +msgstr "" #. ~ Description for ketchup #: lang/json/COMESTIBLE_from_json.py msgid "A viscous paste of tomato, salt, and vinegar." -msgstr "Uma pasta viscosa de tomate, sal e vinagre." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mustard" @@ -25244,8 +22115,6 @@ msgid "" "A condiment made from the seeds of a mustard plant (/Brassica/ or " "/Sinapis/), vinegar, salt, and spices." msgstr "" -" mostarda Um condimento feito a partir das sementes de uma planta " -"demostarda(/ Brassica / ou / Sinapis /), vinagre, sal e especiarias." #: lang/json/COMESTIBLE_from_json.py msgid "forest honey" @@ -25259,13 +22128,10 @@ msgid "" "Honey, that stuff bees make. This one is \"forest honey\", a liquid form of" " honey. This honey won't spoil and is good for your digestion." msgstr "" -" floresta, mel, essa coisa que as abelhas fazem. Este é o\"mel " -"dafloresta\",uma forma líquida de mel. Este mel não vai estragar e é bompara" -" a suadigestão." #: lang/json/COMESTIBLE_from_json.py msgid "peanut butter" -msgstr "manteiga de amendoim" +msgstr "" #. ~ Description for peanut butter #: lang/json/COMESTIBLE_from_json.py @@ -25273,17 +22139,15 @@ 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 "" -" Uma gosma marrom que tem um gosto muito pequeno como o seu homônimo. " -"Nãoéruim, mas vai ficar no céu da boca." #: lang/json/COMESTIBLE_from_json.py msgid "imitation peanutbutter" -msgstr "imitação de manteiga de amendoim" +msgstr "" #. ~ Description for imitation peanutbutter #: lang/json/COMESTIBLE_from_json.py msgid "A thick, nutty brown paste." -msgstr "Uma pasta grossa e castanha." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vinegar" @@ -25297,8 +22161,6 @@ msgid "" "Shockingly tart white vinegar. This is what you get when you let your booze" " ferment too long." msgstr "" -" vinagreBrincado vinagre branco. Isso é o que você ganha quando " -"deixasuabebida fermentar por muito tempo." #: lang/json/COMESTIBLE_from_json.py msgid "vegetable cooking oil" @@ -25309,7 +22171,7 @@ msgstr[1] "" #. ~ Description for vegetable cooking oil #: lang/json/COMESTIBLE_from_json.py msgid "Thin yellow vegetable oil used for cooking." -msgstr "óleo vegetal amarelo óleo vegetal usado para cozinhar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "animal cooking oil" @@ -25334,9 +22196,6 @@ msgid "" "An extremely sugary tar-like syrup, produced by repeatedly boiling the juice" " of sugarcane or sugar beets. It has a slightly bitter aftertaste." msgstr "" -" melaço Um xarope de alcatrão extremamente açucarado, produzido " -"pelafervurarepetida do caldo de cana ou beterraba sacarina. Tem um " -"saborligeiramenteamargo." #: lang/json/COMESTIBLE_from_json.py msgid "horseradish" @@ -25347,7 +22206,7 @@ msgstr[1] "" #. ~ Description for horseradish #: lang/json/COMESTIBLE_from_json.py msgid "A spicy grated root vegetable packed in vinegared brine." -msgstr "rábano picante vegetal de raiz ralado embalado em salmoura vinagreed." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "coffee syrup" @@ -25361,64 +22220,60 @@ msgid "" "A thick syrup made of water and sugar strained through coffee grounds. Can " "be used to flavor many foods and beverages." msgstr "" -" xarope de caféUm xarope espesso feito de água e açúcar tenso atravésdegrãos" -" de café. Pode ser usado para dar sabor a muitos alimentos ebebidas." #: lang/json/COMESTIBLE_from_json.py msgid "bird egg" -msgstr "ovo de ave" +msgstr "" #. ~ Description for bird egg #: lang/json/COMESTIBLE_from_json.py msgid "Nutritious egg laid by a bird." -msgstr "Ovo nutritivo colocado por um pássaro." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chicken egg" -msgstr "ovo de galinha" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "grouse egg" -msgstr "ovo de perdiz" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "crow egg" -msgstr "ovo de galinha" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "duck egg" -msgstr "ovo de pato" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "goose egg" -msgstr "ovo de ganso" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "turkey egg" -msgstr "ovo de peru" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pheasant egg" -msgstr "ovo de faisão" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cockatrice egg" -msgstr "ovo de catatrice" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "reptile egg" -msgstr "ovo de réptil" +msgstr "" #. ~ Description for reptile egg #: lang/json/COMESTIBLE_from_json.py msgid "An egg belonging to one of reptile species found in New England." msgstr "" -" Um ovo pertencente a uma das espécies de répteis encontrados " -"naNovaInglaterra." #: lang/json/COMESTIBLE_from_json.py msgid "ant egg" -msgstr "ovo de formiga" +msgstr "" #. ~ Description for ant egg #: lang/json/COMESTIBLE_from_json.py @@ -25426,55 +22281,51 @@ msgid "" "A large white ant egg, the size of a softball. Extremely nutritious, but " "incredibly gross." msgstr "" -" Um grande ovo de formiga branca, do tamanho de uma bola defutebol. " -"Extremamente nutritivo, mas incrivelmente nojento." #: lang/json/COMESTIBLE_from_json.py msgid "spider egg" -msgstr "ovo de aranha" +msgstr "" #. ~ Description for spider egg #: lang/json/COMESTIBLE_from_json.py msgid "A fist-sized egg from a giant spider. Incredibly gross." msgstr "" -" Um ovo do tamanho de um punho de uma aranha gigante. Incrivelmente nojento." #: lang/json/COMESTIBLE_from_json.py msgid "roach egg" -msgstr "ovo da barata" +msgstr "" #. ~ Description for roach egg #: lang/json/COMESTIBLE_from_json.py msgid "A fist-sized egg from a giant roach. Incredibly gross." msgstr "" -" Um ovo do tamanho de um punho de uma barata gigante. Incrivelmente nojento." #: lang/json/COMESTIBLE_from_json.py msgid "insect egg" -msgstr "ovo de inseto" +msgstr "" #. ~ Description for insect egg #: lang/json/COMESTIBLE_from_json.py msgid "A fist-sized egg from a locust." -msgstr "Um ovo do tamanho de um punho de um gafanhoto." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "razorclaw roe" -msgstr "roe razorclaw" +msgstr "" #. ~ Description for razorclaw roe #: lang/json/COMESTIBLE_from_json.py msgid "A clump of razorclaw eggs. A post-cataclysm delicacy." -msgstr "Um monte de ovos de navalha. Uma delicadeza pós-cataclismo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "roe" -msgstr "ova" +msgstr "" #. ~ Description for roe #: lang/json/COMESTIBLE_from_json.py msgid "Common roe from an unknown fish." -msgstr "Ovas comuns de um peixe desconhecido." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "powdered egg" @@ -25485,7 +22336,7 @@ msgstr[1] "" #. ~ Description for powdered egg #: lang/json/COMESTIBLE_from_json.py msgid "Whole fresh eggs, dehydrated into an easy to store powder." -msgstr "ovo em pó ovos frescos, desidratados em um fácil de armazenar em pó." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "scrambled eggs" @@ -25496,7 +22347,7 @@ msgstr[1] "" #. ~ Description for scrambled eggs #: lang/json/COMESTIBLE_from_json.py msgid "Fluffy and delicious scrambled eggs." -msgstr "ovos mexidos, ovos mexidos, deliciosos e deliciosos." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "boiled egg" @@ -25507,18 +22358,17 @@ msgstr[1] "" #. ~ Description for boiled egg #: lang/json/COMESTIBLE_from_json.py msgid "A hard boiled egg, still in its shell. Portable and nutritious!" -msgstr "ovo cozido Um ovo cozido, ainda em sua casca. Portátil e nutritivo!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pickled egg" -msgstr "ovo em conserva" +msgstr "" #. ~ Description for pickled egg #: lang/json/COMESTIBLE_from_json.py msgid "" "A pickled egg. Rather salty, but tastes good and lasts for a long time." msgstr "" -" Um ovo em conserva. Um pouco salgado, mas bom gosto e dura muito tempo." #: lang/json/COMESTIBLE_from_json.py msgid "milkshake" @@ -25532,8 +22382,6 @@ msgid "" "An all-natural cold beverage made with milk and sweeteners. Tastes great " "when frozen." msgstr "" -" milk-shakeUma bebida fria natural feita com leite e adoçantes. Tem " -"umótimosabor quando congelado." #: lang/json/COMESTIBLE_from_json.py msgid "fast food milkshake" @@ -25547,9 +22395,6 @@ msgid "" "A milkshake made by freezing a premade mix. Tastes better due to how much " "sugar is in it, but is bad for your health." msgstr "" -" milkshake de fast foodUm milk-shake feito pelo congelamento de um " -"mixdepremade. O gosto é melhor devido a quantidade de açúcar, mas é ruim " -"paraasaúde." #: lang/json/COMESTIBLE_from_json.py msgid "deluxe milkshake" @@ -25563,9 +22408,6 @@ msgid "" "This milkshake has been enhanced with added sweeteners, and even has a " "cherry on top. Tastes great, but is fairly awful for your health." msgstr "" -" milkshake de luxo Este milkshake foi melhorado com adoçantes " -"adicionadoseaté tem uma cereja no topo. Bom gosto, mas é bastante terrível " -"para asuasaúde." #: lang/json/COMESTIBLE_from_json.py msgid "ice cream" @@ -25577,7 +22419,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A sweet, frozen food made of milk with liberal amounts of sugar." msgstr "" -" Um doce, comida congelada feita de leite com quantidades generosasdeaçúcar." #: lang/json/COMESTIBLE_from_json.py msgid "dairy dessert" @@ -25592,9 +22433,6 @@ msgid "" "cream, it be called a dairy dessert instead. It still tastes good, but your" " body won't like you." msgstr "" -" As regulamentações governamentais ditam que, como isso não " -"étecnicamentesorvete, pode ser chamado de sobremesa láctea. Ainda é bom, " -"masseu corponão vai gostar de você." #: lang/json/COMESTIBLE_from_json.py msgid "candy ice cream" @@ -25607,8 +22445,6 @@ msgstr[1] "" msgid "" "Ice cream with bits of chocolate, caramel, or other flavoring mixed in." msgstr "" -" sorvete de chocolate Geleia com pedaços de chocolate, caramelo " -"ououtroscondimentos misturados." #: lang/json/COMESTIBLE_from_json.py msgid "fruity ice cream" @@ -25622,8 +22458,6 @@ msgid "" "Small bits of sweet fruit have been tossed into this ice cream, making it " "slightly less terrible for you." msgstr "" -" Sorvete de frutas Pequenos pedaços de fruta doce foram " -"lançadosnestesorvete, tornando-o um pouco menos terrível para você." #: lang/json/COMESTIBLE_from_json.py msgid "frozen custard" @@ -25638,10 +22472,6 @@ msgid "" "ice cream, but with egg yolk added in. Its storing temperature is warmer, " "and it lasts a little longer than regular ice cream." msgstr "" -" creme congelado Parecido com sorvete, esse mimo que ficou famoso " -"emConeyIsland é feito de sorvete, mas com gema de ovo adicionada. " -"Suatemperaturade armazenamento é mais quente e dura um pouco mais do que " -"osorvetenormal." #: lang/json/COMESTIBLE_from_json.py msgid "frozen yogurt" @@ -25655,9 +22485,6 @@ msgid "" "Tarter than ice cream, this is made with yogurt and other dairy products, " "and is generally low-fat compared to ice cream itself." msgstr "" -" iogurte congelado Mais do que sorvete, isso é feito com iogurte " -"eoutrosprodutos lácteos, e é geralmente de baixo teor de gordura " -"emcomparação como próprio sorvete." #: lang/json/COMESTIBLE_from_json.py msgid "sorbet" @@ -25669,7 +22496,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A simple frozen dessert food made from water and fruit juice." msgstr "" -" sorbetA simples sobremesa gelada feita a partir de água e suco de frutas." #: lang/json/COMESTIBLE_from_json.py msgid "gelato" @@ -25683,8 +22509,6 @@ msgid "" "Italian-style ice cream. Less airy, and more dense, giving it a richer " "flavor and texture." msgstr "" -" Gelato Sorvete de estilo italiano. Menos arejado e mais denso, dando- " -"lheumsabor e textura mais ricos." #: lang/json/COMESTIBLE_from_json.py msgid "cooked strawberry" @@ -25695,16 +22519,16 @@ msgstr[1] "" #. ~ Description for cooked strawberry #: lang/json/COMESTIBLE_from_json.py msgid "It's like strawberry jam, only without sugar." -msgstr "morango cozido É como geléia de morango, só sem açúcar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fruit leather" -msgstr "couro de frutas" +msgstr "" #. ~ Description for fruit leather #: lang/json/COMESTIBLE_from_json.py msgid "Dried strips of sugary fruit paste." -msgstr "Tiras secas de pasta de frutas açucaradas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked blueberry" @@ -25715,7 +22539,7 @@ msgstr[1] "" #. ~ Description for cooked blueberry #: lang/json/COMESTIBLE_from_json.py msgid "It's like blueberry jam, only without sugar." -msgstr "blueberry cozido É como geléia de mirtilo, só sem açúcar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "peaches in syrup" @@ -25727,17 +22551,15 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Yellow cling peach slices packed in light syrup." msgstr "" -" pêssegos em fatias de pêssego xarope amarelo-amarrado embalados em " -"xaropedeluz." #: lang/json/COMESTIBLE_from_json.py msgid "canned pineapple" -msgstr "abacaxi em conserva" +msgstr "" #. ~ Description for canned pineapple #: lang/json/COMESTIBLE_from_json.py msgid "Canned pineapple rings in water. Quite tasty." -msgstr "Anéis de abacaxi em conserva na água. Muito saborosa." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lemonade drink mix" @@ -25751,26 +22573,24 @@ msgid "" "Tangy yellow powder that smells strongly of lemons. Can be mixed with water" " to make lemonade." msgstr "" -" limonada bebida mixTangy pó amarelo que cheira fortemente de limões. " -"Podeser misturado com água para fazer limonada." #: lang/json/COMESTIBLE_from_json.py msgid "cooked fruit" -msgstr "fruta cozida" +msgstr "" #. ~ Description for cooked fruit #: lang/json/COMESTIBLE_from_json.py msgid "It's like fruit jam, only without sugar." -msgstr "É como geléia de frutas, só sem açúcar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fruit jam" -msgstr "compota de frutas" +msgstr "" #. ~ Description for fruit jam #: lang/json/COMESTIBLE_from_json.py msgid "Fresh fruit, cooked with sugar to make them last longer." -msgstr "Frutas frescas, cozidas com açúcar para durar mais tempo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated fruit" @@ -25785,9 +22605,6 @@ msgid "" "edible for an incredibly long time. They are useful for several cooking " "recipes." msgstr "" -" fruta desidratada Flocos de fruta desidratada. Com o armazenamentoadequado," -" este alimento seco permanecerá comestível por um tempoincrivelmente longo. " -"Eles são úteis para várias receitas de culinária." #: lang/json/COMESTIBLE_from_json.py msgid "rehydrated fruit" @@ -25801,20 +22618,16 @@ msgid "" "Reconstituted fruit flakes, which are much more enjoyable to eat now that " "they have been rehydrated." msgstr "" -" frutas reidratadasFolhas de frutas reconstituídas, que são " -"muitomaisagradáveis de comer agora que foram reidratadas." #: lang/json/COMESTIBLE_from_json.py msgid "fruit slice" -msgstr "fatia de fruta" +msgstr "" #. ~ Description for fruit slice #: lang/json/COMESTIBLE_from_json.py msgid "" "Fruit slices soaked in a sugar syrup, to preserve freshness and appearance." msgstr "" -" Fatias de frutas embebidas em xarope de açúcar, para preservar a frescuraea" -" aparência." #: lang/json/COMESTIBLE_from_json.py msgid "canned fruit" @@ -25828,8 +22641,6 @@ msgid "" "This sodden mass of preserved fruit was boiled and canned in an earlier " "life. Bland, mushy and losing color." msgstr "" -" fruta enlatada Esta massa encharcada de fruta conservada foi " -"fervidaeenlatada em uma vida anterior. Sem graça, mole e perdendo a cor." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rose hips" @@ -25843,9 +22654,6 @@ msgid "" "An irradiated rose hips will remain edible nearly forever. Sterilized using" " radiation, so it's safe to eat." msgstr "" -" Rosa Mosqueta irradiada Uma rosa mosqueta irradiada " -"permanecerácomestívelquase para sempre. Esterilizado usando radiação, por " -"isso éseguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated elderberry" @@ -25859,9 +22667,6 @@ msgid "" "An irradiated elderberry will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" sabugueiro irradiado Um sabugueiro irradiado permanecerá " -"comestívelquasepara sempre. Esterilizado usando radiação, por isso é seguro " -"comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated mulberry" @@ -25875,8 +22680,6 @@ msgid "" "An irradiated mulberry will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" amora irradiada Uma amora irradiada permanecerá comestível quaseparasempre." -" Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated huckleberry" @@ -25890,9 +22693,6 @@ msgid "" "An irradiated huckleberry will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" huckleberry irradiadoUm huckleberry irradiado permanecerá " -"comestívelquasepara sempre. Esterilizado usando radiação, por isso é seguro " -"comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated raspberry" @@ -25906,8 +22706,6 @@ msgid "" "An irradiated raspberry will remain edible nearly forever. Sterilized using" " radiation, so it's safe to eat." msgstr "" -" framboesa irradiada Uma framboesa irradiada permanecerá comestívelquasepara" -" sempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated cranberry" @@ -25921,8 +22719,6 @@ msgid "" "An irradiated cranberry will remain edible nearly forever. Sterilized using" " radiation, so it's safe to eat." msgstr "" -" cranberry irradiadaUma cranberry irradiada permanecerá comestível " -"quaseparasempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated strawberry" @@ -25936,8 +22732,6 @@ msgid "" "An irradiated strawberry will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" morango irradiadoUm morango irradiado permanecerá comestível " -"quaseparasempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated blueberry" @@ -25951,12 +22745,10 @@ msgid "" "An irradiated blueberry will remain edible nearly forever. Sterilized using" " radiation, so it's safe to eat." msgstr "" -" mirtilo irradiadoUm mirtilo irradiado permanecerá comestível " -"quaseparasempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated apple" -msgstr "maçã irradiada" +msgstr "" #. ~ Description for irradiated apple #: lang/json/COMESTIBLE_from_json.py @@ -25964,12 +22756,10 @@ msgid "" "Mmm, irradiated. Will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Mmm, irradiado. Ficará comestível quase para sempre. " -"Esterilizadousandoradiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated banana" -msgstr "banana irradiada" +msgstr "" #. ~ Description for irradiated banana #: lang/json/COMESTIBLE_from_json.py @@ -25977,12 +22767,10 @@ msgid "" "An irradiated banana will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Uma banana irradiada permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated orange" -msgstr "laranja irradiada" +msgstr "" #. ~ Description for irradiated orange #: lang/json/COMESTIBLE_from_json.py @@ -25990,12 +22778,10 @@ msgid "" "An irradiated orange will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Uma laranja irradiada permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated lemon" -msgstr "limão irradiado" +msgstr "" #. ~ Description for irradiated lemon #: lang/json/COMESTIBLE_from_json.py @@ -26003,12 +22789,10 @@ msgid "" "An irradiated lemon will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Um limão irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated grapefruit" -msgstr "toranja irradiada" +msgstr "" #. ~ Description for irradiated grapefruit #: lang/json/COMESTIBLE_from_json.py @@ -26016,12 +22800,10 @@ msgid "" "An irradiated grapefruit will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" Uma grapefruit irradiada permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated pear" -msgstr "pêra irradiada" +msgstr "" #. ~ Description for irradiated pear #: lang/json/COMESTIBLE_from_json.py @@ -26029,8 +22811,6 @@ msgid "" "An irradiated pear will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Uma pera irradiada permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated cherry" @@ -26044,12 +22824,10 @@ msgid "" "An irradiated cherry will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" cereja irradiadaUma cereja irradiada permanecerá comestível " -"quaseparasempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated plum" -msgstr "ameixa irradiada" +msgstr "" #. ~ Description for irradiated plum #: lang/json/COMESTIBLE_from_json.py @@ -26057,8 +22835,6 @@ msgid "" "A group of irradiated plums will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" Um grupo de ameixas irradiadas permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated grape" @@ -26072,12 +22848,10 @@ msgid "" "An irradiated grape will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" uva irradiadaUma uva irradiada permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated pineapple" -msgstr "abacaxi irradiado" +msgstr "" #. ~ Description for irradiated pineapple #: lang/json/COMESTIBLE_from_json.py @@ -26085,8 +22859,6 @@ msgid "" "An irradiated pineapple will remain edible nearly forever. Sterilized using" " radiation, so it's safe to eat." msgstr "" -" Um abacaxi irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated peach" @@ -26100,12 +22872,10 @@ msgid "" "An irradiated peach will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" pêssego irradiado Um pêssego irradiado permanecerá comestível " -"quaseparasempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated watermelon" -msgstr "melancia irradiada" +msgstr "" #. ~ Description for irradiated watermelon #: lang/json/COMESTIBLE_from_json.py @@ -26113,12 +22883,10 @@ msgid "" "An irradiated watermelon will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" Uma melancia irradiada permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated melon" -msgstr "melão irradiado" +msgstr "" #. ~ Description for irradiated melon #: lang/json/COMESTIBLE_from_json.py @@ -26126,8 +22894,6 @@ msgid "" "An irradiated melon will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Um melão irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated blackberry" @@ -26141,13 +22907,10 @@ msgid "" "An irradiated blackberry will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" blackberry irradiadoUma blackberry irradiada permanecerá " -"comestívelquasepara sempre. Esterilizado usando radiação, por isso é seguro " -"comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated mango" -msgstr "manga irradiada" +msgstr "" #. ~ Description for irradiated mango #: lang/json/COMESTIBLE_from_json.py @@ -26155,12 +22918,10 @@ msgid "" "An irradiated mango will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Uma manga irradiada permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated pomegranate" -msgstr "romã irradiada" +msgstr "" #. ~ Description for irradiated pomegranate #: lang/json/COMESTIBLE_from_json.py @@ -26168,12 +22929,10 @@ msgid "" "An irradiated pomegranate will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" Uma romã irradiada permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated papaya" -msgstr "mamão irradiado" +msgstr "" #. ~ Description for irradiated papaya #: lang/json/COMESTIBLE_from_json.py @@ -26181,12 +22940,10 @@ msgid "" "An irradiated papaya will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Um mamão irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated kiwi" -msgstr "kiwi irradiado" +msgstr "" #. ~ Description for irradiated kiwi #: lang/json/COMESTIBLE_from_json.py @@ -26194,12 +22951,10 @@ msgid "" "An irradiated kiwi will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Um kiwi irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated apricot" -msgstr "damasco irradiado" +msgstr "" #. ~ Description for irradiated apricot #: lang/json/COMESTIBLE_from_json.py @@ -26207,12 +22962,10 @@ msgid "" "An irradiated apricot will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Um damasco irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated lettuce" -msgstr "alface irradiada" +msgstr "" #. ~ Description for irradiated lettuce #: lang/json/COMESTIBLE_from_json.py @@ -26220,12 +22973,10 @@ msgid "" "An irradiated head of lettuce will remain edible nearly forever. Sterilized" " using radiation, so it's safe to eat." msgstr "" -" Uma cabeça de alface irradiada permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated cabbage" -msgstr "repolho irradiado" +msgstr "" #. ~ Description for irradiated cabbage #: lang/json/COMESTIBLE_from_json.py @@ -26233,8 +22984,6 @@ msgid "" "An irradiated head of cabbage will remain edible nearly forever. Sterilized" " using radiation, so it's safe to eat." msgstr "" -" Uma cabeça de repolho irradiada permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated tomato" @@ -26248,8 +22997,6 @@ msgid "" "An irradiated tomato will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" tomate irradiado Um tomate irradiado permanecerá comestível " -"quaseparasempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated broccoli" @@ -26263,12 +23010,10 @@ msgid "" "An irradiated cluster of broccoli will remain edible nearly forever. " "Sterilized using radiation, so it's safe to eat." msgstr "" -" brócolis irradiado Um aglomerado de brócolis irradiadopermanecerácomestível" -" quase para sempre. Esterilizado usando radiação, porisso éseguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated zucchini" -msgstr "abobrinha irradiada" +msgstr "" #. ~ Description for irradiated zucchini #: lang/json/COMESTIBLE_from_json.py @@ -26276,12 +23021,10 @@ msgid "" "An irradiated zucchini will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Uma abobrinha irradiada permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated onion" -msgstr "cebola irradiada" +msgstr "" #. ~ Description for irradiated onion #: lang/json/COMESTIBLE_from_json.py @@ -26289,12 +23032,10 @@ msgid "" "An irradiated onion will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Uma cebola irradiada permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated carrot" -msgstr "cenoura irradiada" +msgstr "" #. ~ Description for irradiated carrot #: lang/json/COMESTIBLE_from_json.py @@ -26302,8 +23043,6 @@ msgid "" "An irradiated bundle of carrots will remain edible nearly forever. " "Sterilized using radiation, so it's safe to eat." msgstr "" -" Um feixe de cenouras irradiadas permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated corn" @@ -26317,13 +23056,10 @@ msgid "" "An irradiated ear of corn will remain edible nearly forever. Sterilized " "using radiation, so it's safe to eat." msgstr "" -" milho irradiadoUma espiga de milho irradiada permanecerá " -"comestívelquasepara sempre. Esterilizado usando radiação, por isso é seguro " -"comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated pumpkin" -msgstr "abóbora irradiada" +msgstr "" #. ~ Description for irradiated pumpkin #: lang/json/COMESTIBLE_from_json.py @@ -26331,8 +23067,6 @@ msgid "" "An irradiated pumpkin will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Uma abóbora irradiada permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated potato" @@ -26346,12 +23080,10 @@ msgid "" "An irradiated potato will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" batata irradiadaUma batata irradiada permanecerá comestível " -"quaseparasempre. Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated cucumber" -msgstr "pepino irradiado" +msgstr "" #. ~ Description for irradiated cucumber #: lang/json/COMESTIBLE_from_json.py @@ -26359,12 +23091,10 @@ msgid "" "An irradiated cucumber will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Um pepino irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated celery" -msgstr "aipo irradiado" +msgstr "" #. ~ Description for irradiated celery #: lang/json/COMESTIBLE_from_json.py @@ -26372,12 +23102,10 @@ msgid "" "An irradiated cluster of celery will remain edible nearly forever. " "Sterilized using radiation, so it's safe to eat." msgstr "" -" Um aglomerado de aipo irradiado permanecerá comestível quase parasempre. " -"Esterilizado usando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "irradiated rhubarb" -msgstr "ruibarbo irradiado" +msgstr "" #. ~ Description for irradiated rhubarb #: lang/json/COMESTIBLE_from_json.py @@ -26385,12 +23113,10 @@ msgid "" "An irradiated rhubarb will remain edible nearly forever. Sterilized using " "radiation, so it's safe to eat." msgstr "" -" Um ruibarbo irradiado permanecerá comestível quase para sempre. " -"Esterilizadousando radiação, por isso é seguro comer." #: lang/json/COMESTIBLE_from_json.py msgid "toast-em" -msgstr "toast-em" +msgstr "" #. ~ Description for toast-em #: lang/json/COMESTIBLE_from_json.py @@ -26398,8 +23124,6 @@ msgid "" "Dry toaster pastries usually coated with solid frosting and what luck! " "These are strawberry flavored!" msgstr "" -" Pastéis secos torradas geralmente revestidos com geada sólida e " -"quesorte!Estes são sabor morango!" #. ~ Description for toast-em #: lang/json/COMESTIBLE_from_json.py @@ -26407,8 +23131,6 @@ msgid "" "Dry toaster pastries, usually coated with solid frosting, these are " "blueberry flavored!" msgstr "" -" Massas secas, geralmente revestidas com cobertura sólida, são " -"sabordemirtilo!" #. ~ Description for toast-em #: lang/json/COMESTIBLE_from_json.py @@ -26416,8 +23138,6 @@ msgid "" "Dry toaster pastries, usually coated with solid frosting. Sadly, these are " "not." msgstr "" -" Pastelaria seca, geralmente revestida com cobertura sólida. Infelizmente, " -"estes não são." #: lang/json/COMESTIBLE_from_json.py msgid "toaster pastry (uncooked)" @@ -26431,9 +23151,6 @@ msgid "" "A delicious fruit-filled pastry that you can cook in your toaster. It even " "comes with frosting! Cook it to make it tasty." msgstr "" -" torradeira (não cozida) Uma deliciosa massa recheada de frutas que " -"vocêpodecozinhar na sua torradeira. Até vem com cobertura! Cozinhe para " -"torná-losaboroso." #: lang/json/COMESTIBLE_from_json.py msgid "toaster pastry" @@ -26447,8 +23164,6 @@ msgid "" "A delicious fruit-filled pastry that you've cooked. It even comes with " "frosting!" msgstr "" -" pastelaria torradaUma deliciosa massa recheada de frutas que vocêcozinhou. " -"Até vem com cobertura!" #: lang/json/COMESTIBLE_from_json.py msgid "potato chips" @@ -26459,12 +23174,12 @@ msgstr[1] "" #. ~ Description for potato chips #: lang/json/COMESTIBLE_from_json.py msgid "Some plain, salted potato chips." -msgstr "batatas fritas, batatas chips simples e salgadas." +msgstr "" #. ~ Description for potato chips #: lang/json/COMESTIBLE_from_json.py msgid "Oh man, you love these chips! Score!" -msgstr "Oh cara, você ama essas fichas! Ponto!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "popcorn kernels" @@ -26478,9 +23193,6 @@ msgid "" "Dried kernels from a particular type of corn. Practically inedible raw, " "they can be cooked to make a tasty snack." msgstr "" -" Grãos de pipoca Grãos secos de um determinado tipo de milho. " -"Praticamentenão comestíveis crus, eles podem ser cozidos para fazer umlanche" -" saboroso." #: lang/json/COMESTIBLE_from_json.py msgid "popcorn" @@ -26494,8 +23206,6 @@ msgid "" "Plain and unseasoned popcorn. Not as tasty as other kinds, but healthier as" " a result." msgstr "" -" pipoca e pipoca sem tempero. Não tão saboroso quanto outros tipos, " -"masmaissaudável como resultado." #: lang/json/COMESTIBLE_from_json.py msgid "salted popcorn" @@ -26506,7 +23216,7 @@ msgstr[1] "" #. ~ Description for salted popcorn #: lang/json/COMESTIBLE_from_json.py msgid "Popcorn with salt added for extra flavor." -msgstr "Pipoca salgada Pipoca com sal adicionado para o sabor extra." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "buttered popcorn" @@ -26518,8 +23228,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Popcorn with a light covering of butter for extra flavor." msgstr "" -" Pipoca amanteigada Pipoca com cobertura leve de manteiga para dar " -"umsaborextra." #: lang/json/COMESTIBLE_from_json.py msgid "pretzels" @@ -26530,25 +23238,25 @@ msgstr[1] "" #. ~ Description for pretzels #: lang/json/COMESTIBLE_from_json.py msgid "A salty treat of a snack." -msgstr "pretzels Um deleite salgado de um lanche." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chocolate-covered pretzel" -msgstr "pretzel coberto de chocolate" +msgstr "" #. ~ Description for chocolate-covered pretzel #: lang/json/COMESTIBLE_from_json.py msgid "A salty treat of a snack, covered in chocolate." -msgstr "Um deleite salgado de um lanche, coberto de chocolate." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chocolate bar" -msgstr "Barra de chocolate" +msgstr "" #. ~ Description for chocolate bar #: lang/json/COMESTIBLE_from_json.py msgid "Chocolate isn't very healthy, but it does make a delicious treat." -msgstr "O chocolate não é muito saudável, mas é um deleite delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "marshmallows" @@ -26560,8 +23268,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of squishy, fluffy, puffy, delicious marshmallows." msgstr "" -" marshmallows Um punhado de marshmallows macios, macios, " -"fofinhosedeliciosos." #: lang/json/COMESTIBLE_from_json.py msgid "s'mores" @@ -26575,8 +23281,6 @@ msgid "" "A pair of graham crackers with some chocolate and a marshmallow between " "them." msgstr "" -" s'mores Um par de biscoitos com um pouco de chocolate e " -"ummarshmallowentre eles." #: lang/json/COMESTIBLE_from_json.py msgid "peanut butter candy" @@ -26587,7 +23291,7 @@ msgstr[1] "" #. ~ Description for peanut butter candy #: lang/json/COMESTIBLE_from_json.py msgid "A handful of peanut butter cups... your favorite!" -msgstr "Um punhado de xícaras de manteiga de amendoim ... o seu favorito!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chocolate candy" @@ -26598,7 +23302,7 @@ msgstr[1] "" #. ~ Description for chocolate candy #: lang/json/COMESTIBLE_from_json.py msgid "A handful of colorful chocolate filled candies." -msgstr "chocolate candyA punhado de chocolate colorido cheio de doces." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chewy candy" @@ -26609,7 +23313,7 @@ msgstr[1] "" #. ~ Description for chewy candy #: lang/json/COMESTIBLE_from_json.py msgid "A handful of colorful fruit-flavored chewy candy." -msgstr "chewy candyA punhado de doces chewy coloridos com sabor de frutas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "powder candy sticks" @@ -26622,7 +23326,6 @@ msgstr[1] "" msgid "" "Thin paper tubes of sweet & sour candy powder. Who thinks of this stuff?" msgstr "" -" tubos de papel em pó de pó doce e azedo em pó. Quem pensa sobreessascoisas?" #: lang/json/COMESTIBLE_from_json.py msgid "maple syrup candy" @@ -26636,12 +23339,10 @@ msgid "" "This golden, translucent leaf candy is made with pure maple syrup and melt " "slowly as you savor the taste of real maple." msgstr "" -" Este doce de folha dourada e translúcida é feito com xarope de bordo " -"puroederrete lentamente enquanto saboreia o sabor do verdadeiro ácer." #: lang/json/COMESTIBLE_from_json.py msgid "graham cracker" -msgstr "biscoito de maizena" +msgstr "" #. ~ Description for graham cracker #: lang/json/COMESTIBLE_from_json.py @@ -26649,17 +23350,15 @@ msgid "" "Dry and sugary, these crackers will leave you thirsty, but go good with some" " chocolate and marshmallows." msgstr "" -" Seco e açucarado, esses biscoitos vão deixar você com sede, mas vai " -"bemcomalguns chocolates e marshmallows." #: lang/json/COMESTIBLE_from_json.py msgid "cookie" -msgstr "bolinhos" +msgstr "" #. ~ Description for cookie #: lang/json/COMESTIBLE_from_json.py msgid "Sweet and delicious cookies, just like grandma used to bake." -msgstr "Bolinhos doces e deliciosos, assim como a vovó costumava assar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "maple syrup" @@ -26673,8 +23372,6 @@ msgid "" "Boiling the sap of a maple tree has concentrated it into sweet, delicious " "maple syrup." msgstr "" -" xarope de bordoVirar a seiva de uma árvore de bordo a concentrou em umdocee" -" delicioso xarope de bordo." #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet syrup" @@ -26688,25 +23385,21 @@ msgid "" "A thick syrup produced from shredded sugar beets. Useful in cooking as a " "sweetener." msgstr "" -" xarope de beterraba Um xarope espesso produzido a partir " -"debeterrabatriturada. Útil na culinária como adoçante." #: lang/json/COMESTIBLE_from_json.py msgid "cake" -msgstr "bolo" +msgstr "" #. ~ Description for cake #: lang/json/COMESTIBLE_from_json.py msgid "" "Delicious sponge cake with buttercream icing, it says happy birthday on it." msgstr "" -" Bolo de esponja delicioso com crosta de gelo do buttercream, diz " -"ofelizaniversario nele." #. ~ Description for cake #: lang/json/COMESTIBLE_from_json.py msgid "Delicious chocolate cake. It has all the icing. All of it." -msgstr "Delicioso bolo de chocolate. Tem toda a cobertura. Tudo isso." +msgstr "" #. ~ Description for cake #: lang/json/COMESTIBLE_from_json.py @@ -26714,12 +23407,10 @@ msgid "" "A cake coated in the thickest icing you've ever seen. Someone has written " "guff in quotation marks on it..." msgstr "" -" Um bolo coberto com a cobertura mais grossa que você já viu. " -"Alguémescreveu\"guff\" entre aspas ..." #: lang/json/COMESTIBLE_from_json.py msgid "chocolate-covered coffee bean" -msgstr "feijão de café coberto de chocolate" +msgstr "" #. ~ Description for chocolate-covered coffee bean #: lang/json/COMESTIBLE_from_json.py @@ -26727,8 +23418,6 @@ msgid "" "Roasted coffee beans coated with dark chocolate, natural source of " "concentrated caffeine." msgstr "" -" Grãos de café torrados recobertos com chocolate amargo, fonte " -"naturaldecafeína concentrada." #: lang/json/COMESTIBLE_from_json.py msgid "fast-food French fries" @@ -26740,8 +23429,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Fast-food fried potatoes. Somehow, they're still edible." msgstr "" -" fast-food batatas fritas Batatas fritas fast-food. De alguma forma, " -"elesainda são comestíveis." #: lang/json/COMESTIBLE_from_json.py msgid "French fries" @@ -26753,7 +23440,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Deep fried potatoes with a touch of salt. Crunchy and delicious." msgstr "" -" Batatas fritasDeep batatas fritas com um toque de sal. Crocante edelicioso." #: lang/json/COMESTIBLE_from_json.py msgid "peppermint patty" @@ -26765,8 +23451,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of soft chocolate-covered peppermint patties... yum!" msgstr "" -" peppermint pattyA um punhado de pastéis de hortelã cobertos de " -"chocolate...yum!" #: lang/json/COMESTIBLE_from_json.py msgid "Necco wafers" @@ -26780,12 +23464,10 @@ msgid "" "A handful of candy wafers, in assorted flavors: orange, lemon, lime, clove, " "chocolate, wintergreen, cinnamon, and licorice. Yum!" msgstr "" -" Um punhado de bolachas doces, em sabores variados: laranja, limão, limão, " -"cravo, chocolate, wintergreen, canela e alcaçuz. Yum!" #: lang/json/COMESTIBLE_from_json.py msgid "candy cigarette" -msgstr "cigarro de doces" +msgstr "" #. ~ Description for candy cigarette #: lang/json/COMESTIBLE_from_json.py @@ -26793,8 +23475,6 @@ msgid "" "Candy sticks. Slightly more healthy than tobacco cigarettes, but with no " "possibility of addiction." msgstr "" -" Bastões de doces. Ligeiramente mais saudável que os cigarros de tabaco, " -"massem possibilidade de dependência." #: lang/json/COMESTIBLE_from_json.py msgid "caramel" @@ -26805,16 +23485,16 @@ msgstr[1] "" #. ~ Description for caramel #: lang/json/COMESTIBLE_from_json.py msgid "Some caramel. Still bad for your health." -msgstr "carameloAlgum caramelo. Ainda é ruim para sua saúde." +msgstr "" #. ~ Description for potato chips #: lang/json/COMESTIBLE_from_json.py msgid "Betcha can't eat just one." -msgstr "Betcha não pode comer apenas um." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sugary cereal" -msgstr "cereal açucarado" +msgstr "" #. ~ Description for sugary cereal #: lang/json/COMESTIBLE_from_json.py @@ -26822,17 +23502,15 @@ msgid "" "Sugary breakfast cereal with marshmallows. It takes you back to your " "childhood." msgstr "" -" Cereais matinais açucarados com marshmallows. Leva você de volta " -"àsuainfância." #: lang/json/COMESTIBLE_from_json.py msgid "corn cereal" -msgstr "cereal de milho" +msgstr "" #. ~ Description for corn cereal #: lang/json/COMESTIBLE_from_json.py msgid "Plain cornflake cereal. They're not that good, but it beats nothing." -msgstr "Cereal simples do cornflake. Eles não são tão bons, mas nada bate." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tortilla chips" @@ -26846,8 +23524,6 @@ msgid "" "Salted chips made from corn tortillas, could really use some cheese, maybe " "some beef." msgstr "" -" chips de tortillaSalted chips feitos de tortillas de milho, " -"poderiarealmente usar um pouco de queijo, talvez um pouco de carne bovina." #: lang/json/COMESTIBLE_from_json.py msgid "nachos with cheese" @@ -26861,8 +23537,6 @@ msgid "" "Salted chips made from corn tortillas, now with cheese. Could stand to have" " some meat." msgstr "" -" nachos com queijoSalted chips feitos de tortillas de milho, agoracomqueijo." -" Poderia ter um pouco de carne." #: lang/json/COMESTIBLE_from_json.py msgid "nachos with meat" @@ -26876,8 +23550,6 @@ msgid "" "Salted chips made from corn tortillas, now with meat. Could probably use " "some cheese, though." msgstr "" -" nachos com carneSalts salgados feitos de tortillas de milho, agoracomcarne." -" Poderia provavelmente usar algum queijo, no entanto." #: lang/json/COMESTIBLE_from_json.py msgid "niño nachos" @@ -26891,8 +23563,6 @@ msgid "" "Salted chips made from corn tortillas, with human flesh. Some cheese might " "make it even better." msgstr "" -" niño nachosSalted chips feitos de tortillas de milho, com carnehumana. " -"Alguns queijos podem melhorar ainda mais." #: lang/json/COMESTIBLE_from_json.py msgid "niño nachos with cheese" @@ -26906,8 +23576,6 @@ msgid "" "Salted chips made from corn tortillas with human flesh and smothered in " "cheese. Delicious." msgstr "" -" niño nachos com queijoSalted chips feitos de tortillas de milho " -"comcarnehumana e sufocada em queijo. Delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "nachos with meat and cheese" @@ -26921,17 +23589,15 @@ msgid "" "Salted chips made from corn tortillas with ground meat and smothered in " "cheese. Delicious." msgstr "" -" nachos com carne e queijoSalted chips feitos de tortillas de milho " -"comcarnemoída e sufocada em queijo. Delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "pork stick" -msgstr "vara de porco" +msgstr "" #. ~ Description for pork stick #: lang/json/COMESTIBLE_from_json.py msgid "Salty dried pork. Tastes good, but it will make you thirsty." -msgstr "Carne de porco seca salgada. Bom gosto, mas vai te deixar com sede." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "microwave burrito" @@ -26946,7 +23612,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "uncooked TV dinner" -msgstr "jantar de TV não cozido" +msgstr "" #. ~ Description for uncooked TV dinner #: lang/json/COMESTIBLE_from_json.py @@ -26954,12 +23620,10 @@ msgid "" "Now with ONE POUND of meat and ONE POUND of carbs! Not as appetizing or " "nutritious as it would be if heated up." msgstr "" -" Agora com uma libra de carne e uma libra de carboidratos! Não " -"tãoapetitosoou nutritivo como seria se estivesse aquecido." #: lang/json/COMESTIBLE_from_json.py msgid "cooked TV dinner" -msgstr "jantar de TV cozinhado" +msgstr "" #. ~ Description for cooked TV dinner #: lang/json/COMESTIBLE_from_json.py @@ -26967,17 +23631,15 @@ msgid "" "Now with ONE POUND of meat and ONE POUND of carbs! Nice and heated up. " "It's tastier and more filling, but will also spoil quickly." msgstr "" -" Agora com uma libra de carne e uma libra de carboidratos! Bom e " -"aquecido.Émais saboroso e mais recheio, mas também vai estragar rapidamente." #: lang/json/COMESTIBLE_from_json.py msgid "deep-fried chicken" -msgstr "frango frito" +msgstr "" #. ~ Description for deep-fried chicken #: lang/json/COMESTIBLE_from_json.py msgid "Chicken cooked while submerged in oil. It's greasy and delicious." -msgstr "Frango cozido enquanto submerso em óleo. É gorduroso e delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili dogs" @@ -26988,7 +23650,7 @@ msgstr[1] "" #. ~ Description for chili dogs #: lang/json/COMESTIBLE_from_json.py msgid "A hot dog, served with chili con carne as a topping. Yum!" -msgstr "Cachorro quente, servido com chili con carne como cobertura. Yum!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cheater chili dogs" @@ -27000,8 +23662,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A hot dog, served with chili con cabron as a topping. Delightful." msgstr "" -" Cachorro Chili Dogs Um cachorro-quente, servido com chili con " -"cabroncomocobertura. Delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "uncooked corn dogs" @@ -27015,12 +23675,10 @@ msgid "" "A heavily processed sausage, dipped in batter and deep fried. It would " "taste much better prepared." msgstr "" -" Cães de milho não cozidosUma salsicha altamente processada, " -"mergulhadaemmassa e frita. O gosto seria muito melhor preparado." #: lang/json/COMESTIBLE_from_json.py msgid "cooked corn dog" -msgstr "cachorro de milho cozido" +msgstr "" #. ~ Description for cooked corn dog #: lang/json/COMESTIBLE_from_json.py @@ -27028,8 +23686,6 @@ msgid "" "A heavily processed sausage, dipped in batter and deep fried. Cooked, this " "corn dog now tastes much better, but will spoil." msgstr "" -" Uma salsicha muito processada, mergulhada em massa e frita. Cozido, " -"estecachorro de milho agora tem um gosto muito melhor, mas vai estragar." #: lang/json/COMESTIBLE_from_json.py msgid "chocolate pancake" @@ -27043,12 +23699,10 @@ msgid "" "Fluffy and delicious pancakes with real maple syrup, with delicious " "chocolate baked right in." msgstr "" -" panqueca de chocolate Panquecas fofas e deliciosas com xarope de bordo, " -"comdeliciosos chocolates bem assados." #: lang/json/COMESTIBLE_from_json.py msgid "chocolate waffle" -msgstr "waffle de chocolate" +msgstr "" #. ~ Description for chocolate waffle #: lang/json/COMESTIBLE_from_json.py @@ -27056,17 +23710,15 @@ msgid "" "Crunchy and delicious waffles with real maple syrup, with delicious " "chocolate baked right in." msgstr "" -" Waffles crocantes e deliciosos com verdadeiro xarope de bordo, " -"comdeliciosos chocolates assados à direita." #: lang/json/COMESTIBLE_from_json.py msgid "cheese spread" -msgstr "propagação de queijo" +msgstr "" #. ~ Description for cheese spread #: lang/json/COMESTIBLE_from_json.py msgid "Processed cheese spread." -msgstr "Queijo processado espalhado." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cheese fries" @@ -27077,16 +23729,16 @@ msgstr[1] "" #. ~ Description for cheese fries #: lang/json/COMESTIBLE_from_json.py msgid "Fried potatoes with delicious cheese smothered on top." -msgstr "Batatas fritas com queijo delicioso sufocada por cima." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "onion ring" -msgstr "anel de cebola" +msgstr "" #. ~ Description for onion ring #: lang/json/COMESTIBLE_from_json.py msgid "Battered and fried onions. Crunchy and delicious." -msgstr "Cebolas agredidas e fritas. Crocante e delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "uncooked hot dog" @@ -27100,8 +23752,6 @@ msgid "" "A heavily processed sausage, commonplace at baseball games before the " "cataclysm. It would taste much better prepared." msgstr "" -" cachorro quente cruUma salsicha altamente processada, comum nos " -"jogosdebeisebol antes do cataclismo. O gosto seria muito melhor preparado." #: lang/json/COMESTIBLE_from_json.py msgid "campfire hot dog" @@ -27115,8 +23765,6 @@ msgid "" "The simple hot dog, cooked over an open fire. Would be better on a bun, but" " it's quite an improvement over eating it uncooked" msgstr "" -" cachorro quente da fogueira O cachorro quente simples, cozido emfogoaberto." -" Seria melhor em um pão, mas é uma melhoria ao invés de comê-lonãocozido" #: lang/json/COMESTIBLE_from_json.py msgid "cooked hot dog" @@ -27130,49 +23778,46 @@ msgid "" "Surprisingly, not made from dog. Cooked, this hot dog now tastes much " "better, but will spoil." msgstr "" -" cachorro-quente cozinhadoSurpreendentemente, não feito de cachorro. Cozido," -" este cachorro quente agora tem um gosto muito melhor, mas vaiestragar." #: lang/json/COMESTIBLE_from_json.py msgid "malted milk ball" -msgstr "bola de leite maltada" +msgstr "" #. ~ Description for malted milk ball #: lang/json/COMESTIBLE_from_json.py msgid "Crunchy sugar in chocolate capsules. Legal and stimmy." -msgstr "Açúcar crocante em cápsulas de chocolate. Legal e estimulante." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw sausage" -msgstr "salsicha crua" +msgstr "" #. ~ Description for raw sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty raw sausage, prepared for smoking or cooking." -msgstr "Uma salsicha crua, preparada para fumar ou cozinhar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sausage" -msgstr "linguiça" +msgstr "" #. ~ Description for sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cured and smoked for long term storage." msgstr "" -" Uma salsicha pesada que foi curada e fumada para armazenamento alongoprazo." #: lang/json/COMESTIBLE_from_json.py msgid "cooked sausage" -msgstr "salsicha cozida" +msgstr "" #. ~ Description for cooked sausage #: lang/json/COMESTIBLE_from_json.py msgid "A hefty sausage that has been cooked." -msgstr "Uma salsicha pesada que foi cozida." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst" -msgstr "Mannwurst" +msgstr "" #. ~ Description for Mannwurst #: lang/json/COMESTIBLE_from_json.py @@ -27180,9 +23825,6 @@ msgid "" "A hefty long pork sausage that has been cured and smoked for long term " "storage. Very tasty, if you're in the market for human flesh." msgstr "" -" Uma salsicha de porco longa e pesada que foi curada e " -"fumadaparaarmazenamento a longo prazo. Muito gostoso, se você estiver no " -"mercadodecarne humana." #: lang/json/COMESTIBLE_from_json.py msgid "sweet sausage" @@ -27193,7 +23835,7 @@ msgstr[1] "" #. ~ Description for sweet sausage #: lang/json/COMESTIBLE_from_json.py msgid "A sweet and delicious sausage. Better eat it fresh." -msgstr "sweet sausageUma salsicha doce e deliciosa. Melhor comê-lo fresco." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bratwurst" @@ -27207,12 +23849,10 @@ msgid "" "A type of German sausage made of finely chopped meat and meant to be pan " "fried or roasted. Better eat it hot and fresh." msgstr "" -" bratwurstUm tipo de salsicha alemã feita de carne picadinha e destinadaaser" -" frita ou assada. Melhor comê-lo quente e fresco." #: lang/json/COMESTIBLE_from_json.py msgid "royal beef" -msgstr "carne real" +msgstr "" #. ~ Description for royal beef #: lang/json/COMESTIBLE_from_json.py @@ -27220,8 +23860,6 @@ msgid "" "A chunk of meat with a coat of royal jelly over it. It's a lot like a " "honey-baked ham." msgstr "" -" Um pedaço de carne com uma camada de geléia real sobre ela. É " -"muitoparecidocom um presunto cozido no mel." #: lang/json/COMESTIBLE_from_json.py msgid "bacon" @@ -27235,12 +23873,10 @@ msgid "" "A thick slab of salty cured bacon. Shelf stable, precooked and ready-to-" "eat, it tastes better when reheated." msgstr "" -" baconUma fatia grossa de bacon curado salgado. Prateleira estável, pré- " -"cozida e pronta para comer, fica melhor quando reaquecida." #: lang/json/COMESTIBLE_from_json.py msgid "wasteland sausage" -msgstr "salsicha do terreno baldio" +msgstr "" #. ~ Description for wasteland sausage #: lang/json/COMESTIBLE_from_json.py @@ -27248,20 +23884,16 @@ msgid "" "Lean sausage made from heavily salt-cured offal, with natural gut casing. " "Waste not, want not." msgstr "" -" Salsicha magra, feita a partir de miúdos muito curados, com tripanatural. " -"Não desperdice, não queira." #: lang/json/COMESTIBLE_from_json.py msgid "raw wasteland sausage" -msgstr "salsicha de terreno baldio" +msgstr "" #. ~ Description for raw wasteland sausage #: lang/json/COMESTIBLE_from_json.py msgid "" "Lean raw sausage made from heavily salt-cured offal, ready to be smoked." msgstr "" -" Salsichas cruas feitas de miudezas muito salgadas, prontas " -"paraseremfumadas." #: lang/json/COMESTIBLE_from_json.py msgid "cracklins" @@ -27275,13 +23907,10 @@ msgid "" "Also known as pork rinds or chicharrones, these are bits of edible fat and " "skin that have been fried until they are crispy and delicious." msgstr "" -" cracklinsTambém conhecidos como torresmo ou chicharrones, são " -"pedaçosdegordura e pele comestíveis que foram fritos até ficarem " -"crocantesedeliciosos." #: lang/json/COMESTIBLE_from_json.py msgid "glazed tenderloins" -msgstr "lombos envidraçados" +msgstr "" #. ~ Description for glazed tenderloins #: lang/json/COMESTIBLE_from_json.py @@ -27290,13 +23919,10 @@ msgid "" "veggie accompaniments. A gourmet dish that is both healthy, sweet and " "delicious." msgstr "" -" Um pedaço de carne macia perfeitamente temperado com um esmalte doce efinoe" -" seus acompanhamentos vegetarianos. Um prato gourmet que é saudável, docee " -"delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "currywurst" -msgstr "currywurst" +msgstr "" #. ~ Description for currywurst #: lang/json/COMESTIBLE_from_json.py @@ -27304,12 +23930,10 @@ msgid "" "Sausage covered in a curry ketchup sauce. Fairly spicy and impressive at " "the same time!" msgstr "" -" Salsicha coberta em um molho de ketchup de curry. Bastante " -"picanteeimpressionante ao mesmo tempo!" #: lang/json/COMESTIBLE_from_json.py msgid "aspic" -msgstr "alfazema" +msgstr "" #. ~ Description for aspic #: lang/json/COMESTIBLE_from_json.py @@ -27317,8 +23941,6 @@ msgid "" "A dish in which meat or fish is set into a gelatin made from a meat or " "vegetable stock." msgstr "" -" Um prato em que carne ou peixe é colocado em uma gelatina feita a " -"partirdeuma carne ou caldo de legumes." #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated fish" @@ -27332,8 +23954,6 @@ msgid "" "Dehydrated fish flakes. With proper storage, this dried food will remain " "edible for an incredibly long time." msgstr "" -" Peixe desidratado Flocos de peixe desidratado. Com o armazenamentoadequado," -" este alimento seco permanecerá comestível por um tempoincrivelmente longo." #: lang/json/COMESTIBLE_from_json.py msgid "rehydrated fish" @@ -27347,8 +23967,6 @@ msgid "" "Reconstituted fish flakes, which are much more enjoyable to eat now that " "they have been rehydrated." msgstr "" -" Peixe reidratadoFolhas de peixe reconstituído, que são muito " -"maisagradáveisde comer agora que foram reidratadas." #: lang/json/COMESTIBLE_from_json.py msgid "pickled fish" @@ -27361,8 +23979,6 @@ msgstr[1] "" msgid "" "This is a serving of crisply brined and canned fish. Tasty and nutritious." msgstr "" -" peixe em conservaEsta é uma porção de peixe crocante salgado eenlatado. " -"Saborosa e nutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "canned fish" @@ -27376,9 +23992,6 @@ msgid "" "Low-sodium preserved fish. It was boiled and canned. Contains most of the " "nutrition, but little of the savor of cooked fish." msgstr "" -" peixe em conserva Peixe conservado em sódio e baixo teor de sódio. " -"Foifervido e enlatado. Contém a maior parte da nutrição, mas pouco do " -"sabordepeixe cozido." #: lang/json/COMESTIBLE_from_json.py msgid "batter fried fish" @@ -27390,11 +24003,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A delicious golden brown serving of crispy fried fish." msgstr "" -" batter fried fishA deliciosa porção marrom dourada de peixe frito crocante." #: lang/json/COMESTIBLE_from_json.py msgid "lunch meat" -msgstr "carne de almoço" +msgstr "" #. ~ Description for lunch meat #: lang/json/COMESTIBLE_from_json.py @@ -27402,12 +24014,10 @@ msgid "" "Meat that has been cooked, preserved, and cut into thin slices for " "convenient sandwich construction. It tastes fine cold." msgstr "" -" Carne que foi cozida, conservada e cortada em fatias finas " -"paraumaconveniente construção em sanduíche. Tem um gosto bem frio." #: lang/json/COMESTIBLE_from_json.py msgid "bologna" -msgstr "Bolonha" +msgstr "" #. ~ Description for bologna #: lang/json/COMESTIBLE_from_json.py @@ -27416,13 +24026,10 @@ msgid "" "that comes in circular slices. Its first name isn't Oscar. You can eat it " "cold." msgstr "" -" Formalmente conhecida como salsicha de Bolonha, trata-se de " -"umacarnefinamente moída em conserva que vem em fatias circulares. Seu " -"primeironomenão é Oscar. Você pode comer frio." #: lang/json/COMESTIBLE_from_json.py msgid "lutefisk" -msgstr "lutefisk" +msgstr "" #. ~ Description for lutefisk #: lang/json/COMESTIBLE_from_json.py @@ -27431,13 +24038,10 @@ msgid "" "soap-like yet highly nutritious, it is reminiscent of the afterbirth of a " "dog or the world's largest chunk of phlegm." msgstr "" -" Lutefisk é peixe preservado que foi seco em uma solução de sodacáustica. " -"Vil e parecido com sabão, mas altamente nutritivo, é umareminiscência " -"daplacenta de um cão ou o maior pedaço de catarro do mundo." #: lang/json/COMESTIBLE_from_json.py msgid "SPAM" -msgstr "SPAM" +msgstr "" #. ~ Description for SPAM #: lang/json/COMESTIBLE_from_json.py @@ -27446,18 +24050,15 @@ msgid "" "tasty, this SPAM remains quite filling. Completely unappetizing, but quite " "filling." msgstr "" -" Um produto de carne de porco enlatada que é estranhamenterosa, " -"estranhamente emborrachado e não muito saboroso, este SPAMpermanecebastante " -"recheado. Completamente pouco apetitoso, mas bastanterecheio." #: lang/json/COMESTIBLE_from_json.py msgid "canned sardine" -msgstr "sardinha enlatada" +msgstr "" #. ~ Description for canned sardine #: lang/json/COMESTIBLE_from_json.py msgid "Salty little fish. They'll make you thirsty." -msgstr "Peixinho salgado. Eles vão te deixar com sede." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sausage gravy" @@ -27471,12 +24072,10 @@ msgid "" "Biscuits, meat, and delicious mushroom soup all crammed together into a " "wonderfully greasy and tasteful mush." msgstr "" -" molho de salsichaBiscuits, carne e deliciosa sopa de cogumelos " -"todosjuntosem um mush maravilhosamente gorduroso e saboroso." #: lang/json/COMESTIBLE_from_json.py msgid "pemmican" -msgstr "pemmican" +msgstr "" #. ~ Description for pemmican #: lang/json/COMESTIBLE_from_json.py @@ -27485,13 +24084,10 @@ msgid "" "food. Composed of meat, tallow, and edible plants, it provides excellent " "nutrition in an easy to carry form." msgstr "" -" Uma mistura concentrada de gordura e proteína usada como " -"alimentonutritivode alta energia. Composto de carne, sebo e plantas " -"comestíveis, forneceexcelente nutrição em uma forma fácil de transportar." #: lang/json/COMESTIBLE_from_json.py msgid "hamburger helper" -msgstr "ajudante de hambúrguer" +msgstr "" #. ~ Description for hamburger helper #: lang/json/COMESTIBLE_from_json.py @@ -27499,17 +24095,15 @@ msgid "" "Some mac and cheese with ground meat added, enhancing the flavor and the " "nutritional value." msgstr "" -" Alguns mac e queijo com carne moída adicionada, aumentando o sabor e " -"ovalornutricional." #: lang/json/COMESTIBLE_from_json.py msgid "ravioli" -msgstr "Ravioli" +msgstr "" #. ~ Description for ravioli #: lang/json/COMESTIBLE_from_json.py msgid "Meat encased in little dough satchels. Tastes fine raw." -msgstr "Carne envolta em pequenas sacolas de massa. Tem um gosto bem cru." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili con carne" @@ -27521,7 +24115,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A spicy stew containing chili peppers, meat, tomatoes and beans." msgstr "" -" chili con carneUm ensopado picante contendo pimentas, carne, tomateefeijão." #: lang/json/COMESTIBLE_from_json.py msgid "pork and beans" @@ -27535,8 +24128,6 @@ msgid "" "Greasy Prospector improved pork and beans with hickory smoked pig fat " "chunks." msgstr "" -" carne de porco e feijãoGreasy Prospector melhorou carne de porco efeijãocom" -" pedaços de gordura de porco fumada nogueira." #: lang/json/COMESTIBLE_from_json.py msgid "canned tuna fish" @@ -27547,34 +24138,34 @@ msgstr[1] "" #. ~ Description for canned tuna fish #: lang/json/COMESTIBLE_from_json.py msgid "Now with 95 percent fewer dolphins!" -msgstr "Atum com 95% menos golfinhos!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned salmon" -msgstr "salmão enlatado" +msgstr "" #. ~ Description for canned salmon #: lang/json/COMESTIBLE_from_json.py msgid "Bright pink fish-paste in a can!" -msgstr "Peixe-pasta cor-de-rosa brilhante em uma lata!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned chicken" -msgstr "frango enlatado" +msgstr "" #. ~ Description for canned chicken #: lang/json/COMESTIBLE_from_json.py msgid "Bright white chicken-paste." -msgstr "Pasta de frango branca brilhante." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pickled herring" -msgstr "arenque em conserva" +msgstr "" #. ~ Description for pickled herring #: lang/json/COMESTIBLE_from_json.py msgid "Fish fillets pickled in some sort of tangy white sauce." -msgstr "Filetes de peixe em conserva em algum tipo de molho branco picante." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned clam" @@ -27585,11 +24176,11 @@ msgstr[1] "" #. ~ Description for canned clam #: lang/json/COMESTIBLE_from_json.py msgid "Chopped quahog clams in water." -msgstr "moluscos enlatados do quahog do clamChopped na água." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "clam chowder" -msgstr "ensopado" +msgstr "" #. ~ Description for clam chowder #: lang/json/COMESTIBLE_from_json.py @@ -27597,8 +24188,6 @@ msgid "" "Delicious, lumpy, white soup made of clams and potatoes. A taste of the " "lost glory of New England." msgstr "" -" Sopa deliciosa e branca, feita de amêijoas e batatas. Um gosto " -"daglóriaperdida da Nova Inglaterra." #: lang/json/COMESTIBLE_from_json.py msgid "baked beans" @@ -27609,7 +24198,7 @@ msgstr[1] "" #. ~ Description for baked beans #: lang/json/COMESTIBLE_from_json.py msgid "Slow-cooked beans with meat. Tasty and very filling." -msgstr "feijão cozidoFeijão cozido com carne. Saboroso e muito recheio." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "meat fried rice" @@ -27621,8 +24210,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Delicious fried rice with meat. Tasty and very filling." msgstr "" -" Arroz frito de carneDelicious arroz frito com carne. Saboroso " -"emuitorecheio." #: lang/json/COMESTIBLE_from_json.py msgid "deluxe beans and rice" @@ -27636,21 +24223,19 @@ msgid "" "Slow-cooked beans and rice with meat and seasonings. Tasty and very " "filling." msgstr "" -" feijão deluxe e arrozFeijão cozido e arroz com carne e temperos. " -"Saborosoemuito recheio." #: lang/json/COMESTIBLE_from_json.py msgid "meat pie" -msgstr "torta de carne" +msgstr "" #. ~ Description for meat pie #: lang/json/COMESTIBLE_from_json.py msgid "A delicious baked pie with a delicious meat filling." -msgstr "Uma deliciosa torta assada com um delicioso recheio de carne." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "meat pizza" -msgstr "pizza de carne" +msgstr "" #. ~ Description for meat pizza #: lang/json/COMESTIBLE_from_json.py @@ -27658,8 +24243,6 @@ msgid "" "A meat pizza, for all the carnivores out there. Chock full of minced meat " "and heavily seasoned." msgstr "" -" Uma pizza de carne, para todos os carnívoros lá fora. Chock cheio " -"decarnepicada e muito temperado." #: lang/json/COMESTIBLE_from_json.py msgid "deluxe scrambled eggs" @@ -27673,12 +24256,10 @@ msgid "" "Fluffy and delicious scrambled eggs made more delicious with the addition of" " other tasty ingredients." msgstr "" -" ovos mexidos deluxe ovos mexidos Fluffy e deliciosos feitos " -"maisdeliciososcom a adição de outros ingredientes saborosos." #: lang/json/COMESTIBLE_from_json.py msgid "canned meat" -msgstr "carne enlatada" +msgstr "" #. ~ Description for canned meat #: lang/json/COMESTIBLE_from_json.py @@ -27686,18 +24267,15 @@ msgid "" "Low-sodium preserved meat. It was boiled and canned. Contains most of the " "nutrition, but little of the savor of cooked meat." msgstr "" -" Carne preservada com baixo teor de sódio. Foi fervido e enlatado. " -"Contémamaior parte da nutrição, mas pouco do sabor da carne cozida." #: lang/json/COMESTIBLE_from_json.py msgid "salted meat slice" -msgstr "fatia de carne salgada" +msgstr "" #. ~ Description for salted meat slice #: lang/json/COMESTIBLE_from_json.py msgid "Meat slices cured in brine. Salty but tasty in a pinch." msgstr "" -" Fatias de carne curadas em salmoura. Salgado mas saboroso em uma pitada." #: lang/json/COMESTIBLE_from_json.py msgid "spaghetti bolognese" @@ -27709,11 +24287,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Spaghetti covered with a thick meat sauce. Yum!" msgstr "" -" Espaguete à bolonhesa Espaguete coberto com um molho espesso de carne. Yum!" #: lang/json/COMESTIBLE_from_json.py msgid "lasagne" -msgstr "lasanha" +msgstr "" #. ~ Description for lasagne #: lang/json/COMESTIBLE_from_json.py @@ -27721,21 +24298,19 @@ msgid "" "A very old type of pasta made with several layers of lasagne sheets " "alternated with cheese, sauces and meats." msgstr "" -" Um tipo muito antigo de massa feita com várias camadas de folhas " -"delasanhaalternadas com queijo, molhos e carnes." #: lang/json/COMESTIBLE_from_json.py msgid "fried SPAM" -msgstr "SPAM frito" +msgstr "" #. ~ Description for fried SPAM #: lang/json/COMESTIBLE_from_json.py msgid "Having been fried, this SPAM is actually pretty tasty." -msgstr "Tendo sido frito, este SPAM é realmente muito saboroso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cheeseburger" -msgstr "X-Burger" +msgstr "" #. ~ Description for cheeseburger #: lang/json/COMESTIBLE_from_json.py @@ -27743,21 +24318,19 @@ msgid "" "A sandwich of minced meat and cheese with condiments. The apex of pre-" "cataclysm culinary achievement." msgstr "" -" Um sanduíche de carne picada e queijo com condimentos. O ápice " -"dosucessoculinário pré-cataclismo." #: lang/json/COMESTIBLE_from_json.py msgid "hamburger" -msgstr "hambúrguer" +msgstr "" #. ~ Description for hamburger #: lang/json/COMESTIBLE_from_json.py msgid "A sandwich of minced meat with condiments." -msgstr "Um sanduíche de carne picada com condimentos." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sloppy joe" -msgstr "joe desleixado" +msgstr "" #. ~ Description for sloppy joe #: lang/json/COMESTIBLE_from_json.py @@ -27765,12 +24338,10 @@ msgid "" "A sandwich, consisting of ground meat and tomato sauce served on a hamburger" " bun." msgstr "" -" Um sanduíche, composto de carne moída e molho de tomate servido em um " -"pãodehambúrguer." #: lang/json/COMESTIBLE_from_json.py msgid "taco" -msgstr "taco" +msgstr "" #. ~ Description for taco #: lang/json/COMESTIBLE_from_json.py @@ -27778,23 +24349,20 @@ msgid "" "A traditional Mexican dish composed of a corn tortilla folded or rolled " "around a meat filling." msgstr "" -" Um prato mexicano tradicional composto de uma tortilla de milho " -"dobradaouenrolada em torno de um recheio de carne." #: lang/json/COMESTIBLE_from_json.py msgid "pickled meat" -msgstr "carne em conserva" +msgstr "" #. ~ Description for pickled meat #: lang/json/COMESTIBLE_from_json.py msgid "" "This is a serving of crisply brined and canned meat. Tasty and nutritious." msgstr "" -" Esta é uma porção de carne crocante salgada e enlatada. Saborosaenutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated meat" -msgstr "carne desidratada" +msgstr "" #. ~ Description for dehydrated meat #: lang/json/COMESTIBLE_from_json.py @@ -27802,12 +24370,10 @@ msgid "" "Dehydrated meat flakes. With proper storage, this dried food will remain " "edible for an incredibly long time." msgstr "" -" Flocos de carne desidratados. Com o armazenamento adequado, " -"estealimentoseco permanecerá comestível por um tempo incrivelmente longo." #: lang/json/COMESTIBLE_from_json.py msgid "rehydrated meat" -msgstr "carne reidratada" +msgstr "" #. ~ Description for rehydrated meat #: lang/json/COMESTIBLE_from_json.py @@ -27815,8 +24381,6 @@ msgid "" "Reconstituted meat flakes, which are much more enjoyable to eat now that " "they have been rehydrated." msgstr "" -" Flocos de carne reconstituídos, que são muito mais agradáveis de " -"comeragoraque foram reidratados." #: lang/json/COMESTIBLE_from_json.py msgid "haggis" @@ -27832,10 +24396,6 @@ msgid "" "Surprisingly tasty and quite filling, it is best served with boiled root " "vegetables and strong whisky." msgstr "" -" haggisEste tradicional pudim escocês é feito de carne e " -"miudezasmisturadascom farinha de aveia, que é costurada no estômago de um " -"animal efervida. Surpreendentemente saboroso e bastante recheio, é melhor " -"servidocomvegetais de raiz cozidos e uísque forte." #: lang/json/COMESTIBLE_from_json.py msgid "fish makizushi" @@ -27849,8 +24409,6 @@ msgid "" "Delicious slivers of thinly sliced raw fish wrapped in tasty sushi rice and " "rolled up in a healthy green vegetable." msgstr "" -" peixe makizushiDelicious lascas de peixe cru finamente fatiado " -"envoltoemarroz de sushi saboroso e enrolado em um vegetal verde saudável." #: lang/json/COMESTIBLE_from_json.py msgid "meat temaki" @@ -27864,8 +24422,6 @@ msgid "" "Delicious slivers of raw meat wrapped in tasty sushi rice and rolled up in a" " healthy green vegetable." msgstr "" -" temakiDelicious de carne crua de carne crua envolto em arroz " -"desushisaboroso e enrolado em um vegetal verde saudável." #: lang/json/COMESTIBLE_from_json.py msgid "sashimi" @@ -27877,11 +24433,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Delicious slivers of thinly sliced raw fish and tasty vegetables." msgstr "" -" sashimiDelicious lascas de peixe cru em fatias finas e legumes saborosos." #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated tainted meat" -msgstr "carne contaminada desidratada" +msgstr "" #. ~ Description for dehydrated tainted meat #: lang/json/COMESTIBLE_from_json.py @@ -27889,12 +24444,10 @@ msgid "" "Pieces of poisonous meat that have been dried to prevent them from rotting " "away. It will still poison you if you eat this." msgstr "" -" Pedaços de carne venenosa que foram secos para evitar que apodreçam. " -"Eleainda vai envenená-lo se você comer isso." #: lang/json/COMESTIBLE_from_json.py msgid "pelmeni" -msgstr "pelmeni" +msgstr "" #. ~ Description for pelmeni #: lang/json/COMESTIBLE_from_json.py @@ -27902,8 +24455,6 @@ msgid "" "Delicious cooked dumplings consisting of a meat filling wrapped in thin " "dough." msgstr "" -" Deliciosos bolinhos cozidos consistindo de um recheio de carne " -"envoltoemmassa fina." #: lang/json/COMESTIBLE_from_json.py msgid "homemade burrito" @@ -27929,9 +24480,6 @@ msgid "" "Dehydrated human flesh flakes. With proper storage, this dried food will " "remain edible for an incredibly long time." msgstr "" -" carne humana desidratada Flocos de carne humana desidratada. " -"Comoarmazenamento adequado, este alimento seco permanecerá comestível " -"porumtempo incrivelmente longo." #: lang/json/COMESTIBLE_from_json.py msgid "rehydrated human flesh" @@ -27945,8 +24493,6 @@ msgid "" "Reconstituted human flesh flakes, which are much more enjoyable to eat now " "that they have been rehydrated." msgstr "" -" carne humana reidratadaFocos de carne humana reconstituídos, que " -"sãomuitomais agradáveis de comer agora que foram reidratados." #: lang/json/COMESTIBLE_from_json.py msgid "human haggis" @@ -27962,14 +24508,10 @@ msgid "" "Surprisingly tasty if you enjoy that kind of thing and quite filling, it is " "best served with boiled root vegetables and strong whisky." msgstr "" -" Este tradicional pudim escocês é feito de carne e miudezashumanasmisturadas" -" com farinha de aveia, que é costurada no estômago de umhumano efervida. " -"Surpreendentemente saboroso se você gosta desse tipo decoisa ebastante " -"recheio, é melhor servido com vegetais de raiz cozida euísqueforte." #: lang/json/COMESTIBLE_from_json.py msgid "brat bologna" -msgstr "bolota de pirralho" +msgstr "" #. ~ Description for brat bologna #: lang/json/COMESTIBLE_from_json.py @@ -27977,12 +24519,10 @@ msgid "" "Preserved and sliced human flesh. His first name may have been Oscar. You " "can eat it cold, like the cold-blooded people-eater you are." msgstr "" -" Preservada e fatiada carne humana. Seu primeiro nome pode ter sidoOscar. " -"Você pode comê-lo frio, como o comedor de pessoas de sangue frio quevocêé." #: lang/json/COMESTIBLE_from_json.py msgid "cheapskate currywurst" -msgstr "caranguejo currywurst" +msgstr "" #. ~ Description for cheapskate currywurst #: lang/json/COMESTIBLE_from_json.py @@ -27990,8 +24530,6 @@ msgid "" "Mannwurst covered in a curry ketchup sauce. Fairly spicy and impressive at " "the same time!" msgstr "" -" Mannwurst coberto de molho de ketchup de caril. Bastante " -"picanteeimpressionante ao mesmo tempo!" #: lang/json/COMESTIBLE_from_json.py msgid "Mannwurst gravy" @@ -28005,12 +24543,10 @@ msgid "" "Biscuits, human flesh, and delicious mushroom soup all crammed together into" " a wonderfully greasy and tasteful mush." msgstr "" -" Biscoitos de carne, carne humana e deliciosa sopa de cogumelos " -"todosjuntosem uma massa maravilhosamente gordurosa e saborosa." #: lang/json/COMESTIBLE_from_json.py msgid "amoral aspic" -msgstr "aspic amoral" +msgstr "" #. ~ Description for amoral aspic #: lang/json/COMESTIBLE_from_json.py @@ -28018,12 +24554,10 @@ msgid "" "A dish in which human meat has been set into a gelatin made from human " "bones. Murderously delicious - if you're into that sort of thing." msgstr "" -" Um prato em que a carne humana foi colocada em uma gelatina feita apartirde" -" ossos humanos. Murderously delicious - se você gosta desse tipo de coisa." #: lang/json/COMESTIBLE_from_json.py msgid "prepper pemmican" -msgstr "prepper pemmican" +msgstr "" #. ~ Description for prepper pemmican #: lang/json/COMESTIBLE_from_json.py @@ -28031,9 +24565,6 @@ msgid "" "A concentrated mixture of fat and protein used as a nutritious high-energy " "food. Composed of tallow, edible plants, and an unfortunate prepper." msgstr "" -" Uma mistura concentrada de gordura e proteína usada como " -"alimentonutritivode alta energia. Composta de sebo, plantas comestíveis e " -"uminfelizprepper." #: lang/json/COMESTIBLE_from_json.py msgid "slob sandwich" @@ -28044,7 +24575,7 @@ msgstr[1] "" #. ~ Description for slob sandwich #: lang/json/COMESTIBLE_from_json.py msgid "Bread and human flesh, surprise!" -msgstr "sanduíche slob Pão e carne humana, surpresa!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dudeluxe sandwich" @@ -28058,13 +24589,10 @@ msgid "" "A sandwich of human flesh, vegetables, and cheese with condiments. Feast " "upon the souls of your enemies and tasty garden greens!" msgstr "" -" sanduíche dudeluxe Um sanduíche de carne humana, legumes e " -"queijocomcondimentos. Banquetear-se com as almas dos seus inimigos " -"esaborososverdes do jardim!" #: lang/json/COMESTIBLE_from_json.py msgid "hobo helper" -msgstr "ajudante hobo" +msgstr "" #. ~ Description for hobo helper #: lang/json/COMESTIBLE_from_json.py @@ -28072,8 +24600,6 @@ msgid "" "Some mac and cheese with ground human flesh added. So good it's like " "murder." msgstr "" -" Alguns mac e queijo com carne humana moída adicionada. Tão bom " -"écomoassassinato." #: lang/json/COMESTIBLE_from_json.py msgid "chili con cabron" @@ -28086,12 +24612,10 @@ msgstr[1] "" msgid "" "A spicy stew containing chili peppers, human flesh, tomatoes and beans." msgstr "" -" chili con cabron Um guisado picante contendo pimentas, carne humana, " -"tomatee feijão." #: lang/json/COMESTIBLE_from_json.py msgid "prick pie" -msgstr "torta de pau" +msgstr "" #. ~ Description for prick pie #: lang/json/COMESTIBLE_from_json.py @@ -28099,12 +24623,10 @@ msgid "" "A meat pie with a little soldier, or maybe scientist, who knows. God, " "that's good!" msgstr "" -" Uma torta de carne com um pequeno soldado, ou talvez cientista, quemsabe. " -"Deus, isso é bom!" #: lang/json/COMESTIBLE_from_json.py msgid "poser pizza" -msgstr "pedir pizza" +msgstr "" #. ~ Description for poser pizza #: lang/json/COMESTIBLE_from_json.py @@ -28112,8 +24634,6 @@ msgid "" "A meat pizza, for all the cannibals out there. Chock full of minced human " "flesh and heavily seasoned." msgstr "" -" Uma pizza de carne, para todos os canibais que estão por aí. Chock " -"cheiodecarne humana picada e fortemente temperado." #: lang/json/COMESTIBLE_from_json.py msgid "soylent slice" @@ -28127,13 +24647,10 @@ msgid "" "Low-sodium preserved human meat. It was boiled and canned. Contains most " "of the nutrition, but little of the savor of cooked meat." msgstr "" -" Fatia de soylentCarne humana preservada com baixo teor de sódio. " -"Foifervidoe enlatado. Contém a maior parte da nutrição, mas pouco do sabor " -"dacarnecozida." #: lang/json/COMESTIBLE_from_json.py msgid "salted simpleton slices" -msgstr "fatias de simplório salgadas" +msgstr "" #. ~ Description for salted simpleton slices #: lang/json/COMESTIBLE_from_json.py @@ -28141,8 +24658,6 @@ msgid "" "Human flesh slices cured in brine and vacuum-packed. Salty but tasty in a " "pinch." msgstr "" -" Fatias de carne humana curadas em salmoura e embaladas a vácuo. " -"Salgadomassaboroso em uma pitada." #: lang/json/COMESTIBLE_from_json.py msgid "scoundrel spaghetti" @@ -28156,12 +24671,10 @@ msgid "" "Spaghetti covered with a thick human flesh sauce. Tastes great if you enjoy" " that kind of thing." msgstr "" -" Esparguete spaghrelSpaghetti coberto com um molho de carne humanagrossa. " -"Muito bom se você gosta desse tipo de coisa." #: lang/json/COMESTIBLE_from_json.py msgid "Luigi lasagne" -msgstr "Lasanha de Luigi" +msgstr "" #. ~ Description for Luigi lasagne #: lang/json/COMESTIBLE_from_json.py @@ -28169,13 +24682,10 @@ msgid "" "A very old type of pasta made with several layers of lasagne sheets " "alternated with cheese, sauces and meats. Made better with human flesh." msgstr "" -" Um tipo muito antigo de massa feita com várias camadas de folhas " -"delasanhaalternadas com queijo, molhos e carnes. Feito melhor com " -"carnehumana." #: lang/json/COMESTIBLE_from_json.py msgid "chump cheeseburger" -msgstr "cheeseburger chump" +msgstr "" #. ~ Description for chump cheeseburger #: lang/json/COMESTIBLE_from_json.py @@ -28183,12 +24693,10 @@ msgid "" "A sandwich of minced human flesh and cheese with condiments. The apex of " "post-cataclysm cannibalistic culinary achievement." msgstr "" -" Um sanduíche de carne e queijo humano picado com condimentos. O " -"ápicedosucesso culinário canibalístico pós-cataclismo." #: lang/json/COMESTIBLE_from_json.py msgid "bobburger" -msgstr "bobburger" +msgstr "" #. ~ Description for bobburger #: lang/json/COMESTIBLE_from_json.py @@ -28206,11 +24714,11 @@ msgstr[1] "" #. ~ Description for manwich #: lang/json/COMESTIBLE_from_json.py msgid "A sandwich is a sandwich, but this is made with people!" -msgstr "Um sanduíche é um sanduíche, mas isso é feito com as pessoas!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tio taco" -msgstr "taco taco" +msgstr "" #. ~ Description for tio taco #: lang/json/COMESTIBLE_from_json.py @@ -28218,12 +24726,10 @@ msgid "" "A taco made with ground human flesh instead of ground beef. For some reason" " you can hear a bell dinging in the distance." msgstr "" -" Um taco feito com carne humana moída em vez de carne moída. Poralgumarazão," -" você pode ouvir um sino tocando à distância." #: lang/json/COMESTIBLE_from_json.py msgid "raw Mannwurst" -msgstr "Mannwurst cru" +msgstr "" #. ~ Description for raw Mannwurst #: lang/json/COMESTIBLE_from_json.py @@ -28231,12 +24737,10 @@ msgid "" "A hefty raw 'long-pork' sausage that has been prepared for smoking or " "cooking." msgstr "" -" Uma salsicha de carne de porco longa e crua que foi preparada para " -"fumaroucozinhar." #: lang/json/COMESTIBLE_from_json.py msgid "cooked Mannwurst" -msgstr "Mannwurst cozido" +msgstr "" #. ~ Description for cooked Mannwurst #: lang/json/COMESTIBLE_from_json.py @@ -28244,12 +24748,10 @@ msgid "" "A hefty raw 'long-pork' sausage that has been cooked. It smells as " "delicious as humanly possible." msgstr "" -" Uma salsicha de\"carne de porco\" pesada e crua que foi cozida. " -"Cheiratãodeliciosa quanto humanamente possível." #: lang/json/COMESTIBLE_from_json.py msgid "Mannbrat" -msgstr "Mannbrat" +msgstr "" #. ~ Description for Mannbrat #: lang/json/COMESTIBLE_from_json.py @@ -28258,13 +24760,10 @@ msgid "" "fried or roasted. Better eat it hot and fresh. By the way, use any human " "available. Germans are not mandatory." msgstr "" -" Um tipo de salsicha alemã feita de seres humanos picadinhos e que " -"deveserfrita ou assada. Melhor comê-lo quente e fresco. By the way, " -"usequalquerser humano disponível. Os alemães não são obrigatórios." #: lang/json/COMESTIBLE_from_json.py msgid "pickled punk" -msgstr "punk em conserva" +msgstr "" #. ~ Description for pickled punk #: lang/json/COMESTIBLE_from_json.py @@ -28272,8 +24771,6 @@ msgid "" "This is a serving of crisply brined and canned human flesh. Tasty and " "nutritious if you're into that sort of thing." msgstr "" -" Esta é uma porção de carne humana enlatada e salgada. Saborosa enutritivase" -" você gosta desse tipo de coisa." #: lang/json/COMESTIBLE_from_json.py msgid "Adderall" @@ -28288,9 +24785,6 @@ msgid "" " prescribed to treat hyperactive attention deficits. It suppresses the " "appetite, and is quite addictive." msgstr "" -" AdderallMedical grau sais de anfetamina misturados com " -"saisdedextroanfetamina, comumente prescritos para tratar déficits " -"deatençãohiperativa. Suprime o apetite e é bastante viciante." #: lang/json/COMESTIBLE_from_json.py msgid "syringe of adrenaline" @@ -28305,13 +24799,10 @@ msgid "" "stimulant when you inject yourself with it. Asthmatics can use it in an " "emergency to clear their asthma." msgstr "" -" seringa de adrenalina Uma seringa cheia de uma dose de adrenalina. " -"Eleservecomo um poderoso estimulante quando você se injeta nele. Asmáticos " -"podem usá-lo em uma emergência para limpar sua asma." #: lang/json/COMESTIBLE_from_json.py msgid "antibiotic" -msgstr "antibiótico" +msgstr "" #. ~ Description for antibiotic #: lang/json/COMESTIBLE_from_json.py @@ -28320,13 +24811,10 @@ msgid "" " the spread of infection. It's the quickest and most reliable way to cure " "any infections you might have. One dose lasts twelve hours." msgstr "" -" Uma medicação antibacteriana com prescrição médica projetada paraprevenirou" -" impedir a propagação da infecção. É a maneira mais rápida econfiável " -"decurar qualquer infecção que você possa ter. Uma dose dura dozehoras." #: lang/json/COMESTIBLE_from_json.py msgid "antifungal drug" -msgstr "droga antifúngica" +msgstr "" #. ~ Description for antifungal drug #: lang/json/COMESTIBLE_from_json.py @@ -28334,12 +24822,10 @@ msgid "" "Powerful chemical tablets designed to eliminate fungal infections in living " "creatures." msgstr "" -" Comprimidos químicos potentes concebidos para eliminar infecções " -"porfungosem criaturas vivas." #: lang/json/COMESTIBLE_from_json.py msgid "antiparasitic drug" -msgstr "droga antiparasitária" +msgstr "" #. ~ Description for antiparasitic drug #: lang/json/COMESTIBLE_from_json.py @@ -28348,19 +24834,15 @@ msgid "" " in living creatures. Though designed for use on pets and livestock, it " "will likely work on humans as well." msgstr "" -" Comprimidos químicos de amplo espectro projetados para " -"eliminarinfestaçõesparasitárias em seres vivos. Embora projetado para uso " -"emanimais deestimação e gado, ele provavelmente funcionará em seres " -"humanostambém." #: lang/json/COMESTIBLE_from_json.py msgid "aspirin" -msgstr "aspirina" +msgstr "" #. ~ Use action activation_message for aspirin. #: lang/json/COMESTIBLE_from_json.py msgid "You take some aspirin." -msgstr "Você toma uma aspirina." +msgstr "" #. ~ Description for aspirin #: lang/json/COMESTIBLE_from_json.py @@ -28368,46 +24850,42 @@ msgid "" "Acetylsalicylic acid, a mild anti-inflammatory. Take to relieve pain and " "swelling." msgstr "" -" Ácido acetilsalicílico, um anti-inflamatório leve. Tome para aliviar a " -"doreo inchaço." #: lang/json/COMESTIBLE_from_json.py msgid "bandage" -msgstr "curativo" +msgstr "" #. ~ Description for bandage #: lang/json/COMESTIBLE_from_json.py msgid "Simple cloth bandages. Used for healing small amounts of damage." msgstr "" -" Ataduras de pano simples. Usado para curar pequenas quantidades de dano." #: lang/json/COMESTIBLE_from_json.py msgid "makeshift bandage" -msgstr "atadura improvisada" +msgstr "" #. ~ Description for makeshift bandage #: lang/json/COMESTIBLE_from_json.py msgid "Simple cloth bandages. Better than nothing." -msgstr "Ataduras de pano simples. Melhor que nada." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bleached makeshift bandage" -msgstr "bandagem improvisada branqueada" +msgstr "" #. ~ Description for bleached makeshift bandage #: lang/json/COMESTIBLE_from_json.py msgid "Simple cloth bandages. It is white, as real bandages should be." msgstr "" -" Ataduras de pano simples. É branco, como as bandagens reais deveriam ser." #: lang/json/COMESTIBLE_from_json.py msgid "boiled makeshift bandage" -msgstr "atadura improvisada fervida" +msgstr "" #. ~ Description for boiled makeshift bandage #: lang/json/COMESTIBLE_from_json.py msgid "Simple cloth bandages. It was boiled to make it more sterile." -msgstr "Ataduras de pano simples. Foi fervido para torná-lo mais estéril." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "antiseptic powder" @@ -28421,12 +24899,10 @@ msgid "" "A powdered form of chemical disinfectant, this bismuth formic iodide cleans " "wounds quickly and painlessly." msgstr "" -" Pó anti-sépticoUma forma em pó de desinfetante químico, este " -"iodetofórmicode bismuto limpa as feridas rapidamente e sem dor." #: lang/json/COMESTIBLE_from_json.py msgid "caffeinated chewing gum" -msgstr "goma de mascar com cafeína" +msgstr "" #. ~ Description for caffeinated chewing gum #: lang/json/COMESTIBLE_from_json.py @@ -28434,12 +24910,10 @@ msgid "" "Chewing gum with added caffeine. Sugary and bad for your teeth, but it's a " "nice pick-me-up." msgstr "" -" Goma de mascar com cafeína adicionada. Açucarado e ruim para seusdentes, " -"mas é um bom estimulante." #: lang/json/COMESTIBLE_from_json.py msgid "caffeine pill" -msgstr "pílula de cafeína" +msgstr "" #. ~ Description for caffeine pill #: lang/json/COMESTIBLE_from_json.py @@ -28447,12 +24921,10 @@ msgid "" "No-doz brand caffeine pills, maximum strength. Useful in pulling an all-" "nighter, one pill is about equivalent to a strong cup of coffee." msgstr "" -" Pílulas de cafeína da marca No-doz, força máxima. Útil em puxar " -"umanoitetoda, uma pílula é equivalente a uma xícara de café forte." #: lang/json/COMESTIBLE_from_json.py msgid "chewing tobacco" -msgstr "mastigar tabaco" +msgstr "" #. ~ Description for chewing tobacco #: lang/json/COMESTIBLE_from_json.py @@ -28461,9 +24933,6 @@ msgid "" "health, it was once a favorite amongst baseball players, cowboys, and other " "macho types." msgstr "" -" Mint tabaco de mascar com sabor. Embora ainda seja " -"absolutamenteterrívelpara sua saúde, já foi um favorito entre os jogadores " -"de beisebol, cowboyse outros tipos machistas." #: lang/json/COMESTIBLE_from_json.py msgid "hydrogen peroxide" @@ -28478,10 +24947,6 @@ msgid "" "or textiles. Foams a little when in contact with organic matter, but " "otherwise harmless." msgstr "" -" peróxido de hidrogênioPeróxido de hidrogênio diluído, para " -"usocomodesinfetante e para branqueamento de cabelos ou têxteis. Espuma " -"umpoucoquando em contato com a matéria orgânica, mas de outra " -"formainofensivo." #: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py msgid "cigarette" @@ -28496,9 +24961,6 @@ msgid "" "into a filtered paper tube. Stimulates mental acuity and reduces appetite." " Highly addictive and hazardous to health." msgstr "" -" Uma mistura de folhas secas de tabaco, pesticidas e aditivosquímicos, " -"enrolados em um tubo de papel filtrado. Estimula a acuidade mentale reduzo " -"apetite. Altamente viciante e perigoso para a saúde." #: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py msgid "cigar" @@ -28512,19 +24974,15 @@ msgid "" "Rolled, cured tobacco leaf, addictive and hazardous to health.\n" "A gentleman's vice, cigars set the civil man apart from the savage." msgstr "" -" tabaco, folha de tabaco curada, viciante e perigosa para a saúde. \n" -" Umvício do cavalheiro, charutos diferenciam o homem civil do selvagem.\n" #: lang/json/COMESTIBLE_from_json.py msgid "chloroform soaked rag" -msgstr "pano embebido em clorofórmio" +msgstr "" #. ~ Description for chloroform soaked rag #: lang/json/COMESTIBLE_from_json.py msgid "A debug item that lets you put NPCs (or yourself) to sleep." msgstr "" -" Um item de depuração que permite que você coloque NPCs (ou você " -"mesmo)paradormir." #: lang/json/COMESTIBLE_from_json.py msgid "codeine" @@ -28535,7 +24993,7 @@ msgstr[1] "" #. ~ Use action activation_message for codeine. #: lang/json/COMESTIBLE_from_json.py msgid "You take some codeine." -msgstr "codeineVocê pega alguma codeína." +msgstr "" #. ~ Description for codeine #: lang/json/COMESTIBLE_from_json.py @@ -28544,9 +25002,6 @@ msgid "" "While relatively weak for a narcotic, it is still addictive, with a " "potential for overdose." msgstr "" -" Um opiáceo leve usado na supressão da dor, tosse e outras doenças. " -"Emborarelativamente fraco para um narcótico, ainda é viciante, compotencial " -"paraoverdose." #: lang/json/COMESTIBLE_from_json.py src/addiction.cpp msgid "cocaine" @@ -28561,13 +25016,10 @@ msgid "" "of that in it. A topical analgesic, it is more commonly used for its " "stimulatory properties. Highly addictive." msgstr "" -" cocaínaExtrato cristalino da folha de coca, ou pelo menos, um pó " -"brancocomum pouco disso. Um analgésico tópico, é mais comumente usado " -"porsuaspropriedades estimulatórias. Altamente viciante." #: lang/json/COMESTIBLE_from_json.py msgid "methacola" -msgstr "metacola" +msgstr "" #. ~ Description for methacola #: lang/json/COMESTIBLE_from_json.py @@ -28576,9 +25028,6 @@ msgid "" "a spring in your step, a fire in your eye, and a bad case of tachycardia " "tremors in your somersaulting heart." msgstr "" -" Um potente coquetel de anfetaminas, cafeína e xarope de milho, " -"estematerialcoloca uma mola em seus passos, um fogo em seus olhos e um " -"maucaso detremores de taquicardia no coração de uma pirueta." #: lang/json/COMESTIBLE_from_json.py msgid "pair of contact lenses" @@ -28593,10 +25042,6 @@ msgid "" "after a week of use. They are a great replacement to wearing glasses and " "sit comfortably on the surface of the eye." msgstr "" -" par de lentes de contatoUm par de contatos de desgaste prolongado " -"comlentesflexíveis projetadas para serem descartadas após uma semana de uso." -" Eles sãoum ótimo substituto para usar óculos e sentar-se " -"confortavelmentenasuperfície do olho." #: lang/json/COMESTIBLE_from_json.py msgid "cotton balls" @@ -28610,8 +25055,6 @@ msgid "" "Fluffy balls of clean white cotton. Can serve as makeshift bandages in an " "emergency." msgstr "" -" bolas de algodãoBolas fofas de algodão branco limpo. Pode " -"servircomoataduras improvisadas em uma emergência." #: lang/json/COMESTIBLE_from_json.py msgid "crack" @@ -28622,7 +25065,7 @@ msgstr[1] "" #. ~ Use action activation_message for crack. #: lang/json/COMESTIBLE_from_json.py msgid "You smoke your crack rocks. Mother would be proud." -msgstr "Você fuma suas pedras de crack. Mãe ficaria orgulhosa." +msgstr "" #. ~ Description for crack #: lang/json/COMESTIBLE_from_json.py @@ -28630,8 +25073,6 @@ msgid "" "Deprotonated cocaine crystals, incredibly addictive and deleterious to brain" " chemistry." msgstr "" -" Cristais de cocaína deprotonados, incrivelmente viciosos e " -"deletériosàquímica do cérebro." #: lang/json/COMESTIBLE_from_json.py msgid "non-drowsy cough syrup" @@ -28646,30 +25087,25 @@ msgid "" "coughing, aching, headaches and runny noses, but you'll still need lots of " "fluids and rest." msgstr "" -" xarope para tosse não sonolentoDaytime medicação para gripes eresfriados. " -"Fórmula não sonolenta. Vai suprimir a tosse, dor, dores decabeça e " -"narizescorrendo, mas você ainda vai precisar de muito líquido edescansar." #: lang/json/COMESTIBLE_from_json.py msgid "disinfectant" -msgstr "desinfetante" +msgstr "" #. ~ Description for disinfectant #: lang/json/COMESTIBLE_from_json.py msgid "A powerful disinfectant commonly used for contaminated wounds." -msgstr "Um desinfetante poderoso comumente usado para feridas contaminadas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "makeshift disinfectant" -msgstr "desinfetante improvisado" +msgstr "" #. ~ Description for makeshift disinfectant #: lang/json/COMESTIBLE_from_json.py msgid "" "Makeshift disinfectant made from ethanol. Can be used to disinfect a wound." msgstr "" -" Desinfetante improvisado feito de etanol. Pode ser usado para " -"desinfetarumaferida." #: lang/json/COMESTIBLE_from_json.py src/addiction.cpp msgid "diazepam" @@ -28683,12 +25119,10 @@ msgid "" "A strong benzodiazepine drug used to treat muscle spasms, anxiety, seizures," " and panic attacks." msgstr "" -" DiazepamUma droga benzodiazepina forte usada para tratarespasmosmusculares," -" ansiedade, convulsões e ataques de pânico." #: lang/json/COMESTIBLE_from_json.py msgid "electronic cigarette" -msgstr "cigarro eletrônico" +msgstr "" #. ~ Description for electronic cigarette #: lang/json/COMESTIBLE_from_json.py @@ -28697,10 +25131,6 @@ msgid "" " nicotine. A less harmful alternative to traditional cigarettes, but it's " "still addictive. It can't be reused once it's empty." msgstr "" -" Este dispositivo operado por bateria vaporiza um líquido que contém " -"aromasenicotina. Uma alternativa menos prejudicial aos cigarros " -"tradicionais, masainda é viciante. Não pode ser reutilizado quando estiver " -"vazio." #: lang/json/COMESTIBLE_from_json.py msgid "saline eye drop" @@ -28714,12 +25144,10 @@ msgid "" "Sterile saline eye drops. Can be used to treat dry eyes, or to wash out " "contaminants." msgstr "" -" gota de olho salinoOs colírios salinos esterilizados. Pode ser " -"usadoparatratar olhos secos ou para eliminar contaminantes." #: lang/json/COMESTIBLE_from_json.py msgid "flu shot" -msgstr "Vacina da gripe" +msgstr "" #. ~ Description for flu shot #: lang/json/COMESTIBLE_from_json.py @@ -28727,8 +25155,6 @@ msgid "" "Pharmaceutical flu shot designed for mass vaccinations, still in the " "packaging. Purported to provide immunity to influenza." msgstr "" -" Vacina contra a gripe farmacêutica projetada para vacinações em massa, " -"aindana embalagem. Pretendeu-se fornecer imunidade à gripe." #: lang/json/COMESTIBLE_from_json.py msgid "chewing gum" @@ -28740,12 +25166,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Bright pink chewing gum. Sugary, sweet, and bad for your teeth." msgstr "" -" goma de mascar Goma de mascar rosa brilhante. Açucarado, doce e " -"ruimparaseus dentes." #: lang/json/COMESTIBLE_from_json.py msgid "hand-rolled cigarette" -msgstr "cigarro enrolado à mão" +msgstr "" #. ~ Description for hand-rolled cigarette #: lang/json/COMESTIBLE_from_json.py @@ -28754,9 +25178,6 @@ msgid "" "acuity and reduces appetite. Despite being hand crafted, it's still highly " "addictive and hazardous to health." msgstr "" -" Um rolo feito de tabaco e papel de enrolar. Estimula a acuidade " -"mentalereduz o apetite. Apesar de ser feito a mão, ainda é altamente " -"vicianteeperigoso para a saúde." #: lang/json/COMESTIBLE_from_json.py msgid "heroin" @@ -28768,7 +25189,7 @@ msgstr[1] "" #. ~ Use action activation_message for morphine. #: lang/json/COMESTIBLE_from_json.py msgid "You shoot up." -msgstr "heroína Você atira." +msgstr "" #. ~ Description for heroin #: lang/json/COMESTIBLE_from_json.py @@ -28777,18 +25198,15 @@ msgid "" "addictive, the risk of overdose is extreme, and the drug is contraindicated " "for nearly all medical purposes." msgstr "" -" Um narcótico opiáceo extremamente forte derivado da morfina. " -"Incrivelmenteviciante, o risco de overdose é extremo e o medicamento " -"écontra-indicadopara quase todos os fins médicos." #: lang/json/COMESTIBLE_from_json.py msgid "potassium iodide tablet" -msgstr "tablet de iodeto de potássio" +msgstr "" #. ~ Use action activation_message for potassium iodide tablet. #: lang/json/COMESTIBLE_from_json.py msgid "You take some potassium iodide." -msgstr "Você toma um pouco de iodeto de potássio." +msgstr "" #. ~ Description for potassium iodide tablet #: lang/json/COMESTIBLE_from_json.py @@ -28796,8 +25214,6 @@ msgid "" "Potassium iodide tablets. If taken prior to exposure, they help to mitigate" " injury caused by radiation absorption." msgstr "" -" Comprimidos de iodeto de potássio. Se tomadas antes da exposição, " -"elasajudam a mitigar as lesões causadas pela absorção de radiação." #: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py msgid "joint" @@ -28811,8 +25227,6 @@ msgid "" "Marijuana, cannabis, pot. Whatever you want to call it, it's rolled up in a" " piece of paper and ready for smokin'." msgstr "" -" conjunta Maconha, maconha, maconha. O que quer que você queira chamar, " -"estáenrolado em um pedaço de papel e pronto para fumar." #: lang/json/COMESTIBLE_from_json.py msgid "pink tab" @@ -28821,7 +25235,7 @@ msgstr "" #. ~ Use action activation_message for pink tab. #: lang/json/COMESTIBLE_from_json.py msgid "You eat the pink tablet." -msgstr "Você come o comprimido rosa." +msgstr "" #. ~ Description for pink tab #: lang/json/COMESTIBLE_from_json.py @@ -28832,7 +25246,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "medical gauze" -msgstr "gaze médica" +msgstr "" #. ~ Description for medical gauze #: lang/json/COMESTIBLE_from_json.py @@ -28840,8 +25254,6 @@ msgid "" "This is decent sized piece of cotton, sterilized and sealed. It's designed " "for medical purposes." msgstr "" -" É um pedaço de algodão decente, esterilizado e selado. Ele é " -"projetadoparafins médicos." #: lang/json/COMESTIBLE_from_json.py msgid "low-grade methamphetamine" @@ -28856,13 +25268,10 @@ msgid "" " enhancing alertness, it is hazardous to health and the risk of an adverse " "reaction is great." msgstr "" -" metanfetamina de baixo grauUm estimulante profundamente viciante e " -"poderoso. Embora extremamente eficaz em melhorar o estado de alerta, é " -"perigoso para a saúde e o risco de uma reação adversa é grande." #: lang/json/COMESTIBLE_from_json.py msgid "morphine" -msgstr "morfina" +msgstr "" #. ~ Description for morphine #: lang/json/COMESTIBLE_from_json.py @@ -28870,13 +25279,10 @@ msgid "" "A very strong semi-synthetic narcotic used to treat intense pain in hospital" " settings. This injectable drug is very addictive." msgstr "" -" Um narcótico semi-sintético muito forte usado para tratar a dor " -"intensaemambientes hospitalares. Este medicamento injetável é muito " -"viciante." #: lang/json/COMESTIBLE_from_json.py msgid "mugwort oil" -msgstr "óleo de artemísia" +msgstr "" #. ~ Description for mugwort oil #: lang/json/COMESTIBLE_from_json.py @@ -28884,19 +25290,15 @@ msgid "" "Some essential oil made from mugwort, which may kill parasites when " "ingested. Consume it with water!" msgstr "" -" Algum óleo essencial feito de artemísia, que pode matar " -"parasitasquandoingerido. Consuma com água!" #: lang/json/COMESTIBLE_from_json.py msgid "nicotine gum" -msgstr "goma de nicotina" +msgstr "" #. ~ Description for nicotine gum #: lang/json/COMESTIBLE_from_json.py msgid "Mint flavored nicotine chewing gum. For smokers who desire to quit." msgstr "" -" Goma de mascar de nicotina aromatizada com menta. Para fumantes " -"quedesejamdesistir." #: lang/json/COMESTIBLE_from_json.py msgid "cough syrup" @@ -28910,17 +25312,15 @@ msgid "" "Nighttime cold and flu medication. Useful when trying to sleep with a head " "full of virions. Will cause drowsiness." msgstr "" -" xarope para a tosse Medicação contra o frio e a gripe noturna. Útilaotentar" -" dormir com a cabeça cheia de virions. Vai causar sonolência." #: lang/json/COMESTIBLE_from_json.py msgid "oxycodone" -msgstr "oxicodona" +msgstr "" #. ~ Use action activation_message for oxycodone. #: lang/json/COMESTIBLE_from_json.py msgid "You take some oxycodone." -msgstr "Você toma um pouco de oxicodona." +msgstr "" #. ~ Description for oxycodone #: lang/json/COMESTIBLE_from_json.py @@ -28928,12 +25328,10 @@ msgid "" "A strong semi-synthetic narcotic used in the treatment of intense pain. " "Highly addictive." msgstr "" -" Um narcótico semi-sintético forte usado no tratamento da dorintensa. " -"Altamente viciante." #: lang/json/COMESTIBLE_from_json.py msgid "Ambien" -msgstr "Ambien" +msgstr "" #. ~ Description for Ambien #: lang/json/COMESTIBLE_from_json.py @@ -28941,18 +25339,15 @@ msgid "" "A habit-forming tranquilizer with a variety of psychoactive side effects. " "Used in the treatment of insomnia. Its generic name is zolpidem tartrate." msgstr "" -" Um tranqüilizante formador de hábitos com uma variedade deefeitoscolaterais" -" psicoativos. Usado no tratamento da insônia. Seu nomegenérico étartrato de " -"zolpidem." #: lang/json/COMESTIBLE_from_json.py msgid "poppy painkiller" -msgstr "analgésico papoula" +msgstr "" #. ~ Use action activation_message for poppy painkiller. #: lang/json/COMESTIBLE_from_json.py msgid "You take some poppy painkiller." -msgstr "Você toma um analgésico de papoula." +msgstr "" #. ~ Description for poppy painkiller #: lang/json/COMESTIBLE_from_json.py @@ -28961,13 +25356,10 @@ msgid "" "Notably devoid of euphoric or sedative effects, as an opiate it may still be" " addictive." msgstr "" -" Potencial opiáceo paliativo produzido pela refinação da papoulamutada. " -"Notavelmente desprovido de efeitos eufóricos ou sedativos, como umopiáceo, " -"pode ainda ser viciante." #: lang/json/COMESTIBLE_from_json.py msgid "poppy sleep" -msgstr "sono de papoula" +msgstr "" #. ~ Description for poppy sleep #: lang/json/COMESTIBLE_from_json.py @@ -28975,8 +25367,6 @@ msgid "" "A potent sleep aid extracted from mutated poppy seeds. Effective, but as an" " opiate, it may be addictive." msgstr "" -" Um potente auxílio para dormir extraído de sementes de papoulamutadas. " -"Eficaz, mas como um opiáceo, pode ser viciante." #: lang/json/COMESTIBLE_from_json.py msgid "poppy cough syrup" @@ -28988,12 +25378,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Cough syrup made from mutated poppy. Will make you sleepy." msgstr "" -" xarope de tosse papoula Xarope de tosse feito de papoula mutada. " -"Vaideixarvocê com sono." #: lang/json/COMESTIBLE_from_json.py src/bionics.cpp msgid "Prozac" -msgstr "Prozac" +msgstr "" #. ~ Description for Prozac #: lang/json/COMESTIBLE_from_json.py @@ -29003,19 +25391,15 @@ msgid "" "forming, though adverse reactions are not uncommon. Its generic name is " "fluoxetine." msgstr "" -" Um antidepressivo comum e popular. Ele elevará o humor e " -"podeafetarprofundamente a ação de outras drogas. Raramente é formador " -"dehábito, embora reações adversas não sejam incomuns. Seu nome genérico " -"éfluoxetina." #: lang/json/COMESTIBLE_from_json.py msgid "Prussian blue tablet" -msgstr "Comprimido azul da Prússia" +msgstr "" #. ~ Use action activation_message for Prussian blue tablet. #: lang/json/COMESTIBLE_from_json.py msgid "You take some Prussian blue." -msgstr "Você pega um pouco de azul da Prússia." +msgstr "" #. ~ Description for Prussian blue tablet #: lang/json/COMESTIBLE_from_json.py @@ -29023,9 +25407,6 @@ msgid "" "Tablets containing oxidized ferrous ferrocyanide salts. Capable of purging " "nuclear contaminants from the body if taken after radiation exposure." msgstr "" -" Comprimidos contendo sais de ferrocianeto ferroso oxidados. Capaz " -"deremovercontaminantes nucleares do corpo se tomado após exposição " -"àradiação." #: lang/json/COMESTIBLE_from_json.py msgid "hemostatic powder" @@ -29039,13 +25420,10 @@ msgid "" "A powdered antihemorrhagic compound that reacts with blood to immediately " "form a gel-like substance that stops bleeding." msgstr "" -" pó hemostáticoUm composto antihemorrágico em pó que reage com o " -"sangueparaformar imediatamente uma substância semelhante a gel que " -"interrompeosangramento." #: lang/json/COMESTIBLE_from_json.py msgid "saline solution" -msgstr "solução salina" +msgstr "" #. ~ Description for saline solution #: lang/json/COMESTIBLE_from_json.py @@ -29053,12 +25431,10 @@ msgid "" "A solution of sterilized water and salt for intravenous infusion or washing " "contaminants from one's eyes." msgstr "" -" Uma solução de água e sal esterilizada para infusão intravenosa oulavagemde" -" contaminantes dos olhos." #: lang/json/COMESTIBLE_from_json.py msgid "Thorazine" -msgstr "Thorazine" +msgstr "" #. ~ Description for Thorazine #: lang/json/COMESTIBLE_from_json.py @@ -29067,13 +25443,10 @@ msgid "" " hallucinations and other symptoms of psychosis. Carries a sedative effect." " Its generic name is chlorpromazine." msgstr "" -" Medicação anti-psicótica. Usado para estabilizar a química do cérebro, ele " -"pode deter alucinações e outros sintomas da psicose. Carrega um efeito " -"sedativo. Seu nome genérico é clorpromazina." #: lang/json/COMESTIBLE_from_json.py msgid "thyme oil" -msgstr "óleo de tomilho" +msgstr "" #. ~ Description for thyme oil #: lang/json/COMESTIBLE_from_json.py @@ -29081,17 +25454,15 @@ msgid "" "Some essential oil made from thyme, which can act as a mildly irritating " "disinfectant." msgstr "" -" Algum óleo essencial feito de tomilho, que pode atuar como um desinfetante " -"levemente irritante." #: lang/json/COMESTIBLE_from_json.py msgid "rolling tobacco" -msgstr "tabaco de enrolar" +msgstr "" #. ~ Use action activation_message for rolling tobacco. #: lang/json/COMESTIBLE_from_json.py msgid "You smoke some tobacco." -msgstr "Você fuma algum tabaco." +msgstr "" #. ~ Description for rolling tobacco #: lang/json/COMESTIBLE_from_json.py @@ -29099,17 +25470,15 @@ msgid "" "Loose, fine-cut tobacco leaves. Popular in Europe and among hipsters. Highly addictive and hazardous to health.\n" "Can either be rolled into a cigarette with some rolling papers or smoked through a pipe." msgstr "" -" Folhas de tabaco bem cortadas. Popular na Europa e entre osdescolados. Altamente viciante e perigoso para a saúde. \n" -" Pode ser enrolado num cigarro com alguns mortalhas ou fumado através de um cachimbo.\n" #: lang/json/COMESTIBLE_from_json.py msgid "tramadol" -msgstr "tramadol" +msgstr "" #. ~ Use action activation_message for tramadol. #: lang/json/COMESTIBLE_from_json.py msgid "You take some tramadol." -msgstr "Você pega algum tramadol." +msgstr "" #. ~ Description for tramadol #: lang/json/COMESTIBLE_from_json.py @@ -29117,12 +25486,10 @@ msgid "" "A painkiller used to manage moderate pain. The effects last for several " "hours, but are relatively subdued for an opioid." msgstr "" -" Um analgésico usado para controlar a dor moderada. Os efeitos " -"duramváriashoras, mas são relativamente moderados para um opióide." #: lang/json/COMESTIBLE_from_json.py msgid "gamma globulin shot" -msgstr "tiro gamaglobulina" +msgstr "" #. ~ Description for gamma globulin shot #: lang/json/COMESTIBLE_from_json.py @@ -29131,13 +25498,10 @@ msgid "" "intravenous injection to temporarily strengthen the immune system. It is " "still in its original packaging." msgstr "" -" Este reforço de imunoglobulina contém anticorpos concentradospreparadospara" -" injeção intravenosa para fortalecer temporariamente osistemaimunológico. " -"Ainda está em sua embalagem original." #: lang/json/COMESTIBLE_from_json.py msgid "multivitamin" -msgstr "multivitamínico" +msgstr "" #. ~ Use action activation_message for multivitamin. #. ~ Use action activation_message for calcium tablet. @@ -29155,13 +25519,10 @@ msgid "" "of last resort when a balanced diet is not possible. Excess use can cause " "hypervitaminosis." msgstr "" -" Nutrientes dietéticos essenciais convenientemente embalados em " -"formadepílula. Uma opção de último recurso quando uma dieta equilibrada " -"nãoépossível. O uso excessivo pode causar hipervitaminose." #: lang/json/COMESTIBLE_from_json.py msgid "calcium tablet" -msgstr "pastilha de cálcio" +msgstr "" #. ~ Description for calcium tablet #: lang/json/COMESTIBLE_from_json.py @@ -29169,13 +25530,10 @@ msgid "" "White calcium tablets. Widely used by elderly people with osteoporosis as a" " method to supplement calcium before the apocalypse." msgstr "" -" Comprimidos de cálcio branco. Amplamente utilizado por pessoas " -"idosascomosteoporose como um método para suplementar o cálcio antes " -"doapocalipse." #: lang/json/COMESTIBLE_from_json.py msgid "bone meal tablet" -msgstr "comprimido de farinha de ossos" +msgstr "" #. ~ Description for bone meal tablet #: lang/json/COMESTIBLE_from_json.py @@ -29183,12 +25541,10 @@ msgid "" "Homemade calcium supplement made out of bone meal. Tastes horrible and is " "hard to swallow but it does its job." msgstr "" -" Suplemento de cálcio caseiro feito de farinha de osso. Tem um " -"gostohorrívele é difícil de engolir, mas faz o seu trabalho." #: lang/json/COMESTIBLE_from_json.py msgid "flavored bone meal tablet" -msgstr "comprimido de refeição óssea com sabor" +msgstr "" #. ~ Description for flavored bone meal tablet #: lang/json/COMESTIBLE_from_json.py @@ -29197,13 +25553,10 @@ msgid "" "mixed in to counteract the powdery texture and the taste of ash, it's almost" " as palatable as the pre-cataclysm tablets." msgstr "" -" Suplemento de cálcio caseiro feito de farinha de osso. Devido aalgumadoçura" -" misturada para contrariar a textura pulverulenta e o sabordascinzas, é " -"quase tão palatável como os comprimidos pré-cataclísmicos." #: lang/json/COMESTIBLE_from_json.py msgid "gummy vitamin" -msgstr "vitamina gomosa" +msgstr "" #. ~ Description for gummy vitamin #: lang/json/COMESTIBLE_from_json.py @@ -29212,19 +25565,15 @@ msgid "" "candy form. An option of last resort when a balanced diet is not possible." " Excess use can cause hypervitaminosis." msgstr "" -" Nutrientes dietéticos essenciais convenientemente embalados em " -"formadebombons chewy com sabor de frutas. Uma opção de último recurso " -"quandoumadieta equilibrada não é possível. O uso excessivo " -"podecausarhipervitaminose." #: lang/json/COMESTIBLE_from_json.py msgid "injectable vitamin B" -msgstr "vitamina injetável B" +msgstr "" #. ~ Use action activation_message for injectable vitamin B. #: lang/json/COMESTIBLE_from_json.py msgid "You inject some vitamin B." -msgstr "Você injetar alguma vitamina B." +msgstr "" #. ~ Description for injectable vitamin B #: lang/json/COMESTIBLE_from_json.py @@ -29232,25 +25581,21 @@ msgid "" "Small vials of pale yellow liquid containing soluble vitamin B for " "injection." msgstr "" -" Pequenos frascos de líquido amarelo pálido contendo vitamina B " -"solúvelparainjeção." #: lang/json/COMESTIBLE_from_json.py msgid "injectable iron" -msgstr "ferro injetável" +msgstr "" #. ~ Use action activation_message for injectable iron. #: lang/json/COMESTIBLE_from_json.py msgid "You inject some iron." -msgstr "Você injeta um pouco de ferro." +msgstr "" #. ~ Description for injectable iron #: lang/json/COMESTIBLE_from_json.py msgid "" "Small vials of dark yellow liquid containing soluble iron for injection." msgstr "" -" Pequenos frascos de líquido amarelo escuro contendo ferro " -"solúvelparainjeção." #: lang/json/COMESTIBLE_from_json.py msgid "marijuana" @@ -29261,7 +25606,7 @@ msgstr[1] "" #. ~ Use action activation_message for marijuana. #: lang/json/COMESTIBLE_from_json.py msgid "You smoke some weed. Good stuff, man!" -msgstr "maconha Você fuma alguma erva. Coisas boas, cara!" +msgstr "" #. ~ Description for marijuana #: lang/json/COMESTIBLE_from_json.py @@ -29270,9 +25615,6 @@ msgid "" "hemp plant. Used to reduce nausea, stimulate appetite and elevate mood. It" " can be habit-forming, and adverse reactions are possible." msgstr "" -" Os botões florais secos e folhas colhidas de uma variedade " -"psicoativadeplantas de cânhamo. Usado para reduzir a náusea, estimular o " -"apetiteeelevar o humor. Pode ser viciante e reações adversas são possíveis." #: lang/json/COMESTIBLE_from_json.py src/bionics.cpp msgid "Xanax" @@ -29287,9 +25629,6 @@ msgid "" "and loss of memory. It is dangerously addictive, and withdrawal from " "regular use should be gradual. Its generic name is alprazolam." msgstr "" -" XanaxAnti-ansiedade agente com um poderoso efeito sedativo. " -"Podecausardissociação e perda de memória. É perigosamente viciante e a " -"retiradadouso regular deve ser gradual. Seu nome genérico é alprazolam." #: lang/json/COMESTIBLE_from_json.py msgid "disinfectant soaked rag" @@ -29330,19 +25669,15 @@ msgid "" "from setting in. It isn't strong enough to purge infections outright, but " "it boosts the body's resistance against them. One dose lasts twelve hours." msgstr "" -" AtreyupanUm antibiótico de amplo espectro usado para suprimir " -"infecçõeseimpedi-las de se estabelecer. Não é forte o suficiente " -"paraeliminarinfecções, mas aumenta a resistência do organismo contra elas. " -"Umadosedura doze horas." #: lang/json/COMESTIBLE_from_json.py msgid "heartburn medicine" -msgstr "remédio para azia" +msgstr "" #. ~ Use action activation_message for heartburn medicine. #: lang/json/COMESTIBLE_from_json.py msgid "You take some heartburn medicine." -msgstr "Você toma algum remédio para azia." +msgstr "" #. ~ Description for heartburn medicine #: lang/json/COMESTIBLE_from_json.py @@ -29350,9 +25685,6 @@ 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 "" -" Xarope de azia rosa cremoso que acalma os estômagos e agrava " -"osimpulsosvómitos; com uma tampa de torção que funciona como um copo " -"dedosagem." #: lang/json/COMESTIBLE_from_json.py msgid "Panaceus" @@ -29369,12 +25701,6 @@ msgid "" "very potent, or highly experimental. Holding it, all the little aches and " "pains seem to fade, just for a moment..." msgstr "" -" Panaceus Uma cápsula de gel de maçã vermelha do tamanho da suaunha, " -"preenchida com um líquido oleoso e espesso que muda de preto parapúrpuraem " -"intervalos imprevisíveis, salpicado de pequenos pontos cinzentos. Dado " -"olugar de onde você tirou, é muito potente ou altamenteexperimental. " -"Segurando, todas as pequenas dores e dores parecemdesaparecer, só por " -"ummomento ..." #: lang/json/COMESTIBLE_from_json.py msgid "cattail jelly" @@ -29388,21 +25714,19 @@ msgid "" "Clear jelly harvested from cattail, has antiseptic properties and works as a" " painkiller." msgstr "" -" geleia de taboaGeleia gelada colhida de taboa, tem propriedades anti- " -"sépticas e funciona como um analgésico." #: lang/json/COMESTIBLE_from_json.py msgid "MRE entree" -msgstr "Entrada MRE" +msgstr "" #. ~ Description for MRE entree #: lang/json/COMESTIBLE_from_json.py msgid "A generic MRE entree, you shouldn't see this." -msgstr "Uma entrada genérica MRE, você não deve ver isso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili & beans entree" -msgstr "chili & feijão entradas" +msgstr "" #. ~ Description for chili & beans entree #: lang/json/COMESTIBLE_from_json.py @@ -29410,12 +25734,10 @@ 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 "" -" O chili & feijão entradas de um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "BBQ beef entree" -msgstr "Entrada para churrasco" +msgstr "" #. ~ Description for BBQ beef entree #: lang/json/COMESTIBLE_from_json.py @@ -29423,12 +25745,10 @@ 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 "" -" A carne de churrasco entrada de um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "chicken noodle entree" -msgstr "entrada de macarrão de frango" +msgstr "" #. ~ Description for chicken noodle entree #: lang/json/COMESTIBLE_from_json.py @@ -29436,12 +25756,10 @@ 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 "" -" O macarrão de frango prato principal de um MRE. Esterilizadousandoradiação," -" por isso é seguro comer. Exposta à atmosfera, começou a irmal." #: lang/json/COMESTIBLE_from_json.py msgid "spaghetti entree" -msgstr "entrada de espaguete" +msgstr "" #. ~ Description for spaghetti entree #: lang/json/COMESTIBLE_from_json.py @@ -29449,12 +25767,10 @@ 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 "" -" O espaguete entree de um MRE. Esterilizado usando radiação, por issoéseguro" -" comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "chicken chunks entree" -msgstr "pedaços de frango entree" +msgstr "" #. ~ Description for chicken chunks entree #: lang/json/COMESTIBLE_from_json.py @@ -29462,12 +25778,10 @@ 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 "" -" Os pedaços de frango entree de um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "beef taco entree" -msgstr "carne taco entrada" +msgstr "" #. ~ Description for beef taco entree #: lang/json/COMESTIBLE_from_json.py @@ -29475,13 +25789,10 @@ 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 "" -" O taco de carne de vaca é proveniente de um MRE. " -"Esterilizadousandoradiação, por isso é seguro comer. Exposta à atmosfera, " -"começou a irmal." #: lang/json/COMESTIBLE_from_json.py msgid "beef brisket entree" -msgstr "prato principal de carne bovina" +msgstr "" #. ~ Description for beef brisket entree #: lang/json/COMESTIBLE_from_json.py @@ -29489,12 +25800,10 @@ 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 "" -" O peito de carne de bovino entree de um MRE. Esterilizado usandoradiação, " -"por isso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "meatballs & marinara entree" -msgstr "almôndegas e entradas marinara" +msgstr "" #. ~ Description for meatballs & marinara entree #: lang/json/COMESTIBLE_from_json.py @@ -29502,12 +25811,10 @@ 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 "" -" As almôndegas e marinara entree de um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "beef stew entree" -msgstr "ensopado de carne de vaca" +msgstr "" #. ~ Description for beef stew entree #: lang/json/COMESTIBLE_from_json.py @@ -29515,12 +25822,10 @@ 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 "" -" O ensopado de carne de vaca entrou em um MRE. Esterilizado usandoradiação, " -"por isso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "chili & macaroni entree" -msgstr "chili & macaroni entree" +msgstr "" #. ~ Description for chili & macaroni entree #: lang/json/COMESTIBLE_from_json.py @@ -29528,12 +25833,10 @@ 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 "" -" O chili & macaroni entradas de um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "vegetarian taco entree" -msgstr "entrada de taco vegetariano" +msgstr "" #. ~ Description for vegetarian taco entree #: lang/json/COMESTIBLE_from_json.py @@ -29541,12 +25844,10 @@ 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 "" -" O taco vegetariano entree de um MRE. Esterilizado usando radiação, porissoé" -" seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "macaroni & marinara entree" -msgstr "macarrão e marinara" +msgstr "" #. ~ Description for macaroni & marinara entree #: lang/json/COMESTIBLE_from_json.py @@ -29554,12 +25855,10 @@ 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 "" -" O macarrão e marinara entradas de um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "cheese tortellini entree" -msgstr "entrada de tortellini de queijo" +msgstr "" #. ~ Description for cheese tortellini entree #: lang/json/COMESTIBLE_from_json.py @@ -29567,12 +25866,10 @@ 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 "" -" O queijo tortellini entree de um MRE. Esterilizado usando radiação, " -"porissoé seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "mushroom fettuccine entree" -msgstr "fettuccine cogumelo entree" +msgstr "" #. ~ Description for mushroom fettuccine entree #: lang/json/COMESTIBLE_from_json.py @@ -29580,12 +25877,10 @@ 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 "" -" O fettuccine de cogumelo entree de um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "Mexican chicken stew entree" -msgstr "Ensopado de frango mexicano" +msgstr "" #. ~ Description for Mexican chicken stew entree #: lang/json/COMESTIBLE_from_json.py @@ -29593,12 +25888,10 @@ 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 "" -" O cozido de frango mexicano entree de um MRE. Esterilizado usandoradiação, " -"por isso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "chicken burrito bowl entree" -msgstr "entrada de tigela de burrito de frango" +msgstr "" #. ~ Description for chicken burrito bowl entree #: lang/json/COMESTIBLE_from_json.py @@ -29606,12 +25899,10 @@ 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 "" -" A tigela de burrito de frango entree de um MRE. Esterilizadousandoradiação," -" por isso é seguro comer. Exposta à atmosfera, começou a irmal." #: lang/json/COMESTIBLE_from_json.py msgid "maple sausage entree" -msgstr "entrada de salsicha de bordo" +msgstr "" #. ~ Description for maple sausage entree #: lang/json/COMESTIBLE_from_json.py @@ -29619,12 +25910,10 @@ 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 "" -" A salsicha do bordo entra em um MRE. Esterilizado usando radiação, porissoé" -" seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "ravioli entree" -msgstr "ravioli entree" +msgstr "" #. ~ Description for ravioli entree #: lang/json/COMESTIBLE_from_json.py @@ -29632,12 +25921,10 @@ 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 "" -" O ravioli entree de um MRE. Esterilizado usando radiação, por isso " -"ésegurocomer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "pepper jack beef entree" -msgstr "pimenta jack carne entrada" +msgstr "" #. ~ Description for pepper jack beef entree #: lang/json/COMESTIBLE_from_json.py @@ -29645,12 +25932,10 @@ 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 "" -" A carne de jaque de pimenta entra em um MRE. Esterilizado usandoradiação, " -"por isso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "hash browns & bacon entree" -msgstr "hash browns & bacon entrada" +msgstr "" #. ~ Description for hash browns & bacon entree #: lang/json/COMESTIBLE_from_json.py @@ -29658,12 +25943,10 @@ 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 "" -" O hash browns & bacon entradas de um MRE. Esterilizado usandoradiação, " -"por isso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "lemon pepper tuna entree" -msgstr "entrada de atum com pimenta limão" +msgstr "" #. ~ Description for lemon pepper tuna entree #: lang/json/COMESTIBLE_from_json.py @@ -29671,12 +25954,10 @@ 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 "" -" O atum do limão-pimenta entra em um MRE. Esterilizado usando radiação, " -"porisso é seguro comer. Exposta à atmosfera, começou a ir mal." #: lang/json/COMESTIBLE_from_json.py msgid "asian beef & vegetables entree" -msgstr "entrada de carne e vegetais asiática" +msgstr "" #. ~ Description for asian beef & vegetables entree #: lang/json/COMESTIBLE_from_json.py @@ -29684,13 +25965,10 @@ 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 "" -" A carne de boi e vegetais asiáticos são provenientes de um MRE. " -"Esterilizadousando radiação, por isso é seguro comer. Exposta à atmosfera, " -"começou a irmal." #: lang/json/COMESTIBLE_from_json.py msgid "chicken pesto & pasta entree" -msgstr "pesto de frango e entrada de massa" +msgstr "" #. ~ Description for chicken pesto & pasta entree #: lang/json/COMESTIBLE_from_json.py @@ -29698,12 +25976,10 @@ 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 "" -" O frango pesto & massas entradas de um MRE. Esterilizadousandoradiação," -" por isso é seguro comer. Exposta à atmosfera, começou a irmal." #: lang/json/COMESTIBLE_from_json.py msgid "southwest beef & beans entree" -msgstr "entrada sudoeste de carne bovina e feijão" +msgstr "" #. ~ Description for southwest beef & beans entree #: lang/json/COMESTIBLE_from_json.py @@ -29712,13 +25988,10 @@ msgid "" "radiation, so it's safe to eat. Exposed to the atmosphere, it has started " "to go bad." msgstr "" -" O sudoeste carne e feijão entradas entradas de um MRE. " -"Esterilizadousandoradiação, por isso é seguro comer. Exposta à atmosfera, " -"começou a irmal." #: lang/json/COMESTIBLE_from_json.py msgid "frankfurters & beans entree" -msgstr "frankfurters & feijão entradas" +msgstr "" #. ~ Description for frankfurters & beans entree #: lang/json/COMESTIBLE_from_json.py @@ -29727,22 +26000,19 @@ msgid "" "Sterilized using radiation, so it's safe to eat. Exposed to the atmosphere," " it has started to go bad." msgstr "" -" Os temidos quatro dedos da morte. Parece ter várias décadas. " -"Esterilizadousando radiação, por isso é seguro comer. Exposta à atmosfera, " -"começou a irmal." #: lang/json/COMESTIBLE_from_json.py msgid "cooked mushroom" -msgstr "cogumelo cozido" +msgstr "" #. ~ Description for cooked mushroom #: lang/json/COMESTIBLE_from_json.py msgid "A tasty cooked wild mushroom." -msgstr "Um cogumelo selvagem cozinhado saboroso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "morel mushroom" -msgstr "cogumelo morel" +msgstr "" #. ~ Description for morel mushroom #: lang/json/COMESTIBLE_from_json.py @@ -29750,40 +26020,37 @@ msgid "" "Prized by chefs and woodsmen alike, morel mushrooms are delicious but must " "be cooked before they are safe to eat." msgstr "" -" Premiado por chefs e madeireiros, cogumelos morel são deliciosos, " -"masdevemser cozidos antes de serem seguros para comer." #: lang/json/COMESTIBLE_from_json.py msgid "cooked morel mushroom" -msgstr "cogumelo morel cozido" +msgstr "" #. ~ Description for cooked morel mushroom #: lang/json/COMESTIBLE_from_json.py msgid "A tasty cooked morel mushroom." -msgstr "Um cogumelo cozinhado saboroso do morel." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fried morel mushroom" -msgstr "cogumelo morel frito" +msgstr "" #. ~ Description for fried morel mushroom #: lang/json/COMESTIBLE_from_json.py msgid "A delicious serving of fried morsels of morel mushroom." -msgstr "Uma deliciosa porção de pedaços fritos de cogumelo morel." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dried mushroom" -msgstr "cogumelo secado" +msgstr "" #. ~ Description for dried mushroom #: lang/json/COMESTIBLE_from_json.py msgid "Dried mushrooms are a tasty and healthy addition to many meals." msgstr "" -" Cogumelos secos são uma adição saborosa e saudável para muitas refeições." #: lang/json/COMESTIBLE_from_json.py msgid "mushroom" -msgstr "cogumelo" +msgstr "" #. ~ Description for mushroom #: lang/json/COMESTIBLE_from_json.py @@ -29791,21 +26058,19 @@ msgid "" "Mushrooms are tasty, but be careful. Some can poison you, while others are " "hallucinogenic." msgstr "" -" Cogumelos são saborosos, mas tenha cuidado. Alguns podem envenená- lo, " -"enquanto outros são alucinógenos." #: lang/json/COMESTIBLE_from_json.py msgid "abstract mutagen flavor" -msgstr "sabor mutagênico abstrato" +msgstr "" #. ~ Description for abstract mutagen flavor #: lang/json/COMESTIBLE_from_json.py msgid "A rare substance of uncertain origins. Causes you to mutate." -msgstr "Uma substância rara de origens incertas. Faz com que você mude." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "abstract iv mutagen flavor" -msgstr "sabor de mutagênico iv abstrato" +msgstr "" #. ~ Description for abstract iv mutagen flavor #: lang/json/COMESTIBLE_from_json.py @@ -29813,16 +26078,14 @@ msgid "" "A super-concentrated mutagen. You need a syringe to inject it... if you " "really want to?" msgstr "" -" Um mutagênico superconcentrado. Você precisa de uma seringa para " -"injetar...se você realmente quiser?" #: lang/json/COMESTIBLE_from_json.py msgid "mutagenic serum" -msgstr "soro mutagênico" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "alpha serum" -msgstr "soro alfa" +msgstr "" #. ~ Description for alpha serum #: lang/json/COMESTIBLE_from_json.py @@ -29830,12 +26093,10 @@ msgid "" "A super-concentrated mutagen strongly resembling blood. You need a syringe " "to inject it... if you really want to?" msgstr "" -" Um mutagênico superconcentrado que lembra muito o sangue. Você precisadeuma" -" seringa para injetar ... se você realmente quiser?" #: lang/json/COMESTIBLE_from_json.py msgid "beast serum" -msgstr "soro de fera" +msgstr "" #. ~ Description for beast serum #: lang/json/COMESTIBLE_from_json.py @@ -29846,7 +26107,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bird serum" -msgstr "soro de aves" +msgstr "" #. ~ Description for bird serum #: lang/json/COMESTIBLE_from_json.py @@ -29854,12 +26115,10 @@ msgid "" "A super-concentrated mutagen the color of the pre-cataclysmic skies. You " "need a syringe to inject it... if you really want to?" msgstr "" -" Um mutagênico superconcentrado da cor dos céus pré- cataclísmicos. " -"Vocêprecisa de uma seringa para injetar ... se você realmente quiser?" #: lang/json/COMESTIBLE_from_json.py msgid "cattle serum" -msgstr "soro de gado" +msgstr "" #. ~ Description for cattle serum #: lang/json/COMESTIBLE_from_json.py @@ -29867,12 +26126,10 @@ msgid "" "A super-concentrated mutagen the color of grass. You need a syringe to " "inject it... if you really want to?" msgstr "" -" Um mutagênico superconcentrado da cor da grama. Você precisa de " -"umaseringapara injetar ... se você realmente quiser?" #: lang/json/COMESTIBLE_from_json.py msgid "cephalopod serum" -msgstr "soro cefalópode" +msgstr "" #. ~ Description for cephalopod serum #: lang/json/COMESTIBLE_from_json.py @@ -29883,7 +26140,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chimera serum" -msgstr "soro de quimera" +msgstr "" #. ~ Description for chimera serum #: lang/json/COMESTIBLE_from_json.py @@ -29894,7 +26151,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "elf-a serum" -msgstr "elf-a serum" +msgstr "" #. ~ Description for elf-a serum #: lang/json/COMESTIBLE_from_json.py @@ -29905,7 +26162,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "feline serum" -msgstr "soro felino" +msgstr "" #. ~ Description for feline serum #: lang/json/COMESTIBLE_from_json.py @@ -29916,7 +26173,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fish serum" -msgstr "soro de peixe" +msgstr "" #. ~ Description for fish serum #: lang/json/COMESTIBLE_from_json.py @@ -29924,12 +26181,10 @@ msgid "" "A super-concentrated mutagen the color of the ocean, with white foam at the " "top. You need a syringe to inject it... if you really want to?" msgstr "" -" Um mutagênico superconcentrado da cor do oceano, com espuma branca notopo. " -"Você precisa de uma seringa para injetar ... se você realmente quiser?" #: lang/json/COMESTIBLE_from_json.py msgid "insect serum" -msgstr "soro de inseto" +msgstr "" #. ~ Description for insect serum #: lang/json/COMESTIBLE_from_json.py @@ -29940,7 +26195,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lizard serum" -msgstr "soro de lagarto" +msgstr "" #. ~ Description for lizard serum #: lang/json/COMESTIBLE_from_json.py @@ -29951,7 +26206,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lupine serum" -msgstr "soro de tremoço" +msgstr "" #. ~ Description for lupine serum #: lang/json/COMESTIBLE_from_json.py @@ -29962,7 +26217,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "medical serum" -msgstr "soro médico" +msgstr "" #. ~ Description for medical serum #: lang/json/COMESTIBLE_from_json.py @@ -29973,7 +26228,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "plant serum" -msgstr "soro de plantas" +msgstr "" #. ~ Description for plant serum #: lang/json/COMESTIBLE_from_json.py @@ -29984,7 +26239,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raptor serum" -msgstr "soro de raptor" +msgstr "" #. ~ Description for raptor serum #: lang/json/COMESTIBLE_from_json.py @@ -29995,7 +26250,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rat serum" -msgstr "soro de rato" +msgstr "" #. ~ Description for rat serum #: lang/json/COMESTIBLE_from_json.py @@ -30006,7 +26261,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "slime serum" -msgstr "soro de lodo" +msgstr "" #. ~ Description for slime serum #: lang/json/COMESTIBLE_from_json.py @@ -30017,7 +26272,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "spider serum" -msgstr "soro de aranha" +msgstr "" #. ~ Description for spider serum #: lang/json/COMESTIBLE_from_json.py @@ -30028,7 +26283,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "troglobite serum" -msgstr "soro de troglóbio" +msgstr "" #. ~ Description for troglobite serum #: lang/json/COMESTIBLE_from_json.py @@ -30039,7 +26294,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ursine serum" -msgstr "soro de ursina" +msgstr "" #. ~ Description for ursine serum #: lang/json/COMESTIBLE_from_json.py @@ -30050,7 +26305,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mouse serum" -msgstr "soro de rato" +msgstr "" #. ~ Description for mouse serum #: lang/json/COMESTIBLE_from_json.py @@ -30061,11 +26316,11 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mutagen" -msgstr "mutagênico" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "congealed blood" -msgstr "sangue coagulado" +msgstr "" #. ~ Description for congealed blood #: lang/json/COMESTIBLE_from_json.py @@ -30073,12 +26328,10 @@ msgid "" "A thick, soupy red liquid. It looks and smells disgusting, and seems to " "bubble with an intelligence of its own..." msgstr "" -" Um líquido vermelho espesso e grosso. Parece e cheira repugnante, " -"epareceborbulhar com uma inteligência própria ..." #: lang/json/COMESTIBLE_from_json.py msgid "alpha mutagen" -msgstr "mutagênico alfa" +msgstr "" #. ~ Description for alpha mutagen #. ~ Description for chimera mutagen @@ -30086,27 +26339,27 @@ msgstr "mutagênico alfa" #. ~ Description for raptor mutagen #: lang/json/COMESTIBLE_from_json.py msgid "An extremely rare mutagen cocktail." -msgstr "Um cocktail mutagénico extremamente raro." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "beast mutagen" -msgstr "mutagênico besta" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bird mutagen" -msgstr "mutagênico de aves" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cattle mutagen" -msgstr "mutagen de gado" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cephalopod mutagen" -msgstr "mutagéneo cefalópode" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chimera mutagen" -msgstr "mutagéneo quimérico" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "elf-a mutagen" @@ -30114,63 +26367,63 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "feline mutagen" -msgstr "mutagênico felino" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fish mutagen" -msgstr "peixe mutagênico" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "insect mutagen" -msgstr "mutagênico de insetos" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lizard mutagen" -msgstr "mutagênico lagarto" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lupine mutagen" -msgstr "mutagênico lupino" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "medical mutagen" -msgstr "mutagênico médico" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "plant mutagen" -msgstr "mutagênico de plantas" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raptor mutagen" -msgstr "mutagênico raptor" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rat mutagen" -msgstr "mutagênico de rato" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "slime mutagen" -msgstr "mutagênico de lodo" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "spider mutagen" -msgstr "mutagênico aranha" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "troglobite mutagen" -msgstr "mutagênico troglobito" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "ursine mutagen" -msgstr "mutagênico ursino" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mouse mutagen" -msgstr "mutagênico de rato" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "purifier" -msgstr "purificador" +msgstr "" #. ~ Description for purifier #: lang/json/COMESTIBLE_from_json.py @@ -30178,24 +26431,20 @@ msgid "" "A rare stem-cell treatment that causes mutations and other genetic defects " "to fade away." msgstr "" -" Um tratamento raro com células-tronco que faz com que as mutações " -"eoutrosdefeitos genéticos desapareçam." #: lang/json/COMESTIBLE_from_json.py msgid "purifier serum" -msgstr "soro purificador" +msgstr "" #. ~ Description for purifier serum #: lang/json/COMESTIBLE_from_json.py msgid "" "A super-concentrated stem cell treatment. You need a syringe to inject it." msgstr "" -" Um tratamento com células-tronco superconcentradas. Você precisa " -"deumaseringa para injetar." #: lang/json/COMESTIBLE_from_json.py msgid "purifier smart shot" -msgstr "purificador tiro inteligente" +msgstr "" #. ~ Description for purifier smart shot #: lang/json/COMESTIBLE_from_json.py @@ -30204,9 +26453,6 @@ msgid "" "mutations are purified. The liquid sloshes strangely inside of this " "syringe." msgstr "" -" Um tratamento experimental com células-tronco, oferecendo " -"controlelimitadosobre quais mutações são purificadas. O líquido " -"espirraestranhamentedentro desta seringa." #: lang/json/COMESTIBLE_from_json.py msgid "misshapen fetus" @@ -30223,7 +26469,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mutated arm" -msgstr "braço mutado" +msgstr "" #. ~ Description for mutated arm #: lang/json/COMESTIBLE_from_json.py @@ -30234,7 +26480,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mutated leg" -msgstr "perna mutada" +msgstr "" #. ~ Description for mutated leg #: lang/json/COMESTIBLE_from_json.py @@ -30245,7 +26491,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tainted tornado" -msgstr "furacão contaminado" +msgstr "" #. ~ Description for tainted tornado #: lang/json/COMESTIBLE_from_json.py @@ -30253,12 +26499,10 @@ 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 "" -" Uma massa espumosa de carne zumbi encharcada de álcool e sanguepodre, " -"cheira quase tão mal quanto parece. Tem propriedades mutagênicasfracas." #: lang/json/COMESTIBLE_from_json.py msgid "sewer brew" -msgstr "fermentação de esgoto" +msgstr "" #. ~ Description for sewer brew #: lang/json/COMESTIBLE_from_json.py @@ -30266,8 +26510,6 @@ msgid "" "A thirsty mutant's drink of choice. It tastes horrible but it's probably a " "lot safer to drink than before." msgstr "" -" Bebida de escolha de um mutante sedento. O gosto é horrível, " -"masprovavelmente é muito mais seguro beber do que antes." #: lang/json/COMESTIBLE_from_json.py msgid "handful of pine nuts" @@ -30304,8 +26546,6 @@ msgstr[1] "" msgid "" "A handful of nuts from a pistachio tree, their shells have been removed." msgstr "" -" punhado de pistaches com cascaUm punhado de nozes de um pistache, " -"suasconchas foram removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted pistachios" @@ -30317,8 +26557,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from an pistachio tree." msgstr "" -" punhado de pistachios assados Um punhado de nozes assadas de uma " -"árvoredepistache." #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled almonds" @@ -30330,8 +26568,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of nuts from an almond tree, their shells have been removed." msgstr "" -" punhado de amêndoas com cascaUm punhado de nozes de uma amendoeira, " -"suasconchas foram removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted almonds" @@ -30343,7 +26579,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from an almond tree." msgstr "" -" punhado de amêndoas torradas Um punhado de nozes torradas de umaamendoeira." #: lang/json/COMESTIBLE_from_json.py msgid "handful of cashews" @@ -30354,7 +26589,7 @@ msgstr[1] "" #. ~ Description for handful of cashews #: lang/json/COMESTIBLE_from_json.py msgid "A handful of salty cashews." -msgstr "castanha de caju Um punhado de cajus salgados." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled pecans" @@ -30368,8 +26603,6 @@ msgid "" "A handful of pecans which are a sub-species of hickory nuts, their shells " "have been removed." msgstr "" -" Um punhado de pecans descascados Um punhado de pecans que são " -"umasubespéciede nozes de nogueira, suas cascas foram removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted pecans" @@ -30381,7 +26614,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from a pecan tree." msgstr "" -"punhado de nozes torradas Um punhado de nozes assadas de uma noz-pecã." #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled peanuts" @@ -30393,7 +26625,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Salty peanuts with their shells removed." msgstr "" -" punhado de amendoim sem cascaSalty amendoins com suas cascas removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of beech nuts" @@ -30418,8 +26649,6 @@ msgid "" "A handful of raw hard nuts from a walnut tree, their shells have been " "removed." msgstr "" -" Um punhado de nozes descascadas Um punhado de nozes duras cruas " -"deumanogueira, suas cascas foram removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted walnuts" @@ -30431,7 +26660,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from a walnut tree." msgstr "" -"punhado de nozes torradas Um punhado de nozes assadas de uma nogueira." #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled chestnuts" @@ -30445,8 +26673,6 @@ msgid "" "A handful of raw hard nuts from a chestnut tree, their shells have been " "removed." msgstr "" -" punhado de castanhas descascadas Um punhado de nozes duras cruas " -"deumacastanheira, suas conchas foram removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted chestnuts" @@ -30458,7 +26684,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from a chestnut tree." msgstr "" -" punhado de castanhas assadas Um punhado de nozes assadas de umacastanheira." #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled hazelnuts" @@ -30472,8 +26697,6 @@ msgid "" "A handful of raw hard nuts from a hazelnut tree, their shells have been " "removed." msgstr "" -" punhado de avelãsUm punhado de nozes duras cruas de uma avelã, " -"suascascasforam removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted edamame" @@ -30507,8 +26730,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from a hazelnut tree." msgstr "" -" punhado de avelãs torradas Um punhado de nozes torradas de uma " -"árvoredeavelã." #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled hickory nuts" @@ -30522,8 +26743,6 @@ msgid "" "A handful of raw hard nuts from a hickory tree, their shells have been " "removed." msgstr "" -" Um punhado de castanhas de casca de noz com cascaUm punhado " -"decastanhasduras e cruas de uma nogueira, suas cascas foram removidas." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted hickory nuts" @@ -30535,17 +26754,15 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A handful of roasted nuts from a hickory tree." msgstr "" -" punhado de nozes torradas nogueiraUm punhado de nozes torradas " -"deumanogueira." #: lang/json/COMESTIBLE_from_json.py msgid "hickory nut ambrosia" -msgstr "ambrosia de noz de nogueira" +msgstr "" #. ~ Description for hickory nut ambrosia #: lang/json/COMESTIBLE_from_json.py msgid "Delicious hickory nut ambrosia. A drink worthy of the gods." -msgstr "Ambrosia deliciosa da noz de hicória. Uma bebida digna dos deuses." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of acorns" @@ -30559,9 +26776,6 @@ 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 "" -" Um punhado de bolotas Um punhado de bolotas, ainda em suas conchas. " -"Esquilosgostam deles, mas eles não são muito bons para você comer " -"nesseestado." #: lang/json/COMESTIBLE_from_json.py msgid "handful of roasted acorns" @@ -30572,7 +26786,7 @@ msgstr[1] "" #. ~ Description for handful of roasted acorns #: lang/json/COMESTIBLE_from_json.py msgid "A handful roasted nuts from an oak tree." -msgstr "Um punhado de nozes assadas de um carvalho." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked acorn meal" @@ -30586,9 +26800,6 @@ msgid "" "A serving of acorns that have been hulled, chopped, and boiled in water " "before being thoroughly toasted until dry. Filling and nutritious." msgstr "" -" bolota cozida Uma porção de bolotas que foram descascadas, picadas " -"ecozidasem água antes de serem completamente torradas até secar. " -"Recheioenutritivo." #: lang/json/COMESTIBLE_from_json.py msgid "foie gras" @@ -30601,8 +26812,6 @@ msgstr[1] "" msgid "" "Thought it's not technically foie gras, you don't have to think about that." msgstr "" -" foie grasThought não é tecnicamente foie gras, você não precisa " -"pensarsobreisso." #: lang/json/COMESTIBLE_from_json.py msgid "liver & onions" @@ -30613,21 +26822,21 @@ msgstr[1] "" #. ~ Description for liver & onions #: lang/json/COMESTIBLE_from_json.py msgid "A classic way to serve liver." -msgstr "fígado e cebolaUma maneira clássica de servir fígado." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fried liver" -msgstr "fígado frito" +msgstr "" #. ~ Description for fried liver #. ~ Description for deep fried tripe #: lang/json/COMESTIBLE_from_json.py msgid "Nothing tastier than something that's deep-fried!" -msgstr "Nada mais saboroso do que algo que é frito!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "humble pie" -msgstr "torta humilde" +msgstr "" #. ~ Description for humble pie #: lang/json/COMESTIBLE_from_json.py @@ -30635,8 +26844,6 @@ msgid "" "Also known as 'Umble' pie, made with chopped organ meats. Not half bad, and" " really good for you!" msgstr "" -" Também conhecida como torta 'Umble', feita com carnes picadas. " -"Nãoémeio ruim e muito bom para você!" #: lang/json/COMESTIBLE_from_json.py msgid "stewed tripe" @@ -30651,7 +26858,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "deep fried tripe" -msgstr "tripa frita" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "leverpostej" @@ -30664,48 +26871,46 @@ msgstr[1] "" msgid "" "A traditional Danish pate. Probably better if you spread it on some bread." msgstr "" -" Patê tradicional dinamarquesa de leverpostejA. Provavelmente melhor " -"sevocêespalhar em algum pão." #: lang/json/COMESTIBLE_from_json.py msgid "fried brain" -msgstr "cérebro frito" +msgstr "" #. ~ Description for fried brain #: lang/json/COMESTIBLE_from_json.py msgid "I don't know what you were expecting. It's deep fried." -msgstr "Eu não sei o que você estava esperando. Está bem frito." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "deviled kidney" -msgstr "rim deviled" +msgstr "" #. ~ Description for deviled kidney #: lang/json/COMESTIBLE_from_json.py msgid "A delicious way to prepare kidneys." -msgstr "Uma maneira deliciosa de preparar os rins." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "grilled sweetbread" -msgstr "pão doce grelhado" +msgstr "" #. ~ Description for grilled sweetbread #: lang/json/COMESTIBLE_from_json.py msgid "Not sweet, like the name would suggest, but delicious all the same!" -msgstr "Não é doce, como o nome sugere, mas delicioso mesmo assim!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned liver" -msgstr "fígado enlatado" +msgstr "" #. ~ Description for canned liver #: lang/json/COMESTIBLE_from_json.py msgid "Livers preserved in a can. Chock full of B vitamins!" -msgstr "Fígados preservados em uma lata. Cheio de vitaminas do complexo B!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "diet pill" -msgstr "pílula de dieta" +msgstr "" #. ~ Description for diet pill #: lang/json/COMESTIBLE_from_json.py @@ -30713,12 +26918,10 @@ msgid "" "Not very nutritious. Warning: contains calories, unsuitable for " "breatharians." msgstr "" -" Não é muito nutritivo. Aviso: contém calorias " -"imprópriaspararespiratorianos." #: lang/json/COMESTIBLE_from_json.py msgid "blob glob" -msgstr "blob glob" +msgstr "" #. ~ Description for blob glob #: lang/json/COMESTIBLE_from_json.py @@ -30726,17 +26929,15 @@ msgid "" "A little hunk of glop that fell off a blob monster. It doesn't seem " "hostile, but it does wiggle occasionally." msgstr "" -" Um pedaço de glop que caiu de um monstro de bolha. Não parece hostil, " -"masocasionalmente se agita." #: lang/json/COMESTIBLE_from_json.py msgid "honey comb" -msgstr "pente de mel" +msgstr "" #. ~ Description for honey comb #: lang/json/COMESTIBLE_from_json.py msgid "A large chunk of wax filled with honey. Very tasty." -msgstr "Um grande pedaço de cera cheio de mel. Muito saboroso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wax" @@ -30750,8 +26951,6 @@ msgid "" "A large chunk of beeswax. Not very tasty or nourishing, but okay in an " "emergency." msgstr "" -" waxA grande pedaço de cera de abelha. Não muito saborosa ou nutritiva, " -"mastudo bem em caso de emergência." #: lang/json/COMESTIBLE_from_json.py msgid "royal jelly" @@ -30766,9 +26965,6 @@ msgid "" "Delicious, and rich with the most beneficial substances the hive can " "produce, it is useful for curing all sorts of afflictions." msgstr "" -" geléia real Um pedaço de cera hexagonal translúcido, cheio de geléia " -"densaeleitosa. Deliciosa e rica com as substâncias mais benéficas que a " -"colmeia pode produzir, é útil para curar todos os tipos de aflições." #: lang/json/COMESTIBLE_from_json.py msgid "marloss berry" @@ -30783,9 +26979,6 @@ msgid "" " has a strong but delicious aroma, but is clearly either mutated or of alien" " origin." msgstr "" -" marloss berryIsto parece um mirtilo do tamanho do seu punho, mas " -"decorrosada. Tem um aroma forte, mas delicioso, mas é claramente mutado " -"oudeorigem alienígena." #: lang/json/COMESTIBLE_from_json.py msgid "marloss gelatin" @@ -30800,9 +26993,6 @@ msgid "" "much like pre-cataclysm jello. It has a strong but delicious aroma, but is " "clearly either mutated or of alien origin." msgstr "" -" Isto parece um punhado de líquido cor de limão que tomou um conjunto, " -"bemcomo gelatina pré-cataclismo. Tem um aroma forte, mas delicioso, " -"maséclaramente mutado ou de origem alienígena." #: lang/json/COMESTIBLE_from_json.py msgid "mycus fruit" @@ -30817,41 +27007,34 @@ msgid "" "better than the Marloss. If they didn't reject it for its alien origins. " "But we know better." msgstr "" -" mycus fruitHumans pode chamar isso de uma maçã Grey Delicious: grande, " -"cinzae cheira ainda melhor do que a Marloss. Se eles não o rejeitarem " -"porsuasorigens alienígenas. Mas nós sabemos melhor." #: lang/json/COMESTIBLE_from_json.py msgid "yeast" -msgstr "fermento" +msgstr "" #. ~ Description for yeast #: lang/json/COMESTIBLE_from_json.py msgid "" "A powder-like mix of cultured yeast, good for baking and brewing alike." msgstr "" -" Uma mistura em pó de levedura cultivada, boa para assar e fazer cerveja." #: lang/json/COMESTIBLE_from_json.py msgid "bone meal" -msgstr "farinha de osso" +msgstr "" #. ~ Description for bone meal #: lang/json/COMESTIBLE_from_json.py msgid "This bone meal can be used to craft fertilizer and some other things." msgstr "" -" Esta farinha de osso pode ser usada para fabricar fertilizantes " -"ealgumasoutras coisas." #: lang/json/COMESTIBLE_from_json.py msgid "tainted bone meal" -msgstr "farelo de osso contaminado" +msgstr "" #. ~ Description for tainted bone meal #: lang/json/COMESTIBLE_from_json.py msgid "This is a grayish bone meal made from rotten bones." msgstr "" -" Esta é uma refeição de osso acinzentado feita a partir de ossos podres." #: lang/json/COMESTIBLE_from_json.py msgid "chitin powder" @@ -30864,17 +27047,15 @@ msgstr[1] "" msgid "" "This chitin powder can be used to craft fertilizer and some other things." msgstr "" -" pó de quitinaEste pó de quitina pode ser usado para fabricar " -"fertilizantesealgumas outras coisas." #: lang/json/COMESTIBLE_from_json.py msgid "paper" -msgstr "papel" +msgstr "" #. ~ Description for paper #: lang/json/COMESTIBLE_from_json.py msgid "A piece of paper. Can be used for fires." -msgstr "Um pedaço de papel. Pode ser usado para incêndios." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned beans" @@ -30888,8 +27069,6 @@ msgid "" "Canned beans. A staple among canned goods, these are reputedly good for " "one's coronary health." msgstr "" -" feijões beansCanned. Um alimento básico entre os enlatados, " -"elessãosupostamente bons para a saúde coronariana." #: lang/json/COMESTIBLE_from_json.py msgid "dried beans" @@ -30903,8 +27082,6 @@ msgid "" "Dehydrated great northern beans. Tasty and nutritious when cooked, " "virtually inedible when dry." msgstr "" -" feijões secos Grandes feijões do norte desidratados. Saborosa " -"enutritivaquando cozida, praticamente não comestível quando seca." #: lang/json/COMESTIBLE_from_json.py msgid "cooked beans" @@ -30915,7 +27092,7 @@ msgstr[1] "" #. ~ Description for cooked beans #: lang/json/COMESTIBLE_from_json.py msgid "A hearty serving of cooked great northern beans." -msgstr "beans cozidosUm serviço saudável de grandes grãos cozidos do norte." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tofu" @@ -31007,9 +27184,6 @@ msgid "" "Ground coffee beans. You can boil it into a mediocre stimulant, or " "something better if you had an atomic coffee pot." msgstr "" -" café em póFeijões de café torrado. Você pode cozinhá-lo em " -"umestimulantemedíocre, ou algo melhor, se você tivesse um pote de " -"caféatômico." #: lang/json/COMESTIBLE_from_json.py msgid "Kentucky coffee grounds" @@ -31037,9 +27211,6 @@ msgid "" "variant of very thick consistence. This honey won't spoil and is good for " "your digestion." msgstr "" -" Querida, essa coisa que as abelhas fazem. Esta variante é \"mel " -"candied\",uma variante de consistência muito espessa. Este mel não vai " -"estragar eébom para a sua digestão." #: lang/json/COMESTIBLE_from_json.py msgid "canned tomato" @@ -31052,8 +27223,6 @@ msgstr[1] "" msgid "" "Canned tomato. A staple in many pantries, and useful for many recipes." msgstr "" -" Tomate enlatadoPeito de tomate. Um grampo em muitas copas e útil " -"paramuitasreceitas." #: lang/json/COMESTIBLE_from_json.py msgid "embalmed human brain" @@ -31067,8 +27236,6 @@ msgid "" "This is a human brain soaked in a solution of highly toxic formaldehyde. " "Eating this would be a terrible idea." msgstr "" -" Cérebro humano embalsamadoEste é um cérebro humano embebido em umasoluçãode" -" formaldeído altamente tóxico. Comer isso seria uma idéiaterrível." #: lang/json/COMESTIBLE_from_json.py msgid "cattle fodder" @@ -31082,8 +27249,6 @@ msgid "" "What cattle eat. Mainly made of grass, silage or legumes. It's perfect for" " ruminants." msgstr "" -" forragem de gado Que gado come. Principalmente feito de capim, ensilagem " -"oulegumes. É perfeito para ruminantes." #: lang/json/COMESTIBLE_from_json.py msgid "bird food" @@ -31097,8 +27262,6 @@ msgid "" "What birds eat. Mainly made of seeds, silage or legumes. It's perfect for " "small birds." msgstr "" -" comida de pássaro Que pássaros comem. Feito principalmente de sementes, " -"silagem ou legumes. É perfeito para pequenos pássaros." #: lang/json/COMESTIBLE_from_json.py msgid "dog food" @@ -31110,8 +27273,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "This is food for dogs. It smells strange, but dogs seem to love it." msgstr "" -" comida para cãesEsta é comida para cães. Cheira estranho, mas oscãesparecem" -" adorar." #: lang/json/COMESTIBLE_from_json.py lang/json/TOOL_from_json.py msgid "cat food" @@ -31174,8 +27335,6 @@ msgid "" "A thin slurry of refined human protein mixed with water. While quite " "nutritious, it is not particularly tasty." msgstr "" -" bebida verde de soja Uma pasta fina de proteína humana refinadamisturadacom" -" água. Embora bastante nutritivo, não é particularmentesaboroso." #: lang/json/COMESTIBLE_from_json.py msgid "soylent green powder" @@ -31189,13 +27348,10 @@ msgid "" "Raw, refined protein made out of people! While quite nutritious, it is " "impossible to enjoy in its pure form, try adding water." msgstr "" -" pó verde de soja, proteína refinada feita de pessoas! Embora " -"sejabastantenutritivo, é impossível desfrutar em sua forma pura, " -"tenteadicionar água." #: lang/json/COMESTIBLE_from_json.py msgid "soylent green shake" -msgstr "batido verde de soylent" +msgstr "" #. ~ Description for soylent green shake #: lang/json/COMESTIBLE_from_json.py @@ -31203,12 +27359,10 @@ msgid "" "A thick and tasty beverage made from pure refined human protein and " "nutritious fruit." msgstr "" -" Uma bebida espessa e saborosa feita a partir de proteína humanapurarefinada" -" e fruta nutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "fortified soylent green shake" -msgstr "shake de soja verde fortificada" +msgstr "" #. ~ Description for fortified soylent green shake #: lang/json/COMESTIBLE_from_json.py @@ -31216,12 +27370,10 @@ msgid "" "A thick and tasty beverage made from pure refined human protein and " "nutritious fruit. It has been supplemented with extra vitamins and minerals" msgstr "" -" Uma bebida espessa e saborosa feita a partir de proteína humanapurarefinada" -" e fruta nutritiva. Foi suplementado com vitaminas emineraisextras" #: lang/json/COMESTIBLE_from_json.py msgid "protein drink" -msgstr "bebida proteica" +msgstr "" #. ~ Description for protein drink #: lang/json/COMESTIBLE_from_json.py @@ -31229,8 +27381,6 @@ msgid "" "A thin slurry of refined protein mixed with water. While quite nutritious, " "it is not particularly tasty." msgstr "" -" Uma pasta fina de proteína refinada misturada com água. " -"Emborabastantenutritivo, não é particularmente saboroso." #: lang/json/COMESTIBLE_from_json.py msgid "protein powder" @@ -31244,12 +27394,10 @@ msgid "" "Raw, refined protein. While quite nutritious, it is impossible to enjoy in " "its pure form, try adding water." msgstr "" -" Proteína em pó, proteína refinada. Embora seja bastante " -"nutritivo,éimpossível desfrutar em sua forma pura, tente adicionar água." #: lang/json/COMESTIBLE_from_json.py msgid "protein shake" -msgstr "shake proteico" +msgstr "" #. ~ Description for protein shake #: lang/json/COMESTIBLE_from_json.py @@ -31257,12 +27405,10 @@ msgid "" "A thick and tasty beverage made from pure refined protein and nutritious " "fruit." msgstr "" -" Uma bebida espessa e saborosa feita a partir de proteína refinada " -"puraefruta nutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "fortified protein shake" -msgstr "shake de proteína fortificado" +msgstr "" #. ~ Description for fortified protein shake #: lang/json/COMESTIBLE_from_json.py @@ -31270,21 +27416,19 @@ msgid "" "A thick and tasty beverage made from pure refined protein and nutritious " "fruit. It has been supplemented with extra vitamins and minerals" msgstr "" -" Uma bebida espessa e saborosa feita a partir de proteína refinada " -"puraefruta nutritiva. Foi suplementado com vitaminas e minerais extras" #: lang/json/COMESTIBLE_from_json.py msgid "apple" -msgstr "maçã" +msgstr "" #. ~ Description for apple #: lang/json/COMESTIBLE_from_json.py msgid "An apple a day keeps the doctor away." -msgstr "Uma maçã por dia mantém o médico longe." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "banana" -msgstr "banana" +msgstr "" #. ~ Description for banana #: lang/json/COMESTIBLE_from_json.py @@ -31292,26 +27436,24 @@ msgid "" "A long, curved yellow fruit in a peel. Some people like using them in " "desserts. Those people are probably dead." msgstr "" -" Um longo e curvo fruto amarelo numa casca. Algumas pessoas gostam de usá- " -"las em sobremesas. Essas pessoas provavelmente estão mortas." #: lang/json/COMESTIBLE_from_json.py msgid "orange" -msgstr "laranja" +msgstr "" #. ~ Description for orange #: lang/json/COMESTIBLE_from_json.py msgid "Sweet citrus fruit. Also comes in juice form." -msgstr "Frutas cítricas doces. Também vem em forma de suco." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lemon" -msgstr "limão" +msgstr "" #. ~ Description for lemon #: lang/json/COMESTIBLE_from_json.py msgid "Very sour citrus. Can be eaten if you really want." -msgstr "Muito cítrico azedo. Pode ser comido se você realmente quiser." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of blueberries" @@ -31323,8 +27465,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "They're blue, but that doesn't mean they're sad." msgstr "" -" Um punhado de blueberries Eles são azuis, mas isso não significa " -"queelesestão tristes." #: lang/json/COMESTIBLE_from_json.py msgid "handful of strawberries" @@ -31336,8 +27476,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Tasty, juicy berry. Often found growing wild in fields." msgstr "" -" punhado de morangosBolo suculento, suculento. Muitas " -"vezesencontradocrescendo selvagem em campos." #: lang/json/COMESTIBLE_from_json.py msgid "handful of cranberries" @@ -31348,7 +27486,7 @@ msgstr[1] "" #. ~ Description for handful of cranberries #: lang/json/COMESTIBLE_from_json.py msgid "Sour red berries. Good for your health." -msgstr "punhado de cranberries. Sour bagas vermelhas. Bom para a sua saúde." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of raspberries" @@ -31359,7 +27497,7 @@ msgstr[1] "" #. ~ Description for handful of raspberries #: lang/json/COMESTIBLE_from_json.py msgid "A sweet red berry." -msgstr "punhado de framboesas Uma baga vermelha doce." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of huckleberries" @@ -31371,8 +27509,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Huckleberries, often times confused for blueberries." msgstr "" -" Um punhado de huckleberriesHuckleberries, muitas vezes " -"confundidocomblueberries." #: lang/json/COMESTIBLE_from_json.py msgid "handful of mulberries" @@ -31386,9 +27522,6 @@ msgid "" "Mulberries, this red variety is unique to east North America and is " "described to have the strongest flavor of any variety in the world." msgstr "" -" Um punhado de amoras, esta variedade vermelha é única para o lestedaAmérica" -" do Norte e é descrita para ter o sabor mais forte dequalquervariedade no " -"mundo." #: lang/json/COMESTIBLE_from_json.py msgid "handful of elderberries" @@ -31400,8 +27533,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Elderberries, toxic when eaten raw but great when cooked." msgstr "" -" Um punhado de sabugueiro, amoras, tóxico quando comido cru, mas " -"ótimoquandocozido." #: lang/json/COMESTIBLE_from_json.py msgid "handful of rose hips" @@ -31412,11 +27543,11 @@ msgstr[1] "" #. ~ Description for handful of rose hips #: lang/json/COMESTIBLE_from_json.py msgid "The fruit of a pollinated rose flower." -msgstr "punhado de rosa mosquetaO fruto de uma flor rosa polinizada." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "juice pulp" -msgstr "polpa de suco" +msgstr "" #. ~ Description for juice pulp #: lang/json/COMESTIBLE_from_json.py @@ -31424,26 +27555,24 @@ msgid "" "Left-over from juicing the fruit. Not very tasty, but contains a lot of " "healthy fiber." msgstr "" -" Sobrevivente de espremer a fruta. Não é muito saboroso, mas " -"contémmuitafibra saudável." #: lang/json/COMESTIBLE_from_json.py msgid "pear" -msgstr "pera" +msgstr "" #. ~ Description for pear #: lang/json/COMESTIBLE_from_json.py msgid "A juicy, bell-shaped pear. Yum!" -msgstr "Uma suculenta pêra em forma de sino. Yum!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "grapefruit" -msgstr "Toranja" +msgstr "" #. ~ Description for grapefruit #: lang/json/COMESTIBLE_from_json.py msgid "A citrus fruit, whose taste ranges from sour to semi-sweet." -msgstr "Uma fruta cítrica, cujo sabor varia de azedo a meio doce." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of cherries" @@ -31455,18 +27584,16 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A red, sweet fruit that grows in trees." msgstr "" -" Um punhado de cerejas Uma fruta vermelha e doce que cresce nas árvores." #: lang/json/COMESTIBLE_from_json.py msgid "plum" -msgstr "ameixa" +msgstr "" #. ~ Description for plum #: lang/json/COMESTIBLE_from_json.py msgid "" "A handful of large, purple plums. Healthy and good for your digestion." msgstr "" -"Um punhado de grandes ameixas roxas. Saudável e bom para sua digestão." #: lang/json/COMESTIBLE_from_json.py msgid "handful of grapes" @@ -31477,25 +27604,25 @@ msgstr[1] "" #. ~ Description for handful of grapes #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of juicy grapes." -msgstr "punhado de uvasUm cacho de uvas suculentas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pineapple" -msgstr "abacaxi" +msgstr "" #. ~ Description for pineapple #: lang/json/COMESTIBLE_from_json.py msgid "A large, spiky pineapple. A bit sour, though." -msgstr "Um abacaxi grande e espetado. Um pouco azedo, no entanto." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "coconut" -msgstr "coco" +msgstr "" #. ~ Description for coconut #: lang/json/COMESTIBLE_from_json.py msgid "A fruit with a hard and hairy shell." -msgstr "Uma fruta com uma casca dura e peluda." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "peach" @@ -31507,25 +27634,24 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "This fruit's large pit is surrounded by its tasty flesh." msgstr "" -" pêssego O grande poço desta fruta está rodeado pela sua carne saborosa." #: lang/json/COMESTIBLE_from_json.py msgid "watermelon" -msgstr "Melancia" +msgstr "" #. ~ Description for watermelon #: lang/json/COMESTIBLE_from_json.py msgid "A fruit, bigger than your head. It is very juicy!" -msgstr "Uma fruta maior que a sua cabeça. É muito suculento!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "melon" -msgstr "Melão" +msgstr "" #. ~ Description for melon #: lang/json/COMESTIBLE_from_json.py msgid "A large and very sweet fruit." -msgstr "Uma fruta grande e muito doce." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "handful of blackberries" @@ -31536,46 +27662,44 @@ msgstr[1] "" #. ~ Description for handful of blackberries #: lang/json/COMESTIBLE_from_json.py msgid "A darker cousin of raspberry." -msgstr "Um punhado de amoras Um primo mais escuro de framboesa." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mango" -msgstr "manga" +msgstr "" #. ~ Description for mango #: lang/json/COMESTIBLE_from_json.py msgid "A fleshy fruit with large pit." -msgstr "Uma fruta carnuda com grande poço." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "pomegranate" -msgstr "romã" +msgstr "" #. ~ Description for pomegranate #: lang/json/COMESTIBLE_from_json.py msgid "Under this pomegranate's spongy skin lies hundreds of fleshy seeds." -msgstr "Sob a pele esponjosa da romã jazem centenas de sementes carnudas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "papaya" -msgstr "mamão" +msgstr "" #. ~ Description for papaya #: lang/json/COMESTIBLE_from_json.py msgid "A very sweet and soft tropical fruit." -msgstr "Uma fruta tropical muito doce e macia." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "kiwi" -msgstr "kiwi" +msgstr "" #. ~ Description for kiwi #: lang/json/COMESTIBLE_from_json.py msgid "" "A large, brown and fuzzy-skinned berry. Its delicious insides are green." msgstr "" -" Uma baga grande, marrom e de pele difusa. Seus deliciosos " -"interioressãoverdes." #: lang/json/COMESTIBLE_from_json.py msgid "handful of apricots" @@ -31586,7 +27710,7 @@ msgstr[1] "" #. ~ Description for handful of apricots #: lang/json/COMESTIBLE_from_json.py msgid "A smooth-skinned fruit, related to the peach." -msgstr "punhado de damascosUm fruto de casca mole, relacionado ao pêssego." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cactus pad" @@ -31599,7 +27723,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "barley" -msgstr "cevada" +msgstr "" #. ~ Description for barley #: lang/json/COMESTIBLE_from_json.py @@ -31607,20 +27731,16 @@ msgid "" "Grainy cereal used for malting. A staple of brewing everywhere. It can " "also be ground into flour." msgstr "" -" Cereal granulado usado para malte. Um grampo de cerveja em todos oslugares." -" Também pode ser moído em farinha." #: lang/json/COMESTIBLE_from_json.py msgid "bee balm" -msgstr "bálsamo de abelha" +msgstr "" #. ~ Description for bee balm #: lang/json/COMESTIBLE_from_json.py msgid "" "A snow-white flower also known as wild bergamot. Smells faintly of mint." msgstr "" -" Uma flor branca como a neve, também conhecida como bergamotaselvagem. " -"Cheira fracamente de hortelã." #: lang/json/COMESTIBLE_from_json.py msgid "broccoli" @@ -31631,7 +27751,7 @@ msgstr[1] "" #. ~ Description for broccoli #: lang/json/COMESTIBLE_from_json.py msgid "It's a bit tough, but quite delicious." -msgstr "brócolisÉ um pouco difícil, mas bem delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "buckwheat" @@ -31645,18 +27765,15 @@ msgid "" "Seeds from a wild buckwheat plant. Not particularly good to eat in their " "raw state, they are commonly cooked or ground into flour." msgstr "" -" Trigo SarracenoSementes de uma planta de trigo selvagem. " -"Nãoéparticularmente bom para comer em seu estado bruto, eles " -"sãocomumentecozidos ou moídos em farinha." #: lang/json/COMESTIBLE_from_json.py msgid "cabbage" -msgstr "repolho" +msgstr "" #. ~ Description for cabbage #: lang/json/COMESTIBLE_from_json.py msgid "Crisp white cabbage." -msgstr "Repolho branco torrado." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "spinach" @@ -31678,7 +27795,7 @@ msgstr[1] "" #. ~ Description for carrot #: lang/json/COMESTIBLE_from_json.py msgid "A healthy root vegetable. Rich in vitamin A!" -msgstr "cenoura Um vegetal de raiz saudável. Rico em vitamina A!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cattail rhizome" @@ -31693,9 +27810,6 @@ msgid "" "very starchy and fibrous, but you really ought to cook it before you attempt" " to eat it." msgstr "" -" rizoma de ramificação robusto rizoma de ramificação de uma planta detaboa. " -"Sua carne branca crocante é muito rica em amido e fibrosa, masvocêrealmente " -"deveria cozinhá-la antes de tentar comê-la." #: lang/json/COMESTIBLE_from_json.py msgid "cattail stalk" @@ -31709,17 +27823,15 @@ msgid "" "A stiff green stalk from a cattail plant. It is starchy and fibrous, but it" " would be much better if you cooked it." msgstr "" -" stalka de taboa stalk verde duro de uma planta de taboa. É " -"amiláceoefibroso, mas seria muito melhor se você o cozinhasse." #: lang/json/COMESTIBLE_from_json.py msgid "celery" -msgstr "aipo" +msgstr "" #. ~ Description for celery #: lang/json/COMESTIBLE_from_json.py msgid "Neither tasty nor very nutritious, but it goes well with salad." -msgstr "Nem saborosa nem muito nutritiva, mas vai bem com salada." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "corn" @@ -31730,7 +27842,7 @@ msgstr[1] "" #. ~ Description for corn #: lang/json/COMESTIBLE_from_json.py msgid "Delicious golden kernels." -msgstr "caroços de ouro cornDelicious." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cotton boll" @@ -31744,31 +27856,28 @@ msgid "" "A tough protective capsule bulging with densely packed fibers and seeds, " "this cotton boll can be processed into usable material with the right tools." msgstr "" -" cápsula protetora de algodão bollA resistente com fibrasdensamenteembaladas" -" e sementes, esta cápsula de algodão pode ser processadaemmaterial " -"utilizável com as ferramentas certas." #: lang/json/COMESTIBLE_from_json.py msgid "chili pepper" -msgstr "Pimenta" +msgstr "" #. ~ Description for chili pepper #: lang/json/COMESTIBLE_from_json.py msgid "Spicy chili pepper." -msgstr "Pimenta picante." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cucumber" -msgstr "pepino" +msgstr "" #. ~ Description for cucumber #: lang/json/COMESTIBLE_from_json.py msgid "Comes from the gourd family. Not tasty but very juicy." -msgstr "Vem da família das cuias. Não gostoso mas muito suculento." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dahlia root" -msgstr "raiz da dália" +msgstr "" #. ~ Description for dahlia root #: lang/json/COMESTIBLE_from_json.py @@ -31819,18 +27928,17 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dogbane" -msgstr "dogbane" +msgstr "" #. ~ Description for dogbane #: lang/json/COMESTIBLE_from_json.py msgid "" "A stalk of dogbane. It has very fibrous stems and is mildly poisonous." msgstr "" -"Um caule de dogbane. Tem hastes muito fibrosas e é levemente venenosa." #: lang/json/COMESTIBLE_from_json.py msgid "garlic bulb" -msgstr "bulbo de alho" +msgstr "" #. ~ Description for garlic bulb #: lang/json/COMESTIBLE_from_json.py @@ -31838,8 +27946,6 @@ msgid "" "A pungent garlic bulb. Popular as a seasoning for its strong flavor. Can " "be disassembled to cloves." msgstr "" -" Um bulbo de alho pungente. Popular como tempero por seu sabor forte. " -"Podeser desmontado para cravo." #: lang/json/COMESTIBLE_from_json.py msgid "hops flower" @@ -31851,8 +27957,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A cluster of small cone-like flowers, indispensable for brewing beer." msgstr "" -" lúpulo flor Um aglomerado de pequenas flores em forma de cone, " -"indispensávelpara a produção de cerveja." #: lang/json/COMESTIBLE_from_json.py msgid "lettuce" @@ -31861,16 +27965,16 @@ msgstr "alface" #. ~ Description for lettuce #: lang/json/COMESTIBLE_from_json.py msgid "A crisp head of iceberg lettuce." -msgstr "Uma cabeça crocante de alface americana." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mugwort" -msgstr "artemísia" +msgstr "" #. ~ Description for mugwort #: lang/json/COMESTIBLE_from_json.py msgid "A stalk of mugwort. Smells wonderful." -msgstr "Um talo de artemísia. Cheira maravilhosamente." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "onion" @@ -31882,8 +27986,6 @@ msgid "" "An aromatic onion used in cooking. Cutting these up can make your eyes " "sting!" msgstr "" -" Uma cebola aromática usada na culinária. Cortá-las pode fazer " -"seusolhosarderem!" #: lang/json/COMESTIBLE_from_json.py msgid "fungal fluid sac" @@ -31906,8 +28008,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Mildly toxic and not very tasty raw. When cooked, it is delicious." msgstr "" -" batata cruaMaticamente tóxica e não muito saborosa crua. Quando " -"cozido,édelicioso." #: lang/json/COMESTIBLE_from_json.py msgid "pumpkin" @@ -31919,8 +28019,6 @@ msgid "" "A large vegetable, about the size of your head. Not very tasty raw, but is " "great for cooking." msgstr "" -" Um vegetal grande, do tamanho da sua cabeça. Não é muito saboroso cru, " -"maséótimo para cozinhar." #: lang/json/COMESTIBLE_from_json.py msgid "handful of dandelions" @@ -31934,8 +28032,6 @@ msgid "" "A collection of freshly picked yellow dandelions. In their current raw " "state they are quite bitter." msgstr "" -" punhado de dandelions Uma coleção de dentes de leão amarelos recémcolhidos." -" Em seu atual estado bruto, eles são bastante amargos." #: lang/json/COMESTIBLE_from_json.py msgid "rhubarb" @@ -31945,8 +28041,6 @@ msgstr "ruibarbo" #: lang/json/COMESTIBLE_from_json.py msgid "Sour stems of the rhubarb plant, often used in baking pies." msgstr "" -" Hastes ácidas da planta do ruibarbo, usadas frequentemente em " -"tortasdecozimento." #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet" @@ -31958,8 +28052,6 @@ msgid "" "This fleshy root is ripe and flowing with sugars; just takes some processing" " to extract them." msgstr "" -" Esta raiz carnuda é madura e flui com açúcares; apenas " -"levaalgumprocessamento para extraí-los." #: lang/json/COMESTIBLE_from_json.py msgid "tea leaf" @@ -31973,9 +28065,6 @@ msgid "" "Dried leaves of a tropical plant. You can boil them into tea, or you can " "just eat them raw. They aren't too filling though." msgstr "" -" folhas de chá de folhas secas de uma planta tropical. Você pode cozinhá- " -"losem chá, ou você pode simplesmente comê-los crus. Eles não " -"estãomuitocheios embora." #: lang/json/COMESTIBLE_from_json.py msgid "tomato" @@ -31989,19 +28078,15 @@ msgid "" "Juicy red tomato. It gained popularity in Italy after being brought back " "from the New World." msgstr "" -" tomatoJuicy vermelho tomate. Ele ganhou popularidade na Itália depois " -"desertrazido de volta do Novo Mundo." #: lang/json/COMESTIBLE_from_json.py msgid "plant marrow" -msgstr "medula vegetal" +msgstr "" #. ~ Description for plant marrow #: lang/json/COMESTIBLE_from_json.py msgid "A nutrient rich chunk of plant matter, could be eaten raw or cooked." msgstr "" -" Um pedaço rico em nutrientes da matéria vegetal pode ser consumido " -"cruoucozido." #: lang/json/COMESTIBLE_from_json.py msgid "alien fungus chunk" @@ -32026,8 +28111,6 @@ msgid "" "An assortment of edible-looking wild plants. Most are quite bitter-tasting." " Some are inedible until cooked." msgstr "" -" vegetais selvagens Uma variedade de plantas silvestres deaspectocomestível." -" A maioria é muito amarga. Alguns não são comestíveisatéficarem cozidos." #: lang/json/COMESTIBLE_from_json.py msgid "zucchini" @@ -32036,16 +28119,16 @@ msgstr "abobrinha" #. ~ Description for zucchini #: lang/json/COMESTIBLE_from_json.py msgid "A tasty summer squash." -msgstr "Uma saborosa polpa de verão." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canola" -msgstr "canola" +msgstr "" #. ~ Description for canola #: lang/json/COMESTIBLE_from_json.py msgid "A pretty stalk of canola. Its seeds can be pressed into oil." -msgstr "Um belo talo de canola. Suas sementes podem ser pressionadas em óleo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw beans" @@ -32083,8 +28166,6 @@ msgid "" "A delicious grilled cheese sandwich, because everything is better with " "melted cheese." msgstr "" -" sanduíche de queijo grelhadoUm sanduíche de queijo grelhadodelicioso, " -"porque tudo é melhor com queijo derretido." #: lang/json/COMESTIBLE_from_json.py msgid "deluxe sandwich" @@ -32098,8 +28179,6 @@ msgid "" "A sandwich of meat, vegetables, and cheese with condiments. Tasty and " "nutritious!" msgstr "" -" sanduíche deluxeUm sanduíche de carne, legumes e queijo comcondimentos. " -"Saborosa e nutritiva!" #: lang/json/COMESTIBLE_from_json.py msgid "cucumber sandwich" @@ -32111,8 +28190,6 @@ msgstr[1] "sanduíches de pepino" #: lang/json/COMESTIBLE_from_json.py msgid "A refreshing cucumber sandwich. Not very filling, but quite tasty." msgstr "" -" sanduíche de pepino Um sanduíche de pepino refrescante. Não muitorecheio, " -"mas muito saborosa." #: lang/json/COMESTIBLE_from_json.py msgid "cheese sandwich" @@ -32123,7 +28200,7 @@ msgstr[1] "" #. ~ Description for cheese sandwich #: lang/json/COMESTIBLE_from_json.py msgid "A simple cheese sandwich." -msgstr "sanduíche de queijo Um sanduíche de queijo simples." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "jam sandwich" @@ -32134,7 +28211,7 @@ msgstr[1] "" #. ~ Description for jam sandwich #: lang/json/COMESTIBLE_from_json.py msgid "A delicious jam sandwich." -msgstr "sanduíche de geléia Um sanduíche de geléia delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "honey sandwich" @@ -32145,7 +28222,7 @@ msgstr[1] "" #. ~ Description for honey sandwich #: lang/json/COMESTIBLE_from_json.py msgid "A delicious honey sandwich." -msgstr "sanduíche de melUm sanduíche de mel delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "boring sandwich" @@ -32158,8 +28235,6 @@ msgstr[1] "" msgid "" "A simple sauce sandwich. Not very filling but beats eating just the bread." msgstr "" -" sanduíche chato Um sanduíche de molho simples. Não muito recheio " -"masbatecomer apenas o pão." #: lang/json/COMESTIBLE_from_json.py msgid "vegetable sandwich" @@ -32170,7 +28245,7 @@ msgstr[1] "" #. ~ Description for vegetable sandwich #: lang/json/COMESTIBLE_from_json.py msgid "Bread and vegetables, that's it." -msgstr "sanduíche de legumesCaçar e legumes, é isso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "meat sandwich" @@ -32181,7 +28256,7 @@ msgstr[1] "" #. ~ Description for meat sandwich #: lang/json/COMESTIBLE_from_json.py msgid "Bread and meat, that's it." -msgstr "sanduíche de carne Pão e carne, é isso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "peanut butter sandwich" @@ -32195,9 +28270,6 @@ msgid "" "Some peanut butter smothered between two pieces of bread. Not very filling " "and will stick to the roof of your mouth like glue." msgstr "" -" sanduíche de manteiga de amendoimAlguns manteiga de amendoim " -"sufocadaentredois pedaços de pão. Não muito recheio e vai ficar no telhado " -"de suabocacomo cola." #: lang/json/COMESTIBLE_from_json.py msgid "PB&J sandwich" @@ -32211,8 +28283,6 @@ msgid "" "A delicious peanut butter and jelly sandwich. It reminds you of the times " "your mother would make you lunch." msgstr "" -" Sanduíche PB & JUm delicioso sanduíche de manteiga de amendoim egeléia." -" Faz lembrar as vezes que sua mãe faria o almoço." #: lang/json/COMESTIBLE_from_json.py msgid "PB&H sandwich" @@ -32226,8 +28296,6 @@ msgid "" "Some damned fool put honey on this peanut butter sandwich, who in their " "right mind- oh wait this is pretty good." msgstr "" -" Um sanduíche de manteiga de amendoim, que em seu juízo perfeito, oh, " -"espere, isso é muito bom." #: lang/json/COMESTIBLE_from_json.py msgid "PB&M sandwich" @@ -32241,8 +28309,6 @@ msgid "" "Who knew you could mix maple syrup and peanut butter to create yet another " "different sandwich?" msgstr "" -" Sanduíche PB & MQuem sabia que você poderia misturar xarope de " -"bordoemanteiga de amendoim para criar outro sanduíche diferente?" #: lang/json/COMESTIBLE_from_json.py msgid "fish sandwich" @@ -32253,16 +28319,16 @@ msgstr[1] "" #. ~ Description for fish sandwich #: lang/json/COMESTIBLE_from_json.py msgid "A delicious fish sandwich." -msgstr "sanduíche de peixe Um sanduíche de peixe delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "BLT" -msgstr "BLT" +msgstr "" #. ~ Description for BLT #: lang/json/COMESTIBLE_from_json.py msgid "A bacon, lettuce, and tomato sandwich on toasted bread." -msgstr "Um sanduíche de bacon, alface e tomate no pão torrado." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "seeds" @@ -32272,7 +28338,7 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "fruit seeds" -msgstr "sementes de sementes" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mushroom spores" @@ -32295,11 +28361,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Roots of a hop plant, for growing your own." msgstr "" -"hop rizomasRoots de uma planta de lúpulo, para cultivar a sua própria." #: lang/json/COMESTIBLE_from_json.py msgid "hops" -msgstr "lúpulo" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "blackberry seeds" @@ -32310,11 +28375,11 @@ msgstr[1] "" #. ~ Description for blackberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some blackberry seeds." -msgstr "sementes de amora-pretaAlgumas sementes de amora-preta." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "blackberry" -msgstr "Amora" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "blueberry seeds" @@ -32325,11 +28390,11 @@ msgstr[1] "" #. ~ Description for blueberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some blueberry seeds." -msgstr "sementes de mirtiloAlgumas sementes de mirtilo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "blueberry" -msgstr "mirtilo" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cranberry seeds" @@ -32340,11 +28405,11 @@ msgstr[1] "" #. ~ Description for cranberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some cranberry seeds." -msgstr "sementes de cranberryAlgumas sementes de cranberry." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cranberry" -msgstr "oxicoco" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry seeds" @@ -32355,11 +28420,11 @@ msgstr[1] "" #. ~ Description for huckleberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some huckleberry seeds." -msgstr "sementes de huckleberryAlgumas sementes de huckleberry." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "huckleberry" -msgstr "huckleberry" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mulberry seeds" @@ -32370,11 +28435,11 @@ msgstr[1] "" #. ~ Description for mulberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some mulberry seeds." -msgstr "Sementes de amoreiraAlgumas sementes de amoreira." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mulberry" -msgstr "amora" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "elderberry seeds" @@ -32385,11 +28450,11 @@ msgstr[1] "" #. ~ Description for elderberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some elderberry seeds." -msgstr "sementes de sabugueiroAlgumas sementes de sabugueiro." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "elderberry" -msgstr "sabugueiro" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raspberry seeds" @@ -32400,11 +28465,11 @@ msgstr[1] "" #. ~ Description for raspberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some raspberry seeds." -msgstr "sementes de framboesaAlgumas sementes de framboesa." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raspberry" -msgstr "framboesa" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "strawberry seeds" @@ -32415,11 +28480,11 @@ msgstr[1] "" #. ~ Description for strawberry seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some strawberry seeds." -msgstr "sementes de morango" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "strawberry" -msgstr "morango" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "grape seeds" @@ -32430,11 +28495,11 @@ msgstr[1] "" #. ~ Description for grape seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some grape seeds." -msgstr "Sementes de uvaAlgumas sementes de uva." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "grape" -msgstr "uva" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rose seeds" @@ -32445,7 +28510,7 @@ msgstr[1] "" #. ~ Description for rose seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some rose seeds." -msgstr "rose seedsSome subiu sementes." +msgstr "" #: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py msgid "rose" @@ -32462,11 +28527,11 @@ msgstr[1] "" #. ~ Description for tobacco seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some tobacco seeds." -msgstr "sementes de rosetobaccoAlgumas sementes de tabaco." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tobacco" -msgstr "tabaco" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "barley seeds" @@ -32477,7 +28542,7 @@ msgstr[1] "" #. ~ Description for barley seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some barley seeds." -msgstr "sementes de cevadaAlgumas sementes de cevada." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sugar beet seeds" @@ -32489,7 +28554,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Some sugar beet seeds." msgstr "" -" sementes de beterraba açucareiraAlgumas sementes de beterraba sacarina." #: lang/json/COMESTIBLE_from_json.py msgid "lettuce seeds" @@ -32500,7 +28564,7 @@ msgstr[1] "" #. ~ Description for lettuce seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some lettuce seeds." -msgstr "sementes de alfaceAlgumas sementes de alface." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cabbage seeds" @@ -32511,7 +28575,7 @@ msgstr[1] "" #. ~ Description for cabbage seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some white cabbage seeds." -msgstr "sementes de repolhoAlgumas sementes de repolho branco." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tomato seeds" @@ -32522,7 +28586,7 @@ msgstr[1] "" #. ~ Description for tomato seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some tomato seeds." -msgstr "sementes de tomateAlgumas sementes de tomate." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cotton seeds" @@ -32534,12 +28598,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Some cotton seeds. Can be processed to produce an edible oil." msgstr "" -" sementes de algodãoAlgumas sementes de algodão. Pode ser " -"processadoparaproduzir um óleo comestível." #: lang/json/COMESTIBLE_from_json.py msgid "cotton" -msgstr "algodão" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "broccoli seeds" @@ -32550,7 +28612,7 @@ msgstr[1] "" #. ~ Description for broccoli seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some broccoli seeds." -msgstr "sementes de brócolisAlgumas sementes de brócolis." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "zucchini seeds" @@ -32561,7 +28623,7 @@ msgstr[1] "" #. ~ Description for zucchini seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some zucchini seeds." -msgstr "sementes de abobrinhaAlgumas sementes de abobrinha." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "onion seeds" @@ -32572,7 +28634,7 @@ msgstr[1] "" #. ~ Description for onion seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some onion seeds." -msgstr "sementes de cebolaAlgumas sementes de cebola." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "garlic seeds" @@ -32583,11 +28645,11 @@ msgstr[1] "" #. ~ Description for garlic seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some garlic seeds." -msgstr "sementes de alhoAlgumas sementes de alho." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "garlic" -msgstr "alho" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cattail seeds" @@ -32696,7 +28758,7 @@ msgstr[1] "" #. ~ Description for garlic clove #: lang/json/COMESTIBLE_from_json.py msgid "Cloves of garlic. Useful as a seasoning, or for planting." -msgstr "dente de alhoCloves de alho. Útil como tempero ou para plantio." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "carrot seeds" @@ -32707,7 +28769,7 @@ msgstr[1] "" #. ~ Description for carrot seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some carrot seeds." -msgstr "sementes de cenouraAlgumas sementes de cenoura." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "corn seeds" @@ -32718,7 +28780,7 @@ msgstr[1] "" #. ~ Description for corn seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some corn seeds." -msgstr "sementes de milhoAlgumas sementes de milho." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chili pepper seeds" @@ -32729,7 +28791,7 @@ msgstr[1] "" #. ~ Description for chili pepper seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some chili pepper seeds." -msgstr "sementes de pimenta pimentaAlgumas sementes de pimenta." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cucumber seeds" @@ -32740,7 +28802,7 @@ msgstr[1] "" #. ~ Description for cucumber seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some cucumber seeds." -msgstr "sementes de pepinoAlgumas sementes de pepino." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "seed potato" @@ -32752,12 +28814,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A raw potato, cut into pieces, separating each bud for planting." msgstr "" -" batata de sementeUma batata crua, cortada em pedaços, separando " -"cadabotãopara o plantio." #: lang/json/COMESTIBLE_from_json.py msgid "potatoes" -msgstr "batatas" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cannabis seeds" @@ -32771,12 +28831,10 @@ msgid "" "Seeds of the cannabis plant. Filled with vitamins, they can be roasted or " "eaten raw." msgstr "" -" sementes de maconhaSementes da planta de cannabis. Cheios devitaminas, " -"podem ser torrados ou comidos crus." #: lang/json/COMESTIBLE_from_json.py msgid "cannabis" -msgstr "maconha" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "marloss seed" @@ -32844,7 +28902,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "thyme" -msgstr "Tomilho" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canola seeds" @@ -32878,8 +28936,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Some raw sunflower seeds. Could be pressed into oil." msgstr "" -" sementes de girassolAlgumas sementes de girassol cruas. " -"Poderiaserpressionado em óleo." #: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py #: lang/json/furniture_from_json.py @@ -32945,7 +29001,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wild herb" -msgstr "erva selvagem" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wild vegetable stems" @@ -32960,7 +29016,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wild vegetable" -msgstr "vegetal selvagem" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dandelion seeds" @@ -32975,7 +29031,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py lang/json/furniture_from_json.py msgid "dandelion" -msgstr "dente de leão" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "rhubarb stems" @@ -33015,7 +29071,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py lang/json/furniture_from_json.py msgid "datura" -msgstr "datura" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "celery seeds" @@ -33026,7 +29082,7 @@ msgstr[1] "" #. ~ Description for celery seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some celery seeds." -msgstr "sementes de aipoAlgumas sementes de aipo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "oat seeds" @@ -33037,7 +29093,7 @@ msgstr[1] "" #. ~ Description for oat seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some oat seeds." -msgstr "sementes de aveiaAlgumas sementes de aveia." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "oats" @@ -33054,7 +29110,7 @@ msgstr[1] "" #. ~ Description for wheat seeds #: lang/json/COMESTIBLE_from_json.py msgid "Some wheat seeds." -msgstr "Sementes de trigo e aveiaAlgumas sementes de trigo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wheat" @@ -33074,8 +29130,6 @@ msgid "" "Some fried seeds of a sunflower, pumpkin or other plant. Quite nutritious " "and tasty." msgstr "" -" sementes de trigo fritoAlgumas sementes fritas de um girassol, " -"abóboraououtra planta. Bastante nutritivo e saboroso." #: lang/json/COMESTIBLE_from_json.py msgid "Kentucky coffee pod" @@ -33099,7 +29153,7 @@ msgstr[1] "" #. ~ Description for coffee beans #: lang/json/COMESTIBLE_from_json.py msgid "Some coffee beans, can be roasted." -msgstr "grãos de caféAlguns grãos de café podem ser torrados." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "roasted coffee beans" @@ -33111,7 +29165,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Some roasted coffee beans, can be ground into powder." msgstr "" -" grãos de café torradosAlguns grãos de café torrados podem ser moídos em pó." #: lang/json/COMESTIBLE_from_json.py msgid "chamomile seeds" @@ -33126,61 +29179,61 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py lang/json/furniture_from_json.py msgid "chamomile" -msgstr "camomila" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "broth" -msgstr "caldo" +msgstr "" #. ~ Description for broth #: lang/json/COMESTIBLE_from_json.py msgid "Vegetable stock. Tasty and fairly nutritious." -msgstr "Estoque vegetal. Saboroso e razoavelmente nutritivo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "bone broth" -msgstr "caldo de osso" +msgstr "" #. ~ Description for bone broth #: lang/json/COMESTIBLE_from_json.py msgid "A tasty and nutritious broth made from bones." -msgstr "Um caldo saboroso e nutritivo feito de ossos." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "human broth" -msgstr "caldo humano" +msgstr "" #. ~ Description for human broth #: lang/json/COMESTIBLE_from_json.py msgid "A nutritious broth made from human bones." -msgstr "Um caldo nutritivo feito de ossos humanos." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vegetable soup" -msgstr "sopa de vegetais" +msgstr "" #. ~ Description for vegetable soup #: lang/json/COMESTIBLE_from_json.py msgid "A nutritious and delicious hearty vegetable soup." -msgstr "Uma nutritiva e deliciosa sopa de legumes." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "meat soup" -msgstr "sopa de carne" +msgstr "" #. ~ Description for meat soup #: lang/json/COMESTIBLE_from_json.py msgid "A nutritious and delicious hearty meat soup." -msgstr "Uma nutritiva e deliciosa sopa de carne saudável." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fish soup" -msgstr "sopa de peixe" +msgstr "" #. ~ Description for fish soup #: lang/json/COMESTIBLE_from_json.py msgid "A nutritious and delicious hearty fish soup." -msgstr "Uma nutritiva e deliciosa sopa de peixe." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "curry" @@ -33191,7 +29244,7 @@ msgstr[1] "" #. ~ Description for curry #: lang/json/COMESTIBLE_from_json.py msgid "Spicy, and filled with bits of peppers. It's pretty good." -msgstr "currySpicy, e cheio de pedaços de pimenta. É muito bom." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "curry with meat" @@ -33203,30 +29256,28 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Spicy, and filled with bits of peppers and meat! It's pretty good." msgstr "" -" caril com carneSpicy e cheio de pedaços de pimentão e carne! É muito bom." #: lang/json/COMESTIBLE_from_json.py msgid "woods soup" -msgstr "sopa de madeiras" +msgstr "" #. ~ Description for woods soup #: lang/json/COMESTIBLE_from_json.py msgid "A nutritious and delicious soup, made of gifts of nature." -msgstr "Uma sopa nutritiva e deliciosa, feita de presentes da natureza." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sap soup" -msgstr "sabe a sopa" +msgstr "" #. ~ Description for sap soup #: lang/json/COMESTIBLE_from_json.py msgid "A soup made from someone who is a far better meal than person." msgstr "" -" Uma sopa feita de alguém que é uma refeição muito melhor do que a pessoa." #: lang/json/COMESTIBLE_from_json.py msgid "chicken noodle soup" -msgstr "sopa de macarrão de galinha" +msgstr "" #. ~ Description for chicken noodle soup #: lang/json/COMESTIBLE_from_json.py @@ -33234,28 +29285,26 @@ msgid "" "Chicken chunks and noodles swimming in a salty broth. Rumored to help cure " "colds." msgstr "" -" Pedaços de frango e macarrão nadando em um caldo salgado. Rumoresparaajudar" -" a curar resfriados." #: lang/json/COMESTIBLE_from_json.py msgid "mushroom soup" -msgstr "sopa de cogumelo" +msgstr "" #. ~ Description for mushroom soup #: lang/json/COMESTIBLE_from_json.py msgid "A mushy, gray semi-liquid soup made from mushrooms." -msgstr "Uma sopa semi-líquida cinzenta e mole feita de cogumelos." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "tomato soup" -msgstr "sopa de tomate" +msgstr "" #. ~ Description for tomato soup #: lang/json/COMESTIBLE_from_json.py msgid "" "It smells of tomatoes. Not very filling, but it goes well with grilled " "cheese." -msgstr "Cheira de tomate. Não muito recheio, mas vai bem com queijo grelhado." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "chicken and dumplings" @@ -33267,12 +29316,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A soup with chicken chunks and balls of dough. Not bad." msgstr "" -" frango e bolinhos Uma sopa com pedaços de frango e bolas de massa. " -"Nãoéruim." #: lang/json/COMESTIBLE_from_json.py msgid "cullen skink" -msgstr "Cullen Skink" +msgstr "" #. ~ Description for cullen skink #: lang/json/COMESTIBLE_from_json.py @@ -33280,8 +29327,6 @@ msgid "" "A rich and tasty fish chowder from Scotland, made with preserved fish and " "creamy milk." msgstr "" -" Um rico e saboroso ensopado de peixe da Escócia, feito com conservasdepeixe" -" e leite cremoso." #: lang/json/COMESTIBLE_from_json.py msgid "chili powder" @@ -33295,8 +29340,6 @@ msgid "" "Chilly P, Yo! Not edible on its own, but it could be used to make " "seasoning." msgstr "" -" pimentão em póChilly P, Yo! Não é comestível sozinho, mas pode serusadopara" -" fazer temperos." #: lang/json/COMESTIBLE_from_json.py msgid "cinnamon" @@ -33308,7 +29351,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Ground cinnamon bark with a sweet but slightly spicy aroma." msgstr "" -" canela Casca de canela em grão com um aroma doce mas ligeiramente picante." #: lang/json/COMESTIBLE_from_json.py msgid "curry powder" @@ -33322,8 +29364,6 @@ msgid "" "A blend of spices meant to be used in some South Asian dishes. Can't be " "eaten raw, why would you even try that?" msgstr "" -" Pó de caril Uma mistura de especiarias destinada a ser usada emalgunspratos" -" do sul da Ásia. Não pode ser comido cru, por que você tentariaisso?" #: lang/json/COMESTIBLE_from_json.py msgid "black pepper" @@ -33334,7 +29374,7 @@ msgstr[1] "" #. ~ Description for black pepper #: lang/json/COMESTIBLE_from_json.py msgid "Ground black spice berries with a pungent aroma." -msgstr "Pimenta pretaCrigão preto com um aroma forte." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "salt" @@ -33348,8 +29388,6 @@ msgid "" "Yuck! You surely wouldn't want to eat this. It's good for preserving meat " "and cooking, though." msgstr "" -" salgado! Você certamente não gostaria de comer isso. É bom " -"parapreservarcarne e cozinhar, no entanto." #: lang/json/COMESTIBLE_from_json.py msgid "Italian seasoning" @@ -33361,8 +29399,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A fragrant mix of dried oregano, basil, thyme and other spices." msgstr "" -" Tempero italiano Uma mistura perfumada de orégano seco, manjericão, " -"tomilhoe outras especiarias." #: lang/json/COMESTIBLE_from_json.py msgid "seasoned salt" @@ -33374,8 +29410,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Salt mixed with a fragrant blend of secret herbs and spices." msgstr "" -" sal temperado misturado com uma mistura perfumada de ervas " -"eespeciariassecretas." #: lang/json/COMESTIBLE_from_json.py msgid "sugar" @@ -33389,8 +29423,6 @@ msgid "" "Sweet, sweet sugar. Bad for your teeth and surprisingly not very tasty on " "its own." msgstr "" -" açucar Doce, doce açucar. Ruim para seus dentes e " -"surpreendentementenãomuito saboroso por conta própria." #: lang/json/COMESTIBLE_from_json.py msgid "wild herbs" @@ -33404,8 +29436,6 @@ msgid "" "A tasty collection of wild herbs including violet, sassafras, mint, clover, " "purslane, fireweed, and burdock." msgstr "" -" ervas selvagensUma coleção saborosa de ervas selvagens, incluindovioleta, " -"sassafrás, hortelã, trevo, beldroegas, erva-de-fogo e bardana." #: lang/json/COMESTIBLE_from_json.py msgid "soy sauce" @@ -33416,12 +29446,12 @@ msgstr[1] "" #. ~ Description for soy sauce #: lang/json/COMESTIBLE_from_json.py msgid "Salty fermented soybean sauce." -msgstr "molho de sojaSalty fermentado de molho de soja." +msgstr "" #. ~ Description for thyme #: lang/json/COMESTIBLE_from_json.py msgid "A stalk of thyme. Smells delicious." -msgstr "Um talo de tomilho. Cheira delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked cattail stalk" @@ -33435,8 +29465,6 @@ msgid "" "A cooked stalk from a cattail plant. Its fibrous outer leaves have been " "stripped away and now it is quite delicious." msgstr "" -" guisado cozido stalkA cozinhou a haste de uma planta de taboa. " -"Suasfolhasexternas fibrosas foram arrancadas e agora é bem delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "starch" @@ -33450,8 +29478,6 @@ msgid "" "Sticky, gooey carbohydrate paste extracted from plants. Spoils rather " "quickly if not prepared for storage." msgstr "" -" starchSticky, pasta de carboidratos gooey extraída de plantas. " -"Estragarapidamente se não estiver preparado para armazenamento." #: lang/json/COMESTIBLE_from_json.py msgid "cooked dandelion greens" @@ -33463,8 +29489,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Cooked leaves from wild dandelions. Tasty and nutritious." msgstr "" -" verduras cozidas de dente de leãoCozinhar folhas de leão selvagem. " -"Saborosae nutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "fried dandelions" @@ -33478,17 +29502,15 @@ msgid "" "Wild dandelion flowers that have been battered and deep fried. Very tasty " "and nutritious." msgstr "" -" Dandelions fritos Flores de dente-de-leão selvagens que foram " -"maltratadasefritas. Muito saboroso e nutritivo." #: lang/json/COMESTIBLE_from_json.py msgid "cooked plant marrow" -msgstr "medula de planta cozida" +msgstr "" #. ~ Description for cooked plant marrow #: lang/json/COMESTIBLE_from_json.py msgid "A freshly cooked chunk of plant matter, tasty and nutritious." -msgstr "Um pedaço recém cozido de matéria vegetal, saborosa e nutritiva." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked wild vegetables" @@ -33500,20 +29522,16 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Cooked wild edible plants. An interesting mix of flavors." msgstr "" -" Vegetais silvestres cozidosCozinhas silvestres comestíveis. " -"Umamisturainteressante de sabores." #: lang/json/COMESTIBLE_from_json.py msgid "vegetable aspic" -msgstr "alfazema vegetal" +msgstr "" #. ~ Description for vegetable aspic #: lang/json/COMESTIBLE_from_json.py msgid "" "A dish in which vegetables are set into a gelatin made from a plant stock." msgstr "" -" Um prato em que os vegetais são colocados em uma gelatina feita a " -"partirdeum estoque de plantas." #: lang/json/COMESTIBLE_from_json.py msgid "cooked buckwheat" @@ -33526,22 +29544,20 @@ msgstr[1] "" msgid "" "A serving of cooked buckwheat groats. Healthy and nutritious but bland." msgstr "" -" buckwheat cozinhado Uma porção de grumos de trigo sarracenocozidos. " -"Saudável e nutritiva, mas sem graça." #. ~ Description for corn #: lang/json/COMESTIBLE_from_json.py msgid "Canned corn in water. Eat up!" -msgstr "Milho enlatado na água. Coma!" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cornmeal" -msgstr "fubá" +msgstr "" #. ~ Description for cornmeal #: lang/json/COMESTIBLE_from_json.py msgid "This yellow cornmeal is useful for baking." -msgstr "Este fubá amarelo é útil para assar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vegetarian baked beans" @@ -33553,8 +29569,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Slow-cooked beans with vegetables. Tasty and very filling." msgstr "" -" feijões cozidos vegetarianos Feijões cozidos lentamente comvegetais. " -"Saboroso e muito recheio." #: lang/json/COMESTIBLE_from_json.py msgid "dried rice" @@ -33568,8 +29582,6 @@ msgid "" "Dehydrated long-grain rice. Tasty and nutritious when cooked, virtually " "inedible when dry." msgstr "" -" arroz secoArroz desidratado de grãos longos. Saborosa e " -"nutritivaquandocozida, praticamente não comestível quando seca." #: lang/json/COMESTIBLE_from_json.py msgid "cooked rice" @@ -33581,7 +29593,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A hearty serving of cooked long-grain white rice." msgstr "" -" arroz cozidoUm serviço saudável de arroz branco cozido de grãos longos." #: lang/json/COMESTIBLE_from_json.py msgid "fried rice" @@ -33593,7 +29604,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Delicious fried rice with vegetables. Tasty and very filling." msgstr "" -" arroz fritoDelicious arroz frito com legumes. Saboroso e muito recheio." #: lang/json/COMESTIBLE_from_json.py msgid "beans and rice" @@ -33607,8 +29617,6 @@ msgid "" "A serving of beans and rice that has been cooked together. Delicious and " "healthy!" msgstr "" -" feijão e arrozUma porção de feijão e arroz que foi cozido juntos. " -"Deliciosoe saudável!" #: lang/json/COMESTIBLE_from_json.py msgid "tofu fried rice" @@ -33646,8 +29654,6 @@ msgid "" "Slow-cooked beans and rice with vegetables and seasonings. Tasty and very " "filling." msgstr "" -" feijão e arroz vegetariano deluxeFeijão cozido e arroz com " -"legumesetemperos. Saboroso e muito recheio." #: lang/json/COMESTIBLE_from_json.py msgid "baked potato" @@ -33658,32 +29664,30 @@ msgstr[1] "" #. ~ Description for baked potato #: lang/json/COMESTIBLE_from_json.py msgid "A delicious baked potato. Got any sour cream?" -msgstr "batata cozidaUma batata cozida deliciosa. Tem algum creme azedo?" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "mashed pumpkin" -msgstr "abóbora amassada" +msgstr "" #. ~ Description for mashed pumpkin #: lang/json/COMESTIBLE_from_json.py msgid "" "This is a simple dish made by cooking the pumpkin pulp and then mashing." msgstr "" -" Este é um prato simples feito cozinhando a polpa da abóbora " -"eentãoesmagando." #: lang/json/COMESTIBLE_from_json.py msgid "vegetable pie" -msgstr "torta de legumes" +msgstr "" #. ~ Description for vegetable pie #: lang/json/COMESTIBLE_from_json.py msgid "A delicious baked pie with a delicious vegetable filling." -msgstr "Uma deliciosa torta assada com um delicioso recheio de vegetais." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "vegetable pizza" -msgstr "pizza de legumes" +msgstr "" #. ~ Description for vegetable pizza #: lang/json/COMESTIBLE_from_json.py @@ -33691,17 +29695,15 @@ msgid "" "A vegetarian pizza, with delicious tomato sauce and a fluffy crust. Its " "smell brings back great memories." msgstr "" -" Uma pizza vegetariana, com molho de tomate delicioso e crosta fofa. " -"Seucheiro traz de volta ótimas lembranças." #: lang/json/COMESTIBLE_from_json.py msgid "pesto" -msgstr "pesto" +msgstr "" #. ~ Description for pesto #: lang/json/COMESTIBLE_from_json.py msgid "Olive oil, basil, garlic, pine nuts. Simple and delicious." -msgstr "Azeite, manjericão, alho, pinhões. Simples e delicioso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "canned veggy" @@ -33715,12 +29717,10 @@ 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 "" -" veggy enlatadoEsta pilha mole de matéria vegetal foi cozida e enlatadaemuma" -" vida anterior. Melhor comê-lo antes que ele escorra pelos seus dedos." #: lang/json/COMESTIBLE_from_json.py msgid "salted veggy chunk" -msgstr "pedaço veggy salgado" +msgstr "" #. ~ Description for salted veggy chunk #: lang/json/COMESTIBLE_from_json.py @@ -33728,8 +29728,6 @@ msgid "" "Vegetable chunks pickled in a salt bath. Goes well with burgers, if only " "you can find one." msgstr "" -" Pedaços de vegetais em conserva em um banho de sal. Vai bemcomhambúrgueres," -" se você puder encontrar um." #: lang/json/COMESTIBLE_from_json.py msgid "spaghetti al pesto" @@ -33741,18 +29739,16 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Spaghetti, with a generous helping of pesto on top. Yum!" msgstr "" -" spaghetti al pestoSpaghetti, com uma porção generosa de pesto no topo. Yum!" #: lang/json/COMESTIBLE_from_json.py msgid "pickle" -msgstr "salmoura" +msgstr "" #. ~ Description for pickle #: lang/json/COMESTIBLE_from_json.py msgid "" "A pickled cucumber. Rather sour, but tastes good and lasts for a long time." msgstr "" -" Um pepino em conserva. Um pouco azedo, mas bom gosto e dura muito tempo." #: lang/json/COMESTIBLE_from_json.py msgid "sauerkraut w/ sautee'd onions" @@ -33766,9 +29762,6 @@ msgid "" "This is a delicious sautee of lovely diced onions and sauerkraut. The smell" " alone is enough to make your mouth water." msgstr "" -" chucrute com cebola sautee'dEste é um delicioso sautee de " -"cebolasemcubos e chucrute. O cheiro sozinho é suficiente para deixar sua " -"bocacomágua." #: lang/json/COMESTIBLE_from_json.py msgid "pickled veggy" @@ -33782,12 +29775,10 @@ msgid "" "This is a serving of crisply brined and canned vegetable matter. Tasty and " "nutritious." msgstr "" -" veggyThis em conserva é uma porção de matéria vegetal enlatada esalgada. " -"Saborosa e nutritiva." #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated vegetable" -msgstr "vegetal desidratado" +msgstr "" #. ~ Description for dehydrated vegetable #: lang/json/COMESTIBLE_from_json.py @@ -33795,12 +29786,10 @@ msgid "" "Dehydrated vegetable flakes. With proper storage, this dried food will " "remain edible for an incredibly long time." msgstr "" -" Flocos vegetais desidratados. Com o armazenamento adequado, " -"estealimentoseco permanecerá comestível por um tempo incrivelmente longo." #: lang/json/COMESTIBLE_from_json.py msgid "rehydrated vegetable" -msgstr "vegetal reidratado" +msgstr "" #. ~ Description for rehydrated vegetable #: lang/json/COMESTIBLE_from_json.py @@ -33808,21 +29797,19 @@ msgid "" "Reconstituted vegetable flakes, which are much more enjoyable to eat now " "that they have been rehydrated." msgstr "" -" Flocos vegetais reconstituídos, que são muito mais agradáveis de " -"comeragoraque foram reidratados." #: lang/json/COMESTIBLE_from_json.py msgid "vegetable salad" -msgstr "salada de vegetais" +msgstr "" #. ~ Description for vegetable salad #: lang/json/COMESTIBLE_from_json.py msgid "Salad with all kind of vegetables." -msgstr "Salada com todo o tipo de legumes." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "dried salad" -msgstr "salada seca" +msgstr "" #. ~ Description for dried salad #: lang/json/COMESTIBLE_from_json.py @@ -33830,12 +29817,10 @@ msgid "" "Dried salad packed in a box with mayonnaise and ketchup. Add water to " "enjoy." msgstr "" -" Salada seca embalada em uma caixa com maionese e ketchup. Adicione " -"aáguapara desfrutar." #: lang/json/COMESTIBLE_from_json.py msgid "insta-salad" -msgstr "salada instantânea" +msgstr "" #. ~ Description for insta-salad #: lang/json/COMESTIBLE_from_json.py @@ -33843,12 +29828,10 @@ msgid "" "Dried salad with water added, not very tasty but still a decent substitution" " for real salad." msgstr "" -" Salada seca com água adicionada, não muito saborosa mas " -"aindaumasubstituição decente para salada real." #: lang/json/COMESTIBLE_from_json.py msgid "baked dahlia root" -msgstr "raiz de dália assada" +msgstr "" #. ~ Description for baked dahlia root #: lang/json/COMESTIBLE_from_json.py @@ -33878,8 +29861,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A serving of sticky vinegared rice commonly used in sushi." msgstr "" -" arroz de sushiUm serviço de arroz vinegared pegajoso comumente " -"usadoemsushi." #: lang/json/COMESTIBLE_from_json.py msgid "onigiri" @@ -33893,8 +29874,6 @@ msgid "" "A triangular block of tasty sushi rice with a healthy green vegetable folded" " around it." msgstr "" -" onigiriUm bloco triangular de arroz de sushi saboroso com um " -"vegetalverdesaudável dobrado em torno dele." #: lang/json/COMESTIBLE_from_json.py msgid "vegetable hosomaki" @@ -33908,8 +29887,6 @@ msgid "" "Delicious chopped vegetables wrapped in tasty sushi rice and rolled up in a " "healthy green vegetable." msgstr "" -" vegetais hosomakiDelicious legumes picados envoltos em arroz " -"desushisaboroso e enrolado em um vegetal verde saudável." #: lang/json/COMESTIBLE_from_json.py msgid "dehydrated alien fungus chunk" @@ -33934,9 +29911,6 @@ msgid "" "This crunchy, sour topping made from lettuce or cabbage is perfect for your " "hot dogs and hamburgers, or, if you're desperate, straight to your stomach." msgstr "" -" chucruteEsta cobertura crocante e amarga feita com alface ou " -"repolhoéperfeita para cachorros-quentes e hambúrgueres ou, se " -"estiverdesesperada, diretamente para o estômago." #: lang/json/COMESTIBLE_from_json.py msgid "nopalito" @@ -33949,7 +29923,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "wheat cereal" -msgstr "cereal de trigo" +msgstr "" #. ~ Description for wheat cereal #: lang/json/COMESTIBLE_from_json.py @@ -33957,13 +29931,11 @@ msgid "" "Whole-grain wheat cereal. It's surprisingly good, and allegedly good for " "your heart." msgstr "" -" Cereais de trigo integral. É surpreendentemente bom e supostamente bomparao" -" seu coração." #. ~ Description for wheat #: lang/json/COMESTIBLE_from_json.py msgid "Raw wheat, not very tasty." -msgstr "Trigo cru, não muito saboroso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw spaghetti pasta" @@ -34001,7 +29973,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Fresh wet noodles. Fairly bland, but fills you up." msgstr "" -" Macarrão cozido Macarrão molhado refrigerado. Bastante branda, mas teenche." #: lang/json/COMESTIBLE_from_json.py msgid "raw macaroni" @@ -34013,8 +29984,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "It could be eaten raw if you're desperate, but is much better cooked." msgstr "" -" spaghetti cru poderia ser comido cru se você está desesperado, mas " -"émuitomelhor cozido." #: lang/json/COMESTIBLE_from_json.py msgid "mac & cheese" @@ -34026,8 +29995,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "When the cheese starts flowing, Kraft gets your noodle going." msgstr "" -" Macarrão cru e queijoQuando o queijo começa a fluir, a Kraft " -"preparaseumacarrão." #: lang/json/COMESTIBLE_from_json.py msgid "flour" @@ -34038,11 +30005,11 @@ msgstr[1] "" #. ~ Description for flour #: lang/json/COMESTIBLE_from_json.py msgid "This enriched white flour is useful for baking." -msgstr "farinhaEsta farinha branca enriquecida é útil para assar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "oatmeal" -msgstr "aveia" +msgstr "" #. ~ Description for oatmeal #: lang/json/COMESTIBLE_from_json.py @@ -34050,17 +30017,15 @@ msgid "" "Dry flakes of flattened grain. Tasty and nutritious when cooked, it also " "doubles as food for horses while dry." msgstr "" -" Flocos secos de grãos achatados. Saborosa e nutritiva quandocozinhada, " -"também serve como alimento para cavalos enquanto seca." #. ~ Description for oats #: lang/json/COMESTIBLE_from_json.py msgid "Raw oats." -msgstr "Aveia crua." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked oatmeal" -msgstr "aveia cozida" +msgstr "" #. ~ Description for cooked oatmeal #: lang/json/COMESTIBLE_from_json.py @@ -34068,12 +30033,10 @@ msgid "" "A filling and nutritious New England classic that has sustained pioneers and" " captains of industry alike." msgstr "" -" Um recheio e um clássico nutritivo da Nova Inglaterra quesustentoupioneiros" -" e capitães da indústria." #: lang/json/COMESTIBLE_from_json.py msgid "deluxe cooked oatmeal" -msgstr "aveia cozida de luxo" +msgstr "" #. ~ Description for deluxe cooked oatmeal #: lang/json/COMESTIBLE_from_json.py @@ -34081,8 +30044,6 @@ msgid "" "A filling and nutritious New England classic that has been improved with the" " addition of extra wholesome ingredients." msgstr "" -" Um recheio e nutritivo clássico da Nova Inglaterra que foi melhorado " -"comaadição de ingredientes extra saudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "pancake" @@ -34093,7 +30054,7 @@ msgstr[1] "" #. ~ Description for pancake #: lang/json/COMESTIBLE_from_json.py msgid "Fluffy and delicious pancakes with real maple syrup." -msgstr "pancake Panquecas Fluffy e deliciosas com xarope de bordo real." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fruit pancake" @@ -34107,8 +30068,6 @@ msgid "" "Fluffy and delicious pancakes with real maple syrup, made sweeter and " "healthier with the addition of wholesome fruit." msgstr "" -" panqueca de frutas Panquecas fofas e deliciosas com xarope de bordoreal, " -"mais doce e saudável com a adição de frutas saudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "French toast" @@ -34120,12 +30079,10 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Slices of bread dipped in a milk and egg mixture then fried." msgstr "" -" Torradas francesas Fatias de pão mergulhadas em uma mistura de leite eovo, " -"depois fritas." #: lang/json/COMESTIBLE_from_json.py msgid "waffle" -msgstr "waffle" +msgstr "" #. ~ Description for waffle #: lang/json/COMESTIBLE_from_json.py @@ -34133,11 +30090,10 @@ msgid "" "Hey it's waffle time, it's waffle time. Won't you have some waffles of " "mine?" msgstr "" -" Ei, é hora do waffle, é hora do waffle. Você não vai ter algunswafflesmeus?" #: lang/json/COMESTIBLE_from_json.py msgid "fruit waffle" -msgstr "waffle de frutas" +msgstr "" #. ~ Description for fruit waffle #: lang/json/COMESTIBLE_from_json.py @@ -34145,39 +30101,37 @@ msgid "" "Crunchy and delicious waffles with real maple syrup, made sweeter and " "healthier with the addition of wholesome fruit." msgstr "" -" Waffles crocantes e deliciosos com xarope de bordo real, feitos mais " -"docesesaudáveis com a adição de frutas saudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "cracker" -msgstr "biscoito" +msgstr "" #. ~ Description for cracker #: lang/json/COMESTIBLE_from_json.py msgid "Dry and salty, these crackers will leave you quite thirsty." -msgstr "Secas e salgadas, essas bolachas deixam você com muita sede." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fruit pie" -msgstr "Torta de Frutas" +msgstr "" #. ~ Description for fruit pie #: lang/json/COMESTIBLE_from_json.py msgid "A delicious baked pie with a sweet fruit filling." -msgstr "Uma deliciosa torta assada com um recheio de fruta doce." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cheese pizza" -msgstr "pizza de queijo" +msgstr "" #. ~ Description for cheese pizza #: lang/json/COMESTIBLE_from_json.py msgid "A delicious pizza with molten cheese on top." -msgstr "Uma deliciosa pizza com queijo derretido por cima." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "granola" -msgstr "granola" +msgstr "" #. ~ Description for granola #. ~ Description for gluten free granola @@ -34186,17 +30140,15 @@ msgid "" "A tasty and nutritious mixture of oats, honey, and other ingredients that " "has been baked until crisp." msgstr "" -" Uma mistura saborosa e nutritiva de aveia, mel e outros " -"ingredientesqueforam assados até ficarem crocantes." #: lang/json/COMESTIBLE_from_json.py msgid "maple pie" -msgstr "torta de maple" +msgstr "" #. ~ Description for maple pie #: lang/json/COMESTIBLE_from_json.py msgid "A sweet and delicious baked pie with pure maple syrup." -msgstr "Uma torta cozida doce e deliciosa com xarope de bordo puro." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fast noodles" @@ -34207,11 +30159,11 @@ msgstr[1] "" #. ~ Description for fast noodles #: lang/json/COMESTIBLE_from_json.py msgid "So-called ramen noodles. Can be eaten raw." -msgstr "macarrão rápidoSo chamado macarrão instantâneo. Pode ser comido cru." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cloutie dumpling" -msgstr "bolinho de massa do cloutie" +msgstr "" #. ~ Description for cloutie dumpling #: lang/json/COMESTIBLE_from_json.py @@ -34219,18 +30171,15 @@ msgid "" "This traditional Scottish treat is a sweet and filling little boiled cake " "studded with dried fruit." msgstr "" -" Este tradicional petisco escocês é um doce e recheado bolo " -"recheadocomfrutas secas." #: lang/json/COMESTIBLE_from_json.py msgid "brioche" -msgstr "brioche" +msgstr "" #. ~ Description for brioche #: lang/json/COMESTIBLE_from_json.py msgid "Filling bread buns, taste good with tea on a Sunday morning breakfast." msgstr "" -" Pães de recheio de pão, bom gosto com chá em um café da manhã de domingo." #: lang/json/COMESTIBLE_from_json.py msgid "sponge cake" @@ -34252,30 +30201,30 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "brownie" -msgstr "Brownie" +msgstr "" #. ~ Description for brownie #: lang/json/COMESTIBLE_from_json.py msgid "A rich chocolate brownie, just like how grandma used to bake them." -msgstr "Um rico brownie de chocolate, assim como a avó costumava assá-los." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "'special' brownie" -msgstr "brownie 'especial'" +msgstr "" #. ~ Description for 'special' brownie #: lang/json/COMESTIBLE_from_json.py msgid "This is definitely not how grandma used to bake them." -msgstr "Definitivamente não é assim que a avó costumava cozinhá-los." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "fibrous stalk" -msgstr "talo fibroso" +msgstr "" #. ~ Description for fibrous stalk #: lang/json/COMESTIBLE_from_json.py msgid "A rather green stick. Very fibrous." -msgstr "Uma vara bastante verde. Muito fibroso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "Dana's sourdough bread" @@ -34289,7 +30238,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cheap wine must" -msgstr "vinho barato deve" +msgstr "" #. ~ Description for cheap wine must #: lang/json/COMESTIBLE_from_json.py @@ -34297,31 +30246,29 @@ msgid "" "Unfermented grape wine. A hearty mix of pressed grapes, with some added " "brandy to fortify it." msgstr "" -" Vinho de uva não fermentado. Uma mistura saudável de uvas prensadas, " -"comalguns adicionados brandy para fortificá-lo." #: lang/json/COMESTIBLE_from_json.py msgid "stimgas inhaler" -msgstr "estimgas inalador" +msgstr "" #. ~ Description for stimgas inhaler #: lang/json/COMESTIBLE_from_json.py msgid "A powerful stimulant with no risk of addiction." -msgstr "Um poderoso estimulante sem risco de dependência." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "sewagas inhaler" -msgstr "inalador de sewagas" +msgstr "" #. ~ Use action activation_message for sewagas inhaler. #: lang/json/COMESTIBLE_from_json.py msgid "You use your sewer gas inhaler." -msgstr "Você usa o seu inalador de gás de esgoto." +msgstr "" #. ~ Description for sewagas inhaler #: lang/json/COMESTIBLE_from_json.py msgid "A powerful hallucinogen with low risk of addiction." -msgstr "Um poderoso alucinógeno com baixo risco de dependência." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "plain cake" @@ -34469,7 +30416,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "SpOreos" -msgstr "SpOreos" +msgstr "" #. ~ Description for SpOreos #: lang/json/COMESTIBLE_from_json.py @@ -34478,8 +30425,6 @@ msgid "" " Marloss, Chanterelle, and The Encroaching, Unavoidable Death of Human " "Civilization." msgstr "" -" O cookie de sucesso da Mycus Industries! Agora vem em saboresviciantes, " -"como Marloss, Chanterelle e A Incrível Morte Inevitável daCivilizaçãoHumana." #: lang/json/COMESTIBLE_from_json.py msgid "potion starter" @@ -34605,7 +30550,7 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "resinous cord" -msgstr "cordão resinoso" +msgstr "" #. ~ Description for resinous cord #: lang/json/COMESTIBLE_from_json.py @@ -34613,8 +30558,6 @@ msgid "" "Primitive binding material made of cords and natural glue. Use it to repair" " items made of wood, paper, bone, or chitin." msgstr "" -" Material de ligação primitivo feito de cordões e cola natural. Use- " -"oparareparar itens feitos de madeira, papel, osso ou quitina." #: lang/json/COMESTIBLE_from_json.py msgid "berry-shaped anomaly" @@ -34628,9 +30571,6 @@ msgid "" "If we left this as it should be, one could just walk into the Bloom " "uncontested and partake of the Fruit. We can't have that, can we?" msgstr "" -" Se deixássemos isto como deveria ser, poderíamos simplesmente entrar no " -"Bloom sem ser contestados e participar do Fruto. Não podemos ter isso, " -"podemos?" #: lang/json/COMESTIBLE_from_json.py msgid "seed-shaped anomaly" @@ -34644,9 +30584,6 @@ msgid "" "If we left this as it should be, one could just walk into the Garden " "uncontested and partake of the Seed. We can't have that, can we?" msgstr "" -" anomalia em forma de semente Se deixássemos isto como deveriaser, " -"poderíamos apenas entrar no Jardim incontestavelmente e participardaSemente." -" Não podemos ter isso, podemos?" #: lang/json/COMESTIBLE_from_json.py msgid "gelatin" @@ -34660,9 +30597,6 @@ msgid "" "If we left this as it should be, one could just walk into the Spire " "uncontested and partake of the Sap. Wait, how did you even GET this anyway?" msgstr "" -" gelatina Se deixássemos isto como deveria ser, poderíamossimplesmenteentrar" -" na Torre incontestada e participar do Seiva. Espere, como vocêconseguiu " -"isso?" #: lang/json/COMESTIBLE_from_json.py msgid "fruit-shaped anomaly" @@ -34676,13 +30610,10 @@ msgid "" "We do not exist at the moment. Clever little human, no doubt debugging to " "see this? We will not permit you to join us while we are modded out." msgstr "" -" anomalia em forma de frutaNão existimos no momento. " -"Pequenohumanointeligente, sem dúvida depurando para ver isso? Nós não " -"permitiremosquevocê se junte a nós enquanto estivermos fora." #: lang/json/COMESTIBLE_from_json.py msgid "necrotic head" -msgstr "cabeça necrótica" +msgstr "" #. ~ Description for necrotic head #: lang/json/COMESTIBLE_from_json.py @@ -34690,17 +30621,15 @@ msgid "" "The severed head of a zombie necromancer. Its eyes still roll in its head " "and its jaws snap menacingly." msgstr "" -" A cabeça decepada de um necromante zumbi. Seus olhos ainda rolam " -"emsuacabeça e suas mandíbulas se esticam ameaçadoramente." #: lang/json/COMESTIBLE_from_json.py msgid "mutagenic glob" -msgstr "globo mutagênico" +msgstr "" #. ~ Description for mutagenic glob #: lang/json/COMESTIBLE_from_json.py msgid "A gelatinous glob of mutagen." -msgstr "Um glóbulo gelatinoso de mutagênico." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "honey" @@ -34711,11 +30640,11 @@ msgstr[1] "" #. ~ Description for honey #: lang/json/COMESTIBLE_from_json.py msgid "Honey, that stuff bees make." -msgstr "Querido, essas coisas fazem as abelhas." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "magnesium tablet" -msgstr "comprimido de magnésio" +msgstr "" #. ~ Description for magnesium tablet #: lang/json/COMESTIBLE_from_json.py @@ -34724,10 +30653,6 @@ msgid "" "deprivation and to mitigate its effects. One tablet a day combined with a " "good night's sleep will help you recover faster." msgstr "" -" Suplementos de magnésio vendidos sem receita médica, " -"geralmenteprescritospara tratar a privação do sono e para mitigar seus " -"efeitos. Umcomprimidopor dia combinado com uma boa noite de sono irá ajudá- " -"lo arecuperar maisrapidamente." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free fish sandwich" @@ -34739,7 +30664,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "Gluten free and a delicious fish sandwich." msgstr "" -" Sanduíche de peixe sem glúten Sem glúten e um delicioso sanduíche de peixe." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free vegetable sandwich" @@ -34750,11 +30674,11 @@ msgstr[1] "" #. ~ Description for gluten free vegetable sandwich #: lang/json/COMESTIBLE_from_json.py msgid "Gluen free bread and vegetables, that's it." -msgstr "sanduíche de vegetais sem glútenGluen livre de pão e legumes, é isso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free granola" -msgstr "granola sem glúten" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free meat sandwich" @@ -34765,7 +30689,7 @@ msgstr[1] "" #. ~ Description for gluten free meat sandwich #: lang/json/COMESTIBLE_from_json.py msgid "Gluten free bread and meat, that's it." -msgstr "sanduíche de carne sem glúten Pão sem glúten e carne, é isso." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free peanut butter sandwich" @@ -34779,9 +30703,6 @@ 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 "" -" sanduíche de manteiga de amendoim sem glútenAlguns manteiga " -"deamendoimsufocada entre dois pedaços de pão livre de glúten. Não " -"muitorecheio e vaificar no telhado de sua boca como cola." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free PB&J sandwich" @@ -34795,8 +30716,6 @@ msgid "" "A delicious peanut butter and jelly gluten free sandwich. It reminds you of" " the times your mother would make you lunch." msgstr "" -" sanduíche PB & J sem glúten Uma deliciosa manteiga de amendoim " -"egeléiasem glúten sanduíche. Faz lembrar as vezes que sua mãe faria oalmoço." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free PB&H sandwich" @@ -34810,9 +30729,6 @@ 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 "" -" sem glúten sanduíche PB & H Alguns malditos idiotas colocam " -"melnestesanduíche de manteiga de amendoim, que em seu juízo perfeito - oh, " -"espere, isso é muito bom. Sem glúten também!" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free PB&M sandwich" @@ -34826,12 +30742,10 @@ msgid "" "Who knew you could mix maple syrup and peanut butter to create yet another " "different gluten free sandwich?" msgstr "" -" sanduíche PB & M sem glútenQuem sabia que você poderia misturarxaropede" -" bordo e manteiga de amendoim para criar outro sanduíche semglúten?" #: lang/json/COMESTIBLE_from_json.py msgid "lactose free hickory nut ambrosia" -msgstr "ambrosia de noz de nogueira sem lactose" +msgstr "" #. ~ Description for lactose free hickory nut ambrosia #: lang/json/COMESTIBLE_from_json.py @@ -34839,8 +30753,6 @@ msgid "" "Delicious hickory nut ambrosia. A drink worthy of the gods. This one was " "made with an alternative to cows milk." msgstr "" -" Ambrosia deliciosa da noz de hicória. Uma bebida digna dos deuses. " -"Estefoifeito com uma alternativa ao leite de vaca." #. ~ Description for cornmeal #: lang/json/COMESTIBLE_from_json.py @@ -34848,13 +30760,10 @@ 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 "" -" Você acha que isso é farinha de milho ... ou farinha de arroz ... " -"Ououtracoisa. No entanto, certamente não é farinha de trigo! É útil " -"paraassarembora." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free johnnycake" -msgstr "johnnycake sem glúten" +msgstr "" #. ~ Description for gluten free johnnycake #: lang/json/COMESTIBLE_from_json.py @@ -34862,8 +30771,6 @@ msgid "" "We all crave for cake sometimes. This is not perfect, but it is a tasty and " "nutritious gluten free fried bread treat. " msgstr "" -" Todos nós ansiamos por bolo às vezes. Isso não é perfeito, mas é " -"umsaborosoe nutritivo pão frito sem glúten." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free fruit pancake" @@ -34877,9 +30784,6 @@ msgid "" "Fluffy and delicious gluten free pancakes with real maple syrup, made " "sweeter and healthier with the addition of wholesome fruit." msgstr "" -" panqueca de frutas sem glúten Panquecas sem glúten e " -"deliciosascomverdadeiro xarope de bordo, feitas mais doces e saudáveis com a" -" adiçãodefrutas saudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "lactose free fruit pancake" @@ -34893,8 +30797,6 @@ msgid "" "Fluffy and delicious lactose free pancakes with real maple syrup, made " "sweeter and healthier with the addition of wholesome fruit." msgstr "" -" panqueca de frutas sem lactose Panquecas sem lactose e deliciosassemlactose" -" com xarope de bordo, adoçadas e saudáveis com a adição defrutassaudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free lactose free fruit pancake" @@ -34909,10 +30811,6 @@ msgid "" " But at least it has real maple syrup, made sweeter and healthier with the " "addition of wholesome fruit." msgstr "" -" panqueca de frutas sem lactose sem glúten Panquecas fofinhas " -"edeliciosasfeitas com as únicas coisas que você ainda pode comer. Mas " -"pelomenos temxarope de bordo real, feito mais doce e saudável com a adição " -"defrutassaudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free chocolate pancake" @@ -34926,8 +30824,6 @@ msgid "" "Fluffy and delicious gluten free pancakes with real maple syrup, with " "delicious chocolate baked right in." msgstr "" -" panqueca de chocolate sem glúten Panquecas sem glúten e deliciosascomxarope" -" de bordo, com delicioso chocolate assado." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free French toast" @@ -34940,8 +30836,6 @@ msgstr[1] "" msgid "" "Slices of gluten free bread dipped in a milk and egg mixture then fried." msgstr "" -" torradas francesas sem glútenSlices de pão sem glúten mergulhados " -"emumamistura de leite e ovo, em seguida, frito." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free lactose free French toast" @@ -34956,14 +30850,10 @@ msgid "" "then fried. You never thought it was possible, but now you truly feel like a" " post millennial." msgstr "" -" Brinde livre de lactose sem glútenSímbolos de pão sem glúten " -"mergulhadosemuma mistura de leite e ovo sem lactose e fritos. Você nunca " -"pensou queerapossível, mas agora você realmente se sente como um pós- " -"milenista." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free biscuit" -msgstr "biscoito sem glúten" +msgstr "" #. ~ Description for gluten free biscuit #: lang/json/COMESTIBLE_from_json.py @@ -34971,51 +30861,46 @@ msgid "" "Delicious and filling, this home made gluten free biscuit is good, and good " "for you!" msgstr "" -" Delicioso e farto, esse biscoito caseiro sem glúten é bom e bom para você!" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free fruit pie" -msgstr "torta de frutas sem glúten" +msgstr "" #. ~ 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 "" -"Uma torta sem glúten cozida deliciosa com um enchimento doce da fruta." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free vegetable pie" -msgstr "torta de legumes sem glúten" +msgstr "" #. ~ 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 "" -" Uma torta sem glúten cozida deliciosa com um enchimento vegetal delicioso." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free meat pie" -msgstr "torta de carne sem glúten" +msgstr "" #. ~ 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 "" -" Uma deliciosa torta sem glúten assada com um delicioso recheio de carne." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free maple pie" -msgstr "torta de maple sem glúten" +msgstr "" #. ~ 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 "" -"Uma torta sem glúten cozida doce e deliciosa com xarope de bordo puro." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free vegetable pizza" -msgstr "pizza vegetal sem glúten" +msgstr "" #. ~ Description for gluten free vegetable pizza #: lang/json/COMESTIBLE_from_json.py @@ -35023,21 +30908,19 @@ msgid "" "A vegetarian gluten free pizza, with delicious tomato sauce and a fluffy " "crust. Its smell brings back great memories." msgstr "" -" Uma pizza sem glúten vegetariano, com molho de tomate delicioso e " -"umacrostafofa. Seu cheiro traz de volta ótimas lembranças." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free cheese pizza" -msgstr "pizza de queijo livre de glúten" +msgstr "" #. ~ Description for gluten free cheese pizza #: lang/json/COMESTIBLE_from_json.py msgid "A delicious gluten free pizza with molten cheese on top." -msgstr "Uma deliciosa pizza sem glúten com queijo derretido no topo." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free meat pizza" -msgstr "pizza de carne sem glúten" +msgstr "" #. ~ Description for gluten free meat pizza #: lang/json/COMESTIBLE_from_json.py @@ -35045,12 +30928,10 @@ msgid "" "A meat gluten free pizza, for all the carnivores out there. Chock full of " "minced meat and heavily seasoned." msgstr "" -" Uma pizza sem glúten de carne, para todos os carnívoros por aí. " -"Chockcheiode carne picada e muito temperado." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free cheeseburger" -msgstr "cheeseburger sem glúten" +msgstr "" #. ~ Description for gluten free cheeseburger #: lang/json/COMESTIBLE_from_json.py @@ -35058,21 +30939,19 @@ msgid "" "A gluten free sandwich of minced meat and cheese with condiments. The apex " "of pre-cataclysm culinary achievement." msgstr "" -" Um sanduíche livre de glúten de carne picada e queijo com condimentos. " -"Oápice do sucesso culinário pré-cataclismo." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free hamburger" -msgstr "hamburger livre de glúten" +msgstr "" #. ~ Description for gluten free hamburger #: lang/json/COMESTIBLE_from_json.py msgid "A gluten free sandwich of minced meat with condiments." -msgstr "Um sanduíche livre de glúten de carne picada com condimentos." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free sloppy joe" -msgstr "joe desleixado sem glúten" +msgstr "" #. ~ Description for gluten free sloppy joe #: lang/json/COMESTIBLE_from_json.py @@ -35080,17 +30959,15 @@ msgid "" "A gluten free sandwich, consisting of ground meat and tomato sauce served on" " a hamburger bun." msgstr "" -" Um sanduíche sem glúten, composto por carne moída e molho de " -"tomateservidoem um pão de hambúrguer." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free BLT" -msgstr "BLT sem glúten" +msgstr "" #. ~ Description for gluten free BLT #: lang/json/COMESTIBLE_from_json.py msgid "A bacon, lettuce, and tomato gluten free sandwich on toasted bread." -msgstr "Um bacon, alface e tomate sem glúten sanduíche no pão torrado." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free sweetbread" @@ -35105,9 +30982,6 @@ msgid "" "crumbs added and fried. They have interesting flavor and unparalleled " "texture." msgstr "" -" sem glúten sweetbreadDelicious e carnes macias. Primeiro cozido, emseguida," -" migalhas à milanesa sem glúten adicionado e frito. Eles " -"têmsaborinteressante e textura incomparável." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free cheese sandwich" @@ -35119,8 +30993,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A simple gluten free cheese sandwich." msgstr "" -" sanduíche de queijo livre de glúten Um sanduíche de queijo livre " -"deglútensimples." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free grilled cheese sandwich" @@ -35134,8 +31006,6 @@ msgid "" "A delicious gluten free grilled cheese sandwich, because everything is " "better with melted cheese." msgstr "" -" sanduíche de queijo grelhado sem glútenUm delicioso sanduíche " -"dequeijogrelhado sem glúten, porque tudo é melhor com queijo derretido." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free deluxe sandwich" @@ -35149,8 +31019,6 @@ msgid "" "A gluten free sandwich of meat, vegetables, and cheese with condiments. " "Tasty and nutritious!" msgstr "" -" Sanduíche deluxe sem glútenA sanduíche sem glúten de carne, legumes " -"equeijocom condimentos. Saborosa e nutritiva!" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free cucumber sandwich" @@ -35164,8 +31032,6 @@ msgid "" "A refreshing gluten free cucumber sandwich. Not very filling, but quite " "tasty." msgstr "" -" Sanduíche de pepino sem glúten Um refrescante sanduíche de pepinosemglúten." -" Não muito recheio, mas muito saborosa." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free jam sandwich" @@ -35177,7 +31043,6 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "A delicious gluten free jam sandwich." msgstr "" -" sanduíche de geléia sem glúten Um delicioso sanduíche de geléia sem glúten." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free honey sandwich" @@ -35188,7 +31053,7 @@ msgstr[1] "" #. ~ Description for gluten free honey sandwich #: lang/json/COMESTIBLE_from_json.py msgid "A delicious gluten free honey sandwich." -msgstr "sanduíche sem glúten de melUm delicioso sanduíche de mel sem glúten." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free boring sandwich" @@ -35202,28 +31067,24 @@ 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 "" -" sanduíche sem graça, sem glúten, sanduíche de molho sem glúten. " -"Nãomuitorecheio mas bate comer apenas o pão ... especialmente se é o " -"tipoerrado depão!" #: lang/json/COMESTIBLE_from_json.py msgid "gluten free waffle" -msgstr "waffle sem glúten" +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 "Waffle sem glúten. É basicamente uma panqueca em forma de hashtag." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "lactose free waffle" -msgstr "waffle livre de lactose" +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 "" -" Waffle livre de lactose. É basicamente uma panqueca em forma de hashtag." #. ~ Description for lactose free waffle #: lang/json/COMESTIBLE_from_json.py @@ -35231,12 +31092,10 @@ msgid "" "Gluten free and lactose free waffle. It's basically a pancake in hashtag " "form." msgstr "" -" Waffle livre de glúten e sem lactose. É basicamente uma panqueca em " -"formadehashtag." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free fruit waffle" -msgstr "waffle de frutas sem glúten" +msgstr "" #. ~ Description for gluten free fruit waffle #: lang/json/COMESTIBLE_from_json.py @@ -35244,12 +31103,10 @@ msgid "" "Crunchy and delicious gluten free waffles with real maple syrup, made " "sweeter and healthier with the addition of wholesome fruit." msgstr "" -" Crocantes e deliciosos waffles sem glúten com xarope de bordo real, " -"feitomais doce e saudável com a adição de frutas saudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free lactose free fruit waffle" -msgstr "waffle de frutas sem lactose sem glúten" +msgstr "" #. ~ Description for gluten free lactose free fruit waffle #: lang/json/COMESTIBLE_from_json.py @@ -35257,12 +31114,10 @@ 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 "" -" Crocantes e deliciosos sem glúten e sem lactose waffles com xarope " -"debordoreal, feito mais doce e saudável com a adição de frutas saudáveis." #: lang/json/COMESTIBLE_from_json.py msgid "gluten free chocolate waffle" -msgstr "waffle de chocolate sem glúten" +msgstr "" #. ~ Description for gluten free chocolate waffle #: lang/json/COMESTIBLE_from_json.py @@ -35270,8 +31125,6 @@ msgid "" "Crunchy and delicious gluten free waffles with real maple syrup, with " "delicious chocolate baked right in." msgstr "" -" Crocantes e deliciosos waffles sem glúten com xarope de bordo real, " -"comchocolate delicioso cozido à direita em." #: lang/json/COMESTIBLE_from_json.py msgid "rice milk" @@ -35285,8 +31138,6 @@ msgid "" "Sweeter than real cows milk, almost tastes like vanilla icecream. Spoils " "rapidly." msgstr "" -" Leite de arroz Doce de leite de vaca real, quase tem gosto de " -"sorvetedebaunilha. Estraga rapidamente." #: lang/json/COMESTIBLE_from_json.py msgid "coconut water" @@ -35300,8 +31151,6 @@ msgid "" "Coconut milk, with water added to make it go further. Tastes ok though. " "Spoils rapidly." msgstr "" -" água de cocoC leite de coco, com água adicionada para ir mais longe. " -"Temumgosto ok embora. Estraga rapidamente." #: lang/json/COMESTIBLE_from_json.py msgid "jarred coconut milk" @@ -35315,8 +31164,6 @@ msgid "" "This deliciously rich coconut cream is a more concentrated, thicker version " "of the coconut milk." msgstr "" -" leite de coco em pó Este deliciosamente rico creme de coco é uma " -"versãomaisconcentrada e espessa do leite de coco." #: lang/json/COMESTIBLE_from_json.py msgid "rice flour" @@ -35327,7 +31174,7 @@ msgstr[1] "" #. ~ Description for rice flour #: lang/json/COMESTIBLE_from_json.py msgid "This rice flour is useful for baking." -msgstr "farinha de arrozEsta farinha de arroz é útil para assar." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cholla bud" @@ -35340,11 +31187,11 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "antibiotics" -msgstr "antibióticos" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "revival serum" -msgstr "soro revival" +msgstr "" #. ~ Description for revival serum #: lang/json/COMESTIBLE_from_json.py @@ -35353,10 +31200,6 @@ msgid "" "animals (including humans). It induces a violent allergic reactions in " "living organisms, so using it on yourself is a REALLY bad idea." msgstr "" -" Uma droga potente, necessária ao realizar uma operação de " -"reavivamentoemanimais maiores (incluindo seres humanos). Isso induz a " -"reaçõesalérgicasviolentas em organismos vivos, então usá-lo em si mesmo é " -"umaidéia muitoruim." #: lang/json/CONTAINER_from_json.py msgid "2.5L canteen" @@ -35369,8 +31212,6 @@ msgstr[1] "" msgid "" "A large plastic water canteen, with a 2.5 liter capacity and carrying strap." msgstr "" -" Refeitório de 2,5 litros Uma grande cantina de água de plástico, " -"comumacapacidade de 2,5 litros e alça de transporte." #: lang/json/CONTAINER_from_json.py msgid "30 gallon barrel" @@ -35382,7 +31223,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A huge plastic barrel with a resealable lid." msgstr "" -" Barril de 30 galõesUm enorme barril de plástico com uma tampa resealable." #: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (100L)" @@ -35393,7 +31233,7 @@ msgstr[1] "" #. ~ Description for steel drum (100L) #: lang/json/CONTAINER_from_json.py msgid "A huge steel barrel with a resealable lid." -msgstr "tambor de aço (100L) Um enorme barril de aço com tampa selada." +msgstr "" #: lang/json/CONTAINER_from_json.py lang/json/vehicle_part_from_json.py msgid "steel drum (200L)" @@ -35405,7 +31245,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A massive steel barrel with a resealable lid." msgstr "" -"tambor de aço (200L) Um barril de aço maciço com uma tampa resealable." #: lang/json/CONTAINER_from_json.py msgid "canvas sack" @@ -35418,8 +31257,6 @@ msgstr[1] "" msgid "" "A large and sturdy canvas sack. Smells faintly of earth and hard work." msgstr "" -" saco de lona Saco de lona grande e resistente. Cheira de terra " -"etrabalhoduro." #: lang/json/CONTAINER_from_json.py msgid "canvas bag" @@ -35431,8 +31268,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "Small bag made of canvas. Looks fine to store dried herbs in." msgstr "" -" saco de lonaSaco pequeno feito de lona. Parece bem para armazenarervassecas" -" em." #: lang/json/CONTAINER_from_json.py msgid "plastic bag" @@ -35444,7 +31279,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A small, open plastic bag. Essentially trash." msgstr "" -" saco de plásticoUm pequeno saco de plástico aberto. Essencialmente lixo." #: lang/json/CONTAINER_from_json.py msgid "zipper bag" @@ -35483,8 +31317,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A resealable glass bottle, holds 750 ml of liquid." msgstr "" -" garrafa de vidroUma garrafa de vidro que pode ser fechada comcapacidadepara" -" 750 ml de líquido." #: lang/json/CONTAINER_from_json.py msgid "plastic bottle" @@ -35496,8 +31328,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A resealable plastic bottle, holds 500 ml of liquid." msgstr "" -" garrafa de plásticoUma garrafa de plástico reutilizável, contém 500 " -"mldelíquido." #: lang/json/CONTAINER_from_json.py msgid "small plastic bottle" @@ -35509,8 +31339,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A resealable plastic bottle, holds 250 ml of liquid." msgstr "" -" garrafa plástica pequenaUma garrafa de plástico resselável, comporta " -"250mlde líquido." #: lang/json/CONTAINER_from_json.py msgid "large plastic bottle" @@ -35524,8 +31352,6 @@ msgid "" "It's a two-liter plastic bottle that can hold a lot of soda, or, nowadays, " "boiled water." msgstr "" -" É uma garrafa de plástico de dois litros que pode conter " -"muitorefrigeranteou, hoje em dia, água fervida." #: lang/json/CONTAINER_from_json.py msgid "clay bowl" @@ -35539,8 +31365,6 @@ 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 "" -" tigela de barroUma tigela de barro com tampa de couro à provad'água. " -"Pode ser usado como contêiner ou como ferramenta. Detém 250 mlde líquido." #: lang/json/CONTAINER_from_json.py msgid "pack" @@ -35554,8 +31378,6 @@ msgid "" "SURGEON GENERAL'S WARNING: Smoking Causes Lung Cancer, Heart Disease, " "Emphysema And May Complicate Pregnancy." msgstr "" -" packSURGEON GENERAL'S AVISO: Fumar causa câncer de pulmão, " -"doençacardíaca, enfisema e pode complicar a gravidez." #: lang/json/CONTAINER_from_json.py msgid "small cardboard box" @@ -35567,8 +31389,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A small cardboard box. No bigger than a foot in dimension." msgstr "" -" caixa de papelãoUma pequena caixa de papelão. Não maior que um " -"péemdimensão." #: lang/json/CONTAINER_from_json.py msgid "cardboard box" @@ -35609,11 +31429,6 @@ msgid "" "flowers, holding gift baskets, containing a fruit basket and herbs, loose " "item storage or as an ice bucket." msgstr "" -" balde Um balde galvanizado para amendoim, vinho gelado, cervejagelada, " -"lagosta, patas de caranguejo, batatas fritas, ração animal, usoagrícola, " -"utilização não autorizada, artesanato, plantação de flores, " -"cestasdepresentes, contendo uma cesta de frutas e ervas, armazenamento " -"deitenssoltos ou como balde de gelo." #: lang/json/CONTAINER_from_json.py msgid "hydration pack" @@ -35628,9 +31443,6 @@ msgid "" " large pocket and a capped mouth for filling with liquid with a hose that " "allows the wearer to drink hands-free." msgstr "" -" pacote de hidratação Uma bexiga plástica fina e leve com " -"isolamentonascostas. Ele tem um grande bolso e uma boca coberta para encher " -"comlíquidocom uma mangueira que permite ao usuário beber sem as mãos." #: lang/json/CONTAINER_from_json.py msgid "aluminum can" @@ -35641,7 +31453,7 @@ msgstr[1] "" #. ~ Description for aluminum can #: lang/json/CONTAINER_from_json.py msgid "An aluminum can, like what soda comes in." -msgstr "Alumínio canAn lata de alumínio, como o refrigerante vem dentro" +msgstr "" #: lang/json/CONTAINER_from_json.py msgid "opened aluminum can" @@ -35655,8 +31467,6 @@ msgid "" "An aluminum can, like what soda comes in. This one is opened and can't be " "easily sealed." msgstr "" -" lata de alumínio aberta de alumínio, como o que vem com refrigerante. " -"Esteéaberto e não pode ser facilmente selado." #: lang/json/CONTAINER_from_json.py msgid "paper carton" @@ -35693,7 +31503,7 @@ msgstr[1] "" #. ~ Description for vacuum-packed bag #: lang/json/CONTAINER_from_json.py msgid "This is a bag of vacuum-packed food." -msgstr "saco embalado a vácuoEste é um saco de alimentos embalados a vácuo." +msgstr "" #: lang/json/CONTAINER_from_json.py msgid "tin can" @@ -35704,7 +31514,7 @@ msgstr[1] "" #. ~ Description for tin can #: lang/json/CONTAINER_from_json.py msgid "A tin can, like what beans come in." -msgstr "lata de lata lata, como o feijão vem dentro" +msgstr "" #: lang/json/CONTAINER_from_json.py msgid "opened tin can" @@ -35718,8 +31528,6 @@ msgid "" "A tin can, like what beans come in. This one is opened and can't be easily " "sealed." msgstr "" -" lata de estanho aberta lata, como o feijão vem dentro Este é aberto enão " -"pode ser facilmente selado." #: lang/json/CONTAINER_from_json.py msgid "plastic canteen" @@ -35733,8 +31541,6 @@ msgid "" "A military-style water canteen with a 1.5 liter capacity. Commonly worn at " "the hip." msgstr "" -" cantina de plásticoUma cantina de água de estilo militar com " -"capacidadepara1,5 litro. Comumente usado no quadril." #: lang/json/CONTAINER_from_json.py msgid "thermos" @@ -35748,9 +31554,6 @@ msgid "" "A Thermos brand vacuum flask. Built for temperature retention, helps keep " "things hot or cold. Contains 1L of liquid." msgstr "" -" thermosA Garrafa a vácuo tipo Thermos. Construído para " -"retençãodetemperatura, ajuda a manter as coisas quentes ou frias. Contém " -"1Ldelíquido." #: lang/json/CONTAINER_from_json.py msgid "clay canister" @@ -35764,8 +31567,6 @@ msgid "" "A fragile clay vessel. It can be used to make crude impact grenades or to " "store liquid." msgstr "" -" vasilha de argilaUm vaso de barro frágil. Pode ser usado para " -"fazergranadasde impacto brutas ou para armazenar líquidos." #: lang/json/CONTAINER_from_json.py msgid "clay hydria" @@ -35777,8 +31578,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A 15-liter clay pot with three handles for carrying and for pouring." msgstr "" -" clay hydriaA Panela de barro de 15 litros com três manípulos " -"paratransportee para vazamento." #: lang/json/CONTAINER_from_json.py msgid "large clay pot" @@ -35792,9 +31591,6 @@ 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 "" -" grande panela de barroUma panela de barro volumosa e pesada com uma " -"tampadecouro impermeável, destinada a armazenar água, mas pode " -"transportaroutroslíquidos em uma pitada." #: lang/json/CONTAINER_from_json.py msgid "plastic cup" @@ -35805,7 +31601,7 @@ msgstr[1] "" #. ~ Description for plastic cup #: lang/json/CONTAINER_from_json.py msgid "A small, vacuum formed cup." -msgstr "copo de plásticoUm pequeno copo formado a vácuo." +msgstr "" #: lang/json/CONTAINER_from_json.py msgid "opened plastic cup" @@ -35817,7 +31613,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A small, vacuum formed cup, essentially trash." msgstr "" -" copo de plástico abertoUm pequeno copo formado a vácuo, essencialmentelixo." #: lang/json/CONTAINER_from_json.py msgid "glass flask" @@ -35829,8 +31624,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A 250 ml laboratory conical flask, with a rubber bung." msgstr "" -" frasco de vidroUm frasco cônico de laboratório de 250 ml, com uma " -"rolhadeborracha." #: lang/json/CONTAINER_from_json.py msgid "test tube" @@ -35842,8 +31635,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A 10ml laboratory cylindrical test tube, with a rubber stopper." msgstr "" -" tubo de ensaioUm tubo de ensaio cilíndrico de laboratório de 10 ml, " -"comtampa de borracha." #: lang/json/CONTAINER_from_json.py msgid "beaker" @@ -35897,8 +31688,6 @@ msgid "" "A 250 ml metal flask with a hinged screw-on lid, commonly used to discreetly" " transport alcohol." msgstr "" -" Frasco de ancaUm frasco de metal de 250 ml com uma tampa deroscaarticulada," -" comumente usado para transportar álcool discretamente." #: lang/json/CONTAINER_from_json.py msgid "3L glass jar" @@ -35910,8 +31699,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A three-liter glass jar with a metal screw top lid, used for canning." msgstr "" -" Jarra de vidro 3LUm frasco de vidro de três litros com uma tampa " -"superiordemetal, usada para enlatamento." #: lang/json/CONTAINER_from_json.py msgid "sealed 3L glass jar" @@ -35925,9 +31712,6 @@ msgid "" "A three-liter glass jar with a metal screw top lid, used for canning. " "Sealed tightly to preserve contents from rot." msgstr "" -" frasco de vidro selado de 3LUm frasco de vidro de três litros com " -"umatampasuperior de metal, usada para enlatamento. Selado firmemente " -"parapreservaro conteúdo da podridão." #: lang/json/CONTAINER_from_json.py msgid "glass jar" @@ -35939,8 +31723,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A half-liter glass jar with a metal screw top lid, used for canning." msgstr "" -" frasco de vidroUm frasco de meio litro de vidro com uma tampa " -"superiordemetal, usada para enlatamento." #: lang/json/CONTAINER_from_json.py msgid "sealed glass jar" @@ -35955,10 +31737,6 @@ msgid "" " tightly and will preserve the contents from rot (assuming it was sterile " "before sealing)." msgstr "" -" jarra de vidro seladaUm frasco de meio litro de vidro com uma " -"tampasuperiorde metal, usada para enlatamento. Selado firmemente e " -"preservará oconteúdoda podridão (assumindo que ele estava estéril antes da " -"vedação)." #: lang/json/CONTAINER_from_json.py msgid "plastic jerrycan" @@ -35972,8 +31750,6 @@ msgid "" "A bulky plastic jerrycan, meant to carry fuel, but can carry other liquids " "in a pinch." msgstr "" -" jerrycan de plásticoUm jerrycan de plástico volumoso, destinadoatransportar" -" combustível, mas pode transportar outros líquidos emumapitada." #: lang/json/CONTAINER_from_json.py msgid "steel jerrycan" @@ -35987,8 +31763,6 @@ msgid "" "A steel jerrycan, meant to carry fuel, but can carry other liquids in a " "pinch." msgstr "" -" jerrycan aço jerrycanA, destinado a transportar combustível, mas pode " -"transportar outros líquidos em uma pitada." #: lang/json/CONTAINER_from_json.py msgid "clay jug" @@ -36000,8 +31774,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A clay container with a lid, used to hold and pour liquids." msgstr "" -" jug de barro Um recipiente de barro com tampa, usado para segurar " -"ederramarlíquidos." #: lang/json/CONTAINER_from_json.py msgid "gallon jug" @@ -36013,8 +31785,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A standard plastic jug used for milk and household cleaning chemicals." msgstr "" -" jarro de galãoUm jarro de plástico padrão usado para produtos " -"químicosdeleite e limpeza doméstica." #: lang/json/CONTAINER_from_json.py msgid "aluminum keg" @@ -36028,8 +31798,6 @@ msgid "" "A reusable lightweight aluminum keg, used for shipping beer. It has a " "capacity of 50 liters." msgstr "" -" barril de alumínio reutilizável barril de alumínio leve, usado " -"paraotransporte de cerveja. Tem uma capacidade de 50 litros." #: lang/json/CONTAINER_from_json.py msgid "steel keg" @@ -36043,8 +31811,6 @@ msgid "" "A reusable heavy steel keg, used for shipping beer. It has a capacity of 50" " liters." msgstr "" -" barril de aço pesado barril de aço reutilizável, usado para o " -"transportedecerveja. Tem uma capacidade de 50 litros." #: lang/json/CONTAINER_from_json.py msgid "large sealed stomach" @@ -36058,8 +31824,6 @@ msgid "" "The stomach of a large creature, cleaned and sealed with strings. It can " "hold 3 liters of water." msgstr "" -" grande estômago seladoO estômago de uma criatura grande, limpo e " -"seladocomcordas. Pode conter 3 litros de água." #: lang/json/CONTAINER_from_json.py msgid "metal tank (60L)" @@ -36071,8 +31835,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A large metal tank for holding liquids. Useful for crafting." msgstr "" -" tanque de metal (60L) Um grande tanque de metal para reter " -"líquidos.Útilpara elaborar." #: lang/json/CONTAINER_from_json.py msgid "metal tank (2L)" @@ -36084,8 +31846,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A small metal tank for gas or liquids. Useful for crafting." msgstr "" -" tanque de metal (2L) Um pequeno tanque de metal para gás ou " -"líquidos.Útilpara elaborar." #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" @@ -36099,9 +31859,6 @@ 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 "" -" cantil de madeiraUma cantina de água feita de madeira, presa por " -"bandasdemetal e selada com cera ou breu. Suporta 1,5 litros e tem uma " -"alçadetransporte simples." #: lang/json/CONTAINER_from_json.py msgid "sealed stomach" @@ -36115,8 +31872,6 @@ msgid "" "The stomach of a creature, cleaned and sealed with a string. It can hold " "1.5 liters of water." msgstr "" -" estômago fechado O estômago de uma criatura, limpo e selado com umacorda. " -"Pode conter 1,5 litros de água." #: lang/json/CONTAINER_from_json.py msgid "small waterskin" @@ -36130,8 +31885,6 @@ msgid "" "A small watertight leather bag with a carrying strap, can hold 1.5 liters of" " water." msgstr "" -" Pequeno sabugo de águaUma bolsa de couro pequena e impermeável com " -"umaalçade transporte, pode conter 1,5 litros de água." #: lang/json/CONTAINER_from_json.py msgid "waterskin" @@ -36144,8 +31897,6 @@ msgstr[1] "" msgid "" "A watertight leather bag with a carrying strap, can hold 3 liters of water." msgstr "" -" Um saco de couro impermeável com uma alça de transporte, pode conter3litros" -" de água." #: lang/json/CONTAINER_from_json.py msgid "large waterskin" @@ -36159,8 +31910,6 @@ msgid "" "A large watertight leather bag with a carrying strap, can hold 5 liters of " "water." msgstr "" -" grande waterkinA bolsa de couro grande e impermeável com uma " -"alçadetransporte, pode conter 5 litros de água." #: lang/json/CONTAINER_from_json.py msgid "wooden barrel" @@ -36174,9 +31923,6 @@ 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 "" -" barril de madeiraTradicionalmente feito de carvalho branco;essasembarcações" -" são conhecidas por fornecer um delicioso uísque para ofuturo. Tem uma " -"capacidade de 100 litros." #: lang/json/CONTAINER_from_json.py msgid "paper wrapper" @@ -36188,8 +31934,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "Just a piece of butcher's paper. Good for starting fires." msgstr "" -" papel de embrulho, um pedaço de papel de açougueiro. Bom " -"paracomeçarincêndios." #: lang/json/CONTAINER_from_json.py msgid "styrofoam cup" @@ -36201,7 +31945,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A cheap, disposable cup with a plastic lid and straw." msgstr "" -" copo de isopor Um copo descartável barato com uma tampa de plástico epalha." #: lang/json/CONTAINER_from_json.py msgid "plastic tub" @@ -36213,8 +31956,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A big, square plastic bucket usually used for carrying ice cream." msgstr "" -" TUBA DE PLÁSTA Um balde de plástico grande e quadrado, normalmenteusadopara" -" transportar sorvete." #: lang/json/CONTAINER_from_json.py msgid "condom" @@ -36243,9 +31984,6 @@ msgid "" "sample. Use this tool to draw blood, either from yourself or from a corpse " "you are standing on." msgstr "" -" kit de coleta de sangueEste é um kit para coleta de sangue, incluindoumtubo" -" de ensaio para a coleta da amostra. Use esta ferramenta paratirarsangue, " -"seja de você ou de um cadáver em que você está." #: lang/json/CONTAINER_from_json.py msgid "plastic bowl" @@ -36268,7 +32006,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A stainless steel water bottle, holds 750ml of liquid." msgstr "" -" garrafa de açoA garrafa de água de aço inoxidável, detém 750ml de líquido." #: lang/json/CONTAINER_from_json.py msgid "foldable plastic bottle" @@ -36280,8 +32017,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." msgstr "" -" garrafa de plástico dobrávelUma garrafa de plástico não rígida " -"parafácilarmazenamento, comporta 500 ml de líquido." #: lang/json/CONTAINER_from_json.py msgid "small metal tank" @@ -36293,8 +32028,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A small metal tank for holding gas or liquids. Useful for crafting." msgstr "" -" pequeno tanque de metalUm pequeno tanque de metal para armazenar " -"gásoulíquidos. Útil para elaborar." #: lang/json/CONTAINER_from_json.py lang/json/overmap_terrain_from_json.py msgid "basin" @@ -36319,8 +32052,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A yellow drum meant for the storage of hazardous substances." msgstr "" -" tambor de resíduos perigososUm tambor amarelo destinado ao " -"armazenamentodesubstâncias perigosas." #: lang/json/CONTAINER_from_json.py msgid "garden pot" @@ -36345,8 +32076,6 @@ msgstr[1] "" #: lang/json/CONTAINER_from_json.py msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "" -" envoltório de folha de alumínioUma folha amassada de folha dealumínio, " -"usada para cozinhar e assar." #: lang/json/CONTAINER_from_json.py msgid "gelatinous capsule" @@ -36362,9 +32091,6 @@ 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 "" -" cápsula gelatinosaEmbora a bolha esteja muito ansiosa para seralimentada, " -"ela não é tão entusiasmada quanto a desistir de líquidos. Algumasalterações " -"são necessárias." #: lang/json/CONTAINER_from_json.py msgid "gelatinous tank" @@ -36399,29 +32125,27 @@ msgstr[1] "" #: lang/json/ENGINE_from_json.py msgid "internal combustion engine" msgstr "" -" cisterna gelatinosa cisterna cocoongo cisterna podoozing tanque " -"motordecombustão interna" #: lang/json/ENGINE_from_json.py msgid "base diesel engine" -msgstr "motor diesel base" +msgstr "" #: lang/json/ENGINE_from_json.py msgid "base gasoline engine" -msgstr "motor a gasolina base" +msgstr "" #: lang/json/ENGINE_from_json.py msgid "base steam engine" -msgstr "motor a vapor de base" +msgstr "" #: lang/json/ENGINE_from_json.py msgid "1-cylinder engine" -msgstr "Motor de 1 cilindro" +msgstr "" #. ~ Description for 1-cylinder engine #: lang/json/ENGINE_from_json.py msgid "A single-cylinder 4-stroke combustion engine." -msgstr "Um motor de combustão de 4 tempos de cilindro único." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "large 1-cylinder engine" @@ -36435,79 +32159,79 @@ msgstr "" #: lang/json/ENGINE_from_json.py msgid "small 1-cylinder engine" -msgstr "pequeno motor de 1 cilindro" +msgstr "" #. ~ Description for small 1-cylinder engine #: lang/json/ENGINE_from_json.py msgid "A small single-cylinder 2-stroke combustion engine." -msgstr "Um pequeno motor de combustão a dois tempos, monocilíndrico." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "Inline-4 engine" -msgstr "Motor Inline-4" +msgstr "" #. ~ Description for Inline-4 engine #: lang/json/ENGINE_from_json.py msgid "A small, yet powerful 4-cylinder combustion engine." -msgstr "Um pequeno mas potente motor de combustão de 4 cilindros." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "I6 diesel engine" -msgstr "Motor diesel I6" +msgstr "" #. ~ Description for I6 diesel engine #: lang/json/ENGINE_from_json.py msgid "A powerful straight-6 diesel engine." -msgstr "Um potente motor a diesel de 6 cilindros em linha." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "V-twin engine" -msgstr "Motor V-gêmeo" +msgstr "" #. ~ Description for V-twin engine #: lang/json/ENGINE_from_json.py msgid "A 2-cylinder 4-stroke combustion engine." -msgstr "Um motor de combustão de 2 cilindros a 4 tempos." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "V6 engine" -msgstr "Motor V6" +msgstr "" #. ~ Description for V6 engine #: lang/json/ENGINE_from_json.py msgid "A powerful 6-cylinder combustion engine." -msgstr "Um potente motor de combustão de 6 cilindros." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "V6 diesel engine" -msgstr "Motor diesel V6" +msgstr "" #. ~ Description for V6 diesel engine #: lang/json/ENGINE_from_json.py msgid "A powerful 6-cylinder diesel engine." -msgstr "Um potente motor diesel de 6 cilindros." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "V8 engine" -msgstr "Motor V8" +msgstr "" #. ~ Description for V8 engine #: lang/json/ENGINE_from_json.py msgid "A large and very powerful 8-cylinder combustion engine." -msgstr "Um grande e muito potente motor de combustão de 8 cilindros." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "V8 diesel engine" -msgstr "Motor diesel V8" +msgstr "" #. ~ Description for V8 diesel engine #: lang/json/ENGINE_from_json.py msgid "A powerful 8-cylinder diesel engine." -msgstr "Um potente motor diesel de 8 cilindros." +msgstr "" #: lang/json/ENGINE_from_json.py msgid "V12 engine" -msgstr "Motor V12" +msgstr "" #. ~ Description for V12 engine #: lang/json/ENGINE_from_json.py @@ -36515,12 +32239,10 @@ msgid "" "A massive and extremely powerful V12 engine, usually built into high end " "sports cars." msgstr "" -" Um enorme e extremamente poderoso motor V12, geralmente construído " -"emcarrosesportivos de ponta." #: lang/json/ENGINE_from_json.py msgid "V12 diesel engine" -msgstr "Motor diesel V12" +msgstr "" #. ~ Description for V12 diesel engine #: lang/json/ENGINE_from_json.py @@ -36528,12 +32250,10 @@ msgid "" "A massive and extremely powerful V12 engine, usually built into heavy " "trucks." msgstr "" -" Um enorme e extremamente poderoso motor V12, geralmente " -"construídoemcaminhões pesados." #: lang/json/ENGINE_from_json.py msgid "makeshift steam engine" -msgstr "motor a vapor improvisado" +msgstr "" #. ~ Description for makeshift steam engine #: lang/json/ENGINE_from_json.py @@ -36542,13 +32262,10 @@ msgid "" "water into steam, driving a reciprocating shaft. A condenser recaptures the" " water, making this a closed cycle system." msgstr "" -" Um pequeno e primitivo motor a vapor. Uma caldeira integrada " -"queimacarvãopara aquecer a água em vapor, acionando um eixo alternativo. " -"Umcondensadorrecaptura a água, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "small steam engine" -msgstr "pequeno motor a vapor" +msgstr "" #. ~ Description for small steam engine #: lang/json/ENGINE_from_json.py @@ -36557,13 +32274,10 @@ msgid "" "steam, driving a reciprocating shaft. A condenser recaptures the water, " "making this a closed cycle system." msgstr "" -" Um pequeno motor a vapor. Uma caldeira integrada queima carvão paraaquecera" -" água em vapor, acionando um eixo alternativo. Um condensadorrecaptura " -"aágua, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "medium steam engine" -msgstr "motor a vapor médio" +msgstr "" #. ~ Description for medium steam engine #: lang/json/ENGINE_from_json.py @@ -36572,9 +32286,6 @@ msgid "" "into steam, driving a reciprocating shaft. A condenser recaptures the " "water, making this a closed cycle system." msgstr "" -" Um motor a vapor de tamanho médio. Uma caldeira integrada queima " -"carvãoparaaquecer a água em vapor, acionando um eixo alternativo. " -"Umcondensadorrecaptura a água, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "1350 hp gas turbine engine" @@ -36611,7 +32322,7 @@ msgstr "" #: lang/json/ENGINE_from_json.py msgid "large steam engine" -msgstr "grande motor a vapor" +msgstr "" #. ~ Description for large steam engine #: lang/json/ENGINE_from_json.py @@ -36620,13 +32331,10 @@ msgid "" "steam, driving a reciprocating shaft. A condensor recaptures the water, " "making this a closed cycle system." msgstr "" -" Um grande motor a vapor. Uma caldeira integrada queima carvão para " -"aqueceraágua em vapor, acionando um eixo alternativo. Um condensador " -"recapturaaágua, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "huge steam engine" -msgstr "enorme motor a vapor" +msgstr "" #. ~ Description for huge steam engine #: lang/json/ENGINE_from_json.py @@ -36635,13 +32343,10 @@ msgid "" "steam, driving a reciprocating shaft. A condensor recaptures the water, " "making this a closed cycle system." msgstr "" -" Um enorme motor a vapor. Uma caldeira integrada queima carvão para " -"aqueceraágua em vapor, acionando um eixo alternativo. Um condensador " -"recapturaaágua, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "small steam turbine" -msgstr "pequena turbina a vapor" +msgstr "" #. ~ Description for small steam turbine #: lang/json/ENGINE_from_json.py @@ -36650,13 +32355,10 @@ msgid "" "steam, driving a spinning turbine. A condensor recaptures the water, making" " this a closed cycle system." msgstr "" -" Uma pequena turbina a vapor. Uma caldeira integrada queima " -"carvãoparaaquecer água em vapor, acionando uma turbina giratória. " -"Umcondensadorrecaptura a água, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "medium steam turbine" -msgstr "turbina a vapor média" +msgstr "" #. ~ Description for medium steam turbine #: lang/json/ENGINE_from_json.py @@ -36665,13 +32367,10 @@ msgid "" " into steam, driving a spinning turbine. A condensor recaptures the water, " "making this a closed cycle system." msgstr "" -" Uma turbina a vapor de tamanho médio. Uma caldeira integrada " -"queimacarvãopara aquecer água em vapor, acionando uma turbina giratória. " -"Umcondensadorrecaptura a água, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "large steam turbine" -msgstr "grande turbina a vapor" +msgstr "" #. ~ Description for large steam turbine #: lang/json/ENGINE_from_json.py @@ -36680,13 +32379,10 @@ msgid "" "steam, driving a spinning turbine. A condensor recaptures the water, making" " this a closed cycle system." msgstr "" -" Uma grande turbina a vapor. Uma caldeira integrada queima carvãoparaaquecer" -" água em vapor, acionando uma turbina giratória. Umcondensadorrecaptura a " -"água, tornando este um sistema de ciclo fechado." #: lang/json/ENGINE_from_json.py msgid "huge steam turbine" -msgstr "turbina a vapor enorme" +msgstr "" #. ~ Description for huge steam turbine #: lang/json/ENGINE_from_json.py @@ -36695,9 +32391,6 @@ msgid "" "steam, driving a spinning turbine. A condensor recaptures the water, making" " this a closed cycle system." msgstr "" -" Uma enorme turbina a vapor. Uma caldeira integrada queima carvãoparaaquecer" -" água em vapor, acionando uma turbina giratória. Umcondensadorrecaptura a " -"água, tornando este um sistema de ciclo fechado." #: lang/json/GENERIC_from_json.py msgid "explosive arrowhead" @@ -36711,8 +32404,6 @@ msgid "" "This simple IED is designed to be attached to an arrow and detonate on " "impact." msgstr "" -" ponta de flecha explosivaEste simples IED foi projetado para ser preso " -"aumaflecha e detonar no impacto." #: lang/json/GENERIC_from_json.py msgid "limestone shard" @@ -36726,9 +32417,6 @@ msgid "" "A small shard of limestone. Pretty flimsy and not much of a weapon, but its" " alkaline properties may yet find some use." msgstr "" -" shard de calcárioUm pequeno fragmento de calcário. Muito frágil e " -"nãomuitode uma arma, mas suas propriedades alcalinas ainda podem " -"encontraralgumuso." #: lang/json/GENERIC_from_json.py msgid "rock salt" @@ -36740,7 +32428,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of rock salt crystals. Could be refined into table salt." msgstr "" -" Um punhado de cristais de sal-gema. Poderia ser refinado em sal de mesa." #: lang/json/GENERIC_from_json.py msgid "hickory root" @@ -36751,7 +32438,7 @@ msgstr[1] "" #. ~ Description for hickory root #: lang/json/GENERIC_from_json.py msgid "A root from a hickory tree. It has an earthy smell." -msgstr "Hickory Root Uma raiz de uma nogueira. Tem um cheiro de terra." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "handful of hickory nuts" @@ -36763,8 +32450,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a hickory tree, still in their shell." msgstr "" -" nozes de hicória Um punhado de nozes duras de uma nogueira, ainda " -"emsuaconcha." #: lang/json/GENERIC_from_json.py msgid "handful of pecans" @@ -36776,7 +32461,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a pecan tree, still in their shell." msgstr "" -" Pecan Um punhado de nozes duras de uma nogueira-pecã, ainda em sua casca." #: lang/json/GENERIC_from_json.py msgid "handful of pistachios" @@ -36788,8 +32472,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a pistachio tree, still in their shell." msgstr "" -" pistachio Um punhado de nozes duras de uma árvore de pistache, ainda " -"emsuaconcha." #: lang/json/GENERIC_from_json.py msgid "handful of almonds" @@ -36801,7 +32483,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a almond tree, still in their shell." msgstr "" -" amêndoa Um punhado de nozes duras de uma amendoeira, ainda em sua casca." #: lang/json/GENERIC_from_json.py msgid "handful of peanuts" @@ -36813,8 +32494,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a peanut bush, still in their shell." msgstr "" -" amendoimUm punhado de nozes duras de um arbusto de amendoim, ainda " -"emsuacasca." #: lang/json/GENERIC_from_json.py msgid "handful of hazelnuts" @@ -36825,7 +32504,7 @@ msgstr[1] "" #. ~ Description for handful of hazelnuts #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a hazelnut tree, still in their shell." -msgstr "Avelã Um punhado de nozes duras de uma avelã, ainda em sua casca." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "handful of chestnuts" @@ -36836,7 +32515,7 @@ msgstr[1] "" #. ~ Description for handful of chestnuts #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a chestnut tree, still in their shell." -msgstr "Um punhado de nozes duras de uma castanheira, ainda em sua casca." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "handful of walnuts" @@ -36847,7 +32526,7 @@ msgstr[1] "" #. ~ Description for handful of walnuts #: lang/json/GENERIC_from_json.py msgid "A handful of hard nuts from a walnut tree, still in their shell." -msgstr "noz Um punhado de nozes duras de uma nogueira, ainda em sua concha." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "steel grille" @@ -36861,8 +32540,6 @@ msgid "" "This is a metal grille. It can be used as a framework for making a chemical" " catalyst." msgstr "" -" grelha de açoEsta é uma grelha de metal. Pode ser usado como " -"umaestruturapara fazer um catalisador químico." #: lang/json/GENERIC_from_json.py msgid "cobalt-60 pellet" @@ -36912,7 +32589,7 @@ msgstr[1] "" #. ~ Description for fake item #: lang/json/GENERIC_from_json.py msgid "Dummy item. If you see this, then something went wrong." -msgstr "artigo falsoDice fantasma. Se você ver isso, então algo deu errado." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "semi ground grains" @@ -36937,8 +32614,6 @@ msgid "" "A handful of smoldering embers emitting smoke. They are fading away even " "when you look at them." msgstr "" -" brasas fumegantes Um punhado de brasas ardentes emitindo fumaça. " -"Elesestãodesaparecendo mesmo quando você olha para eles." #: lang/json/GENERIC_from_json.py msgid "Magic 8-Ball" @@ -36952,8 +32627,6 @@ msgid "" "A fortune-telling device from the 1950s. The kind of moral support you " "didn't know you needed." msgstr "" -" Magic 8-BallA dispositivo de adivinhação da década de 1950. O tipo " -"deapoiomoral que você não sabia que precisava." #: lang/json/GENERIC_from_json.py msgid "coin" @@ -36967,8 +32640,6 @@ msgid "" "A now-ancient form of currency. Stripped of its original purpose, it now " "serves, faithfully, flippant Flippists for free." msgstr "" -" coinA agora antiga forma de moeda. Despojado de seu propósitooriginal, " -"agora serve, de forma fiel, Flippists frívolos de graça." #: lang/json/GENERIC_from_json.py msgid "family photo" @@ -36992,7 +32663,7 @@ msgstr[1] "" #. ~ Description for corpse #: lang/json/GENERIC_from_json.py msgid "A dead body." -msgstr "cadáverUm cadáver." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "animal" @@ -37000,11 +32671,11 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "nearby fire" -msgstr "fogo nas proximidades" +msgstr "" #: lang/json/GENERIC_from_json.py msgid "muscle" -msgstr "vendo isso é um bugmuscle" +msgstr "" #: lang/json/GENERIC_from_json.py msgid "wind" @@ -37012,7 +32683,7 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "a smoking device and a source of flame" -msgstr "um aparelho de fumar e uma fonte de fogo" +msgstr "" #: lang/json/GENERIC_from_json.py msgid "file" @@ -37026,8 +32697,6 @@ msgid "" "Several documents with all kinds of information, customer data and charts " "kept together, pretty useless now though." msgstr "" -" arquivo Vários documentos com todos os tipos de informações, " -"dadosdeclientes e gráficos mantidos juntos, mas agora são inúteis." #: lang/json/GENERIC_from_json.py msgid "foodplace loyalty card" @@ -37065,7 +32734,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small bolt of fur from an animal. Can be made into warm clothing." msgstr "" -" peltA pequeno pedaço de pele de um animal. Pode ser feito em roupasquentes." #: lang/json/GENERIC_from_json.py msgid "faux fur pelt" @@ -37077,8 +32745,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small bolt of garishly colored faux fur. Can be made into clothing." msgstr "" -" Peles de peles artificiais Um pequeno parafuso de peles artificiais " -"decoresgarridas. Pode ser feito em roupas." #: lang/json/GENERIC_from_json.py msgid "leather patch" @@ -37089,7 +32755,7 @@ msgstr[1] "" #. ~ Description for leather patch #: lang/json/GENERIC_from_json.py msgid "A smallish patch of leather, could be used to make tough clothing." -msgstr "Uma mancha pequena de couro, pode ser usada para fazer roupas duras." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "felt patch" @@ -37101,8 +32767,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A smallish patch of felt, could be disassembled for wool fiber." msgstr "" -" patch sentiu um pequeno patch de feltro, pode ser desmontado para " -"fibradelã." #: lang/json/GENERIC_from_json.py msgid "Nomex patch" @@ -37113,7 +32777,7 @@ msgstr[1] "" #. ~ Description for Nomex patch #: lang/json/GENERIC_from_json.py msgid "A small bolt of Nomex fire-resistant fabric." -msgstr "Patch Nomex Um pequeno parafuso de tecido resistente ao fogo Nomex." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "superglue" @@ -37125,7 +32789,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A tube of strong glue. Used in many crafting recipes." msgstr "" -"tubo superglueA de cola forte. Usado em muitas receitas de artesanato." #: lang/json/GENERIC_from_json.py msgid "bone glue" @@ -37140,9 +32803,6 @@ msgid "" "heavy duty usages, but it can be used as a varnish or holding together small" " items." msgstr "" -" cola de ossoGlue feito de ossos de animais em ebulição. O adesivo nãoéforte" -" o suficiente para usos pesados, mas pode ser usado como um " -"vernizousegurando pequenos itens." #: lang/json/GENERIC_from_json.py msgid "fertilizer" @@ -37153,7 +32813,7 @@ msgstr[1] "" #. ~ Description for fertilizer #: lang/json/GENERIC_from_json.py msgid "A token, representing fertilization of a plant." -msgstr "Ficha de fertilizante, representando a fertilização de uma planta." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "steel chain" @@ -37167,8 +32827,6 @@ 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." msgstr "" -" Corrente de açoUma corrente de aço pesada. Útil como arma ouparaelaboração." -" Tem a chance de envolver seu alvo, permitindo umataquedesarmado de bônus." #: lang/json/GENERIC_from_json.py msgid "chunk of chitin" @@ -37180,8 +32838,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A piece of an insect's exoskeleton. It is light and very durable." msgstr "" -" pedaço de quitina Uma parte do exoesqueleto de um inseto. É leve " -"emuitodurável." #: lang/json/GENERIC_from_json.py msgid "chunk of biosilicified chitin" @@ -37195,8 +32851,6 @@ msgid "" "A lump of exoskeleton that has undergone biosilicification. It is acid-" "resistant and remarkably sturdy." msgstr "" -" pedaço de quitina biosilicificada Um exoesqueleto que foi " -"submetidoàbiosilicificação. É resistente a ácidos e notavelmente resistente." #: lang/json/GENERIC_from_json.py msgid "bundle of rags" @@ -37209,8 +32863,6 @@ msgstr[1] "" msgid "" "Cotton rags, bundled tightly together for storage. Disassemble to unpack." msgstr "" -" pacote de panos de algodão, empacotados juntos para armazenamento. " -"Desmontepara desembalar." #: lang/json/GENERIC_from_json.py msgid "bundle of leather" @@ -37224,8 +32876,6 @@ msgid "" "Leather patches, bundled tightly together for storage. Disassemble to " "unpack." msgstr "" -" pacote de couroMapas de couro, empacotados juntos paraarmazenamento. " -"Desmonte para desembalar." #: lang/json/GENERIC_from_json.py msgid "bundle of felt" @@ -37238,8 +32888,6 @@ msgstr[1] "" msgid "" "Felt patches, bundled tightly together for storage. Disassemble to unpack." msgstr "" -" pacote de feltroPontos de feltro, empacotados juntos paraarmazenamento. " -"Desmonte para desembalar." #: lang/json/GENERIC_from_json.py msgid "biollante bud" @@ -37253,8 +32901,6 @@ msgid "" "An unopened biollante flower, brilliant purple in color. It may still have " "its sap-producing organ intact." msgstr "" -" flor biollante Uma flor biollante não aberta, de cor púrpura brilhante. " -"Podeainda ter seu órgão produtor de seiva intacto." #: lang/json/GENERIC_from_json.py msgid "empty canister" @@ -37267,8 +32913,6 @@ msgstr[1] "" msgid "" "An empty canister, which may have once held tear gas or other substances." msgstr "" -" vasilha vazia Uma lata vazia, que pode ter contido gás lacrimogêneoououtras" -" substâncias." #: lang/json/GENERIC_from_json.py msgid "petrified eye" @@ -37282,9 +32926,6 @@ 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." msgstr "" -" olho petrificadoUm globo ocular do tamanho de um punho com uma " -"pupilaemforma de cruz. Parece ser feito de pedra, mas não parece que " -"foiesculpido." #: lang/json/GENERIC_from_json.py msgid "spiral stone" @@ -37299,9 +32940,6 @@ msgid "" "impossible to tell whether they are carved, naturally formed, or some kind " "of fossil." msgstr "" -" pedra espiral Uma rocha do tamanho do seu punho. Está coberto " -"deintricadasespirais; é impossível dizer se eles são esculpidos, " -"formadosnaturalmenteou algum tipo de fóssil." #: lang/json/GENERIC_from_json.py msgid "USB drive" @@ -37312,7 +32950,7 @@ msgstr[1] "" #. ~ Description for USB drive #: lang/json/GENERIC_from_json.py msgid "A USB thumb drive. Useful for holding software." -msgstr "Unidade USBUm pen drive USB. Útil para manter software." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "data card" @@ -37339,8 +32977,6 @@ msgid "" "A pin shaped piece of wood meant for holding a golf ball slightly off the " "ground." msgstr "" -" tee de golfe Uma peça de madeira em forma de pino destinada a " -"segurarumabola de golfe ligeiramente acima do solo." #: lang/json/GENERIC_from_json.py msgid "golf ball" @@ -37351,7 +32987,7 @@ msgstr[1] "" #. ~ Description for golf ball #: lang/json/GENERIC_from_json.py msgid "A small ball with round indentations on it." -msgstr "bola de golfeUma pequena bola com entalhes redondos." +msgstr "" #. ~ Description for pool ball #: lang/json/GENERIC_from_json.py @@ -37370,8 +33006,6 @@ msgid "" "A large, heavy ball. Before the apocalypse, its main purpose was to be " "rolled along waxed floors." msgstr "" -" bola de boliche Uma bola grande e pesada. Antes do apocalipse, " -"seuprincipalobjetivo era ser rolado ao longo de pisos encerados." #: lang/json/GENERIC_from_json.py msgid "candlestick" @@ -37382,7 +33016,7 @@ msgstr[1] "" #. ~ Description for candlestick #: lang/json/GENERIC_from_json.py msgid "A gold candlestick." -msgstr "castiçal Um castiçal de ouro." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -37397,8 +33031,6 @@ msgid "" "A large, relatively sharp blade. Could be used to make bladed weaponry, or " "attached to a car." msgstr "" -" lâminaUma lâmina grande e relativamente afiada. Pode ser usado " -"parafabricararmas brancas ou preso a um carro." #: lang/json/GENERIC_from_json.py msgid "scythe blade" @@ -37425,9 +33057,6 @@ msgid "" "An 8\" circular sawblade. You could make a saw with it, or throw it. " "Wielding it without sturdy gloves is a bad idea." msgstr "" -" serra circular, uma serra circular de 8 \". Você poderia fazer uma " -"serracomela ou jogá-la. Empunhar a mesma sem luvas resistentes é uma má " -"idéia." #: lang/json/GENERIC_from_json.py msgid "tree spile" @@ -37442,10 +33071,6 @@ msgid "" " harvest its sap. Can be used on a maple tree in between late winter and " "early spring to harvest maple sap." msgstr "" -" tree spileUm cilindro de metal oco que é inserido em uma crosta de árvore, " -"afim de colher lentamente sua seiva. Pode ser usado em uma árvore " -"debordoentre o final do inverno e início da primavera para colher seiva " -"debordo." #: lang/json/GENERIC_from_json.py msgid "wire" @@ -37459,8 +33084,6 @@ msgid "" "A length of thin, relatively stiff, steel wire. Like the sort you find in " "wire fences." msgstr "" -" fioUm comprimento de fio de aço fino e relativamente rígido. Como o " -"tipoquevocê encontra em cercas de arame." #: lang/json/GENERIC_from_json.py msgid "barbed wire" @@ -37471,7 +33094,7 @@ msgstr[1] "" #. ~ Description for barbed wire #: lang/json/GENERIC_from_json.py msgid "A length of stiff wire, covered in sharp barbs." -msgstr "arame farpadoUm comprimento de fio rígido, coberto de farpas afiadas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "rebar" @@ -37485,8 +33108,6 @@ msgid "" "A length of rebar, makes a nice melee weapon, and could be handy in " "constructing tougher walls and such." msgstr "" -" rebar Um comprimento de vergalhão, faz uma boa arma corpo-a-corpo, e pode " -"ser útil na construção de paredes mais duras e tal." #: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py msgid "concrete" @@ -37511,8 +33132,6 @@ msgid "" "A thin skewer carved from bone. Sadly, it won't make squirrel on a stick " "taste better." msgstr "" -" espeto de osso Um espeto fino esculpido em osso. Infelizmente, não " -"vaifazero esquilo no palito ter um gosto melhor." #: lang/json/GENERIC_from_json.py msgid "burnt out torch" @@ -37526,8 +33145,6 @@ msgid "" "A torch that has consumed all its fuel; it can be recrafted into another " "torch." msgstr "" -" tocha queimadaUma tocha que consumiu todo o seu combustível; " -"podeserrecristalizado em outra tocha." #: lang/json/GENERIC_from_json.py msgid "dead flare" @@ -37538,7 +33155,7 @@ msgstr[1] "" #. ~ Description for dead flare #: lang/json/GENERIC_from_json.py msgid "This is a spent magnesium flare. It is essentially trash." -msgstr "Chama morta Esta é uma flare magnésio gasto. É essencialmente lixo." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "spring" @@ -37551,8 +33168,6 @@ msgstr[1] "" msgid "" "A large, heavy-duty spring. Expands with significant force when compressed." msgstr "" -" molaUma mola grande e resistente. Expande com força " -"significativaquandocomprimido." #: lang/json/GENERIC_from_json.py msgid "leaf spring" @@ -37566,9 +33181,6 @@ 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 "" -" mola da folhaUma mola de lâmina grande, resistente. Provavelmente " -"dealgumcarro ou caminhão, e parece muito com um arco. Você mal " -"conseguedobrar ..." #: lang/json/GENERIC_from_json.py msgid "lawnmower" @@ -37582,8 +33194,6 @@ msgid "" "A motorized pushmower that seems to be broken. You could take it apart if " "you had a wrench." msgstr "" -" cortador de gramaUm cortador de grama motorizado que parece estarquebrado. " -"Você poderia desmontá-lo se tivesse uma chave." #: lang/json/GENERIC_from_json.py msgid "damaged tent" @@ -37597,9 +33207,6 @@ msgid "" "A small tent, just big enough to fit a person comfortably. This tent is " "broken and cannot be deployed." msgstr "" -" barraca danificadaUma pequena tenda, grande o suficiente para " -"acomodarumapessoa confortavelmente. Esta barraca está quebrada e não " -"podeserdesdobrada." #: lang/json/GENERIC_from_json.py msgid "large damaged tent" @@ -37613,8 +33220,6 @@ msgid "" "A family sized tent, very bulky but with plenty of space. This tent is " "broken and can not be deployed." msgstr "" -" barraca grande e danificadaTenda de tamanho familiar, muito volumosa " -"mascommuito espaço. Esta barraca está quebrada e não pode ser implantada." #: lang/json/GENERIC_from_json.py msgid "heating element" @@ -37626,8 +33231,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A heating element, like the ones used in hotplates or kettles." msgstr "" -" elemento de aquecimento elemento de aquecimento, como os utilizadosemplacas" -" ou chaleiras." #: lang/json/GENERIC_from_json.py msgid "bimetal thermostat" @@ -37651,8 +33254,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A large cathode ray tube television, full of delicious electronics." msgstr "" -" televisionA grande televisão de tubo de raios catódicos, cheia " -"dedeliciososeletrônicos." #: lang/json/GENERIC_from_json.py msgid "pilot light" @@ -37666,8 +33267,6 @@ msgid "" "A pilot light from a gas-burning device, this particular one is a simple " "piezoelectric igniter." msgstr "" -" piloto lightA luz piloto de um dispositivo de queima de gás, " -"esteemparticular é um simples ignitor piezoelétrico." #: lang/json/GENERIC_from_json.py msgid "toaster" @@ -37679,8 +33278,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small two slice toaster, not much use as anything but spare parts" msgstr "" -" torradeiraUma torradeira pequena de duas fatias, pouco uso " -"comoqualqueroutra coisa além de peças de reposição" #: lang/json/GENERIC_from_json.py msgid "microwave" @@ -37694,8 +33291,6 @@ msgid "" "A home microwave, has probably seen its share of baked beans. Good for " "scrap parts." msgstr "" -" microondas microondas em casa, provavelmente já viu sua " -"participaçãodefeijões cozidos. Bom para peças de sucata." #: lang/json/GENERIC_from_json.py msgid "laptop computer" @@ -37706,7 +33301,7 @@ msgstr[1] "" #. ~ Description for laptop computer #: lang/json/GENERIC_from_json.py msgid "A broken laptop, basically a paperweight now." -msgstr "laptop computerUm laptop quebrado, basicamente um paperweight agora." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken eyebot" @@ -37720,8 +33315,6 @@ msgid "" "A broken eyebot. Much less threatening now that it won't be calling for " "backup. Could be gutted for parts." msgstr "" -" Eyebot quebrado. Muito menos ameaçador agora que não pedirá ajuda. " -"Poderiaser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken skitterbot" @@ -37735,8 +33328,6 @@ msgid "" "A broken skitterbot. Much less threatening now that it lies limp on solid " "ground. Could be gutted for parts." msgstr "" -" Skitterbot quebrado Um skitterbot quebrado. Muito menos ameaçador " -"agoraquefica mole em terra firme. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken lab defense bot" @@ -37763,8 +33354,6 @@ msgid "" "A broken police bot. Much less threatening now that it's quiet and still. " "Could be gutted for parts." msgstr "" -" bot quebrado da polícia Um bot policial quebrado. Muito menosameaçadoragora" -" que está quieto e parado. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken nurse bot" @@ -37791,9 +33380,6 @@ msgid "" "A broken riot control bot. Much less threatening now that it's out of gas." " Could be gutted for parts." msgstr "" -" bot de controle de distúrbios quebrado bot de controle " -"dedistúrbiosquebrado. Muito menos ameaçador agora que está sem gasolina. " -"Poderia serestripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken prototype robot" @@ -37820,8 +33406,6 @@ msgid "" "A broken miner bot. Much less threatening now that it's no longer capable " "of drilling anything. Could be gutted for parts." msgstr "" -" bot mineiro quebrado botA mineiro quebrado. Muito menos ameaçador " -"agoraquenão é mais capaz de perfurar nada. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken tribot" @@ -37835,9 +33419,6 @@ msgid "" "A broken tribot. Now that its legs lie broken and immobile, the world seems" " a little less threatening. Could be gutted for parts." msgstr "" -" tribot quebrado Um tribo quebrado. Agora que suas pernas estão " -"quebradaseimóveis, o mundo parece um pouco menos ameaçador. Poderia ser " -"estripadoporpartes." #: lang/json/GENERIC_from_json.py msgid "broken tank drone" @@ -37852,9 +33433,6 @@ msgid "" "inoperative, possibly due to the sheer size and mass. Could be gutted for " "parts." msgstr "" -" drone tanque quebrado Um tanque quebrado drone. Ainda pareceintimidante, " -"apesar de estar permanentemente inoperante, possivelmentedevido ao tamanhoe " -"massa. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken riot dispatch" @@ -37897,8 +33475,6 @@ msgid "" "A broken manhack. Much less threatening now that it lies limp on solid " "ground. Could be gutted for parts." msgstr "" -" manhack quebrado Um manhack quebrado. Muito menos ameaçador agora " -"queficamole em terra firme. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken grenade hack" @@ -37912,9 +33488,6 @@ msgid "" "A broken grenade hack. Much less threatening now that it lies quiet on " "solid ground. Could be gutted for parts." msgstr "" -" granada quebrada hackA um granada quebrada hack. Muito menos " -"ameaçadoragoraque fica quieto em terra firme. Poderia ser estripado por " -"partes." #: lang/json/GENERIC_from_json.py msgid "broken mininuke hack" @@ -37928,8 +33501,6 @@ msgid "" "A broken magenta hack. Just looking at the wreck makes you shiver. Could " "be gutted for parts." msgstr "" -" hack quebrado mininuke hackA magenta quebrado. Só de olhar para " -"onaufrágiofaz você tremer. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken tear gas hack" @@ -37943,9 +33514,6 @@ msgid "" "A broken tear gas hack. Much less threatening now that it lies quiet on " "solid ground. Could be gutted for parts." msgstr "" -" gás lacrimogêneo quebrado hack Um gás lacrimogêneo quebrado. " -"Muitomenosameaçador agora que fica quieto em terra firme. Poderia ser " -"estripadoporpartes." #: lang/json/GENERIC_from_json.py msgid "broken EMP hack" @@ -37959,8 +33527,6 @@ msgid "" "A broken EMP hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "" -" quebrado EMP hackA quebrado EMP hack. Muito menos ameaçador agora " -"queficaquieto em terra firme. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken flashbang hack" @@ -37974,8 +33540,6 @@ msgid "" "A broken flashbang hack. Much less threatening now that it lies quiet on " "solid ground. Could be gutted for parts." msgstr "" -" quebrado flashbang hackA quebrado flashbang hack. Muito menosameaçadoragora" -" que fica quieto em terra firme. Poderia ser estripado porpartes." #: lang/json/GENERIC_from_json.py msgid "broken C-4 hack" @@ -37989,8 +33553,6 @@ msgid "" "A broken C-4 hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "" -" hack C-4 quebradoUm hack C-4 quebrado. Muito menos ameaçador agora " -"queficaquieto em terra firme. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "processor board" @@ -38002,8 +33564,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A central processor unit, useful in advanced electronics crafting." msgstr "" -" placa de processadorUma unidade de processador central, útil naelaboraçãode" -" eletrônicos avançados." #: lang/json/GENERIC_from_json.py msgid "RAM" @@ -38014,7 +33574,7 @@ msgstr[1] "" #. ~ Description for RAM #: lang/json/GENERIC_from_json.py msgid "A stick of memory. Useful in advanced electronics crafting." -msgstr "RAMA stick de memória. Útil na elaboração de eletrônicos avançados." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "power converter" @@ -38026,8 +33586,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A power supply unit. Useful in lots of electronics recipes." msgstr "" -" conversor de potênciaUma fonte de alimentação. Útil em muitas " -"receitasdeeletrônica." #: lang/json/GENERIC_from_json.py msgid "amplifier circuit" @@ -38041,8 +33599,6 @@ msgid "" "A circuit designed to amplify the strength of a signal. Useful in lots of " "electronics recipes." msgstr "" -" Circuito amplificadorUm circuito projetado para amplificar a força " -"deumsinal. Útil em muitas receitas de eletrônica." #: lang/json/GENERIC_from_json.py msgid "transponder circuit" @@ -38056,8 +33612,6 @@ msgid "" "A circuit designed to repeat a signal. Useful for crafting communications " "equipment." msgstr "" -" Circuito transponder Um circuito projetado para repetir um sinal. Útilparaa" -" elaboração de equipamentos de comunicação." #: lang/json/GENERIC_from_json.py msgid "signal receiver" @@ -38071,8 +33625,6 @@ msgid "" "A module designed to receive many forms of signals. Useful for crafting " "communications equipment." msgstr "" -" signal receiverUm módulo projetado para receber muitas formas desinais.Útil" -" para a elaboração de equipamentos de comunicação." #: lang/json/GENERIC_from_json.py msgid "small LCD screen" @@ -38086,8 +33638,6 @@ msgid "" "A small backlit screen, used for displaying images. Useful in some " "electronics recipes." msgstr "" -" pequena tela de LCDUma pequena tela retroiluminada, usada " -"paraexibirimagens. Útil em algumas receitas de eletrônica." #: lang/json/GENERIC_from_json.py msgid "high-quality lens" @@ -38101,8 +33651,6 @@ msgid "" "A high-quality lens, useful for focusing or diffusing light. Might be " "useful for starting a fire." msgstr "" -" lente de alta qualidadeUma lente de alta qualidade, útil para " -"focalizaroudifundir a luz. Pode ser útil para iniciar um incêndio." #: lang/json/GENERIC_from_json.py msgid "small high-quality lens" @@ -38116,8 +33664,6 @@ msgid "" "A small high-quality lens, useful for focusing or diffusing light. Might be" " useful for crafting." msgstr "" -" lentes de alta qualidade pequenasUma lente pequena de alta " -"qualidade,útilpara focalizar ou difundir a luz. Pode ser útil para criar." #: lang/json/GENERIC_from_json.py msgid "pair of tinted glass" @@ -38130,8 +33676,6 @@ msgstr[1] "" msgid "" "A pair of small darkened glass, like the one that sunglasses are made of." msgstr "" -" par de vidros escurecidos Um par de pequenos vidros escurecidos, " -"comoaquelede que os óculos de sol são feitos." #: lang/json/GENERIC_from_json.py msgid "burnt out bionic" @@ -38146,9 +33690,6 @@ msgid "" " This object has been destroyed by excessive electric current and is now " "useless." msgstr "" -" queimado bionicOnce um valioso implante biônico, ele não se manteve " -"bemsobuso repetido. Este objeto foi destruído por corrente elétrica " -"excessivaeagora é inútil." #: lang/json/GENERIC_from_json.py msgid "nanofabricator template" @@ -38163,10 +33704,6 @@ msgid "" "glass holds, inscribed as a miniature pattern, the instructions required to " "create an item through a nanofabricator." msgstr "" -" nanofabricator template Um sistema de armazenamento óptico deúltimageração." -" Esta pequena lousa de vidro transparente contém, inscritacomo umpadrão em " -"miniatura, as instruções necessárias para criar um itematravésde um " -"nanofabricador." #: lang/json/GENERIC_from_json.py msgid "antenna" @@ -38178,8 +33715,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A simple thin aluminum shaft. Useful in lots of electronics recipes." msgstr "" -" antenaUm simples eixo de alumínio fino. Útil em muitas " -"receitasdeeletrônica." #: lang/json/GENERIC_from_json.py msgid "micro motor" @@ -38193,8 +33728,6 @@ msgid "" "A very small electric motor like those used in RC cars. Useful in lots of " "electronics recipes." msgstr "" -" micro motor Um motor elétrico muito pequeno, como os usados em carros " -"deRC.Útil em muitas receitas de eletrônica." #: lang/json/GENERIC_from_json.py msgid "circuit board" @@ -38208,8 +33741,6 @@ msgid "" "A printed card that supports and electrically connects electronic components" " on a non-conductive substrate." msgstr "" -" placa de circuitoUm cartão impresso que suporta e conecta " -"eletricamenteoscomponentes eletrônicos em um substrato não condutor." #: lang/json/GENERIC_from_json.py msgid "electronic scrap" @@ -38223,8 +33754,6 @@ msgid "" "A random collection of resistors, capacitors, and diodes which have been " "stripped from printed circuits." msgstr "" -" scrapA eletrônica coleção aleatória de resistores, capacitores e " -"diodosqueforam retirados de circuitos impressos." #: lang/json/GENERIC_from_json.py msgid "radio repeater mod" @@ -38237,8 +33766,6 @@ msgstr[1] "" msgid "" "A system designed to convert a radio station into an autonomous repeater." msgstr "" -" sistema de repetidor de rádio modA projetado para converter uma " -"estaçãoderádio em um repetidor autônomo." #: lang/json/GENERIC_from_json.py msgid "desk fan" @@ -38250,7 +33777,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small fan, used to propel air around a room." msgstr "" -" desk fanA pequeno ventilador, usado para propulsar o ar ao redor deumasala." #: lang/json/GENERIC_from_json.py msgid "ceramic armor plate" @@ -38264,8 +33790,6 @@ msgid "" "A ceramic armor plate, specifically engineered for use in a bullet resistant" " vest." msgstr "" -" placa de armadura de cerâmicaUma placa de armadura de cerâmica, " -"projetadaespecificamente para uso em colete resistente a balas." #: lang/json/GENERIC_from_json.py msgid "fish bowl" @@ -38279,8 +33803,6 @@ msgid "" "A filled fish bowl, the tag says 'to Ed' and the fish's name, 'Hoss'. The " "fish appears to have tiny antlers." msgstr "" -" Uma tigela de peixe cheia, a etiqueta diz\"para Ed\" e o " -"nomedopeixe,\"Hoss\". O peixe parece ter chifres minúsculos." #: lang/json/GENERIC_from_json.py msgid "blood soaked rag" @@ -38293,8 +33815,6 @@ msgstr[1] "" msgid "" "A large rag, drenched in blood. It could be cleaned with boiling water." msgstr "" -" Um pano grande encharcado de sangue, encharcado de sangue. Pode serlimpocom" -" água a ferver." #: lang/json/GENERIC_from_json.py msgid "pipe cleaner" @@ -38319,7 +33839,7 @@ msgstr[1] "" #. ~ Description for clock #: lang/json/GENERIC_from_json.py msgid "A small mechanical clock, it's stopped at 10:10." -msgstr "clockA pequeno relógio mecânico, parou às 10:10." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "clockworks" @@ -38331,7 +33851,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small assortment of gears and other clockwork gubbins." msgstr "" -" clockworksUma pequena variedade de engrenagens e outros gubbins relógio." #: lang/json/GENERIC_from_json.py msgid "Home Frontier Starter Pack" @@ -38348,12 +33867,6 @@ msgid "" "Owner's Handbook are included. The perfect investment for a new family " "starting out! Disassemble to unpack and enjoy." msgstr "" -" Home Frontier Starter PackEste pacote não tão pequeno de alegria " -"contémasprincipais ofertas da Leadworks, LLC: o autorevolver Enforcer " -"(comestojo)e o rifle Long Ranger. Kit de manutenção, baterias para o mesmo " -"euma cópiagratuita do manual do proprietário da arma estão incluídos. " -"Oinvestimentoperfeito para uma nova família começando! Desmonte " -"paradesembalar eaproveite." #: lang/json/GENERIC_from_json.py msgid "Mosin-Nagant classic conversion kit" @@ -38368,11 +33881,6 @@ msgid "" "actions. With gunsmithing tools, some skill, and a few hours, you could " "take a 'tacti-cool' rifle and convert it to the classic Russian design." msgstr "" -" Kit de conversão clássico Mosin-Nagant Um belo estoque de madeira " -"ehardwareconstruído para suportar ações comuns de Mosin-Nagant. " -"Comferramentas dearmeiro, alguma habilidade e algumas horas, você pode " -"pegarum rifle'tacti-cool' e convertê-lo para o clássico design " -"russo." #: lang/json/GENERIC_from_json.py msgid "Mosin-Nagant EBR conversion kit" @@ -38387,10 +33895,6 @@ msgid "" "actions. With gunsmithing tools, some skill, and a few hours, you could " "give the classic Russian design modern furniture and customization capacity." msgstr "" -" Kit de conversão Mosin-Nagant EBR Um estoque sintético e " -"hardwareprojetadopara acomodar ações comuns de Mosin-Nagant. Com ferramentas" -" dearmeiro, alguma habilidade e algumas horas, você poderia dar ao " -"designmoderno russomobiliário moderno e capacidade de personalização." #: lang/json/GENERIC_from_json.py msgid "L523-CAR conversion" @@ -38406,10 +33910,6 @@ msgid "" "already-configured L523, you'll need to disassemble it to the base platform," " then assemble with the parts you prefer." msgstr "" -" Conversão L523-CARTodas as peças necessárias para converter um L523 " -"paraaconfiguração Carbine, a escolha da Leadworks LLC para o trabalho " -"deperto. Para reconfigurar um L523 já configurado, você precisará desmontá- " -"lonaplataforma de base e depois montá-lo com as peças de sua preferência." #: lang/json/GENERIC_from_json.py msgid "L523-MBR conversion" @@ -38425,10 +33925,6 @@ msgid "" "configured L523, you'll need to disassemble it to the base platform, then " "assemble with the parts you prefer." msgstr "" -" Conversão L523-MBRTodas as partes necessárias para converter um L523 " -"emumRifle de Combate Principal, uma arma balanceada para todas assituações. " -"Para reconfigurar um L523 já configurado, você precisarádesmontá-lo " -"naplataforma de base e depois montá-lo com as peças de suapreferência." #: lang/json/GENERIC_from_json.py msgid "L523-DSR conversion" @@ -38444,10 +33940,6 @@ msgid "" "configured L523, you'll need to disassemble it to the base platform, then " "assemble with the parts you prefer." msgstr "" -" Conversão L523-DSRTodas as peças necessárias para converter um L523 " -"emumRifle Shootist Designado, adequado para trabalhos de longo alcance. " -"Parareconfigurar um L523 já configurado, você precisará desmontá- " -"lonaplataforma de base e depois montá-lo com as peças de sua preferência." #: lang/json/GENERIC_from_json.py msgid "L523-LMG conversion" @@ -38462,10 +33954,6 @@ msgid "" " to reconfigure an already-configured L523, you'll need to disassemble it to" " the base platform, then assemble with the parts you prefer." msgstr "" -" Conversão de L523-LMGTodas as peças necessárias para converter um L523emuma" -" metralhadora leve. Para reconfigurar um L523 já configurado, vocêprecisará " -"desmontá-lo na plataforma de base e depois montá-lo com aspeçasde sua " -"preferência." #: lang/json/GENERIC_from_json.py msgid "SD-Memory card" @@ -38477,8 +33965,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A memory card, used. Might be worth a look." msgstr "" -" Cartão de memória SDUm cartão de memória usado. Pode valer a pena " -"darumaolhada." #: lang/json/GENERIC_from_json.py msgid "SD-Memory card (clean)" @@ -38492,8 +33978,6 @@ msgid "" "This memory card is either unused or has been wiped clean. You could use it" " to store your data, though!" msgstr "" -" Cartão de memória SD (limpo) Este cartão de memória não está sendo " -"usadooufoi limpo. Você poderia usá-lo para armazenar seus dados!" #: lang/json/GENERIC_from_json.py msgid "SD-Memory card (encrypted)" @@ -38507,9 +33991,6 @@ msgid "" "This memory card appears to have the firmware encryption set. Hopefully it " "contains something worth encrypting." msgstr "" -" Cartão de memória SD (criptografado) Este cartão de memória parece " -"teracriptografia de firmware definida. Espero que contenha algo que " -"valhaapena criptografar." #: lang/json/GENERIC_from_json.py msgid "Science SD-Memory card" @@ -38523,9 +34004,6 @@ msgid "" "This memory card appears to be related to 'XEDRA', and is certainly " "encrypted. Looks * Interesting *, though..." msgstr "" -" Science SD-Memory cardEste cartão de memória parece estar " -"relacionadoao'XEDRA' e é certamente criptografado. Parece * " -"Interessante*,embora ..." #: lang/json/GENERIC_from_json.py msgid "hand mirror" @@ -38536,7 +34014,7 @@ msgstr[1] "" #. ~ Description for hand mirror #: lang/json/GENERIC_from_json.py msgid "A small hand mirror." -msgstr "espelho de mão Um pequeno espelho de mão." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/terrain_from_json.py msgid "manhole cover" @@ -38550,8 +34028,6 @@ msgid "" "A heavy iron disc that typically covers a ladder into the sewers. Lifting " "it from the manhole is impossible without a crowbar." msgstr "" -" tampa de bueiroUm disco de ferro pesado que normalmente cobre uma " -"escadanosesgotos. Levantá-lo do bueiro é impossível sem um pé de cabra." #: lang/json/GENERIC_from_json.py msgid "pine bough" @@ -38565,8 +34041,6 @@ msgid "" "A branch from a pine tree, oozing sticky sap and bristling with prickly " "needles." msgstr "" -" galho de pinheiroA ramo de um pinheiro, escorrendo seiva pegajosa " -"eeriçadocom espinhosas agulhas." #: lang/json/GENERIC_from_json.py msgid "pinecone" @@ -38580,8 +34054,6 @@ msgid "" "A spiny pod from a pine tree. Dry seeds rattle around inside when you shake" " it." msgstr "" -" pineconeUm spiny pod de um pinheiro. Sementes secas chocalham " -"pordentroquando você a agita." #: lang/json/GENERIC_from_json.py msgid "poppy flower" @@ -38592,7 +34064,7 @@ msgstr[1] "" #. ~ Description for poppy flower #: lang/json/GENERIC_from_json.py msgid "A poppy stalk with some petals." -msgstr "flor de papoila Um talo de papoula com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "poppy bud" @@ -38606,8 +34078,6 @@ msgid "" "A poppy bud. Contains some substances commonly produced by a mutated poppy " "flower." msgstr "" -" papoila papoula papoula broto. Contém algumas " -"substânciascomumenteproduzidas por uma flor de papoula mutada." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "bluebell" @@ -38618,7 +34088,7 @@ msgstr[1] "" #. ~ Description for bluebell #: lang/json/GENERIC_from_json.py msgid "A bluebell stalk with some petals." -msgstr "bluebellA haste do bluebell com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "bluebell bud" @@ -38632,13 +34102,11 @@ msgid "" "A bluebell bud. Contains some substances commonly produced by a bluebell " "flower." msgstr "" -" bluebell budA botão de bluebell. Contém algumas " -"substânciascomumenteproduzidas por uma flor bluebell." #. ~ Description for dahlia #: lang/json/GENERIC_from_json.py msgid "A dahlia stalk with some petals." -msgstr "dahlia Um talo da dália com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "dahlia bud" @@ -38650,13 +34118,11 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A dahlia bud. Contains some substances commonly produced by a dahlia." msgstr "" -" dália budA dália bud. Contém algumas substâncias comumente produzidasporuma" -" dália." #. ~ Description for rose #: lang/json/GENERIC_from_json.py msgid "A rose stalk with some petals." -msgstr "Um talo de rosa com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "rose bud" @@ -38669,8 +34135,6 @@ msgstr[1] "" msgid "" "A rose bud. Contains some substances commonly produced by a rose flower." msgstr "" -" rose budA botão de rosa. Contém algumas substâncias comumente " -"produzidasporuma flor rosa." #: lang/json/GENERIC_from_json.py msgid "hydrangea" @@ -38681,7 +34145,7 @@ msgstr[1] "" #. ~ Description for hydrangea #: lang/json/GENERIC_from_json.py msgid "A hydrangea stalk with some petals." -msgstr "hydrangeaA Haste de hortênsia com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "hydrangea bud" @@ -38695,8 +34159,6 @@ msgid "" "A hydrangea bud. Contains some substances commonly produced by a hydrangea " "flower." msgstr "" -" hortênsia budA hortênsia broto. Contém algumas " -"substânciascomumenteproduzidas por uma flor de hortênsia." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "tulip" @@ -38707,7 +34169,7 @@ msgstr[1] "" #. ~ Description for tulip #: lang/json/GENERIC_from_json.py msgid "A tulip stalk with some petals." -msgstr "tulipa Uma haste de tulipa com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "tulip bud" @@ -38720,8 +34182,6 @@ msgstr[1] "" msgid "" "A tulip bud. Contains some substances commonly produced by a tulip flower." msgstr "" -" tulip budA bud tulipa. Contém algumas substâncias comumente " -"produzidasporuma flor de tulipa." #: lang/json/GENERIC_from_json.py msgid "spurge" @@ -38732,7 +34192,7 @@ msgstr[1] "" #. ~ Description for spurge #: lang/json/GENERIC_from_json.py msgid "A spurge stalk with some petals." -msgstr "spurgeA sturge stalk com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "spurge bud" @@ -38746,8 +34206,6 @@ msgid "" "A spurge bud. Contains some substances commonly produced by a spurge " "flower." msgstr "" -" spurge budA spurge bud. Contém algumas substâncias comumente " -"produzidasporuma flor de erva-doce." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "black eyed susan" @@ -38759,7 +34217,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A black eyed susan stalk with some petals." msgstr "" -" Haste de susan de olhos pretos de susan de olhos pretos com algumaspétalas." #: lang/json/GENERIC_from_json.py msgid "black eyed susan bud" @@ -38773,9 +34230,6 @@ msgid "" "A black eyed susan bud. Contains some substances commonly produced by a " "black eyed susan flower." msgstr "" -" black eyed susan budA broto de susan de olhos pretos. " -"Contémalgumassubstâncias comumente produzidas por uma flor de susan de " -"olhospretos." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "lily" @@ -38786,7 +34240,7 @@ msgstr[1] "" #. ~ Description for lily #: lang/json/GENERIC_from_json.py msgid "A lily stalk with some petals." -msgstr "lilyUma haste de lírio com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "lily bud" @@ -38799,8 +34253,6 @@ msgstr[1] "" msgid "" "A lily bud. Contains some substances commonly produced by a lily flower." msgstr "" -" lírio budA lírio bud. Contém algumas substâncias comumente produzidasporuma" -" flor de lírio." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "lotus" @@ -38811,7 +34263,7 @@ msgstr[1] "" #. ~ Description for lotus #: lang/json/GENERIC_from_json.py msgid "A lotus stalk with some petals." -msgstr "lotusA haste de lótus com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "lotus bud" @@ -38824,8 +34276,6 @@ msgstr[1] "" msgid "" "A lotus bud. Contains some substances commonly produced by a lotus flower." msgstr "" -" bud de lótus Bud de lótus. Contém algumas substâncias " -"comumenteproduzidaspor uma flor de lótus." #: lang/json/GENERIC_from_json.py msgid "lilac" @@ -38836,7 +34286,7 @@ msgstr[1] "" #. ~ Description for lilac #: lang/json/GENERIC_from_json.py msgid "A lilac stalk with some petals." -msgstr "lilacA haste lilás com algumas pétalas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "lilac bud" @@ -38849,8 +34299,6 @@ msgstr[1] "" msgid "" "A lilac bud. Contains some substances commonly produced by a lilac flower." msgstr "" -" lilás budA lilás bud. Contém algumas substâncias comumente produzidasporuma" -" flor lilás." #. ~ Description for sunflower #: lang/json/GENERIC_from_json.py @@ -38858,8 +34306,6 @@ msgid "" "The top of a sunflower, with yellow pedals and some seeds that have yet to " "be eaten by animals." msgstr "" -" O topo de um girassol, com pedais amarelos e algumas sementes que " -"aindanãoforam comidas pelos animais." #: lang/json/GENERIC_from_json.py msgid "handful of chamomile flowers" @@ -38883,8 +34329,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A fresh piece of clay. Useful for some crafting recipes." msgstr "" -" pedaço de argilaUm pedaço de barro fresco. Útil para algumas " -"receitasdeartesanato." #: lang/json/GENERIC_from_json.py msgid "brick" @@ -38896,8 +34340,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A fire hardened building block used in masonry construction." msgstr "" -" tijoloUm bloco de construção endurecido por fogo usado na " -"construçãodealvenaria." #: lang/json/GENERIC_from_json.py msgid "mortar" @@ -38908,7 +34350,7 @@ msgstr[1] "" #. ~ Description for mortar #: lang/json/GENERIC_from_json.py msgid "Some mortar, ready to be used in building projects." -msgstr "Argamassa, pronta para ser usada em projetos de construção." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "soft adobe brick" @@ -38969,8 +34411,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A sheet of tannin-rich bark from a tree, useful for tanning leather" msgstr "" -" tanbarkUma folha de casca rica em tanino de uma árvore, útil " -"paracurtircouro" #: lang/json/GENERIC_from_json.py msgid "birchbark" @@ -38982,8 +34422,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A sheet of tough, water-resistant bark taken from a birch tree." msgstr "" -" birchbark Uma folha de casca resistente e resistente à água retirada " -"deumaárvore de vidoeiro." #: lang/json/GENERIC_from_json.py msgid "willowbark" @@ -38997,8 +34435,6 @@ msgid "" "A sheet of bark taken from a willow tree. Used in the production of " "aspirin." msgstr "" -" willowbark Uma folha de casca retirada de um salgueiro. Usado na " -"produçãodeaspirina." #: lang/json/GENERIC_from_json.py msgid "diamond" @@ -39009,7 +34445,7 @@ msgstr[1] "" #. ~ Description for diamond #: lang/json/GENERIC_from_json.py msgid "A sparkling diamond." -msgstr "diamante Um diamante cintilante." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "cured hide" @@ -39024,9 +34460,6 @@ msgid "" "and treated to prevent decay. It still requires tanning to become usable " "leather." msgstr "" -" pele curada enrolada em pele animal que foi raspada de cabelo " -"ecarneestranhos e tratada para prevenir a cárie. Ainda requer " -"bronzeamentoparase tornar couro utilizável." #: lang/json/GENERIC_from_json.py msgid "tanned hide" @@ -39040,8 +34473,6 @@ msgid "" "A folded sheet of leather made from carefully tanned animal hide. Can be " "cut up or used as is." msgstr "" -" couro curtidoUma folha dobrada de couro feita de couro " -"animalcuidadosamentecurtido. Pode ser cortado ou usado como está." #: lang/json/GENERIC_from_json.py msgid "cured pelt" @@ -39056,9 +34487,6 @@ msgid "" "and treated to prevent decay. It still requires tanning to become usable " "fur." msgstr "" -" Peles curadas enroladas em peles de animais que foram raspadas de " -"pêlosecarne estranhos e tratadas para prevenir a cárie. Ainda " -"requerbronzeamentopara se tornar pele utilizável." #: lang/json/GENERIC_from_json.py msgid "tanned pelt" @@ -39072,9 +34500,6 @@ 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." msgstr "" -" pelagem curtidaFolha de couro dobrada feita de couro " -"animalcuidadosamentecurtido, com a pele ainda intacta. Pode ser cortado ou " -"usadocomo está." #: lang/json/GENERIC_from_json.py msgid "pile of straw" @@ -39088,8 +34513,6 @@ msgid "" "A pile of dry grass. Can be used to craft a straw bed if there is nothing " "else to sleep on." msgstr "" -" pilha de palha Uma pilha de capim seco. Pode ser usado para fazer umacamade" -" palha se não houver mais nada para dormir." #: lang/json/GENERIC_from_json.py msgid "straw doll" @@ -39100,7 +34523,7 @@ msgstr[1] "" #. ~ Description for straw doll #: lang/json/GENERIC_from_json.py msgid "Old straw doll. Represents a woman in a dress." -msgstr "boneco de palha Representa uma mulher em um vestido." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "pillow" @@ -39111,7 +34534,7 @@ msgstr[1] "" #. ~ Description for pillow #: lang/json/GENERIC_from_json.py msgid "A pillow to rest your head on when sleeping." -msgstr "pillowA travesseiro para descansar a cabeça ao dormir." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "body pillow" @@ -39125,8 +34548,6 @@ msgid "" "A big, body-sized pillow with a print of an anime character on the front and" " their scantily clad version on the back." msgstr "" -" pillow Um travesseiro grande, de tamanho corporal, com uma impressão " -"deumpersonagem de anime na frente e sua versão seminua nas costas." #: lang/json/GENERIC_from_json.py msgid "down-filled pillow" @@ -39138,8 +34559,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A fluffy pillow to rest your head on when sleeping." msgstr "" -" travesseiro cheio de penasUm travesseiro fofo para descansar a " -"cabeçaquandoestiver dormindo." #: lang/json/GENERIC_from_json.py msgid "teddy bear" @@ -39153,8 +34572,6 @@ msgid "" "An old and half rotten teddy bear. Looks like this one commemorates the " "grave of the child who once owned it." msgstr "" -" ursinho de pelúciaUm urso de pelúcia velho e meio podre. Parece " -"queestecomemora o túmulo da criança que o possuiu." #: lang/json/GENERIC_from_json.py msgid "money bundle" @@ -39166,8 +34583,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A bundle holding many 20 dollar bills, pretty useless now though." msgstr "" -" pacote de dinheiroUm pacote contendo muitas notas de 20 dólares, " -"bastanteinútil agora embora." #. ~ Use action menu_text for cigar. #. ~ Use action menu_text for cigarette. @@ -39191,7 +34606,7 @@ msgstr "" #. ~ Description for cigar #: lang/json/GENERIC_from_json.py msgid "The smoke billowing from this cigar has a sweet, musty odor." -msgstr "A fumaça que sai deste charuto tem um odor doce e bolorento." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "cigar butt" @@ -39202,7 +34617,7 @@ msgstr[1] "" #. ~ Description for cigar butt #: lang/json/GENERIC_from_json.py msgid "A true gentleman always finishes his cigars." -msgstr "charuto butt Um verdadeiro cavalheiro sempre termina seus charutos." +msgstr "" #. ~ Use action msg for cigarette. #: lang/json/GENERIC_from_json.py @@ -39215,8 +34630,6 @@ msgid "" "Smoke swirls from the lit end of this cigarette, filling the air with the " "thrilling smell of burning chemicals." msgstr "" -" Fumaça redemoinhos da extremidade iluminada deste cigarro, enchendo o " -"arcomo cheiro emocionante de produtos químicos em chamas." #: lang/json/GENERIC_from_json.py msgid "cigarette butt" @@ -39230,8 +34643,6 @@ 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..." msgstr "" -" O que antes era um tubo maravilhosamente viciante de folhas secas detabacoé agora apenas um pedaço fedorento de lixo. Que tragédia! \n" -" O tabaco restante em alguns deles provavelmente poderia ser usado para enrolaroutrocigarro. Se você está disposto a ir tão longe ...\n" #. ~ Use action msg for joint. #: lang/json/GENERIC_from_json.py @@ -39244,8 +34655,6 @@ msgid "" "The smell of skunk permeates the air as a thin trail of smoke floats off of " "this joint." msgstr "" -" O cheiro de gambá permeia o ar quando um fino rastro de fumaça " -"flutuadessaarticulação." #: lang/json/GENERIC_from_json.py msgid "joint roach" @@ -39259,9 +34668,6 @@ 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 "" -" Roca comum A ponta defumada de um baseado, um lembrete de " -"algunsbonsmomentos. Muito lixo agora. Que chatice, cara. \" " -"NAlgunsdelesprovavelmente poderiam ser usados para rolar outra junta." #: lang/json/GENERIC_from_json.py msgid "cannabis plant" @@ -39276,10 +34682,6 @@ msgid "" "traditionally cultivated for its fiber, oil, for medicinal purposes, and for" " use as a recreational drug. It requires further processing to be useful." msgstr "" -" Cannabis plant Uma planta psicoativa originária da Ásia Central " -"edosubcontinente indiano tradicionalmente cultivada por sua fibra, óleo, " -"parafins medicinais e para uso como droga recreativa. " -"Requerprocessamentoadicional para ser útil." #: lang/json/GENERIC_from_json.py msgid "raw tobacco" @@ -39293,8 +34695,6 @@ msgid "" "Various parts of tobacco plant, full of nicotine. They need to be dried to " "become smokable." msgstr "" -" tabaco cruVárias partes da planta do tabaco, cheias de nicotina. " -"Elesprecisam ser secos para se tornarem fumaráveis." #: lang/json/GENERIC_from_json.py msgid "desiccated corpse" @@ -39322,9 +34722,6 @@ msgid "" "protocol for using it; this could grant access at one control panel, if you " "can find one." msgstr "" -" cartão de identificação da ciênciaEste cartão de identificação pertenceuaum" -" cientista. O verso descreve o protocolo para usá-lo; Isso " -"podeconcederacesso a um painel de controle, se você puder encontrar um." #: lang/json/GENERIC_from_json.py msgid "military ID card" @@ -39339,9 +34736,6 @@ msgid "" "describes protocol for using it; this could grant access at one control " "panel, if you can find one." msgstr "" -" cartão de identificação militarEste cartão de identificação pertenceu " -"aumoficial militar. O verso descreve o protocolo para usá-lo; Isso pode " -"conceder acesso a um painel de controle, se você puder encontrar um." #: lang/json/GENERIC_from_json.py msgid "industrial ID card" @@ -39369,8 +34763,6 @@ msgid "" "A moderately sized sheet of neoprene. Can be used to craft light and " "stretchable clothing." msgstr "" -" folha de neoprene Uma folha de neoprene de tamanho moderado. Pode " -"serusadopara criar roupas leves e elásticas." #: lang/json/GENERIC_from_json.py msgid "TX-5LR Laser Cannon" @@ -39384,9 +34776,6 @@ 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 "" -" Canhão Laser TX-5LR Um canhão a laser retirado do cano de uma " -"torrelaserCerberus TX-5LR. Inutilizável como arma por si só, sem " -"aspeçasnecessárias." #: lang/json/GENERIC_from_json.py msgid "light bulb" @@ -39398,8 +34787,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A rather outdated light bulb used in all sorts of light equipment." msgstr "" -" lâmpada de luzUma lâmpada desatualizada usada em todos os " -"tiposdeequipamentos de iluminação." #: lang/json/GENERIC_from_json.py msgid "clay flower pot" @@ -39411,7 +34798,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A nice looking clay pot used for planting." msgstr "" -"vaso de flores de argila Pote de barro bom olhar usado para o plantio." #: lang/json/GENERIC_from_json.py msgid "plastic flower pot" @@ -39422,7 +34808,7 @@ msgstr[1] "" #. ~ Description for plastic flower pot #: lang/json/GENERIC_from_json.py msgid "A cheap plastic pot used for planting." -msgstr "plastic flower potA pote de plástico barato usado para o plantio." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "fluid preserved brain" @@ -39435,8 +34821,6 @@ msgstr[1] "" msgid "" "This 3L jar contains a human brain preserved in a formaldehyde solution." msgstr "" -" Cérebro conservado em fluídoEste frasco de 3L contém um " -"cérebrohumanopreservado em uma solução de formaldeído." #: lang/json/GENERIC_from_json.py msgid "evaporator coil" @@ -39448,8 +34832,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A set of long, snakelike tubes for evaporating refrigerant." msgstr "" -" evaporator coilUm conjunto de tubos longos, semelhantes a serpentes, " -"paraaevaporação do refrigerante." #: lang/json/GENERIC_from_json.py msgid "condensor coil" @@ -39461,8 +34843,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A compressor and a fan work together to cool down the refrigerant." msgstr "" -" Um compressor de condensador e um ventilador trabalham juntos pararesfriaro" -" refrigerante." #: lang/json/GENERIC_from_json.py msgid "refrigerant tank" @@ -39477,10 +34857,6 @@ msgid "" "as freezers. Hermetically sealed to prevent evaporation - cannot be opened " "without prior connection to compatible valve." msgstr "" -" tanque de refrigeranteUm pequeno tanque contendo algum tipo derefrigerante," -" frequentemente usado em dispositivos como freezers. Hermeticamente " -"seladopara evitar a evaporação - não pode ser aberto semconexão prévia à " -"válvulacompatível." #: lang/json/GENERIC_from_json.py msgid "hard steel plate" @@ -39494,8 +34870,6 @@ msgid "" "An armor plating made of a very thick steel, specifically engineered for use" " in a bullet resistant vest." msgstr "" -" chapa de aço duroUm chapeamento de blindagem feito de um aço muitoespesso, " -"projetado especificamente para uso em colete resistente a balas." #: lang/json/GENERIC_from_json.py msgid "steel plate" @@ -39509,8 +34883,6 @@ msgid "" "A steel armor plate, specifically engineered for use in a bullet resistant " "vest." msgstr "" -" chapa de açoUma placa blindada de aço, projetada especificamente para " -"usoemum colete resistente a balas." #: lang/json/GENERIC_from_json.py msgid "small lock and key" @@ -39600,11 +34972,6 @@ msgid "" "This gas damages and slows those who enter it, as well as obscuring vision " "and scent." msgstr "" -" granada de gás lacrimogêneoEsta é uma granada de caixinha cheia " -"deirritantenocivo. Use este item para puxar o pino e acender o fusível, " -"transformando-oem uma granada de gás lacrimogêneo ativa. Em cinco turnos, " -"começará aexpelir um gás altamente tóxico por algum tempo. Este gásdanifica " -"e retardaos que entram nele, além de obscurecer a visão e ocheiro." #: lang/json/GENERIC_from_json.py msgid "armed tear gas canister" @@ -39617,8 +34984,6 @@ msgstr[1] "" msgid "" "This smoke bomb has had its pin removed and is expelling highly toxic gas." msgstr "" -" vasilha de gás lacrimogêneo armadaEsta bomba de fumaça teve seupinoremovido" -" e está expelindo gás altamente tóxico." #: lang/json/GENERIC_from_json.py msgid "smoke bomb" @@ -39635,12 +35000,6 @@ msgid "" "black smoke. This smoke will slow those who enter it, as well as obscuring " "vision and scent." msgstr "" -" Esta é uma granada de caixinha cheia de uma variedade de " -"produtosquímicospirotécnicos. Use este item para puxar o pino e acender " -"ofusível, transformando-o em uma bomba de fumaça ativa. Cinco turnos " -"depoisque vocêfizer isso, ele começará a expelir uma fumaça preta grossa. " -"Essafumaça vairetardar quem entra nela, além de obscurecer a visão e o " -"cheiro." #: lang/json/GENERIC_from_json.py msgid "armed smoke bomb" @@ -39652,8 +35011,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "This smoke bomb has had its pin removed and is expelling thick smoke." msgstr "" -" bomba de fumaça armadaEsta bomba de fumaça teve seu pino removido " -"eestáexpelindo fumaça espessa." #: lang/json/GENERIC_from_json.py msgid "hatchet" @@ -39667,8 +35024,6 @@ msgid "" "A one-handed hatchet. Makes a great melee weapon, and is useful both for " "chopping things and for use as a hammer." msgstr "" -" hatchetA machadinha de uma mão. Faz uma grande arma corpo-a-corpo, e " -"éútiltanto para cortar coisas quanto para usar como um martelo." #. ~ Description for rock #: lang/json/GENERIC_from_json.py @@ -39676,8 +35031,6 @@ msgid "" "A rock the size of a baseball. Makes a decent melee weapon, and is also " "good for throwing at enemies." msgstr "" -" Uma rocha do tamanho de uma bola de beisebol. Faz uma arma decente etambémé" -" bom para atirar nos inimigos." #: lang/json/GENERIC_from_json.py msgid "sharp rock" @@ -39691,9 +35044,6 @@ msgid "" "A rock with sharp edges, that can be used as a butchering tool, if nothing " "else is available. Makes a passable melee weapon." msgstr "" -" pedra afiada Uma rocha com bordas afiadas, que pode ser usada " -"comoumaferramenta de corte, se nada mais estiver disponível. Faz uma arma " -"corpoacorpo passável." #: lang/json/GENERIC_from_json.py msgid "ceramic shard" @@ -39707,8 +35057,6 @@ msgid "" "A broken ceramic shard. It is heavy and has a somewhat sharp edge, but it's" " too irregular to cut properly." msgstr "" -" shard de cerâmicaUm fragmento de cerâmica quebrada. É pesado e tem " -"umabordaum pouco afiada, mas é muito irregular para cortar corretamente." #: lang/json/GENERIC_from_json.py msgid "broom" @@ -39721,8 +35069,6 @@ msgstr[1] "" msgid "" "A long-handled broom. Makes a terrible weapon unless you're chasing cats." msgstr "" -" vassoura de cabo longo. Faz uma arma terrível, a menos que " -"vocêestejaperseguindo gatos." #: lang/json/GENERIC_from_json.py msgid "nailboard" @@ -39736,9 +35082,6 @@ msgid "" "A long piece of wood with several nails through one end; essentially a " "simple mace. Makes an acceptable melee weapon." msgstr "" -" Um longo pedaço de madeira com vários pregos em " -"umaextremidade;essencialmente uma maça simples. Faz uma arma melee " -"aceitável." #: lang/json/GENERIC_from_json.py msgid "nail bat" @@ -39752,8 +35095,6 @@ msgid "" "A baseball bat with several nails driven through it, an excellent melee " "weapon." msgstr "" -" bastão de beisebol de unha batA com vários pregos dirigidos por ele, " -"umaexcelente arma corpo a corpo." #: lang/json/GENERIC_from_json.py msgid "barbed wire bat" @@ -39765,8 +35106,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A baseball bat wrapped with barbed wire. A brutal melee weapon." msgstr "" -" bastão de beisebol de arame farpado batA envolto com arame farpado. " -"Umabrutal arma branca." #: lang/json/GENERIC_from_json.py msgid "The 7-10 Split" @@ -39780,8 +35119,6 @@ msgid "" "An improvised weapon, made from two spikes attached to a bowling pin in the " "shape of a 'T'." msgstr "" -" O 7-10 Split Uma arma improvisada, feita a partir de duas pontas presas " -"aumpino de boliche na forma de um 'T'." #: lang/json/GENERIC_from_json.py msgid "pair of nail knuckles" @@ -39795,9 +35132,6 @@ msgid "" "A pair of knuckles consisting of two small squares of wood with several " "nails coming through them. Useful in nasty street fights." msgstr "" -" Par de juntas de unhas Um par de juntas consistindo de " -"doispequenosquadrados de madeira com vários pregos vindo através deles. Útil" -" emlutasde rua desagradáveis." #: lang/json/GENERIC_from_json.py msgid "bowling pin" @@ -39809,8 +35143,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A blunt bowling pin. Makes a decent melee weapon, if somewhat short." msgstr "" -" pino de boliche pino de boliche sem corte. Faz uma arma decente, se " -"forumpouco curta." #: lang/json/GENERIC_from_json.py msgid "burnt out Louisville Slaughterer" @@ -39825,10 +35157,6 @@ msgid "" "melee weapon but better be disassembled to recycle the baseball bat and some" " Nomex patches." msgstr "" -" queimado para fora Louisville SlaughtererUm bastão de madeiraresistente, " -"envolto em tecido Nomex resistente ao fogo. Faz uma boa armacorpo-a-corpo, " -"mas é melhor desmontar para reciclar o taco de beisebol ealgumas " -"placasNomex." #: lang/json/GENERIC_from_json.py msgid "bee sting" @@ -39840,8 +35168,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A six-inch stinger from a giant bee. Makes a mediocre melee weapon." msgstr "" -" picada de abelha Um ferrão de seis polegadas de uma abelha gigante. " -"Fazumaarma medíocre." #: lang/json/GENERIC_from_json.py msgid "fungal fighter sting" @@ -39853,8 +35179,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A short dart from a fungal fighter. Makes an poor melee weapon." msgstr "" -" picada de caça fúngicaUm dardo curto de um caça fúngico. Faz uma " -"pobrearmacorpo a corpo." #: lang/json/GENERIC_from_json.py msgid "wasp sting" @@ -39866,8 +35190,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A six-inch stinger from a giant wasp. Makes a poor melee weapon." msgstr "" -" picada de vespa Um ferrão de seis polegadas de uma vespa gigante. " -"Fazumapobre arma corpo a corpo." #: lang/json/GENERIC_from_json.py msgid "walking cane" @@ -39881,9 +35203,6 @@ 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." msgstr "" -" cana de passeioHabilitada ou não, você sempre anda em grandeestilo. " -"Consistindo de um capacete de metal e um corpo de madeira, isso fazumagrande" -" arma de contusão em uma pitada." #: lang/json/GENERIC_from_json.py msgid "pool cue" @@ -39897,9 +35216,6 @@ msgid "" "A hard-wood stick designed for hitting colorful balls around a felt table. " "Truly, the coolest of sports." msgstr "" -" taco de sinuca Um taco de madeira dura projetado para bater " -"bolascoloridasem torno de uma mesa de feltro. Verdadeiramente, o mais legal " -"dosesportes." #: lang/json/GENERIC_from_json.py msgid "bionic claws" @@ -39911,8 +35227,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "Short and sharp claws made from a high-tech metal." msgstr "" -" garras biônicas Garras curtas e afiadas feitas de um metal " -"dealtatecnologia." #: lang/json/GENERIC_from_json.py msgid "monomolecular blade" @@ -39926,8 +35240,6 @@ msgid "" "A foot-long blade made from high-tech alloy and edged with bonded " "nanocrystals." msgstr "" -" lâmina monomolecularUma lâmina de um metro de comprimento feita de " -"ligadealta tecnologia e afiada com nanocristais ligados." #: lang/json/GENERIC_from_json.py msgid "punch dagger" @@ -39941,8 +35253,6 @@ msgid "" "A short and sharp double edged dagger made to be gripped in the palm, with " "the blade protruding between the fingers." msgstr "" -" punhal de punhosUma adaga curta e afiada de dois gumes feita " -"paraseragarrada na palma da mão, com a lâmina projetando-se entre os dedos." #: lang/json/GENERIC_from_json.py msgid "tiger claws" @@ -39956,9 +35266,6 @@ 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." msgstr "" -" Também chamado de bagh nakha ou pata de ferro, esta é uma pequena " -"armadelâmina da Índia projetada para ser escondida sob e contra a palma da " -"mão." #: lang/json/GENERIC_from_json.py msgid "pair of steel knuckles" @@ -39973,9 +35280,6 @@ msgid "" "to protect the wearers knuckles. A good, quick weapon - but you have to get" " within punching range to use it." msgstr "" -" par de juntas de açoUma massa de sucata batida grosseiramente em forma, " -"comtrapos dobrados embaixo para proteger os dedos dos usuários. Uma armaboa " -"erápida - mas você tem que ficar dentro do alcance para usá-la." #: lang/json/GENERIC_from_json.py msgid "razorbar katar" @@ -39989,9 +35293,6 @@ 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 "" -" razorbar katarFive pedaços de vergalhões afiados a pontos cruéis " -"eamarradosa uma cinta presa no pulso e antebraço em ambos os braços. " -"Opróximo bubmelhor cuidado." #: lang/json/GENERIC_from_json.py msgid "cestus" @@ -40005,9 +35306,6 @@ msgid "" "A heavy metal guard that covers the fist and increases striking power, with " "stout padding underneath to protect the wearers hand." msgstr "" -" cestusUm protetor de metal pesado que cobre o punho e aumenta o " -"poderdeimpacto, com acolchoamento robusto por baixo para proteger a " -"mãodousuário." #: lang/json/GENERIC_from_json.py msgid "pair of brass knuckles" @@ -40022,9 +35320,6 @@ msgid "" "punches to do extra damage. A good, quick weapon - but you have to get " "within punching range to use it." msgstr "" -" par de juntas de latãoUma arma de metal feita de latão, projetada " -"paraserpresa na palma da mão e fazer com que os socos causem dano extra. " -"Umaarmaboa e rápida - mas você tem que ficar dentro do alcance para usá-la." #: lang/json/GENERIC_from_json.py msgid "hockey stick" @@ -40038,8 +35333,6 @@ msgid "" "A curved wooden stick with a wide and flat end. Commonly used by hockey " "players." msgstr "" -" stick de hóquei Uma vara de madeira curvada com uma extremidade " -"largaeplana. Comumente usado por jogadores de hóquei." #: lang/json/GENERIC_from_json.py msgid "golf club" @@ -40053,8 +35346,6 @@ msgid "" "A long handle with a big metal head, flat on one side, for driving golf " "balls. Fore!" msgstr "" -" clube de golfeUma alça longa com uma grande cabeça de metal, plana " -"deumlado, para a condução de bolas de golfe. Fore!" #: lang/json/GENERIC_from_json.py msgid "rock in a sock" @@ -40066,8 +35357,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A pair of nested socks filled with a stone. A true weapon of despair." msgstr "" -" rock in a sockUm par de meias aninhadas cheias de uma pedra. " -"Umaverdadeiraarma do desespero." #: lang/json/GENERIC_from_json.py msgid "glass shiv" @@ -40079,8 +35368,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A glass shard with wrapping at one end so it can be safely wielded." msgstr "" -" shiv de vidro Um fragmento de vidro com um invólucro em uma extremidade " -"para poder ser manuseado com segurança." #: lang/json/GENERIC_from_json.py msgid "sharpened toothbrush" @@ -40092,7 +35379,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A personal hygiene item turned into a shank." msgstr "" -" toothbrush sharpenedUm item de higiene pessoal se transformou em uma haste." #: lang/json/GENERIC_from_json.py msgid "grenade launcher buttstock" @@ -40106,9 +35392,6 @@ msgid "" "A collapsible buttstock designed for the M320 grenade launcher. When " "combined with this stock, the M320 can be used as a stand alone weapon" msgstr "" -" buttstock de um lançador de granadasUm buttstock desmontável projetadoparao" -" lançador de granadas M320. Quando combinado com este estoque, o M320podeser" -" usado como uma arma independente" #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -40122,8 +35405,6 @@ msgstr[1] "" msgid "" "This is a dull, cheaply made replica of a massive axe designed for warfare." msgstr "" -" machado de batalhaEsta é uma réplica maçante e barata de um " -"enormemachadoprojetado para a guerra." #: lang/json/GENERIC_from_json.py msgid "pitchfork" @@ -40137,8 +35418,6 @@ msgid "" "An agricultural tool with long wooden shaft and four spikes. Is used to " "lift hay." msgstr "" -" forquilha Uma ferramenta agrícola com eixo longo de madeira e " -"quatropontas.É usado para levantar feno." #: lang/json/GENERIC_from_json.py msgid "bullwhip" @@ -40154,10 +35433,6 @@ msgid "" "flaying the rotten flesh off of walking corpses. Great for when a problem " "comes along." msgstr "" -" Uma longa tira de couro trançado com uma alça em umaextremidade. " -"Originalmente desenvolvido para resolver divergências com ogado, é " -"melhorusado agora para esfolar a carne podre dos cadáveresambulantes. Ótimo " -"paraquando surge um problema." #: lang/json/GENERIC_from_json.py msgid "flyer" @@ -40168,7 +35443,7 @@ msgstr[1] "" #. ~ Description for flyer #: lang/json/GENERIC_from_json.py msgid "A scrap of paper." -msgstr "flyerA sucata de papel." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "survivor's note" @@ -40181,8 +35456,6 @@ msgstr[1] "" msgid "" "A scrap of paper. Something's written on it, scrawled in bad handwriting." msgstr "" -" nota do sobrevivente Um pedaço de papel. Algo está escrito, " -"rabiscadoemletra ruim." #: lang/json/GENERIC_from_json.py msgid "character sheet" @@ -40220,10 +35493,6 @@ msgid "" "on there is terribly trivial, or out of date, but one thing catches your eye" " briefly." msgstr "" -" newspaper page Uma única folha de jornal. É possivelmente uma " -"dasúltimasedições impressas antes que a Nova Inglaterra " -"estivessesobrecarregada. Amaior parte da informação é terrivelmente trivial," -" oudesatualizada, masuma coisa chama sua atenção rapidamente." #. ~ Description for newspaper page #: lang/json/GENERIC_from_json.py @@ -40233,10 +35502,6 @@ msgid "" "on there is terribly trivial, or out of date, but one thing catches your eye" " briefly." msgstr "" -" Uma única folha de jornal. Parece datar de vários anos atrás, e você " -"nãotemideia de como durou tanto tempo. A maior parte da informação " -"éterrivelmentetrivial, ou desatualizada, mas uma coisa chama sua " -"atençãorapidamente." #. ~ Description for newspaper page #: lang/json/GENERIC_from_json.py @@ -40245,9 +35510,6 @@ msgid "" "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 "" -" Uma única folha de jornal. Parece datar de alguns anos atrás - " -"incrívelquedurou tanto tempo. A maior parte da informação é terrivelmente " -"trivial, oudesatualizada, mas uma coisa chama sua atenção rapidamente." #. ~ Description for newspaper page #: lang/json/GENERIC_from_json.py @@ -40256,9 +35518,6 @@ msgid "" "ago. Most of the information on there is terribly trivial, or out of date, " "but one thing catches your eye briefly." msgstr "" -" Uma única folha de jornal. Foi impresso há mais de um ano. A maior " -"partedainformação é terrivelmente trivial, ou desatualizada, mas uma " -"coisachamasua atenção rapidamente." #. ~ Description for newspaper page #: lang/json/GENERIC_from_json.py @@ -40267,9 +35526,6 @@ msgid "" "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 "" -" Uma única folha de jornal. Foi impresso nos meses que " -"antecederamoCataclismo. A maior parte da informação é terrivelmente trivial," -" oudesatualizada, mas uma coisa chama sua atenção rapidamente." #. ~ Description for newspaper page #: lang/json/GENERIC_from_json.py @@ -40278,9 +35534,6 @@ msgid "" " 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 "" -" Uma única folha de jornal. Foi impresso nas semanas que " -"antecederamoCataclismo. A maior parte da informação é terrivelmente trivial," -" oudesatualizada, mas uma coisa chama sua atenção rapidamente." #: lang/json/GENERIC_from_json.py msgid "vault leaflet" @@ -40294,8 +35547,6 @@ msgid "" "A folded glossy handout that appears to be an introduction to living in a " "massive underground complex." msgstr "" -" Uma folha dobrada que parece ser uma introdução à vida em " -"umcomplexosubterrâneo massivo." #: lang/json/GENERIC_from_json.py msgid "module template" @@ -40612,8 +35863,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A miscellaneous piece of hobby software. Probably useless." msgstr "" -" softwaremisc softwareUma parte diversa de software hobby. " -"Provavelmenteinútil." #: lang/json/GENERIC_from_json.py msgid "hackPRO" @@ -40624,7 +35873,7 @@ msgstr[1] "" #. ~ Description for hackPRO #: lang/json/GENERIC_from_json.py msgid "A piece of hacking software." -msgstr "hackPROA pedaço de software de hackers." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "MediSoft" @@ -40635,7 +35884,7 @@ msgstr[1] "" #. ~ Description for MediSoft #: lang/json/GENERIC_from_json.py msgid "A piece of medical software." -msgstr "MediSoftUma peça de software médico." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "MatheMAX" @@ -40646,7 +35895,7 @@ msgstr[1] "" #. ~ Description for MatheMAX #: lang/json/GENERIC_from_json.py msgid "A piece of mathematical software." -msgstr "MatheMAXA peça de software matemático." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "infection data" @@ -40657,7 +35906,7 @@ msgstr[1] "" #. ~ Description for infection data #: lang/json/GENERIC_from_json.py msgid "Medical data on zombie blood." -msgstr "dados de infecção Dados médicos sobre sangue zumbi." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "lab data" @@ -40669,7 +35918,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "Research archives from a government laboratory." msgstr "" -" Arquivos de pesquisa de dados de laboratório de um laboratório do governo." #: lang/json/GENERIC_from_json.py msgid "train data" @@ -40681,7 +35929,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "Logistical data on subterranean train routes and schedules." msgstr "" -" dados do trem Dados logísticos sobre rotas e horários dostrenssubterrâneos." #: lang/json/GENERIC_from_json.py msgid "neural data" @@ -40724,12 +35971,12 @@ msgstr[1] "" #. ~ Use action menu_text for magical reading light. #: lang/json/GENERIC_from_json.py msgid "Close cover" -msgstr "lâmpada atômicaFechar tampa" +msgstr "" #. ~ Use action msg for atomic lamp. #: lang/json/GENERIC_from_json.py msgid "You close the lamp's cover." -msgstr "Você fecha a tampa da lâmpada." +msgstr "" #. ~ Description for atomic lamp #: lang/json/GENERIC_from_json.py @@ -40752,12 +35999,12 @@ msgstr[1] "" #. ~ Use action menu_text for magical reading light (covered). #: lang/json/GENERIC_from_json.py msgid "Open cover" -msgstr "lâmpada atômica (coberta) Tampa aberta" +msgstr "" #. ~ Use action msg for atomic lamp (covered). #: lang/json/GENERIC_from_json.py msgid "You open the lamp's cover." -msgstr "Você abre a tampa da lâmpada." +msgstr "" #. ~ Description for atomic lamp (covered) #: lang/json/GENERIC_from_json.py @@ -40779,7 +36026,7 @@ msgstr[1] "" #. ~ Use action msg for magical reading light. #: lang/json/GENERIC_from_json.py msgid "You close the nightlight's cover." -msgstr "nightlight atômicoVocê fecha a tampa do nightlight." +msgstr "" #. ~ Description for atomic reading light #: lang/json/GENERIC_from_json.py @@ -40801,7 +36048,7 @@ msgstr[1] "" #. ~ Use action msg for magical reading light (covered). #: lang/json/GENERIC_from_json.py msgid "You open the nightlight's cover." -msgstr "luz noturna atômica (coberta) Você abre a tampa da luz noturna." +msgstr "" #. ~ Description for atomic reading light (covered) #: lang/json/GENERIC_from_json.py @@ -40839,8 +36086,6 @@ msgid "" "A hand crank powered cast steel machine designed to automatically seal tin " "cans." msgstr "" -" pode seladora Uma máquina de aço fundido movida a manivela " -"projetadaparavedar automaticamente latas de estanho." #: lang/json/GENERIC_from_json.py msgid "carding paddles" @@ -40854,8 +36099,6 @@ msgid "" "A pair of toothy wooden paddles used to clean fibers for use in textile " "production." msgstr "" -" carding paddles Um par de pás de madeira denteadas usadas para " -"limparfibraspara uso na produção de têxteis." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "charcoal kiln" @@ -40869,9 +36112,6 @@ msgid "" "A stout metal box used for producing charcoal via pyrolysis; the incomplete " "burning of organic materials in the absence of oxygen." msgstr "" -" Carvão vegetal Uma caixa metálica robusta usada para produzir " -"carvãoatravésde pirólise; a queima incompleta de materiais orgânicos na " -"ausênciadeoxigênio." #: lang/json/GENERIC_from_json.py msgid "clay pot" @@ -40882,7 +36122,7 @@ msgstr[1] "" #. ~ Description for clay pot #: lang/json/GENERIC_from_json.py msgid "A crude clay pot with lid used for cooking." -msgstr "clay potUma panela de barro cru com tampa usada para cozinhar." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "clay quern" @@ -40894,7 +36134,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "This is a simple hand-powered clay quern for grinding grain." msgstr "" -" argila quern Este é um simples quern de argila movido a mão para moergrãos." #: lang/json/GENERIC_from_json.py msgid "clay teapot" @@ -40906,7 +36145,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A clay teapot. Now all you need is tea and water." msgstr "" -" bule de barro Bule de barro. Agora tudo que você precisa é de chá e água." #: lang/json/GENERIC_from_json.py msgid "digging stick" @@ -40920,9 +36158,6 @@ 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 "" -" vara de escavaçãoEsta é uma vara grande, com o final esculpido em " -"umalâminalarga para cavar. Pode ser usado para cavar poços rasos, mas " -"nãoprofundos." #: lang/json/GENERIC_from_json.py msgid "distaff and spindle" @@ -40935,8 +36170,6 @@ msgstr[1] "" msgid "" "A pair of specialized wooden rods used to spin fibers into thread and yarn." msgstr "" -" Roca e fusoUm par de hastes de madeira especializadas usadas para " -"girarasfibras em fios e fios." #: lang/json/GENERIC_from_json.py msgid "fermenting eggs jar" @@ -40950,13 +36183,11 @@ msgid "" "You examine the batch and see that the pickling solution has done its job, " "so you seal the jar up for storage." msgstr "" -" ovos de fermentação jar Você examina o lote e vê que a solução " -"dedecapagemfez o seu trabalho, então você selar o frasco para armazenamento." #. ~ Use action not_ready_msg for fermenting eggs jar. #: lang/json/GENERIC_from_json.py msgid "The eggs are not done yet." -msgstr "Os ovos ainda não estão prontos." +msgstr "" #. ~ Description for fermenting eggs jar #: lang/json/GENERIC_from_json.py @@ -40964,8 +36195,6 @@ msgid "" "This jar contains a batch of eggs in a pickling solution. You can seal up " "the jar once the process is completed." msgstr "" -" Este frasco contém um lote de ovos em uma solução de decapagem. " -"Vocêpodeselar o frasco quando o processo estiver concluído." #: lang/json/GENERIC_from_json.py msgid "fishing hook" @@ -40976,7 +36205,7 @@ msgstr[1] "" #. ~ Description for fishing hook #: lang/json/GENERIC_from_json.py msgid "A simple fishing hook." -msgstr "gancho de pescaUm gancho de pesca simples." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "improvised fishing hook" @@ -40988,8 +36217,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An improvised fishing hook carved from wood or bone." msgstr "" -" Gancho de pesca improvisado Um gancho de pesca improvisado " -"esculpidoemmadeira ou osso." #: lang/json/GENERIC_from_json.py msgid "sealed yeast culture" @@ -41000,12 +36227,12 @@ msgstr[1] "" #. ~ Use action msg for sealed yeast culture. #: lang/json/GENERIC_from_json.py msgid "You open the flask and harvest the culture." -msgstr "Você abre o frasco e colhe a cultura." +msgstr "" #. ~ Use action not_ready_msg for sealed yeast culture. #: lang/json/GENERIC_from_json.py msgid "The yeast isn't done culturing yet." -msgstr "O fermento não é feito ainda em cultura." +msgstr "" #. ~ Description for sealed yeast culture #: lang/json/GENERIC_from_json.py @@ -41013,8 +36240,6 @@ msgid "" "A sealed flask holding sanitized yeast wort. You may harvest the yeast " "inside when it's done culturing." msgstr "" -" Um frasco selado contendo o mosto de levedura sanitizado. Você pode " -"colherofermento dentro quando é feito o cultivo." #: lang/json/GENERIC_from_json.py msgid "grappling hook" @@ -41041,14 +36266,14 @@ msgstr[1] "" #. ~ Use action menu_text for sealed jar of eggs. #: lang/json/GENERIC_from_json.py msgid "Open jar" -msgstr "jarra selada de picles" +msgstr "" #. ~ Use action msg for sealed jar of pickles. #. ~ Use action msg for sealed jar of sauerkraut. #. ~ Use action msg for sealed jar of eggs. #: lang/json/GENERIC_from_json.py msgid "You open the jar, exposing it to the atmosphere." -msgstr "Você abre o jarro, expondo-o à atmosfera." +msgstr "" #. ~ Description for sealed jar of pickles #: lang/json/GENERIC_from_json.py @@ -41056,8 +36281,6 @@ msgid "" "This is a sealed glass jar containing pickles. Use to open and eat to " "enjoy." msgstr "" -" Este é um frasco de vidro selado contendo picles. Use para abrir ecomerpara" -" desfrutar." #: lang/json/GENERIC_from_json.py msgid "sealed jar of sauerkraut" @@ -41071,8 +36294,6 @@ msgid "" "This is a sealed glass jar containing sauerkraut. Use to open and eat to " "enjoy." msgstr "" -" frasco selado de chucruteEste é um frasco de vidro selado contendochucrute." -" Use para abrir e comer para desfrutar." #: lang/json/GENERIC_from_json.py msgid "sealed jar of eggs" @@ -41086,8 +36307,6 @@ msgid "" "This is a sealed glass jar containing pickled eggs. Use to open and eat to " "enjoy." msgstr "" -" frasco selado de ovosEste é um frasco de vidro selado contendo " -"ovosemconserva. Use para abrir e comer para desfrutar." #: lang/json/GENERIC_from_json.py msgid "lit charcoal kiln" @@ -41101,18 +36320,16 @@ msgid "" "The kilns embers have died out, you can now disassemble it to harvest the " "charcoal." msgstr "" -" forno de carvão aceso As brasas dos fornos morreram, agora " -"vocêpodedesmontá-lo para colher o carvão." #. ~ Use action not_ready_msg for lit charcoal kiln. #: lang/json/GENERIC_from_json.py msgid "The kiln is still burning." -msgstr "O forno ainda está queimando." +msgstr "" #. ~ Description for lit charcoal kiln #: lang/json/GENERIC_from_json.py msgid "A kiln full of wood that has been lit; better drop it!" -msgstr "Um forno cheio de madeira que foi acesa; melhor soltá-lo!" +msgstr "" #: lang/json/GENERIC_from_json.py msgid "knitting needles" @@ -41126,8 +36343,6 @@ msgid "" "A pair of stout wooden needles with round ends used to turn thread and yarn " "into cloth." msgstr "" -" Agulhas de tricô Um par de agulhas de madeira robustas " -"comextremidadesredondas usadas para transformar linha e fio em pano." #: lang/json/GENERIC_from_json.py msgid "makeshift glaive" @@ -41141,8 +36356,6 @@ msgid "" "This is a large blade attached to a long stick. It could do a considerable " "amount of damage." msgstr "" -" Esta é uma lâmina grande presa a uma vara longa. Isso poderia causar uma " -"quantidade considerável de dano." #: lang/json/GENERIC_from_json.py msgid "pasta extruder" @@ -41156,9 +36369,6 @@ 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 "" -" extrusora de macarrão Uma extrusora de macarrão operada por " -"umamanivela.Útil em fazer macarrão. Vem com várias cabeças para fazer " -"váriostipos demassa." #: lang/json/GENERIC_from_json.py msgid "fermenting pickle jar" @@ -41172,13 +36382,11 @@ msgstr[1] "" msgid "" "You test the batch, and it tastes good, so you seal the jar up for storage." msgstr "" -" fermenting pickle jarVocê testa o lote e tem um gosto bom, então " -"vocêpodeselar o frasco para armazenamento." #. ~ Use action not_ready_msg for fermenting pickle jar. #: lang/json/GENERIC_from_json.py msgid "The pickles are not done fermenting yet." -msgstr "Os picles não são feitos fermentando ainda." +msgstr "" #. ~ Description for fermenting pickle jar #: lang/json/GENERIC_from_json.py @@ -41186,8 +36394,6 @@ msgid "" "This jar contains a batch of pickles set to ferment. You can seal up the " "jar once the process is completed." msgstr "" -" Este frasco contém um lote de picles para fermentar. Você pode selarofrasco" -" quando o processo estiver concluído." #: lang/json/GENERIC_from_json.py msgid "stone pot" @@ -41199,7 +36405,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A large stone, roughly hollowed out into a pot." msgstr "" -" Pote de pedra Uma grande pedra, aproximadamente escavada em uma panela." #: lang/json/GENERIC_from_json.py msgid "fermenting sauerkraut jar" @@ -41210,7 +36415,7 @@ msgstr[1] "" #. ~ Use action not_ready_msg for fermenting sauerkraut jar. #: lang/json/GENERIC_from_json.py msgid "The sauerkraut isn't done fermenting yet." -msgstr "chucrute fermentador O chucrute não é feito fermentando ainda." +msgstr "" #. ~ Description for fermenting sauerkraut jar #: lang/json/GENERIC_from_json.py @@ -41218,8 +36423,6 @@ msgid "" "This jar contains a batch of sauerkraut set to ferment. You can seal up the" " jar once the process is completed." msgstr "" -" Este frasco contém um lote de chucrute pronto para fermentar. Vocêpodeselar" -" o frasco quando o processo estiver concluído." #: lang/json/GENERIC_from_json.py msgid "teapot" @@ -41230,7 +36433,7 @@ msgstr[1] "" #. ~ Description for teapot #: lang/json/GENERIC_from_json.py msgid "A small metal teapot. Teatime wouldn't be complete without one." -msgstr "Um pequeno bule de metal. A hora do chá não estaria completa sem um." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "telescoping umbrella" @@ -41244,8 +36447,6 @@ msgid "" "A telescoping umbrella which collapses down for easy storage, useful for " "keeping dry when wielded." msgstr "" -" guarda-chuva telescópicoUm guarda-chuva telescópico que desce " -"parafácilarmazenamento, útil para se manter seco quando empunhado." #: lang/json/GENERIC_from_json.py msgid "umbrella" @@ -41257,8 +36458,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An umbrella with a pointy end, useful for keeping dry when wielded." msgstr "" -" guarda-chuva Um guarda-chuva com ponta pontiaguda, útil para se " -"mantersecoquando empunhado." #: lang/json/GENERIC_from_json.py msgid "waffle iron" @@ -41269,7 +36468,7 @@ msgstr[1] "" #. ~ Description for waffle iron #: lang/json/GENERIC_from_json.py msgid "A waffle iron. For making waffles." -msgstr "ferro de waffle ferro de waffle. Para fazer waffles." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "razor blade" @@ -41280,7 +36479,7 @@ msgstr[1] "" #. ~ Description for razor blade #: lang/json/GENERIC_from_json.py msgid "A double edged razor blade." -msgstr "lâmina de navalhaUma lâmina de dois gumes." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "pressure cooker" @@ -41295,10 +36494,6 @@ msgid "" "is designed to cook food at higher pressures and temperatures. Can also be " "used for pressure sensitive chemical reactions." msgstr "" -" panela de pressãoUseful para ferver a água ao cozinhar o espaguete emais. " -"Este pote selado é projetado para cozinhar alimentos a altas " -"pressõesetemperaturas. Também pode ser usado para reações químicas " -"sensíveisàpressão." #: lang/json/GENERIC_from_json.py msgid "storage battery case" @@ -41312,9 +36507,6 @@ msgid "" "An empty case that can hold a storage battery. Complete with charging " "controller chip and connecting wires." msgstr "" -" Caso de bateria de armazenamento Um estojo vazio que pode conter " -"umabateriade armazenamento. Completo com chip do controlador de " -"carregamentoe fios deconexão." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "water faucet" @@ -41326,8 +36518,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A metal faucet that can be attached to a water tank for easy access." msgstr "" -" torneira de águaUma torneira de metal que pode ser anexada a um " -"tanquedeágua para facilitar o acesso." #: lang/json/GENERIC_from_json.py msgid "vehicle tracking device" @@ -41341,9 +36531,6 @@ msgid "" "A vehicle tracking device. When installed on a vehicle it allows you track " "the vehicle." msgstr "" -" dispositivo de rastreamento de veículosUm dispositivo de " -"rastreamentodeveículos. Quando instalado em um veículo, permite rastrear o " -"veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "bike rack" @@ -41358,9 +36545,6 @@ msgid "" "and used to support another vehicle for transport. It must be mounted on a " "vehicle to be used." msgstr "" -" bicicletárioUma coleção de tubos, excêntricos e correias, montada nabordade" -" um veículo e usada para apoiar outro veículo para transporte. " -"Devesermontado em um veículo para ser usado." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "recharging station" @@ -41410,8 +36594,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A set of small monitors. Required to view cameras' output." msgstr "" -" display da câmeraUm conjunto de pequenos monitores. " -"Necessárioparavisualizar a saída das câmeras." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -41426,9 +36608,6 @@ msgid "" "A security camera you could connect to a display. Image quality is quite " "low, but the field of vision is great." msgstr "" -" câmera de segurançaUma câmera de segurança que você pode conectar " -"aummonitor. A qualidade da imagem é bastante baixa, mas o campo de " -"visãoéótimo." #: lang/json/GENERIC_from_json.py msgid "cargo lock set" @@ -41440,8 +36619,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A set of locks designed to be installed on a vehicle." msgstr "" -" Conjunto de fechaduras de cargaUm conjunto de fechaduras " -"projetadasparaserem instaladas em um veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "turret mount" @@ -41453,8 +36630,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A universal mount for weapons intended to be installed as turrets." msgstr "" -" montagem da torreUm suporte universal para armas destinadas " -"asereminstaladas como torres." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "mounted spare tire" @@ -41485,8 +36660,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "You add roads and facilities to your map." msgstr "" -" mapa de operações mapmilitary abstratoVocê adiciona estradas einstalaçõesao" -" seu mapa." #. ~ Description for military operations map #: lang/json/GENERIC_from_json.py @@ -41495,9 +36668,6 @@ msgid "" "military origin, it details the locations of evacuation centers and military" " facilities. Using it will add points of interest to your map." msgstr "" -" Este é um mapa topográfico impresso da área local. Originalmente " -"deorigemmilitar, detalha a localização de centros de evacuação " -"einstalaçõesmilitares. Usá-lo adicionará pontos de interesse ao seu mapa." #: lang/json/GENERIC_from_json.py msgid "survivor's map" @@ -41509,8 +36679,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "You add roads and possible supply points to your map." msgstr "" -" mapa do sobreviventeVocê adiciona estradas e possíveis pontos " -"desuprimentoao seu mapa." #. ~ Description for survivor's map #: lang/json/GENERIC_from_json.py @@ -41519,9 +36687,6 @@ 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 "" -" Este é um mapa desenhado à mão da área local. Quem o criou, marcou " -"oslocaisdas fontes de abastecimento próximas, incluindo lojas de armas " -"epostos degasolina. Usá-lo adicionará pontos de interesse ao seu mapa." #: lang/json/GENERIC_from_json.py msgid "road map" @@ -41532,7 +36697,7 @@ msgstr[1] "" #. ~ Use action message for road map. #: lang/json/GENERIC_from_json.py msgid "You add roads and points of interest to your map." -msgstr "roteiroVocê adiciona estradas e pontos de interesse ao seu mapa." +msgstr "" #. ~ Description for road map #: lang/json/GENERIC_from_json.py @@ -41541,9 +36706,6 @@ msgid "" "like hospitals and police stations, it can be used to add points of interest" " to your map." msgstr "" -" Este é um roteiro para a área local. Listando informações " -"sobresitescívicos, como hospitais e delegacias de polícia, pode ser " -"usadoparaadicionar pontos de interesse ao seu mapa." #: lang/json/GENERIC_from_json.py msgid "trail guide" @@ -41554,7 +36716,7 @@ msgstr[1] "" #. ~ Use action message for trail guide. #: lang/json/GENERIC_from_json.py msgid "You add trails and trailheads to your map." -msgstr "Guia de trilhasVocê adiciona trilhas e trilhas ao seu mapa." +msgstr "" #. ~ Description for trail guide #: lang/json/GENERIC_from_json.py @@ -41564,10 +36726,6 @@ msgid "" "and advice on interacting with local wildlife in a responsible and " "respectful manner." msgstr "" -" Este é um guia impresso para as melhores trilhas locais. Ele " -"temdetalhesgerais sobre as trilhas, comodidades de trilha, sugestões para " -"asmelhorescaminhadas e conselhos sobre como interagir com a vida " -"selvagemlocal demaneira responsável e respeitosa." #: lang/json/GENERIC_from_json.py msgid "tourist guide" @@ -41579,7 +36737,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "You add roads and tourist attractions to your map." msgstr "" -" guia turisticoVocê adiciona estradas e atrações turísticas ao seu mapa." #. ~ Description for tourist guide #: lang/json/GENERIC_from_json.py @@ -41587,8 +36744,6 @@ msgid "" "This is glossy printed pamphlet for tourists that details local hotels and " "attractions." msgstr "" -" Este é um panfleto impresso brilhante para turistas que detalha os " -"hotéiseatrações locais." #: lang/json/GENERIC_from_json.py msgid "restaurant guide" @@ -41600,7 +36755,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "You add roads and restaurants to your map." msgstr "" -"guia de restaurantesVocê adiciona estradas e restaurantes ao seu mapa." #. ~ Description for restaurant guide #: lang/json/GENERIC_from_json.py @@ -41610,10 +36764,6 @@ msgid "" "all the best diners and bars. Using it will add points of interest to your " "map." msgstr "" -" Este é um panfleto impresso brilhante que detalha " -"estabelecimentosderefeições na área local. Impresso pela Câmara de Comércio," -" listaosendereços de todos os melhores comensais e bares. Usá-lo " -"adicionarápontosde interesse ao seu mapa." #: lang/json/GENERIC_from_json.py msgid "The Spirit of Aikido" @@ -41624,7 +36774,7 @@ msgstr[1] "" #. ~ Description for The Spirit of Aikido #: lang/json/GENERIC_from_json.py msgid "A complete guide to Aikido." -msgstr "O Espírito do Aikido Um guia completo para o Aikido." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Practical Pugilism" @@ -41637,8 +36787,6 @@ msgstr[1] "" msgid "" "A complete guide to boxing. Let's get ready to rough-up some ruffians!" msgstr "" -" Pugilismo PráticoUm guia completo para o boxe. Vamos nos " -"prepararparaagredir alguns rufiões!" #: lang/json/GENERIC_from_json.py msgid "Capoeira 100" @@ -41649,7 +36797,7 @@ msgstr[1] "" #. ~ Description for Capoeira 100 #: lang/json/GENERIC_from_json.py msgid "A complete guide to Capoeira." -msgstr "Capoeira 100A guia completo para Capoeira." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Centipede Lu Feng" @@ -41660,7 +36808,7 @@ msgstr[1] "" #. ~ Description for The Centipede Lu Feng #: lang/json/GENERIC_from_json.py msgid "A complete guide to Centipede Kung Fu." -msgstr "A Centipede Lu FengA guia completo para Centopéia Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Red Crane" @@ -41671,7 +36819,7 @@ msgstr[1] "" #. ~ Description for The Red Crane #: lang/json/GENERIC_from_json.py msgid "A complete guide to Crane Kung Fu." -msgstr "The Red CraneUm guia completo do Crane Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Jade Dragon" @@ -41682,7 +36830,7 @@ msgstr[1] "" #. ~ Description for The Jade Dragon #: lang/json/GENERIC_from_json.py msgid "A complete guide to Dragon Kung Fu." -msgstr "The Jade DragonA guia completo para Dragon Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Practical Eskrima" @@ -41693,7 +36841,7 @@ msgstr[1] "" #. ~ Description for Practical Eskrima #: lang/json/GENERIC_from_json.py msgid "A complete guide to Eskrima." -msgstr "Guia completo EskrimaA Prático para Eskrima." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Modern Swordsman" @@ -41704,7 +36852,7 @@ msgstr[1] "" #. ~ Description for The Modern Swordsman #: lang/json/GENERIC_from_json.py msgid "A complete guide to Fencing." -msgstr "The Modern SwordsmanUm guia completo para esgrima." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Kodokan Judo" @@ -41715,7 +36863,7 @@ msgstr[1] "" #. ~ Description for Kodokan Judo #: lang/json/GENERIC_from_json.py msgid "A complete guide to Judo." -msgstr "Kodokan Judo Um guia completo para o judô." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Shotokan Karate Handbook" @@ -41726,7 +36874,7 @@ msgstr[1] "" #. ~ Description for The Shotokan Karate Handbook #: lang/json/GENERIC_from_json.py msgid "A complete guide to Shotokan Karate." -msgstr "O Shotokan Karate HandbookUm guia completo para o Karate Shotokan." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Complete Krav Maga" @@ -41737,7 +36885,7 @@ msgstr[1] "" #. ~ Description for Complete Krav Maga #: lang/json/GENERIC_from_json.py msgid "A complete guide to Krav Maga." -msgstr "Complete Krav MagaA guia completo para Krav Maga." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Deaf Leopard" @@ -41748,7 +36896,7 @@ msgstr[1] "" #. ~ Description for The Deaf Leopard #: lang/json/GENERIC_from_json.py msgid "A complete guide to Leopard Kung Fu." -msgstr "The Leopard DeafUm guia completo para o Leopard Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Lizard Kuo Chui" @@ -41759,7 +36907,7 @@ msgstr[1] "" #. ~ Description for The Lizard Kuo Chui #: lang/json/GENERIC_from_json.py msgid "A complete guide to Lizard Kung Fu." -msgstr "O Lagarto Kuo ChuiA guia completo para o Lagarto Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Ultimate Muay Thai" @@ -41770,7 +36918,7 @@ msgstr[1] "" #. ~ Description for Ultimate Muay Thai #: lang/json/GENERIC_from_json.py msgid "A complete guide to Muay Thai." -msgstr "Ultimate Muay ThaiUm guia completo para Muay Thai." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Essence of Ninjutsu" @@ -41781,7 +36929,7 @@ msgstr[1] "" #. ~ Description for Essence of Ninjutsu #: lang/json/GENERIC_from_json.py msgid "A complete guide to Ninjutsu." -msgstr "Essence of NinjutsuUm guia completo para o Ninjutsu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Book of Five Rings" @@ -41795,8 +36943,6 @@ msgid "" "A primer on Miyamoto Musashi's style of combat and philosophy, Niten Ichi-" "Ryu." msgstr "" -" O Livro dos Cinco RingsUma cartilha sobre o estilo de combate e " -"filosofiadeMiyamoto Musashi, Niten Ichi-Ryu." #: lang/json/GENERIC_from_json.py msgid "The Modern Pankratiast" @@ -41807,7 +36953,7 @@ msgstr[1] "" #. ~ Description for The Modern Pankratiast #: lang/json/GENERIC_from_json.py msgid "A complete guide to Pankration." -msgstr "The Modern PankratiastUm guia completo para o Pankration." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Scorpion Sun Chien" @@ -41818,7 +36964,7 @@ msgstr[1] "" #. ~ Description for The Scorpion Sun Chien #: lang/json/GENERIC_from_json.py msgid "A complete guide to Scorpion Kung Fu." -msgstr "The Scorpion Sun Chien Um guia completo para o Escorpião Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Indonesian Warrior" @@ -41829,7 +36975,7 @@ msgstr[1] "" #. ~ Description for The Indonesian Warrior #: lang/json/GENERIC_from_json.py msgid "A complete guide to Pentjak Silat." -msgstr "The Indonesian WarriorA guia completo para Pentjak Silat." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Black Snake" @@ -41840,7 +36986,7 @@ msgstr[1] "" #. ~ Description for The Black Snake #: lang/json/GENERIC_from_json.py msgid "A complete guide to Snake Kung Fu." -msgstr "The Black SnakeUm guia completo para o Snake Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Official Taekwondo Training Manual" @@ -41852,7 +36998,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A complete guide to Taekwondo." msgstr "" -" Manual Oficial de Treinamento de TaekwondoUm guia completo para oTaekwondo." #: lang/json/GENERIC_from_json.py msgid "Becoming One with the Tao" @@ -41864,7 +37009,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A complete guide to T'ai Chi Ch'uan." msgstr "" -" Tornando-se um com o TaoA guia completo para o T'ai Chi Ch'uan." #: lang/json/GENERIC_from_json.py msgid "The White Tiger" @@ -41875,7 +37019,7 @@ msgstr[1] "" #. ~ Description for The White Tiger #: lang/json/GENERIC_from_json.py msgid "A complete guide to Tiger Kung Fu." -msgstr "The White TigerUm guia completo para o Tiger Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Toad Lo Mang" @@ -41886,7 +37030,7 @@ msgstr[1] "" #. ~ Description for The Toad Lo Mang #: lang/json/GENERIC_from_json.py msgid "A complete guide to Toad Kung Fu." -msgstr "O Toad Lo MangA guia completo para Sapo Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Viper Wei Pai" @@ -41897,7 +37041,7 @@ msgstr[1] "" #. ~ Description for The Viper Wei Pai #: lang/json/GENERIC_from_json.py msgid "A complete guide to Viper Kung Fu." -msgstr "The Viper Wei PaiA guia completo para o Viper Kung Fu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Zui Quan and You" @@ -41908,7 +37052,7 @@ msgstr[1] "" #. ~ Description for Zui Quan and You #: lang/json/GENERIC_from_json.py msgid "A complete guide to Zui Quan." -msgstr "Zui Quan e YouA guia completo para Zui Quan." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "The Way of the Spear" @@ -41919,7 +37063,7 @@ msgstr[1] "" #. ~ Description for The Way of the Spear #: lang/json/GENERIC_from_json.py msgid "A complete guide to Sōjutsu." -msgstr "O Caminho da Lança Um guia completo para Sōjutsu." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "Beautiful Springtime" @@ -41966,9 +37110,6 @@ msgid "" "After feeding it and caring for it for weeks, your sourdough starter is " "finally ready for the big leagues." msgstr "" -" Manual de arte marcial starterjuvenile sourdough Depois de alimentá- " -"loecuidar dele por semanas, seu starter sourdough está finalmente " -"prontoparaas grandes ligas." #. ~ Use action not_ready_msg for juvenile sourdough starter. #: lang/json/GENERIC_from_json.py @@ -41976,8 +37117,6 @@ 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 "" -" Você está cuidando de sua partida há algum tempo, mas vai precisar " -"demaistempo para poder fazer algo saboroso com ela." #. ~ Description for juvenile sourdough starter #: lang/json/GENERIC_from_json.py @@ -41985,8 +37124,6 @@ msgid "" "This jar contains a floury paste that is slowly going bad. Someday it will " "be sourdough." msgstr "" -" Este frasco contém uma pasta farinhenta que está indo devagar. Algumdiaserá" -" sourdough." #: lang/json/GENERIC_from_json.py msgid "freshly fed sourdough starter" @@ -41998,13 +37135,11 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "The starter is now stinky and bubbly, and looks ready for cooking." msgstr "" -" recém-alimentado starter sourdoughThe starter é agora stinky eborbulhante, " -"e parece pronto para cozinhar." #. ~ Use action not_ready_msg for freshly fed sourdough starter. #: lang/json/GENERIC_from_json.py msgid "The starter isn't quite ready to go." -msgstr "O iniciante não está pronto para ir." +msgstr "" #. ~ Description for freshly fed sourdough starter #: lang/json/GENERIC_from_json.py @@ -42012,9 +37147,6 @@ 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 "" -" Este frasco contém uma pasta farinhenta misturada com massa azeda. " -"Elaprecisa de algumas horas para recuperar sua força antes que possa " -"serusadanovamente." #: lang/json/GENERIC_from_json.py msgid "sourdough starter" @@ -42029,9 +37161,6 @@ msgid "" "the air. When you add flour and water to it, after a few hours it froths " "and rises." msgstr "" -" starterThis sourdough jar contém preciosa mistura de farinha, água " -"ebolorese bactérias do ar. Quando você adiciona farinha e água a ele, depois" -" dealgumas horas ele espuma e sobe." #: lang/json/GENERIC_from_json.py msgid "human bone" @@ -42045,8 +37174,6 @@ msgid "" "A bone from a human being. Could be used to make some stuff, if you're " "feeling sufficiently ghoulish." msgstr "" -" osso humano Um osso de um ser humano. Poderia ser usado para " -"fazeralgumascoisas, se você estiver se sentindo suficientemente macabro." #: lang/json/GENERIC_from_json.py msgid "first aid kit" @@ -42061,9 +37188,6 @@ msgid "" "agents. Used for healing large amounts of damage. Disassemble to get its " "content." msgstr "" -" kit de primeiros socorrosUm kit médico completo, com bandagens, " -"anestésicoslocais e agentes de cura rápida. Usado para curar " -"grandesquantidades dedano. Desmonte para obter seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE" @@ -42074,7 +37198,7 @@ msgstr[1] "" #. ~ Description for MRE #: lang/json/GENERIC_from_json.py msgid "A generic MRE box, you shouldn't see this." -msgstr "MREA caixa MRE genérica, você não deve ver isso." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "MRE small box" @@ -42086,7 +37210,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A generic small MRE box, you shouldn't see this" msgstr "" -"MRE small boxUma pequena caixa de MRE genérica, você não deve ver isso" #: lang/json/GENERIC_from_json.py msgid "MRE - Accessory Pack" @@ -42100,9 +37223,6 @@ msgid "" "An MRE accessory pack containing a variety of utensils and drinks. Activate" " or disassemble it to get to its contents." msgstr "" -" MRE - Pack de acessórios Um pacote de acessórios MRE contendo " -"umavariedadede utensílios e bebidas. Ativar ou desmontar para chegar ao " -"seuconteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Dessert Pack" @@ -42116,8 +37236,6 @@ msgid "" "A sealed plastic bag containing an array of desserts. Activate or " "disassemble it to get to its contents." msgstr "" -" MRE - Sobremesa PackA saco plástico selado contendo uma " -"variedadedesobremesas. Ativar ou desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Chili & Beans" @@ -42132,10 +37250,6 @@ msgid "" "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 - Chili & Beans Uma 'Refeição Pronta para Comer' " -"comentradade chili e feijão e tudo que um soldado faminto precisa. O " -"conteúdocomeçaráa apodrecer assim que for removido deste saco selado. Ativar" -" oudesmontarpara chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - BBQ Beef" @@ -42150,10 +37264,6 @@ msgid "" " 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 - BBQ BeefA 'Refeição Pronta para Comer' com uma " -"entradaparachurrasco de carne bovina e tudo o que um soldado faminto " -"precisa. Oconteúdo começará a apodrecer assim que for removido deste " -"sacoselado. Ativar ou desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Chicken & Noodles" @@ -42168,10 +37278,6 @@ msgid "" "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 - Frango & Macarrão Uma 'Refeição Pronta para Comer' " -"comumprato de frango e macarrão e tudo que um soldado faminto precisa. " -"Oconteúdo começará a apodrecer assim que for removido deste sacoselado. " -"Ativar ou desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Spaghetti" @@ -42186,10 +37292,6 @@ msgid "" "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 - SpaghettiA 'Refeição Pronta para Comer' com " -"entradadeespaguete e tudo que um soldado faminto precisa. O conteúdo " -"começaráaapodrecer assim que for removido deste saco selado. Ativar " -"oudesmontarpara chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Chicken Chunks" @@ -42204,10 +37306,6 @@ msgid "" "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 - Frango ChunksA 'Refeição Pronta para Comer' com um " -"pedaçodefrango de entrada e tudo o que um soldado com fome precisa. " -"Oconteúdocomeçará a apodrecer assim que for removido deste saco selado. " -"Ativar oudesmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Beef Taco" @@ -42222,10 +37320,6 @@ msgid "" "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 - Beef TacoA 'Refeição Pronta para Comer' com entrada de " -"tacodecarne e tudo que um soldado faminto precisa. O conteúdo começará " -"aapodrecerassim que for removido deste saco selado. Ativar ou desmontarpara " -"chegar aoseu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Beef Brisket" @@ -42240,10 +37334,6 @@ msgid "" "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 - Beef Brisket Uma 'Refeição Pronta para Comer' com " -"umaentradade carne bovina e tudo que um soldado faminto precisa. O " -"conteúdocomeçaráa apodrecer assim que for removido deste saco selado. Ativar" -" oudesmontarpara chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Meatballs & Marinara" @@ -42258,10 +37348,6 @@ msgid "" " 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 - Meatballs & MarinaraA 'Refeição Pronta para Comer' " -"comumprato de almôndega e tudo que um soldado faminto precisa. " -"Oconteúdocomeçará a apodrecer assim que for removido deste saco selado. " -"Ativar oudesmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Beef Stew" @@ -42276,10 +37362,6 @@ msgid "" "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 - Beef StewA 'Refeição Pronta para Comer' com um " -"ensopadodecarne e tudo o que um soldado faminto precisa. O conteúdo " -"começaráaapodrecer assim que for removido deste saco selado. Ativar " -"oudesmontarpara chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Chili & Macaroni" @@ -42294,10 +37376,6 @@ msgid "" " 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 - Chili & MacaroniA 'Refeição Pronta para Comer' comumprato" -" de macarrão e chili e tudo que um soldado faminto precisa. " -"Oconteúdocomeçará a apodrecer assim que for removido deste saco selado. " -"Ativar oudesmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Vegetarian Taco" @@ -42312,10 +37390,6 @@ msgid "" "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 - Vegetarian TacoA 'Refeição Pronta para Comer' com " -"umpratovegetariano e tudo o que um soldado faminto precisa. O " -"conteúdocomeçará aapodrecer assim que for removido deste saco selado. Ativar" -" oudesmontarpara chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Macaroni Marinara" @@ -42330,10 +37404,6 @@ msgid "" "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 - Macarrão MarinaraA 'Refeição Pronta para Comer' com umpratode" -" macarrão marinara e tudo o que um soldado faminto precisa. " -"Oconteúdocomeçará a apodrecer assim que for removido deste saco selado. " -"Ativar oudesmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Cheese Tortellini" @@ -42348,10 +37418,6 @@ msgid "" "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 - Tortellini de QueijoA 'Refeição Pronta para Comer' comumprato" -" de tortellini de queijo e tudo que um soldado faminto precisa. Oconteúdo " -"começará a apodrecer assim que for removido deste sacoselado. Ativar ou " -"desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Mushroom Fettuccine" @@ -42366,10 +37432,6 @@ msgid "" "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 - Cogumelo Fettuccine Uma 'refeição pronta para comer' " -"comumfettuccine de cogumelos e tudo o que um soldado faminto precisa. " -"Oconteúdocomeçará a apodrecer assim que for removido deste saco selado. " -"Ativar oudesmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Mexican Chicken Stew" @@ -42384,10 +37446,6 @@ msgid "" "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 - Mexican Chicken StewA 'Refeição Pronta para Comer' comumprato" -" de frango mexicano e tudo o que um soldado faminto precisa. Oconteúdo " -"começará a apodrecer assim que for removido deste sacoselado. Ativar ou " -"desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Chicken Burrito Bowl" @@ -42402,10 +37460,6 @@ msgid "" "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 - Frango Burrito BowlA 'Refeição Pronta para Comer' " -"comumatigela de burrito de frango e tudo que um soldado faminto precisa. " -"Oconteúdo começará a apodrecer assim que for removido deste sacoselado. " -"Ativar ou desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Maple Sausage" @@ -42420,10 +37474,6 @@ msgid "" "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 - Maple SausageA 'Refeição Pronta para Comer' com uma " -"entradadelinguiça de bordo e tudo o que um soldado faminto precisa. " -"Oconteúdocomeçará a apodrecer assim que for removido deste saco selado. " -"Ativar oudesmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Ravioli" @@ -42438,10 +37488,6 @@ msgid "" "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 - RavioliA 'Refeição Pronta para Comer' com entrada de " -"raviólietudo que um soldado faminto precisa. O conteúdo começará a " -"apodrecerassimque for removido deste saco selado. Ativar ou desmontar para " -"chegarao seuconteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Pepper Jack Beef" @@ -42456,10 +37502,6 @@ msgid "" " 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 - Pimenta Jack BeefA 'Refeição Pronta para Comer' comumaentrada" -" de pimenta e tudo que um soldado faminto precisa. Oconteúdocomeçará a " -"apodrecer assim que for removido deste saco selado. Ativar oudesmontar para " -"chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Hash Browns & Bacon" @@ -42474,10 +37516,6 @@ msgid "" "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 - Hash Browns & Bacon Uma 'refeição pronta para " -"comer'combatatas fritas e entradas de bacon e tudo que um soldado " -"famintoprecisa. Oconteúdo começará a apodrecer assim que for removido deste " -"sacoselado. Ativar ou desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Lemon Pepper Tuna" @@ -42492,10 +37530,6 @@ msgid "" "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 - Lemon Pepper Tuna Uma 'refeição pronta para comer' comumprato" -" de atum com pimenta limão e tudo que um soldado faminto precisa. Oconteúdo " -"começará a apodrecer assim que for removido deste sacoselado. Ativar ou " -"desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Asian Beef & Vegetables" @@ -42510,10 +37544,6 @@ msgid "" "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 - Asian Beef & Vegetables Uma 'Refeição Pronta " -"paraComer'com um prato asiático de carne e legumes e tudo que um " -"soldadofamintoprecisa. O conteúdo começará a apodrecer assim que for " -"removidodeste sacoselado. Ativar ou desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Chicken Pesto & Pasta" @@ -42528,10 +37558,6 @@ msgid "" "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 - Frango Pesto & PastaA 'Refeição Pronta para Comer' " -"comumprato de frango pesto e tudo que um soldado faminto precisa. " -"Oconteúdocomeçará a apodrecer assim que for removido deste saco selado. " -"Ativar oudesmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Southwest Beef & Beans" @@ -42546,10 +37572,6 @@ msgid "" "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 - Southwest Beef & Beans Uma 'Refeição Pronta paraComer'com" -" entrada de carne bovina e feijão no sudoeste e tudo que umsoldadofaminto " -"precisa. O conteúdo começará a apodrecer assim que forremovidodeste saco " -"selado. Ativar ou desmontar para chegar ao seu conteúdo." #: lang/json/GENERIC_from_json.py msgid "MRE - Frankfurters & Beans" @@ -42564,9 +37586,6 @@ msgid "" "begin to rot once they're removed from this sealed bag. Activate or " "disassemble it to get to its contents." msgstr "" -" MRE - Frankfurters & Beans Um MRE vintage, aindaperfeitamentepreservado" -" e comestível. O conteúdo começará a apodrecer assimque forremovido deste " -"saco selado. Ativar ou desmontar para chegar aoseuconteúdo." #: lang/json/GENERIC_from_json.py msgid "ammo belt linkage" @@ -42579,8 +37598,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small metal linkage from a disintegrating ammo belt." msgstr "" -" ligação de correia de munição Uma pequena articulação de metal de umcintode" -" munição desintegrando." #: lang/json/GENERIC_from_json.py msgid ".223 ammo belt linkage" @@ -42633,8 +37650,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .22 LR round. These can't be hand-reloaded." msgstr "" -" .22 Invólucro LR Um invólucro vazio de uma volta de 22 LR. Estes não podem " -"ser recarregados manualmente." #: lang/json/GENERIC_from_json.py msgid ".30-06 casing" @@ -42668,7 +37683,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .300 Winchester Magnum round." msgstr "" -" .300 Win Mag casingUm invólucro vazio de uma rodada Winchester Magnum .300." #: lang/json/GENERIC_from_json.py msgid ".308 casing" @@ -42691,7 +37705,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty casing from a 7.62x51mm M80 round." msgstr "" -" Invólucro de 7,62x51mmUm invólucro vazio de um círculo M80 de 7,62x51mm." #: lang/json/GENERIC_from_json.py msgid ".32 ACP casing" @@ -42702,7 +37715,7 @@ msgstr[1] "" #. ~ Description for .32 ACP casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .32 ACP round." -msgstr ".32 Gabinete ACP Um invólucro vazio de uma rodada .32 ACP." +msgstr "" #: lang/json/GENERIC_from_json.py msgid ".38 Special casing" @@ -42713,7 +37726,7 @@ msgstr[1] "" #. ~ Description for .38 Special casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .38 Special round." -msgstr ".38 Invólucro especialUm invólucro vazio de um .38 Ronda especial." +msgstr "" #: lang/json/GENERIC_from_json.py msgid ".38 Super casing" @@ -42736,7 +37749,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .40 S&W round." msgstr "" -" .40 Invólucro S & WUm invólucro vazio de uma carreira de .40 S & W." #: lang/json/GENERIC_from_json.py msgid "10mm Auto casing" @@ -42769,7 +37781,7 @@ msgstr[1] "" #. ~ Description for .44 Magnum casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .44 Magnum round." -msgstr ".44 Estojo MagnumUm invólucro vazio de uma volta Magnum .44." +msgstr "" #: lang/json/GENERIC_from_json.py msgid ".454 Casull casing" @@ -42838,8 +37850,6 @@ msgid "" "An empty casing from a .460 Rowland round. It looks deceptively like a " ".45ACP casing." msgstr "" -" .460 Carcaça de Rowland Uma carcaça vazia de uma volta de 0,460Rowland. " -"Parece enganosamente como um invólucro .45ACP." #: lang/json/GENERIC_from_json.py msgid "5x50mm hull" @@ -42851,8 +37861,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty plastic hull from a 5x50mm flechette round." msgstr "" -" Casco de 5x50mmUm casco de plástico vazio de uma rodada de " -"flechettede5x50mm." #: lang/json/GENERIC_from_json.py msgid ".500 S&W Magnum casing" @@ -42877,8 +37885,6 @@ msgid "" "An empty casing from a .50 BMG round. These are rare, so you might want to " "hold onto these." msgstr "" -" 0,50 BMG carcaçaUm invólucro vazio de uma rodada 0,50 BMG. Estes sãoraros, " -"então você pode querer segurar estes." #: lang/json/GENERIC_from_json.py msgid "5.45x39mm casing" @@ -42914,8 +37920,6 @@ msgid "" "An empty casing from a .700 NX round. These are rare, so you might want to " "hold onto these." msgstr "" -" Invólucro .700 NXUm invólucro vazio de uma volta de 700 NX. Estes sãoraros," -" então você pode querer segurar estes." #: lang/json/GENERIC_from_json.py msgid "7.62x54mmR casing" @@ -42926,7 +37930,7 @@ msgstr[1] "" #. ~ Description for 7.62x54mmR casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a 7.62x54mmR round." -msgstr "Invólucro de 7.62x54mmR Uma carcaça vazia de uma volta de 7.62x54mmR." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "7.62x39mm casing" @@ -42948,7 +37952,7 @@ msgstr[1] "" #. ~ Description for 7.62x25mm casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a 7.62x25mm round." -msgstr "Invólucro de 7,62x25mmUm invólucro vazio de uma volta de 7,62x25mm." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "9x19mm casing" @@ -42970,7 +37974,7 @@ msgstr[1] "" #. ~ Description for .357 SIG casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a .357 SIG round." -msgstr ".357 SIG casingUma carcaça vazia de uma rodada SIG .357." +msgstr "" #: lang/json/GENERIC_from_json.py msgid ".357 magnum casing" @@ -43056,13 +38060,6 @@ msgid "" "can be exchanged for food, water, and other services through the Free " "Merchants in the Refugee Center." msgstr "" -" MerchThe Free Merchant Certified Note, também conhecido por " -"nomescomo'c-note' ou 'merch', é uma moeda baseada " -"emnotasamericanas antigas. Notas de cinquenta dólares e maiores são " -"impressascomuma nota promissória assinada pelo tesoureiro dos " -"comercianteslivres, juntamente com um design complexo. A nota explica que " -"isso pode sertrocadopor comida, água e outros serviços através dos " -"Comerciantes LivresnoCentro de Refugiados." #: lang/json/GENERIC_from_json.py msgid "Hub 01 Gold Coin" @@ -43092,11 +38089,6 @@ msgid "" "emblem of a book. There is some text that faintly reads 'Campus Exchange " "Token'." msgstr "" -" FlatCoinEsta é uma moeda que foi achatada em uma máquina de " -"achatamentodemoedas novidade. A máquina foi um pouco alterada de forma " -"grosseira, demodo que o design - que parece ter sido o Mickey Mouse - é " -"recoberto porumemblema manuscrito de um livro. Há algum texto que lê " -"vagamente'CampusExchange Token'." #: lang/json/GENERIC_from_json.py msgid "generic silverware" @@ -43445,8 +38437,6 @@ msgid "" "A fork, if you stab something with it you eat it right away. Wait... " "nevermind." msgstr "" -" garfo de forkA, se você apunhalar algo com isto você comeistoimediatamente." -" Espere ... deixa pra lá." #: lang/json/GENERIC_from_json.py msgid "plastic fork" @@ -43470,7 +38460,7 @@ msgstr[1] "" #. ~ Description for spoon #: lang/json/GENERIC_from_json.py msgid "Do not try to bend the spoon. That is impossible." -msgstr "spoonNão tente dobrar a colher. Isso é impossível." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "plastic spoon" @@ -43652,7 +38642,7 @@ msgstr[1] "" #. ~ Description for foon #: lang/json/GENERIC_from_json.py msgid "Clearly the superior instrument. Sporks are just imitators." -msgstr "foClaramente o instrumento superior. Sporks são apenas imitadores." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "chopsticks" @@ -43773,7 +38763,7 @@ msgstr[1] "" #. ~ Description for pot #: lang/json/GENERIC_from_json.py msgid "Useful for boiling water when cooking spaghetti and more." -msgstr "potUseful para ferver a água ao cozinhar o espaguete e mais." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "cast-iron pot" @@ -43799,9 +38789,6 @@ 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 "" -" Potenciômetro de cobreUseful para ferver a água ao cozinhar o " -"espagueteemais. Feita de cobre, com um revestimento de estanho para " -"impediralixiviação do metal em alimentos ácidos." #: lang/json/GENERIC_from_json.py msgid "casserole" @@ -43844,12 +38831,6 @@ msgid "" " couple of jars at a time, you'd fill it up with rocks or something to " "displace the water above the lids." msgstr "" -" enlatando potA Um pote muito grande de 25 litros, principalmenteparaenvasar" -" alimentos em potes de vidro através do método de banho deágua, embora possa" -" cozinhar alimentos normais da mesma forma. Canningalimentoscom ele vai " -"exigir muita água. Se você está apenas enlatando umpunhado depotes de uma só" -" vez, você o preencheria com pedras ou algo paradeslocar aágua acima das " -"tampas." #: lang/json/GENERIC_from_json.py msgid "cast-iron frying pan" @@ -43862,8 +38843,6 @@ msgstr[1] "" msgid "" "A cast-iron pan. Makes a decent melee weapon, and is used for cooking." msgstr "" -" frigideira panela de ferro fundido. Faz uma arma decente e é " -"usadaparacozinhar." #: lang/json/GENERIC_from_json.py msgid "steel frying pan" @@ -43902,9 +38881,6 @@ 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." msgstr "" -" folha de metal improvisada, grosseiramente martelada em uma panela. " -"Bomosuficiente para cozinhar alimentos e ferver água, mas não tão " -"útilquantoutensílios de cozinha adequados." #: lang/json/GENERIC_from_json.py msgid "makeshift copper pot" @@ -43918,9 +38894,6 @@ msgid "" "A cooking pot crudely hammered out of copper. Good enough to cook food and " "boil water, but not as useful as proper cookware." msgstr "" -" Pote de cobre improvisado Um pote de cozinha grosseiramente " -"marteladodecobre. Bom o suficiente para cozinhar alimentos e ferver água, " -"mas nãotãoútil quanto utensílios de cozinha adequados." #: lang/json/GENERIC_from_json.py msgid "kettle" @@ -43958,8 +38931,6 @@ msgid "" "Items with are not themselves useful but are instead requirements for " "crafting or repairs" msgstr "" -" peças de reposiçãoItens com não são úteis, mas são requisitos " -"paraaelaboração ou reparos" #: lang/json/GENERIC_from_json.py lang/json/fault_from_json.py msgid "drive belt" @@ -43973,9 +38944,6 @@ msgid "" "A synthetic rubber V-belt with steel reinforcement fibers commonly fitted to" " engines or other industrial equipment." msgstr "" -" correia de transmissãoA Correia trapezoidal de borracha sintética " -"comfibrasde reforço de aço comumente montadas em motores ou " -"outrosequipamentosindustriais." #: lang/json/GENERIC_from_json.py msgid "makeshift drive belt" @@ -43989,9 +38957,6 @@ msgid "" "An improvised belt useful for repairing engines or other industrial " "equipment when no better alternative is available." msgstr "" -" cinto de transmissão improvisado Um cinto improvisado útil " -"pararepararmotores ou outros equipamentos industriais quando não há " -"melhoralternativadisponível." #: lang/json/GENERIC_from_json.py lang/json/fault_from_json.py msgid "air filter" @@ -44005,9 +38970,6 @@ msgid "" "A plastic box containing crêped paper used to filter the air supply for " "combustion engines or other industrial equipment." msgstr "" -" filtro de arUma caixa de plástico contendo papel crepom usado para " -"filtrarosuprimento de ar para motores de combustão ou " -"outrosequipamentosindustriais." #: lang/json/GENERIC_from_json.py msgid "makeshift air filter" @@ -44034,8 +38996,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A steel can containing filter paper designed for automotive use." msgstr "" -" filtro automotivoUma lata de aço contendo papel de filtro projetado " -"parausoautomotivo." #: lang/json/GENERIC_from_json.py msgid "makeshift automotive filter" @@ -44049,9 +39009,6 @@ msgid "" "An improvised automotive filter useful for repairing engines or other " "industrial equipment when no better alternative is available." msgstr "" -" filtro automotivo improvisado Um filtro automotivo improvisado " -"útilparareparar motores ou outros equipamentos industriais quando não " -"hámelhoralternativa disponível." #: lang/json/GENERIC_from_json.py msgid "glow plug" @@ -44065,9 +39022,6 @@ msgid "" "A cylindrical heating device designed to be screwed in to a diesel engine to" " aid starting in cold weather." msgstr "" -" plugue de incandescênciaUm dispositivo de aquecimento " -"cilíndricoprojetadopara ser parafusado em um motor a diesel para auxiliar a " -"partidaem climasfrios." #: lang/json/GENERIC_from_json.py msgid "high-pressure pump" @@ -44081,9 +39035,6 @@ msgid "" "An complex mechanical pump capable of achieving high pressures. Far beyond " "anything you could reasonably improvise." msgstr "" -" bomba de alta pressão Uma bomba mecânica complexa capaz de " -"atingiraltaspressões. Muito além de qualquer coisa que você " -"pudesserazoavelmenteimprovisar." #: lang/json/GENERIC_from_json.py msgid "mechanical pump" @@ -44097,8 +39048,6 @@ msgid "" "An simple cast iron mechanical impeller pump. It's not good for much of " "anything on its own." msgstr "" -" bomba mecânicaUma bomba de rotor mecânico de ferro fundido simples. Nãoébom" -" para muita coisa sozinha." #: lang/json/GENERIC_from_json.py msgid "small string" @@ -44174,9 +39123,6 @@ msgid "" "A six-foot long piece of rough rope, woven from natural cordage. Useful for" " some purposes, but not as strong or flexible as proper rope." msgstr "" -" corda improvisada curtaUm pedaço de corda grossa de seis pés decomprimento," -" feito de corda natural. Útil para alguns propósitos, mas nãotão forte " -"ouflexível quanto uma corda adequada." #: lang/json/GENERIC_from_json.py msgid "long makeshift rope" @@ -44204,8 +39150,6 @@ msgid "" "A baseball, good for throwing at enemies. Getting hit with one of these " "hurts a lot more than you might think." msgstr "" -" BaseballA baseball, bom para jogar em inimigos. Ser atingido por " -"umdessesdói muito mais do que você imagina." #: lang/json/GENERIC_from_json.py msgid "football" @@ -44219,8 +39163,6 @@ 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." msgstr "" -" futebolEm um oval feito de couro e corda, é facilmente jogado, mas " -"fazpoucodano. Você poderia desmontar em couro, se quisesse." #: lang/json/GENERIC_from_json.py msgid "basketball" @@ -44232,7 +39174,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A high-quality indoor basketball. You may throw it at zombies." msgstr "" -" basqueteUm basquete interno de alta qualidade. Você pode jogá-lo em zumbis." #: lang/json/GENERIC_from_json.py msgid "hockey puck" @@ -44246,9 +39187,6 @@ msgid "" "A heavy circular block of solid rubber, normally used for playing hockey. " "You can throw it to cause some serious harm." msgstr "" -" hockey puckUm pesado bloco circular de borracha maciça, " -"normalmenteusadopara jogar hockey. Você pode jogá-lo para causar algum dano " -"sério." #: lang/json/GENERIC_from_json.py msgid "makeshift bayonet" @@ -44262,8 +39200,6 @@ msgid "" "A makeshift version of a bayonet that consists of a mere spike with some " "string." msgstr "" -" baioneta improvisada Uma versão improvisada de uma baioneta que " -"consisteemum simples pico com alguma corda." #: lang/json/GENERIC_from_json.py msgid "sledge hammer" @@ -44277,8 +39213,6 @@ msgid "" "A large, heavy hammer. Makes an acceptable melee weapon for the very " "strong, but is nearly useless in the hands of the weak." msgstr "" -" marreta Um martelo grande e pesado. Faz uma arma melee aceitável " -"paraosmuito fortes, mas é quase inútil nas mãos dos fracos." #: lang/json/GENERIC_from_json.py msgid "war hammer" @@ -44292,9 +39226,6 @@ msgid "" "A medieval hammer made for battle. Its odd shape and balance make it an " "excellent weapon, but an ineffective tool." msgstr "" -" Martelo de guerraUm martelo medieval feito para a batalha. Sua " -"formaeequilíbrio estranhos fazem dela uma excelente arma, mas " -"umaferramentaineficaz." #: lang/json/GENERIC_from_json.py msgid "homewrecker" @@ -44308,8 +39239,6 @@ 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." msgstr "" -" homewreckerUm pedaço comprido de madeira com vários pedaços deaçofirmemente" -" amarrados a ele. A arma resultante é desajeitada e lenta, masmuito pesada." #: lang/json/GENERIC_from_json.py msgid "baseball bat" @@ -44321,8 +39250,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A sturdy wood bat. Makes a great melee weapon." msgstr "" -" baseball batA bastão de madeira resistente. Faz uma grande arma " -"corpoacorpo." #: lang/json/GENERIC_from_json.py msgid "aluminum bat" @@ -44336,8 +39263,6 @@ msgid "" "An aluminum baseball bat, lighter than a wooden bat and a little easier to " "swing as a result." msgstr "" -" bastão de alumínioUm bastão de beisebol de alumínio, mais leve que " -"umbastãode madeira e um pouco mais fácil de balançar como resultado." #: lang/json/GENERIC_from_json.py msgid "expandable baton" @@ -44348,12 +39273,12 @@ msgstr[1] "" #. ~ Use action menu_text for expandable baton. #: lang/json/GENERIC_from_json.py msgid "Expand" -msgstr "baton expansívelExpand" +msgstr "" #. ~ Use action msg for expandable baton. #: lang/json/GENERIC_from_json.py msgid "You snap open your baton." -msgstr "Você abre seu bastão." +msgstr "" #. ~ Description for expandable baton #: lang/json/GENERIC_from_json.py @@ -44361,8 +39286,6 @@ msgid "" "A telescoping baton that collapses for easy storage. Makes an excellent " "melee weapon. Activate to expand." msgstr "" -" Um bastão telescópico que entra em colapso para facilitar oarmazenamento. " -"Faz uma excelente arma corpo a corpo. Ative para expandir." #: lang/json/GENERIC_from_json.py msgid "expandable baton (extended)" @@ -44373,12 +39296,12 @@ msgstr[1] "" #. ~ Use action menu_text for expandable baton (extended). #: lang/json/GENERIC_from_json.py msgid "Collapse" -msgstr "bastão expansível (estendido) Collapse" +msgstr "" #. ~ Use action msg for expandable baton (extended). #: lang/json/GENERIC_from_json.py msgid "You collapse your baton." -msgstr "Você desmorona seu bastão." +msgstr "" #. ~ Description for expandable baton (extended) #: lang/json/GENERIC_from_json.py @@ -44386,8 +39309,6 @@ msgid "" "A telescoping baton that collapses for easy storage. Makes an excellent " "melee weapon. Activate to collapse." msgstr "" -" Um bastão telescópico que entra em colapso para facilitar oarmazenamento. " -"Faz uma excelente arma corpo a corpo. Ative para recolher." #: lang/json/GENERIC_from_json.py msgid "quarterstaff" @@ -44401,8 +39322,6 @@ msgid "" "A smooth and sturdy staff with a leather-wrapped grip. Light and well-" "balanced, it is surprisingly easy to handle." msgstr "" -" quarterstaffUm bastão robusto e robusto com um punho envolto em couro. " -"Levee bem equilibrado, é surpreendentemente fácil de manusear." #: lang/json/GENERIC_from_json.py msgid "ironshod quarterstaff" @@ -44417,9 +39336,6 @@ msgid "" "reinforced with metal bands and caps. Durable and well-balanced, it is " "surprisingly easy to handle." msgstr "" -" bastão de ironshod Uma equipe suave e resistente com uma " -"empunhaduradecouro, que foi reforçada com bandas e protetores de metal. " -"Durável ebemequilibrado, é surpreendentemente fácil de manusear." #: lang/json/GENERIC_from_json.py msgid "mace" @@ -44433,8 +39349,6 @@ 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." msgstr "" -" maceA arma medieval que consiste em um cabo de madeira com umaextremidadede" -" ferro pesado. É pesado e lento, mas seu dano esmagador édevastador." #: lang/json/GENERIC_from_json.py msgid "morningstar" @@ -44449,9 +39363,6 @@ msgid "" " on the end. It deals devastating crushing damage, with a small amount of " "piercing to boot." msgstr "" -" morningstarUma arma medieval que consiste em um cabo de madeira com " -"umabolade ferro pesada e pontiaguda no final. Ele causa dano " -"esmagadordevastador, com uma pequena quantidade de piercing." #. ~ Description for mace #: lang/json/GENERIC_from_json.py @@ -44459,9 +39370,6 @@ msgid "" "A light, cheaply made replica of a medieval weapon that would normally " "consist of a wood handle with a heavy iron end." msgstr "" -" Uma réplica leve, barata feita de uma arma medieval " -"quenormalmenteconsistiria de um cabo de madeira com uma ponta pesada de " -"ferro." #. ~ Description for mace #: lang/json/GENERIC_from_json.py @@ -44469,8 +39377,6 @@ msgid "" "A medieval weapon consisting of a wood handle with a heavy iron end. That " "iron end feels a bit loose." msgstr "" -" Uma arma medieval que consiste em um cabo de madeira com uma " -"extremidadedeferro pesado. Aquele fim de ferro parece um pouco solto." #. ~ Description for morningstar #: lang/json/GENERIC_from_json.py @@ -44478,9 +39384,6 @@ 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 "" -" Uma réplica leve, barata feita de uma arma medieval " -"quenormalmenteconsistiria de um cabo de madeira com uma pesada bola de " -"ferrocom pontasno final." #. ~ Description for morningstar #: lang/json/GENERIC_from_json.py @@ -44488,9 +39391,6 @@ 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 "" -" Uma arma medieval que consiste em um cabo de madeira com uma bola " -"deferropesada e pontiaguda na ponta. Esse fim parece mais leve do " -"quedeveria." #: lang/json/GENERIC_from_json.py msgid "war flail" @@ -44532,8 +39432,6 @@ msgid "" "A flat wooden club with sharpened pieces of stone sticking to both of its " "sides." msgstr "" -" improvisado macuahuitlUm clube de madeira plano com peças afiadas depedraem" -" ambos os lados." #: lang/json/GENERIC_from_json.py msgid "tonfa" @@ -44548,9 +39446,6 @@ msgid "" "Okinawan weapon, it consists of a stick with a perpendicular handle attached" " a third of the way down its length." msgstr "" -" Um cassetete de plástico duro comumente empregado pelapolícia. " -"Originalmente uma arma de Okinawa, consiste em uma vara com " -"umcaboperpendicular preso a um terço do seu comprimento." #: lang/json/GENERIC_from_json.py msgid "wooden tonfa" @@ -44565,9 +39460,6 @@ msgid "" "Originally an Okinawan weapon, it consists of a stick with a perpendicular " "handle attached a third of the way down its length." msgstr "" -" madeira tonfa Um cassetete de madeira robusto do tipo " -"comumenteempregadopela polícia. Originalmente uma arma de Okinawa, consiste " -"em umavara comum cabo perpendicular preso a um terço do seu comprimento." #: lang/json/GENERIC_from_json.py msgid "PR-24 baton (retracted)" @@ -44578,12 +39470,12 @@ msgstr[1] "" #. ~ Use action menu_text for PR-24 baton (retracted). #: lang/json/GENERIC_from_json.py msgid "Extend" -msgstr "Bastão PR-24 (retraído) Estender" +msgstr "" #. ~ Use action msg for PR-24 baton (retracted). #: lang/json/GENERIC_from_json.py msgid "You snap open your PR-24 baton." -msgstr "Você abre seu bastão PR-24." +msgstr "" #. ~ Description for PR-24 baton (retracted) #: lang/json/GENERIC_from_json.py @@ -44592,9 +39484,6 @@ msgid "" "used by law enforcement all over the world. The PR designation is rumored " "to mean Public Relations. Activate to extend." msgstr "" -" O bastão Monadnock PR-24 é um bastão dobrável, leve e de " -"manuseiolateralusado pelas forças de segurança em todo o mundo. Diz-se que " -"adesignação deRP significa Relações Públicas. Ative para estender." #: lang/json/GENERIC_from_json.py msgid "PR-24 baton (extended)" @@ -44605,12 +39494,12 @@ msgstr[1] "" #. ~ Use action menu_text for PR-24 baton (extended). #: lang/json/GENERIC_from_json.py msgid "Retract" -msgstr "Bastão PR-24 (estendido) Retrair" +msgstr "" #. ~ Use action msg for PR-24 baton (extended). #: lang/json/GENERIC_from_json.py msgid "You collapse your PR-24 baton." -msgstr "Você desmorona seu bastão PR-24." +msgstr "" #. ~ Description for PR-24 baton (extended) #: lang/json/GENERIC_from_json.py @@ -44619,9 +39508,6 @@ msgid "" "used by law enforcement all over the world. The PR designation is rumored " "to mean Public Relations. Activate to retract." msgstr "" -" O bastão Monadnock PR-24 é um bastão dobrável, leve e de " -"manuseiolateralusado pelas forças de segurança em todo o mundo. Diz-se que " -"adesignação deRP significa Relações Públicas. Ative para recolher." #: lang/json/GENERIC_from_json.py msgid "bokken" @@ -44636,9 +39522,6 @@ msgid "" "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 "" -" bokken Essa é uma katana de 'treinamento' em madeiramaciça, " -"elaborada para imitar o peso e o equilíbrio da coisa real. Apesar dafaltade " -"uma ponta afiada de metal, ainda é capaz de infligir ferimentosmortais." #. ~ Description for bokken #: lang/json/GENERIC_from_json.py @@ -44646,8 +39529,6 @@ msgid "" "This is a solid wood 'training' katana, but feels far too light to make an " "effective weapon." msgstr "" -" Esta é uma katana de 'madeira' de madeira sólida, mas " -"parecelevedemais para fazer uma arma eficaz." #. ~ Description for bokken #: lang/json/GENERIC_from_json.py @@ -44655,8 +39536,6 @@ msgid "" "This is a solid wood 'training' katana, but it looks to be mass produced, " "and not quite as effective as the real deal." msgstr "" -" Esta é uma katana de 'formação' de madeira maciça, mas " -"pareceserproduzida em massa, e não tão eficaz quanto o negócio real." #: lang/json/GENERIC_from_json.py msgid "cudgel" @@ -44670,10 +39549,6 @@ 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." msgstr "" -" cudgelUma esbelta longa haste de madeira, " -"enquantotradicionalmentepretendida como uma ferramenta de treinamento para " -"muitosmovimentos deduelo, ainda faz uma boa arma corpo a corpo em uma " -"pitada." #: lang/json/GENERIC_from_json.py msgid "Mjölnir" @@ -44691,12 +39566,6 @@ msgid "" "Shall possess the power to...\n" "CRUSH!'" msgstr "" -" Mjölnir Um grande martelo, forjado a partir do coração de umaestrelamoribunda. Ele tem a inscrição: \n" -" \n" -" Qualquer detém este martelo,\n" -" Seele for digno, \n" -" Será o poder para ... \n" -" CRUSH!'\n" #: lang/json/GENERIC_from_json.py msgid "pointy stick" @@ -44719,7 +39588,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A stout pole with an improvised grip and a fire-hardened point." msgstr "" -" lança de madeira com uma pegada improvisada e um ponto endurecido pelofogo." #: lang/json/GENERIC_from_json.py msgid "forked spear" @@ -44734,9 +39602,6 @@ msgid "" "specialized for catching weapons, and not intended for extended use in " "combat." msgstr "" -" lança bifurcadaPólo de madeira com três pontas amarradas a ele " -"eaderênciadecente. É especializado para pegar armas e não para usoprolongado" -" emcombate." #: lang/json/GENERIC_from_json.py msgid "copper spear" @@ -44747,7 +39612,7 @@ msgstr[1] "" #. ~ Description for copper spear #: lang/json/GENERIC_from_json.py msgid "A stout wooden pole with a spearhead worked from copper." -msgstr "lança de cobre com uma ponta de lança trabalhada em cobre." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "steel spear" @@ -44759,7 +39624,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A stout wooden pole with a hand-forged steel spearhead." msgstr "" -" lança de aço Pólo de madeira robusto com ponta de lança em aço forjadoàmão." #: lang/json/GENERIC_from_json.py msgid "pipe spear" @@ -44770,7 +39634,7 @@ msgstr[1] "" #. ~ Description for pipe spear #: lang/json/GENERIC_from_json.py msgid "A stout metal pole with a sharp point." -msgstr "spear pipe Um pólo de metal robusto com uma ponta afiada." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "sharpened rebar" @@ -44784,8 +39648,6 @@ msgid "" "A somewhat sharpened piece of rebar, it is still better at bashing than " "stabbing but the added flexibility is nice." msgstr "" -" sharpened rebarUm pedaço de vergalhão um tanto afiado, ainda é " -"melhorematacar do que esfaquear, mas a flexibilidade adicional é boa." #: lang/json/GENERIC_from_json.py msgid "qiang" @@ -44800,9 +39662,6 @@ msgid "" " One of the four major weapons in folklore, alongside the dao sabre, jian " "sword, and gun staff." msgstr "" -" Uma antiga lança chinesa, tipicamente com uma borla logo abaixo da " -"pontadelança. Uma das quatro principais armas do folclore, ao lado do " -"sabredao, espada jian e cajado de armas." #: lang/json/GENERIC_from_json.py msgid "halberd" @@ -44816,8 +39675,6 @@ msgid "" "This is a versatile polearm with an axe blade, a spike, and other fun things" " attached to a long stick." msgstr "" -" halberdEste é um polainm versátil com uma lâmina de machado, um " -"espigãoeoutras coisas divertidas presas a uma vara longa." #. ~ Description for halberd #: lang/json/GENERIC_from_json.py @@ -44825,8 +39682,6 @@ 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 "" -" Esta é uma réplica maçante e barata de uma arma com uma lâmina demachado, " -"um espigão e outras coisas divertidas presas a uma vara longa." #: lang/json/GENERIC_from_json.py msgid "glaive" @@ -44838,8 +39693,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A sturdy polearm with a sizable, single-edged blade on the end." msgstr "" -" glaiveUma armadura resistente com uma lâmina considerável de gume " -"úniconofinal." #: lang/json/GENERIC_from_json.py msgid "naginata" @@ -44854,9 +39707,6 @@ msgid "" "and other Japanese blades. Occasionally used by samurai in early periods, " "or by their wives in defense of the household." msgstr "" -" naginataUma armadura resistente com uma lâmina curva, feita da " -"mesmamaneiraque a katana e outras lâminas japonesas. Ocasionalmente usado " -"porsamuraisem períodos precoces, ou por suas esposas em defesa do lar." #. ~ Description for naginata #: lang/json/GENERIC_from_json.py @@ -44886,8 +39736,6 @@ msgid "" "This sturdy steel shaft with a sword blade at the end is good for both " "slashing and stabbing." msgstr "" -" naginata survivorEste eixo de aço resistente com uma lâmina de " -"espadanofinal é bom tanto para cortar e esfaquear." #. ~ Description for wooden javelin #: lang/json/GENERIC_from_json.py @@ -44895,8 +39743,6 @@ msgid "" "A fire-hardened wooden spear honed to a sharper point. The grip area has " "been carved and covered for better grip." msgstr "" -" Uma lança de madeira endurecida pelo fogo afiada a um ponto mais aguçado. " -"Aárea de aderência foi esculpida e coberta para melhor aderência." #. ~ Description for iron javelin #: lang/json/GENERIC_from_json.py @@ -44904,8 +39750,6 @@ msgid "" "An iron-tipped wooden throwing spear. The grip area has been carved and " "covered for better grip." msgstr "" -" Uma lança de lança de ferro com ponta de ferro. A área de " -"aderênciafoiesculpida e coberta para melhor aderência." #: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py #: lang/json/MONSTER_from_json.py @@ -44952,7 +39796,7 @@ msgstr[1] "" #. ~ Description for dory #: lang/json/GENERIC_from_json.py msgid "A well-made spear with a bronze head, Greek in origin." -msgstr "doryA lança bem feita com cabeça de bronze, origem grega." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "ji" @@ -44967,9 +39811,6 @@ msgid "" "not earlier. It combines a spear head with the perpendicular blade of the " "earlier ge or dagger-axe." msgstr "" -" jiEsta é uma arma de bronze que se originou na dinastia Shang da China, " -"senão antes. Ele combina uma ponta de lança com a lâmina " -"perpendiculardoprimeiro ou machado de adaga." #. ~ Description for pike #: lang/json/GENERIC_from_json.py @@ -44988,15 +39829,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A stout wooden pole with a sharp stone spearhead." msgstr "" -" de flash integrante gunintegral tazerintegral 9 " -"milímetrosfirearmintegral5,56 milímetros firearmintegral 7,62 " -"milímetrosfirearmintegral beanbagshotgunintegral teargas " -"launcherintegrallauncherintegral flechaflamethrowerintegral firearmintegral " -"8x40mm granadafirearmintegral calibre50 firearmintegral a laser " -"launcherintegral plasmaweaponintegralejectorintegral electromagnética " -"railgunintegral ácidothrowerintegralelectro casterintegral EMP " -"projectorstone spearA stout postede madeira comuma ponta de lança pedra " -"afiada." #: lang/json/GENERIC_from_json.py msgid "2-by-sword" @@ -45060,8 +39892,6 @@ msgid "" "This is a dull, cheaply made replica of an ancient Chinese doubled-edged " "straight sword, with an ornate guard." msgstr "" -" jianThis é uma réplica maçante e barata de uma antiga espada chinesa " -"dedoisgumes, com um guarda ornamentado." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -45076,8 +39906,6 @@ msgid "" "This is a dull, cheaply made replica of a curved sword, associated with " "various Middle Eastern and Central Asian countries." msgstr "" -" cimitarra Esta é uma réplica maçante e barata de uma espada curva, " -"associadaa vários países do Médio Oriente e da Ásia Central." #: lang/json/GENERIC_from_json.py msgid "estoc" @@ -45121,9 +39949,6 @@ msgid "" "This is a dull, cheaply-made replica of the classic medieval longsword. It " "requires a larger baldric or scabbard, compared to smaller swords." msgstr "" -" longswordEsta é uma réplica maçante e barata da espada " -"longamedievalclássica. Requer um maior baldric ou bainha, comparado a " -"espadasmenores." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -45138,8 +39963,6 @@ msgid "" "This is a dull, cheaply made replica of a classic medieval sword, just the " "right size to use one-handed." msgstr "" -" arming swordEsta é uma réplica maçante e barata de uma " -"espadamedievalclássica, do tamanho certo para usar com uma mão." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "tanto" @@ -45153,8 +39976,6 @@ msgid "" "This is a dull, cheaply made replica of a long Japanese knife, typically " "used as a samurai's backup weapon." msgstr "" -" Essa é uma réplica maçante e barata de uma longa faca japonesa, " -"normalmenteusada como arma reserva de um samurai." #. ~ Description for tanto #: lang/json/GENERIC_from_json.py @@ -45163,9 +39984,6 @@ msgid "" "weapon, before the advent of the larger wakizashi. This one doesn't feel " "well-balanced" msgstr "" -" Longas facas japonesas como este remake mais moderno eram a arma " -"reservadosamurai, antes do advento do wakizashi maior. Este não se " -"sentebemequilibrado" #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "nodachi" @@ -45179,8 +39997,6 @@ 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 "" -" nodachiEsta é uma réplica maçante e barata de uma enorme espada curvadeduas" -" mãos do Japão. É surpreendentemente leve para o seu tamanho." #. ~ Description for nodachi #: lang/json/GENERIC_from_json.py @@ -45188,9 +40004,6 @@ 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 "" -" Esta é uma enorme espada curva de duas mãos do Japão. " -"Ésurpreendentementeleve para seu tamanho, mas também muito mais flexível " -"doque uma espadadeveria ser." #: lang/json/GENERIC_from_json.py msgid "fencing foil" @@ -45205,9 +40018,6 @@ msgid "" "fencing foil is rather useless as a weapon, due to its flexible shaft and " "dull tip." msgstr "" -" Uma arma utilizada para esgrima, o mais nobre de todos osesportes. " -"Infelizmente, uma folha de esgrima é bastante inútil como umaarma, devidoao " -"seu eixo flexível e ponta maçante." #: lang/json/GENERIC_from_json.py msgid "fencing epee" @@ -45222,9 +40032,6 @@ msgid "" "heaviest and stiffest of the fencing weapons, and therefore perhaps the most" " useful." msgstr "" -" Esgrima epeeA arma usada para esgrima, o mais nobre de todos os esportes. " -"Aespada é a mais pesada e mais rígida das armas de esgrima e, portanto, " -"talvez a mais útil." #: lang/json/GENERIC_from_json.py msgid "fencing saber" @@ -45238,9 +40045,6 @@ msgid "" "A weapon used for fencing, the most noble of all sports. The fencing saber " "is marginally shorter than the foil and epee, but no less effective." msgstr "" -" esgrima sabreUma arma usada para esgrima, o mais nobre de todos osesportes." -" O sabre de esgrima é ligeiramente mais curto que o papel alumínioe aespada," -" mas não menos eficaz." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -45255,8 +40059,6 @@ msgid "" "This is a dull, cheaply made replica of a broad saber known for its use by " "sailors and pirates." msgstr "" -" cutlassEsta é uma réplica maçante, barata feita de um sabre " -"largoconhecidopelo seu uso por marinheiros e piratas." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -45269,7 +40071,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "This is a dull, cheaply made replica of a rare sword from Japan." msgstr "" -"katanaEsta é uma réplica maçante e barata de uma espada rara do Japão." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -45284,8 +40085,6 @@ msgid "" "This is a dull, cheaply made replica of a huge two-handed sword from " "Germany. It still packs a wallop." msgstr "" -" zweihänder Esta é uma réplica maçante e barata de uma enorme espada " -"deduasmãos da Alemanha. Ainda embala uma pancada." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -45301,9 +40100,6 @@ msgid "" "the 16th, 17th, and 18th centuries. Called 'broad' to contrast with the " "slimmer rapiers." msgstr "" -" Esta é uma réplica maçante e barata de uma espada moderna e antiga " -"usadanosséculos XVI, XVII e XVIII. Chamado de\"amplo\" para contrastar " -"comosfloretes mais magros." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "cavalry saber" @@ -45317,8 +40113,6 @@ msgid "" "This is a dull, cheap replica of a curved sword associated with cavalry, " "from the Early Modern period onwards." msgstr "" -" sabre de cavalariaEsta é uma réplica maçante e barata de uma " -"espadacurvaassociada à cavalaria, desde o início da era moderna." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "rapier" @@ -45333,9 +40127,6 @@ msgid "" " It looks like the preferred weapon of gentlemen and swashbucklers. Light " "and quick, it makes any battle a stylish battle." msgstr "" -" rapierEsta é uma réplica barata de uma espada fina com um protetor " -"demãoornamentado. Parece a arma preferida dos cavalheiros e fanfarrões. " -"Leveerápido, torna qualquer batalha uma batalha elegante." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py #: lang/json/TOOL_from_json.py @@ -45350,8 +40141,6 @@ msgid "" "This is a dull, cheap replica of the more common wakizashi. Smaller and " "lighter than a katana, but still effective in combat." msgstr "" -" wakizashiEsta é uma réplica maçante e barata do wakizashi mais comum. " -"Menore mais leve que uma katana, mas ainda efetivo em combate." #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "kris" @@ -45365,8 +40154,6 @@ msgid "" "This is a dull, cheap replica of a wavy bladed dagger that comes from " "Southeast Asia." msgstr "" -" kris Esta é uma réplica maçante e barata de um punhal ondulado que " -"vemdosudeste da Ásia." #: lang/json/GENERIC_from_json.py msgid "lajatang" @@ -45380,8 +40167,6 @@ 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 "" -" lajatangAn arma exótica composta por um longo pólo de madeira " -"comlâminascurvas em cada extremidade. Pode ser mortal em mãos habilidosas." #: lang/json/GENERIC_from_json.py msgid "alien resin chunk" @@ -45415,8 +40200,6 @@ msgstr "" msgid "" "A large sheet of glass. Easily shattered. Useful for repairing windows." msgstr "" -" folha de vidroUma grande folha de vidro. Facilmente quebrado. " -"Útilparareparar janelas." #: lang/json/GENERIC_from_json.py msgid "sheet of reinforced glass" @@ -45428,7 +40211,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A large sheet of glass strengthened with steel wiring." msgstr "" -" folha de vidro reforçado Uma grande folha de vidro reforçada com fiosdeaço." #: lang/json/GENERIC_from_json.py msgid "pane of reinforced glass" @@ -45440,8 +40222,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small pane of glass strengthened with steel wiring." msgstr "" -" painel de vidro reforçadoUm pequeno painel de vidro reforçado com " -"fiosdeaço." #: lang/json/GENERIC_from_json.py msgid "peephole" @@ -45455,8 +40235,6 @@ msgid "" "A metal cylinder with a small lens inside intended to be installed on a " "door." msgstr "" -" PeepholeUm cilindro de metal com uma pequena lente no interior " -"destinadoaser instalado em uma porta." #: lang/json/GENERIC_from_json.py msgid "pipe" @@ -45469,8 +40247,6 @@ msgstr[1] "" msgid "" "A steel pipe, makes a good melee weapon. Useful in a few crafting recipes." msgstr "" -" Um tubo de aço, faz uma boa arma corpo a corpo. Útil em algumas " -"receitasdeartesanato." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "spike" @@ -45484,8 +40260,6 @@ msgid "" "A large and slightly misshapen spike, could do some damage mounted on a " "vehicle." msgstr "" -" spikeA spike grande e ligeiramente disforme, poderia fazer algumdanomontado" -" em um veículo." #: lang/json/GENERIC_from_json.py msgid "copper tubing" @@ -45499,9 +40273,6 @@ 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." msgstr "" -" tubo de cobreUm tubo de cobre, muito fino para ser muito usado como " -"umaarmabranca, mas fará se nada mais estiver disponível. Útil em " -"algumasreceitasde artesanato." #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" @@ -45516,10 +40287,6 @@ msgid "" "durable, this could be cast into various shapes for construction or ground " "down to a powder, for more... high-profile applications." msgstr "" -" lingote de alumínio Um pequeno lingote de alumínio, " -"padronizadoparaprocessamento posterior. Leve, mas durável, pode ser moldado " -"emváriasformas para construção ou triturado até um pó, para mais " -"...aplicações dealto perfil." #: lang/json/GENERIC_from_json.py msgid "scrap copper" @@ -45531,8 +40298,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small chunk of copper, usable for crafting or repairs." msgstr "" -" sucata de cobreUm pequeno pedaço de cobre, utilizável para " -"fazerouconsertar." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "mattress" @@ -45581,8 +40346,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A splintered piece of wood, could be used as a skewer or for kindling." msgstr "" -" madeira lascadaUma peça de madeira lascada, pode ser usada como um " -"espetooupara um fogão." #: lang/json/GENERIC_from_json.py msgid "heavy stick" @@ -45607,8 +40370,6 @@ msgid "" "A long stick. Makes a decent melee weapon, and can be broken into heavy " "sticks for crafting." msgstr "" -" vara longa Uma vara longa. Faz uma arma decente, e pode ser " -"quebradaembastões pesados para ser trabalhada." #: lang/json/GENERIC_from_json.py msgid "long pole" @@ -45693,10 +40454,6 @@ msgid "" " or portable stove. It is shallower than a proper pot or pan, and lacks the" " integrated heating elements modern mess kits have." msgstr "" -" bagunçaUma bandeja e bandeja de estilo militar compacto, " -"projetadaparaaquecer alimentos em fogo ou fogão portátil. É mais raso do que" -" umapanelaou frigideira adequada e não possui os elementos de " -"aquecimentointegradosque os modernos kits de bagunça têm." #: lang/json/GENERIC_from_json.py msgid "radio car box" @@ -45710,8 +40467,6 @@ msgid "" "A RC car, with radio-control and batteries included! Disassemble to unpack " "and enjoy." msgstr "" -" radio car boxUm carro RC, com controle de rádio e pilhas " -"incluídas!Desmontepara desembalar e aproveite." #: lang/json/GENERIC_from_json.py msgid "light detector" @@ -45725,8 +40480,6 @@ msgid "" "This is a photodiode on a chip, designed to convert incoming light to " "electrical energy for quantification." msgstr "" -" detector de luz Este é um fotodiodo em um chip, projetado para converterluz" -" de entrada em energia elétrica para quantificação." #: lang/json/GENERIC_from_json.py msgid "glass prism" @@ -45740,8 +40493,6 @@ msgid "" "This is a high quality crystal glass prism for separating and redirecting " "light." msgstr "" -" prisma de vidro Este é um prisma de cristal de alta qualidade para separare" -" redirecionar a luz." #: lang/json/GENERIC_from_json.py msgid "small glass tube" @@ -45755,8 +40506,6 @@ msgid "" "This is a small glass tube. What more could you possibly want to know about" " it?" msgstr "" -" tubo de vidro pequeno Este é um pequeno tubo de vidro. O que mais " -"vocêpoderia querer saber sobre isso?" #: lang/json/GENERIC_from_json.py msgid "plastic stopcock" @@ -45839,8 +40588,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A standard alternator used to power vehicle electrical systems." msgstr "" -" alternador alternador do veículoUm alternador padrão usado " -"paraalimentarsistemas elétricos do veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "motorbike alternator" @@ -45854,8 +40601,6 @@ msgid "" "A compact lightweight alternator used to power small vehicle electrical " "systems." msgstr "" -" alternador de moto Um alternador compacto e leve usado " -"paraalimentarsistemas elétricos de veículos pequenos." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "bicycle alternator" @@ -45867,8 +40612,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A very lightweight alternator used to power a bicycle's headlights." msgstr "" -" alternador de bicicletasUm alternador muito leve usado para " -"alimentarosfaróis de uma bicicleta." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "truck alternator" @@ -45882,8 +40625,6 @@ msgid "" "A larger and more powerful alternator used to power vehicle electrical " "systems." msgstr "" -" alternador de caminhãoUm alternador maior e mais potente usadoparaalimentar" -" sistemas elétricos de veículos." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "7.5kW generator" @@ -45897,8 +40638,6 @@ msgid "" "A bulky but efficient electrical generator designed to be attached to an " "engine." msgstr "" -" Gerador de 7,5 kW Um gerador elétrico volumoso, mas eficiente, " -"projetadopara ser acoplado a um motor." #: lang/json/GENERIC_from_json.py msgid "rebar grate" @@ -45912,8 +40651,6 @@ msgid "" "Interlocked sections of rebar that allows for light and effective " "reinforcement of vehicle sections." msgstr "" -" grade de vergalhões Secções bloqueadas de vergalhões que permitem " -"oreforçoleve e efetivo das seções do veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "shock absorber" @@ -45928,9 +40665,6 @@ msgid "" "section, protects that section from impacts. The springs can absorb a " "surprising amount of damage." msgstr "" -" amortecedor de choques Esta combinação improvisada de molas e sucata, " -"quandofixada a uma seção de veículo, protege essa seção dos impactos. As " -"molas podem absorver uma quantidade surpreendente de dano." #: lang/json/GENERIC_from_json.py msgid "wood boat hull" @@ -45944,9 +40678,6 @@ 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." msgstr "" -" barco de madeira hullUma prancha de madeira que mantém o barcoflutuando. " -"Adicione cascos de barco a um veículo até que ele flutue. Emseguida, conecte" -" remos ou um motor para fazer o barco se mover." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "plastic boat hull" @@ -45961,9 +40692,6 @@ msgid "" "vehicle until it floats. Then attach oars or a motor to get the boat to " "move." msgstr "" -" casco de barco de plásticoUma folha de plástico rígida que mantém " -"obarcoflutuando. Adicione cascos de barco a um veículo até que ele flutue. " -"Emseguida, conecte remos ou um motor para fazer o barco se mover." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "carbon fiber boat hull" @@ -45978,9 +40706,6 @@ msgid "" "vehicle until it floats. Then attach oars or a motor to get the boat to " "move." msgstr "" -" folha de fibra de carbono que mantém o barco flutuando. Adicione " -"cascosdebarco a um veículo até que ele flutue. Em seguida, conecte remos " -"ouummotor para fazer o barco se mover." #: lang/json/GENERIC_from_json.py msgid "oars" @@ -45991,7 +40716,7 @@ msgstr[1] "" #. ~ Description for oars #: lang/json/GENERIC_from_json.py msgid "Oars for a boat." -msgstr "Caso contrário, para um barco." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "sail" @@ -46013,7 +40738,7 @@ msgstr[1] "" #. ~ Description for inflatable section #: lang/json/GENERIC_from_json.py msgid "An inflatable boat section." -msgstr "seção inflávelUma seção inflável do barco." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "inflatable airbag" @@ -46024,7 +40749,7 @@ msgstr[1] "" #. ~ Description for inflatable airbag #: lang/json/GENERIC_from_json.py msgid "An inflatable airbag." -msgstr "airbag inflávelUma bolsa a ar inflável." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "wire basket" @@ -46035,7 +40760,7 @@ msgstr[1] "" #. ~ Description for wire basket #: lang/json/GENERIC_from_json.py msgid "A large wire basket from a shopping cart." -msgstr "cesta de arameUma cesta de arame grande de um carrinho de compras." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "folding wire basket" @@ -46047,8 +40772,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A large wire basket from a shopping cart, modified to be foldable." msgstr "" -" cesto de arame dobrávelUm cesto de arame grande de um carrinho decompras, " -"modificado para ser dobrável." #: lang/json/GENERIC_from_json.py msgid "bike basket" @@ -46060,7 +40783,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A simple bike basket. It is small and foldable." msgstr "" -" cesta de bicicletaUma cesta de bicicleta simples. É pequeno e dobrável." #: lang/json/GENERIC_from_json.py msgid "cargo carrier" @@ -46074,8 +40796,6 @@ msgid "" "A heavy frame outfitted with tie-downs and attachment points for carrying " "cargo." msgstr "" -" transportadora de cargaUm chassi pesado equipado com amarras e " -"pontosdefixação para o transporte de carga." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "floor trunk" @@ -46104,11 +40824,6 @@ msgid "" "meant to hold large animals for transport. Use it on a suitable animal to " "capture, use it on an empty tile to release." msgstr "" -" transportadora de gadoUma estrutura pesada equipada com amarras e " -"pontosdefixação para transporte de carga, com grades adicionais para " -"manterumanimal grande no lugar. Destina-se a manter grandes animais " -"paraotransporte. Use-o em um animal adequado para capturar, use-o em " -"umapeçavazia para liberar." #: lang/json/GENERIC_from_json.py msgid "animal locker" @@ -46124,11 +40839,6 @@ msgid "" " 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 "" -" armário de animaisUm armário usado para conter animais com " -"segurançaduranteo transporte, se instalado corretamente. Há espaço para " -"alimentosde origemanimal e outros produtos de higiene animal. Destina-se a " -"manteranimaismédios ou pequenos para o transporte. Use-o em um animal " -"adequadoparacapturar, use-o em uma peça vazia para liberar." #: lang/json/GENERIC_from_json.py msgid "vehicle controls" @@ -46140,8 +40850,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A set of various vehicle controls. Useful for crafting." msgstr "" -" controles do veículo Um conjunto de vários controles do veículo. " -"Útilparaelaborar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "dashboard" @@ -46156,8 +40864,6 @@ msgid "" "A vehicle instrument panel with various gauges and switches. Useful for " "crafting." msgstr "" -" painel de instrumentosUm painel de instrumentos do veículo " -"comváriosmedidores e interruptores. Útil para elaborar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "electronics control unit" @@ -46178,8 +40884,6 @@ msgid "" "Fully electronic vehicle control system. You could control it remotely if " "you had proper tools." msgstr "" -" Controles de acionamento por fioControle totalmente eletrônico doveículo. " -"Você poderia controlá-lo remotamente se tivesse ferramentasadequadas." #: lang/json/GENERIC_from_json.py msgid "robot driving unit" @@ -46194,10 +40898,6 @@ msgid "" "driving an unmanned vehicle. Its AI is not functional, but it should still " "have some sort of maintenance mode." msgstr "" -" unidade de acionamento de robôsUm conjunto de servos, " -"microcontroladoreseoutros dispositivos, juntos capazes de dirigir um veículo" -" nãotripulado. Seu AI não é funcional, mas ainda deve ter algum tipo de " -"mododemanutenção." #: lang/json/GENERIC_from_json.py msgid "massive engine block" @@ -46211,8 +40911,6 @@ msgid "" "The beginnings of a massive gas or diesel engine. It's not good for much of" " anything on its own." msgstr "" -" bloco de motor maciçoO início de um enorme motor a gás ou diesel. Não " -"ébompara muita coisa sozinha." #: lang/json/GENERIC_from_json.py msgid "large engine block" @@ -46226,8 +40924,6 @@ msgid "" "The beginnings of a large gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -" grande bloco de motorO começo de um grande motor a gás ou diesel. Não " -"ébompara muita coisa sozinha." #: lang/json/GENERIC_from_json.py msgid "medium engine block" @@ -46241,8 +40937,6 @@ msgid "" "The beginnings of a medium gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -" bloco médio do motorOs princípios de um motor a gás ou diesel médio. " -"Nãoébom para muita coisa sozinha." #: lang/json/GENERIC_from_json.py msgid "small engine block" @@ -46256,8 +40950,6 @@ msgid "" "The beginnings of a small gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -" bloco de motor pequenoO começo de um pequeno motor a gás ou a diesel. " -"Nãoébom para muita coisa sozinha." #: lang/json/GENERIC_from_json.py msgid "tiny engine block" @@ -46271,8 +40963,6 @@ msgid "" "The beginnings of a tiny gas or diesel engine. It's not good for much of " "anything on its own." msgstr "" -" minúsculo bloco de motorO começo de um minúsculo motor a gás ou diesel. " -"Nãoé bom para muita coisa sozinha." #: lang/json/GENERIC_from_json.py msgid "steel boom" @@ -46286,8 +40976,6 @@ msgid "" "A large rigid steel boom. If attached to a frame it could be used to lift " "up to 20 metric tonnes." msgstr "" -" lança de açoUma lança de aço rígida grande. Se anexado a um quadro, ele " -"pode ser usado para elevar até 20 toneladas métricas." #: lang/json/GENERIC_from_json.py msgid "telescopic cantilever" @@ -46301,9 +40989,6 @@ msgid "" "A small steel telescoping cantilever. If attached to a frame it could be " "used to lift up to 3.5 metric tonnes." msgstr "" -" cantilever telescópicoUm pequeno cantilever telescópico de aço. Se " -"anexadoaum quadro, ele poderia ser usado para levantar até 3,5 " -"toneladasmétricas." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "pallet lifter" @@ -46317,8 +41002,6 @@ msgid "" "A makeshift pallet lifter. If attached to a frame it could be used to lift " "up to 0.5 metric tonnes." msgstr "" -" levantador de paletes Um levantador de palete improvisado. Se anexado " -"aumquadro, ele pode ser usado para levantar até 0,5 toneladas métricas." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: src/vehicle_use.cpp @@ -46331,7 +41014,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A large and heavy jagged metal disc to dig trenches." msgstr "" -" rockwheelUm disco de metal dentado grande e pesado para cavar trincheiras." #: lang/json/GENERIC_from_json.py msgid "airjack" @@ -46346,9 +41028,6 @@ msgid "" "An extendable metal pylon used to replace a portable jack. If mounted to a " "vehicle, it could be used to lift it up." msgstr "" -" airjack Um poste de metal extensível usado para substituir " -"umconectorportátil. Se montado em um veículo, ele poderia ser usado " -"paralevantá-lo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "motorcycle kickstand" @@ -46362,8 +41041,6 @@ msgid "" "A kickstand to keep the bike from falling over. You could use this to lean " "it forward or backward to change a tire." msgstr "" -" kickstandA da motocicleta para evitar que a moto caia. Você pode " -"usarissopara inclinar para frente ou para trás para trocar um pneu." #: lang/json/GENERIC_from_json.py msgid "vehicle scoop" @@ -46377,9 +41054,6 @@ msgid "" "An assembly of motors and sheet metal that allows a vehicle to clean the " "road surface by removing debris and contaminants." msgstr "" -" scoop do veículo Uma montagem de motores e chapas metálicas que " -"permitequeum veículo limpe a superfície da estrada removendo " -"detritosecontaminantes." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "seed drill" @@ -46394,9 +41068,6 @@ msgid "" "ground, allows a vehicle to plant seeds automatically in suitably tilled " "land." msgstr "" -" broca de sementesUm conjunto de tubos, espigões e rodas que, " -"quandoarrastados pelo solo, permitem que um veículo " -"plantesementesautomaticamente em terrenos adequadamente cultivados." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: src/vehicle_use.cpp @@ -46411,8 +41082,6 @@ msgid "" "An assembly of a blade, wheels, and a small lever for engaging/disengaging " "used to cut down crops prior to picking them up." msgstr "" -" reaper Uma montagem de uma lâmina, rodas e uma pequena alavanca " -"paraengatar/ desengatar usado para cortar as colheitas antes de pegá-las." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "advanced reaper" @@ -46425,8 +41094,6 @@ msgstr[1] "" msgid "" "An advanced electronic device used to cut down, collect and store crops." msgstr "" -" reaper avançadaUm dispositivo eletrônico avançado usado para cortar, " -"coletare armazenar culturas." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "advanced seed drill" @@ -46442,11 +41109,6 @@ msgid "" "land. This one is equipped with an electronic control system and will avoid" " damaging itself when used on untilled land." msgstr "" -" broca avançada para sementesUma montagem de tubos, pontas e rodasque, " -"quando arrastadas pelo solo, permitem que um veículo " -"plantesementesautomaticamente em terrenos adequadamente cultivados. Este " -"estáequipadocom um sistema de controle eletrônico e evitará danos quando " -"usadoemterrenos não cultivados." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: src/vehicle_use.cpp @@ -46458,7 +41120,7 @@ msgstr[1] "" #. ~ Description for plow #: lang/json/GENERIC_from_json.py msgid "A heavy assembly of wheels and steel blades that turn up the ground." -msgstr "Um pesado conjunto de rodas e lâminas de aço que sobem o solo." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "foldable-light frame" @@ -46470,8 +41132,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small foldable lightweight frame made from pipework." msgstr "" -" caixilho de luz dobrávelUm caixilho leve e dobrável pequeno " -"feitodetubagens." #: lang/json/GENERIC_from_json.py msgid "extra-light frame" @@ -46483,8 +41143,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small lightweight frame made from pipework. Useful for crafting." msgstr "" -" caixilho extraleveUm caixilho leve e pequeno, feito de tubagens. " -"Útilparaelaborar." #: lang/json/GENERIC_from_json.py msgid "steel frame" @@ -46495,7 +41153,7 @@ msgstr[1] "" #. ~ Description for steel frame #: lang/json/GENERIC_from_json.py msgid "A large frame made of steel. Useful for crafting." -msgstr "armação de açoUma armação grande feita de aço. Útil para elaborar." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "heavy duty frame" @@ -46508,8 +41166,6 @@ msgstr[1] "" msgid "" "A large, reinforced steel frame, used in military vehicle construction." msgstr "" -" estrutura reforçadaUma estrutura de aço reforçada e grande, " -"usadanaconstrução de veículos militares." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "wooden frame" @@ -46532,8 +41188,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small foldable frame made from scrap wood." msgstr "" -" moldura de madeira dobrávelUma moldura dobrável pequena feita de " -"madeiradesucata." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "light wooden frame" @@ -46559,7 +41213,7 @@ msgstr[1] "" #. ~ Description for car headlight #: lang/json/GENERIC_from_json.py msgid "A vehicle headlight to light up the way." -msgstr "farol do carroUm farol do veículo para iluminar o caminho." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "motorcycle headlight" @@ -46582,8 +41236,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A wide-angle vehicle headlight to light up the way." msgstr "" -" farol do carro grande-angularUm farol do veículo grande angularparailuminar" -" o caminho." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "reinforced headlight" @@ -46597,8 +41249,6 @@ msgid "" "A vehicle headlight with a cage built around it to protect it from damage " "without reducing its effectiveness." msgstr "" -" Farol reforçadoUm farol de veículo com uma gaiola construída em " -"tornodelepara protegê-lo contra danos sem reduzir sua eficácia." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "reinforced wide-angle headlight" @@ -46612,9 +41262,6 @@ msgid "" "A wide-angle vehicle headlight with a cage built around it to protect it " "from damage without reducing its effectiveness." msgstr "" -" Farol grande angular reforçadoUm farol de grande angular para " -"veículoscomuma gaiola construída em torno dele para protegê-lo contra " -"danossemreduzir sua eficácia." #: lang/json/GENERIC_from_json.py msgid "emergency vehicle light (red)" @@ -46628,9 +41275,6 @@ 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." msgstr "" -" luz do veículo de emergência (vermelho) Uma das luzes vermelhas do topo de " -"um veículo de serviços de emergência. Quando ligado, as luzes giram para " -"brilhar em todas as direções." #: lang/json/GENERIC_from_json.py msgid "emergency vehicle light (blue)" @@ -46644,9 +41288,6 @@ 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." msgstr "" -" luz do veículo de emergência (azul) Uma das luzes de cor azul do topo " -"deumveículo de serviços de emergência. Quando ligado, as luzes " -"giramparabrilhar em todas as direções." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "floodlight" @@ -46657,7 +41298,7 @@ msgstr[1] "" #. ~ Description for floodlight #: lang/json/GENERIC_from_json.py msgid "A large and heavy light designed to illuminate wide areas." -msgstr "HolofoteUma luz grande e pesada projetada para iluminar áreas amplas." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "directed floodlight" @@ -46671,8 +41312,6 @@ msgid "" "A large and heavy light designed to illuminate a wide area in a half-" "circular cone." msgstr "" -" Holofote direcionadoUma luz grande e pesada projetada para iluminar " -"umaáreaampla em um cone semicircular." #: lang/json/GENERIC_from_json.py msgid "set of hand rims" @@ -46683,7 +41322,7 @@ msgstr[1] "" #. ~ Description for set of hand rims #: lang/json/GENERIC_from_json.py msgid "Hand rims for use on a wheelchair." -msgstr "conjunto de jantes de mãoJantes para uso em cadeira de rodas." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "foot crank" @@ -46695,7 +41334,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "The pedal and gear assembly from a bicycle." msgstr "" -"manivela do pedalA montagem do pedal e da engrenagem de uma bicicleta." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "wind turbine" @@ -46707,8 +41345,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small turbine that can convert wind into electric power." msgstr "" -" turbina eólica Uma pequena turbina que pode converter o vento " -"emenergiaelétrica." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "large wind turbine" @@ -46758,8 +41394,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A powerful electric motor. Useful for crafting." msgstr "" -" unidade de controle eletrônicoMotor elétricoUm poderoso motor " -"elétrico.Útilpara elaborar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "enhanced electric motor" @@ -46772,8 +41406,6 @@ msgstr[1] "" msgid "" "A very powerful and yet lightweight electric motor. Useful for crafting." msgstr "" -" motor elétrico aprimoradoUm motor elétrico muito potente e ainda " -"leve.Útilpara elaborar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "super electric motor" @@ -46785,8 +41417,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "The most powerfull electric motor on the market. Useful for crafting." msgstr "" -" super electric motorO motor elétrico mais potente do mercado. " -"Útilparaelaborar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "large electric motor" @@ -46798,8 +41428,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A large and very powerful electric motor. Useful for crafting." msgstr "" -" motor elétrico grandeUm motor elétrico grande e muito potente. " -"Útilparaelaborar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "small electric motor" @@ -46810,7 +41438,7 @@ msgstr[1] "" #. ~ Description for small electric motor #: lang/json/GENERIC_from_json.py msgid "A small electric motor. Useful for crafting." -msgstr "pequeno motor elétricoUm pequeno motor elétrico. Útil para elaborar." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "tiny electric motor" @@ -46822,7 +41450,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A tiny electric motor. Useful for crafting." msgstr "" -" minúsculo motor elétricoUm minúsculo motor elétrico. Útil para elaborar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "muffler" @@ -46836,8 +41463,6 @@ msgid "" "A muffler from a car. Very unwieldy as a weapon. Useful in a few crafting " "recipes." msgstr "" -" silenciadorUm silenciador de um carro. Muito pesado como uma arma. " -"Útilemalgumas receitas de artesanato." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "back-up beeper" @@ -46851,9 +41476,6 @@ 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 "" -" beeper de back-upEste é um dispositivo de segurança destinado a " -"avisarostranseuntes de um veículo em marcha-atrás, mas o uso dele " -"agorapareceterrivelmente imprudente." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -46868,8 +41490,6 @@ msgid "" "A stereo system with speakers. It is capable of being hooked up to a " "vehicle." msgstr "" -" sistema estéreoUm sistema estéreo com alto-falantes. É capaz de ser " -"ligadoaum veículo." #: lang/json/GENERIC_from_json.py msgid "chime loudspeakers" @@ -46884,10 +41504,6 @@ msgid "" " 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 "" -" alto-falantes de carrilhãoSistema de som com alto-falantes e " -"umconjuntointegrado de melodias simples que serão reproduzidas. " -"Comumenteusado porcaminhões de sorvete para chamar a atenção das crianças " -"nos diasem que ascrianças queriam sorvete mais do que cérebros." #: lang/json/GENERIC_from_json.py msgid "sheet metal" @@ -46898,7 +41514,7 @@ msgstr[1] "" #. ~ Description for sheet metal #: lang/json/GENERIC_from_json.py msgid "A thin sheet of metal." -msgstr "folha de metalUma folha fina de metal." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "wired sheet metal" @@ -46910,8 +41526,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "Sheet metal that has had light housing wired into it." msgstr "" -" metal de folha com fioFolha de metal que possui um alojamento " -"deluzconectado a ela." #: lang/json/GENERIC_from_json.py msgid "wooden armor kit" @@ -46934,7 +41548,7 @@ msgstr[1] "" #. ~ Description for steel plating #: lang/json/GENERIC_from_json.py msgid "A piece of armor plating made of steel." -msgstr "chapeamento de açoUma peça de blindagem feita de aço." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "superalloy plating" @@ -46946,7 +41560,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A piece of armor plating made of sturdy superalloy." msgstr "" -" chapeamento de superligaUma peça de blindagem feita de superligaresistente." #: lang/json/GENERIC_from_json.py msgid "superalloy sheet" @@ -46959,8 +41572,6 @@ msgstr[1] "" msgid "" "A sheet of sturdy superalloy, incredibly hard, yet incredibly malleable." msgstr "" -" folha de superliga Uma folha de superliga resistente, incrivelmentedura, " -"mas incrivelmente maleável." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "spiked plating" @@ -46973,8 +41584,6 @@ msgstr[1] "" msgid "" "A piece of armor plating made of steel. It is covered with menacing spikes." msgstr "" -" chapeamento cravadoUma peça de armadura feita de aço. Está " -"cobertodeespinhos ameaçadores." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "hard plating" @@ -46985,7 +41594,7 @@ msgstr[1] "" #. ~ Description for hard plating #: lang/json/GENERIC_from_json.py msgid "A piece of very thick armor plating made of steel." -msgstr "duro platingA peça de blindagem muito grossa feita de aço." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "military composite plating" @@ -46999,8 +41608,6 @@ msgid "" "A thick sheet of military grade armor, best bullet stopper you can stick on " "a vehicle." msgstr "" -" chapeamento composto militar Uma folha grossa da armadura da classemilitar," -" o melhor bujão da bala que você pode furar em um veículo." #: lang/json/GENERIC_from_json.py msgid "chitin armor kit" @@ -47011,7 +41618,7 @@ msgstr[1] "" #. ~ Description for chitin armor kit #: lang/json/GENERIC_from_json.py msgid "Light chitin plating made for a vehicle." -msgstr "kit de armadura de quitinaCobreta de quitina feita para um veículo." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "biosilicified chitin armor kit" @@ -47023,8 +41630,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "Durable silica-coated chitin plating made for a vehicle." msgstr "" -" Kit de armadura de quitina biosilicificadaCobreta de quitina " -"revestidadesílica durável feita para um veículo." #: lang/json/GENERIC_from_json.py msgid "bone armor kit" @@ -47035,7 +41640,7 @@ msgstr[1] "" #. ~ Description for bone armor kit #: lang/json/GENERIC_from_json.py msgid "Bone plating made for a vehicle." -msgstr "Kit de armadura óssea Chapeamento ósseo feito para um veículo." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "shredder" @@ -47052,11 +41657,6 @@ msgid "" "sturdy enough to withstand multiple impacts, and is designed to detach if it" " would take a hit that would break it." msgstr "" -" shredderEste acessório ameaçador destina-se a ser alimentado pelo motordeum" -" veículo. Ao fazer isso, as lâminas circulares deste " -"dispositivogirarãorapidamente; qualquer coisa na frente dela provavelmente " -"serárasgada empedaços. Ele é robusto o suficiente para suportar " -"múltiplosimpactos e éprojetado para destacar se precisaria ser atingido." #: lang/json/GENERIC_from_json.py msgid "vehicle crafting rig" @@ -47078,11 +41678,6 @@ msgid "" "utilize standard batteries, it requires an external supply of electricity to" " operate." msgstr "" -" Laboratório de Química do Rigonboard para Veículos Montado a partir " -"deumconjunto de produtos químicos ligado a um complexo chicote de fiação, " -"eleébem adequado para qualquer projeto de química que você possaimaginar. " -"Incapaz de utilizar baterias padrão, requer um fornecimentoexterno " -"deeletricidade para operar." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "FOODCO kitchen buddy" @@ -47105,18 +41700,6 @@ msgid "" "tools, and for some insane reason, a press and die set for hand-loading " "ammunition." msgstr "" -" FOODCO kitchen buddyConjunto de um conjunto de instruções que " -"vocêencontrouem um antigo livro de projetos DIY, o * FOODCO kitchen buddy " -"*afirma ser *a solução perfeita para todas as suas necessidades de " -"comidacaseira! *.Embora seja surpreendentemente útil para a selagem a vácuo," -" bemcomo adesidratação de alimentos, o jarro de vendas alegre esquece " -"demencionar A -que coisa estranha é essa, B - Que você ainda precisa de " -"umacozinha normale C - como não leva as baterias. Você vai ter que soldar " -"aum veículo, ou aqualquer outra coisa com um suprimento de eletricidade, " -"sevocê quiser usá-lo. Além das características de conservação de alimentos, " -"também tem umprocessador de alimentos, um sistema de purificação de água, " -"uma gaveta paraguardar ferramentas extras e, por alguma razão insana, " -"umconjunto deprensas e matrizes para munição de carregamento manual." #: lang/json/GENERIC_from_json.py msgid "vehicle forge rig" @@ -47130,9 +41713,6 @@ msgid "" "A forge rig made to run off a vehicle's storage battery with integrated tool" " storage for metalworking equipment." msgstr "" -" FORJAMENTO DO VEÍCULO Equipamento de forja rigA feito para escorrerabateria" -" de armazenamento de um veículo com armazenamento deferramentasintegrado " -"para equipamentos de metalurgia." #: lang/json/GENERIC_from_json.py msgid "vehicle kiln" @@ -47144,8 +41724,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An electric kiln made to run off a vehicle's storage battery." msgstr "" -" forno de veículo Um forno elétrico feito para funcionar com a " -"bateriadearmazenamento de um veículo." #: lang/json/GENERIC_from_json.py msgid "RV kitchen unit" @@ -47159,9 +41737,6 @@ msgid "" "A vehicle mountable electric range and sink unit with integrated tool " "storage for cooking utensils." msgstr "" -" RV kitchen unitUma unidade elétrica montável em veículo e " -"lavatóriocomarmazenamento de ferramenta integrado para utensílios de " -"cozinha." #: lang/json/GENERIC_from_json.py msgid "vehicle welding rig" @@ -47176,10 +41751,6 @@ msgid "" "soldering iron attachment for delicate work, and a compartment to store your" " extra tools in." msgstr "" -" equipamento de soldagem rigA de soldagem de veículo feito para " -"escorrerabateria de armazenamento de um veículo. Ele tem um acessório de " -"ferrodesolda para um trabalho delicado e um compartimento para " -"guardarsuasferramentas extras." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "seat" @@ -47190,7 +41761,7 @@ msgstr[1] "" #. ~ Description for seat #: lang/json/GENERIC_from_json.py msgid "A soft car seat covered with leather." -msgstr "seatA assento de carro macio coberto com couro." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "saddle" @@ -47201,7 +41772,7 @@ msgstr[1] "" #. ~ Description for saddle #: lang/json/GENERIC_from_json.py msgid "A leather-covered seat designed to be straddled." -msgstr "Sela Um assento coberto de couro projetado para ser montado." +msgstr "" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -47216,8 +41787,6 @@ msgid "" "Electronic device that can convert solar radiation into electric power. " "Useful for a vehicle." msgstr "" -" painel solarDispositivo eletrônico que pode converter radiação " -"solaremenergia elétrica. Útil para um veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -47234,10 +41803,6 @@ msgid "" "glass causes this panel to produce slightly less power than a normal panel." " Useful for a vehicle." msgstr "" -" painel solar reforçadoUm painel solar que foi coberto com um painel " -"devidroreforçado para proteger as delicadas células solares de zumbis " -"oubolas debaseball errantes. O vidro faz com que este painel produza umpouco" -" menos deenergia do que um painel normal. Útil para um veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -47253,9 +41818,6 @@ msgid "" "This panel has been upgraded to convert more sunlight into power. Useful " "for a vehicle." msgstr "" -" painel solar atualizadoO dispositivo eletrônico que pode converteraradiação" -" solar em energia elétrica. Este painel foi atualizadoparaconverter mais luz" -" solar em energia. Útil para um veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -47272,11 +41834,6 @@ msgid "" " The glass causes this panel to produce slightly less power than a normal " "upgraded panel. Useful for a vehicle." msgstr "" -" painel solar reforçado atualizado Um painel solar atualizado que " -"foicobertocom um painel de vidro reforçado para proteger as delicadas " -"célulassolaresde zumbis ou bolas de baseball errantes. O vidro faz com que " -"estepainelproduza um pouco menos de energia do que um painel " -"atualizadonormal. Útilpara um veículo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py #: lang/json/vehicle_part_from_json.py @@ -47293,11 +41850,6 @@ msgid "" "looking material, but the covering looks rather fragile; it doesn't look " "like it could support a reinforcing sheet, either." msgstr "" -" painel solar quânticoEste painel solar é, obviamente, tecnologia de pontae," -" dado onde você o encontrou, provavelmente deveria fornecer MUITAenergia. " -"Está coberto de material de aparência estranha, mas a " -"coberturaparecebastante frágil; Também não parece que poderia suportar uma " -"folhadereforço." #: lang/json/GENERIC_from_json.py msgid "solar cell" @@ -47311,8 +41863,6 @@ msgid "" "A small electronic device that can convert solar radiation into electric " "power. Useful for crafting." msgstr "" -" cellA solar Um pequeno dispositivo eletrônico que pode converter " -"aradiaçãosolar em energia elétrica. Útil para elaborar." #: lang/json/GENERIC_from_json.py msgid "fancy table" @@ -47326,8 +41876,6 @@ msgid "" "A very fancy table from a very fancy RV. If times were better it might be " "useful for something more than firewood." msgstr "" -" tabela de fantasia Uma tabela muito extravagante de um RVmuitoextravagante." -" Se os tempos fossem melhores, poderia ser útil para algomaisdo que lenha." #: lang/json/GENERIC_from_json.py msgid "wooden table" @@ -47365,8 +41913,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A very small washing machine designed for use in vehicles." msgstr "" -" máquina de lavar roupaUma máquina de lavar roupa muito pequenaprojetadapara" -" uso em veículos." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "minifridge" @@ -47380,8 +41926,6 @@ msgid "" "A very small fridge for keeping food cool. Provides some insulation from " "outside weather." msgstr "" -" minifridgeUm refrigerador muito pequeno para manter a comida fresca. " -"Fornecealgum isolamento do clima externo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "minifreezer" @@ -47395,9 +41939,6 @@ msgid "" "Compact version of a chest freezer, designed as a mobile solution for " "freezing food. Provides insulation from the elements." msgstr "" -" minifreezer Versão compacta de um freezer para tórax, projetada " -"comoumasolução móvel para congelar alimentos. Fornece isolamento dos " -"elementos." #: lang/json/GENERIC_from_json.py msgid "Dana's family sourdough starter" @@ -47426,8 +41967,6 @@ msgstr[1] "" msgid "" "10 plastic bags, folded smooth and wrapped tightly together with a string." msgstr "" -" 10 sacolas plásticas10 sacolas plásticas, dobradas, lisas e enroladascomuma" -" corda." #: lang/json/GENERIC_from_json.py msgid "coal pallet" @@ -47438,7 +41977,7 @@ msgstr[1] "" #. ~ Description for coal pallet #: lang/json/GENERIC_from_json.py msgid "A large block of semi-processed coal." -msgstr "palete de carvãoUm grande bloco de carvão semiprocessado." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "charged capacitor" @@ -47465,8 +42004,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An electrode plate from a lead-acid battery." msgstr "" -" placa de bateria de chumboUma placa de eletrodo de uma bateria de chumbo- " -"ácido." #: lang/json/GENERIC_from_json.py msgid "forged sword" @@ -47480,8 +42017,6 @@ msgid "" "A common short sword, forged from several pieces of steel. The pointy end " "is the dangerous one." msgstr "" -" espada forjadaUma espada curta comum, forjada a partir de várias " -"peçasdeaço. O final pontudo é o perigoso." #: lang/json/GENERIC_from_json.py msgid "skewer" @@ -47492,7 +42027,7 @@ msgstr[1] "" #. ~ Description for skewer #: lang/json/GENERIC_from_json.py msgid "A thin wooden skewer. Squirrel on a stick, anyone?" -msgstr "espeto Um espeto de madeira fina. Esquilo em uma vara, alguém?" +msgstr "" #: lang/json/GENERIC_from_json.py msgid "vehicle curtain" @@ -47506,8 +42041,6 @@ msgid "" "A rod, a few metal rings, and a large piece of cloth with some strings " "attached for securely fastening the edges." msgstr "" -" cortina do veículoUma haste, alguns anéis de metal e um grande " -"pedaçodetecido com algumas cordas presas para fixar firmemente as bordas." #: lang/json/GENERIC_from_json.py lang/json/furniture_from_json.py msgid "vehicle refrigerator" @@ -47619,8 +42152,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small pellet of silvery metal, still warm to the touch." msgstr "" -" resíduos nucleares Uma pequena pastilha de metal prateado, ainda " -"quenteaotoque." #: lang/json/GENERIC_from_json.py msgid "nuclear fuel pellet" @@ -47632,8 +42163,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A small pellet of fissile material. Handle carefully." msgstr "" -" Pellet de combustível nuclearUm pequeno pellet de material físsil. " -"Manuseiecom cuidado." #: lang/json/GENERIC_from_json.py msgid "hydraulic gauntlet" @@ -47702,9 +42231,6 @@ msgid "" "A broken animatronic fox. If it was in bad shape before, it's a wreck now." " For some reason, it is oozing with blood - it's not your blood." msgstr "" -" velho quebrado animatronic foxA quebrado animatronic fox. Se estava " -"emmáforma antes, é um desastre agora. Por alguma razão, está " -"escorrendosangue- não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "old broken animatronic bunny" @@ -47718,8 +42244,6 @@ msgid "" "A broken animatronic bunny. For some reason, it is oozing with blood - it's" " not your blood." msgstr "" -" Um coelhinho animatrônico quebrado. Por alguma razão, está " -"escorrendosangue- não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "old broken animatronic chicken" @@ -47731,8 +42255,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken animatronic chicken. It doesn't look as attractive now." msgstr "" -" Frango animatrônico quebrado velhoUma galinha animatrônica quebrada. " -"Nãoparece tão atraente agora." #. ~ Description for old broken animatronic chicken #: lang/json/GENERIC_from_json.py @@ -47740,8 +42262,6 @@ msgid "" "A broken animatronic chicken. For some reason, it is oozing with blood - " "it's not your blood." msgstr "" -" Um frango animatrônico quebrado. Por alguma razão, está escorrendo sangue- " -"não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "old broken animatronic bear" @@ -47755,8 +42275,6 @@ msgid "" "A broken animatronic bear. For some reason, it is oozing with blood - it's " "not your blood." msgstr "" -" urso quebrado velho do animatronicUm urso animatronic quebrado. " -"Poralgumarazão, está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken new animatronic bear" @@ -47768,7 +42286,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken animatronic bear. Limp and lifeless." msgstr "" -" urso quebrado novo animatronicUm urso animatronic quebrado. Limp e semvida." #: lang/json/GENERIC_from_json.py msgid "broken animatronic bat" @@ -47782,8 +42299,6 @@ msgid "" "A broken animatronic bat. For some reason, it is oozing with blood - it's " "not your blood." msgstr "" -" quebrada animatronic batA quebrada animatronic bat. Por alguma razão, " -"estáescorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic beaver" @@ -47797,8 +42312,6 @@ msgid "" "A broken animatronic beaver. For some reason, it is oozing with blood - " "it's not your blood." msgstr "" -" castor animatronic quebrado Um castor animatronic quebrado. Poralgumarazão," -" está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic cat" @@ -47812,8 +42325,6 @@ msgid "" "A broken animatronic cat. For some reason, it is oozing with blood - it's " "not your blood." msgstr "" -" gato animatronic quebrado Um gato animatronic quebrado. Por algumarazão, " -"está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic chipmunk" @@ -47827,8 +42338,6 @@ msgid "" "A broken animatronic chipmunk. For some reason, it is oozing with blood - " "it's not your blood." msgstr "" -" chipmunk animatronic quebradoUm chipmunk animatronic quebrado. " -"Poralgumarazão, está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic cow" @@ -47842,8 +42351,6 @@ msgid "" "A broken animatronic cow. For some reason, it is oozing with blood - it's " "not your blood." msgstr "" -" vaca animatronic quebrada vaca animatronic quebrada. Por alguma razão, " -"estáescorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic coyote" @@ -47857,8 +42364,6 @@ msgid "" "A broken animatronic coyote. For some reason, it is oozing with blood - " "it's not your blood." msgstr "" -" coiote animatrônico quebradoUm coiote animatrônico quebrado. " -"Poralgumarazão, está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic deer" @@ -47872,8 +42377,6 @@ msgid "" "A broken animatronic deer. For some reason, it is oozing with blood - it's " "not your blood." msgstr "" -" cervo animatrônico quebradoUm cervo animatrônico quebrado. Por algumarazão," -" está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic horse" @@ -47887,8 +42390,6 @@ msgid "" "A broken animatronic horse. For some reason, it is oozing with blood - it's" " not your blood." msgstr "" -" cavalo quebrado animatrônico Um cavalo animatrônico quebrado. " -"Poralgumarazão, está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic pig" @@ -47902,8 +42403,6 @@ msgid "" "A broken animatronic pig. For some reason, it is oozing with blood - it's " "not your blood." msgstr "" -" Porco animatrônico quebradoUm porco animatrônico quebrado. Por algumarazão," -" está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic sheep" @@ -47917,8 +42416,6 @@ msgid "" "A broken animatronic sheep. For some reason, it is oozing with blood - it's" " not your blood." msgstr "" -" carneiros animatronic quebradosUm carneiro animatronic quebrado. " -"Poralgumarazão, está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic squirrel" @@ -47932,8 +42429,6 @@ msgid "" "A broken animatronic squirrel. For some reason, it is oozing with blood - " "it's not your blood." msgstr "" -" esquilo animatronic quebradoUm esquilo animatronic quebrado. " -"Poralgumarazão, está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken animatronic child" @@ -47947,8 +42442,6 @@ msgid "" "A broken animatronic child. For some reason, it is oozing with blood - it's" " not your blood." msgstr "" -" criança animatrônica quebrada Criança animatrônica quebrada. " -"Poralgumarazão, está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken new animatronic fox" @@ -47962,9 +42455,6 @@ msgid "" "A broken animatronic fox. It seems like it's still looking at you, enraged " "in what you've done to her." msgstr "" -" quebrado novo animatronic foxUma animatronic raposa quebrada. " -"Parecequeainda está olhando para você, enfurecido com o que você fez com " -"ela." #: lang/json/GENERIC_from_json.py msgid "broken animatronic wreck" @@ -47978,9 +42468,6 @@ msgid "" "A broken, wrecked animatronic fox. You have no idea if it's actually dead, " "as it doesn't look that different from the condition you found it in." msgstr "" -" quebrada animatronic wreckA quebrada, naufragou animatronic fox. Vocênãotem" -" ideia se está realmente morto, já que não parece tão diferentedacondição em" -" que você o encontrou." #: lang/json/GENERIC_from_json.py msgid "broken animatronic wolf" @@ -47994,8 +42481,6 @@ msgid "" "A broken animatronic wolf. For some reason, it is oozing with blood - it's " "not your blood." msgstr "" -" Lobo animatrônico quebrado Lobo animatrônico quebrado. Por algumarazão, " -"está escorrendo sangue - não é o seu sangue." #: lang/json/GENERIC_from_json.py msgid "broken marionette" @@ -48006,7 +42491,7 @@ msgstr[1] "" #. ~ Description for broken marionette #: lang/json/GENERIC_from_json.py msgid "A broken marionette. How creepy." -msgstr "Marionete quebrada Uma marionete quebrada. Que arrepiante." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken new animatronic bunny" @@ -48018,8 +42503,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken animatronic bunny. Limp and lifeless." msgstr "" -" Um novo coelho animatrônico quebrado Um coelho animatrônico quebrado. " -"Limpesem vida." #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" @@ -48087,7 +42570,7 @@ msgstr[1] "" #. ~ Description for 6.54x42mm casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a 6.54x42 round." -msgstr "Carcaça de 6,54x42mmUm invólucro vazio de uma volta de 6,54x42." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "pistol ammo casing" @@ -48099,7 +42582,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty casing from a pistol round." msgstr "" -" invólucro de munição de pistolaUm invólucro vazio de uma rodada de pistola." #: lang/json/GENERIC_from_json.py msgid "revolver ammo casing" @@ -48110,7 +42592,7 @@ msgstr[1] "" #. ~ Description for revolver ammo casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a revolver round." -msgstr "revólver munição casingUma embalagem vazia de uma rodada de revólver." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "light rifle ammo casing" @@ -48122,8 +42604,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty casing from a light rifle round." msgstr "" -" invólucro de munição de rifle leveUm invólucro vazio de um " -"fuzilleveredondo." #: lang/json/GENERIC_from_json.py msgid "rifle casing" @@ -48134,7 +42614,7 @@ msgstr[1] "" #. ~ Description for rifle casing #: lang/json/GENERIC_from_json.py msgid "An empty casing from a rifle round." -msgstr "invólucro de rifleUm invólucro vazio de um rifle redondo." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "heavy rifle casing" @@ -48146,7 +42626,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "An empty casing from a heavy rifle round." msgstr "" -" invólucro de rifle pesadoUm invólucro vazio de um pesado rifle redondo." #: lang/json/GENERIC_from_json.py msgid "belt ammo link" @@ -48392,7 +42871,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "Barley is ready to harvest!" msgstr "" -" Pote de jardim (cevada em crescimento) A cevada está pronta para colher!" #. ~ Description for garden pot (growing barley) #: lang/json/GENERIC_from_json.py @@ -49581,8 +44059,6 @@ msgid "" "A broken turret. Much less threatening now that it lies limp on solid " "ground. Could be gutted for parts." msgstr "" -" Torre quebradaUma torre quebrada. Muito menos ameaçador agora que " -"ficamoleem terra firme. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken military turret" @@ -49608,9 +44084,6 @@ msgid "" "A broken defense turret. Much less threatening now that it lies limp on " "solid ground. Could be gutted for parts." msgstr "" -" Torre de defesa quebrada. Torre de defesa quebrada. Torre dedefesaquebrada." -" Muito menos ameaçador agora que fica mole em terra firme. Poderiaser " -"estripado por partes." #. ~ Description for broken military turret #: lang/json/GENERIC_from_json.py @@ -49618,8 +44091,6 @@ msgid "" "A broken military turret. Much less threatening now that it lies limp on " "solid ground. Could be gutted for parts." msgstr "" -" Uma torreta militar quebrada. Muito menos ameaçador agora que fica " -"moleemterra firme. Poderia ser estripado por partes." #. ~ Description for broken advanced turret #. ~ Description for broken 9mm turret @@ -49629,8 +44100,6 @@ msgid "" "A broken 9mm defense turret. Much less threatening now that it lies limp on" " solid ground. Could be gutted for parts." msgstr "" -" Uma torre de defesa quebrada de 9 mm. Muito menos ameaçador agora " -"queficamole em terra firme. Poderia ser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken 9mm turret" @@ -49644,9 +44113,6 @@ msgid "" "A broken shotgun defense turret. Much less threatening now that it lies " "limp on solid ground. Could be gutted for parts." msgstr "" -" Torre de 9 mm quebrada Torre de defesa quebrada de espingarda. " -"Muitomenosameaçador agora que fica mole em terra firme. Poderia ser " -"estripadoporpartes." #: lang/json/GENERIC_from_json.py msgid "broken riot control turret" @@ -49660,9 +44126,6 @@ msgid "" "A broken riot control turret. Much less threatening now that it lies limp " "on solid ground. Could be gutted for parts." msgstr "" -" Revólver quebrado do controle de motimUma torre quebrada do " -"controledemotim. Muito menos ameaçador agora que fica mole em terra firme. " -"Poderiaser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken riotcontrol turret" @@ -49682,9 +44145,6 @@ 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 "" -" quebrada riotcontrol turretbroken 5.56mm turretUma torre militar " -"de5.56mmquebrada. Muito menos ameaçador agora que fica mole em terra firme. " -"Poderiaser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken 7.62mm turret" @@ -49698,9 +44158,6 @@ 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 "" -" Torre de 7,62mm quebradaUma torre de 7,62mm de nível militar quebrada. " -"Muitomenos ameaçador agora que fica mole em terra firme. Poderia " -"serestripadopor partes." #: lang/json/GENERIC_from_json.py msgid "broken 50cal turret" @@ -49714,9 +44171,6 @@ 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 "" -" Torre 50cal quebradaUma torre de calibre 50 de grau militar quebrada. " -"Muitomenos ameaçador agora que fica mole em terra firme. Poderia " -"serestripadopor partes." #: lang/json/GENERIC_from_json.py msgid "broken 40mm turret" @@ -49730,9 +44184,6 @@ 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 "" -" Torre de 40mm quebradaUma torre de granada de 40mm de grau militarquebrada." -" Muito menos ameaçador agora que fica mole em terra firme. " -"Poderiaserestripado por partes." #. ~ Description for broken 5.56mm turret #: lang/json/GENERIC_from_json.py @@ -49740,9 +44191,6 @@ 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 "" -" Uma torre de flechette militar de 5x50 quebrada. Muito menos " -"ameaçadoragoraque fica mole em terra firme. Poderia ser estripado por " -"partes." #: lang/json/GENERIC_from_json.py msgid "broken 8x40mm turret" @@ -49756,9 +44204,6 @@ msgid "" "A broken military-grade 8x40mm turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" -" torre de 8x40mm quebradaUma torre de 8x40mm de grau militar quebrada. " -"Muitomenos ameaçador agora que fica mole em terra firme. Poderia " -"serestripadopor partes." #: lang/json/GENERIC_from_json.py msgid "broken flamethrower turret" @@ -49772,9 +44217,6 @@ msgid "" "A broken military-grade flamethrower turret. Much less threatening now that" " it lies limp on solid ground. Could be gutted for parts." msgstr "" -" Torre de lança-chamas quebrado Uma torre de lança-chamas de " -"nívelmilitarquebrada. Muito menos ameaçador agora que fica mole em terra " -"firme. Poderiaser estripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken laser turret" @@ -49788,9 +44230,6 @@ msgid "" "A broken advanced laser emitter turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" -" Torre de laser quebradaUma torre de laser avançada quebrada. " -"Muitomenosameaçador agora que fica mole em terra firme. Poderia ser " -"estripadoporpartes." #: lang/json/GENERIC_from_json.py msgid "broken acid turret" @@ -49804,9 +44243,6 @@ msgid "" "A broken advanced acid thrower turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" -" Torreta de ácido quebradoUma torreta avançada de lançador de ácidoquebrado." -" Muito menos ameaçador agora que fica mole em terra firme. " -"Poderiaserestripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken plasma turret" @@ -49820,9 +44256,6 @@ msgid "" "A broken advanced plasma ejector turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" -" Torre de plasma quebradaUma torre de ejetor de plasma avançadaquebrada. " -"Muito menos ameaçador agora que fica mole em terra firme. " -"Poderiaserestripado por partes." #: lang/json/GENERIC_from_json.py msgid "broken rail gun turret" @@ -49836,9 +44269,6 @@ msgid "" "A broken advanced rail gun turret. Much less threatening now that it lies " "limp on solid ground. Could be gutted for parts." msgstr "" -" Torreta de arma de trilho quebrado Torreta de arma de " -"trilhoavançadoquebrado. Muito menos ameaçador agora que fica mole em terra " -"firme. Poderiaser estripado por partes." #. ~ Description for broken acid turret #: lang/json/GENERIC_from_json.py @@ -49846,9 +44276,6 @@ msgid "" "A broken advanced acid projector turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" -" Uma torreta de projetor de ácido avançada quebrada. Muito " -"menosameaçadoragora que fica mole em terra firme. Poderia ser estripado " -"porpartes." #: lang/json/GENERIC_from_json.py msgid "broken electro turret" @@ -49862,9 +44289,6 @@ msgid "" "A broken advanced electro caster turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" -" quebrada electro turretUma torre avançada quebrada eletro caster. " -"Muitomenos ameaçador agora que fica mole em terra firme. Poderia " -"serestripadopor partes." #: lang/json/GENERIC_from_json.py msgid "broken EMP turret" @@ -49878,9 +44302,6 @@ msgid "" "A broken advanced EMP generator turret. Much less threatening now that it " "lies limp on solid ground. Could be gutted for parts." msgstr "" -" Torre EMP quebradaUma torre de gerador EMP avançada quebrada. " -"Muitomenosameaçador agora que fica mole em terra firme. Poderia ser " -"estripadoporpartes." #: lang/json/GENERIC_from_json.py msgid "broken gaurdin gnome" @@ -49892,7 +44313,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken and completely harmless garden gnome." msgstr "" -" gnomo gaurdin quebradoUm gnomo de jardim quebrado ecompletamenteinofensivo." #: lang/json/GENERIC_from_json.py msgid "broken hack" @@ -49905,8 +44325,6 @@ msgstr[1] "" msgid "" "A broken eyebot, now dark and motionless. Could be stripped down for parts." msgstr "" -" hack quebrado Um eyebot quebrado, agora escuro e imóvel. " -"Poderiaserdespojado para peças." #: lang/json/GENERIC_from_json.py msgid "broken disarmed eyebot" @@ -49920,9 +44338,6 @@ msgid "" "A broken eyebot. Its integrated weapon module has been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" -" eyebot desarmado quebrado eyebot quebrado. Seu módulo de arma " -"integradofoiremovido. Poderia ser estripado por peças ou trabalhado em " -"umrobôrecuperado." #: lang/json/GENERIC_from_json.py msgid "broken utility robot" @@ -49936,8 +44351,6 @@ msgid "" "A broken utility robot, now limp and unmoving. Could be gutted for parts or" " crafted into a salvaged robot." msgstr "" -" robô utilitário quebradoUm robô utilitário quebrado, agora mole eimóvel. " -"Poderia ser estripado por peças ou trabalhado em um robô recuperado." #: lang/json/GENERIC_from_json.py msgid "broken disarmed skitterbot" @@ -49951,9 +44364,6 @@ msgid "" "A broken skitterbot. Its internal weapon modules have been removed. Could " "be gutted for parts or crafted into a salvaged robot." msgstr "" -" skitterbot quebrado desarmado skitterbot quebrado. Seus módulos " -"dearmasinternos foram removidos. Poderia ser estripado por peças " -"outrabalhado emum robô recuperado." #. ~ Description for broken skitterbot #: lang/json/GENERIC_from_json.py @@ -49961,8 +44371,6 @@ msgid "" "A broken skitterbot, now harmless and inert. Could be stripped of integral " "weapon modules." msgstr "" -" Um skitterbot quebrado, agora inofensivo e inerte. Poderia ser " -"despojadodemódulos de armas integradas." #: lang/json/GENERIC_from_json.py msgid "broken disarmed defense bot" @@ -49982,9 +44390,6 @@ msgid "" "A broken defense robot. Its internal weapons have been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" -" quebrado desarmado defesa botA quebrado defesa robot. Suas " -"armasinternasforam removidas. Poderia ser estripado por peças ou trabalhado " -"emum robôrecuperado." #: lang/json/GENERIC_from_json.py msgid "broken security robot" @@ -50008,9 +44413,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken chickenwalker. Could be stripped for parts." msgstr "" -" segurança quebrada robotbroken riotcontrol " -"robotbrokenchickenwalkerUmChickenwalker quebrado. Pode ser despojado de " -"peças." #: lang/json/GENERIC_from_json.py msgid "broken disarmed chickenwalker" @@ -50024,14 +44426,11 @@ msgid "" "A broken chickenwalker. Its internal weapons have been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" -" frango desalinhado quebrado Um passeador de galinhas quebrado. " -"Suasarmasinternas foram removidas. Poderia ser estripado por peças " -"outrabalhado emum robô recuperado." #. ~ Description for broken tank drone #: lang/json/GENERIC_from_json.py msgid "A broken tank drone. Could be stripped down for parts." -msgstr "Um drone tanque quebrado. Poderia ser despojado para peças." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "broken disarmed tank drone" @@ -50045,8 +44444,6 @@ msgid "" "A broken tank drone. Could be gutted for parts or recrafted into a salvaged" " robot." msgstr "" -" zangão de tanque quebrado desarmado zangão de tanque quebrado. " -"Poderiaserestripado por partes ou redimensionado em um robô recuperado." #: lang/json/GENERIC_from_json.py msgid "robot component" @@ -50059,8 +44456,6 @@ msgstr[1] "" msgid "" "A component for turrets and robots. It is unuseable in its current state." msgstr "" -" componente de robôUm componente para torres e robôs. É inutilizável " -"emseuestado atual." #: lang/json/GENERIC_from_json.py msgid "integral microreactor" @@ -50072,8 +44467,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A compact fusion reactor used to power a robot's energy weapons." msgstr "" -" microreactor integralUm reator de fusão compacto usado para " -"alimentarasarmas de energia de um robô." #: lang/json/GENERIC_from_json.py msgid "integral flash gun" @@ -50206,9 +44599,6 @@ msgid "" " mountains with a single blow. It is decorated with gold and silver " "ornaments." msgstr "" -" Uma réplica de Mjölnir, o martelo de Thor. Há rumores de " -"podernivelarmontanhas com um único golpe. Está decorado com ornamentos de " -"ouro eprata." #: lang/json/GENERIC_from_json.py msgid "Gungnir" @@ -50223,9 +44613,6 @@ msgid "" "spear, perfectly hitting any target regardless of the wielder's strength or " "skill. It is decorated with gold and silver ornaments." msgstr "" -" GungnirA réplica de Gungnir, a lança de Odin. Há rumores de que é " -"alançaperfeita, acertando perfeitamente qualquer alvo, independentemente " -"daforçaou perícia do usuário. Está decorado com ornamentos de ouro e prata." #: lang/json/GENERIC_from_json.py msgid "broken light auto armor" @@ -50241,9 +44628,6 @@ 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 "" -" Armor de luz leve quebradoUm conjunto quebrado de blindagem de poder " -"equipado com um núcleo AI para uso automatizado. Não pode ser usado ou " -"desmontado até ser reprojetado em um robô não danificado." #: lang/json/GENERIC_from_json.py msgid "broken basic auto armor" @@ -50269,9 +44653,6 @@ msgid "" "A broken repair robot, now limp and unmoving. Could be gutted for parts or " "re-crafted into a functioning pal." msgstr "" -" quebrado básico auto armorbroken pesado auto armordead craftbuddyUm " -"robôdereparo quebrado, agora mole e imóvel. Poderia ser estripado por " -"partesoure-criado em um amigo funcional." #: lang/json/GENERIC_from_json.py msgid "broken floating lantern" @@ -50285,23 +44666,17 @@ msgid "" "A broken floating lantern, now dark and motionless. Could be gutted for " "parts." msgstr "" -" Lanterna flutuante quebradaUma lanterna flutuante quebrada, agora " -"escuraeimóvel. Poderia ser estripado por 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 "" -" Um incêndio criminoso quebrado, agora frio e queimado. Poderia " -"serestripadopor 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 "" -" Um distract-o-hack quebrado, agora silencioso e parado. Poderiaserestripado" -" por partes." #: lang/json/GENERIC_from_json.py msgid "broken spore hack" @@ -50315,9 +44690,6 @@ msgid "" "A broken spore hack. Much less threatening now that it lies quiet on solid " "ground. Could be gutted for parts." msgstr "" -" hack quebrado do sporeUm hack quebrado do spore. Muito menos " -"ameaçadoragoraque fica quieto em terra firme. Poderia ser estripado por " -"partes." #: lang/json/GENERIC_from_json.py msgid "broken watercannon turret" @@ -50331,9 +44703,6 @@ msgid "" "A broken watercannon turret. Much less threatening now that it lies limp on" " solid ground. Could be gutted for parts." msgstr "" -" Torre de watercannon quebrado Torre de watercannon quebrado. " -"Muitomenosameaçador agora que fica mole em terra firme. Poderia ser " -"estripadoporpartes." #: lang/json/GENERIC_from_json.py msgid "broken floating heater" @@ -50347,8 +44716,6 @@ msgid "" "A broken floating heater, now cold and motionless. Could be stripped down " "or re-crafted." msgstr "" -" aquecedor flutuante quebradoUm aquecedor flutuante quebrado, agora " -"frioeimóvel. Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken floating furnace" @@ -50362,8 +44729,6 @@ msgid "" "A broken floating furnace, now cold and motionless. Could bestripped down " "or re-crafted." msgstr "" -" forno flutuante quebradoUm forno flutuante quebrado, agora frio eimóvel. " -"Poderia ser melhor ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken burning eye" @@ -50377,8 +44742,6 @@ msgid "" "A broken burning eye, now dark and motionless. Could be stripped down or " "re-crafted." msgstr "" -" Um olho queimado quebrado, agora escuro e imóvel. Poderia ser " -"desmontadooure-criado." #: lang/json/GENERIC_from_json.py msgid "broken butler-bot" @@ -50392,8 +44755,6 @@ msgid "" "A broken butler-bot, now silent and mangled. Could be stripped down for " "parts." msgstr "" -" butler-bot quebrado Um butler-bot quebrado, agora silencioso emutilado. " -"Poderia ser despojado para peças." #: lang/json/GENERIC_from_json.py msgid "broken construction robot" @@ -50407,8 +44768,6 @@ msgid "" "A broken construction robot, now wrecked and immobile. Could be stripped " "down for parts." msgstr "" -" Robô de construção quebradoUm robô de construção quebrado, agora " -"destruídoeimóvel. Poderia ser despojado para peças." #: lang/json/GENERIC_from_json.py msgid "broken firefighter robot" @@ -50422,8 +44781,6 @@ msgid "" "A broken firefighter robot, now cold and inert. Could be stripped down for " "parts." msgstr "" -" Robô de bombeiro quebradoUm robô de bombeiro quebrado, agora frio einerte. " -"Poderia ser despojado para peças." #: lang/json/GENERIC_from_json.py msgid "broken blob breeder" @@ -50437,8 +44794,6 @@ msgid "" "A broken robotic incubator for alien blobs. Could be stripped down or re-" "crafted." msgstr "" -" Criador de blob quebradoUma incubadora robótica quebrada " -"parablobsalienígenas. Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken slime breeder" @@ -50452,8 +44807,6 @@ msgid "" "A broken robotic incubator for alien slimes. Could be stripped down or re-" "crafted." msgstr "" -" Criador de lodo quebradoUma incubadora robótica quebrada " -"paralimosalienígenas. Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken digestron" @@ -50467,8 +44820,6 @@ msgid "" "A broken acid digestor robot, now cold and unmoving. Could be stripped down" " or re-crafted." msgstr "" -" digestão quebradoUm robô digestor de ácido quebrado, agora frio eimóvel. " -"Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken bee-bot" @@ -50482,8 +44833,6 @@ msgid "" "A broken beehive robot, now still and bee-less. Could be stripped down or " "re-crafted." msgstr "" -" broken bee-botUm robô de colmeia quebrado, agora parado e semabelha. " -"Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken medical bot" @@ -50497,8 +44846,6 @@ msgid "" "A broken medical robot, now crumpled and inert. Could be stripped down for " "parts." msgstr "" -" quebrado médico botA quebrado robô médico, agora amassado e inerte. " -"Poderiaser despojado para peças." #: lang/json/GENERIC_from_json.py msgid "broken disarmed medical robot" @@ -50513,9 +44860,6 @@ msgid "" "tools have been removed. Could be gutted for parts or crafted into a " "salvaged robot." msgstr "" -" robô médico desarmado quebradoUm robô médico quebrado. Seu pharma- " -"craftereinstrumentos cirúrgicos integrais foram removidos. Poderia " -"serestripadopor peças ou trabalhado em um robô recuperado." #: lang/json/GENERIC_from_json.py msgid "broken assassin robot" @@ -50529,8 +44873,6 @@ msgid "" "A broken assassin robot, now limp and immobile. Could be stripped down or " "re-crafted." msgstr "" -" robô assassino quebradoUm robô assassino quebrado, agora mole eimóvel. " -"Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken elixirator" @@ -50544,8 +44886,6 @@ msgid "" "A broken elixirator, now shattered and lifeless. Could be stripped down or " "re-crafted." msgstr "" -" elixirador quebradoUm elixirador quebrado, agora quebrado e semvida. " -"Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken party bot" @@ -50559,8 +44899,6 @@ msgid "" "A broken party robot, now wasted and burnt out. Looks like the party's " "over. Could be stripped down or re-crafted." msgstr "" -" partido quebrado botUm robô partido partido, agora desperdiçado equeimado. " -"Parece que a festa acabou. Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken insane cyborg" @@ -50574,8 +44912,6 @@ msgid "" "A broken cyborg, now limp and unmoving. Could be gutted for parts or " "crafted into a salvaged robot." msgstr "" -" cyborg insano quebradoUm ciborgue quebrado, agora mole e imóvel. " -"Poderiaserestripado por peças ou trabalhado em um robô recuperado." #: lang/json/GENERIC_from_json.py msgid "broken necrotic cyborg" @@ -50589,8 +44925,6 @@ msgid "" "A broken cyborg, now limp and unmoving. Could be stripped down or re-" "crafted into a salvaged robot." msgstr "" -" Um cyborg quebrado, agora mole e imóvel. Poderia ser desmontado ou re- " -"criado em um robô recuperado." #: lang/json/GENERIC_from_json.py msgid "broken rat snatcher" @@ -50604,8 +44938,6 @@ msgid "" "A broken rat snatcher, now harmless and inert. Could be stripped down or " "re-crafted." msgstr "" -" snatcher de rato quebradoUm snatcher de rato quebrado, agora " -"inofensivoeinerte. Poderia ser desmontado ou re-criado." #: lang/json/GENERIC_from_json.py msgid "broken grab-bot" @@ -50619,8 +44951,6 @@ msgid "" "A broken grabber robot, now limp and nonthreatening. Could be stripped down" " or re-crafted." msgstr "" -" Um robô quebrado, agora mole e não ameaçador. Poderia ser desmontado ou re-" -" criado." #: lang/json/GENERIC_from_json.py msgid "broken pest hunter" @@ -50634,8 +44964,6 @@ msgid "" "A broken pest hunter, now harmless and inert. Could be gutted for parts or " "re-crafted." msgstr "" -" Um caçador de pragas quebrado, agora inofensivo e inerte. " -"Poderiaserestripado por partes ou re-crafted." #: lang/json/GENERIC_from_json.py msgid "broken defense bot" @@ -50655,8 +44983,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken salvaged robot. Could be stripped for parts or re-crafted." msgstr "" -" quebrada defesa junco de botbroken cowboyA quebrado salvado robô.Poderiaser" -" despojado para peças ou re-crafted." #: lang/json/GENERIC_from_json.py msgid "broken shortcircuit samurai" @@ -50688,10 +45014,6 @@ msgid "" "A broken military trainer robot, shattered and inert. This one is armed with" " an integrated paintball gun. Could be stripped for parts." msgstr "" -" shortcircuit quebrado samuraibroken slapdash paladinbroken " -"desarmadomilitarbotbroken militar treinador robotUm robô instrutor " -"militarquebrado, quebrado e inerte. Este está armado com uma arma de " -"paintballintegrada. Pode ser despojado de peças." #: lang/json/GENERIC_from_json.py msgid "broken military robot" @@ -50705,9 +45027,6 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 5.56mm firearm. Could be stripped for parts." msgstr "" -" Robô militar quebradoUm robô militar quebrado, quebrado e inerte. " -"Esteestáarmado com uma arma de fogo integrada de 5.56mm. Pode ser " -"despojadodepeças." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -50715,8 +45034,6 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 7.62mm firearm. Could be stripped for parts." msgstr "" -" Um robô militar quebrado, quebrado e inerte. Este é armado com uma " -"armadefogo integrada de 7.62mm. Pode ser despojado de peças." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -50724,8 +45041,6 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 50 caliber firearm. Could be stripped for parts." msgstr "" -" Um robô militar quebrado, quebrado e inerte. Este é armado com uma " -"armadefogo integrada de 50 calibres. Pode ser despojado de peças." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -50733,8 +45048,6 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 8x40mm firearm. Could be stripped for parts." msgstr "" -" Um robô militar quebrado, quebrado e inerte. Este está armado com umaarmade" -" fogo 8x40mm integrada. Pode ser despojado de peças." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -50742,8 +45055,6 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated flechette gun. Could be stripped for parts." msgstr "" -" Um robô militar quebrado, quebrado e inerte. Este está armado com " -"umaarmaflechette integrada. Pode ser despojado de peças." #. ~ Description for broken military robot #: lang/json/GENERIC_from_json.py @@ -50751,8 +45062,6 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated 40mm grenade launcher. Could be stripped for parts." msgstr "" -" Um robô militar quebrado, quebrado e inerte. Este é armado com umlançadorde" -" granadas de 40mm integrado. Pode ser despojado de peças." #: lang/json/GENERIC_from_json.py msgid "broken military flame robot" @@ -50766,8 +45075,6 @@ msgid "" "A broken military robot, shattered and inert. This one is armed with an " "integrated flamethrower. Could be stripped for parts." msgstr "" -" Um robô militar quebrado, quebrado e inerte. Este está armado com um lança-" -" chamas integrado. Pode ser despojado de peças." #: lang/json/GENERIC_from_json.py msgid "broken robo-guardian" @@ -50783,8 +45090,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken salvaged robot. Could be stripped or recrafted." msgstr "" -" robo-gaurdian quebradoUm robô recuperado quebrado. Poderia ser " -"despojadoourecraft." #: lang/json/GENERIC_from_json.py msgid "broken robote deluxe" @@ -50796,8 +45101,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken deluxe robot. Could be stripped or recrafted." msgstr "" -" robote quebrado deluxeUm robô de luxo quebrado. Poderia ser " -"despojadoourecraft." #: lang/json/GENERIC_from_json.py msgid "broken robo-protector" @@ -50823,9 +45126,6 @@ msgid "" "A broken advanced robot. Its internal weapons have been removed. Could be " "gutted for parts or crafted into a salvaged robot." msgstr "" -" robo-protectorbroken quebrado robo-defenderbroken avançado " -"desarmadobotAavançado robô quebrado. Suas armas internas foram removidas. " -"Poderiaserestripado por peças ou trabalhado em um robô recuperado." #: lang/json/GENERIC_from_json.py msgid "broken advanced robot" @@ -50839,8 +45139,6 @@ msgid "" "A broken advanced robot. This one is armed with an integrated laser-emitter." " Could be stripped for parts." msgstr "" -" robô avançado quebradoUm robô avançado quebrado. Este está armado " -"comumemissor laser integrado. Pode ser despojado de peças." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -50848,8 +45146,6 @@ msgid "" "A broken advanced robot. This one is armed with an integrated plasma-" "ejector. Could be stripped for parts." msgstr "" -" Um robô avançado quebrado. Este está armado com um ejetor " -"deplasmaintegrado. Pode ser despojado de peças." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -50857,8 +45153,6 @@ msgid "" "A broken advanced robot. This one is armed with an integrated electro-" "caster. Could be stripped for parts." msgstr "" -" Um robô avançado quebrado. Este está armado com um eletro- casterintegrado." -" Pode ser despojado de peças." #. ~ Description for broken advanced robot #: lang/json/GENERIC_from_json.py @@ -50866,8 +45160,6 @@ msgid "" "A broken advanced robot. This one is armed with an integrated EMP projector." " Could be stripped for parts." msgstr "" -" Um robô avançado quebrado. Este está armado com um projetor EMPintegrado. " -"Pode ser despojado de peças." #: lang/json/GENERIC_from_json.py msgid "broken glittering lady" @@ -50895,9 +45187,6 @@ msgid "" "A broken salvaged robot. Thank God it's finally dead. Could be stripped or " "recrafted." msgstr "" -" quebrado resplandecente ladybroken amargura spinsterbrokenmotosserrahorrorA" -" quebrado salvado robô. Graças a Deus está finalmentemorto. Poderiaser " -"despojado ou recraft." #: lang/json/GENERIC_from_json.py msgid "broken screeching terror" @@ -50922,8 +45211,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A broken salvaged robot. Could be stripped or recrafted." msgstr "" -" quebrado estridente terrorbroken enganchado nightmarebroken " -"punhokingAquebrado salvado robô. Poderia ser despojado ou recraft." #: lang/json/GENERIC_from_json.py msgid "broken atomic sultan" @@ -50935,7 +45222,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A computer module for controlling robots." msgstr "" -" módulo de computador quebrado do sultanAI coreA atômico paracontrolarrobôs." #: lang/json/GENERIC_from_json.py msgid "surgery module" @@ -50946,7 +45232,7 @@ msgstr[1] "" #. ~ Description for surgery module #: lang/json/GENERIC_from_json.py msgid "A microsurgery module for a medical robot." -msgstr "módulo de cirurgiaUm módulo de microcirurgia para um robô médico." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "pharmaceutical module" @@ -50958,7 +45244,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A pharmaceutical fabricating module for a medical robot." msgstr "" -" módulo farmacêuticoUm módulo de fabricação farmacêutica para um robômédico." #: lang/json/GENERIC_from_json.py lang/json/gun_from_json.py #: lang/json/gun_from_json.py @@ -50973,8 +45258,6 @@ msgid "" "A high-powered paintball module used for safely testing robots or training " "soldiers." msgstr "" -" gunball paintball integralUm módulo de paintball de alta potência " -"usadoparatestar com segurança robôs ou treinar soldados." #: lang/json/GENERIC_from_json.py msgid "robot carrier" @@ -50990,11 +45273,6 @@ msgid "" "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 "" -" transportador de robôUma estrutura pesada equipada com amarras e " -"pontosdefixação para transportar carga, com grades adicionais para " -"manterumamáquina grande no lugar. Destina-se a segurar grandes drones e " -"robôspara otransporte. Use-o em um robô adequado para capturar, use-o em " -"umblocovazio para liberar." #: lang/json/GENERIC_from_json.py msgid "a large artillery casing" @@ -51018,8 +45296,6 @@ msgstr[1] "" #: lang/json/GENERIC_from_json.py msgid "A canister from a spent 30mm shell." msgstr "" -" uma caçamba de artilharia de grande porte 30x113mm canhão " -"autoportante30mmCanisterUma caixinha de 30mm." #: lang/json/GENERIC_from_json.py msgid "120mm canister" @@ -51032,8 +45308,6 @@ msgstr[1] "" msgid "" "A large canister from a spent 120mm shell, now an expensive paperweight." msgstr "" -" Canister de 120mmUma caixa grande de um shell de 120mm gasto, agora " -"umpesode papel caro." #: lang/json/GENERIC_from_json.py msgid "155mm canister" @@ -51046,8 +45320,6 @@ msgstr[1] "" msgid "" "A large canister from a spent 155mm shell, now an expensive paperweight." msgstr "" -" Canister de 155mmUma caixa grande de um reservatório de 155mm gasto, " -"agoraum peso de papel caro." #: lang/json/GENERIC_from_json.py msgid "amorphous heart" @@ -51068,15 +45340,6 @@ msgid "" " be in contact with it; and it appears unnervingly willing to accommodate " "you..." msgstr "" -" coração amorfoEsta massa amorfa parece ter acabado de se " -"desenvolver;suasestruturas internas avançadas, atestando isso. É capaz de " -"locomoçãopormeio de pressão hidráulica interna, capaz de movimentar " -"cargassubstanciaise, em uma exibição espantosa de inteligência, é capaz " -"demanipular tudo oque está ligado, seja baseado em blob ou não, através " -"depseudópodesestendidos. Você acha que pode ser capaz de manipulá-lo e, " -"através dele, todas as partes anexadas. Apesar de fazer isso, você terá " -"quese posicionarpara estar em contato com ele; e parece " -"inquietantementedisposto aacomodá-lo ..." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "solar array" @@ -51092,10 +45355,6 @@ msgid "" " efficiency due to being able track the sun. However, this comes at the " "cost of being prohibitively heavy." msgstr "" -" painéis solares Uma dúzia de painéis solares instalados em umchassi, " -"atingindo vários metros de altura. Ele mantém os painéis frágeislonge " -"dequalquer ameaça potencial e melhora a eficiência devido aorastreamento " -"dosol. No entanto, isso ocorre ao custo de ser proibitivamentepesado." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "upgraded solar array" @@ -51111,11 +45370,6 @@ msgid "" "improves efficiency due to being able to track the sun. However, this comes" " at the cost of being prohibitively heavy and obstructive." msgstr "" -" painel solar atualizado Uma dúzia de painéis solares " -"atualizadosinstaladosem um chassi, atingindo vários metros de altura. Ele " -"mantém ospainéisfrágeis longe de qualquer ameaça potencial e melhora a " -"eficiência, pois écapaz de rastrear o sol. No entanto, isso ocorre ao custo " -"deserproibitivamente pesado e obstrutivo." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "upgraded reinforced solar array" @@ -51132,11 +45386,6 @@ msgid "" "However, this comes at the cost of being prohibitively heavy and " "obstructive." msgstr "" -" Sistema Solar Reforçado Reforçado Uma dúzia de painéis " -"solaresreforçadosmelhorados colocados num chassis com vários metros de " -"altura. Elemantém ospainéis frágeis longe de qualquer ameaça potencial e " -"melhora aeficiência, pois é capaz de rastrear o sol. No entanto, isso ocorre" -" ao custode serproibitivamente pesado e obstrutivo." #. ~ Description for turret chassis #: lang/json/GENERIC_from_json.py @@ -51148,13 +45397,6 @@ msgid "" "system. It is controlled by a targeting AI that can adapt to the usage of " "whatever weapon that has been loading, with proper programming." msgstr "" -" Chassi de revólverUm quadro capaz de girar 360 graus, capaz " -"demontarmúltiplos sistemas de armas, soldados diretamente sobre ele ou " -"presospormeio das tiras. Ele vem com um recipiente facilmente " -"modificadoparaarmazenamento de munição, um sistema de alimentação de " -"muniçãorudimentarpara facilitar o acesso e uma seção para um sistema de " -"movimento. Ele écontrolado por uma AI de direcionamento que pode se adaptar " -"ao usodequalquer arma que esteja carregando, com programação adequada." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "diamond frame" @@ -51168,8 +45410,6 @@ msgid "" "A brilliantly sparkling diamond vehicle frame. Incredibly strong for its " "weight." msgstr "" -" moldura de diamanteUm quadro de veículo de diamantebrilhantementeespumante." -" Incrivelmente forte por seu peso." #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "diamond plating" @@ -51183,8 +45423,6 @@ msgid "" "A piece of armor plating made of clear diamond. Incredibly strong for its " "weight." msgstr "" -" diamante chapeamentoUma peça de armadura feita de diamanteclaro. " -"Incrivelmente forte por seu peso." #: lang/json/GENERIC_from_json.py msgid "stabilized portal" @@ -51199,19 +45437,15 @@ msgid "" "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 "" -" portal estabilizado Como você olha para as " -"profundezasaparentementeinfinitas deste buraco portátil na realidade, uma " -"frase de umtempo que sefoi para sempre ecoa em sua mente.\"Existem duas " -"coisas que sãoinfinitas:o universo e a cleptomania humana." #: lang/json/ITEM_CATEGORY_from_json.py msgid "GUNS" -msgstr "ARMAS" +msgstr "" #. ~ Crafting recipes subcategory of 'WEAPON' category #: lang/json/ITEM_CATEGORY_from_json.py lang/json/recipe_category_from_json.py msgid "MAGAZINES" -msgstr "REVISTAS" +msgstr "" #. ~ Crafting recipes category name #. ~ Crafting recipes subcategory of 'ENCHANTED' category @@ -51233,7 +45467,7 @@ msgstr "FERRAMENTAS" #: lang/json/ITEM_CATEGORY_from_json.py msgid "CLOTHING" -msgstr "ROUPAS" +msgstr "" #. ~ Crafting recipes category name #: lang/json/ITEM_CATEGORY_from_json.py lang/json/recipe_category_from_json.py @@ -51247,11 +45481,11 @@ msgstr "DROGAS" #: lang/json/ITEM_CATEGORY_from_json.py msgid "BOOKS" -msgstr "LIVROS" +msgstr "" #: lang/json/ITEM_CATEGORY_from_json.py msgid "MAPS" -msgstr "MAPAS" +msgstr "" #. ~ Crafting recipes subcategory of 'WEAPON' category #. ~ Crafting recipes subcategory of 'ENCHANTED' category @@ -51261,15 +45495,15 @@ msgstr "MODS" #: lang/json/ITEM_CATEGORY_from_json.py msgid "MUTAGENS" -msgstr "MUTAGENS" +msgstr "" #: lang/json/ITEM_CATEGORY_from_json.py src/player_display.cpp msgid "BIONICS" -msgstr "BIÔNICA" +msgstr "" #: lang/json/ITEM_CATEGORY_from_json.py msgid "VEHICLE PARTS" -msgstr "PEÇAS PARA VEÍCULOS" +msgstr "" #. ~ Crafting recipes subcategory of 'WEAPON' category #. ~ Crafting recipes subcategory of 'AMMO' category @@ -51287,30 +45521,30 @@ msgstr "OUTROS" #. ~ Crafting recipes subcategory of 'CHEM' category #: lang/json/ITEM_CATEGORY_from_json.py lang/json/recipe_category_from_json.py msgid "FUEL" -msgstr "COMBUSTÍVEL" +msgstr "" #. ~ Crafting recipes subcategory of 'FOOD' category #: lang/json/ITEM_CATEGORY_from_json.py lang/json/recipe_category_from_json.py msgid "SEEDS" -msgstr "SEMENTES" +msgstr "" #: lang/json/ITEM_CATEGORY_from_json.py msgid "CHEMICAL STUFF" -msgstr "MATERIAL QUÍMICO" +msgstr "" #: lang/json/ITEM_CATEGORY_from_json.py msgid "SPARE PARTS" -msgstr "PARTES SEPARADAS" +msgstr "" #: lang/json/ITEM_CATEGORY_from_json.py msgid "ARTIFACTS" -msgstr "ARTEFATOS" +msgstr "" #. ~ Crafting recipes category name #. ~ Crafting recipes subcategory of 'ENCHANTED' category #: lang/json/ITEM_CATEGORY_from_json.py lang/json/recipe_category_from_json.py msgid "ARMOR" -msgstr "ARMADURAS" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light battery" @@ -51526,28 +45760,26 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" -msgstr "bunker de combustível" +msgstr "" #. ~ Description for fuel bunker #: lang/json/MAGAZINE_from_json.py msgid "A bin for holding solid fuel." -msgstr "Uma caixa para guardar combustível sólido." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ammo belt" -msgstr "cinto de munição" +msgstr "" #. ~ Description for ammo belt #: lang/json/MAGAZINE_from_json.py msgid "" "An ammo belt consisting of metal linkages which disintegrate upon firing." msgstr "" -" Um cinto de munição que consiste de ligações metálicas que " -"sedesintegramapós o disparo." #: lang/json/MAGAZINE_from_json.py msgid "H&K G80 magazine" -msgstr "Revista H & K G80" +msgstr "" #. ~ Description for H&K G80 magazine #: lang/json/MAGAZINE_from_json.py @@ -51555,12 +45787,10 @@ msgid "" "A magazine for H&K G80 Railgun which can hold up to 20 ferromagnetic " "projectiles." msgstr "" -" Uma revista para H & K G80 Railgun que pode conter até " -"20projéteisferromagnéticos." #: lang/json/MAGAZINE_from_json.py msgid "RMSA10 20x66mm compact magazine" -msgstr "Compartimento compacto RMSA10 20x66mm" +msgstr "" #. ~ Description for RMSA10 20x66mm compact magazine #: lang/json/MAGAZINE_from_json.py @@ -51568,30 +45798,24 @@ msgid "" "A 10 round box magazine for use with the RM228 PDW and RM121 auxiliary " "shotgun." msgstr "" -" Um magazine de 10 caixas redondas para uso com a espingarda " -"auxiliarRM228PDW e RM121." #: lang/json/MAGAZINE_from_json.py msgid "RMSB20 20x66mm magazine" -msgstr "Revista RMSB20 20x66mm" +msgstr "" #. ~ Description for RMSB20 20x66mm magazine #: lang/json/MAGAZINE_from_json.py msgid "A 20 round box magazine for use with the RM20 caseless shotgun." msgstr "" -" Uma revista de 20 caixas redondas para uso com a espingarda " -"deespingardaRM20." #: lang/json/MAGAZINE_from_json.py msgid "RMSB40 20x66mm extended magazine" -msgstr "RMSB40 20x66mm revista estendida" +msgstr "" #. ~ Description for RMSB40 20x66mm extended magazine #: lang/json/MAGAZINE_from_json.py msgid "A 40 round box magazine for use with the RM20 caseless shotgun." msgstr "" -" Uma revista de 40 caixas redondas para uso com a espingarda " -"deespingardaRM20." #: lang/json/MAGAZINE_from_json.py msgid ".22 8-round speedloader" @@ -51606,32 +45830,30 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMRB200 .22 magazine" -msgstr "Revista RMRB200 .22" +msgstr "" #. ~ Description for RMRB200 .22 magazine #: lang/json/MAGAZINE_from_json.py msgid "A 200 round box magazine for use with the RM360 rotary carbine." msgstr "" -" Um magazine de 200 caixas redondas para uso com a carabina rotativa RM360." #: lang/json/MAGAZINE_from_json.py msgid "RMRD400 .22 drum magazine" -msgstr "RMRD400, 22 revistas rodoviárias" +msgstr "" #. ~ Description for RMRD400 .22 drum magazine #: lang/json/MAGAZINE_from_json.py msgid "A 400 round drum magazine for use with the RM360 rotary carbine." msgstr "" -" Um magazine de tambor redondo de 400 para uso com a carabina rotativaRM360." #: lang/json/MAGAZINE_from_json.py msgid "A-180 magazine" -msgstr "Revista A-180" +msgstr "" #. ~ Description for A-180 magazine #: lang/json/MAGAZINE_from_json.py msgid "An unusually shaped pan magazine for the American-180." -msgstr "Um compartimento de forma incomum para a American-180." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid ".22 19-round tube loader" @@ -51646,25 +45868,25 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "SIG Mosquito magazine" -msgstr "Revista SIG Mosquito" +msgstr "" #. ~ Description for SIG Mosquito magazine #: lang/json/MAGAZINE_from_json.py msgid "A factory specification 10-round magazine for the SIG Mosquito." -msgstr "Uma revista de 10-especificação de fábrica para o Mosquito SIG." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Ruger BX-25 magazine" -msgstr "Revista Ruger BX-25" +msgstr "" #. ~ Description for Ruger BX-25 magazine #: lang/json/MAGAZINE_from_json.py msgid "Extended 25-round stick magazine for the Ruger 10/22." -msgstr "Estojo com 25 voltas para o Ruger 10/22." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Ruger 10/22 rotary magazine" -msgstr "Revista rotativa Ruger 10/22" +msgstr "" #. ~ Description for Ruger 10/22 rotary magazine #: lang/json/MAGAZINE_from_json.py @@ -51672,8 +45894,6 @@ msgid "" "Removable 10-round rotary magazine for the Ruger 10/22 which allows the " "magazine to fit flush with the bottom of the stock." msgstr "" -" Compartimento giratório removível de 10 voltas para o Ruger " -"10/22,quepermite que a revista caiba com a parte inferior do estoque." #: lang/json/MAGAZINE_from_json.py msgid "makeshift .22 30-round magazine" @@ -51689,13 +45909,12 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "S&W 22A magazine" -msgstr "Revista S & W 22A" +msgstr "" #. ~ Description for S&W 22A magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard capacity magazine for the popular S&W 22A pistol." msgstr "" -"Uma revista de capacidade padrão para a popular pistola S & W 22A." #: lang/json/MAGAZINE_from_json.py msgid "Jennings J-22 magazine" @@ -51719,11 +45938,11 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ammo belt 5.56x45mm" -msgstr "cinto de munição 5.56x45mm" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "LW-56 magazine" -msgstr "Revista LW-56" +msgstr "" #. ~ Description for LW-56 magazine #: lang/json/MAGAZINE_from_json.py @@ -51732,13 +45951,10 @@ msgid "" "design makes it surprisingly easy to store. Lightweight and reliable but " "somewhat more difficult to reload." msgstr "" -" Um magazine de polímeros com 56 voltas para as armas de fogo " -"daLeadworksLLC. Seu design compacto torna surpreendentemente fácil " -"dearmazenar. Levee confiável, mas um pouco mais difícil de recarregar." #: lang/json/MAGAZINE_from_json.py msgid "LW-32 magazine" -msgstr "Revista LW-32" +msgstr "" #. ~ Description for LW-32 magazine #: lang/json/MAGAZINE_from_json.py @@ -51746,8 +45962,6 @@ msgid "" "A 32-round polymer magazine for Leadworks LLC 223 firearms. Lightweight and" " reliable but somewhat more difficult to reload." msgstr "" -" Um magazine de polímero de 32 voltas para as armas de fogo LeadworksLLC223." -" Leve e confiável, mas um pouco mais difícil de recarregar." #: lang/json/MAGAZINE_from_json.py msgid "Ruger .223 5-round magazine" @@ -51778,17 +45992,16 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "STANAG magazine" -msgstr "Revista STANAG" +msgstr "" #. ~ Description for STANAG magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard capacity magazine for use with STANAG compatible rifles." msgstr "" -" Um magazine de capacidade padrão para uso com rifles compatíveis comSTANAG." #: lang/json/MAGAZINE_from_json.py msgid "STANAG drum magazine" -msgstr "Revista tambor STANAG" +msgstr "" #. ~ Description for STANAG drum magazine #: lang/json/MAGAZINE_from_json.py @@ -51796,12 +46009,10 @@ msgid "" "A 50-round magazine with a bulky green drum for use with STANAG compatible " "rifles." msgstr "" -" Uma revista de 50 rounds com um tambor verde volumoso para uso " -"comriflescompatíveis com STANAG." #: lang/json/MAGAZINE_from_json.py msgid "makeshift .223 magazine" -msgstr "revista improvisada 223" +msgstr "" #. ~ Description for makeshift .223 magazine #: lang/json/MAGAZINE_from_json.py @@ -51809,21 +46020,19 @@ msgid "" "An improvised magazine consisting of little more than a bent sheet of rusted" " metal held together by duct tape and hope." msgstr "" -" Uma revista improvisada composta por pouco mais que uma folha " -"demetalenferrujada unida por fita adesiva e esperança." #: lang/json/MAGAZINE_from_json.py msgid "M2010 ESR magazine" -msgstr "Revista M2010 ESR" +msgstr "" #. ~ Description for M2010 ESR magazine #: lang/json/MAGAZINE_from_json.py msgid "A 5-round box magazine used by M2010 ESR sniper rifle." -msgstr "Um compartimento de 5 rounds usado pelo rifle sniper M2010 ESR." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "rifle clip - .30-06" -msgstr "clipe de rifle - 30-06" +msgstr "" #. ~ Description for rifle clip - .30-06 #. ~ Description for rifle clip - 7.62x39mm @@ -51833,21 +46042,19 @@ msgid "" "A tiny piece of grooved metal designed to allow a shooter to quickly load a " "bolt-action rifle." msgstr "" -" Um pequeno pedaço de metal ranhurado projetado para permitir que " -"umatiradorcarregue rapidamente um rifle de ação rápida." #: lang/json/MAGAZINE_from_json.py msgid "Browning BLR magazine" -msgstr "Revista Browning BLR" +msgstr "" #. ~ Description for Browning BLR magazine #: lang/json/MAGAZINE_from_json.py msgid "A compact 4-round box magazine for the Browning BLR." -msgstr "Um compartimento compacto de 4 rounds para o Browning BLR." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M1 Garand Clip" -msgstr "Clipe de Garand M1" +msgstr "" #. ~ Description for M1 Garand Clip #: lang/json/MAGAZINE_from_json.py @@ -51855,12 +46062,10 @@ msgid "" "A light-weight en-bloc clip for use with the M1 Garand that will be ejected " "after the last round is fired." msgstr "" -" Um clipe em bloco leve para uso com o M1 Garand que será ejetado " -"apósaúltima rodada é disparado." #: lang/json/MAGAZINE_from_json.py msgid "BAR extended magazine" -msgstr "Revista extendida da BAR" +msgstr "" #. ~ Description for BAR extended magazine #: lang/json/MAGAZINE_from_json.py @@ -51868,12 +46073,10 @@ msgid "" "An aftermarket magazine for use with the Browning Automatic Rifle, holds 30 " "rounds." msgstr "" -" Uma revista de pós-venda para uso com o fuzil automático Browning, " -"detém30rodadas." #: lang/json/MAGAZINE_from_json.py msgid "BAR magazine" -msgstr "Revista BAR" +msgstr "" #. ~ Description for BAR magazine #: lang/json/MAGAZINE_from_json.py @@ -51881,52 +46084,50 @@ msgid "" "A standard capacity magazine for use with the Browning Automatic Rifle, " "holds 20 rounds." msgstr "" -" Um magazine de capacidade padrão para uso com o Rifle AutomáticoBrowning, " -"tem 20 rodadas." #: lang/json/MAGAZINE_from_json.py msgid "ammo belt 7.62x51mm" -msgstr "cinto de munição 7.62x51mm" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN FAL extended magazine" -msgstr "Revista estendida FN FAL" +msgstr "" #. ~ Description for FN FAL extended magazine #: lang/json/MAGAZINE_from_json.py msgid "An extended 30-round steel box magazine for the FN FAL rifle." -msgstr "Um compartimento estendido de 30 barras de aço para o rifle FN FAL." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN FAL magazine" -msgstr "Revista FN FAL" +msgstr "" #. ~ Description for FN FAL magazine #: lang/json/MAGAZINE_from_json.py msgid "A military issue 20-round steel box magazine for the FN FAL rifle." -msgstr "Uma revista militar de aço de 20 rounds para o rifle FN FAL." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "H&K G3 drum magazine" -msgstr "Compartimento de bateria H & K G3" +msgstr "" #. ~ Description for H&K G3 drum magazine #: lang/json/MAGAZINE_from_json.py msgid "An 50-round drum magazine for the H&K G3 rifle." -msgstr "Uma revista de tambor de 50 rounds para o rifle H & K G3." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "H&K G3 magazine" -msgstr "Revista H & K G3" +msgstr "" #. ~ Description for H&K G3 magazine #: lang/json/MAGAZINE_from_json.py msgid "A lightweight aluminum box magazine for the H&K G3 rifle." -msgstr "Uma revista leve de caixa de alumínio para o rifle H & K G3." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M14 magazine" -msgstr "Revista M14" +msgstr "" #. ~ Description for M14 magazine #: lang/json/MAGAZINE_from_json.py @@ -51934,12 +46135,10 @@ msgid "" "A military issue 20-round steel box magazine compatible with M14 pattern " "rifles." msgstr "" -" Um compartimento militar de aço redondo de 20 compartimentos " -"compatívelcomrifles de padrão M14." #: lang/json/MAGAZINE_from_json.py msgid "M14 compact magazine" -msgstr "Compartimento compacto M14" +msgstr "" #. ~ Description for M14 compact magazine #: lang/json/MAGAZINE_from_json.py @@ -51948,28 +46147,24 @@ msgid "" "pattern rifles. Although it has a low capacity it is easy to store and " "quick to reload." msgstr "" -" Compartimento compacto de caixa de aço com 5 voltas de " -"reposiçãocompatívelcom rifles de padrão M14. Embora tenha pouca capacidade, " -"é fácildearmazenar e recarregar rapidamente." #: lang/json/MAGAZINE_from_json.py msgid "FN SCAR-H drum magazine" -msgstr "Revista de tambores FN SCAR-H" +msgstr "" #. ~ Description for FN SCAR-H drum magazine #: lang/json/MAGAZINE_from_json.py msgid "An 50-round drum magazine for the FN SCAR-H rifle." -msgstr "Uma revista de tambor de 50 rounds para o rifle FN SCAR-H." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN SCAR-H magazine" -msgstr "Revista FN SCAR-H" +msgstr "" #. ~ Description for FN SCAR-H magazine #: lang/json/MAGAZINE_from_json.py msgid "A military issue 20-round steel box magazine for the FN SCAR-H rifle." msgstr "" -" Uma revista militar de aço redondo de 20 caixas para o rifle FN SCAR-H." #: lang/json/MAGAZINE_from_json.py msgid "HK417 magazine" @@ -52000,31 +46195,30 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Walther PPK magazine" -msgstr "Revista Walther PPK" +msgstr "" #. ~ Description for Walther PPK magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard 8-round steel box magazine for the Walther PPK." -msgstr "Um magazine de caixa de aço padrão de 8 rounds para o Walther PPK." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "SIG P230 magazine" -msgstr "Revista SIG P230" +msgstr "" #. ~ Description for SIG P230 magazine #: lang/json/MAGAZINE_from_json.py msgid "A factory specification 8-round magazine for the SIG Sauer P230." msgstr "" -" Um magazine de 8 rolos, com especificação de fábrica, para a SIG SauerP230." #: lang/json/MAGAZINE_from_json.py msgid "Skorpion Vz. 61 magazine" -msgstr "Skorpion Vz. Revista 61" +msgstr "" #. ~ Description for Skorpion Vz. 61 magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard 20-round magazine for the Skorpion Vz. 61, in .32 ACP." -msgstr "Uma revista padrão de 20 rounds para o Skorpion Vz. 61, em .32 ACP." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Kel-Tec P32 magazine" @@ -52037,7 +46231,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "P226 magazine .357 SIG" -msgstr "Revista P226 .357 SIG" +msgstr "" #. ~ Description for P226 magazine .357 SIG #: lang/json/MAGAZINE_from_json.py @@ -52045,8 +46239,6 @@ msgid "" "A 15 round double stack box magazine for a SIG P226 chambered for .357 SIG " "rounds." msgstr "" -" Um magazine de caixa redonda de 15 pilhas para um SIG P226 " -"emcompartimentospara rondas de 0,357 SIG." #: lang/json/MAGAZINE_from_json.py msgid "P320 magazine .357 SIG" @@ -52071,14 +46263,12 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Taurus .38 magazine" -msgstr "Revista Taurus .38" +msgstr "" #. ~ Description for Taurus .38 magazine #: lang/json/MAGAZINE_from_json.py msgid "A compact steel box magazine for use with the Taurus Pro .38 pistol." msgstr "" -" Um compartimento compacto de caixa de aço para uso com a pistola " -"TaurusPro.38." #: lang/json/MAGAZINE_from_json.py msgid ".38/.357 7-round speedloader" @@ -52183,12 +46373,12 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "SIG Pro .40 magazine" -msgstr "Revista SIG Pro .40" +msgstr "" #. ~ Description for SIG Pro .40 magazine #: lang/json/MAGAZINE_from_json.py msgid "A compact and reliable magazine for use with the SIG Pro .40 pistol." -msgstr "Uma revista compacta e confiável para uso com a pistola SIG Pro .40." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "makeshift .40 20-round magazine" @@ -52204,7 +46394,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "grenade belt" -msgstr "cinto de granada" +msgstr "" #. ~ Description for grenade belt #: lang/json/MAGAZINE_from_json.py @@ -52213,13 +46403,10 @@ msgid "" "This one holds 40mm grenades and is too bulky to be worn like other ammo " "belts." msgstr "" -" Um cinto de munição que consiste de ligações metálicas que " -"sedesintegramapós o disparo. Este tem granadas de 40mm e é muito " -"volumosopara ser usadocomo outros cinturões de munição." #: lang/json/MAGAZINE_from_json.py msgid "Saiga-410 box magazine" -msgstr "Revista de caixa Saiga-410" +msgstr "" #. ~ Description for Saiga-410 box magazine #: lang/json/MAGAZINE_from_json.py @@ -52230,7 +46417,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Saiga-410 drum magazine" -msgstr "Lojas de estrada Saiga-410" +msgstr "" #. ~ Description for Saiga-410 drum magazine #: lang/json/MAGAZINE_from_json.py @@ -52252,42 +46439,40 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Desert Eagle magazine" -msgstr "Revista Desert Eagle" +msgstr "" #. ~ Description for 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 "" -"Um magazine de 7 barras de aço padrão para uso com o IMI Desert Eagle." #: lang/json/MAGAZINE_from_json.py msgid "M1911 extended magazine" -msgstr "Revista estendida M1911" +msgstr "" #. ~ Description for M1911 extended magazine #: lang/json/MAGAZINE_from_json.py msgid "An extended 10-round magazine for use with the M1911 handgun." -msgstr "Uma revista estendida de 10 rodadas para uso com a pistola M1911." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M1911 magazine" -msgstr "Revista M1911" +msgstr "" #. ~ Description for M1911 magazine #: lang/json/MAGAZINE_from_json.py msgid "A military issue 7-round magazine for use with the M1911 handgun." -msgstr "Uma revista militar de 7 rounds para uso com a pistola M1911." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "MAC-10 magazine" -msgstr "Revista MAC-10" +msgstr "" #. ~ Description for MAC-10 magazine #: lang/json/MAGAZINE_from_json.py msgid "A cheap 30-round steel box magazine for use with the MAC-10 SMG." msgstr "" -"Um compartimento de 30 barras de aço barato para uso com o MAC-10 SMG." #: lang/json/MAGAZINE_from_json.py msgid "makeshift .45 20-round magazine" @@ -52303,25 +46488,25 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "TDI Vector magazine" -msgstr "Revista TDI Vector" +msgstr "" #. ~ Description for TDI Vector magazine #: lang/json/MAGAZINE_from_json.py msgid "A 30-round steel box magazine for use with the TDI Vector" -msgstr "Um magazine de caixa de aço 30 redondo para uso com o vetor TDI" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Thompson extended magazine" -msgstr "Thompson estendeu a revista" +msgstr "" #. ~ Description for Thompson extended magazine #: lang/json/MAGAZINE_from_json.py msgid "An extended 30-round magazine for the Thompson submachine gun." -msgstr "Uma revista estendida de 30 rounds para a submetralhadora Thompson." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Thompson drum magazine" -msgstr "Thompson drum magazine" +msgstr "" #. ~ Description for Thompson drum magazine #: lang/json/MAGAZINE_from_json.py @@ -52330,22 +46515,19 @@ msgid "" "gangsters, but the military preferred standard 20 and 30-round magazines due" " to greater reliability." msgstr "" -" Uma revista de tambor de 50 rounds para a submetralhadora Thompson. Tornou-" -" se famoso por bandidos, mas os militares preferiram revistas padrão de " -"20e30 rounds, devido à maior confiabilidade." #: lang/json/MAGAZINE_from_json.py msgid "Thompson magazine" -msgstr "Revista Thompson" +msgstr "" #. ~ Description for Thompson magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard 20-round magazine for the Thompson submachine gun." -msgstr "Uma revista padrão de 20 rounds para a submetralhadora Thompson." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "UMP45 magazine" -msgstr "Revista UMP45" +msgstr "" #. ~ Description for UMP45 magazine #: lang/json/MAGAZINE_from_json.py @@ -52354,13 +46536,12 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "USP .45 magazine" -msgstr "Revista USP .45" +msgstr "" #. ~ Description for USP .45 magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard capacity magazine for use with the H&K USP handgun." msgstr "" -"Um magazine de capacidade padrão para uso com a pistola H & K USP." #: lang/json/MAGAZINE_from_json.py msgid ".454 5-round speedloader" @@ -52375,19 +46556,17 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "H&K 4.6mm extended magazine" -msgstr "Compartimento estendido H & K 4.6mm" +msgstr "" #. ~ Description for H&K 4.6mm extended magazine #: lang/json/MAGAZINE_from_json.py msgid "" "An extended 40-round magazine for use with H&K's proprietary 4.6x30mm round." msgstr "" -" Uma revista estendida de 40 voltas para uso com a rodada de 4.6x30mm " -"daH& K." #: lang/json/MAGAZINE_from_json.py msgid "H&K 4.6mm magazine" -msgstr "Revista H & K 4.6mm" +msgstr "" #. ~ Description for H&K 4.6mm magazine #: lang/json/MAGAZINE_from_json.py @@ -52395,8 +46574,6 @@ msgid "" "A standard capacity 20-round magazine for use with H&K's proprietary " "4.6x30mm round." msgstr "" -" Um magazine de 20 rolos de capacidade padrão para uso com o ciclode4.6x30mm" -" da H & K." #: lang/json/MAGAZINE_from_json.py msgid ".460 6-round speedloader" @@ -52411,7 +46588,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "LW-12 magazine" -msgstr "Revista LW-12" +msgstr "" #. ~ Description for LW-12 magazine #: lang/json/MAGAZINE_from_json.py @@ -52422,19 +46599,17 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ammo belt .50 BMG" -msgstr "cinto de munição .50 BMG" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Barrett magazine" -msgstr "Revista Barrett" +msgstr "" #. ~ Description for Barrett magazine #: lang/json/MAGAZINE_from_json.py msgid "" "Standard 10-round box magazine for a Barrett M107A1 anti-materiel rifle." msgstr "" -" Revista de caixa padrão 10-redonda para um rifle anti- " -"materialBarrettM107A1." #: lang/json/MAGAZINE_from_json.py msgid ".500 5-round speedloader" @@ -52449,7 +46624,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AK-74M magazine" -msgstr "Revista AK-74M" +msgstr "" #. ~ Description for AK-74M magazine #: lang/json/MAGAZINE_from_json.py @@ -52457,12 +46632,10 @@ msgid "" "A standard magazine made for the AK-74M rifle, made of steel-reinforced " "polymer. Holds 30 rounds." msgstr "" -" Uma revista padrão feita para o fuzil AK-74M, feito de polímeroreforçadocom" -" aço. Detém 30 rodadas." #: lang/json/MAGAZINE_from_json.py msgid "AK-74M extended magazine" -msgstr "Revista estendida AK-74M" +msgstr "" #. ~ Description for AK-74M extended magazine #: lang/json/MAGAZINE_from_json.py @@ -52470,21 +46643,19 @@ msgid "" "A 45-round magazine compatible with the AK-74M rifle, though originally " "designed for the RPK-74 light machine gun." msgstr "" -" Um compartimento de 45 voltas compatível com o rifle AK-" -"74M,emboraoriginalmente projetado para a metralhadora leve RPK-74." #: lang/json/MAGAZINE_from_json.py msgid "FN-57 magazine" -msgstr "Revista FN-57" +msgstr "" #. ~ Description for FN-57 magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard capacity magazine for use with the FN Five-Seven." -msgstr "Um magazine de capacidade padrão para uso com o FN Five-Seven." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "FN-P90 magazine" -msgstr "Revista FN-P90" +msgstr "" #. ~ Description for FN-P90 magazine #: lang/json/MAGAZINE_from_json.py @@ -52492,38 +46663,32 @@ msgid "" "A factory issue translucent polymer box magazine that fits with the frame of" " the FN P90." msgstr "" -" Um compartimento de caixa de polímero translúcido de fábrica que " -"seencaixacom o quadro do FN P90." #: lang/json/MAGAZINE_from_json.py msgid "RMFB100 5x50mm extended magazine" -msgstr "RMFB100 5x50mm revista estendida" +msgstr "" #. ~ Description for RMFB100 5x50mm extended magazine #: lang/json/MAGAZINE_from_json.py msgid "A 100 round box magazine for use with 5x50mm flechette firearms." msgstr "" -" Um magazine de 100 caixas redondas para uso com armas de fogo " -"flechettede5x50mm." #: lang/json/MAGAZINE_from_json.py msgid "RMFB50 5x50mm magazine" -msgstr "Revista RMFB50 5x50mm" +msgstr "" #. ~ Description for RMFB50 5x50mm magazine #: lang/json/MAGAZINE_from_json.py msgid "A 50 round box magazine for use with 5x50mm flechette firearms." msgstr "" -" Uma revista de 50 caixas redondas para uso com armas de fogo " -"flechettede5x50mm." #: lang/json/MAGAZINE_from_json.py msgid "rifle clip - 7.62x39mm" -msgstr "clipe de rifle - 7.62x39mm" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AKM extended magazine" -msgstr "Revista estendida AKM" +msgstr "" #. ~ Description for AKM extended magazine #: lang/json/MAGAZINE_from_json.py @@ -52531,12 +46696,10 @@ msgid "" "A 40-round, 7.62x39mm magazine initially designed for the RPK but compatible" " with the AKM rifle." msgstr "" -" Um magazine de 40mm, 7.62x39mm, inicialmente projetado para o " -"RPK,mascompatível com o rifle AKM." #: lang/json/MAGAZINE_from_json.py msgid "AKM magazine" -msgstr "Revista AKM" +msgstr "" #. ~ Description for AKM magazine #: lang/json/MAGAZINE_from_json.py @@ -52544,110 +46707,96 @@ msgid "" "A standard 30-round magazine made for the AKM rifle, made of stamped sheet " "metal." msgstr "" -" Um compartimento padrão de 30 voltas feito para o rifle AKM, feito " -"demetalestampado." #: lang/json/MAGAZINE_from_json.py msgid "rifle clip - 7.62x54mmR" -msgstr "clip de carabina - 7.62x54mmR" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "PPSh 71-round drum magazine" -msgstr "Compartimento de tambor redondo PPSh 71" +msgstr "" #. ~ Description for PPSh 71-round drum magazine #: lang/json/MAGAZINE_from_json.py msgid "A high-capacity drum magazine for the PPSh-41." -msgstr "Um magazine de tambor de alta capacidade para o PPSh-41." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "PPSh 35-round magazine" -msgstr "Revista PPSh 35-round" +msgstr "" #. ~ Description for PPSh 35-round magazine #: lang/json/MAGAZINE_from_json.py msgid "A 35-round box magazine for the PPSh-41." -msgstr "Uma revista de 35 rounds para o PPSh-41." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Tokarev TT-33 magazine" -msgstr "Revista Tokarev TT-33" +msgstr "" #. ~ Description for Tokarev TT-33 magazine #: lang/json/MAGAZINE_from_json.py msgid "Standard 8-round magazine for Tokarev TT-33." -msgstr "Revista de 8-rodada padrão para Tokarev TT-33." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "RMGB100 8x40mm magazine" -msgstr "Revista RMGB100 8x40mm" +msgstr "" #. ~ Description for RMGB100 8x40mm magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A 100 round box magazine for use with Rivtech 8x40mm caseless firearms." msgstr "" -" Um magazine de 100 caixas redondas para uso com armas de fogo " -"semcaixaRivtech 8x40mm." #: lang/json/MAGAZINE_from_json.py msgid "RMGP10 8x40mm stick magazine" -msgstr "RMGP10 8x40mm vara revista" +msgstr "" #. ~ Description for RMGP10 8x40mm stick magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A 10 round stick magazine for use with Rivtech 8x40mm caseless firearms." msgstr "" -" Uma revista de 10 bastões redondos para uso com armas de fogo " -"semcaixaRivtech 8x40mm." #: lang/json/MAGAZINE_from_json.py msgid "RMGD250 8x40mm drum magazine" -msgstr "RMGD250 8x40mm tambor revista" +msgstr "" #. ~ Description for RMGD250 8x40mm drum magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A 250 round drum magazine for use with Rivtech 8x40mm caseless firearms." msgstr "" -" Uma revista de tambor redonda de 250 para uso com armas de fogo " -"semcaixaRivtech 8x40mm." #: lang/json/MAGAZINE_from_json.py msgid "RMGP25 8x40mm stick magazine" -msgstr "RMGP25 8x40mm vara revista" +msgstr "" #. ~ Description for RMGP25 8x40mm stick magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A 25 round stick magazine for use with Rivtech 8x40mm caseless firearms." msgstr "" -" Um compartimento de 25 bastões redondos para uso com armas de fogo " -"semcaixaRivtech 8x40mm." #: lang/json/MAGAZINE_from_json.py msgid "RMGB500 8x40mm drum magazine" -msgstr "Compartimento de tambor RMGB500 8x40mm" +msgstr "" #. ~ Description for RMGB500 8x40mm drum magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A 500 round drum magazine for use with Rivtech 8x40mm caseless firearms." msgstr "" -" Uma revista de 500 tambores redondos para uso com armas de " -"fogocaseirasRivtech 8x40mm." #: lang/json/MAGAZINE_from_json.py msgid "RMGB50 8x40mm magazine" -msgstr "Revista RMGB50 8x40mm" +msgstr "" #. ~ Description for RMGB50 8x40mm magazine #: lang/json/MAGAZINE_from_json.py msgid "A 50 round box magazine for use with Rivtech 8x40mm caseless firearms." msgstr "" -" Um magazine de 50 caixas redondas para uso com armas de fogocaseirasRivtech" -" 8x40mm." #: lang/json/MAGAZINE_from_json.py msgid "RMGS5 8x40mm speedloader" @@ -52673,7 +46822,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Calico magazine" -msgstr "Revista Calico" +msgstr "" #. ~ Description for Calico magazine #: lang/json/MAGAZINE_from_json.py @@ -52681,12 +46830,10 @@ msgid "" "A surprisingly compact 50-round helical magazine for use with the Calico " "M960 SMG." msgstr "" -" Um compartimento helicoidal surpreendentemente compacto de 50 voltasparauso" -" com o Calico M960 SMG." #: lang/json/MAGAZINE_from_json.py msgid "Glock extended magazine" -msgstr "Revista estendida Glock" +msgstr "" #. ~ Description for Glock extended magazine #: lang/json/MAGAZINE_from_json.py @@ -52694,12 +46841,10 @@ msgid "" "An extended 30-round polymer magazine for use with Glock compatible " "firearms." msgstr "" -" Um carregador de polímero estendido de 30 voltas para uso com armas " -"defogocompatíveis com Glock." #: lang/json/MAGAZINE_from_json.py msgid "Glock magazine" -msgstr "Revista Glock" +msgstr "" #. ~ Description for Glock magazine #: lang/json/MAGAZINE_from_json.py @@ -52707,52 +46852,46 @@ msgid "" "A compact light-weight polymer magazine for use with Glock compatible " "firearms." msgstr "" -" Um compartimento de polímero leve e compacto para uso com armas " -"defogocompatíveis com Glock." #: lang/json/MAGAZINE_from_json.py msgid "Glock 17 magazine - 17 rd" -msgstr "Revista Glock 17 - 17ª" +msgstr "" #. ~ Description for Glock 17 magazine - 17 rd #: lang/json/MAGAZINE_from_json.py msgid "Made for the Glock 17, this magazine holds 17 rounds." -msgstr "Feita para a Glock 17, esta revista tem 17 rodadas." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock 17 magazine - 22 rd" -msgstr "Revista Glock 17 - 22ª" +msgstr "" #. ~ Description for Glock 17 magazine - 22 rd #: lang/json/MAGAZINE_from_json.py msgid "Made for the Glock 17, this magazine holds 22 rounds." -msgstr "Feita para a Glock 17, esta revista tem 22 rodadas." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Glock Drum magazine - 50 rd" -msgstr "Revista Glock Drum - 50 rd" +msgstr "" #. ~ Description for Glock Drum magazine - 50 rd #: lang/json/MAGAZINE_from_json.py msgid "Made to fit most Glock pistols. This drum magazine holds 50 rounds." msgstr "" -" Feito para caber a maioria das pistolas Glock. Esta revista de tambor " -"tem50rodadas." #: lang/json/MAGAZINE_from_json.py msgid "Glock Drum magazine - 100 rd" -msgstr "Revista Glock Drum - 100 rd" +msgstr "" #. ~ Description for Glock Drum magazine - 100 rd #: lang/json/MAGAZINE_from_json.py msgid "Made to fit most Glock pistols. This drum magazine holds 100 rounds." msgstr "" -" Feito para caber a maioria das pistolas Glock. Esta revista de tambortem100" -" voltas." #: lang/json/MAGAZINE_from_json.py msgid "LW-21 magazine" -msgstr "Revista LW-21" +msgstr "" #. ~ Description for LW-21 magazine #: lang/json/MAGAZINE_from_json.py @@ -52760,13 +46899,10 @@ msgid "" "A 21-round polymer magazine for Leadworks LLC 9x19mm firearms. Lightweight " "and reliable but somewhat more difficult to reload." msgstr "" -" Um magazine de polímero de 21 voltas para as armas de fogo " -"LeadworksLLC9x19mm. Leve e confiável, mas um pouco mais difícil de " -"recarregar." #: lang/json/MAGAZINE_from_json.py msgid "M9 extended magazine" -msgstr "M9 revista estendida" +msgstr "" #. ~ Description for M9 extended magazine #: lang/json/MAGAZINE_from_json.py @@ -52774,12 +46910,10 @@ msgid "" "A 30-round extended magazine compatible with both the M9 handgun as well as " "some modern carbines." msgstr "" -" Um compartimento estendido de 30 voltas compatível tanto com a " -"pistolaM9quanto com algumas modernas carabinas." #: lang/json/MAGAZINE_from_json.py msgid "M9 magazine" -msgstr "Lojas M9" +msgstr "" #. ~ Description for M9 magazine #: lang/json/MAGAZINE_from_json.py @@ -52787,12 +46921,10 @@ msgid "" "A military issue 15-round box magazine originally intended for use with the " "Beretta M9 handgun." msgstr "" -" Uma revista militar de 15 rounds originalmente destinada ao uso comapistola" -" Beretta M9." #: lang/json/MAGAZINE_from_json.py msgid "MP5 extended magazine" -msgstr "MP5 estendeu revista" +msgstr "" #. ~ Description for MP5 extended magazine #: lang/json/MAGAZINE_from_json.py @@ -52800,23 +46932,19 @@ msgid "" "An drum magazine for use with the H&K MP5 SMG. Much greater capacity but " "less reliable the factory specification magazine." msgstr "" -" Um magazine de bateria para uso com o SMG H & K MP5. " -"Muitomaiorcapacidade, mas menos confiável a revista de especificação de " -"fábrica." #: lang/json/MAGAZINE_from_json.py msgid "MP5 magazine" -msgstr "Revista MP5" +msgstr "" #. ~ Description for MP5 magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard capacity curved magazine for use with the H&K MP5 SMG." msgstr "" -" Um magazine curvo de capacidade padrão para uso com o SMG H & K MP5." #: lang/json/MAGAZINE_from_json.py msgid "STEN magazine" -msgstr "Revista STEN" +msgstr "" #. ~ Description for STEN magazine #: lang/json/MAGAZINE_from_json.py @@ -52824,13 +46952,10 @@ msgid "" "A double-column, single-feed 9x19mm magazine used by the STEN submachine " "gun, based off the magazines for the German MP-28 and later MP-40." msgstr "" -" Um magazine de 9x19mm de alimentação única, com coluna dupla, " -"usadopelasubmetralhadora STEN, baseado nas revistas do MP-28 alemão " -"eposteriorMP-40." #: lang/json/MAGAZINE_from_json.py msgid "makeshift STEN magazine" -msgstr "revista improvisada STEN" +msgstr "" #. ~ Description for makeshift STEN magazine #: lang/json/MAGAZINE_from_json.py @@ -52838,12 +46963,10 @@ msgid "" "An improvised magazine designed to be compatible with the STEN submachine " "gun, with a simplified feed system." msgstr "" -" Uma revista improvisada concebida para ser compatível com " -"asubmetralhadoraSTEN, com um sistema simplificado de alimentação." #: lang/json/MAGAZINE_from_json.py msgid "TEC-9 magazine" -msgstr "Revista TEC-9" +msgstr "" #. ~ Description for TEC-9 magazine #: lang/json/MAGAZINE_from_json.py @@ -52851,12 +46974,10 @@ msgid "" "A cheap and somewhat unreliable 32-round steel box magazine for use with the" " TEC-9 SMG." msgstr "" -" Um magazine de caixa de aço de 32-rodadas barato e pouco confiável " -"parausocom o TEC-9 SMG." #: lang/json/MAGAZINE_from_json.py msgid "USP 9mm magazine" -msgstr "Revista USP 9mm" +msgstr "" #. ~ Description for USP 9mm magazine #: lang/json/MAGAZINE_from_json.py @@ -52864,17 +46985,15 @@ msgid "" "A factory specification 15-round box magazine for use with the dependable " "H&K USP 9x19mm pistol." msgstr "" -" Uma revista de fábrica de 15 rounds para uso com a confiável pistola " -"H&K USP 9x19mm." #: lang/json/MAGAZINE_from_json.py msgid "UZI magazine" -msgstr "Revista UZI" +msgstr "" #. ~ Description for UZI magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard 32-round steel box magazine for use with the UZI SMG." -msgstr "Um magazine padrão de caixa redonda de aço para uso com o SMG UZI." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Kel-Tec PF-9 magazine" @@ -52896,23 +47015,22 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Makarov PM magazine" -msgstr "Revista Makarov PM" +msgstr "" #. ~ Description for Makarov PM magazine #: lang/json/MAGAZINE_from_json.py msgid "The standard magazine for the Pistolet Makarova, holds 8 rounds." -msgstr "A revista padrão para o Pistolet Makarova, detém 8 rodadas." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Skorpion Vz. 82 magazine" -msgstr "Skorpion Vz. Revista 82" +msgstr "" #. ~ Description for Skorpion Vz. 82 magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A standard 20-round magazine for the Skorpion Vz. 82, in 9x18mm Makarov." msgstr "" -" Uma revista padrão de 20 rounds para o Skorpion Vz. 82, em 9x18mm Makarov." #: lang/json/MAGAZINE_from_json.py msgid "pressurized chemical tank" @@ -52927,17 +47045,16 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "pressurized fuel tank" -msgstr "tanque de combustível pressurizado" +msgstr "" #. ~ Description for pressurized fuel tank #: lang/json/MAGAZINE_from_json.py msgid "A pressurized 3L canister designed to feed a flamethrower." msgstr "" -" Um recipiente 3L pressurizado projetado para alimentar um lança-chamas." #: lang/json/MAGAZINE_from_json.py msgid "small pressurized fuel tank" -msgstr "pequeno tanque de combustível pressurizado" +msgstr "" #. ~ Description for small pressurized fuel tank #: lang/json/MAGAZINE_from_json.py @@ -52945,12 +47062,10 @@ msgid "" "A pressurized 0.5L canister built for use with a small auxiliary " "flamethrower." msgstr "" -" Um canister de 0,5 L pressurizado construído para uso com um pequeno lança-" -" chamas auxiliar." #: lang/json/MAGAZINE_from_json.py msgid "RM450-2 fuel canister" -msgstr "Reservatório de combustível RM450-2" +msgstr "" #. ~ Description for RM450-2 fuel canister #: lang/json/MAGAZINE_from_json.py @@ -52958,12 +47073,10 @@ msgid "" "A 2L pressurized steel canister with a valve designed for the RM451's feed " "system." msgstr "" -" Um recipiente de aço pressurizado de 2L com uma válvula projetada " -"paraosistema de alimentação do RM451." #: lang/json/MAGAZINE_from_json.py msgid "RM450-4 fuel canister" -msgstr "Reservatório de combustível RM450-4" +msgstr "" #. ~ Description for RM450-4 fuel canister #: lang/json/MAGAZINE_from_json.py @@ -52971,12 +47084,10 @@ msgid "" "A 4L pressurized steel canister with a valve designed for the RM451's feed " "system." msgstr "" -" Um recipiente de aço pressurizado de 4 litros com uma válvula " -"projetadaparao sistema de alimentação do RM451." #: lang/json/MAGAZINE_from_json.py msgid "nail rifle magazine" -msgstr "revista de rifle de prego" +msgstr "" #. ~ Description for nail rifle magazine #: lang/json/MAGAZINE_from_json.py @@ -52985,33 +47096,26 @@ msgid "" "can, spring and some duct tape it is awkward to reload and not especially " "reliable." msgstr "" -" Uma revista improvisada para uso com um rifle de prego. Pouco mais " -"queumalata, uma mola e uma fita adesiva, é desajeitado recarregar e " -"nãoéespecialmente confiável." #: lang/json/MAGAZINE_from_json.py msgid "Saiga-12 box magazine" -msgstr "Revista Saiga-12 box" +msgstr "" #. ~ Description for Saiga-12 box magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A removable plastic magazine for the Saiga-12 shotgun. Holds 10 rounds." msgstr "" -" Uma revista de plástico removível para a espingarda Saiga-12. " -"Detém10rodadas." #: lang/json/MAGAZINE_from_json.py msgid "Saiga-12 drum magazine" -msgstr "Saiga-12 Road Stores" +msgstr "" #. ~ Description for Saiga-12 drum magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A removable plastic magazine for the Saiga-12 shotgun. Holds 30 rounds." msgstr "" -" Uma revista de plástico removível para a espingarda Saiga-12. " -"Detém30rodadas." #: lang/json/MAGAZINE_from_json.py msgid "shotshell belt" @@ -53026,7 +47130,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "small welding tank" -msgstr "tanque de soldagem pequeno" +msgstr "" #. ~ Description for small welding tank #: lang/json/MAGAZINE_from_json.py @@ -53034,13 +47138,10 @@ msgid "" "A compact steel cylinder designed for holding pressurized welding gases. It" " is marked with several faded and now unreadable symbols." msgstr "" -" Um cilindro de aço compacto projetado para conter gases " -"desoldagempressurizados. Está marcado com vários símbolos desbotados " -"eagorailegíveis." #: lang/json/MAGAZINE_from_json.py msgid "welding tank" -msgstr "tanque de soldagem" +msgstr "" #. ~ Description for welding tank #: lang/json/MAGAZINE_from_json.py @@ -53048,9 +47149,6 @@ msgid "" "A large steel cylinder designed for holding pressurized welding gases. It " "is marked with several faded and now unreadable symbols." msgstr "" -" Um grande cilindro de aço projetado para conter gases " -"desoldagempressurizados. Está marcado com vários símbolos desbotados " -"eagorailegíveis." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "car battery" @@ -53062,8 +47160,6 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "A 12v lead-acid battery used to power car electrical systems." msgstr "" -" bateria do carroUma bateria de chumbo-ácido de 12v usada " -"paraalimentarsistemas elétricos de automóveis." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "motorbike battery" @@ -53076,8 +47172,6 @@ msgstr[1] "" msgid "" "A 12v lead-acid battery used to power smaller vehicles' electrical systems." msgstr "" -" bateria de motocicletaUma bateria de chumbo-ácido de 12V usadaparaalimentar" -" sistemas elétricos de veículos menores." #: lang/json/MAGAZINE_from_json.py msgid "small motorbike battery" @@ -53102,8 +47196,6 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "A medium storage battery containing multiple lithium ion cells." msgstr "" -" bateria de armazenamento médiaUma bateria de armazenamento " -"médiacontendovárias células de íon de lítio." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "small storage battery" @@ -53117,9 +47209,6 @@ msgid "" "A small storage battery created with pre-Cataclysm lithium ion technology. " "Useful for crafting." msgstr "" -" pequena bateria de armazenamentoUma pequena bateria de " -"armazenamentocriadacom a tecnologia de íon de lítio pré-cataclismo. Útil " -"para elaborar." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "storage battery" @@ -53134,10 +47223,6 @@ msgid "" "installed into a storage battery case for easy removal from a vehicle, or " "just welded straight in." msgstr "" -" bateria de armazenamentoUma grande bateria de armazenamento " -"contendomuitascélulas de íon de lítio. Poderia ser instalado em uma caixa " -"debateria dearmazenamento para fácil remoção de um veículo ou " -"apenassoldadadiretamente." #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "large storage battery" @@ -53195,7 +47280,7 @@ msgstr[1] "" #: lang/json/MAGAZINE_from_json.py msgid "CW-24 auto-magazine" -msgstr "Revista auto CW-24" +msgstr "" #. ~ Description for CW-24 auto-magazine #: lang/json/MAGAZINE_from_json.py @@ -53203,12 +47288,10 @@ msgid "" "An advanced automagazine for the CW-24 rifle. Like the SVS magazines, it " "uses microrobotics to load its cartridges." msgstr "" -" Uma auto-revista avançada para o rifle CW-24. Como as revistas SVS, " -"eleusamicrorobótica para carregar seus cartuchos." #: lang/json/MAGAZINE_from_json.py msgid "CW-24 extended magazine" -msgstr "CW-24 revista estendida" +msgstr "" #. ~ Description for CW-24 extended magazine #: lang/json/MAGAZINE_from_json.py @@ -53216,22 +47299,19 @@ msgid "" "An extended auto-magazine for the CW-24 rifle. Like the SVS magazines, it " "uses microrobotics to load its cartridges." msgstr "" -" Uma auto-revista estendida para o rifle CW-24. Como as revistas SVS, " -"eleusamicrorobótica para carregar seus cartuchos." #: lang/json/MAGAZINE_from_json.py msgid "CWD-63 extended magazine" -msgstr "CWD-63 revista estendida" +msgstr "" #. ~ 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 "" -" Um compartimento barato de 10 rounds para a CWD-63. Não é tão confiável." #: lang/json/MAGAZINE_from_json.py msgid "CWD-63 magazine" -msgstr "Revista CWD-63" +msgstr "" #. ~ Description for CWD-63 magazine #: lang/json/MAGAZINE_from_json.py @@ -53239,12 +47319,10 @@ msgid "" "Since it's created for the .308 round, it doesn't need the curved shape of " "the original magazine." msgstr "" -" Desde que foi criado para a rodada 0,308, não precisa da forma " -"curvadarevista original." #: lang/json/MAGAZINE_from_json.py msgid "SVS-24 robodrum" -msgstr "SVS-24 robodrum" +msgstr "" #. ~ Description for SVS-24 robodrum #: lang/json/MAGAZINE_from_json.py @@ -53252,12 +47330,10 @@ msgid "" "An advanced 135-round drum magazine. Like the auto-magazine, it loads " "cartridges using microrobotics." msgstr "" -" Uma revista de tambor avançada de 135 voltas. Como a revista automática, " -"elacarrega cartuchos usando microrrobôs." #: lang/json/MAGAZINE_from_json.py msgid "SVS-24 robomag" -msgstr "Robomag SVS-24" +msgstr "" #. ~ Description for SVS-24 robomag #: lang/json/MAGAZINE_from_json.py @@ -53265,9 +47341,6 @@ msgid "" "An advanced 42-round auto-magazine. Unlike previous generations of " "magazines, this one uses microrobotics to load cartridges." msgstr "" -" Uma revista automática avançada de 42 rodadas. Ao contrário " -"dasgeraçõesanteriores de revistas, esta usa microrobótica para " -"carregarcartuchos." #: lang/json/MAGAZINE_from_json.py msgid ".454 6-round speedloader" @@ -53293,7 +47366,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "Eagle 1776 magazine" -msgstr "Revista Eagle 1776" +msgstr "" #. ~ Description for Eagle 1776 magazine #: lang/json/MAGAZINE_from_json.py @@ -53301,8 +47374,6 @@ msgid "" "An american-made box magazine, designed to deliver 24 .44 Magnum cartridges " "to the Eagle 1776." msgstr "" -" Uma revista de caixa feita nos EUA, projetada para entregar " -"24cartuchos24,44 Magnum à Eagle 1776." #: lang/json/MAGAZINE_from_json.py msgid "revolver speedloader" @@ -53316,23 +47387,21 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "imported rifle magazine" -msgstr "revista de rifle importado" +msgstr "" #. ~ Description for imported rifle magazine #: lang/json/MAGAZINE_from_json.py msgid "An uncommon 30-round magazine made for imported automatic rifles." msgstr "" -" Uma revista incomum de 30 rounds feita para rifles automáticos importados." #: lang/json/MAGAZINE_from_json.py msgid "imported drum magazine" -msgstr "magazine de tambor importado" +msgstr "" #. ~ Description for imported drum magazine #: lang/json/MAGAZINE_from_json.py msgid "An uncommon 40-round drum magazine for imported automatic rifles." msgstr "" -" Um invulgar tambor de 40 cilindros para os fuzis automáticos importados." #. ~ Description for ammo belt #: lang/json/MAGAZINE_from_json.py @@ -53340,8 +47409,6 @@ msgid "" "An belt of light rifle ammunition consisting of metal linkages which " "disintegrate upon firing." msgstr "" -" Um cinto de munição de rifle leve consistindo de ligações metálicas " -"quesedesintegram quando disparadas." #. ~ Description for ammo belt #: lang/json/MAGAZINE_from_json.py @@ -53349,8 +47416,6 @@ msgid "" "An ammo belt designed for heavier machineguns consisting of metal linkages " "which disintegrate upon firing." msgstr "" -" Um cinto de munição projetado para metralhadoras pesadas " -"consistindodeligações metálicas que se desintegram após a queima." #. ~ Description for ammo belt #: lang/json/MAGAZINE_from_json.py @@ -53358,45 +47423,38 @@ msgid "" "An ammo belt designed for mounted machineguns consisting of metal linkages " "which disintegrate upon firing." msgstr "" -" Um cinto de munição projetado para metralhadoras montadas que " -"consistememligações metálicas que se desintegram após a queima." #: lang/json/MAGAZINE_from_json.py msgid "advanced SMG magazine" -msgstr "revista avançada SMG" +msgstr "" #. ~ Description for advanced SMG magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A surprisingly compact 50-round magazine for use with the advanced SMG." msgstr "" -" Um compartimento surpreendentemente compacto de 50 rodadas para uso comoSMG" -" avançado." #: lang/json/MAGAZINE_from_json.py msgid "extended pistol magazine" -msgstr "revista de pistola estendida" +msgstr "" #. ~ Description for extended pistol magazine #: lang/json/MAGAZINE_from_json.py msgid "An extended 30-round magazine for use with semi-automatic pistols." msgstr "" -" Uma revista estendida de 30 rounds para uso com pistolas semi-automáticas." #: lang/json/MAGAZINE_from_json.py msgid "pistol magazine" -msgstr "revistas de armas" +msgstr "" #. ~ Description for pistol magazine #: lang/json/MAGAZINE_from_json.py msgid "An factory issue 15-round magazine for use with semi-automatic pistols" msgstr "" -" Uma revista de 15 rodadas de emissão de fábrica para uso com pistolas semi-" -" automáticas" #: lang/json/MAGAZINE_from_json.py msgid "extended SMG magazine" -msgstr "revista SMG estendida" +msgstr "" #. ~ Description for extended SMG magazine #: lang/json/MAGAZINE_from_json.py @@ -53404,41 +47462,37 @@ msgid "" "A 50-round drum magazine for use with submachineguns. Much greater capacity" " but less reliable than factory specification magazines." msgstr "" -" Um magazine de tambor de 50 rounds para uso com submachineguns. " -"Muitomaiorcapacidade, mas menos confiável do que as revistas de " -"especificaçãodefábrica." #: lang/json/MAGAZINE_from_json.py msgid "submachinegun magazine" -msgstr "revista submachinegun" +msgstr "" #. ~ Description for submachinegun magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard capacity 30-round magazine for use with submachineguns." msgstr "" -" Uma revista de capacidade padrão 30 rodada para uso com submachineguns." #: lang/json/MAGAZINE_from_json.py msgid "battle rifle magazine" -msgstr "revista de rifle de batalha" +msgstr "" #. ~ Description for battle rifle magazine #: lang/json/MAGAZINE_from_json.py msgid "A standard 20-round magazine for military issue battle rifles." -msgstr "Uma revista padrão de 20 rounds para rifles de batalha militares." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "extended battle rifle magazine" -msgstr "revista de rifle de batalha estendida" +msgstr "" #. ~ Description for extended battle rifle magazine #: lang/json/MAGAZINE_from_json.py msgid "An extended 30-round magazine for military issue battle rifles." -msgstr "Uma revista estendida de 30 rounds para rifles de batalha militares." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "small light rifle magazine" -msgstr "revista pequena rifle de luz" +msgstr "" #. ~ Description for small light rifle magazine #: lang/json/MAGAZINE_from_json.py @@ -53446,21 +47500,19 @@ msgid "" "A compact 10-round magazine commonly usable with both semi-automatic and " "automatic rifles." msgstr "" -" Compartimento compacto de 10 voltas usualmente utilizável com rifles semi- " -"automáticos e automáticos." #: lang/json/MAGAZINE_from_json.py msgid "light rifle magazine" -msgstr "revista leve rifle" +msgstr "" #. ~ Description for light rifle magazine #: lang/json/MAGAZINE_from_json.py msgid "A 30-round box magazines for use with automatic rifles." -msgstr "Uma caixa de 30 rounds para uso com rifles automáticos." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light rifle drum magazine" -msgstr "revista leve tambor rifle" +msgstr "" #. ~ Description for light rifle drum magazine #: lang/json/MAGAZINE_from_json.py @@ -53468,12 +47520,10 @@ msgid "" "A 50-round magazine with a bulky green drum for use with automatic rifles " "and machine guns." msgstr "" -" Uma revista de 50 rounds com um tambor verde volumoso para uso " -"comriflesautomáticos e metralhadoras." #: lang/json/MAGAZINE_from_json.py msgid "antimateriel rifle magazine" -msgstr "revista rifle antimateriel" +msgstr "" #. ~ Description for antimateriel rifle magazine #: lang/json/MAGAZINE_from_json.py @@ -53481,20 +47531,16 @@ msgid "" "A 10-round magazine which holds heavy rifle ammo for use with an " "antimateriel rifle" msgstr "" -" Uma revista de 10 rounds que contém munição pesada de rifle para uso " -"comumrifle antimateriel" #: lang/json/MAGAZINE_from_json.py msgid "magnum pistol magazine" -msgstr "revista magnum pistola" +msgstr "" #. ~ Description for magnum pistol magazine #: lang/json/MAGAZINE_from_json.py msgid "" "A 7-round magazine which holds revolver ammo for use with a magnum pistol" msgstr "" -" Uma revista de 7 rounds que contém munição de revólver para uso " -"comumapistola magnum" #: lang/json/MAGAZINE_from_json.py msgid "small mana crystal" @@ -53511,11 +47557,11 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "30x113mm ammo belt" -msgstr "Cinto de munição 30x113mm" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "gelectrode" -msgstr "gelectrodo" +msgstr "" #. ~ Description for gelectrode #: lang/json/MAGAZINE_from_json.py @@ -53526,15 +47572,10 @@ msgid "" "sources, but doing so renders it inactive. It seems pliable enough to pull " "apart..." msgstr "" -" Um mistério biológico, esta bolha evoluiu a capacidade de " -"gerareletricidadelentamente através de algum processo desconhecido. Emite " -"umbrilho baixo efosforescente ao fazê-lo. Também é capaz de " -"armazenareletricidade de outrasfontes, mas isso o torna inativo. Parece " -"flexível osuficiente para separar..." #: lang/json/MAGAZINE_from_json.py msgid "BB hopper" -msgstr "Saltos do BB" +msgstr "" #. ~ Description for BB hopper #. ~ Description for pebble hopper @@ -53545,14 +47586,10 @@ msgid "" "small round shot into the weapon's chamber below. It is not very reliable, " "but quick to reload." msgstr "" -" Uma revista improvisada para uma arma montada em veículo. Uma caixa " -"demetalsimples com alguns trilhos de guia de plástico, ele age como um " -"funildealimentação de gravidade para soltar um pequeno tiro redondo na " -"câmaradaarma abaixo. Não é muito confiável, mas rápido para recarregar." #: lang/json/MAGAZINE_from_json.py msgid "bolt hopper" -msgstr "saltos de ferrolho" +msgstr "" #. ~ Description for bolt hopper #: lang/json/MAGAZINE_from_json.py @@ -53562,14 +47599,10 @@ msgid "" "crossbow bolt into the weapon below. It is awkward to reload and not " "especially reliable." msgstr "" -" Uma revista improvisada para uma besta montada em veículo. Uma caixademetal" -" simples com alguns trilhos de guia de plástico, ele age como umfunilde " -"alimentação de gravidade para soltar um parafuso de besta naarmaabaixo. É " -"desajeitado recarregar e não especialmente confiável." #: lang/json/MAGAZINE_from_json.py msgid "canister rack" -msgstr "rack de vasilha" +msgstr "" #. ~ Description for canister rack #: lang/json/MAGAZINE_from_json.py @@ -53579,41 +47612,37 @@ msgid "" "heavy canister into the weapon below. It is awkward to reload and not " "especially reliable." msgstr "" -" Uma revista improvisada para uma arma montada em veículo. Uma caixa " -"demetalsimples com alguns trilhos de guia de plástico, ele atua como umfunil" -" dealimentação de gravidade para soltar um canister pesado na armaabaixo. " -"Édesajeitado recarregar e não especialmente confiável." #: lang/json/MAGAZINE_from_json.py msgid "pebble hopper" -msgstr "funil de seixo" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "AF2011A1 magazine" -msgstr "Revista AF2011A1" +msgstr "" #. ~ Description for AF2011A1 magazine #: lang/json/MAGAZINE_from_json.py msgid "Two magazines attached to a common base. Unique to the AF2011A1." -msgstr "Duas revistas ligadas a uma base comum. Exclusivo para o AF2011A1." +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "M1991A1 .38 Super magazine" -msgstr "M1991A1 .38 Super revista" +msgstr "" #. ~ Description for M1991A1 .38 Super magazine #: lang/json/MAGAZINE_from_json.py msgid "A 9-round magazine for the M1991A1 .38 Super pistol." -msgstr "Uma revista de 9 rounds para a pistola M1991A1 .38 Super." +msgstr "" #: lang/json/MOD_INFO_from_json.py src/color.cpp src/color.cpp msgid "default" -msgstr "padrão" +msgstr "" #. ~ Description for default #: lang/json/MOD_INFO_from_json.py msgid "contains all the mods recommended by the developers" -msgstr "contém todos os mods recomendados pelos desenvolvedores" +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Aftershock" @@ -53626,7 +47655,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Animatronic Monsters" -msgstr "Monstros Animatronic" +msgstr "" #. ~ Description for Animatronic Monsters #: lang/json/MOD_INFO_from_json.py @@ -53634,8 +47663,6 @@ msgid "" "Adds a chain of bankrupt pizzerias, with still functioning animatronics " "inside." msgstr "" -" Adiciona uma cadeia de pizzarias falidas, com animatronics " -"aindaemfuncionamento dentro." #: lang/json/MOD_INFO_from_json.py msgid "Battery Migration for Existing Games" @@ -53648,12 +47675,12 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Boats" -msgstr "Barcos" +msgstr "" #. ~ Description for Boats #: lang/json/MOD_INFO_from_json.py msgid "Adds boats." -msgstr "Adiciona barcos." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "C.R.I.T Expansion Mod" @@ -53668,7 +47695,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Craftable Gun Pack" -msgstr "Pacote de armas artesanais" +msgstr "" #. ~ Description for Craftable Gun Pack #: lang/json/MOD_INFO_from_json.py @@ -53676,17 +47703,15 @@ msgid "" "Adds more craftable firearms, and gunpowder. WARNING: Breaks intended " "balance." msgstr "" -" Adiciona mais armas de fogo artesanais e pólvora. AVISO: Interrompe " -"osaldopretendido." #: lang/json/MOD_INFO_from_json.py msgid "Crazy Cataclysm" -msgstr "Cataclismo Louco" +msgstr "" #. ~ Description for Crazy Cataclysm #: lang/json/MOD_INFO_from_json.py msgid "Want a little crazy in your Cataclysm? Try this one." -msgstr "Quer um pouco louco no seu Cataclismo? Tente este." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "[DP_MOD] Indicators: Chesthole" @@ -53695,7 +47720,7 @@ msgstr "" #. ~ Description for [DP_MOD] Indicators: Chesthole #: lang/json/MOD_INFO_from_json.py msgid "Changes interface indicators to Chesthole version." -msgstr "Muda os indicadores da interface para a versão do Chesthole." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "[DP_MOD] Indicators: REMIX" @@ -53706,7 +47731,6 @@ msgstr "" msgid "" "Changes interface indicators to remix of Xotto, Chesthole and DeadPeople." msgstr "" -" Muda os indicadores de interface para remixar Xotto, Chesthole eDeadPeople." #: lang/json/MOD_INFO_from_json.py msgid "[DP_MOD] Hide DEBUG" @@ -53751,11 +47775,11 @@ msgstr "" #. ~ Description for [DP_MOD] Indicators: Xotto #: lang/json/MOD_INFO_from_json.py msgid "Changes interface indicators to Xotto version." -msgstr "Altera os indicadores de interface para a versão Xotto." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Folding Parts pack" -msgstr "Pacote de peças dobráveis" +msgstr "" #. ~ Description for Folding Parts pack #: lang/json/MOD_INFO_from_json.py @@ -53763,21 +47787,19 @@ msgid "" "Makes solar panels and several other parts foldable, and adds foldable " "quarterboards." msgstr "" -" Torna os painéis solares e várias outras peças dobráveis eacrescentapainéis" -" dobráveis." #: lang/json/MOD_INFO_from_json.py msgid "DinoMod" -msgstr "DinoMod" +msgstr "" #. ~ Description for DinoMod #: lang/json/MOD_INFO_from_json.py msgid "Adds dinosaurs." -msgstr "Adiciona dinossauros." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Icecoon's Arsenal" -msgstr "Arsenal de Icecoon" +msgstr "" #. ~ Description for Icecoon's Arsenal #: lang/json/MOD_INFO_from_json.py @@ -53785,30 +47807,28 @@ msgid "" "For those gun nuts. Don't have enough near-future firearms in your life? " "Add this mod today!" msgstr "" -" Para aquelas porcas de arma. Não tem armas de fogo do " -"futuropróximosuficientes em sua vida? Adicione este mod hoje!" #: lang/json/MOD_INFO_from_json.py msgid "Fast Zombies" -msgstr "Zumbis rápidos" +msgstr "" #. ~ Description for Fast Zombies #: lang/json/MOD_INFO_from_json.py msgid "Doubles zombie speed." -msgstr "Duplica a velocidade dos zumbis." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "DeadLeaves' Fictional Guns" -msgstr "Armas fictícias de DeadLeaves" +msgstr "" #. ~ Description for DeadLeaves' Fictional Guns #: lang/json/MOD_INFO_from_json.py msgid "Adds a bunch of rare, fictional weapons." -msgstr "Adiciona um monte de armas raras e fictícias." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Filthy Clothing" -msgstr "Roupas imundas" +msgstr "" #. ~ Description for Filthy Clothing #: lang/json/MOD_INFO_from_json.py @@ -53816,12 +47836,10 @@ msgid "" "Worn dirty clothing (dropped by zombies) will cause morale penalties and, if" " hit in combat, infections." msgstr "" -" Roupas sujas gastas (derrubadas por zumbis) causarão penas de moral e, " -"seatingidas em combate, infecções." #: lang/json/MOD_INFO_from_json.py msgid "Fuji's More Buildings" -msgstr "Mais edifícios do Fuji" +msgstr "" #. ~ Description for Fuji's More Buildings #: lang/json/MOD_INFO_from_json.py @@ -53829,12 +47847,10 @@ msgid "" "Adds more buildings and more variations to existing buildings. (Requires " "More Locations)" msgstr "" -" Adiciona mais edifícios e mais variações aos edifícios " -"existentes.(Requermais locais)" #: lang/json/MOD_INFO_from_json.py msgid "Generic Guns" -msgstr "Armas genéricas" +msgstr "" #. ~ Description for Generic Guns #: lang/json/MOD_INFO_from_json.py @@ -53842,8 +47858,6 @@ msgid "" "Replaces guns and ammo with generic types. Warning: can cause issues with " "other gun mods." msgstr "" -" Substitui armas e munições por tipos genéricos. Aviso: pode " -"causarproblemascom outros mods de armas." #: lang/json/MOD_INFO_from_json.py msgid "Garden Pots" @@ -53889,14 +47903,12 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Manual Bionic Installation" -msgstr "Instalação Biônica Manual" +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 "" -" Permite que os CBMs sejam instalados manualmente. Pares bem " -"comAutodocseguro." #: lang/json/MOD_INFO_from_json.py msgid "Medieval and Historic Classes and Shields" @@ -53911,7 +47923,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Modular Turrets" -msgstr "Torres modulares" +msgstr "" #. ~ Description for Modular Turrets #: lang/json/MOD_INFO_from_json.py @@ -53919,12 +47931,10 @@ msgid "" "Gives turrets swappable firearm modules, which can be reclaimed from broken " "robots." msgstr "" -" Fornece módulos de arma de fogo intercambiáveis, que podem serrecuperadosde" -" robôs quebrados." #: lang/json/MOD_INFO_from_json.py msgid "More Locations" -msgstr "Mais locais" +msgstr "" #. ~ Description for More Locations #: lang/json/MOD_INFO_from_json.py @@ -53932,13 +47942,10 @@ msgid "" "Adds new Z-level buildings and dungeons. Still unpolished. Before " "generating a world, you can remove subfolders to nix unwanted locations." msgstr "" -" Adiciona novos edifícios e masmorras de nível Z. Ainda não polido. " -"Antesdegerar um mundo, você pode remover subpastas para " -"excluirlocaisindesejados." #: lang/json/MOD_INFO_from_json.py msgid "More Survival Tools" -msgstr "Mais ferramentas de sobrevivência" +msgstr "" #. ~ Description for More Survival Tools #: lang/json/MOD_INFO_from_json.py @@ -53946,21 +47953,19 @@ msgid "" "For those who prefer being innawoods. Adds several tools, various recipes " "additions/tweaks, plus two new professions." msgstr "" -" Para aqueles que preferem ser innawoods. Adiciona várias ferramentas, " -"váriasadições / ajustes de receitas, além de duas novas profissões." #: lang/json/MOD_INFO_from_json.py msgid "Mundane Zombies" -msgstr "Zumbis mundanos" +msgstr "" #. ~ Description for Mundane Zombies #: lang/json/MOD_INFO_from_json.py msgid "Removes all special zombies from the game." -msgstr "Remove todos os zumbis especiais do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Mutant NPCs" -msgstr "NPCs Mutantes" +msgstr "" #. ~ Description for Mutant NPCs #: lang/json/MOD_INFO_from_json.py @@ -53968,33 +47973,29 @@ msgid "" "NPCs wandering the wasteland will occasionally have mutations --- your foes " "included. Beware!" msgstr "" -" NPCs vagando pelo terreno baldio ocasionalmente terão mutações " -"---seusinimigos incluídos. Cuidado!" #: lang/json/MOD_INFO_from_json.py msgid "NPC traits" -msgstr "Traços de NPC" +msgstr "" #. ~ Description for NPC traits #: lang/json/MOD_INFO_from_json.py msgid "" "Add an NPC class that spawns with starting traits, like the player does." msgstr "" -" Adicione uma classe NPC que gera com características iniciais, comoojogador" -" faz." #: lang/json/MOD_INFO_from_json.py msgid "Mythological Replicas" -msgstr "Réplicas Mitológicas" +msgstr "" #. ~ Description for Mythological Replicas #: lang/json/MOD_INFO_from_json.py msgid "Adds recipes for replicas of mythological weapons." -msgstr "Adiciona receitas para réplicas de armas mitológicas." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Beta National Guard Camp" -msgstr "Acampamento da Guarda Nacional Beta" +msgstr "" #. ~ Description for Beta National Guard Camp #: lang/json/MOD_INFO_from_json.py @@ -54002,39 +48003,37 @@ msgid "" "Help test the national guard camp before inclusion into the base game. " "Provide feedback in the thread under 'The Lab'" msgstr "" -" Ajude a testar o acampamento da guarda nacional antes de incluí-lo " -"nojogobase. Forneça comentários no tópico\"O laboratório\"" #: lang/json/MOD_INFO_from_json.py msgid "No Acid Zombies" -msgstr "Nenhum zumbido ácido" +msgstr "" #. ~ Description for No Acid Zombies #: lang/json/MOD_INFO_from_json.py msgid "Removes all acid-based zombies from the game." -msgstr "Remove todos os zumbis baseados em ácido do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Ants" -msgstr "Sem formigas" +msgstr "" #. ~ Description for No Ants #: lang/json/MOD_INFO_from_json.py msgid "Removes ants and anthills from the game" -msgstr "Remove formigas e formigueiros do jogo" +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Bees" -msgstr "Sem abelhas" +msgstr "" #. ~ Description for No Bees #: lang/json/MOD_INFO_from_json.py msgid "Removes bees and beehives from the game" -msgstr "Remove abelhas e colméias do jogo" +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Big Zombies" -msgstr "Não há grandes zumbis" +msgstr "" #. ~ Description for No Big Zombies #: lang/json/MOD_INFO_from_json.py @@ -54042,20 +48041,19 @@ msgid "" "Removes shocker brutes, zombie hulks, and skeletal juggernauts from the " "game." msgstr "" -" Remove brutos chocantes, hulks zumbis e juggernauts esqueléticos do jogo." #: lang/json/MOD_INFO_from_json.py msgid "No Explosive Zombies" -msgstr "Nenhum zumbi explosivo" +msgstr "" #. ~ Description for No Explosive Zombies #: lang/json/MOD_INFO_from_json.py msgid "Removes all explosion-based zombies from the game." -msgstr "Remove todos os zumbis baseados em explosão do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Perfect Reliability" -msgstr "Confiabilidade Perfeita" +msgstr "" #. ~ Description for Perfect Reliability #: lang/json/MOD_INFO_from_json.py @@ -54063,8 +48061,6 @@ msgid "" "Vehicle parts are perfectly reliable and never spawn with faults or develop " "them during use" msgstr "" -" As peças do veículo são perfeitamente confiáveis e nunca desovam " -"comfalhasou desenvolvem-nas durante o uso" #: lang/json/MOD_INFO_from_json.py msgid "No Filthy Clothing" @@ -54077,57 +48073,57 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Flaming Weapons" -msgstr "Nenhuma arma flamejante" +msgstr "" #. ~ Description for No Flaming Weapons #: lang/json/MOD_INFO_from_json.py msgid "Removes flaming melee weapons." -msgstr "Remove armas de combate corpo a corpo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Fungal Monsters" -msgstr "Nenhum monstro fúngico" +msgstr "" #. ~ Description for No Fungal Monsters #: lang/json/MOD_INFO_from_json.py msgid "Removes fungal monsters and regions from the game." -msgstr "Remove monstros e regiões fúngicas do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Medieval Items" -msgstr "Sem itens medievais" +msgstr "" #. ~ Description for No Medieval Items #: lang/json/MOD_INFO_from_json.py msgid "Removes medieval weapons, armors, and specific books." -msgstr "Remove armas medievais, armaduras e livros específicos." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Disable Mutagens" -msgstr "Desativar Mutagens" +msgstr "" #. ~ Description for Disable Mutagens #: lang/json/MOD_INFO_from_json.py msgid "Removes mutagen items from the game." -msgstr "Remove itens mutagênicos do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Disable NPC Needs" -msgstr "Desativar Necessidades NPC" +msgstr "" #. ~ Description for Disable NPC Needs #: lang/json/MOD_INFO_from_json.py msgid "Makes NPCs not require food, water or rest." -msgstr "Faz com que os NPCs não precisem de comida, água ou descanso." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Antique Firearms" -msgstr "Sem armas de fogo antigas" +msgstr "" #. ~ Description for No Antique Firearms #: lang/json/MOD_INFO_from_json.py msgid "Removes all black powder and pre-Cold War firearms." -msgstr "Remove todas as armas de fogo negras e pré-Guerra Fria." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Rail Stations" @@ -54140,72 +48136,71 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Disable Religious Texts" -msgstr "Desativar textos religiosos" +msgstr "" #. ~ Description for Disable Religious Texts #: lang/json/MOD_INFO_from_json.py msgid "Removes religious text items from the game." -msgstr "Remove itens de texto religiosos do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Prevent Zombie Revivication" -msgstr "Previna a Revivificação dos Zumbis" +msgstr "" #. ~ Description for Prevent Zombie Revivication #: lang/json/MOD_INFO_from_json.py msgid "Disables zombie revival." -msgstr "Desativa o renascimento de zumbis." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Fictional Guns" -msgstr "Nenhuma arma fictícia" +msgstr "" #. ~ Description for No Fictional Guns #: lang/json/MOD_INFO_from_json.py msgid "Removes fictional conventional firearms and ammunition." -msgstr "Remove armas convencionais de fogo e munições." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Survivor Armor" -msgstr "Nenhuma armadura de sobrevivente" +msgstr "" #. ~ Description for No Survivor Armor #: lang/json/MOD_INFO_from_json.py msgid "Removes survivor armor." -msgstr "Remove a armadura sobrevivente." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Triffids" -msgstr "Sem triffids" +msgstr "" #. ~ Description for No Triffids #: lang/json/MOD_INFO_from_json.py msgid "Removes triffids from the game." -msgstr "Remove triffids do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Zombie Animals" -msgstr "Nenhum animal zumbi" +msgstr "" #. ~ Description for No Zombie Animals #: lang/json/MOD_INFO_from_json.py msgid "Removes zombie animals from the game." -msgstr "Remove animais zumbis do jogo." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Monsters" -msgstr "Sem monstros" +msgstr "" #. ~ Description for No Monsters #: lang/json/MOD_INFO_from_json.py msgid "" "Removes all monsters from the game, save for those in the WILDLIFE category." msgstr "" -" Remove todos os monstros do jogo, exceto aqueles na categoria WILDLIFE." #: lang/json/MOD_INFO_from_json.py msgid "Classic Roguelike Classes" -msgstr "Classes Roguelike clássicas" +msgstr "" #. ~ Description for Classic Roguelike Classes #: lang/json/MOD_INFO_from_json.py @@ -54213,24 +48208,20 @@ msgid "" "Adds a set of professions which correspond to classic Roguelike character " "archetypes." msgstr "" -" Adiciona um conjunto de profissões que correspondem aos " -"arquétiposdospersonagens clássicos de Roguelike." #: lang/json/MOD_INFO_from_json.py msgid "Safe Autodoc" -msgstr "Autodoc seguro" +msgstr "" #. ~ Description for Safe Autodoc #: lang/json/MOD_INFO_from_json.py msgid "" "Makes Autodoc operations completely safe, independent of the player's skill." msgstr "" -" Torna as operações Autodoc completamente seguras, " -"independentementedahabilidade do jogador." #: lang/json/MOD_INFO_from_json.py msgid "Salvaged Robots" -msgstr "Robôs Recuperados" +msgstr "" #. ~ Description for Salvaged Robots #: lang/json/MOD_INFO_from_json.py @@ -54238,33 +48229,29 @@ msgid "" "Expands the types of robots and allows players to jury-rig broken robots " "into functioning companions." msgstr "" -" Expande os tipos de robôs e permite que os jogadores criem robôsquebradosem" -" companheiros funcionais." #: lang/json/MOD_INFO_from_json.py src/debug_menu.cpp msgid "Sleep Deprivation" -msgstr "Privação de sono" +msgstr "" #. ~ Description for Sleep Deprivation #: lang/json/MOD_INFO_from_json.py msgid "" "Enables sleep deprivation mechanics independently of a player's fatigue." msgstr "" -" Permite a mecânica de privação de sono, independentemente da fadiga " -"deumjogador." #: lang/json/MOD_INFO_from_json.py msgid "Slow Zombies" -msgstr "Zumbis lentos" +msgstr "" #. ~ Description for Slow Zombies #: lang/json/MOD_INFO_from_json.py msgid "Halves zombie speed." -msgstr "Metades de velocidade zumbi." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "StatsThroughSkills" -msgstr "Estado Através Kills" +msgstr "" #. ~ Description for StatsThroughSkills #: lang/json/MOD_INFO_from_json.py @@ -54273,7 +48260,7 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Tanks and Other Vehicles" -msgstr "Tanques e Outros Veículos" +msgstr "" #. ~ Description for Tanks and Other Vehicles #: lang/json/MOD_INFO_from_json.py @@ -54281,12 +48268,10 @@ msgid "" "Adds a few armored fighting vehicles and other such things, requires Vehicle" " Additions Pack." msgstr "" -" Adiciona alguns veículos de combate blindados e outras coisas, " -"requeroPacote de Adições de Veículos." #: lang/json/MOD_INFO_from_json.py msgid "Bens GF recipes" -msgstr "Receitas Bens GF" +msgstr "" #. ~ Description for Bens GF recipes #: lang/json/MOD_INFO_from_json.py @@ -54294,39 +48279,37 @@ msgid "" "Some simple gluten free and lactose free alternative recipe options. NOT " "EXHAUSTIVE." msgstr "" -" Algumas opções simples de receita alternativa sem glúten e sem lactose. " -"NÃOEXAUSTIVO." #: lang/json/MOD_INFO_from_json.py msgid "Tough Zombies" -msgstr "Zumbis duros" +msgstr "" #. ~ Description for Tough Zombies #: lang/json/MOD_INFO_from_json.py msgid "Doubles zombie health." -msgstr "Duplica a saúde dos zumbis." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Urban Development" -msgstr "Desenvolvimento Urbano" +msgstr "" #. ~ Description for Urban Development #: lang/json/MOD_INFO_from_json.py msgid "Holder for suburban and urban buildings." -msgstr "Titular de edifícios suburbanos e urbanos." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Zombie Nightvision" -msgstr "Visão noturna zumbi" +msgstr "" #. ~ Description for Zombie Nightvision #: lang/json/MOD_INFO_from_json.py msgid "Gives all zombies perfect nightvision." -msgstr "Dá a todos os zumbis visão noturna perfeita." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Alternative Map Key" -msgstr "Chave do mapa alternativo" +msgstr "" #. ~ Description for Alternative Map Key #: lang/json/MOD_INFO_from_json.py @@ -54334,22 +48317,19 @@ 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 "" -" Altera o mapa expandido para ser mais legível. Os edifícios " -"sãocodificadospor cores por tipo e usam letra inicial de seus nomes em vez " -"de^ v<>." #: lang/json/MOD_INFO_from_json.py msgid "Bionics Systems Mod" -msgstr "Modificação dos Sistemas Biônicos" +msgstr "" #. ~ Description for Bionics Systems Mod #: lang/json/MOD_INFO_from_json.py msgid "Adds and rebalances bionics and CBMs." -msgstr "Adiciona e reequilibra biônica e CBMs." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Vehicle Additions Pack" -msgstr "Pacote de Adições de Veículos" +msgstr "" #. ~ Description for Vehicle Additions Pack #: lang/json/MOD_INFO_from_json.py @@ -54357,8 +48337,6 @@ msgid "" "Please see the included PAQ.txt in the mod folder if you encounter any " "issues." msgstr "" -" Por favor, veja o PAQ.txt incluído na pasta mod se você " -"encontraralgumproblema." #: lang/json/MOD_INFO_from_json.py msgid "Bionic Slots" @@ -54382,12 +48360,12 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Dark Days Ahead" -msgstr "Dias escuros à frente" +msgstr "" #. ~ Description for Dark Days Ahead #: lang/json/MOD_INFO_from_json.py msgid "Core content for Cataclysm-DDA" -msgstr "Conteúdo principal do Cataclysm-DDA" +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Desert Region" @@ -54409,72 +48387,67 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Makeshift Items Mod" -msgstr "Modificação por Itens Improvisados" +msgstr "" #. ~ Description for Makeshift Items Mod #: lang/json/MOD_INFO_from_json.py msgid "Adds more improvised item variants and rebalances existing ones." msgstr "" -" Adiciona mais variantes de itens improvisados e reequilibra os existentes." #: lang/json/MOD_INFO_from_json.py msgid "Mapgen Demo" -msgstr "Mapgen Demo" +msgstr "" #. ~ Description for Mapgen Demo #: lang/json/MOD_INFO_from_json.py msgid "Demo for JSONized mapgens (FEMA, megastore, missile silo)." -msgstr "Demonstração para mapens JSONized (FEMA, megastore, silo de mísseis)." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Classes and Scenarios Mod" -msgstr "Modalidades de Classes e Cenários" +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 "" -" Adiciona novas classes e cenários enquanto reequilibra alguns existentes." #: lang/json/MOD_INFO_from_json.py msgid "Necromancy" -msgstr "Necromancia" +msgstr "" #. ~ Description for Necromancy #: lang/json/MOD_INFO_from_json.py msgid "Adds the ability to revive creatures as minions." -msgstr "Adiciona a capacidade de reviver criaturas como lacaios." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "No Sci-Fi Equipment" -msgstr "Nenhum equipamento de ficção científica" +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 "" -" Remove itens de ficção científica do futuro distante, como " -"armadurablindadae armas de energia." #: lang/json/MOD_INFO_from_json.py msgid "Simplified Nutrition" -msgstr "Nutrição Simplificada" +msgstr "" #. ~ Description for Simplified Nutrition #: lang/json/MOD_INFO_from_json.py msgid "Disables vitamin requirements." -msgstr "Desativa os requisitos de vitaminas." +msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Extended Realistic Guns" -msgstr "Armas realistas estendidas" +msgstr "" #. ~ Description for Extended Realistic Guns #: lang/json/MOD_INFO_from_json.py msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "" -"Adiciona mais tipos de munição sobrepostos e armas de fogo mais reais." #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, HitButton_iso" @@ -54540,7 +48513,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "chicken" -msgstr "frango" +msgstr "" #. ~ Description for chicken #: lang/json/MONSTER_from_json.py @@ -54549,13 +48522,10 @@ msgid "" "bird in the world. Before the Cataclysm, it was raised by humans as a " "source of meat, eggs, and early morning wakeup calls." msgstr "" -" Um descendente domesticado de aves silvestres, pode ainda ser a " -"avemaisnumerosa do mundo. Antes do Cataclismo, foi criado por humanos " -"comofontede carne, ovos e chamadas de despertar no início da manhã." #: lang/json/MONSTER_from_json.py msgid "grouse" -msgstr "perdiz" +msgstr "" #. ~ Description for grouse #: lang/json/MONSTER_from_json.py @@ -54563,12 +48533,10 @@ msgid "" "A very common game bird, these creatures remind you of what a wild chicken " "must have been like." msgstr "" -" Um pássaro de caça muito comum, essas criaturas lembram o que " -"umagalinhaselvagem deve ter sido." #: lang/json/MONSTER_from_json.py msgid "crow" -msgstr "Corvo" +msgstr "" #. ~ Description for crow #: lang/json/MONSTER_from_json.py @@ -54576,12 +48544,10 @@ msgid "" "A small, elegant black bird, famous for its distinctive call. An " "intelligent bird, there is a glitter of mischief behind its eyes." msgstr "" -" Um pássaro preto pequeno e elegante, famoso por sua característicadistinta." -" Um pássaro inteligente, há um brilho de malícia por trás de seusolhos." #: lang/json/MONSTER_from_json.py msgid "duck" -msgstr "Pato" +msgstr "" #. ~ Description for duck #: lang/json/MONSTER_from_json.py @@ -54589,23 +48555,19 @@ 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 "" -" Um pato, muitas vezes visto em torno de rios e outras massas deágua. " -"Alimenta-se principalmente de insetos, sementes, raízes e, pré- cataclismo, " -"restos de pão." #: lang/json/MONSTER_from_json.py msgid "goose" -msgstr "Ganso" +msgstr "" #. ~ Description for goose #: lang/json/MONSTER_from_json.py msgid "A Canadian goose, a common waterfowl that regrets leaving Canada." msgstr "" -" Um ganso canadense, uma ave aquática comum que lamenta deixar o Canadá." #: lang/json/MONSTER_from_json.py msgid "turkey" -msgstr "Peru" +msgstr "" #. ~ Description for turkey #: lang/json/MONSTER_from_json.py @@ -54613,12 +48575,10 @@ msgid "" "A large and colorful game bird native to the forests of North America. Its " "head and beak are covered in fleshy protuberances." msgstr "" -" Um pássaro grande e colorido nativo para as florestas da América doNorte. " -"Sua cabeça e bico estão cobertos de protuberâncias carnudas." #: lang/json/MONSTER_from_json.py msgid "pheasant" -msgstr "faisão" +msgstr "" #. ~ Description for pheasant #: lang/json/MONSTER_from_json.py @@ -54626,12 +48586,10 @@ msgid "" "A medium sized game bird that can have bright feathers depending on the sex " "and species." msgstr "" -" Um pássaro de caça de tamanho médio que pode ter penas " -"brilhantesdependendodo sexo e das espécies." #: lang/json/MONSTER_from_json.py msgid "cockatrice" -msgstr "basilisco" +msgstr "" #. ~ Description for cockatrice #: lang/json/MONSTER_from_json.py @@ -54640,13 +48598,10 @@ msgid "" "its features seem to be becoming more reptilian, it doesn't appear " "dangerous." msgstr "" -" Esta estranha ave mutante ganha seu nome a partir de sua aparênciaestranha." -" Embora suas características pareçam estar se tornando maisreptilianas, " -"elasnão parecem perigosas." #: lang/json/MONSTER_from_json.py msgid "yellow chick" -msgstr "pintinho amarelo" +msgstr "" #. ~ Description for yellow chick #: lang/json/MONSTER_from_json.py @@ -54654,25 +48609,23 @@ msgid "" "A tiny yellow and brown chick, it could be from a number of different " "species." msgstr "" -" Um pequeno filhote amarelo e marrom, pode ser de várias espéciesdiferentes." #: lang/json/MONSTER_from_json.py msgid "brown chick" -msgstr "pintinho marrom" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "strange chick" -msgstr "garota estranha" +msgstr "" #. ~ Description for strange chick #: lang/json/MONSTER_from_json.py msgid "A strange tiny chick, it could be from a number of different species." msgstr "" -"Uma garota pequena e estranha, pode ser de várias espécies diferentes." #: lang/json/MONSTER_from_json.py msgid "waterfowl chick" -msgstr "filhote de ave aquática" +msgstr "" #. ~ Description for waterfowl chick #: lang/json/MONSTER_from_json.py @@ -54680,12 +48633,10 @@ msgid "" "A tiny yellow and brown waterfowl chick, it could be from a number of " "different species." msgstr "" -" Um pequeno filhote de ave aquática amarelo e marrom, pode ser " -"deváriasespécies diferentes." #: lang/json/MONSTER_from_json.py msgid "security bot" -msgstr "bot de segurança" +msgstr "" #. ~ Description for security bot #: lang/json/MONSTER_from_json.py @@ -54694,14 +48645,10 @@ msgid "" "robots. Initially designed for military patrol and escort service, it rolls" " on a set of hydraulic treads and is armed with a 9x19mm SMG." msgstr "" -" O Northrop Watchman X-1 é uma série de produção de robôs " -"decombatefortemente blindados. Inicialmente projetado para serviço " -"militardepatrulha e escolta, ele rola em um conjunto de degraus hidráulicos " -"eestáarmado com um SMG 9x19mm." #: lang/json/MONSTER_from_json.py msgid "turret" -msgstr "torre" +msgstr "" #. ~ Description for turret #: lang/json/MONSTER_from_json.py @@ -54711,14 +48658,10 @@ msgid "" "friends and enemies alike. The two SMG barrels can swivel a full 360 " "degrees." msgstr "" -" O General Atomics TX-1 Guardian, uma pequena torre " -"demetralhadorasautomática em forma de comprimido, que utiliza sistemas ATR " -"deúltimageração para se reorientar dinamicamente para novos amigos " -"einimigos. Osdois tambores SMG podem girar 360 graus." #: lang/json/MONSTER_from_json.py msgid "skitterbot" -msgstr "skitterbot" +msgstr "" #. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py @@ -54727,9 +48670,6 @@ msgid "" "Armed with two close-range tazers, it can skate across the ground with great" " speed." msgstr "" -" Um robô insectoide do tamanho de um cachorro pequeno, " -"projetadoparasegurança doméstica. Armado com dois tazers de curto alcance, " -"ele pode patinar no chão com grande velocidade." #: lang/json/MONSTER_from_json.py msgid "experimental lab bot" @@ -54786,11 +48726,11 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "autonomous drone" -msgstr "drone autônomo" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "EMP hack" -msgstr "EMP hack" +msgstr "" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py @@ -54801,7 +48741,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "C-4 hack" -msgstr "C-4 hack" +msgstr "" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py @@ -54812,7 +48752,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "flashbang hack" -msgstr "hack de flashbang" +msgstr "" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py @@ -54823,7 +48763,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "tear gas hack" -msgstr "corte de gás lacrimogêneo" +msgstr "" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py @@ -54834,7 +48774,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "grenade hack" -msgstr "granada hack" +msgstr "" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py @@ -54845,7 +48785,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "manhack" -msgstr "manhack" +msgstr "" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py @@ -54856,7 +48796,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "mininuke hack" -msgstr "mininuke hack" +msgstr "" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py @@ -54912,7 +48852,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "trout" -msgstr "truta" +msgstr "" #. ~ Description for trout #: lang/json/MONSTER_from_json.py @@ -54978,7 +48918,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "salmon" -msgstr "salmão" +msgstr "" #. ~ Description for salmon #: lang/json/MONSTER_from_json.py @@ -55025,8 +48965,6 @@ msgid "" "A whitefish, closely related to salmon. One can assume they are just as " "nice when cooked with smoke." msgstr "" -" whitefishUm peixe branco, intimamente relacionado ao salmão. Pode- " -"sesuporque eles são tão bons quando cozidos com fumaça." #: lang/json/MONSTER_from_json.py msgid "largemouth bass" @@ -55110,7 +49048,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bluegill" -msgstr "bluegill" +msgstr "" #. ~ Description for bluegill #: lang/json/MONSTER_from_json.py @@ -55187,7 +49125,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bullhead" -msgstr "cabeça de vaca" +msgstr "" #. ~ Description for bullhead #: lang/json/MONSTER_from_json.py @@ -55250,7 +49188,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "carp" -msgstr "carpa" +msgstr "" #. ~ Description for carp #: lang/json/MONSTER_from_json.py @@ -55270,7 +49208,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bowfin" -msgstr "bowfin" +msgstr "" #. ~ Description for bowfin #: lang/json/MONSTER_from_json.py @@ -55278,8 +49216,6 @@ msgid "" "A Bowfin. These fish are related to gar but without the huge teeth, skin " "rending scales, and aggression." msgstr "" -" Um Bowfin. Estes peixes estão relacionados ao gar, mas sem osenormesdentes," -" escamas da pele e agressão." #: lang/json/MONSTER_from_json.py msgid "fallfish" @@ -55294,7 +49230,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "lobster" -msgstr "lagosta" +msgstr "" #. ~ Description for lobster #: lang/json/MONSTER_from_json.py @@ -55303,13 +49239,10 @@ msgid "" "marketing genius started selling them to people as a delicacy and they took " "off in popularity... and price." msgstr "" -" Essas coisas já foram consideradas pragas que não valem a penaseremcomidas," -" então algum gênio do marketing começou a vendê-las para aspessoascomo uma " -"iguaria e elas decolaram em popularidade ... e preço." #: lang/json/MONSTER_from_json.py msgid "crayfish" -msgstr "lagostim" +msgstr "" #. ~ Description for crayfish #: lang/json/MONSTER_from_json.py @@ -55317,8 +49250,6 @@ msgid "" "If you could get ahold of a bunch more of these, a hefty pot of boiling " "water, and some spicy seasonings..." msgstr "" -" Se você pudesse pegar mais um desses, uma panela de água fervente " -"ealgunstemperos picantes ..." #: lang/json/MONSTER_from_json.py msgid "Blinky" @@ -55329,11 +49260,11 @@ msgstr[1] "" #. ~ Description for Blinky #: lang/json/MONSTER_from_json.py msgid "A strange three-eyed fish." -msgstr "BlinkyUm estranho peixe de três olhos." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "freshwater eel" -msgstr "enguia de água doce" +msgstr "" #. ~ Description for freshwater eel #: lang/json/MONSTER_from_json.py @@ -55341,13 +49272,10 @@ msgid "" "An American eel. Used to be quite common in these parts until the dams were" " built. Guess they'll get a second chance now that they aren't running." msgstr "" -" Uma enguia americana. Costumava ser bastante comum nessas partes até " -"queasrepresas fossem construídas. Acho que eles terão uma segunda " -"chanceagoraque não estão correndo." #: lang/json/MONSTER_from_json.py msgid "jawed terror" -msgstr "terror de queixo" +msgstr "" #. ~ Description for jawed terror #: lang/json/MONSTER_from_json.py @@ -55355,13 +49283,10 @@ msgid "" "A once aggressive and hungry bull shark, this jawed terror is now even more " "aggressive, possibly thanks to its lack of a functioning brain." msgstr "" -" Um tubarão-touro outrora agressivo e faminto, esse terror com queixo " -"éagoraainda mais agressivo, possivelmente graças à falta de um " -"cérebrofuncional." #: lang/json/MONSTER_from_json.py msgid "giant carp" -msgstr "carpa gigante" +msgstr "" #. ~ Description for giant carp #: lang/json/MONSTER_from_json.py @@ -55369,12 +49294,10 @@ msgid "" "This thing seems like a carp, only swollen and very very angry. Death is " "the gift of the carp god." msgstr "" -" Essa coisa parece uma carpa, apenas inchada e muito zangada. A morte " -"éopresente do deus da carpa." #: lang/json/MONSTER_from_json.py msgid "giant salmon" -msgstr "salmão gigante" +msgstr "" #. ~ Description for giant salmon #: lang/json/MONSTER_from_json.py @@ -55382,12 +49305,10 @@ msgid "" "A mutated salmon, the same size as a large dog and quite dangerous to the " "inexperienced angler." msgstr "" -" Um salmão mutante, do mesmo tamanho de um cachorro grande ebastanteperigoso" -" para o pescador inexperiente." #: lang/json/MONSTER_from_json.py msgid "seweranha" -msgstr "seweranha" +msgstr "" #. ~ Description for seweranha #: lang/json/MONSTER_from_json.py @@ -55395,30 +49316,28 @@ msgid "" "A large mutant variety of carp. It has shimmering green scales and a mouth " "lined with three jagged rows of razor-sharp teeth." msgstr "" -" Uma grande variedade mutante de carpa. Tem escamas verdes cintilantes " -"eumaboca forrada com três fileiras irregulares de dentes afiados." #: lang/json/MONSTER_from_json.py msgid "skittering plague" -msgstr "peste escorregadia" +msgstr "" #. ~ Description for skittering plague #: lang/json/MONSTER_from_json.py msgid "A giant infected roach, it has been feeding on the undead." -msgstr "Uma barata gigante infectada, tem se alimentado dos mortos-vivos." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "plague nymph" -msgstr "ninfa da peste" +msgstr "" #. ~ Description for plague nymph #: lang/json/MONSTER_from_json.py msgid "An infected mutant cockroach about the size of a rat." -msgstr "Uma barata mutante infectada do tamanho de um rato." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "plague vector" -msgstr "vetor de peste" +msgstr "" #. ~ Description for plague vector #: lang/json/MONSTER_from_json.py @@ -55426,30 +49345,28 @@ msgid "" "This infected roach has been feeding on the undead and started to mutate " "chaotically. Extra limbs and growths sprout from its thorax." msgstr "" -" Esta barata infectada tem se alimentado dos mortos-vivos e começou " -"asofrermutações caóticas. Membros e crescimentos extras brotam de seu tórax." #: lang/json/MONSTER_from_json.py msgid "giant cockroach" -msgstr "barata gigante" +msgstr "" #. ~ Description for giant cockroach #: lang/json/MONSTER_from_json.py msgid "A mutant cockroach the size of a small dog." -msgstr "Uma barata mutante do tamanho de um cachorro pequeno." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant cockroach nymph" -msgstr "ninfa de barata gigante" +msgstr "" #. ~ Description for giant cockroach nymph #: lang/json/MONSTER_from_json.py msgid "A baby mutant cockroach about the size of a rat." -msgstr "Uma barata bebê mutante do tamanho de um rato." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "pregnant giant cockroach" -msgstr "barata gigante grávida" +msgstr "" #. ~ Description for pregnant giant cockroach #: lang/json/MONSTER_from_json.py @@ -55459,7 +49376,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant bee" -msgstr "abelha gigante" +msgstr "" #. ~ Description for giant bee #: lang/json/MONSTER_from_json.py @@ -55467,13 +49384,10 @@ msgid "" "With a stinger the size of a kitchen knife, this dog-sized insect's black " "and yellow markings warn you to leave it undisturbed." msgstr "" -" Com um ferrão do tamanho de uma faca de cozinha, as marcas pretas " -"eamarelasdeste insecto do tamanho de um cão avisam-no para o " -"deixarimperturbável." #: lang/json/MONSTER_from_json.py msgid "giant centipede" -msgstr "centopéia gigante" +msgstr "" #. ~ Description for giant centipede #: lang/json/MONSTER_from_json.py @@ -55481,8 +49395,6 @@ msgid "" "A meter-long centipede with a menacing pair of pincers, moving swiftly on " "dozens of spindly legs." msgstr "" -" Uma centopéia de um metro de comprimento com um ameaçador par depinças, " -"movendo-se rapidamente em dezenas de pernas finas." #: lang/json/MONSTER_from_json.py msgid "giant dragonfly" @@ -55496,8 +49408,6 @@ msgid "" "A ferocious mutant dragonfly as big as a cat, darting through the air with a" " cluster of fangs for a mouth." msgstr "" -" libélula giganteUma libélula mutante feroz tão grande quanto umgato, " -"correndo pelo ar com um grupo de dentes para uma boca." #: lang/json/MONSTER_from_json.py msgid "giant fly" @@ -55511,12 +49421,10 @@ msgid "" "A tremendous housefly the size of a small dog, predictably accompanied by a " "loud, incessant buzzing sound." msgstr "" -" mosca giganteUma tremenda mosca do tamanho de um cãopequeno, " -"previsivelmente acompanhada por um som zumbido alto e incessante." #: lang/json/MONSTER_from_json.py msgid "giant mosquito" -msgstr "mosquito gigante" +msgstr "" #. ~ Description for giant mosquito #: lang/json/MONSTER_from_json.py @@ -55524,12 +49432,10 @@ msgid "" "An enormous mutant mosquito, fluttering erratically. Its face is dominated " "by a long, spear-tipped proboscis." msgstr "" -" Um enorme mosquito mutante, agitando-se erraticamente. Seu rosto " -"édominadopor um probóscide longo, com ponta de lança." #: lang/json/MONSTER_from_json.py msgid "giant cellar spider" -msgstr "aranha adega gigante" +msgstr "" #. ~ Description for giant cellar spider #: lang/json/MONSTER_from_json.py @@ -55538,13 +49444,10 @@ msgid "" " legs. Its smaller brethren are known for being agile, and for preying upon" " other spiders." msgstr "" -" Uma aranha marrom mutante, com um corpo relativamente pequeno epernaslongas" -" e finas. Seus irmãos menores são conhecidos por serem ágeis eporpredarem " -"outras aranhas." #: lang/json/MONSTER_from_json.py msgid "immature giant cellar spider" -msgstr "aranha adega gigante imaturo" +msgstr "" #. ~ Description for immature giant cellar spider #: lang/json/MONSTER_from_json.py @@ -55552,12 +49455,10 @@ msgid "" "A newly-hatched giant cellar spider. Too small to possess much venom, but " "still quick and agile like an adult." msgstr "" -" Uma aranha adega gigante recém-nascida. Pequeno demais para " -"possuirmuitoveneno, mas ainda rápido e ágil como um adulto." #: lang/json/MONSTER_from_json.py msgid "giant jumping spider" -msgstr "Aranha saltadora gigante" +msgstr "" #. ~ Description for giant jumping spider #: lang/json/MONSTER_from_json.py @@ -55565,13 +49466,10 @@ msgid "" "A giant spider with big forelegs and two pairs of inquisitive-looking eyes." " It can leap quite quickly, even into the treetops." msgstr "" -" Uma aranha gigante com grandes pernas dianteiras e dois pares " -"deolhosinquisitivos. Ele pode pular rapidamente, até mesmo nas copas " -"dasárvores." #: lang/json/MONSTER_from_json.py msgid "giant trapdoor spider" -msgstr "aranha alçapão gigante" +msgstr "" #. ~ Description for giant trapdoor spider #: lang/json/MONSTER_from_json.py @@ -55579,13 +49477,10 @@ msgid "" "A gigantic spider with a bulbous thorax. It digs a deep underground burrow " "that serves as a pit to trap unwary prey." msgstr "" -" Uma aranha gigantesca com um tórax bulboso. Ele escava uma " -"tocasubterrâneaprofunda que serve como um buraco para capturar " -"presasdesavisadas." #: lang/json/MONSTER_from_json.py msgid "giant web spider" -msgstr "teia gigante" +msgstr "" #. ~ Description for giant web spider #: lang/json/MONSTER_from_json.py @@ -55593,12 +49488,10 @@ msgid "" "A giant mutated grass spider, it waits for prey to become ensnared in the " "vast webs that it weaves between the trees." msgstr "" -" Uma gigantesca aranha de grama mutante, espera que a presa se " -"enrolenasvastas teias que ela tece entre as árvores." #: lang/json/MONSTER_from_json.py msgid "immature giant web spider" -msgstr "Aranha gigante imatura" +msgstr "" #. ~ Description for immature giant web spider #: lang/json/MONSTER_from_json.py @@ -55606,12 +49499,10 @@ msgid "" "A still immature giant grass spider. Too young to be venomous, or to walk " "proficiently for that matter" msgstr "" -" Uma aranha de grama gigante ainda imatura. Muito jovem para ser venenosa, " -"ouandar proficientemente para esse assunto" #: lang/json/MONSTER_from_json.py msgid "giant black widow" -msgstr "viúva negra gigante" +msgstr "" #. ~ Description for giant black widow #: lang/json/MONSTER_from_json.py @@ -55619,12 +49510,10 @@ msgid "" "A giant mutated black widow spider. A highly venomous nightmare come to " "life." msgstr "" -" Uma gigante aranha viúva negra mutante. Um pesadelo altamente venenoso " -"vemàvida." #: lang/json/MONSTER_from_json.py msgid "giant black widow spiderling" -msgstr "Aranha gigante da viúva negra" +msgstr "" #. ~ Description for giant black widow spiderling #: lang/json/MONSTER_from_json.py @@ -55632,12 +49521,10 @@ msgid "" "The horrid spawn of a giant black widow spider. Even as a newborn, this " "foul creature knows only how to kill." msgstr "" -" A horrível desova de uma gigante aranha viúva negra. Mesmo como um recém- " -"nascido, essa criatura imunda só sabe matar." #: lang/json/MONSTER_from_json.py msgid "giant wolf spider" -msgstr "aranha gigante" +msgstr "" #. ~ Description for giant wolf spider #: lang/json/MONSTER_from_json.py @@ -55645,12 +49532,10 @@ msgid "" "A wolf spider mutated to about thirty times its normal size, it moves " "quickly and aggressively to catch and consume prey." msgstr "" -" Uma aranha-lobo transformada em cerca de trinta vezes seu tamanhonormal, " -"ela se move rápida e agressivamente para capturar e consumir presas." #: lang/json/MONSTER_from_json.py msgid "giant wasp" -msgstr "vespa gigante" +msgstr "" #. ~ Description for giant wasp #: lang/json/MONSTER_from_json.py @@ -55658,13 +49543,10 @@ msgid "" "A gigantic slender-bodied wasp with an evil-looking stinger protruding from " "its abdomen. Its exoskeleton glowers with ominous red markings." msgstr "" -" Uma vespa gigantesca de corpo esguio com um ferrão de " -"aparênciamalignasaindo de seu abdômen. Seu exoesqueleto fica com " -"marcasvermelhassinistras." #: lang/json/MONSTER_from_json.py msgid "dermatik" -msgstr "dermática" +msgstr "" #. ~ Description for dermatik #: lang/json/MONSTER_from_json.py @@ -55672,12 +49554,10 @@ msgid "" "A mutated wasp nearly the size of a cat, with a barbed ovipositor extruding " "from the abdomen." msgstr "" -" Uma vespa mutante quase do tamanho de um gato, com um " -"ovipositorfarpadosaindo do abdômen." #: lang/json/MONSTER_from_json.py msgid "dermatik larva" -msgstr "larva dermatite" +msgstr "" #. ~ Description for dermatik larva #: lang/json/MONSTER_from_json.py @@ -55685,12 +49565,10 @@ msgid "" "A fat white grub as big as a squirrel, with a pair of large, spadelike " "mandibles." msgstr "" -" Uma gorda grossa branca do tamanho de um esquilo, com um par " -"degrandesmandíbulas em forma de espinha." #: lang/json/MONSTER_from_json.py msgid "giant ant" -msgstr "formiga gigante" +msgstr "" #. ~ Description for giant ant #: lang/json/MONSTER_from_json.py @@ -55698,12 +49576,10 @@ msgid "" "An enormous red ant covered in chitinous plates. It possesses a pair of " "wriggling antennae and vicious-looking mandibles." msgstr "" -" Uma enorme formiga vermelha coberta de placas quitinosas. Possui um " -"pardeantenas que se contorcem e mandíbulas de aspecto cruel." #: lang/json/MONSTER_from_json.py msgid "giant acidic ant" -msgstr "formiga ácida gigante" +msgstr "" #. ~ Description for giant acidic ant #: lang/json/MONSTER_from_json.py @@ -55711,13 +49587,10 @@ msgid "" "A monstrous brown ant with a swollen abdomen, that ends with a small orifice" " at the tip. Glistening liquid seems to drip out periodically." msgstr "" -" Uma formiga marrom monstruosa com um abdômen inchado, que termina " -"comumpequeno orifício na ponta. O líquido brilhante " -"pareceescorrerperiodicamente." #: lang/json/MONSTER_from_json.py msgid "acidic ant larva" -msgstr "larva ácida" +msgstr "" #. ~ Description for acidic ant larva #: lang/json/MONSTER_from_json.py @@ -55725,13 +49598,10 @@ msgid "" "A squirming yellow grub that seems to be oozing liquid from both ends of its" " body. It appears its chitin hasn't developed enough to resist acid." msgstr "" -" Uma larva amarela que parece estar escoando líquido de ambas " -"asextremidadesdo corpo. Parece que sua quitina não se desenvolveu " -"osuficiente pararesistir ao ácido." #: lang/json/MONSTER_from_json.py msgid "acidic queen ant" -msgstr "formiga-rainha ácida" +msgstr "" #. ~ Description for acidic queen ant #: lang/json/MONSTER_from_json.py @@ -55740,14 +49610,10 @@ msgid "" "seems developed only for egg-laying rather than spraying acid like the rest " "of the colony, but it doesn't seem affected by the acrid liquid either." msgstr "" -" Uma enorme formiga marrom com um abdômen pulsante e alongado. " -"Seuorifícioparece desenvolvido apenas para postura de ovos, em vez " -"depulverizar ácidocomo o resto da colônia, mas também não parece afetado " -"pelolíquido acre." #: lang/json/MONSTER_from_json.py msgid "acidic soldier ant" -msgstr "formiga de soldado ácida" +msgstr "" #. ~ Description for acidic soldier ant #: lang/json/MONSTER_from_json.py @@ -55756,13 +49622,10 @@ msgid "" "head crest. Along with its huge mandibles, a corrosive liquid seeps from " "the end of its bloated abdomen." msgstr "" -" Uma maciça formiga marrom que se eleva sobre as formigas operárias " -"comumacrista gigante na cabeça. Junto com suas enormes mandíbulas, " -"umlíquidocorrosivo se infiltra no final de seu abdômen inchado." #: lang/json/MONSTER_from_json.py msgid "fungal ant" -msgstr "formiga fúngica" +msgstr "" #. ~ Description for fungal ant #: lang/json/MONSTER_from_json.py @@ -55770,13 +49633,10 @@ msgid "" "Pale, sickly gray in color, this giant ant's cracked exoskeleton is barely " "held together by coils of fungus erupting from every joint in its body." msgstr "" -" Pálido, de cor cinzenta, o exoesqueleto rachado desta formiga gigante " -"émalmantido unido por espirais de fungos em erupção de todas as " -"articulaçõesdoseu corpo." #: lang/json/MONSTER_from_json.py msgid "ant larva" -msgstr "larva de formiga" +msgstr "" #. ~ Description for ant larva #: lang/json/MONSTER_from_json.py @@ -55784,13 +49644,10 @@ msgid "" "A pulsating sausage of glistening white flesh, the size of a large cat. On " "one end is a set of squirming mouth parts." msgstr "" -" Uma salsicha pulsante de carne branca cintilante, do tamanho de " -"umgatogrande. De um lado está um conjunto de partes da boca que se " -"contorcem." #: lang/json/MONSTER_from_json.py msgid "queen ant" -msgstr "formiga rainha" +msgstr "" #. ~ Description for queen ant #: lang/json/MONSTER_from_json.py @@ -55798,13 +49655,10 @@ msgid "" "A colossal red ant with a bulging, bloated thorax. It moves slowly and " "deliberately, tending to nearby eggs and continually laying more." msgstr "" -" Uma formiga vermelha colossal com um tórax inchado e inchado. Ele " -"semovedevagar e deliberadamente, tendendo a ovos próximos " -"econtinuamentecolocando mais." #: lang/json/MONSTER_from_json.py msgid "soldier ant" -msgstr "formiga de soldado" +msgstr "" #. ~ Description for soldier ant #: lang/json/MONSTER_from_json.py @@ -55812,12 +49666,10 @@ msgid "" "A huge and hairy red ant almost twice the size of other giant ants. Bulging" " pincers extend from its jaws." msgstr "" -" Uma formiga vermelha enorme e peluda quase duas vezes o tamanho " -"deoutrasformigas gigantes. Pinças salientes se estendem de suas mandíbulas." #: lang/json/MONSTER_from_json.py msgid "giant locust" -msgstr "gafanhoto gigante" +msgstr "" #. ~ Description for giant locust #: lang/json/MONSTER_from_json.py @@ -55825,12 +49677,10 @@ msgid "" "An overgrown locust. You don't think it'll eat you but it could cause " "massive damage to nearby plants." msgstr "" -" Um gafanhoto cheio de mato. Você não acha que vai te comer, mas " -"podecausardanos massivos a plantas próximas." #: lang/json/MONSTER_from_json.py msgid "locust nymph" -msgstr "ninfa gafanhoto" +msgstr "" #. ~ Description for locust nymph #: lang/json/MONSTER_from_json.py @@ -55838,12 +49688,10 @@ msgid "" "A locust the size of a rabbit. You'd hate to think what a swarm of these " "could do." msgstr "" -" Um gafanhoto do tamanho de um coelho. Você odiaria pensar que enxame " -"poderia fazer." #: lang/json/MONSTER_from_json.py msgid "black bear cub" -msgstr "filhote de urso preto" +msgstr "" #. ~ Description for black bear cub #: lang/json/MONSTER_from_json.py @@ -55851,12 +49699,10 @@ msgid "" "A juvenile American black bear. This one isn't much of a threat, but be " "wary of its parent; black bears are known for their protectiveness." msgstr "" -" Um urso negro americano juvenil. Esta não é uma ameaça, mas desconfiedeseus" -" pais; ursos negros são conhecidos por sua proteção." #: lang/json/MONSTER_from_json.py msgid "black bear" -msgstr "Urso preto" +msgstr "" #. ~ Description for black bear #: lang/json/MONSTER_from_json.py @@ -55865,13 +49711,10 @@ msgid "" "claws and jaws, and is an effective ambush hunter. Most individuals are shy" " around humans, but they're fiercely protective of their cubs." msgstr "" -" O urso negro americano. Um grande carniceiro onívoro, tem garrasemandíbulas" -" poderosas e é um caçador de emboscadas eficaz. A maioriadaspessoas é tímida" -" em relação aos humanos, mas é ferozmente protetora deseusfilhotes." #: lang/json/MONSTER_from_json.py msgid "beaver" -msgstr "Castor" +msgstr "" #. ~ Description for beaver #: lang/json/MONSTER_from_json.py @@ -55881,14 +49724,10 @@ msgid "" "chew through wood, which it uses to build dam-like nests in lakes and " "streams." msgstr "" -" O castor norte-americano, o maior roedor do continente. Sua cauda emformade" -" remo ajuda a transportá-lo através da água, e seus dentesproeminentes podem" -" mastigar madeira, que ele usa para construir ninhossemelhantes abarragens " -"em lagos e córregos." #: lang/json/MONSTER_from_json.py msgid "black rat" -msgstr "rato preto" +msgstr "" #. ~ Description for black rat #: lang/json/MONSTER_from_json.py @@ -55897,13 +49736,10 @@ msgid "" "tail. Harbinger of pestilence, famine, and mange, it will sometimes swarm " "over the dead or dying." msgstr "" -" O rato preto, um roedor onívoro de pura pele negra e cauda longa eáspera. " -"Precursor de pestilência, fome e sarna, às vezes ele se infiltrasobre " -"osmortos ou moribundos." #: lang/json/MONSTER_from_json.py msgid "bobcat" -msgstr "lince" +msgstr "" #. ~ Description for bobcat #: lang/json/MONSTER_from_json.py @@ -55914,7 +49750,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cat" -msgstr "gato" +msgstr "" #. ~ Description for cat #: lang/json/MONSTER_from_json.py @@ -55923,13 +49759,10 @@ msgid "" "stewardship. Harried by the elements and the rigors of survival, it is " "scruffy and skittish." msgstr "" -" Um pequeno predador domesticado ficou feroz na ausência de mordomiahumana. " -"Harried pelos elementos e os rigores da sobrevivência, é " -"desalinhadoenervoso." #: lang/json/MONSTER_from_json.py msgid "chipmunk" -msgstr "Esquilo" +msgstr "" #. ~ Description for chipmunk #: lang/json/MONSTER_from_json.py @@ -55938,14 +49771,10 @@ msgid "" " coat. It spends much of the day patrolling its elaborate burrow and the " "precious stores of foraged food within." msgstr "" -" O chipmunk oriental, um pequeno roedor onívoro com um " -"casacolistradocaracterístico. Ele gasta a maior parte do dia patrulhando " -"suaelaboradatoca e as preciosas reservas de alimentos forrageiros dentro " -"dela." #: lang/json/MONSTER_from_json.py msgid "cougar" -msgstr "puma" +msgstr "" #. ~ Description for cougar #: lang/json/MONSTER_from_json.py @@ -55956,15 +49785,10 @@ msgid "" "powerful leaps and pounces, catching its prey with its deadly claws before " "delivering the finishing blow with its enormous fangs." msgstr "" -" O puma oriental, um grande predador felino. Uma vez consideradaextintanesta" -" região, os esforços de conservação foram bem sucedidos narestauraçãode uma " -"população próspera. Rápido e silencioso, este predador pode percorrer longas" -" distâncias com saltos e pulos poderosos, pegandosuaspresas com suas garras " -"mortais antes de dar o golpe final com suasenormespresas." #: lang/json/MONSTER_from_json.py msgid "calf" -msgstr "bezerro" +msgstr "" #. ~ Description for calf #. ~ Description for cow @@ -55974,17 +49798,14 @@ msgid "" "and the males can have a violent streak to accompany their nasty-looking " "horns." msgstr "" -" A vaca doméstica, um animal fértil ruminante. É bastante musculoso, " -"eosmachos podem ter uma veia violenta para acompanhar seus " -"chifresdeaparência desagradável." #: lang/json/MONSTER_from_json.py msgid "cow" -msgstr "vaca" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "coyote" -msgstr "coiote" +msgstr "" #. ~ Description for coyote #: lang/json/MONSTER_from_json.py @@ -55994,10 +49815,6 @@ msgid "" "intimidated by humans and other predators, but it will still fight if " "threatened, and the Cataclysm has made it more fearless than usual." msgstr "" -" O coiote oriental, também chamado de lobo de tweed, é um " -"caninoterritorialque descende da descendência de lobos cinzentos e " -"verdadeiroscoiotes. Éintimidado por humanos e outros predadores, mas ainda " -"lutará seameaçado, eo Cataclismo tornou-o mais destemido que o normal." #. ~ Description for coyote #: lang/json/MONSTER_from_json.py @@ -56006,13 +49823,10 @@ msgid "" " wolf, it is an opportunistic feeder and prefers to hunt smaller and weaker " "prey, but is typically timid around humans." msgstr "" -" O coiote nordestino, um grande caçador de cães. Mais tímido que um lobo,éum" -" alimentador oportunista e prefere caçar presas menores e maisfracas, mas é " -"tipicamente tímido em relação aos humanos." #: lang/json/MONSTER_from_json.py msgid "fawn" -msgstr "fulvo" +msgstr "" #. ~ Description for fawn #: lang/json/MONSTER_from_json.py @@ -56020,13 +49834,10 @@ msgid "" "A juvenile northern woodland white-tailed deer, a quick and strong grazing " "animal. Favored prey of coyotes, wolves, and giant spider mutants." msgstr "" -" Um cervo branco-atado da floresta do norte juvenil, um animal " -"depastagemrápido e forte. Presas favorecidas de coiotes, lobos e mutantes " -"dearanhasgigantes." #: lang/json/MONSTER_from_json.py msgid "deer" -msgstr "veado" +msgstr "" #. ~ Description for deer #: lang/json/MONSTER_from_json.py @@ -56034,12 +49845,10 @@ msgid "" "The northern woodland white-tailed deer, a quick and strong grazing animal." " Favored prey of coyotes, wolves, and giant spider mutants." msgstr "" -" O veado de cauda branca do norte da floresta, um animal de pastoreiorápidoe" -" forte. Presas favorecidas de coiotes, lobos e mutantes dearanhasgigantes." #: lang/json/MONSTER_from_json.py msgid "Labrador mutt" -msgstr "Labrador mutt" +msgstr "" #. ~ Description for Labrador mutt #: lang/json/MONSTER_from_json.py @@ -56048,13 +49857,10 @@ msgid "" "it likely still instinctually trusts humans, it's probably far from domestic" " by now." msgstr "" -" Este cão de raças mestiças Labrador, uma vez em média, claramente " -"setornouferoz. Embora provavelmente ainda instintivamente confie emhumanos, " -"provavelmente está longe de ser doméstico agora." #: lang/json/MONSTER_from_json.py msgid "Labrador puppy" -msgstr "Filhote de labrador" +msgstr "" #. ~ Description for Labrador puppy #: lang/json/MONSTER_from_json.py @@ -56065,7 +49871,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "bulldog" -msgstr "buldogue" +msgstr "" #. ~ Description for bulldog #: lang/json/MONSTER_from_json.py @@ -56073,12 +49879,10 @@ msgid "" "The American bulldog is a hardy, well built dog, that seems suited for " "surviving the apocalypse." msgstr "" -" O bulldog americano é um cão resistente e bem construído, quepareceadequado" -" para sobreviver ao apocalipse." #: lang/json/MONSTER_from_json.py msgid "bulldog puppy" -msgstr "filhote de cachorro do buldogue" +msgstr "" #. ~ Description for bulldog puppy #: lang/json/MONSTER_from_json.py @@ -56089,7 +49893,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "pit bull mix" -msgstr "mistura de pit bull" +msgstr "" #. ~ Description for pit bull mix #: lang/json/MONSTER_from_json.py @@ -56102,7 +49906,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "pit bull puppy" -msgstr "filhote de pitbull" +msgstr "" #. ~ Description for pit bull puppy #: lang/json/MONSTER_from_json.py @@ -56113,7 +49917,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "beagle" -msgstr "beagle" +msgstr "" #. ~ Description for beagle #: lang/json/MONSTER_from_json.py @@ -56121,12 +49925,10 @@ msgid "" "An adorable beagle that has managed to survive the apocalypse. Being agile " "and small, they are difficult to shoot at. Generally attacks in packs." msgstr "" -" Um adorável beagle que conseguiu sobreviver ao apocalipse. Sendo " -"ágeisepequenos, eles são difíceis de atirar. Geralmente ataca em pacotes." #: lang/json/MONSTER_from_json.py msgid "beagle puppy" -msgstr "cachorro beagle" +msgstr "" #. ~ Description for beagle puppy #: lang/json/MONSTER_from_json.py @@ -56137,7 +49939,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "border collie" -msgstr "border collie" +msgstr "" #. ~ Description for border collie #: lang/json/MONSTER_from_json.py @@ -56149,7 +49951,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "border collie puppy" -msgstr "filhote de cachorro border collie" +msgstr "" #. ~ Description for border collie puppy #: lang/json/MONSTER_from_json.py @@ -56160,7 +49962,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "boxer mastiff" -msgstr "mastim boxer" +msgstr "" #. ~ Description for boxer mastiff #: lang/json/MONSTER_from_json.py @@ -56168,12 +49970,10 @@ msgid "" "An ordinary breed full of affection, the boxer mastiff doesn't otherwise " "stand out amongst other dogs with its capabilities." msgstr "" -" Uma raça comum cheia de afeto, o mastim boxer não se destaca entre " -"osoutroscães com suas capacidades." #: lang/json/MONSTER_from_json.py msgid "boxer puppy" -msgstr "filhote de boxer" +msgstr "" #. ~ Description for boxer puppy #: lang/json/MONSTER_from_json.py @@ -56183,7 +49983,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Chihuahua" -msgstr "Chihuahua" +msgstr "" #. ~ Description for Chihuahua #: lang/json/MONSTER_from_json.py @@ -56194,7 +49994,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Chihuahua puppy" -msgstr "Filhote de chihuahua" +msgstr "" #. ~ Description for Chihuahua puppy #: lang/json/MONSTER_from_json.py @@ -56205,7 +50005,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dachshund" -msgstr "dachshund" +msgstr "" #. ~ Description for dachshund #: lang/json/MONSTER_from_json.py @@ -56217,7 +50017,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dachshund puppy" -msgstr "cachorro dachshund" +msgstr "" #. ~ Description for dachshund puppy #: lang/json/MONSTER_from_json.py @@ -56228,7 +50028,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "German shepherd" -msgstr "pastor alemão" +msgstr "" #. ~ Description for German shepherd #: lang/json/MONSTER_from_json.py @@ -56236,12 +50036,10 @@ msgid "" "The original K-9 breed. An easy to train and great attack dog that will " "also defend its owner to the death, however they don't work well in packs." msgstr "" -" A raça K-9 original. Um cão de ataque fácil de treinar e ótimo quetambémirá" -" defender seu dono até a morte, porém eles não funcionam bem empacotes." #: lang/json/MONSTER_from_json.py msgid "German shepherd puppy" -msgstr "Filhote de pastor alemão" +msgstr "" #. ~ Description for German shepherd puppy #: lang/json/MONSTER_from_json.py @@ -56252,7 +50050,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Great Pyrenees" -msgstr "Grandes Pirineus" +msgstr "" #. ~ Description for Great Pyrenees #: lang/json/MONSTER_from_json.py @@ -56261,13 +50059,10 @@ msgid "" "coat. Originally bred to deter wolves and other predators, now faced with " "protecting livestock from shambling hordes of undead." msgstr "" -" Uma raça grande e poderosa, os Grandes Pirineus têm um bonito egrossocasaco" -" branco. Originalmente criado para dissuadir lobos eoutrospredadores, agora " -"enfrentava a proteção do gado contra as hordas demortos-vivos." #: lang/json/MONSTER_from_json.py msgid "Great Pyrenees puppy" -msgstr "Filhote de cachorro dos grandes Pyrenees" +msgstr "" #. ~ Description for Great Pyrenees puppy #: lang/json/MONSTER_from_json.py @@ -56278,7 +50073,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "rottweiler" -msgstr "Rottweiler" +msgstr "" #. ~ Description for rottweiler #: lang/json/MONSTER_from_json.py @@ -56287,13 +50082,10 @@ msgid "" "legion mastiffs. It's robust, vicious, and quite capable of mauling a human" " to death." msgstr "" -" Uma raça terrível para enfrentar selvagens, os Rottweilers " -"sãodescendentesdos mastins romanos da legião. É robusto, vicioso e capaz " -"deespancar umhumano até a morte." #: lang/json/MONSTER_from_json.py msgid "rottweiler puppy" -msgstr "filhote de rottweiler" +msgstr "" #. ~ Description for rottweiler puppy #: lang/json/MONSTER_from_json.py @@ -56304,7 +50096,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "cattle dog" -msgstr "cão de gado" +msgstr "" #. ~ Description for cattle dog #: lang/json/MONSTER_from_json.py @@ -56312,12 +50104,10 @@ 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 "" -" Uma raça ágil e robusta que é bem-vinda em qualquer fazenda, o cão " -"degadoaustraliano é adepto de saltar cercas e pastoreio de gado." #: lang/json/MONSTER_from_json.py msgid "cattle dog puppy" -msgstr "filhote de cachorro de gado" +msgstr "" #. ~ Description for cattle dog puppy #: lang/json/MONSTER_from_json.py @@ -56338,8 +50128,6 @@ msgid "" "A small omnivorous canine with an almost cat-like manner. It is a solitary " "hunter, and one of the only canids able to climb trees." msgstr "" -" foxUm pequeno canino onívoro com uma maneira quase felina. É " -"umcaçadorsolitário e um dos únicos canídeos capazes de subir em árvores." #. ~ Description for fox #: lang/json/MONSTER_from_json.py @@ -56347,12 +50135,10 @@ msgid "" "The red fox, an omnivorous canine and largest of the true foxes, it is a " "wily hunter with a combative, suspicious temperament." msgstr "" -" A raposa vermelha, um canino onívoro e a maior das raposas de verdade, " -"éumcaçador astuto com um temperamento combativo e suspeito." #: lang/json/MONSTER_from_json.py msgid "groundhog" -msgstr "marmota" +msgstr "" #. ~ Description for groundhog #: lang/json/MONSTER_from_json.py @@ -56360,12 +50146,10 @@ msgid "" "Also known as the woodchuck, this ground squirrel has no actual talent for " "chucking wood." msgstr "" -" Também conhecido como a marmota, este esquilo terrestre não tem " -"talentoparaa madeira." #: lang/json/MONSTER_from_json.py msgid "jackrabbit" -msgstr "jackrabbit" +msgstr "" #. ~ Description for jackrabbit #: lang/json/MONSTER_from_json.py @@ -56376,7 +50160,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "horse" -msgstr "cavalo" +msgstr "" #. ~ Description for horse #: lang/json/MONSTER_from_json.py @@ -56384,12 +50168,10 @@ msgid "" "A hooved grazing mammal with a mane of hair, a sweeping tail, and powerful-" "looking muscles." msgstr "" -" Um mamífero de pastoreio com uma cabeleira, uma cauda arrebatadoraemúsculos" -" de aparência poderosa." #: lang/json/MONSTER_from_json.py msgid "lemming" -msgstr "lemingue" +msgstr "" #. ~ Description for lemming #: lang/json/MONSTER_from_json.py @@ -56399,15 +50181,10 @@ msgid "" "popular belief, these creatures are not particularly hapless or suicidal, " "but they can eat themselves into scarcity within a few generations." msgstr "" -" O lêmure do norte do pântano, um roedor pequeno, " -"predominantementevegetariano que gasta sua vida na escuridão dos pântanos " -"ede outrospântanos. Ao contrário da crença popular, essas criaturas " -"nãosãoparticularmente infelizes ou suicidas, mas podem se transformar " -"emescassezdentro de algumas gerações." #: lang/json/MONSTER_from_json.py msgid "mink" -msgstr "vison" +msgstr "" #. ~ Description for mink #: lang/json/MONSTER_from_json.py @@ -56419,7 +50196,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "moose" -msgstr "alce" +msgstr "" #. ~ Description for moose #: lang/json/MONSTER_from_json.py @@ -56428,13 +50205,10 @@ msgid "" "aggressive unless angered, the mating season can make the bulls quite ill-" "tempered." msgstr "" -" O alce oriental, a maior espécie viva de cervo. Enquanto eles " -"nãosãoagressivos, a menos que a raiva, a época de acasalamento pode " -"fazerostouros bastante mal-humorados." #: lang/json/MONSTER_from_json.py msgid "muskrat" -msgstr "rato almiscarado" +msgstr "" #. ~ Description for muskrat #: lang/json/MONSTER_from_json.py @@ -56443,13 +50217,10 @@ msgid "" "the northern hemisphere. It marks its territory with a musky odor for which" " it is named." msgstr "" -" Um grande roedor onívoro com uma pele grossa e peluda, encontrado " -"emzonashúmidas em todo o hemisfério norte. Marca o seu território com " -"umodoralmiscarado para o qual é nomeado." #: lang/json/MONSTER_from_json.py msgid "gigantic naked mole-rat" -msgstr "rato-toupeira nua gigantesca" +msgstr "" #. ~ Description for gigantic naked mole-rat #: lang/json/MONSTER_from_json.py @@ -56463,7 +50234,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "opossum" -msgstr "gambá" +msgstr "" #. ~ Description for opossum #: lang/json/MONSTER_from_json.py @@ -56472,13 +50243,10 @@ msgid "" " About the size of a cat, it is hardy and adaptive, and a fairly common " "sight in urban areas." msgstr "" -" O gambá da Virgínia, um pequeno marsupial onívoro nativo da AméricadoNorte." -" Sobre o tamanho de um gato, é resistente e adaptável, e umavisãobastante " -"comum em áreas urbanas." #: lang/json/MONSTER_from_json.py msgid "otter" -msgstr "lontra" +msgstr "" #. ~ Description for otter #: lang/json/MONSTER_from_json.py @@ -56491,7 +50259,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "piglet" -msgstr "leitão" +msgstr "" #. ~ Description for piglet #. ~ Description for pig @@ -56500,16 +50268,14 @@ msgid "" "A domesticated omnivore descended from the wild boar, intelligent and " "inquisitive. Left to its own devices, it has gone feral." msgstr "" -" Um onívoro domesticado descende do javali, inteligente einquisitivo. " -"Deixada à própria sorte, ficou feroz." #: lang/json/MONSTER_from_json.py msgid "pig" -msgstr "porco" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "rabbit" -msgstr "Coelho" +msgstr "" #. ~ Description for rabbit #: lang/json/MONSTER_from_json.py @@ -56517,12 +50283,10 @@ msgid "" "A small mammal with a cute wiggling nose, cotton tail, and made of delicious" " flesh." msgstr "" -" Um pequeno mamífero com um nariz bonito, rabo de algodão e feito " -"decarnedeliciosa." #: lang/json/MONSTER_from_json.py msgid "raccoon" -msgstr "guaxinim" +msgstr "" #. ~ Description for raccoon #: lang/json/MONSTER_from_json.py @@ -56531,13 +50295,10 @@ msgid "" "and facial markings. It is resourceful and agile enough to open sealed " "containers with its paws." msgstr "" -" Um pequeno mamífero nativo da América do Norte, distinto por " -"suaspatashábeis e marcas faciais. É engenhoso e ágil o suficiente " -"paraabrirrecipientes selados com suas patas." #: lang/json/MONSTER_from_json.py msgid "rat king" -msgstr "rei do rato" +msgstr "" #. ~ Description for rat king #: lang/json/MONSTER_from_json.py @@ -56545,12 +50306,10 @@ msgid "" "A towering swarm of mutated rats, their tails knotted together in a filthy " "mass. A fetid stench flows from its filthy presence." msgstr "" -" Um enorme enxame de ratos mutantes, suas caudas amarradas juntas emumamassa" -" imunda. Um fedor fétido flui de sua presença imunda." #: lang/json/MONSTER_from_json.py msgid "sewer rat" -msgstr "rato de esgoto" +msgstr "" #. ~ Description for sewer rat #: lang/json/MONSTER_from_json.py @@ -56558,8 +50317,6 @@ msgid "" "A worm-tailed rodent with long whiskers and beady eyes. The way it squeaks " "makes it sound... hungry." msgstr "" -" Um roedor de cauda de verme com longos bigodes e olhos redondos. " -"Amaneiracomo ela faz chiar faz parecer ... com fome." #: lang/json/MONSTER_from_json.py msgid "lamb" @@ -56591,7 +50348,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "squirrel" -msgstr "esquilo" +msgstr "" #. ~ Description for squirrel #: lang/json/MONSTER_from_json.py @@ -56600,10 +50357,6 @@ msgid "" "the branches of trees. A skittish varmint with an expression of unwavering " "austerity, it is the mortal enemy of cat and dog alike." msgstr "" -" Um pequeno roedor granívoro com uma longa cauda peluda, muitas " -"vezesvistocorrendo entre os galhos das árvores. Um varmint arisco com " -"umaexpressãode austeridade inabalável, é o inimigo mortal de gato e " -"cachorro." #. ~ Description for squirrel #: lang/json/MONSTER_from_json.py @@ -56612,13 +50365,10 @@ msgid "" "clever and cute, and hunted by nearly everything in the woods with a taste " "for meat." msgstr "" -" Um minúsculo roedor oportunista com uma longa cauda peluda. O esquilo- " -"pinheiro é inteligente e fofo, e caçado por quase tudo na floresta " -"comumgosto pela carne." #: lang/json/MONSTER_from_json.py msgid "weasel" -msgstr "doninha" +msgstr "" #. ~ Description for weasel #: lang/json/MONSTER_from_json.py @@ -56627,9 +50377,6 @@ msgid "" "across the continent. It forms its den in small burrows, preferring to " "occupy the nesting holes of its prey." msgstr "" -" A doninha de cauda longa, um predador pequeno, mas onipresente, " -"cujoalcancese estende por todo o continente. Forma seu covil em " -"pequenastocas, preferindo ocupar os buracos de nidificação de suas presas." #: lang/json/MONSTER_from_json.py msgid "wolf" @@ -56644,9 +50391,6 @@ msgid "" "successfully reintroduced and their numbers reached record highs in the " "decade before the Cataclysm. Lucky you." msgstr "" -" Um predador astuto de wolfA, uma vez extinto na área da Nova Inglaterra, " -"olobo foi reintroduzido com sucesso e seu número atingiu recordes " -"nadécadaanterior ao Cataclismo. Sortudo." #: lang/json/MONSTER_from_json.py msgid "marloss zealot" @@ -56668,7 +50412,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "laser turret" -msgstr "torre laser" +msgstr "" #. ~ Description for laser turret #: lang/json/MONSTER_from_json.py @@ -56677,13 +50421,10 @@ msgid "" "of the art revolving laser cannon system with three barrels that charge from" " solar cells embedded in its hull." msgstr "" -" O TX-5LR Cerberus é um upgrade para seus predecessores. Ele possuiumsistema" -" de canhão laser revolvendo com três barris que cobram a partirdecélulas " -"solares incorporadas ao casco." #: lang/json/MONSTER_from_json.py msgid "antimateriel turret" -msgstr "torre antimateriel" +msgstr "" #. ~ Description for antimateriel turret #: lang/json/MONSTER_from_json.py @@ -56693,15 +50434,10 @@ msgid "" "been kept under extremely tight control, so as to itself maintain extremely " "tight control of its area. And then the Cataclysm struck." msgstr "" -" Interdictor T-107A1 da Leadworks LLC, um fuzil " -"antimateriel.50BMGautomatizado. Credited com evitar tentativas incontáveis " -"do carro-bombardeio, foi mantido sempre sob o controle extremamente " -"apertado, parasemanter o controle extremamente apertado de sua área. E então" -" oCataclismoatingiu." #: lang/json/MONSTER_from_json.py msgid "milspec turret" -msgstr "torre milspec" +msgstr "" #. ~ Description for milspec turret #: lang/json/MONSTER_from_json.py @@ -56709,34 +50445,29 @@ msgid "" "Leadworks LLC's T-4A1 Sentry. It features improved firmware over General " "Atomics' TX-1 9x19mm model and an automated M4 carbine." msgstr "" -" Sentinela T-4A1 da Leadworks LLC. Possui firmware aprimorado em " -"relaçãoaomodelo TX-1 9x19mm da General Atomics e uma carabina M4 " -"automatizada." #: lang/json/MONSTER_from_json.py msgid "debug monster" -msgstr "monstro de depuração" +msgstr "" #. ~ Description for debug monster #: lang/json/MONSTER_from_json.py msgid "This monster exists only for testing purposes." -msgstr "Este monstro existe apenas para fins de teste." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "albino penguin" -msgstr "pinguim albino" +msgstr "" #. ~ Description for albino penguin #: lang/json/MONSTER_from_json.py msgid "" "Eight-feet-tall ghastly white penguins. Placid unless otherwise provoked." msgstr "" -" Pinguins brancos horríveis de oito pés de altura. Placid salvo " -"provocadodeoutra forma." #: lang/json/MONSTER_from_json.py msgid "alpha razorclaw" -msgstr "navalha alfa" +msgstr "" #. ~ Description for alpha razorclaw #: lang/json/MONSTER_from_json.py @@ -56744,12 +50475,10 @@ msgid "" "A blood red, gigantic razorclaw. Its sword like pincers serve as the " "keepers of the nest." msgstr "" -" Um vermelho sangue, gigantesco razorclaw. Sua espada, como pinças, " -"servecomo guardiões do ninho." #: lang/json/MONSTER_from_json.py msgid "amigara horror" -msgstr "amigo horror" +msgstr "" #. ~ Description for amigara horror #: lang/json/MONSTER_from_json.py @@ -56757,13 +50486,10 @@ msgid "" "A hellish, vaguely humanoid horror, two stories tall. Its face is " "grotesquely stretched out, its limbs deformed to unrecognizable outgrowths." msgstr "" -" Um horror infernal, vagamente humanóide, dois andares de altura. " -"Seurostoestá grotescamente esticado, seus membros deformados " -"porconseqüênciasirreconhecíveis." #: lang/json/MONSTER_from_json.py msgid "bat" -msgstr "um" +msgstr "" #. ~ Description for bat #: lang/json/MONSTER_from_json.py @@ -56772,14 +50498,10 @@ msgid "" " in caves and other hollows, and uses a form of echolocation to aerially " "navigate through tricky terrain at rapid speeds." msgstr "" -" Um dos morcegos vespertinos, uma família de mamíferos alados " -"quecomeminsetos. Ele se esconde em cavernas e outras cavidades e usa uma " -"formadeecolocalização para navegar aereamente em terrenos difíceis " -"emvelocidadesrápidas." #: lang/json/MONSTER_from_json.py msgid "scarred zombie" -msgstr "zumbi cicatrizado" +msgstr "" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py @@ -56805,17 +50527,10 @@ msgid "" "presence makes the hair on the back of your neck stand up in nameless " "horror." msgstr "" -" corpo em brancoEsta é uma forma de criatura changeling não " -"natural;suaaparência é uma zombaria branda da forma humana. Sem rosto e " -"pálido, seurosto repugnante é ainda mais inquietante devido à falta de " -"olhosecaracterísticas distintivas, exceto por uma boca perfeitamente " -"redonda. Nuae trêmula, quase parece lamentável, mas pelo jeito que a " -"suapresençasobrenatural faz o cabelo na parte de trás do seu pescoço ficar " -"emhorrorinominável." #: lang/json/MONSTER_from_json.py msgid "blob" -msgstr "blob" +msgstr "" #. ~ Description for blob #: lang/json/MONSTER_from_json.py @@ -56823,12 +50538,10 @@ msgid "" "A black blob of viscous goo, oozing across the ground like a glob of living " "oil." msgstr "" -" Uma mancha negra de gosma viscosa, escorrendo pelo chão como um globodeóleo" -" vivo." #: lang/json/MONSTER_from_json.py msgid "brain blob" -msgstr "bolha cerebral" +msgstr "" #. ~ Description for brain blob #: lang/json/MONSTER_from_json.py @@ -56836,12 +50549,10 @@ msgid "" "A gigantic black blob of viscous goo, oozing across the ground like a glob " "of living oil. Other blobs seem to swarm around it." msgstr "" -" Uma gigantesca bolha preta de gosma viscosa, escorrendo pelo chão " -"comoumglobo de óleo vivo. Outras gotas parecem enxamear em torno dele." #: lang/json/MONSTER_from_json.py msgid "big blob" -msgstr "grande bolha" +msgstr "" #. ~ Description for big blob #: lang/json/MONSTER_from_json.py @@ -56849,12 +50560,10 @@ msgid "" "A large black blob of viscous goo, oozing across the ground like a glob of " "living oil." msgstr "" -" Uma grande mancha preta de gosma viscosa, escorrendo pelo chão como " -"umglobode óleo vivo." #: lang/json/MONSTER_from_json.py msgid "small blob" -msgstr "pequena mancha" +msgstr "" #. ~ Description for small blob #: lang/json/MONSTER_from_json.py @@ -56862,12 +50571,10 @@ msgid "" "A small black blob of viscous goo, oozing across the ground like a glob of " "living oil." msgstr "" -" Uma pequena mancha preta de gosma viscosa, escorrendo pelo chão comoumglobo" -" de óleo vivo." #: lang/json/MONSTER_from_json.py msgid "blood sacrifice" -msgstr "sacrifício de sangue" +msgstr "" #. ~ Description for blood sacrifice #: lang/json/MONSTER_from_json.py @@ -56876,13 +50583,10 @@ msgid "" "chained to the altar, the putrescent flays of its peeled skin quivering like" " so much flotsam upon a murky pond." msgstr "" -" Um corpo humano sujo, uma vez vivo. Torturado até a morte há muitotempo, " -"ele permanece acorrentado ao altar, os flocos putrescentes de " -"suapeledescascada tremendo como tantos destroços em um lago escuro." #: lang/json/MONSTER_from_json.py msgid "boomer" -msgstr "boomer" +msgstr "" #. ~ Description for boomer #: lang/json/MONSTER_from_json.py @@ -56890,9 +50594,6 @@ msgid "" "A rotund human body, bloated beyond belief and layered in rolls of fat. It " "emits a horrible odor, and a putrid pink sludge dribbles from its mouth." msgstr "" -" Um corpo humano rotundo, inchado além da crença e mergulhado em " -"rolosdegordura. Emite um odor horrível, e uma lama rosa podre escorre de " -"suaboca." #: lang/json/MONSTER_from_json.py msgid "gasoline zombie" @@ -56907,7 +50608,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal boomer" -msgstr "boomer fungoso" +msgstr "" #. ~ Description for fungal boomer #: lang/json/MONSTER_from_json.py @@ -56915,12 +50616,10 @@ msgid "" "A rotund and bloated human body with pasty, fungus-ridden flesh. Its mouth " "drips with a frothing gray sludge." msgstr "" -" Um corpo humano rotundo e inchado com carne pastosa, coberta de fungos. " -"Suaboca goteja com uma lama cinza espumosa." #: lang/json/MONSTER_from_json.py msgid "huge boomer" -msgstr "boomer enorme" +msgstr "" #. ~ Description for huge boomer #: lang/json/MONSTER_from_json.py @@ -56929,13 +50628,10 @@ msgid "" "solidified. The bile dribbling from its mouth also appears to have " "changed..." msgstr "" -" Este boomer, normalmente inchado e pronto para explodir, fortaleceu- " -"seesolidificou-se. A bílis driblando de sua boca também parece ter mudado " -"..." #: lang/json/MONSTER_from_json.py msgid "breather" -msgstr "respiradouro" +msgstr "" #. ~ Description for breather #: lang/json/MONSTER_from_json.py @@ -56945,19 +50641,15 @@ msgid "" "and defenseless, it sits in place, swelling and collapsing upon itself as it" " breathes." msgstr "" -" Isto é algum tipo de saco de carne rosa sobrenatural; úmida e " -"sulcadacomveias, é de outra forma sem características " -"exterioresdiscerníveis. Aparentemente imóvel e indefeso, ele fica no lugar, " -"inchando ecolapsandosobre si mesmo enquanto respira." #. ~ Description for breather #: lang/json/MONSTER_from_json.py msgid "A weird mass of immobile pink goo. It seems to breathe." -msgstr "Uma estranha massa de gosma rosa imóvel. Parece respirar." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "broken cyborg" -msgstr "cyborg quebrado" +msgstr "" #. ~ Description for broken cyborg #: lang/json/MONSTER_from_json.py @@ -56967,10 +50659,6 @@ msgid "" "rotting. This cyborg moves erratically and has a confused and deranged look" " in its eyes." msgstr "" -" Um corpo de robô com a cabeça de um humano. Todos os tipos de " -"fiosedispositivos eletrônicos são implantados em sua cabeça. Manchas " -"depeleparecem doentes ou apodrecem. Este cyborg se move de forma irregular " -"etemum olhar confuso e demente em seus olhos." #: lang/json/MONSTER_from_json.py msgid "prototype cyborg" @@ -56987,7 +50675,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "charred nightmare" -msgstr "pesadelo carbonizado" +msgstr "" #. ~ Description for charred nightmare #: lang/json/MONSTER_from_json.py @@ -56995,12 +50683,10 @@ msgid "" "Intense radiation has spurred a unique form of necrosis and regeneration, it" " is impossible to tell if this creature was ever human." msgstr "" -" A radiação intensa estimulou uma forma única de necrose e " -"regeneração,éimpossível dizer se essa criatura era humana." #: lang/json/MONSTER_from_json.py msgid "chicken walker" -msgstr "caminhante de galinha" +msgstr "" #. ~ Description for chicken walker #: lang/json/MONSTER_from_json.py @@ -57025,7 +50711,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "police bot" -msgstr "bot policial" +msgstr "" #. ~ Description for police bot #: lang/json/MONSTER_from_json.py @@ -57035,14 +50721,10 @@ msgid "" "it maintains its programmed pursuit of law and order, propelled on a trio of" " omni wheels." msgstr "" -" Um dos muitos modelos de robôs policiais blindados empregados pouco " -"antesdocolapso da civilização. Movido a energia solar como muitos outros " -"robôs, elemantém sua busca programada de lei e ordem, impulsionada por um " -"trioderodas omni." #: lang/json/MONSTER_from_json.py msgid "crawler" -msgstr "rastejante" +msgstr "" #. ~ Description for crawler #: lang/json/MONSTER_from_json.py @@ -57050,12 +50732,10 @@ msgid "" "A conglomeration of human parts fused together in a horrible mishmash of " "function, slowly dragging its eldritch body across the ground." msgstr "" -" Um conglomerado de partes humanas fundidas em uma mistura horríveldefunção," -" lentamente arrastando seu corpo de eldritch pelo chão." #: lang/json/MONSTER_from_json.py msgid "dark wyrm" -msgstr "ancião escuro" +msgstr "" #. ~ Description for dark wyrm #: lang/json/MONSTER_from_json.py @@ -57064,13 +50744,10 @@ msgid "" "lined with dagger-like teeth, and its flesh is slick with bubbling blue " "slime." msgstr "" -" Um enorme verme mutante encontrado no subsolo. Tem uma boca redonda " -"echeiade dentes semelhantes a adagas, e sua carne está escorregadia de " -"gosmaazulborbulhante." #: lang/json/MONSTER_from_json.py msgid "wraith" -msgstr "aparição" +msgstr "" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py @@ -57081,7 +50758,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "dementia" -msgstr "demência" +msgstr "" #. ~ Description for dementia #: lang/json/MONSTER_from_json.py @@ -57089,12 +50766,10 @@ msgid "" "A crazed individual, the bloody scars on the side of its shaved head suggest" " some sort of partial lobotomy" msgstr "" -" Um indivíduo enlouquecido, as cicatrizes sangrentas no lado de " -"suacabeçaraspada sugerem algum tipo de lobotomia parcial" #: lang/json/MONSTER_from_json.py msgid "skeletal dog" -msgstr "cão esquelético" +msgstr "" #. ~ Description for skeletal dog #: lang/json/MONSTER_from_json.py @@ -57104,14 +50779,10 @@ msgid "" "to be controlled by a net of veins and sinews which pulse with glistening " "black goo." msgstr "" -" Este canino outrora eliminou toda a sua pele, revelando uma carapaçadeossos" -" e costelas fundidos. Desprovido inteiramente de carne, estatúnicacurta " -"parece ser controlada por uma rede de veias e tendões quepulsam comgosma " -"preta brilhante." #: lang/json/MONSTER_from_json.py msgid "dog" -msgstr "cão" +msgstr "" #. ~ Description for dog #: lang/json/MONSTER_from_json.py @@ -57119,12 +50790,10 @@ msgid "" "A domesticated mongrel of the canine persuasion. In the absence of human " "society, it has turned feral. You feel a sudden urge to destroy it." msgstr "" -" Um mestiço domesticado da persuasão canina. Na ausência da sociedadehumana," -" tornou-se feroz. Você sente uma vontade súbita de destruí- lo." #: lang/json/MONSTER_from_json.py msgid "Z-9" -msgstr "Z-9" +msgstr "" #. ~ Description for Z-9 #: lang/json/MONSTER_from_json.py @@ -57132,13 +50801,10 @@ 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 "" -" Uma versão zumbificada de um dos cães pastor alemão usado na " -"aplicaçãodalei. Seu corpo deformado é envolto em um cinto de proteção " -"Kevlar." #: lang/json/MONSTER_from_json.py msgid "rot-weiler" -msgstr "vermelho-aldeia" +msgstr "" #. ~ Description for rot-weiler #: lang/json/MONSTER_from_json.py @@ -57149,7 +50815,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "eyebot" -msgstr "eyebot" +msgstr "" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py @@ -57177,7 +50843,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "flaming eye" -msgstr "olho flamejante" +msgstr "" #. ~ Description for flaming eye #: lang/json/MONSTER_from_json.py @@ -57189,17 +50855,10 @@ msgid "" "unearthly presence filling you with dread at the prospect of falling under " "its baleful gaze." msgstr "" -" Um enorme globo ocular desincorporado do tamanho de uma pessoa, " -"voandopeloar através de alguma agência desconhecida. Envolto em uma " -"chamaazulbruxuleante e não natural, possui uma íris amarela brilhante com " -"umapupilaentreaberta como a de um gato e trilha um conjunto de " -"mechasnegrasagitando-se lentamente enquanto vagueia; sua " -"presençasobrenaturalenchendo-o de pavor com a perspectiva de cair sob o " -"olharperverso." #: lang/json/MONSTER_from_json.py msgid "flesh angel" -msgstr "anjo da carne" +msgstr "" #. ~ Description for flesh angel #: lang/json/MONSTER_from_json.py @@ -57207,12 +50866,10 @@ msgid "" "A tall and slender man lacking skin and any normalcy of countenance. Wings " "of muscle curl forth from its back and a third eye dominates the forehead." msgstr "" -" Um homem alto e esbelto, sem pele e qualquer normalidade de semblante. " -"Asasdo músculo se curvam para trás e um terceiro olho domina a testa." #: lang/json/MONSTER_from_json.py msgid "flying polyp" -msgstr "pólipo voador" +msgstr "" #. ~ Description for flying polyp #: lang/json/MONSTER_from_json.py @@ -57224,7 +50881,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "fungal blossom" -msgstr "flor fúngica" +msgstr "" #. ~ Description for fungal blossom #: lang/json/MONSTER_from_json.py @@ -57232,12 +50889,10 @@ msgid "" "A broad fungus, looking much like a glowing blue sunflower. It appears to " "emit finer spores than the typical fungal emission." msgstr "" -" Um fungo amplo, muito parecido com um girassol azul brilhante. " -"Pareceemitiresporos mais finos do que a emissão típica de fungos." #: lang/json/MONSTER_from_json.py msgid "fungal hedgerow" -msgstr "sebe fúngica" +msgstr "" #. ~ Description for fungal hedgerow #: lang/json/MONSTER_from_json.py @@ -57245,23 +50900,20 @@ msgid "" "Looking at first glance like a dull gray privet, this \"hedge\" is really a " "mass of barbed fungal tendrils, defending the fungal tower." msgstr "" -" Olhando à primeira vista como um ligustro cinzento maçante, " -"este\"hedge\\érealmente uma massa de gavinhas fúngicas, defendendo a torre " -"fúngica." #: lang/json/MONSTER_from_json.py msgid "fungal tendril" -msgstr "tendão fúngico" +msgstr "" #. ~ Description for fungal tendril #: lang/json/MONSTER_from_json.py msgid "A long and delicate-looking tendril with a sharp tip." -msgstr "Uma gavinha longa e delicada com uma ponta afiada." +msgstr "" #: lang/json/MONSTER_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py msgid "fungal wall" -msgstr "parede fúngica" +msgstr "" #. ~ Description for fungal wall #: lang/json/MONSTER_from_json.py @@ -57269,13 +50921,10 @@ msgid "" "A veritable wall of fungus, grown as a natural defense by the fungal spire." " New spores erupt from the surface every few seconds." msgstr "" -" Uma verdadeira parede de fungos, cultivada como uma defesa " -"naturalpelopináculo fúngico. Novos esporos surgem da superfície a " -"cadapoucossegundos." #: lang/json/MONSTER_from_json.py msgid "fungaloid" -msgstr "fungoide" +msgstr "" #. ~ Description for fungaloid #: lang/json/MONSTER_from_json.py @@ -57284,14 +50933,10 @@ msgid "" "Spores are periodically expelled from its gills, and a few tendrils extend " "from the base, allowing mobility and some basic means of defense." msgstr "" -" Um fungo branco pálido, um talo cinza carnudo apoiando uma flor no topo. " -"Osesporos são periodicamente expulsos de suas guelras, e alguns " -"filamentosseestendem desde a base, permitindo mobilidade e alguns meios " -"básicosdedefesa." #: lang/json/MONSTER_from_json.py msgid "fungal spire" -msgstr "pináculo fúngico" +msgstr "" #. ~ Description for fungal spire #: lang/json/MONSTER_from_json.py @@ -57299,12 +50944,10 @@ msgid "" "An enormous fungal spire, towering over the ground. It pulsates slowly, " "continuously growing new defenses." msgstr "" -" Um enorme pináculo fúngico, elevando-se sobre o chão. Ele pulsalentamente, " -"continuamente crescendo novas defesas." #: lang/json/MONSTER_from_json.py msgid "giant fungal blossom" -msgstr "flor fúngica gigante" +msgstr "" #. ~ Description for giant fungal blossom #: lang/json/MONSTER_from_json.py @@ -57312,12 +50955,10 @@ msgid "" "An immense fungal blossom, towering over its surroundings. It pulses with a" " soft blue glow, continuously pumping its spores into the air." msgstr "" -" Uma imensa flor de fungo, elevando-se sobre os seus arredores. Pulsos " -"comumbrilho azul suave, continuamente bombeando seus esporos no ar." #: lang/json/MONSTER_from_json.py lang/json/overmap_terrain_from_json.py msgid "fungal tower" -msgstr "torre fúngica" +msgstr "" #. ~ Description for fungal tower #: lang/json/MONSTER_from_json.py @@ -57328,15 +50969,10 @@ msgid "" "noticeable movement creating frequent gaps, it's tough to get a solid shot " "on the thing." msgstr "" -" Uma enorme torre de fungos. Em uma inspeção mais minuciosa, sua " -"capaéapoiada por MUITOS filetes de fungos de várias espessuras, " -"emergindodeainda mais tentáculos eriçados ao nível do solo. Entre essa " -"redundânciaeseu movimento notável criando freqüentes lacunas, é difícil " -"conseguirumaboa chance na coisa." #: lang/json/MONSTER_from_json.py msgid "fungal sporeling" -msgstr "afastamento de fungos" +msgstr "" #. ~ Description for fungal sporeling #: lang/json/MONSTER_from_json.py @@ -57345,13 +50981,10 @@ msgid "" "from its thorned and leathery exterior, and it moves about faster than the " "larger fungaloids." msgstr "" -" Um pedúnculo fúngico com vários pés de altura. Dois tentáculos " -"deaspectocruel se estendem de seu exterior espinhoso e coriácea, e se " -"movemaisrápido que os fungos maiores." #: lang/json/MONSTER_from_json.py msgid "amoebic mold" -msgstr "molde amebico" +msgstr "" #. ~ Description for amoebic mold #: lang/json/MONSTER_from_json.py @@ -57359,22 +50992,20 @@ msgid "" "A formless slime mold the size of a cow. Crusty bits of cytoplasm fall away" " as it oozes across the ground." msgstr "" -" Um lodo sem forma do tamanho de uma vaca. Pedaços duros de " -"citoplasmacaemenquanto escorre pelo chão." #: lang/json/MONSTER_from_json.py msgid "generator" -msgstr "gerador" +msgstr "" #. ~ Description for generator #: lang/json/MONSTER_from_json.py msgid "" "Your precious generator, noisily humming away. Defend it at all costs!" -msgstr "Seu gerador precioso, ruidosamente zumbindo. Defenda-a a todo custo!" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "giant crayfish" -msgstr "lagostim gigante" +msgstr "" #. ~ Description for giant crayfish #: lang/json/MONSTER_from_json.py @@ -57382,12 +51013,10 @@ msgid "" "A mutant, terrestrial variety of the signal crayfish, this massive " "crustacean resembles a humongous lobster." msgstr "" -" Uma variedade mutante e terrestre do lagostim sinal, este " -"enormecrustáceoassemelha-se a uma enorme lagosta." #: lang/json/MONSTER_from_json.py msgid "gozu" -msgstr "Gozi" +msgstr "" #. ~ Description for gozu #: lang/json/MONSTER_from_json.py @@ -57399,16 +51028,10 @@ msgid "" "white slobber down its chest. Its mere presence fills you with an " "unfathomable dread." msgstr "" -" Isso é algum tipo de cruzamento antinatural entre um touro e umhomem. " -"Bastante diferente do minotauro da lenda, possui uma cabeça de tourobrancae " -"desgrenhada em um corpo humano que, de outra forma, não é digno denota. " -"Vestida com meias caídas e shorts de jóquei manchados, ela grunhe efunga, " -"babando em seu peito com mechas de baba branca. Sua mera presença oenchede " -"um temor insondável." #: lang/json/MONSTER_from_json.py msgid "graboid" -msgstr "agarrador" +msgstr "" #. ~ Description for graboid #: lang/json/MONSTER_from_json.py @@ -57417,14 +51040,10 @@ msgid "" "opens to reveal hundreds of writhing tongues with razor sharp edges. It " "keeps most of its enormous body hidden underground." msgstr "" -" Um animal monstruoso do tamanho de um caminhão semi com uma " -"bocatripartidaque se abre para revelar centenas de línguas contorcidas " -"combordasafiadas. Ele mantém a maior parte do seu enorme corpo escondido " -"nosubsolo." #: lang/json/MONSTER_from_json.py msgid "gracken" -msgstr "gracken" +msgstr "" #. ~ Description for gracken #: lang/json/MONSTER_from_json.py @@ -57436,44 +51055,37 @@ msgid "" "rapidly as to appear a little more than a black blur of claws. Gazing upon " "its disturbing form fills you with an unspeakable terror." msgstr "" -" Isso é alguma forma de monstruosidade eldritch; um negro rude com pelelisa," -" oleosa e desagradável que se curva para dentro um do outro. Alta emagra, " -"assombras se agarram anormalmente à sua forma humanóide " -"vagamentedefinidaenquanto se arrastava, suas mãos se contorcendo e " -"espasmando tãorapidamenteque pareciam um pouco mais do que um borrão negro " -"de garras. Contemplar suaforma perturbadora lhe enche um terror " -"indescritível." #: lang/json/MONSTER_from_json.py msgid "half worm" -msgstr "meio verme" +msgstr "" #. ~ Description for half worm #: lang/json/MONSTER_from_json.py msgid "A squiggling severed portion of a wounded giant worm." -msgstr "Uma porção retorcida de um verme gigante ferido." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "your mother" -msgstr "sua mãe" +msgstr "" #. ~ Description for your mother #: lang/json/MONSTER_from_json.py msgid "Mom?" -msgstr "Mãe?" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "evil multi-cooker" -msgstr "multi-panela malvada" +msgstr "" #. ~ Description for evil multi-cooker #: lang/json/MONSTER_from_json.py msgid "The multi-cooker's got a mind of its own! Look out!" -msgstr "O multi-fogão tem uma mente própria! Tenha cuidado!" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "cleaner bot" -msgstr "bot mais limpo" +msgstr "" #. ~ Description for cleaner bot #: lang/json/MONSTER_from_json.py @@ -57481,12 +51093,10 @@ msgid "" "The Ford Sanitron, a utility robot designed for cleaning up waste material " "in hazardous conditions." msgstr "" -" O Ford Sanitron, um robô utilitário projetado para limpar " -"resíduosemcondições perigosas." #: lang/json/MONSTER_from_json.py msgid "tentacle dog" -msgstr "cão tentáculo" +msgstr "" #. ~ Description for tentacle dog #: lang/json/MONSTER_from_json.py @@ -57494,17 +51104,15 @@ msgid "" "A dog's body with a mass of ropey, black tentacles reaching out from its " "head." msgstr "" -" O corpo de um cachorro com uma massa de tentáculos pretos " -"egrossosestendendo-se da cabeça." #: lang/json/MONSTER_from_json.py msgid "hologram" -msgstr "holograma" +msgstr "" #. ~ Description for hologram #: lang/json/MONSTER_from_json.py msgid "An image made from light, nearly identical to the real deal." -msgstr "Uma imagem feita da luz, quase idêntica ao real." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "homunculus" @@ -57518,12 +51126,10 @@ msgid "" "A pale hairless man with an impressive athletic physique. Its lidless eyes " "are totally black, and seeping with blood." msgstr "" -" homunculusUm homem sem pêlos pálido com um físico atléticoimpressionante. " -"Seus olhos sem pálpebras são totalmente negros e seinfiltram de sangue." #: lang/json/MONSTER_from_json.py msgid "human snail" -msgstr "caracol humano" +msgstr "" #. ~ Description for human snail #: lang/json/MONSTER_from_json.py @@ -57531,12 +51137,10 @@ msgid "" "An enormous fleshy snail, with an oddly human face. Eyestalks protrude from" " where the eyes should be." msgstr "" -" Um enorme caracol carnudo, com um rosto estranhamente humano. Oseyestalksse" -" projetam de onde os olhos deveriam estar." #: lang/json/MONSTER_from_json.py msgid "hunting horror" -msgstr "horror de caça" +msgstr "" #. ~ Description for hunting horror #: lang/json/MONSTER_from_json.py @@ -57546,15 +51150,10 @@ msgid "" "with the aid of black rubbery wings of monstrous dimensions. Its form " "writhes and changes before your eyes, filling you with unnameable horror." msgstr "" -" Esta é uma espécie de grande criatura viperina, possuidora de " -"umacabeçacuriosamente distorcida e enormes apêndices com garras. Ela " -"sesustentaparcialmente com o auxílio de asas pretas e emborrachadas " -"dedimensõesmonstruosas. Sua forma se contorce e muda diante de seus olhos, " -"enchendo-ocom horror inominável." #: lang/json/MONSTER_from_json.py msgid "irradiated wanderer" -msgstr "andarilho irradiado" +msgstr "" #. ~ Description for irradiated wanderer #: lang/json/MONSTER_from_json.py @@ -57562,9 +51161,6 @@ msgid "" "This rotting corpse seeps a glowing ooze from its lesions. A strange " "tattered jumpsuit marks it as an oddity across the wasteland." msgstr "" -" Este cadáver apodrecendo infiltra um limo brilhante de suas lesões. " -"Umestranho macacão esfarrapado marca isso como uma esquisitice em " -"todooterreno baldio." #: lang/json/MONSTER_from_json.py msgid "fleshy shambler" @@ -57592,7 +51188,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "jabberwock" -msgstr "jabberwock" +msgstr "" #. ~ Description for jabberwock #: lang/json/MONSTER_from_json.py @@ -57601,13 +51197,10 @@ 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 "" -" Uma fusão pútrida de partes do corpo de humanos e outras criaturas " -"sefundiunesta aberração da carne. Os olhos de todas as cabeças se " -"movemrapidamentee as bocas formam um coro de gritos de gemido." #: lang/json/MONSTER_from_json.py msgid "kreck" -msgstr "Kreck" +msgstr "" #. ~ Description for kreck #: lang/json/MONSTER_from_json.py @@ -57620,17 +51213,10 @@ msgid "" " of your perceptions in a fashion that awakens ancient nameless terrors in " "the back of your mind" msgstr "" -" Esta é uma forma de cão de outro mundo. Com uma aparência magra efaminta, " -"sua carne vermelha torcida é esticada com força em sua " -"estruturaangulardisforme. Loping grotescamente junto, seu pescoço " -"incomumente longoseestende para a frente, sua cabeça de caveira perto do " -"chão enquantofarejasua presa. Sua impureza parcialmente velada por alguma " -"força arcana, parecequase entrar e sair de suas percepções de uma forma que " -"despertaantigosterrores sem nome no fundo de sua mente." #: lang/json/MONSTER_from_json.py msgid "mi-go" -msgstr "mi-go" +msgstr "" #. ~ Description for mi-go #: lang/json/MONSTER_from_json.py @@ -57641,16 +51227,10 @@ msgid "" "pyramid-shaped head bristles with numerous wavering antennae, and simply " "gazing upon the unnatural beast fills you with primordial dread." msgstr "" -" Esta é uma criatura alienígena de origem incerta. Seu corpo rosa " -"informeteminúmeros conjuntos de apêndices emparelhados de função " -"desconhecida, eumpar de asas membranosas e nervuradas que parecem ser " -"completamenteinúteis. Sua cabeça estranha, vagamente em forma de pirâmide, " -"eriça-se comnumerosasantenas oscilantes, e simplesmente contemplar a fera " -"não naturallhe enche omedo primordial." #: lang/json/MONSTER_from_json.py msgid "miner bot" -msgstr "minas bem" +msgstr "" #. ~ Description for miner bot #: lang/json/MONSTER_from_json.py @@ -57658,12 +51238,10 @@ msgid "" "A snake-like, segmented robot built to tunnel into the ground and detonate " "landmines." msgstr "" -" Um robô segmentado, semelhante a uma cobra, construído para escavar o " -"soloedetonar as minas terrestres." #: lang/json/MONSTER_from_json.py msgid "cyclopean" -msgstr "ciclópico" +msgstr "" #. ~ Description for cyclopean #: lang/json/MONSTER_from_json.py @@ -57671,21 +51249,19 @@ msgid "" "A relatively humanoid mutant with purple hair and a grapefruit-sized " "bloodshot eye." msgstr "" -" Um mutante relativamente humanóide com cabelo roxo e um olho " -"injetadodetamanho de grapefruit." #: lang/json/MONSTER_from_json.py msgid "slimespring" -msgstr "slimespring" +msgstr "" #. ~ Description for slimespring #: lang/json/MONSTER_from_json.py msgid "A familiar-looking blob of goo. It sprouts the occasional eyestalk." -msgstr "Uma mancha familiar de gosma. Brota o eyestalk ocasional." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "razorclaw" -msgstr "razorclaw" +msgstr "" #. ~ Description for razorclaw #: lang/json/MONSTER_from_json.py @@ -57694,14 +51270,10 @@ msgid "" "most horrible of shrieks. Often spotted near shipwrecks or other dark damp " "places, which it uses as nesting grounds." msgstr "" -" Um crustáceo do tamanho de um homem vestido com uma quitina de ferro, " -"capazde emitir os gritos mais horríveis. Muitas vezes visto perto " -"denaufrágiosou outros lugares escuros e úmidos, que ele usa como local " -"denidificação." #: lang/json/MONSTER_from_json.py msgid "riot control bot" -msgstr "bot de controle de tumulto" +msgstr "" #. ~ Description for riot control bot #: lang/json/MONSTER_from_json.py @@ -57711,15 +51283,10 @@ msgid "" "best-known weapon, it carries a blinding flash and a low-powered stungun for" " self-defense--in addition to its supply of electronic handcuffs." msgstr "" -" Bot não-violenta de controle de distúrbios. Projetado para " -"suprimirtumultose fazer prisões em massa dos participantes. Embora seu gás " -"derelaxamentoseja de longe sua arma mais conhecida, ele carrega um " -"flashofuscante e umstungun de baixa potência para autodefesa - além de " -"seusuprimento dealgemas eletrônicas." #: lang/json/MONSTER_from_json.py msgid "shadow" -msgstr "sombra" +msgstr "" #. ~ Description for shadow #: lang/json/MONSTER_from_json.py @@ -57729,15 +51296,10 @@ msgid "" "whispers softly in the back of your mind. Strange intrusive thoughts " "accompany the quiet murmur, awakening your most horrific memories and fears." msgstr "" -" Esta é uma sombra animada. Parecendo nada mais do que uma mancha " -"errantedesombra normal, atrai sua atenção pela forma como se move " -"sutilmenteesussurra suavemente no fundo de sua mente. Pensamentos " -"intrusivosestranhosacompanham o silencioso murmúrio, despertando suas " -"maisterríveislembranças e medos." #: lang/json/MONSTER_from_json.py msgid "shadow snake" -msgstr "Cobra Sombra" +msgstr "" #. ~ Description for shadow snake #: lang/json/MONSTER_from_json.py @@ -57746,9 +51308,6 @@ msgid "" "Translucent and dark, it glides silently across the floor, wriggling and " "flexing as it moves." msgstr "" -" Esta é uma sombra animada na forma de uma cobra longa e sinuosa. " -"Translúcidoe escuro, desliza silenciosamente pelo chão, contorcendo-se " -"eflexionando-seenquanto se move." #: lang/json/MONSTER_from_json.py lang/json/map_extra_from_json.py msgid "Shia LaBeouf" @@ -57764,12 +51323,10 @@ msgid "" "eating all the bodies, \n" "actual cannibal Shia LaBeouf." msgstr "" -" Shia LaBeoufLiving na floresta, \n" -" kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk.\n" #: lang/json/MONSTER_from_json.py msgid "shoggoth" -msgstr "shoggoth" +msgstr "" #. ~ Description for shoggoth #: lang/json/MONSTER_from_json.py @@ -57778,13 +51335,10 @@ msgid "" " seemingly at will. All over its body are eyes that form and disappear. It" " looks at you with malice." msgstr "" -" Uma bolha protoplasmática gigantesca, constantemente remodelando, " -"formandonovos pseudópodes aparentemente à vontade. Todo o seu corpo sãoolhos" -" quese formam e desaparecem. Olha para você com malícia." #: lang/json/MONSTER_from_json.py msgid "skeleton" -msgstr "esqueleto" +msgstr "" #. ~ Description for skeleton #: lang/json/MONSTER_from_json.py @@ -57794,10 +51348,6 @@ msgid "" "from its joints as it shambles aimlessly, with sickening crackling sounds " "filling the air around it." msgstr "" -" Um monstruoso crescimento de tecido ossificado substituiu a pele " -"podredessezumbi por uma armadura orgânica de osso denso. Grandes aglomerados" -" degosmapreta escoam de suas articulações enquanto se agitam sem rumo, " -"comsonscrepitantes doentios enchendo o ar ao redor." #: lang/json/MONSTER_from_json.py msgid "skeletal brute" @@ -57812,7 +51362,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "sludge crawler" -msgstr "rastreador de lodo" +msgstr "" #. ~ Description for sludge crawler #: lang/json/MONSTER_from_json.py @@ -57821,13 +51371,10 @@ msgid "" "black body glistens as it oozes its way along the ground. Eye stalks " "occasionally push their way out of the oily mass and look around." msgstr "" -" Uma criatura parecida com uma lesma, oito pés de comprimento e a " -"larguradeuma geladeira. Seu corpo negro brilha enquanto escoa pelo chão. " -"Hastesdosolhos ocasionalmente saem da massa oleosa e olham ao redor." #: lang/json/MONSTER_from_json.py msgid "giant slug" -msgstr "lesma gigante" +msgstr "" #. ~ Description for giant slug #: lang/json/MONSTER_from_json.py @@ -57835,22 +51382,19 @@ msgid "" "A mutated leopard slug, as wide as a golf cart. Venom dripping from its " "fanged maw, it slithers ahead slowly, leaving a trail of glistening slime." msgstr "" -" Uma lesma leopardo mutante, tão larga quanto um carrinho de golfe. " -"Venenoescorrendo de sua boca presa, desliza à frente lentamente, " -"deixandoumrastro de lodo brilhante." #: lang/json/MONSTER_from_json.py msgid "spore cloud" -msgstr "nuvem de esporo" +msgstr "" #. ~ Description for spore cloud #: lang/json/MONSTER_from_json.py msgid "A mass of spores the size of a balled fist, wafting around in the air." -msgstr "Uma massa de esporos do tamanho de um punho fechado, flutuando no ar." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Beagle Mini-Tank UGV" -msgstr "Mini-tanque Beagle UGV" +msgstr "" #. ~ Description for Beagle Mini-Tank UGV #: lang/json/MONSTER_from_json.py @@ -57862,7 +51406,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "thing" -msgstr "coisa" +msgstr "" #. ~ Description for thing #: lang/json/MONSTER_from_json.py @@ -57870,8 +51414,6 @@ msgid "" "An amorphous black creature, detaching and sprouting tentacles without any " "apparent pause." msgstr "" -" Uma criatura negra amorfa, destacando e germinando tentáculos " -"semnenhumapausa aparente." #: lang/json/MONSTER_from_json.py msgid "tripod" @@ -57884,12 +51426,10 @@ msgid "" "it has a trio of spiked retractable cables and a flamethrower mounted on its" " head." msgstr "" -" O Honda Regnal, um robô alto andando em três pernas de aranha. Paraarmas, " -"tem um trio de cabos retráteis e um lança-chamas montado em suacabeça." #: lang/json/MONSTER_from_json.py msgid "milspec searchlight" -msgstr "holofote milspec" +msgstr "" #. ~ Description for milspec searchlight #: lang/json/MONSTER_from_json.py @@ -57897,8 +51437,6 @@ msgid "" "Three high-powered searchlights with automated search AI and mounting, " "continually seeking targets." msgstr "" -" Três holofotes de alta potência com busca automatizada " -"deinteligênciaartificial e montagem, buscando continuamente alvos." #: lang/json/MONSTER_from_json.py msgid "twisted body" @@ -57912,9 +51450,6 @@ msgid "" "A human body, but with its limbs, neck, and hair impossibly twisted. It " "clambers around swiftly, making awful screeching sounds." msgstr "" -" corpo torcidoUm corpo humano, mas com seus membros, pescoço " -"ecabeloimpossivelmente torcidos. Ele se agita rapidamente, " -"fazendosonsestridentes horríveis." #: lang/json/MONSTER_from_json.py msgid "vortex" @@ -57927,12 +51462,10 @@ msgstr[1] "" msgid "" "A twisting spot in the air, with some kind of morphing mass at its center." msgstr "" -" vortexUm ponto de torção no ar, com algum tipo de massa de morphing " -"noseucentro." #: lang/json/MONSTER_from_json.py msgid "giant worm" -msgstr "verme gigante" +msgstr "" #. ~ Description for giant worm #: lang/json/MONSTER_from_json.py @@ -57941,13 +51474,10 @@ msgid "" "possesses a large fanged mouth and a long slender body that comes up to your" " shoulder, with even more surely hiding underground." msgstr "" -" Uma criatura enorme e mutante que pode ter sido um nightcrawler. " -"Possuiumagrande boca com presas e um corpo longo e esbelto que chega até " -"oseuombro, com mais segurança ainda se escondendo no subsolo." #: lang/json/MONSTER_from_json.py msgid "yugg" -msgstr "yugg" +msgstr "" #. ~ Description for yugg #: lang/json/MONSTER_from_json.py @@ -57959,16 +51489,10 @@ msgid "" " of its putrid whitish visage is enough to loose prehistoric terrors within " "the darkest recesses of your mind." msgstr "" -" Esta é uma enorme criatura parecida a um verme. Sua cabeça pálida " -"eachatadagoteja um muco oleoso ao romper o chão, à procura de presas. " -"Suaboca rosadaabre e fecha, revelando longas presas brilhando com fios " -"desaliva, quedeixam manchas ardentes onde quer que escorram. A mera visão " -"desua pálidafisionomia esbranquiçada é suficiente para soltar terrores pré- " -"históricosnos mais escuros recessos de sua mente." #: lang/json/MONSTER_from_json.py msgid "grim howler" -msgstr "uivador sombrio" +msgstr "" #. ~ Description for grim howler #: lang/json/MONSTER_from_json.py @@ -57976,12 +51500,10 @@ msgid "" "A zombified wolf. Its mouth oozes with a black substance, coating the " "vicious-looking white fangs." msgstr "" -" Um lobo zumbificado. Sua boca transborda com uma substância negra, " -"cobrindoas presas brancas de aspecto cruel." #: lang/json/MONSTER_from_json.py msgid "zombear" -msgstr "zumbir" +msgstr "" #. ~ Description for zombear #: lang/json/MONSTER_from_json.py @@ -57989,12 +51511,10 @@ msgid "" "This black bear's eyes ooze with dark, oily fluid, and its flesh is torn and" " scarred. It shuffles as it walks." msgstr "" -" Os olhos deste urso negro escoam com fluido escuro e oleoso e sua " -"carneestárasgada e marcada. Ele embaralha enquanto anda." #: lang/json/MONSTER_from_json.py lang/json/snippet_from_json.py msgid "zombie" -msgstr "zumbi" +msgstr "" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py @@ -58005,7 +51525,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "acidic zombie" -msgstr "zumbi ácido" +msgstr "" #. ~ Description for acidic zombie #: lang/json/MONSTER_from_json.py @@ -58013,13 +51533,10 @@ msgid "" "A sickly-looking dead one. Its skin looks especially thin, with a sticky, " "yellow fluid flowing through the clearly visible veins." msgstr "" -" Um morto de aparência doentia. Sua pele parece especialmente fina, " -"comumlíquido pegajoso e amarelo que flui através das veias " -"claramentevisíveis." #: lang/json/MONSTER_from_json.py msgid "slavering biter" -msgstr "mordidas de escravidão" +msgstr "" #. ~ Description for slavering biter #: lang/json/MONSTER_from_json.py @@ -58027,8 +51544,6 @@ msgid "" "A distorted and swollen human body. Its jaws have elongated into a " "crocodile like snout, dripping with foul smelling saliva." msgstr "" -" Um corpo humano distorcido e inchado. Suas mandíbulas se alongaram " -"emumcrocodilo como focinho, pingando saliva com mau cheiro." #: lang/json/MONSTER_from_json.py msgid "brainless zombie" @@ -58045,19 +51560,17 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie brute" -msgstr "zumbi cru" +msgstr "" #. ~ Description for zombie brute #: lang/json/MONSTER_from_json.py msgid "" "Its entire body bulges with distended muscles and swollen, festering wounds." msgstr "" -" Seu corpo inteiro incha com os músculos distendidos e inchados, " -"feridaspurulentas." #: lang/json/MONSTER_from_json.py msgid "zombie wrestler" -msgstr "lutador de zumbi" +msgstr "" #. ~ Description for zombie wrestler #: lang/json/MONSTER_from_json.py @@ -58065,12 +51578,10 @@ msgid "" "A slab of festering muscle the size of a well-toned bodybuilder. Seems " "eager to strangle the life from you." msgstr "" -" Um pedaço de músculo supurante do tamanho de um " -"fisiculturistabemtonificado. Parece ansioso para estrangular a vida de você." #: lang/json/MONSTER_from_json.py msgid "zombie nightstalker" -msgstr "zumbi nightstalker" +msgstr "" #. ~ Description for zombie nightstalker #: lang/json/MONSTER_from_json.py @@ -58078,12 +51589,10 @@ msgid "" "Somehow this brute hides in the dark like some kind of boogeyman. Very " "agile for such a large zombie." msgstr "" -" De alguma forma este bruto se esconde no escuro como um tipo de bicho- " -"papão. Muito ágil para um zumbi tão grande." #: lang/json/MONSTER_from_json.py msgid "shocker brute" -msgstr "brutamontes" +msgstr "" #. ~ Description for shocker brute #: lang/json/MONSTER_from_json.py @@ -58092,13 +51601,10 @@ msgid "" "'research'. Being near it, you can hear a slight humming, like that of an " "electrical transformer." msgstr "" -" Uma enorme fera coberta de cicatrizes visíveis do que você " -"podeimaginaré\"pesquisa\". Estando perto, você pode ouvir um leve zumbido, " -"comoo de umtransformador elétrico." #: lang/json/MONSTER_from_json.py msgid "incandescent husk" -msgstr "lembre-se incandescente" +msgstr "" #. ~ Description for incandescent husk #: lang/json/MONSTER_from_json.py @@ -58108,27 +51614,20 @@ msgid "" " a beating heart. It walks slowly and deliberately, the thunderstorm " "surrounding it eagerly jumping to anything conductive within its grasp." msgstr "" -" Este humano, uma vez, é visível apenas como uma silhueta brancabrilhanteque" -" você tem que apertar os olhos para enxergar, envolta em umcampocrepitante " -"de relâmpago que pulsa como um coração batendo. Ele andadevagare " -"deliberadamente, a tempestade em torno dele ansiosamente pulandoparaqualquer" -" coisa condutiva ao seu alcance." #: lang/json/MONSTER_from_json.py msgid "zombie cop" -msgstr "policial zumbi" +msgstr "" #. ~ Description for zombie cop #: lang/json/MONSTER_from_json.py msgid "" "A human body covered by a weather-beaten and badly damaged set of riot gear." msgstr "" -" Um corpo humano coberto por um conjunto de equipamentos anti- " -"motimmaltratado pelo tempo e muito danificado." #: lang/json/MONSTER_from_json.py msgid "corrosive zombie" -msgstr "zumbi corrosivo" +msgstr "" #. ~ Description for corrosive zombie #: lang/json/MONSTER_from_json.py @@ -58137,17 +51636,14 @@ msgid "" "itself together with semi-congealed acid all over its bloated body. It " "clumsily moves around, but attacks with a large reserve of acid." msgstr "" -" Este corpo inchado a proporções imensas, mas ainda consegue se " -"manterunidocom ácido semi-congelado em todo o seu corpo inchado. Ele " -"semovedesajeitadamente, mas ataca com uma grande reserva de ácido." #: lang/json/MONSTER_from_json.py msgid "The corrosive zombie spits a glob of acid!" -msgstr "O zumbi corrosivo cospe um globo de ácido!" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "crawling zombie" -msgstr "rastejando zumbi" +msgstr "" #. ~ Description for crawling zombie #: lang/json/MONSTER_from_json.py @@ -58155,12 +51651,10 @@ msgid "" "This human corpse drags itself along slowly with its arms. Its legs are " "damaged beyond repair." msgstr "" -" Este cadáver humano arrasta-se lentamente com os braços. Suas " -"pernasestãodanificadas além do reparo." #: lang/json/MONSTER_from_json.py msgid "zombie dancer" -msgstr "dançarino zumbi" +msgstr "" #. ~ Description for zombie dancer #: lang/json/MONSTER_from_json.py @@ -58172,16 +51666,10 @@ msgid "" "\n" "The dancer doesn't even notice you, it seems like something nearby is controlling it." msgstr "" -" O fedor mais horrível está no ar, \n" -" O funk de quarenta mil anos, \n" -" Esarcásticos carniçais de todos os túmulos, \n" -" Estão se aproximandoparaselar sua desgraça! \n" -" \n" -" A dançarina nem percebe você, parecealgopróximo está controlando isso.\n" #: lang/json/MONSTER_from_json.py msgid "zombie dog" -msgstr "cão zumbi" +msgstr "" #. ~ Description for zombie dog #: lang/json/MONSTER_from_json.py @@ -58189,8 +51677,6 @@ msgid "" "The deformed, animated corpse of a canine, a sinewy beast which can easily " "outpace its two-legged friends." msgstr "" -" O cadáver deformado e animado de um canino, uma besta vigorosa que pode " -"facilmente ultrapassar seus amigos de duas pernas." #: lang/json/MONSTER_from_json.py msgid "listener zombie" @@ -58207,17 +51693,16 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "shocker zombie" -msgstr "zumbi chocante" +msgstr "" #. ~ Description for shocker zombie #: lang/json/MONSTER_from_json.py msgid "A human body with pale blue flesh, crackling with electrical energy." msgstr "" -"Um corpo humano com carne azul-clara, crepitando com energia elétrica." #: lang/json/MONSTER_from_json.py msgid "fat zombie" -msgstr "zumbi gordo" +msgstr "" #. ~ Description for fat zombie #: lang/json/MONSTER_from_json.py @@ -58225,12 +51710,10 @@ msgid "" "Stumbling as it moves, this corpse of an overweight human regards its " "surroundings with an empty black gaze." msgstr "" -" Tropeçando enquanto se move, este cadáver de um humano com excesso " -"depesoconsidera seu entorno com um vazio olhar negro." #: lang/json/MONSTER_from_json.py msgid "fiend" -msgstr "demônio" +msgstr "" #. ~ Description for fiend #: lang/json/MONSTER_from_json.py @@ -58238,12 +51721,10 @@ msgid "" "Charred zombie with bony plates, spikes and protrusions. Moves stiffly, but" " swiftly." msgstr "" -" Zumbi carbonizado com placas ósseas, pontas e protuberâncias. Move- " -"serigidamente, mas rapidamente." #: lang/json/MONSTER_from_json.py msgid "firefighter zombie" -msgstr "zumbi bombeiro" +msgstr "" #. ~ Description for firefighter zombie #: lang/json/MONSTER_from_json.py @@ -58251,13 +51732,10 @@ msgid "" "A decaying human body clad in tattered firefighting gear. It staggers " "aimlessly, reeking of smoke and decay." msgstr "" -" Um corpo humano em decomposição vestido com equipamento de " -"combateaincêndios esfarrapado. Ele cambaleia sem rumo, cheirando a " -"fumaçaedecadência." #: lang/json/MONSTER_from_json.py msgid "fungal zombie" -msgstr "zumbi fúngico" +msgstr "" #. ~ Description for fungal zombie #: lang/json/MONSTER_from_json.py @@ -58265,12 +51743,10 @@ msgid "" "Once human, fungal tendrils now sprout from its mouth, eyes, and other " "orifices, holding together a shambling mass of mold-covered flesh." msgstr "" -" Uma vez que os fios humanos, fungos, brotam agora de sua boca, olhoseoutros" -" orifícios, unindo uma massa trôpega de carne coberta de bolor." #: lang/json/MONSTER_from_json.py msgid "bloated zombie" -msgstr "zumbi inchado" +msgstr "" #. ~ Description for bloated zombie #: lang/json/MONSTER_from_json.py @@ -58279,13 +51755,10 @@ msgid "" "covered zombie looks like it could violently burst under the slightest of " "disturbances." msgstr "" -" Com sua pele cinzenta inchada a ponto de romper-se com o gás pútrido, " -"estecisto coberto de zumbis parece que poderia explodir violentamente " -"sobomenor dos distúrbios." #: lang/json/MONSTER_from_json.py msgid "grabber zombie" -msgstr "zumbi agarrador" +msgstr "" #. ~ Description for grabber zombie #: lang/json/MONSTER_from_json.py @@ -58293,13 +51766,10 @@ msgid "" "A deformed human body, once living. Its arms dangle from its sides like the" " limbs of some skinless ape, mindlessly groping at their surroundings." msgstr "" -" Um corpo humano deformado, antes vivo. Seus braços pendem de seus " -"ladoscomoos membros de algum macaco sem pele, tateando descuidadamente " -"aoredor." #: lang/json/MONSTER_from_json.py msgid "grappler zombie" -msgstr "zumbi de grappler" +msgstr "" #. ~ Description for grappler zombie #: lang/json/MONSTER_from_json.py @@ -58308,13 +51778,10 @@ msgid "" "It looks to almost have a hunch from the swollen back and shoulder muscles " "tearing though its skin." msgstr "" -" Um humanóide morto-vivo, seus braços alongados se arrastam pelochãoenquanto" -" se move. Parece quase ter um palpite das costas inchadas eosmúsculos do " -"ombro rasgando sua pele." #: lang/json/MONSTER_from_json.py msgid "hazmat zombie" -msgstr "zumbi hazmat" +msgstr "" #. ~ Description for hazmat zombie #: lang/json/MONSTER_from_json.py @@ -58322,12 +51789,10 @@ msgid "" "This zombie's face and body is completely covered by a protective suit. It " "wanders around, unsteadily." msgstr "" -" O rosto e o corpo deste zumbi estão completamente cobertos por um " -"trajedeproteção. Ele vagueia, instável." #: lang/json/MONSTER_from_json.py msgid "zombie hollow" -msgstr "cavidade de zumbi" +msgstr "" #. ~ Description for zombie hollow #: lang/json/MONSTER_from_json.py @@ -58338,16 +51803,10 @@ msgid "" "sharp black teeth. You get the feeling that the only human thing remaining " "is the skin, worn as one would wear clothes." msgstr "" -" Olhos negros ocos examinam os arredores enquanto o zumbi se estica " -"eseinclina de maneira que quem quer que o corpo original " -"tenhapertencidonunca pôde. A única coisa que parece sólida, neste corpo " -"flexívelde veiasnegras, são as fileiras de dentes negros afiados. Você tem " -"asensação deque a única coisa humana que resta é a pele, usada como seusasse" -" roupas." #: lang/json/MONSTER_from_json.py msgid "zombie hulk" -msgstr "Hulk zumbi" +msgstr "" #. ~ Description for zombie hulk #: lang/json/MONSTER_from_json.py @@ -58355,12 +51814,10 @@ msgid "" "A human body now swollen to the size of six men, with arms as wide as a " "trash can." msgstr "" -" Um corpo humano agora inchado até o tamanho de seis homens, com " -"braçostãolargos quanto uma lata de lixo." #: lang/json/MONSTER_from_json.py msgid "feral hunter" -msgstr "caçador feroz" +msgstr "" #. ~ Description for feral hunter #: lang/json/MONSTER_from_json.py @@ -58368,12 +51825,10 @@ msgid "" "This once-human body is barely recognizable, scrambling about on all fours, " "its nails and teeth both sharpened into dangerous looking spikes." msgstr "" -" Este corpo humano é quase irreconhecível, correndo de quatro, suas " -"unhasedentes afiados em pontas perigosas." #: lang/json/MONSTER_from_json.py msgid "Thriller" -msgstr "Suspense" +msgstr "" #. ~ Description for Thriller #: lang/json/MONSTER_from_json.py @@ -58383,13 +51838,10 @@ msgid "" "For no mere mortal can resist, \n" "The evil of the thriller." msgstr "" -" E apesar de lutar para se manter vivo, o seu corpo começa a tremer. \n" -" Porque nenhum mero mortal pode resistir, \n" -" O mal do thriller.\n" #: lang/json/MONSTER_from_json.py msgid "zombie snapper" -msgstr "caranga zumbi" +msgstr "" #. ~ Description for zombie snapper #: lang/json/MONSTER_from_json.py @@ -58397,12 +51849,10 @@ msgid "" "With a crocodile-like snout and rows of protruding teeth, this swimwear-clad" " zombie lurks in the water." msgstr "" -" Com um focinho de crocodilo e fileiras de dentes salientes, " -"essezumbivestido de trajes de banho se esconde na água." #: lang/json/MONSTER_from_json.py msgid "zombie master" -msgstr "mestre zumbi" +msgstr "" #. ~ Description for zombie master #: lang/json/MONSTER_from_json.py @@ -58413,16 +51863,10 @@ msgid "" "controlled. A feeling of danger permeates the air around it, and the light " "that falls on it seems somehow harsher and more glaring." msgstr "" -" Uma vez humano, seus traços se estreitaram, seus lábios se voltaram " -"paraumsorriso antinatural, revelando fileiras de dentes enegrecidos " -"sobseusgrandes e penetrantes olhos. Ele fica alto e seus movimentos " -"sãofluidos erigidamente controlados. Uma sensação de perigo permeia o ar " -"emtorno dele, e a luz que incide sobre ele parece de alguma forma mais dura " -"emaisofuscante." #: lang/json/MONSTER_from_json.py msgid "zombie necromancer" -msgstr "necromante zumbi" +msgstr "" #. ~ Description for zombie necromancer #: lang/json/MONSTER_from_json.py @@ -58432,14 +51876,10 @@ msgid "" "within your psyche, and even the air around it seems more sinister, somehow " "darker and more dangerous." msgstr "" -" Uma zombaria distorcida da forma humana, emaciada, com pele negra " -"eolhosvermelhos brilhantes. É de alguma forma doloroso olhar, " -"despertarmedosprofundos dentro de sua psique, e até mesmo o ar ao redor " -"parecemaissinistro, de alguma forma mais escuro e mais perigoso." #: lang/json/MONSTER_from_json.py msgid "festering boar" -msgstr "javali purulento" +msgstr "" #. ~ Description for festering boar #: lang/json/MONSTER_from_json.py @@ -58447,12 +51887,10 @@ msgid "" "A zombified omnivore descended from the wild boar. Now it's got black goo " "all over it, instead of mud." msgstr "" -" Um onívoro zumbificado desceu do javali. Agora tem goo preto por todaparte," -" em vez de lama." #: lang/json/MONSTER_from_json.py msgid "feral predator" -msgstr "predador feroz" +msgstr "" #. ~ Description for feral predator #: lang/json/MONSTER_from_json.py @@ -58462,13 +51900,10 @@ msgid "" "sharpened into fine points, and black ooze seeps out from cuts between its " "muscles." msgstr "" -" Com suas articulações em lugares e ângulos estranhos, essacriaturahumanóide" -" ronda a paisagem com velocidade surpreendente. Seusdentes ebraços são " -"afiados em pontas finas, e a lodo negro escapa doscortes entreos músculos." #: lang/json/MONSTER_from_json.py msgid "decayed zombie" -msgstr "zumbi decadente" +msgstr "" #. ~ Description for decayed zombie #: lang/json/MONSTER_from_json.py @@ -58476,12 +51911,10 @@ msgid "" "A once-dead human corpse. Its discolored swollen flesh is riddled with " "festering wounds and open sores." msgstr "" -" Um cadáver humano morto uma vez. Sua carne inchada descolorida é " -"crivadadeferidas supuradas e feridas abertas." #: lang/json/MONSTER_from_json.py msgid "feral runner" -msgstr "corredor feroz" +msgstr "" #. ~ Description for feral runner #: lang/json/MONSTER_from_json.py @@ -58489,12 +51922,10 @@ msgid "" "This recently-risen body moves quickly, darting its head back and forth and " "gnawing at its hands." msgstr "" -" Este corpo recém-levantado se move rapidamente, arremessando a " -"cabeçaparafrente e para trás e roendo suas mãos." #: lang/json/MONSTER_from_json.py msgid "scorched zombie" -msgstr "zumbi queimado" +msgstr "" #. ~ Description for scorched zombie #: lang/json/MONSTER_from_json.py @@ -58502,12 +51933,10 @@ msgid "" "Heavily burned zombie that still reeks of charred flesh. Its flesh has " "mended into a leathery shell." msgstr "" -" Zumbi extremamente queimado que ainda cheira a carne carbonizada. " -"Suacarnefoi remendada em uma casca de couro." #: lang/json/MONSTER_from_json.py msgid "screecher zombie" -msgstr "zombi screecher" +msgstr "" #. ~ Description for screecher zombie #: lang/json/MONSTER_from_json.py @@ -58515,12 +51944,10 @@ msgid "" "A thin corpse, its chest is swollen in what appears to be preparation. A " "thick black ooze drips from its open mouth." msgstr "" -" Um cadáver fino, seu peito está inchado no que parece ser uma preparação. " -"Umespesso lodo negro escorre de sua boca aberta." #: lang/json/MONSTER_from_json.py msgid "shady zombie" -msgstr "zumbi obscuro" +msgstr "" #. ~ Description for shady zombie #: lang/json/MONSTER_from_json.py @@ -58529,13 +51956,10 @@ msgid "" "repulsed to touch it. All you can make out is its shambling, human shaped " "outline." msgstr "" -" Uma sombra misteriosa envolve essa criatura, como se a própria " -"luzestivesserepelida demais para tocá-la. Tudo o que você pode ver é " -"ocontorno em formade humano." #: lang/json/MONSTER_from_json.py msgid "shrieker zombie" -msgstr "zombie do grito" +msgstr "" #. ~ Description for shrieker zombie #: lang/json/MONSTER_from_json.py @@ -58543,8 +51967,6 @@ msgid "" "An elongated human body with a swollen chest and a gaping hole where its jaw" " used to be." msgstr "" -" Um corpo humano alongado com um peito inchado e um buraco onde " -"amandíbulacostumava estar." #: lang/json/MONSTER_from_json.py msgid "skull zombie" @@ -58562,7 +51984,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "smoker zombie" -msgstr "fumante zumbi" +msgstr "" #. ~ Description for smoker zombie #: lang/json/MONSTER_from_json.py @@ -58570,12 +51992,10 @@ msgid "" "A blackened and twisted naked human body, strips of flesh hang from its " "body, and it emits a constant haze of thick black smoke." msgstr "" -" Um corpo humano nu enegrecido e torcido, tiras de carne pendem de seucorpo," -" e emite uma neblina constante de fumaça preta espessa." #: lang/json/MONSTER_from_json.py msgid "spitter zombie" -msgstr "zumbi cuspidor" +msgstr "" #. ~ Description for spitter zombie #: lang/json/MONSTER_from_json.py @@ -58584,13 +52004,10 @@ msgid "" "cheeks, most of its face is occupied by a puckered mouth. Its stomach is " "swollen and nearly translucent, with a sickly yellow tint." msgstr "" -" Um corpo humano encurvado, com os olhos erguidos na testa e " -"asbochechascaídas, a maior parte do rosto é ocupada por uma boca enrugada. " -"Seuestômago está inchado e quase translúcido, com um matiz amarelo doentio." #: lang/json/MONSTER_from_json.py msgid "survivor zombie" -msgstr "sobrevivente zumbi" +msgstr "" #. ~ Description for survivor zombie #: lang/json/MONSTER_from_json.py @@ -58598,13 +52015,10 @@ msgid "" "Still wearing the tattered remnants of improvised armor and weaponry, it is " "plain to see that this zombie was once a survivor like you." msgstr "" -" Ainda usando os restos esfarrapados de armaduras e armas " -"improvisadas,éfácil perceber que esse zumbi já foi um sobrevivente como " -"você." #: lang/json/MONSTER_from_json.py msgid "swimmer zombie" -msgstr "zumbi nadador" +msgstr "" #. ~ Description for swimmer zombie #: lang/json/MONSTER_from_json.py @@ -58612,12 +52026,10 @@ msgid "" "A slick and glistening human body. Its hands and feet are webbed, and it is" " clad in swimwear." msgstr "" -" Um corpo humano liso e cintilante. Suas mãos e pés estão presos, " -"eestávestido com roupas de banho." #: lang/json/MONSTER_from_json.py msgid "zombie technician" -msgstr "técnico de zumbis" +msgstr "" #. ~ Description for zombie technician #: lang/json/MONSTER_from_json.py @@ -58625,9 +52037,6 @@ msgid "" "Still wearing its work clothes and hardhat, this zombie likely used to work " "on power lines or other electrical equipment." msgstr "" -" Ainda usando suas roupas de trabalho e capacete de segurança, " -"essezumbicostumava trabalhar em linhas de energia ou outros " -"equipamentoselétricos." #: lang/json/MONSTER_from_json.py msgid "thorny shambler" @@ -58644,7 +52053,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "tough zombie" -msgstr "zumbi resistente" +msgstr "" #. ~ Description for tough zombie #: lang/json/MONSTER_from_json.py @@ -58652,8 +52061,6 @@ msgid "" "Once an athletic human, now a brutal monster. Its facial features are " "twisted into an expression of pure rage." msgstr "" -" Uma vez um humano atlético, agora um monstro brutal. " -"Suascaracterísticasfaciais são torcidas em uma expressão de raiva pura." #: lang/json/MONSTER_from_json.py msgid "zombeaver" @@ -58671,7 +52078,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "antlered horror" -msgstr "horror antler" +msgstr "" #. ~ Description for antlered horror #: lang/json/MONSTER_from_json.py @@ -58681,14 +52088,10 @@ msgid "" "purulent flesh where its skin has sloughed away, and its remaining fur is " "black and matted with necrotic discharge." msgstr "" -" Este alce outrora majestoso sucumbiu à infecção que está a matar omundo. " -"Brilhantes moscas-varejeiras verdes pululam as vastas manchassupuradas " -"dacarne purulenta onde sua pele se desprendeu, e sua pelerestante é preta " -"eemaranhada com descarga necrótica." #: lang/json/MONSTER_from_json.py msgid "decayed pouncer" -msgstr "pouncer decadente" +msgstr "" #. ~ Description for decayed pouncer #: lang/json/MONSTER_from_json.py @@ -58696,12 +52099,10 @@ msgid "" "An otherwise normal-looking cougar, except that its hind legs are swollen, " "and its eyes bulge with black goo." msgstr "" -" Um puma de aparência normal, exceto que suas patas traseiras estãoinchadase" -" seus olhos inchados de gosma preta." #: lang/json/MONSTER_from_json.py msgid "skeletal juggernaut" -msgstr "Juggernaut Esquelético" +msgstr "" #. ~ Description for skeletal juggernaut #: lang/json/MONSTER_from_json.py @@ -58711,10 +52112,6 @@ msgid "" "vulnerable, bones grew around its form to protect it - only, they kept " "growing. And growing. And growing." msgstr "" -" Este horrendo golem de ossos chapeados e carne deformada arrastaseusmembros" -" pesados e pontudos para trás como um fardo indesejado. Antigamentemoles e " -"vulneráveis, os ossos cresciam em torno de sua formapara protegê-los - " -"apenas eles continuavam crescendo. E crescendo. Ecrescendo." #: lang/json/MONSTER_from_json.py msgid "ancient red dragon" @@ -58756,19 +52153,17 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "centipede" -msgstr "centopéia" +msgstr "" #. ~ Description for centipede #: lang/json/MONSTER_from_json.py msgid "" "A predatory segmented arthropod with dozens of legs and a venomous bite." msgstr "" -" Um artrópode predatório segmentado com dezenas de pernas e " -"umapicadavenenosa." #: lang/json/MONSTER_from_json.py msgid "deer mouse" -msgstr "rato veado" +msgstr "" #. ~ Description for deer mouse #: lang/json/MONSTER_from_json.py @@ -58776,9 +52171,6 @@ msgid "" "The white-footed mouse, a prolific rodent with a white underbelly and a long" " fuzzy tail. A common sight in fields, forests, and research centers." msgstr "" -" O camundongo de patas brancas, um prolífico roedor com um ventre brancoeuma" -" longa cauda felpuda. Uma visão comum em campos, florestas e " -"centrosdepesquisa." #: lang/json/MONSTER_from_json.py msgid "dragonfly" @@ -58792,12 +52184,10 @@ msgid "" "A thin-bodied insectoid predator with a large wingspan and big compound " "eyes." msgstr "" -" libélulaUm predador de insecto de corpo fino com uma grande " -"envergaduraegrandes olhos compostos." #: lang/json/MONSTER_from_json.py msgid "bull frog" -msgstr "sapo de touro" +msgstr "" #. ~ Description for bull frog #: lang/json/MONSTER_from_json.py @@ -58805,12 +52195,10 @@ msgid "" "The American bullfrog, in its natural habitat. It feeds on insects, mice, " "lizards and any other living thing it can stuff down its gullet." msgstr "" -" A rã-touro americana, em seu habitat natural. Alimenta-se de insetos, " -"ratos, lagartos e qualquer outra coisa viva que possa encher sua garganta." #: lang/json/MONSTER_from_json.py msgid "mosquito" -msgstr "mosquito" +msgstr "" #. ~ Description for mosquito #: lang/json/MONSTER_from_json.py @@ -58818,12 +52206,10 @@ msgid "" "A blood-sucking fly with a needle-like proboscis. Its bite leaves behind " "itchy welts and can easily spread disease." msgstr "" -" Uma mosca sugadora de sangue com uma probóscide de agulha. Sua " -"mordidadeixamarcas de coceira e pode espalhar facilmente doenças." #: lang/json/MONSTER_from_json.py msgid "shrew" -msgstr "musaranho" +msgstr "" #. ~ Description for shrew #: lang/json/MONSTER_from_json.py @@ -58831,12 +52217,10 @@ msgid "" "The masked shrew, a mouse-like creature with a pointed, whiskery snout. It " "digs tunnels into the ground in search of bugs to eat." msgstr "" -" A megera mascarada, uma criatura parecida com um rato, com umfocinhopontudo" -" de batedor. Ele escava túneis no solo em busca de insetosparacomer." #: lang/json/MONSTER_from_json.py msgid "slug" -msgstr "lesma" +msgstr "" #. ~ Description for slug #: lang/json/MONSTER_from_json.py @@ -58845,13 +52229,10 @@ msgid "" "well as planted crops, and will attack and eat other slugs that cross its " "path." msgstr "" -" A lesma leopardo, um gastrópode onívoro. Ele consome matériaemdecomposição," -" bem como culturas plantadas, e vai atacar e comeroutraslesmas que cruzam " -"seu caminho." #: lang/json/MONSTER_from_json.py msgid "jumping spider" -msgstr "aranha saltadora" +msgstr "" #. ~ Description for jumping spider #: lang/json/MONSTER_from_json.py @@ -58860,13 +52241,10 @@ msgid "" "but leaps very quickly, appearing to move instantaneously from one spot to " "another." msgstr "" -" Uma pequena aranha com pernas dianteiras alongadas. Ele não " -"constróiteiasextensas, mas salta muito rapidamente, parecendo se " -"moverinstantaneamentede um ponto para outro." #: lang/json/MONSTER_from_json.py msgid "trapdoor spider" -msgstr "aranha alçapão" +msgstr "" #. ~ Description for trapdoor spider #: lang/json/MONSTER_from_json.py @@ -58874,12 +52252,10 @@ msgid "" "A midsized spider with a bulbous thorax. It creates a subterranean nest and" " lies in wait for prey to draw close enough for capture." msgstr "" -" Uma aranha de tamanho médio com um tórax bulboso. Cria um ninhosubterrâneoe" -" espera que a presa se aproxime o suficiente para sercapturada." #: lang/json/MONSTER_from_json.py msgid "black widow spider" -msgstr "Aranha viúva negra" +msgstr "" #. ~ Description for black widow spider #: lang/json/MONSTER_from_json.py @@ -58887,12 +52263,10 @@ msgid "" "An infamous spider with a characteristic red hourglass marking on its black " "carapace, known for its highly toxic bite." msgstr "" -" Uma aranha infame com uma característica ampulheta vermelha " -"marcandosuacarapaça negra, conhecida por sua picada altamente tóxica." #: lang/json/MONSTER_from_json.py msgid "wolf spider" -msgstr "Aranha lobo" +msgstr "" #. ~ Description for wolf spider #: lang/json/MONSTER_from_json.py @@ -58900,12 +52274,10 @@ msgid "" "A fairly large spider which tracks and catches prey through agility and " "stealth. Its bite can be irritating even to large animals." msgstr "" -" Uma aranha bastante grande que rastreia e captura presas atravésdeagilidade" -" e furtividade. Sua mordida pode ser irritante até mesmoparagrandes animais." #: lang/json/MONSTER_from_json.py msgid "wasp" -msgstr "vespa" +msgstr "" #. ~ Description for wasp #: lang/json/MONSTER_from_json.py @@ -58913,12 +52285,10 @@ msgid "" "A slender-bodied flying insect, with a painful sting. They can be somewhat " "aggressive if disturbed." msgstr "" -" Um inseto voador de corpo esguio, com uma picada dolorosa. Eles podem " -"serumpouco agressivos se perturbados." #: lang/json/MONSTER_from_json.py msgid "giant frog" -msgstr "sapo gigante" +msgstr "" #. ~ Description for giant frog #: lang/json/MONSTER_from_json.py @@ -58926,12 +52296,10 @@ msgid "" "A mutated bullfrog taller than you are. It stares with amber eyes as it " "considers the easiest way to swallow you whole." msgstr "" -" Um sapo-boi mutante mais alto que você. Ele olha com olhos de âmbar, " -"poisconsidera a maneira mais fácil de engolir você inteiro." #: lang/json/MONSTER_from_json.py msgid "sewer gator" -msgstr "gator de esgoto" +msgstr "" #. ~ Description for sewer gator #: lang/json/MONSTER_from_json.py @@ -58941,14 +52309,10 @@ msgid "" "large specimen doesn't look like it sees humans as anything other than a " "meal." msgstr "" -" No final do século 20, havia uma lenda urbana sobre jacarés " -"deestimaçãosendo lavados no vaso sanitário e crescendo até a idade adulta " -"nosesgotos. Este grande espécime não parece que vê os humanos como outra " -"coisasenãouma refeição." #: lang/json/MONSTER_from_json.py msgid "rattlesnake" -msgstr "cascavel" +msgstr "" #. ~ Description for rattlesnake #: lang/json/MONSTER_from_json.py @@ -58956,12 +52320,10 @@ msgid "" "The timber rattlesnake is the most venomous viper native to New England. " "Climatic changes have extended its range far into the north." msgstr "" -" A cascavel de madeira é a víbora mais venenosa nativa da Nova Inglaterra. " -"Asmudanças climáticas estenderam seu alcance até o norte." #: lang/json/MONSTER_from_json.py msgid "giant rattlesnake" -msgstr "cascavel gigante" +msgstr "" #. ~ Description for giant rattlesnake #: lang/json/MONSTER_from_json.py @@ -58970,10 +52332,6 @@ msgid "" " it isn't big enough to regard humans as potential prey, it is more " "aggressive and dangerous compared to a normal rattler." msgstr "" -" Uma cascavel madeireira mutante, cerca de três vezes maior que anorma. " -"Embora não seja grande o suficiente para considerar os seres humanoscomouma " -"presa em potencial, é mais agressivo e perigoso se comparado aumchocalho " -"normal." #: lang/json/MONSTER_from_json.py msgid "sewer snake" @@ -58986,23 +52344,19 @@ msgid "" "underground life. It swarms beneath the ground and is named for its habit " "of infesting sewer lines." msgstr "" -" Uma variedade mutante agressiva da serpente de verme, ficou amarelapálidade" -" sua vida subterrânea. Enxada sob o solo e é nomeado por seu " -"hábitodeinfestar linhas de esgoto." #: lang/json/MONSTER_from_json.py msgid "biollante sprig" -msgstr "raminho bicolor" +msgstr "" #. ~ Description for biollante sprig #: lang/json/MONSTER_from_json.py msgid "A short fat stalk with broad leaves and tiny flower buds." msgstr "" -" Um pedúnculo gordo curto com folhas largas e pequenos botões de flores." #: lang/json/MONSTER_from_json.py msgid "biollante sprout" -msgstr "broto bicolor" +msgstr "" #. ~ Description for biollante sprout #: lang/json/MONSTER_from_json.py @@ -59010,12 +52364,10 @@ msgid "" "A thick stalk that rises five feet from the ground and has heavy broad " "leaves at its base. Purple flower buds adorn the top." msgstr "" -" Um talo grosso que se eleva a um metro e meio do chão e tem " -"largasfolhasgrossas na base. Botões de flores roxas adornam o topo." #: lang/json/MONSTER_from_json.py msgid "biollante" -msgstr "Biollante" +msgstr "" #. ~ Description for biollante #: lang/json/MONSTER_from_json.py @@ -59023,12 +52375,10 @@ msgid "" "A drooped, quivering plant with a thick stalk adorned by a purple flower. " "Its petals are closed, and pulsate ominously." msgstr "" -" Uma planta caída e trêmula, com um talo grosso adornado por uma florroxa. " -"Suas pétalas estão fechadas e pulsam ameaçadoramente." #: lang/json/MONSTER_from_json.py msgid "creeper hub" -msgstr "hub trepadeira" +msgstr "" #. ~ Description for creeper hub #: lang/json/MONSTER_from_json.py @@ -59036,23 +52386,19 @@ msgid "" "A thick stalk, rooted to the ground. It rapidly sprouts thorny vines in all" " directions." msgstr "" -" Um caule grosso, enraizado no chão. Ele rapidamente brotaespinhosasvideiras" -" em todas as direções." #: lang/json/MONSTER_from_json.py msgid "creeper vine" -msgstr "trepadeira está chegando" +msgstr "" #. ~ Description for creeper vine #: lang/json/MONSTER_from_json.py msgid "A thorny vine, twisting wildly as it grows with incredible speed." msgstr "" -" Uma videira espinhosa, torcendo-se descontroladamente enquanto crescecomuma" -" velocidade incrível." #: lang/json/MONSTER_from_json.py msgid "triffid sprig" -msgstr "raminho de triffid" +msgstr "" #. ~ Description for triffid sprig #: lang/json/MONSTER_from_json.py @@ -59060,12 +52406,10 @@ msgid "" "A teeny-tiny triffid that has recently germinated. Like a house cat, you " "know it wants to eat you but it just can't figure out how." msgstr "" -" Um pequenino triffid que recentemente germinou. Como um gato doméstico, " -"vocêsabe que quer comer você, mas não consegue descobrir como." #: lang/json/MONSTER_from_json.py msgid "triffid sprout" -msgstr "broto triffid" +msgstr "" #. ~ Description for triffid sprout #: lang/json/MONSTER_from_json.py @@ -59073,12 +52417,10 @@ msgid "" "A small triffid, only a few feet tall. It has not yet developed bark, but " "its sting is still sharp and deadly." msgstr "" -" Um pequeno triffid, com apenas alguns metros de altura. Aindanãodesenvolveu" -" o latido, mas sua picada ainda é aguda e mortal." #: lang/json/MONSTER_from_json.py msgid "triffid" -msgstr "triffid" +msgstr "" #. ~ Description for triffid #: lang/json/MONSTER_from_json.py @@ -59087,13 +52429,10 @@ msgid "" "covered stalk supporting a flowery head with a paralyzing sting concealed " "within." msgstr "" -" Uma planta animada rasteira, crescendo tão alto quanto um alce. Tem " -"umúnicocaule coberto de casca que sustenta uma cabeça florida com " -"umapicadaparalisante oculta por dentro." #: lang/json/MONSTER_from_json.py msgid "triffid queen" -msgstr "rainha triffid" +msgstr "" #. ~ Description for triffid queen #: lang/json/MONSTER_from_json.py @@ -59102,13 +52441,10 @@ msgid "" "petals surrounded by a haze of spores, and two thick barbed vines stick out " "from the stems like wary harpoons." msgstr "" -" Um triffid pesado e particularmente arborescente. Tem " -"enormespétalasvermelhas cercadas por uma névoa de esporos, e duas " -"grossasvideirasfarpadas saem dos caules como arpões cautelosos." #: lang/json/MONSTER_from_json.py msgid "vine beast" -msgstr "vem besta" +msgstr "" #. ~ Description for vine beast #: lang/json/MONSTER_from_json.py @@ -59117,13 +52453,10 @@ msgid "" " speed. The tangle is thick enough that the center from which they grow is " "concealed." msgstr "" -" Uma massa animada de raízes e videiras, rastejando ao longo do solo " -"comumavelocidade alarmante. O emaranhado é espesso o suficiente para que " -"ocentrode onde eles crescem esteja oculto." #: lang/json/MONSTER_from_json.py msgid "fungal fighter" -msgstr "lutador fúngico" +msgstr "" #. ~ Description for fungal fighter #: lang/json/MONSTER_from_json.py @@ -59132,13 +52465,10 @@ msgid "" "its branches. The thorns carry a fungicidal compound with paralytic " "effects." msgstr "" -" Uma robusta planta lenhosa que pode cavar através do solo e " -"agitarespinhosde seus galhos. Os espinhos carregam um composto fungicida " -"comefeitosparalisantes." #: lang/json/MONSTER_from_json.py lang/json/overmap_terrain_from_json.py msgid "triffid heart" -msgstr "coração triffid" +msgstr "" #. ~ Description for triffid heart #: lang/json/MONSTER_from_json.py @@ -59146,12 +52476,10 @@ msgid "" "A knot of tubular roots, flowing with sap and beating like a heart. Strands" " of vascular tissue reach out to the surrounding root walls." msgstr "" -" Um nó de raízes tubulares, fluindo com seiva e batendo como um coração. " -"Fiosde tecido vascular alcançam as paredes das raízes circundantes." #: lang/json/MONSTER_from_json.py msgid "anklebiter" -msgstr "anklebiter" +msgstr "" #. ~ Description for anklebiter #: lang/json/MONSTER_from_json.py @@ -59159,9 +52487,6 @@ msgid "" "This horrifying little mutated wretch looks to have once been a child, but " "its massive gaping jaws are now far more suggestive of a predatory beast." msgstr "" -" Este miserável pequeno e miserável mutante parece ter sido uma criança, " -"massuas enormes mandíbulas escancaradas são agora muito mais sugestivas " -"deumafera predatória." #: lang/json/MONSTER_from_json.py msgid "zombie child" @@ -59176,9 +52501,6 @@ msgid "" "hungry look in its eyes. You'd be hard pressed to not feel like you were " "killing an actual child by putting it down." msgstr "" -" criança zumbi Era apenas uma criança, e pouco é diferente sobre issoagora, " -"além do olhar faminto em seus olhos. Você seria duramente pressionadoparanão" -" sentir como se estivesse matando uma criança real, colocando-aparabaixo." #: lang/json/MONSTER_from_json.py msgid "zombie kinderling" @@ -59193,13 +52515,10 @@ msgid "" "playground exercise. It does not need a face for you to feel bad about " "killing it." msgstr "" -" zumbi kinderlingUm minúsculo corpo carbonizado, pulando e chutando " -"esedebatendo em uma zombaria de exercícios no playground. Não precisa " -"deumrosto para você se sentir mal por matá-lo." #: lang/json/MONSTER_from_json.py msgid "creepy crawler" -msgstr "rastreador assustador" +msgstr "" #. ~ Description for creepy crawler #: lang/json/MONSTER_from_json.py @@ -59207,13 +52526,10 @@ msgid "" "What was once a child is now a mutant beast with blackened skin and massive " "eyes. This abomination's vile form makes mockery of its human origin." msgstr "" -" O que uma vez foi uma criança é agora uma fera mutante com pele " -"enegrecidaeolhos enormes. A forma vil desta abominação faz escárnio de " -"suaorigemhumana." #: lang/json/MONSTER_from_json.py msgid "shriekling" -msgstr "estridente" +msgstr "" #. ~ Description for shriekling #: lang/json/MONSTER_from_json.py @@ -59221,12 +52537,10 @@ msgid "" "This heavily mutated child zombie twitches and flails its limbs in painful " "looking spasms as it runs about." msgstr "" -" Este zumbi infantil altamente mutante se contorce e agita seus " -"membrosemespasmos doloridos enquanto corre." #: lang/json/MONSTER_from_json.py msgid "snotgobbler" -msgstr "snotgobbler" +msgstr "" #. ~ Description for snotgobbler #: lang/json/MONSTER_from_json.py @@ -59234,12 +52548,10 @@ msgid "" "This swollen, gooey looking mutant child looks bad, even for a zombie. " "Maybe that's why it seems to want a hug so badly." msgstr "" -" Essa criança mutante, grudenta e pegajosa, parece mal, mesmo para umzumbi. " -"Talvez seja por isso que parece querer tanto um abraço." #: lang/json/MONSTER_from_json.py msgid "sproglodyte" -msgstr "sproglodyte" +msgstr "" #. ~ Description for sproglodyte #: lang/json/MONSTER_from_json.py @@ -59247,12 +52559,10 @@ msgid "" "This crouching child-mutant's face is dominated by a pair of huge black eyes" " and its fingertips end in sharp claws." msgstr "" -" O rosto agachado de um mutante de criança é dominado por um par " -"deenormesolhos negros e as pontas dos dedos terminam em garras afiadas." #: lang/json/MONSTER_from_json.py msgid "howling waif" -msgstr "uivando uif" +msgstr "" #. ~ Description for howling waif #: lang/json/MONSTER_from_json.py @@ -59261,8 +52571,6 @@ msgid "" "little more than a reanimated membrane of skin stretched across tiny brittle" " bones." msgstr "" -" A morte não foi gentil com os filhos do apocalipse. Este é pouco mais " -"doqueuma membrana reanimada de pele esticada sobre minúsculos ossos frágeis." #: lang/json/MONSTER_from_json.py msgid "fungal child" @@ -59277,13 +52585,10 @@ msgid "" "mold covers most of its skin. Many cracks perforate its body, with small " "fungal stalks poking through." msgstr "" -" criança fúngicaÉ difícil reconhecer uma criança humana nesta criatura. " -"Omolde repugnante cobre a maior parte de sua pele. Muitasrachadurasperfuram " -"seu corpo, com pequenas hastes fúngicas aparecendo." #: lang/json/MONSTER_from_json.py msgid "zombie grenadier" -msgstr "granadeiro zumbi" +msgstr "" #. ~ Description for zombie grenadier #: lang/json/MONSTER_from_json.py @@ -59291,12 +52596,10 @@ msgid "" "Once a soldier, it is dressed head to toe in combat gear. Its hands " "constantly fumble at its many pouches." msgstr "" -" Uma vez soldado, está vestido da cabeça aos pés em equipamento decombate. " -"Suas mãos constantemente se atrapalham em suas muitas bolsas." #: lang/json/MONSTER_from_json.py msgid "zombie elite grenadier" -msgstr "granadeiro de elite zumbi" +msgstr "" #. ~ Description for zombie elite grenadier #: lang/json/MONSTER_from_json.py @@ -59304,13 +52607,10 @@ 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 "" -" Uma vez soldado, ele está vestido da cabeça aos pés em equipamentodecombate" -" e usando um pacote MOLLE. Suas mãos rapidamente abrem e fechamsuasmuitas " -"bolsas." #: lang/json/MONSTER_from_json.py msgid "zombie scientist" -msgstr "cientista zumbi" +msgstr "" #. ~ Description for zombie scientist #: lang/json/MONSTER_from_json.py @@ -59348,7 +52648,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie soldier" -msgstr "soldado zumbi" +msgstr "" #. ~ Description for zombie soldier #: lang/json/MONSTER_from_json.py @@ -59356,8 +52656,6 @@ msgid "" "Once a soldier, it is dressed head to toe in combat gear and carries itself " "rather steadily for a zombie." msgstr "" -" Uma vez soldado, ele está vestido da cabeça aos pés em equipamentodecombate" -" e se mantém firme para um zumbi." #: lang/json/MONSTER_from_json.py msgid "black-ops zombie" @@ -59440,7 +52738,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie military pilot" -msgstr "piloto militar zumbi" +msgstr "" #. ~ Description for zombie military pilot #: lang/json/MONSTER_from_json.py @@ -59448,12 +52746,10 @@ msgid "" "Once a pilot, it is dressed in basic military fatigues, aviator sunglasses, " "and a sturdy looking helmet." msgstr "" -" Uma vez que um piloto, ele está vestido com uniformes " -"militaresbásicos,óculos de aviador e um capacete robusto." #: lang/json/MONSTER_from_json.py msgid "zombie burner" -msgstr "queimador de zumbis" +msgstr "" #. ~ Description for zombie burner #: lang/json/MONSTER_from_json.py @@ -59464,15 +52760,10 @@ msgid "" "is attached to a tank of napalm strapped onto its back, which trickles its " "contents onto the ground." msgstr "" -" Quando as balas não foram suficientes para deter o fim do mundo, " -"osmilitares tentaram o fogo. Seu fracasso se manifesta nesta " -"cascamascaradacom gás, seu terno preto rasgado e rasgado. Seu lança-chamas, " -"balançando aoseu lado, está preso a um tanque de napalm amarrado em " -"suascostas, queescorrega seu conteúdo no chão." #: lang/json/MONSTER_from_json.py msgid "armored zombie" -msgstr "zumbi blindado" +msgstr "" #. ~ Description for armored zombie #: lang/json/MONSTER_from_json.py @@ -59480,12 +52771,10 @@ msgid "" "Despite being encased in a what was once a nigh-impenetrable suit of power " "armor, something still managed to kill this soldier." msgstr "" -" Apesar de estar envolto em um que já foi uma armadura de " -"poderquaseimpenetrável, algo ainda conseguiu matar este soldado." #: lang/json/MONSTER_from_json.py msgid "zombie bio-operator" -msgstr "bio-operador zumbi" +msgstr "" #. ~ Description for zombie bio-operator #: lang/json/MONSTER_from_json.py @@ -59493,8 +52782,6 @@ msgid "" "This armored and augmented soldier's bionics crackle with energy. Worse, it" " appears to remember its training." msgstr "" -" A biônica deste soldado blindado e aumentado crepita com energia. Pior, " -"parece lembrar seu treinamento." #: lang/json/MONSTER_from_json.py msgid "headless zombie" @@ -59523,7 +52810,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "old animatronic fox" -msgstr "velha animatronic fox" +msgstr "" #. ~ Description for old animatronic fox #: lang/json/MONSTER_from_json.py @@ -59532,13 +52819,10 @@ msgid "" " quite sharp. Its right hand is replaced with a hook. It looks heavily " "worn and degraded." msgstr "" -" Uma raposa animatrônica bípede, quase o dobro do seu tamanho. Seus " -"dentesegarras parecem bem afiados. Sua mão direita é substituída por " -"umgancho. Parece muito desgastado e degradado." #: lang/json/MONSTER_from_json.py msgid "new animatronic fox" -msgstr "nova raposa animatrônica" +msgstr "" #. ~ Description for new animatronic fox #: lang/json/MONSTER_from_json.py @@ -59547,13 +52831,10 @@ msgid "" " quite sharp. Its outer layer is made of reinforced plastic. It looks to " "be high tech, and in good shape." msgstr "" -" Uma raposa animatrônica bípede, quase o dobro do seu tamanho. Seus " -"dentesegarras parecem bem afiados. Sua camada externa é feita " -"deplásticoreforçado. Parece ser de alta tecnologia e em boa forma." #: lang/json/MONSTER_from_json.py msgid "wrecked animatronic fox" -msgstr "naufragou animatronic fox" +msgstr "" #. ~ Description for wrecked animatronic fox #: lang/json/MONSTER_from_json.py @@ -59562,13 +52843,10 @@ msgid "" "claws still look quite sharp. It's able to crawl around and climb on the " "ceiling." msgstr "" -" Uma raposa animatrônica destruída, deitada em uma pilha no chão. " -"Seusdentese garras ainda parecem bem afiados. É capaz de rastejar e subir " -"noteto." #: lang/json/MONSTER_from_json.py msgid "new animatronic bunny" -msgstr "novo coelho animatrônico" +msgstr "" #. ~ Description for new animatronic bunny #: lang/json/MONSTER_from_json.py @@ -59577,14 +52855,10 @@ msgid "" "cute, even though it's trying to kill you. Its outer layer is made of " "reinforced plastic. It looks to be high tech, and in good shape." msgstr "" -" Um coelho animatrônico bípede, quase o dobro do seu tamanho. " -"Érealmentemuito fofo, mesmo que esteja tentando matar você. Sua " -"camadaexterna éfeita de plástico reforçado. Parece ser de alta tecnologia e " -"emboa forma." #: lang/json/MONSTER_from_json.py msgid "old animatronic bunny" -msgstr "velho coelho animatrônico" +msgstr "" #. ~ Description for old animatronic bunny #: lang/json/MONSTER_from_json.py @@ -59593,13 +52867,10 @@ msgid "" " clear off, though the sockets for it's eyes still exist. It looks heavily " "worn and degraded." msgstr "" -" Um coelho animatrônico bípede, quase o dobro do seu tamanho. Seu " -"rostofoiarrancado, embora as órbitas de seus olhos ainda existam. " -"Parecemuitodesgastado e degradado." #: lang/json/MONSTER_from_json.py msgid "old animatronic chicken" -msgstr "galinha animatronic velha" +msgstr "" #. ~ Description for old animatronic chicken #: lang/json/MONSTER_from_json.py @@ -59607,13 +52878,10 @@ msgid "" "A bipedal animatronic chicken, nearly twice your size. It's wearing a bib " "that reads 'Let's Eat!'. Though it is a robot, it stinks like death." msgstr "" -" Um frango animatrônico bípede, quase o dobro do tamanho. Está " -"usandoumbabador que diz\"Vamos comer!\". Embora seja um robô, ele fede " -"comoamorte." #: lang/json/MONSTER_from_json.py msgid "new animatronic chicken" -msgstr "Frango novo animatrônico" +msgstr "" #. ~ Description for new animatronic chicken #: lang/json/MONSTER_from_json.py @@ -59623,14 +52891,10 @@ msgid "" "layer is made of reinforced plastic. It looks to be high tech, and in good " "shape." msgstr "" -" Um frango animatrônico bípede, quase o dobro do tamanho. Está " -"usandoumbabador que diz\"Vamos festejar!\" Ela estranhamente tem " -"umafiguracurvilínea. Sua camada externa é feita de plástico reforçado. " -"Pareceser dealta tecnologia e em boa forma." #: lang/json/MONSTER_from_json.py msgid "old animatronic bear" -msgstr "velho urso animatrônico" +msgstr "" #. ~ Description for old animatronic bear #: lang/json/MONSTER_from_json.py @@ -59639,13 +52903,10 @@ msgid "" "microphone, and wearing a top hat. Though it is a robot, it stinks like " "death. It looks heavily worn and degraded." msgstr "" -" Um urso animatrônico bípede, quase o dobro do seu tamanho. Está " -"segurandoummicrofone e usando uma cartola. Embora seja um robô, ele fede " -"como amorte. Parece muito desgastado e degradado." #: lang/json/MONSTER_from_json.py msgid "new animatronic bear" -msgstr "novo urso animatrônico" +msgstr "" #. ~ Description for new animatronic bear #: lang/json/MONSTER_from_json.py @@ -59654,13 +52915,10 @@ msgid "" "microphone, and wearing a top hat. Its outer layer is made of reinforced " "plastic. It looks to be high tech, and in good shape." msgstr "" -" Um urso animatrônico bípede, quase o dobro do seu tamanho. Está " -"segurandoummicrofone e usando uma cartola. Sua camada externa é feita " -"deplásticoreforçado. Parece ser de alta tecnologia e em boa forma." #: lang/json/MONSTER_from_json.py msgid "animatronic bat" -msgstr "morcego animatrônico" +msgstr "" #. ~ Description for animatronic bat #: lang/json/MONSTER_from_json.py @@ -59669,13 +52927,10 @@ msgid "" "once, but has fallen into disrepair. Though it is a robot, it stinks like " "death." msgstr "" -" Um bastão animatrônico bípede, quase o dobro do seu tamanho. Pode " -"tersidofofo uma vez, mas caiu em desuso. Embora seja um robô, ele fede " -"comoamorte." #: lang/json/MONSTER_from_json.py msgid "animatronic beaver" -msgstr "castor animatrônico" +msgstr "" #. ~ Description for animatronic beaver #: lang/json/MONSTER_from_json.py @@ -59684,13 +52939,10 @@ msgid "" "far more sharp than they should be. Though it is a robot, it stinks like " "death." msgstr "" -" Um castor animatrônico bípede, quase o dobro do seu tamanho. " -"Seusdentespontiagudos parecem muito mais afiados do que deveriam ser. " -"Emboraseja umrobô, ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic cat" -msgstr "gato animatrônico" +msgstr "" #. ~ Description for animatronic cat #: lang/json/MONSTER_from_json.py @@ -59698,12 +52950,10 @@ msgid "" "A bipedal animatronic cat, nearly twice your size. Its claws are extremely " "sharp. Though it is a robot, it stinks like death." msgstr "" -" Um gato animatrônico bípede, quase o dobro do seu tamanho. Suas " -"garrassãoextremamente afiadas. Embora seja um robô, ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic chipmunk" -msgstr "esquilo animatrônico" +msgstr "" #. ~ Description for animatronic chipmunk #: lang/json/MONSTER_from_json.py @@ -59712,13 +52962,10 @@ msgid "" "cute if it wasn't charging you down right now. Though it is a robot, it " "stinks like death." msgstr "" -" Um esquilo animatrônico bípede, quase o dobro do seu tamanho. " -"Vocêpodechamá-lo de fofo se não estivesse cobrando você agora. Embora seja " -"umrobô,ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic cow" -msgstr "vaca animatrônica" +msgstr "" #. ~ Description for animatronic cow #: lang/json/MONSTER_from_json.py @@ -59727,13 +52974,10 @@ msgid "" " making it emit shrill, eerie moos. Though it is a robot, it stinks like " "death." msgstr "" -" Uma vaca animatrônica bípede, quase duas vezes o seu tamanho. Sua " -"caixadevoz está quebrada, fazendo com que ela emita moos " -"estridentesemisteriosos. Embora seja um robô, ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic coyote" -msgstr "coiote animatrônico" +msgstr "" #. ~ Description for animatronic coyote #: lang/json/MONSTER_from_json.py @@ -59742,13 +52986,10 @@ msgid "" "about faster than seems possible. Though it is a robot, it stinks like " "death." msgstr "" -" Um coiote animatrônico bípede, quase o dobro do seu tamanho. Sua " -"cabeçasecontorce mais rápido do que parece possível. Embora seja um robô, " -"elefedecomo a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic deer" -msgstr "cervo animatrônico" +msgstr "" #. ~ Description for animatronic deer #: lang/json/MONSTER_from_json.py @@ -59756,12 +52997,10 @@ msgid "" "A bipedal animatronic deer, nearly twice your size. The hunter becomes the " "hunted. Though it is a robot, it stinks like death." msgstr "" -" Um cervo animatrônico bípede, quase o dobro do seu tamanho. O " -"caçadorsetorna o caçado. Embora seja um robô, ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic horse" -msgstr "cavalo animatrônico" +msgstr "" #. ~ Description for animatronic horse #: lang/json/MONSTER_from_json.py @@ -59769,12 +53008,10 @@ msgid "" "A bipedal animatronic horse, nearly twice your size. It's amazing. Though " "it is a robot, it stinks like death." msgstr "" -" Um cavalo animatrônico bípede, quase o dobro do seu tamanho. Éincrível. " -"Embora seja um robô, ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic pig" -msgstr "porco animatrônico" +msgstr "" #. ~ Description for animatronic pig #: lang/json/MONSTER_from_json.py @@ -59782,9 +53019,6 @@ msgid "" "A bipedal animatronic pig, nearly twice your size. Little piggy go home, " "little piggy no no. Though it is a robot, it stinks like death." msgstr "" -" Um porco animatrônico bípede, quase o dobro do seu tamanho. " -"Pequenoporquinho ir para casa, pequeno porquinho não, não. Embora seja " -"umrobô,ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic sheep" @@ -59798,13 +53032,10 @@ msgid "" "A bipedal animatronic sheep, nearly twice your size. Its wool is mangy and " "gross. Though it is a robot, it stinks like death." msgstr "" -" animatronic sheepUma ovelha animatronic bipedal, quase duas vezes " -"oseutamanho. Sua lã é sórdida e grossa. Embora seja um robô, ele fede " -"comoamorte." #: lang/json/MONSTER_from_json.py msgid "animatronic squirrel" -msgstr "esquilo animatrônico" +msgstr "" #. ~ Description for animatronic squirrel #: lang/json/MONSTER_from_json.py @@ -59813,13 +53044,10 @@ msgid "" "sharp teeth, you hope it does not like nuts. Though it is a robot, it " "stinks like death." msgstr "" -" Um esquilo animatrônico bípede, quase o dobro do seu tamanho. A " -"julgarpelosseus dentes afiados, você espera que não goste de nozes. Embora " -"sejaumrobô, ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "animatronic child" -msgstr "criança animatrônica" +msgstr "" #. ~ Description for animatronic child #: lang/json/MONSTER_from_json.py @@ -59827,12 +53055,10 @@ msgid "" "An animatronic child. It looks like it's annoying as hell. Though it is a " "robot, it stinks like death." msgstr "" -" Uma criança animatrônica. Parece que é irritante como o inferno. " -"Emborasejaum robô, ele fede como a morte." #: lang/json/MONSTER_from_json.py msgid "marionette" -msgstr "fantoches" +msgstr "" #. ~ Description for marionette #: lang/json/MONSTER_from_json.py @@ -59840,11 +53066,10 @@ msgid "" "A marionette able to move itself around. There are no strings on him " "however." msgstr "" -" Uma marionete capaz de se mover por aí. Não há cordas nele, no entanto." #: lang/json/MONSTER_from_json.py msgid "animatronic wolf" -msgstr "lobo animatrônico" +msgstr "" #. ~ Description for animatronic wolf #: lang/json/MONSTER_from_json.py @@ -59853,9 +53078,6 @@ msgid "" "counterpart was scary, this robot is terrifying. Though it is a robot, it " "stinks like death." msgstr "" -" Um lobo animatrônico bípede, quase o dobro do seu tamanho. Se " -"acontraparteanimal era assustadora, esse robô é aterrorizante. Embora sejaum" -" robô, elefede como a morte." #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" @@ -59964,12 +53186,10 @@ msgid "" "A human body with pale blue flesh, crackling with electrical energy. It " "seems eager to tell you something." msgstr "" -" Um corpo humano com carne azul-clara, crepitando com energiaelétrica. " -"Parece ansioso contar uma coisa." #: lang/json/MONSTER_from_json.py msgid "mr skeltal" -msgstr "senhor escândalo" +msgstr "" #. ~ Description for mr skeltal #: lang/json/MONSTER_from_json.py @@ -59978,23 +53198,19 @@ msgid "" "the bone. In its bony hand, it holds a pristine trumpet, unmarred by the end" " of the world." msgstr "" -" Desprovido inteiramente de carne e órgãos, esse esqueleto ambulante " -"televaao osso. Em sua mão ossuda, segura uma trombeta imaculada, " -"desarmadapelofim do mundo." #: lang/json/MONSTER_from_json.py msgid "minion of skeltal" -msgstr "servo de skeltal" +msgstr "" #. ~ Description for minion of skeltal #: lang/json/MONSTER_from_json.py msgid "A lesser skeleton, raised by the forlorn dooting of a trumpet." msgstr "" -" Um esqueleto menor, criado pelos partidários abandonados de uma trombeta." #: lang/json/MONSTER_from_json.py msgid "Smoky bear" -msgstr "Urso esfumaçado" +msgstr "" #. ~ Description for Smoky bear #: lang/json/MONSTER_from_json.py @@ -60002,12 +53218,10 @@ msgid "" "A smoking husk is all that remains of this once proud bear. Its black eyes " "gaze at you with malice... and hunger." msgstr "" -" Uma casca fumegante é tudo o que resta desse urso outrora orgulhoso. " -"Seusolhos negros olham para você com malícia ... e fome." #: lang/json/MONSTER_from_json.py msgid "Compsognathus" -msgstr "Compsognathus" +msgstr "" #. ~ Description for Compsognathus #: lang/json/MONSTER_from_json.py @@ -60015,12 +53229,10 @@ msgid "" "A bipedal dinosaur about the size of a turkey. Its teeth and claws are " "small but sharp." msgstr "" -" Um dinossauro bípede do tamanho de um peru. Seus dentes e " -"garrassãopequenos, mas afiados." #: lang/json/MONSTER_from_json.py msgid "Gallimimus" -msgstr "Gallimimus" +msgstr "" #. ~ Description for Gallimimus #: lang/json/MONSTER_from_json.py @@ -60033,7 +53245,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "Titanis" -msgstr "Titans" +msgstr "" #. ~ Description for Titanis #: lang/json/MONSTER_from_json.py @@ -60041,12 +53253,10 @@ msgid "" "It looks like a dodo, only much bigger, with longer, muscular legs and a " "predatory gleam in its eyes." msgstr "" -" Parece um dodô, apenas muito maior, com pernas mais longas e musculosas " -"eumbrilho predatório nos olhos." #: lang/json/MONSTER_from_json.py msgid "Spinosaurus" -msgstr "Espinossauro" +msgstr "" #. ~ Description for Spinosaurus #: lang/json/MONSTER_from_json.py @@ -60054,21 +53264,19 @@ msgid "" "A huge dinosaur about the size of a small house, with a ferocious crocodile-" "like head and a sail on its back." msgstr "" -" Um enorme dinossauro do tamanho de uma pequena casa, com uma feroz " -"cabeçadecrocodilo e uma vela nas costas." #: lang/json/MONSTER_from_json.py msgid "Tyrannosaurus rex" -msgstr "tiranossauro Rex" +msgstr "" #. ~ Description for Tyrannosaurus rex #: lang/json/MONSTER_from_json.py msgid "Look at those TEETH!" -msgstr "Olhe para aqueles DENTES!" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Triceratops" -msgstr "Triceratops" +msgstr "" #. ~ Description for Triceratops #: lang/json/MONSTER_from_json.py @@ -60076,22 +53284,19 @@ msgid "" "A massive rhino-like dinosaur with a bony crest from which three large horns" " emerge." msgstr "" -" Um enorme dinossauro rinoceronte com uma crista óssea da qual " -"emergemtrêsgrandes chifres." #: lang/json/MONSTER_from_json.py msgid "Stegosaurus" -msgstr "estegossauro" +msgstr "" #. ~ Description for Stegosaurus #: lang/json/MONSTER_from_json.py msgid "A large quadruped dinosaur with plates on its back, and a spiked tail." msgstr "" -" Um grande dinossauro quadrúpede com placas nas costas e uma cauda cravada." #: lang/json/MONSTER_from_json.py msgid "Ankylosaurus" -msgstr "Anquilossauro" +msgstr "" #. ~ Description for Ankylosaurus #: lang/json/MONSTER_from_json.py @@ -60099,12 +53304,10 @@ msgid "" "This dinosaur looks like a giant prehistoric armadillo. Its tail ends in a " "massive spiked club of bone." msgstr "" -" Este dinossauro parece um tatu pré-histórico gigante. Sua cauda terminaemum" -" enorme clube de ossos com espinhos." #: lang/json/MONSTER_from_json.py msgid "Allosaurus" -msgstr "Allosaurus" +msgstr "" #. ~ Description for Allosaurus #: lang/json/MONSTER_from_json.py @@ -60112,12 +53315,10 @@ msgid "" "A large predatory bipedal dinosaur, with tiger-like stripes on its broad " "back." msgstr "" -" Um grande dinossauro predatório bípede, com listras semelhantes a " -"tigresnascostas largas." #: lang/json/MONSTER_from_json.py msgid "Eoraptor" -msgstr "Eoraptor" +msgstr "" #. ~ Description for Eoraptor #: lang/json/MONSTER_from_json.py @@ -60125,12 +53326,10 @@ msgid "" "A bipedal dinosaur about the size of a chicken. It roots around the " "undergrowth, scavenging on small animals and plants." msgstr "" -" Um dinossauro bípede do tamanho de uma galinha. Ela se enraíza ao " -"redordavegetação rasteira, procurando em pequenos animais e plantas." #: lang/json/MONSTER_from_json.py msgid "Velociraptor" -msgstr "Velociraptor" +msgstr "" #. ~ Description for Velociraptor #: lang/json/MONSTER_from_json.py @@ -60138,12 +53337,10 @@ msgid "" "A small bipedal dinosaur covered with feathers. Small, hooked claws emerge " "from its feet and hands." msgstr "" -" Um pequeno dinossauro bípede coberto com penas. Pequenas garras " -"emganchoemergem de seus pés e mãos." #: lang/json/MONSTER_from_json.py msgid "Deinonychus" -msgstr "Deinonychus" +msgstr "" #. ~ Description for Deinonychus #: lang/json/MONSTER_from_json.py @@ -60151,12 +53348,10 @@ msgid "" "A medium-sized bipedal dinosaur covered with feathers. At the end of each " "foot is a large sickle-like claw." msgstr "" -" Um dinossauro bípede de tamanho médio coberto de penas. No final de " -"cadapéhá uma grande garra em forma de foice." #: lang/json/MONSTER_from_json.py msgid "Utahraptor" -msgstr "Utahraptor" +msgstr "" #. ~ Description for Utahraptor #: lang/json/MONSTER_from_json.py @@ -60164,12 +53359,10 @@ msgid "" "A large bipedal dinosaur with feathered arms, a long tail, and scythe-like " "claws." msgstr "" -" Um grande dinossauro bípede com braços emplumados, cauda comprida " -"egarrassemelhantes a foices." #: lang/json/MONSTER_from_json.py msgid "Parasaurolophus" -msgstr "Parassaurolofo" +msgstr "" #. ~ Description for Parasaurolophus #: lang/json/MONSTER_from_json.py @@ -60177,27 +53370,24 @@ msgid "" "A huge mottled dinosaur with a blunt head crest. It contentedly strips " "leaves from a nearby shrub." msgstr "" -" Um enorme dinossauro manchado com uma crista de cabeça sem corte. " -"Écontentetira folhas de um arbusto próximo." #: lang/json/MONSTER_from_json.py msgid "Dimorphodon" -msgstr "Dimorphodon" +msgstr "" #. ~ Description for Dimorphodon #: lang/json/MONSTER_from_json.py msgid "A small flying reptile, circling overhead looking for prey." -msgstr "Um pequeno réptil voador, circulando em cima à procura de presas." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "Dilophosaurus" -msgstr "Dilophosaurus" +msgstr "" #. ~ Description for Dilophosaurus #: lang/json/MONSTER_from_json.py msgid "A medium dinosaur with a sticky green bile dripping from its teeth." msgstr "" -" Um dinossauro médio com uma bile verde pegajosa pingando de seus dentes." #: lang/json/MONSTER_from_json.py msgid "animated blade" @@ -60306,7 +53496,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "automated turret" -msgstr "torre automatizada" +msgstr "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "disarmed defense turret" @@ -60322,11 +53512,6 @@ msgid "" "new friends and enemies alike. It requires an integrated firearm module to " "work." msgstr "" -" torre de defesa desarmadaA torreta da série General Atomics TX, " -"umapequenatorre de metralhadoras automática em forma de pílula, que " -"utilizasistemasATR de última geração para reorientar-se dinamicamente para " -"novosamigos einimigos. Requer um módulo integrado de armas de fogo " -"parafuncionar." #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "disarmed military turret" @@ -60341,10 +53526,6 @@ msgid "" "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 "" -" revólver militar desarmadoA torre TX da Leadworks LLC, uma " -"torredemetralhadora automatizada de nível militar que usa sistemas ATR " -"deúltimageração para se reorientar dinamicamente para novos amigos " -"einimigos. Requer um módulo de pistola integrado para operar." #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "disarmed advanced turret" @@ -60359,14 +53540,10 @@ msgid "" " of the art ATR systems to dynamically reorient itself to new friends and " "enemies alike. It requires an integrated gun module to function." msgstr "" -" torre avançada desarmadaA torreta DoubleTech T-series, uma " -"torredemetralhadoras automatizada avançada que utiliza sistemas ATR " -"deúltimageração para reorientar-se dinamicamente para novos amigos " -"einimigos. Requer um módulo de pistola integrado para funcionar." #: lang/json/MONSTER_from_json.py msgid "9mm turret" -msgstr "Torre de 9 mm" +msgstr "" #. ~ Description for 9mm turret #: lang/json/MONSTER_from_json.py @@ -60376,14 +53553,10 @@ msgid "" "friends and enemies alike. Its integrated 9mm sub machinegun can swivel a " "full 360 degrees." msgstr "" -" O General Atomics TX-1 Guardian, uma pequena torre " -"demetralhadorasautomática em forma de comprimido, que utiliza sistemas ATR " -"deúltimageração para se reorientar dinamicamente para novos amigos " -"einimigos. Suasub metralhadora de 9mm integrada pode girar 360 graus." #: lang/json/MONSTER_from_json.py msgid "shotgun turret" -msgstr "torre de espingarda" +msgstr "" #. ~ Description for shotgun turret #: lang/json/MONSTER_from_json.py @@ -60393,14 +53566,10 @@ msgid "" "new friends and enemies alike. Its integrated 12ga shotgun can swivel a " "full 360 degrees." msgstr "" -" O Protetor Geral TX-4 da Atomics, uma pequena torre " -"demetralhadorasautomática em forma de pílula, que utiliza sistemas ATR " -"deúltima geraçãopara se reorientar dinamicamente para novos amigos " -"einimigos. Suaespingarda 12ga integrada pode girar 360 graus." #: lang/json/MONSTER_from_json.py msgid "riot control turret" -msgstr "torre de controle de motim" +msgstr "" #. ~ Description for riot control turret #: lang/json/MONSTER_from_json.py @@ -60410,10 +53579,6 @@ msgid "" "friends and enemies alike. Its integrated 40mm teargas launcher can swivel " "a full 360 degrees." msgstr "" -" O General Atomics TZ-1a Warden, um pequeno revólver automatizado em " -"formadepílula, que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Seu lançador " -"degáslacrimogêneo de 40mm integrado pode girar 360 graus." #. ~ Description for riot control turret #: lang/json/MONSTER_from_json.py @@ -60423,14 +53588,10 @@ msgid "" "new friends and enemies alike. Its integrated 40mm beanbag launcher can " "swivel a full 360 degrees." msgstr "" -" A chupeta TZ-1b da General Atomics, uma pequena torre " -"demetralhadorasautomática em forma de pílula, que utiliza sistemas ATR " -"deúltima geraçãopara se reorientar dinamicamente para novos amigos " -"einimigos. Seu lançadorde beanbag integrado de 40mm pode girar 360 graus." #: lang/json/MONSTER_from_json.py msgid "5.56mm turret" -msgstr "Torre de 5,56 mm" +msgstr "" #. ~ Description for 5.56mm turret #: lang/json/MONSTER_from_json.py @@ -60440,14 +53601,10 @@ msgid "" "new friends and enemies alike. Its integrated 5.56 rifle can swivel a full " "360 degrees." msgstr "" -" TX-32L Sentry da Leadworks LLC, uma torre de metralhadora " -"automatizadadenível militar que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Seu rifle " -"5.56integrado podegirar 360 graus." #: lang/json/MONSTER_from_json.py msgid "7.62mm turret" -msgstr "Torre de 7,62 mm" +msgstr "" #. ~ Description for 7.62mm turret #: lang/json/MONSTER_from_json.py @@ -60457,14 +53614,10 @@ msgid "" "new friends and enemies alike. Its integrated 7.62 rifle can swivel a full " "360 degrees." msgstr "" -" TX-32H Sentry da Leadworks LLC, uma torre de metralhadora " -"automatizadadenível militar que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Seu rifle " -"7.62integrado podegirar 360 graus." #: lang/json/MONSTER_from_json.py msgid "50cal turret" -msgstr "Torre 50cal" +msgstr "" #. ~ Description for 50cal turret #: lang/json/MONSTER_from_json.py @@ -60474,14 +53627,10 @@ msgid "" "new friends and enemies alike. Its integrated 50 caliber machinegun can " "swivel a full 360 degrees." msgstr "" -" TX-13 Sentry da Leadworks LLC, uma torre de metralhadora " -"automatizadadenível militar que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Sua " -"metralhadoraintegrada decalibre 50 pode girar 360 graus." #: lang/json/MONSTER_from_json.py msgid "8x40mm turret" -msgstr "Torre de 8x40mm" +msgstr "" #. ~ Description for 8x40mm turret #: lang/json/MONSTER_from_json.py @@ -60491,14 +53640,10 @@ msgid "" "new friends and enemies alike. Its integrated 8x40mm rifle can swivel a " "full 360 degrees." msgstr "" -" TX-01A Warden da Leadworks LLC, uma torre de metralhadora " -"automatizadadenível militar que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Seu rifle " -"8x40mmintegrado podegirar 360 graus." #: lang/json/MONSTER_from_json.py msgid "needle turret" -msgstr "torreta de agulha" +msgstr "" #. ~ Description for needle turret #: lang/json/MONSTER_from_json.py @@ -60508,14 +53653,10 @@ msgid "" "friends and enemies alike. Its integrated 5mm flechette gun can swivel a " "full 360 degrees." msgstr "" -" O TN-7 Sentry da Leadworks LLC, uma torre de flechette automatizada " -"denívelmilitar que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Sua arma de " -"flechettede 5 mmintegrada pode girar 360 graus." #: lang/json/MONSTER_from_json.py msgid "40mm grenade turret" -msgstr "Torre de granada de 40 mm" +msgstr "" #. ~ Description for 40mm grenade turret #: lang/json/MONSTER_from_json.py @@ -60525,14 +53666,10 @@ msgid "" "and enemies alike. Its integrated 40mm grenade launcher can swivel a full " "360 degrees." msgstr "" -" O TG-7 Sentry da Leadworks LLC, uma torre de canhão automatizada " -"denívelmilitar que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Seu lançador " -"degranadas de 40mm integrado pode girar 360 graus." #: lang/json/MONSTER_from_json.py msgid "flame turret" -msgstr "torreta de chama" +msgstr "" #. ~ Description for flame turret #: lang/json/MONSTER_from_json.py @@ -60542,10 +53679,6 @@ msgid "" "friends and enemies alike. Its integrated flamethrower can swivel a full " "360 degrees." msgstr "" -" TF-7 Sentry da Leadworks LLC, uma torre de chama automatizada " -"denívelmilitar que usa sistemas ATR de última geração para " -"sereorientardinamicamente para novos amigos e inimigos. Seu lança- " -"chamasintegrado podegirar 360 graus." #. ~ Description for laser turret #: lang/json/MONSTER_from_json.py @@ -60555,13 +53688,10 @@ msgid "" "and enemies alike. Its integrated laser emitter can swivel a full 360 " "degrees." msgstr "" -" O DuTech T-L3 Scintillator, uma torre laser automatizada avançadaqueutiliza" -" sistemas ATR de última geração para reorientar-sedinamicamentepara novos " -"amigos e inimigos. Seu emissor laser integrado podegirar 360graus." #: lang/json/MONSTER_from_json.py msgid "acid turret" -msgstr "torreta ácida" +msgstr "" #. ~ Description for acid turret #: lang/json/MONSTER_from_json.py @@ -60571,14 +53701,10 @@ msgid "" "and enemies alike. Its integrated acid thrower can swivel a full 360 " "degrees." msgstr "" -" O Desintegrador DoubleTech T-A3, uma torreta de ácido " -"automatizadaavançadaque usa sistemas ATR de última geração para reorientar- " -"sedinamicamentepara novos amigos e inimigos. Seu lançador de ácido integrado" -" pode girar360 graus." #: lang/json/MONSTER_from_json.py lang/json/vehicle_part_from_json.py msgid "plasma turret" -msgstr "torreta de plasma" +msgstr "" #. ~ Description for plasma turret #: lang/json/MONSTER_from_json.py @@ -60588,14 +53714,10 @@ msgid "" "and enemies alike. Its integrated plasma ejector can swivel a full 360 " "degrees." msgstr "" -" O DoubleTech T-P3 Scathefire, uma torre laser automatizada " -"avançadaqueutiliza sistemas ATR de última geração para reorientar- " -"sedinamicamentepara novos amigos e inimigos. Seu ejetor de plasma integrado " -"pode girar 360graus." #: lang/json/MONSTER_from_json.py msgid "railgun turret" -msgstr "torreta de railgun" +msgstr "" #. ~ Description for railgun turret #: lang/json/MONSTER_from_json.py @@ -60604,14 +53726,10 @@ msgid "" "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 "" -" O DoubleTech T-R3 Arbalest, uma torre de trilho avançado " -"automatizadausandosistemas ATR de última geração para reorientar-se " -"dinamicamente paranovosamigos e inimigos. Seu railgun integrado pode girar " -"360 graus." #: lang/json/MONSTER_from_json.py msgid "advanced electro turret" -msgstr "torreta eletrônica avançada" +msgstr "" #. ~ Description for advanced electro turret #: lang/json/MONSTER_from_json.py @@ -60621,14 +53739,10 @@ msgid "" "friends and enemies alike. Its integrated electro caster can swivel a full " "360 degrees." msgstr "" -" O DoubleTech T-E3 Thunderstroke, uma avançada torre " -"electrónicaautomatizadaque utiliza sistemas ATR de última geração para " -"reorientar-sedinamicamentepara novos amigos e inimigos. Seu eletro caster " -"integrado pode girar 360graus." #: lang/json/MONSTER_from_json.py msgid "EMP turret" -msgstr "Torreta EMP" +msgstr "" #. ~ Description for EMP turret #: lang/json/MONSTER_from_json.py @@ -60638,24 +53752,20 @@ msgid "" "enemies alike. Its electro magnetic pulse generator can swivel a full 360 " "degrees." msgstr "" -" O DoubleTech T-EMP3 Corona, uma torre EMP automatizada avançada " -"queutilizasistemas ATR de última geração para reorientar-se dinamicamente " -"paranovosamigos e inimigos. Seu gerador de pulsos eletromagnéticos pode " -"girar360graus." #: lang/json/MONSTER_from_json.py msgid "guardin gnome" -msgstr "você gnomo" +msgstr "" #. ~ Description for guardin gnome #. ~ Description for garden gnome #: lang/json/MONSTER_from_json.py lang/json/furniture_from_json.py msgid "A normal and completely harmless garden gnome." -msgstr "Um gnomo de jardim normal e completamente inofensivo." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "utility robot" -msgstr "robô utilitário" +msgstr "" #. ~ Description for utility robot #: lang/json/MONSTER_from_json.py @@ -60663,8 +53773,6 @@ msgid "" "One of the many models of utility robot formerly in use by government " "agencies, private corporations, and civilians alike." msgstr "" -" Um dos muitos modelos de robôs utilitários anteriormente usados " -"poragênciasgovernamentais, corporações privadas e civis." #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py @@ -60673,9 +53781,6 @@ msgid "" "blinding flash. No longer linked to police or security network, it " "continues its unending hunt for criminals and trespassers." msgstr "" -" Um pequeno robô aéreo equipado com um conjunto de câmeras e armado " -"comumflash ofuscante. Não está mais ligado à polícia ou à rede de " -"segurançaecontinua sua busca interminável por criminosos e invasores." #. ~ Description for skitterbot #: lang/json/MONSTER_from_json.py @@ -60684,13 +53789,10 @@ msgid "" "Armed with two close-range tazers, it can skate across the ground with great" " speed." msgstr "" -" Um robô insectoide do tamanho de um cachorro pequeno, " -"projetadoparasegurança doméstica. Armado com dois tazers de curto alcance, " -"ele pode patinar no chão com grande velocidade." #: lang/json/MONSTER_from_json.py msgid "defense robot" -msgstr "robô de defesa" +msgstr "" #. ~ Description for defense robot #: lang/json/MONSTER_from_json.py @@ -60698,13 +53800,10 @@ 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 "" -" Um robô de defesa automatizado ainda ativo devido à sua fonte " -"deenergiainterna. Este é armado com um impulso elétrico e uma arma de " -"fogointegradade 9mm." #: lang/json/MONSTER_from_json.py msgid "security robot" -msgstr "robô de segurança" +msgstr "" #. ~ Description for security robot #: lang/json/MONSTER_from_json.py @@ -60712,12 +53811,10 @@ msgid "" "An automated defense robot still active due to its internal power source. " "This one is equipped with an integrated 9mm firearm." msgstr "" -" Um robô de defesa automatizado ainda ativo devido à sua fonte " -"deenergiainterna. Este é equipado com uma arma de fogo integrada de 9mm." #: lang/json/MONSTER_from_json.py msgid "riotcontrol robot" -msgstr "robô de controle" +msgstr "" #. ~ Description for riotcontrol robot #: lang/json/MONSTER_from_json.py @@ -60726,13 +53823,10 @@ msgid "" "This one is equipped with an electric prod, tear gas sprayer, and integrated" " 40mm beanbag launcher." msgstr "" -" Um robô de defesa automatizado ainda ativo devido à sua fonte " -"deenergiainterna. Este é equipado com um dispositivo elétrico, spray " -"degáslacrimogêneo e um lançador de beanbag integrado de 40mm." #: lang/json/MONSTER_from_json.py msgid "W11B10" -msgstr "W11B10" +msgstr "" #. ~ Description for W11B10 #: lang/json/MONSTER_from_json.py @@ -60740,13 +53834,10 @@ 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) Infantaria 10 Nível. Parte da série deauxiliaresindividuais" -" da Wraitheon, projetada para integrar-seperfeitamente comforças mais " -"tradicionais." #: lang/json/MONSTER_from_json.py msgid "W11B10B4" -msgstr "W11B10B4" +msgstr "" #. ~ Description for W11B10B4 #: lang/json/MONSTER_from_json.py @@ -60755,13 +53846,10 @@ msgid "" "of one-to-one auxiliaries designed to seamlessly integrate with more " "traditional forces. " msgstr "" -" Wraitheon (11B) Infantaria 20 Nível (B4) Sniper. Parte da sériedeauxiliares" -" individuais da Wraitheon, projetada para integrar-seperfeitamente com " -"forças mais tradicionais." #: lang/json/MONSTER_from_json.py msgid "W12B10" -msgstr "W12B10" +msgstr "" #. ~ Description for W12B10 #: lang/json/MONSTER_from_json.py @@ -60770,13 +53858,10 @@ msgid "" "one-to-one auxiliaries designed to seamlessly integrate with more " "traditional forces." msgstr "" -" Wraitheon (12B) Engenheiro de Combate 10 Nível. Parte da série " -"deauxiliaresindividuais da Wraitheon, projetada para integrar- " -"seperfeitamente comforças mais tradicionais." #: lang/json/MONSTER_from_json.py msgid "W11H10" -msgstr "W11H10" +msgstr "" #. ~ Description for W11H10 #: lang/json/MONSTER_from_json.py @@ -60785,13 +53870,10 @@ msgid "" "one-to-one auxiliaries designed to seamlessly integrate with more " "traditional forces." msgstr "" -" Wraitheon (11H) Infantaria Anti-Tanque 10 Nível. Parte da sériedeauxiliares" -" individuais da Wraitheon, projetada para integrar-seperfeitamente com " -"forças mais tradicionais." #: lang/json/MONSTER_from_json.py msgid "W12N10" -msgstr "W12N10" +msgstr "" #. ~ Description for W12N10 #: lang/json/MONSTER_from_json.py @@ -60800,13 +53882,10 @@ msgid "" "of one-to-one auxiliaries designed to seamlessly integrate with more " "traditional forces." msgstr "" -" Wraitheon (12N) Engenheiro de Construção 10 Nível. Parte da " -"sériedeauxiliares individuais da Wraitheon, projetada para integrar- " -"seperfeitamente com forças mais tradicionais." #: lang/json/MONSTER_from_json.py msgid "craftbuddy" -msgstr "craftbuddy" +msgstr "" #. ~ Description for craftbuddy #: lang/json/MONSTER_from_json.py @@ -60816,15 +53895,10 @@ msgid "" "its user. In it's deactivated state, the craft buddy is useable as a " "toolbench and multipurpose workstation." msgstr "" -" Uma estação de trabalho móvel usada por trabalhadores em minas, " -"emplataformas de petróleo e em outras localidades remotas. Em " -"seuestadoativo, o craftbuddy apenas segue seu usuário. Em seu " -"estadodesativado, oamigo de artesanato é utilizável como uma estação de " -"trabalhomultiuso e deferramentas." #: lang/json/MONSTER_from_json.py msgid "automated armor" -msgstr "armadura automatizada" +msgstr "" #. ~ Description for automated armor #: lang/json/MONSTER_from_json.py @@ -60834,10 +53908,6 @@ msgid "" "combat, it was more commonly used for transporting the suit itself. The AI " "is limited, and makes a poor combatant." msgstr "" -" Uma armadura de poder temporariamente controlada por um AI- coreanexado. " -"Originalmente concebido como uma maneira de recuperar operadoresmortos " -"ouferidos do combate, era mais comumente usado para transportar otraje emsi." -" A IA é limitada e faz um combatente pobre." #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "light auto armor" @@ -60847,7 +53917,7 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "auto armor" -msgstr "armadura leve de armorauto" +msgstr "" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "heavy auto armor" @@ -60857,16 +53927,16 @@ msgstr[1] "" #: lang/json/MONSTER_from_json.py msgid "floating lantern" -msgstr "lanterna de auto armadura pesada" +msgstr "" #. ~ Description for floating lantern #: lang/json/MONSTER_from_json.py msgid "A salvaged drone repurposed into a mobile lightsource." -msgstr "Um drone recuperado reaproveitado em uma fonte de luz móvel." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "distract-o-hack" -msgstr "distrair-o-hack" +msgstr "" #. ~ Description for distract-o-hack #: lang/json/MONSTER_from_json.py @@ -60876,14 +53946,10 @@ msgid "" "hostile targets. Although fragile, the distract-o-hack's erratic movements " "make it difficult to hit." msgstr "" -" Um drone recuperado foi reaproveitado em uma tática de desvioimprovisada. " -"Uma vez ativado, ele acenderá, produzirá som, emitirá faíscas ese moverápara" -" alvos hostis. Embora frágeis, os movimentos erráticos dadistrair-o-corte " -"dificultam o acerto." #: lang/json/MONSTER_from_json.py msgid "arsonhack" -msgstr "arsonhack" +msgstr "" #. ~ Description for arsonhack #: lang/json/MONSTER_from_json.py @@ -60893,14 +53959,10 @@ msgid "" "cannot be recovered once activated. Only a reckless madman would dare to " "build this." msgstr "" -" Um drone recuperado foi reaproveitado para espalhar chamas e causar " -"danosàpropriedade. É quase tão perigoso para o usuário quanto para o " -"ambiente. Oarsonhack não pode ser recuperado depois de ativado. Apenas " -"umloucoimprudente se atreveria a construir isso." #: lang/json/MONSTER_from_json.py msgid "spore hack" -msgstr "corte lento" +msgstr "" #. ~ Description for spore hack #: lang/json/MONSTER_from_json.py @@ -60909,13 +53971,10 @@ msgid "" "releases a puff of fungal spores. Who in their right mind would build such " "a thing?" msgstr "" -" Um drone recuperado reaproveitado para espalhar contaminantesalienígenas. " -"Libera periodicamente uma nuvem de esporos fúngicos. Quem em " -"sãconsciênciaconstruiria tal coisa?" #: lang/json/MONSTER_from_json.py msgid "watercannon turret" -msgstr "torreta watercannon" +msgstr "" #. ~ Description for watercannon turret #: lang/json/MONSTER_from_json.py @@ -60923,8 +53982,6 @@ 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 "" -" Uma torre equipada com um canhão de água montado no júri no lugar deumaarma" -" de fogo apropriada. É altamente ineficaz, mas a munição é barata." #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py @@ -60933,13 +53990,10 @@ msgid "" "blinding flash. No longer linked to police or security network, it " "continues its unending hunt for criminals and tresspassers." msgstr "" -" Um pequeno robô aéreo equipado com um conjunto de câmeras e armado " -"comumflash ofuscante. Não mais ligada à rede de polícia ou desegurança, " -"continua sua busca interminável de criminosos e tresspassers." #: lang/json/MONSTER_from_json.py msgid "floating heater" -msgstr "aquecedor flutuante" +msgstr "" #. ~ Description for floating heater #: lang/json/MONSTER_from_json.py @@ -60947,12 +54001,10 @@ msgid "" "A salvaged eyebot repurposed into a floating space heater. It emits a " "constant jet of warm air to heat an enclosed space." msgstr "" -" Um eyebot recuperado reaproveitado em um aquecedor flutuante. Emite " -"umjatoconstante de ar quente para aquecer um espaço fechado." #: lang/json/MONSTER_from_json.py msgid "floating furnace" -msgstr "forno flutuante" +msgstr "" #. ~ Description for floating furnace #: lang/json/MONSTER_from_json.py @@ -60961,13 +54013,10 @@ msgid "" "constant jet of dangerously hot air to heat an enclosed space. Warning! " "Can result in rapid heatstroke!" msgstr "" -" Um eyebot recuperado reaproveitado em um aquecedor flutuante. Emite " -"umjatoconstante de ar perigosamente quente para aquecer um espaço fechado. " -"Aviso!Pode resultar em rápida insolação!" #: lang/json/MONSTER_from_json.py msgid "burning eye" -msgstr "olho ardente" +msgstr "" #. ~ Description for burning eye #: lang/json/MONSTER_from_json.py @@ -60976,13 +54025,10 @@ msgid "" "the hovering robot to aim and fire without penalty. It has decent range and " "damage, but requires an extended recharge time between shots." msgstr "" -" Um eyebot recuperado com uma arma laser. A falta de recuo permite que " -"orobôque paira aponte e dispare sem penalidade. Tem alcance decente e dano, " -"masrequer um tempo de recarga estendido entre tiros." #: lang/json/MONSTER_from_json.py msgid "hazmat bot" -msgstr "bot de hazmat" +msgstr "" #. ~ Description for hazmat bot #: lang/json/MONSTER_from_json.py @@ -60990,20 +54036,19 @@ msgid "" "A utility robot designed for cleaning up waste material in hazardous " "conditions." msgstr "" -" Um robô utilitário projetado para limpar resíduos em condições perigosas." #: lang/json/MONSTER_from_json.py msgid "butler-bot" -msgstr "mordomo-bot" +msgstr "" #. ~ Description for butler-bot #: lang/json/MONSTER_from_json.py msgid "A luxury model utility robot for domestic use." -msgstr "Um robô utilitário de luxo para uso doméstico." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "construction robot" -msgstr "robô de construção" +msgstr "" #. ~ Description for construction robot #: lang/json/MONSTER_from_json.py @@ -61012,13 +54057,10 @@ msgid "" "agencies and private corporations. It is equipped with an integrated welder," " flashlight, nailgun, and jackhammer." msgstr "" -" Um dos muitos modelos de robôs de construção anteriormente " -"usadosporagências governamentais e corporações privadas. É equipado com " -"umsoldadorintegrado, lanterna, prego e britadeira." #: lang/json/MONSTER_from_json.py msgid "firefighter robot" -msgstr "robô de bombeiro" +msgstr "" #. ~ Description for firefighter robot #: lang/json/MONSTER_from_json.py @@ -61027,14 +54069,10 @@ msgid "" "departments and emergency services. Designed for entering burning buildings " "and other situations deemed too dangerous for human firefighters." msgstr "" -" Um dos muitos modelos de robôs de combate a incêndios " -"anteriormenteusadospelos departamentos de bombeiros locais e serviços de " -"emergência. Projetadopara entrar em prédios em chamas e outras situações " -"consideradasmuitoperigosas para bombeiros humanos." #: lang/json/MONSTER_from_json.py msgid "blob breeder" -msgstr "criador de blob" +msgstr "" #. ~ Description for blob breeder #: lang/json/MONSTER_from_json.py @@ -61043,13 +54081,10 @@ msgid "" "blob. It will intermittently release a group of living blobs. Why on Earth " "would you build this?" msgstr "" -" Um robô utilitário recuperado convertido em uma incubadora móvel para " -"oblobalienígena. Ele irá liberar intermitentemente um grupo de bolhasvivas. " -"Porque diabos você construiria isso?" #: lang/json/MONSTER_from_json.py msgid "slime breeder" -msgstr "criador de lodo" +msgstr "" #. ~ Description for slime breeder #: lang/json/MONSTER_from_json.py @@ -61057,13 +54092,10 @@ msgid "" "A salvaged utility robot converted into a mobile incubator for the alien " "blob. It will intermittently release a group of friendly blobs." msgstr "" -" Um robô utilitário recuperado convertido em uma incubadora móvel para " -"oblobalienígena. Ele irá liberar intermitentemente um grupo de " -"bolhasamigáveis." #: lang/json/MONSTER_from_json.py msgid "digestron" -msgstr "digestron" +msgstr "" #. ~ Description for digestron #: lang/json/MONSTER_from_json.py @@ -61073,14 +54105,10 @@ msgid "" "reserves. A useful helper for keeping your front lawn clean of debris... or" " corpses." msgstr "" -" Um robô utilitário recuperado convertido em um aspirador automatizado. " -"Elevai sugar itens perdidos do chão e dissolvê-los com suas " -"reservasinternasde ácido. Um ajudante útil para manter o gramado da frente " -"limpo dedetritos ... ou cadáveres." #: lang/json/MONSTER_from_json.py msgid "bee bot" -msgstr "bot de abelha" +msgstr "" #. ~ Description for bee bot #: lang/json/MONSTER_from_json.py @@ -61089,13 +54117,10 @@ msgid "" "periodically removes and delivers honey combs. It protects the insect " "colony with a mechanical crossbow mounted to its chassis." msgstr "" -" Um robô utilitário recuperado convertido em uma colmeia " -"ambulatorialqueperiodicamente remove e entrega favos de mel. Ele protege a " -"colôniadeinsetos com uma besta mecânica montada em seu chassi." #: lang/json/MONSTER_from_json.py msgid "medical robot" -msgstr "robô médico" +msgstr "" #. ~ Description for medical robot #: lang/json/MONSTER_from_json.py @@ -61104,14 +54129,10 @@ msgid "" "and performing complex surgical operations, usually in that order. Faulty " "bio-diagnostic programs resulted in numerous lawsuits before the Cataclysm." msgstr "" -" Um robô médico de roaming livre capaz de administrar anestésicos " -"potenteserealizar operações cirúrgicas complexas, geralmente nessa ordem. " -"Programasde bio-diagnóstico com defeito resultaram em inúmeras " -"açõesjudiciais antesdo Cataclismo." #: lang/json/MONSTER_from_json.py msgid "assassination robot" -msgstr "robô de assassinato" +msgstr "" #. ~ Description for assassination robot #: lang/json/MONSTER_from_json.py @@ -61120,13 +54141,10 @@ msgid "" "tools have been replaced with a fearsome set of blades, and its hypodermic " "needle now delivers powerful toxins." msgstr "" -" Um robô médico recuperado reaproveitado em uma máquina de assassinato. " -"Suasferramentas cirúrgicas foram substituídas por um temível " -"conjuntodelâminas, e sua agulha hipodérmica agora fornece poderosas toxinas." #: lang/json/MONSTER_from_json.py msgid "elixirator" -msgstr "elixir" +msgstr "" #. ~ Description for elixirator #: lang/json/MONSTER_from_json.py @@ -61134,12 +54152,10 @@ msgid "" "This doesn't work yet. Don't build it... A salvaged medibot with its " "internal pharma-fabricators repurposed to produce mutagen." msgstr "" -" Isso não funciona ainda. Não construa ... Um medibot recuperado " -"comseusfármacos internos reaproveitados para produzir mutagênico." #: lang/json/MONSTER_from_json.py msgid "party bot" -msgstr "bot de festa" +msgstr "" #. ~ Description for party bot #: lang/json/MONSTER_from_json.py @@ -61148,13 +54164,10 @@ msgid "" "lights, and programmed to dance. Why on Earth would you build this crazy " "thing?" msgstr "" -" Um medibot recuperado recheado com maconha, coberto de " -"luzesintermitentesmulticoloridas e programado para dançar. Por que diabos " -"vocêconstruiriaessa coisa louca?" #: lang/json/MONSTER_from_json.py msgid "rat snatcher" -msgstr "ladrão de ratos" +msgstr "" #. ~ Description for rat snatcher #: lang/json/MONSTER_from_json.py @@ -61162,12 +54175,10 @@ msgid "" "A salvaged skitterbot repurposed for hunting small game. It's faster than " "the original model but far less sturdy." msgstr "" -" Um skitterbot recuperado reaproveitado para caçar caça menor. É " -"maisrápidoque o modelo original, mas muito menos robusto." #: lang/json/MONSTER_from_json.py msgid "grab-bot" -msgstr "grab-bot" +msgstr "" #. ~ Description for grab-bot #: lang/json/MONSTER_from_json.py @@ -61175,12 +54186,10 @@ msgid "" "A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's " "meant to work in a pack." msgstr "" -" Um skitterbot recuperado reaproveitado para agarrar e imobilizarinimigos. " -"Está destinado a trabalhar em um pacote." #: lang/json/MONSTER_from_json.py msgid "pest hunter" -msgstr "caçador de pragas" +msgstr "" #. ~ Description for pest hunter #: lang/json/MONSTER_from_json.py @@ -61189,13 +54198,10 @@ msgid "" "small size precludes rapid fire, due to recoil, and requires the use of " "lightweight caseless ammo." msgstr "" -" Um skitterbot recuperado com uma arma de fogo integrada de 8 mm. " -"Otamanhopequeno do robô impede o fogo rápido, devido ao recuo, e requer ouso" -" demunição leve e sem uso do corpo." #: lang/json/MONSTER_from_json.py msgid "insane cyborg" -msgstr "cyborg insano" +msgstr "" #. ~ Description for insane cyborg #: lang/json/MONSTER_from_json.py @@ -61204,13 +54210,10 @@ msgid "" "devices are implanted in its head. This cyborg moves erratically and has a " "confused and deranged look in its eyes." msgstr "" -" Um corpo de robô com a cabeça de um humano. Todos os tipos de " -"fiosedispositivos eletrônicos são implantados em sua cabeça. Este cyborg " -"semovede forma irregular e tem um olhar confuso e demente em seus olhos." #: lang/json/MONSTER_from_json.py msgid "necrotic cyborg" -msgstr "cyborg necrótico" +msgstr "" #. ~ Description for necrotic cyborg #: lang/json/MONSTER_from_json.py @@ -61219,9 +54222,6 @@ msgid "" "animate head retains some of its ability to revive zombies. Why on Earth " "would anyone build such an abomination?" msgstr "" -" Um ciborgue recuperado com a cabeça de um necromante zumbi. A " -"cabeçaanimadamantém algumas de suas habilidades para reviver zumbis. Por " -"quediabosalguém construiria tal abominação?" #. ~ Description for security robot #: lang/json/MONSTER_from_json.py @@ -61229,13 +54229,10 @@ 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 "" -" Um robô de defesa automatizado ainda ativo devido à sua fonte " -"deenergiainterna. Este é equipado com uma espingarda elétrica e " -"umaespingardaintegrada." #: lang/json/MONSTER_from_json.py msgid "military robot" -msgstr "robô militar" +msgstr "" #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -61243,9 +54240,6 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este está armado com um bastão elétrico e uma arma de fogointegrada " -"de5.56mm." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -61253,9 +54247,6 @@ 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 "" -" Um robô de treinamento militar ainda em operação devido ao seu núcleode " -"poder interno. Este está armado com uma arma de paintball de altapotênciae " -"um bastão de espuma." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -61263,9 +54254,6 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este está armado com um bastão elétrico e uma arma de fogointegrada " -"de5.56mm." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -61273,8 +54261,6 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este é armado com um impulso elétrico e uma arma de fogo integradade7.62mm." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -61282,9 +54268,6 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este está armado com um bastão elétrico e uma arma de fogointegrada de " -"50calibres." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -61292,8 +54275,6 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este é armado com um impulso elétrico e uma arma de fogo integradade 8mm." #. ~ Description for military robot #: lang/json/MONSTER_from_json.py @@ -61301,13 +54282,10 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este está armado com um bastão elétrico e uma pistola flechetteintegradade " -"5x50mm." #: lang/json/MONSTER_from_json.py msgid "grenadier robot" -msgstr "granadeiro robô" +msgstr "" #. ~ Description for grenadier robot #: lang/json/MONSTER_from_json.py @@ -61315,13 +54293,10 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este é armado com um impulso elétrico e um lançador de granadasintegradode " -"40mm." #: lang/json/MONSTER_from_json.py msgid "military flame robot" -msgstr "robô de chama militar" +msgstr "" #. ~ Description for military flame robot #: lang/json/MONSTER_from_json.py @@ -61329,12 +54304,10 @@ 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 "" -" Um robô militar ainda em operação devido ao seu núcleo de poderinterno. " -"Este é armado com um impulso elétrico e um lança-chamas integrado." #: lang/json/MONSTER_from_json.py msgid "advanced robot" -msgstr "robô avançado" +msgstr "" #. ~ Description for advanced robot #: lang/json/MONSTER_from_json.py @@ -61342,12 +54315,10 @@ msgid "" "An advanced robot still functioning due to its internal fusion core. This " "model is armed with a powerful laser-emitter." msgstr "" -" Um robô avançado ainda funcionando devido ao seu núcleo de fusãointerno. " -"Este modelo está armado com um poderoso emissor de laser." #: lang/json/MONSTER_from_json.py msgid "laser-emitting robot" -msgstr "robô emissor de laser" +msgstr "" #. ~ Description for laser-emitting robot #: lang/json/MONSTER_from_json.py @@ -61355,12 +54326,10 @@ msgid "" "An advanced robot still functioning due to its internal fusion core. This " "model is furnished with a powerful laser-emitter." msgstr "" -" Um robô avançado ainda funcionando devido ao seu núcleo de fusãointerno. " -"Este modelo é equipado com um poderoso emissor de laser." #: lang/json/MONSTER_from_json.py msgid "plasma-ejecting robot" -msgstr "robô de ejeção de plasma" +msgstr "" #. ~ Description for plasma-ejecting robot #: lang/json/MONSTER_from_json.py @@ -61368,12 +54337,10 @@ msgid "" "An advanced robot still functioning due to its internal fusion core. This " "model is furnished with a powerful plasma-ejector." msgstr "" -" Um robô avançado ainda funcionando devido ao seu núcleo de fusãointerno. " -"Este modelo é equipado com um poderoso ejetor de plasma." #: lang/json/MONSTER_from_json.py msgid "railgun robot" -msgstr "robô railgun" +msgstr "" #. ~ Description for railgun robot #: lang/json/MONSTER_from_json.py @@ -61381,12 +54348,10 @@ msgid "" "An advanced robot still functioning due to its internal fusion core. This " "model is furnished with a powerful railgun." msgstr "" -" Um robô avançado ainda funcionando devido ao seu núcleo de fusãointerno. " -"Este modelo é equipado com uma poderosa railgun." #: lang/json/MONSTER_from_json.py msgid "electro-casting robot" -msgstr "robô de eletro-fundição" +msgstr "" #. ~ Description for electro-casting robot #: lang/json/MONSTER_from_json.py @@ -61394,12 +54359,10 @@ msgid "" "An advanced robot still functioning due to its internal fusion core. This " "model is furnished with a powerful electro-caster." msgstr "" -" Um robô avançado ainda funcionando devido ao seu núcleo de fusãointerno. " -"Este modelo é equipado com um poderoso eletroduto." #: lang/json/MONSTER_from_json.py msgid "EMP-projecting robot" -msgstr "Robô de projeção EMP" +msgstr "" #. ~ Description for EMP-projecting robot #: lang/json/MONSTER_from_json.py @@ -61407,12 +54370,10 @@ msgid "" "An advanced robot still functioning due to its internal fusion core. This " "model is furnished with a powerful EMP-projector." msgstr "" -" Um robô avançado ainda funcionando devido ao seu núcleo de fusãointerno. " -"Este modelo é fornecido com um poderoso projetor EMP." #: lang/json/MONSTER_from_json.py msgid "junkyard cowboy" -msgstr "vaqueiro junkyard" +msgstr "" #. ~ Description for junkyard cowboy #: lang/json/MONSTER_from_json.py @@ -61420,13 +54381,10 @@ 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 "" -" Um robô de defesa resgatado com uma espingarda e duas serrascirculares. " -"Devido ao software de segmentação por bootleg, ele só podeatacar " -"alvospróximos." #: lang/json/MONSTER_from_json.py msgid "shortcircuit samurai" -msgstr "samurai de curto-circuito" +msgstr "" #. ~ Description for shortcircuit samurai #: lang/json/MONSTER_from_json.py @@ -61435,13 +54393,10 @@ msgid "" "taxed power systems result in somewhat sluggish movement and occasional " "discharges. Keep a safe distance!" msgstr "" -" Um robô de defesa recuperado com duas lâminas eletrificadas. Os " -"sistemasdeenergia sobrecarregados resultam em movimentos um tanto lentos " -"edescargasocasionais. Mantenha uma distância segura!" #: lang/json/MONSTER_from_json.py msgid "slapdash paladin" -msgstr "paladino descuidado" +msgstr "" #. ~ Description for slapdash paladin #: lang/json/MONSTER_from_json.py @@ -61450,9 +54405,6 @@ msgid "" "searing hot blades. The burning fuel reserves make the robot noisy and " "smokey." msgstr "" -" Um robô de defesa recuperado equipado com um lança-chamas caseiro " -"eduaslâminas quentes. As reservas de combustível em chamas tornam " -"orobôbarulhento e esfumaçado." #: lang/json/MONSTER_from_json.py msgid "robo-guardian" @@ -61465,14 +54417,10 @@ msgid "" "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 "" -" Um robô militar resgatado reformado com um par de armas de fogointegradasde" -" 9 mm. Múltiplas armas fornecem uma alta taxa de fogo, mas " -"ossensoresmanipulados pelo júri limitam o alcance efetivo e a precisão. " -"Fazum bomguarda-costas de perto." #: lang/json/MONSTER_from_json.py msgid "robote deluxe" -msgstr "luxo robótico" +msgstr "" #. ~ Description for robote deluxe #: lang/json/MONSTER_from_json.py @@ -61481,13 +54429,10 @@ msgid "" "firearms. An opulent luxury-bot suitable for those who wish to survive the " "apocalypse in style." msgstr "" -" Um robô banhado a ouro cravejado de diamantes armado com um par de " -"armasdefogo integradas de 9mm. Um luxo opulento-bot adequado para " -"aquelesquedesejam sobreviver ao apocalipse em grande estilo." #: lang/json/MONSTER_from_json.py msgid "robo-protector" -msgstr "protetor de roubo" +msgstr "" #. ~ Description for robo-protector #: lang/json/MONSTER_from_json.py @@ -61496,13 +54441,10 @@ msgid "" "modified firearm is only capable of three round bursts, but range and " "accuracy are decent. It makes for a solid combat ally." msgstr "" -" Um robô militar resgatado reformado com um rifle integrado de 5.56mm. " -"Aarmade fogo modificada só é capaz de três rajadas redondas, mas o alcancee " -"aprecisão são decentes. Isso contribui para um sólido combate aliado." #: lang/json/MONSTER_from_json.py msgid "robo-defender" -msgstr "robo-defensor" +msgstr "" #. ~ Description for robo-defender #: lang/json/MONSTER_from_json.py @@ -61512,14 +54454,10 @@ msgid "" "software requires an extended pause between shots. It makes for a good long " "range sniper." msgstr "" -" Um robô militar recuperado equipado com um rifle 50bmg integrado. " -"Aóticaaprimorada fornece visão noturna e excelente alcance, mas o " -"softwaredesegmentação glitch requer uma pausa prolongada entre as fotos. Faz" -" umbomatirador de longo alcance." #: lang/json/MONSTER_from_json.py msgid "glittering lady" -msgstr "senhora brilhante" +msgstr "" #. ~ Description for glittering lady #: lang/json/MONSTER_from_json.py @@ -61528,14 +54466,10 @@ msgid "" " It has two integral lasers and emits a steady pulse of blinding flashes. " "Due to mismatched focusing lenses, the lasers have limited range." msgstr "" -" Um robô avançado recuperado transformado em um farol luminoso dedestruição." -" Possui dois lasers integrais e emite um pulso constante deflashes cegantes." -" Devido às lentes de focalização incompatíveis, os laserstêm " -"alcancelimitado." #: lang/json/MONSTER_from_json.py msgid "bitter spinster" -msgstr "solteirona amarga" +msgstr "" #. ~ Description for bitter spinster #: lang/json/MONSTER_from_json.py @@ -61544,10 +54478,6 @@ msgid "" "acid fermenter feeds a ranged glob spitter and sprayer. The many tanks and " "pipes weaken the robot structurally, making it somewhat fragile." msgstr "" -" Um robô militar recuperado transformado em um monstro cáustico. " -"Umfermentador ácido interno alimenta um spitter glob glob e pulverizador. " -"Osmuitos tanques e tubulações enfraquecem estruturalmente o robô, tornando- " -"oum pouco frágil." #. ~ Description for chicken walker #: lang/json/MONSTER_from_json.py @@ -61558,16 +54488,10 @@ msgid "" "against attackers, it is an effective automated sentry, though production " "was limited due to a legal dispute." msgstr "" -" O Northrup ATSV, um robô enorme, fortemente armado e blindado, " -"andandosobreum par de pernas de articulação reversa. Armado com um lançador " -"degranadasanti-veículo de 40 mm, uma pistola anti-pessoal de 5,56 " -"eacapacidade de seeletrificar contra os atacantes, é uma " -"sentinelaautomatizada eficaz, emboraa produção tenha sido limitada devido a " -"umadisputa judicial." #: lang/json/MONSTER_from_json.py msgid "chainsaw horror" -msgstr "horror da serra de cadeia" +msgstr "" #. ~ Description for chainsaw horror #: lang/json/MONSTER_from_json.py @@ -61578,15 +54502,10 @@ msgid "" " shrieks of distorted music. No one in their right mind would craft such an" " awful creature." msgstr "" -" Um pastor de galinhas resgatado modificado em um monstro " -"horríveladornadocom crânios e espinhos. Ele trocou suas armas de longo " -"alcance porumconjunto de motosserras zunindo. Um sistema de alto-falante " -"foiinstaladopara explodir gritos terríveis de música distorcida. Ninguém " -"emsãconsciência criaria uma criatura tão horrível." #: lang/json/MONSTER_from_json.py msgid "screeching terror" -msgstr "terror estridente" +msgstr "" #. ~ Description for screeching terror #: lang/json/MONSTER_from_json.py @@ -61597,15 +54516,10 @@ msgid "" "shrieks of distorted music. No one in their right mind would craft such a " "hellish beast." msgstr "" -" Um pastor de galinhas resgatado modificado em um monstro " -"horríveladornadocom crânios e espinhos. Ele trocou suas armas de longo " -"alcance porumconjunto de lanças movidas a pistão. Um sistema de alto- " -"falantefoiinstalado para explodir gritos terríveis de música distorcida. " -"Ninguémemsã consciência criaria uma besta tão infernal." #: lang/json/MONSTER_from_json.py msgid "hooked nightmare" -msgstr "pesadelo viciado" +msgstr "" #. ~ Description for hooked nightmare #: lang/json/MONSTER_from_json.py @@ -61616,12 +54530,6 @@ msgid "" "installed to blast terrifying shrieks of distorted music. No one in their " "right mind would craft such a twisted abomination." msgstr "" -" Um pastor de galinhas resgatado modificado em um monstro " -"horríveladornadocom crânios e espinhos. Ele trocou suas armas de longo " -"alcance porumconjunto de correntes giratórias que terminam em ganchos " -"sangrentos. Umsistema de alto-falante foi instalado para explodir gritos " -"terríveisdemúsica distorcida. Ninguém em sã consciência criaria uma " -"abominaçãotãodistorcida." #. ~ Description for Beagle Mini-Tank UGV #: lang/json/MONSTER_from_json.py @@ -61630,14 +54538,10 @@ msgid "" "anti-tank missile launcher, 40mm grenade launcher, and numerous anti-" "infantry weapons, it's designed for high-risk urban fighting." msgstr "" -" O Northrup Beagle é uma guerra urbana do tamanho de um refrigeradorUGV. " -"Ostentando um lançador de mísseis antitanque, lançador de granadas de40 mme " -"numerosas armas anti-infantaria, foi projetado para combates urbanosdealto " -"risco." #: lang/json/MONSTER_from_json.py msgid "fist king" -msgstr "rei do punho" +msgstr "" #. ~ Description for fist king #: lang/json/MONSTER_from_json.py @@ -61647,15 +54551,10 @@ msgid "" " 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 "" -" Um tankbot recuperado equipado com um par de poderosos " -"martelospneumáticosque ele usa para esmagar qualquer coisa em seu caminho, " -"incluindoedifícios. Apesar de não ter armas de longo alcance, sua armadurae " -"forçafazem com que ele seja páreo para os monstros maiores. Apenas umlouco " -"seatreveria a construir um gigante tão imprudente." #: lang/json/MONSTER_from_json.py msgid "atomic sultan" -msgstr "sultão atômico" +msgstr "" #. ~ Description for atomic sultan #: lang/json/MONSTER_from_json.py @@ -61666,11 +54565,6 @@ msgid "" "radioactive gas leaks. Only a lunatic would dare build such a reckless " "monster." msgstr "" -" Um tankbot recuperado com queimadores quentes. Apesar de não ter " -"armasdelongo alcance, sua armadura e força fazem com que seja páreo " -"paraosmaiores inimigos. Múltiplos núcleos de fusão fornecem ao robô " -"umaamplapotência, mas também causam vazamentos de gás radioativo. " -"Apenasumlunático ousaria construir um monstro tão imprudente." #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "gelatinous mass" @@ -61685,8 +54579,6 @@ msgstr[1] "" msgid "" "An escaping noisy blob, catch it before it brings in every zombie for miles!" msgstr "" -" massa gelatinosaUma bolha barulhenta escapando, pegue-a antes que " -"elaatraiacada zumbi por milhas!" #: lang/json/MONSTER_from_json.py lang/json/TOOL_from_json.py msgid "gray mass" @@ -63006,11 +55898,6 @@ msgid "" "the amount of plutonium it can hold. Note that this device is incompatible " "with the atomic battery mod." msgstr "" -" reator core expansion deviceEste é um dispositivo de expansão para " -"usoemequipamentos movidos a plutônio. Com habilidade de " -"eletrônicasuficiente, você poderia anexar isso a uma ferramenta atômica para" -" dobrar aquantidadede plutônio que ela pode conter. Note que este " -"dispositivo éincompatívelcom o mod de bateria atômica." #: lang/json/TOOLMOD_from_json.py msgid "battery compartment mod" @@ -63024,9 +55911,6 @@ msgid "" "A battery compartment mod that allows using vehicle batteries and small " "storage batteries in regular tools." msgstr "" -" compartimento da bateria modA mod compartimento da bateria que permite " -"ousode baterias de veículos e pequenas baterias de armazenamento " -"emferramentasregulares." #: lang/json/TOOLMOD_from_json.py msgid "light battery mod" @@ -63091,14 +55975,14 @@ msgstr[1] "" #. ~ Use action msg for mining helmet. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the helmet on." -msgstr "Capacete de mineraçãoVocê liga o capacete." +msgstr "" #. ~ Use action need_charges_msg for mining helmet. #. ~ Use action need_charges_msg for hazardous environment helmet. #. ~ Use action need_charges_msg for C.R.I.T helmet (off). #: lang/json/TOOL_ARMOR_from_json.py msgid "The helmet's batteries are dead." -msgstr "As baterias do capacete estão mortas." +msgstr "" #. ~ Description for mining helmet #: lang/json/TOOL_ARMOR_from_json.py @@ -63107,9 +55991,6 @@ msgid "" "turn the flashlight on and provide light, assuming it is charged with " "batteries." msgstr "" -" Este é um capacete de mineração com uma lanterna LED pesados. " -"Usarissoligará a lanterna e fornecerá luz, supondo que ela esteja " -"carregadacombaterias." #: lang/json/TOOL_ARMOR_from_json.py msgid "mining helmet (on)" @@ -63154,7 +56035,7 @@ msgstr[1] "" #: lang/json/item_action_from_json.py lang/json/item_action_from_json.py #: src/iuse.cpp msgid "Turn off" -msgstr "capacete de mineração (ligado) Desligue" +msgstr "" #. ~ Use action msg for mining helmet (on). #. ~ Use action msg for headlamp (on). @@ -63172,8 +56053,6 @@ 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 "" -" Este é um capacete de mineração com uma lanterna LED pesados. Alanternaestá" -" ligada e drenando continuamente suas baterias. Use-o paradesligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "game watch" @@ -63187,9 +56066,6 @@ msgid "" "A waterproof digital watch with a built-in electronic game system, powered " "by standard batteries. Activate to play." msgstr "" -" game watchUm relógio digital à prova d'água com um sistema " -"dejogoeletrônico integrado, alimentado por baterias padrão. Ative para " -"jogar." #: lang/json/TOOL_ARMOR_from_json.py msgid "hologram cloak" @@ -63204,9 +56080,6 @@ msgid "" "reflective carbide. When activated, it will create an holographic decoy of " "its wearer." msgstr "" -" manto de hologramaUm manto tecido com fibras metálicas e coberto " -"comchapashexagonais de metal duro refletivo. Quando ativado, ele criará " -"umchamarizholográfico de seu usuário." #: lang/json/TOOL_ARMOR_from_json.py msgid "fedora" @@ -63218,7 +56091,7 @@ msgstr[1] "" #. ~ Use action menu_text for straw fedora. #: lang/json/TOOL_ARMOR_from_json.py msgid "Tip" -msgstr "fedoraTip" +msgstr "" #. ~ Use action msg for fedora. #. ~ Use action msg for straw fedora. @@ -63233,8 +56106,6 @@ msgid "" "A high-crowned, wide-brimmed, sable colored fedora. Its brim helps keep the" " sun out of your eyes. The perfect hat for treasure hunting." msgstr "" -" Um fedora colorido, de coroas e abas largas. Sua borda ajuda a manter " -"osollonge de seus olhos. O chapéu perfeito para a caça ao tesouro." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of thermal electric socks" @@ -63278,8 +56149,6 @@ msgid "" "This is a pair of socks with internal battery-powered heating elements. Use" " it to turn it on." msgstr "" -" Este é um par de meias com elementos de aquecimento internos " -"alimentadosporbateria. Use-o para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of thermal electric socks (on)" @@ -63310,9 +56179,6 @@ msgid "" "They are currently on, and continually draining batteries. Use it to turn " "them off." msgstr "" -" Este é um par de meias com elementos de aquecimento internos " -"alimentadosporbateria. Eles estão no momento, e continuamente drenando as " -"baterias. Use-opara desligá-los." #: lang/json/TOOL_ARMOR_from_json.py msgid "thermal electric suit" @@ -63326,9 +56192,6 @@ msgid "" "This is a full-body suit of thin thermal underwear equipped with internal " "battery-powered heating elements. Use it to turn it on." msgstr "" -" ternura térmica Esta é uma roupa de corpo inteiro de roupa " -"interiortérmicafina equipada com elementos de aquecimento internos movidos " -"abateria. Use-o para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "thermal electric suit (on)" @@ -63343,10 +56206,6 @@ msgid "" "battery-powered heating elements. It is currently on, and continually " "draining batteries. Use it to turn it off." msgstr "" -" ternura térmica (on) Esta é uma roupa de corpo inteiro de " -"roupainteriortérmica fina equipada com elementos de aquecimento " -"internosalimentados porbateria. Ele está atualmente ligado e continuamente " -"drenandoas baterias. Use-o para desligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of thermal electric gloves" @@ -63360,8 +56219,6 @@ msgid "" "This is a pair of gloves with internal battery-powered heating elements. " "Use it to turn it on." msgstr "" -" par de luvas térmicas elétricasEste é um par de luvas com " -"elementosdeaquecimento internos movidos a bateria. Use-o para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of thermal electric gloves (on)" @@ -63376,9 +56233,6 @@ msgid "" "They are currently on, and continually draining batteries. Use it to turn " "them off." msgstr "" -" par de luvas termelétricas (on) Este é um par de luvas com " -"elementosdeaquecimento internos alimentados por bateria. Eles estão no " -"momento, econtinuamente drenando as baterias. Use-o para desligá-los." #: lang/json/TOOL_ARMOR_from_json.py msgid "thermal electric balaclava" @@ -63392,9 +56246,6 @@ msgid "" "This is a snug cloth mask with internal battery-powered heating elements. " "Use it to turn it on." msgstr "" -" balaclava elétrica térmicaEsta é uma máscara de pano " -"confortávelcomelementos de aquecimento internos movidos a bateria. Use-o " -"para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "thermal electric balaclava (on)" @@ -63409,10 +56260,6 @@ msgid "" "It is are currently on, and continually draining batteries. Use it to turn " "it off." msgstr "" -" balaclava elétrica térmica (on) Esta é uma máscara de pano " -"confortávelcomelementos de aquecimento internos movidos a bateria. Ele " -"estáatualmenteligado e continuamente drenando as baterias. Use-o para " -"desligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of binoculars" @@ -63428,10 +56275,6 @@ msgid "" "the distance around you that is mapped during your travels. You could also " "use them to focus the sunlight." msgstr "" -" par de binóculosUm par de ótica com uma alça de pescoço anexada. " -"Útilparaver longas distâncias. Usar este item ou carregá-lo em " -"seuinventáriodobrará a distância ao seu redor que é mapeada durante " -"suasviagens. Vocêtambém pode usá-los para focar a luz do sol." #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp" @@ -63442,12 +56285,12 @@ msgstr[1] "" #. ~ Use action msg for headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the headlamp on." -msgstr "FarolVocê liga o farol." +msgstr "" #. ~ Use action need_charges_msg for headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "The headlamp batteries are dead." -msgstr "As baterias dos faróis estão mortas." +msgstr "" #. ~ Description for headlamp #: lang/json/TOOL_ARMOR_from_json.py @@ -63455,8 +56298,6 @@ 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 "" -" Este é um farol de LED com uma alça ajustável para serusadoconfortavelmente" -" na sua cabeça ou preso ao seu capacete. Use-o paraligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "headlamp (on)" @@ -63471,9 +56312,6 @@ 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 "" -" Farol (aceso) Este é um farol LED com uma alça ajustável para " -"serusadoconfortavelmente na cabeça ou preso ao capacete. Está ligado " -"edrenandocontinuamente as baterias. Use-o para desligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor headlamp" @@ -63484,12 +56322,12 @@ msgstr[1] "" #. ~ Use action msg for survivor headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the survivor headlamp on." -msgstr "Farol do sobrevivente Você liga o farol do sobrevivente." +msgstr "" #. ~ Use action need_charges_msg for survivor headlamp. #: lang/json/TOOL_ARMOR_from_json.py msgid "The survivor headlamp batteries are dead." -msgstr "As baterias dos faróis sobreviventes estão mortas." +msgstr "" #. ~ Description for survivor headlamp #: lang/json/TOOL_ARMOR_from_json.py @@ -63499,10 +56337,6 @@ msgid "" "allows it to be comfortably worn on your head or attached to your helmet. " "Use it to turn it on." msgstr "" -" Este é um farol LED feito sob encomenda reforçado para ser maisdurável, " -"mais brilhante e com uma bateria maior e mais eficiente. A " -"alçaajustávelpermite que ela seja confortavelmente usada em sua cabeça ou " -"presaao seucapacete. Use-o para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor headlamp (on)" @@ -63518,11 +56352,6 @@ 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 "" -" farol de sobrevivência (ligado) Este é um farol de LED feito " -"sobencomendareforçado para ser mais durável, mais brilhante e com uma " -"bateriamaior emais eficiente. A alça ajustável permite que ela " -"sejaconfortavelmenteusada em sua cabeça ou presa ao seu capacete. Está " -"ligado edrenandocontinuamente as baterias. Use-o para desligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor" @@ -63537,10 +56366,6 @@ 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 "" -" Armadura de combate RM13Internamente equipado com um máximo de dezcélulasde" -" combustível de plutónio, este fato de corpo inteiro de armaduramilitarnegra" -" e elegante representa o ápice da tecnologia de armadura nãorígida " -"daRivtech. Use-o para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "RM13 combat armor (on)" @@ -63556,11 +56381,6 @@ msgid "" "rigid powered armor technology. It is turned on, and continually draining " "power. Use it to turn it off." msgstr "" -" Armadura de Combate RM13 (no) Internamente alimentado por um máximo " -"dedezcélulas de combustível de plutônio, este traje de corpo inteiro " -"dearmaduramilitar preta e elegante representa o ápice da tecnologia " -"dearmadura nãorígida da Rivtech. Está ligado e continuamente " -"drenandoenergia. Use-o paradesligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "rebreather mask" @@ -63584,9 +56404,6 @@ msgid "" "recycles your exhaled breath for rebreathing while underwater. Use it to " "turn it on." msgstr "" -" Uma máscara usada sobre a boca que, quando carregada com " -"osfiltrosadequados, recicla a respiração exalada para a re- " -"respiraçãoenquantoestiver debaixo d'água. Use-o para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "rebreather mask (on)" @@ -63601,10 +56418,6 @@ 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 "" -" máscara rebreather (on) Uma máscara usada sobre a boca que, " -"quandocarregadacom os filtros adequados, recicla a respiração exalada para a" -" re-respiraçãoenquanto estiver debaixo d'água. Está ligado e " -"consomecontinuamente oseu filtro. Use-o para desligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL rebreather mask" @@ -63620,11 +56433,6 @@ msgid "" "has been expanded substantially and can accommodate exotic anatomy. Use it " "to turn it on." msgstr "" -" Máscara de rebreather XL Uma máscara usada sobre a boca que, " -"quandocarregada com os filtros apropriados, recicla a respiração exaladapara" -" are-respiração enquanto estiver debaixo d'água. Este modelo " -"foiampliadosubstancialmente e pode acomodar anatomia exótica. Use-o para " -"ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL rebreather mask (on)" @@ -63640,11 +56448,6 @@ 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 "" -" Máscara de rebreather XL (on) Uma máscara usada sobre a boca que, " -"quandocarregada com os filtros apropriados, recicla a respiração exaladapara" -" are-respiração enquanto estiver debaixo d'água. Este modelo " -"foiampliadosubstancialmente e pode acomodar anatomia exótica. Está ligado " -"econsomecontinuamente o seu filtro. Use-o para desligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "filter mask" @@ -63659,9 +56462,6 @@ msgid "" "smoke, dust, and other contaminants quite well. It must be prepared before " "use." msgstr "" -" máscara de filtroUma máscara que se prende na boca e no nariz e filtra oar." -" Protege de fumaça, poeira e outros contaminantes muito bem. " -"Deveserpreparado antes de usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "gas mask" @@ -63676,9 +56476,6 @@ msgid "" "protection from smoke, teargas, and other contaminants. It must be prepared" " before use." msgstr "" -" máscara de gásUma máscara de gás cheia que cobre o rosto e os olhos. " -"Forneceexcelente proteção contra fumaça, gás lacrimogêneo e " -"outroscontaminantes. Deve ser preparado antes de usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL gas mask" @@ -63693,10 +56490,6 @@ msgid "" "anatomy. Provides excellent protection from smoke, teargas, and other " "contaminants. It must be prepared before use." msgstr "" -" Máscara de gás XL Uma máscara bastante espaçosa com filtrosacoplados, " -"projetada para acomodar a anatomia exótica. Fornece excelenteproteçãocontra " -"fumaça, gás lacrimogêneo e outros contaminantes. Deve serpreparadoantes de " -"usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor firemask" @@ -63711,9 +56504,6 @@ msgid "" "provides excellent protection from heat, smoke, teargas, and shrapnel. It " "must be prepared before use." msgstr "" -" firemask survivorUma máscara de gás personalizada, com isolamento Nomex, " -"quecobre o rosto e os olhos. Ele fornece excelente proteção contracalor, " -"fumaça, gás lacrimogêneo e estilhaços. Deve ser preparado antes deusar." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor firemask" @@ -63728,10 +56518,6 @@ msgid "" "regardless of your state of mutation. It provides excellent protection from" " heat, smoke, teargas, and shrapnel. It must be prepared before use." msgstr "" -" XL survivor firemaskUma máscara de gás personalizada, com isolamentoNomex, " -"que cobre o rosto e os olhos, independentemente do seu estado demutação. Ele" -" fornece excelente proteção contra calor, fumaça, gáslacrimogêneo " -"eestilhaços. Deve ser preparado antes de usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "firefighter PBA mask" @@ -63746,9 +56532,6 @@ msgid "" "apparatus provides excellent protection from smoke, flame, and other " "dangers. It must be prepared before use." msgstr "" -" bombeiro máscara PBAUma máscara facial comumente usada pelos bombeiros. " -"Oaparelho de proteção respiratória fornece excelente proteção contrafumaça, " -"chamas e outros perigos. Deve ser preparado antes de usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "heavy survivor mask" @@ -63763,10 +56546,6 @@ msgid "" "Provides excellent protection from smoke, teargas, and shrapnel. It must be" " prepared before use." msgstr "" -" Máscara de Sobrevivência PesadaUma máscara de gás de aço " -"reforçadaepersonalizada que cobre o rosto e os olhos. Fornece " -"excelenteproteçãocontra fumaça, gás lacrimogêneo e estilhaços. Deve ser " -"preparadoantes deusar." #: lang/json/TOOL_ARMOR_from_json.py msgid "light survivor mask" @@ -63781,9 +56560,6 @@ msgid "" " excellent protection from smoke, teargas, and shrapnel. It must be " "prepared before use." msgstr "" -" Máscara de Sobrevivência LeveUma máscara de gás reforçada epersonalizadaque" -" cobre o rosto e os olhos. Fornece excelente proteçãocontra fumaça, " -"gáslacrimogêneo e estilhaços. Deve ser preparado antes deusar." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor mask" @@ -63798,9 +56574,6 @@ msgid "" "Provides excellent protection from smoke, teargas, and shrapnel. It must be" " prepared before use." msgstr "" -" Máscara de SobrevivênciaUma máscara de gás reforçada e " -"personalizadaquecobre o rosto e os olhos. Fornece excelente proteção contra " -"fumaça, gáslacrimogêneo e estilhaços. Deve ser preparado antes de usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor mask" @@ -63815,10 +56588,6 @@ msgid "" " of your state of mutation. Provides excellent protection from smoke, " "teargas, and shrapnel. It must be prepared before use." msgstr "" -" Máscara XL de SobrevivênciaUma máscara de gás reforçada e " -"personalizadaquecobre o rosto e os olhos, independentemente do seu estado " -"demutação. Fornece excelente proteção contra fumaça, gás lacrimogêneo " -"eestilhaços. Deve ser preparado antes de usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "winter survivor mask" @@ -63833,10 +56602,6 @@ msgid "" "warm, it still provides excellent protection from smoke, teargas, and " "shrapnel. It must be prepared before use." msgstr "" -" Máscara de Sobrevivência de InvernoUma máscara de gás personalizada, " -"feitade pele, que cobre o rosto e os olhos. Muito quente, " -"aindaofereceexcelente proteção contra fumaça, gás lacrimogêneo e estilhaços." -" Deve serpreparado antes de usar." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL winter survivor mask" @@ -63852,11 +56617,6 @@ msgid "" "excellent protection from smoke, teargas, and shrapnel. It must be prepared" " before use." msgstr "" -" Máscara XL de Sobrevivência de InvernoUma máscara de gás feita sob " -"medidaecom recorte de pele que cobre o rosto e os olhos, independentemente " -"doseuestado de mutação. Muito quente, ainda oferece excelente " -"proteçãocontrafumaça, gás lacrimogêneo e estilhaços. Deve ser preparado " -"antes deusar." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of light amp goggles" @@ -63870,9 +56630,6 @@ msgid "" "A pair of battery-powered goggles that amplify ambient light, allowing you " "to see in the dark. Use it to turn them on." msgstr "" -" óculos de par de luzes Um par de óculos de proteção movidos a " -"bateriaqueamplificam a luz ambiente, permitindo que você veja no escuro. " -"Use-oparaligá-los." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of light amp goggles (on)" @@ -63900,9 +56657,6 @@ msgid "" "A pair of battery-powered goggles that grant infrared vision, allowing you " "to see warm-blooded creatures in the dark. Use it to turn them on." msgstr "" -" par de óculos de infravermelhoUm par de óculos de proteção movidos " -"abateriaque garantem a visão infravermelha, permitindo que você " -"vejacriaturas desangue quente no escuro. Use-o para ligá-los." #: lang/json/TOOL_ARMOR_from_json.py msgid "pair of infrared goggles (on)" @@ -63916,9 +56670,6 @@ msgid "" "A pair of battery-powered goggles that grant infrared vision, allowing you " "to see warm-blooded creatures in the dark. Use it to turn them off." msgstr "" -" par de óculos de infravermelho (on) Um par de óculos de proteção " -"movidosabateria que garantem a visão infravermelha, permitindo que " -"vocêvejacriaturas de sangue quente no escuro. Use-o para desligá-los." #: lang/json/TOOL_ARMOR_from_json.py msgid "wearable RX12 jet injector" @@ -63932,9 +56683,6 @@ msgid "" "This is a modified RX12 jet injector which can be worn on the body. A label" " on the side warns against using more than two doses per hour." msgstr "" -" Injetor de jato RX12 vestível Este é um injetor de jato RX12 modificadoque " -"pode ser usado no corpo. Um rótulo ao lado adverte contra o uso de " -"maisdeduas doses por hora." #: lang/json/TOOL_ARMOR_from_json.py msgid "RX11 stimulant delivery system" @@ -63949,10 +56697,6 @@ msgid "" " on the user's body. A simple press of its activator injects powerful " "chemical stimulants into the bloodstream without using a needle." msgstr "" -" Sistema de entrega de estimulantes RX11O sistema de " -"fornecimentodeestimulantes Rivtech RX11 é um sistema auto-injector de jacto " -"usadonocorpo do utilizador. Uma simples pressão de seu ativador injeta " -"poderosos estimulantes químicos na corrente sanguínea sem usar uma agulha." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor divemask" @@ -63968,10 +56712,6 @@ msgid "" "provides excellent protection from harm as well providing breathing gas " "while underwater. Use it to turn it on." msgstr "" -" Sobrevivente divemaskUma máscara rebreather blindada e " -"personalizadaquecobre o rosto e os olhos. Ele fornece excelente proteção " -"contra danos, alémde fornecer gás para respirar enquanto estiver embaixo " -"d'água. Use-opara ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "survivor divemask (on)" @@ -63987,11 +56727,6 @@ msgid "" "while underwater. It is turned on, and continually consuming its filter. " "Use it to turn it off." msgstr "" -" máscara de mergulho de sobrevivente (on) Uma máscara de rebreatherblindada," -" personalizada, que cobre o rosto e os olhos. Ele forneceexcelente " -"proteçãocontra danos, além de fornecer gás para respirarenquanto estiver " -"embaixod'água. Está ligado e consome continuamente oseu filtro. Use-o " -"paradesligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "XL survivor divemask" @@ -64013,12 +56748,6 @@ msgid "" " harm as well providing breathing gas while underwater. It is turned on, " "and continually consuming its filter. Use it to turn it off." msgstr "" -" Sobrevivente XL divemaskXL divemask sobrevivente (on) Uma " -"máscaraderebreather blindada, personalizada, que cobre o rosto e osolhos, " -"independentemente do seu estado de mutação. Ele fornece " -"excelenteproteçãocontra danos, além de fornecer gás para respirar enquanto " -"estiverembaixod'água. Está ligado e consome continuamente o seu filtro. " -"Use-oparadesligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "unfolded poncho" @@ -64031,8 +56760,6 @@ msgstr[1] "" msgid "" "A lightweight plastic rain poncho with a hood. Use it to fold for storage." msgstr "" -" Poncho desdobrávelUm poncho de plástico leve com capuz. Use-o " -"paradobrarpara armazenamento." #: lang/json/TOOL_ARMOR_from_json.py msgid "emergency blanket" @@ -64046,8 +56773,6 @@ msgid "" "A blanket made of space-age material that covers your most important body " "parts. Use it to fold for storage." msgstr "" -" cobertor de emergênciaUm cobertor feito de material da era espacialquecobre" -" suas partes mais importantes do corpo. Use-o para dobrarparaarmazenamento." #: lang/json/TOOL_ARMOR_from_json.py msgid "radiation biomonitor" @@ -64061,9 +56786,6 @@ msgid "" "A small battery-powered biometric safety device worn on the wrist. Activate" " to check your current level of radiation exposure." msgstr "" -" biomonitor de radiação Um pequeno dispositivo de " -"segurançabiométricoalimentado por bateria usado no pulso. Ative para " -"verificar o seunívelatual de exposição à radiação." #: lang/json/TOOL_ARMOR_from_json.py msgid "hairpin" @@ -64074,7 +56796,7 @@ msgstr[1] "" #. ~ Description for hairpin #: lang/json/TOOL_ARMOR_from_json.py msgid "A plain hairpin to keep your hair in place." -msgstr "hairpinUm hairpin liso para manter seu cabelo no lugar." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "fancy hairpin" @@ -64085,7 +56807,7 @@ msgstr[1] "" #. ~ Description for fancy hairpin #: lang/json/TOOL_ARMOR_from_json.py msgid "A pink hairpin with cute flower textures." -msgstr "hairpin fantasiaUm gancho de cabelo rosa com texturas de flor bonito." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "towel" @@ -64101,11 +56823,6 @@ msgid "" "slum it, struggle against terrible odds, win through and still know where " "their towel is, is clearly a force to be reckoned with." msgstr "" -" toalhaEsta é uma toalha fofa e grande. Pode ser usado para sesecar. " -"Qualquer pessoa que possa viajar o comprimento e a largura doapocalipse, " -"atacá-lo, enfrentá-lo, lutar contra adversidades terríveis, vencer e " -"aindasaber onde está sua toalha, é claramente uma força a serlevada em " -"conta." #. ~ Description for towel #: lang/json/TOOL_ARMOR_from_json.py @@ -64113,8 +56830,6 @@ msgid "" "This is a large, sopping wet towel. If you wait a little bit, it should dry" " out. Don't panic." msgstr "" -" Esta é uma toalha grande e encharcada. Se você esperar um pouco, devesecar." -" Não entre em pânico." #: lang/json/TOOL_ARMOR_from_json.py msgid "soiled towel" @@ -64128,9 +56843,6 @@ msgid "" "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." msgstr "" -" Toalha suja Esta é uma toalha grande, coberta com um líquido " -"grossoegrudento. Você precisará lavá-lo em um pouco de água para torná- " -"loutilizável novamente. Não entre em pânico." #: lang/json/TOOL_ARMOR_from_json.py msgid "straw fedora" @@ -64144,8 +56856,6 @@ msgid "" "Straw fedora hat, comfortable and stylish. Its brim helps keep the sun out " "of your eyes." msgstr "" -" chapéu de palha fedoraStraw fedora, confortável e elegante. Sua bordaajudaa" -" manter o sol longe de seus olhos." #: lang/json/TOOL_ARMOR_from_json.py msgid "simple patchwork scarf" @@ -64164,7 +56874,7 @@ msgstr[1] "" #. ~ Use action menu_text for ski mask. #: lang/json/TOOL_ARMOR_from_json.py msgid "Loosen" -msgstr "lenço de retalhos simplesLoosen" +msgstr "" #. ~ Use action msg for simple patchwork scarf. #. ~ Use action msg for long patchwork scarf. @@ -64185,8 +56895,6 @@ msgid "" "A simple and light cloth scarf, worn over the mouth for warmth. Use it to " "loosen it if you get too warm." msgstr "" -" Um cachecol de pano simples e leve, usado sobre a boca para o calor. Use- " -"opara soltá-lo se ficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "simple patchwork scarf (loose)" @@ -64204,7 +56912,7 @@ msgstr[1] "" #. ~ Use action menu_text for long fur scarf (loose). #: lang/json/TOOL_ARMOR_from_json.py msgid "Wrap tighter" -msgstr "lenço de retalhos simples (solto) Enrole mais" +msgstr "" #. ~ Use action msg for simple patchwork scarf (loose). #. ~ Use action msg for long patchwork scarf (loose). @@ -64214,7 +56922,7 @@ msgstr "lenço de retalhos simples (solto) Enrole mais" #. ~ Use action msg for long fur scarf (loose). #: lang/json/TOOL_ARMOR_from_json.py msgid "You wrap your scarf tighter." -msgstr "Você embrulha seu cachecol com mais força." +msgstr "" #. ~ Description for simple patchwork scarf (loose) #: lang/json/TOOL_ARMOR_from_json.py @@ -64222,8 +56930,6 @@ msgid "" "A simple and light cloth scarf, worn over the mouth for warmth. Use it to " "wear it tighter if you get too cold." msgstr "" -" Um cachecol de pano simples e leve, usado sobre a boca para o calor. Use- " -"opara usá-lo mais apertado se você ficar com muito frio." #: lang/json/TOOL_ARMOR_from_json.py msgid "long patchwork scarf" @@ -64238,10 +56944,6 @@ 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 "" -" lenço de patchwork longoUm cachecol de pano leve muito longo, usado " -"sobreaboca para o calor. Com o comprimento extra, é suficiente para " -"lidarcomcaracterísticas faciais fora do padrão e acomodar suas mãos também. " -"Use-opara soltá-lo se ficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "long patchwork scarf (loose)" @@ -64256,10 +56958,6 @@ 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 "" -" cachecol patchwork longo (solto) Um cachecol de pano leve muito longo, " -"usadosobre a boca para o calor. Com o comprimento extra, é suficiente " -"paralidarcom características faciais fora do padrão e acomodar suas " -"mãostambém. Use-o para usá-lo mais apertado se você ficar com muito frio." #: lang/json/TOOL_ARMOR_from_json.py msgid "knit scarf" @@ -64273,8 +56971,6 @@ msgid "" "A long knitted cotton scarf, worn over the mouth for warmth. Use it to " "loosen it if you get too warm." msgstr "" -" cachecol de malhaUm cachecol de algodão longo, usado sobre a boca " -"paraocalor. Use-o para soltá-lo se ficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "knit scarf (loose)" @@ -64288,9 +56984,6 @@ msgid "" "A long knitted cotton scarf, worn over the mouth for warmth. Use it to wear" " it tighter if you get too cold." msgstr "" -" cachecol de malha (solto) Um cachecol de algodão longo de malha, " -"usadosobrea boca para o calor. Use-o para usá-lo mais apertado se você " -"ficarcom muitofrio." #: lang/json/TOOL_ARMOR_from_json.py msgid "long knit scarf" @@ -64305,10 +56998,6 @@ 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 "" -" cachecol longo de malhaUm cachecol de algodão muito longo de malha, " -"usadosobre a boca para o calor. Com o comprimento extra, é suficiente " -"paralidarcom características faciais fora do padrão e acomodar suas " -"mãostambém. Use-o para soltá-lo se ficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "long knit scarf (loose)" @@ -64323,10 +57012,6 @@ 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 "" -" cachecol longo de malha (solto) Um cachecol de algodão muito longo demalha," -" usado sobre a boca para o calor. Com o comprimento extra, ésuficiente " -"paralidar com características faciais fora do padrão e acomodarsuas " -"mãostambém. Use-o para usá-lo mais apertado se você ficar com muitofrio." #: lang/json/TOOL_ARMOR_from_json.py msgid "wool scarf" @@ -64340,8 +57025,6 @@ msgid "" "A long wool scarf, worn over the mouth for warmth. Use it to loosen it if " "you get too warm." msgstr "" -" cachecol de lãUm longo cachecol de lã, usado sobre a boca para ocalor. " -"Use-o para soltá-lo se ficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "wool scarf (loose)" @@ -64353,7 +57036,7 @@ msgstr[1] "" #. ~ Use action msg for fur scarf (loose). #: lang/json/TOOL_ARMOR_from_json.py msgid "You wrap your scarf a bit tighter." -msgstr "lenço de lã (solto) Você enrola o lenço um pouco mais." +msgstr "" #. ~ Description for wool scarf (loose) #: lang/json/TOOL_ARMOR_from_json.py @@ -64361,8 +57044,6 @@ msgid "" "A long wool scarf, worn over the mouth for warmth. Use it to wear it " "tighter if you get too cold." msgstr "" -" Um longo cachecol de lã, usado sobre a boca para o calor. Use-o para usá- " -"lomais apertado se você ficar com muito frio." #: lang/json/TOOL_ARMOR_from_json.py msgid "long wool scarf" @@ -64377,10 +57058,6 @@ 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 "" -" cachecol de lã longoUm lenço de lã muito comprido, usado sobre a boca " -"paraocalor. Com o comprimento extra, é suficiente para lidar " -"comcaracterísticasfaciais fora do padrão e acomodar suas mãos também. Use- " -"opara soltá-lo seficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "long wool scarf (loose)" @@ -64395,10 +57072,6 @@ 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 "" -" lenço comprido de lã (solto) Um cachecol de lã muito comprido, usado " -"sobreaboca para se aquecer. Com o comprimento extra, é suficiente para " -"lidarcomcaracterísticas faciais fora do padrão e acomodar suas mãos também. " -"Use-opara usá-lo mais apertado se você ficar com muito frio." #: lang/json/TOOL_ARMOR_from_json.py msgid "fur scarf" @@ -64412,8 +57085,6 @@ msgid "" "A long fur scarf, worn over the mouth for warmth. Use it to loosen it if " "you get too warm." msgstr "" -" cachecol de peleUm cachecol de pele comprida, usado sobre a boca " -"paraocalor. Use-o para soltá-lo se ficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "fur scarf (loose)" @@ -64427,8 +57098,6 @@ msgid "" "A long fur scarf, worn over the mouth for warmth. Use it to wear it tighter" " if you get too cold." msgstr "" -" cachecol de pele (solto) Um cachecol de pele longo, usado sobre a bocaparao" -" calor. Use-o para usá-lo mais apertado se você ficar com muito frio." #: lang/json/TOOL_ARMOR_from_json.py msgid "long fur scarf" @@ -64443,10 +57112,6 @@ 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 "" -" cachecol de pele longoUm cachecol de pele muito longo, usado sobre " -"abocapara o calor. Com o comprimento extra, é suficiente para " -"lidarcomcaracterísticas faciais fora do padrão e acomodar suas mãos também. " -"Use-opara soltá-lo se ficar muito quente." #: lang/json/TOOL_ARMOR_from_json.py msgid "long fur scarf (loose)" @@ -64461,10 +57126,6 @@ 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 "" -" cachecol de pele longa (solto) Um cachecol de pele muito comprido, " -"usadosobre a boca para o calor. Com o comprimento extra, é suficiente " -"paralidarcom características faciais fora do padrão e acomodar suas " -"mãostambém. Use-o para usá-lo mais apertado se você ficar com muito frio." #: lang/json/TOOL_ARMOR_from_json.py msgid "thermal electric outfit" @@ -64479,9 +57140,6 @@ msgid "" "equipped with internal battery-powered heating elements. Use it to turn it " "on." msgstr "" -" equipamento térmico térmicoEste fato de roupa interior térmica fina cobre- " -"oda cabeça aos pés e está equipado com elementos de aquecimento " -"movidosabateria internos. Use-o para ligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "thermal electric outfit (on)" @@ -64496,10 +57154,6 @@ msgid "" "equipped with internal battery-powered heating elements. It is currently " "on, and continually draining batteries. Use it to turn it off." msgstr "" -" equipamento térmico térmico (on) Este conjunto de roupa interiortérmicafina" -" cobre-o da cabeça aos pés e está equipado com elementos " -"deaquecimentointernos alimentados por bateria. Ele está atualmente " -"ligadoecontinuamente drenando as baterias. Use-o para desligá-lo." #: lang/json/TOOL_ARMOR_from_json.py msgid "ski mask" @@ -64510,7 +57164,7 @@ msgstr[1] "" #. ~ Use action msg for ski mask. #: lang/json/TOOL_ARMOR_from_json.py msgid "You adjust your ski mask for less warmth." -msgstr "máscara de esquiVocê ajusta sua máscara de esqui para menos calor." +msgstr "" #. ~ Description for ski mask #. ~ Description for ski mask (open) @@ -64519,9 +57173,6 @@ msgid "" "A warm wool mask that protects the head and face from cold. It has a full " "face opening that can be adjusted to set how much is exposed." msgstr "" -" Uma máscara de lã quente que protege a cabeça e o rosto do frio. " -"Temumaabertura total da face que pode ser ajustada para definir " -"quantoestáexposto." #: lang/json/TOOL_ARMOR_from_json.py msgid "ski mask (open)" @@ -64532,12 +57183,12 @@ msgstr[1] "" #. ~ Use action menu_text for ski mask (open). #: lang/json/TOOL_ARMOR_from_json.py msgid "Tighten" -msgstr "máscara de esqui (aberta) Aperte" +msgstr "" #. ~ Use action msg for ski mask (open). #: lang/json/TOOL_ARMOR_from_json.py msgid "You adjust your ski mask for more warmth." -msgstr "Você ajusta sua máscara de esqui para mais calor." +msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "whistle" @@ -64549,19 +57200,18 @@ msgstr[1] "" #. ~ Use action noise_message for whistle multitool. #: lang/json/TOOL_ARMOR_from_json.py lang/json/TOOL_from_json.py msgid "FWEEEET!" -msgstr "whistleFWEEEET!" +msgstr "" #. ~ Use action use_message for whistle. #. ~ Use action use_message for whistle multitool. #: lang/json/TOOL_ARMOR_from_json.py lang/json/TOOL_from_json.py msgid "You blow the whistle." -msgstr "Você apita." +msgstr "" #. ~ Description for whistle #: lang/json/TOOL_ARMOR_from_json.py msgid "A simple metal whistle, with a cord to wear it around your neck." msgstr "" -"Um simples apito de metal, com um fio para usá-lo em volta do pescoço." #: lang/json/TOOL_ARMOR_from_json.py msgid "harmonica with a holder" @@ -64574,8 +57224,6 @@ msgstr[1] "" msgid "" "A harmonica with a holder, so that you can play it without a free hand." msgstr "" -" gaita com um suporte Uma gaita com um suporte, para que você possa tocá- " -"lasem a mão livre." #: lang/json/TOOL_ARMOR_from_json.py msgid "acoustic guitar" @@ -64589,8 +57237,6 @@ msgid "" "A simple wooden acoustic guitar with a strap so you can wear it around, even" " when not playing." msgstr "" -" violãoUm violão simples de madeira com uma alça para que você possa usá- " -"lo, mesmo quando não está jogando." #: lang/json/TOOL_ARMOR_from_json.py msgid "electric guitar" @@ -64618,10 +57264,6 @@ msgid "" "of air contained within a leather bag. It has a strap so you can wear it " "around, even when not playing." msgstr "" -" gaitas de folesUm instrumento musical tradicional que " -"utilizapalhetasfechadas alimentadas a partir de um reservatório de ar " -"contidodentro deuma bolsa de couro. Ele tem uma alça para que você possa " -"usá-lo, mesmoquando não está jogando." #: lang/json/TOOL_ARMOR_from_json.py msgid "tuba" @@ -64633,7 +57275,6 @@ msgstr[1] "" #: lang/json/TOOL_ARMOR_from_json.py msgid "A big ol' tuba. Much easier to play when wearing." msgstr "" -" tuba Uma grande e velha tuba. Muito mais fácil de jogar quando vestindo." #: lang/json/TOOL_ARMOR_from_json.py msgid "saxophone" @@ -64646,8 +57287,6 @@ msgstr[1] "" msgid "" "A brass alto saxophone with a neck strap, so you can wear it while playing." msgstr "" -" Saxofone Um saxofone alto de latão com uma alça para o pescoço, " -"paraquepossa usá-lo enquanto joga." #: lang/json/TOOL_ARMOR_from_json.py msgid "shooter's earmuffs" @@ -64658,12 +57297,12 @@ msgstr[1] "" #. ~ Use action msg for shooter's earmuffs. #: lang/json/TOOL_ARMOR_from_json.py msgid "You turn the earmuffs on." -msgstr "earmuffs do atiradorVocê vira os protetores de ouvido." +msgstr "" #. ~ Use action need_charges_msg for shooter's earmuffs. #: lang/json/TOOL_ARMOR_from_json.py msgid "The earmuff's batteries are dead." -msgstr "As baterias do protetor de ouvido estão mortas." +msgstr "" #. ~ Description for shooter's earmuffs #: lang/json/TOOL_ARMOR_from_json.py @@ -64672,9 +57311,6 @@ msgid "" "will block sounds over a certain decibel amount, assuming it is charged with" " batteries." msgstr "" -" Um par de abafadores favorecidos pelos atiradores. Os protetores " -"deouvidoestão desligados. Eles bloquearão sons acima de uma certa " -"quantidadededecibéis, presumindo que eles estejam carregados com baterias." #. ~ Description for shooter's earmuffs #: lang/json/TOOL_ARMOR_from_json.py @@ -64683,9 +57319,6 @@ msgid "" "will block sounds over a certain decibel amount, assuming it is charged with" " batteries." msgstr "" -" Um par de abafadores favorecidos pelos atiradores. Os protetores " -"deouvidoestão ligados. Eles bloquearão sons acima de uma certa " -"quantidadededecibéis, presumindo que eles estejam carregados com baterias." #: lang/json/TOOL_ARMOR_from_json.py msgid "stethoscope" @@ -64698,8 +57331,6 @@ msgstr[1] "" msgid "" "This is a medical listening tool. Use it to listen to things. Closely." msgstr "" -" estetoscópioEsta é uma ferramenta de audição médica. Use para ouvircoisas. " -"De perto." #: lang/json/TOOL_ARMOR_from_json.py msgid "solar backpack (folded)" @@ -64714,10 +57345,6 @@ msgid "" "neatly folded in a form of a large backpack. It can be worn as one, and has" " an integrated cable to plug it into a cable charger system." msgstr "" -" Mochila solar (dobrada) Sistema de carregamento portátil pessoalcompostopor" -" uma série de painéis solares dobrados na forma de uma mochilagrande. Ele " -"pode ser usado como um só e tem um cabo integrado para conectá-lo a " -"umsistema de carregador de cabo." #: lang/json/TOOL_ARMOR_from_json.py msgid "solar backpack (unfolded)" @@ -64731,9 +57358,6 @@ msgid "" "Unfolded array of portable solar panels ready to push some power into an " "active cable charger system." msgstr "" -" Mochila solar (desdobrada) Uma variedade desdobrada de " -"painéissolaresportáteis prontos para levar um pouco de energia a um sistema " -"ativodecarregador de cabos." #: lang/json/TOOL_ARMOR_from_json.py msgid "quantum solar backpack (folded)" @@ -64749,11 +57373,6 @@ msgid "" "and has an integrated cable to plug it into a cable charger system. Cutting" " edge technology." msgstr "" -" mochila solar quântica (dobrada) Sistema de carga portátil " -"pessoalqueconsiste em uma matriz de painéis solares quânticos " -"dobradosordenadamenteem uma forma de uma grande mochila. Ele pode ser usado " -"como umsó e tem umcabo integrado para conectá-lo a um sistema de carregador " -"decabo. Tecnologia de ponta." #: lang/json/TOOL_ARMOR_from_json.py msgid "quantum solar backpack (unfolded)" @@ -64767,9 +57386,6 @@ msgid "" "Unfolded array of portable quantum solar panels ready to push some power " "into an active cable charger system." msgstr "" -" Mochila solar quântica (desdobrada) Disposição desdobrada de " -"painéissolaresquânticos portáteis prontos para colocar um pouco de energia " -"em umsistemade carregador de cabo ativo." #: lang/json/TOOL_ARMOR_from_json.py msgid "riot helmet" @@ -64780,7 +57396,7 @@ msgstr[1] "" #. ~ Use action msg for riot helmet. #: lang/json/TOOL_ARMOR_from_json.py msgid "You raise your visor." -msgstr "Você levanta sua viseira." +msgstr "" #. ~ Description for riot helmet #: lang/json/TOOL_ARMOR_from_json.py @@ -64788,8 +57404,6 @@ msgid "" "A helmet with a plastic shield that covers your entire face. Activate to " "raise the face shield." msgstr "" -" Um capacete com um escudo de plástico que cobre todo o seu rosto. " -"Ativeparalevantar o protetor facial." #: lang/json/TOOL_ARMOR_from_json.py msgid "riot helmet (raised visor)" @@ -64800,7 +57414,7 @@ msgstr[1] "" #. ~ Use action msg for riot helmet (raised visor). #: lang/json/TOOL_ARMOR_from_json.py msgid "You put down your visor." -msgstr "Capacete de motim (viseira levantada) Você abaixa sua viseira." +msgstr "" #. ~ Description for riot helmet (raised visor) #: lang/json/TOOL_ARMOR_from_json.py @@ -64808,8 +57422,6 @@ msgid "" "A riot helmet with a plastic face shield which is raised up. Activate to " "lower the shield." msgstr "" -" Um capacete anti-motim com um protetor facial de plástico que élevantado. " -"Ative para abaixar a blindagem." #: lang/json/TOOL_ARMOR_from_json.py msgid "scuba tank" @@ -65286,9 +57898,6 @@ msgid "" "Item to test aep_clairvoyance_plus flag. If this spawns randomly, then it's " "a bug." msgstr "" -" ferramentas integradasetópios bionicosBisturis " -"cirúrgicosautônomosbionicnavalhavara de clarividênciaArtigo para testar " -"abandeiraaep_clairvoyance_plus. Se isso gera aleatoriamente, então é um bug." #: lang/json/TOOL_from_json.py msgid "boulder anvil" @@ -65315,10 +57924,6 @@ msgid "" "government officially moved to all electronic money. It holds up to 2 " "million dollars." msgstr "" -" boulder anvilbionic firestartercash cardUm cartão de plástico " -"amarelousadopara guardar dinheiro. Isso se tornou popular quando o governo " -"semudouoficialmente para todo o dinheiro eletrônico. Ele detém até 2 " -"milhõesdedólares." #: lang/json/TOOL_from_json.py msgid "prototype I/O recorder" @@ -65343,8 +57948,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This card gives you a little discount on the purchase of gasoline." msgstr "" -" cartão de desconto de gás de prataEste cartão dá-lhe um pequeno " -"descontonacompra de gasolina." #: lang/json/TOOL_from_json.py msgid "gold gas discount card" @@ -65356,8 +57959,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This card gives you a good discount on the purchase of gasoline." msgstr "" -" cartão de desconto de gás de ouroEste cartão dá-lhe um bom descontonacompra" -" de gasolina." #: lang/json/TOOL_from_json.py msgid "platinum gas discount card" @@ -65369,8 +57970,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This card gives you a splendid discount on the purchase of gasoline." msgstr "" -" cartão de desconto de gás de platinaEste cartão dá-lhe umesplêndidodesconto" -" na compra de gasolina." #: lang/json/TOOL_from_json.py msgid "grenade" @@ -65387,13 +57986,13 @@ msgstr[1] "" #. ~ Use action menu_text for tear gas payload. #: lang/json/TOOL_from_json.py msgid "Pull pin" -msgstr "Pó de granada EMPPino" +msgstr "" #. ~ Use action msg for grenade. #. ~ Use action msg for incendiary grenade. #: lang/json/TOOL_from_json.py msgid "You pull the pin on the grenade." -msgstr "granadaVocê puxa o pino da granada." +msgstr "" #. ~ Description for grenade #: lang/json/TOOL_from_json.py @@ -65427,7 +58026,7 @@ msgstr "" #. ~ Use action sound_msg for active ANFO charge. #: lang/json/TOOL_from_json.py src/iuse_actor.cpp msgid "Tick." -msgstr "Carraça." +msgstr "" #. ~ Description for active grenade #: lang/json/TOOL_from_json.py @@ -65435,8 +58034,6 @@ msgid "" "This is an active grenade, and will explode any second now. Better throw " "it!" msgstr "" -" granada ativaEsta é uma granada ativa e explodirá a qualquer momento. " -"Melhorjogá-lo!" #: lang/json/TOOL_from_json.py msgid "makeshift grenade" @@ -65489,8 +58086,6 @@ msgid "" "This is an active incendiary grenade, likely to burst into an inferno any " "second now. Better throw it!" msgstr "" -" granada incendiária ativa Esta é uma granada incendiária ativa, " -"queprovavelmente explodirá em um inferno a qualquer momento. Melhor jogá-lo!" #: lang/json/TOOL_from_json.py msgid "scrambler grenade" @@ -65501,7 +58096,7 @@ msgstr[1] "" #. ~ Use action msg for scrambler grenade. #: lang/json/TOOL_from_json.py msgid "You pull the pin on the scrambler grenade." -msgstr "granada decodificadorVocê puxa o pino da granada decodificadora." +msgstr "" #. ~ Description for scrambler grenade #: lang/json/TOOL_from_json.py @@ -65525,9 +58120,6 @@ msgid "" "This scrambler grenade is active, and will soon detonate, releasing a " "control wave that temporarily converts robots to your side." msgstr "" -" granada scrambler ativa Esta granada decodificadora está ativa e " -"embrevedetonará, liberando uma onda de controle que temporariamente " -"converterobôsao seu lado." #: lang/json/TOOL_from_json.py msgid "nail bomb" @@ -65548,9 +58140,6 @@ msgid "" "the fuse. You will then have five turns before it explodes; throwing it " "would be a good idea." msgstr "" -" Uma granada de fragmentação improvisada grosseira e volumosa. Use " -"esteitempara acender o fusível. Você terá cinco voltas antes de explodir; " -"Jogá-loseria uma boa ideia." #. ~ Description for battle axe #: lang/json/TOOL_from_json.py @@ -65558,8 +58147,6 @@ msgid "" "This is a huge axe designed for warfare. You notice that the axe heads " "aren't seated properly at all." msgstr "" -" Este é um enorme machado projetado para a guerra. Você percebe queascabeças" -" dos machados não estão bem encaixadas." #: lang/json/TOOL_from_json.py msgid "lobotomizer" @@ -65574,9 +58161,6 @@ msgid "" "shovel-like tip on one end. It can be used as a shovel, or you could chop " "some zombies with it instead." msgstr "" -" lobotomizerEsta é uma ferramenta desdobrável forjada a mão que " -"temduascabeças de machado e ponta afiada tipo pá em uma extremidade. Ele " -"podeserusado como uma pá, ou você poderia cortar alguns zumbis com ele." #: lang/json/TOOL_from_json.py msgid "tazer" @@ -65591,10 +58175,6 @@ msgid "" " adjacent enemy, damaging and temporarily paralyzing them. Because the " "shock can actually jump through the air, it is difficult to miss." msgstr "" -" tazerThis é uma arma de choque de alta potência. Use este item " -"paratentareletrocutar um inimigo adjacente, danificando-o e paralisando- " -"otemporariamente. Como o choque pode realmente saltar pelo ar, " -"édifícilerrar." #. ~ Description for battle axe #: lang/json/TOOL_from_json.py @@ -65603,9 +58183,6 @@ msgid "" "weapon, it can also be pressed into service as a rather clumsy woodcutting " "tool." msgstr "" -" Este é um enorme machado projetado para a guerra. Embora destinado " -"aserusado como arma, ele também pode ser usado como uma ferramenta de " -"cortedemadeira bastante desajeitada." #: lang/json/TOOL_from_json.py msgid "wood axe" @@ -65619,9 +58196,6 @@ msgid "" "This is a large, two-handed wood axe. It makes a good melee weapon, but is " "a bit slow to recover between swings." msgstr "" -" machado de madeiraEste é um grande machado de madeira de duas mãos. " -"Elefazuma boa arma corpo-a-corpo, mas é um pouco lento para se " -"recuperarentrebalanços." #: lang/json/TOOL_from_json.py msgid "folded poncho" @@ -65635,8 +58209,6 @@ msgid "" "A folded lightweight plastic rain poncho with a hood. Use it to unfold for " "use." msgstr "" -" Poncho dobrado Um poncho de plástico leve e dobrável com capuz. Use- " -"oparadesdobrar para uso." #: lang/json/TOOL_from_json.py msgid "folded emergency blanket" @@ -65650,9 +58222,6 @@ msgid "" "A folded blanket made of space-age materials that covers your most important" " body parts. Use it to unfold for use." msgstr "" -" cobertor dobrado de emergênciaUm cobertor dobrado feito de materiais " -"daeraespacial que cobre as partes mais importantes do seu corpo. Use- " -"oparadesdobrar para uso." #: lang/json/TOOL_from_json.py msgid "EMP grenade" @@ -65663,7 +58232,7 @@ msgstr[1] "" #. ~ Use action msg for EMP grenade. #: lang/json/TOOL_from_json.py msgid "You pull the pin on the EMP grenade." -msgstr "Você puxa o pino na granada EMP." +msgstr "" #. ~ Description for EMP grenade #: lang/json/TOOL_from_json.py @@ -65674,12 +58243,6 @@ msgid "" "grenade. You will then have three turns before it detonates, creating an " "EMP field that damages robots and drains bionic energy." msgstr "" -" Esta é uma granada que gera um pulso eletromagnético com um " -"bancodecapacitores de baixa indutância descarregado em uma antena de " -"laçoúnico. Use este item para puxar o pino e acender o fusível, " -"transformando-oem umagranada EMP ativa. Você terá então três turnos antes de" -" detonar, criando umcampo EMP que danifica os robôs e drena a energia " -"biônica." #: lang/json/TOOL_from_json.py msgid "riding saddle" @@ -65715,9 +58278,6 @@ msgid "" "field that damages robots and drains bionic energy. You may not want to be " "holding it much longer." msgstr "" -" Esta granada EMP está ativa e detonará em breve, criando um grande " -"campoEMPque danifica os robôs e drena a energia biônica. Você pode não " -"quererficarsegurando por muito mais tempo." #: lang/json/TOOL_from_json.py msgid "packed M72 LAW" @@ -65731,12 +58291,12 @@ msgstr[1] "" #. ~ Use action menu_text for energy saber (active). #: lang/json/TOOL_from_json.py lang/json/item_action_from_json.py msgid "Activate" -msgstr "Embalado M72 LAWActivate" +msgstr "" #. ~ Use action msg for packed M72 LAW. #: lang/json/TOOL_from_json.py msgid "You pull the activating lever, readying the LAW to fire." -msgstr "Você puxa a alavanca de ativação, preparando a LEI para disparar." +msgstr "" #. ~ Description for packed M72 LAW #: lang/json/TOOL_from_json.py @@ -65744,9 +58304,6 @@ msgid "" "This is a M72 LAW, packed in its storage form. Use it to pop it out and " "make it ready to fire. Once it is activated, it cannot be repacked." msgstr "" -" Esta é uma lei M72, embalada em sua forma de armazenamento. Use- " -"oparaestourá-lo e prepará-lo para disparar. Uma vez ativado, não " -"podeserreembalado." #: lang/json/TOOL_from_json.py msgid "hand pump" @@ -65758,8 +58315,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This pump is suitable for pumping air into inflatable objects." msgstr "" -" Bomba manual Esta bomba é adequada para bombear ar para " -"objectosinsufláveis." #. ~ Description for UPS #: lang/json/TOOL_from_json.py @@ -65768,10 +58323,6 @@ msgid "" " military and scientific interests for use in combat and the field. The UPS" " is designed to power armor and some guns, but drains batteries quickly." msgstr "" -" UPSEsta é uma fonte de alimentação unificada ou UPS. É " -"umdispositivodesenvolvido em conjunto por interesses militares e " -"científicospara uso emcombate e no campo. O no-break é projetado para " -"alimentararmaduras ealgumas armas, mas drena as baterias rapidamente." #: lang/json/TOOL_from_json.py msgid "acid bomb" @@ -65785,8 +58336,6 @@ msgid "" "This is a fragile container filled with acid. Throw it to spill out a pool " "of potent acid." msgstr "" -" bomba ácidaEste é um recipiente frágil cheio de ácido. Jogue " -"paraderramaruma poça de ácido potente." #. ~ Description for advanced UPS #: lang/json/TOOL_from_json.py @@ -65796,11 +58345,6 @@ msgid "" "well as to consume plutonium fuel cells rather than batteries. Sadly, its " "plutonium reactor can't be charged in UPS charging station." msgstr "" -" UPS avançada Esta é uma versão avançada da fonte de alimentaçãounificada, " -"ou UPS. Este dispositivo foi redesenhado significativamente " -"parafornecermelhor eficiência, bem como para consumir células de " -"combustíveldeplutônio, em vez de baterias. Infelizmente, seu reator de " -"plutônio não pode ser carregado na estação de recarga da UPS." #: lang/json/TOOL_from_json.py msgid "advanced electronic cigarette" @@ -65815,10 +58359,6 @@ msgid "" "your nicotine fix than regular cigarettes, but still addictive. It needs " "batteries and nicotine liquid to function." msgstr "" -" cigarro eletrônico avançadoUma versão avançada do cigarro eletrônico. " -"Umamaneira menos prejudicial para obter sua correção de nicotina do " -"queoscigarros comuns, mas ainda assim viciante. Precisa de pilhas e " -"líquidodenicotina para funcionar." #: lang/json/TOOL_from_json.py msgid "compressed air horn" @@ -65829,12 +58369,12 @@ msgstr[1] "" #. ~ Use action noise_message for compressed air horn. #: lang/json/TOOL_from_json.py msgid "HOOOOONK!" -msgstr "ar comprimido hornHOOOOONK!" +msgstr "" #. ~ Use action use_message for compressed air horn. #: lang/json/TOOL_from_json.py msgid "You honk your airhorn." -msgstr "Você buzina seu airhorn." +msgstr "" #. ~ Description for compressed air horn #: lang/json/TOOL_from_json.py @@ -65842,9 +58382,6 @@ msgid "" "This is a small can of compressed air attached to a plastic horn. Pressing " "the button on top causes it to emit a loud honking sound." msgstr "" -" Esta é uma pequena lata de ar comprimido ligada a um chifre deplástico. " -"Pressionar o botão na parte superior faz com que ele emita um somalto " -"debuzina." #: lang/json/TOOL_from_json.py msgid "alarm clock" @@ -65859,9 +58396,6 @@ msgid "" "to, it's always good to get an early start to your day. Can also be " "disassembled into some useful parts." msgstr "" -" despertador Um despertador de corda. Embora o barulho que " -"fazsejadesagradável para acordar, é sempre bom começar cedo para o seu dia. " -"Também pode ser desmontado em algumas partes úteis." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py #: lang/json/tool_quality_from_json.py @@ -65877,9 +58411,6 @@ msgid "" "projection set into the corner. It's used in most metalworking fabrication " "recipes." msgstr "" -" anvilEste é um bloco extremamente pesado de aço com formato estranho, " -"comuma projeção em forma de cinzel no canto. É usado na maioria " -"dasreceitasde fabricação de metais." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "water mill" @@ -65917,7 +58448,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A standard factory-made banjo. Looks to be in working condition." msgstr "" -" banjoUm banjo padrão de fábrica. Parece estar em condições defuncionamento." #: lang/json/TOOL_from_json.py msgid "barometer" @@ -65928,7 +58458,7 @@ msgstr[1] "" #. ~ Description for barometer #: lang/json/TOOL_from_json.py msgid "A plastic barometer that can read the atmospheric pressure." -msgstr "barômetroUm barômetro de plástico que pode ler a pressão atmosférica." +msgstr "" #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "bear trap" @@ -65939,17 +58469,17 @@ msgstr[1] "" #. ~ Use action bury_question for bear trap. #: lang/json/TOOL_from_json.py msgid "Bury the beartrap?" -msgstr "Armadilha para Urso Enterrar a armadilha de urso?" +msgstr "" #. ~ Use action done_message for bear trap. #: lang/json/TOOL_from_json.py msgid "You set the beartrap." -msgstr "Você define a armadilha de urso." +msgstr "" #. ~ Use action done_message for bear trap. #: lang/json/TOOL_from_json.py msgid "You bury the beartrap." -msgstr "Você enterra a armadilha de urso." +msgstr "" #. ~ Description for bear trap #: lang/json/TOOL_from_json.py @@ -65959,10 +58489,6 @@ msgid "" "and damage anything that steps on it. If you are carrying a shovel, you " "will have the option of burying it." msgstr "" -" Este é um par de garras de aço com mola conectado a uma placa " -"depressãosensível. Use-o para colocá-lo no chão, criando uma armadilha " -"queiráaprisionar e danificar qualquer coisa que pisar nele. Se " -"vocêestivercarregando uma pá, você terá a opção de enterrá-lo." #: lang/json/TOOL_from_json.py msgid "blade trap" @@ -65983,9 +58509,6 @@ msgid "" " its throttle. When the tripwire is pulled, the blade is swung around with " "great force. The trap forms a 3x3 area of effect." msgstr "" -" Este é um facão anexado lateralmente a um motor, com um fio que " -"controlaseuacelerador. Quando o tripwire é puxado, a lâmina é girada com " -"grandeforça. A armadilha forma uma área de efeito 3x3." #: lang/json/TOOL_from_json.py msgid "nailboard trap" @@ -66006,9 +58529,6 @@ msgid "" "straight up. If an unsuspecting victim steps on it, they'll get nails " "through the foot." msgstr "" -" Estes são vários pedaços de madeira pregados juntos, com " -"algumasunhasapontando para cima. Se uma vítima desavisada pisá-lo, eles " -"terãopregos nopé." #: lang/json/TOOL_from_json.py msgid "pair of bolt cutters" @@ -66022,8 +58542,6 @@ msgid "" "This is a large pair of bolt cutters. You could use them to cut padlocks or" " heavy gauge wire." msgstr "" -" par de cortadores de parafusosEste é um grande par de alicates. " -"Vocêpodeusá-los para cortar cadeados ou cabos de bitola pesada." #: lang/json/TOOL_from_json.py msgid "bone flute" @@ -66035,7 +58553,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A polished bone flute with five finger holes." msgstr "" -" flauta de ossoUma flauta de osso polido com cinco orifícios para os dedos." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "booby trap" @@ -66046,7 +58563,7 @@ msgstr[1] "" #. ~ Use action done_message for booby trap. #: lang/json/TOOL_from_json.py msgid "You set the booby trap up and activate the grenade." -msgstr "armadilha Você ajusta a armadilha e ativa a granada." +msgstr "" #. ~ Description for booby trap #: lang/json/TOOL_from_json.py @@ -66054,8 +58571,6 @@ msgid "" "This is a crude explosive device triggered by a piece of string. Use it to " "setup and watch some poor bastard trigger it." msgstr "" -" Este é um dispositivo explosivo cru desencadeado por um pedaço decorda. " -"Use-o para configurar e ver algum pobre coitado acioná-lo." #: lang/json/TOOL_from_json.py msgid "brick kiln" @@ -66069,9 +58584,6 @@ msgid "" "This is a portable charcoal-fired kiln. It is designed for firing bricks, " "but you could use it to fire anything made of clay." msgstr "" -" forno de tijolosEste é um forno portátil a carvão. Ele é " -"projetadoparadisparar tijolos, mas você pode usá-lo para disparar qualquer " -"coisafeitade argila." #: lang/json/TOOL_from_json.py msgid "electric kiln" @@ -66087,11 +58599,6 @@ msgid "" "little mechanical know-how, you could probably even convert it to run " "directly off a vehicle's power system." msgstr "" -" forno elétricoEste é um forno elétrico portátil, alimentado porbaterias. " -"Ele é projetado para disparar tijolos, mas você pode usá-lo " -"paradispararqualquer coisa feita de argila. Com um pouco de know-how " -"mecânico, vocêpode até mesmo convertê-lo para funcionar diretamente no " -"sistema deenergiade um veículo." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "bubble wrap" @@ -66103,8 +58610,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You set the bubble wrap on the ground, ready to be popped." msgstr "" -" Envolvimento de bolhaVocê define o envoltório de bolha no chão, " -"prontoparaser exibido." #. ~ Description for bubble wrap #: lang/json/TOOL_from_json.py @@ -66113,9 +58618,6 @@ msgid "" "it on the ground, creating a trap that will warn you with noise when " "something steps on it." msgstr "" -" Esta é uma folha de plástico coberta com bolhas cheias de ar. Use- " -"oparacolocá-lo no chão, criando uma armadilha que irá avisá-lo com " -"ruídoquandoalgo pisar nele." #: lang/json/TOOL_from_json.py msgid "C-4 explosive" @@ -66129,9 +58631,6 @@ msgid "" "This is military grade RDX composition explosive. A label reads: \"Highly " "explosive, use with extreme caution!\" It comes with a small timer." msgstr "" -" Explosivo C-4Este é explosivo de composição RDX de nível militar. " -"Umrótulodiz: \"Altamente explosivo, use com extrema cautela! \" Ele vem " -"comumtemporizador pequeno." #: lang/json/TOOL_from_json.py msgid "C-4 explosive (armed)" @@ -66153,9 +58652,6 @@ msgid "" "explosive, use with extreme caution!\" It comes with a small timer, which is" " currently ticking down." msgstr "" -" Este é um explosivo de composição RDX de nível militar. Uma " -"etiquetadiz:\"Altamente explosivo, use com extrema cautela! \" Ele vem " -"comumtemporizador pequeno, que está atualmente no mínimo." #: lang/json/TOOL_from_json.py msgid "loose caltrops" @@ -66175,8 +58671,6 @@ msgid "" "These are small metal objects covered with many sharp points. If an " "unsuspecting victim steps on one, they'll get a spine through the foot." msgstr "" -" Estes são pequenos objetos de metal cobertos com muitos pontos afiados. " -"Seuma vítima desavisada pisar em uma delas, ela terá uma espinha no pé." #: lang/json/TOOL_from_json.py msgid "loose glass caltrops" @@ -66210,10 +58704,6 @@ msgid "" "sight', and flash. You can look at your photos on the digital screen, or " "transfer them with a memory card. Takes conventional batteries." msgstr "" -" câmera Uma câmera digital de apontar e disparar, com visor digital, " -"umacópia de segurança e flash. Você pode ver suas fotos na tela " -"digitaloutransferi- las com um cartão de memória. Leva baterias " -"convencionais." #: lang/json/TOOL_from_json.py msgid "camera pro" @@ -66230,11 +58720,6 @@ msgid "" "conventional batteries. Before the cataclysm, you could have taken " "professional-grade photos using this." msgstr "" -" câmera proUma câmera SLR digital de 35mm (reflex de lente única),comvisores" -" ópticos e digitais, lente zoom com foco automático eestabilizadore flash. " -"Você pode visualizar suas fotos ou transferi-las comum cartão dememória; " -"Funciona com baterias convencionais. Antes docataclismo, vocêpoderia ter " -"tirado fotos de nível profissional usando isso." #: lang/json/TOOL_from_json.py msgid "candle" @@ -66268,7 +58753,7 @@ msgstr "" #. ~ Use action msg for candle. #: lang/json/TOOL_from_json.py msgid "The candle winks out." -msgstr "A vela desaparece." +msgstr "" #. ~ Description for candle #: lang/json/TOOL_from_json.py @@ -66293,10 +58778,6 @@ msgid "" "corrosive materials. Contents may be sentient. Open at your own risk.\" " "You think you can feel something moving inside it." msgstr "" -" goo canisterHá uma etiqueta nesta caixa: \"Aviso: contém " -"materiaisaltamentetóxicos e corrosivos. O conteúdo pode ser sensível. Abra " -"por suaconta erisco. \" Você acha que pode sentir algo se movendo dentro " -"dela." #: lang/json/TOOL_from_json.py msgid "electric carver (off)" @@ -66311,9 +58792,6 @@ msgid "" "vibrate together to slice just about anything from turkey to ham... even " "zombies!" msgstr "" -" carver elétrico (off) Um carver elétrico de carne alimentado porbaterias. " -"Duas lâminas serrilhadas que vibram juntas para cortarpraticamentequalquer " -"coisa, de peru a presunto ... até zumbis!" #: lang/json/TOOL_from_json.py msgid "electric carver (on)" @@ -66325,8 +58803,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This carver is on and the blades are buzzing. Use it to turn it off." msgstr "" -" escultor elétrico (on) Este escultor está ligado e as lâminasestãozumbindo." -" Use-o para desligá-lo." #: lang/json/TOOL_from_json.py msgid "cellphone" @@ -66342,7 +58818,7 @@ msgstr "Você acende a tela." #. ~ Use action need_charges_msg for cellphone. #: lang/json/TOOL_from_json.py msgid "The cellphone's batteries need more charge." -msgstr "As baterias do celular precisam de mais carga." +msgstr "" #. ~ Description for cellphone #: lang/json/TOOL_from_json.py @@ -66353,11 +58829,6 @@ msgid "" "assuming it is sufficiently charged. It also has a clock app that includes " "an alarm." msgstr "" -" Este é um celular, um primo mais velho de um smartphone, mas aindapopularem" -" certos círculos devido à sua confiabilidade, robustez ecapacidade deoperar " -"com baterias comuns. A utilização deste telemóvel iráligá-lo efornecer luz, " -"desde que esteja suficientemente carregado. Eletambém tem umaplicativo de " -"relógio que inclui um alarme." #: lang/json/TOOL_from_json.py msgid "cellphone - Flashlight" @@ -66368,7 +58839,7 @@ msgstr[1] "" #. ~ Use action msg for cellphone - Flashlight. #: lang/json/TOOL_from_json.py msgid "You stop lighting up the screen." -msgstr "celular - FlashlightVocê para de iluminar a tela." +msgstr "" #: lang/json/TOOL_from_json.py msgid "smartphone" @@ -66380,12 +58851,12 @@ msgstr[1] "" #. ~ Use action msg for atomic smartphone. #: lang/json/TOOL_from_json.py msgid "You activate the flashlight app." -msgstr "Você ativou a lanterna do celular." +msgstr "" #. ~ Use action need_charges_msg for smartphone. #: lang/json/TOOL_from_json.py msgid "The smartphone's charge is too low." -msgstr "Bateria do smartphone está baixa." +msgstr "" #. ~ Description for smartphone #: lang/json/TOOL_from_json.py @@ -66396,11 +58867,6 @@ msgid "" " Runs on a small, rechargeable power cell compatible with Unified Power " "Supply." msgstr "" -" Um smartphone popular e sofisticado. Capaz de fazer fotos devido " -"acâmeraintegrada e iluminando uma área como por app lanterna, assumindo " -"quetemcarga suficiente. O smartphone também tem um aplicativo de " -"relógioqueinclui um alarme. Funciona com uma pequena pilha de " -"energiarecarregávelcompatível com a fonte de alimentação unificada." #: lang/json/TOOL_from_json.py msgid "smartphone - music" @@ -66425,13 +58891,13 @@ msgstr[1] "" #. ~ Use action menu_text for atomic smartphone - Flashlight. #: lang/json/TOOL_from_json.py msgid "Turn off flashlight" -msgstr "Desliga a lanterna" +msgstr "" #. ~ Use action msg for smartphone - Flashlight. #. ~ Use action msg for atomic smartphone - Flashlight. #: lang/json/TOOL_from_json.py msgid "You deactivate the flashlight app." -msgstr "Desativou a lanterna do celular." +msgstr "" #: lang/json/TOOL_from_json.py msgid "chainsaw (off)" @@ -66446,10 +58912,6 @@ msgid "" "with gas, using this item will cause it to turn on, turning it into a very " "powerful but unwieldy melee weapon." msgstr "" -" motosserra (off) Esta é uma ferramenta pesada que funciona como " -"armadeoportunidade. Se carregado com gás, usar este item fará com que " -"eleligue, transformando-o em uma arma corpo-a-corpo muito poderosa, mas " -"difícildemanusear." #: lang/json/TOOL_from_json.py msgid "chainsaw (on)" @@ -66461,8 +58923,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This chainsaw is on and making a lot of noise. Use it to turn it off." msgstr "" -" motosserra (ligado) Esta motosserra está ligada e fazendo muitobarulho. " -"Use-o para desligá-lo." #: lang/json/TOOL_from_json.py msgid "charcoal forge" @@ -66476,8 +58936,6 @@ msgid "" "This is a portable, charcoal fired, metalworking forge. If combined with " "the right tools, you could use this for metalworking." msgstr "" -" carvão forgeThis é uma forja portátil, carvão, metalurgia. Se " -"combinadocomas ferramentas certas, você poderia usar isso para metalurgia." #: lang/json/TOOL_from_json.py msgid "charcoal water purifier" @@ -66493,11 +58951,6 @@ msgid "" "become unusable and can be disassembled and recycled. Water taken from " "uncertain sources like a river may be dirty." msgstr "" -" purificador de água a carvãoUtilizando este item em um recipiente " -"cheiodeágua irá purificar a água usando carvão em camadas. Uma vez que " -"ocarvãotenha purificado água suficiente, ele se tornará inutilizável e " -"poderá serdesmontado e reciclado. A água retirada de fontes incertas, comoum" -" rio, pode estar suja." #: lang/json/TOOL_from_json.py msgid "charcoal smoker" @@ -66511,8 +58964,6 @@ msgid "" "This is a portable charcoal smoker. Good for weekend barbecuing and " "preserving meat with smoke." msgstr "" -" fumante de carvão vegetalEste é um fumante de carvão portátil. " -"Bomparachurrasco de fim de semana e preservar carne com fumaça." #: lang/json/TOOL_from_json.py msgid "charcoal cooker" @@ -66526,8 +58977,6 @@ msgid "" "This is a little metal tank for holding charcoal with a pilot light " "attached. You could use it for cooking food." msgstr "" -" fogão a carvãoEste é um pequeno tanque de metal para manter o carvão " -"comumaluz piloto acoplada. Você poderia usá-lo para cozinhar alimentos." #: lang/json/TOOL_from_json.py msgid "paint chipper" @@ -66539,8 +58988,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A tool similar to a chisel, designed to remove paint." msgstr "" -" ferramenta de pintura chipperA semelhante a um cinzel, projetadopararemover" -" tinta." #: lang/json/TOOL_from_json.py msgid "metalworking chisel" @@ -66554,9 +59001,6 @@ msgid "" "This is a short, stout metalworking chisel. It's used in some metalworking " "fabrication recipes." msgstr "" -" talhadeira para usinagem de metaisEste é um cinzel curto e " -"robustoparausinagem de metais. É usado em algumas receitas de fabricação " -"demetais." #: lang/json/TOOL_from_json.py msgid "circular saw (off)" @@ -66567,7 +59011,7 @@ msgstr[1] "" #. ~ Use action msg for circular saw (off). #: lang/json/TOOL_from_json.py msgid "You turn on the circular saw." -msgstr "serra circular (desligada) Você liga a serra circular." +msgstr "" #. ~ Description for circular saw (off) #: lang/json/TOOL_from_json.py @@ -66576,10 +59020,6 @@ msgid "" "enough to cut wood, zombies, or in an emergency, pizza. The blade, while " "effective in combat, is hard to hit with due to its small size." msgstr "" -" Uma serra circular sem fio de mão leve. Gira uma lâmina circular " -"rápidoosuficiente para cortar madeira, zumbis ou, em caso de emergência, " -"pizza. Alâmina, embora eficaz em combate, é difícil de acertar devido " -"aoseupequeno tamanho." #: lang/json/TOOL_from_json.py msgid "circular saw (on)" @@ -66593,9 +59033,6 @@ msgid "" "A lightweight handheld cordless circular saw. It is currently on and the " "blade is spinning; use this item to turn it off." msgstr "" -" serra circular (on) Uma leve serra circular sem fio de mão. " -"Estáatualmenteligado e a lâmina está girando; use este item para desativá- " -"lo." #: lang/json/TOOL_from_json.py msgid "clarinet" @@ -66606,7 +59043,7 @@ msgstr[1] "" #. ~ Description for clarinet #: lang/json/TOOL_from_json.py msgid "An ornate clarinet made from wood." -msgstr "clarinete Um clarinete ornamentado feito de madeira." +msgstr "" #: lang/json/TOOL_from_json.py msgid "coffeemaker" @@ -66621,10 +59058,6 @@ msgid "" "powders. It's got a battery compartment for use when the power goes out. " "You can use it to make coffee, or other drinks if you so choose." msgstr "" -" cafeteiraEste é um elemento de aquecimento com panela e " -"estruturaparaguardar café ou outros pós. Tem um compartimento de bateria " -"para usoquandoa energia acabar. Você pode usá-lo para fazer café ou outras " -"bebidas, seassim preferir." #: lang/json/TOOL_from_json.py msgid "concrete mixer" @@ -66638,9 +59071,6 @@ msgid "" "A portable concrete mixer. It is still large and heavy, but it can be " "operated solo, and runs on batteries. It also has a heater built in." msgstr "" -" betoneiraA betoneira portátil. Ainda é grande e pesado, mas pode " -"seroperadosozinho e funciona com baterias. Ele também tem um " -"aquecedorembutido." #: lang/json/TOOL_from_json.py msgid "control laptop" @@ -66654,9 +59084,6 @@ msgid "" "A modified laptop, now capable of transmitting in the ultra high frequencies" " utilized by robots. Activate it to command robots from afar." msgstr "" -" laptop de controleUm laptop modificado, agora capaz de " -"transmitirnasfreqüências ultra altas utilizadas pelos robôs. Ative para " -"comandarrobôsde longe." #: lang/json/TOOL_from_json.py msgid "copper axe" @@ -66670,8 +59097,6 @@ msgid "" "This is a decent-sized chunk of worked copper affixed to a wooden shaft, to " "make a crude yet effective axe." msgstr "" -" Este é um pedaço decente de cobre trabalhado afixado a um eixo demadeira, " -"para fazer um machado bruto, mas eficaz." #: lang/json/TOOL_from_json.py msgid "copper knife" @@ -66685,8 +59110,6 @@ msgid "" "A knife consisting of crudely-worked copper, and a simple handle. " "Primitive, but a step above stone-age." msgstr "" -" faca de cobreUma faca que consiste em cobre trabalhado de forma " -"grosseiraeuma alça simples. Primitivo, mas um passo acima da idade da pedra." #: lang/json/TOOL_from_json.py msgid "cordless drill" @@ -66699,8 +59122,6 @@ msgstr[1] "" msgid "" "This is a cordless battery-powered drill with a selection of drill bits." msgstr "" -" broca sem fioEsta é uma broca sem fio alimentada por bateria com " -"umaseleçãode brocas." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "cot" @@ -66711,7 +59132,7 @@ msgstr[1] "" #. ~ Use action done_message for cot. #: lang/json/TOOL_from_json.py msgid "You unfold the cot and place it on the ground." -msgstr "Você desdobre o berço e coloque-o no chão." +msgstr "" #. ~ Description for cot #: lang/json/TOOL_from_json.py @@ -66719,8 +59140,6 @@ msgid "" "This is a military style fold up cot. While it may not be quite as " "comfortable as a bed, it's better than slumming it on the ground." msgstr "" -" Este é um berço dobrável de estilo militar. Embora possa não " -"sertãoconfortável quanto uma cama, é melhor do que batê-lo no chão." #: lang/json/TOOL_from_json.py msgid "cow bell" @@ -66732,7 +59151,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A brass cow bell. Potentially useful in so many ways." msgstr "" -" sino de vaca sino de vaca latão. Potencialmente útil de muitas maneiras." #: lang/json/TOOL_from_json.py msgid "crack pipe" @@ -66746,8 +59164,6 @@ msgid "" "This is a fine glass tube with a bulb with a bowl on one end. It's used to " "partake of certain illicit substances." msgstr "" -" Este é um tubo de vidro fino com uma lâmpada com uma tigela " -"emumaextremidade. É usado para compartilhar certas substâncias ilícitas." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "crossbow trap" @@ -66758,7 +59174,7 @@ msgstr[1] "" #. ~ Use action done_message for crossbow trap. #: lang/json/TOOL_from_json.py msgid "You set the crossbow trap." -msgstr "armadilha de bestaVocê define a armadilha da besta." +msgstr "" #. ~ Description for crossbow trap #: lang/json/TOOL_from_json.py @@ -66767,9 +59183,6 @@ msgid "" "crossbow. When pulled, the crossbow fires. Only a single round can be " "used, after which the trap is disabled." msgstr "" -" Este é um tripwire simples, que é anexado ao gatilho de uma bestacarregada." -" Quando puxada, a besta dispara. Apenas uma única rodada pode serusada, " -"apóso que a armadilha é desativada." #: lang/json/TOOL_from_json.py msgid "crowbar" @@ -66784,9 +59197,6 @@ msgid "" " them or to lift manhole covers. You could also wield it to bash some heads" " in." msgstr "" -" crowbarEsta é uma ferramenta pesada e intrigante. Use-o para " -"abrirportastrancadas sem destruí-las ou levantar tampas de bueiros. Você " -"também pode usá-lo para bater em algumas cabeças." #: lang/json/TOOL_from_json.py msgid "crucible" @@ -66800,8 +59210,6 @@ msgid "" "This is a small metalworking crucible. It's used in some metalworking " "fabrication recipes." msgstr "" -" cadinhoEste é um pequeno cadinho de metalurgia. É usado em " -"algumasreceitasde fabricação de metais." #: lang/json/TOOL_from_json.py msgid "clay crucible" @@ -66815,8 +59223,6 @@ msgid "" "This is a primitive metalworking crucible made of clay. You could use it " "for metalworking." msgstr "" -" cadinho de barroEste é um cadinho primitivo de metalurgia feito deargila. " -"Você poderia usá-lo para trabalhar metais." #: lang/json/TOOL_from_json.py msgid "electric firestarter" @@ -66830,8 +59236,6 @@ msgid "" "This is a crudely made electric firestarter, which can function as an " "inefficient lighter." msgstr "" -" firestarter elétricoEste é um firestarter elétrico grosseiramente feito, " -"que pode funcionar como um isqueiro ineficiente." #: lang/json/TOOL_from_json.py msgid "improvised lockpick" @@ -66846,10 +59250,6 @@ msgid "" "metal. You need MacGyver-like skills to open locks with these as they are " "brittle, but they lower the chances of alarms being set off." msgstr "" -" lockpick improvisadoEste é um conjunto improvisado de picaretas e " -"chavesdetorção feitas de sucata. Você precisa de habilidades do tipo " -"MacGyverparaabrir bloqueios com elas, pois elas são frágeis, mas diminuem " -"aschances deos alarmes serem disparados." #: lang/json/TOOL_from_json.py msgid "damaged shelter kit" @@ -66863,8 +59263,6 @@ msgid "" "This is a small shelter, made of sticks and skins. Use it to place. This " "shelter has been damaged, and needs repairs." msgstr "" -" kit de abrigo danificadoEste é um pequeno abrigo, feito de paus e peles. " -"Usepara colocar. Este abrigo foi danificado e precisa de reparos." #: lang/json/TOOL_from_json.py msgid "food dehydrator" @@ -66878,9 +59276,6 @@ msgid "" "This is a portable electric food dehydrator. It's powered by batteries, and" " could be invaluable in preserving food." msgstr "" -" desidratador de alimentosEste é um desidratador de " -"alimentoselétricoportátil. É alimentado por baterias e pode ser inestimável " -"napreservaçãode alimentos." #: lang/json/TOOL_from_json.py msgid "directional antenna" @@ -66894,9 +59289,6 @@ msgid "" "This is an antenna designed to pick up signals better when pointed at the " "source. You could use this with a radio to receive faint signals." msgstr "" -" antena direcionalEsta é uma antena projetada para captar sinaismelhorquando" -" apontada para a fonte. Você poderia usar isso com um rádioparareceber " -"sinais fracos." #: lang/json/TOOL_from_json.py msgid "dive knife" @@ -66911,10 +59303,6 @@ msgid "" "straps, and a blunt tip for prying. Used primarily by divers, it is very " "light and takes up virtually no space in one's pockets." msgstr "" -" faca de mergulhoEsta é uma faca curta e resistente com uma " -"bordaserrilhadapara linhas de corte e tiras, e uma ponta romba para " -"espreitar. Usadoprincipalmente por mergulhadores, é muito leve e ocupa " -"virtualmentenenhumespaço em seus bolsos." #: lang/json/TOOL_from_json.py msgid "dog whistle" @@ -66929,9 +59317,6 @@ msgid "" "nearby friendly dogs to either follow you closely and stop attacking, or " "start attacking enemies if they are currently docile." msgstr "" -" apito de cachorroEste é um pequeno apito. Quando usada, produz um " -"tomaltoque faz com que cães próximos amigáveis o sigam de perto e parem " -"deatacar, ou comecem a atacar inimigos se eles forem dóceis no momento." #: lang/json/TOOL_from_json.py msgid "whistle multitool" @@ -66945,8 +59330,6 @@ msgid "" "A cheap gadget combining a whistle, thermometer, magnifying glass, and " "compass." msgstr "" -" apito multitool Um gadget barato combinando um apito, termômetro, lupa " -"ebússola." #: lang/json/TOOL_from_json.py msgid "dynamite" @@ -66965,12 +59348,12 @@ msgstr[1] "" #. ~ Use action menu_text for RDX sand bomb. #: lang/json/TOOL_from_json.py msgid "Light fuse" -msgstr "dinamiteFusível de luz" +msgstr "" #. ~ Use action msg for dynamite. #: lang/json/TOOL_from_json.py msgid "You light the dynamite." -msgstr "Você acende a dinamite." +msgstr "" #. ~ Description for dynamite #: lang/json/TOOL_from_json.py @@ -66980,10 +59363,6 @@ msgid "" "inventory to do this. Shortly after lighting the fuse, this item will " "explode, so get away!" msgstr "" -" Estes são vários bastões de explosivos com um fusível ligado. Use " -"esteitempara acender o fusível. Você precisará, é claro, de um isqueiro " -"oudecombinações em seu inventário para fazer isso. Pouco depois de " -"acenderofusível, este item vai explodir, então vá embora!" #: lang/json/TOOL_from_json.py msgid "dynamite (lit)" @@ -67006,15 +59385,13 @@ msgstr "" #. ~ Use action sound_msg for active pipe bomb. #: lang/json/TOOL_from_json.py src/iuse.cpp msgid "ssss..." -msgstr "aaaa ..." +msgstr "" #. ~ Description for dynamite (lit) #: lang/json/TOOL_from_json.py msgid "" "The fuse on this dynamite is lit and hissing. It'll explode any moment now." msgstr "" -" O fusível nesta dinamite é aceso e assobio. Vai explodir a " -"qualquermomentoagora." #: lang/json/TOOL_from_json.py msgid "electronic handcuffs" @@ -67028,8 +59405,6 @@ 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 "" -" algemas eletrônicasUm par de algemas eletrônicas, usadas por policiaisebots de motim para deter cativos. Sua sirene contínua identificaclaramenteo usuário como criminoso preso e alerta a polícia humana. Esperepelachegada, não tente escapar ou remover as algemas - eles administrarãoumchoque elétrico. \n" -" No entanto, como a única polícia queprovavelmenteresponderá é morta-viva, você pode ter uma longa espera pelafrente, amenos que seja criativo. ..\n" #: lang/json/TOOL_from_json.py msgid "entrenching tool" @@ -67043,8 +59418,6 @@ msgid "" "This is a stout collapsible spade. It's commonly used by military forces " "and favored by hikers for digging." msgstr "" -" ferramenta entrenchingEsta é uma pá robusta dobrável. É comumente " -"usadoporforças militares e favorecido por caminhantes para cavar." #: lang/json/TOOL_from_json.py msgid "e-ink tablet PC" @@ -67059,9 +59432,6 @@ msgid "" "these were nifty gadgets; now, it's an almost priceless resource. Runs on " "conventional batteries." msgstr "" -" tablet de e-ink PCA tablet PC usando uma eficiente tela de tintacolorida. " -"Antes do cataclismo, estes eram dispositivos engenhosos; agora, éumrecurso " -"quase inestimável. Funciona com baterias convencionais." #: lang/json/TOOL_from_json.py msgid "electric chainsaw (off)" @@ -67076,10 +59446,6 @@ msgid "" "with batteries, using this item will cause it to turn on, turning it into a " "very powerful but unwieldy melee weapon." msgstr "" -" motosserra elétrica (off) Esta é uma ferramenta pesada que funcionacomoarma" -" de oportunidade. Se carregado com baterias, usar este item farácomque ele " -"ligue, transformando-o em uma arma corpo-a-corpo muito poderosa, mas difícil" -" de manusear." #: lang/json/TOOL_from_json.py msgid "electric chainsaw (on)" @@ -67093,8 +59459,6 @@ msgid "" "This electric chainsaw is on and making a lot of noise. Use it to turn it " "off." msgstr "" -" motosserra elétrica (on) Esta motosserra elétrica está ligada efazendomuito" -" barulho. Use-o para desligá-lo." #: lang/json/TOOL_from_json.py msgid "electric hair trimmer" @@ -67109,9 +59473,6 @@ msgid "" "it to cut your hair if it's supplied with batteries. It requires 10 " "batteries per use." msgstr "" -" Aparador de pêlos elétricoEste é um aparador elétrico de bolso " -"feitoparacortar o cabelo. Você pode usá-lo para cortar o cabelo se ele " -"forfornecidocom baterias. Requer 10 baterias por uso." #: lang/json/TOOL_from_json.py msgid "electric jackhammer" @@ -67141,11 +59502,6 @@ msgid "" "little skill, it can be used to crack passwords and more. It requires 25 " "charges of battery power per use." msgstr "" -" eletrohackEste dispositivo tem muitas portas conectadas, permitindo " -"queelese conecte a quase qualquer painel de controle ou outra " -"máquinaeletrônica(mas não a computadores). Com um pouco de habilidade, ele " -"podeser usadopara quebrar senhas e muito mais. Requer 25 cargas de bateria " -"poruso." #: lang/json/TOOL_from_json.py msgid "etched human skull" @@ -67157,8 +59513,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a human skull with strange etchings covering it." msgstr "" -" crânio humano gravadoEste é um crânio humano com " -"gravurasestranhascobrindo-o." #: lang/json/TOOL_from_json.py msgid "large fire extinguisher" @@ -67172,9 +59526,6 @@ msgid "" "This is an emergency fire extinguisher containing three gallons of fire " "retardant foam. It would be useful for putting out adjacent fires." msgstr "" -" extintor de incêndio grandeEste é um extintor de incêndio " -"deemergênciacontendo três litros de espuma retardante de fogo. Seria " -"útilpara apagarincêndios adjacentes." #: lang/json/TOOL_from_json.py msgid "fertilizer bomb" @@ -67196,10 +59547,6 @@ msgid "" "You will, of course, need a lighter or matches in your inventory to do this." " Shortly after lighting the fuse, this item will explode, so get away!" msgstr "" -" Este é um explosivo caseiro volátil. Use este item para acender ofusível. " -"Você precisará, é claro, de um isqueiro ou de combinações em " -"seuinventáriopara fazer isso. Pouco depois de acender o fusível, este item " -"vaiexplodir, então vá embora!" #: lang/json/TOOL_from_json.py msgid "fertilizer bomb (lit)" @@ -67213,8 +59560,6 @@ msgid "" "The fuse on this fertilizer bomb is lit and hissing. It'll explode any " "moment now." msgstr "" -" Bomba de fertilizante (aceso) O fusível desta bomba de " -"fertilizanteestáaceso e assobiando. Vai explodir a qualquer momento agora." #: lang/json/TOOL_from_json.py msgid "fire axe" @@ -67228,9 +59573,6 @@ msgid "" "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." msgstr "" -" machado de fogoEste é um grande machado de duas mãos normalmente " -"usadoporbombeiros. Ele faz uma poderosa arma branca, mas é um pouco lento " -"paraserecuperar entre balanços." #: lang/json/TOOL_from_json.py msgid "fire drill" @@ -67246,10 +59588,6 @@ msgid "" "materials, it's slow and rather difficult to get a fire started using this " "tool." msgstr "" -" broca de incêndioEsta broca de incêndio é um item simples " -"parainiciarincêndios; é feito de dois pedaços de madeira e alguma corda. " -"Umavez que éconstruído a partir de materiais simples, é lento e " -"bastantedifícilcomeçar um incêndio usando esta ferramenta." #: lang/json/TOOL_from_json.py msgid "camp fire drill" @@ -67265,10 +59603,6 @@ msgid "" "materials, it's slow and rather difficult to get a fire started using this " "tool." msgstr "" -" broca de incêndio de acampamentoEsta broca de incêndio robusta é " -"umitemsimples para iniciar incêndios; é feito de dois pedaços de madeira " -"ealgumacorda. Uma vez que é construído a partir de materiais simples, élento" -" ebastante difícil começar um incêndio usando esta ferramenta." #: lang/json/TOOL_from_json.py msgid "firecracker" @@ -67283,10 +59617,6 @@ msgid "" " Of course, you will need a lighter or some matches to do so. Shortly " "after you light the fuse it will explode, so throw it quickly!" msgstr "" -" firecrackerUm fogo de artifício solitário com um fusível curto. Useesteitem" -" para acender o fusível. Claro, você precisará de um isqueiro oudealguns " -"fósforos para isso. Logo depois que você acender o fusíveleleexplodirá, " -"então jogue-o rapidamente!" #: lang/json/TOOL_from_json.py msgid "firecracker (lit)" @@ -67300,8 +59630,6 @@ msgid "" "A firecracker that has been lit; the fuse is hissing. Throw it quickly " "before it explodes." msgstr "" -" firecracker (lit) Um foguete que foi aceso; o fusível está assobiando. " -"Joguerapidamente antes que exploda." #: lang/json/TOOL_from_json.py msgid "pack of firecrackers" @@ -67317,10 +59645,6 @@ msgid "" "so. Shortly after you light the fuse they will begin to explode, so throw " "them quickly!" msgstr "" -" pack of firecrackersEste é um pacote de 25 fogos de artifício com " -"umfusívelinicial. Use este item para acender o fusível. Claro, vocêprecisará" -" de umisqueiro ou de alguns fósforos para isso. Logo depois quevocê acender " -"ofusível, eles começarão a explodir, então jogue- osrapidamente!" #: lang/json/TOOL_from_json.py msgid "pack of firecrackers (lit)" @@ -67334,9 +59658,6 @@ msgid "" "A pack of 25 firecrackers that has been lit; the fuse is hissing. Throw " "them quickly before the start to explode." msgstr "" -" pacote de fogos de artifício (aceso) Um pacote de 25 fogos de " -"artifícioquefoi aceso; o fusível está assobiando. Jogue-os rapidamente antes" -" decomeçara explodir." #: lang/json/TOOL_from_json.py msgid "plastic fish trap" @@ -67352,10 +59673,6 @@ msgid "" "for bait, but can't get out. Not humane, prohibited by law, but there are " "no cops left to care." msgstr "" -" armadilha de peixe de plásticoEsta é uma armadilha de peixeimprovisadafeita" -" a partir de garrafas de plástico. É simples, primitivo, mas fácil deusar. O" -" princípio da ação: o peixe nada por isca, mas nãoconsegue sair. Não é " -"humano, proibido por lei, mas não há policiais paracuidar." #: lang/json/TOOL_from_json.py msgid "basic fishing rod" @@ -67369,9 +59686,6 @@ msgid "" "'Fishing rod' might be a bit too charitable of a description. In truth, " "this is a stick with a piece of string and a hook." msgstr "" -" vara de pesca básica\"vara de pesca\" pode ser um pouco caridoso " -"deumadescrição. Na verdade, esta é uma vara com um pedaço de corda e " -"umgancho." #: lang/json/TOOL_from_json.py msgid "pro fishing rod" @@ -67385,9 +59699,6 @@ msgid "" "A professional fishing rod with a matching set of weights. With this you " "should be able to catch 'em all." msgstr "" -" vara de pesca profissional Uma vara de pesca profissional com um " -"conjuntodepesos correspondente. Com isso você deve ser capaz de pegá-los " -"todos." #: lang/json/TOOL_from_json.py msgid "flammable arrow" @@ -67401,8 +59712,6 @@ msgid "" "This arrow has a rag soaked in a flammable liquid wrapped around the shaft " "near the head. You need to light it before shooting." msgstr "" -" flecha inflamávelEsta flecha tem um pano embebido em um líquidoinflamávelem" -" volta do eixo perto da cabeça. Você precisa acendê-lo antesdefotografar." #: lang/json/TOOL_from_json.py msgid "flashbang" @@ -67413,7 +59722,7 @@ msgstr[1] "" #. ~ Use action msg for flashbang. #: lang/json/TOOL_from_json.py msgid "You pull the pin on the flashbang." -msgstr "flashbangVocê puxa o pino no flashbang." +msgstr "" #. ~ Description for flashbang #: lang/json/TOOL_from_json.py @@ -67422,10 +59731,6 @@ msgid "" "and light the fuse. You will then have five turns before it detonates with " "intense light and sound, blinding, deafening and disorienting anyone nearby." msgstr "" -" Este é um estilo de polícia militar flashbang. Use este item para " -"puxaropino e acender o fusível. Você terá então cinco turnos antes de " -"detonarcomluz e som intensos, cegando, ensurdecendo e desorientando " -"qualquerpessoapor perto." #: lang/json/TOOL_from_json.py msgid "active flashbang" @@ -67440,9 +59745,6 @@ msgid "" "sound, blinding, deafening and disorienting anyone nearby. It may be a good" " idea to throw it!" msgstr "" -" flashbang ativoEste flashbang está ativo e em breve detonará com luz " -"esomintensos, cegando, ensurdecendo e desorientando qualquer pessoa " -"porperto. Pode ser uma boa ideia jogá-lo!" #: lang/json/TOOL_from_json.py msgid "tear gas payload" @@ -67484,7 +59786,7 @@ msgstr[1] "" #. ~ Description for flute #: lang/json/TOOL_from_json.py msgid "A simple silver-plated flute." -msgstr "flautaUma simples flauta banhada a prata." +msgstr "" #: lang/json/TOOL_from_json.py msgid "folding bicycle" @@ -67495,12 +59797,12 @@ msgstr[1] "" #. ~ Use action unfold_msg for folding bicycle. #: lang/json/TOOL_from_json.py msgid "You painstakingly unfold the bicycle and make it ready to ride." -msgstr "Você desdobra a bicicleta cuidadosamente e a prepara para andar." +msgstr "" #. ~ Description for folding bicycle #: lang/json/TOOL_from_json.py msgid "This is a bicycle folded into a relatively portable package." -msgstr "Esta é uma bicicleta dobrada em um pacote relativamente portátil." +msgstr "" #: lang/json/TOOL_from_json.py msgid "electric forge" @@ -67516,11 +59818,6 @@ msgid "" "little mechanical know-how, you could probably even convert it to run " "directly off a vehicle's power system." msgstr "" -" Forja elétricaEsta é uma forja elétrica portátil de metalurgia, " -"alimentadapor baterias. Combinado com as ferramentas certas, você pode " -"usarisso paratrabalhar metais. Com um pouco de know-how mecânico, você pode " -"atémesmoconvertê-lo para funcionar diretamente no sistema de energia de " -"umveículo." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py #: lang/json/vehicle_part_from_json.py @@ -67532,7 +59829,7 @@ msgstr[1] "" #. ~ Use action done_message for funnel. #: lang/json/TOOL_from_json.py msgid "You place the funnel, waiting to collect rain." -msgstr "funilVocê coloca o funil, esperando para coletar chuva." +msgstr "" #. ~ Description for funnel #: lang/json/TOOL_from_json.py @@ -67540,8 +59837,6 @@ msgid "" "This is a funnel used to collect rainwater. Use it outside and place a " "container beneath it to collect water when it rains." msgstr "" -" Este é um funil usado para coletar a água da chuva. Use-o do lado de " -"foraecoloque um recipiente abaixo dele para coletar água quando chover." #: lang/json/TOOL_from_json.py msgid "fur rollmat" @@ -67552,7 +59847,7 @@ msgstr[1] "" #. ~ Use action done_message for fur rollmat. #: lang/json/TOOL_from_json.py msgid "You unroll the fur mat and lay it on the ground." -msgstr "Você vai desenrolar o tapete de peles e colocá-lo no chão." +msgstr "" #. ~ Description for fur rollmat #: lang/json/TOOL_from_json.py @@ -67561,9 +59856,6 @@ msgid "" "insulates you from the floor, making it easier to sleep. Use it to unroll " "and place on the ground." msgstr "" -" Este é um saco de dormir feito de peles que podem ser " -"enroladasparatransporte. Ele isola você do chão, facilitando o sono. Use- " -"oparadesenrolar e colocar no chão." #: lang/json/TOOL_from_json.py msgid "trowel" @@ -67576,8 +59868,6 @@ msgstr[1] "" msgid "" "A small, sharp gardening shovel, perfect for digging up grubs and worms." msgstr "" -" Uma pequena e afiada pá de jardinagem, perfeita para desenterrar " -"larvasevermes." #: lang/json/TOOL_from_json.py msgid "makeshift gas canister" @@ -67588,12 +59878,12 @@ msgstr[1] "" #. ~ Use action menu_text for makeshift gas canister. #: lang/json/TOOL_from_json.py msgid "Arm" -msgstr "vasilha de gás improvisadaArm" +msgstr "" #. ~ Use action msg for makeshift gas canister. #: lang/json/TOOL_from_json.py msgid "You arm the makeshift gas canister." -msgstr "Você arma a caixinha de gás improvisada." +msgstr "" #. ~ Description for makeshift gas canister #: lang/json/TOOL_from_json.py @@ -67603,10 +59893,6 @@ msgid "" " This gas poisons those exposed to it, in addition to obscuring vision and " "scent." msgstr "" -" Esta é uma bomba de gás bruta usando produtos químicos domésticos. " -"Useesteitem para armá-lo. Em três turnos, ele começará a expelir um " -"gásaltamentetóxico por um curto período de tempo. Este gás envenena os " -"queestãoexpostos a ele, além de obscurecer a visão e o cheiro." #: lang/json/TOOL_from_json.py msgid "active makeshift gas grenade" @@ -67624,7 +59910,7 @@ msgstr "" #. ~ Use action sound_msg for active nail bomb. #: lang/json/TOOL_from_json.py msgid "Hiss." -msgstr "Sentindo" +msgstr "" #. ~ Description for active makeshift gas grenade #: lang/json/TOOL_from_json.py @@ -67633,9 +59919,6 @@ msgid "" "shortly be) expelling highly toxic gas. You should consider getting rid of " "it soon." msgstr "" -" Essa lata caseira de gás venenoso não foi selada e está (ou estará " -"embreve)expelindo gás altamente tóxico. Você deve considerar se livrar " -"deleembreve." #: lang/json/TOOL_from_json.py msgid "gasoline cooker" @@ -67649,8 +59932,6 @@ msgid "" "This is a simple heater powered by gasoline. It is designed for cooking " "food." msgstr "" -" fogão a gasolinaEste é um aquecedor simples movido a gasolina. " -"Eleéprojetado para cozinhar comida." #: lang/json/TOOL_from_json.py msgid "gasoline lantern (off)" @@ -67663,13 +59944,13 @@ msgstr[1] "" #. ~ Use action msg for electric lantern (off). #: lang/json/TOOL_from_json.py msgid "You turn the lamp on." -msgstr "lampada a gasolina (off) Voce liga a lampada." +msgstr "" #. ~ Use action need_charges_msg for gasoline lantern (off). #. ~ Use action need_charges_msg for oil lamp (off). #: lang/json/TOOL_from_json.py msgid "The lamp is empty." -msgstr "A lâmpada está vazia." +msgstr "" #. ~ Description for gasoline lantern (off) #: lang/json/TOOL_from_json.py @@ -67677,8 +59958,6 @@ msgid "" "This is a small gasoline powered lantern. It does not provide much light, " "but it lasts a long time. Use it to turn it on." msgstr "" -" Esta é uma pequena lanterna movida a gasolina. Não fornece muita luz, " -"masdura muito tempo. Use-o para ligá-lo." #: lang/json/TOOL_from_json.py msgid "gasoline lantern (on)" @@ -67690,7 +59969,7 @@ msgstr[1] "" #. ~ Use action msg for oil lamp. #: lang/json/TOOL_from_json.py msgid "The lantern is extinguished." -msgstr "lanterna de gasolina (em) A lanterna é extinta." +msgstr "" #. ~ Description for gasoline lantern (on) #: lang/json/TOOL_from_json.py @@ -67698,8 +59977,6 @@ msgid "" "This is a small gasoline powered lantern. It does not provide much light, " "but it lasts a long time. It is turned on. Use it to turn it off." msgstr "" -" Esta é uma pequena lanterna movida a gasolina. Não fornece muita luz, " -"masdura muito tempo. Está ligado. Use-o para desligá-lo." #: lang/json/TOOL_from_json.py msgid "geiger counter (off)" @@ -67714,10 +59991,6 @@ msgid "" "whether to scan yourself or the terrain, or to turn it on, which will " "provide continuous feedback on ambient radiation. It is currently off." msgstr "" -" contador geiger (off) Esta é uma ferramenta para medir a radiação. Usá- " -"losolicitará que você escolha se quer digitalizar a si mesmo ou o terreno, " -"ouligá-lo, o que fornecerá feedback contínuo sobre a radiação ambiente. " -"Estáatualmente desligado." #: lang/json/TOOL_from_json.py msgid "geiger counter (on)" @@ -67733,10 +60006,6 @@ msgid "" "Using it allows you to turn it off, or scan yourself or the ground. It is " "currently on." msgstr "" -" contador geiger (on) Esta é uma ferramenta para medir a radiação. Eleestáno" -" modo de varredura contínua e produzirá sons de cliques " -"silenciososnapresença de radiação ambiente. Usá-lo permite que você o " -"desligueouescaneie a si mesmo ou no chão. Está atualmente em." #: lang/json/TOOL_from_json.py msgid "glowstick" @@ -67747,7 +60016,7 @@ msgstr[1] "" #. ~ Use action msg for glowstick. #: lang/json/TOOL_from_json.py msgid "You activate the glowstick." -msgstr "glowstickVocê ativa o glowstick." +msgstr "" #. ~ Description for glowstick #: lang/json/TOOL_from_json.py @@ -67756,9 +60025,6 @@ msgid "" "the glass cylinder inside to start the reaction. It will produce a small " "amount of light." msgstr "" -" Este é um pequeno glowstick de luz azul. Use-o para dobrar o " -"plásticoequebrar o cilindro de vidro no interior para iniciar a reação. " -"Produziráuma pequena quantidade de luz." #: lang/json/TOOL_from_json.py msgid "dead glowstick" @@ -67769,7 +60035,7 @@ msgstr[1] "" #. ~ Description for dead glowstick #: lang/json/TOOL_from_json.py msgid "This is a spent glowstick. It is essentially trash." -msgstr "glowstick mortoEste é um glowstick gasto. É essencialmente lixo." +msgstr "" #: lang/json/TOOL_from_json.py msgid "active glowstick" @@ -67783,8 +60049,6 @@ msgid "" "This is an active glowstick and is producing light. It will last for a few " "hours before burning out." msgstr "" -" glowstick ativoEste é um glowstick ativo e está produzindo luz. " -"Vaiduraralgumas horas antes de queimar." #: lang/json/TOOL_from_json.py msgid "hacksaw" @@ -67795,7 +60059,7 @@ msgstr[1] "" #. ~ Description for hacksaw #: lang/json/TOOL_from_json.py msgid "This is a sturdy saw, useful for cutting through metal objects." -msgstr "hacksawEsta é uma serra robusta, útil para cortar objetos de metal." +msgstr "" #: lang/json/TOOL_from_json.py msgid "Halligan bar" @@ -67811,11 +60075,6 @@ msgid "" " destroying them or to lift manhole covers. You could also wield it to bash" " some heads in." msgstr "" -" Barra HalliganEsta é uma ferramenta pesada de uso " -"múltiplocomumenterealizada por bombeiros, policiais e unidades militares " -"deresgate. Use-opara abrir portas trancadas sem destruí-las ou " -"levantartampas de bueiros. Você também pode usá-lo para bater em algumas " -"cabeças." #: lang/json/TOOL_from_json.py msgid "hammer" @@ -67830,9 +60089,6 @@ msgid "" " nails, and two by fours in your inventory, you could board up adjacent " "doors and windows. It has myriad other uses as well." msgstr "" -" marteloEste é um martelo de aço desmagnetizado com um punho de madeira. " -"Comum martelo, pregos e dois quatros no seu inventário, você pode " -"subiremportas e janelas adjacentes. Tem muitos outros usos também." #: lang/json/TOOL_from_json.py msgid "hand drill" @@ -67846,8 +60102,6 @@ msgid "" "A primitive manual drill with a single drill bit. It is slow and it will " "exhaust you quickly." msgstr "" -" hand drillA broca manual primitiva com uma única broca. É lento evaiesgotar" -" você rapidamente." #: lang/json/TOOL_from_json.py msgid "heat pack" @@ -67861,8 +60115,6 @@ msgid "" "This is a chemical heat pack. It's used to treat sports injuries and heat " "food. It is usable only once." msgstr "" -" pacote de calorEste é um pacote de calor químico. É usado para " -"tratarlesõesesportivas e aquecer alimentos. É utilizável apenas uma vez." #: lang/json/TOOL_from_json.py msgid "used heat pack" @@ -67876,9 +60128,6 @@ msgid "" "This is a chemical heat pack. It's used to treat sports injuries and heat " "food. This one has been used and is chemically inert, rendering it useless." msgstr "" -" pacote de calor usadoEste é um pacote de calor químico. É usado " -"paratratarlesões esportivas e aquecer alimentos. Este foi usado e " -"équimicamenteinerte, tornando-o inútil." #: lang/json/TOOL_from_json.py msgid "hoe" @@ -67892,8 +60141,6 @@ msgid "" "This is a farming implement. You can use it to turn tillable land into a " "slow-to-cross pile of dirt, or dig a shallow pit." msgstr "" -" hoeEste é um implemento agrícola. Você pode usá-lo para transformar " -"aterracultivável em uma pilha de terra, ou cavar um buraco raso." #: lang/json/TOOL_from_json.py msgid "honey scraper" @@ -67907,8 +60154,6 @@ msgid "" "A sharp, knife-like tool used in harvesting honey from beehives. Makes a " "passable melee weapon." msgstr "" -" raspador de melUma ferramenta afiada, semelhante a uma faca, " -"usadanacolheita de mel de colméias. Faz uma arma corpo a corpo passável." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "bicycle horn" @@ -67920,12 +60165,12 @@ msgstr[1] "" #. ~ Use action noise_message for bicycle horn. #: lang/json/TOOL_from_json.py src/vehicle_use.cpp msgid "honk." -msgstr "bicicleta hornhonk." +msgstr "" #. ~ Use action use_message for bicycle horn. #: lang/json/TOOL_from_json.py msgid "You honk the bicycle horn." -msgstr "Você buzina a buzina da bicicleta." +msgstr "" #. ~ Description for bicycle horn #: lang/json/TOOL_from_json.py @@ -67933,8 +60178,6 @@ msgid "" "This is a simple bulb horn, found on many bicycles. Use to honk. Honk " "honk." msgstr "" -" Este é um chifre de bulbo simples, encontrado em muitas bicicletas. " -"Useparabuzinar. Honk honk." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "truck horn" @@ -67946,8 +60189,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a very loud horn, usually found on large trucks like semis." msgstr "" -" chifre de caminhãoEste é um chifre muito alto, geralmente " -"encontradoemcaminhões grandes como semis." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "car horn" @@ -67959,8 +60200,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a car horn meant to be attached to a car's electrical system." msgstr "" -" O hornThis do carro é uma buzina do carro significada ser unida " -"aosistemaelétrico de um carro." #: lang/json/TOOL_from_json.py msgid "rubber hose" @@ -67974,8 +60213,6 @@ msgid "" "This is a flexible rubber hose. It could be used for crafting, or siphoning" " fuel from a vehicle." msgstr "" -" mangueira de borrachaEsta é uma mangueira de borracha flexível. " -"Podeserusado para criar ou extrair combustível de um veículo." #: lang/json/TOOL_from_json.py msgid "hotplate" @@ -67989,9 +60226,6 @@ msgid "" "This is a small heating element on a stand, powered by batteries. It is " "indispensable for cooking and chemistry. Try not to burn yourself." msgstr "" -" placa de aquecimentoEste é um pequeno elemento de aquecimento em umsuporte," -" alimentado por baterias. É indispensável para cozinhar e química. Tente " -"nãose queimar." #: lang/json/TOOL_from_json.py msgid "hygrometer" @@ -68003,7 +60237,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A plastic hygrometer that can read the relative humidity in the air." msgstr "" -" higrômetroUm higrômetro de plástico que pode ler a umidade relativa do ar." #: lang/json/TOOL_from_json.py msgid "ice axe" @@ -68018,10 +60251,6 @@ msgid "" "climbing tool used by mountaineers. It is sturdy enough to pry open closed " "doors or lift manhole covers." msgstr "" -" machado de geloEste é um machado de gelo com um martelo na cabeça, " -"umaferramenta multiusos de escalada e caminhada usada por " -"montanhistas.Éresistente o suficiente para forçar a abertura de portas " -"fechadas ouolevantamento de tampas de inspeção." #: lang/json/TOOL_from_json.py msgid "jackhammer" @@ -68036,9 +60265,6 @@ msgid "" "surfaces. It runs on gasoline. Use it (if loaded) to blast a hole in " "adjacent solid terrain." msgstr "" -" jackhammerEsta é uma ferramenta de construção para perfurar hard " -"rockououtras superfícies. Funciona com gasolina. Use-o (se carregado) " -"parafazerum buraco no terreno sólido adjacente." #: lang/json/TOOL_from_json.py msgid "Kevlar plate" @@ -68052,8 +60278,6 @@ msgid "" "This is a plate of reinforced Kevlar. It could be used to repair items made" " of Kevlar." msgstr "" -" Placa de KevlarEsta é uma placa de Kevlar reforçado. Pode ser " -"usadoparaconsertar itens feitos de Kevlar." #: lang/json/TOOL_from_json.py msgid "finished charcoal kiln" @@ -68067,8 +60291,6 @@ msgid "" "A charcoal kiln that has finished burning. Disassemble it to retrieve the " "charcoal and kiln." msgstr "" -" forno de carvão de forno de carvão vegetal acabado que acabou dequeimar. " -"Desmonte-o para recuperar o carvão e o forno." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "filled charcoal kiln" @@ -68079,17 +60301,17 @@ msgstr[1] "" #. ~ Use action menu_text for filled charcoal kiln. #: lang/json/TOOL_from_json.py msgid "Light wood" -msgstr "madeira de kilnLight cheia de carvão" +msgstr "" #. ~ Use action msg for filled charcoal kiln. #: lang/json/TOOL_from_json.py msgid "You light the wood." -msgstr "Você acende a madeira." +msgstr "" #. ~ Use action need_fire_msg for filled charcoal kiln. #: lang/json/TOOL_from_json.py msgid "You need something to light it with!" -msgstr "Você precisa de algo para acendê-lo!" +msgstr "" #. ~ Description for filled charcoal kiln #: lang/json/TOOL_from_json.py @@ -68097,8 +60319,6 @@ msgid "" "A kiln filled with wood which will become charcoal after a slow period of " "burning." msgstr "" -" Um forno cheio de madeira que se tornará carvão após um período " -"lentodequeima." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "land mine" @@ -68109,23 +60329,23 @@ msgstr[1] "" #. ~ Use action bury_question for land mine. #: lang/json/TOOL_from_json.py msgid "Bury the land mine?" -msgstr "mina de terra Enterrar a mina terrestre?" +msgstr "" #. ~ Use action done_message for land mine. #: lang/json/TOOL_from_json.py msgid "You set the land mine." -msgstr "Você define a mina terrestre." +msgstr "" #. ~ Use action done_message for land mine. #: lang/json/TOOL_from_json.py msgid "You bury the land mine." -msgstr "Você enterra a mina da terra." +msgstr "" #. ~ Description for land mine #: lang/json/TOOL_from_json.py msgid "" "This is an military anti-personnel mine that is triggered when stepped upon." -msgstr "Esta é uma mina militar antipessoal que é acionada quando pisada." +msgstr "" #: lang/json/TOOL_from_json.py msgid "gunsmith repair kit" @@ -68140,10 +60360,6 @@ msgid "" "standard batteries, it is a vital tool for long-term firearms maintenance. " "It requires 25 charges of battery power per use." msgstr "" -" kit de reparação de armeiroEste é um kit de ferramentas completo " -"feitoparareparar armas de fogo danificadas. Alimentado por baterias padrão, " -"éumaferramenta vital para a manutenção de armas de fogo a longo prazo. " -"Requer25 cargas de bateria por uso." #: lang/json/TOOL_from_json.py msgid "large tent" @@ -68157,8 +60373,6 @@ msgid "" "This is a family sized tent. It provides a large amount of space, but is " "very bulky." msgstr "" -" tenda grandeEsta é uma tenda de tamanho familiar. Ele fornece " -"umagrandequantidade de espaço, mas é muito volumoso." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py #: lang/json/vehicle_part_from_json.py @@ -68171,7 +60385,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You place the leather funnel, waiting to collect rain." msgstr "" -" funil de couro Você coloca o funil de couro, esperando para coletar achuva." #. ~ Description for leather funnel #: lang/json/TOOL_from_json.py @@ -68179,9 +60392,6 @@ msgid "" "This is a small, leather funnel used to collect rainwater. Use it outside " "and place a container beneath it to collect water when it rains." msgstr "" -" Este é um pequeno funil de couro usado para coletar a água da chuva. Use- " -"odo lado de fora e coloque um recipiente abaixo dele para coletaráguaquando " -"chover." #: lang/json/TOOL_from_json.py msgid "lighter" @@ -68196,10 +60406,6 @@ msgid "" "various drugs, like cigarettes, or to light things like Molotov cocktails. " "You can also use a lighter to light nearby items on fire." msgstr "" -" isqueiroIsto é um isqueiro de plástico descartável. Um isqueiro " -"devesercarregado para usar várias drogas, como cigarros, ou para " -"acendercoisascomo coquetéis molotov. Você também pode usar um isqueiro " -"paraacenderitens próximos em chamas." #: lang/json/TOOL_from_json.py msgid "lightstrip_base" @@ -68230,7 +60436,7 @@ msgstr[1] "" #. ~ Use action msg for lightstrip (inactive). #: lang/json/TOOL_from_json.py msgid "You irreversibly activate the lightstrip." -msgstr "lightstrip (inativo) Você ativa a tira de luz de forma irreversível." +msgstr "" #. ~ Description for lightstrip (inactive) #: lang/json/TOOL_from_json.py @@ -68251,8 +60457,6 @@ msgid "" "This is a magnifying glass. May be useful for starting fires during sunny " "skies." msgstr "" -" lupaEsta é uma lupa. Pode ser útil para iniciar incêndios durante " -"océuensolarado." #: lang/json/TOOL_from_json.py msgid "makeshift crowbar" @@ -68267,10 +60471,6 @@ msgid "" "crowbar. Use it to open locked doors without destroying them, or to lift " "manhole covers. You could also wield it to fight with, in a pinch." msgstr "" -" pé de cabra improvisadoEste é um cano cujas extremidades foram " -"dobradasemarteladas para parecer um pé de cabra. Use-o para abrir " -"portastrancadassem destruí-las ou para levantar tampas de bueiros. Você " -"também pode usá-lopara lutar com um aperto." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py #: lang/json/vehicle_part_from_json.py @@ -68283,8 +60483,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You place the makeshift funnel, waiting to collect rain." msgstr "" -" funil improvisadoVocê coloca o funil improvisado, esperando para " -"coletarachuva." #. ~ Description for makeshift funnel #: lang/json/TOOL_from_json.py @@ -68292,9 +60490,6 @@ msgid "" "This is a small, makeshift funnel used to collect rainwater. Use it outside" " and place a container beneath it to collect water when it rains." msgstr "" -" Este é um pequeno funil improvisado usado para coletar a água dachuva. " -"Use-o do lado de fora e coloque um recipiente abaixo dele paracoletar " -"águaquando chover." #: lang/json/TOOL_from_json.py msgid "makeshift hammer" @@ -68308,9 +60503,6 @@ msgid "" "This is a crude hammer make from a piece of metal affixed to a stick. It " "functions adequately as a hammer, but really can't compare to a proper one." msgstr "" -" martelo improvisadoEste é um martelo bruto feito de um pedaço " -"demetalafixado a um bastão. Funciona adequadamente como um martelo, mas " -"naverdadenão pode ser comparado a um bom." #: lang/json/TOOL_from_json.py msgid "makeshift vacuum sealer" @@ -68324,9 +60516,6 @@ msgid "" "This is a homemade heat sealer unit with an air pump. It's used for vacuum " "packing food to preserve it." msgstr "" -" selador provisório a vácuoEsta é uma unidade seladora de calor " -"caseirocomuma bomba de ar. É usado para embalar alimentos a vácuo para " -"preservá-lo." #: lang/json/TOOL_from_json.py msgid "match head bomb" @@ -68337,7 +60526,7 @@ msgstr[1] "" #. ~ Use action msg for match head bomb. #: lang/json/TOOL_from_json.py msgid "You light the match head bomb." -msgstr "match head bombVocê acende a bomba na cabeça do fósforo." +msgstr "" #. ~ Description for match head bomb #: lang/json/TOOL_from_json.py @@ -68346,10 +60535,6 @@ msgid "" "equipped with a fuse. Use this item to light the fuse; you will, of course," " need a lighter in your inventory to do this." msgstr "" -" Esta é uma bomba caseira que consiste em uma garrafa cheia de " -"cabeçaseequipada com um fusível. Use este item para acender o " -"fusível;vocêprecisará, obviamente, de um isqueiro no seu inventário para " -"fazerisso." #: lang/json/TOOL_from_json.py msgid "match head bomb (lit)" @@ -68364,10 +60549,6 @@ msgid "" " has been lit, and its fuse is rapidly burning down. You may not want to " "hold onto it much longer." msgstr "" -" match head bomb (lit) Esta é uma garrafa cheia de cabeças de " -"fósforoeequipada com um fusível. Este foi aceso e seu fusível " -"estáqueimandorapidamente. Você pode não querer segurá-lo por muito mais " -"tempo." #: lang/json/TOOL_from_json.py msgid "matchbook" @@ -68383,11 +60564,6 @@ msgid "" "light things like Molotov cocktails. You can also use matches to light " "nearby items on fire." msgstr "" -" matchbookEste é um pequeno livro de fósforos com uma superfície " -"grosseiranaaba externa. As correspondências devem ser realizadas para " -"usarváriosmedicamentos, como cigarros, ou para acender coisas como " -"coquetéisMolotov. Você também pode usar combinações para acender itens " -"próximos emchamas." #: lang/json/TOOL_from_json.py msgid "mess kit" @@ -68402,10 +60578,6 @@ msgid "" "wilderness cooking. This model relies on a battery-operated hotplate, " "rather than the more commonplace chemical-fueled Esbit stove." msgstr "" -" kit de bagunçaUm kit de bagunça de camping independente, contendo tudo " -"oquevocê precisa para cozinhar no deserto. Este modelo conta com uma " -"placadeaquecimento operada por bateria, em vez do fogão Esbit maiscomum, " -"abastecido com produtos químicos." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py #: lang/json/vehicle_part_from_json.py @@ -68418,7 +60590,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You place the metal funnel, waiting to collect rain." msgstr "" -" funil de metalVocê coloca o funil de metal, esperando para coletar a chuva." #. ~ Description for metal funnel #: lang/json/TOOL_from_json.py @@ -68427,10 +60598,6 @@ msgid "" "plastic funnels, but collects more water. Use it outside and place a " "container beneath it to collect water when it rains." msgstr "" -" Este é um grande funil de metal usado para coletar a água da chuva. " -"Menosportáteis do que os funis de plástico, mas recolhe mais água. Use-o " -"doladode fora e coloque um recipiente abaixo dele para coletar " -"águaquandochover." #: lang/json/TOOL_from_json.py msgid "tarp raincatcher" @@ -68461,8 +60628,6 @@ msgid "" "This metallic tool is most often used to smooth concrete, or mortar, in " "construction projects." msgstr "" -" Smoother metálicoEsta ferramenta metálica é mais frequentemente " -"usadaparasuavizar concreto, ou argamassa, em projetos de construção." #: lang/json/TOOL_from_json.py msgid "military mess kit" @@ -68479,12 +60644,6 @@ msgid "" "battery-operated hotplate, rather than the smoke-producing chemical-fueled " "Esbit stove. Compact, durable and lightweight." msgstr "" -" kit de bagunça militarFilme militar projetado para " -"patrulhasdereconhecimento de longo alcance posicionadas atrás das " -"linhasinimigas. Todas as peças são feitas de folhas finas de compósito de " -"alumínio/superalloy e são isoladas com revestimento cerâmico. Depende de " -"umaplacade aquecimento operada por bateria, em vez do fogão Esbit " -"alimentadocomprodutos químicos que produz fumaça. Compacto, durável e leve." #: lang/json/TOOL_from_json.py msgid "mininuke" @@ -68499,9 +60658,6 @@ msgid "" "activate the timer. You guess that the explosion would be large enough to " "take out a small house." msgstr "" -" mininukeEsta é uma arma extremamente poderosa, uma bomba nuclearportátil. " -"Use-o para ativar o temporizador. Você adivinha que a explosãoseria grandeo " -"suficiente para tirar uma pequena casa." #. ~ Description for mininuke #: lang/json/TOOL_from_json.py @@ -68509,9 +60665,6 @@ msgid "" "This miniature nuclear bomb has a light blinking on the side, showing that " "it will soon explode. You should probably get far, far away from it." msgstr "" -" Esta bomba nuclear em miniatura tem uma luz piscando na lateral, " -"mostrandoque ela logo explodirá. Você provavelmente deveria ir longe, " -"longedisso." #: lang/json/TOOL_from_json.py msgid "basic repair kit" @@ -68526,10 +60679,6 @@ msgid "" "vital tool for fixing items made of wood, paper, bone, or chitin. It " "requires 50 units of duct tape per use." msgstr "" -" kit de reparo básicoEste é um kit de ferramentas portátil. " -"Quandofornecidocom fita adesiva, serve como uma ferramenta vital para a " -"fixaçãode itensfeitos de madeira, papel, osso ou quitina. Requer 50 unidades" -" defitaadesiva por uso." #: lang/json/TOOL_from_json.py msgid "plastic mold" @@ -68543,8 +60692,6 @@ msgid "" "This is a plastic mold. It could be shaped and used to craft items made of " "plastic." msgstr "" -" moldes de plásticoEste é um molde de plástico. Ele poderia ser " -"moldadoeusado para fabricar itens feitos de plástico." #: lang/json/TOOL_from_json.py msgid "Molotov cocktail" @@ -68555,12 +60702,12 @@ msgstr[1] "" #. ~ Use action menu_text for Molotov cocktail. #: lang/json/TOOL_from_json.py msgid "Light rag" -msgstr "Molotov cocktailPano de luz" +msgstr "" #. ~ Use action msg for Molotov cocktail. #: lang/json/TOOL_from_json.py msgid "You light the Molotov cocktail!" -msgstr "Você acende o coquetel Molotov!" +msgstr "" #. ~ Description for Molotov cocktail #: lang/json/TOOL_from_json.py @@ -68569,10 +60716,6 @@ msgid "" "the rag. You will, of course, need a lighter or matches in your inventory " "to do this. After lighting it, throw it to cause fires." msgstr "" -" Uma garrafa de líquido inflamável com um pano inserido. Use este " -"itemparailuminar o pano. Você precisará, é claro, de um isqueiro ou " -"decombinaçõesem seu inventário para fazer isso. Depois de acendê-lo, atire- " -"opara causarincêndios." #. ~ Description for Molotov cocktail #: lang/json/TOOL_from_json.py @@ -68582,10 +60725,6 @@ msgid "" "Dropping it will set you on fire, so don't do that unless you want to burn " "to death." msgstr "" -" Uma garrafa de líquido inflamável com um pano flamejante preso nopescoço. " -"Atirar irá quebrar a garrafa no impacto e acender uma bola de fogo. Deixá- " -"lo cair no fogo, por isso não faça isso a menos que queira queimaraté " -"amorte." #: lang/json/TOOL_from_json.py msgid "mop" @@ -68599,8 +60738,6 @@ msgid "" "This is an unwieldy mop. Good for cleaning up spills. Use to mop up any " "'mess' you may have made." msgstr "" -" mopEste é um esfregão pesado. Bom para limpar os derramamentos. " -"Useparalimpar qualquer 'bagunça' que você possa ter feito." #: lang/json/TOOL_from_json.py msgid "scrub brush" @@ -68626,9 +60763,6 @@ msgid "" " Used for grinding grain, but time-consuming compared to more complex " "methods." msgstr "" -" almofariz e pilãoEsta é uma combinação simples de um pequeno rebolo " -"eumapedra em forma de tigela. Usado para moer grãos, mas consome " -"tempoemcomparação com métodos mais complexos." #: lang/json/TOOL_from_json.py msgid "mp3 player (off)" @@ -68657,10 +60791,6 @@ msgid "" "morale steadily while on your person. It runs through batteries quickly; " "you can turn it off by using it. It also obscures your hearing." msgstr "" -" mp3 player (on) Este mp3 player está ligado e tocando algumasmúsicasótimas," -" elevando seu moral de forma constante enquanto estiver nasuapessoa. Ele é " -"executado através de baterias rapidamente; você podedesligá-lo usando-o. " -"Isso também obscurece sua audição." #: lang/json/TOOL_from_json.py msgid "multi cooker" @@ -68676,11 +60806,6 @@ msgid "" "sort of cooking, from parboiling potatoes to cooking curry to popping " "popcorn. There's no manual, but you're sure you can work it out." msgstr "" -" multi cookerUm multi-fogão de nível profissional, com um slot debateriapara" -" viagens de acampamento ou uso não autorizado. Sua infinidadedeconfigurações" -" e recursos prometem lidar com qualquer tipo de cozimento, deparboilização " -"de batatas a curry de cozinha a pipoca. Não há manual, masvocê tem certeza " -"que pode resolver isso." #: lang/json/TOOL_from_json.py msgid "multi-tool" @@ -68694,8 +60819,6 @@ msgid "" "A cleverly designed all-in-one tool which combines several smaller tools " "into the handles of a pair of pliers." msgstr "" -" multi-ferramentaUma ferramenta multifuncional inteligentemente " -"projetadaquecombina várias ferramentas menores nas alças de um alicate." #: lang/json/TOOL_from_json.py msgid "bone needle" @@ -68710,9 +60833,6 @@ msgid "" "clothing and items. Its low quality makes it rather unsuitable for anything" " requiring speed or precision." msgstr "" -" agulha de ossoEsta é agulha afiada feita de um osso. Seria útil " -"parafazerroupas e itens ásperos. Sua baixa qualidade torna-o " -"bastanteinadequadopara qualquer coisa que exija velocidade ou precisão." #: lang/json/TOOL_from_json.py msgid "curved needle" @@ -68727,10 +60847,6 @@ msgid "" "stitches that only pierce one side of the material. While unsuitable for " "most tailoring projects, it's a necessity for stitching neoprene." msgstr "" -" agulha curvaA agulha afiada curva de aço. Sua forma arredondadapermitefazer" -" pontos que perfuram apenas um lado do material. Emborasejainadequado para a" -" maioria dos projetos de alfaiataria, é umanecessidadepara costurar " -"neoprene." #: lang/json/TOOL_from_json.py msgid "wooden needle" @@ -68745,10 +60861,6 @@ msgid "" "hole carved into the head for threading. Its low quality makes it rather " "unsuitable for anything requiring speed or precision." msgstr "" -" agulha de madeiraEsta é uma agulha de madeira reduzida a uma pontaafiada. " -"Tem um buraco estreito esculpido na cabeça para enfiar. Sua " -"baixaqualidadetorna-o bastante inadequado para qualquer coisa que " -"exijavelocidade ouprecisão." #: lang/json/TOOL_from_json.py msgid "noise emitter (off)" @@ -68790,8 +60902,6 @@ msgid "" "This is a simple heater powered by lamp oil. It is designed for cooking " "food." msgstr "" -" fogão a óleo de lâmpadaEste é um aquecedor simples alimentado por " -"óleodelâmpada. Ele é projetado para cozinhar comida." #: lang/json/TOOL_from_json.py msgid "oil lamp (off)" @@ -68805,8 +60915,6 @@ msgid "" "This is an oil fueled lamp. It does not provide much light, but it lasts a " "long time. Use it to turn it on." msgstr "" -" lâmpada a óleo (desligada) Esta é uma lâmpada a óleo. Não fornece muitaluz," -" mas dura muito tempo. Use-o para ligá-lo." #: lang/json/TOOL_from_json.py msgid "oil lamp" @@ -68820,8 +60928,6 @@ msgid "" "This is an oil fueled lamp. It does not provide much light, but it lasts a " "long time. It is turned on. Use it to turn it off." msgstr "" -" Lâmpada de óleoEsta é uma lâmpada a óleo. Não fornece muita luz, " -"masduramuito tempo. Está ligado. Use-o para desligá-lo." #: lang/json/TOOL_from_json.py msgid "oxygen tank" @@ -68836,10 +60942,6 @@ msgid "" "Commonly used in emergency situations, it provides immediate relief for " "asthma attacks or smoke inhalation, and can provide a brief burst of energy." msgstr "" -" tanque de oxigênioEste é um tanque de oxigênio medicinal " -"comprimidocomregulador e máscara. Comumente usado em situações deemergência," -" proporciona alívio imediato para ataques de asma ou inalação defumaça, e " -"pode fornecer uma breve explosão de energia." #: lang/json/TOOL_from_json.py msgid "nitrogen tank" @@ -68876,7 +60978,7 @@ msgstr[1] "" #. ~ Description for paint brush #: lang/json/TOOL_from_json.py msgid "A wide brush, suitable for painting walls." -msgstr "escova de pinturaUm pincel largo, adequado para pintar paredes." +msgstr "" #: lang/json/TOOL_from_json.py msgid "permanent marker" @@ -68888,13 +60990,13 @@ msgstr[1] "" #. ~ Use action gerund for survival marker. #: lang/json/TOOL_from_json.py msgid "Written" -msgstr "marcador permanenteEscrito" +msgstr "" #. ~ Use action verb for permanent marker. #. ~ Use action verb for survival marker. #: lang/json/TOOL_from_json.py msgid "Write" -msgstr "Escrever" +msgstr "" #. ~ Description for permanent marker #: lang/json/TOOL_from_json.py @@ -68903,10 +61005,6 @@ 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 "" -" Este é um marcador permanente de força industrial King Size (tm), " -"ameiocaminho entre um marcador típico e uma lata de tinta spray emtamanho. " -"Use-o para escrever algo. No entanto, escrever \"Elbereth \\provavelmentenão" -" irá ajudá-lo." #: lang/json/TOOL_from_json.py msgid "pet carrier" @@ -68920,9 +61018,6 @@ msgid "" "A plastic container meant to hold pets for transport. Use it on a suitable " "animal to capture, use it on an empty tile to release." msgstr "" -" portador de animal de estimaçãoUm recipiente de plástico destinado " -"amanteranimais de estimação para o transporte. Use-o em um animal " -"adequadoparacapturar, use-o em uma peça vazia para liberar." #: lang/json/TOOL_from_json.py msgid "chicken cage" @@ -68937,9 +61032,6 @@ msgid "" "any tiny animal. Use it on a suitable animal to capture, use it on an empty" " tile to release." msgstr "" -" gaiola de frangoUm recipiente de arame feito para o transporte degalinhas, " -"mas você pode usá-lo para armazenar qualquer animal minúsculo. Use-o em " -"umanimal adequado para capturar, use-o em uma peça vazia paraliberar." #: lang/json/TOOL_from_json.py msgid "zombie pheromone" @@ -68969,9 +61061,6 @@ msgid "" "This is a large steel pickaxe, suitable for breaking up hard things or (with" " enough skill) hard targets. Strike the earth!" msgstr "" -" picaretaEsta é uma grande picareta de aço, adequada para " -"quebrarobjetosduros ou (com habilidade suficiente) alvos duros. Ataque a " -"terra!" #: lang/json/TOOL_from_json.py msgid "locksmith kit" @@ -68986,9 +61075,6 @@ msgid "" "It is essential for silently and quickly opening locks, provided you have " "some mechanical skill." msgstr "" -" kit de serralheiroEste é um conjunto de chave de aço resistente e " -"chavesdetorção. É essencial para abrir as fechaduras de forma silenciosa " -"erápida, desde que você tenha alguma habilidade mecânica." #: lang/json/TOOL_from_json.py msgid "glass pipe" @@ -69002,8 +61088,6 @@ msgid "" "This is a hand-blown glass pipe. It's of the type most commonly used to " "smoke recreational substances." msgstr "" -" tubo de vidroEste é um tubo de vidro soprado à mão. É do tipo " -"maiscomumenteusado para fumar substâncias recreativas." #: lang/json/TOOL_from_json.py msgid "tobacco pipe" @@ -69017,9 +61101,6 @@ msgid "" "This is a hand-carved wooden smoking pipe. It's designed to facilitate " "consumption of fire cured tobacco leaves." msgstr "" -" cachimbo de tabacoEste é um cachimbo de madeira entalhado à mão. " -"Eleéprojetado para facilitar o consumo de folhas de tabaco curadas pelo " -"fogo." #: lang/json/TOOL_from_json.py msgid "pipe bomb" @@ -69030,7 +61111,7 @@ msgstr[1] "" #. ~ Use action msg for pipe bomb. #: lang/json/TOOL_from_json.py msgid "You light the fuse on the pipe bomb." -msgstr "Você acende o fusível na bomba." +msgstr "" #. ~ Description for pipe bomb #: lang/json/TOOL_from_json.py @@ -69052,8 +61133,6 @@ msgid "" "This pipe bomb's fuse is lit, and it will explode any second now. Throw it " "immediately!" msgstr "" -" Bomba de tubo ativo O fusível desta bomba de tubo está aceso e " -"explodiráaqualquer momento. Jogue imediatamente!" #: lang/json/TOOL_from_json.py msgid "pliers" @@ -69067,9 +61146,6 @@ msgid "" "This is a basic pair of slip-joint pliers, able to handle basic mechanical " "work. Anything too complex will require a wrench." msgstr "" -" alicateEste é um par básico de alicates deslizantes, capazes de " -"lidarcomtrabalhos mecânicos básicos. Qualquer coisa muito complexa " -"exigiráumachave." #: lang/json/TOOL_from_json.py msgid "pocket watch" @@ -69083,8 +61159,6 @@ msgid "" "An old fashioned pocket watch. This one tells you the time and looks good " "doing it. Can also be disassembled into some useful parts." msgstr "" -" relógio de bolso Um relógio de bolso antiquado. Este diz-lhe o tempoeparece" -" ser bom fazê-lo. Também pode ser desmontado em algumas partesúteis." #: lang/json/TOOL_from_json.py msgid "pocket knife" @@ -69098,8 +61172,6 @@ msgid "" "This is a small pocket knife. It isn't great for combat, but it's better " "than nothing. It's sharp enough to butcher with." msgstr "" -" canivete Esta é uma pequena faca de bolso. Não é ótimo para combate, " -"masémelhor que nada. É afiada o suficiente para açougueiro." #: lang/json/TOOL_from_json.py msgid "electric polisher" @@ -69113,8 +61185,6 @@ msgid "" "An electric polisher which can be used to buff metal surfaces until they are" " reflective like a mirror." msgstr "" -" polidor elétrico Um polidor elétrico que pode ser usado " -"paralustrarsuperfícies metálicas até que elas reflitam como um espelho." #: lang/json/TOOL_from_json.py msgid "soda can stove kit" @@ -69129,10 +61199,6 @@ msgid "" "hand from a couple of aluminum soda cans. It comes with a 500 ml plastic " "bottle to hold concentrated alcohol fuel." msgstr "" -" kit de fogão de lata de refrigeranteEste é um fogão a lenha ultra- " -"levecomanel de ferver, feito à mão a partir de um par de latas de " -"refrigerantedealumínio. Ele vem com uma garrafa de plástico de 500 ml " -"paracontercombustível concentrado de álcool." #: lang/json/TOOL_from_json.py msgid "handheld game system" @@ -69147,9 +61213,6 @@ msgid "" " allowing you to play in the dark. You can use it to play it for a little " "while, but this requires batteries." msgstr "" -" sistema de jogo portátilEsta é uma consola de jogos portátil em " -"condiçõesdefuncionamento, com um ecrã retroiluminado que lhe permite jogar " -"noescuro. Você pode usá-lo para jogar por um tempo, mas isso requer pilhas." #: lang/json/TOOL_from_json.py msgid "portal generator" @@ -69163,9 +61226,6 @@ 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 "" -" Gerador de portalEste é um dispositivo raro, bizarro e arcano " -"denaturezasobrenatural. Está dando uma dor de cabeça só de olhar para ela. " -"Estácoberto de marcas alienígenas." #: lang/json/TOOL_from_json.py msgid "hand press & die set" @@ -69179,9 +61239,6 @@ msgid "" "This is a small hand press for hand loading firearm ammunition. It comes " "with everything you need to start hand loading your own munitions." msgstr "" -" imprensa de mão & morra setThis é uma pequena mão imprensa para " -"mãodecarregamento de munição de arma de fogo. Ele vem com tudo que " -"vocêprecisapara começar a carregar suas próprias munições." #: lang/json/TOOL_from_json.py msgid "stone adze" @@ -69194,8 +61251,6 @@ msgstr[1] "" msgid "" "This is a stone adze, somewhat useful for cutting through wood objects." msgstr "" -" stone adzeEste é um adorno de pedra, algo útil para cortar " -"objetosdemadeira." #: lang/json/TOOL_from_json.py msgid "stone axe" @@ -69209,9 +61264,6 @@ msgid "" "This is a sharpened stone affixed to a stick. It works passably well as an " "axe but really can't compare to a proper axe." msgstr "" -" machado de pedraEsta é uma pedra afiada afixada a um bastão. " -"Elefuncionarazoavelmente bem como um machado, mas na verdade não pode " -"sercomparado aum machado adequado." #: lang/json/TOOL_from_json.py msgid "stone hammer" @@ -69225,9 +61277,6 @@ msgid "" "This is a rock affixed to a stick, in the crude facsimile of a hammer. It " "functions adequately as a hammer, but really can't compare to a proper one." msgstr "" -" Martelo de pedra Esta é uma pedra afixada num pau, no fac-símile cru " -"deummartelo. Funciona adequadamente como um martelo, mas na verdade não pode" -" ser comparado a um bom." #: lang/json/TOOL_from_json.py msgid "stone knife" @@ -69241,8 +61290,6 @@ msgid "" "This is a sharpened stone set into a hollowed handle. Not nearly as usable " "as a proper knife, but it's better than nothing." msgstr "" -" faca de pedraEsta é uma pedra afiada colocada em um cabo oco. Não é " -"tãoútilquanto uma faca adequada, mas é melhor que nada." #: lang/json/TOOL_from_json.py msgid "stone shovel" @@ -69256,9 +61303,6 @@ msgid "" "This is a flattened stone affixed to a stick. It works passably well as a " "shovel but really can't compare to a real shovel." msgstr "" -" pá de pedraEsta é uma pedra achatada afixada a um pedaço de pau. " -"Elefunciona razoavelmente bem como uma pá, mas realmente não " -"podesercomparado a uma pá real." #: lang/json/TOOL_from_json.py msgid "bio lockpick" @@ -69270,7 +61314,7 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py lang/json/gun_from_json.py #: lang/json/gun_from_json.py msgid "this a pseudo item" -msgstr "bio lockpickth é um pseudo item" +msgstr "" #: lang/json/TOOL_from_json.py msgid "kinetic bullet puller" @@ -69282,8 +61326,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a tool used for properly disassembling firearm ammunition." msgstr "" -" extractor de balas cinéticoEsta é uma ferramenta usada " -"paradesmontarcorretamente a munição de arma de fogo." #: lang/json/TOOL_from_json.py msgid "rag" @@ -69297,8 +61339,6 @@ msgid "" "This is a largish piece of cloth, useful in crafting and possibly for " "staunching bleeding." msgstr "" -" Este é um grande pedaço de pano, útil na elaboração e " -"possivelmenteparaestancar o sangramento." #: lang/json/TOOL_from_json.py msgid "reading light" @@ -69310,17 +61350,17 @@ msgstr[1] "" #. ~ Use action msg for atomic reading light. #: lang/json/TOOL_from_json.py msgid "You switch on the reading light." -msgstr "luz de leituraVocê liga a luz de leitura." +msgstr "" #. ~ Use action need_charges_msg for reading light. #: lang/json/TOOL_from_json.py msgid "The reading light winks out." -msgstr "A luz de leitura pisca." +msgstr "" #. ~ Description for reading light #: lang/json/TOOL_from_json.py msgid "A little clip-on LED light, meant for reading books in the dark." -msgstr "Um pequeno LED de luz, destinado a ler livros no escuro." +msgstr "" #: lang/json/TOOL_from_json.py msgid "reading light (active)" @@ -69331,7 +61371,7 @@ msgstr[1] "" #. ~ Use action msg for reading light (active). #: lang/json/TOOL_from_json.py msgid "You switch off the reading light." -msgstr "luz de leitura (ativa) Você apaga a luz de leitura." +msgstr "" #. ~ Description for reading light (active) #: lang/json/TOOL_from_json.py @@ -69339,7 +61379,6 @@ msgid "" "A little clip-on LED light, meant for reading books in the dark. This one " "is turned on." msgstr "" -" Um pequeno LED de luz, destinado a ler livros no escuro. Este está ligado." #: lang/json/TOOL_from_json.py msgid "refillable lighter" @@ -69351,18 +61390,18 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py lang/json/item_action_from_json.py #: lang/json/item_action_from_json.py msgid "Light up" -msgstr "recarregável isqueiroLight up" +msgstr "" #. ~ Use action msg for refillable lighter. #: lang/json/TOOL_from_json.py msgid "You flick the lighter." -msgstr "Você aperta o isqueiro." +msgstr "" #. ~ Use action need_charges_msg for refillable lighter. #: lang/json/TOOL_from_json.py src/activity_handlers.cpp src/explosion.cpp #: src/gates.cpp src/iexamine.cpp msgid "Nothing happens." -msgstr "Nada acontece." +msgstr "" #. ~ Description for refillable lighter #: lang/json/TOOL_from_json.py @@ -69372,15 +61411,11 @@ msgid "" "like Molotov cocktails. You can also use a lighter to light nearby items on" " fire." msgstr "" -" Este é um isqueiro com tampa flip top e tanque reabastecido. Umisqueirodeve" -" ser carregado para usar várias drogas, como cigarros, ou paraacendercoisas " -"como coquetéis molotov. Você também pode usar um isqueiroparaacender itens " -"próximos em chamas." #. ~ Use action msg for refillable lighter. #: lang/json/TOOL_from_json.py msgid "You extinguish the lighter." -msgstr "Você apaga o isqueiro." +msgstr "" #. ~ Description for refillable lighter #: lang/json/TOOL_from_json.py @@ -69388,7 +61423,6 @@ msgid "" "This is a lighter featuring a flip top cover and refuelable tank. It is " "lit." msgstr "" -" Este é um isqueiro com tampa flip top e tanque reabastecido. Está aceso." #: lang/json/TOOL_from_json.py msgid "quern" @@ -69399,7 +61433,7 @@ msgstr[1] "" #. ~ Description for quern #: lang/json/TOOL_from_json.py msgid "This is a simple hand-powered stone quern for grinding grain." -msgstr "quernEste é um simples quern de pedra movido a mão para moer grãos." +msgstr "" #: lang/json/TOOL_from_json.py msgid "rollmat" @@ -69410,7 +61444,7 @@ msgstr[1] "" #. ~ Use action done_message for rollmat. #: lang/json/TOOL_from_json.py msgid "You unroll the mat and lay it on the ground." -msgstr "rollmatVocê desenrola o tapete e coloca-o no chão." +msgstr "" #. ~ Description for rollmat #: lang/json/TOOL_from_json.py @@ -69419,9 +61453,6 @@ msgid "" "insulates you from the floor, making it easier to sleep. Use it to unroll " "and place on the ground." msgstr "" -" Esta é uma folha de espuma que pode ser enrolada " -"firmementeparaarmazenamento. Ele isola você do chão, facilitando o sono. " -"Use-oparadesenrolar e colocar no chão." #: lang/json/TOOL_from_json.py msgid "RX12 jet injector" @@ -69436,10 +61467,6 @@ 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 "" -" Injetor de jato RX12O Injetor de jato Rivtech RX12 é um " -"pequenodispositivoem forma de pistola usado para injetar produtos químicos " -"de curarápidaavançados através da pele sem o uso de uma agulha. Um rótulo " -"aoladoadverte contra o uso de mais de duas doses por hora." #: lang/json/TOOL_from_json.py msgid "safe deposit box" @@ -69453,9 +61480,6 @@ msgid "" "This is a secure combination lock box. Sadly, you don't know the " "combination. Breaking inside it would destroy anything of value." msgstr "" -" caixa de depósito seguroEsta é uma caixa de bloqueio de combinaçãosegura. " -"Infelizmente, você não conhece a combinação. Quebrar dentro " -"deledestruiriaqualquer coisa de valor." #: lang/json/TOOL_from_json.py msgid "sarcophagus access code" @@ -69469,8 +61493,6 @@ msgid "" "This printout is a string of numbers to access the elevator in the hazardous" " waste sarcophagus." msgstr "" -" código de acesso ao sarcófagoEsta impressão é uma seqüência de " -"númerosparaacessar o elevador no sarcófago de resíduos perigosos." #: lang/json/TOOL_from_json.py msgid "wood saw" @@ -69482,7 +61504,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a thin saw, useful for cutting through wood objects." msgstr "" -" serrote de madeiraEsta é uma serra fina, útil para cortar objetosdemadeira." #: lang/json/TOOL_from_json.py msgid "scalpel" @@ -69496,9 +61517,6 @@ 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 "" -" bisturiEsta é uma faca muito afiada projetada para o corte cirúrgico. " -"Sualâmina pequena e afiada permite golpes de precisão nas " -"mãosdoshabilidosos." #: lang/json/TOOL_from_json.py msgid "pair of scissors" @@ -69512,8 +61530,6 @@ msgid "" "These are a long pair of heavy duty scissors. Use scissors to cut items " "made from cotton (like clothing) into rags." msgstr "" -" par de tesourasEstes são um par de tesouras para trabalhos pesados. " -"Useumatesoura para cortar itens feitos de algodão (como roupas) em trapos." #: lang/json/TOOL_from_json.py msgid "screwdriver" @@ -69527,9 +61543,6 @@ msgid "" "This is a Philips-head screwdriver. It is important for almost all " "electronics crafting, most mechanics crafting, and has many more uses." msgstr "" -" chave de fendaEsta é uma chave de fenda Philips. É importante " -"paraquasetodos os produtos eletrônicos, a maioria dos desenhos mecânicos e " -"temmuitomais usos." #: lang/json/TOOL_from_json.py msgid "screwdriver set" @@ -69543,9 +61556,6 @@ msgid "" "This is a set of screwdrivers in several sizes and blade types. Guaranteed " "to have the right tools for more precise work." msgstr "" -" conjunto de chave de fendaEste é um conjunto de chaves de fenda " -"emdiversostamanhos e tipos de lâminas. Garantido ter as ferramentas " -"certaspara umtrabalho mais preciso." #: lang/json/TOOL_from_json.py msgid "scythe" @@ -69560,9 +61570,6 @@ msgid "" "be a giant blade on the end of a stick, it is incredibly awkward to use for " "anything but its intended purpose." msgstr "" -" foiceEsta é uma ferramenta agrícola antiquada usada para cortar gramaalta. " -"Embora possa ser uma lâmina gigante no final de uma vara, " -"éincrivelmentedifícil de usar para qualquer coisa, mas a sua finalidade." #: lang/json/TOOL_from_json.py msgid "sewing kit" @@ -69578,10 +61585,6 @@ msgid "" "article of clothing to attempt to repair or reinforce that clothing. This " "uses your tailoring skill." msgstr "" -" kit de costuraEste é um kit de plástico com uma variedade de agulhas, " -"algunscarretéis de plástico para linha e algumas outras ferramentastêxteis " -"úteis. Use um kit de costura em uma peça de roupa para tentarconsertar ou " -"reforçaressa roupa. Isso usa sua habilidade de customização." #: lang/json/TOOL_from_json.py msgid "anesthesia kit" @@ -69602,9 +61605,6 @@ msgid "" "use it to shave if it's supplied with soap. It requires 1 unit of soap per " "use." msgstr "" -" kit de barbearEste é um kit de barbear compacto e leve feito " -"paraosviajantes. Você pode usá-lo para fazer a barba se for fornecido " -"comsabão. Requer 1 unidade de sabão por uso." #: lang/json/TOOL_from_json.py msgid "shelter kit" @@ -69616,8 +61616,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a small shelter, made of sticks and skins. Use it to place." msgstr "" -" kit de abrigoEste é um pequeno abrigo, feito de paus e peles. " -"Useparacolocar." #: lang/json/TOOL_from_json.py msgid "shishkebab (off)" @@ -69628,17 +61626,17 @@ msgstr[1] "" #. ~ Use action failure_message for shishkebab (off). #: lang/json/TOOL_from_json.py msgid "Aw, dangit. It fails to start!" -msgstr "shishkebab (off) Ah, não. Não consegue começar!" +msgstr "" #. ~ Use action lacks_fuel_message for shishkebab (off). #: lang/json/TOOL_from_json.py msgid "This thing needs some fuel!" -msgstr "Essa coisa precisa de algum combustível!" +msgstr "" #. ~ Use action success_message for shishkebab (off). #: lang/json/TOOL_from_json.py msgid "Let's dance, Zeds!" -msgstr "Vamos dançar, Zeds!" +msgstr "" #. ~ Description for shishkebab (off) #: lang/json/TOOL_from_json.py @@ -69648,10 +61646,6 @@ msgid "" " can be made scorching hot to singe enemies and light your way. Use to " "ignite." msgstr "" -" Esta é uma lâmina grande com um cano de combustível no lado e " -"umpequenotanque e ignição embutidos no cabo isolado. Quando cheia " -"degasolina, alâmina pode ficar quente para chamuscar inimigos e iluminar " -"seucaminho. Use para acender." #: lang/json/TOOL_from_json.py msgid "shishkebab (on)" @@ -69663,27 +61657,26 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "Bummer, man! Your shishkebab's flame flickers and dies out." msgstr "" -" shishkebab (em) Que chatice, cara! A chama do seu shishkebab cintilaeapaga." #. ~ Use action charges_extinguish_message for shishkebab (on). #: lang/json/TOOL_from_json.py msgid "Uncool, outta gas! Your shishkebab's flame goes out." -msgstr "Uncool, outta gas! A chama do seu shishkebab apaga." +msgstr "" #. ~ Use action noise_message for shishkebab (on). #: lang/json/TOOL_from_json.py msgid "Your shishkebab crackles!" -msgstr "Seu shishkebab crepita!" +msgstr "" #. ~ Use action voluntary_extinguish_message for shishkebab (on). #: lang/json/TOOL_from_json.py msgid "Peace out. Your shishkebab's flame dies." -msgstr "Paz fora. A chama do seu shishkebab morre." +msgstr "" #. ~ Use action water_extinguish_message for shishkebab (on). #: lang/json/TOOL_from_json.py msgid "Your shishkebab hisses in the water and goes out." -msgstr "Seu shishkebab assobia na água e sai." +msgstr "" #. ~ Description for shishkebab (on) #: lang/json/TOOL_from_json.py @@ -69692,9 +61685,6 @@ msgid "" "igniter built into the insulated hilt. The blade is glowing brightly. Use " "to shut off the gas." msgstr "" -" Esta é uma lâmina grande com um cano de combustível no lado e " -"umpequenotanque e ignição embutidos no cabo isolado. A lâmina " -"estábrilhandointensamente. Use para desligar o gás." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py #: lang/json/trap_from_json.py @@ -69706,7 +61696,7 @@ msgstr[1] "" #. ~ Use action done_message for shotgun trap. #: lang/json/TOOL_from_json.py msgid "You set the shotgun trap." -msgstr "armadilha de espingardaVocê define a armadilha de espingarda." +msgstr "" #. ~ Description for shotgun trap #: lang/json/TOOL_from_json.py @@ -69715,10 +61705,6 @@ msgid "" "barreled shotgun. When pulled, the shotgun fires. Two shells are loaded; " "the first time the trigger is pulled, one or both shells may be discharged." msgstr "" -" Este é um tripwire simples é ligado ao gatilho de uma espingarda " -"decanoduplo carregado. Quando puxada, a espingarda dispara. Duas " -"conchassãocarregadas; Na primeira vez que o gatilho é puxado, uma ou ambas " -"asconchas podem ser descarregadas." #: lang/json/TOOL_from_json.py msgid "shovel" @@ -69730,8 +61716,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a digging tool. Use it to dig pits adjacent to your location." msgstr "" -" shovelThis é uma ferramenta de escavação. Use-o para cavar poçosadjacentesà" -" sua localização." #: lang/json/TOOL_from_json.py msgid "sickle" @@ -69746,9 +61730,6 @@ msgid "" "be a massive curved blade on a handle, it is incredibly awkward to use for " "anything but its intended purpose." msgstr "" -" sickleEsta é uma ferramenta agrícola antiquada usada para cortar gramaalta." -" Embora possa ser uma enorme lâmina curvada em uma alça, " -"éincrivelmentedifícil de usar para qualquer coisa, mas sua finalidade." #: lang/json/TOOL_from_json.py msgid "small fire extinguisher" @@ -69762,9 +61743,6 @@ msgid "" "This is a hand held fire extinguisher containing a liter of highly " "compressed CO2 gas. It would be useful for putting out adjacent fires." msgstr "" -" pequeno extintor de incêndioEste é um extintor portátil contendo um " -"litrodegás CO2 altamente comprimido. Seria útil para apagar " -"incêndiosadjacentes." #: lang/json/TOOL_from_json.py msgid "firearm repair kit" @@ -69779,10 +61757,6 @@ msgid "" "standard batteries, it is a vital tool for long-term firearms maintenance. " "It requires 100 charges of battery power per use." msgstr "" -" kit de reparação de armas de fogoEste é um kit de ferramentas " -"portátilfeitopara reparar armas de fogo danificadas. Alimentado por " -"bateriaspadrão, éuma ferramenta vital para a manutenção de armas de fogo a " -"longoprazo. Requer 100 cargas de bateria por uso." #: lang/json/TOOL_from_json.py msgid "smart lamp (off)" @@ -69793,17 +61767,17 @@ msgstr[1] "" #. ~ Use action msg for smart lamp (off). #: lang/json/TOOL_from_json.py msgid "You turn the smart lamp on." -msgstr "lâmpada inteligente (desligada) Você liga a lâmpada inteligente." +msgstr "" #. ~ Use action need_charges_msg for smart lamp (off). #: lang/json/TOOL_from_json.py msgid "The smart lamp batteries are dead." -msgstr "As baterias inteligentes estão apagadas." +msgstr "" #. ~ Description for smart lamp (off) #: lang/json/TOOL_from_json.py msgid "This is a smart lamp, it can be activated remotely." -msgstr "Esta é uma lâmpada inteligente, pode ser ativada remotamente." +msgstr "" #: lang/json/TOOL_from_json.py msgid "smart lamp (on)" @@ -69814,7 +61788,7 @@ msgstr[1] "" #. ~ Use action msg for smart lamp (on). #: lang/json/TOOL_from_json.py msgid "Your smart lamp turned off" -msgstr "lâmpada inteligente (on) Sua lâmpada inteligente desligada" +msgstr "" #. ~ Description for smart lamp (on) #: lang/json/TOOL_from_json.py @@ -69822,8 +61796,6 @@ msgid "" "This is a smart lamp, this smart lamp is turned on. It can be deactivated " "remotely." msgstr "" -" Esta é uma lâmpada inteligente, esta lâmpada inteligente está ligada. " -"Podeser desativado remotamente." #: lang/json/TOOL_from_json.py msgid "emergency oxygen pack" @@ -69839,10 +61811,6 @@ msgid "" "relief for asthma attacks or smoke inhalation, and can provide a brief burst" " of energy." msgstr "" -" pack de oxigênio de emergênciaEste é um pequeno tanque de " -"oxigêniomédicocomprimido com um regulador de dobramento e máscara. Comumente" -" usadoemsituações de emergência, proporciona alívio imediato para ataques " -"deasmaou inalação de fumaça, e pode fornecer uma breve explosão de energia." #: lang/json/TOOL_from_json.py src/crafting_gui.cpp msgid "soldering iron" @@ -69857,9 +61825,6 @@ msgid "" "for advanced electronics crafting. You could also use it to cauterize " "wounds, if you had to." msgstr "" -" ferro de soldaEste é um dispositivo com uma ponta de metal que " -"podeficarmuito quente. É necessário para a elaboração de eletrônicos " -"avançados. Vocêtambém pode usá-lo para cauterizar feridas, se necessário." #: lang/json/TOOL_from_json.py msgid "spray can" @@ -69873,8 +61838,6 @@ msgid "" "This is a spray can, filled with paint. Use this tool to make graffiti on " "the floor." msgstr "" -" lata de sprayEsta é uma lata de spray, cheia de tinta. Use " -"essaferramentapara fazer grafites no chão." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "stepladder" @@ -69885,7 +61848,7 @@ msgstr[1] "" #. ~ Description for stepladder #: lang/json/TOOL_from_json.py msgid "This is a wooden stepladder. Use it to set it down." -msgstr "Escada de mãoEsta é uma escada de madeira. Use-o para defini-lo." +msgstr "" #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "still" @@ -69899,8 +61862,6 @@ msgid "" "This is a still. It's useful for creating distillation of alcohol and " "other, more curious substances." msgstr "" -" stillThis ainda é um. É útil para criar destilação de álcool " -"eoutrassubstâncias mais curiosas." #: lang/json/TOOL_from_json.py msgid "survival marker" @@ -69914,8 +61875,6 @@ msgid "" "This is a sharpened piece of charcoal that is almost guaranteed to make your" " hands all covered in charcoal. Use it to write something down." msgstr "" -" Este é um pedaço afiado de carvão que é quase garantido para fazer " -"suasmãostodas cobertas de carvão. Use-o para escrever algo." #: lang/json/TOOL_from_json.py msgid "makeshift haircut kit" @@ -69927,8 +61886,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "This is a kit with tools for cutting hair." msgstr "" -" kit de corte de cabelo improvisado Este é um kit com ferramentas " -"paracortaro cabelo." #: lang/json/TOOL_from_json.py msgid "survivor mess kit" @@ -69943,10 +61900,6 @@ msgid "" "apocalyptic cuisine. Powered by a lamp oil burner, it is composed of simple" " yet durable tools and materials." msgstr "" -" kit bagunça sobreviventeUm kit de bagunça caseiro, contendo tudo o " -"quevocêprecisa para criar uma cozinha pós-apocalíptica. Alimentado " -"porumqueimador de óleo de lâmpada, é composto de ferramentas " -"emateriaissimples, mas duráveis." #: lang/json/TOOL_from_json.py msgid "survivor telescope" @@ -69961,10 +61914,6 @@ msgid "" "weapon scope, but carrying this item in your inventory will double the " "distance that is mapped around you during your travels." msgstr "" -" telescópio sobreviventeUm telescópio dobrável caseiro. Demasiado " -"grandeeimpreciso para usar como um escopo de arma, mas carregar este item " -"emseuinventário dobrará a distância que é mapeada em torno de você " -"durantesuasviagens." #: lang/json/TOOL_from_json.py msgid "makeshift shaving kit" @@ -69978,9 +61927,6 @@ msgid "" "This is a makeshift shaving kit. You can use it to shave if it's supplied " "with soap. It requires 1 unit of soap per use." msgstr "" -" Kit improvisado de barbearEste é um kit de barbear improvisado. " -"Vocêpodeusá-lo para fazer a barba se for fornecido com sabão. Requer 1 " -"unidadedesabão por uso." #: lang/json/TOOL_from_json.py msgid "swage and die set" @@ -69994,9 +61940,6 @@ msgid "" "These are a set of swages and dies for metalsmithing. These loops and metal" " blocks are used in some metalworking fabrication recipes." msgstr "" -" swage e die setEstes são um conjunto de swages e morre parametalsmithing. " -"Esses loops e blocos de metal são usados em algumas receitasde fabricaçãode " -"metais." #: lang/json/TOOL_from_json.py msgid "syringe" @@ -70007,7 +61950,7 @@ msgstr[1] "" #. ~ Description for syringe #: lang/json/TOOL_from_json.py msgid "A medical syringe. Used for administering intravenous drugs." -msgstr "syringeA seringa médica. Usado para administrar drogas intravenosas." +msgstr "" #: lang/json/TOOL_from_json.py msgid "tailor's kit" @@ -70023,11 +61966,6 @@ msgid "" "melting and joining plastic. Use a tailor's kit to customize your clothing " "and armor. This uses your tailoring skill." msgstr "" -" kit de alfaiateEste é um kit de plástico de alta qualidade com " -"umavariedadede agulhas, alguns carretéis de plástico para linha, " -"algumaspequenastesouras, até mesmo um pequeno elemento de aquecimento para " -"fusãoe junçãode plástico. Use um kit de alfaiate para personalizar sua roupa" -" esuaarmadura. Isso usa sua habilidade de customização." #: lang/json/TOOL_from_json.py msgid "tanning leather hide" @@ -70039,13 +61977,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You carefully unfold the tanning leather hide and shake it clean." msgstr "" -" couro de couro curtidorVocê cuidadosamente desdobre a pele de " -"courodebronzeamento e agite-a limpa." #. ~ Use action not_ready_msg for tanning leather hide. #: lang/json/TOOL_from_json.py msgid "The tanning leather hide isn't done yet." -msgstr "O couro de bronzeamento ainda não está pronto." +msgstr "" #. ~ Description for tanning leather hide #: lang/json/TOOL_from_json.py @@ -70054,9 +61990,6 @@ msgid "" " become leather. You will be able to activate it to unroll and make use of " "it when it is done." msgstr "" -" Um couro de animal tratado que está passando pelos " -"processosquímicosnecessários para se tornar couro. Você poderá ativá-lo " -"paradesenrolá-lo eutilizá-lo quando for feito." #: lang/json/TOOL_from_json.py msgid "tanning fur pelt" @@ -70068,13 +62001,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You carefully unfold the tanning fur pelt and shake it clean." msgstr "" -" Peles de peles de bronzeamentoDesenvolva cuidadosamente a pele de " -"peledebronzeamento e agite-a limpa." #. ~ Use action not_ready_msg for tanning fur pelt. #: lang/json/TOOL_from_json.py msgid "The tanning fur pelt isn't done yet." -msgstr "A pelagem de pele de bronzeamento ainda não está terminada." +msgstr "" #. ~ Description for tanning fur pelt #: lang/json/TOOL_from_json.py @@ -70083,9 +62014,6 @@ msgid "" " become fur. You will be able to activate it to unroll and make use of it " "when it is done." msgstr "" -" Pele de animal tratado que está passando pelos processosquímicosnecessários" -" para se transformar em pele. Você poderá ativá-loparadesenrolá-lo e " -"utilizá-lo quando for feito." #: lang/json/TOOL_from_json.py lang/json/trap_from_json.py msgid "teleport pad" @@ -70096,7 +62024,7 @@ msgstr[1] "" #. ~ Use action done_message for teleport pad. #: lang/json/TOOL_from_json.py msgid "You place the telepad." -msgstr "teleport padVocê coloca o telepad." +msgstr "" #. ~ Description for teleport pad #: lang/json/TOOL_from_json.py @@ -70104,8 +62032,6 @@ msgid "" "This is a kit for a teleporter trap consisting of a teleporter and a solar " "cell that is triggered when stepped upon." msgstr "" -" Este é um kit para uma armadilha de teletransporte que consiste " -"emumteleportador e uma célula solar que é acionada quando pisada." #: lang/json/TOOL_from_json.py msgid "teleporter" @@ -70119,8 +62045,6 @@ msgid "" "This is an experimental device that will teleport you a short distance when " "activated." msgstr "" -" teleporterEste é um dispositivo experimental que te teletransportará " -"aumacurta distância quando ativado." #: lang/json/TOOL_from_json.py msgid "tent" @@ -70133,8 +62057,6 @@ msgstr[1] "" msgid "" "This is a small personal tent, it's just big enough to fit you comfortably." msgstr "" -" Esta é uma pequena tenda pessoal, é grande o suficiente para vocêseencaixar" -" confortavelmente." #: lang/json/TOOL_from_json.py msgid "Flaming Chunk of Steel +2" @@ -70171,10 +62093,6 @@ msgid "" "regular fire extinguisher, you can use it from a distance. It is activated " "by heat, so just throw it into the flames." msgstr "" -" extintor de incêndio que pode ser lançadoEste é um extintor de " -"incêndioemforma de granada. Embora não seja tão eficaz quanto um extintor " -"deincêndiocomum, você pode usá-lo à distância. É ativado pelo calor, " -"entãoapenasjogue-o nas chamas." #: lang/json/TOOL_from_json.py msgid "pair of metal tongs" @@ -70188,8 +62106,6 @@ msgid "" "These are long, metal tongs. They are commonly used for cooking or in " "metalworking fabrication recipes." msgstr "" -" par de pinças de metalEstas são longas pinças de metal. Eles " -"sãocomumenteusados para cozinhar ou em receitas de fabricação de metais." #: lang/json/TOOL_from_json.py msgid "small space heater" @@ -70204,7 +62120,7 @@ msgstr[1] "" #: lang/json/item_action_from_json.py lang/json/item_action_from_json.py #: lang/json/item_action_from_json.py src/iuse.cpp msgid "Turn on" -msgstr "Ligar" +msgstr "" #. ~ Use action msg for small space heater. #. ~ Use action msg for large space heater. @@ -70269,8 +62185,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You light the fuse on the ANFO charge. Run survivor, run!" msgstr "" -" ANFO chargeVocê acende o fusível na carga do ANFO. Corrasobrevivente, " -"corra!" #. ~ Description for ANFO charge #: lang/json/TOOL_from_json.py @@ -70279,9 +62193,6 @@ msgid "" "dynamite primer. Use this item to light the fuse. You will then have " "twenty turns before it explodes and creates a large fireball." msgstr "" -" Este é um grande barril de metal cheio de pelotas ANFO e equipado " -"comumprimer de dinamite. Use este item para acender o fusível. Você " -"terávintevoltas antes de explodir e criar uma grande bola de fogo." #: lang/json/TOOL_from_json.py msgid "active ANFO charge" @@ -70293,7 +62204,7 @@ msgstr[1] "" #. ~ Use action no_deactivate_msg for active black gunpowder charge. #: lang/json/TOOL_from_json.py msgid "You've already lit the fuse - run!" -msgstr "carga ANFO ativaVocê já acendeu o fusível - corra!" +msgstr "" #. ~ Description for active ANFO charge #: lang/json/TOOL_from_json.py @@ -70301,9 +62212,6 @@ msgid "" "This is a large metal keg filled with ANFO pellets and equipped with a " "dynamite primer. The fuse has been lit - better run like hell!" msgstr "" -" Este é um grande barril de metal cheio de pelotas ANFO e equipado " -"comumprimer de dinamite. O fusível foi aceso - é melhor correr como o " -"inferno!" #: lang/json/TOOL_from_json.py msgid "black gunpowder bomb" @@ -70317,8 +62225,6 @@ msgid "" "You light the fuse on the black gunpowder bomb. Throw it before it blows in" " your face!" msgstr "" -" Pistola de pólvora preta Você acende o estopim na bomba de pólvoranegra. " -"Jogue antes que sopre na sua cara!" #. ~ Description for black gunpowder bomb #: lang/json/TOOL_from_json.py @@ -70326,8 +62232,6 @@ msgid "" "This is a tin can filled to the brim with black gunpowder and with a bit of " "fuse sticking out of it." msgstr "" -" Esta é uma lata cheia até a borda com pólvora preta e com um poucodefusível" -" saindo dela." #: lang/json/TOOL_from_json.py msgid "active black gunpowder bomb" @@ -70338,7 +62242,7 @@ msgstr[1] "" #. ~ Use action no_deactivate_msg for active black gunpowder bomb. #: lang/json/TOOL_from_json.py msgid "You've already lit the fuse - throw it!" -msgstr "Bomba de pólvora negra ativaVocê já acendeu o fusível - jogue-o!" +msgstr "" #. ~ Use action sound_msg for active black gunpowder bomb. #. ~ Use action sound_msg for active black gunpowder charge. @@ -70346,7 +62250,7 @@ msgstr "Bomba de pólvora negra ativaVocê já acendeu o fusível - jogue-o!" #. ~ Use action sound_msg for active RDX sand bomb. #: lang/json/TOOL_from_json.py msgid "Kshhh." -msgstr "Kshhh" +msgstr "" #. ~ Description for active black gunpowder bomb #: lang/json/TOOL_from_json.py @@ -70354,8 +62258,6 @@ msgid "" "This is a tin can filled to the brim with black gunpowder and with a lit " "fuse stuck inside of it." msgstr "" -" Esta é uma lata cheia até a borda com pólvora preta e com um " -"fusívelacesodentro dela." #: lang/json/TOOL_from_json.py msgid "black gunpowder charge" @@ -70368,8 +62270,6 @@ msgstr[1] "" msgid "" "You light the fuse on the black gunpowder charge. Get rid of it quickly!" msgstr "" -" Carga preta de pólvora Você acende o fusível na carga preta depólvora. " -"Livre-se disso rapidamente!" #. ~ Description for black gunpowder charge #: lang/json/TOOL_from_json.py @@ -70378,10 +62278,6 @@ 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 "" -" Este é um dispositivo explosivo caseiro, consistindo de um grande " -"jarrodeplástico cheio de pólvora preta e sucata de metal, equipado com " -"umlongoestopim. Use este item para acender o fusível. Deve explodir " -"empoucosminutos ..." #: lang/json/TOOL_from_json.py msgid "active black gunpowder charge" @@ -70396,9 +62292,6 @@ msgid "" "filled with black gunpowder and scrap metal, whose fuse has been lit, its " "final countdown starting." msgstr "" -" Este é um dispositivo explosivo caseiro, consistindo de um grande " -"jarrodeplástico cheio de pólvora preta e sucata de metal, cujo fusível " -"foiaceso, começando sua contagem regressiva final." #: lang/json/TOOL_from_json.py msgid "RDX charge" @@ -70409,7 +62302,7 @@ msgstr[1] "" #. ~ Use action msg for RDX charge. #: lang/json/TOOL_from_json.py msgid "You light the fuse on the explosive charge. Clear the area!" -msgstr "Carga RDXVocê acende o fusível na carga explosiva. Limpe a área!" +msgstr "" #. ~ Description for RDX charge #: lang/json/TOOL_from_json.py @@ -70418,9 +62311,6 @@ 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 "" -" Este é um barril de metal, cheio com 50 litros de RDX e sucata de metal. " -"Contém um núcleo de explosivo primário para garantir que a carga " -"detonecompletamente e entregue todo o seu poder destrutivo a tudo à vista." #: lang/json/TOOL_from_json.py msgid "active RDX charge" @@ -70432,7 +62322,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You've already lit the fuse - clear the area immediately!" msgstr "" -" carga de RDX ativa Você já acendeu o fusível - limpe a área imediatamente!" #. ~ Description for active RDX charge #: lang/json/TOOL_from_json.py @@ -70441,9 +62330,6 @@ 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 "" -" Este é um barril de metal, cheio com 50 litros de RDX e sucata de metal. " -"Ofusível foi aceso e, uma vez que acenda o explosivo primário, a carga " -"irádetonar e chover fogo e aço em tudo à vista." #: lang/json/TOOL_from_json.py msgid "RDX sand bomb" @@ -70454,7 +62340,7 @@ msgstr[1] "" #. ~ Use action msg for RDX sand bomb. #: lang/json/TOOL_from_json.py msgid "You light the fuse on the sand bomb. Throw it!" -msgstr "RDX sand bomb Você acende o fusível na bomba de areia. Jogá-lo!" +msgstr "" #. ~ Description for RDX sand bomb #: lang/json/TOOL_from_json.py @@ -70463,9 +62349,6 @@ msgid "" "propelling the latter into a deadly mist of vicious shrapnel. Use this item" " to light the fuse." msgstr "" -" Este é um tubo de aço, contendo uma mistura de RDX e areia, o " -"primeiroimpulsionando o último em uma névoa mortal de estilhaços violentos. " -"Useeste item para acender o fusível." #: lang/json/TOOL_from_json.py msgid "active RDX sand bomb" @@ -70477,8 +62360,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You've already lit the fuse - what are you waiting for?" msgstr "" -" bomba de areia RDX ativa Você já acendeu o fusível - o que você " -"estáesperando?" #. ~ Description for active RDX sand bomb #: lang/json/TOOL_from_json.py @@ -70487,9 +62368,6 @@ msgid "" "propelling the latter into a deadly mist of vicious shrapnel. The fuse has " "been lit, so why are you still holding it?" msgstr "" -" Este é um tubo de aço, contendo uma mistura de RDX e areia, o " -"primeiroimpulsionando o último em uma névoa mortal de estilhaços violentos. " -"Ofusível foi aceso, então por que você ainda está segurando?" #: lang/json/TOOL_from_json.py msgid "rocket candy" @@ -70500,12 +62378,12 @@ msgstr[1] "" #. ~ Use action menu_text for rocket candy. #: lang/json/TOOL_from_json.py msgid "Light candy" -msgstr "rocket candy Light candy" +msgstr "" #. ~ Use action msg for rocket candy. #: lang/json/TOOL_from_json.py msgid "You light the rocket candy on fire. Throw it!" -msgstr "Você acende o foguete em chamas. Jogá-lo!" +msgstr "" #. ~ Description for rocket candy #: lang/json/TOOL_from_json.py @@ -70515,11 +62393,6 @@ msgid "" " smokescreen - if you lit the narrow end, you should be able to throw it " "before the flame reaches the broad end." msgstr "" -" Um pedaço em forma de pêra de doce de foguete obtido aquecendo salitre " -"comaçúcar e lançando o líquido obtido. Pode servir como um combustível " -"defoguete, mas também como uma cortina de fumaça - se você acender " -"aextremidade estreita, você deve ser capaz de jogá-lo antes que a " -"chamaatinja a extremidade mais larga." #: lang/json/TOOL_from_json.py msgid "burning rocket candy" @@ -70530,12 +62403,12 @@ msgstr[1] "" #. ~ Use action no_deactivate_msg for burning rocket candy. #: lang/json/TOOL_from_json.py msgid "You've already lit the fuse - get rid of it immediately!" -msgstr "Você já acendeu o pavio - livre-se dele imediatamente!" +msgstr "" #. ~ Use action sound_msg for burning rocket candy. #: lang/json/TOOL_from_json.py msgid "Hsssss." -msgstr "Hsssss" +msgstr "" #. ~ Description for burning rocket candy #: lang/json/TOOL_from_json.py @@ -70543,8 +62416,6 @@ msgid "" "This is a chunk of rocket candy that has been lit on fire and burns with a " "loud hiss, spewing forth large amounts of smoke." msgstr "" -" Este é um pedaço de doce de foguete que foi aceso no fogo e queima com " -"umassobio alto, vomitando grandes quantidades de fumaça." #: lang/json/TOOL_from_json.py msgid "toolbox" @@ -70558,9 +62429,6 @@ msgid "" "This is a stout metal box containing a complete tool kit suitable for most " "household maintenance and construction activities." msgstr "" -" Caixa de ferramentas Esta é uma caixa de metal robusta que contém um kit " -"deferramentas completo adequado para a maioria das atividades de manutenção " -"econstrução doméstica." #: lang/json/TOOL_from_json.py msgid "extended toolset" @@ -70584,12 +62452,12 @@ msgstr[1] "" #. ~ Use action menu_text for torch. #: lang/json/TOOL_from_json.py msgid "Light torch" -msgstr "Tocha de luz da tocha" +msgstr "" #. ~ Use action msg for torch. #: lang/json/TOOL_from_json.py msgid "You light the torch." -msgstr "Você acende a tocha." +msgstr "" #. ~ Description for torch #: lang/json/TOOL_from_json.py @@ -70598,14 +62466,11 @@ msgid "" "material. When lit, produces a fair amount of light. You'll need a lighter" " or matches to light it." msgstr "" -" Esta é uma vara grande, embrulhada em panos embebidos em " -"materialinflamável. Quando aceso, produz uma boa quantidade de luz. Você " -"precisaráde um isqueiro ou fósforos para acendê-lo." #. ~ Use action msg for torch. #: lang/json/TOOL_from_json.py msgid "The torch is extinguished." -msgstr "A tocha está extinta." +msgstr "" #. ~ Description for torch #: lang/json/TOOL_from_json.py @@ -70613,8 +62478,6 @@ msgid "" "This is a large stick, wrapped in rags that are soaked with a flammable " "material. It is burning, producing plenty of light." msgstr "" -" Esta é uma vara grande, embrulhada em panos embebidos em " -"materialinflamável. Está queimando, produzindo muita luz." #: lang/json/TOOL_from_json.py msgid "hedge trimmer (off)" @@ -70630,10 +62493,6 @@ msgid "" "them rapidly vibrate. The poor man's chainsaw as far as the zombies are " "concerned." msgstr "" -" aparador de sebes (desligado) Aparador de sebes sem fio, alimentado " -"agasolina, frente e verso. Uma longa linha de dentes afiados se estende " -"domotor; ligar o aparador fará com que vibrem rapidamente. A motosserra " -"dopobre homem no que diz respeito aos zumbis." #: lang/json/TOOL_from_json.py msgid "hedge trimmer (on)" @@ -70647,9 +62506,6 @@ msgid "" "A cordless, double-sided, gasoline-powered hedge trimmer. It is currently " "on, ready to do some zombie topiary; use this item to turn it off." msgstr "" -" corta-sebes (ligado) Um corta-sebes sem fio, alimentado a gasolina, dedupla" -" face. Está atualmente pronto para fazer algumas topiarias zumbis; useeste " -"item para desativá-lo." #: lang/json/TOOL_from_json.py msgid "tripwire trap" @@ -70660,7 +62516,7 @@ msgstr[1] "" #. ~ Use action done_message for tripwire trap. #: lang/json/TOOL_from_json.py msgid "You string up the tripwire." -msgstr "armadilha de tripwire Você encadeia o tripwire." +msgstr "" #. ~ Description for tripwire trap #: lang/json/TOOL_from_json.py @@ -70670,10 +62526,6 @@ msgid "" "purpose is to trip up bypassers, causing them to stumble and possibly hurt " "themselves slightly." msgstr "" -" Este é um cabo forte e fino com algumas ferramentas de afixação nas " -"duasextremidades. Uma armadilha tripwire deve ser colocada através de uma " -"portaou outra passagem fina. Sua finalidade é tropeçar em pedestres, fazendo" -" comque eles tropeçam e possivelmente se machuquem um pouco." #: lang/json/TOOL_from_json.py msgid "trumpet" @@ -70684,7 +62536,7 @@ msgstr[1] "" #. ~ Description for trumpet #: lang/json/TOOL_from_json.py msgid "A brass trumpet with only a few dents here and there." -msgstr "trompete Um trompete de latão com apenas alguns dentes aqui e ali." +msgstr "" #: lang/json/TOOL_from_json.py msgid "ukulele" @@ -70696,8 +62548,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A small factory made ukulele. Looks to be in working condition." msgstr "" -" ukulele Uma pequena fábrica fez ukulele. Parece estar em condições " -"defuncionamento." #: lang/json/TOOL_from_json.py msgid "vacuum sealer" @@ -70711,8 +62561,6 @@ msgid "" "This is a portable heat sealer unit with an air pump. It's used for vacuum " "packing food to preserve it." msgstr "" -" seladora a vácuo Esta é uma unidade seladora de calor portátil com umabomba" -" de ar. É usado para embalar alimentos a vácuo para preservá-lo." #: lang/json/TOOL_from_json.py msgid "hand-crank charger" @@ -70739,9 +62587,6 @@ msgid "" "This battery-devouring device is just the thing to knead the tension out and" " help you relax. Use it to take a break and unwind." msgstr "" -" vibrador Este dispositivo de devoramento de bateria é apenas a coisa " -"paraamassar a tensão e ajudá-lo a relaxar. Use-o para fazer uma pausa " -"edescontrair." #: lang/json/TOOL_from_json.py msgid "violin" @@ -70755,8 +62600,6 @@ msgid "" "A cheap, factory-made violin with a built-in holder for a bow. Still " "produces a nice sound." msgstr "" -" violino Um violino barato feito de fábrica com um suporte embutido para " -"umarco. Ainda produz um som legal." #: lang/json/TOOL_from_json.py msgid "golden fiddle" @@ -70770,8 +62613,6 @@ msgid "" "A shiny golden fiddle, with a strange aura around it. You feel like it once" " belonged to the best there's ever been." msgstr "" -" Violino dourado Um violino dourado brilhante, com uma aura estranha emtorno" -" dele. Você sente que uma vez pertenceu ao melhor que já existiu." #: lang/json/TOOL_from_json.py msgid "vortex stone" @@ -70786,9 +62627,6 @@ msgid "" "Though it is fairly large, it weighs next to nothing. Air seems to gather " "around it." msgstr "" -" pedra de vórtice Esta é uma pedra com espirais por toda parte, e buracos " -"emtorno de seu perímetro. Embora seja bastante grande, pesa quase nada. O " -"arparece se reunir em torno dele." #: lang/json/TOOL_from_json.py msgid "washboard" @@ -70802,8 +62640,6 @@ msgid "" "This is a wooden washboard. You can use it to wash filthy clothing if it's " "supplied with cleansing agent." msgstr "" -" tábua de lavar Esta é uma tábua de madeira. Você pode usá-lo para " -"lavarroupa imunda se for fornecido com agente de limpeza." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py #: lang/json/vehicle_part_from_json.py src/vehicle_use.cpp @@ -70820,10 +62656,6 @@ msgid "" "be useful for water taken from uncertain sources like a river, as it may be " "non-potable." msgstr "" -" purificador de água Este é um dispositivo movido a bateria projetado " -"parapurificar a água potável. Usando este item em um recipiente cheio de " -"águairá purificar o conteúdo. Pode ser útil para a água retirada de " -"fontesincertas como um rio, pois pode ser não potável." #: lang/json/TOOL_from_json.py msgid "Doppler Radar Turbo 2000" @@ -70838,9 +62670,6 @@ msgid "" "vintage monochrome monitor displays a plethora of meteorological data. No " "sign of the FLDSMDFR, however." msgstr "" -" Doppler Radar Turbo 2000 Uma maleta com laptop embutido que parece ser " -"dosanos 80. Seu monitor monocromático vintage exibe uma infinidade de " -"dadosmeteorológicos. Nenhum sinal do FLDSMDFR, no entanto." #: lang/json/TOOL_from_json.py msgid "welder" @@ -70854,8 +62683,6 @@ msgid "" "This is a battery powered tool for welding metal pieces together. It is an " "indispensable tool for construction or repair." msgstr "" -" soldador Esta é uma ferramenta movida a bateria para soldagem de peças " -"demetal. É uma ferramenta indispensável para a construção ou reparação." #: lang/json/TOOL_from_json.py msgid "makeshift welder" @@ -70870,10 +62697,6 @@ msgid "" "metal, and complete disregard for personal safety. While it's not as " "efficient as a factory welder, it will serve in a pinch." msgstr "" -" soldador improvisado Este soldador bruto foi formado a partir de um feixede" -" fio de cobre, sucata de metal e completo desrespeito pela segurançapessoal." -" Embora não seja tão eficiente quanto um soldador de fábrica, eleservirá em " -"um aperto." #: lang/json/TOOL_from_json.py msgid "wooden smoother" @@ -70887,9 +62710,6 @@ msgid "" "This large makeshift tool is used in smoothing concrete or mortar in " "construction projects. You could also use it as an improvised head-basher." msgstr "" -" Smoother de madeira Esta grande ferramenta improvisada é usada noalisamento" -" de concreto ou argamassa em projetos de construção. Você também pode usá-lo" -" como um maníaco improvisado." #: lang/json/TOOL_from_json.py msgid "wool staple" @@ -70903,8 +62723,6 @@ msgid "" "The natural cluster of wool fibers. Could be processed to the felt patches " "or yarns." msgstr "" -" lã staple O aglomerado natural de fibras de lã. Poderia ser processado " -"paraos patches ou fios de feltro." #: lang/json/TOOL_from_json.py msgid "wrapped radiation badge" @@ -70915,13 +62733,13 @@ msgstr[1] "" #. ~ Use action menu_text for wrapped radiation badge. #: lang/json/TOOL_from_json.py msgid "Unwrap badge" -msgstr "Emblema de radiação envolto" +msgstr "" #. ~ Use action msg for wrapped radiation badge. #: lang/json/TOOL_from_json.py msgid "" "You remove the badge from its wrapper, exposing it to ambient radiation." -msgstr "Você remove o emblema do invólucro, expondo-o à radiação ambiente." +msgstr "" #. ~ Description for wrapped radiation badge #: lang/json/TOOL_from_json.py @@ -70929,8 +62747,6 @@ msgid "" "This is a badge that detects radiation dosage sealed in a radiation-blocking" " bag. Use it to remove it from the bag." msgstr "" -" Este é um crachá que detecta a dosagem de radiação selada em um " -"sacobloqueador de radiação. Use-o para removê-lo da bolsa." #: lang/json/TOOL_from_json.py msgid "wrench" @@ -70944,8 +62760,6 @@ msgid "" "This is an adjustable crescent wrench. It could be a decent melee weapon, " "and is used in many mechanics crafting recipes." msgstr "" -" chave inglesa Esta é uma chave inglesa ajustável. Poderia ser uma armacorpo" -" a corpo decente, e é usado em muitas receitas de artesanato demecânica." #: lang/json/TOOL_from_json.py msgid "X-Acto knife" @@ -70961,11 +62775,6 @@ msgid "" "with it. Its small, sharp blade allows for precision strikes in the hands " "of the skilled. It is too small to butcher corpses with." msgstr "" -" Faca X-Acto Esta é uma faca pequena e afiada, projetada para fazer " -"cortesprecisos para tecidos ou artesanato. Isso pode causar danos decentes, " -"mas édifícil atingir as coisas com ele. Sua lâmina pequena e afiada " -"permitegolpes de precisão nas mãos dos habilidosos. É muito pequeno " -"paraaçougueiro com cadáveres." #: lang/json/TOOL_from_json.py msgid "food processor" @@ -70979,8 +62788,6 @@ msgid "" "This is a kitchen appliance capable of slicing, chopping, shredding, " "grinding, pureeing and mixing." msgstr "" -" Processador de alimentos Este é um aparelho de cozinha capaz de fatiar, " -"picar, triturar, moer, fazer purê e misturar." #: lang/json/TOOL_from_json.py msgid "chainmail sheet" @@ -70994,9 +62801,6 @@ msgid "" "This is a sheet of riveted chainmail. With some skill, several of these " "sheets could be connected to make effective armor." msgstr "" -" chainmail sheet Esta é uma folha de cota de malha rebitada. Com " -"algumahabilidade, várias dessas folhas podem ser conectadas para fazer " -"umaarmadura efetiva." #: lang/json/TOOL_from_json.py msgid "electrolysis kit" @@ -71011,9 +62815,6 @@ msgid "" "liquid. Useful for crafting. Load with a storage battery or 12V vehicle " "battery to use." msgstr "" -" kit de eletrólise Um conjunto de fios e eletrodos para aplicar uma " -"correntecontínua, geralmente a um líquido. Útil para elaborar. Carregue com " -"umabateria de armazenamento ou bateria de veículo de 12V para usar." #: lang/json/TOOL_from_json.py msgid "platinum grille" @@ -71027,8 +62828,6 @@ msgid "" "This is a metal grille with a layer of platinum plating, suitable for use as" " a catalyst for some chemical reactions." msgstr "" -" grade de platina Esta é uma grade de metal com uma camada de platina, " -"adequada para uso como catalisador de algumas reações químicas." #: lang/json/TOOL_from_json.py msgid "hobo stove" @@ -71044,7 +62843,7 @@ msgstr "" #. ~ Use action need_fire_msg for hobo stove. #: lang/json/TOOL_from_json.py src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp msgid "You need a source of fire!" -msgstr "Você precisa de uma fonte de fogo!" +msgstr "" #. ~ Description for hobo stove #. ~ Description for hobo stove (lit) @@ -71069,13 +62868,13 @@ msgstr "" #. ~ Use action msg for hobo stove (lit). #: lang/json/TOOL_from_json.py src/iuse.cpp msgid "You heat up the food." -msgstr "Você aquece a comida." +msgstr "" #. ~ Use action msg for hobo stove (lit). #. ~ Use action msg for ember carrier (lit). #: lang/json/TOOL_from_json.py msgid "The ember is extinguished." -msgstr "fogareiro hobo (aceso) A brasa se extingue." +msgstr "" #: lang/json/TOOL_from_json.py msgid "ember carrier" @@ -71086,12 +62885,12 @@ msgstr[1] "" #. ~ Use action msg for ember carrier. #: lang/json/TOOL_from_json.py msgid "You light the tinder." -msgstr "portador de brasa Você acende o material inflamável." +msgstr "" #. ~ Use action need_fire_msg for ember carrier. #: lang/json/TOOL_from_json.py msgid "You need a lighter or fire to light this." -msgstr "Você precisa de um isqueiro ou fogo para acender isso." +msgstr "" #. ~ Description for ember carrier #: lang/json/TOOL_from_json.py @@ -71100,9 +62899,6 @@ msgid "" "provide a controlled airflow. It can nurture a smoldering ember for a long " "time, to start fires without modern tools." msgstr "" -" Este é um pequeno recipiente para retenção de material, com furos nele " -"parafornecer um fluxo de ar controlado. Pode nutrir uma brasa latente por " -"umlongo tempo, para iniciar incêndios sem ferramentas modernas." #: lang/json/TOOL_from_json.py msgid "ember carrier (lit)" @@ -71117,10 +62913,6 @@ msgid "" "provide a controlled airflow. An ember is smoldering inside it, and can be " "used to start a campfire." msgstr "" -" transportador de brasa (aceso) Este é um pequeno recipiente para segurar " -"omaterial inflamável, com furos nele para fornecer um fluxo de arcontrolado." -" Uma brasa está queimando dentro dela e pode ser usada parainiciar uma " -"fogueira." #: lang/json/TOOL_from_json.py msgid "pallet of wet adobe bricks" @@ -71170,9 +62962,6 @@ msgid "" "This is a block of oddly shaped bronze with a chisel-like projection set " "into the corner. It's used in most metalworking fabrication recipes." msgstr "" -" bigorna de bronze Este é um bloco de bronze de formato estranho com " -"umaprojeção do tipo cinzel no canto. É usado na maioria das receitas " -"defabricação de metais." #: lang/json/TOOL_from_json.py msgid "stone hand axe" @@ -71186,8 +62975,6 @@ msgid "" "This is a broad piece of sharpened stone, with enough left untouched to hold" " safely. The Swiss Army knife of the lower paleolithic." msgstr "" -" machado de mão Este é um pedaço largo de pedra afiada, com bastanteesquerda" -" intocada para segurar seguramente. O canivete suíço do paleolíticoinferior." #: lang/json/TOOL_from_json.py msgid "metal hand axe" @@ -71290,9 +63077,6 @@ msgid "" "wreckage. If you can find a system to analyze this you may find something " "of interest." msgstr "" -" caixa preta militar Esta é uma caixa preta, aparentemente puxada de " -"algumtipo de destroços de veículos militares. Se você pode encontrar um " -"sistemapara analisar isso, você pode encontrar algo de interesse." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "minireactor" @@ -71304,8 +63088,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A small portable plutonium reactor. Handle with great care!" msgstr "" -" Minireator Um pequeno reator portátil de plutônio. Manuseie com " -"muitocuidado!" #: lang/json/TOOL_from_json.py msgid "inactive EMP hack" @@ -71316,12 +63098,12 @@ msgstr[1] "" #. ~ Use action friendly_msg for inactive EMP hack. #: lang/json/TOOL_from_json.py msgid "The EMP hack flies from your hand and surveys the area!" -msgstr "inativo hack EMP O hack EMP voa da sua mão e examina a área!" +msgstr "" #. ~ Use action hostile_msg for inactive EMP hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the EMP hack; take cover!" -msgstr "Você misprogram o hack EMP; proteja-se!" +msgstr "" #. ~ Description for inactive EMP hack #: lang/json/TOOL_from_json.py @@ -71332,11 +63114,6 @@ msgid "" "hack. Electronics and computer skill determines if the targeting matrix is " "reprogrammed successfully." msgstr "" -" Este é um hack EMP inativo. Hackers EMP são robôs do tamanho de um " -"punhoquevoam pelo ar. Este contém uma granada EMP e ataca voando em seu " -"alvoedetonando. Use este item para reprogramar e liberar o hack do EMP. " -"Ahabilidade em eletrônica e computador determina se a matriz desegmentaçãoé " -"reprogramada com sucesso." #: lang/json/TOOL_from_json.py msgid "inactive C-4 hack" @@ -71347,12 +63124,12 @@ msgstr[1] "" #. ~ Use action friendly_msg for inactive C-4 hack. #: lang/json/TOOL_from_json.py msgid "The C-4 hack flies from your hand and surveys the area!" -msgstr "hack C-4 inativoO hack C-4 voa da sua mão e inspeciona a área!" +msgstr "" #. ~ Use action hostile_msg for inactive C-4 hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the C-4 hack; take cover!" -msgstr "Você misprogram o hack C-4; proteja-se!" +msgstr "" #. ~ Description for inactive C-4 hack #: lang/json/TOOL_from_json.py @@ -71363,11 +63140,6 @@ msgid "" "hack. Electronics and computer skill determines if the targeting matrix is " "reprogrammed successfully." msgstr "" -" Este é um hack C-4 inativo. C-4 hacks são robôs do tamanho de um " -"punhoquevoam pelo ar. Este contém alguns C-4 e ataques voando em seu " -"alvoedetonando. Use este item para reprogramar e ativar o hack C-4. " -"Ahabilidadeem eletrônica e computador determina se a matriz de " -"segmentaçãoéreprogramada com sucesso." #: lang/json/TOOL_from_json.py msgid "inactive flashbang hack" @@ -71379,12 +63151,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "The flashbang hack flies from your hand and surveys the area!" msgstr "" -" inactive flashbang hackThe flashbang hack voa da sua mão e inspecionaaárea!" #. ~ Use action hostile_msg for inactive flashbang hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the flashbang hack; take cover!" -msgstr "Você misprogram o hack flashbang; proteja-se!" +msgstr "" #. ~ Description for inactive flashbang hack #: lang/json/TOOL_from_json.py @@ -71395,11 +63166,6 @@ msgid "" "activate the flashbang hack. Electronics and computer skill determines if " "the targeting matrix is reprogrammed successfully." msgstr "" -" Este é um hack flashbang inativo. Flashbang hacks são robôs do tamanho " -"deumpunho que voam pelo ar. Este contém um flashbang e ataca voando em " -"seualvoe detonando. Use este item para reprogramar e ativar o hack " -"flashbang. Ahabilidade em eletrônica e computador determina se a matriz " -"desegmentação éreprogramada com sucesso." #: lang/json/TOOL_from_json.py msgid "inactive tear gas hack" @@ -71411,13 +63177,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "The tear gas hack flies from your hand and surveys the area!" msgstr "" -" gás lacrimogêneo inativo hackThe hack do gás lacrimogêneo voa de sua " -"mãoeexamina a área!" #. ~ Use action hostile_msg for inactive tear gas hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the tear gas hack; take cover!" -msgstr "Você misprogram o corte de gás lacrimogêneo; proteja-se!" +msgstr "" #. ~ Description for inactive tear gas hack #: lang/json/TOOL_from_json.py @@ -71428,12 +63192,6 @@ msgid "" " and activate the tear gas hack. Electronics and computer skill determines " "if the targeting matrix is reprogrammed successfully." msgstr "" -" Este é um hack de gás lacrimogêneo inativo. Hackers de gás " -"lacrimogêneosãorobôs do tamanho de um punho que voam pelo ar. Este contém " -"uma bomba degáslacrimogêneo e ataca voando em seu alvo e liberando gás " -"lacrimogêneo. Useeste item para reprogramar e ativar o hack do gás " -"lacrimogêneo. Ahabilidade em eletrônica e computador determina se a matriz " -"desegmentaçãoé reprogramada com sucesso." #: lang/json/TOOL_from_json.py msgid "inactive grenade hack" @@ -71445,12 +63203,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "The grenade hack flies from your hand and surveys the area!" msgstr "" -"granada inativa hackA granada hack voa da sua mão e inspeciona a área!" #. ~ Use action hostile_msg for inactive grenade hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the grenade hack; take cover!" -msgstr "Você misprogram o hack granada; proteja-se!" +msgstr "" #. ~ Description for inactive grenade hack #: lang/json/TOOL_from_json.py @@ -71461,11 +63218,6 @@ msgid "" "grenade hack. Electronics and computer skill determines if the targeting " "matrix is reprogrammed successfully." msgstr "" -" Este é um hack de granadas inativas. Os hacks de granadas são " -"robôsdotamanho de um punho que voam pelo ar. Este contém uma granada " -"eatacavoando em seu alvo e detonando. Use este item para reprogramar eativar" -" ohack de granada. A habilidade em eletrônica e computador determinase " -"amatriz de segmentação é reprogramada com sucesso." #: lang/json/TOOL_from_json.py msgid "inactive laser turret" @@ -71482,11 +63234,6 @@ msgid "" "attack all enemies with its revolving laser cannons. It requires sunlight " "in order to fire." msgstr "" -" Torre laser inativaEsta é uma torre laser inativa. Usar este " -"itemenvolveligá-lo e colocá-lo no chão, onde ele se conectará. Se " -"reprogramadoereligado com sucesso, a torre o identificará como um amigo e " -"atacarátodosos inimigos com seus canhões laser giratórios. Requer luz do " -"solparadisparar." #: lang/json/TOOL_from_json.py msgid "inactive anti-materiel turret" @@ -71505,13 +63252,6 @@ msgid "" "turret will identify you as a friendly, and attack all enemies with a built-" "in rifle." msgstr "" -" Torre inativa anti-material Esta é uma torre anti-material inativa. " -"Usareste item envolve carregar a unidade com as munições .50 da " -"BMGcarregadasde fábrica no seu inventário (se você deseja dividir sua " -"munição, ponha delado qualquer que seja a bola BMG que você NÃO queira dar " -"àtorreta)ligando-a e colocando-o no chão, onde ele se ligará. Sereprogramado" -" ereligado com sucesso, a torre o identificará como um amigo eatacará " -"todosos inimigos com um rifle embutido." #: lang/json/TOOL_from_json.py msgid "inactive manhack" @@ -71522,12 +63262,12 @@ msgstr[1] "" #. ~ Use action friendly_msg for inactive manhack. #: lang/json/TOOL_from_json.py msgid "The manhack flies from your hand and surveys the area!" -msgstr "manhack inativo O manhack voa de sua mão e examina a área!" +msgstr "" #. ~ Use action hostile_msg for inactive manhack. #: lang/json/TOOL_from_json.py msgid "You misprogram the manhack; it's hostile!" -msgstr "Você misprogram o manhack; é hostil!" +msgstr "" #. ~ Description for inactive manhack #. ~ Description for inactive hack @@ -71539,11 +63279,6 @@ msgid "" "activate the manhack. Electronics and computer skill determines if the " "targeting matrix is reprogrammed successfully." msgstr "" -" Este é um manhack inativo. Os Manhacks são robôs do tamanho de um " -"punhoquevoam pelo ar. Eles estão cobertos de lâminas zumbindo e " -"atacandoatirando-se contra o alvo. Use este item para reprogramar e ativar " -"omanhack. Ahabilidade em eletrônica e computador determina se a matriz " -"desegmentaçãoé reprogramada com sucesso." #: lang/json/TOOL_from_json.py msgid "inactive mininuke hack" @@ -71555,12 +63290,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "The mininuke hack floats from your hand and surveys the area!" msgstr "" -" Mininuke inativo hackThe hack mininuke flutua da sua mão e inspecionaaárea!" #. ~ Use action hostile_msg for inactive mininuke hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the mininuke hack. Pray." -msgstr "Você misprogram o hack mininuke. Orar." +msgstr "" #. ~ Description for inactive mininuke hack #: lang/json/TOOL_from_json.py @@ -71571,11 +63305,6 @@ msgid "" " Electronics and computer skill determines if the targeting matrix is " "reprogrammed successfully." msgstr "" -" Este é um hack mininuke inativo. Muitas vezes tão grande quanto " -"ummanhacknormal, um hack mininuke contém um mininuke e um ataque voando " -"emseu alvoe detonando. Use este item para reprogramar e ativar o " -"hackmininuke. Ahabilidade em eletrônica e computador determina se a matriz " -"desegmentaçãoé reprogramada com sucesso." #: lang/json/TOOL_from_json.py msgid "inactive rifle turret" @@ -71593,13 +63322,6 @@ msgid "" "itself. If reprogrammed and rewired successfully the turret will then " "identify you as a friendly, and attack all enemies with a built-in rifle." msgstr "" -" revólver de rifle inativoEsta é uma torre inativa. Usar este " -"itemenvolvecarregar a unidade com as rodadas 5.56 da OTAN carregadas na " -"fábricaem seuinventário (se você deseja dividir sua munição, ponha de lado o" -" quequerque seja 5.56 você NÃO queira dar à torreta) ligando-a e colocando-" -"anochão , onde ele se ligará. Se reprogramado e religado com sucesso, " -"atorreo identificará como um amigo e atacará todos os inimigos com " -"umrifleembutido." #: lang/json/TOOL_from_json.py msgid "inactive turret" @@ -71617,12 +63339,6 @@ msgid "" "itself. If reprogrammed and rewired successfully the turret will then " "identify you as a friendly, and attack all enemies with a built-in SMG." msgstr "" -" torre inativaEsta é uma torre inativa. Usar este item envolve " -"carregaraunidade com as balas de 9x19mm carregadas na fábrica em seu " -"inventário(sevocê deseja dividir sua munição, ponha de lado qualquer 9x19mm " -"que vocêNÃOqueira dar à torreta) ligando-a e colocando-a no chão, onde ele " -"seligará.Se reprogramado e religado com sucesso, a torre irá identificá- " -"locomoamigável e atacará todos os inimigos com um SMG embutido." #: lang/json/TOOL_from_json.py msgid "inactive security bot" @@ -72082,8 +63798,6 @@ msgid "" "This is a talking doll, meant for children. Fortunately it still works, and" " you could unload the batteries out of it." msgstr "" -" boneca falanteEsta é uma boneca falante, destinada a crianças. " -"Felizmenteainda funciona, e você pode descarregar as baterias dele." #: lang/json/TOOL_from_json.py msgid "powered quarterstaff" @@ -72099,11 +63813,6 @@ msgid "" "staff, allowing you to zap a dangerous opponent should beating them " "senseless with it prove too hazardous." msgstr "" -" quarterstaff energizadoEste é um bastão de ferro que tem uma " -"pistoladechoque de alta voltagem embutida no cabo. A arma de choque é " -"conectadaàstampas de metal em cada extremidade do cajado, permitindo que " -"vocêatinjaum oponente perigoso e as derrote sem sentido, pois isso é " -"muitoperigoso." #: lang/json/TOOL_from_json.py msgid "tactical tonfa (off)" @@ -72121,13 +63830,6 @@ msgid "" "anyone unfortunate enough to be in contact with them. It also has a nifty " "flashlight, which is off at the moment." msgstr "" -" tonfa tático (off) Este é um tonfa de plástico reforçado; o " -"núcleoéesvaziado e é preenchido com capacitores e uma bateria " -"dearmazenamentorecarregável de alto rendimento. Quando um interruptor " -"nomanípulo épressionado, uma corrente de alta tensão é transmitida para " -"osdoiseletrodos montados no final do tonfa e, por extensão, para qualquer " -"umquetenha a infelicidade de entrar em contato com eles. Ele também " -"temumalanterna bacana, que está desligada no momento." #: lang/json/TOOL_from_json.py msgid "tactical tonfa (on)" @@ -72146,13 +63848,6 @@ msgid "" "flashlight is turned on, continually draining power and lighting the " "surrounding area." msgstr "" -" tonfa tático (on) Este é um tonfa de plástico reforçado; o núcleoéesvaziado" -" e é preenchido com capacitores e uma bateria dearmazenamentorecarregável de" -" alto rendimento. Quando um interruptor nopunho épressionado, uma corrente " -"de alta voltagem é transmitida para osdoiseletrodos montados no final da " -"arma e, por extensão, para qualquer umquetenha a infelicidade de estar em " -"contato com eles. A lanterna integralestáligada, drenando continuamente a " -"energia e iluminando a área ao redor." #: lang/json/TOOL_from_json.py msgid "L-stick (off)" @@ -72163,12 +63858,12 @@ msgstr[1] "" #. ~ Use action msg for L-stick (off). #: lang/json/TOOL_from_json.py msgid "The L-stick(tm) lights up." -msgstr "L-stick (desligado) O L-stick (tm) acende." +msgstr "" #. ~ Use action need_charges_msg for L-stick (off). #: lang/json/TOOL_from_json.py msgid "The L-stick(tm)'s batteries are empty." -msgstr "As baterias do L-stick (tm) estão vazias." +msgstr "" #. ~ Description for L-stick (off) #: lang/json/TOOL_from_json.py @@ -72179,12 +63874,6 @@ msgid "" "standard light sources, the L-stick or light stick as it is commonly called," " batteries last longer than other light sources." msgstr "" -" Produzida pela Light Corporation, essa equipe elegante não só " -"funcionacomouma fonte de luz, mas também funciona como uma arma leve, " -"devidoaosmateriais de superliga de que é feita. Devido às melhorias " -"proprietáriasdeeficiência em relação às fontes de luz padrão, o L-stick ou " -"lightstick, como é comumente chamado, as baterias duram mais que outras " -"fontes deluz." #: lang/json/TOOL_from_json.py msgid "L-stick (on)" @@ -72195,7 +63884,7 @@ msgstr[1] "" #. ~ Use action msg for L-stick (on). #: lang/json/TOOL_from_json.py msgid "The l-stick(tm)'s light fades away." -msgstr "L-stick (on) A luz do l-stick (tm) desaparece." +msgstr "" #. ~ Description for L-stick (on) #: lang/json/TOOL_from_json.py @@ -72207,13 +63896,6 @@ msgid "" " batteries last longer than other light sources. The staff is glowing " "brightly, which is slowly draining the batteries." msgstr "" -" Produzida pela Light Corporation, essa equipe elegante não só " -"funcionacomouma fonte de luz, mas também funciona como uma arma leve, " -"devidoaosmateriais de superliga de que é feita. Devido às melhorias " -"proprietáriasdeeficiência em relação às fontes de luz padrão, o L-stick ou " -"lightstick, como é comumente chamado, as baterias duram mais que outras " -"fontes deluz. A equipe está brilhando, o que está lentamente drenando as " -"baterias." #: lang/json/TOOL_from_json.py msgid "Louisville Slaughterer" @@ -72224,7 +63906,7 @@ msgstr[1] "" #. ~ Use action msg for Louisville Slaughterer. #: lang/json/TOOL_from_json.py msgid "You light the Louisville Slaughterer." -msgstr "Você acende o assassino de Louisville." +msgstr "" #. ~ Description for Louisville Slaughterer #: lang/json/TOOL_from_json.py @@ -72233,15 +63915,11 @@ msgid "" " Nomex fabric. Light it, and the ball game will REALLY heat up. You'll " "need a lighter or matches to light it." msgstr "" -" Este é um bastão de madeira resistente, envolto em panos " -"encharcadosdegasolina e tecido Nomex resistente a chamas. Acenda, e o jogo " -"de bolavairealmente aquecer. Você precisará de um isqueiro ou fósforos " -"paraacendê-lo." #. ~ Use action msg for Louisville Slaughterer. #: lang/json/TOOL_from_json.py msgid "The Louisville Slaughterer is extinguished." -msgstr "O assassino de Louisville é extinto." +msgstr "" #. ~ Description for Louisville Slaughterer #: lang/json/TOOL_from_json.py @@ -72251,11 +63929,6 @@ msgid "" " see the baselines at night games (It also makes the umpire FAR more likely " "to call a ball instead of a strike)." msgstr "" -" Este é um bastão de madeira resistente, envolto em panos " -"encharcadosdegasolina e tecido Nomex resistente a chamas. Ele " -"estáqueimandobrilhantemente e torna muito mais fácil ver as linhas de base " -"nosjogosnoturnos (isso também faz com que o árbitro FAR fique mais " -"propensoachamar uma bola em vez de uma greve)." #: lang/json/TOOL_from_json.py msgid "generic kitchen knife" @@ -72275,8 +63948,6 @@ msgid "" "This is a sharp, heavy knife. It makes a good melee weapon, and is an ideal" " item for butchering corpses." msgstr "" -" faca de açougueiro Esta é uma faca afiada e pesada. É uma boa arma corpo-a-" -" corpo e é um item ideal para cadáveres massacradores." #: lang/json/TOOL_from_json.py msgid "steak knife" @@ -72290,8 +63961,6 @@ msgid "" "This is a sharp knife, designed for cutting meat. It makes a poor melee " "weapon, but is decent at butchering corpses." msgstr "" -" faca de bifeEsta é uma faca afiada, projetada para cortar carne. Fazumaarma" -" pobre, mas é decente em cadáveres." #: lang/json/TOOL_from_json.py msgid "paring knife" @@ -72404,9 +64073,6 @@ msgid "" "It's long enough to slice from a distance, but its crude construction means " "it won't last long." msgstr "" -" lança de faca Um pólo cru feito de madeira com uma ponta de " -"metaligualmentegrossa amarrada a ele. É comprido o suficiente para cortar " -"àdistância, massua construção crua significa que não durará muito." #: lang/json/TOOL_from_json.py msgid "homemade halfpike" @@ -72434,8 +64100,6 @@ msgid "" "This is a long and thin knife with a spring-loaded blade that rests inside " "the handle while not in use." msgstr "" -" caniveteEsta é uma faca longa e fina com uma lâmina de mola " -"querepousadentro da alça, enquanto não estiver em uso." #: lang/json/TOOL_from_json.py msgid "folding knife" @@ -72449,9 +64113,6 @@ msgid "" "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." msgstr "" -" faca dobrável Esta é uma pequena faca dobrável, com uma lâmina de bloqueioe" -" um clipe de bolso. Não é uma arma tão boa quanto uma faca sólida delâmina " -"fixa, mas melhor que um canivete." #: lang/json/TOOL_from_json.py msgid "combat knife" @@ -72465,9 +64126,6 @@ msgid "" "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." msgstr "" -" knifeThis é uma faca de combate militar. É leve e extremamente afiada, e " -"pode ser fatal tanto nas mãos certas quanto quando conectada " -"comoumabaioneta." #: lang/json/TOOL_from_json.py msgid "hunting knife" @@ -72481,8 +64139,6 @@ msgid "" "Commonly used by hunters, this single-edge sheath knife is designed for " "cutting and skinning game rather than combat." msgstr "" -" faca de caça Comumente usada por caçadores, esta faca de bainha " -"debordaúnica é projetada para cortar e esfolar o jogo em vez de combater." #: lang/json/TOOL_from_json.py msgid "survival knife" @@ -72496,9 +64152,6 @@ 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 "" -" faca de sobrevivênciaEsta faca maciça possui uma alça oca com " -"umabússolaembutida no pomo e uma fileira de dentes de serra com " -"aparênciaassustadoraao longo das costas de sua lâmina." #: lang/json/TOOL_from_json.py msgid "RM42 fighting knife" @@ -72515,12 +64168,6 @@ msgid "" "manufactured for the military, it was very popular in films and among " "collectors due to its fearsome appearance." msgstr "" -" Canivete de combate RM42Esta adaga de combate Rivtech preta fosca " -"erobustaapresenta uma lâmina longa e esguia de dois gumes com ponta de " -"lançae umdistintivo resistente ao deslizamento que também pode ser usado " -"paraafixá-la a uma arma de fogo adequada. Originalmente fabricado para " -"osmilitares, era muito popular em filmes e colecionadores devido à " -"suaaparênciaassustadora." #: lang/json/TOOL_from_json.py msgid "Swiss Army knife" @@ -72534,8 +64181,6 @@ msgid "" "An iconic pocket knife imported from Europe. Its red plastic handle " "conceals many small tools." msgstr "" -" Canivete suíço Um canivete icônico importado da Europa. Seu cabo " -"deplásticovermelho esconde muitas ferramentas pequenas." #: lang/json/TOOL_from_json.py msgid "trench knife" @@ -72550,10 +64195,6 @@ msgid "" "knuckles. The guard can also be used for striking or blocking, and the " "knife can also be used to butcher corpses." msgstr "" -" canivete de trincheiraEsta poderosa faca de combate possui uma " -"proteçãodeaço para proteger as articulações do usuário. O protetor também " -"podeserusado para golpear ou bloquear, e a faca também pode ser usada " -"paramatarcadáveres." #: lang/json/TOOL_from_json.py msgid "makeshift knife" @@ -72567,8 +64208,6 @@ msgid "" "A knife consisting of a long, somewhat sharpened, spike and a tightly " "wrapped rag as a handle. It makes a good melee weapon." msgstr "" -" faca improvisadaUma faca que consiste em um espigão longo, um tanto " -"afiadoeum pano bem enrolado como alça. Faz uma boa arma corpo a corpo." #: lang/json/TOOL_from_json.py msgid "makeshift machete" @@ -72582,8 +64221,6 @@ msgid "" "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." msgstr "" -" machado improvisadoEsta é uma lâmina grande que teve uma parte " -"docaboenrolada em fita adesiva, facilitando o manejo de um facão áspero." #: lang/json/TOOL_from_json.py msgid "machete" @@ -72597,8 +64234,6 @@ msgid "" "This huge steel knife makes an excellent tool for cutting down large " "vegetation or other 'obstacles.'" msgstr "" -" facãoEsta enorme faca de aço é uma excelente ferramenta para " -"cortargrandesvegetações ou outros 'obstáculos'." #: lang/json/TOOL_from_json.py msgid "No. 9" @@ -72610,12 +64245,12 @@ msgstr[1] "" #. ~ Use action lacks_fuel_message for No. 9. #: lang/json/TOOL_from_json.py src/iuse.cpp src/mattack_actors.cpp msgid "Click." -msgstr "No. 9 Clique." +msgstr "" #. ~ Use action success_message for No. 9. #: lang/json/TOOL_from_json.py msgid "Your No. 9 glows!" -msgstr "Seu No. 9 brilha!" +msgstr "" #. ~ Description for No. 9 #: lang/json/TOOL_from_json.py @@ -72624,34 +64259,31 @@ msgid "" "handguard, and ignition system. When filled with gasoline, a system of " "torches heats the blade, burning your target." msgstr "" -" Esta faca de aço enorme foi modificada com um tanque decombustível, " -"handguard isolado e sistema de ignição. Quando cheio degasolina, umsistema " -"de tochas aquece a lâmina, queimando seu alvo." #. ~ Use action auto_extinguish_message for No. 9. #: lang/json/TOOL_from_json.py msgid "Your No. 9 cuts out!" -msgstr "Seu No. 9 é cortado!" +msgstr "" #. ~ Use action charges_extinguish_message for No. 9. #: lang/json/TOOL_from_json.py msgid "Out of ammo!" -msgstr "Sem munição!" +msgstr "" #. ~ Use action noise_message for No. 9. #: lang/json/TOOL_from_json.py msgid "Your No. 9 hisses." -msgstr "Seu No. 9 silvos." +msgstr "" #. ~ Use action voluntary_extinguish_message for No. 9. #: lang/json/TOOL_from_json.py msgid "Your No. 9 goes dark." -msgstr "Seu n º 9 fica escuro." +msgstr "" #. ~ Use action water_extinguish_message for No. 9. #: lang/json/TOOL_from_json.py msgid "Your No. 9 hisses in the water and goes out." -msgstr "Seu n º 9 silva na água e sai." +msgstr "" #. ~ Description for No. 9 #: lang/json/TOOL_from_json.py @@ -72660,9 +64292,6 @@ msgid "" "handguard, and ignition system. The blade is glowing with heat, making it a" " great plant scorcher and nightlight." msgstr "" -" Esta faca de aço enorme foi modificada com um tanque decombustível, " -"handguard isolado e sistema de ignição. A lâmina está brilhandocom ocalor, " -"tornando-se um grande queimador de plantas e luz noturna." #. ~ Description for cavalry saber #: lang/json/TOOL_from_json.py @@ -72670,8 +64299,6 @@ msgid "" "This is a curved sword associated with cavalry from the Early Modern period " "onwards. Lightweight but a deadly slashing weapon." msgstr "" -" Esta é uma espada curva associada à cavalaria desde o início damodernidade." -" Leve, mas uma arma mortal cortante." #. ~ Description for kris #: lang/json/TOOL_from_json.py @@ -72679,8 +64306,6 @@ msgid "" "This wavy bladed dagger comes from Southeast Asia. The design of the blade " "causes it to make broad, painful wounds." msgstr "" -" Esta adaga ondulada vem do sudeste da Ásia. O desenho da lâmina faz " -"comqueela faça feridas largas e dolorosas." #: lang/json/TOOL_from_json.py msgid "kukri" @@ -72695,10 +64320,6 @@ msgid "" "originated in Nepal. Featuring a heavy blade with an inwardly curved edge, " "it is used as both a tool and as a weapon." msgstr "" -" kukriEste versátil implemento é uma versão moderna de uma " -"armatradicionalque se originou no Nepal. Apresentando uma lâmina pesada com " -"umabordacurvada para dentro, ela é usada tanto como uma ferramenta quanto " -"comoumaarma." #. ~ Description for jian #: lang/json/TOOL_from_json.py @@ -72707,10 +64328,6 @@ msgid "" "guard and a tassel attached to the pommel. One of the four major weapons in" " folklore, alongside the dao sabre, qiang spear, and gun staff." msgstr "" -" Esta é uma antiga espada reta chinesa de dois gumes, com " -"umguardaornamentado e uma borla presa ao pomo. Uma das quatro " -"principaisarmas dofolclore, ao lado do sabre dao, da lança do qiang e do " -"cajado daarma." #. ~ Description for jian #: lang/json/TOOL_from_json.py @@ -72718,8 +64335,6 @@ msgid "" "This is an ancient Chinese doubled-edged straight sword. The sword is quite" " worn, and bent at an odd angle." msgstr "" -" Esta é uma antiga espada chinesa de dois gumes. A espada " -"estábastantedesgastada e dobrada em um ângulo estranho." #. ~ Description for scimitar #: lang/json/TOOL_from_json.py @@ -72728,9 +64343,6 @@ msgid "" "Asian countries. Designed for slashing, and quite deadly against unarmored " "targets." msgstr "" -" Esta é uma espada curva associada a vários países do Oriente Médio e " -"daÁsiaCentral. Projetado para slashing e bastante mortal contra alvos " -"nãoarmados." #. ~ Description for scimitar #: lang/json/TOOL_from_json.py @@ -72738,8 +64350,6 @@ msgid "" "This is a curved sword associated with various Middle Eastern and Central " "Asian countries. This one seems oddly dull and worn." msgstr "" -" Esta é uma espada curva associada a vários países do Oriente Médio e " -"daÁsiaCentral. Este parece estranhamente aborrecido e gasto." #. ~ Description for longsword #: lang/json/TOOL_from_json.py @@ -72748,9 +64358,6 @@ msgid "" "later two-handed swords in size. It requires a larger baldric or scabbard, " "compared to smaller swords." msgstr "" -" Esta é uma espada medieval clássica, entre a espada de armar mais " -"leveeespadas posteriores de duas mãos em tamanho. Requer um maior " -"baldricoubainha, comparado a espadas menores." #. ~ Description for longsword #: lang/json/TOOL_from_json.py @@ -72759,17 +64366,12 @@ msgid "" "later two-handed swords in size. You feel like the pommel could just snap " "off if you used it." msgstr "" -" Esta é uma espada medieval clássica, entre a espada de armar mais " -"leveeespadas posteriores de duas mãos em tamanho. Você se sente como se " -"opomopudesse se soltar se você o usasse." #. ~ Description for arming sword #: lang/json/TOOL_from_json.py msgid "" "This is a classic medieval sword, just the right size to use one-handed." msgstr "" -" Esta é uma espada medieval clássica, apenas o tamanho certo para usarcomuma" -" mão." #. ~ Description for arming sword #: lang/json/TOOL_from_json.py @@ -72777,8 +64379,6 @@ msgid "" "This is a classic medieval sword, just the right size to use one-handed. " "This one doesn't seem to have been made right." msgstr "" -" Esta é uma espada medieval clássica, apenas o tamanho certo para usarcomuma" -" mão. Este não parece ter sido corrigido." #: lang/json/TOOL_from_json.py msgid "xiphos" @@ -72792,8 +64392,6 @@ msgid "" "A bronze sword of ancient Greek origin, wielded as a sidearm to the dory " "spear." msgstr "" -" xiphos Uma espada de bronze de origem grega antiga, empunhada como uma " -"armalateral para a lança de dory." #: lang/json/TOOL_from_json.py msgid "khopesh" @@ -72809,10 +64407,6 @@ msgid "" " it was designed mainly to hack through the light armor common to the " "region." msgstr "" -" khopesh Esta antiga arma de bronze apresenta uma lâmina curvada, " -"semelhantea uma foice, afiada na borda externa. Associado ao período do Novo" -" Impériodo antigo Egito, ele foi projetado principalmente para hackear a " -"armaduraleve comum à região." #: lang/json/TOOL_from_json.py msgid "dao" @@ -72828,10 +64422,6 @@ msgid "" "bronze. One of the four major weapons in folklore, alongside the jian " "sword, qiang spear, and gun staff." msgstr "" -" dao Uma antiga espada chinesa que consiste em uma lâmina curva e um " -"guardacom um desenho em concha. Existindo desde a dinastia Shang, esta é " -"feita debronze. Uma das quatro principais armas do folclore, ao lado da " -"espadajian, da lança qiang e do cajado de armas." #: lang/json/TOOL_from_json.py msgid "survivor machete" @@ -72845,8 +64435,6 @@ msgid "" "This common gardening tool has been customized and rebalanced to improve its" " performance as a weapon." msgstr "" -" machete de sobrevivênciaEsta ferramenta de jardinagem comumfoipersonalizada" -" e reequilibrada para melhorar o seu desempenho como arma." #: lang/json/TOOL_from_json.py msgid "sword bayonet" @@ -72860,9 +64448,6 @@ msgid "" "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." msgstr "" -" baioneta de espadaUma baioneta de espada é uma grande arma cortante que " -"pode ser anexada à frente de uma arma de fogo ou uma besta, convertendo- aem" -" umalança." #. ~ Description for tanto #: lang/json/TOOL_from_json.py @@ -72871,9 +64456,6 @@ msgid "" "weapon, before the advent of the larger wakizashi. It's still a deadly " "blade, even if it's smaller than its more famous relatives." msgstr "" -" Longas facas japonesas como este remake mais moderno eram a arma " -"reservadosamurai, antes do advento do wakizashi maior. Ainda é uma " -"lâminamortal, mesmo que seja menor do que seus parentes mais famosos." #. ~ Description for wakizashi #: lang/json/TOOL_from_json.py @@ -72881,8 +64463,6 @@ msgid "" "This is a comparatively-common Japanese short sword. Smaller and lighter " "than a katana, but still effective in combat." msgstr "" -" Esta é uma espada curta japonesa comparativamente comum. Menor e mais " -"leveque uma katana, mas ainda efetivo em combate." #: lang/json/TOOL_from_json.py msgid "flammenschwert (aus)" @@ -72893,12 +64473,12 @@ msgstr[1] "" #. ~ Use action lacks_fuel_message for flammenschwert (aus). #: lang/json/TOOL_from_json.py msgid "Dein Flammenschwert hat keinen Brennstoff mehr." -msgstr "Espada Flamejante (off) Sua Espada Flamejante ficou sem combustível." +msgstr "" #. ~ Use action success_message for flammenschwert (aus). #: lang/json/TOOL_from_json.py msgid "Die Klinge deines Schwertes brennt!" -msgstr "A lâmina da sua espada está queimando!" +msgstr "" #. ~ Description for flammenschwert (aus) #. ~ Description for flammenschwert @@ -72908,9 +64488,6 @@ msgid "" "unter Zuführung von Benzin, eine anhaltende Flamme erzeugen lässt. Es ist " "eine sehr mächtige Waffe." msgstr "" -" Uma grande espada de duas mãos da Alemanha, em cuja lâmina, com " -"ofornecimento de gasolina, pode produzir uma chama duradoura. É uma " -"armamuito poderosa." #: lang/json/TOOL_from_json.py msgid "flammenschwert" @@ -72921,28 +64498,27 @@ msgstr[1] "" #. ~ Use action charges_extinguish_message for flammenschwert. #: lang/json/TOOL_from_json.py msgid "Deinem Flammenschwert ist der Brennstoff ausgegangen!" -msgstr "Espada flamejante Sua espada flamejante ficou sem combustível!" +msgstr "" #. ~ Use action noise_message for flammenschwert. #: lang/json/TOOL_from_json.py msgid "Das Feuer um deine Schwertklinge leuchtet hell!" -msgstr "O fogo em volta da sua lâmina de espada brilha!" +msgstr "" #. ~ Use action voluntary_extinguish_message for flammenschwert. #: lang/json/TOOL_from_json.py msgid "Die Flamme deines Schwertes erlischt." -msgstr "A chama da sua espada se apaga." +msgstr "" #. ~ Use action water_extinguish_message for flammenschwert. #: lang/json/TOOL_from_json.py msgid "Dein Schwert zischt und erlischt." -msgstr "Sua espada assobia e sai." +msgstr "" #. ~ Description for zweihänder #: lang/json/TOOL_from_json.py msgid "This is a huge two-handed sword from Germany. It packs a real wallop." msgstr "" -" Esta é uma enorme espada de duas mãos da Alemanha. Embala uma pancada real." #: lang/json/TOOL_from_json.py msgid "kirpan" @@ -72970,8 +64546,6 @@ msgid "" "This is a huge, curved, two-handed sword from Japan. It is surprisingly " "light for its size." msgstr "" -" Esta é uma enorme espada curva de duas mãos do Japão. " -"Ésurpreendentementeleve para o seu tamanho." #. ~ Description for broadsword #: lang/json/TOOL_from_json.py @@ -72979,8 +64553,6 @@ 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 "" -" Esta é uma espada moderna e antiga que é usada nos séculos XVI, XVIIeXVIII." -" Chamado de\"amplo\" para contrastar com os floretes mais magros." #. ~ Description for broadsword #: lang/json/TOOL_from_json.py @@ -72989,9 +64561,6 @@ msgid "" "centuries. This sword appears to be made very poorly, but it should still " "stand up to a few swings." msgstr "" -" Esta é uma espada moderna e antiga que é usada nos séculos XVI, XVIIeXVIII." -" Esta espada parece ser muito mal feita, mas ainda deve resistiraalgumas " -"oscilações." #: lang/json/TOOL_from_json.py msgid "firebrand (off)" @@ -73007,7 +64576,7 @@ msgstr "Sem força para lutar!" #. ~ Use action success_message for firebrand (off). #: lang/json/TOOL_from_json.py msgid "Charge!" -msgstr "Carregar!" +msgstr "" #. ~ Description for firebrand (off) #: lang/json/TOOL_from_json.py @@ -73016,9 +64585,6 @@ msgid "" "broadsword and the torch. Use to light it up and show those heathen zombies" " who's Lord around here." msgstr "" -" Esta é uma combinação de dois clássicos de resolução de conflitos DarkAge, " -"o broadsword e a tocha. Use para iluminar e mostrar àqueles zumbispagãosquem" -" é o Senhor por aqui." #: lang/json/TOOL_from_json.py msgid "firebrand (on)" @@ -73029,23 +64595,23 @@ msgstr[1] "" #. ~ Use action charges_extinguish_message for firebrand (on). #: lang/json/TOOL_from_json.py msgid "Thy strength fades!" -msgstr "firebrand (on) Sua força desvanece-se!" +msgstr "" #. ~ Use action noise_message for firebrand (on). #: lang/json/TOOL_from_json.py msgid "Your blade burns for combat!" -msgstr "Sua lâmina queima para o combate!" +msgstr "" #. ~ Use action voluntary_extinguish_message for firebrand (on). #: lang/json/TOOL_from_json.py msgid "Run away!" -msgstr "Fugir!" +msgstr "" #. ~ Use action water_extinguish_message for firebrand (on). #. ~ Use action water_extinguish_message for Rising Sun. #: lang/json/TOOL_from_json.py msgid "Your sword hisses in the water and goes out." -msgstr "Sua espada assobia na água e sai." +msgstr "" #. ~ Description for firebrand (on) #: lang/json/TOOL_from_json.py @@ -73054,9 +64620,6 @@ msgid "" "broadsword and the torch. The blade is glowing with heat. Excalibur can " "eat its heart out. Use to shut it off." msgstr "" -" Esta é uma combinação de dois clássicos de resolução de conflitos DarkAge, " -"o broadsword e a tocha. A lâmina está brilhando com o calor. Excalibur pode " -"devorar seu coração. Use para desligá-lo." #. ~ Description for cutlass #: lang/json/TOOL_from_json.py @@ -73065,9 +64628,6 @@ msgid "" "appears to be made very poorly, but it should still stand up to a few " "swings." msgstr "" -" Este é um sabre amplo conhecido por seu uso por marinheiros e piratas. " -"Estaespada parece ser muito mal feita, mas ainda deve resistir " -"aalgumasoscilações." #. ~ Description for rapier #: lang/json/TOOL_from_json.py @@ -73076,9 +64636,6 @@ msgid "" " weapon of gentlemen and swashbucklers. Light and quick, it makes any " "battle a stylish battle." msgstr "" -" Esta é uma espada fina com um guarda de mão ornamentado. Parece " -"aarmapreferida dos cavalheiros e fanfarrões. Leve e rápido, " -"tornaqualquerbatalha uma batalha elegante." #. ~ Description for katana #: lang/json/TOOL_from_json.py @@ -73086,8 +64643,6 @@ msgid "" "This is a rare sword from Japan. Deadly against unarmored targets, and " "still very effective against armor." msgstr "" -" Esta é uma espada rara do Japão. Mortal contra alvos não blindados " -"eaindamuito eficaz contra armaduras." #. ~ Description for katana #: lang/json/TOOL_from_json.py @@ -73095,8 +64650,6 @@ msgid "" "This is a rare sword from Japan. While it's got the right edge and weight, " "the pommel just snaps off, and the blade seems pretty worn." msgstr "" -" Esta é uma espada rara do Japão. Embora tenha a borda e o peso corretos, " -"opomo apenas se solta e a lâmina parece bastante desgastada." #: lang/json/TOOL_from_json.py msgid "Rising Sun" @@ -73107,12 +64660,12 @@ msgstr[1] "" #. ~ Use action lacks_fuel_message for Rising Sun. #: lang/json/TOOL_from_json.py msgid "Time stands still." -msgstr "Nascente SunTime fica parado." +msgstr "" #. ~ Use action success_message for Rising Sun. #: lang/json/TOOL_from_json.py msgid "The Sun rises." -msgstr "O sol nasce." +msgstr "" #. ~ Description for Rising Sun #: lang/json/TOOL_from_json.py @@ -73122,25 +64675,21 @@ msgid "" "The gas burners attached to this blade can really turn up the heat on your " "foes. Use to ignite." msgstr "" -" Esta é uma katana com um bocal logo atrás da ponta da lâmina. Aspessoasamam" -" fogo, e as pessoas adoram katanas, então porque não colocá-lasjuntas?Os " -"queimadores a gás ligados a esta lâmina podem realmente aumentaro calorde " -"seus inimigos. Use para acender." #. ~ Use action charges_extinguish_message for Rising Sun. #: lang/json/TOOL_from_json.py msgid "The Light Fades." -msgstr "A luz se apaga." +msgstr "" #. ~ Use action noise_message for Rising Sun. #: lang/json/TOOL_from_json.py msgid "The Sun shines brightly." -msgstr "O sol brilha intensamente." +msgstr "" #. ~ Use action voluntary_extinguish_message for Rising Sun. #: lang/json/TOOL_from_json.py msgid "The Sun sets." -msgstr "O sol se põe." +msgstr "" #. ~ Description for Rising Sun #: lang/json/TOOL_from_json.py @@ -73149,8 +64698,6 @@ msgid "" "it's not THAT hot, but getting hit with it still stings like the dickens. " "Use to shut off the gas." msgstr "" -" Esta é uma katana que brilha com a fúria e o calor do SOL! Bem, ok, nãoétão" -" gostoso, mas ser atingido ainda dói como o dickens. Use para desligarogás." #. ~ Description for zweihänder #: lang/json/TOOL_from_json.py @@ -73158,8 +64705,6 @@ msgid "" "This is a huge two-handed sword from Germany. You're not quite sure it's " "supposed to be that bendy." msgstr "" -" Esta é uma enorme espada de duas mãos da Alemanha. Você não tem " -"certezadeque deveria ser tão flexível." #. ~ Description for wakizashi #: lang/json/TOOL_from_json.py @@ -73167,8 +64712,6 @@ msgid "" "This is a comparatively-common Japanese short sword. There's something not " "quite right about this sword." msgstr "" -" Esta é uma espada curta japonesa comparativamente comum. Há algo " -"nãomuitocerto sobre essa espada." #: lang/json/TOOL_from_json.py msgid "pair of butterfly swords" @@ -73196,10 +64739,6 @@ msgid "" "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." msgstr "" -" motosserra lajatang (off) Um longo poste de madeira " -"commotosserrasimpraticávelmente preso a ambas as extremidades. O produto " -"dequalquergênio ou insanidade, mas não ambos; o peso garante que " -"apenasalguém fortee muito habilidoso tenha a esperança de usá-lo." #: lang/json/TOOL_from_json.py msgid "chainsaw lajatang (on)" @@ -73213,9 +64752,6 @@ msgid "" "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." msgstr "" -" motosserra lajatang (on) Um longo poste de madeira " -"commotosserrasimpraticávelmente preso a ambas as extremidades. Eles " -"estãoatualmente em edrenando gasolina; use este item para desativá-los." #: lang/json/TOOL_from_json.py msgid "electric chainsaw lajatang (off)" @@ -73231,10 +64767,6 @@ msgid "" "ensures that only someone both strong and very skilled could possibly hope " "to use it." msgstr "" -" mota elétrica lajatang (off) Um longo poste de madeira " -"commotosserraselétricas presas a ambas as extremidades. O produto de " -"qualquergênio ouinsanidade, mas não ambos; o peso garante que apenas alguém " -"forte emuitohabilidoso tenha a esperança de usá-lo." #: lang/json/TOOL_from_json.py msgid "electric chainsaw lajatang (on)" @@ -73249,9 +64781,6 @@ msgid "" "ends. They are currently on and draining power; use this item to turn them " "off." msgstr "" -" motosserra elétrica lajatang (on) Um longo poste de madeira " -"commotosserraselétricas presas de maneira prática nas duas extremidades. " -"Elesestãoatualmente em e drenando poder; use este item para desativá-los." #. ~ Description for cutlass #: lang/json/TOOL_from_json.py @@ -73259,8 +64788,6 @@ msgid "" "This is a broad saber known for its use by sailors and pirates, as its short" " blade is easy to handle in close quarters." msgstr "" -" Este é um sabre largo conhecido por seu uso por marinheiros e piratas, " -"comosua lâmina curta é fácil de manusear em quartos próximos." #: lang/json/TOOL_from_json.py msgid "combat chainsaw (off)" @@ -73275,10 +64802,6 @@ msgid "" "to be a more effective weapon. Unfortunately these modifications have " "rendered it much less effective as a woodcutting tool." msgstr "" -" motosserra de combate (off) Esta é uma motosserra que foiiluminada, " -"ajustada e extensivamente modificada para ser uma arma maiseficaz. " -"Infelizmente, essas modificações tornaram-se muito menos eficazescomo " -"umaferramenta de corte de madeira." #: lang/json/TOOL_from_json.py msgid "combat chainsaw (on)" @@ -73292,8 +64815,6 @@ msgid "" "This combat chainsaw is on, and is continuously draining gasoline. Use it " "to turn it off." msgstr "" -" motosserra de combate (on) Esta motosserra de combate está ligada " -"edrenacontinuamente gasolina. Use-o para desligá-lo." #: lang/json/TOOL_from_json.py msgid "electric combat chainsaw (off)" @@ -73308,10 +64829,6 @@ msgid "" " modified to be a more effective weapon. Unfortunately these modifications " "have rendered it much less effective as a woodcutting tool." msgstr "" -" motosserra elétrica de combate (desligada) Esta é uma motosserraelétricaque" -" foi iluminada, ajustada e extensivamente modificada para seruma armamais " -"eficaz. Infelizmente, essas modificações tornaram-se muitomenoseficazes como" -" uma ferramenta de corte de madeira." #: lang/json/TOOL_from_json.py msgid "electric combat chainsaw (on)" @@ -73325,9 +64842,6 @@ msgid "" "This electric combat chainsaw is on, and is continuously draining power. " "Use it to turn it off." msgstr "" -" motosserra elétrica de combate (on) Esta motosserra elétrica de " -"combateestáligada e está continuamente drenando energia. Use-o para desligá-" -"lo." #: lang/json/TOOL_from_json.py msgid "alien resin pod" @@ -73362,8 +64876,6 @@ msgid "" "A broken shard of glass covered in sharp edges. You could use it as a " "weapon, but you might want to wear gloves." msgstr "" -" shard de vidroUm fragmento quebrado de vidro coberto de bordas afiadas. " -"Vocêpoderia usá-lo como uma arma, mas você pode querer usar luvas." #: lang/json/TOOL_from_json.py msgid "plastic chunk" @@ -73377,8 +64889,6 @@ msgid "" "This is a piece of plastic. It could be used to fabricate, repair, or " "reinforce plastic items." msgstr "" -" pedaço de plásticoEste é um pedaço de plástico. Pode ser usadoparafabricar," -" reparar ou reforçar itens de plástico." #: lang/json/TOOL_from_json.py msgid "hexamine stove" @@ -73392,9 +64902,6 @@ msgid "" "Known as an Esbit stove, this is a lightweight, folding stove designed to " "use small hexamine tablets for cooking." msgstr "" -" fogão de hexamina Conhecido como um fogão Esbit, este é um fogão " -"levedobrável projetado para usar pequenos comprimidos de hexamina " -"paracozinhar." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" @@ -73408,9 +64915,6 @@ msgid "" "A large metal stand used to contain a fire. Fires set in a brazier will not" " spread to surrounding flammable objects." msgstr "" -" braseiro Um grande suporte de metal usado para conter um incêndio. " -"Incêndios colocados em um braseiro não se espalharão para objetosinflamáveis" -" circundantes." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "fire barrel (200L)" @@ -73458,9 +64962,6 @@ msgid "" "Metal butchering rack designed to hang a carcass in the air. It is folded " "for easy transportation and can be deployed as a furniture." msgstr "" -" rack de açougueiro de metal Rack de açougueiro de metal projetado " -"parapendurar uma carcaça no ar. É dobrado para facilitar o transporte e " -"podeser utilizado como um móvel." #: lang/json/TOOL_from_json.py lang/json/vehicle_from_json.py msgid "inflatable boat" @@ -73480,9 +64981,6 @@ msgid "" "This rubber rowboat (oars included) is deflated for storage. Activate it " "(having an air pump in inventory) to inflate and launch." msgstr "" -" Este barco a remo de borracha (remos incluídos) é esvaziado " -"paraarmazenamento. Ative-o (com uma bomba de ar no estoque) para inflar " -"elançar." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "metal smoking rack" @@ -73509,8 +65007,6 @@ msgid "" "Metal tourist table for off-road trips. It is folded for easy " "transportation and can be deployed as a furniture." msgstr "" -" tabela do turista Tabela do turista do metal para desengates off-road. " -"Édobrado para facilitar o transporte e pode ser utilizado como um móvel." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "leather tarp" @@ -73525,10 +65021,6 @@ msgid "" "blanket, but it's more valuable as a butchery appliance as it does not soak " "in blood. It's rolled and ready for carrying." msgstr "" -" lona de couro Uma grande folha de couro costurado que pode ser implantadaem" -" vez de uma manta de piquenique, mas é mais valiosa como um aparelho " -"deaçougue, pois não encharca em sangue. Está enrolado e pronto " -"paratransportar." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "fiber mat" @@ -73543,10 +65035,6 @@ msgid "" " blanket, but it's more valuable as a butchery appliance. Too thin to be " "used as a comfortable sleeping place. It's rolled and ready for carrying." msgstr "" -" Esteira de fibra Um grande tapete de material fibroso que pode ser usado " -"emvez de uma manta de piquenique, mas é mais valioso como um aparelho " -"deaçougue. Muito fino para ser usado como um local confortável para dormir. " -"Está enrolado e pronto para transportar." #: lang/json/TOOL_from_json.py msgid "flint and steel" @@ -73570,7 +65058,7 @@ msgstr[1] "" #. ~ Use action need_charges_msg for electric lantern (off). #: lang/json/TOOL_from_json.py msgid "The lantern has no batteries." -msgstr "lanterna elétrica (desligado) A lanterna não tem baterias." +msgstr "" #. ~ Description for electric lantern (off) #: lang/json/TOOL_from_json.py @@ -73578,8 +65066,6 @@ msgid "" "This is a battery-powered lamp. It does not provide much light, but it " "lasts a long time. Use it to turn it on." msgstr "" -" Esta é uma lâmpada alimentada por bateria. Não fornece muita luz, mas " -"duramuito tempo. Use-o para ligá-lo." #: lang/json/TOOL_from_json.py msgid "electric lantern (on)" @@ -73590,7 +65076,7 @@ msgstr[1] "" #. ~ Use action msg for electric lantern (on). #: lang/json/TOOL_from_json.py msgid "You turn the lamp off." -msgstr "lanterna elétrica (on) Você desliga a lâmpada." +msgstr "" #: lang/json/TOOL_from_json.py msgid "flashlight (off)" @@ -73601,12 +65087,12 @@ msgstr[1] "" #. ~ Use action msg for flashlight (off). #: lang/json/TOOL_from_json.py msgid "You turn the flashlight on." -msgstr "lanterna (desligada) Você liga a lanterna." +msgstr "" #. ~ Use action need_charges_msg for flashlight (off). #: lang/json/TOOL_from_json.py msgid "The flashlight's batteries are dead." -msgstr "As baterias da lanterna estão mortas." +msgstr "" #. ~ Description for flashlight (off) #: lang/json/TOOL_from_json.py @@ -73615,9 +65101,6 @@ msgid "" "flashlight will turn it on and provide light, assuming it is charged with " "batteries." msgstr "" -" Esta é uma típica lanterna doméstica com uma alça de plástico. Usando " -"estalanterna irá ligá-lo e fornecer luz, assumindo que ele está carregado " -"combaterias." #: lang/json/TOOL_from_json.py msgid "flashlight (on)" @@ -73628,7 +65111,7 @@ msgstr[1] "" #. ~ Use action msg for flashlight (on). #: lang/json/TOOL_from_json.py msgid "You turn the flashlight off." -msgstr "lanterna (acesa) Você desliga a lanterna." +msgstr "" #: lang/json/TOOL_from_json.py msgid "flare" @@ -73639,12 +65122,12 @@ msgstr[1] "" #. ~ Use action menu_text for flare. #: lang/json/TOOL_from_json.py msgid "Strike the striker" -msgstr "flare Golpeie o atacante" +msgstr "" #. ~ Use action msg for flare. #: lang/json/TOOL_from_json.py msgid "You strike your flare and light it." -msgstr "Você acende seu brilho e acende." +msgstr "" #. ~ Description for flare #: lang/json/TOOL_from_json.py @@ -73652,8 +65135,6 @@ msgid "" "This is a slow-burning magnesium flare. Use it to strike the striker and " "light it. It will produce a bright light for about a half hour." msgstr "" -" Este é um flare de magnésio de queima lenta. Use-o para atacar o atacante " -"eacendê-lo. Ela produzirá uma luz brilhante por cerca de meia hora." #: lang/json/TOOL_from_json.py msgid "active flare" @@ -73667,8 +65148,6 @@ msgid "" "This burning magnesium flare is producing light. It will last for about a " "half hour before burning out." msgstr "" -" Flare ativo Este flare queima de magnésio está produzindo luz. Vai " -"durarcerca de meia hora antes de queimar." #: lang/json/TOOL_from_json.py msgid "heavy duty flashlight (off)" @@ -73680,13 +65159,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You turn the heavy duty flashlight on." msgstr "" -" lanterna de serviço pesado (desligado) Você liga a lanterna de " -"serviçopesado." #. ~ Use action need_charges_msg for heavy duty flashlight (off). #: lang/json/TOOL_from_json.py msgid "The heavy duty flashlight's batteries are dead." -msgstr "As baterias da lanterna pesada estão mortas." +msgstr "" #. ~ Description for heavy duty flashlight (off) #: lang/json/TOOL_from_json.py @@ -73695,10 +65172,6 @@ msgid "" "security guards. Makes for a passable melee weapon. Using this flashlight " "will turn it on and provide light, assuming it is charged with batteries." msgstr "" -" Esta é uma lanterna LED de alumínio tubular para serviço pesado, " -"comofrequentemente usada por guardas de segurança. Faz uma arma corpo a " -"corpopassável. Usando esta lanterna irá ligá-lo e fornecer luz, assumindo " -"queele está carregado com baterias." #: lang/json/TOOL_from_json.py msgid "heavy duty flashlight (on)" @@ -73710,8 +65183,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You turn the heavy duty flashlight off." msgstr "" -" lanterna de serviço pesado (ligado) Você desliga a lanterna de " -"serviçopesado." #: lang/json/TOOL_from_json.py msgid "acetylene lamp (off)" @@ -73731,9 +65202,6 @@ msgid "" "An antique brass lamp designed to run from a pressurized cylinder of " "acetylene. It is an efficient, if not somewhat dangerous light source." msgstr "" -" Uma lâmpada de latão antiga projetada para funcionar a partir de umcilindro" -" pressurizado de acetileno. É uma fonte de luz eficiente, se não umpouco " -"perigosa." #: lang/json/TOOL_from_json.py msgid "acetylene lamp (on)" @@ -73760,9 +65228,6 @@ msgid "" "for people with asthma. A mild stimulant, it may cause nervousness or " "tremors." msgstr "" -" inalador inalador Albuterol. Usado no tratamento de broncoespasmo, é " -"umatábua de salvação para as pessoas com asma. Um estimulante leve, " -"podecausar nervosismo ou tremores." #: lang/json/TOOL_from_json.py msgid "RC control" @@ -73777,9 +65242,6 @@ msgid "" "buttons that don't seem to do anything. Perhaps they were for the deluxe " "model?" msgstr "" -" Controle RC Um controle remoto para carros RC, com joystick para dirigir " -"ocarro e botões coloridos que não parecem fazer nada. Talvez eles fossempara" -" o modelo de luxo?" #: lang/json/TOOL_from_json.py msgid "RC car" @@ -73791,7 +65253,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A remote-controlled car. Fun for young and old alike." msgstr "" -" Carro de RC Um carro de controle remoto. Diversão para jovens e velhos." #: lang/json/TOOL_from_json.py msgid "RC car (on)" @@ -73805,9 +65266,6 @@ msgid "" "This remote-controlled car is on, and draining its batteries just like a " "real electric car! Use a remote control to drive it around." msgstr "" -" Carro RC (ligado) Este carro de controle remoto está ligado e drenando " -"suasbaterias como um verdadeiro carro elétrico! Use um controle remoto " -"paradirigi-lo." #: lang/json/TOOL_from_json.py msgid "radio activation mod" @@ -73821,8 +65279,6 @@ msgid "" "This small piece of electronics can be attached to certain items and " "activate them after receiving a radio signal." msgstr "" -" mod de ativação de rádio Este pequeno pedaço de eletrônica pode ser " -"anexadoa certos itens e ativá-los depois de receber um sinal de rádio." #: lang/json/TOOL_from_json.py msgid "radio (off)" @@ -73852,9 +65308,6 @@ msgid "" "This portable radio is turned on, and continually draining its batteries. " "It is playing the broadcast being sent from any nearby radio towers." msgstr "" -" rádio (ligado) Este rádio portátil está ligado e drenando continuamentesuas" -" baterias. Está tocando a transmissão que está sendo enviada de todasas " -"torres de rádio próximas." #: lang/json/TOOL_from_json.py msgid "two-way radio" @@ -73869,9 +65322,6 @@ msgid "" "someone who also has one. Unfortunately no one seems to use those " "nowadays..." msgstr "" -" rádio bidirecional Este é um rádio com uma unidade de transmissão. " -"Vocêpoderia usá-lo para contatar alguém que também tenha um. " -"Infelizmenteninguém parece usá-los hoje em dia ..." #: lang/json/TOOL_from_json.py msgid "remote vehicle controller" @@ -73885,9 +65335,6 @@ msgid "" "A remote controller for real cars. Can turn onboard devices on and off. " "Some cars can be driven remotely." msgstr "" -" controle remoto do veículo Um controle remoto para carros reais. Pode " -"ligare desligar os dispositivos onboard. Alguns carros podem ser " -"acionadosremotamente." #: lang/json/TOOL_from_json.py msgid "chemistry set" @@ -73902,10 +65349,6 @@ msgid "" "containers, hoses, metal wire, a hotplate, and safety glasses. It might be " "used to craft some chemistry projects if you're so inclined." msgstr "" -" conjunto de química Este é um conjunto de química armazenado em uma caixa. " -"O conteúdo inclui recipientes de vidro, mangueiras, fios de metal, placa " -"deaquecimento e óculos de segurança. Pode ser usado para criar " -"algunsprojetos de química, se você é tão inclinado." #: lang/json/TOOL_from_json.py msgid "basic chemistry set" @@ -73920,10 +65363,6 @@ msgid "" "safety glasses. It might be used to craft some chemistry projects if you're" " so inclined, but you'll need a source of heat." msgstr "" -" Este é um conjunto básico de química que inclui recipientes de vidro, " -"mangueiras e óculos de segurança. Pode ser usado para criar alguns " -"projetosde química, se você estiver inclinado, mas precisará de uma fonte de" -" calor." #: lang/json/TOOL_from_json.py msgid "basic laboratory analysis kit" @@ -73940,12 +65379,6 @@ msgid "" " for thin layer chromatography. This makes it a lot easier to feel " "confident that the chemical you've made is what you think you've made." msgstr "" -" Este kit pesado contém algumas coisas básicas que você provavelmente " -"nãodeve tentar fazer química precisa sem: ou seja, uma pequena escala " -"deequilíbrio, um espectrofotômetro, um aparelho de ponto de fusão, um " -"medidorde pH e um conjunto de papel para cromatografia em camada fina . Isso" -" tornamuito mais fácil se sentir confiante de que o produto químico que " -"vocêcriou é o que você acha que fez." #: lang/json/TOOL_from_json.py msgid "small weight scale" @@ -73959,9 +65392,6 @@ msgid "" "This is a simple scale that uses a set of steel weights on sliding bars to " "measure a sample's mass quite accurately." msgstr "" -" escala de peso pequeno Esta é uma escala simples que usa um conjunto " -"depesos de aço em barras deslizantes para medir a massa de uma amostra " -"combastante precisão." #: lang/json/TOOL_from_json.py msgid "spectrophotometer" @@ -73975,9 +65405,6 @@ msgid "" "This ubiquitous analytical chemistry tool measures the light absorption of a" " liquid sample in a special tube called a cuvette." msgstr "" -" espectrofotômetro Esta ferramenta de química analítica onipresente mede " -"aabsorção de luz de uma amostra líquida em um tubo especial chamado " -"decuvete." #: lang/json/TOOL_from_json.py msgid "set of spectrometry cuvettes" @@ -73991,9 +65418,6 @@ msgid "" "This is a small box filled with precisely calibrated square plastic tubes " "for laboratory spectrometer use." msgstr "" -" conjunto de cuvetes de espectrometria Esta é uma pequena caixa cheia " -"detubos de plástico quadrados precisamente calibrados para uso " -"emespectrômetros de laboratório." #: lang/json/TOOL_from_json.py msgid "pH meter" @@ -74008,9 +65432,6 @@ msgid "" "probe into a calibration solution (conveniently included) and the other in a" " substance, you can calculate the acidity." msgstr "" -" Medidor de pH Este é basicamente um par de sondas de vidro em umvoltímetro." -" Colocando uma sonda em uma solução de calibração(convenientemente incluída)" -" e a outra em uma substância, você pode calculara acidez." #: lang/json/TOOL_from_json.py msgid "voltmeter" @@ -74040,12 +65461,6 @@ msgid "" " measure the melting point of a crystal, a property very useful in " "identifying what it is and how pure it is." msgstr "" -" Aparelho de ponto de fusão É basicamente uma placa quente, com um " -"invólucrometálico preso. O invólucro de metal tem uma janela de visualização" -" deampliação e uma ranhura na qual é inserido um tubo capilar contendo " -"umaamostra cristalizada. O dispositivo permite medir com precisão o ponto " -"defusão de um cristal, uma propriedade muito útil para identificar o que é " -"ecomo é puro." #: lang/json/TOOL_from_json.py msgid "vortex device" @@ -74200,8 +65615,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A portable hydraulic bottle jack used for lifting vehicles." msgstr "" -" jack garrafa Um jack de garrafa hidráulica portátil usado para veículos " -"deelevação." #: lang/json/TOOL_from_json.py msgid "makeshift jack" @@ -74215,8 +65628,6 @@ msgid "" "A poorly constructed improvised scissor jack used for lifting vehicles if " "you're brave enough to use it." msgstr "" -" jack improvisado Um jack scissor improvisado mal construído usado para " -"içarveículos se você for corajoso o suficiente para usá-lo." #: lang/json/TOOL_from_json.py msgid "scissor jack" @@ -74228,7 +65639,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "A compact scissor jack used for lifting vehicles." msgstr "" -" jack scissor Um jack de tesoura compacto usado para veículos de elevação." #: lang/json/TOOL_from_json.py msgid "acetylene torch" @@ -74245,12 +65655,6 @@ msgid "" "appropriate welding gas before use. In addition to its metalworking uses, " "you can activate it in order to destroy metal barriers." msgstr "" -" Tocha de acetileno Um kit de ferramentas compacto destinado a soldagem " -"ecorte de metal, esta tocha de oxiacetileno portátil inclui uma alça detocha" -" e um acessório de corte em um contêiner fácil de transportar. Requera " -"conexão a cilindros pressurizados de um gás de soldagem apropriado antesdo " -"uso. Além de seus usos de metalurgia, você pode ativá-lo para destruiras " -"barreiras de metal." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "jumper cable" @@ -74265,9 +65669,6 @@ msgid "" "stranded copper cable with power leads on either end, whose purpose is to " "share power between vehicles." msgstr "" -" jumper cable Um cabo de jumper, como você já viu várias vezes antes: é " -"umcabo curto de cobre com vários cabos de alimentação em ambas " -"asextremidades, cuja finalidade é compartilhar a potência entre os veículos." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "heavy-duty cable" @@ -74282,10 +65683,6 @@ msgid "" "like you could use it to hook up two vehicles to each other, though you " "expect the power loss would be noticeable." msgstr "" -" cabo para serviço pesado Um cabo longo, espesso e resistente com cabos " -"deenergia nas duas extremidades. Parece que você poderia usá-lo para " -"ligardois veículos uns aos outros, embora você espere que a perda de " -"energiaseja perceptível." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "shiny cable" @@ -74300,10 +65697,6 @@ msgid "" "feather and fits in a matchbook. You're sure this wasn't supposed to exist," " and the way it shimmers makes you uneasy." msgstr "" -" cabo brilhante Este é o cabo dos deuses: 50 metros de comprimento, semperda" -" de potência, leve como uma pena e cabe em uma caixa de fósforos. Vocêtem " -"certeza de que isso não deveria existir, e o jeito que isso faz vocêficar " -"desconfortável." #: lang/json/TOOL_from_json.py msgid "rechargeable battery mod" @@ -74319,11 +65712,6 @@ msgid "" "to provide it with energy. The power cell is not compatible with standard " "batteries; it must be re-energized via a special recharging station." msgstr "" -" mod de bateria recarregável Uma pilha de energia recarregável feita apartir" -" de eletrônicos recuperados. Com habilidade suficiente em eletrônica, você " -"pode conectá-lo a um dispositivo elétrico para fornecer energia. Acélula de " -"energia não é compatível com baterias padrão; deve ser re-energizado através" -" de uma estação especial de recarga." #: lang/json/TOOL_from_json.py msgid "active nail bomb" @@ -74343,8 +65731,6 @@ msgid "" "This is an active nail bomb, likely to explode any second now. Better throw" " it!" msgstr "" -" Esta é uma bomba de unha ativa, que provavelmente explodirá a " -"qualquermomento. Melhor jogá-lo!" #: lang/json/TOOL_from_json.py msgid "Granade" @@ -74358,8 +65744,6 @@ msgid "" "Attached to this grenade is a name tag with the name Kevin written on it. " "Does not seem to work like a grenade, handle with care." msgstr "" -" Granade Anexado a esta granada está um crachá com o nome Kevin escritonele." -" Não parece funcionar como uma granada, manuseie com cuidado." #: lang/json/TOOL_from_json.py msgid "active Granade" @@ -74373,9 +65757,6 @@ msgid "" "Attached to this grenade is a name tag with the name Kevin written on it. " "Does not seem to work like a grenade, handle with care. Better throw it!" msgstr "" -" Granade ativa Anexada a esta granada está um crachá com o nome Kevinescrito" -" nele. Não parece funcionar como uma granada, manuseie com cuidado. Melhor " -"jogá-lo!" #: lang/json/TOOL_from_json.py msgid "precision solderers" @@ -74717,8 +66098,6 @@ msgid "" "Seems like some kind of Genetic Lifeform and Disk Operating System, attached" " to a potato." msgstr "" -" batata companheira Parece algum tipo de Forma Genética e SistemaOperacional" -" de Disco, ligado a uma batata." #: lang/json/TOOL_from_json.py msgid "owlbear gastrolith" @@ -74920,33 +66299,28 @@ msgid "" "the pommel seem to be made out of a brighter material, which feels " "abnormally cool to the touch." msgstr "" -" Dusk Uma espada longa, feita de um metal muito escuro, quase preto. " -"Pareceter uma vantagem maior do que as lâminas de aço usuais e se sente ... " -"maisconfortável na mão. Enquanto a lâmina é feita deste metal escuro, " -"ocrossguard e o pomo parecem ser feitos de um material mais brilhante, quese" -" sente anormalmente frio ao toque." #. ~ Use action use_message for disarmed defense turret. #. ~ Use action use_message for disarmed military turret. #. ~ Use action use_message for disarmed advanced turret. #: lang/json/TOOL_from_json.py msgid "Error. No weapon systems found." -msgstr "Erro. Nenhum sistema de armas encontrado." +msgstr "" #. ~ Description for disarmed defense turret #: lang/json/TOOL_from_json.py msgid "An automated defense turret. It lacks an integrated weapon." -msgstr "Uma torre de defesa automatizada. Não tem uma arma integrada." +msgstr "" #. ~ Description for disarmed military turret #: lang/json/TOOL_from_json.py msgid "An automated military turret. It lacks an integrated weapon." -msgstr "Uma torre militar automatizada. Não tem uma arma integrada." +msgstr "" #. ~ Description for disarmed advanced turret #: lang/json/TOOL_from_json.py msgid "An advanced automated turret. It lacks an integrated weapon." -msgstr "Uma torre automatizada avançada. Não tem uma arma integrada." +msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive 9mm defense turret" @@ -74962,11 +66336,6 @@ msgid "" "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 "" -" torre de defesa inativa de 9 mm Uma torre de defesa inativa de 9 mm. Até100" -" rodadas padrão de 9mm serão carregadas automaticamente do seuinventário " -"para a torre após a ativação. Coloque a torre e ela seráidentificada como " -"amigável com o seu avançado software IFF. Consulte o seumanual de segurança " -"em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive shotgun defense turret" @@ -74982,11 +66351,6 @@ msgid "" "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 "" -" inactive shotgun defense tower Uma torre de defesa de espingarda inativa. " -"Até 100 cartuchos padrão 12ga serão carregados automaticamente do " -"seuinventário para a torre após a ativação. Coloque a torre e ela " -"seráidentificada como amigável com o seu avançado software IFF. Consulte o " -"seumanual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive riot control turret" @@ -75003,11 +66367,6 @@ msgid "" "with its advanced IFF software. Consult your safety manual in the event of " "a malfunction." msgstr "" -" Torre de controle de distúrbios inativos Uma torre de controle de " -"rotainativa. Até 50 caixas padrão de 40mm a menos do que letais " -"serãoautomaticamente carregadas do seu inventário para a torre após a " -"ativação. Coloque a torre e ela será identificada como amigável com o seu " -"avançadosoftware IFF. Consulte o seu manual de segurança em caso de avaria." #. ~ Description for inactive riot control turret #: lang/json/TOOL_from_json.py @@ -75018,11 +66377,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" Uma torre de controle de distúrbios inativa. Até 50 caixas de " -"gáslacrimogêneo padrão de 40 mm serão carregadas automaticamente do " -"seuinventário para a torre após a ativação. Coloque a torre e ela " -"seráidentificada como amigável com o seu avançado software IFF. Consulte o " -"seumanual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive 5.56mm military turret" @@ -75039,11 +66393,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" Torre militar inativa de 5,56 mm Uma torre militar inativa de 5,56 mm. " -"Até100 rodadas padrão da OTAN de 5.56mm serão carregadas automaticamente " -"doseu inventário para a torre após a ativação. Coloque a torre e ela " -"seráidentificada como amigável com o seu avançado software IFF. Consulte o " -"seumanual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive 7.62mm military turret" @@ -75060,11 +66409,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" Torre militar inativa de 7,62 mm Torre militar inativa de 7,62 mm. Até " -"100rodadas padrão da OTAN de 7.62mm serão carregadas automaticamente do " -"seuinventário para a torre após a ativação. Coloque a torre e ela " -"seráidentificada como amigável com o seu avançado software IFF. Consulte o " -"seumanual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive 50 caliber military turret" @@ -75081,11 +66425,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" inativo 50 caliber military turret Uma torre militar de 50 calibresinativa." -" Até 100 rodadas padrão de 50 calibres serão automaticamentecarregadas do " -"seu inventário para a torre após a ativação. Coloque a torree ela será " -"identificada como amigável com o seu avançado software IFF. Consulte o seu " -"manual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive military needle turret" @@ -75102,11 +66441,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" Torre de agulha militar inativa Uma torre de agulha avançada inativa. " -"Até100 voltas de flechette padrão de 5x50 mm serão carregadas " -"automaticamentedo seu inventário para a torre após a ativação. Coloque a " -"torre e ela seráidentificada como amigável com o seu avançado software IFF. " -"Consulte o seumanual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive military 8x40mm turret" @@ -75123,11 +66457,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" Torre inativa militar 8x40mm Uma torre inativa avançada 8x40mm. Até " -"100rodadas padrão de 8x40mm serão carregadas automaticamente do seu " -"inventáriopara a torre após a ativação. Coloque a torre e ela será " -"identificada comoamigável com o seu avançado software IFF. Consulte o seu " -"manual desegurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive military 40mm grenade turret" @@ -75144,11 +66473,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" Torre de granada de 40 mm militar inativa Uma torre de granada " -"militarinativa. Até 50 granadas de fragmentação padrão de 40 mm serão " -"carregadasautomaticamente do seu inventário para a torre após a ativação. " -"Coloque atorre e ela será identificada como amigável com o seu avançado " -"softwareIFF. Consulte o seu manual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive military flamethrower turret" @@ -75164,11 +66488,6 @@ msgid "" "turret and it will ID you as friendly with its advanced IFF software. " "Consult your safety manual in the event of a malfunction." msgstr "" -" Torre de lança-chamas militar inativa Uma torre de chama inativa. Até " -"100unidades de napalm serão automaticamente carregadas do seu inventário " -"paraa torre após a ativação. Coloque a torre e ela será identificada " -"comoamigável com o seu avançado software IFF. Consulte o seu manual " -"desegurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive advanced laser turret" @@ -75183,9 +66502,6 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" -" Torre de laser avançada inativa Uma torre de laser avançada inativa. " -"Coloque a torre e ela será identificada como amigável com o seu " -"avançadosoftware IFF. Consulte o seu manual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive advanced plasma turret" @@ -75200,9 +66516,6 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" -" Torre de plasma avançada inativa Uma torre de plasma avançada inativa. " -"Coloque a torre e ela será identificada como amigável com o seu " -"avançadosoftware IFF. Consulte o seu manual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive advanced railgun turret" @@ -75219,11 +66532,6 @@ msgid "" "advanced IFF software. Consult your safety manual in the event of a " "malfunction." msgstr "" -" inactive advanced railgun turret Uma torre de railgun inativa avançada. " -"Até50 projéteis de trilho padrão serão carregados automaticamente de " -"seuinventário para a torre após a ativação. Coloque a torre e ela " -"seráidentificada como amigável com o seu avançado software IFF. Consulte o " -"seumanual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive advanced acid turret" @@ -75238,9 +66546,6 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" -" torreta de ácido avançado inativo Uma torrente de ácido avançado inativa. " -"Coloque a torre e ela será identificada como amigável com o seu " -"avançadosoftware IFF. Consulte o seu manual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive advanced EMP turret" @@ -75255,9 +66560,6 @@ msgid "" "friendly with its advanced IFF software. Consult your safety manual in the " "event of a malfunction." msgstr "" -" Torreta EMP avançada inativa Uma torre EMP avançada inativa. Coloque atorre" -" e ela será identificada como amigável com o seu avançado softwareIFF. " -"Consulte o seu manual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py msgid "inactive advanced electro turret" @@ -75272,9 +66574,6 @@ msgid "" " friendly with its advanced IFF software. Consult your safety manual in the" " event of a malfunction." msgstr "" -" inativo advanced electro turret Uma torre eletrônica inativa avançada. " -"Coloque a torre e ela será identificada como amigável com o seu " -"avançadosoftware IFF. Consulte o seu manual de segurança em caso de avaria." #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "garden gnome" @@ -75288,8 +66587,6 @@ msgid "" "A normal and completely harmless garden gnome. You can place him in your " "garden or elsewhere." msgstr "" -" gnomo de jardim Um gnomo de jardim normal e completamente inofensivo. " -"Vocêpode colocá-lo em seu jardim ou em outro lugar." #: lang/json/TOOL_from_json.py msgid "gaurdin gnome" @@ -75303,8 +66600,6 @@ msgid "" "A normal and completely harmless garden gnome. He holds up to 100 rounds of" " 9mm ammo." msgstr "" -" gaurdin gnome Um gnomo de jardim normal e completamente inofensivo. " -"Eledetém até 100 cartuchos de munição de 9mm." #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" @@ -75320,16 +66615,13 @@ 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 "" -" pequeno lote de leite coagulado O leite parece ter acabado de coagular " -"eestá pronto para ser processado. Verificar sobre ele expôs a mistura para " -"aatmosfera." #. ~ Use action not_ready_msg for small batch of curdling milk. #. ~ Use action not_ready_msg for batch of curdling milk. #. ~ Use action not_ready_msg for large batch of curdling milk. #: lang/json/TOOL_from_json.py msgid "The milk is still curdling." -msgstr "O leite ainda está coalhando." +msgstr "" #. ~ Description for small batch of curdling milk #: lang/json/TOOL_from_json.py @@ -75337,9 +66629,6 @@ 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 "" -" Um sabugo de água pequeno selado cheio de leite que está passando " -"peloprocesso para se tornar uma forma crua de queijo, tendo adicionado " -"vinagree coalho natural." #: lang/json/TOOL_from_json.py msgid "batch of curdling milk" @@ -75353,9 +66642,6 @@ 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 "" -" lote de leite coalhado Um odre lacrado cheio de leite que está passandopelo" -" processo para se tornar uma forma crua de queijo, tendo adicionadovinagre e" -" coalho natural." #: lang/json/TOOL_from_json.py msgid "large batch of curdling milk" @@ -75369,9 +66655,6 @@ 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 "" -" Um lote grande de leite coagulado Um grande recheio lacrimogêneo " -"seladocheio de leite que está passando pelo processo para se tornar uma " -"formacrua de queijo, tendo adicionado vinagre e coalho natural." #: lang/json/TOOL_from_json.py msgid "heavy snare kit" @@ -75383,7 +66666,7 @@ msgstr[1] "" #. ~ Use action done_message for light snare kit. #: lang/json/TOOL_from_json.py msgid "You set the snare trap." -msgstr "kit de laço pesado Você define a armadilha da caixa." +msgstr "" #. ~ Description for heavy snare kit #: lang/json/TOOL_from_json.py @@ -75391,9 +66674,6 @@ 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 "" -" Este é um kit para uma armadilha simples que consiste em um laço de corda " -"eum gatilho de caixa. Requer uma árvore próxima. É eficaz em " -"capturarmonstros." #: lang/json/TOOL_from_json.py msgid "light snare kit" @@ -75408,9 +66688,6 @@ msgid "" "trigger. It requires a young tree nearby. It is effective at trapping and " "killing some small animals." msgstr "" -" kit de laço leve Este é um kit para uma armadilha simples que consiste emum" -" laço de corda e um gatilho de laço. Requer uma árvore jovem por perto. " -"Éeficaz em capturar e matar alguns pequenos animais." #: lang/json/TOOL_from_json.py msgid "snare trigger" @@ -75423,8 +66700,6 @@ msgstr[1] "" msgid "" "This is a stick that has been cut into a trigger mechanism for a snare trap." msgstr "" -" snare trigger Este é um stick que foi cortado em um mecanismo de " -"gatilhopara uma armadilha de caixa." #: lang/json/TOOL_from_json.py msgid "Laevateinn" @@ -75438,8 +66713,6 @@ 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 "" -" Laevateinn Uma réplica de Laevateinn, a espada de Freyr. Há rumores de queé" -" possível lutar sozinho. Está decorado com ornamentos de ouro e prata." #: lang/json/TOOL_from_json.py msgid "inactive craftbuddy" @@ -75453,9 +66726,6 @@ msgid "" "A robot crafting assistant. Useable in its current state as a portable " "workbench, or deployable as a traveling companion." msgstr "" -" inactive craftbuddy Um assistente de criação de robôs. Utilizável em " -"seuestado atual como uma bancada de trabalho portátil ou implantável como " -"umcompanheiro de viagem." #. ~ Description for light auto armor #. ~ Description for basic auto armor @@ -75465,9 +66735,6 @@ 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 "" -" Um conjunto de armaduras elétricas leves equipadas com um núcleo AI parauso" -" automatizado. Ative-o para desdobrar o robô ou desmontá-lo para usarcomo " -"armadura." #: lang/json/TOOL_from_json.py msgid "basic auto armor" @@ -75491,13 +66758,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "The floating lantern flies from your hand and lights up the area!" msgstr "" -" armadura básica auto inativo hack inactive floating lamp A " -"lanternaflutuante voa da sua mão e ilumina a área!" #. ~ Use action hostile_msg for inactive floating lantern. #: lang/json/TOOL_from_json.py msgid "You misprogram the lantern." -msgstr "Você misprogram a lanterna." +msgstr "" #. ~ Description for inactive floating lantern #: lang/json/TOOL_from_json.py @@ -75507,9 +66772,6 @@ msgid "" "aggressive and has no means of attack. Activate this item to deploy the " "salvaged robot." msgstr "" -" Uma lanterna flutuante inativa, um robô do tamanho de um punho que voa " -"peloar e ilumina o ambiente com LEDs brilhantes. A lanterna não é agressiva " -"enão tem meios de ataque. Ative este item para implantar o robô recuperado." #: lang/json/TOOL_from_json.py msgid "inactive distract-o-hack" @@ -75521,12 +66783,11 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "The distract-o-hack flies from your hand and begins sparking!" msgstr "" -" distrair-o-hack inativo O distrair-o-hack voa de sua mão e começa aacender!" #. ~ Use action hostile_msg for inactive distract-o-hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the distract-o-hack!" -msgstr "Você misprogram o distract-o-hack!" +msgstr "" #. ~ Description for inactive distract-o-hack #: lang/json/TOOL_from_json.py @@ -75536,10 +66797,6 @@ msgid "" "will harass hostile targets to draw their attention. Activate this item to " "deploy the robot. It cannot be recovered once activated." msgstr "" -" Um distract-o-hack inativo, um robô do tamanho de um punho que voa " -"atravésdo ar emitindo ruído, fumaça e faíscas. O robô recuperado não tem " -"armas, mas vai atacar alvos hostis para chamar sua atenção. Ative este item " -"paraimplantar o robô. Não pode ser recuperado depois de ativado." #: lang/json/TOOL_from_json.py msgid "inactive arson hack" @@ -75550,12 +66807,12 @@ 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 "inactive arson hack O incêndio criminoso voa da sua mão! Fique claro!" +msgstr "" #. ~ Use action hostile_msg for inactive arson hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the arson hack! Run!" -msgstr "Você misprogram o incêndio criminoso! Corre!" +msgstr "" #. ~ Description for inactive arson hack #: lang/json/TOOL_from_json.py @@ -75566,11 +66823,6 @@ msgid "" "Activate this item to deploy the robot. It cannot be recovered once " "activated." msgstr "" -" Um incêndio criminoso inativo, um robô do tamanho de um punho que voa " -"peloar espalhando caoticamente incêndios mortais. O robô resgatado não " -"temarmas, mas emitirá rajadas intermitentes de chamas enquanto se move " -"emdireção a alvos hostis. Ative este item para implantar o robô. Não pode " -"serrecuperado depois de ativado." #: lang/json/TOOL_from_json.py msgid "inactive spore hack" @@ -75581,12 +66833,12 @@ 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 "spore inativo hack O spore hack voa da sua mão!" +msgstr "" #. ~ Use action hostile_msg for inactive spore hack. #: lang/json/TOOL_from_json.py msgid "You misprogram the spore hack!" -msgstr "Você misprogram o corte de esporos!" +msgstr "" #. ~ Description for inactive spore hack #: lang/json/TOOL_from_json.py @@ -75596,10 +66848,6 @@ msgid "" "intermittently cover the terrain with puffs of fungal spores. Activate this" " item to deploy the robot." msgstr "" -" Um esporo inativo, um robô do tamanho de um punho que voa pelo arespalhando" -" contaminantes alienígenas. O robô jogará poeira em alvos hostise cobrirá " -"intermitentemente o terreno com baforadas de esporos fúngicos. Ative este " -"item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive water turret" @@ -75615,10 +66863,6 @@ msgid "" "Place the turret and it will ID you as friendly with its advanced IFF " "software. There is no safety manual." msgstr "" -" Torre de água inativa Uma torre de defesa inativa watercannon. Até " -"1000unidades de água serão automaticamente carregadas do seu inventário para" -" atorre após a ativação. Coloque a torre e ela será identificada " -"comoamigável com o seu avançado software IFF. Não há manual de segurança." #: lang/json/TOOL_from_json.py msgid "inactive floating heater" @@ -75633,10 +66877,6 @@ msgid "" "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 "" -" aquecedor flutuante inactivo eyebot inactivo Um eyebot " -"recuperadoreaproveitado num aquecedor flutuante. Emite um jato constante de " -"ar quentepara aquecer um espaço fechado. Não é agressivo e não possui " -"sistemas dearmas. Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive floating furnace" @@ -75652,10 +66892,6 @@ msgid "" "aggressive and has no weapons systems. Activate this item to deploy the " "robot." msgstr "" -" forno flutuante inativo Um eyebot recuperado reaproveitado em um " -"aquecedorflutuante. Emite um jato constante de ar perigosamente quente para " -"aquecerum espaço fechado. Não é agressivo e não possui sistemas de armas. " -"Ativeeste item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive burning eye" @@ -75669,8 +66905,6 @@ msgid "" "A salvaged eyebot refitted with a laser weapon which it will use on hostile " "targets. Activate this item to deploy the robot." msgstr "" -" olho ardente inativo Um protetor de olhos recuperado com uma arma laser " -"queserá usada em alvos hostis. Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive utilibot" @@ -75692,11 +66926,6 @@ msgid "" "this item to deploy the robot and begin the incubation process, but you " "probably shouldn't." msgstr "" -" inativo utilibot inativo criador blob Um robô utilitário " -"recuperadoconvertido em uma incubadora móvel para o blob alien. Não é " -"agressivo e nãopossui sistemas de armas. Você pode ativar este item para " -"implantar o robôe iniciar o processo de incubação, mas provavelmente você " -"não deveria." #: lang/json/TOOL_from_json.py msgid "inactive slime breeder" @@ -75712,11 +66941,6 @@ msgid "" "and has no weapon systems. You can activate this item to deploy the robot " "and begin the incubation process." msgstr "" -" criador de lodo inativo Um robô de utilidade recuperado convertido em " -"umaincubadora móvel para a bolha alienígena, e atualizado para " -"produzirsomente limos amigáveis. Não é agressivo e não possui sistemas de " -"armas. Você pode ativar este item para implantar o robô e iniciar o processo" -" deincubação." #: lang/json/TOOL_from_json.py msgid "inactive digestron" @@ -75732,10 +66956,6 @@ msgid "" "reserves. It is non aggressive and has no weapon systems. Activate this " "item to deploy the robot." msgstr "" -" digestron inativo Um robô utilitário recuperado convertido em um " -"aspiradorautomatizado. Ele vai sugar itens perdidos do chão e dissolvê-los " -"com suasreservas internas de ácido. Não é agressivo e não possui sistemas de" -" armas. Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive bee-bot" @@ -75752,11 +66972,6 @@ msgid "" "Activate this item, with wooden bolts in your inventory, to load and deploy " "the robot." msgstr "" -" bee-bot inativo Um robô utilitário recuperado convertido em uma " -"colméiaambulatorial que periodicamente remove e entrega segmentos de pente " -"de melfresco. Ele protege a colônia de insetos com uma besta mecânica " -"montada emseu chassi. Ative este item, com parafusos de madeira no seu " -"inventário, para carregar e implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive medibot" @@ -75777,10 +66992,6 @@ msgid "" "hostile targets with a set of blades and a toxic needle. Activate this item" " to deploy the robot." msgstr "" -" inactive medibot robô assassino inativo Um robô médico " -"recuperadoreaproveitado em uma máquina de assassinato. Ele atacará alvos " -"hostis comum conjunto de lâminas e uma agulha tóxica. Ative este item para " -"implantaro robô." #: lang/json/TOOL_from_json.py msgid "inactive elixirator" @@ -75794,9 +67005,6 @@ msgid "" "A salvaged medibot with its internal pharma-fabricators repurposed to " "produce mutagen. Activate this item to deploy the robot." msgstr "" -" elixirator inativo Um medibot recuperado com seus fármacos " -"internosreaproveitados para produzir mutagênico. Ative este item para " -"implantar orobô." #: lang/json/TOOL_from_json.py msgid "inactive party bot" @@ -75811,9 +67019,6 @@ msgid "" "lights, and programmed to dance. Activate this item to get the party " "started." msgstr "" -" bot inativo de festa Um medibot recheado recheado com maconha, coberto " -"deluzes intermitentes multicoloridas e programado para dançar. Ative " -"esteitem para iniciar a festa." #: lang/json/TOOL_from_json.py msgid "inactive rat snatcher" @@ -75828,9 +67033,6 @@ msgid "" "with pincers and an integrated tazer. Activate this item to deploy the " "robot." msgstr "" -" skitterbot inativo snatcher de rato inativo Um skitterbot " -"recuperadoreaproveitado para caçar caça pequena. Ele ataca alvos com pinças " -"e umtazer integrado. Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive grab-bot" @@ -75844,8 +67046,6 @@ msgid "" "A salvaged skitterbot repurposed to grab onto and immobilize enemies. " "Activate this item to deploy the robot." msgstr "" -" inactive grab-bot Um skitterbot recuperado reaproveitado para agarrar " -"eimobilizar inimigos. Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive pest hunter" @@ -75859,9 +67059,6 @@ 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 "" -" caçador inativo de pragas Um skitterbot recuperado foi reformado com " -"umaarma de fogo integrada de 8mm. Ative este item, com munição em " -"seuinventário, para carregar e implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive cyborg" @@ -75882,9 +67079,6 @@ msgid "" "animate head retains some of its ability to revive zombies. Activate this " "item to deploy the robot." msgstr "" -" cyborg inativo cyborg inativo necrótico Um cyborg recuperado com a cabeçade" -" um necromante zumbi. A cabeça animada mantém algumas de suas " -"habilidadespara reviver zumbis. Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive defense robot" @@ -75905,9 +67099,6 @@ msgid "" " Activate this item, with ammo in your inventory, to load and deploy the " "robot." msgstr "" -" inactivo defesa robô inactivo ferro-velho vaqueiro Um robô de " -"defesarecuperado equipado com uma espingarda e duas serras circulares. Ative" -" esteitem, com munição em seu inventário, para carregar e implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive shortcircuit samurai" @@ -75921,9 +67112,6 @@ msgid "" "A salvaged defense robot refitted with an integrated tazer and two " "electrified blades. Activate this item to deploy the robot." msgstr "" -" samurai de curto-circuito inativo Um robô de defesa recuperado equipado " -"comum tazer integrado e duas lâminas eletrificadas. Ative este item " -"paraimplantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive slapdash paladin" @@ -75938,10 +67126,6 @@ msgid "" "searing hot blades. Activate this item, with gasoline in your inventory, to" " load and deploy the robot... preferably far from anything flammable" msgstr "" -" Um paladino de defesa recuperado foi reformado com um lança-chamas caseiroe" -" duas lâminas quentes. Ative este item, com gasolina em seu inventário, para" -" carregar e implantar o robô ... de preferência longe de qualquer " -"coisainflamável" #: lang/json/TOOL_from_json.py msgid "inactive military robot" @@ -75956,9 +67140,6 @@ msgid "" "electric prod. Activate this item, with ammo in your inventory, to load and" " deploy the robot." msgstr "" -" robot militar inactivo Um robot militar não motorizado equipado com umaarma" -" de fogo 7.62 integrada e um gerador eléctrico. Ative este item, communição " -"em seu inventário, para carregar e implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive robo-guardian" @@ -75973,9 +67154,6 @@ msgid "" "Activate this item, with ammo in your inventory, to load and deploy the " "robot." msgstr "" -" inativo robo-gaurdian Um robô militar resgatado reformado com um par " -"dearmas de fogo integradas de 9mm. Ative este item, com munição em " -"seuinventário, para carregar e implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive robote deluxe" @@ -75991,11 +67169,6 @@ msgid "" "apocalypse in style. Activate this item, with ammo in your inventory, to " "load and deploy the robot." msgstr "" -" inativo robote deluxe Um robô banhado a ouro cravejado de diamantes " -"armadocom um par de armas de fogo integradas de 9mm. Um luxo opulento- " -"botadequado para aqueles que desejam sobreviver ao apocalipse em " -"grandeestilo. Ative este item, com munição em seu inventário, para carregar " -"eimplantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive robo-protector" @@ -76010,9 +67183,6 @@ msgid "" "Activate this item, with ammo in your inventory, to load and deploy the " "robot." msgstr "" -" robo-protetor inativo Um robô militar resgatado reformado com um " -"rifleintegrado de 5.56mm. Ative este item, com munição em seu inventário, " -"paracarregar e implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive robo-defender" @@ -76026,9 +67196,6 @@ 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 "" -" robo-defensor inativo Um robô militar resgatado reformado com um rifle50bmg" -" integrado. Ative este item, com munição em seu inventário, paracarregar e " -"implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive advanced robot" @@ -76049,10 +67216,6 @@ msgid "" " It attacks hostile targets with its two integral lasers and blinding " "flashes. Activate this item to deploy the robot." msgstr "" -" inativo avançado robô inativo resplandecente senhora Um robô " -"avançadorecuperado transformado em um farol luminoso de destruição. Ataca " -"alvoshostis com seus dois lasers integrais e flashes ofuscantes. Ative este " -"itempara implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive bitter spinster" @@ -76067,9 +67230,6 @@ msgid "" "acid fermenter feeds a ranged glob spitter and sprayer. Activate this item " "to deploy the robot." msgstr "" -" solteira amarga inativa Um robô militar recuperado transformado em " -"ummonstro cáustico. Um fermentador ácido interno alimenta um spitter " -"globglob e pulverizador. Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive chickenwalker" @@ -76091,10 +67251,6 @@ msgid "" "chainsaws and a deafening sound system. Activate this item to deploy the " "robot." msgstr "" -" inactivo chickenwalker inactivo motosserra horror A recuperadochickenwalker" -" modificado em um monstro horrível adornado com caveiras epicos. Ataca alvos" -" hostis com um par de motosserras zunindo e um sistema desom ensurdecedor. " -"Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive screeching terror" @@ -76110,10 +67266,6 @@ msgid "" "lances and a deafening sound system. Activate this item to deploy the " "robot." msgstr "" -" Um terrorista recuperado modificado em um horrível monstro adornado " -"comcaveiras e espinhos. Ataca alvos hostis com um par de lanças movidas " -"apistão e um sistema de som ensurdecedor. Ative este item para implantar " -"orobô." #: lang/json/TOOL_from_json.py msgid "inactive hooked nightmare" @@ -76129,10 +67281,6 @@ msgid "" " on chains and a deafening sound system. Activate this item to deploy the " "robot." msgstr "" -" pesadelo inativo viciado Um caminhante de galos resgatado modificado em " -"ummonstro horrível adornado com crânios e picos. Ataca alvos hostis com " -"umpar de ganchos giratórios em correntes e um sistema de som ensurdecedor. " -"Ative este item para implantar o robô." #: lang/json/TOOL_from_json.py msgid "inactive tankbot" @@ -76154,10 +67302,6 @@ msgid "" "it uses to crush anything in its way, including buildings. Activate this " "item to deploy the robot." msgstr "" -" inactive tankbot inactive fist king Um tankbot recuperado equipado com " -"umpar de poderosos martelos pneumáticos que ele usa para esmagar " -"qualquercoisa em seu caminho, incluindo edifícios. Ative este item para " -"implantar orobô." #: lang/json/TOOL_from_json.py msgid "inactive atomic sultan" @@ -76174,12 +67318,12 @@ msgstr[1] "" #. ~ Use action msg for active glowball. #: lang/json/TOOL_from_json.py msgid "The glowball goes dim." -msgstr "sultão atômico inativo glowball ativo O glowball vai escurecer." +msgstr "" #. ~ Description for active glowball #: lang/json/TOOL_from_json.py msgid "A small plastic ball filled with glowing chemicals." -msgstr "Uma pequena bola de plástico cheia de produtos químicos brilhantes." +msgstr "" #: lang/json/TOOL_from_json.py msgid "growing blob frame" @@ -76192,13 +67336,11 @@ msgstr[1] "" msgid "" "You test the frame; It wiggles, and then collapses into an lump of goo." msgstr "" -" quadro de blob crescente Você testa o quadro; Ele balança e depois cai emum" -" pedaço de gosma." #. ~ Use action not_ready_msg for growing blob frame. #: lang/json/TOOL_from_json.py msgid "You test the frame; it gives easily, it's still not sturdy enough" -msgstr "Você testa o quadro; dá facilmente, ainda não é robusto o suficiente" +msgstr "" #. ~ Description for growing blob frame #: lang/json/TOOL_from_json.py @@ -76207,9 +67349,6 @@ msgid "" " though there's greater amounts on the bindings. It's not quite tough " "enough to use." msgstr "" -" Um quadro de veículo crescente feito de osso. É revestido em uma " -"espessacamada de limo, embora haja maiores quantidades nas ligações. Não é " -"bemdifícil de usar." #: lang/json/TOOL_from_json.py msgid "growing keratinous mass" @@ -76239,7 +67378,7 @@ msgstr[1] "" #. ~ Use action msg for growing electrified mass. #: lang/json/TOOL_from_json.py msgid "The blob balloons to full size." -msgstr "massa queratinosa crescente Os balões blob em tamanho real." +msgstr "" #. ~ Use action not_ready_msg for growing keratinous mass. #. ~ Use action not_ready_msg for growing beaded mass. @@ -76263,7 +67402,7 @@ msgstr "massa queratinosa crescente Os balões blob em tamanho real." #. ~ Use action not_ready_msg for growing electrified mass. #: lang/json/TOOL_from_json.py msgid "Whatever it's doing, it's not done yet." -msgstr "O que quer que esteja fazendo, ainda não está pronto." +msgstr "" #. ~ Description for growing keratinous mass #. ~ Description for growing beaded mass @@ -76289,8 +67428,6 @@ msgstr "O que quer que esteja fazendo, ainda não está pronto." msgid "" "Not quite fully grown, this blob requires nourishment to fully develop." msgstr "" -" Não totalmente crescido, esta bolha requer nutrição para se " -"desenvolvercompletamente." #: lang/json/TOOL_from_json.py msgid "growing beaded mass" @@ -76318,12 +67455,6 @@ msgid "" "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 "" -" massa crescente de contas geleira de massa gelada crescente Um " -"mistériobiológico, as estruturas internas dessa bolha existem dentro de um " -"conjuntode fluido de baixa densidade que permanece líquido apesar de estar " -"em umestado super-resfriado; ainda possui toda a maleabilidade do seu antigo" -" eu. Fragmentos de gelo continuamente se desprendem dele. Parece flexível " -"osuficiente para separar ..." #: lang/json/TOOL_from_json.py msgid "growing cold mass" @@ -76343,8 +67474,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "You fumble as the blob starts to multiply rapidly!" msgstr "" -" crescendo massa fria crescendo massa peluda Você se atrapalha quando abolha" -" começa a se multiplicar rapidamente!" #. ~ Description for gelatinous mass #: lang/json/TOOL_from_json.py @@ -76358,14 +67487,6 @@ msgid "" "shape even under force, though the mass yields at your touch. With enough " "strength, you think you can pull it apart." msgstr "" -" Um experimento deu terrivelmente certo. Enquanto a intenção original " -"eracombinar a estrutura de uma armação de osso com a absorção de impacto " -"dabolha; a bolha parece ter consumido completamente o osso. Em vez disso, " -"oque resta é uma massa amorfa de gosma com o que parece ser váriosfilamentos" -" finos flutuando dentro dela. Com um pouco de esforço, você podeagarrar as " -"fibras e esticar a massa em uma infinidade de formas. A massa écapaz de " -"reter a nova forma mesmo sob força, embora a massa ceda ao seutoque. Com " -"força suficiente, você acha que pode separá-lo." #: lang/json/TOOL_from_json.py msgid "multiplying gelatinous mass" @@ -76381,7 +67502,7 @@ msgstr[1] "" #. ~ Use action hostile_msg for multiplying oozing mass. #: lang/json/TOOL_from_json.py msgid "A blob splits and bounces away!" -msgstr "multiplicando massa gelatinosa Um blob divide e salta!" +msgstr "" #. ~ Description for multiplying gelatinous mass #. ~ Description for multiplying gray mass @@ -76393,10 +67514,6 @@ msgid "" "until whatever it's doing is done! Catch those blobs before they bring in " "every zombie for miles!" msgstr "" -" Tendo sido alimentado, esta bolha está agora rapidamente se multiplicandoem" -" outras cópias de si mesma; cópias extremamente barulhentas! E, piorainda, " -"está preso às suas mãos até que seja feito o que estiver fazendo!Pegue essas" -" bolhas antes que eles tragam cada zumbi por milhas!" #: lang/json/TOOL_from_json.py msgid "growing gelatinous mass" @@ -76420,13 +67537,6 @@ msgid "" "hardening its membrane to an almost steel-hard shell. You can still pull it" " apart with enough force. It's also really gray." msgstr "" -" massa gelatinosa crescente massa crescente brilhante As estruturas " -"internasdesta criatura se desenvolveram significativamente. Mantendo a " -"resiliênciae maleabilidade da sua forma mais simples, ganhou as " -"habilidadesconsideráveis de percepção e resposta de estímulo. Quando " -"diretamenteameaçada, é capaz de mudar e alterar suas microfibras, " -"endurecendo suamembrana para uma concha quase dura como aço. Você ainda pode" -" separá-lo comforça suficiente. Também é muito cinza." #: lang/json/TOOL_from_json.py msgid "multiplying gray mass" @@ -76474,14 +67584,6 @@ msgid "" " strength due to the increased number of supporting filaments. You believe " "you can split it apart with enough force." msgstr "" -" massa cinzenta em multiplicação massa em massa cinzenta em crescimentomassa" -" em massa com espigão crescente massa acumulada em gasolina massaácida em " -"crescimento massa em ebulição Massa amorfa que sofreu umcrescimento " -"significativo. Além do aumento da quantidade de filamentosviscosos e " -"sinuosos, parece ter começado a desenvolver outras estruturasinternas. Como " -"sua contrapartida menor, pode ser moldada em váriasestruturas; embora com " -"resistência à tração significativamente maior devidoao aumento do número de " -"filamentos de suporte. Você acredita que podedividi-lo com força suficiente." #: lang/json/TOOL_from_json.py msgid "multiplying oozing mass" @@ -76553,11 +67655,6 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "The cluster comes apart in your hands." msgstr "" -" multiplicando exsudação massa crescente escoamento crescente massa " -"degavinhas crescendo espiga massa crescendo espinhoso massa " -"crescendoespinhosa massa crescendo massa brilhante crescendo massa viscosa " -"crescendomassa morna crescendo eletrificada massa diamante cluster O " -"aglomerado sedesfaz em suas mãos." #. ~ Description for diamond cluster #: lang/json/TOOL_from_json.py @@ -76566,10 +67663,6 @@ msgid "" "While the substance usually decays when separated from the catalyst; this " "cluster seems to be self-sustaining by some unknown mechanism. " msgstr "" -" Um aglomerado de cristais artificiais que se desprenderam de uma matriz " -"dediamante. Enquanto a substância geralmente se decompõe quando separada " -"docatalisador; esse aglomerado parece ser auto-sustentável por " -"algummecanismo desconhecido." #: lang/json/TOOL_from_json.py msgid "diamond matrix" @@ -76582,8 +67675,6 @@ msgstr[1] "" msgid "" "Your senses dull as you gaze into the depths of this gemstone's center..." msgstr "" -" matriz de diamantes Seus sentidos ficam embaçados quando você olha para " -"asprofundezas do centro desta pedra preciosa ..." #. ~ Description for diamond matrix #: lang/json/TOOL_from_json.py @@ -76591,8 +67682,6 @@ msgid "" "A sparkling diamond with a dazzling spiral pattern. Small pieces of " "glittering crystal form on the edges as you hold it." msgstr "" -" Um diamante cintilante com um padrão espiral deslumbrante. Pequenos " -"pedaçosde cristais brilhosos nas bordas enquanto você os segura." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex engine" @@ -76609,11 +67698,6 @@ msgid "" "map. An external mechanism allows it to be attached to a vehicle to render " "it mobile." msgstr "" -" motor de vórtice Um tornado em uma caixa, por assim dizer. Dentro " -"destetanque inócuo contém o culminar da inovação humana em energia limpa, ou" -" umaarma de destruição em massa capaz de acabar com a civilização - ou o " -"queresta dela - fora do mapa. Um mecanismo externo permite que ele " -"sejaconectado a um veículo para torná-lo móvel." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex generator" @@ -76630,11 +67714,6 @@ msgid "" "map. An external mechanism allow it to be hooked up to a battery to store " "the power generated." msgstr "" -" gerador de vórtices Um tornado em uma caixa, por assim dizer. Dentro " -"destetanque inócuo contém o culminar da inovação humana em energia limpa, ou" -" umaarma de destruição em massa capaz de acabar com a civilização - ou o " -"queresta dela - fora do mapa. Um mecanismo externo permite que ele seja " -"ligadoa uma bateria para armazenar a energia gerada." #: lang/json/TOOL_from_json.py msgid "control chip" @@ -76649,9 +67728,6 @@ msgid "" "organisms with electric stimulation, reviving them and forcing them to obey " "your commands. This version only works on blobs." msgstr "" -" chip de controle Um pequeno dispositivo, não maior que o punho de um homem." -" Fornece aos organismos primitivos a estimulação elétrica, revivendo- os " -"eforçando-os a obedecer a seus comandos. Esta versão só funciona em blobs." #: lang/json/TOOL_from_json.py msgid "dormant blob" @@ -76662,12 +67738,12 @@ msgstr[1] "" #. ~ Use action friendly_msg for dormant blob. #: lang/json/TOOL_from_json.py msgid "The blob becomes active and starts slithering around." -msgstr "blob inativo O blob se torna ativo e começa a deslizar." +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 "Você cometeu um erro terrível, a bolha é hostil!" +msgstr "" #. ~ Description for dormant blob #: lang/json/TOOL_from_json.py @@ -76676,9 +67752,6 @@ msgid "" "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 "" -" Vários pedaços de pedaços de blob, recheados com um chip de controle " -"ecosturados juntos. Um leve choque do no-break iniciou o chip, trazendo " -"oblob de volta à vida. Use este item para ativar o blob." #: lang/json/TOOL_from_json.py msgid "dormant minion" @@ -76689,7 +67762,7 @@ msgstr[1] "" #. ~ Use action friendly_msg for dormant minion. #: lang/json/TOOL_from_json.py msgid "The jabberwock climbs to its feet and shambles around." -msgstr "lacaio adormecido O jabberwock sobe a seus pés e desmorona ao redor." +msgstr "" #. ~ Use action hostile_msg for dormant minion. #: lang/json/TOOL_from_json.py @@ -76697,8 +67770,6 @@ msgid "" "Something has gone wrong; after getting up the jabberwock lumbers toward you" " menacingly!" msgstr "" -" Algo deu errado; depois de se levantar, o jabberwock se aproxima de " -"vocêameaçadoramente!" #. ~ Description for dormant minion #: lang/json/TOOL_from_json.py @@ -76706,8 +67777,6 @@ 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 "" -" Seu próprio servo morto-vivo. A bolha que controla seu corpo está em " -"estadode coma, aguardando suas ordens. Use este item para acordar o lacaio." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "yoke and harness" @@ -76722,16 +67791,16 @@ msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" -msgstr "roda" +msgstr "" #. ~ Description for wheel #: lang/json/WHEEL_from_json.py msgid "A car wheel." -msgstr "Uma roda de carro." +msgstr "" #: lang/json/WHEEL_from_json.py msgid "racing wheel" -msgstr "volante de corrida" +msgstr "" #. ~ Description for racing wheel #: lang/json/WHEEL_from_json.py @@ -76739,47 +67808,42 @@ msgid "" "A wide, smooth wheel intended for racing. The slick surface provides better" " speed on pavement but penalizes off-road speed." msgstr "" -" Uma roda larga e lisa destinada a corridas. A superfície lisa " -"proporcionamelhor velocidade no pavimento, mas penaliza a velocidade off- " -"road." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "armored wheel" -msgstr "roda blindada" +msgstr "" #. ~ Description for armored wheel #: lang/json/WHEEL_from_json.py msgid "A wide military grade wheel." -msgstr "Uma ampla roda de nível militar." +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheelbarrow wheel" -msgstr "roda de carrinho de mão" +msgstr "" #. ~ Description for wheelbarrow wheel #: lang/json/WHEEL_from_json.py msgid "A small wheel from a common garden wheelbarrow." -msgstr "Uma pequena roda de um carrinho de jardim comum." +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "bicycle wheel" -msgstr "Roda de bicicleta" +msgstr "" #. ~ Description for bicycle wheel #: lang/json/WHEEL_from_json.py msgid "A bicycle wheel." -msgstr "Uma roda de bicicleta." +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "off-road bicycle wheel" -msgstr "roda de bicicleta off-road" +msgstr "" #. ~ Description for off-road bicycle wheel #: lang/json/WHEEL_from_json.py msgid "A wide, studded, bicycle wheel intended for off-road biking." msgstr "" -" Uma roda de bicicleta larga e cravejada destinada ao ciclismo todo-o- " -"terreno." #: lang/json/WHEEL_from_json.py msgid "set of casters" @@ -76791,17 +67855,15 @@ msgstr[1] "" #: lang/json/WHEEL_from_json.py msgid "A set of casters, like on a shopping cart." msgstr "" -" conjunto de rodízios Um conjunto de rodízios, como em um carrinho " -"decompras." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "metal wheel" -msgstr "roda de metal" +msgstr "" #. ~ Description for metal wheel #: lang/json/WHEEL_from_json.py msgid "A simple metal wheel." -msgstr "Uma simples roda de metal." +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "rail wheel" @@ -76816,25 +67878,25 @@ msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "motorbike wheel" -msgstr "roda de moto" +msgstr "" #. ~ Description for motorbike wheel #: lang/json/WHEEL_from_json.py msgid "A motorbike wheel." -msgstr "Uma roda de moto." +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "off-road motorbike wheel" -msgstr "roda de moto off-road" +msgstr "" #. ~ Description for off-road motorbike wheel #: lang/json/WHEEL_from_json.py msgid "A motorbike wheel, studded for improved off-road performance." -msgstr "Uma roda de moto, cravejada para melhorar o desempenho off-road." +msgstr "" #: lang/json/WHEEL_from_json.py msgid "large steel drum" -msgstr "grande tambor de aço" +msgstr "" #. ~ Description for large steel drum #: lang/json/WHEEL_from_json.py @@ -76844,14 +67906,10 @@ msgid "" "central axis, reinforce its structure even further, making it an unstoppable" " force once it starts rolling." msgstr "" -" Um grande cilindro formado por chapas grossas de aço endurecido, " -"normalmente encontrado em rolos de estrada. Numerosos raios maciços, presosa" -" um eixo central, reforçam ainda mais sua estrutura, tornando-a uma " -"forçaincontrolável quando começa a rolar." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "small wheel" -msgstr "roda pequena" +msgstr "" #. ~ Description for small wheel #: lang/json/WHEEL_from_json.py @@ -76859,8 +67917,6 @@ msgid "" "A pretty small wheel. Probably from one of those Segway things. It is not " "very menacing." msgstr "" -" Uma roda bem pequena. Provavelmente de uma daquelas coisas do Segway. Não " -"émuito ameaçador." #: lang/json/WHEEL_from_json.py msgid "set of tricycle wheels" @@ -76885,20 +67941,19 @@ msgstr[1] "" #: lang/json/WHEEL_from_json.py msgid "A pair of wheels for a wheelchair." msgstr "" -" par de rodas de cadeira de rodas Um par de rodas para uma cadeira de rodas." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wide wheel" -msgstr "roda larga" +msgstr "" #. ~ Description for wide wheel #: lang/json/WHEEL_from_json.py msgid "A wide wheel. \\o/ This wide." -msgstr "Uma roda larga. \\o/ desta largura." +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "off-road wide wheel" -msgstr "roda larga off-road" +msgstr "" #. ~ Description for off-road wide wheel #: lang/json/WHEEL_from_json.py @@ -76906,32 +67961,28 @@ 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 "" -" Uma roda larga. \\o/ desta largura. É cravejado para fornecer melhor " -"aderência off-road, ao custo de algum desempenho no pavimento." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wooden cart wheel" -msgstr "roda de carrinho de madeira" +msgstr "" #. ~ Description for wooden cart wheel #: lang/json/WHEEL_from_json.py msgid "A wooden cart wheel, hand made." -msgstr "Uma roda de carrinho de madeira, feita à mão." +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "banded wooden cart wheel" -msgstr "roda de carrinho de madeira com bandas" +msgstr "" #. ~ Description for banded wooden cart wheel #: lang/json/WHEEL_from_json.py msgid "A wooden cart wheel with metal bands for durability, hand made." msgstr "" -" Uma roda de carrinho de madeira com bandas de metal para durabilidade, " -"feitas à mão." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gelatinous track" -msgstr "Trilha gelatinosa" +msgstr "" #. ~ Description for Gelatinous track #. ~ Description for Oozing track @@ -76943,23 +67994,18 @@ msgid "" "construction vehicles. It's significantly stronger than regular tires due " "to not being at risk of bursting; but is quite heavy." msgstr "" -" Um conjunto curto e interligado de faixas criadas a partir de algumas " -"dassuas peças baseadas em monstruosidade. Semelhante ao que você pode " -"verusado em veículos de construção leve. É significativamente mais forte " -"queos pneus normais devido a não estar em risco de rebentar; mas é bem " -"pesado." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Oozing track" -msgstr "Trilha vazando" +msgstr "" #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "Gray track" -msgstr "Faixa cinza" +msgstr "" #: lang/json/WHEEL_from_json.py msgid "gelacier wheel" -msgstr "roda de geleira" +msgstr "" #. ~ Description for gelacier wheel #: lang/json/WHEEL_from_json.py @@ -76970,11 +68016,6 @@ msgid "" "frost continually flake off it. It has formed itself into a wide boat " "frame." msgstr "" -" Um mistério biológico, as estruturas internas desta bolha existem dentro " -"deum pool de fluido de baixa densidade que permanece líquido apesar de " -"estarem um estado super-resfriado; ainda possui toda a maleabilidade do " -"seuantigo eu. Fragmentos de gelo continuamente se desprendem dele. Ele " -"seformou em uma moldura ampla de barco." #. ~ Description for gelacier wheel #: lang/json/WHEEL_from_json.py @@ -76985,15 +68026,10 @@ msgid "" "frost continually flake off it. It has formed itself into a wide, crude " "wheel." msgstr "" -" Um mistério biológico, as estruturas internas desta bolha existem dentro " -"deum pool de fluido de baixa densidade que permanece líquido apesar de " -"estarem um estado super-resfriado; ainda possui toda a maleabilidade do " -"seuantigo eu. Fragmentos de gelo continuamente se desprendem dele. Ela " -"seformou em uma roda larga e crua." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "gelatinous wheel" -msgstr "roda gelatinosa" +msgstr "" #. ~ Description for gelatinous wheel #: lang/json/WHEEL_from_json.py @@ -77002,13 +68038,10 @@ msgid "" "to be a cross between a wheel, an otherworldly abomination, and one of those" " old squeezy toys." msgstr "" -" Preencher uma massa gelatinosa com água resultou em algo que parece ser " -"umcruzamento entre uma roda, uma abominação sobrenatural e um daqueles " -"velhosbrinquedos de apertar." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "gray wheel" -msgstr "roda cinza" +msgstr "" #. ~ Description for gray wheel #: lang/json/WHEEL_from_json.py @@ -77017,13 +68050,10 @@ msgid "" "a cross between a wheel, an otherworldly abomination, and one of those old " "squeezy toys." msgstr "" -" Preencher uma massa cinzenta com água resultou em algo que parece ser " -"umcruzamento entre uma roda, uma abominação sobrenatural e um daqueles " -"velhosbrinquedos de apertar." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "earthen roller" -msgstr "rolo de barro" +msgstr "" #. ~ Description for earthen roller #: lang/json/WHEEL_from_json.py @@ -77032,13 +68062,10 @@ msgid "" " compacted itself into a solid shell; offering great resilience. Having " "grown to full size, it seems content to simply sit there." msgstr "" -" Uma grande bolha esférica do tamanho de um grande pneu de caminhão. Acamada" -" externa se compactou em uma casca sólida; oferecendo granderesiliência. " -"Tendo crescido para o tamanho normal, parece contentesimplesmente sentar lá." #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "oozing wheel" -msgstr "roda escorrendo" +msgstr "" #. ~ Description for oozing wheel #: lang/json/WHEEL_from_json.py @@ -77047,13 +68074,10 @@ msgid "" "be a cross between a wheel, an otherworldly abomination, and one of those " "old squeezy toys." msgstr "" -" O enchimento de uma massa com água resultou em algo que parece ser " -"umcruzamento entre uma roda, uma abominação sobrenatural e um daqueles " -"velhosbrinquedos de apertar." #: lang/json/WHEEL_from_json.py msgid "Rubber Caterpillar Track" -msgstr "Trilha De Borracha De Caterpillar" +msgstr "" #. ~ Description for Rubber Caterpillar Track #: lang/json/WHEEL_from_json.py @@ -77063,15 +68087,10 @@ msgid "" "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 "" -" Um conjunto curto e intertravado de faixas de borracha reforçada por " -"fiosrígidos presos por um conjunto de rodas menores. Semelhante ao que " -"vocêpode ver usado em veículos de construção leve. É significativamente " -"maisforte que os pneus normais devido a não estar em risco de rebentar; mas " -"ébem pesado." #: lang/json/WHEEL_from_json.py msgid "Steel Caterpillar Track" -msgstr "Trilha de Caterpillar de aço" +msgstr "" #. ~ Description for Steel Caterpillar Track #: lang/json/WHEEL_from_json.py @@ -77081,15 +68100,10 @@ msgid "" "vehicles. It's significantly stronger than regular tires due to not being " "at risk of bursting; but is very heavy." msgstr "" -" Um conjunto curto e interligado de faixas de aço moldadas presas por " -"umconjunto de rodas menores. Semelhante ao que você pode ver usado " -"emveículos de construção de grande porte. É significativamente mais forte " -"queos pneus normais devido a não estar em risco de rebentar; mas é " -"muitopesado." #: lang/json/WHEEL_from_json.py msgid "Reinforced Caterpillar Track" -msgstr "Trilho Caterpillar Reforçado" +msgstr "" #. ~ Description for Reinforced Caterpillar Track #: lang/json/WHEEL_from_json.py @@ -77099,10 +68113,6 @@ msgid "" "vehicles. It's significantly stronger than regular tires due to not being " "at risk of bursting; but is extremely heavy." msgstr "" -" Um conjunto curto e interligado de faixas de aço moldadas presas por " -"umconjunto de rodas menores. Semelhante ao que você pode ver usado em APCs " -"eveículos blindados. É significativamente mais forte que os pneus " -"normaisdevido a não estar em risco de rebentar; mas é extremamente pesado." #: lang/json/activity_type_from_json.py msgid "reloading" @@ -77134,7 +68144,7 @@ msgstr "" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "butchering" -msgstr "massacrar" +msgstr "" #: lang/json/activity_type_from_json.py msgid "field dressing" @@ -77342,11 +68352,11 @@ msgstr "" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "drilling" -msgstr "perfuração" +msgstr "" #: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py msgid "digging" -msgstr "escavação" +msgstr "" #: lang/json/activity_type_from_json.py msgid "filling" @@ -77418,11 +68428,11 @@ msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" -msgstr ".700 Nitro Express" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".50 BMG" -msgstr "0,50 BMG" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".45-70" @@ -77438,11 +68448,11 @@ msgstr "chumbinhos" #: lang/json/ammunition_type_from_json.py msgid "bolts" -msgstr "parafusos" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "arrows" -msgstr "Setas; flechas" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "pebbles" @@ -77454,7 +68464,7 @@ msgstr "" #: lang/json/ammunition_type_from_json.py msgid "shot" -msgstr "tiro" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".410 shot" @@ -77469,15 +68479,15 @@ msgstr[1] "" #: lang/json/ammunition_type_from_json.py msgid ".22" -msgstr "bacamarte .22" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "9x19mm" -msgstr "9x19mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".357 SIG" -msgstr "357 SIG" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".357 magnum" @@ -77493,11 +68503,11 @@ msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".38" -msgstr "38" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".40" -msgstr ".40" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "10mm Auto" @@ -77505,19 +68515,19 @@ msgstr "10mm Auto" #: lang/json/ammunition_type_from_json.py msgid ".44" -msgstr "44" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".45" -msgstr "45" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".460" -msgstr ".460" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".454" -msgstr "454" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".45 Colt" @@ -77525,31 +68535,31 @@ msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".500" -msgstr ", 500" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "5.7mm" -msgstr "5,7 mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "4.6mm" -msgstr "4,6 mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "7.62x39mm" -msgstr "7,62x39mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "5.45x39mm" -msgstr "5,45x39mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".223" -msgstr "223" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".30-06" -msgstr "30-06" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".270 Winchester" @@ -77557,23 +68567,23 @@ msgstr ".270 Winchester" #: lang/json/ammunition_type_from_json.py msgid ".308" -msgstr ", 308" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "high-explosive anti-tank warhead" -msgstr "ogiva anti-tanque de alto explosivo" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "84mm recoilless projectile" -msgstr "Projéctil sem recuo de 84mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "M235 66mm Incendiary TPA" -msgstr "M235 TPA Incendiário 66mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "soap" -msgstr "Sabonete" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "batteries" @@ -77585,43 +68595,43 @@ msgstr "centavos" #: lang/json/ammunition_type_from_json.py msgid "plutonium" -msgstr "plutônio" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "fusion cell" -msgstr "célula de fusão" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "12mm slugs" -msgstr "Lesmas de 12mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "solid hydrogen" -msgstr "hidrogênio sólido" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "flammable liquid" -msgstr "líquido inflamável" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "welding gas" -msgstr "gás de solda" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "concentrated alcohol" -msgstr "álcool concentrado" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "20x66mm caseless shotgun" -msgstr "Espingarda 20x66mm sem caixa" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "5x50mm flechette" -msgstr "Flechette de 5x50mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "ferrous rail projectile" -msgstr "projétil ferroviário ferroso" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "throwing weapon" @@ -77629,11 +68639,11 @@ msgstr "arma de arremesso" #: lang/json/ammunition_type_from_json.py msgid "chemical ampoule" -msgstr "ampola química" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "stimulant module" -msgstr "módulo estimulante" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "components" @@ -77641,59 +68651,59 @@ msgstr "componentes" #: lang/json/ammunition_type_from_json.py msgid "93mm RPG-7" -msgstr "RPG-7 de 93 mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "rebreather filter" -msgstr "filtro rebreather" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "hazmat mask cartridge" -msgstr "cartucho de máscara de hazmat" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".300" -msgstr ".300" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".32" -msgstr ".32" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "7.62x25mm" -msgstr "7,62x25mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".36 cap & ball" -msgstr "36 boné e bola" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".44 cap & ball" -msgstr ".44 boné e bola" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "7.62x54mm" -msgstr "7,62x54mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "speargun spear" -msgstr "lança de arma de fogo" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "homebrew rocket" -msgstr "foguete homebrew" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "152mm anti-tank guided missile" -msgstr "Míssil guiado anti-tanque de 152mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "semi-charred fuel" -msgstr "combustível semi-carbonizado" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "sprayable chemical" -msgstr "química pulverizável" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "compressed air" @@ -77705,47 +68715,47 @@ msgstr "" #: lang/json/ammunition_type_from_json.py msgid "6.54x42mm" -msgstr "6,54x42mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid ".20 DREAD Pellets" -msgstr ".20 DREAD Pellets" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "javelin" -msgstr "dardo" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "120mm shell" -msgstr "Concha de 120mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "155mm shell" -msgstr "Concha de 155mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "30x113mm" -msgstr "30x113mm" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "heavy projectiles" -msgstr "projéteis pesados" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "ballista bolt" -msgstr "balista bolt" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "bladed disk" -msgstr "disco laminado" +msgstr "" #: lang/json/ammunition_type_from_json.py msgid "vortex energy" -msgstr "energia de vórtice" +msgstr "" #: lang/json/bionic_from_json.py msgid "Adrenaline Pump" -msgstr "Bomba de adrenalina" +msgstr "" #. ~ Description for Adrenaline Pump #: lang/json/bionic_from_json.py @@ -77754,21 +68764,18 @@ msgid "" "glands, allowing you to trigger your body's adrenaline response at the cost " "of some bionic power." msgstr "" -" Um sistema estimulador foi implantado cirurgicamente ao lado de " -"suasglândulas supra-renais, permitindo que você acione a resposta da " -"adrenalinaao custo de algum poder biônico." #: lang/json/bionic_from_json.py msgid "Active Defense System" -msgstr "Sistema de Defesa Ativo" +msgstr "" #: lang/json/bionic_from_json.py msgid "Advanced Microreactor System" -msgstr "Sistema Avançado de Microreatores" +msgstr "" #: lang/json/bionic_from_json.py msgid "Alarm System" -msgstr "Sistema de alarme" +msgstr "" #. ~ Description for Squeaky Ankles #: lang/json/bionic_from_json.py @@ -77776,12 +68783,10 @@ msgid "" "In a cruel twist of fate, a poorly executed CBM surgery has given you a pair" " of useless bionics which make squeaking noises when you walk." msgstr "" -" Em uma reviravolta cruel do destino, uma cirurgia CBM mal executada deu " -"avocê um par de biônicas inúteis que fazem ruídos quando você anda." #: lang/json/bionic_from_json.py msgid "Alloy Plating - Arms" -msgstr "Chapeamento de liga - armas" +msgstr "" #. ~ Description for Alloy Plating - Arms #: lang/json/bionic_from_json.py @@ -77789,12 +68794,10 @@ msgid "" "The flesh on your arms has been surgically replaced by a strong armor, " "protecting you greatly." msgstr "" -" A carne em seus braços foi cirurgicamente substituída por uma " -"armaduraforte, protegendo-o grandemente." #: lang/json/bionic_from_json.py msgid "Protective Lenses" -msgstr "Lentes Protetoras" +msgstr "" #. ~ Description for Protective Lenses #: lang/json/bionic_from_json.py @@ -77803,14 +68806,10 @@ msgid "" " lenses and your tear ducts have been re-routed to your mouth. When you " "cry, you must spit out or swallow your tears." msgstr "" -" As suas órbitas oculares foram cirurgicamente seladas com lentes " -"espelhadasaltamente protectoras e os seus canais lacrimais foram " -"reencaminhados paraa sua boca. Quando você chora, você deve cuspir ou " -"engolir suas lágrimas." #: lang/json/bionic_from_json.py msgid "Alloy Plating - Head" -msgstr "Chapeamento de liga - cabeça" +msgstr "" #. ~ Description for Alloy Plating - Head #: lang/json/bionic_from_json.py @@ -77818,12 +68817,10 @@ msgid "" "The flesh on your head has been surgically replaced by a strong armor, " "protecting both your head and jaw regions." msgstr "" -" A carne em sua cabeça foi cirurgicamente substituída por uma armaduraforte," -" protegendo tanto a região da cabeça quanto a mandíbula." #: lang/json/bionic_from_json.py msgid "Alloy Plating - Legs" -msgstr "Chapeamento de liga - pernas" +msgstr "" #. ~ Description for Alloy Plating - Legs #: lang/json/bionic_from_json.py @@ -77831,12 +68828,10 @@ msgid "" "The flesh on your legs has been surgically replaced by a strong armor, " "protecting you greatly." msgstr "" -" A carne de suas pernas foi cirurgicamente substituída por uma " -"armaduraforte, protegendo-o muito." #: lang/json/bionic_from_json.py msgid "Alloy Plating - Torso" -msgstr "Chapeamento de liga - torso" +msgstr "" #. ~ Description for Alloy Plating - Torso #: lang/json/bionic_from_json.py @@ -77844,20 +68839,18 @@ msgid "" "The flesh on your torso has been surgically replaced by a strong armor, " "protecting you greatly." msgstr "" -" A carne em seu torso foi cirurgicamente substituída por uma armadura forte," -" protegendo-o grandemente." #: lang/json/bionic_from_json.py msgid "Battery System" -msgstr "Sistema de bateria" +msgstr "" #: lang/json/bionic_from_json.py msgid "Monomolecular Blade" -msgstr "Lâmina Monomolecular" +msgstr "" #: lang/json/bionic_from_json.py msgid "Fusion Blaster Arm" -msgstr "Braço Blaster Fusion" +msgstr "" #. ~ Description for Fusion Blaster Arm #: lang/json/bionic_from_json.py @@ -77867,10 +68860,6 @@ msgid "" " unable to use or carry two-handed items, and your strength limits what you " "can use with your one hand." msgstr "" -" Seu braço esquerdo foi cirurgicamente substituído por um blaster de " -"fusãoresistente! Você pode usar seus bancos de energia para disparar um raio" -" decalor prejudicial. No entanto, você não pode usar ou carregar itens de " -"duasmãos, e sua força limita o que você pode usar com a sua mão." #: lang/json/bionic_from_json.py msgid "Shotgun Arm" @@ -77885,7 +68874,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Optical Dampers" -msgstr "Amortecedores ópticos" +msgstr "" #. ~ Description for Optical Dampers #: lang/json/bionic_from_json.py @@ -77893,12 +68882,10 @@ msgid "" "The lenses surgically installed over your eyes can be tinted to block out " "incoming light." msgstr "" -" As lentes instaladas cirurgicamente sobre os olhos podem ser tingidas " -"parabloquear a entrada de luz." #: lang/json/bionic_from_json.py msgid "Blood Analysis" -msgstr "Análise de sangue" +msgstr "" #. ~ Description for Blood Analysis #: lang/json/bionic_from_json.py @@ -77907,17 +68894,14 @@ msgid "" "analyze your blood. This will detect many illnesses, drugs, and other " "conditions." msgstr "" -" Pequenos sensores foram implantados cirurgicamente em seu coração, " -"permitindo que você analise seu sangue. Isso detectará muitas doenças, " -"drogas e outras condições." #: lang/json/bionic_from_json.py msgid "Blood Filter" -msgstr "Filtro sanguíneo" +msgstr "" #: lang/json/bionic_from_json.py msgid "Cable Charger System" -msgstr "Sistema de carregador de cabo" +msgstr "" #. ~ Description for Cable Charger System #: lang/json/bionic_from_json.py @@ -77925,13 +68909,10 @@ msgid "" "You have a complex port surgically mounted above your hip. While active, it" " will drain power through a jumper cable held on your person." msgstr "" -" Você tem uma porta complexa cirurgicamente montada acima do quadril. " -"Enquanto estiver ativo, ele drenará a energia por meio de um cabo de " -"jumperpreso em sua pessoa." #: lang/json/bionic_from_json.py msgid "Subdermal Carbon Filament" -msgstr "Filamento de Carbono Subdermal" +msgstr "" #: lang/json/bionic_from_json.py lang/json/gun_from_json.py #: lang/json/gun_from_json.py @@ -77942,7 +68923,7 @@ msgstr[1] "" #: lang/json/bionic_from_json.py msgid "Bionic Claws" -msgstr "Garras Biônicas de Relâmpago em Cadeia" +msgstr "" #. ~ Description for Bionic Claws #: lang/json/bionic_from_json.py @@ -77952,22 +68933,18 @@ msgid "" "These do considerable cutting damage, but prevent you from holding anything " "else while extended." msgstr "" -" Garras viciosas foram instaladas cirurgicamente dentro de seus dedos, " -"permitindo que você as estenda e retraia ao custo de uma pequena " -"quantidadede energia. Eles causam danos consideráveis no corte, mas impedem " -"que vocêsegure qualquer outra coisa enquanto estendido." #: lang/json/bionic_from_json.py msgid "Internal Climate Control" -msgstr "Controle Climático Interno" +msgstr "" #: lang/json/bionic_from_json.py msgid "Cloaking System" -msgstr "Cloaking System" +msgstr "" #: lang/json/bionic_from_json.py msgid "Close Quarters Battle" -msgstr "Batalha de Quarters Close" +msgstr "" #. ~ Description for Close Quarters Battle #: lang/json/bionic_from_json.py @@ -77976,14 +68953,10 @@ msgid "" "are surgically integrated into your nervous system. Whilst active, the CQB " "module will improve your hand to hand combat skills." msgstr "" -" Processadores e bancos de dados biônicos, carregados com programas " -"decombate de artes marciais, são cirurgicamente integrados ao seu " -"sistemanervoso. Enquanto ativo, o módulo CQB aprimora suas habilidades de " -"combatemão a mão." #: lang/json/bionic_from_json.py msgid "Bionic-Induced Deformity" -msgstr "Deformidade Induzida por Biônica" +msgstr "" #. ~ Description for Bionic-Induced Deformity #: lang/json/bionic_from_json.py @@ -77993,22 +68966,18 @@ msgid "" "mind that you look like a dime-store Frankenstein will react poorly to your " "appearance." msgstr "" -" Uma combinação de má instalação cirúrgica e cicatrizes desagradáveis levouà" -" catástrofe biônica com mau funcionamento que você chama de seu rosto. " -"Aspessoas que se importam que você se parece com um Frankenstein da loja " -"demoedas de dez centavos reagirão mal à sua aparência." #: lang/json/bionic_from_json.py msgid "Wired Reflexes" -msgstr "Reflexos com fio" +msgstr "" #: lang/json/bionic_from_json.py msgid "Expanded Digestive System" -msgstr "Sistema Digestivo Expandido" +msgstr "" #: lang/json/bionic_from_json.py msgid "Acidic Discharge" -msgstr "Descarga Ácida" +msgstr "" #. ~ Description for Acidic Discharge #: lang/json/bionic_from_json.py @@ -78016,12 +68985,10 @@ msgid "" "A malfunctioning bionic which occasionally discharges acid into your " "muscles, causing sharp pain and minor damage." msgstr "" -" Um biônico defeituoso que ocasionalmente descarrega ácido em seus músculos," -" causando dor aguda e pequenos danos." #: lang/json/bionic_from_json.py msgid "Electrical Discharge" -msgstr "Descarga elétrica" +msgstr "" #. ~ Description for Electrical Discharge #: lang/json/bionic_from_json.py @@ -78029,8 +68996,6 @@ msgid "" "A malfunctioning bionic which occasionally discharges electricity through " "your body, causing pain and brief paralysis but no damage." msgstr "" -" Um biônico defeituoso que ocasionalmente descarrega eletricidade através " -"deseu corpo, causando dor e breve paralisia, mas sem danos." #. ~ Description for Electrical Drain #: lang/json/bionic_from_json.py @@ -78038,12 +69003,10 @@ msgid "" "A malfunctioning bionic. It doesn't perform any useful function, but will " "occasionally draw power from your batteries." msgstr "" -" Um bionic mau funcionamento. Ele não executa nenhuma função útil, " -"masocasionalmente consome energia de suas baterias." #: lang/json/bionic_from_json.py msgid "Sound Dampeners" -msgstr "Amortecedores de Som" +msgstr "" #. ~ Description for Sound Dampeners #: lang/json/bionic_from_json.py @@ -78052,17 +69015,14 @@ msgid "" "Hearing deactivated) or dampen sound slightly (with Enhanced Hearing " "activated)." msgstr "" -" Quando este biônico está ativo, você pode bloquear completamente a " -"audição(com a Enhanced Hearing desativada) ou amortecer um pouco o som (com " -"aEnhanced Hearing ativada)." #: lang/json/bionic_from_json.py msgid "Enhanced Hearing" -msgstr "Audição Melhorada" +msgstr "" #: lang/json/bionic_from_json.py msgid "Directional EMP" -msgstr "EMP Direcional" +msgstr "" #. ~ Description for Directional EMP #: lang/json/bionic_from_json.py @@ -78071,9 +69031,6 @@ msgid "" "generators. You may use power to fire a short-ranged blast which will " "disable electronics and robots." msgstr "" -" Cirurgicamente montado na palma da sua mão são pequenos geradores de " -"campoEMP parabólicos. Você pode usar o poder para disparar uma rajada de " -"curtoalcance que desativará eletrônicos e robôs." #: lang/json/bionic_from_json.py lang/json/gun_from_json.py #: lang/json/gun_from_json.py @@ -78084,19 +69041,19 @@ msgstr[1] "" #: lang/json/bionic_from_json.py msgid "Ethanol Burner" -msgstr "EMP Projector Ethanol Burner" +msgstr "" #: lang/json/bionic_from_json.py msgid "Aero-Evaporator" -msgstr "Aero-Evaporador" +msgstr "" #: lang/json/bionic_from_json.py msgid "Diamond Cornea" -msgstr "Córnea Diamante" +msgstr "" #: lang/json/bionic_from_json.py msgid "Telescopic Eyes" -msgstr "Olhos telescópicos" +msgstr "" #. ~ Description for Telescopic Eyes #: lang/json/bionic_from_json.py @@ -78109,15 +69066,15 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Facial Distortion" -msgstr "Distorção Facial" +msgstr "" #: lang/json/bionic_from_json.py msgid "Dielectric Capacitance System" -msgstr "Sistema de Capacitância Dielétrica" +msgstr "" #: lang/json/bionic_from_json.py msgid "Fingerhack" -msgstr "Fingerhack" +msgstr "" #. ~ Description for Fingerhack #: lang/json/bionic_from_json.py @@ -78127,14 +69084,10 @@ msgid "" "computers). Skill in computers is important, and a failed use may damage " "your circuits." msgstr "" -" Um de seus dedos tem um eletrohack incorporado nele; uma unidade de " -"hackerspara todos os propósitos usada para substituir os painéis de controle" -" esimilares (mas não os computadores). A habilidade nos computadores " -"éimportante, e um uso fracassado pode danificar seus circuitos." #: lang/json/bionic_from_json.py msgid "Flashbang Generator" -msgstr "Gerador de Flashbang" +msgstr "" #. ~ Description for Flashbang Generator #: lang/json/bionic_from_json.py @@ -78143,22 +69096,16 @@ msgid "" "flash comparable to a flashbang grenade, blinding nearby enemies. Speakers " "integrated into your body mimic the loud sound, deafening those nearby." msgstr "" -" Díodos emissores de luz cirurgicamente integrados na sua pele podem " -"liberarum flash comparável a uma granada de flashblang, cegando os " -"inimigospróximos. Alto-falantes integrados em seu corpo imitam o som alto, " -"ensurdecendo os próximos." #: lang/json/bionic_from_json.py msgid "Cranial Flashlight" -msgstr "Lanterna Craniana" +msgstr "" #. ~ Description for Cranial Flashlight #: lang/json/bionic_from_json.py msgid "" "Surgically mounted between your eyes is a small but powerful LED flashlight." msgstr "" -" Cirurgicamente montado entre os olhos é uma lanterna LED pequena, mas " -"poderosa." #. ~ Description for LED Tattoo #: lang/json/bionic_from_json.py @@ -78180,7 +69127,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Integrated Dosimeter" -msgstr "Dosímetro Integrado" +msgstr "" #. ~ Description for Integrated Dosimeter #: lang/json/bionic_from_json.py @@ -78189,9 +69136,6 @@ msgid "" " allowing you to analyze your level of absorbed radiation. They will also " "alert you whenever exposed to environmental radiation." msgstr "" -" Pequenos sensores de radiação foram implantados cirurgicamente em todo oseu" -" corpo, permitindo que você analise seu nível de radiação absorvida. Eles " -"também alertarão você sempre que exposto à radiação ambiental." #: lang/json/bionic_from_json.py msgid "Respirator" @@ -78208,15 +69152,15 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Terranian Sonar" -msgstr "Sonar Terrestre" +msgstr "" #: lang/json/bionic_from_json.py msgid "Heat Drain" -msgstr "Dreno de Calor" +msgstr "" #: lang/json/bionic_from_json.py msgid "Thermal Dissipation" -msgstr "Dissipação Térmica" +msgstr "" #. ~ Description for Thermal Dissipation #: lang/json/bionic_from_json.py @@ -78225,22 +69169,18 @@ msgid "" " While powered, this system will prevent heat damage up to 2000 degrees " "Fahrenheit. Note that this does not affect your internal temperature." msgstr "" -" Dissipadores de calor e supermateriais poderosos são cirurgicamente " -"tecidosem sua carne. Enquanto estiver ligado, este sistema evitará danos " -"poraquecimento até 2000 graus Fahrenheit. Note que isso não afeta " -"suatemperatura interna." #: lang/json/bionic_from_json.py msgid "Hydraulic Muscles" -msgstr "Músculos Hidráulicos" +msgstr "" #: lang/json/bionic_from_json.py lang/json/mutation_from_json.py msgid "Infrared Vision" -msgstr "Visão Infravermelha" +msgstr "" #: lang/json/bionic_from_json.py msgid "Cerebral Booster" -msgstr "Reforço Cerebral" +msgstr "" #. ~ Description for Itchy Metal Thing #: lang/json/bionic_from_json.py @@ -78248,12 +69188,10 @@ msgid "" "A bionic of some sort, so badly installed that you cannot even tell what it " "was originally supposed to be. Sometimes it itches horribly." msgstr "" -" Um biônico de algum tipo, tão mal instalado que você não pode nem " -"mesmodizer o que era originalmente suposto ser. Às vezes coça horrivelmente." #: lang/json/bionic_from_json.py msgid "Finger-Mounted Laser" -msgstr "Laser Montado no Dedo" +msgstr "" #. ~ Description for Finger-Mounted Laser #: lang/json/bionic_from_json.py @@ -78262,10 +69200,6 @@ msgid "" "it. This long range weapon is not incredibly damaging, but is very " "accurate, and has the potential to start fires." msgstr "" -" Um de seus dedos tem um pequeno laser de alta potência, " -"cirurgicamenteincorporado nele. Esta arma de longo alcance não é " -"incrivelmente danosa, mas é muito precisa e tem o potencial de iniciar " -"incêndios." #. ~ Description for Leaky Bionic #: lang/json/bionic_from_json.py @@ -78274,22 +69208,18 @@ msgid "" "piezoelectric nanomaterials, and other high-tech contaminants into your " "bloodstream. Needless to say, this is not good for your health." msgstr "" -" Esta peça defeituosa de ferragens biônicas vaza vagarosamente " -"compostoseletrolíticos, nanomateriais piezoelétricos e outros contaminantes " -"de altatecnologia em sua corrente sanguínea. Escusado será dizer que isso " -"não ébom para a sua saúde." #: lang/json/bionic_from_json.py msgid "Leukocyte Breeder System" -msgstr "Sistema de Criadores de Leucócitos" +msgstr "" #: lang/json/bionic_from_json.py msgid "Mini-Flamethrower" -msgstr "Mini-lança-chamas" +msgstr "" #: lang/json/bionic_from_json.py msgid "Fingerpick" -msgstr "Fingerpick" +msgstr "" #. ~ Description for Fingerpick #: lang/json/bionic_from_json.py @@ -78298,14 +69228,10 @@ msgid "" "This automatic system will quickly unlock all but the most advanced key " "locks without any skill required on the part of the user." msgstr "" -" Um dos seus dedos tem um lockpick eletrônico incorporado nela. Este " -"sistemaautomático desbloqueará rapidamente todos os bloqueios de chave, " -"exceto osmais avançados, sem a necessidade de qualquer habilidade por parte " -"dousuário." #: lang/json/bionic_from_json.py msgid "Electromagnetic Unit" -msgstr "Unidade eletromagnética" +msgstr "" #. ~ Description for Electromagnetic Unit #: lang/json/bionic_from_json.py @@ -78313,16 +69239,14 @@ msgid "" "Surgically embedded in your hand is a powerful electromagnet, allowing you " "to pull items made of iron over short distances." msgstr "" -" Surgido cirurgicamente em sua mão é um eletroímã poderoso, permitindo " -"quevocê puxe itens feitos de ferro em curtas distâncias." #: lang/json/bionic_from_json.py msgid "Nictating Membrane" -msgstr "Membrana Nictante" +msgstr "" #: lang/json/bionic_from_json.py msgid "Enhanced Memory Banks" -msgstr "Bancos de Memória Aprimorados" +msgstr "" #. ~ Description for Enhanced Memory Banks #: lang/json/bionic_from_json.py @@ -78333,15 +69257,10 @@ msgid "" " of terrain you've explored will remain in your memory for an incredibly " "long time." msgstr "" -" Sua memória foi aprimorada com pequenas unidades de armazenamento quântico." -" Enquanto ativo, você aprende - tanto através da leitura quanto da prática " -"-mais rapidamente. Além disso, você não pode esquecer habilidades que vocêjá" -" aprendeu, e o layout do terreno que você explorou permanecerá em suamemória" -" por um tempo incrivelmente longo." #: lang/json/bionic_from_json.py msgid "Metabolic Interchange" -msgstr "Intercâmbio Metabólico" +msgstr "" #: lang/json/bionic_from_json.py msgid "Weather Reader" @@ -78349,15 +69268,15 @@ msgstr "Leitor de Clima" #: lang/json/bionic_from_json.py msgid "Repair Nanobots" -msgstr "Reparar Nanobots" +msgstr "" #: lang/json/bionic_from_json.py msgid "Artificial Night Generator" -msgstr "Gerador Noturno Artificial" +msgstr "" #: lang/json/bionic_from_json.py msgid "Implanted Night Vision" -msgstr "Visão Noturna Implantada" +msgstr "" #. ~ Description for Implanted Night Vision #: lang/json/bionic_from_json.py @@ -78365,16 +69284,12 @@ msgid "" "Your eyes have been surgically modified to amplify existing light, allowing " "you to see in the dark." msgstr "" -" Seus olhos foram modificados cirurgicamente para amplificar a luzexistente," -" permitindo que você veja no escuro." #. ~ Description for Noisemaker #: lang/json/bionic_from_json.py msgid "" "A malfunctioning bionic. It will occasionally emit a loud burst of noise." msgstr "" -" Um bionic mau funcionamento. Ocasionalmente irá emitir uma forte explosãode" -" ruído." #. ~ Description for Bionic Nostril #: lang/json/bionic_from_json.py @@ -78383,21 +69298,18 @@ msgid "" "it got there this badly misplaced bionic makes it difficult to breathe. " "Increases mouth encumbrance by one." msgstr "" -" Você realmente não tem certeza de como o CBM acabou em seu nariz, mas " -"nãoimporta como ele chegou lá, este biônico mal colocado dificulta " -"arespiração. Aumenta o ônus da boca em um." #: lang/json/bionic_from_json.py msgid "Offensive Defense System" -msgstr "Sistema de defesa ofensivo" +msgstr "" #: lang/json/bionic_from_json.py msgid "Sensory Dulling" -msgstr "Destruição Sensorial" +msgstr "" #: lang/json/bionic_from_json.py msgid "Plutonium Filter" -msgstr "Filtro de plutônio" +msgstr "" #. ~ Description for Plutonium Filter #: lang/json/bionic_from_json.py @@ -78405,19 +69317,15 @@ msgid "" "This set of tanks and filters allows you to more rapidly extract usable " "plutonium from slurry for a microreactor." msgstr "" -" Esse conjunto de tanques e filtros permite extrair mais rapidamente " -"oplutônio utilizável da polpa para um microrreator." #: lang/json/bionic_from_json.py msgid "Plutonium Purger" -msgstr "Purga de Plutônio" +msgstr "" #. ~ Description for Plutonium Purger #: lang/json/bionic_from_json.py msgid "Emergency reactor fuel purge ejects all fuel from your reactor." msgstr "" -" Purga de combustível do reator de emergência ejeta todo o combustível doseu" -" reator." #. ~ Description for Bionic Visual Impairment #: lang/json/bionic_from_json.py @@ -78425,24 +69333,22 @@ msgid "" "Due to a badly misplaced dielectric stylette you are now suffering from mild" " optic neuropathy. Increases eye encumbrance by one." msgstr "" -" Devido a um estilete dielétrico mal extraviado, você está sofrendo " -"deneuropatia óptica leve. Aumenta o ônus ocular em um." #: lang/json/bionic_from_json.py msgid "Power Armor Interface" -msgstr "Interface de armadura de potência" +msgstr "" #: lang/json/bionic_from_json.py msgid "Power Armor Interface Mk. II" -msgstr "Power Armor Interface Mk. II" +msgstr "" #: lang/json/bionic_from_json.py msgid "Power Storage" -msgstr "Armazenamento de energia" +msgstr "" #: lang/json/bionic_from_json.py msgid "Power Storage Mk. II" -msgstr "Armazenamento de energia Mk. II" +msgstr "" #. ~ Description for Power Overload #: lang/json/bionic_from_json.py @@ -78455,11 +69361,11 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Probability Travel" -msgstr "Viagem de probabilidade" +msgstr "" #: lang/json/bionic_from_json.py msgid "Air Filtration System" -msgstr "Sistema de Filtragem de Ar" +msgstr "" #. ~ Description for Air Filtration System #: lang/json/bionic_from_json.py @@ -78468,13 +69374,10 @@ msgid "" "toxins, or airborne diseases find their way into your windpipe, the filter " "will attempt to remove them. Reducing the toxic effects." msgstr "" -" Cirurgicamente implantado na sua traqueia é um sistema avançado " -"defiltragem. Se toxinas ou doenças transmitidas pelo ar chegarem à " -"suatraquéia, o filtro tentará removê-las. Reduzindo os efeitos tóxicos." #: lang/json/bionic_from_json.py msgid "Radiation Scrubber System" -msgstr "Sistema de purificação de radiação" +msgstr "" #. ~ Description for Radiation Scrubber System #: lang/json/bionic_from_json.py @@ -78483,13 +69386,10 @@ msgid "" "implanted throughout your body, allowing you to purge yourself of absorbed " "radiation at the cost of some bionic power." msgstr "" -" Um sistema de filtros sanguíneos piezomecânicos avançados foi " -"implantadocirurgicamente em todo o corpo, permitindo que você purgasse a " -"radiaçãoabsorvida ao custo de algum poder biônico." #: lang/json/bionic_from_json.py msgid "Railgun" -msgstr "Canhão" +msgstr "" #. ~ Description for Railgun #: lang/json/bionic_from_json.py @@ -78498,22 +69398,18 @@ msgid "" "and steel objects at a cost of 1 power per throw, causing them to leave a " "trail of electricity that can cause additional damage." msgstr "" -" Geradores de campo CBMEM Railgun em seus braços dobram o alcance e o " -"danodeobjetos de aço e ferro lançados a um custo de 1 potência por lance, " -"fazendocom que eles deixem um rastro de eletricidade que pode " -"causardanosadicionais." #: lang/json/bionic_from_json.py msgid "Fingertip Razors" -msgstr "Lâminas de ponta dos dedos" +msgstr "" #: lang/json/bionic_from_json.py msgid "Microreactor System" -msgstr "Sistema de Microrreatores" +msgstr "" #: lang/json/bionic_from_json.py msgid "Recycler Unit" -msgstr "Unidade de Reciclagem" +msgstr "" #: lang/json/bionic_from_json.py msgid "Remote Controller" @@ -78521,15 +69417,15 @@ msgstr "Controle Remoto" #: lang/json/bionic_from_json.py msgid "Sonic Resonator" -msgstr "Ressonador Sônico" +msgstr "" #: lang/json/bionic_from_json.py msgid "Olfactory Mask" -msgstr "Máscara olfativa" +msgstr "" #: lang/json/bionic_from_json.py msgid "Scent Vision" -msgstr "Visão Perfumada" +msgstr "" #. ~ Description for Bionic Short Circuit #: lang/json/bionic_from_json.py @@ -78538,17 +69434,14 @@ msgid "" "malfunctioning device periodically short-circuits, causing systemic muscle " "tremors." msgstr "" -" Um biônico mal-cabeado que falha em atender ao seu propósito, " -"estedispositivo com defeito periodicamente provoca curto-circuito, " -"causandotremores sistêmicos nos músculos." #: lang/json/bionic_from_json.py msgid "Electroshock Unit" -msgstr "Unidade de Eletrochoque" +msgstr "" #: lang/json/bionic_from_json.py msgid "Shockwave Generator" -msgstr "Gerador de Ondas de Choque" +msgstr "" #. ~ Description for Endocrine Enervator #: lang/json/bionic_from_json.py @@ -78558,14 +69451,10 @@ msgid "" "chemistry in such a way as to cause fatigue. You will find yourself tiring " "a bit faster than before." msgstr "" -" Através de uma combinação de manipulação psicoquímica e estimulaçãoelétrica" -" nervosa à moda antiga, esse biônico defeituoso altera sua químicacerebral " -"de forma a causar fadiga. Você se verá cansando um pouco maisrápido do que " -"antes." #: lang/json/bionic_from_json.py msgid "Solar Panels" -msgstr "Painéis solares" +msgstr "" #. ~ Description for Solar Panels #: lang/json/bionic_from_json.py @@ -78573,8 +69462,6 @@ msgid "" "You have a few solar panels surgically installed. While in direct sunlight," " your power level will slowly recharge." msgstr "" -" Você tem alguns painéis solares instalados cirurgicamente. Enquanto " -"estiversob a luz solar direta, seu nível de energia recarregará lentamente." #. ~ Description for Motor Control Overstimulator #: lang/json/bionic_from_json.py @@ -78584,15 +69471,10 @@ msgid "" " and writhing around at the least convenient times. This incorrectly-" "configured bionic periodically stuns you for a short duration." msgstr "" -" Um solenóide piezoelétrico foi instalado cirurgicamente para trás, doisfios" -" cruzados e quatro capacitores queimados depois que você começou a cairem " -"seu rosto e se contorcer nos momentos menos convenientes. Este " -"biônicoincorretamente configurado o atordoa periodicamente por um curto " -"período detempo." #: lang/json/bionic_from_json.py msgid "Synaptic Accelerator" -msgstr "Acelerador Sináptico" +msgstr "" #. ~ Description for Wire-Induced Stiffness #: lang/json/bionic_from_json.py @@ -78600,12 +69482,10 @@ msgid "" "Improperly installed wires cause a physical stiffness in most of your body, " "causing increased encumbrance." msgstr "" -" Fios instalados inadequadamente causam uma rigidez física na maior parte " -"docorpo, causando maior oneração." #: lang/json/bionic_from_json.py msgid "Muscle Augmentation" -msgstr "Aumento muscular" +msgstr "" #. ~ Description for Muscle Augmentation #: lang/json/bionic_from_json.py @@ -78613,12 +69493,10 @@ msgid "" "Your muscular system has been surgically enhanced with myomer fibers, giving" " you a +2 bonus to strength." msgstr "" -" Seu sistema muscular foi aumentado cirurgicamente com fibras de miomero, " -"dando-lhe um bônus de +2 na força." #: lang/json/bionic_from_json.py msgid "Autonomous Surgical Scalpels" -msgstr "Bisturis Cirúrgicos Autônomos" +msgstr "" #. ~ Description for Autonomous Surgical Scalpels #: lang/json/bionic_from_json.py @@ -78627,13 +69505,10 @@ msgid "" "allow you to make automated precise cuts. They can also be used as a high-" "quality butchering tool." msgstr "" -" Um sistema de bisturis de grau cirúrgico é implantado em seus dedos. " -"Elespermitem que você faça cortes precisos automatizados. Eles também podem " -"serusados como uma ferramenta de alta qualidade." #: lang/json/bionic_from_json.py msgid "Anti-Glare Compensators" -msgstr "Compensadores Anti-Brilho" +msgstr "" #. ~ Description for Anti-Glare Compensators #: lang/json/bionic_from_json.py @@ -78642,14 +69517,10 @@ msgid "" "them. They negate glare penalties, partially protect you from bright " "flashes, and protect your eyes when welding." msgstr "" -" Seus olhos têm lentes de transição de reação rápida " -"instaladascirurgicamente sobre elas. Eles negam as penalidades de reflexo, " -"protegemparcialmente contra flashes brilhantes e protegem seus olhos durante" -" asoldagem." #: lang/json/bionic_from_json.py msgid "Targeting System" -msgstr "Sistema de segmentação" +msgstr "" #. ~ Description for Targeting System #: lang/json/bionic_from_json.py @@ -78658,13 +69529,10 @@ msgid "" "synced with that of your arms, to a degree. Shots you fire will be much " "more accurate, particularly at long range." msgstr "" -" Seus olhos estão cirurgicamente equipados com telêmetros, e seu movimento " -"ésincronizado com o de seus braços, até certo ponto. Tiros que você " -"atiraserão muito mais precisos, particularmente a longa distância." #: lang/json/bionic_from_json.py msgid "Teleportation Unit" -msgstr "Unidade de Teletransporte" +msgstr "" #. ~ Description for Self-Locking Thumbs #: lang/json/bionic_from_json.py @@ -78673,18 +69541,14 @@ msgid "" " don't let go (even when you'd rather they did). Increases hand encumbrance" " by two, while failing to improve your ability to hold objects whatsoever." msgstr "" -" Os polegares com travamento automático ficam firmes (mesmo quando " -"vocêrealmente não quer) e não soltam (mesmo quando você preferir que eles " -"ofizessem). Aumenta o peso da mão em dois, ao mesmo tempo em que não " -"melhorasua habilidade de segurar objetos." #: lang/json/bionic_from_json.py msgid "Time Dilation" -msgstr "Dilatação do tempo" +msgstr "" #: lang/json/bionic_from_json.py msgid "Integrated Toolset" -msgstr "Conjunto de ferramentas integrado" +msgstr "" #. ~ Description for Integrated Toolset #: lang/json/bionic_from_json.py @@ -78707,7 +69571,7 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Joint Torsion Ratchet" -msgstr "Catraca de Torção Conjunta" +msgstr "" #. ~ Description for Joint Torsion Ratchet #: lang/json/bionic_from_json.py @@ -78716,10 +69580,6 @@ msgid "" "generate power slowly when you move. Whilst this is toggled, moving will " "require more effort, though more power will be generated." msgstr "" -" Suas articulações foram cirurgicamente equipadas com catracas de torção " -"quegeram energia lentamente quando você se move. Enquanto isso for " -"alternado, a movimentação exigirá mais esforço, embora mais energia seja " -"gerada." #: lang/json/bionic_from_json.py msgid "Joint Servo" @@ -78731,15 +69591,14 @@ msgid "" "A malfunctioning bionic which causes occasional visual distortion and " "pixelation." msgstr "" -" Um biônico com defeito que causa distorção visual e pixelização ocasionais." #: lang/json/bionic_from_json.py msgid "Uncanny Dodge" -msgstr "Esquiva Sobrenatural" +msgstr "" #: lang/json/bionic_from_json.py msgid "Internal Unified Power System" -msgstr "Sistema de energia unificado interno" +msgstr "" #. ~ Description for Voice Remodulator #: lang/json/bionic_from_json.py @@ -78748,18 +69607,14 @@ 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 "" -" Você provavelmente passará o resto de seus dias servindo como um testemunho" -" ambulante do porquê de você não optar pelo 'Pacote de Identidade Ciborgue' " -"do Autodoc. Uma unidade de remoduladores presa na suagarganta lhe deu uma " -"voz assustadora de robô." #: lang/json/bionic_from_json.py msgid "Internal Chronometer" -msgstr "Cronômetro Interno" +msgstr "" #: lang/json/bionic_from_json.py msgid "Water Extraction Unit" -msgstr "Unidade de extração de água" +msgstr "" #. ~ Description for Water Extraction Unit #: lang/json/bionic_from_json.py @@ -78769,14 +69624,10 @@ msgid "" "into drinkable water. You must, however, have a container to store the " "water in." msgstr "" -" Os nanotubos implantados cirurgicamente na palma da mão bombearão " -"qualquerfluido disponível de um corpo morto, limparão as impurezas e o " -"converterãoem água potável. Você deve, no entanto, ter um recipiente para " -"armazenar aágua." #: lang/json/bionic_from_json.py msgid "Intravenous Needletip" -msgstr "Needletip Intravenoso" +msgstr "" #. ~ Description for Intravenous Needletip #: lang/json/bionic_from_json.py @@ -78786,15 +69637,10 @@ msgid "" "tip of the finger when clenched. This lets you pump intravenous drugs like " "morphine directly into your bloodstream without needing to carry a syringe." msgstr "" -" A carne do interior do seu dedo médio foi substituída por um tubo que " -"levaàs suas artérias, com uma agulha retrátil que se estende para fora da " -"pontado dedo quando apertada. Isso permite que você bombeie drogas " -"intravenosas, como a morfina, diretamente para a corrente sanguínea sem " -"precisar carregaruma seringa." #: lang/json/bionic_from_json.py msgid "Titanium Skeletal Bracing" -msgstr "Suporte Ótico-Esquelético em Titânio" +msgstr "" #. ~ Description for Titanium Skeletal Bracing #: lang/json/bionic_from_json.py @@ -78803,13 +69649,10 @@ msgid "" "making them far better at handling strain. Your carrying capacity is " "increased by 20 kilograms, or about 44 pounds." msgstr "" -" A órtese de titânio foi instalada nos cotovelos, joelhos e coluna, o que " -"ostorna muito melhores em lidar com a tensão. Sua capacidade de carga " -"éaumentada em 20 quilos, ou cerca de 44 quilos." #: lang/json/bionic_from_json.py msgid "Kinetic Shock Absorbers" -msgstr "Absorventes de choque cinéticos" +msgstr "" #. ~ Description for Kinetic Shock Absorbers #: lang/json/bionic_from_json.py @@ -78820,11 +69663,6 @@ msgid "" "absorbers will prevent damage to your body from severe impacts, at the cost " "of impaired movement." msgstr "" -" A maior parte da carne em seus braços, pernas e parte superior do troncofoi" -" substituída por molas de força industrial e acolchoamento protetor. " -"Cerrando o punho permite dobrar e desdobrar este preenchimento; " -"enquantoativos, os absorvedores hidráulicos evitam danos ao seu corpo " -"causados porimpactos severos, ao custo de movimento prejudicado." #: lang/json/bionic_from_json.py msgid "Taste Modifier" @@ -78844,11 +69682,11 @@ msgstr "" #: lang/json/bionic_from_json.py msgid "Internal Furnace" -msgstr "Fornalha Interna" +msgstr "" #: lang/json/bionic_from_json.py msgid "Internal Storage" -msgstr "Armazenamento interno" +msgstr "" #. ~ Description for Internal Storage #: lang/json/bionic_from_json.py @@ -78856,8 +69694,6 @@ msgid "" "Space inside your chest cavity has been surgically converted into a storage " "area. You may carry an extra 2 liters of volume." msgstr "" -" O espaço dentro da cavidade torácica foi cirurgicamente convertido em " -"umaárea de armazenamento. Você pode levar mais 2 litros de volume." #. ~ Description for Solar Panels #: lang/json/bionic_from_json.py @@ -78926,7 +69762,7 @@ msgstr[1] "" #: lang/json/bionic_from_json.py msgid "Synaptic Regeneration System" -msgstr "Sistema de Regeneração Sináptico Gerador de Sobrecarga Iônica" +msgstr "" #. ~ Description for Synaptic Regeneration System #: lang/json/bionic_from_json.py @@ -78936,24 +69772,19 @@ msgid "" " active, you won't become sleep deprived; and if you're sleep deprived " "already, it will boost the rate of recovery while you sleep." msgstr "" -" Um estimulador eletromagnético foi implantado cirurgicamente na parte " -"detrás de sua cabeça e ao longo de sua coluna, continuamente " -"drenandoenergia. Enquanto estiver ativo, você não ficará privado de sono; e " -"se vocêjá estiver privado de sono, isso aumentará a taxa de recuperação " -"enquantovocê dorme." #: lang/json/bodypart_from_json.py msgid "torso" -msgstr "tronco" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "torso" -msgstr "tronco" +msgstr "" #: lang/json/bodypart_from_json.py msgid "Dodging and melee is hampered." -msgstr "Desviando e corpo a corpo é dificultado." +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp src/character.cpp #: src/debug_menu.cpp @@ -78969,12 +69800,12 @@ msgstr "TRONCO" #: lang/json/bodypart_from_json.py msgid "head" -msgstr "cabeça" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "head" -msgstr "cabeça" +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp src/character.cpp #: src/debug_menu.cpp @@ -78990,16 +69821,16 @@ msgstr "CABEÇA" #: lang/json/bodypart_from_json.py msgid "eyes" -msgstr "olhos" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "eyes" -msgstr "olhos" +msgstr "" #: lang/json/bodypart_from_json.py msgid "Ranged combat is hampered." -msgstr "Combate à distância é dificultado." +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "Eyes" @@ -79009,16 +69840,16 @@ msgstr[1] "" #: lang/json/bodypart_from_json.py msgid "mouth" -msgstr "Olhos boca" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "mouth" -msgstr "Olhos boca" +msgstr "" #: lang/json/bodypart_from_json.py msgid "Running is slowed." -msgstr "Correndo é retardado." +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "Mouth" @@ -79028,16 +69859,16 @@ msgstr[1] "" #: lang/json/bodypart_from_json.py msgid "left arm" -msgstr "Braço esquerdo da boca" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "left arm" -msgstr "Braço esquerdo da boca" +msgstr "" #: lang/json/bodypart_from_json.py msgid "Melee and ranged combat is hampered." -msgstr "Combate corpo a corpo e à distância é dificultado." +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "L. Arm" @@ -79051,12 +69882,12 @@ msgstr "BRÇ ES" #: lang/json/bodypart_from_json.py msgid "right arm" -msgstr "braço direito" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "right arm" -msgstr "braço direito" +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "R. Arm" @@ -79070,16 +69901,16 @@ msgstr "BRÇ DI" #: lang/json/bodypart_from_json.py msgid "left hand" -msgstr "mão esquerda" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "left hand" -msgstr "mão esquerda" +msgstr "" #: lang/json/bodypart_from_json.py msgid "Manual tasks are slowed." -msgstr "Tarefas manuais são retardadas." +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "L. Hand" @@ -79089,12 +69920,12 @@ msgstr[1] "" #: lang/json/bodypart_from_json.py msgid "right hand" -msgstr "L. Mão direita" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "right hand" -msgstr "L. Mão direita" +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "R. Hand" @@ -79104,16 +69935,16 @@ msgstr[1] "" #: lang/json/bodypart_from_json.py msgid "left leg" -msgstr "R. Mão esquerda" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "left leg" -msgstr "R. Mão esquerda" +msgstr "" #: lang/json/bodypart_from_json.py msgid "Running and swimming are slowed." -msgstr "Correr e nadar são retardados." +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "L. Leg" @@ -79127,12 +69958,12 @@ msgstr "PRN ES" #: lang/json/bodypart_from_json.py msgid "right leg" -msgstr "perna direita" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "right leg" -msgstr "perna direita" +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "R. Leg" @@ -79146,12 +69977,12 @@ msgstr "PRN DI" #: lang/json/bodypart_from_json.py msgid "left foot" -msgstr "pé esquerdo" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "left foot" -msgstr "pé esquerdo" +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "L. Foot" @@ -79161,12 +69992,12 @@ msgstr[1] "" #: lang/json/bodypart_from_json.py msgid "right foot" -msgstr "L. pé direito pé" +msgstr "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "right foot" -msgstr "L. pé direito pé" +msgstr "" #: lang/json/bodypart_from_json.py src/armor_layers.cpp msgid "R. Foot" @@ -79183,11 +70014,11 @@ msgstr[1] "" #: lang/json/bodypart_from_json.py msgctxt "bodypart_accusative" msgid "appendix" -msgstr "R. Apêndice apêndice pé" +msgstr "" #: lang/json/bodypart_from_json.py msgid "It's inflamed." -msgstr "Está inflamado." +msgstr "" #: lang/json/construction_category_from_json.py src/advanced_inv.cpp #: src/armor_layers.cpp src/options.cpp src/scenario.cpp @@ -79229,7 +70060,7 @@ msgstr "Outros" #: lang/json/construction_category_from_json.py #: lang/json/keybinding_from_json.py src/construction.cpp src/veh_interact.cpp msgid "Filter" -msgstr "Filtro" +msgstr "" #: lang/json/construction_from_json.py msgid "Deconstruct Furniture" @@ -79237,13 +70068,11 @@ msgstr "Desmontar Móvel" #: lang/json/construction_from_json.py msgid "Deconstruct Simple Furniture" -msgstr "Desconstruir Móveis Simples" +msgstr "" #: lang/json/construction_from_json.py msgid "Certain terrain and furniture can be deconstructed without any tools." msgstr "" -" Determinados terrenos e móveis podem ser desconstruídos sem " -"quaisquerferramentas." #: lang/json/construction_from_json.py msgid "Make crafting spot" @@ -79276,11 +70105,11 @@ msgstr "Construir Abrigo Improvisado" #: lang/json/construction_from_json.py msgid "Build Door Curtain" -msgstr "Construir cortina de porta" +msgstr "" #: lang/json/construction_from_json.py msgid "Can be deconstructed without tools." -msgstr "Pode ser desconstruído sem ferramentas." +msgstr "" #: lang/json/construction_from_json.py msgid "Build Beaded Curtain" @@ -79288,7 +70117,7 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Makeshift Door" -msgstr "Construir Porta Temporária" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Door" @@ -79320,11 +70149,11 @@ msgstr "Limpar Janela de Vidro Quebrada" #: lang/json/construction_from_json.py msgid "Tape Up Window" -msgstr "Tape Up Window" +msgstr "" #: lang/json/construction_from_json.py msgid "Remove Tape from Window" -msgstr "Remova a fita da janela" +msgstr "" #: lang/json/construction_from_json.py msgid "Board Up Window" @@ -79344,11 +70173,11 @@ msgstr "Construir Barras de Metal" #: lang/json/construction_from_json.py msgid "Build Wattle-and-Daub Wall" -msgstr "Construir parede Wattle-and-Daub" +msgstr "" #: lang/json/construction_from_json.py msgid "Repair Wattle-and-Daub Wall" -msgstr "Reparar parede Wattle-and-Daub" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Wood Wall" @@ -79376,7 +70205,7 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Metal Wall" -msgstr "Construir parede de metal" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Brick Wall" @@ -79412,11 +70241,11 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Metal Roof" -msgstr "Construir telhado de metal" +msgstr "" #: lang/json/construction_from_json.py msgid "Must be supported on at least two sides." -msgstr "Deve ser suportado em pelo menos dois lados." +msgstr "" #: lang/json/construction_from_json.py msgid "Build Concrete Roof" @@ -79444,7 +70273,7 @@ msgstr "Construir Teto" #: lang/json/construction_from_json.py msgid "Build Thatched Roof" -msgstr "Construa telhado de palha" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Log & Sod Roof" @@ -79459,9 +70288,6 @@ msgid "" "Can be deconstructed without tools. Must be adjacent to a palisade wall " "that is itself adjacent to a palisade gate in order to open said gate." msgstr "" -" Pode ser desconstruído sem ferramentas. Deve ser adjacente a uma parede " -"depaliçada que seja adjacente a um portão de paliçada para abrir o " -"ditoportão." #: lang/json/construction_from_json.py msgid "Build Palisade Gate" @@ -79472,8 +70298,6 @@ msgid "" "Must be between palisade walls to function, and at least one wall must have " "an adjacent rope & pulley system." msgstr "" -" Deve estar entre paredes de paliçada para funcionar e pelo menos uma " -"parededeve ter um sistema de corda e polia adjacente." #: lang/json/construction_from_json.py msgid "Build Fence Posts" @@ -79489,7 +70313,7 @@ msgstr "Construir Portão de Cerca" #: lang/json/construction_from_json.py msgid "Build Rope Fence" -msgstr "Construir cerca de corda" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Wire Fence" @@ -79497,19 +70321,19 @@ msgstr "Construir Cerca de Arame" #: lang/json/construction_from_json.py msgid "Build Barbed Wire Fence" -msgstr "Construir cerca de arame farpado" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Chainlink Fence" -msgstr "Construir cerca de arame farpado" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Chainlink Gate" -msgstr "Construa o Portão Chainlink" +msgstr "" #: lang/json/construction_from_json.py msgid "Needs to be supported on both sides by fencing, walls, etc." -msgstr "Precisa ser apoiado em ambos os lados por cercas, paredes, etc." +msgstr "" #: lang/json/construction_from_json.py msgid "Build Chickenwire Fence" @@ -79529,11 +70353,11 @@ msgstr "Construir Caixa" #: lang/json/construction_from_json.py msgid "Build Coffin" -msgstr "Construir Caixão" +msgstr "" #: lang/json/construction_from_json.py msgid "Seal Coffin" -msgstr "Caixão do Selo" +msgstr "" #: lang/json/construction_from_json.py msgid "Dig Grave and Bury Sealed Coffin" @@ -79541,7 +70365,7 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Bulletin Board" -msgstr "Construa o quadro de avisos" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Dresser" @@ -79561,7 +70385,7 @@ msgstr "Construir Rack de Metal" #: lang/json/construction_from_json.py msgid "Build Coat Rack" -msgstr "Construir Cabideiro" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Cupboard" @@ -79593,7 +70417,7 @@ msgstr "Construir Cadeira" #: lang/json/construction_from_json.py msgid "Build Stool" -msgstr "Construir fezes" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Bench" @@ -79841,19 +70665,19 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Cut Grass" -msgstr "Cortar grama" +msgstr "" #: lang/json/construction_from_json.py msgid "Remove Grass" -msgstr "Remover grama" +msgstr "" #: lang/json/construction_from_json.py msgid "Extract Sand" -msgstr "Extrato De Areia" +msgstr "" #: lang/json/construction_from_json.py msgid "Extract Clay" -msgstr "Extrato de argila" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Charcoal Kiln" @@ -79865,31 +70689,31 @@ msgstr "Construir Carvoaria de Metal " #: lang/json/construction_from_json.py msgid "Build Smoking Rack" -msgstr "Construir Rack de fumar" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Rock Forge" -msgstr "Construa Rock Forge" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Clay Kiln" -msgstr "Construir forno de argila" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Reinforced Glass Window" -msgstr "Construa a janela de vidro reforçada" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Root Cellar" -msgstr "Construir Cellar Root" +msgstr "" #: lang/json/construction_from_json.py msgid "You need a deep pit to construct a root cellar." -msgstr "Você precisa de um buraco profundo para construir uma adega." +msgstr "" #: lang/json/construction_from_json.py msgid "Mark firewood source" -msgstr "Mark fonte de lenha" +msgstr "" #: lang/json/construction_from_json.py msgid "" @@ -79898,48 +70722,40 @@ msgid "" "light during long-running tasks that require it such as crafting or reading," " but not (for example) if you are simply waiting nearby." msgstr "" -" A lenha ou outros materiais inflamáveis em uma telha próxima marcada " -"destamaneira podem ser usados para reabastecer automaticamente os incêndios." -" Isso será feito para manter a luz durante tarefas demoradas que o exigem, " -"como a criação ou a leitura, mas não (por exemplo) se você " -"simplesmenteestiver esperando nas proximidades." #: lang/json/construction_from_json.py msgid "Mark practice target" -msgstr "Marcar alvo de prática" +msgstr "" #: lang/json/construction_from_json.py msgid "" "Mark a spot for target practice. Firing will automatically target the first" " practice target location found in gun range, if no enemies are around." msgstr "" -" Marque um ponto para a prática de tiro ao alvo. O disparo " -"iráautomaticamente atingir o primeiro local de treino encontrado no alcance " -"daarma, se não houver inimigos por perto." #: lang/json/construction_from_json.py msgid "Build Butchering Rack" -msgstr "Construa o Butchering Rack" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Junk Metal Barrier" -msgstr "Construa Barreira de Metal Lixo" +msgstr "" #: lang/json/construction_from_json.py msgid "Reinforce Junk Metal Wall using bolts" -msgstr "Reforce a parede de metal de sucata usando parafusos" +msgstr "" #: lang/json/construction_from_json.py msgid "Reinforce Junk Metal Wall using spot-welds" -msgstr "Reforce a parede de metal não refinado usando soldas por pontos" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Junk Metal Floor" -msgstr "Construir Chão De Metal Lixo" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Pillow Fort" -msgstr "Construa o forte do travesseiro" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Cardboard Fort" @@ -79947,7 +70763,7 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Fire Ring" -msgstr "Construir anel de fogo" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Rammed Earth Wall" @@ -79983,11 +70799,11 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Build Pine Lean-To" -msgstr "Construa Pine Lean-To" +msgstr "" #: lang/json/construction_from_json.py msgid "Build Tarp Lean-To" -msgstr "Construa o Lean-To do Tarp" +msgstr "" #: lang/json/construction_from_json.py msgid "Dig a Shallow Pit" @@ -80040,112 +70856,111 @@ msgstr "" #: lang/json/construction_from_json.py msgid "Harvest Blob Feed from Corpse Pit: Smash to Harvest" msgstr "" -" Alimentação de colmeia de colheita do poço de cadáver: quebra a colheita" #: lang/json/construction_from_json.py msgid "Harvest Blob Feed from Slime: Smash to Harvest" -msgstr "Feed Blob Harvest de Slime: Smash para Colheita" +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about lizards." -msgstr "Você tem um sonho estranho sobre lagartos." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange scaly feeling." -msgstr "Seus sonhos lhe dão uma estranha sensação escamosa." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You have a strange dream about being a patient in a frightening hospital." -msgstr "Você tem um sonho estranho em ser paciente em um hospital assustador." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you an oddly medicated feeling." -msgstr "Seus sonhos lhe dão uma sensação estranhamente medicada." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about birds." -msgstr "Você tem um sonho estranho sobre pássaros." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange feathered feeling." -msgstr "Seus sonhos lhe dão uma estranha sensação de penas." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about fish." -msgstr "Você tem um sonho estranho sobre peixe." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange wet, scaly feeling." -msgstr "Seus sonhos lhe dão um estranho sentimento molhado e escamoso." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about animals." -msgstr "Você tem um sonho estranho sobre animais." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange furry feeling." -msgstr "Seus sonhos lhe dão um sentimento estranho e peludo." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about bears." -msgstr "Você tem um sonho estranho sobre ursos." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a rough furry feeling." -msgstr "Seus sonhos lhe dão uma sensação de pavor." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about cats." -msgstr "Você tem um sonho estranho sobre gatos." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a sleek furry feeling." -msgstr "Seus sonhos lhe dão uma sensação elegante e peluda." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about wolves." -msgstr "Você tem um sonho estranho sobre lobos." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a thick furry feeling." -msgstr "Seus sonhos lhe dão uma sensação grossa e peluda." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about cattle." -msgstr "Você tem um sonho estranho sobre gado." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange content, furry feeling." -msgstr "Seus sonhos lhe dão um conteúdo estranho, sentimento peludo." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about insects." -msgstr "Você tem um sonho estranho sobre insetos." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange chitinous feeling." -msgstr "Seus sonhos lhe dão um sentimento quitinoso estranho." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about plants." -msgstr "Você tem um sonho estranho sobre plantas." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange plantlike feeling." -msgstr "Seus sonhos lhe dão um estranho sentimento de planta." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about slime." -msgstr "Você tem um sonho estranho sobre o lodo." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange slimy feeling." -msgstr "Seus sonhos lhe dão um sentimento estranho e viscoso." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about living in a cave." -msgstr "Você tem um sonho estranho em morar numa caverna." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange reclusive feeling." @@ -80153,781 +70968,674 @@ msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about sea creatures." -msgstr "Você tem um sonho estranho sobre criaturas do mar." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange wet feeling." -msgstr "Seus sonhos lhe dão um estranho sentimento molhado." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about spiders." -msgstr "Você tem um sonho estranho sobre aranhas." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange webbed feeling." -msgstr "Seus sonhos lhe dão uma estranha sensação de palidez." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream about rats." -msgstr "Você tem um sonho estranho sobre ratos." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams give you a strange fuzzy feeling." -msgstr "Seus sonhos lhe dão um sentimento estranho e confuso." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream." -msgstr "Você tem um sonho estranho." +msgstr "" #: lang/json/dream_from_json.py msgid "You feel... OK." -msgstr "Você se sente ... OK." +msgstr "" #: lang/json/dream_from_json.py msgid "You feel a yearning..." -msgstr "Você sente um desejo ..." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream about the zoo, for some reason." -msgstr "Você sonha com o zoológico, por algum motivo." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams... are complex and multifaceted." -msgstr "Seus sonhos são complexos e multifacetados." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of the tropics." -msgstr "Você sonha com os trópicos." +msgstr "" #: lang/json/dream_from_json.py msgid "You feel warm." -msgstr "Você se sente quente." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of a massive block of cheese bigger than you." -msgstr "Você sonha com um enorme bloco de queijo maior que você." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of being cozy in a dark place." -msgstr "Você sonha em ser aconchegante em um lugar escuro." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of a strange quest for a bush that grows gray apples." msgstr "" -" Você sonha com uma estranha busca por um arbusto que cresce maçãscinzentas." #: lang/json/dream_from_json.py msgid "You feel like you're cracking a combination lock." msgstr "" -"Você se sente como se estivesse quebrando uma fechadura de combinação." #: lang/json/dream_from_json.py msgid "Red, blue, and yellow cancel each other out, don't they?" -msgstr "Vermelho, azul e amarelo cancelam um ao outro, não é?" +msgstr "" #: lang/json/dream_from_json.py msgid "Red, blue, and yellow add together, don't they?" -msgstr "Vermelho, azul e amarelo somam, não é?" +msgstr "" #: lang/json/dream_from_json.py msgid "You have a disturbing dream of bathing in the sun on a rock." -msgstr "Você tem um sonho perturbador de tomar banho de sol em uma rocha." +msgstr "" #: lang/json/dream_from_json.py msgid "" "While dreaming, you see a distinctively lizard-like reflection of yourself." -msgstr "Enquanto sonha, você vê um reflexo característico de um lagarto." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a disturbing dream of undergoing strange medical procedures." msgstr "" -" Você tem um sonho perturbador de passar por procedimentos médicosestranhos." #: lang/json/dream_from_json.py msgid "" "While dreaming, you see yourself dressed in a hospital gown, receiving " "treatment." msgstr "" -" Enquanto sonha, você se vê vestindo uma roupa de hospital, " -"recebendotratamento." #: lang/json/dream_from_json.py msgid "You have strange dreams of soaring through the sky." -msgstr "Você tem sonhos estranhos de voar pelo céu." +msgstr "" #: lang/json/dream_from_json.py msgid "In a dream, you see a curiously birdlike reflection of yourself." -msgstr "Em um sonho, você vê um reflexo curiosamente parecido com um pássaro." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of swimming in the open ocean" -msgstr "Você sonha em nadar em mar aberto" +msgstr "" #: lang/json/dream_from_json.py msgid "In your dream, you see a strangely fishlike image of yourself." msgstr "" -" Em seu sonho, você vê uma imagem estranhamente semelhante a um peixe de " -"simesmo." #: lang/json/dream_from_json.py msgid "You have a vivid dream of hunting in the woods." -msgstr "Você tem um sonho vívido de caçar na floresta." +msgstr "" #: lang/json/dream_from_json.py msgid "Whilst dreaming, you see a disturbingly bestial version of yourself." msgstr "" -" Enquanto sonha, você vê uma versão perturbadoramente bestial de si mesmo." #: lang/json/dream_from_json.py msgid "You dream of foraging in the woods... mouth-first?" -msgstr "Você sonha em procurar comida na floresta ... boca primeiro?" +msgstr "" #: lang/json/dream_from_json.py msgid "Your dream-reflection is rather bearish." -msgstr "Sua reflexão de sonho é bastante baixa." +msgstr "" #: lang/json/dream_from_json.py msgid "You easily bound from the street to a roof..oh, only a dream." -msgstr "Você facilmente ligou da rua para um telhado ... oh, apenas um sonho." +msgstr "" #: lang/json/dream_from_json.py msgid "As you dream, your reflection looks rather catlike." -msgstr "Enquanto você sonha, seu reflexo parece um pouco felino." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a disturbing dream of someone invading your territory." -msgstr "Você tem um sonho perturbador de alguém invadir seu território." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dream-self's muzzle looks... wait, muzzle?" -msgstr "O focinho do seu sonho parece ... espere, focinho?" +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of grazing in an open field." -msgstr "Você sonha em pastar em um campo aberto." +msgstr "" #: lang/json/dream_from_json.py msgid "" "In a dream you catch a glimpse of a strangely cattle-like image of yourself." msgstr "" -" Em um sonho, você tem um vislumbre de uma estranha imagem de gado de " -"simesmo." #: lang/json/dream_from_json.py msgid "You have a dream of working in a hive." -msgstr "Você tem um sonho de trabalhar em uma colmeia." +msgstr "" #: lang/json/dream_from_json.py msgid "" "While dreaming you look into a mirror and see a frighteningly insectoid " "reflection." msgstr "" -" Enquanto sonha, você olha em um espelho e vê uma reflexão " -"assustadoramenteinsectóide." #: lang/json/dream_from_json.py msgid "You have a confusing dream of growing in a garden." -msgstr "Você tem um sonho confuso de crescer em um jardim." +msgstr "" #: lang/json/dream_from_json.py msgid "You are confused by a plantlike image of yourself in a dream." -msgstr "Você está confuso com uma imagem vegetal de si mesmo em um sonho." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream of living in sludge." -msgstr "Você tem um estranho sonho de viver em lama." +msgstr "" #: lang/json/dream_from_json.py msgid "In your dream you see an odd, slimy reflection of yourself." -msgstr "Em seu sonho, você vê um reflexo estranho e viscoso de si mesmo." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of living deep inside a dark cave." -msgstr "Você sonha em viver dentro de uma caverna escura." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of being a primitive cave dweller." -msgstr "Você sonha em ser um morador de caverna primitivo." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of living on the ocean floor." -msgstr "Você sonha em viver no fundo do oceano." +msgstr "" #: lang/json/dream_from_json.py msgid "" "While dreaming, a reflection of yourself appears almost like an octopus." -msgstr "Enquanto sonha, um reflexo de si mesmo parece quase um polvo." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a strange dream of spinning webs" -msgstr "Você tem um sonho estranho de teias de fiação" +msgstr "" #: lang/json/dream_from_json.py msgid "In your dream you see a very spiderlike version of yourself." -msgstr "Em seu sonho, você vê uma versão muito aranha de si mesmo." +msgstr "" #: lang/json/dream_from_json.py msgid "You vividly dream of living in the sewers." -msgstr "Você sonha vividamente em viver nos esgotos." +msgstr "" #: lang/json/dream_from_json.py msgid "In your dream you see a group of rats that look almost like yourself." -msgstr "Em seu sonho você vê um grupo de ratos que parecem quase como você." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You dream of having that success you knew you deserved, back before all " "this." msgstr "" -" Você sonha em ter esse sucesso que você sabia que merecia, antes de " -"tudoisso." #: lang/json/dream_from_json.py msgid "Your dream-self looks competent and in control." -msgstr "O seu eu onírico parece competente e controlado." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of a home in the forests." -msgstr "Você sonha com uma casa nas florestas." +msgstr "" #: lang/json/dream_from_json.py msgid "You feel beautiful, and yet riven with worry..." -msgstr "Você se sente bonita, e ainda dividido de preocupação ..." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You can't quite work out what the dream is about... it just keeps changing." msgstr "" -" Você não consegue descobrir o que é o sonho ... ele simplesmente " -"continuamudando." #: lang/json/dream_from_json.py msgid "Your dream is filled with creatures, and yet all seem like you." -msgstr "Seu sonho é cheio de criaturas e, no entanto, tudo parece com você." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You dream of stalking some sort of lizard... no, that can't be right, can " "it?" msgstr "" -" Você sonha em perseguir algum tipo de lagarto ... não, isso não pode " -"estarcerto, pode?" #: lang/json/dream_from_json.py msgid "" "For some reason you dream of your shoes. They don't fit, and nothing seems " "to help..." msgstr "" -" Por algum motivo você sonha com seus sapatos. Eles não se encaixam e " -"nadaparece ajudar ..." #: lang/json/dream_from_json.py msgid "You dream of... sneaking." -msgstr "Você sonha em ... se esgueirar." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of a cold winter night. Your jacket is too big to put on." msgstr "" -" Você sonha com uma noite fria de inverno. Sua jaqueta é muito grande " -"paraser colocada." #: lang/json/dream_from_json.py msgid "You are terrified by a dream of becoming a lizard hybrid." msgstr "" -" Você está aterrorizado com o sonho de se tornar um híbrido de lagartos." #: lang/json/dream_from_json.py msgid "You have a disturbingly lifelike dream of living as a lizard." msgstr "" -"Você tem um sonho perturbadoramente realista de viver como um lagarto." #: lang/json/dream_from_json.py msgid "" "You have a dream of doctors and nurses doing unnatural things to your body, " "which brings you perverse pleasure." msgstr "" -" Você tem um sonho de médicos e enfermeiras fazendo coisas não naturais " -"aoseu corpo, o que lhe traz prazer perverso." #: lang/json/dream_from_json.py msgid "" "You have a vivid dream of being a medical anomaly, as your heartbeat syncs " "with the steady drip of an IV line." msgstr "" -" Você tem um sonho vívido de ser uma anomalia médica, pois seu " -"batimentocardíaco sincroniza com o gotejamento constante de uma linha " -"intravenosa." #: lang/json/dream_from_json.py msgid "" "You have a realistic dream of flying south with your flock for the winter." msgstr "" -" Você tem um sonho realista de voar para o sul com o seu bando para " -"oinverno." #: lang/json/dream_from_json.py msgid "" "You are disturbed when your birdlike dreams are more lifelike than reality." msgstr "" -" Você fica perturbado quando seus sonhos de passarinho são mais vivos do " -"quea realidade." #: lang/json/dream_from_json.py msgid "You have a disturbing dream of swimming with a school of fish." -msgstr "Você tem um sonho perturbador de nadar com um cardume de peixes." +msgstr "" #: lang/json/dream_from_json.py msgid "When you wake up you panic about drowning from being out of water." msgstr "" -" Quando você acorda, você entra em pânico por se afogar por estar fora " -"daágua." #: lang/json/dream_from_json.py msgid "You vividly dream of running with your pack, hunting a wild animal." msgstr "" -" Você sonha vividamente em correr com seu bando, caçando um animal selvagem." #: lang/json/dream_from_json.py msgid "A terrifyingly real dream has you killing game with your bare teeth." msgstr "" -" Um sonho terrivelmente real, você está matando o jogo com seus dentes nus." #: lang/json/dream_from_json.py msgid "" "Your dream of raiding a giant beehive has you licking your... muzzle in " "anticipation." msgstr "" -" Seu sonho de invadir uma colméia gigante te lambeu seu ... focinho " -"emantecipação." #: lang/json/dream_from_json.py msgid "" "In your dream, you stalk and kill a young wolf, using only your teeth and " "claws." msgstr "" -" Em seu sonho, você persegue e mata um jovem lobo, usando apenas seus " -"dentese garras." #: lang/json/dream_from_json.py msgid "" "A warm, sunny spot high up where you can watch your prey. What a great " "dream!" msgstr "" -" Um local quente e ensolarado no alto, onde você pode assistir sua presa. " -"Que grande sonho!" #: lang/json/dream_from_json.py msgid "You dream of pursuing and killing a rat, for some reason." -msgstr "Você sonha em perseguir e matar um rato, por algum motivo." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of tearing into a fresh kill." -msgstr "Você sonha em rasgar em uma matança nova." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of finally finding the perfect place to make your den." msgstr "" -" Você sonha em finalmente encontrar o lugar perfeito para fazer sua guarida." #: lang/json/dream_from_json.py msgid "You terrifyingly dream of being led to a slaughterhouse by a farmer." msgstr "" -" Você sonha terrivelmente em ser levado a um matadouro por um fazendeiro." #: lang/json/dream_from_json.py msgid "You find it hard to wake from a vivid dream of grazing on a farm." msgstr "" -"Você acha difícil acordar de um sonho vívido de pastar em uma fazenda." #: lang/json/dream_from_json.py msgid "You are terrified by a dream of serving the hive queen mindlessly." msgstr "" -" Você está aterrorizado por um sonho de servir a rainha da colmeia " -"sempensar." #: lang/json/dream_from_json.py msgid "Your disturbingly lifelike dream has you pollinating plants." -msgstr "Seu sonho perturbadoramente realista tem plantas polinizadoras." +msgstr "" #: lang/json/dream_from_json.py msgid "You have a confusing and scary dream of becoming a plant." -msgstr "Você tem um sonho confuso e assustador de se tornar uma planta." +msgstr "" #: lang/json/dream_from_json.py msgid "" "The transition from your lifelike dreams of living as a plant to reality " "shocks you." msgstr "" -" A transição do seu sonho de viver como uma planta para a realidade techoca." #: lang/json/dream_from_json.py msgid "Your vivid dream of living as a slime blob frightens you." -msgstr "Seu sonho vívido de viver como uma mancha de lodo o assusta." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You find it hard to control your limbs after dreaming of amorphous blob " "life." msgstr "" -" Você acha difícil controlar seus membros depois de sonhar com a vida " -"amorfada bolha." #: lang/json/dream_from_json.py msgid "Your dream of living in the dark for years is almost real." -msgstr "Seu sonho de viver no escuro por anos é quase real." +msgstr "" #: lang/json/dream_from_json.py msgid "You are frightened of the outside after your vivid dream of cave life." msgstr "" -" Você está com medo do lado de fora depois de seu sonho vívido da vida " -"dacaverna." #: lang/json/dream_from_json.py msgid "" "Your dreams of living on the ocean floor seem more lifelike than reality." msgstr "" -" Seus sonhos de viver no fundo do oceano parecem mais reais que a realidade." #: lang/json/dream_from_json.py msgid "You dream of living as a terrifying octopus mutant." -msgstr "Você sonha em viver como um mutante polvo aterrorizante." +msgstr "" #: lang/json/dream_from_json.py msgid "You vividly dream of living in a web and consuming insects." -msgstr "Você sonha vividamente em viver em uma teia e consumir insetos." +msgstr "" #: lang/json/dream_from_json.py msgid "Your dreams of fully turning into a spider frighten you." -msgstr "Seus sonhos de se transformar em uma aranha assustam você." +msgstr "" #: lang/json/dream_from_json.py msgid "You scream in fear while you dream of being chased by a cat" -msgstr "Você grita de medo enquanto você sonha em ser perseguido por um gato" +msgstr "" #: lang/json/dream_from_json.py msgid "Your lifelike dreams have you scavenging food with a pack of rats." msgstr "" -" Seus sonhos naturais fazem com que você remexer alimentos com um pacote " -"deratos." #: lang/json/dream_from_json.py msgid "" "You see yourself, five years from now, as the leader of a successful city." -msgstr "Você se vê, daqui a cinco anos, como líder de uma cidade de sucesso." +msgstr "" #: lang/json/dream_from_json.py msgid "Your success in restoring civilization was only a dream. For now." msgstr "" -" Seu sucesso em restaurar a civilização foi apenas um sonho. Para agora." #: lang/json/dream_from_json.py msgid "NO! You will not allow this corruption to prevail!" -msgstr "NÃO! Você não permitirá que esta corrupção prevaleça!" +msgstr "" #: lang/json/dream_from_json.py msgid "You see yourself reflected in the beauty of the forest." -msgstr "Você se vê refletido na beleza da floresta." +msgstr "" #: lang/json/dream_from_json.py msgid "You are many animals, and yet one." -msgstr "Vocês são muitos animais e ainda um." +msgstr "" #: lang/json/dream_from_json.py msgid "Hoof. Talon. Tooth. Fight. Feed. Forward." -msgstr "Casco. Talon Dente. Luta. Alimentação. Frente." +msgstr "" #: lang/json/dream_from_json.py msgid "You've never felt so lithe and powerful." -msgstr "Você nunca se sentiu tão ágil e poderoso." +msgstr "" #: lang/json/dream_from_json.py msgid "" "After an exciting and tasty hunt, you retire to your nest. Mmm, yes, nest." msgstr "" -" Depois de uma caçada emocionante e saborosa, você se retira para o " -"seuninho. Mmm, sim, ninho." #: lang/json/dream_from_json.py msgid "" "You weave between the zombies' legs, too small for them to catch. The gas " "station isn't far now, with all its soda and chips and- UGH, dream..." msgstr "" -" Você tece entre as pernas dos zumbis, pequeno demais para eles pegarem. " -"Oposto de gasolina não está longe agora, com todo o seu refrigerante " -"ebatatas fritas e ... UGH, sonhe ..." #: lang/json/dream_from_json.py msgid "" "Once you finish your tasty dinner of seeds, you look around for your drink, " "but you already ate it." msgstr "" -" Depois de terminar o saboroso jantar de sementes, você procura a suabebida," -" mas já a comeu." #: lang/json/dream_from_json.py msgid "You are terrified by a dream of becoming an ape hybrid." msgstr "" -" Você está aterrorizado por um sonho de se tornar um híbrido de macacos." #: lang/json/dream_from_json.py msgid "You blissfully recall days spent lounging in the sun." -msgstr "Você recorda alegremente os dias passados descansando ao sol." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You dream of your legions of undead admirers, their attentions, and the " "wonderful pain." msgstr "" -" Você sonha com suas legiões de admiradores mortos-vivos, suas atenções e " -"ador maravilhosa." #: lang/json/dream_from_json.py msgid "You wonder if your nest will be good enough." -msgstr "Você quer saber se o seu ninho será bom o suficiente." +msgstr "" #: lang/json/dream_from_json.py msgid "" "Your dream of soaring over the landscape becomes a nightmare when you find " "yourself with arms and a glider!" msgstr "" -" Seu sonho de voar sobre a paisagem se torna um pesadelo quando você " -"seencontra com braços e um planador!" #: lang/json/dream_from_json.py msgid "You have a comforting dream of swimming with a school of fish." -msgstr "Você tem um sonho reconfortante de nadar com um cardume de peixes." +msgstr "" #: lang/json/dream_from_json.py msgid "" "The thought of being out of water, forced to crawl unsupported, terrifies " "you." msgstr "" -" O pensamento de estar fora da água, forçado a engatinhar sem apoio, " -"aterroriza você." #: lang/json/dream_from_json.py msgid "You vividly dream of sharing a kill with your pack." -msgstr "Você sonha vividamente em compartilhar uma matança com seu bando." +msgstr "" #: lang/json/dream_from_json.py msgid "A fond memory of throating some prey animal bubbles up." -msgstr "Uma boa lembrança de garras de algumas presas." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You wonder if you could find one of those 'salmon runs', or if they were " "just a legend..." msgstr "" -" Você quer saber se você poderia encontrar um desses 'salmões', ouse" -" eles eram apenas uma lenda ..." #: lang/json/dream_from_json.py msgid "Ah, the wolf-slaying dream again. That's a good one..." -msgstr "Ah, o sonho de matar lobo novamente. Essa é boa..." +msgstr "" #: lang/json/dream_from_json.py msgid "Boing! and you've pounced another yummy critter." -msgstr "Boing! e você atacou outro bicho gostoso." +msgstr "" #: lang/json/dream_from_json.py msgid "" "Your nightmare of sentient rats turns successful, as you grab their King and" " shake it apart!" msgstr "" -" Seu pesadelo de ratos sencientes se torna bem sucedido, enquanto vocêagarra" -" seu Rei e o abala!" #: lang/json/dream_from_json.py msgid "You dream of the hunt, the feed, and your pack." -msgstr "Você sonha com a caça, o alimento e sua mochila." +msgstr "" #: lang/json/dream_from_json.py msgid "Oh, you should really patrol your territory again, maybe expand." -msgstr "Você deveria patrulhar seu território novamente, talvez expandir." +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of jumping the gate and leading your herd to freedom." -msgstr "Você sonha em pular o portão e levar seu rebanho à liberdade." +msgstr "" #: lang/json/dream_from_json.py msgid "The herd moves along and you with them, finding greener pastures." -msgstr "O rebanho se move e você com eles, encontrando pastos mais verdes." +msgstr "" #: lang/json/dream_from_json.py msgid "You feel smug, knowing that the Queen is dependent on you." -msgstr "Você se sente convencido, sabendo que a rainha é dependente de você." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You dream of a weirdly shaped plant, whose nectar surpassed your every " "wish..." msgstr "" -" Você sonha com uma planta de formas estranhas, cujo néctar superou todos " -"osseus desejos ..." #: lang/json/dream_from_json.py msgid "You dream of bees fighting over your sweet nectar. Mmm." -msgstr "Você sonha com abelhas brigando por seu doce néctar. Mmm" +msgstr "" #: lang/json/dream_from_json.py msgid "" "A rather attractive triffid offers you a bouquet of ape heads. How " "thoughtful!" msgstr "" -" Um triffid bastante atraente oferece-lhe um buquê de cabeças de macaco. " -"Quão atencioso!" #: lang/json/dream_from_json.py msgid "" "Your vivid dream of your pseudopods calcifying into rigid structures " "terrifies you." msgstr "" -" Seu sonho vívido de seus pseudópodes se calcificarem em estruturas rígidaso" -" aterroriza." #: lang/json/dream_from_json.py msgid "" "Ah, the painting-the-planet dream again. Maybe if you assimilated more..." msgstr "" -" Ah, a pintura do planeta sonha novamente. Talvez se você assimilou mais ..." #: lang/json/dream_from_json.py msgid "" "The years seem to fly past as you dream of carving great underground " "fastnesses." msgstr "" -" Os anos parecem voar enquanto você sonha em esculpir grandes " -"solavancossubterrâneos." #: lang/json/dream_from_json.py msgid "You have a horrible nightmare of being caught out in the sunlight." -msgstr "Você tem um pesadelo horrível de ser pego na luz do sol." +msgstr "" #: lang/json/dream_from_json.py msgid "Mmm. The shellfish dream again. Yum!" -msgstr "Mmm O marisco sonha novamente. Yum!" +msgstr "" #: lang/json/dream_from_json.py msgid "You dream of recruiting a cult of fishfolk to serve your needs." msgstr "" -" Você sonha em recrutar um culto de peixes para atender às suasnecessidades." #: lang/json/dream_from_json.py msgid "" "You excitedly web up an interloper and prepare to feast... nope, dream." msgstr "" -" Você empolga-se animadamente com um intruso e prepara-se para festejar " -"...não, sonhe." #: lang/json/dream_from_json.py msgid "Your dreams of having to live without a web frighten you." -msgstr "Seus sonhos de ter que viver sem uma te assustam." +msgstr "" #: lang/json/dream_from_json.py msgid "The Fury is so big! It's GONNA GET YOAAAAAH! *pant* only a dream." -msgstr "A fúria é tão grande! Vai ter YOAAAAAH! * pant * apenas um sonho." +msgstr "" #: lang/json/dream_from_json.py msgid "You find your paws twitching. There's a cave. You should go." msgstr "" -" Você encontra suas patas se contorcendo. Há uma caverna. Você deveria ir." #: lang/json/dream_from_json.py msgid "" "You dream of the peaceful world you'll give humankind. Because no one else " "can." msgstr "" -" Você sonha com o mundo pacífico que você vai dar à humanidade. " -"Porqueninguém mais pode." #: lang/json/dream_from_json.py msgid "There are underground Faults in the world. Faults you should remedy." -msgstr "Existem Falhas Subterrâneas no mundo. Falhas que você deve remediar." +msgstr "" #: lang/json/dream_from_json.py msgid "" "You pant, terrified at the thought of that FUNGUS destroying your home!" msgstr "" -" Você arfa, aterrorizado com o pensamento daquele fungo destruindo sua casa!" #: lang/json/dream_from_json.py msgid "You wish others could understand, and join your struggle..." -msgstr "Você deseja que os outros possam entender, e junte-se a sua luta ..." +msgstr "" #: lang/json/dream_from_json.py msgid "Your body flows slightly faster than you expected... oh, just a dream." msgstr "" -" Seu corpo flui um pouco mais rápido do que você esperava ... oh, apenas " -"umsonho." #: lang/json/dream_from_json.py msgid "FIGHT. FEED. FORWARD." -msgstr "LUTA. ALIMENTAÇÃO. FRENTE." +msgstr "" #: lang/json/dream_from_json.py msgid "Oh. No, that 'rex' thing was only a myth." -msgstr "Oh. Não, essa coisa de 'rex' era apenas um mito." +msgstr "" #: lang/json/dream_from_json.py msgid "You stir, saddened that your beautiful hatchlings were only a dream." msgstr "" -" Você se emociona, entristecido que seus lindos filhotes eram apenas " -"umsonho." #: lang/json/dream_from_json.py msgid "" "You curl up some more in your nest. Geez, shredded paper really *is* comfy." msgstr "" -" Você se enrosca um pouco mais no seu ninho. Nossa, papel picado realmente " -"*é * confortável." #: lang/json/dream_from_json.py msgid "" "You hear the sirens again, but this time you stay in your hole in the wall." " Nobody will think to look there!" msgstr "" -" Você ouve as sirenes novamente, mas desta vez você fica no seu buraco " -"naparede. Ninguém vai pensar em olhar para lá!" #: lang/json/dream_from_json.py msgid "We have been waiting a long time for a place such as this." -msgstr "Estamos esperando há muito tempo por um lugar como este." +msgstr "" #: lang/json/dream_from_json.py msgid "We will raise bountiful orchards and beautiful gardens." -msgstr "Vamos criar pomares abundantes e belos jardins." +msgstr "" #: lang/json/dream_from_json.py msgid "" "The walking plants seek to harness us as a food source. We will not allow " "that." msgstr "" -" As plantas andando procuram nos aproveitar como fonte de alimento. Nós " -"nãovamos permitir isso." #: lang/json/dream_from_json.py msgid "" "Our colonists are limitless. We shall adapt to this world, as we adapt to " "all." msgstr "" -" Nossos colonos são ilimitados. Vamos nos adaptar a este mundo, conforme " -"nosadaptamos a todos." #: lang/json/dream_from_json.py msgid "" "Non-Mycus sometimes reject the Marloss. Our colonial efforts flourish with " "broad-minded guidance." msgstr "" -" Não-Mycus às vezes rejeita o Marloss. Nossos esforços coloniais " -"florescemcom orientação ampla." #: lang/json/dream_from_json.py msgid "" "The seething masses attempt to wall non-Mycus away from the Marloss. We " "will adapt and defeat them." msgstr "" -" As massas fervilhantes tentam afastar o não-Mycus do Marloss. Vamos " -"nosadaptar e derrotá-los." #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." @@ -80995,15 +71703,13 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Hit By Player" -msgstr "Bata pelo jogador" +msgstr "" #. ~ Description of effect 'Hit By Player'. #: lang/json/effects_from_json.py msgid "" "AI tag for when monsters are hit by player. This is a bug if you have it." msgstr "" -" Etiqueta AI para quando os monstros são atingidos pelo jogador. Este é " -"umbug se você tiver." #: lang/json/effects_from_json.py msgid "Ridden" @@ -81027,18 +71733,16 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Docile Monster" -msgstr "Monstro dócil" +msgstr "" #. ~ Description of effect 'Docile Monster'. #: lang/json/effects_from_json.py msgid "AI tag for when monsters are tamed. This is a bug if you have it." msgstr "" -" Etiqueta AI para quando os monstros são domados. Este é um bug se " -"vocêtiver." #: lang/json/effects_from_json.py msgid "Controlled Monster" -msgstr "Monstro Controlado" +msgstr "" #. ~ Description of effect 'Controlled Monster'. #: lang/json/effects_from_json.py @@ -81046,12 +71750,10 @@ msgid "" "AI tag for when monsters are being controlled by another. This is a bug if " "you have it." msgstr "" -" Etiqueta AI para quando os monstros estão sendo controlados por outro. " -"Esteé um bug se você tiver." #: lang/json/effects_from_json.py msgid "Hit-and-run Running" -msgstr "Corrida de bater e correr" +msgstr "" #. ~ Description of effect 'Hit-and-run Running'. #: lang/json/effects_from_json.py @@ -81059,8 +71761,6 @@ msgid "" "AI tag for when hit-and-run monsters run away. This is a bug if you have " "it." msgstr "" -" Etiqueta AI para quando os monstros hit-and-run fogem. Este é um bug sevocê" -" tiver." #: lang/json/effects_from_json.py msgid "Dragging" @@ -81086,14 +71786,12 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Counting Down" -msgstr "Contagem decrescente" +msgstr "" #. ~ Description of effect 'Counting Down'. #: lang/json/effects_from_json.py msgid "AI tag for monster's counting down. This is a bug if you have it." msgstr "" -" Etiqueta AI para contagem regressiva de monstros. Este é um bug se " -"vocêtiver." #: lang/json/effects_from_json.py msgid "No ammo" @@ -81105,43 +71803,38 @@ msgid "" "AI tag used to stop a monster reviving with ammo. This is a bug if you have" " it." msgstr "" -" A tag AI costumava parar um monstro revivendo com munição. Este é um bug " -"sevocê tiver." #: lang/json/effects_from_json.py msgid "Asked to Lead" -msgstr "Solicitado para liderar" +msgstr "" #. ~ Description of effect 'Asked to Lead'. #: lang/json/effects_from_json.py msgid "AI tag for asking to lead NPCs. This is a bug if you have it." msgstr "" -"Etiqueta AI para pedir para liderar NPCs. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Asked to Follow" -msgstr "Pediu para seguir" +msgstr "" #. ~ Description of effect 'Asked to Follow'. #: lang/json/effects_from_json.py msgid "" "AI tag for asking to NPCs to follow you. This is a bug if you have it." msgstr "" -"AI tag para pedir aos NPCs para segui-lo. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Asked to Train" -msgstr "Pediu para treinar" +msgstr "" #. ~ Description of effect 'Asked to Train'. #: lang/json/effects_from_json.py msgid "AI tag for asking to NPCs to train you. This is a bug if you have it." msgstr "" -" AI tag para pedir aos NPCs para treiná-lo. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Asked to socialize" -msgstr "Pediu para socializar" +msgstr "" #. ~ Description of effect 'Asked to socialize'. #: lang/json/effects_from_json.py @@ -81149,8 +71842,6 @@ msgid "" "AI tag: for having recently asked an NPC to socialize. This is a bug if you" " have it." msgstr "" -" Etiqueta AI: por ter perguntado recentemente a um NPC para socializar. " -"Esteé um bug se você tiver." #: lang/json/effects_from_json.py msgid "Asked to hint" @@ -81165,7 +71856,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Asked Info" -msgstr "Perguntado Info" +msgstr "" #. ~ Description of effect 'Asked Info'. #: lang/json/effects_from_json.py @@ -81173,30 +71864,28 @@ msgid "" "AI tag for asking to NPCs for personal information. This is a bug if you " "have it." msgstr "" -" Etiqueta AI para pedir aos NPCs informações pessoais. Este é um bug se " -"vocêtiver." #: lang/json/effects_from_json.py msgid "Asked for Item" -msgstr "Pediu para o item" +msgstr "" #. ~ Description of effect 'Asked for Item'. #: lang/json/effects_from_json.py msgid "AI tag for asking NPCs for items. This is a bug if you have it." -msgstr "Etiqueta AI para pedir itens NPCs. Este é um bug se você tiver." +msgstr "" #: lang/json/effects_from_json.py msgid "Currently Busy" -msgstr "Atualmente ocupado" +msgstr "" #. ~ Description of effect 'Currently Busy'. #: lang/json/effects_from_json.py msgid "AI cooldown tag for items or services. This is a bug if you have it." -msgstr "AI cooldown tag para itens ou serviços. Este é um bug se você tiver." +msgstr "" #: lang/json/effects_from_json.py msgid "Already Gave Quest Item" -msgstr "Já deu Item de Missão" +msgstr "" #. ~ Description of effect 'Already Gave Quest Item'. #: lang/json/effects_from_json.py @@ -81204,40 +71893,33 @@ msgid "" "AI tag to prevent you from getting multiple quest items. This is a bug if " "you have it." msgstr "" -" Etiqueta AI para evitar que você receba vários itens de missão. Este é " -"umbug se você tiver." #: lang/json/effects_from_json.py msgid "Catch Up" -msgstr "Alcançar" +msgstr "" #. ~ Description of effect 'Catch Up'. #: lang/json/effects_from_json.py msgid "AI tag for telling NPCs to catch up. This is a bug if you have it." msgstr "" -" Etiqueta AI para dizer aos NPCs para os alcançar. Este é um bug se " -"vocêtiver." #: lang/json/effects_from_json.py msgid "Allow to Sleep" -msgstr "Permitir dormir" +msgstr "" #. ~ Description of effect 'Allow to Sleep'. #: lang/json/effects_from_json.py msgid "AI tag for telling NPCs to sleep. This is a bug if you have it." msgstr "" -" Etiqueta AI para dizer aos NPCs para dormir. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Said Something Recently" -msgstr "Disse algo recentemente" +msgstr "" #. ~ Description of effect 'Said Something Recently'. #: lang/json/effects_from_json.py msgid "AI tag to control NPC verbosity. This is a bug if you have it." msgstr "" -" Etiqueta AI para controlar a verbosidade do NPC. Este é um bug se " -"vocêtiver." #: lang/json/effects_from_json.py msgid "Running away!" @@ -81278,45 +71960,40 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Infection" -msgstr "Infecção" +msgstr "" #. ~ Description of effect 'Infection'. #: lang/json/effects_from_json.py msgid "AI tag used for the infected NPC quest. This is a bug if you have it." msgstr "" -" Etiqueta AI usada para a missão NPC infectada. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Pet" -msgstr "Animal" +msgstr "" #. ~ Description of effect 'Pet'. #: lang/json/effects_from_json.py msgid "AI tag used for pet critters. This is a bug if you have it." msgstr "" -" Etiqueta AI usada para bichinhos de estimação. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Pacified" -msgstr "Pacificado" +msgstr "" #. ~ Description of effect 'Pacified'. #: lang/json/effects_from_json.py msgid "AI tag used for pacified critters. This is a bug if you have it." msgstr "" -" Etiqueta AI usada para criaturas pacificadas. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Has Bag" -msgstr "Tem saco" +msgstr "" #. ~ Description of effect 'Has Bag'. #: lang/json/effects_from_json.py msgid "" "AI tag used for critters holding your bags. This is a bug if you have it." msgstr "" -" Etiqueta AI usada para criaturas segurando suas malas. Este é um bug sevocê" -" tiver." #: lang/json/effects_from_json.py msgid "Has Armor" @@ -81339,75 +72016,65 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Tied Up" -msgstr "Amarrado" +msgstr "" #. ~ Description of effect 'Tied Up'. #: lang/json/effects_from_json.py msgid "AI tag used for tied up critters. This is a bug if you have it." msgstr "" -" Etiqueta AI usada para criaturas amarradas. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Shrieking" -msgstr "Gritando" +msgstr "" #. ~ Description of effect 'Shrieking'. #: lang/json/effects_from_json.py msgid "AI tag used for screecher sounds. This is a bug if you have it." msgstr "" -"Etiqueta AI usada para sons de screecher. Este é um bug se você tiver." #: lang/json/effects_from_json.py msgid "Turret is Targeted" -msgstr "Torre é direcionada" +msgstr "" #. ~ Description of effect 'Turret is Targeted'. #: lang/json/effects_from_json.py msgid "" "AI tag used for turret targeting sounds. This is a bug if you have it." msgstr "" -" Etiqueta AI utilizada para sons de segmentação de torre. Este é um bug " -"sevocê tiver." #: lang/json/effects_from_json.py msgid "Bounced" -msgstr "Devolvido" +msgstr "" #. ~ Description of effect 'Bounced'. #: lang/json/effects_from_json.py msgid "" "AI tag used for bouncing ammo targeting. This is a bug if you have it." msgstr "" -" Etiqueta AI utilizada para saltar a meta de munições. Este é um bug se " -"vocêtiver." #: lang/json/effects_from_json.py msgid "Pushed" -msgstr "Empurrado" +msgstr "" #. ~ Description of effect 'Pushed'. #: lang/json/effects_from_json.py msgid "" "AI tag used for monsters pushing each other. This is a bug if you have it." msgstr "" -" Etiqueta AI usada para monstros que se empurram. Este é um bug se " -"vocêtiver." #: lang/json/effects_from_json.py msgid "Downed" -msgstr "Derrubado" +msgstr "" #. ~ Description of effect 'Downed'. #: lang/json/effects_from_json.py msgid "You're knocked to the ground. You have to get up before you can move." msgstr "" -" Você está derrubado no chão. Você tem que se levantar antes de poder " -"semover." #. ~ Apply message for effect(s) 'Downed'. #: lang/json/effects_from_json.py msgid "You're knocked to the floor!" -msgstr "Você está derrubado no chão!" +msgstr "" #: lang/json/effects_from_json.py msgid "Assisted" @@ -81431,7 +72098,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Winded" -msgstr "Sem fôlego" +msgstr "" #. ~ Description of effect 'Winded'. #: lang/json/effects_from_json.py @@ -81439,44 +72106,42 @@ msgid "" "You're short of breath. Running and fighting will be difficult until you " "recover." msgstr "" -" Você está com falta de ar. Correr e lutar será difícil até você " -"serecuperar." #. ~ Apply message for effect(s) 'Winded'. #: lang/json/effects_from_json.py msgid "Your breath gives out!" -msgstr "Sua respiração cede!" +msgstr "" #. ~ Remove message for effect(s) 'Winded'. #: lang/json/effects_from_json.py msgid "You catch your breath." -msgstr "Você recupera o fôlego." +msgstr "" #: lang/json/effects_from_json.py msgid "Your vision flickers and goes gray!" -msgstr "Sua visão cintila e fica cinza!" +msgstr "" #: lang/json/effects_from_json.py msgid "The world flickers back to normality." -msgstr "O mundo volta à normalidade." +msgstr "" #: lang/json/effects_from_json.py msgid "Stunned" -msgstr "Atordoado" +msgstr "" #. ~ Description of effect 'Stunned'. #: lang/json/effects_from_json.py msgid "Your movement is randomized." -msgstr "Seu movimento é aleatório." +msgstr "" #. ~ Apply message for effect(s) 'Stunned'. #: lang/json/effects_from_json.py msgid "You're stunned!" -msgstr "Você está atordoado!" +msgstr "" #: lang/json/effects_from_json.py msgid "Dazed" -msgstr "Dazed" +msgstr "" #. ~ Description of effect 'Dazed'. #: lang/json/effects_from_json.py @@ -81484,13 +72149,11 @@ msgid "" "You're visibly shaken up, and are having a hard time focusing on what's " "going on around you." msgstr "" -" Você está visivelmente abalado e está tendo dificuldade em se concentrar " -"noque está acontecendo ao seu redor." #. ~ Apply message for effect(s) 'Dazed'. #: lang/json/effects_from_json.py msgid "The scream dazes you!" -msgstr "O grito te enlouquece!" +msgstr "" #: lang/json/effects_from_json.py msgid "Riding" @@ -81508,7 +72171,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "On Fire" -msgstr "Em chamas" +msgstr "" #. ~ Description of effect 'On Fire'. #: lang/json/effects_from_json.py @@ -81516,104 +72179,100 @@ msgid "" "Loss of health - Entire Body\n" "Your clothing and other equipment may be consumed by the flames." msgstr "" -" Perda de saúde - corpo inteiro \n" -" Sua roupa e outros equipamentos podem serconsumidos pelas chamas.\n" #. ~ Apply message for effect(s) 'On Fire'. #: lang/json/effects_from_json.py msgid "You're on fire! Wait in place to attempt to put out the fire." -msgstr "Você está no fogo! Espere no lugar para tentar apagar o fogo." +msgstr "" #. ~ Male memorial apply log for effect(s) 'On Fire'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Caught on fire." -msgstr "Pegou fogo." +msgstr "" #. ~ Female memorial apply log for effect(s) 'On Fire'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Caught on fire." -msgstr "Pegou fogo." +msgstr "" #. ~ Male memorial remove log for effect(s) 'On Fire'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Put out the fire." -msgstr "Apagar o fogo." +msgstr "" #. ~ Female memorial remove log for effect(s) 'On Fire'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Put out the fire." -msgstr "Apagar o fogo." +msgstr "" #: lang/json/effects_from_json.py msgid "Unstable footing" -msgstr "Pé instável" +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 "Seu pé está instável. É mais difícil lutar em pé aqui." +msgstr "" #. ~ Apply message for effect(s) 'Unstable footing'. #: lang/json/effects_from_json.py msgid "You try to keep your balance." -msgstr "Você tenta manter seu equilíbrio." +msgstr "" #: lang/json/effects_from_json.py msgid "Blind" -msgstr "Cego" +msgstr "" #. ~ Description of effect 'Blind'. #: lang/json/effects_from_json.py msgid "Range of Sight: 0. You cannot see anything." -msgstr "Alcance da Visão: 0. Você não pode ver nada." +msgstr "" #. ~ Apply message for effect(s) 'Blind'. #: lang/json/effects_from_json.py msgid "You're blinded!" -msgstr "Você está cego!" +msgstr "" #. ~ Remove message for effect(s) 'Blind'. #: lang/json/effects_from_json.py msgid "Your sight returns!" -msgstr "Sua visão retorna!" +msgstr "" #: lang/json/effects_from_json.py msgid "Wearing earphones" -msgstr "Usando fones de ouvido" +msgstr "" #. ~ Description of effect 'Wearing earphones'. #: lang/json/effects_from_json.py msgid "You are wearing earphones and can't hear much from outside world." msgstr "" -" Você está usando fones de ouvido e não consegue ouvir muito do " -"mundoexterior." #: lang/json/effects_from_json.py msgid "Impaired hearing" -msgstr "Audição prejudicada" +msgstr "" #. ~ Description of effect 'Impaired hearing'. #: lang/json/effects_from_json.py msgid "Your hearing is impaired." -msgstr "Sua audição está prejudicada." +msgstr "" #: lang/json/effects_from_json.py msgid "Ringing ears" -msgstr "Orelhas de toque" +msgstr "" #. ~ Description of effect 'Ringing ears'. #: lang/json/effects_from_json.py msgid "You can barely hear anything and your ears hurt." -msgstr "Você mal consegue ouvir qualquer coisa e seus ouvidos doem." +msgstr "" #: lang/json/effects_from_json.py lang/json/mutation_from_json.py msgid "Deaf" -msgstr "Surdo" +msgstr "" #. ~ Description of effect 'Deaf'. #: lang/json/effects_from_json.py @@ -81621,18 +72280,16 @@ msgid "" "You can't hear anything and your head aches from all the noise. You can't " "converse with NPCs." msgstr "" -" Você não pode ouvir nada e sua cabeça dói de todo o barulho. Você não " -"podeconversar com NPCs." #. ~ Apply message for effect(s) 'Impaired hearing, Ringing ears, Deaf'. #: lang/json/effects_from_json.py msgid "Your ears ring!" -msgstr "Seus ouvidos tocam!" +msgstr "" #. ~ Remove message for effect(s) 'Impaired hearing, Ringing ears, Deaf'. #: lang/json/effects_from_json.py msgid "You can hear again!" -msgstr "Você pode ouvir de novo!" +msgstr "" #: lang/json/effects_from_json.py msgid "A bionic LED is glowing softly beneath your skin." @@ -81640,70 +72297,70 @@ msgstr "" #: lang/json/effects_from_json.py src/bionics.cpp msgid "Stung" -msgstr "Picado" +msgstr "" #. ~ Description of effect 'Stung'. #: lang/json/effects_from_json.py msgid "You have been stung!" -msgstr "Você foi picado!" +msgstr "" #: lang/json/effects_from_json.py msgid "Poisoned" -msgstr "Envenenado" +msgstr "" #. ~ Description of effect 'Poisoned'. #: lang/json/effects_from_json.py msgid "You have been poisoned!" -msgstr "Você foi envenenado!" +msgstr "" #. ~ Miss message for effect(s) 'Poisoned'. #. ~ Miss message for effect(s) 'Badly Poisoned'. #: lang/json/effects_from_json.py msgid "You feel bad inside." -msgstr "Você se sente mal por dentro." +msgstr "" #: lang/json/effects_from_json.py msgid "Badly Poisoned" -msgstr "Mal envenenado" +msgstr "" #. ~ Description of effect 'Badly Poisoned'. #: lang/json/effects_from_json.py msgid "You have been badly poisoned!" -msgstr "Você foi muito envenenado!" +msgstr "" #: lang/json/effects_from_json.py msgid "Food Poisoning" -msgstr "Envenenamento alimentar" +msgstr "" #. ~ Description of effect 'Food Poisoning'. #: lang/json/effects_from_json.py msgid "Your stomach is extremely upset, and you are quite nauseous." -msgstr "Seu estômago está extremamente aborrecido e você está enjoado." +msgstr "" #. ~ Miss message for effect(s) 'Food Poisoning'. #: lang/json/effects_from_json.py msgid "Your stomach bothers you." -msgstr "Seu estômago incomoda você." +msgstr "" #: lang/json/effects_from_json.py msgid "Slowed" -msgstr "Desacelerou" +msgstr "" #: lang/json/effects_from_json.py msgid "Sluggish" -msgstr "Lerdo" +msgstr "" #: lang/json/effects_from_json.py msgid "Partially Paralyzed" -msgstr "Parcialmente Paralisado" +msgstr "" #: lang/json/effects_from_json.py msgid "Totally Paralyzed" -msgstr "Totalmente Paralisado" +msgstr "" #: lang/json/effects_from_json.py msgid "You are being slowed by a paralyzing poison!" -msgstr "Você está sendo retardado por um veneno paralisante!" +msgstr "" #. ~ Miss message for effect(s) 'Slowed, Slowed, Slowed, Slowed, Slowed, #. Sluggish, Sluggish, Sluggish, Sluggish, Sluggish, Partially Paralyzed, @@ -81712,76 +72369,74 @@ msgstr "Você está sendo retardado por um veneno paralisante!" #. Paralyzed, Totally Paralyzed'. #: lang/json/effects_from_json.py msgid "You feel stiff." -msgstr "Você se sente duro." +msgstr "" #: lang/json/effects_from_json.py lang/json/mutation_from_json.py msgid "Nausea" -msgstr "Náusea" +msgstr "" #. ~ Description of effect 'Nausea'. #: lang/json/effects_from_json.py msgid "You feel nauseous. Even a thought of food makes you feel sick." msgstr "" -" Você sente náuseas. Até mesmo um pensamento de comida faz você se " -"sentirdoente." #. ~ Remove message for effect(s) 'Nausea'. #: lang/json/effects_from_json.py msgid "You no longer feel nauseous." -msgstr "Você não sente mais náuseas." +msgstr "" #: lang/json/effects_from_json.py msgid "Stuck in beartrap" -msgstr "Preso em 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 "Você não pode se mover até se libertar!" +msgstr "" #. ~ Apply message for effect(s) 'Stuck in beartrap'. #: lang/json/effects_from_json.py msgid "You are caught!" -msgstr "Você está preso!" +msgstr "" #: lang/json/effects_from_json.py msgid "Glare" -msgstr "Brilho" +msgstr "" #. ~ Description of effect 'Glare'. #: lang/json/effects_from_json.py msgid "The sun is in your eyes." -msgstr "O sol está em seus olhos." +msgstr "" #. ~ Apply message for effect(s) 'Glare'. #: lang/json/effects_from_json.py msgid "The sunlight's glare makes it hard to see." -msgstr "O brilho da luz do sol dificulta a visão." +msgstr "" #: lang/json/effects_from_json.py msgid "Snow glare" -msgstr "Brilho da neve" +msgstr "" #. ~ Description of effect 'Snow glare'. #: lang/json/effects_from_json.py msgid "The sunlight is reflecting off the snow." -msgstr "A luz do sol está refletindo na neve." +msgstr "" #. ~ Apply message for effect(s) 'Snow glare'. #: lang/json/effects_from_json.py msgid "The sunlight reflecting off the snow makes it hard to see." -msgstr "A luz do sol refletida na neve dificulta a visão." +msgstr "" #: lang/json/effects_from_json.py msgid "Laser-targeted" -msgstr "Segmentado por laser" +msgstr "" #. ~ Description of effect 'Laser-targeted'. #: lang/json/effects_from_json.py msgid "A laser sight is targeting you!" -msgstr "Uma mira laser está mirando em você!" +msgstr "" #: lang/json/effects_from_json.py msgctxt "inhaled" @@ -81791,17 +72446,17 @@ msgstr "Fumaça" #. ~ Description of effect '{'ctxt': 'inhaled', 'str': 'Smoke'}'. #: lang/json/effects_from_json.py msgid "You've inhaled a lungful of thick smoke." -msgstr "Você inalou uma rajada de fumaça grossa." +msgstr "" #. ~ Apply message for effect(s) 'Smoke'. #: lang/json/effects_from_json.py msgid "You inhale a lungful of thick smoke." -msgstr "Você inala um pulmão de fumaça espessa." +msgstr "" #. ~ Miss message for effect(s) 'Smoke'. #: lang/json/effects_from_json.py msgid "Your lungs burn from the smoke." -msgstr "Seus pulmões queimam da fumaça." +msgstr "" #: lang/json/effects_from_json.py msgid "Tear gas" @@ -81810,31 +72465,31 @@ msgstr "Gás lacrimogêneo" #. ~ Description of effect 'Tear gas'. #: lang/json/effects_from_json.py msgid "You've been exposed to tear gas!" -msgstr "Você foi exposto a gás lacrimogêneo!" +msgstr "" #. ~ Apply message for effect(s) 'Tear gas'. #: lang/json/effects_from_json.py msgid "You inhale a lungful of tear gas." -msgstr "Você inala um pulmão de gás lacrimogêneo." +msgstr "" #. ~ Miss message for effect(s) 'Tear gas'. #: lang/json/effects_from_json.py msgid "Your eyes burn from the tear gas." -msgstr "Seus olhos queimam do gás lacrimogêneo." +msgstr "" #: lang/json/effects_from_json.py msgid "Boomered" -msgstr "Em ascensão" +msgstr "" #. ~ Description of effect 'Boomered'. #: lang/json/effects_from_json.py msgid "Range of Sight: 1; You are covered in magenta bile!" -msgstr "Alcance de Visão: 1; Você está coberto de bile magenta!" +msgstr "" #. ~ Apply message for effect(s) 'Boomered'. #: lang/json/effects_from_json.py msgid "You're covered in bile!" -msgstr "Você está coberto de bile!" +msgstr "" #: lang/json/effects_from_json.py msgid "Glowing" @@ -81848,41 +72503,37 @@ msgstr "Você esta coberto em gosma brilhante!" #. ~ Apply message for effect(s) 'Glowing'. #: lang/json/effects_from_json.py msgid "You're covered in a glowing goo!" -msgstr "Você está coberto de uma gosma brilhante!" +msgstr "" #: lang/json/effects_from_json.py msgid "Took Xanax" -msgstr "Tomou Xanax" +msgstr "" #. ~ Description of effect 'Took Xanax'. #: lang/json/effects_from_json.py msgid "" "You took Xanax some time ago and you might still be under its influence." msgstr "" -" Você tomou Xanax há algum tempo e você ainda pode estar sob sua influência." #: lang/json/effects_from_json.py msgid "Took Prozac" -msgstr "Tomou Prozac" +msgstr "" #. ~ Description of effect 'Took Prozac'. #: lang/json/effects_from_json.py msgid "" "You took Prozac some time ago and you might still be under its influence." msgstr "" -" Você tomou Prozac há algum tempo e você ainda pode estar sob suainfluência." #: lang/json/effects_from_json.py msgid "Stuck in Pit" -msgstr "Preso em cova" +msgstr "" #. ~ Description of effect 'Stuck in Pit'. #: lang/json/effects_from_json.py msgid "" "You're stuck in a pit. Sight distance is limited and you have to climb out." msgstr "" -" Você está preso em um buraco. A distância de visão é limitada e você temque" -" sair." #: lang/json/effects_from_json.py msgid "Poor sight" @@ -81900,63 +72551,63 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Webbed" -msgstr "Webbed" +msgstr "" #. ~ Description of effect 'Webbed'. #: lang/json/effects_from_json.py msgid "You are covered in webs!" -msgstr "Você está coberto de teias!" +msgstr "" #. ~ Apply message for effect(s) 'Webbed'. #: lang/json/effects_from_json.py msgid "You're covered in webs!" -msgstr "Você está coberto de teias!" +msgstr "" #. ~ Miss message for effect(s) 'Webbed'. #: lang/json/effects_from_json.py msgid "The webs constrict your movement." -msgstr "As teias restringem seu movimento." +msgstr "" #: lang/json/effects_from_json.py msgid "Bite" -msgstr "Mordida" +msgstr "" #: lang/json/effects_from_json.py msgid "Painful Bite" -msgstr "Mordida dolorosa" +msgstr "" #: lang/json/effects_from_json.py msgid "You have a nasty bite wound." -msgstr "Você tem uma ferida desagradável." +msgstr "" #. ~ Apply message for effect(s) 'Bite, Painful Bite'. #: lang/json/effects_from_json.py msgid "The bite wound feels really deep..." -msgstr "A ferida da mordida parece muito profunda ..." +msgstr "" #. ~ Male memorial apply log for effect(s) 'Bite, Painful Bite'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Received a deep bite wound." -msgstr "Recebeu uma ferida profunda na mordida." +msgstr "" #. ~ Female memorial apply log for effect(s) 'Bite, Painful Bite'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Received a deep bite wound." -msgstr "Recebeu uma ferida profunda na mordida." +msgstr "" #. ~ Male memorial remove log for effect(s) 'Bite, Painful Bite'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Recovered from a bite wound." -msgstr "Recuperado de uma ferida de mordida." +msgstr "" #. ~ Female memorial remove log for effect(s) 'Bite, Painful Bite'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Recovered from a bite wound." -msgstr "Recuperado de uma ferida de mordida." +msgstr "" #: lang/json/effects_from_json.py msgid "Infected" @@ -81964,204 +72615,203 @@ msgstr "Infectado" #: lang/json/effects_from_json.py msgid "Badly Infected" -msgstr "Mal infectado" +msgstr "" #: lang/json/effects_from_json.py msgid "Pus Filled" -msgstr "Pus preenchido" +msgstr "" #: lang/json/effects_from_json.py msgid "You have an infected wound." -msgstr "Você tem uma ferida infectada." +msgstr "" #. ~ Apply message for effect(s) 'Infected, Badly Infected, Pus Filled'. #: lang/json/effects_from_json.py msgid "Your bite wound feels infected." -msgstr "Sua mordida está infectada." +msgstr "" #. ~ Male memorial apply log for effect(s) 'Infected, Badly Infected, Pus #. Filled'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Contracted an infection." -msgstr "Contratou uma infecção." +msgstr "" #. ~ Female memorial apply log for effect(s) 'Infected, Badly Infected, Pus #. Filled'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Contracted an infection." -msgstr "Contratou uma infecção." +msgstr "" #. ~ Male memorial remove log for effect(s) 'Infected, Badly Infected, Pus #. Filled'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Recovered from an infection... this time." -msgstr "Recuperado de uma infecção ... desta vez." +msgstr "" #. ~ Female memorial remove log for effect(s) 'Infected, Badly Infected, Pus #. Filled'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Recovered from an infection... this time." -msgstr "Recuperado de uma infecção ... desta vez." +msgstr "" #: lang/json/effects_from_json.py msgid "Recovering From Infection" -msgstr "Recuperando da Infecção" +msgstr "" #. ~ Description of effect 'Recovering From Infection'. #: lang/json/effects_from_json.py msgid "You are recovering from an infection." -msgstr "Você está se recuperando de uma infecção." +msgstr "" #: lang/json/effects_from_json.py msgid "Bandaged" -msgstr "Enfaixado" +msgstr "" #. ~ Description of effect 'Bandaged'. #: lang/json/effects_from_json.py msgid "Your wounds are bandaged." -msgstr "Suas feridas estão enfaixadas." +msgstr "" #: lang/json/effects_from_json.py msgid "Disinfected" -msgstr "Desinfetado" +msgstr "" #. ~ Description of effect 'Disinfected'. #: lang/json/effects_from_json.py msgid "Your wounds are disinfected." -msgstr "Suas feridas estão desinfetadas." +msgstr "" #: lang/json/effects_from_json.py msgid "Spore dusted" -msgstr "Esporo polvilhado" +msgstr "" #. ~ Speed name of effect(s) 'Spore dusted, Spore covered, Spore coated'. #: lang/json/effects_from_json.py msgid "Spore covered" -msgstr "Esporo coberto" +msgstr "" #: lang/json/effects_from_json.py msgid "Spore coated" -msgstr "Esporo revestido" +msgstr "" #: lang/json/effects_from_json.py msgid "You can feel the tiny spores sinking directly into your flesh." msgstr "" -" Você pode sentir os pequenos esporos afundando diretamente em sua carne." #: lang/json/effects_from_json.py msgid "You feel sick inside." -msgstr "Você se sente doente por dentro." +msgstr "" #: lang/json/effects_from_json.py msgid "Fungal infection" -msgstr "Infecção por fungos" +msgstr "" #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Contracted a fungal infection." -msgstr "Contratou uma infecção fúngica." +msgstr "" #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Contracted a fungal infection." -msgstr "Contratou uma infecção fúngica." +msgstr "" #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Cured the fungal infection." -msgstr "Curado a infecção fúngica." +msgstr "" #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Cured the fungal infection." -msgstr "Curado a infecção fúngica." +msgstr "" #: lang/json/effects_from_json.py msgid "Hallucinating" -msgstr "Alucinante" +msgstr "" #. ~ Description of effect 'Hallucinating'. #: lang/json/effects_from_json.py msgid "You can't trust everything that you see." -msgstr "Você não pode confiar em tudo que vê." +msgstr "" #: lang/json/effects_from_json.py msgid "Ratting" -msgstr "Ratting" +msgstr "" #. ~ Description of effect 'Ratting'. #: lang/json/effects_from_json.py msgid "You feel nauseous and rat-like." -msgstr "Você se sente nauseado e parecido com ratos." +msgstr "" #: lang/json/effects_from_json.py msgid "Shakes" -msgstr "Shakes" +msgstr "" #. ~ Description of effect 'Shakes'. #: lang/json/effects_from_json.py msgid "Your hands just won't stop shaking." -msgstr "Suas mãos simplesmente não vão parar de tremer." +msgstr "" #. ~ Miss message for effect(s) 'Shakes'. #: lang/json/effects_from_json.py msgid "You tremble" -msgstr "Você tremer" +msgstr "" #: lang/json/effects_from_json.py msgid "Bleeding" -msgstr "Sangramento" +msgstr "" #. ~ Description of effect 'Bleeding'. #: lang/json/effects_from_json.py msgid "You are slowly losing blood." -msgstr "Você está lentamente perdendo sangue." +msgstr "" #: lang/json/effects_from_json.py msgid "Bad Bleeding" -msgstr "Sangramento Mau" +msgstr "" #. ~ Description of effect 'Bad Bleeding'. #: lang/json/effects_from_json.py msgid "You are losing blood." -msgstr "Você está perdendo sangue." +msgstr "" #: lang/json/effects_from_json.py msgid "Heavy Bleeding" -msgstr "Sangramento Pesado" +msgstr "" #. ~ Description of effect 'Heavy Bleeding'. #: lang/json/effects_from_json.py msgid "You are rapidly losing blood." -msgstr "Você está perdendo sangue rapidamente." +msgstr "" #. ~ Apply message for effect(s) 'Bleeding, Bad Bleeding, Heavy Bleeding'. #: lang/json/effects_from_json.py msgid "You're bleeding!" -msgstr "Você está sangrando!" +msgstr "" #: lang/json/effects_from_json.py msgid "Slimed" -msgstr "Slimed" +msgstr "" #. ~ Description of effect 'Slimed'. #. ~ Apply message for effect(s) 'Slimed'. #: lang/json/effects_from_json.py msgid "You're covered in thick goo!" -msgstr "Você está coberto de gosma grossa!" +msgstr "" #. ~ Miss message for effect(s) 'Slimed'. #: lang/json/effects_from_json.py msgid "This goo makes you slip" -msgstr "Essa gosma faz você escorregar" +msgstr "" #: lang/json/effects_from_json.py src/panels.cpp msgid "Chilly" -msgstr "Frio" +msgstr "" #. ~ Description of effect 'Chilly'. #: lang/json/effects_from_json.py @@ -82172,7 +72822,7 @@ msgstr "" #. ~ Speed name of effect(s) 'Chilly, Cold, Freezing'. #: lang/json/effects_from_json.py lang/json/morale_type_from_json.py msgid "Cold" -msgstr "Frio" +msgstr "" #. ~ Description of effect 'Cold'. #: lang/json/effects_from_json.py @@ -82182,7 +72832,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Freezing" -msgstr "Congelando" +msgstr "" #. ~ Description of effect 'Freezing'. #: lang/json/effects_from_json.py @@ -82192,7 +72842,7 @@ msgstr "" #: lang/json/effects_from_json.py src/panels.cpp msgid "Warm" -msgstr "Caloroso" +msgstr "" #. ~ Description of effect 'Warm'. #: lang/json/effects_from_json.py @@ -82203,7 +72853,7 @@ msgstr "" #. ~ Speed name of effect(s) 'Warm, Hot, Scorching'. #: lang/json/effects_from_json.py lang/json/morale_type_from_json.py msgid "Hot" -msgstr "Quente" +msgstr "" #. ~ Description of effect 'Hot'. #: lang/json/effects_from_json.py @@ -82213,7 +72863,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Scorching" -msgstr "Escaldante" +msgstr "" #. ~ Description of effect 'Scorching'. #: lang/json/effects_from_json.py @@ -82223,7 +72873,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Frostnip" -msgstr "Congestão" +msgstr "" #. ~ Description of effect 'Frostnip'. #: lang/json/effects_from_json.py @@ -82234,7 +72884,7 @@ msgstr "" #. ~ Speed name of effect(s) 'Frostnip, Frostbite'. #: lang/json/effects_from_json.py msgid "Frostbite" -msgstr "Geladura" +msgstr "" #. ~ Description of effect 'Frostbite'. #: lang/json/effects_from_json.py @@ -82244,7 +72894,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Defrosting" -msgstr "Descongelamento" +msgstr "" #. ~ Description of effect 'Defrosting'. #: lang/json/effects_from_json.py @@ -82254,7 +72904,7 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Blisters" -msgstr "Bolhas" +msgstr "" #. ~ Description of effect 'Blisters'. #: lang/json/effects_from_json.py @@ -82265,50 +72915,48 @@ msgstr "" #. ~ Miss message for effect(s) 'Blisters'. #: lang/json/effects_from_json.py msgid "Your blisters distract you" -msgstr "Suas bolhas te distraem" +msgstr "" #: lang/json/effects_from_json.py msgid "Itchy skin" -msgstr "Comichão na pele" +msgstr "" #: lang/json/effects_from_json.py msgid "Writhing skin" -msgstr "Pele contorcida" +msgstr "" #: lang/json/effects_from_json.py msgid "Bugs in skin" -msgstr "Bugs na pele" +msgstr "" #: lang/json/effects_from_json.py msgid "" "You stop to scratch yourself frequently; high INT helps you resist the urge." msgstr "" -" Você pára de se coçar com frequência; alta INT ajuda você a resistir " -"aodesejo." #. ~ Apply message for effect(s) 'Itchy skin, Writhing skin, Bugs in skin'. #: lang/json/effects_from_json.py msgid "Your skin feels extremely itchy!" -msgstr "Sua pele fica extremamente coçando!" +msgstr "" #: lang/json/effects_from_json.py msgid "Sap-coated" -msgstr "Sap-coated" +msgstr "" #. ~ Description of effect 'Sap-coated'. #. ~ Apply message for effect(s) 'Sap-coated'. #: lang/json/effects_from_json.py msgid "You're coated in sap!" -msgstr "Você está revestido de seiva!" +msgstr "" #. ~ Miss message for effect(s) 'Sap-coated'. #: lang/json/effects_from_json.py msgid "The sap's too sticky for you to fight effectively." -msgstr "A seiva é muito pegajosa para você lutar de forma eficaz." +msgstr "" #: lang/json/effects_from_json.py msgid "Common Cold" -msgstr "Resfriado comum" +msgstr "" #. ~ Description of effect 'Common Cold'. #: lang/json/effects_from_json.py @@ -82316,46 +72964,44 @@ msgid "" "You have contracted the 'Common Cold'. Symptoms can be alleviated by " "medication (cough syrup)." msgstr "" -" Você contratou o 'resfriado comum'. Os sintomas podem seraliviados por " -"medicação (xarope para tosse)." #. ~ Apply message for effect(s) 'Common Cold'. #: lang/json/effects_from_json.py msgid "You feel a cold coming on..." -msgstr "Você sente um frio chegando ..." +msgstr "" #. ~ Miss message for effect(s) 'Common Cold'. #: lang/json/effects_from_json.py msgid "You're too stuffed up to fight effectively." -msgstr "Você está muito recheado para lutar de forma eficaz." +msgstr "" #. ~ Male memorial apply log for effect(s) 'Common Cold'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Caught a cold." -msgstr "Peguei um resfriado." +msgstr "" #. ~ Female memorial apply log for effect(s) 'Common Cold'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Caught a cold." -msgstr "Peguei um resfriado." +msgstr "" #. ~ Male memorial remove log for effect(s) 'Common Cold'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Got over the cold." -msgstr "Acabou com o frio." +msgstr "" #. ~ Female memorial remove log for effect(s) 'Common Cold'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Got over the cold." -msgstr "Acabou com o frio." +msgstr "" #: lang/json/effects_from_json.py msgid "Influenza" -msgstr "Gripe" +msgstr "" #. ~ Description of effect 'Influenza'. #: lang/json/effects_from_json.py @@ -82363,249 +73009,241 @@ msgid "" "You have contracted flu, or more technically speaking, the 'Influenza'. " "Symptoms can be alleviated by medication (cough syrup)." msgstr "" -" Você contraiu gripe, ou mais tecnicamente falando, a 'Influenza'.Os " -"sintomas podem ser aliviados por medicação (xarope para tosse)." #. ~ Apply message for effect(s) 'Influenza'. #: lang/json/effects_from_json.py msgid "You feel a flu coming on..." -msgstr "Você sente uma gripe chegando ..." +msgstr "" #. ~ Male memorial apply log for effect(s) 'Influenza'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Caught the flu." -msgstr "Pegou a gripe." +msgstr "" #. ~ Female memorial apply log for effect(s) 'Influenza'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Caught the flu." -msgstr "Pegou a gripe." +msgstr "" #. ~ Male memorial remove log for effect(s) 'Influenza'. #: lang/json/effects_from_json.py msgctxt "memorial_male" msgid "Got over the flu." -msgstr "Superou a gripe." +msgstr "" #. ~ Female memorial remove log for effect(s) 'Influenza'. #: lang/json/effects_from_json.py msgctxt "memorial_female" msgid "Got over the flu." -msgstr "Superou a gripe." +msgstr "" #: lang/json/effects_from_json.py msgid "RX12 Healing Comedown" -msgstr "RX12 Curando Comedown" +msgstr "" #. ~ Description of effect 'RX12 Healing Comedown'. #. ~ Description of effect 'Adrenaline Comedown'. #: lang/json/effects_from_json.py msgid "You feel completely drained." -msgstr "Você se sente completamente esgotado." +msgstr "" #: lang/json/effects_from_json.py msgid "RX12 Healing Rush" -msgstr "Corrida de cura RX12" +msgstr "" #. ~ Description of effect 'RX12 Healing Rush'. #: lang/json/effects_from_json.py msgid "You feel the rush of stimulants in your body!" -msgstr "Você sente a pressa de estimulantes em seu corpo!" +msgstr "" #. ~ Apply message for effect(s) 'RX12 Healing Comedown, RX12 Healing Rush'. #: lang/json/effects_from_json.py msgid "You feel a rush as the chemicals flow through your body!" msgstr "" -" Você sente uma corrida enquanto os produtos químicos fluem pelo seu corpo!" #. ~ Decay message for effect(s) 'RX12 Healing Comedown, RX12 Healing Rush'. #: lang/json/effects_from_json.py msgid "The jet injector's chemicals wear off. You feel AWFUL!" -msgstr "Os químicos do injector de jacto desaparecem. Você se sente louco!" +msgstr "" #: lang/json/effects_from_json.py msgid "RX11 Stimulant Comedown" -msgstr "RX11 Comediante Estimulante" +msgstr "" #. ~ Description of effect 'RX11 Stimulant Comedown'. #: lang/json/effects_from_json.py msgid "You feel sluggish and slow." -msgstr "Você se sente lento e lento." +msgstr "" #: lang/json/effects_from_json.py msgid "RX11 Stimulant Rush" -msgstr "Rush Stimulant RX11" +msgstr "" #. ~ Description of effect 'RX11 Stimulant Rush'. #: lang/json/effects_from_json.py msgid "An intense surge of stimulants pulses through your body." -msgstr "Um surto intenso de estimulantes pulsa pelo seu corpo." +msgstr "" #. ~ 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 "" -" Você sente uma onda intensa de estimulantes pulsar através do seu corpo!" #. ~ Decay message for effect(s) 'RX11 Stimulant Comedown, RX11 Stimulant #. Rush'. #: lang/json/effects_from_json.py msgid "The stimulant combo is wearing off. You feel sluggish." -msgstr "O combo estimulante está acabando. Você se sente lento." +msgstr "" #: lang/json/effects_from_json.py msgid "Adrenaline Comedown" -msgstr "Adrenalina Comedown" +msgstr "" #: lang/json/effects_from_json.py msgid "Adrenaline Rush" -msgstr "Pico de adrenalina" +msgstr "" #. ~ Description of effect 'Adrenaline Rush'. #: lang/json/effects_from_json.py msgid "You feel the rush of adrenaline in your body!" -msgstr "Você sente a adrenalina em seu corpo!" +msgstr "" #. ~ Apply message for effect(s) 'Adrenaline Comedown, Adrenaline Rush'. #: lang/json/effects_from_json.py msgid "You feel a surge of adrenaline!" -msgstr "Você sente uma onda de adrenalina!" +msgstr "" #. ~ Miss message for effect(s) 'Adrenaline Comedown, Adrenaline Rush'. #: lang/json/effects_from_json.py msgid "Your comedown throws you off." -msgstr "Seu comedown te joga fora." +msgstr "" #. ~ Decay message for effect(s) 'Adrenaline Comedown, Adrenaline Rush'. #: lang/json/effects_from_json.py msgid "Your adrenaline rush wears off. You feel AWFUL!" -msgstr "Sua adrenalina desaparece. Você se sente louco!" +msgstr "" #: lang/json/effects_from_json.py msgid "Mycus Respite" -msgstr "Mycus Respite" +msgstr "" #. ~ Description of effect 'Mycus Respite'. #: lang/json/effects_from_json.py msgid "" "Our fibers are stretched near breaking. Local power diverted to regenerate." msgstr "" -" Nossas fibras estão esticadas perto de quebrar. Energia local desviada " -"pararegenerar." #: lang/json/effects_from_json.py msgid "Mycus Wrath" -msgstr "Mycus Wrath" +msgstr "" #. ~ Description of effect 'Mycus Wrath'. #: lang/json/effects_from_json.py msgid "Our enemies are near, and violent action is imminent. We are turgid." msgstr "" -" Nossos inimigos estão próximos e a ação violenta é iminente. Nós " -"somostúrgidos." #. ~ Apply message for effect(s) 'Mycus Respite, Mycus Wrath'. #: lang/json/effects_from_json.py msgid "Mycal wrath fills our fibers, and we grow turgid." -msgstr "A ira Mycal preenche nossas fibras e nos tornamos túrgidos." +msgstr "" #. ~ Decay message for effect(s) 'Mycus Respite, Mycus Wrath'. #: lang/json/effects_from_json.py msgid "We require repose; our fibers are nearly spent..." -msgstr "Nós precisamos de repouso; nossas fibras estão quase gastas ..." +msgstr "" #: lang/json/effects_from_json.py msgid "Meth comedown" -msgstr "Comediante Meth" +msgstr "" #: lang/json/effects_from_json.py msgid "High on Meth" -msgstr "Alta em metanfetamina" +msgstr "" #: lang/json/effects_from_json.py src/bionics.cpp msgid "Nicotine" -msgstr "Nicotina" +msgstr "" #: lang/json/effects_from_json.py msgid "You had a puff or two." -msgstr "Você teve um puff ou dois." +msgstr "" #: lang/json/effects_from_json.py msgid "You smoked too much." -msgstr "Você fumou demais." +msgstr "" #: lang/json/effects_from_json.py msgid "High" -msgstr "Alto" +msgstr "" #. ~ Description of effect 'High'. #: lang/json/effects_from_json.py msgid "You are high as a kite." -msgstr "Você é alto como um papagaio." +msgstr "" #. ~ Apply message for effect(s) 'High'. #. ~ Apply message for effect(s) 'Tipsy, Drunk, Trashed, Wasted'. #: lang/json/effects_from_json.py msgid "You feel lightheaded." -msgstr "Você se sente tonto." +msgstr "" #: lang/json/effects_from_json.py msgid "" "That critter's jumping around like a jitterbug! It needs to mellow out." -msgstr "Aquele bicho está pulando como um jitterbug! Precisa relaxar." +msgstr "" #: lang/json/effects_from_json.py msgid "Contact Lenses" -msgstr "Lentes de contato" +msgstr "" #. ~ Description of effect 'Contact Lenses'. #: lang/json/effects_from_json.py msgid "You are wearing contact lenses." -msgstr "Você está usando lentes de contato." +msgstr "" #. ~ Apply message for effect(s) 'Contact Lenses'. #: lang/json/effects_from_json.py msgid "You can see more clearly." -msgstr "Você pode ver mais claramente." +msgstr "" #. ~ Remove message for effect(s) 'Contact Lenses'. #: lang/json/effects_from_json.py msgid "Your vision starts to blur." -msgstr "Sua visão começa a embaçar." +msgstr "" #: lang/json/effects_from_json.py msgid "Tipsy" -msgstr "Tipsy" +msgstr "" #. ~ Description of effect 'Tipsy'. #: lang/json/effects_from_json.py msgid "You drank some alcohol. You feel warm inside." -msgstr "Você bebeu um pouco de álcool. Você se sente quente por dentro." +msgstr "" #: lang/json/effects_from_json.py msgid "Drunk" -msgstr "Bêbado" +msgstr "" #. ~ Description of effect 'Drunk'. #: lang/json/effects_from_json.py msgid "You drank alcohol. Party on!" -msgstr "Você bebeu álcool. Festa em!" +msgstr "" #: lang/json/effects_from_json.py msgid "Trashed" -msgstr "Lixeira" +msgstr "" #. ~ Description of effect 'Trashed'. #: lang/json/effects_from_json.py msgid "You drank lots of alcohol. Are those white mice?" -msgstr "Você bebeu muito álcool. São aqueles ratos brancos?" +msgstr "" #: lang/json/effects_from_json.py msgid "Wasted" -msgstr "Desperdiçado" +msgstr "" #. ~ Description of effect 'Wasted'. #: lang/json/effects_from_json.py @@ -82613,64 +73251,59 @@ msgid "" "You drank unholy amounts of alcohol. It's the end of the world, what do you" " care?" msgstr "" -" Você bebeu quantidades profanas de álcool. É o fim do mundo, o que você " -"seimporta?" #. ~ Miss message for effect(s) 'Tipsy, Drunk, Trashed, Wasted'. #. ~ Miss message for effect(s) 'Depressants'. #: lang/json/effects_from_json.py msgid "You feel woozy." -msgstr "Você se sente tonto." +msgstr "" #: lang/json/effects_from_json.py msgid "You can't look away from the faultline..." -msgstr "Você não pode desviar o olhar da falha ..." +msgstr "" #: lang/json/effects_from_json.py msgid "Feared" -msgstr "Temido" +msgstr "" #. ~ Description of effect 'Feared'. #: lang/json/effects_from_json.py msgid "You have been paralyzed by the fear." -msgstr "Você ficou paralisado pelo medo." +msgstr "" #: lang/json/effects_from_json.py msgid "Asthma" -msgstr "Asma" +msgstr "" #: lang/json/effects_from_json.py msgid "Heavy Asthma" -msgstr "Asma pesada" +msgstr "" #: lang/json/effects_from_json.py msgid "" "You suffer from a respiratory disorder that makes breathing difficult.\n" "An asthma attack can occur from time to time, so have your inhaler nearby." msgstr "" -" Você sofre de um distúrbio respiratório que dificulta a respiração. \" " -"NUmataque de asma pode ocorrer de tempos em tempos, portanto, tenha " -"seuinalador por perto." #. ~ Apply message for effect(s) 'Asthma, Asthma, Asthma, Asthma, Heavy #. Asthma, Heavy Asthma'. #: lang/json/effects_from_json.py msgid "You can't breathe... asthma attack!" -msgstr "Você não pode respirar ... ataque de asma!" +msgstr "" #. ~ Miss message for effect(s) 'Asthma, Asthma, Asthma, Asthma, Heavy Asthma, #. Heavy Asthma'. #: lang/json/effects_from_json.py msgid "You're winded." -msgstr "Você está sem fôlego." +msgstr "" #: lang/json/effects_from_json.py msgid "The ceiling collapses on you!" -msgstr "O teto desmorona em você!" +msgstr "" #: lang/json/effects_from_json.py msgid "Took anticonvulsant drugs" -msgstr "Tomou drogas anticonvulsivas" +msgstr "" #. ~ Description of effect 'Took anticonvulsant drugs'. #: lang/json/effects_from_json.py @@ -82678,12 +73311,10 @@ msgid "" "You took anticonvulsant drugs some time ago and you might still be under its influence.\n" "Prescription note says its effect duration may vary, so your estimate may be inaccurate." msgstr "" -" Você tomou anticonvulsivantes há algum tempo e ainda pode estar sob suainfluência. \n" -" A nota de inscrição diz que a duração do efeito pode variar, portanto, sua estimativa pode ser imprecisa.\n" #: lang/json/effects_from_json.py msgid "Relaxation gas" -msgstr "Gás de relaxamento" +msgstr "" #. ~ Description of effect 'Relaxation gas'. #: lang/json/effects_from_json.py @@ -82691,31 +73322,29 @@ msgid "" "You are thoroughly relaxed and don't feel like moving. Fighting? Too much " "effort." msgstr "" -" Você está completamente relaxado e não sente vontade de se mexer. " -"Combate?Muito esforço." #. ~ Apply message for effect(s) 'Relaxation gas'. #: lang/json/effects_from_json.py msgid "You inhale sweetish gas." -msgstr "Você inala gás adocicado." +msgstr "" #. ~ Remove message for effect(s) 'Relaxation gas'. #: lang/json/effects_from_json.py msgid "The slackness leaves your muscles." -msgstr "A negligência deixa seus músculos." +msgstr "" #: lang/json/effects_from_json.py msgid "Experiencing Datura" -msgstr "Experimentando Datura" +msgstr "" #. ~ Description of effect 'Experiencing Datura'. #: lang/json/effects_from_json.py msgid "Buy the ticket, take the ride. The datura has you now." -msgstr "Compre o ingresso, leve o passeio. A datura tem você agora." +msgstr "" #: lang/json/effects_from_json.py msgid "Grabbed" -msgstr "Agarrado" +msgstr "" #. ~ Description of effect 'Grabbed'. #: lang/json/effects_from_json.py @@ -82726,38 +73355,38 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Lacking Sleep" -msgstr "Falta de sono" +msgstr "" #. ~ Description of effect 'Lacking Sleep'. #: lang/json/effects_from_json.py msgid "You haven't slept in a while, and it shows." -msgstr "Você não dormiu por um tempo, e isso mostra." +msgstr "" #. ~ Apply message for effect(s) 'Lacking Sleep'. #: lang/json/effects_from_json.py msgid "You are too physically tired to function well." -msgstr "Você está muito cansado fisicamente para funcionar bem." +msgstr "" #. ~ Miss message for effect(s) 'Lacking Sleep'. #: lang/json/effects_from_json.py msgid "You don't have energy to fight." -msgstr "Você não tem energia para lutar." +msgstr "" #: lang/json/effects_from_json.py msgid "You lie down to go to sleep..." -msgstr "Você se deita para ir dormir ..." +msgstr "" #: lang/json/effects_from_json.py src/mutation_data.cpp msgid "You fall asleep." -msgstr "Você adormece." +msgstr "" #: lang/json/effects_from_json.py msgid "You wake up." -msgstr "Você acorda." +msgstr "" #: lang/json/effects_from_json.py msgid "Playing an instrument" -msgstr "Tocando um instrumento" +msgstr "" #. ~ Description of effect 'Playing an instrument'. #: lang/json/effects_from_json.py @@ -82765,311 +73394,296 @@ msgid "" "You're playing an instrument.\n" "Focusing on playing music distracts you, slowing you down." msgstr "" -" Você está tocando um instrumento. \n" -" Focar em tocar música distrai você,tornando-o mais lento.\n" #: lang/json/effects_from_json.py msgid "Corroding" -msgstr "Corroendo" +msgstr "" #. ~ Description of effect 'Corroding'. #. ~ Apply message for effect(s) 'Corroding'. #: lang/json/effects_from_json.py msgid "You're covered in acid!" -msgstr "Você está coberto de ácido!" +msgstr "" #: lang/json/effects_from_json.py msgid "Zapped" -msgstr "Zapped" +msgstr "" #. ~ Description of effect 'Zapped'. #: lang/json/effects_from_json.py msgid "You've been zapped with electricity and are barely able to move!" -msgstr "Você foi eletrocutado com eletricidade e mal consegue se mexer!" +msgstr "" #. ~ Apply message for effect(s) 'Zapped'. #: lang/json/effects_from_json.py msgid "You're zapped!" -msgstr "Você está zapped!" +msgstr "" #: lang/json/effects_from_json.py msgid "Hypocalcemia" -msgstr "Hipocalcemia" +msgstr "" #: lang/json/effects_from_json.py msgid "Weak bones" -msgstr "Ossos fracos" +msgstr "" #: lang/json/effects_from_json.py msgid "Brittle bones" -msgstr "Ossos frágeis" +msgstr "" #: lang/json/effects_from_json.py msgid "" "A lack of calcium in your diet will make your bones progressively weaker." msgstr "" -" A falta de cálcio em sua dieta fará com que seus ossos " -"fiquemprogressivamente mais fracos." #. ~ Apply message for effect(s) 'Hypocalcemia, Weak bones, Brittle bones'. #: lang/json/effects_from_json.py msgid "Your bones are becoming more brittle." -msgstr "Seus ossos estão se tornando mais frágeis." +msgstr "" #. ~ Remove message for effect(s) 'Hypocalcemia, Weak bones, Brittle bones'. #: lang/json/effects_from_json.py msgid "Your bones regain their usual strength." -msgstr "Seus ossos recuperam sua força habitual." +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 "Sua deficiência de cálcio está quase resolvida." +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 "" -" Seus ossos se tornam mais fortes à medida que sua deficiência de " -"cálciomelhora." #: lang/json/effects_from_json.py msgid "Iron deficiency" -msgstr "Falta de ferro" +msgstr "" #: lang/json/effects_from_json.py msgid "Early anemia" -msgstr "Anemia precoce" +msgstr "" #: lang/json/effects_from_json.py msgid "Anemia" -msgstr "Anemia" +msgstr "" #: lang/json/effects_from_json.py msgid "" "A lack of iron in your diet will result in progressively worsening anemia." msgstr "" -" A falta de ferro em sua dieta resultará em anemia progressivamentepiorando." #. ~ Apply message for effect(s) 'Iron deficiency, Early anemia, Anemia'. #: lang/json/effects_from_json.py msgid "You begin feeling increasingly tired and listless." -msgstr "Você começa a se sentir cada vez mais cansado e apático." +msgstr "" #. ~ Remove message for effect(s) 'Iron deficiency, Early anemia, Anemia'. #: lang/json/effects_from_json.py msgid "You no longer feel anemic." -msgstr "Você não se sente mais anêmico." +msgstr "" #. ~ Decay message for effect(s) 'Iron deficiency, Early anemia, Anemia'. #: lang/json/effects_from_json.py msgid "Your iron deficiency is nearly resolved." -msgstr "Sua deficiência de ferro está quase resolvida." +msgstr "" #. ~ Decay message for effect(s) 'Iron deficiency, Early anemia, Anemia'. #: lang/json/effects_from_json.py msgid "Your feel stronger as your anemia starts to improve." -msgstr "Você se sente mais forte à medida que sua anemia começa a melhorar." +msgstr "" #: lang/json/effects_from_json.py msgid "VitA deficiency" -msgstr "Deficiência de VitA" +msgstr "" #: lang/json/effects_from_json.py msgid "Poor vision" -msgstr "Visão pobre" +msgstr "" #: lang/json/effects_from_json.py msgid "Night blindness" -msgstr "Cegueira noturna" +msgstr "" #: lang/json/effects_from_json.py msgid "" "A lack of vitamin A in your diet will progressively worsen your vision." msgstr "" -" A falta de vitamina A em sua dieta irá piorar progressivamente sua visão." #. ~ Apply message for effect(s) 'VitA deficiency, Poor vision, Night #. blindness'. #: lang/json/effects_from_json.py msgid "You start struggling to make out the finer details." -msgstr "Você começa a se esforçar para entender os detalhes mais sutis." +msgstr "" #. ~ Remove message for effect(s) 'VitA deficiency, Poor vision, Night #. blindness'. #: lang/json/effects_from_json.py msgid "Your normal visual acuity returns." -msgstr "Sua acuidade visual normal retorna." +msgstr "" #. ~ Decay message for effect(s) 'VitA deficiency, Poor vision, Night #. blindness'. #: lang/json/effects_from_json.py msgid "Your vitamin A deficiency is nearly resolved." -msgstr "Sua deficiência de vitamina A está quase resolvida." +msgstr "" #. ~ Decay message for effect(s) 'VitA deficiency, Poor vision, Night #. blindness'. #: lang/json/effects_from_json.py msgid "Your vision improves as your Vitamin A deficiency improves." -msgstr "Sua visão melhora à medida que a deficiência de vitamina A melhora." +msgstr "" #: lang/json/effects_from_json.py msgid "B12 deficiency" -msgstr "Deficiência de vitamina B12" +msgstr "" #: lang/json/effects_from_json.py msgid "Slow healing" -msgstr "Cura lenta" +msgstr "" #: lang/json/effects_from_json.py msgid "No healing" -msgstr "Sem cura" +msgstr "" #: lang/json/effects_from_json.py msgid "A lack of vitamin B12 in your diet will affect your ability to heal." -msgstr "A falta de vitamina B12 em sua dieta afetará sua capacidade de curar." +msgstr "" #. ~ Apply message for effect(s) 'B12 deficiency, Slow healing, No healing'. #: lang/json/effects_from_json.py msgid "Simple wounds are starting to concern you more than usual." -msgstr "Feridas simples estão começando a lhe preocupar mais do que o normal." +msgstr "" #. ~ Remove message for effect(s) 'B12 deficiency, Slow healing, No healing'. #: lang/json/effects_from_json.py msgid "Your wounds now heal normally." -msgstr "Suas feridas agora cicatrizam normalmente." +msgstr "" #. ~ Decay message for effect(s) 'B12 deficiency, Slow healing, No healing'. #: lang/json/effects_from_json.py msgid "Your vitamin B12 deficiency is starting to resolve." -msgstr "Sua deficiência de vitamina B12 está começando a se resolver." +msgstr "" #. ~ Decay message for effect(s) 'B12 deficiency, Slow healing, No healing'. #: lang/json/effects_from_json.py msgid "Your ability to heal returns as your Vitamin B12 deficiency improves." msgstr "" -" Sua capacidade de curar retorna à medida que a deficiência de vitamina " -"B12melhora." #: lang/json/effects_from_json.py msgid "Early scurvy" -msgstr "Escorbuto precoce" +msgstr "" #: lang/json/effects_from_json.py msgid "Scurvy" -msgstr "Escorbuto" +msgstr "" #: lang/json/effects_from_json.py msgid "Bad Scurvy" -msgstr "Escorbuto" +msgstr "" #: lang/json/effects_from_json.py msgid "" "A lack of vitamin C in your diet will result in progressively worse symptoms" " of scurvy." msgstr "" -" A falta de vitamina C em sua dieta resultará em sintomas " -"progressivamentepiores de escorbuto." #. ~ Apply message for effect(s) 'Early scurvy, Scurvy, Bad Scurvy'. #: lang/json/effects_from_json.py msgid "You start to develop symptoms of scurvy." -msgstr "Você começa a desenvolver sintomas de escorbuto." +msgstr "" #. ~ Remove message for effect(s) 'Early scurvy, Scurvy, Bad Scurvy'. #: lang/json/effects_from_json.py msgid "Your scurvy has resolved." -msgstr "Seu escorbuto foi resolvido." +msgstr "" #. ~ Decay message for effect(s) 'Early scurvy, Scurvy, Bad Scurvy'. #: lang/json/effects_from_json.py msgid "Your vitamin C deficiency is starting to resolve." -msgstr "Sua deficiência de vitamina C está começando a se resolver." +msgstr "" #. ~ Decay message for effect(s) 'Early scurvy, Scurvy, Bad Scurvy'. #: lang/json/effects_from_json.py msgid "Your scurvy lessens as your Vitamin C deficiency improves." msgstr "" -" Seu escorbuto diminui à medida que a deficiência de vitamina C melhora." #: lang/json/effects_from_json.py msgid "Hypervitaminosis" -msgstr "Hipervitaminose" +msgstr "" #. ~ Description of effect 'Hypervitaminosis'. #: lang/json/effects_from_json.py msgid "An excess of vitamins has badly affected your metabolism." -msgstr "Um excesso de vitaminas afetou gravemente o seu metabolismo." +msgstr "" #. ~ Apply message for effect(s) 'Hypervitaminosis'. #: lang/json/effects_from_json.py msgid "Your metabolism becomes unstable." -msgstr "Seu metabolismo se torna instável." +msgstr "" #. ~ Remove message for effect(s) 'Hypervitaminosis'. #: lang/json/effects_from_json.py msgid "Your metabolism becomes more stable." -msgstr "Seu metabolismo se torna mais estável." +msgstr "" #: lang/json/effects_from_json.py msgid "Lit up" -msgstr "Iluminou" +msgstr "" #. ~ Description of effect 'Lit up'. #: lang/json/effects_from_json.py msgid "You are carrying a light and can't hide well." -msgstr "Você está carregando uma luz e não pode se esconder bem." +msgstr "" #: lang/json/effects_from_json.py msgid "Started recovery" -msgstr "Recuperação iniciada" +msgstr "" #: lang/json/effects_from_json.py msgid "Recovering" -msgstr "Recuperando" +msgstr "" #: lang/json/effects_from_json.py msgid "Mostly recovered" -msgstr "Principalmente recuperado" +msgstr "" #: lang/json/effects_from_json.py msgid "This damaged limb is slowly regaining its functions." -msgstr "Este membro danificado está recuperando lentamente suas funções." +msgstr "" #: lang/json/effects_from_json.py msgctxt "physically" msgid "Disabled" -msgstr "Desativado" +msgstr "" #. ~ Description of effect '{'ctxt': 'physically', 'str': 'Disabled'}'. #: lang/json/effects_from_json.py msgid "This limb is damaged beyond use and may require a splint to recover." msgstr "" -" Este membro está danificado além do uso e pode exigir uma tala para " -"serecuperar." #. ~ Apply message for effect(s) 'Disabled'. #: lang/json/effects_from_json.py src/player.cpp msgid "Your limb breaks!" -msgstr "Seu membro quebra!" +msgstr "" #. ~ Remove message for effect(s) 'Disabled'. #: lang/json/effects_from_json.py msgid "The broken limb has mended." -msgstr "O membro quebrado foi consertado." +msgstr "" #: lang/json/effects_from_json.py msgid "Milked" -msgstr "Ordenhado" +msgstr "" #. ~ Description of effect 'Milked'. #: lang/json/effects_from_json.py msgid "The creature has been partially or fully milked." -msgstr "A criatura foi parcialmente ou totalmente ordenhada." +msgstr "" #: lang/json/effects_from_json.py msgid "Painkillers" -msgstr "Analgésicos" +msgstr "" #. ~ Description of effect 'Painkillers'. #: lang/json/effects_from_json.py @@ -83077,62 +73691,60 @@ msgid "" "You are under the influence of analgesic substances to relieve pain, but " "they may numb you a bit." msgstr "" -" Você está sob a influência de substâncias analgésicas para aliviar a dor, " -"mas elas podem entorpecê-lo um pouco." #: lang/json/effects_from_json.py msgid "Happy" -msgstr "Feliz" +msgstr "" #. ~ Description of effect 'Happy'. #: lang/json/effects_from_json.py msgid "Life is good." -msgstr "A vida é boa." +msgstr "" #: lang/json/effects_from_json.py msgid "Joyful" -msgstr "Alegre" +msgstr "" #. ~ Description of effect 'Joyful'. #: lang/json/effects_from_json.py msgid "Oh what a day! What a lovely day!" -msgstr "Oh que dia! Que dia adorável!" +msgstr "" #: lang/json/effects_from_json.py msgid "Elated" -msgstr "exaltado" +msgstr "" #. ~ Description of effect 'Elated'. #: lang/json/effects_from_json.py msgid "I'm on top of the world, baby!" -msgstr "Eu estou no topo do mundo, baby!" +msgstr "" #: lang/json/effects_from_json.py msgid "Unhappy" -msgstr "Infeliz" +msgstr "" #. ~ Description of effect 'Unhappy'. #: lang/json/effects_from_json.py msgid "You are not content with your life." -msgstr "Você não está contente com sua vida." +msgstr "" #: lang/json/effects_from_json.py msgid "Sad" -msgstr "Agora" +msgstr "" #. ~ Description of effect 'Sad'. #: lang/json/effects_from_json.py msgid "This is not what you planned for your life." -msgstr "Isto não é o que você planejou para sua vida." +msgstr "" #: lang/json/effects_from_json.py msgid "Depressed" -msgstr "Depressivo" +msgstr "" #. ~ Description of effect 'Depressed'. #: lang/json/effects_from_json.py msgid "When will all your suffering end?" -msgstr "Quando todo o seu sofrimento terminará?" +msgstr "" #. ~ Miss message for effect(s) 'Unhappy, Unhappy, Unhappy, Unhappy, Unhappy, #. Sad, Sad, Sad, Sad, Sad, Depressed'. @@ -83142,13 +73754,12 @@ msgstr "Qual é o motivo de lutar?" #: lang/json/effects_from_json.py src/bionics.cpp msgid "Irradiated" -msgstr "Irradiado" +msgstr "" #. ~ Description of effect 'Irradiated'. #: lang/json/effects_from_json.py msgid "You suffer symptoms of a radiation sickness that weakens your body." msgstr "" -" Você sofre sintomas de uma doença de radiação que enfraquece seu corpo." #. ~ Miss message for effect(s) 'Irradiated'. #: lang/json/effects_from_json.py @@ -83157,26 +73768,25 @@ msgstr ".A radiação te enfraquece." #: lang/json/effects_from_json.py msgid "Stimulants" -msgstr "Estimulantes" +msgstr "" #. ~ Description of effect 'Stimulants'. #: lang/json/effects_from_json.py msgid "You're very jittery and pumped up, probably from some stimulants." msgstr "" -" Você está muito nervosa e excitada, provavelmente de alguns estimulantes." #: lang/json/effects_from_json.py msgid "Depressants" -msgstr "Depressores" +msgstr "" #. ~ Description of effect 'Depressants'. #: lang/json/effects_from_json.py msgid "You are under the influence of depressants, and in a bit of a daze." -msgstr "Você está sob a influência de depressivos, e um pouco atordoado." +msgstr "" #: lang/json/effects_from_json.py msgid "Took weak antibiotic" -msgstr "Tomou antibiótico fraco" +msgstr "" #. ~ Description of effect 'Took weak antibiotic'. #: lang/json/effects_from_json.py @@ -83184,13 +73794,10 @@ msgid "" "You consumed mild antibiotic some time ago to fight off infection.\n" "If you don't recover you may want to take another dose, but beware overdosage." msgstr "" -" Você consumiu antibiótico leve há algum tempo para combater a infecção. " -"\\NSe você não se recuperar, você pode querer tomar outra dose, mas " -"cuidadocom a sobredosagem." #: lang/json/effects_from_json.py msgid "Took antibiotic" -msgstr "Tomou antibiótico" +msgstr "" #. ~ Description of effect 'Took antibiotic'. #: lang/json/effects_from_json.py @@ -83198,13 +73805,10 @@ msgid "" "You consumed antibiotic some time ago to fight off infection.\n" "If you don't recover you may want to take another dose, but beware overdosage." msgstr "" -" Você consumiu antibiótico há algum tempo para combater a infecção. \" " -"NSevocê não se recuperar, você pode querer tomar outra dose, mas cuidado com" -" asobredosagem." #: lang/json/effects_from_json.py msgid "Took strong antibiotic" -msgstr "Tomou forte antibiótico" +msgstr "" #. ~ Description of effect 'Took strong antibiotic'. #: lang/json/effects_from_json.py @@ -83212,48 +73816,46 @@ msgid "" "You consumed prescription-grade antibiotic some time ago to fight off infection.\n" "If you don't recover you may want to take another dose, but beware overdosage." msgstr "" -" Você consumiu antibiótico de grau de prescrição há algum tempo paracombater a infecção. \n" -" Se você não se recuperar, você pode querer tomaroutra dose, mas cuidado com a sobredosagem.\n" #: lang/json/effects_from_json.py msgid "Panacea" -msgstr "Panaceia" +msgstr "" #. ~ Description of effect 'Panacea'. #: lang/json/effects_from_json.py msgid "You feel incredible! You could take on the world!" -msgstr "Você se sente incrível! Você poderia enfrentar o mundo!" +msgstr "" #: lang/json/effects_from_json.py msgid "Soothed stomach" -msgstr "Estômago acalmado" +msgstr "" #. ~ Description of effect 'Soothed stomach'. #: lang/json/effects_from_json.py msgid "You are under the effects of a stomach soother." -msgstr "Você está sob os efeitos de uma chupeta no estômago." +msgstr "" #: lang/json/effects_from_json.py msgid "Discharge" -msgstr "Descarga" +msgstr "" #. ~ Description of effect 'Discharge'. #: lang/json/effects_from_json.py msgid "You've been recently affected by an electromagnetic pulse." -msgstr "Você foi recentemente afetado por um pulso eletromagnético." +msgstr "" #: lang/json/effects_from_json.py msgid "Supercharged" -msgstr "Sobrealimentado" +msgstr "" #. ~ Description of effect 'Supercharged'. #: lang/json/effects_from_json.py msgid "You've been struck by lightning, and feel... different." -msgstr "Você foi atingido por um raio e se sente ... diferente." +msgstr "" #: lang/json/effects_from_json.py msgid "Religious Offense" -msgstr "Ofensa religiosa" +msgstr "" #. ~ Description of effect 'Religious Offense'. #: lang/json/effects_from_json.py @@ -83261,8 +73863,6 @@ msgid "" "AI tag used when you offended an NPC with a specific conversation option. " "This is a bug if you have it." msgstr "" -" Etiqueta AI usada quando você ofendeu um NPC com uma opção de " -"conversaespecífica. Este é um bug se você tiver." #: lang/json/effects_from_json.py src/character.cpp src/player.cpp msgid "Full" @@ -83508,21 +74108,21 @@ msgstr "" #: lang/json/effects_from_json.py msgid "Stuck in a light snare" -msgstr "Preso em uma armadilha de luz" +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 "Você está preso!" +msgstr "" #: lang/json/effects_from_json.py msgid "Stuck in a heavy snare" -msgstr "Preso em uma armadilha pesada" +msgstr "" #: lang/json/effects_from_json.py msgid "Sleep Deprived" -msgstr "Privação do sono" +msgstr "" #. ~ Description of effect 'Sleep Deprived'. #: lang/json/effects_from_json.py @@ -83530,14 +74130,11 @@ msgid "" "Your sleep debt has been steadily increasing for a while. You should get " "some rest." msgstr "" -" Sua dívida de sono tem aumentado constantemente por um tempo. Você " -"deveriadescançar." #. ~ Apply message for effect(s) 'Sleep Deprived'. #: lang/json/effects_from_json.py msgid "You feel weary, your body tired from lack of quality sleep." msgstr "" -" Você se sente cansado, seu corpo cansado por falta de sono de qualidade." #. ~ Remove message for effect(s) 'Sleep Deprived'. #: lang/json/effects_from_json.py @@ -83545,12 +74142,10 @@ msgid "" "You have finally caught up with your lost sleep, and you feel refreshed and " "awake for a change." msgstr "" -" Você finalmente alcançou seu sono perdido e se sente revigorado e " -"acordadopara variar." #: lang/json/effects_from_json.py msgid "Magnesium Supplements" -msgstr "Suplementos De Magnésio" +msgstr "" #. ~ Description of effect 'Magnesium Supplements'. #: lang/json/effects_from_json.py @@ -83558,7 +74153,6 @@ msgid "" "You took some magnesium supplements. These will help with sleep " "deprivation." msgstr "" -" Você tomou alguns suplementos de magnésio. Isso ajudará na privação dosono." #: lang/json/epilogue_from_json.py msgid "" @@ -83566,8 +74160,6 @@ msgid "" "the end, he held out hope that his daughter was still alive in the " "wasteland." msgstr "" -" Morreu vários anos depois nas mãos de uma banda de Hell's Raiders. Atéo" -" final, ele esperou que sua filha ainda estivesse viva no deserto." #: lang/json/epilogue_from_json.py msgid "" @@ -83575,9 +74167,6 @@ msgid "" "leg in the woods. Died of hypothermia a week later. A note found with his " "body read, 'I wish I could have saved her.'" msgstr "" -" Estava indo para Michigan para procurar família quando ele quebrou a " -"pernana floresta. Morreu de hipotermia uma semana depois. Uma nota " -"encontrada com seu corpo dizia:\"Eu gostaria de poder salvá-la\"." #: lang/json/epilogue_from_json.py msgid "" @@ -83586,10 +74175,6 @@ msgid "" "when a failed surgery left him permanently blind he committed suicide " "without leaving a note." msgstr "" -" Sobreviveu por vários anos e fez seu nome entre outros sobreviventes. " -"Eventualmente, ele começou a se aumentar com a biônica ... quando " -"umacirurgia fracassada o deixou permanentemente cego, ele cometeu suicídio " -"semdeixar uma nota." #: lang/json/epilogue_from_json.py msgid "" @@ -83598,10 +74183,6 @@ msgid "" "during a typhoid outbreak a few years later. Survived by only his three " "year old son." msgstr "" -" Reuniu-se com algum sucesso como artesão trabalhando em um pequeno " -"postoavançado de sobreviventes. Eventualmente ele se casou com um " -"jovemrefugiado e teve dois filhos. Morreu durante um surto de febre " -"tifóidealguns anos depois. Sobreviveu apenas por seu filho de três anos." #: lang/json/epilogue_from_json.py msgid "" @@ -83610,10 +74191,6 @@ msgid "" "return. His wrecked truck was located by a scavenger band but he was never " "seen again." msgstr "" -" Tornou-se um mecânico qualificado e ajudou vários refugiados à procura " -"deassentamentos. Ele deixou um dia em uma corrida de negociação de rotina " -"enão conseguiu retornar. Seu caminhão destruído foi localizado por uma " -"bandade carniceiros, mas ele nunca foi visto novamente." #: lang/json/epilogue_from_json.py msgid "" @@ -83621,9 +74198,6 @@ msgid "" " never to be seen again. Attempts to locate him were called off when one of" " the searchers disappeared without a trace." msgstr "" -" Tornou-se um caçador e caçador de jogos. Eventualmente ele saiu em " -"umaviagem de caça para nunca mais ser visto. Tentativas de localizá-lo " -"foramcanceladas quando um dos buscadores desapareceu sem deixar vestígios." #: lang/json/epilogue_from_json.py msgid "" @@ -83632,11 +74206,6 @@ msgid "" "entitlements and property be transferred to a young lady he had met while " "guarding a FEMA camp. Was survived by the young lady and a newborn son." msgstr "" -" Foi para se alistar na velha guarda. Foi morto em ação um ano depoislutando" -" contra os Hell's Raiders em Vermont. Em seu testamento, elesolicitou " -"que todos os direitos e propriedades fossem transferidos para umajovem que " -"ele havia conhecido enquanto vigiava um acampamento da FEMA. Foisobrevivido " -"pela jovem e um filho recém-nascido." #: lang/json/epilogue_from_json.py msgid "" @@ -83644,17 +74213,12 @@ msgid "" "hanged for stealing from an employer; weeks later it was revealed the " "employer never had the resources nor intention to pay him." msgstr "" -" Tornou-se um trabalhador de aluguel em qualquer posto avançado queprecisava" -" de ajuda. Foi enforcado por roubar de um empregador; semanasdepois, foi " -"revelado que o empregador nunca teve recursos nem intenção depagá-lo." #: lang/json/epilogue_from_json.py msgid "" " Never spent much time around settlements after your death. Was last " "seen near the Adirondacks in New York." msgstr "" -" Nunca passei muito tempo em torno de assentamentos após a sua morte. " -"Foivisto pela última vez perto das Adirondacks em Nova York." #: lang/json/epilogue_from_json.py msgid "" @@ -83663,10 +74227,6 @@ msgid "" "Keep searching, the world is big enough that there has to be a place out " "there that hasn't been overrun.'" msgstr "" -" Morreu de uma picada infectada algumas semanas depois. Antes de ele passar," -" ele disse aos presentes: 'Agora eu perdi tudo neste mundo ... mas " -"vocênão perdeu. Continue procurando, o mundo é grande o suficiente para " -"quehaja um lugar lá fora que não tenha sido invadido." #: lang/json/epilogue_from_json.py msgid "" @@ -83674,9 +74234,6 @@ msgid "" "your passing. Unable to find treatment, he asked to be put down while " "listening to someone read from his favorite novel, Don Quixote." msgstr "" -" Consegui contrair alguma forma de infecção fúngica alguns meses após a " -"suamorte. Incapaz de encontrar tratamento, ele pediu para ser " -"abaixadoenquanto ouvia alguém ler seu romance favorito, Dom Quixote." #: lang/json/epilogue_from_json.py msgid "" @@ -83686,11 +74243,6 @@ msgid "" "thing to happen to us in years... there just isn't any turning back when you" " lose all hope.'" msgstr "" -" Tornou-se um químico e médico autodidata. Seu trabalho acabou levando-o " -"auma vida de abuso de álcool e dependência de morfina. Sobrecarregou uma " -"noite quando não foi atendido. A comunidade que ele ajudou disse: 'Ele foi " -"provavelmente a melhor coisa que nos aconteceu em anos... simplesmente não " -"há como voltar atrás quando você perde toda a esperança.'" #: lang/json/epilogue_from_json.py msgid "" @@ -83698,9 +74250,6 @@ msgid "" "killed when cornered in an abandoned store when scavenging with a group of " "unskilled survivors." msgstr "" -" Passou a se tornar um notável observador e explorador urbano. " -"Foitragicamente morto quando encurralado em uma loja abandonada ao buscar " -"umgrupo de sobreviventes não qualificados." #: lang/json/epilogue_from_json.py msgid "" @@ -83709,11 +74258,6 @@ msgid "" "Unfortunately, he bled to death over the course of several days after having" " stepped on a landmine intended to target local raiders." msgstr "" -" Após a sua morte, ele se tornou um cara recluso mas amigável. Suascontínuas" -" entregas ajudaram a manter vivas muitas colônias de sobreviventesao longo " -"dos anos. Infelizmente, ele sangrou até a morte ao longo de váriosdias " -"depois de ter pisado em uma mina terrestre destinada a atacarinvasores " -"locais." #: lang/json/epilogue_from_json.py msgid "" @@ -83724,12 +74268,6 @@ msgid "" " to his execution he claimed that, 'butchering the dead was never as fun as " "the living.'" msgstr "" -" Perdeu o caminho muito antes de te conhecer. O cataclismo ofereceu-lhe " -"aoportunidade de denunciar os antigos vícios que levaram ao " -"seuencarceramento ... uma oferta que ficou sem resposta. Depois que você " -"foimorto, ele voltou a caçar aqueles que ele via como fracos. O número " -"depessoas que ele assassinou é desconhecido, mas antes de sua execução, ele " -"afirmou que 'massacrar os mortos nunca foi tão divertido quanto os vivos'." #: lang/json/epilogue_from_json.py msgid "" @@ -83739,12 +74277,6 @@ msgid "" "he took it upon himself to prove his worth to his fellow man. Died from a " "heart attack while alone on a trip many years after the cataclysm." msgstr "" -" Encontrou um novo significado na vida depois da sua morte. Embora ele " -"nuncatenha lhe informado, seus crimes no mundo falecido impediram que " -"eletivesse um lugar real na sociedade. Com a destruição dos " -"registroscriminais existentes, ele se encarregou de provar seu valor para " -"seussemelhantes. Morreu de um ataque cardíaco enquanto estava sozinho em " -"umaviagem muitos anos após o cataclismo." #: lang/json/epilogue_from_json.py msgid "" @@ -83755,13 +74287,6 @@ msgid "" "moments he saw Porkey the pig exclaim, 'That's all folks!' before an " "animated audience." msgstr "" -" Passou toda a sua vida secretamente viciado em uma substância ou outra. " -"Após sua morte, ele trabalhou brevemente como operário em um campo " -"desobreviventes, antes de perder o controle sobre a realidade, devido " -"aosvários efeitos colaterais associados às suas drogas de escolha. Ele " -"morreude complicações devido a uma convulsão. Em seus últimos momentos, " -"viuPorkey, o porco, exclamar:'É tudo pessoal!' antes de umaaudiência " -"animada." #: lang/json/epilogue_from_json.py msgid "" @@ -83773,13 +74298,6 @@ msgid "" "cult. He was killed when he attempted to sneak into the cult's compound to " "enact revenge himself." msgstr "" -" Nunca foi conhecido como um indivíduo particularmente corajoso " -"nememocionalmente estável. Seu arrependimento por não ajudar as " -"pessoasdurante os primeiros dias do cataclismo levou-o a tentar o suicídio " -"váriasvezes nos anos que se seguiram. A vida melhorou rapidamente quando ele" -" secasou com outro sobrevivente, mas foi destruído quando sua esposa foi " -"mortapor membros de um misterioso culto do apocalipse. Ele foi morto " -"quandotentou se infiltrar no complexo do culto para se vingar." #: lang/json/epilogue_from_json.py msgid "" @@ -83788,10 +74306,6 @@ msgid "" "something rotten. Was abandoned by his party in an infested neighborhood, " "never to be seen again." msgstr "" -" Passou o resto de sua vida ajudando uma festa aventureira ou outra. " -"Eventualmente sua sorte acabou quando ele ficou doente depois de comer " -"algopodre. Foi abandonado por sua festa em um bairro infestado, para nunca " -"maisser visto." #: lang/json/epilogue_from_json.py msgid "" @@ -83801,11 +74315,6 @@ msgid "" "grave. Upon consideration, the party that he was with opted to shoot him in" " the head and divide his belongings rather than waste the alcohol." msgstr "" -" Morreu de sépsis algumas semanas depois de você. O corte em sua perna " -"queacabou por matá-lo teria sido facilmente tratável em quase qualquer " -"outrasituação. Seu desejo final era que ele fosse permitido beber-se em " -"seutúmulo. Após a consideração, a festa que ele estava com optou por atirar " -"nacabeça dele e dividir seus pertences, em vez de desperdiçar o álcool." #: lang/json/epilogue_from_json.py msgid "" @@ -83817,14 +74326,6 @@ msgid "" "despite the protests of a huge number of survivors that had benefited from " "his service over the years." msgstr "" -" Trabalhou duro após sua morte para organizar seu próprio bando " -"desobreviventes. Fui casar e ter dois filhos que foram criados e " -"ensinaramtodas as habilidades de sobrevivência que eles precisariam. Seu " -"passado, eventualmente, alcançou-o quando ele entrou em conflito com um " -"coronel daVelha Guarda. Desde que fugiu de seu posto como soldado da Guarda " -"Nacionaldurante o cataclismo, ele foi enforcado por deserção, apesar dos " -"protestosde um grande número de sobreviventes que haviam se beneficiado de " -"seuserviço ao longo dos anos." #: lang/json/epilogue_from_json.py msgid "" @@ -83834,11 +74335,6 @@ msgid "" "disappearance after starting the journey was described by his fellow " "survivors as 'a waste of a perfectly good boat.'" msgstr "" -" Fui para a costa e salvei um pequeno veleiro. Apesar dos protestos " -"daquelesque o conheciam, sua decisão de navegar em busca de algum paraíso " -"tropicaldesabitado no Atlântico Norte foi final. Seu desaparecimento após o " -"início da jornada foi descrito por seus colegas sobreviventes como 'um " -"desperdício de um barco perfeitamente bom.'" #: lang/json/epilogue_from_json.py msgid "" @@ -83849,13 +74345,6 @@ msgid "" "his ability to grasp or lift, he spent the last few years of his life " "begging for food and relying on charity from his fellow survivors." msgstr "" -" Dentro de algumas semanas de sua morte, ele foi roubado por um par " -"debandidos. Por tentar resistir às suas exigências, eles quebraram os " -"doisbraços em vários lugares. Sozinho e ferido, demorou quase um mês até " -"queele encontrasse refúgio e assistência médica primitiva com " -"outrossobreviventes. Tendo perdido sua capacidade de compreender ou " -"levantar, elepassou os últimos anos de sua vida implorando por comida e " -"confiando nacaridade de seus companheiros sobreviventes." #: lang/json/epilogue_from_json.py msgid "" @@ -83866,13 +74355,6 @@ msgid "" "as he could clear them. His life ended when antibiotic resistant infection " "spread between his countless minor wounds." msgstr "" -" Treinado sob sua orientação, ele se tornou um renomado caçador " -"deabominações. Com as armas que conseguiu salvar, liderou as festas " -"pararecuperar cidade após cidade dos mortos-vivos e outros horrores que " -"vagavampelo deserto. Seu sucesso foi temporal, à medida que monstros " -"migraram paraos territórios limpos tão rapidamente quanto ele conseguiu " -"liberá-los. Suavida terminou quando a infecção resistente a antibióticos se " -"espalhou entresuas inúmeras feridas menores." #: lang/json/epilogue_from_json.py msgid "" @@ -83884,14 +74366,6 @@ msgid "" "insect the size of a man opening his cabin's door and screaming in a dozen " "perfectly human voices as it flew straight at him." msgstr "" -" Renunciou ao estilo de vida aventureiro após a sua morte e " -"escolheuestabelecer um campo auto-suficiente longe dos horrores encontrados " -"nascidades antigas. Suas tentativas de solidão foram em vão quando " -"visitantesde outro mundo começaram a atacar os fracos e isolados. Os últimos" -" momentosde sua vida foram passados em perplexidade e horror quando ele foi " -"acordadouma noite para um inseto alienígena do tamanho de um homem abrindo a" -" portade sua cabine e gritando em uma dúzia de vozes perfeitamente " -"humanasenquanto voava direto para ele." #: lang/json/epilogue_from_json.py msgid "" @@ -83901,11 +74375,6 @@ msgid "" " response units he was torn to pieces by the undead that were attracted by " "the commotion." msgstr "" -" Foi detido e algemado por um policial em várias acusações de pilhagem " -"evandalismo que foram rastreadas e registradas pelos poucos sistemas " -"desegurança restantes. Enquanto estava sendo mantido no chão à espera " -"deunidades adicionais de resposta da polícia, ele foi despedaçado " -"pelosmortos-vivos que foram atraídos pela comoção." #: lang/json/epilogue_from_json.py msgid "" @@ -83913,9 +74382,6 @@ msgid "" "Raiders. Till the end, she held out hope that her son was still alive in " "the wasteland." msgstr "" -" Cometeu suicídio em vez de cair nas mãos dos Hell's Raiders. Até " -"ofinal, ela segurou a esperança de que seu filho ainda estivesse vivo " -"nodeserto." #: lang/json/epilogue_from_json.py msgid "" @@ -83923,9 +74389,6 @@ msgid "" "number of poisonous roots. Over the course of three or four days she " "passed. A note found with her body read, 'I wish I could have saved him.'" msgstr "" -" Estava a caminho de Ohio para procurar família quando consumiu váriasraízes" -" venenosas. Ao longo de três ou quatro dias ela passou. Uma notaencontrada " -"em seu corpo dizia:'Eu gostaria de tê-lo salvo'." #: lang/json/epilogue_from_json.py msgid "" @@ -83934,10 +74397,6 @@ msgid "" "mutation left her permanently disfigured and in pain she committed suicide " "without leaving a note." msgstr "" -" Sobreviveu por vários anos e fez um nome para si mesma entre " -"outrossobreviventes. Eventualmente ela começou a experimentar com mutagênico" -" ...quando uma mutação a deixou permanentemente desfigurada e com dor ela " -"sesuicidou sem deixar uma nota." #: lang/json/epilogue_from_json.py msgid "" @@ -83946,10 +74405,6 @@ msgid "" "childbirth a few years later. Survived by her husband and two year old " "daughter." msgstr "" -" Reuniu-se com algum sucesso como artesã trabalhando em um pequeno " -"postoavançado de sobreviventes. Eventualmente ela se casou com um refugiado " -"eteve um filho. Morreu durante o parto alguns anos depois. Sobreviveu porseu" -" marido e filha de dois anos." #: lang/json/epilogue_from_json.py msgid "" @@ -83958,10 +74413,6 @@ msgid "" "settlement when she disappeared. No trace of her or the vehicle was ever " "found." msgstr "" -" Tornou-se um mecânico qualificado e ajudou vários refugiados à procura " -"deassentamentos. Ela deixou um dia dirigindo um número de migrantes " -"paraoutro assentamento quando ela desapareceu. Nenhum vestígio dela ou " -"doveículo foi encontrado." #: lang/json/epilogue_from_json.py msgid "" @@ -83969,9 +74420,6 @@ msgid "" "trip never to be seen again. Attempts to locate her were called off when a " "shredded jacket was found." msgstr "" -" Tornou-se um caçador e caçador de jogos. Eventualmente ela saiu em " -"umaviagem de caça para nunca mais ser vista. Tentativas de localizá-la " -"foramcanceladas quando uma jaqueta rasgada foi encontrada." #: lang/json/epilogue_from_json.py msgid "" @@ -83980,28 +74428,18 @@ msgid "" "mission that followed was one of the major defeats that forced the Old Guard" " to abandon the area. It is unknown if she survived." msgstr "" -" Foi para se alistar na velha guarda. Foi capturado um ano depois " -"lutandocontra os Hell's Raiders na desastrosa campanha de Vermont. A " -"rápidamissão de resgate que se seguiu foi uma das principais derrotas " -"queforçaram a Velha Guarda a abandonar a área. Não se sabe se ela " -"sobreviveu." #: lang/json/epilogue_from_json.py msgid "" " Became a laborer for hire in any outposts that needed assistance. Was " "wrongly shot by her employer during a wage dispute." msgstr "" -" Tornou-se um trabalhador de aluguel em qualquer posto avançado " -"queprecisasse de ajuda. Foi erroneamente baleado por seu empregador " -"duranteuma disputa salarial." #: lang/json/epilogue_from_json.py msgid "" " Never spent much time around settlements after your death. Was last " "seen near the old Canadian border." msgstr "" -" Nunca passei muito tempo em torno de assentamentos após a sua morte. " -"Foivisto pela última vez perto da antiga fronteira canadense." #: lang/json/epilogue_from_json.py msgid "" @@ -84009,9 +74447,6 @@ msgid "" " those present, 'I've outlived everyone that I have ever loved. If anything" " death is a few months late'." msgstr "" -" Morreu de uma picada infectada algumas semanas depois. Antes de ela passar," -" ela disse aos presentes: 'Eu sobrevivi a todos que já amei. Se " -"algumacoisa a morte está atrasada alguns meses '." #: lang/json/epilogue_from_json.py msgid "" @@ -84019,9 +74454,6 @@ msgid "" "passing. Unable to find treatment she asked to be put down while listening " "to someone read from her favorite novel, A Tale of Two Cities." msgstr "" -" Consegui contratar alguma forma de infecção alguns meses após a sua morte. " -"Incapaz de encontrar tratamento, ela pediu para ser colocada enquanto " -"ouviaalguém ler seu romance favorito, A Tale of Two Cities." #: lang/json/epilogue_from_json.py msgid "" @@ -84030,11 +74462,6 @@ msgid "" "left unattended. The community she helped said, 'I've never known a nicer " "woman nor one who had fought off depression for so long.'" msgstr "" -" Tornou-se um químico e médico autodidata. Seu trabalho acabou levando-a " -"auma vida de abuso de álcool e dependência de morfina. Sobrecarregou uma " -"noite quando não foi atendido. A comunidade que ela ajudou disse: 'Eu nunca " -"conheci uma mulher mais agradável, nem uma que tenha lutado contra a " -"depressão por tanto tempo'." #: lang/json/epilogue_from_json.py msgid "" @@ -84042,9 +74469,6 @@ msgid "" "killed by one of her students when leading a group of unskilled survivors on" " a night supply raid." msgstr "" -" Passou a se tornar um notável observador e explorador urbano. Foi " -"tragicamente morto por um de seus alunos quando liderou um grupo " -"desobreviventes não qualificados em um ataque noturno." #: lang/json/epilogue_from_json.py msgid "" @@ -84055,12 +74479,6 @@ msgid "" "raid. Without witnesses, no connection between her death and the other " "survivors could be proven." msgstr "" -" Após a sua morte, ela se tornou um indivíduo recluso e excêntrico. Suas " -"habilidades foram inestimáveis para os postos avançados que ela escolheu " -"para ajudar. Infelizmente, a competição por recursos e direitos desalvamento" -" levou um grupo de sobreviventes a persuadir uma multidão demortos-vivos a " -"cercá-la quando ela estava em um ataque solitário. Semtestemunhas, nenhuma " -"conexão entre sua morte e os outros sobreviventes poderia ser comprovada." #: lang/json/epilogue_from_json.py msgid "" @@ -84071,13 +74489,6 @@ msgid "" "survivors for everything they had before leaving them to die amongst the " "horrors that roamed the land. Her eventual fate is unknown." msgstr "" -" Perdeu seu caminho muito antes de conhecer você. O cataclismo ofereceu-lhea" -" oportunidade de denunciar os antigos vícios que levaram ao " -"seuencarceramento ... uma oferta que ficou sem resposta. Depois que você " -"foimorto, ela voltou a atacar aqueles que ela via como fracos. Há rumores " -"deque ela roubou dezenas de sobreviventes por tudo que eles tinham antes " -"dedeixá-los morrer entre os horrores que perambulavam pela terra. Seu " -"destinofinal é desconhecido." #: lang/json/epilogue_from_json.py msgid "" @@ -84088,12 +74499,6 @@ msgid "" " on a dangerous rescue mission when witnesses saw an helicopter crash-land " "in a nearby town." msgstr "" -" Encontrou um novo significado na vida depois da sua morte. Embora ela " -"nuncao tenha informado, seus crimes no mundo que partiu impediram-na de ter " -"umlugar real na sociedade. Com a destruição do sistema de registro criminal," -" ela se encarregou de reparar seus crimes. Morreu em uma perigosa missão " -"deresgate quando testemunhas viram um helicóptero cair em uma cidade " -"próxima." #: lang/json/epilogue_from_json.py msgid "" @@ -84103,12 +74508,6 @@ msgid "" " Drugs allowed her to relive the memories of friends, family, and loved " "ones... she died happier than could have ever been expected." msgstr "" -" Passou toda a sua vida secretamente viciada em uma substância ou outra. " -"Após a sua morte, ela trabalhou brevemente em um campo de sobreviventesantes" -" de encontrar um lugar no lucrativo comércio de drogas. Ela morreu, " -"previsivelmente, de uma overdose. As drogas permitiram que ela revivesse " -"asmemórias de amigos, familiares e entes queridos ... ela morreu mais " -"felizdo que se poderia esperar." #: lang/json/epilogue_from_json.py msgid "" @@ -84120,13 +74519,6 @@ msgid "" "innocent casualty when Old Guard soldiers stormed the compound on suspicion " "of crimes against humanity." msgstr "" -" Nunca foi conhecido como um indivíduo particularmente corajoso " -"nememocionalmente estável. Sua incapacidade de se conformar emocionalmente " -"àvida após o cataclismo levou-a a tentar o suicídio várias vezes nos anosque" -" se seguiram. Atraída por promessas de renovação e pela perspectiva " -"depertencer a uma nova família, ela se envolveu com um culto carismático. " -"Elaera uma vítima inocente quando soldados da Velha Guarda invadiram " -"ocomplexo por suspeita de crimes contra a humanidade." #: lang/json/epilogue_from_json.py msgid "" @@ -84136,11 +74528,6 @@ msgid "" "with deemed her a lost cause and put a bullet in her head instead of letting" " her turn. She had suffered from a treatable form of marasmus." msgstr "" -" Passou o resto da vida ajudando uma festa de aventureiro ou outra. " -"Eventualmente, a sua sorte acabou quando ela ficou doente após a fomelevou-a" -" a comer o que pudesse da floresta. A festa que ela estava com elaconsiderou" -" uma causa perdida e colocou uma bala na cabeça, em vez de deixá-la virar. " -"Ela sofria de uma forma tratável de marasmo." #: lang/json/epilogue_from_json.py msgid "" @@ -84149,10 +74536,6 @@ msgid "" "short time later. Her murderer was the first person to discover her " "corpse... and all the gear she had been saving." msgstr "" -" Foi esfaqueado no braço por um sobrevivente mal-humorado algumas " -"semanasdepois que você passou. O corte rapidamente se infectou e ela morreu " -"desepticemia pouco tempo depois. Seu assassino foi a primeira pessoa " -"adescobrir seu cadáver ... e todos os equipamentos que ela estava salvando." #: lang/json/epilogue_from_json.py msgid "" @@ -84163,12 +74546,6 @@ msgid "" "were thrown through the windows. Her last desire was that she could have " "taken the bastards out with her." msgstr "" -" Trabalhou duro após sua morte para construir seu próprio bando " -"desobreviventes. Graças às habilidades que adquirira, conseguiu ganhar um " -"bomlucro saqueando as cidades abandonadas. Depois de uma série de " -"disputasacirradas com seus seguidores, ela se viu trancada em seu próprio " -"carroenquanto um par de Molotovs era jogado através das janelas. Seu " -"últimodesejo era que ela poderia ter levado os bastardos com ela." #: lang/json/epilogue_from_json.py msgid "" @@ -84179,13 +74556,6 @@ msgid "" "supplied but never saw her reward. A stray bullet struck her down when the " "Hell's Raiders launched a raid in an attempt to gain access to the sea." msgstr "" -" Procurou a costa na esperança de encontrar um navio abandonado após a " -"suamorte. Sua jornada terminou quando ela descobriu uma doca controlada " -"pelaOld Guard em uma cidade de pescadores abandonada. Prometida uma nova " -"vidase concordasse em servir como contratada, passou os anos " -"seguintestrabalhando para manter o acampamento suprido, mas nunca viu " -"suarecompensa. Uma bala perdida a derrubou quando os Hell's " -"Raiderslançaram um ataque em uma tentativa de ganhar acesso ao mar." #: lang/json/epilogue_from_json.py msgid "" @@ -84194,11 +74564,6 @@ 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 "" -" Dentro de alguns meses de sua morte, ela foi roubada por um grupo " -"debandidos. Quando ela atirou o primeiro morto em suas trilhas, um de " -"seuscompanheiros lançou uma explosão de seu lança-chamas a curta distância. " -"Suas cinzas e algumas peças estranhas de joias eram tudo o que podia " -"serrecuperado." #: lang/json/epilogue_from_json.py msgid "" @@ -84210,13 +74575,6 @@ msgid "" "gate, her party was last seen venturing into the unknown to meet the threat " "at its source." msgstr "" -" Treinada sob sua orientação, ela se tornou uma renomada caçadora " -"demonstros. Liderando um bando de guerreiros armados com armas primitivas, " -"ela rastreou e matou vários horrores do outro mundo que vagavam pelodeserto." -" Sua busca para acabar com a ameaça levou sua festa a um portãocintilante " -"que parecia vomitar abominações e material alienígena. Sem meiosde fechar o " -"portão, seu grupo foi visto pela última vez se aventurando nodesconhecido " -"para enfrentar a ameaça na sua fonte." #: lang/json/epilogue_from_json.py msgid "" @@ -84227,12 +74585,6 @@ msgid "" "she and her husband were able to distract the monster as her children " "escaped." msgstr "" -" Renunciou o estilo de vida aventureiro após a sua morte e optou por " -"iniciaruma família com um companheiro sobrevivente em uma cabana de " -"caçaabandonada. Sobrevivência foi sombria, mas a família cresceu ao longo " -"dosanos até que ela teve três filhos e uma filha. Seu fim veio quando " -"oshorrores finalmente localizaram sua herdade ... ela e seu marido " -"foramcapazes de distrair o monstro enquanto seus filhos escapavam." #: lang/json/epilogue_from_json.py msgid "" @@ -84242,16 +74594,10 @@ msgid "" " crying out for help and slowly consuming what supplies she carried. Two " "weeks after being dragged to her cell she died from dehydration." msgstr "" -" Foi detido e encarcerado por um policial em múltiplas acusações de " -"pilhageme vandalismo que foram rastreadas e registradas pelos poucos " -"sistemas desegurança restantes. Presa em uma cela aguardando revisão da " -"polícia, elapassou semanas clamando por ajuda e consumindo lentamente os " -"suprimentosque carregava. Duas semanas depois de ser arrastada para o " -"celular, elamorreu de desidratação." #: lang/json/faction_from_json.py msgid "Your Followers" -msgstr "Seus seguidores" +msgstr "" #. ~ Description for Your Followers #: lang/json/faction_from_json.py @@ -84259,8 +74605,6 @@ msgid "" "The survivors who have entrusted you with their well-being. If morale " "drops, poor performance and mutiny may become issues." msgstr "" -" Os sobreviventes que lhe confiaram o bem-estar deles. Se a moral cair, omau" -" desempenho e o motim podem se tornar problemas." #: lang/json/faction_from_json.py msgid "Hub 01" @@ -84276,7 +74620,7 @@ msgstr "" #: lang/json/faction_from_json.py src/game.cpp msgid "The Old Guard" -msgstr "A velha guarda" +msgstr "" #. ~ Description for The Old Guard #: lang/json/faction_from_json.py @@ -84284,12 +74628,10 @@ msgid "" "The remains of the federal government. The extent of their strength is " "unknown but squads of patrolling soldiers have been seen under their banner." msgstr "" -" Os restos do governo federal. A extensão de sua força é desconhecida, " -"masesquadrões de soldados patrulhando foram vistos sob sua bandeira." #: lang/json/faction_from_json.py src/game.cpp msgid "The Free Merchants" -msgstr "Os comerciantes livres" +msgstr "" #. ~ Description for The Free Merchants #: lang/json/faction_from_json.py @@ -84297,8 +74639,6 @@ msgid "" "A conglomeration of entrepreneurs and businessmen that stand together to " "hammer-out an existence through trade and industry." msgstr "" -" Um conglomerado de empreendedores e empresários que se unem para formar " -"umaexistência através do comércio e da indústria." #: lang/json/faction_from_json.py msgid "The Beggars in the Lobby" @@ -84313,7 +74653,7 @@ msgstr "" #: lang/json/faction_from_json.py src/game.cpp msgid "The Tacoma Commune" -msgstr "A comuna de Tacoma" +msgstr "" #. ~ Description for The Tacoma Commune #: lang/json/faction_from_json.py @@ -84321,8 +74661,6 @@ msgid "" "An outpost started by the Free Merchants to provide a source of food and raw" " materials." msgstr "" -" Um posto avançado iniciado pelos Mercadores Livres para fornecer uma " -"fontede alimentos e matérias-primas." #: lang/json/faction_from_json.py msgid "Marloss Evangelists" @@ -84337,7 +74675,7 @@ msgstr "" #: lang/json/faction_from_json.py src/game.cpp msgid "The Wasteland Scavengers" -msgstr "The Wasteland Scavengers" +msgstr "" #. ~ Description for The Wasteland Scavengers #: lang/json/faction_from_json.py @@ -84345,12 +74683,10 @@ msgid "" "Autonomous bands or individuals who make their living raiding the ruins of " "the old-world for gear and provisions." msgstr "" -" Bandas autônomas ou indivíduos que ganham a vida invadindo as ruínas " -"domundo antigo por equipamentos e provisões." #: lang/json/faction_from_json.py src/game.cpp msgid "Hell's Raiders" -msgstr "Raiders do Inferno" +msgstr "" #. ~ Description for Hell's Raiders #: lang/json/faction_from_json.py @@ -84358,9 +74694,6 @@ msgid "" "The largest gang of hooligans and bandits that preys upon other survivors. " "Even if you have no gear, there is always a need for slaves and fresh meat." msgstr "" -" A maior gangue de hooligans e bandidos que ataca outros sobreviventes. " -"Mesmo que você não tenha equipamento, sempre há necessidade de escravos " -"ecarne fresca." #: lang/json/faction_from_json.py msgid "Mutants Bees" @@ -84384,7 +74717,7 @@ msgstr "" #: lang/json/faction_from_json.py msgid "Captives" -msgstr "Cativos" +msgstr "" #. ~ Description for Captives #: lang/json/faction_from_json.py @@ -84393,13 +74726,10 @@ msgid "" "mutants, or worse. Without your help, the remainder of their lives will be " "short and gruesome." msgstr "" -" Estes são sobreviventes infelizes que foram capturados por atacantes, " -"traficantes de escravos, mutantes ou coisas piores. Sem sua ajuda, orestante" -" de suas vidas será curto e horrível." #: lang/json/faction_from_json.py msgid "Refugees" -msgstr "Refugiados" +msgstr "" #. ~ Description for Refugees #: lang/json/faction_from_json.py @@ -84410,12 +74740,6 @@ msgid "" " more. It's only a matter of time before they too become the prey of " "otherwordly creatures, or of all-too-human monsters." msgstr "" -" Os remanescentes dispersos da civilização, esses poucos sortudosconseguiram" -" barricar-se dentro durante os primeiros estágios do cataclismo. Embora " -"temporariamente seguros, eles estão com falta de suprimentos e nãotêm as " -"habilidades necessárias para obter mais. É apenas uma questão detempo antes " -"que eles também se tornem presas de criaturas de outras formas, ou de " -"monstros humanos demais." #: lang/json/faketypes.py msgid "human" @@ -84449,25 +74773,25 @@ msgstr "" #. ~ Description for drive belt #: lang/json/fault_from_json.py msgid "Required for operation of an attached alternator." -msgstr "humano Necessário para operação de um alternador acoplado." +msgstr "" #: lang/json/fault_from_json.py msgid "glow plugs" -msgstr "velas de incandescência" +msgstr "" #. ~ Description for glow plugs #: lang/json/fault_from_json.py msgid "Help when starting an engine in low ambient temperatures." -msgstr "Ajuda ao ligar um motor em baixas temperaturas ambientes." +msgstr "" #: lang/json/fault_from_json.py msgid "immobiliser" -msgstr "imobilizador" +msgstr "" #. ~ Description for immobiliser #: lang/json/fault_from_json.py msgid "Prevents starting of the vehicle without the appropriate key." -msgstr "Impede a partida do veículo sem a chave apropriada." +msgstr "" #: lang/json/fault_from_json.py lang/json/terrain_from_json.py msgid "diesel pump" @@ -84477,87 +74801,79 @@ msgstr "distribuidor de diesel" #: lang/json/fault_from_json.py msgid "Required to pump and pressurize diesel from a vehicles tank." msgstr "" -" Necessário para bombear e pressurizar o diesel de um tanque de veículos." #. ~ Description for air filter #: lang/json/fault_from_json.py msgid "" "An expired filter reduces fuel efficiency and increases smoke production." msgstr "" -" Um filtro expirado reduz a eficiência de combustível e aumenta a produçãode" -" fumaça." #: lang/json/fault_from_json.py msgid "fuel filter" -msgstr "filtro de combustível" +msgstr "" #. ~ Description for fuel filter #: lang/json/fault_from_json.py msgid "" "An expired filter reduces performance and increases the chance of backfires." msgstr "" -" Um filtro expirado reduz o desempenho e aumenta a chance de " -"efeitoscolaterais." #: lang/json/fault_from_json.py msgid "fuel pump" -msgstr "bomba de combustivel" +msgstr "" #. ~ Description for fuel pump #: lang/json/fault_from_json.py msgid "Required to pump gasoline from a vehicles tank." -msgstr "Necessário para bombear gasolina de um tanque de veículos." +msgstr "" #: lang/json/fault_from_json.py lang/json/terrain_from_json.py msgid "water pump" -msgstr "bomba de água" +msgstr "" #. ~ Description for water pump #: lang/json/fault_from_json.py msgid "Required to pump water to an external radiator or heatsink." msgstr "" -" Necessário para bombear água para um radiador externo ou dissipador " -"decalor." #: lang/json/fault_from_json.py msgid "starter motor" -msgstr "partida do motor" +msgstr "" #. ~ Description for starter motor #: lang/json/fault_from_json.py msgid "Required to initially start the engine." -msgstr "Necessário para iniciar o mecanismo inicialmente." +msgstr "" #: lang/json/furniture_from_json.py msgid "hay" -msgstr "existem" +msgstr "" #. ~ Description for hay #: lang/json/furniture_from_json.py msgid "A bale of hay. You could sleep on it, if desperate." msgstr "" -" Um fardo de feno. Você poderia dormir com isso, se estivesse desesperado." #: lang/json/furniture_from_json.py msgid "whish!" -msgstr "desejo!" +msgstr "" #: lang/json/furniture_from_json.py msgid "whish." -msgstr "desejo." +msgstr "" #: lang/json/furniture_from_json.py msgid "pile of woodchips" -msgstr "pilha de lascas de madeira" +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 "Pilha de pedaços de madeira lascados. Você pode movê-lo com uma pá." +msgstr "" #: lang/json/furniture_from_json.py msgid "pile of rubble" -msgstr "pilha de escombros" +msgstr "" #. ~ Description for pile of rubble #: lang/json/furniture_from_json.py @@ -84565,12 +74881,10 @@ msgid "" "Pile of various metals, bricks, and other building materials. You could " "clear it with a shovel." msgstr "" -" Pilha de vários metais, tijolos e outros materiais de construção. " -"Vocêpoderia limpá-lo com uma pá." #: lang/json/furniture_from_json.py msgid "pile of rocky rubble" -msgstr "pilha de entulho rochoso" +msgstr "" #. ~ Description for pile of rocky rubble #: lang/json/furniture_from_json.py @@ -84579,7 +74893,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "pile of trashy rubble" -msgstr "pilha de entulho inútil" +msgstr "" #. ~ Description for pile of trashy rubble #: lang/json/furniture_from_json.py @@ -84590,43 +74904,43 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "metal wreckage" -msgstr "destroços de metal" +msgstr "" #. ~ Description for metal wreckage #: lang/json/furniture_from_json.py msgid "Pile of various bent and twisted metals." -msgstr "Pilha de vários metais dobrados e torcidos." +msgstr "" #: lang/json/furniture_from_json.py msgid "pile of ash" -msgstr "pilha de cinzas" +msgstr "" #. ~ Description for pile of ash #: lang/json/furniture_from_json.py msgid "Some ash, from wood or possibly bodies." -msgstr "Algumas cinzas, de madeira ou possivelmente corpos." +msgstr "" #: lang/json/furniture_from_json.py msgid "road barricade" -msgstr "barricada de estrada" +msgstr "" #. ~ Description for road barricade #: lang/json/furniture_from_json.py msgid "A road barricade. For barricading roads." -msgstr "Uma barricada de estrada. Para barricar estradas." +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/map.cpp msgid "smash!" -msgstr "esmagar!" +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." -msgstr "pio." +msgstr "" #: lang/json/furniture_from_json.py msgid "sandbag barricade" -msgstr "barricada de sacos de areia" +msgstr "" #. ~ Description for sandbag barricade #: lang/json/furniture_from_json.py @@ -84635,11 +74949,11 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "rrrip!" -msgstr "rrrip!" +msgstr "" #: lang/json/furniture_from_json.py msgid "sandbag wall" -msgstr "parede de sacos de areia" +msgstr "" #. ~ Description for sandbag wall #: lang/json/furniture_from_json.py @@ -84666,7 +74980,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "bulletin board" -msgstr "quadro de avisos" +msgstr "" #. ~ Description for bulletin board #: lang/json/furniture_from_json.py @@ -84678,29 +74992,29 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: src/iuse.cpp msgid "crunch!" -msgstr "crunch!" +msgstr "" #: lang/json/furniture_from_json.py msgid "indoor plant" -msgstr "planta interna" +msgstr "" #. ~ Description for indoor plant #: lang/json/furniture_from_json.py msgid "A variety of plant, used for decoration." -msgstr "Uma variedade de plantas, usadas para decoração." +msgstr "" #: lang/json/furniture_from_json.py msgid "yellow indoor plant" -msgstr "planta interna amarela" +msgstr "" #. ~ Description for yellow indoor plant #: lang/json/furniture_from_json.py msgid "A variety of plant for decoration. It's yellow." -msgstr "Uma variedade de plantas para decoração. É amarelo." +msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "bed" -msgstr "cama" +msgstr "" #. ~ Description for bed #: lang/json/furniture_from_json.py @@ -84733,11 +75047,11 @@ 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 msgid "rrrrip!" -msgstr "rrrrip!" +msgstr "" #: lang/json/furniture_from_json.py msgid "toilet" -msgstr "banheiro" +msgstr "" #. ~ Description for toilet #: lang/json/furniture_from_json.py @@ -84748,29 +75062,29 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "porcelain breaking!" -msgstr "porcelana quebrando!" +msgstr "" #: lang/json/furniture_from_json.py msgid "whunk!" -msgstr "whunk!" +msgstr "" #: lang/json/furniture_from_json.py msgid "makeshift bed" -msgstr "cama improvisada" +msgstr "" #. ~ Description for makeshift bed #: lang/json/furniture_from_json.py msgid "Not as comfortable as a real bed, but it will suffice." -msgstr "Não tão confortável quanto uma cama de verdade, mas será suficiente." +msgstr "" #: lang/json/furniture_from_json.py msgid "straw bed" -msgstr "cama de palha" +msgstr "" #. ~ Description for straw bed #: lang/json/furniture_from_json.py msgid "Kinda itches when you lay on it." -msgstr "Meio que coça quando você se deita nele." +msgstr "" #: lang/json/furniture_from_json.py msgid "pile of leaves" @@ -84785,7 +75099,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "sink" -msgstr "Pia" +msgstr "" #. ~ Description for sink #: lang/json/furniture_from_json.py @@ -84795,7 +75109,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "oven" -msgstr "forno" +msgstr "" #. ~ Description for oven #: lang/json/furniture_from_json.py @@ -84807,15 +75121,15 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "metal screeching!" -msgstr "metal gritando!" +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "clang!" -msgstr "clang" +msgstr "" #: lang/json/furniture_from_json.py msgid "wood stove" -msgstr "fogão a lenha" +msgstr "" #. ~ Description for wood stove #: lang/json/furniture_from_json.py @@ -84825,7 +75139,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "fireplace" -msgstr "lareira" +msgstr "" #. ~ Description for fireplace #: lang/json/furniture_from_json.py @@ -84838,24 +75152,24 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/map.cpp src/map.cpp msgid "crash!" -msgstr "batida!" +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump!" -msgstr "pio!" +msgstr "" #: lang/json/furniture_from_json.py msgid "shower" -msgstr "chuveiro" +msgstr "" #. ~ Description for shower #: lang/json/furniture_from_json.py msgid "You would be able to clean yourself if water was running." -msgstr "Você seria capaz de se limpar se a água estivesse correndo." +msgstr "" #: lang/json/furniture_from_json.py msgid "bathtub" -msgstr "banheira" +msgstr "" #. ~ Description for bathtub #: lang/json/furniture_from_json.py @@ -84866,30 +75180,30 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "stool" -msgstr "banquinho" +msgstr "" #. ~ Description for stool #. ~ Description for chair #: lang/json/furniture_from_json.py msgid "Sit down, have a drink." -msgstr "Sente-se, tome uma bebida." +msgstr "" #: lang/json/furniture_from_json.py msgid "chair" -msgstr "cadeira" +msgstr "" #: lang/json/furniture_from_json.py msgid "arm chair" -msgstr "cadeira de braço" +msgstr "" #. ~ Description for arm chair #: lang/json/furniture_from_json.py msgid "A more comfortable way of sitting down." -msgstr "Uma maneira mais confortável de se sentar." +msgstr "" #: lang/json/furniture_from_json.py msgid "sofa" -msgstr "sofá" +msgstr "" #. ~ Description for sofa #: lang/json/furniture_from_json.py @@ -84898,16 +75212,16 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "cupboard" -msgstr "armário" +msgstr "" #. ~ Description for cupboard #: lang/json/furniture_from_json.py msgid "Store your cups." -msgstr "Guarde seus copos." +msgstr "" #: lang/json/furniture_from_json.py msgid "trash can" -msgstr "lixeira" +msgstr "" #. ~ Description for trash can #: lang/json/furniture_from_json.py @@ -84916,16 +75230,16 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "recycle bin" -msgstr "Lixeira de reciclagem" +msgstr "" #. ~ Description for recycle bin #: lang/json/furniture_from_json.py msgid "Stores items for recycling." -msgstr "Armazena itens para reciclagem." +msgstr "" #: lang/json/furniture_from_json.py msgid "desk" -msgstr "mesa" +msgstr "" #. ~ Description for desk #: lang/json/furniture_from_json.py @@ -84934,7 +75248,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "exercise machine" -msgstr "máquina de exercício" +msgstr "" #. ~ Description for exercise machine #: lang/json/furniture_from_json.py @@ -84945,7 +75259,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "ball machine" -msgstr "máquina de bola" +msgstr "" #. ~ Description for ball machine #: lang/json/furniture_from_json.py @@ -84957,7 +75271,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "bench" -msgstr "Banco" +msgstr "" #. ~ Description for bench #: lang/json/furniture_from_json.py @@ -84966,39 +75280,39 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "lane guard" -msgstr "guarda de pista" +msgstr "" #. ~ Description for lane guard #: lang/json/furniture_from_json.py msgid "Used to be used for keeping traffic." -msgstr "Costumava ser usado para manter o tráfego." +msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "table" -msgstr "mesa" +msgstr "" #. ~ Description for table #: lang/json/furniture_from_json.py msgid "Sit down when you eat!" -msgstr "Sente-se quando você come!" +msgstr "" #: lang/json/furniture_from_json.py msgid "coat rack" -msgstr "cabide" +msgstr "" #. ~ Description for coat rack #: lang/json/furniture_from_json.py msgid "A hooked rack for hanging jackets and hats." -msgstr "Um rack de gancho para pendurar casacos e chapéus." +msgstr "" #: lang/json/furniture_from_json.py msgid "sign" -msgstr "placa" +msgstr "" #. ~ Description for sign #: lang/json/furniture_from_json.py msgid "Read it. Warnings ahead." -msgstr "Leia-o. Avisos à frente." +msgstr "" #: lang/json/furniture_from_json.py msgid "warning sign" @@ -85013,7 +75327,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "mailbox" -msgstr "caixa de correio" +msgstr "" #. ~ Description for mailbox #: lang/json/furniture_from_json.py @@ -85024,21 +75338,21 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "pool table" -msgstr "mesa de bilhar" +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 "Uma boa mesa de bilhar. Você gostaria de ter aprendido a jogar." +msgstr "" #: lang/json/furniture_from_json.py msgid "counter" -msgstr "contador" +msgstr "" #. ~ Description for counter #: lang/json/furniture_from_json.py msgid "Affixed to the wall or found in kitchens or stores." -msgstr "Afixado na parede ou encontrado em cozinhas ou lojas." +msgstr "" #: lang/json/furniture_from_json.py msgid "closed counter gate" @@ -85058,7 +75372,7 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/vehicle_part_from_json.py msgid "refrigerator" -msgstr "geladeira" +msgstr "" #. ~ Description for refrigerator #: lang/json/furniture_from_json.py @@ -85070,7 +75384,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "glass door fridge" -msgstr "geladeira porta de vidro" +msgstr "" #. ~ Description for glass door fridge #: lang/json/furniture_from_json.py @@ -85080,7 +75394,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "dresser" -msgstr "cômoda" +msgstr "" #. ~ Description for dresser #: lang/json/furniture_from_json.py @@ -85089,21 +75403,21 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "locker" -msgstr "armário" +msgstr "" #. ~ Description for locker #: lang/json/furniture_from_json.py msgid "Usually used for storing equipment or items." -msgstr "Geralmente usado para armazenar equipamentos ou itens." +msgstr "" #: lang/json/furniture_from_json.py msgid "display rack" -msgstr "cremalheira de exposição" +msgstr "" #. ~ Description for display rack #: lang/json/furniture_from_json.py msgid "Display your items." -msgstr "Exibe seus itens." +msgstr "" #: lang/json/furniture_from_json.py msgid "bookcase" @@ -85118,12 +75432,10 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "You could wash your dirty clothes if electricity was running." msgstr "" -" Você poderia lavar suas roupas sujas se a eletricidade " -"estivessefuncionando." #: lang/json/furniture_from_json.py msgid "dryer" -msgstr "secador" +msgstr "" #. ~ Description for dryer #: lang/json/furniture_from_json.py @@ -85132,7 +75444,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "standing mirror" -msgstr "espelho de pé" +msgstr "" #. ~ Description for standing mirror #: lang/json/furniture_from_json.py @@ -85141,15 +75453,15 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "glass breaking" -msgstr "quebra de vidro" +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whack!" -msgstr "pancada!" +msgstr "" #: lang/json/furniture_from_json.py msgid "broken standing mirror" -msgstr "espelho em pé quebrado" +msgstr "" #. ~ Description for broken standing mirror #: lang/json/furniture_from_json.py @@ -85157,26 +75469,24 @@ msgid "" "You could look at yourself, if the mirror wasn't covered in cracks and " "fractures." msgstr "" -" Você poderia olhar para si mesmo, se o espelho não estivesse coberto " -"derachaduras e fraturas." #: lang/json/furniture_from_json.py msgid "vending machine" -msgstr "Maquina de vendas" +msgstr "" #. ~ Description for vending machine #: lang/json/furniture_from_json.py msgid "Buy stuff with a cash card." -msgstr "Compre coisas com um cartão de dinheiro." +msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py src/ballistics.cpp src/iuse.cpp src/map.cpp msgid "glass breaking!" -msgstr "quebra de vidro!" +msgstr "" #: lang/json/furniture_from_json.py msgid "broken vending machine" -msgstr "máquina de venda automática quebrada" +msgstr "" #. ~ Description for broken vending machine #: lang/json/furniture_from_json.py @@ -85187,7 +75497,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "dumpster" -msgstr "deposito de lixo" +msgstr "" #. ~ Description for dumpster #: lang/json/furniture_from_json.py @@ -85196,16 +75506,16 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "diving block" -msgstr "bloco de mergulho" +msgstr "" #. ~ Description for diving block #: lang/json/furniture_from_json.py msgid "Jump! Jump! Dive!" -msgstr "Saltar! Saltar! Mergulho!" +msgstr "" #: lang/json/furniture_from_json.py msgid "coffin" -msgstr "caixão" +msgstr "" #. ~ Description for coffin #: lang/json/furniture_from_json.py @@ -85214,11 +75524,11 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "wham!" -msgstr "wham!" +msgstr "" #: lang/json/furniture_from_json.py msgid "open coffin" -msgstr "caixão aberto" +msgstr "" #. ~ Description for open coffin #: lang/json/furniture_from_json.py @@ -85245,11 +75555,11 @@ msgstr "abrir caixote" #. ~ Description for open crate #: lang/json/furniture_from_json.py msgid "What's inside? Look in it!" -msgstr "O que tem dentro? Olhe para dentro!" +msgstr "" #: lang/json/furniture_from_json.py msgid "canvas wall" -msgstr "parede da lona" +msgstr "" #. ~ Description for canvas wall #: lang/json/furniture_from_json.py @@ -85258,7 +75568,7 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" -msgstr "tapa!" +msgstr "" #. ~ Description for canvas wall #: lang/json/furniture_from_json.py @@ -85267,7 +75577,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "canvas flap" -msgstr "aba de lona" +msgstr "" #. ~ Description for canvas flap #: lang/json/furniture_from_json.py @@ -85276,7 +75586,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "open canvas flap" -msgstr "aba de lona aberta" +msgstr "" #. ~ Description for open canvas flap #: lang/json/furniture_from_json.py @@ -85295,7 +75605,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "groundsheet" -msgstr "groundlay" +msgstr "" #. ~ Description for groundsheet #: lang/json/furniture_from_json.py @@ -85316,17 +75626,16 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "animalskin wall" -msgstr "parede de pele de animais" +msgstr "" #. ~ Description for animalskin wall #: lang/json/furniture_from_json.py msgid "Wall made out of animal skin. Either an amazing or horrifying sight." msgstr "" -"Parede feita de pele de animal. Ou uma visão incrível ou horripilante." #: lang/json/furniture_from_json.py msgid "animalskin flap" -msgstr "aba de pele de animais" +msgstr "" #. ~ Description for animalskin flap #: lang/json/furniture_from_json.py @@ -85335,7 +75644,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "open animalskin flap" -msgstr "aba de animais aberta" +msgstr "" #. ~ Description for open animalskin flap #: lang/json/furniture_from_json.py @@ -85344,7 +75653,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "animalskin floor" -msgstr "chão de pele de animais" +msgstr "" #. ~ Description for animalskin floor #: lang/json/furniture_from_json.py @@ -85353,7 +75662,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "mutated poppy flower" -msgstr "flor papoula mutante" +msgstr "" #. ~ Description for mutated poppy flower #: lang/json/furniture_from_json.py @@ -85367,7 +75676,7 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "crunch." -msgstr "trituração." +msgstr "" #. ~ Description for fungal flower #: lang/json/furniture_from_json.py @@ -85379,11 +75688,11 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "poof." -msgstr "poof." +msgstr "" #: lang/json/furniture_from_json.py msgid "fungal mass" -msgstr "massa fúngica" +msgstr "" #. ~ Description for fungal mass #: lang/json/furniture_from_json.py @@ -85394,7 +75703,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "fungal clump" -msgstr "moita fúngica" +msgstr "" #. ~ Description for fungal clump #: lang/json/furniture_from_json.py @@ -85404,21 +75713,21 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "safe" -msgstr "seguro" +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py msgid "Holds items. Securely." -msgstr "Contém itens. Com segurança." +msgstr "" #: lang/json/furniture_from_json.py msgid "screeching metal!" -msgstr "guinchando metal!" +msgstr "" #. ~ Description for safe #: lang/json/furniture_from_json.py msgid "What needs protection like this?" -msgstr "O que precisa de proteção como essa?" +msgstr "" #: lang/json/furniture_from_json.py msgid "gun safe" @@ -85427,16 +75736,16 @@ msgstr "cofre de armas" #. ~ Description for gun safe #: lang/json/furniture_from_json.py msgid "Oooooohhhh. Shiny." -msgstr "Oooooohhhh Brilhante." +msgstr "" #: lang/json/furniture_from_json.py msgid "jammed gun safe" -msgstr "pistola atolada segura" +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 "Tem armas nela? Você não vai descobrir. Está emperrado." +msgstr "" #: lang/json/furniture_from_json.py msgid "electronic gun safe" @@ -85445,7 +75754,7 @@ msgstr "cofre de armas eletrônico" #. ~ Description for electronic gun safe #: lang/json/furniture_from_json.py msgid "Can you hack it open to get the firearms?" -msgstr "Você pode abri-lo para pegar as armas de fogo?" +msgstr "" #: lang/json/furniture_from_json.py msgid "open safe" @@ -85454,7 +75763,7 @@ msgstr "abrir cofre" #. ~ Description for open safe #: lang/json/furniture_from_json.py msgid "Grab the firearms!" -msgstr "Pegue as armas de fogo!" +msgstr "" #: lang/json/furniture_from_json.py msgid "seed" @@ -85498,7 +75807,7 @@ msgstr "" #: lang/json/furniture_from_json.py src/vehicle_use.cpp msgid "planter" -msgstr "plantas" +msgstr "" #. ~ Description for planter #: lang/json/furniture_from_json.py @@ -85547,7 +75856,7 @@ msgstr "tanque de fermentação." #. ~ Description for filled fermenting vat #: lang/json/furniture_from_json.py msgid "A sealable vat for fermenting vinegar and various alcoholic brews." -msgstr "Um tanque selado para fermentar vinagre e várias bebidas alcoólicas." +msgstr "" #: lang/json/furniture_from_json.py msgid "filled fermenting vat" @@ -85555,7 +75864,7 @@ msgstr "tanque de fermentação cheio" #: lang/json/furniture_from_json.py msgid "wooden keg" -msgstr "barril de madeira" +msgstr "" #. ~ Description for wooden keg #: lang/json/furniture_from_json.py @@ -85573,7 +75882,7 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "thump." -msgstr "baque." +msgstr "" #: lang/json/furniture_from_json.py msgid "mannequin" @@ -85679,7 +75988,7 @@ msgstr "alvo" #. ~ Description for target #: lang/json/furniture_from_json.py msgid "A metal shooting target in the rough shape of a human." -msgstr "Um alvo de tiro de metal na forma áspera de um ser humano." +msgstr "" #. ~ Description for bluebell #: lang/json/furniture_from_json.py @@ -85703,7 +76012,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "marloss flower" -msgstr "marloss flower" +msgstr "" #. ~ Description for marloss flower #: lang/json/furniture_from_json.py @@ -85732,7 +76041,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "spurge flower" -msgstr "flor do spurge" +msgstr "" #. ~ Description for spurge flower #: lang/json/furniture_from_json.py @@ -85741,7 +76050,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "cattails" -msgstr "cattails" +msgstr "" #. ~ Description for cattails #: lang/json/furniture_from_json.py @@ -85778,7 +76087,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "lilypad" -msgstr "vitória Régia" +msgstr "" #. ~ Description for lilypad #: lang/json/furniture_from_json.py @@ -85794,12 +76103,12 @@ msgstr "forja" #. ~ Description for forge #: lang/json/furniture_from_json.py msgid "Metalworking station typically used in combination with an anvil." -msgstr "Estação de usinagem tipicamente usada em combinação com uma bigorna." +msgstr "" #. ~ Description for anvil #: lang/json/furniture_from_json.py msgid "Used in metalworking." -msgstr "Usado em metalurgia." +msgstr "" #. ~ Description for still #: lang/json/furniture_from_json.py @@ -85807,12 +76116,10 @@ msgid "" "An essential component for brewing and chemistry that allows for refining " "liquid mixtures." msgstr "" -" Um componente essencial para fabricação de cerveja e química que " -"permiterefinar misturas líquidas." #: lang/json/furniture_from_json.py msgid "spider egg sack" -msgstr "saco de ovo de aranha" +msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py @@ -85823,7 +76130,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "splat!" -msgstr "splat!" +msgstr "" #. ~ Description for spider egg sack #: lang/json/furniture_from_json.py @@ -85841,7 +76148,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "ruptured egg sack" -msgstr "saco de ovo rompido" +msgstr "" #. ~ Description for ruptured egg sack #: lang/json/furniture_from_json.py @@ -85850,7 +76157,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "reinforced vending machine" -msgstr "máquina de venda automática reforçada" +msgstr "" #. ~ Description for reinforced vending machine #: lang/json/furniture_from_json.py @@ -85861,7 +76168,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "arcade machine" -msgstr "máquina de arcade" +msgstr "" #. ~ Description for arcade machine #: lang/json/furniture_from_json.py @@ -85873,7 +76180,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "pinball machine" -msgstr "maquina de pinball" +msgstr "" #. ~ Description for pinball machine #: lang/json/furniture_from_json.py @@ -85885,7 +76192,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "ergometer" -msgstr "ergômetro" +msgstr "" #. ~ Description for ergometer #: lang/json/furniture_from_json.py @@ -85897,11 +76204,11 @@ 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 msgid "thump!" -msgstr "baque!" +msgstr "" #: lang/json/furniture_from_json.py msgid "treadmill" -msgstr "esteira" +msgstr "" #. ~ Description for treadmill #: lang/json/furniture_from_json.py @@ -85912,7 +76219,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "display case" -msgstr "vitrine" +msgstr "" #. ~ Description for display case #: lang/json/furniture_from_json.py @@ -85921,26 +76228,25 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "broken display case" -msgstr "vitrine quebrada" +msgstr "" #. ~ Description for broken display case #: lang/json/furniture_from_json.py msgid "Display your stuff. It'll get stolen." -msgstr "Exibe suas coisas. Isso será roubado." +msgstr "" #: lang/json/furniture_from_json.py msgid "standing tank" -msgstr "tanque em pé" +msgstr "" #. ~ Description for standing tank #: lang/json/furniture_from_json.py msgid "A large freestanding metal tank, useful for holding liquids." msgstr "" -" Um grande tanque de metal independente, útil para a retenção de líquidos." #: lang/json/furniture_from_json.py msgid "heavy punching bag" -msgstr "saco de pancada pesado" +msgstr "" #. ~ Description for heavy punching bag #: lang/json/furniture_from_json.py @@ -85951,11 +76257,11 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "whud." -msgstr "alguns." +msgstr "" #: lang/json/furniture_from_json.py msgid "canvas floor" -msgstr "chão de lona" +msgstr "" #. ~ Description for canvas floor #: lang/json/furniture_from_json.py @@ -85971,12 +76277,10 @@ msgid "" "A rock kiln designed to burn wood and organic material into charcoal in " "absence of oxygen." msgstr "" -" Um forno de rocha projetado para queimar madeira e material orgânico " -"emcarvão na ausência de oxigênio." #: lang/json/furniture_from_json.py msgid "metal charcoal kiln" -msgstr "forno de carvão de metal" +msgstr "" #. ~ Description for metal charcoal kiln #. ~ Description for filled metal charcoal kiln @@ -85985,12 +76289,10 @@ msgid "" "A metal kiln designed to burn wood and organic material into charcoal in " "absence of oxygen." msgstr "" -" Um forno de metal projetado para queimar madeira e material orgânico " -"emcarvão na ausência de oxigênio." #: lang/json/furniture_from_json.py msgid "filled metal charcoal kiln" -msgstr "forno de carvão de metal cheio" +msgstr "" #: lang/json/furniture_from_json.py msgid "robotic arm" @@ -86007,11 +76309,11 @@ msgstr "" #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py msgid "thunk." -msgstr "thunk." +msgstr "" #: lang/json/furniture_from_json.py msgid "automated gas console" -msgstr "console de gás automatizado" +msgstr "" #. ~ Description for automated gas console #: lang/json/furniture_from_json.py @@ -86020,7 +76322,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "broken automated gas console" -msgstr "console de gás automatizado quebrado" +msgstr "" #. ~ Description for broken automated gas console #: lang/json/furniture_from_json.py @@ -86030,7 +76332,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "smoking rack" -msgstr "cremalheira de fumo" +msgstr "" #. ~ Description for smoking rack #. ~ Description for metal smoking rack @@ -86039,12 +76341,10 @@ msgstr "cremalheira de fumo" msgid "" "A special rack designed to smoke food for better preservation and taste." msgstr "" -" Um rack especial projetado para fumar alimentos para melhor preservação " -"esabor." #: lang/json/furniture_from_json.py msgid "active smoking rack" -msgstr "cremalheira de fumo ativa" +msgstr "" #. ~ Description for active smoking rack #: lang/json/furniture_from_json.py @@ -86052,8 +76352,6 @@ msgid "" "A special rack designed to smoke food for better preservation and taste. It" " is lit and smoking." msgstr "" -" Um rack especial projetado para fumar alimentos para melhor preservação " -"esabor. Está iluminado e fumando." #: lang/json/furniture_from_json.py msgid "active metal smoking rack" @@ -86069,17 +76367,15 @@ msgid "" "Metalworking station made of rock, typically used in combination with an " "anvil." msgstr "" -" Estação de trabalho em metal feita de rocha, normalmente usada emcombinação" -" com uma bigorna." #: lang/json/furniture_from_json.py msgid "clay kiln" -msgstr "forno de barro" +msgstr "" #. ~ Description for clay kiln #: lang/json/furniture_from_json.py msgid "A kiln designed to bake clay pottery and bricks." -msgstr "Um forno projetado para assar cerâmica e tijolos de barro." +msgstr "" #. ~ Description for stepladder #: lang/json/furniture_from_json.py @@ -86090,7 +76386,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "small boulder" -msgstr "rocha pequena" +msgstr "" #. ~ Description for small boulder #: lang/json/furniture_from_json.py @@ -86098,12 +76394,10 @@ msgid "" "Blocking your path. Should be easy to move. It can be used as a primitive " "anvil." msgstr "" -" Bloqueando seu caminho. Deve ser fácil de se mover. Pode ser usado como " -"umabigorna primitiva." #: lang/json/furniture_from_json.py msgid "medium boulder" -msgstr "rocha média" +msgstr "" #. ~ Description for medium boulder #: lang/json/furniture_from_json.py @@ -86111,21 +76405,19 @@ msgid "" "Blocking your path. It'll be a struggle to move. It can be used as a " "primitive anvil." msgstr "" -" Bloqueando seu caminho. Vai ser uma luta para se mexer. Pode ser usado " -"comouma bigorna primitiva." #: lang/json/furniture_from_json.py msgid "large boulder" -msgstr "grande rocha" +msgstr "" #. ~ Description for large boulder #: lang/json/furniture_from_json.py msgid "Now how are you going to move this?" -msgstr "Agora, como você vai mudar isso?" +msgstr "" #: lang/json/furniture_from_json.py msgid "stone slab" -msgstr "laje de pedra" +msgstr "" #. ~ Description for stone slab #: lang/json/furniture_from_json.py @@ -86134,7 +76426,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "manacles" -msgstr "algemas" +msgstr "" #. ~ Description for manacles #: lang/json/furniture_from_json.py @@ -86150,7 +76442,7 @@ msgstr "rachadura." #: lang/json/furniture_from_json.py msgid "headstone" -msgstr "lápide" +msgstr "" #. ~ Description for headstone #: lang/json/furniture_from_json.py @@ -86159,21 +76451,21 @@ msgstr "mantem os corpos." #: lang/json/furniture_from_json.py msgid "gravestone" -msgstr "lápide" +msgstr "" #. ~ Description for gravestone #: lang/json/furniture_from_json.py msgid "Keeps the bodies. More fancy." -msgstr "Mantém os corpos. Mais chique." +msgstr "" #: lang/json/furniture_from_json.py msgid "worn gravestone" -msgstr "lápide gasta" +msgstr "" #. ~ Description for worn gravestone #: lang/json/furniture_from_json.py msgid "A worn-out gravestone." -msgstr "Uma lápide gasta." +msgstr "" #: lang/json/furniture_from_json.py msgid "obelisk" @@ -86186,7 +76478,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "thunk!" -msgstr "thunk!" +msgstr "" #. ~ Description for brazier #: lang/json/furniture_from_json.py @@ -86204,7 +76496,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "Autodoc Mk. XI" -msgstr "Autodoc Mk. XI" +msgstr "" #. ~ Description for Autodoc Mk. XI #: lang/json/furniture_from_json.py @@ -86212,12 +76504,10 @@ msgid "" "A surgical apparatus used for installation and uninstallation of bionics. " "It's only as skilled as its operator." msgstr "" -" Um aparelho cirúrgico usado para instalação e desinstalação da biônica. " -"Étão habilidoso quanto seu operador." #: lang/json/furniture_from_json.py msgid "Autodoc operation couch" -msgstr "Sofá de operação Autodoc" +msgstr "" #. ~ Description for Autodoc operation couch #: lang/json/furniture_from_json.py @@ -86225,8 +76515,6 @@ msgid "" "A plush red sofa made less comfortable by the medical machinery directly " "above it. It has a single leather strap on the right armrest." msgstr "" -" Um sofá vermelho de pelúcia tornava menos confortável a máquina " -"médicadiretamente acima dela. Tem uma correia de couro no braço direito." #. ~ Description for camp chair #: lang/json/furniture_from_json.py @@ -86235,12 +76523,12 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "butchering rack" -msgstr "cremalheira de açougueiro" +msgstr "" #. ~ Description for butchering rack #: lang/json/furniture_from_json.py msgid "Butchering rack designed to hang a carcass in the air." -msgstr "Rack de açougueiro projetado para pendurar uma carcaça no ar." +msgstr "" #. ~ Description for metal butchering rack #: lang/json/furniture_from_json.py @@ -86248,8 +76536,6 @@ msgid "" "Metal butchering rack designed to hang a carcass in the air. It can be " "deconstructed and folded for easy transportation." msgstr "" -" Rack de metal de açougueiro projetado para pendurar uma carcaça no ar. " -"Podeser desconstruído e dobrado para facilitar o transporte." #. ~ Description for wind mill #: lang/json/furniture_from_json.py @@ -86289,8 +76575,6 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "Small metal folding table, ideal for off-road trips into the wild." msgstr "" -" Pequena mesa dobrável de metal, ideal para viagens off-road para a " -"vidaselvagem." #. ~ Description for leather tarp #: lang/json/furniture_from_json.py @@ -86298,9 +76582,6 @@ msgid "" "A large sheet of sewn leather that can be used instead of a picnic blanket, " "but it's more valuable as a butchery appliance as it does not soak in blood." msgstr "" -" Uma grande folha de couro costurado que pode ser usada em vez de uma " -"mantade piquenique, mas é mais valiosa como um aparelho de açougue, pois " -"nãoencharca em sangue." #: lang/json/furniture_from_json.py msgid "plastic groundsheet" @@ -86328,13 +76609,10 @@ msgid "" " blanket, but it's more valuable as a butchery appliance. Too thin to be a " "comfortable sleeping place." msgstr "" -" Um grande tapete tecido de material fibroso que pode ser usado em vez deuma" -" manta de piquenique, mas é mais valioso como um aparelho de açougue. Muito " -"fino para ser um lugar confortável para dormir." #: lang/json/furniture_from_json.py msgid "pillow fort" -msgstr "forte travesseiro" +msgstr "" #. ~ Description for pillow fort #: lang/json/furniture_from_json.py @@ -86343,7 +76621,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "paf!" -msgstr "PAF!" +msgstr "" #: lang/json/furniture_from_json.py msgid "cardboard fort" @@ -86362,7 +76640,7 @@ msgstr "" #: lang/json/furniture_from_json.py src/ballistics.cpp msgid "thud." -msgstr "baque." +msgstr "" #: lang/json/furniture_from_json.py msgid "cardboard wall" @@ -86414,7 +76692,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "filing cabinet" -msgstr "armário de arquivo" +msgstr "" #. ~ Description for filing cabinet #: lang/json/furniture_from_json.py @@ -86426,7 +76704,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "wardrobe" -msgstr "guarda roupa" +msgstr "" #. ~ Description for wardrobe #: lang/json/furniture_from_json.py @@ -86435,7 +76713,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "piano" -msgstr "plano" +msgstr "" #. ~ Description for piano #: lang/json/furniture_from_json.py @@ -86446,11 +76724,11 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "a suffering piano!" -msgstr "Um piano sofredor!" +msgstr "" #: lang/json/furniture_from_json.py msgid "kerchang." -msgstr "kerchang." +msgstr "" #: lang/json/furniture_from_json.py msgid "furnace" @@ -87312,7 +77590,7 @@ msgstr "Você empurra a alavanca..." #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py msgid "The bookcase slides closed." -msgstr "A estante de livros é fechada." +msgstr "" #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py @@ -87387,7 +77665,7 @@ msgstr "Os tricos deslisam de volta." #. ~ 'fail' action message of some gate object. #: lang/json/gates_from_json.py msgid "The release can't be activated!" -msgstr "O lançamento não pode ser ativado!" +msgstr "" #. ~ 'open' action message of some gate object. #: lang/json/gates_from_json.py @@ -87397,7 +77675,7 @@ msgstr "Os tricos se abrem!" #. ~ 'pull' action message of some gate object. #: lang/json/gates_from_json.py msgid "You activate the security bolt release..." -msgstr "Você ativa a liberação do parafuso de segurança ..." +msgstr "" #. ~ 'close' action message of some gate object. #: lang/json/gates_from_json.py @@ -87490,9 +77768,6 @@ msgid "" "that can be used effectively by fairly strong archers. Currently set to a " "medium weight." msgstr "" -" arco composto Um arco de alta potência com cames moldadas e cabos " -"extraspara tiros de alta velocidade que podem ser usados efetivamente " -"porarqueiros bastante fortes. Atualmente definido para um peso médio." #: lang/json/gun_from_json.py msgid "compound bow (high)" @@ -87506,10 +77781,6 @@ msgid "" "that can be used effectively by very strong archers. Currently set to a " "high weight, and ready to cause some real damage - if you can draw it." msgstr "" -" arco composto (alto) Um arco de alta potência com cames moldadas e " -"cabosextras para tiros de alta velocidade que podem ser usados efetivamente " -"porarqueiros muito fortes. Atualmente definido para um peso elevado e " -"prontopara causar algum dano real - se você pode desenhá-lo." #: lang/json/gun_from_json.py msgid "compound bow (low)" @@ -87523,10 +77794,6 @@ msgid "" "that can be used effectively by average archers. Currently set to a low " "weight, making it much easier to draw." msgstr "" -" arco composto (baixo) Um arco de alta potência com cames moldadas e " -"cabosextras para tiros de alta velocidade que podem ser usados efetivamente " -"porarqueiros comuns. Atualmente definido para um peso baixo, tornando " -"muitomais fácil desenhar." #: lang/json/gun_from_json.py msgid "composite bow" @@ -87539,9 +77806,6 @@ msgid "" "A bow made from multiple materials for increased energy efficiency. " "Complicated to make, but stronger than an all-wood short bow." msgstr "" -" arco composto Um arco feito de múltiplos materiais para maior " -"eficiênciaenergética. Complicado para fazer, mas mais forte que um arco " -"curto demadeira." #: lang/json/gun_from_json.py msgid "recurve bow" @@ -87555,9 +77819,6 @@ msgid "" "power, which can be used effectively by those of somewhat above-average " "strength. Good and easy to use, but nothing special." msgstr "" -" arco recurvo Um arco moderno que se curva para longe do arqueiro nas " -"pontaspara maior potência, que pode ser usado efetivamente por aqueles de " -"forçaum pouco acima da média. Bom e fácil de usar, mas nada de especial." #: lang/json/gun_from_json.py msgid "reflex bow" @@ -87570,9 +77831,6 @@ msgid "" "A bow with limbs that curve away from the archer near the riser for power. " "Smaller than some bows, but decently powerful and quick." msgstr "" -" arco reflexo Um arco com membros que se curvam para longe do arqueiro " -"pertodo espelho de poder. Menor que alguns arcos, mas decentemente poderoso " -"erápido." #: lang/json/gun_from_json.py msgid "hybrid longbow" @@ -87587,11 +77845,6 @@ msgid "" "average strength. Designed for archers that appreciate the smoothness of a " "traditional longbow, but desire the superior power of a modern recurve." msgstr "" -" arco longo híbrido Um arco longo modernizado de 1,80 m que se afasta " -"doarqueiro nas pontas para maior potência. Pode ser usado efetivamente " -"poraqueles de força um pouco acima da média. Projetado para arqueiros " -"queapreciam a suavidade de um arco longo tradicional, mas desejam o " -"podersuperior de um recurvo moderno." #: lang/json/gun_from_json.py msgid "longbow" @@ -87606,10 +77859,6 @@ msgid "" "mainly in medieval England in wartime, but pierces zombie hide just as well " "as chainmail." msgstr "" -" arco longo Um arco de madeira de um metro e oitenta que exige muita " -"forçapara desenhar. Pode ser usado efetivamente por aqueles de força um " -"poucoacima da média. Usado principalmente na Inglaterra medieval em tempo " -"deguerra, mas perfura o zumbi tão bem quanto o cota de malha." #: lang/json/gun_from_json.py msgid "wooden greatbow" @@ -87623,9 +77872,6 @@ msgid "" "string to take an immense amount of energy. Takes incredible strength to " "draw." msgstr "" -" Um arco extremamente grande e rígido, feito com membros enormes e uma " -"cordagrossa para levar uma imensa quantidade de energia. Leva força " -"incrívelpara desenhar." #: lang/json/gun_from_json.py msgid "compound greatbow" @@ -87639,9 +77885,6 @@ msgid "" " thick string to take an immense amount of energy. Takes incredible " "strength to draw." msgstr "" -" arco-íris composto Um arco composto extremamente grande e poderoso, " -"feitocom membros enormes e uma corda grossa para levar uma imensa quantidade" -" deenergia. Leva força incrível para desenhar." #: lang/json/gun_from_json.py msgid "reflex recurve bow" @@ -87657,11 +77900,6 @@ msgid "" "and requires significant strength to draw the bow effectively, but can still" " be fired quickly." msgstr "" -" arco recurvo reflexo Um arco modernizado que combina as características " -"doarco reflexo e do recurvo, com ambos os membros e pontas curvando-se " -"paralonge do arqueiro e reforçado com materiais compósitos. Isso " -"aumentadrasticamente o poder e requer força significativa para desenhar o " -"arco deforma eficaz, mas ainda pode ser disparado rapidamente." #: lang/json/gun_from_json.py msgid "pistol crossbow" @@ -87675,15 +77913,11 @@ msgid "" "and draw, so it is best suited for hunting small game. Bolts fired from " "this weapon have a good chance of remaining intact for re-use." msgstr "" -" Besta de pistola Uma pequena besta semelhante a uma pistola. É fraco " -"devidoao seu pequeno tamanho e empate, por isso é mais adequado para caça de" -" caçamenor. Os parafusos disparados dessa arma têm uma boa chance de " -"permanecerintactos para reutilização." #: lang/json/gun_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "pistol" -msgstr "pistola" +msgstr "" #: lang/json/gun_from_json.py msgid "crossbow" @@ -87697,9 +77931,6 @@ msgid "" "it much faster. Bolts fired from this weapon have a good chance of " "remaining intact for re-use." msgstr "" -" Besta Uma arma de mão de carga lenta que lança parafusos. Pessoas " -"maisfortes podem recarregá-lo muito mais rápido. Os parafusos disparados " -"dessaarma têm uma boa chance de permanecer intactos para reutilização." #: lang/json/gun_from_json.py msgid "composite crossbow" @@ -87712,9 +77943,6 @@ msgid "" "A slightly larger, more powerful crossbow utilizing composite material limbs" " and somewhat more modern design practices." msgstr "" -" besta composta Uma besta ligeiramente maior e mais potente que " -"utilizamembros de materiais compostos e práticas de design um pouco mais " -"modernas." #: lang/json/gun_from_json.py msgid "compound crossbow" @@ -87727,9 +77955,6 @@ msgid "" "A high-power crossbow with shaped cams and extra cables for high-power " "shots. Takes less time to reload due to a modern string-pulling system." msgstr "" -" besta composta Uma besta de alta potência com cames em forma e cabos " -"extraspara tiros de alta potência. Demora menos tempo para recarregar devido" -" a ummoderno sistema de puxar cordas." #: lang/json/gun_from_json.py msgid "heavy crossbow" @@ -87744,11 +77969,6 @@ msgid "" " feel it shake after firing. Bolts fired from this weapon have a good " "chance of remaining intact for re-use." msgstr "" -" Besta pesada Uma enorme besta medieval da Alemanha com um processo " -"derecarga muito lento e difícil, não adequado para usuários não " -"qualificados. Sua tensão é tão poderosa que você sente tremer depois de " -"atirar. Osparafusos disparados dessa arma têm uma boa chance de permanecer " -"intactospara reutilização." #: lang/json/gun_from_json.py msgid "repeating crossbow" @@ -87762,17 +77982,12 @@ msgid "" " a single motion, it has a wooden magazine that holds 10 bolts. Bolts fired" " from this weapon have a good chance of remaining intact for re-use." msgstr "" -" besta de repetição Uma besta feita sob medida com um mecanismo " -"inteligenteque carrega e dispara os parafusos em um único movimento, possui " -"umcompartimento de madeira que comporta 10 parafusos. Os parafusos " -"disparadosdessa arma têm uma boa chance de permanecer intactos para " -"reutilizaçã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 "smg" -msgstr "smg" +msgstr "" #: lang/json/gun_from_json.py msgid "acid spit gun" @@ -87789,8 +78004,6 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "A test item that is both a ranged weapon and a reach weapon" msgstr "" -" reach bow Um item de teste que é tanto uma arma de longo alcance quanto " -"umaarma de alcance" #: lang/json/gun_from_json.py msgid "BB gun" @@ -87803,8 +78016,6 @@ msgid "" "Popular among children. It's fairly accurate, but BBs deal nearly no " "damage." msgstr "" -" Arma de BB Popular entre as crianças. É bastante preciso, mas os BBs " -"quasenão causam dano." #: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgid "sling" @@ -87816,13 +78027,11 @@ msgstr[1] "" msgid "" "A leather sling, easy to use and accurate. It uses pebbles as ammunition." msgstr "" -" sling Um sling de couro, fácil de usar e preciso. Usa pedrinhas " -"comomunição." #: lang/json/gun_from_json.py msgctxt "gun_type_type" msgid "throw" -msgstr "arremessar" +msgstr "" #: lang/json/gun_from_json.py msgid "slingshot" @@ -87835,8 +78044,6 @@ msgid "" "A wooden slingshot, easy to use and accurate. It uses pebbles as " "ammunition." msgstr "" -" estilingue Um estilingue de madeira, fácil de usar e preciso. Usa " -"pedrinhascomo munição." #: lang/json/gun_from_json.py msgid "brace slingshot" @@ -87849,8 +78056,6 @@ msgid "" "A modern slingshot with a wrist brace, it is easy to use, accurate, and " "quite powerful." msgstr "" -" cinta estilingue Um estilingue moderno com um aparelho de pulso, é fácil " -"deusar, preciso e bastante poderoso." #: lang/json/gun_from_json.py msgid "bullet crossbow" @@ -87864,10 +78069,6 @@ msgid "" "projectiles instead of the traditional quarrel. Primarily intended for " "hunting small game, stronger people can reload it much faster." msgstr "" -" Besta de bala Uma versão modificada da besta clássica que utiliza " -"pedrascomo projéteis em vez da briga tradicional. Principalmente destinado à" -" caçade caça menor, pessoas mais fortes podem recarregá-lo muito mais " -"rápido." #: lang/json/gun_from_json.py msgid "FTK-93 fusion gun" @@ -87881,10 +78082,6 @@ msgid "" "monsters. It can only hold two rounds at a time, but a special superheating" " unit causes its bolts to be extremely deadly." msgstr "" -" Arma de fusão FTK-93 Um rifle de fusão muito poderoso desenvolvido " -"poucoantes do influxo de monstros. Só pode aguentar duas rodadas de cada " -"vez, mas uma unidade especial de superaquecimento faz com que seus " -"parafusossejam extremamente letais." #: lang/json/gun_from_json.py msgid "M72 LAW" @@ -87897,14 +78094,12 @@ msgid "" "A disposable light anti-tank rocket launcher. Once fired, it cannot be " "reloaded and must be disposed of." msgstr "" -" M72 LAW Um lançador de foguetes anti-tanque leve descartável. Uma " -"vezdisparado, não pode ser recarregado e deve ser descartado." #: 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 "launcher" -msgstr "lançador" +msgstr "" #: lang/json/gun_from_json.py msgid "Tankbot Main Gun" @@ -87916,8 +78111,6 @@ msgstr[1] "" msgid "" "The 120mm cannon from a tankbot. If you have this, you'd best be debugging!" msgstr "" -" Tankbot Main Gun O canhão de 120mm de um tankbot. Se você tem isso, émelhor" -" você estar depurando!" #: lang/json/gun_from_json.py msgid "Boeing XM-P plasma rifle" @@ -87931,10 +78124,6 @@ msgid "" "solid hydrogen to create plasma and envelops it with polymers to reduce " "blooming. While powerful, it suffers from short range. Powered by UPS." msgstr "" -" Boeing XM-P rifle de plasma Boeing desenvolveu o armamento de plasma " -"focadoem conjunto com DARPA. Ele aquece o hidrogênio sólido para criar " -"plasma e oenvolve com polímeros para reduzir o florescimento. Embora " -"poderoso, elesofre de curto alcance. Alimentado por UPS." #: lang/json/gun_from_json.py msgid "pipe combination gun" @@ -87948,15 +78137,12 @@ msgid "" "other for shotgun shells. It is made from pipes and parts cannibalized from" " a double barrel shotgun." msgstr "" -" arma de combinação de canos Uma arma de fogo de cano triplo feita em casa, " -"um barril em 30-06 e outros dois para cartuchos de espingarda. É feito " -"decanos e peças canibalizadas de uma espingarda de cano duplo." #: 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 "espingarda" +msgstr "" #: lang/json/gun_from_json.py msgid "pneumatic assault rifle" @@ -87969,8 +78155,6 @@ msgid "" "A multistroke pneumatic rifle handcrafted from scrap. It is very quiet and " "deadly." msgstr "" -" rifle de assalto pneumático Um rifle pneumático multistroke artesanal " -"desucata. É muito quieto e mortal." #: lang/json/gun_from_json.py msgid "pneumatic bolt driver" @@ -87983,8 +78167,6 @@ msgid "" "An eight-shot, revolving barrel, pneumatic bolt driver handcrafted from " "scrap. It is very quiet and deadly." msgstr "" -" driver de parafuso pneumático Um tambor de oito tiros, revolvendo, driverde" -" parafuso pneumático feito à mão a partir de sucata. É muito quieto emortal." #: lang/json/gun_from_json.py msgid "pneumatic shotgun" @@ -88002,11 +78184,11 @@ msgstr "" #: lang/json/gun_from_json.py msgid "single" -msgstr "base lançador de base de lança-chamas base de lançador único" +msgstr "" #: lang/json/gun_from_json.py msgid "double" -msgstr "em dobro" +msgstr "" #: lang/json/gun_from_json.py msgid "mininuke launcher" @@ -88019,9 +78201,6 @@ msgid "" "A powerful handheld launcher handcrafted from scrap. Made to launch " "modified handheld nuclear weapons, it is an exceedingly powerful weapon." msgstr "" -" mininuke launcher Um poderoso lançador portátil feito à mão a partir " -"desucata. Feito para lançar armas nucleares manuais modificadas, é uma " -"armaextremamente poderosa." #: lang/json/gun_from_json.py msgid "M202 FLASH" @@ -88034,8 +78213,6 @@ msgid "" "A massive and deadly four shot 66 millimeter man-portable, reusable, " "thermobaric rocket launcher." msgstr "" -" M202 FLASH Um lançador de foguetes termobárico portátil e reutilizável, " -"dequatro tiros e 66 mm de comprimento." #: lang/json/gun_from_json.py msgid "RPG-7" @@ -88048,9 +78225,6 @@ msgid "" "The emblematic RPG-7 launcher. Its simple, inexpensive, and reliable design" " made it a popular choice among armies and insurgent groups worldwide." msgstr "" -" RPG-7 O emblemático lançador de RPG-7. Seu design simples, barato " -"econfiável tornou-o uma escolha popular entre exércitos e grupos " -"insurgentesem todo o mundo." #: lang/json/gun_from_json.py msgid "speargun" @@ -88064,10 +78238,6 @@ msgid "" " using tension in a rubber band. While highly effective when used " "underwater, it is nearly useless on dry land." msgstr "" -" speargun Um dispositivo de pesca submarina projetado para disparar um " -"tipoespecializado de lança usando tensão em um elástico. Embora " -"altamenteeficaz quando usado debaixo d'água, é quase inútil em terra " -"firme." #: lang/json/gun_from_json.py msgid "mini speargun" @@ -88081,10 +78251,6 @@ msgid "" "spear using tension in a rubber band. While highly effective when used " "underwater, it is nearly useless on dry land." msgstr "" -" mini speargun Um pequeno dispositivo de pesca submarina projetado " -"paradisparar um tipo especializado de lança usando tensão em um elástico. " -"Embora altamente eficaz quando usado debaixo d'água, é quase inútil " -"emterra firme." #: lang/json/gun_from_json.py msgid "double speargun" @@ -88098,10 +78264,6 @@ msgid "" " type of spear using tension in a rubber band. While highly effective when " "used underwater, it is nearly useless on dry land." msgstr "" -" double speargun Um dispositivo de pesca submarina de carregamento " -"duploprojetado para disparar um tipo especializado de lança usando tensão em" -" umelástico. Embora altamente eficaz quando usado debaixo d'água, é " -"quaseinútil em terra firme." #: lang/json/gun_from_json.py msgid "pneumatic speargun" @@ -88115,10 +78277,6 @@ msgid "" "type of spear using a hand-pump pressure system. While highly effective " "when used underwater, it is nearly useless on dry land." msgstr "" -" arpão pneumático Um sofisticado dispositivo de pesca submarina " -"projetadopara disparar um tipo especializado de lança usando um sistema de " -"pressãode bomba manual. Embora altamente eficaz quando usado debaixo " -"d'água, équase inútil em terra firme." #: lang/json/gun_from_json.py msgid "combination gun" @@ -88132,10 +78290,6 @@ msgid "" " bore barrels. Historically used by egomaniac hunters in Africa, now used " "by their egomaniac descendants in New England." msgstr "" -" arma combinada Uma arma de fogo de ação de ruptura composta de um cano30-06" -" em dois canos de calibre liso de calibre 12. Historicamente usado " -"porcaçadores egomaníacos na África, agora usado por seus " -"descendentesegomaníacos na Nova Inglaterra." #: lang/json/gun_from_json.py msgid "crude rocket launcher" @@ -88149,10 +78303,6 @@ msgid "" " a thick-walled steel pipe, equipped with a pilot light, several batteries " "and a simple circuit board. Effective only at medium range, barely." msgstr "" -" lançador de foguetes bruto Um improvisado, lançador de ignição direta " -"parafoguetes caseiros. Essencialmente, um tubo de aço de paredes grossas, " -"equipado com uma luz piloto, várias baterias e uma placa de circuitosimples." -" Eficaz apenas a médio alcance, mal." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "water cannon" @@ -88165,8 +78315,6 @@ msgid "" "A water cannon from a fire truck. Mounted on a vehicle, it could be used to" " stop fires or \"protesters\"." msgstr "" -" canhão de água Um canhão de água de um caminhão de bombeiros. Montado em um" -" veículo, ele poderia ser usado para parar incêndios ou manifestantes." #: lang/json/gun_from_json.py msgid "base gun" @@ -88182,7 +78330,7 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "slosh." -msgstr "espirra." +msgstr "" #: lang/json/gun_from_json.py msgid "base launcher" @@ -88247,9 +78395,6 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "chuk chuk." msgstr "" -" base pistola revólver base rifle rifle com ações manuais rifle semi- " -"automático totalmente automático rifle base shotgun bomba ação shotgun " -"chukchuk." #: lang/json/gun_from_json.py msgid "base SMG" @@ -88268,9 +78413,6 @@ msgid "" "Developed by Heckler & Koch in 2033, the railgun magnetically propels a " "ferromagnetic projectile using an alternating current. Powered by UPS." msgstr "" -" base SMG H & K G80 Canhão-elétrico Desenvolvido por Heckler & " -"Kochem 2033, o railgun impulsiona magneticamente um projétil " -"ferromagnéticousando uma corrente alternada. Alimentado por UPS." #: lang/json/gun_from_json.py msgid "RM120c shotgun" @@ -88284,9 +78426,6 @@ msgid "" "action shotgun was designed for hunting big game, with durability and ease " "of use as priorities." msgstr "" -" Espingarda RM120c Utilizando um calibre potente e invulgar, a espingarda " -"deacção por bomba Rivtech RM120c foi concebida para caça de caça, " -"comdurabilidade e facilidade de utilização como prioridades." #: lang/json/gun_from_json.py msgid "RM20 autoshotgun" @@ -88300,9 +78439,6 @@ msgid "" "automatic combat shotgun was designed with durability and overwhelming power" " in mind." msgstr "" -" Carabina automática RM20 Utilizando um poderoso e incomum calibre, " -"aespingarda automática de combate Rivtech RM20 foi projetada comdurabilidade" -" e poder esmagador em mente." #: lang/json/gun_from_json.py msgid "RM228 PDW" @@ -88318,11 +78454,6 @@ msgid "" "and light weight, its hefty price tag kept it out of the reach of casual " "collectors." msgstr "" -" RM228 PDW Com o poderoso cartucho shotgun de 20x66mm, o Rivtech RM228 " -"PDWfoi projetado para o mercado civil de defesa pessoal com durabilidade " -"efacilidade de uso como prioridades. Embora elogiado por seu pequeno " -"tamanhoe peso leve, seu preço robusto manteve-o fora do alcance de " -"colecionadorescasuais." #: lang/json/gun_from_json.py msgid "American-180" @@ -88336,10 +78467,6 @@ msgid "" "LR, unusual for an SMG. Though the round is low-powered, the high rate of " "fire and large magazine makes the 180 a formidable weapon." msgstr "" -" American-180 A American-180 é uma metralhadora desenvolvida nos anos 60 " -"quedispara .22 LR, incomum para um SMG. Embora a ronda seja de baixa " -"potência, a alta taxa de fogo e a grande revista fazem dos 180 uma arma " -"formidável." #: lang/json/gun_from_json.py msgid "Marlin 39A" @@ -88353,9 +78480,6 @@ msgid "" "fires the weak .22 round, it is highly accurate and damaging, and has " "essentially no recoil." msgstr "" -" Marlin 39A A arma de fogo de ombro mais antiga e mais comprida do mundo. " -"Apesar de disparar a rodada fraca de 0,22, ela é altamente precisa " -"eprejudicial, e essencialmente não tem recuo." #: lang/json/gun_from_json.py msgid "Mossberg Brownie" @@ -88381,8 +78505,6 @@ msgid "" "A home-made rifle. It is simply a pipe attached to a stock, with a hammer " "to strike the single round it holds." msgstr "" -" rifle de cano: .22 Um rifle caseiro. É simplesmente um tubo preso a " -"umcalço, com um martelo para golpear o único círculo que segura." #: lang/json/gun_from_json.py msgid "RM360 rotary carbine" @@ -88397,11 +78519,6 @@ msgid "" "overcome the deficiencies of its low power .22LR cartridge by rapidly " "delivering a large number of projectiles." msgstr "" -" Carabina rotativa RM360 Esta carabina Rivtech incomum possui cincocilindros" -" giratórios e um compartimento helicoidal de grande capacidade. Durável e " -"fácil de manusear, foi projetado para superar as deficiências deseu cartucho" -" .22LR de baixa potência fornecendo rapidamente um grandenúmero de " -"projéteis." #: lang/json/gun_from_json.py msgid "Ruger 10/22" @@ -88416,10 +78533,6 @@ msgid "" " game hunters. Even though it fires the weak .22 round, it's perfectly " "capable of killing." msgstr "" -" Ruger 10/22 Uma combinação de recuo insignificante, alta customização " -"emunição barata fez do Ruger 10/22 uma escolha popular entre entusiastas " -"ecaçadores de caça. Mesmo que atire no fraco 22, é perfeitamente capaz " -"dematar." #: lang/json/gun_from_json.py msgid "Ruger LCR .22" @@ -88439,9 +78552,6 @@ msgid "" "produced during the latter 20th-early 21st centuries; it has an underbarrel " "rail." msgstr "" -" Ruger LCR .22 SIG Mosquito Uma popular e pequena pistola .22 LR. Uma " -"dasmuitas pistolas de estrutura de polímero produzidas durante o final " -"doséculo XX-XXI; tem um trilho underbarrel." #: lang/json/gun_from_json.py msgid "Luty SMG: .22" @@ -88467,7 +78577,7 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "A popular .22 pistol." -msgstr "S & W 22A Uma popular pistola .22." +msgstr "" #: lang/json/gun_from_json.py msgid "Jennings J-22" @@ -88496,9 +78606,6 @@ msgid "" "is damaging and accurate, though its rate of fire is a bit slower than " "competing .223 carbines." msgstr "" -" Remington ACR Esta carabina foi desenvolvida para uso militar no início " -"doséculo XXI. É prejudicial e preciso, embora sua taxa de tiro seja um " -"poucomais lenta que as carabinas competidoras." #: lang/json/gun_from_json.py msgid "AR-15" @@ -88512,9 +78619,6 @@ msgid "" "lightweight and accurate, but will malfunction if not properly maintained. " "This one is a semi automatic civilian version." msgstr "" -" AR-15 Este rifle onipresente é o antepassado da série de rifles M16. É " -"levee preciso, mas irá funcionar mal se não for mantido adequadamente. Este " -"éuma versão civil semi-automática." #: lang/json/gun_from_json.py msgid "HK416 A5" @@ -88527,9 +78631,6 @@ msgid "" "Designed to replace the M4A1, the Heckler and Koch 416A5 features most of " "the former's strengths, while being considerably more durable." msgstr "" -" H & K 416A5 Projetado para substituir o M4A1, o Heckler e o Koch " -"416A5apresentam a maioria dos pontos fortes do primeiro, sendo " -"consideravelmentemais duráveis." #: lang/json/gun_from_json.py msgid "H&K G36" @@ -88543,9 +78644,6 @@ msgid "" " accurate, and uses the much-lighter .223 round, allowing for a higher ammo " "capacity." msgstr "" -" H & K G36 Projetado como um substituto para o antigo rifle de batalha " -"H& K G3, o G36 é mais preciso e usa a rodada mais leve de 223,permitindo" -" uma maior capacidade de munição." #: lang/json/gun_from_json.py msgid "L2037 Backup" @@ -88561,11 +78659,6 @@ msgid "" "ballistics similar to .357 Magnum. Similar to other Leadworks products it " "doesn't accept third-party modifications." msgstr "" -" L2037 Backup A extensão lógica da série autorevolver da Leadworks, " -"estaenorme 'arma' dispara 5.56 OTAN para compartilhar munição com " -"orifle de um soldado. O flash do cano e o relatório deste revólver de " -"5tomadas são incríveis, produzindo balística semelhante a 357 Magnum. " -"Semelhante a outros produtos Leadworks, não aceita modificações deterceiros." #: lang/json/gun_from_json.py msgid "L523 platform" @@ -88582,16 +78675,10 @@ msgid "" " There's no real place to incorporate aftermarket modifications on this " "barren proto-weapon." msgstr "" -" Plataforma L523 A plataforma bullpup L523 da Leadworks LLC utiliza " -"aonipresente rodada 5.56 em múltiplas aplicações, e é projetada para " -"trocarpartes de maneira rápida, segura e eficiente de uma para a outra. " -"Omecanismo básico poderia - teoricamente - ser usado sozinho, mas tal uso " -"édesaconselhável e anulará sua garantia. Não há lugar real para " -"incorporarmodificações pós-venda nessa proto-arma estéril." #: lang/json/gun_from_json.py src/item_factory.cpp msgid "semi-auto" -msgstr "semi-automática" +msgstr "" #: lang/json/gun_from_json.py msgid "L523-CAR carbine" @@ -88609,13 +78696,6 @@ msgid "" "close range encounters. Like the rest of the family, doesn't accept third-" "party modifications." msgstr "" -" Carabina L523-CAR A plataforma bullpup L523 da Leadworks LLC utiliza " -"aonipresente rodada 5.56 em múltiplas aplicações, e é projetada para " -"trocarpartes de forma rápida, segura e eficaz de uma para a outra. O " -"modelocarabina incorpora a tecnologia patenteada de estabilização de giros " -"daLeadworks e inclui uma mira de ponto vermelho e uma mira a laser integral." -" Além disso, vem com espingarda suspensa para encontros de perto. Como " -"oresto da família, não aceita modificações de terceiros." #: lang/json/gun_from_json.py msgid "L523-DSR rifle" @@ -88633,13 +78713,6 @@ msgid "" " Leadworks gyro-stabilization system. Like the rest of the family, though, " "it doesn't accept third-party modifications." msgstr "" -" Rifle L523-DSR A plataforma bullpup L523 da Leadworks LLC utiliza " -"aonipresente rodada 5.56 em múltiplas aplicações, e é projetada para " -"trocarpartes de forma rápida, segura e eficaz de uma para a outra. O " -"rifledesignado-atirador incorpora um barril estendido especialmente " -"projetadocom bipé integral e foregrip, junto com uma ótica 8x integral, e " -"troca fogoseletivo para o sistema de giro-estabilização Leadworks. Como o " -"resto dafamília, porém, não aceita modificações de terceiros." #: lang/json/gun_from_json.py msgid "L523-LMG" @@ -88656,21 +78729,14 @@ msgid "" " well as the Leadworks gyro system. Unlike the other configurations, the " "L523 LMG can be loaded with ammo belts." msgstr "" -" L523-LMG A plataforma bullpup L523 da Leadworks LLC utiliza a " -"onipresenterodada 5.56 em múltiplas aplicações, e é projetada para trocar " -"partes demaneira rápida, segura e eficiente de uma para a próxima. A " -"variante demetralhadora leve bastante ambiciosa incorpora o escopo ACOG, um " -"barril deserviço pesado, foregrip, bipod e também o sistema de giroscópio " -"Leadworks. Ao contrário das outras configurações, o L523 LMG pode ser " -"carregado comcorreias de munição." #: lang/json/gun_from_json.py msgid "low auto" -msgstr "auto baixa" +msgstr "" #: lang/json/gun_from_json.py msgid "high auto" -msgstr "auto alta" +msgstr "" #: lang/json/gun_from_json.py msgid "L523-MBR rifle" @@ -88689,15 +78755,6 @@ msgid "" "with hard targets. Like the rest of the family, though, it doesn't accept " "third-party modifications." msgstr "" -" Rifle L523-MBR A plataforma bullpup L523 da Leadworks LLC utiliza " -"aonipresente rodada 5.56 em múltiplas aplicações, e é projetada para " -"trocarpartes de maneira rápida, segura e eficiente de uma para a outra. As " -"mirasópticas e de ponto vermelho combinadas do rifle de batalha " -"(proprietária)fornecem direcionamento rápido e preciso, com sistema de " -"estabilização degiroscópio Leadworks e foregrip disponível para maior " -"controle. Além disso, vem com módulo lançador de granadas para lidar com " -"alvos difíceis. Como oresto da família, porém, não aceita modificações de " -"terceiros." #: lang/json/gun_from_json.py msgid "M249" @@ -88711,9 +78768,6 @@ msgid "" " Quite inaccurate and difficult to control, the M249 is designed to fire " "many rounds very quickly." msgstr "" -" M249 O M249 é uma metralhadora montável usada pelas equipes dos militares " -"eda SWAT dos EUA. Bastante impreciso e difícil de controlar, o M249 " -"foiprojetado para disparar muitas rodadas muito rapidamente." #: lang/json/gun_from_json.py msgid "M27 IAR" @@ -88726,9 +78780,6 @@ msgid "" "A H&K416 carbine outfitted with a heavier barrel to enable higher amounts of" " suppressive fire while retaining a good degree of mobility." msgstr "" -" M27 IAR Uma carabina H & K416 equipada com um cano mais pesado " -"parapermitir maiores quantidades de fogo supressivo, mantendo um bom grau " -"demobilidade." #: lang/json/gun_from_json.py msgid "M4A1" @@ -88742,9 +78793,6 @@ msgid "" "and lightweight, it is infamous for its unreliability when not properly " "maintained." msgstr "" -" M4A1 Uma carabina popular, há muito utilizada pelos militares dos EUA. " -"Embora seja preciso, pequeno e leve, é famoso por sua insegurança quandonão " -"é mantido adequadamente." #: lang/json/gun_from_json.py msgid "pipe rifle: .223" @@ -88770,9 +78818,6 @@ msgid "" " Its superb accuracy and low recoil makes it more suitable than full-auto " "rifles for some situations." msgstr "" -" Ruger Mini-14 Uma pequena e leve carabina semi-auto projetada para usocivil" -" e policial. Sua precisão soberba e baixo recolhimento torna maisadequado do" -" que rifles full-auto para algumas situações." #: lang/json/gun_from_json.py msgid "FN SCAR-L" @@ -88786,10 +78831,6 @@ msgid "" "United States Special Operations Command. The 'L' in its name stands for " "light, as it uses the lightweight .223 round." msgstr "" -" FN SCAR-L Um fuzil de assalto altamente preciso e modular, " -"especialmenteprojetado para o Comando de Operações Especiais dos Estados " -"Unidos. O'L' em seu nome significa luz, já que usa a rodada leve de " -"223." #: lang/json/gun_from_json.py msgid "SIG 552" @@ -88802,13 +78843,10 @@ msgid "" "A compact selective fire automatic rifle designed for the Swiss military. " "It features a three-round burst mode and an integrated folding stock." msgstr "" -" SIG 552 Um rifle automático de tiro seletivo compacto projetado para " -"osmilitares suíços. Ele possui um modo burst de três voltas e um " -"estoquedobrável integrado." #: lang/json/gun_from_json.py msgid "3 rd." -msgstr "3ª." +msgstr "" #: lang/json/gun_from_json.py msgid "Steyr AUG" @@ -88822,9 +78860,6 @@ msgid "" "is used in the armed forces and police forces of many nations, and enjoys " "low recoil and high accuracy." msgstr "" -" Steyr AGOSTO O Steyr AUG é um rifle de assalto austríaco que usa um " -"designbullpup. É usado nas forças armadas e forças policiais de muitas " -"nações etem baixo recuo e alta precisão." #: lang/json/gun_from_json.py msgid "handmade carbine" @@ -88865,9 +78900,6 @@ msgid "" " Winchester Magnum round. The M2010 had completely replaced the M24 rifle " "series by 2017." msgstr "" -" M2010 ESR Um rifle sniper de parafuso-ação, alimentado por uma revista " -"decaixa, guardado na poderosa ronda Winchester Magnum .300. O M2010 " -"haviasubstituído completamente a série de rifles M24 até 2017." #: lang/json/gun_from_json.py msgid "Weatherby Mark V" @@ -88882,11 +78914,6 @@ msgid "" "safely fire high-pressure cartridges. These rifles were presented to " "celebrities as part of a marketing campaign." msgstr "" -" Weatherby Mark V O Weatherby Mark V é um dos melhores rifles de ação " -"deparafuso. Projetado em 1955 por Roy Weatherby e Fred Jennie, ele tem " -"umaforte ação projetada para disparar com segurança os cartuchos de " -"altapressão. Estes rifles foram apresentados a celebridades como parte de " -"umacampanha de marketing." #: lang/json/gun_from_json.py msgid "Winchester Model 70" @@ -88900,9 +78927,6 @@ msgid "" "place in American sporting culture and has been held in high regard by " "shooters since it was introduced in 1936." msgstr "" -" Winchester Model 70 O Winchester Model 70 é um rifle esportivo de " -"açãorápida. Tem um lugar icônico na cultura esportiva americana e tem sido " -"tidaem alta conta pelos atiradores desde que foi introduzida em 1936." #: lang/json/gun_from_json.py msgid "Browning BLR" @@ -88916,9 +78940,6 @@ msgid "" ".30-06 round. Notable for using a detachable magazine instead of a " "traditional tube." msgstr "" -" Browning BLR Um rifle de caça de ação de alavanca altamente " -"precisocompartimentado para a poderosa .30-06 rodada. Notável por usar uma " -"revistadestacável em vez de um tubo tradicional." #: lang/json/gun_from_json.py msgid "M1 Garand" @@ -88932,9 +78953,6 @@ msgid "" "Springfield. It didn't completely supplant the older bolt-action until " "after World War II." msgstr "" -" M1 Garand Um rifle de batalha semi-automático 30.06, desenvolvido " -"parasubstituir o M1903 Springfield. Ele não substituiu completamente a " -"açãomais antiga até depois da Segunda Guerra Mundial." #: lang/json/gun_from_json.py msgid "M1903 Springfield" @@ -88949,11 +78967,6 @@ msgid "" "was used alongside the M1 Garand in World War II, and was used as a sniper " "rifle as late as the Vietnam War." msgstr "" -" M1903 Springfield Um poderoso rifle militar em 30 de junho de " -"2006,desenvolvido para substituir o antigo rifle Krag do Exército dos EUA. " -"Serviu como o principal rifle americano na Primeira Guerra Mundial, foiusado" -" ao lado do M1 Garand na Segunda Guerra Mundial, e foi usado como umrifle de" -" precisão até a Guerra do Vietnã." #: lang/json/gun_from_json.py msgid "Browning Automatic Rifle" @@ -88968,11 +78981,6 @@ 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 "" -" Rifle Automático Browning Projetado perto do final da Primeira " -"GuerraMundial, o BAR forneceu suporte de fogo para o Exército dos EUA desde " -"aSegunda Guerra Mundial até a Guerra do Vietnã. Demasiado poder de fogo " -"paraservir como um rifle de batalha, mas não o suficiente para ser " -"umametralhadora leve ideal, ainda encontrava um nicho no campo de batalha." #: lang/json/gun_from_json.py msgid "" @@ -88980,9 +78988,6 @@ msgid "" " US Marine snipers. Highly damaging, but perhaps not as accurate as the " "competing Browning BLR." msgstr "" -" Remington 700 Uma caça muito popular e durável ou rifle sniping. " -"Popularentre os atiradores da Marinha SWAT e dos EUA. Altamente prejudicial," -" mastalvez não tão preciso quanto o Browning BLR." #: lang/json/gun_from_json.py msgid "pipe rifle: .30-06" @@ -89002,9 +79007,6 @@ msgid "" "together in the shape of a rifle with nothing more than glue, duct tape, and" " generous amounts of faith." msgstr "" -" Special 700 Um receptor enferrujado, um cano padrão R700 e meia " -"muletaquebrada; todos mantidos juntos na forma de um rifle com nada mais do " -"quecola, fita adesiva e quantidades generosas de fé." #: lang/json/gun_from_json.py msgid "FN FAL" @@ -89019,11 +79021,6 @@ msgid "" "obsolete, its high rate of fire and powerful ammunition make it perfectly " "capable of holding its ground against modern competitors." msgstr "" -" FN FAL Originalmente projetado durante a Guerra Fria, o FN FAL " -"éprovavelmente o rifle de batalha mais bem-sucedido já criado. Embora " -"muitasvezes rotulado como obsoleto, sua alta taxa de fogo e munição " -"poderosatorna perfeitamente capaz de manter o seu terreno contra os " -"concorrentesmodernos." #: lang/json/gun_from_json.py msgid "H&K G3" @@ -89037,10 +79034,6 @@ msgid "" "to unload large amounts of deadly ammunition, but it is less suitable over " "long ranges." msgstr "" -" H & K G3 Um rifle de batalha precoce desenvolvido após o final " -"daSegunda Guerra Mundial. O G3 foi projetado para descarregar " -"grandesquantidades de munição letal, mas é menos adequado em longas " -"distâncias." #: lang/json/gun_from_json.py msgid "M134D-H Minigun" @@ -89055,11 +79048,6 @@ 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 "" -" Minigun M134D-H A Minigun M134D-H é uma metralhadora rotativa " -"pesada(relativamente) leve. Seus seis tambores são girados por um motor " -"elétrico, alimentado por UPS ou veículo. Se você pudesse encontrar munição " -"suficientepara isso, se tornaria uma arma devastadora. Deve ser montado em " -"um veículoantes do uso." #: lang/json/gun_from_json.py msgid "M14 EBR-RI" @@ -89073,9 +79061,6 @@ msgid "" "designated marksman roles. A very powerful and versatile rifle, if somewhat" " heavy." msgstr "" -" M14 EBR-RI Uma versão altamente modificada do rifle M14 projetada " -"paracobrir tanto o CQB quanto os papéis de atirador designados. Um rifle " -"muito poderoso e versátil, se um pouco pesado." #: lang/json/gun_from_json.py msgid "M1A" @@ -89088,8 +79073,6 @@ msgid "" "The child of the M1 Garand World War 2 rifle, the M1A is a semi-automatic " "variant of the M14, favored for its accuracy and modular use." msgstr "" -" M1A A criança do fuzil M1 Garand World War 2, o M1A é uma variante semi- " -"automática do M14, favorecida por sua precisão e uso modular." #: lang/json/gun_from_json.py msgid "M240" @@ -89103,9 +79086,6 @@ msgid "" "older M60. Quite inaccurate and difficult to control, the M240 is designed " "to fire many rounds very quickly." msgstr "" -" M240 O M240 é uma metralhadora média usada pelos militares dos " -"EUA,substituindo o antigo M60. Bastante impreciso e difícil de controlar, " -"oM240 foi projetado para disparar muitas rodadas muito rapidamente." #: lang/json/gun_from_json.py msgid "M60" @@ -89119,9 +79099,6 @@ msgid "" ".30-caliber M1918 and M1919. Heavy and difficult to handle fired from the " "shoulder, as most people aren't action-movie heroes." msgstr "" -" M60 O M60 é uma metralhadora de uso geral desenvolvida para substituir " -"oM1918 e o M1919 de calibre .30. Pesado e difícil de manusear disparado " -"doombro, como a maioria das pessoas não são heróis de filmes de ação." #: lang/json/gun_from_json.py msgid "pipe rifle: .308" @@ -89135,10 +79112,6 @@ msgid "" " some minor improvements have been made, such as an integral magazine for " "rounds, and chambering the more powerful .308 rounds." msgstr "" -" rifle de cano: .308 Um rifle de alavanca de ação caseiro. Enquanto ainda " -"umtubo primitivo e design 2x4, algumas pequenas melhorias foram feitas, " -"comouma revista integral para rounds e chambering as mais poderosas " -".308rodadas." #: lang/json/gun_from_json.py msgid "Savage 111F" @@ -89151,9 +79124,6 @@ msgid "" "A very accurate rifle chambered for the powerful .308 round. Its very low " "ammo capacity is offset by its accuracy and near-complete lack of recoil." msgstr "" -" Savage 111F Um rifle muito preciso compartimentado para o poderoso " -".308round. Sua capacidade de munição muito baixa é compensada por sua " -"precisãoe quase completa falta de recuo." #: lang/json/gun_from_json.py msgid "FN SCAR-H" @@ -89167,10 +79137,6 @@ msgid "" " States Special Operations Command. The 'H' in its name stands for heavy, " "as it uses the powerful .308 round." msgstr "" -" FN SCAR-H Um rifle de batalha altamente preciso e modular " -"especialmenteprojetado para o Comando de Operações Especiais dos Estados " -"Unidos. O'H' em seu nome significa pesado, já que usa a poderosa " -"rodada de0,308." #: lang/json/gun_from_json.py msgid "M24" @@ -89241,9 +79207,6 @@ msgid "" "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." msgstr "" -" SIG Sauer P230 A SIG Sauer P230 é uma pequena arma semi- " -"automáticacompartimentada em .32 ACP. Devido às suas pequenas dimensões, " -"muitas vezesera transportado como uma arma de backup." #: lang/json/gun_from_json.py msgid "Skorpion Vz. 61" @@ -89256,8 +79219,6 @@ msgid "" "The Skorpion Vz. 61 is a Czechoslovak submachine gun from the 1950s, " "chambered in .32 ACP." msgstr "" -" Skorpion Vz. 61 O Skorpion Vz. 61 é uma metralhadora checoslovaca dos " -"anos50, compartimentada em 32 ACP." #: lang/json/gun_from_json.py msgid "Walther PPK" @@ -89270,8 +79231,6 @@ msgid "" "One of the most famous handguns of the 20th century. Your name is not Bond," " but you might find this little gun still useful." msgstr "" -" Walther PPK Uma das armas mais famosas do século XX. Seu nome não é Bond, " -"mas você pode achar essa pequena arma ainda útil." #: lang/json/gun_from_json.py msgid "Kel-Tec P32" @@ -89297,8 +79256,6 @@ msgid "" "A SIG Sauer P226 chambered for .357 SIG. The P226 is a DA/SA, short-recoil " "operated semi-automatic pistol." msgstr "" -" SIG P226 Uma SIG Sauer P226 com câmara para .357 SIG. O P226 é um DA / " -"SA,pistola semi-automática de curto recuo operada." #: lang/json/gun_from_json.py msgid "Glock 31" @@ -89336,9 +79293,6 @@ msgid "" "single-action percussion weapon produced by Colt's Manufacturing Company " "from 1861 until 1873." msgstr "" -" Colt M1861 Navy O revólver e calibre 36 da Colt Model 1861 foi uma arma " -"depercussão de ação única produzida pela Colt's Manufacturing Company " -"de1861 até 1873." #: lang/json/gun_from_json.py msgid "2 Shot Special" @@ -89352,9 +79306,6 @@ msgid "" "the name is less about the double barrels and more about the number of shots" " you'll get before it breaks down on you." msgstr "" -" 2 Shot Special Uma pistola barril de fabricação pesada 38 munição especial." -" Infelizmente, o nome é menos sobre os barris duplos e mais sobre o númerode" -" tiros que você terá antes de quebrar em você." #: lang/json/gun_from_json.py msgid "COP .38" @@ -89368,9 +79319,6 @@ msgid "" "resemblance to the Mossberg Brownie. It has four barrels arranged in a " "square formation." msgstr "" -" COP .38 O COP .38 é uma pequena pistola derringer gordinha que tem " -"umaligeira semelhança com o Mossberg Brownie. Tem quatro barris dispostos " -"emuma formação quadrada." #: lang/json/gun_from_json.py msgid "pipe rifle: .38 Special" @@ -89389,8 +79337,6 @@ msgid "" "A compact, double-action-only revolver designed for easy concealment, with a" " stainless steel cylinder and aluminum frame." msgstr "" -" Ruger LCR .38 Um revólver compacto e de ação dupla projetado para " -"fácilocultação, com cilindro de aço inoxidável e estrutura de alumínio." #: lang/json/gun_from_json.py msgid "Luty SMG: .38 Special" @@ -89419,8 +79365,6 @@ msgid "" "A seven-round .38 revolver sold by Smith & Wesson. It features a fixed rear" " sight and a reinforced frame." msgstr "" -" S & W 619 Um revólver .38 de sete voltas vendido pela Smith " -"&Wesson. Possui uma visão traseira fixa e um quadro reforçado." #: lang/json/gun_from_json.py msgid "Taurus Pro .38" @@ -89433,8 +79377,6 @@ msgid "" "A popular .38 pistol. Designed with numerous safety features and built from" " high-quality, durable materials." msgstr "" -" Taurus Pro .38 Uma popular pistola .38. Projetado com vários recursos " -"desegurança e construído com materiais duráveis de alta qualidade." #: lang/json/gun_from_json.py msgid "MAC-11" @@ -89517,9 +79459,6 @@ msgid "" "firearm of the FBI and of countless other law enforcement agencies " "worldwide." msgstr "" -" Glock 22 A .40 S & W variante da popular pistola Glock 17. A arma " -"defogo padrão do FBI e de inúmeras outras agências policiais em todo o " -"mundo." #: lang/json/gun_from_json.py msgid "pipe rifle: .40 S&W" @@ -89538,9 +79477,6 @@ msgid "" "Originally marketed as a lightweight and compact alternative to older SIG " "handguns, the Pro .40 is popular among European police forces." msgstr "" -" SIG Pro .40 Originalmente comercializado como uma alternativa leve " -"ecompacta às antigas armas SIG, o Pro .40 é popular entre as forçaspoliciais" -" européias." #: lang/json/gun_from_json.py msgid "Luty SMG: .40 S&W" @@ -89569,9 +79505,6 @@ msgid "" "A homemade 6-shot revolver. While it's not as good as the pre-Cataclysm " "manufactured weapons, it's a decent piece of work, all things considered." msgstr "" -" 6-shooter artesanal Um revólver caseiro de 6 tiros. Embora não seja tão " -"bomquanto as armas fabricadas antes do cataclismo, é um trabalho decente, " -"considerando todas as coisas." #: lang/json/gun_from_json.py msgid "S&W 610" @@ -89584,9 +79517,6 @@ msgid "" "The Smith and Wesson 610 is a classic six-shooter revolver chambered for " "10mm rounds, or for S&W's own .40 round." msgstr "" -" S & W 610 O Smith and Wesson 610 é um revólver clássico de seis " -"tiroscom câmara para rodadas de 10 mm, ou para a própria ronda de 0,40 da " -"S& W." #: lang/json/gun_from_json.py msgid "tube 40mm launcher" @@ -89599,9 +79529,6 @@ msgid "" "A simple, home-made grenade launcher. Basically a tube with a pin firing " "mechanism to activate the grenade." msgstr "" -" lançador de granadas de 40mm Um lançador de granadas simples e caseiro. " -"Basicamente, um tubo com um mecanismo de disparo de pinos para ativar " -"agranada." #: lang/json/gun_from_json.py msgid "M320 stand alone launcher" @@ -89615,10 +79542,6 @@ msgid "" "launchers in a very small package at the cost of decreased accuracy. This " "one is combined with a buttstock for stand alone operation." msgstr "" -" O lançador de granadas M320 da Heckler & Koch oferece a " -"funcionalidadede lançadores maiores em um pacote muito pequeno com o custo " -"de menorprecisão. Este é combinado com um buttstock para operação " -"independente." #: lang/json/gun_from_json.py msgid "M79 launcher" @@ -89632,10 +79555,6 @@ msgid "" "Vietnam war. Though mostly replaced by more modern launchers, the M79 still" " sees use with many units worldwide." msgstr "" -" Lançador M79 Um lançador de granadas amplamente usado que primeiro foiusado" -" pelas forças americanas na guerra do Vietnã. Embora " -"principalmentesubstituída por lançadores mais modernos, a M79 ainda usa " -"muitas unidadesem todo o mundo." #: lang/json/gun_from_json.py msgid "Mark 19 grenade launcher" @@ -89649,9 +79568,6 @@ msgid "" "since the start of the cold war all the way to the cataclysm, and if you can" " find some 40mm grenades, maybe even beyond." msgstr "" -" Lançador de granadas Mark 19 Um pesado lançador de granadas alimentado " -"porum tripé usado pelo Exército dos EUA desde o início da Guerra Fria até " -"ocataclismo, e se você puder encontrar granadas de 40 mm, talvez até mais." #: lang/json/gun_from_json.py msgid "Milkor MGL" @@ -89665,10 +79581,6 @@ msgid "" " of single-shot grenade launchers by allowing sustained heavy firepower. " "However, it is still slow to reload and must be used with careful planning." msgstr "" -" Milkor MGL O Milkor Multi-Grenade Launcher é projetado para compensar " -"adesvantagem de lançadores de granadas de disparo único, permitindo o " -"poderde fogo pesado sustentado. No entanto, ainda é lento para recarregar e " -"deveser usado com um planejamento cuidadoso." #: lang/json/gun_from_json.py msgid "RM802 grenade launcher" @@ -89683,11 +79595,6 @@ msgid "" "firepower. However, its capacity is fairly limited so it must be used with " "careful planning." msgstr "" -" Lançador de granadas RM802 O lançador de granadas de 40 mm da Rivtech " -"RM802foi projetado para estar um passo à frente dos lançadores de granadas " -"dedisparo único, permitindo o poder de fogo pesado e sustentado. No entanto," -" sua capacidade é bastante limitada, por isso deve ser usada com " -"umplanejamento cuidadoso." #: lang/json/gun_from_json.py msgid "triple-barrel 40mm launcher" @@ -89700,13 +79607,10 @@ msgid "" "A homemade triple-barrel 40mm grenade launcher. Capable of launching all " "three grenades at once, it is extremely powerful for a homemade weapon." msgstr "" -" lançador de 40 milímetros triplo barril Um lançador de granadas de 40 " -"mmtriplo barril caseiro. Capaz de lançar as três granadas de uma só vez, " -"éextremamente poderoso para uma arma caseira." #: lang/json/gun_from_json.py msgid "multi" -msgstr "multi" +msgstr "" #: lang/json/gun_from_json.py msgid "Saiga-410" @@ -89734,10 +79638,6 @@ msgid "" "than its performance. It's a large pistol, but its heavy weight reduces " "recoil." msgstr "" -" Desert Eagle. 44 Uma das armas mais reconhecidas devido à sua " -"popularidadeem filmes e videogames, a Desert Eagle é mais conhecida por sua " -"aparênciaameaçadora do que por seu desempenho. É uma pistola grande, mas seu" -" pesopesado reduz o recuo." #: lang/json/gun_from_json.py msgid "Henry Big Boy .44" @@ -89751,9 +79651,6 @@ msgid "" "cartridge and features a sleek octagonal barrel with a tube fed magazine. " "Go get 'em cowboy!" msgstr "" -" Henry Big Boy .44 Este rifle de ação de alavanca fina é compartimentado no " -"poderoso cartucho de magnum de .44 e possui um barril octogonal elegantecom " -"uma revista alimentada por tubo. Vá pegar o cowboy deles!" #: lang/json/gun_from_json.py msgid "LeMat revolver" @@ -89768,10 +79665,6 @@ msgid "" "cartridges and a single 12 gauge shell, it makes a great companion for those" " who wander the \"Earth-that-was\"." msgstr "" -" Revólver LeMat Uma versão modernizada do revólver LeMat original, uma " -"armade fogo rara e cara produzida durante a guerra civil. Com uma capacidade" -" de9 cartuchos modernos de 44 e uma única blindagem de calibre 12, é um " -"excelente companheiro para aqueles que vagam pela 'Terra-que- era'." #: lang/json/gun_from_json.py msgid "pipe rifle: .44 Magnum" @@ -89791,9 +79684,6 @@ msgid "" " the Redhawk offers very sturdy construction, with an appearance that is " "reminiscent of \"Wild West\" revolvers." msgstr "" -" Ruger Redhawk Uma das armas mais poderosas do mundo quando foi lançado " -"em1979, o Redhawk oferece uma construção muito robusta, com uma aparência " -"quelembra os revólveres 'Wild West'." #: lang/json/gun_from_json.py msgid "S&W 629" @@ -89808,10 +79698,6 @@ msgid "" "powerful handgun in the world any more, it could still blow a zombie's head " "clean off." msgstr "" -" S & W 629 Um revólver de ação dupla, aço inoxidável, seis tiros, " -"comcabo de plástico preto fosco fabricado pela Smith & Wesson. " -"Emboradificilmente seja a mais poderosa arma do mundo, ela ainda pode " -"explodir acabeça de um zumbi." #: lang/json/gun_from_json.py msgid "Colt M1860 Army" @@ -89824,9 +79710,6 @@ msgid "" "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." msgstr "" -" Exército Colt M1860 O Exército Colt Modelo 1860 é um revólver calibre 44 " -"decalote e bola. Foi usado durante a Guerra Civil Americana e feito " -"pelaManufacturing Company da Colt." #: lang/json/gun_from_json.py msgid "TDI Vector" @@ -89839,8 +79722,6 @@ msgid "" "The TDI Vector is a submachine gun with a unique, in-line design that makes " "recoil very manageable, even in the powerful .45 caliber." msgstr "" -" TDI Vector O TDI Vector é uma metralhadora com um design único e in-lineque" -" torna o recolhimento muito manejável, mesmo no poderoso calibre .45." #: lang/json/gun_from_json.py msgid "H&K UMP45" @@ -89854,9 +79735,6 @@ msgid "" "earlier model's supreme accuracy and low recoil, but in the higher .45 " "caliber." msgstr "" -" H & K UMP45 Desenvolvido como um sucessor da submetralhadora MP5, " -"oUMP45 mantém a precisão suprema e o baixo recuo do modelo anterior, mas " -"nomaior calibre .45." #: lang/json/gun_from_json.py msgid "M1911" @@ -89869,8 +79747,6 @@ msgid "" "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." msgstr "" -" M1911 O M1911 era a arma militar padrão dos EUA para a maior parte doséculo" -" XX. Ela continua sendo uma das pistolas .45 mais popularesatualmente." #: lang/json/gun_from_json.py msgid "MAC-10" @@ -89885,10 +79761,6 @@ msgid "" "and enjoyed great popularity among criminals less concerned with quality " "firearms." msgstr "" -" MAC-10 O MAC-10 é uma pistola de máquina popular originalmente " -"projetadapara uso militar. Por muitos anos eles foram a arma automática mais" -" baratanos EUA e gozavam de grande popularidade entre os criminosos " -"menospreocupados com armas de fogo de qualidade." #: lang/json/gun_from_json.py msgid "pipe rifle: .45" @@ -89924,9 +79796,6 @@ msgid "" "the .45 it's chambered with packs a serious punch. Just watch out for the " "kick." msgstr "" -" canhão de mão caseiro Uma pistola grande e pesada, evidentemente soldada " -"desucata. Não é bonito, mas o 0,45 é invadido por pacotes. Apenas atente " -"parao chute." #: lang/json/gun_from_json.py msgid "Thompson submachine gun" @@ -89941,11 +79810,6 @@ msgid "" "gangsters, and was used during World War II before being mostly replaced " "with less-expensive alternatives." msgstr "" -" Metralhadora Thompson Uma metralhadora americana criada durante o final " -"daPrimeira Guerra Mundial, tarde demais para ver ação. Infame durante " -"adécada de 1920 para o seu uso por gangsters, e foi usado durante a " -"SegundaGuerra Mundial antes de ser substituído por alternativas " -"menosdispendiosas." #: lang/json/gun_from_json.py msgid "USP .45" @@ -89964,8 +79828,6 @@ msgid "" "The Taurus Raging Bull is a 5-shot revolver chambered in .454 Casull. It " "has impressive stopping power." msgstr "" -" USP .45 Touro Raging Taurus O Touro Raging Taurus é um revólver de 5 " -"tirosem Casull .454. Tem impressionante poder de parada." #: lang/json/gun_from_json.py msgid "Marlin 1895 SBL" @@ -90019,9 +79881,6 @@ msgid "" "4.6x30mm round while being lightweight, compact in size, and practically " "recoil free." msgstr "" -" H & K MP7 Projetado como uma arma de defesa pessoal, o MP7 dispara " -"arodada de 4.6x30mm de alta potência, sendo leve, de tamanho compacto " -"epraticamente livre de recuo." #: lang/json/gun_from_json.py msgid "L39-460" @@ -90037,12 +79896,6 @@ msgid "" "Notably, normal .45ACP can also be fired through the weapon. Similar to " "other Leadworks products it doesn't accept third-party modifications." msgstr "" -" L39-460 Desenvolvido como um testamento para a família L39 de força " -"depistolas, esta pesada câmara de pistola poderosa .460 Rowland. Além " -"dacorrediça pesada e do pacote de avistamento padrão L39, esta " -"pistolaapresenta um grande compensador. Notavelmente, o normal .45ACP também" -" podeser disparado através da arma. Semelhante a outros produtos Leadworks, " -"nãoaceita modificações de terceiros." #: lang/json/gun_from_json.py msgid "L39B-45" @@ -90077,14 +79930,6 @@ msgid "" "Western series. Comes with built in holographic and laser sights. Similar " "to other Leadworks products it doesn't accept third-party modifications." msgstr "" -" L2031 Enforcer Um 'autorevolver', este seis-atirador de LeadworksLLC " -"combina a facilidade de ação de um semi-automático com a facilidade " -"derecarregar e estilo de um revólver. Além do ubíquo .45 ACP, o " -"Enforcertambém dispara o potente .460 Rowland, oferecendo desempenho .44 " -"Magnum emum pacote menor. Alcançou o estrelato da noite para o dia quando " -"apareceu em 'Treasure Trail', uma popular série do espaço-oeste. Vem " -"comconstruído em mira holográfica e laser. Semelhante a outros " -"produtosLeadworks, não aceita modificações de terceiros." #: lang/json/gun_from_json.py msgid "L1820 Long Ranger" @@ -90102,14 +79947,6 @@ msgid "" "synthetic furniture and built in holographic and laser sights. Similar to " "other Leadworks products it doesn't accept third-party modifications." msgstr "" -" L1820 Long Ranger O Leadworks Long Ranger foi projetado para oferecer " -"aosusuários do Enforcer (ou qualquer um que use cartuchos calibre .460 / " -".45)um pouco mais de alcance ao usar a mesma munição. Carregado com " -"poderosamunição .460 Rowland, este rifle oferece um substituto competitivo " -"para oAR-15 em climas politicamente restritivos, mas foi recebido com " -"repugnânciapelos puristas por causa de seus móveis sintéticos e construído " -"em miraholográfica e laser. Semelhante a outros produtos Leadworks, não " -"aceitamodificações de terceiros." #: lang/json/gun_from_json.py msgid "Barrett M107A1" @@ -90122,8 +79959,6 @@ msgid "" "A large, shoulder-fired, .50 caliber anti-materiel rifle. Its large size, " "recoil, and noise is offset by its damage and range." msgstr "" -" Barrett M107A1 Um grande rifle anti-materiel de calibre .50 de ombro. " -"Seugrande tamanho, recuo e ruído são compensados por seu dano e alcance." #: lang/json/gun_from_json.py msgid "M2 Browning HMG" @@ -90137,10 +79972,6 @@ msgid "" "cataclysm, and even rarely by cataclysm survivors. Its massive size and " "design make it impossible to use unless deployed or mounted to a vehicle." msgstr "" -" M2 Browning HMG Uma metralhadora pesada usada pelos militares dos EUA " -"desdeo seu início até o cataclismo, e até mesmo raramente por sobreviventes " -"decataclismo. Seu tamanho e design massivos impossibilitam o uso, a menos " -"quesejam implantados ou montados em um veículo." #: lang/json/gun_from_json.py msgid ".50 caliber rifle" @@ -90155,14 +79986,10 @@ msgid "" "belt fed mechanism has been modified into a much smaller single round " "chamber." msgstr "" -" Rifle calibre .50 Modificado a partir do maciço M2 Browning, este " -"riflereduzido foi alterado para ser disparado desmontado. O fogo " -"dearrebentamento foi desativado e seu mecanismo de alimentação de correia " -"foimodificado em uma câmara redonda muito menor." #: lang/json/gun_from_json.py src/item_factory.cpp src/turret.cpp msgid "manual" -msgstr "manual" +msgstr "" #: lang/json/gun_from_json.py msgid "Big Horn Model 89" @@ -90176,9 +80003,6 @@ msgid "" " Model 89 rifle packs all the power of the .500 S&W Magnum cartridge in to a" " package less likely to break one's wrist." msgstr "" -" Big Horn Model 89 Construído à imagem do venerável Winchester Model 1886, " -"orifle Model 89 da Big Horn Armory embala todo o poder do cartucho S 500 " -"500da Magnum em um pacote menos propenso a quebrar o pulso." #: lang/json/gun_from_json.py msgid "S&W 500" @@ -90191,8 +80015,6 @@ msgid "" "The 5-shot Smith and Wesson 500 revolver fires the comparably-named .500 S&W" " Magnum. It's an impressive weapon." msgstr "" -" S & W 500 O 5-shot Smith e Wesson 500 revólver dispara o .500 S & " -"WMagnum. É uma arma impressionante." #: lang/json/gun_from_json.py msgid "AK-74M" @@ -90205,8 +80027,6 @@ msgid "" "The successor to the well-known AK-47 rifle. It combines the reliability of" " the AK series with the high-velocity, lightweight 5.45x39mm cartridge." msgstr "" -" AK-74M O sucessor do bem conhecido rifle AK-47. Ele combina aconfiabilidade" -" da série AK com o cartucho de 5.45x39mm leve e de altavelocidade." #: lang/json/gun_from_json.py msgid "AN-94" @@ -90221,15 +80041,10 @@ msgid "" "increased complexity prevented it from being adopted by the Russian " "military, it has seen service among their special forces." msgstr "" -" AN-94 Destinado a substituir o AK-74, este rifle usa um " -"mecanismosofisticado para atrasar o recuo de feltro, juntamente com um modo " -"derajada de duas voltas muito rápido. Embora sua complexidade aumentada " -"tenhaimpedido que ele fosse adotado pelas forças armadas russas, ele viu " -"serviçoentre suas forças especiais." #: lang/json/gun_from_json.py msgid "2 rd." -msgstr "2 rd." +msgstr "" #: lang/json/gun_from_json.py msgid "FN Five-Seven" @@ -90243,9 +80058,6 @@ msgid "" "lightweight pistol with a very high capacity, best used against armored " "opponents." msgstr "" -" FN Five-Seven Projetado para funcionar com a rodada proprietária de5.7x28mm" -" da FN, o Five-Seven é uma pistola leve com uma capacidade muitoalta, melhor" -" usada contra oponentes blindados." #: lang/json/gun_from_json.py msgid "FN P90" @@ -90259,9 +80071,6 @@ msgid "" "designed the P90 to use their proprietary 5.7x28mm ammunition. It is made " "for firing bursts manageably." msgstr "" -" FN P90 O primeiro de um novo gênero de armas, denominado 'armas dedefesa " -"pessoal'. A FN projetou o P90 para usar sua muniçãoproprietária de 5.7x28mm." -" É feito para disparar rajadas de forma manejável." #: lang/json/gun_from_json.py msgid "RM216 SPIW" @@ -90276,15 +80085,10 @@ msgid "" " developed by Rivtech for the US military shortly before the end of the " "world. Designed to be fired in bursts, it excels in close combat." msgstr "" -" RM216 SPIW Esta carabina leve dispara cartuchos flechette perfurantes " -"de5x50mm. Classificada como uma arma individual de propósito especial, " -"estaavançada arma de fogo foi desenvolvida pela Rivtech para os militares " -"dosEUA pouco antes do fim do mundo. Projetado para ser disparado em rajadas," -" ele se destaca em combate próximo." #: lang/json/gun_from_json.py msgid "5 rd." -msgstr "5 rd." +msgstr "" #: lang/json/gun_from_json.py msgid "RM232 IDW" @@ -90299,11 +80103,6 @@ msgid "" "firearm was developed by Rivtech for the US military shortly before the end " "of the world. Designed to be fired in bursts, it excels in close combat." msgstr "" -" RM232 IDW Esta pistola leve dispara cartuchos de flechette perfurantes " -"de5x50mm. Classificada como uma arma de defesa individual, esta avançada " -"armade fogo foi desenvolvida pela Rivtech para os militares dos EUA pouco " -"antesdo fim do mundo. Projetado para ser disparado em rajadas, ele se " -"destaca emcombate próximo." #: lang/json/gun_from_json.py msgid "Elephant gun" @@ -90317,9 +80116,6 @@ msgid "" "game. You could obviously kill everything with this, EVERYTHING. If you " "ever find enough ammo of course." msgstr "" -" Arma de elefante Um rifle de tiro único feito sob medida " -"especialmenteprojetado para a caça de grande jogo. Você poderia obviamente " -"matar tudocom isso, TUDO. Se você já encontrou munição suficiente, é claro." #: lang/json/gun_from_json.py msgid "AKM" @@ -90332,8 +80128,6 @@ msgid "" "One of the most recognizable assault rifles ever made, the AKM is renowned " "for its durability even under the worst conditions." msgstr "" -" AKM Um dos fuzis de assalto mais conhecidos de todos os tempos, o AKM " -"éreconhecido pela sua durabilidade, mesmo nas piores condições." #: lang/json/gun_from_json.py msgid "Beretta ARX-160" @@ -90348,11 +80142,6 @@ msgid "" "replace it, but it is widely used by military all around the world. This " "version is chambered for 7.62x39mm." msgstr "" -" Beretta ARX-160 O Beretta ARX-160 foi um concorrente da Fase II " -"nacompetição Carabina Individual do Exército dos Estados Unidos " -"parasubstituir a carabina M4. Não conseguiu substituí-lo, mas é " -"amplamenteutilizado por militares em todo o mundo. Esta versão é chambered " -"para7.62x39mm." #: lang/json/gun_from_json.py msgid "SKS" @@ -90366,10 +80155,6 @@ msgid "" "full-auto AK47. However, due to its superb accuracy, low recoil and " "deployable integrated bayonet, this gun maintains immense popularity." msgstr "" -" SKS Desenvolvido pelos soviéticos em 1945, este rifle foi " -"rapidamentesubstituído pelo AK47 full-auto. No entanto, devido à sua " -"excelenteprecisão, baixa baioneta e baioneta integrada implantável, esta " -"arma mantémimensa popularidade." #: lang/json/gun_from_json.py msgid "Mosin-Nagant M44" @@ -90383,9 +80168,6 @@ msgid "" " shorter barrel, therefore it is weaker than the 1891/30, but easier to " "carry." msgstr "" -" Mosin-Nagant M44 O modelo 44 é a variante de tamanho de carabina do " -"padrão1891/30. Tem um cano mais curto, portanto é mais fraco que o 1891/30, " -"masmais fácil de transportar." #: lang/json/gun_from_json.py msgid "Mosin-Nagant M44-EBR" @@ -90398,8 +80180,6 @@ msgid "" "This carbine packs the classic Mosin-Nagant model 44 action in a modern-day " "stock capable of accepting modifications." msgstr "" -" Mosin-Nagant M44-EBR Esta carabina embala a clássica ação Mosin- " -"Nagantmodelo 44 em um estoque moderno capaz de aceitar modificações." #: lang/json/gun_from_json.py msgid "Mosin-Nagant 1891/30" @@ -90413,9 +80193,6 @@ msgid "" "rifle, developed by the Russian Empire, and later used and perfected by the " "Soviet Union." msgstr "" -" Mosin-Nagant 1891/30 O Mosin-Nagant 1891/30 é um rifle militar, " -"alimentadopor revista, desenvolvido pelo Império Russo e depois usado e " -"aperfeiçoadopela União Soviética." #: lang/json/gun_from_json.py msgid "Mosin-Nagant 1891/30-EBR" @@ -90429,10 +80206,6 @@ msgid "" "synthetic model, carefully balanced to the same weight and handling yet " "offering support for modern accessories." msgstr "" -" Mosin-Nagant 1891/30-EBR Este Mosin-Nagant trocou o estoque de " -"madeiraclássico por um modelo sintético moderno, cuidadosamente equilibrado " -"com omesmo peso e manuseio, oferecendo ainda suporte para acessórios " -"modernos." #: lang/json/gun_from_json.py msgid "PPSh-41" @@ -90445,8 +80218,6 @@ msgid "" "The Soviet-made PPSh-41 is a mass-produced selective-fire submachine gun. " "It has a relatively high rate of fire." msgstr "" -" PPSh-41 O PPSh-41, de fabricação soviética, é uma metralhadora " -"seletivaproduzida em massa. Tem uma taxa relativamente alta de fogo." #: lang/json/gun_from_json.py msgid "Tokarev TT-33" @@ -90461,10 +80232,6 @@ msgid "" "the 7.62x25mm due to the popularity of the C96 pistol among Russian " "revolutionaries." msgstr "" -" Tokarev TT-33 O Tokarev TT-33 é uma pistola semiautomática russa antiga, " -"famosa por sua durabilidade, precisão e ângulo de aderência desconfortável. " -"Foi chambered para o 7.62x25mm devido à popularidade da pistola C96 entreos " -"revolucionários russos." #: lang/json/gun_from_json.py msgid "M3 recoilless rifle" @@ -90478,9 +80245,6 @@ msgid "" " man-portable, reusable, multi-role recoilless rifle commonly used by the US" " military." msgstr "" -" Rifle M3 sem recuo Fabricado na Suécia, o Carl Gustav M3 é um fuzilportátil" -" de 84 milímetros, portátil, reutilizável e multifuncional, que pode ser " -"utilizado em cruzetas e é comumente usado pelos militares dos EUA." #: lang/json/gun_from_json.py msgid "AT4" @@ -90505,9 +80269,6 @@ msgid "" "Considered overkill by many, the Rivtech M103A remains one of the most " "powerful sidearms ever developed. Accepts stick magazines." msgstr "" -" RM103A automagnum Considerado um exagero por muitos, o Rivtech " -"M103Acontinua sendo uma das armas mais poderosas já desenvolvidas. " -"Aceitarevistas em bastão." #: lang/json/gun_from_json.py msgid "RM11B scout rifle" @@ -90524,13 +80285,6 @@ msgid "" "to deliver precise long-range takedowns, utilizing the proprietary Rivtech " "8mm caseless round. Accepts stick magazines." msgstr "" -" Rifle scout RM11B Destinado a funcionar como uma arma de apoio de " -"longoalcance para os militares, o rifle scout Rivtech RM11B foi projetado " -"paradurabilidade e precisão sob circunstâncias menos que ideais. Seu " -"layoutbullpup, supressor integrado e escopo digital, e dois modos de " -"rajadaredondos permitem a entrega de quedas precisas de longo alcance, " -"utilizandoa exclusiva rampa caseira Rivtech de 8 mm. Aceita revistas em " -"bastão." #: lang/json/gun_from_json.py msgid "RM2000 submachine gun" @@ -90544,9 +80298,6 @@ msgid "" "was designed for durability and ease of carrying under less than ideal " "circumstances. Accepts stick magazines." msgstr "" -" Pistola-metralhadora RM2000 Utilizando um poderoso e incomum calibre, " -"ametralhadora Rivtech RM2000 foi projetada para durabilidade e facilidade " -"detransporte sob circunstâncias menos que ideais. Aceita revistas em bastão." #: lang/json/gun_from_json.py msgid "RM298 HMG" @@ -90561,10 +80312,6 @@ msgid "" "the worst possible circumstances. Accepts RMXB500 box and RMGD250 drum " "magazines." msgstr "" -" RM298 HMG Utilizando um poderoso e incomum calibre, a metralhadora " -"pesadaRivtech RM298 foi projetada para durabilidade e volume extremo de " -"fogosustentado nas piores circunstâncias possíveis. Aceita caixas RMXB500 " -"eRMGD250." #: lang/json/gun_from_json.py msgid "RM51 assault rifle" @@ -90579,10 +80326,6 @@ msgid "" " with its considerable bulk minimized by a compact and ergonomic layout. " "Accepts box magazines." msgstr "" -" Fuzil de assalto RM51 Originalmente produzido para uso militar, o fuzil " -"deassalto Rivtech RM51 foi projetado para durabilidade e facilidade de uso " -"emcircunstâncias menos que ideais, com seu volume considerável minimizado " -"porum layout compacto e ergonômico. Aceita revistas em caixa." #: lang/json/gun_from_json.py msgid "RM614 LMG" @@ -90597,14 +80340,10 @@ msgid "" "the worst possible circumstances. Accepts RMXB500 box and RMGD250 drum " "magazines." msgstr "" -" RM614 LMG Utilizando um poderoso e incomum calibre, a metralhadora " -"leveRivtech RM614 foi projetada para durabilidade e volume extremo de " -"fogosustentado nas piores circunstâncias possíveis. Aceita caixas RMXB500 " -"eRMGD250." #: lang/json/gun_from_json.py msgid "4 rd." -msgstr "4 rd." +msgstr "" #: lang/json/gun_from_json.py msgid "RM88 battle rifle" @@ -90619,10 +80358,6 @@ msgid "" "circumstances, with a heavy ported barrel for maximum controllability. " "Accepts box and RMGD250 drum magazines." msgstr "" -" Rifle de batalha RM88 Originalmente produzido para uso militar, o rifle " -"debatalha Rivtech RM88 foi projetado para durabilidade e extremo poder " -"defogo sob circunstâncias menos que ideais, com um pesado cano para " -"máximacontrolabilidade. Aceita caixas e revistas de tambor RMGD250." #: lang/json/gun_from_json.py msgid "RM99 revolver" @@ -90635,9 +80370,6 @@ msgid "" "Considered overkill by some, the Rivtech M99 remains an exceedingly powerful" " addition to the arsenal of any gunslinger." msgstr "" -" Revólver RM99 Considerado um exagero por alguns, o Rivtech M99 " -"continuasendo uma adição extremamente poderosa ao arsenal de qualquer " -"pistoleiro." #: lang/json/gun_from_json.py msgid "briefcase SMG" @@ -90654,12 +80386,6 @@ msgid "" "now only concerned in eating you, this million dollar baby has been reduced " "to little more than a novelty item." msgstr "" -" SMG Uma metralhadora 9x19mm personalizada, camuflada para parecer uma " -"malamédia para o empresário, painéis de materiais de ponta e sua " -"inteligenteconstrução interna permitiram contornar até mesmo os mais " -"rigorosos pontosde controle de segurança. Devido ao fato de que o guarda de " -"segurança médioestá preocupado apenas em comer você, este bebê de milhões de" -" dólares foireduzido a pouco mais do que um item de novidade." #: lang/json/gun_from_json.py msgid "Calico M960" @@ -90672,9 +80398,6 @@ msgid "" "The Calico M960 is an automatic carbine with a unique circular magazine that" " allows for high capacities and reduced recoil." msgstr "" -" Calico M960 O Calico M960 é uma carabina automática com um " -"compartimentocircular exclusivo que permite altas capacidades e reduz o " -"recuo." #: lang/json/gun_from_json.py msgid "Cx4 Storm" @@ -90688,9 +80411,6 @@ msgid "" "defense, the Cx4 Storm uses magazines that are interchangeable with other " "Beretta 9x19mm handguns." msgstr "" -" Cx4 Storm Uma pequena carabina de calibre de pistola projetada para " -"usopolicial e autodefesa civil, o Cx4 Storm usa revistas que " -"sãointercambiáveis com outras pistolas Beretta 9x19mm." #: lang/json/gun_from_json.py msgid "Glock 19" @@ -90703,9 +80423,6 @@ msgid "" "Possibly the most popular pistol in existence. The Glock 19 is often " "derided for its plastic construction, but it is easy to shoot." msgstr "" -" Glock 19 Possivelmente a pistola mais popular da existência. A Glock 19 " -"émuitas vezes ridicularizada por sua construção plástica, mas é fácil " -"defotografar." #: lang/json/gun_from_json.py msgid "H&K MP5" @@ -90719,10 +80436,6 @@ msgid "" " world, and has been adopted by special police forces and militaries alike." " Its high degree of accuracy and low recoil are universally praised." msgstr "" -" H & K MP5 A Heckler & Koch MP5 é uma das metralhadoras " -"maisutilizadas no mundo, e foi adotada por forças policiais e " -"militaresespeciais. Seu alto grau de precisão e baixo recolhimento " -"sãouniversalmente elogiados." #: lang/json/gun_from_json.py msgid "H&K MP5SD" @@ -90741,15 +80454,6 @@ msgid "" "amplifiers. No wonder the MP5SD is one of the most accurate silenced " "submachine guns of its type." msgstr "" -" H & K MP5SD Apesar do seu elemento silenciador integrado, ele tem " -"omesmo comprimento e forma que uma submetralhadora sem isolamento. " -"Aocontrário da maioria das metralhadoras silenciadas convencionais, " -"eledispara os tipos de munição padrão com o mesmo efeito. O uso de " -"muniçãosubsônica especial não é necessário. O elemento de silenciador " -"integradosuprime o flash de focagem de forma extremamente eficaz, como " -"resultado doqual a arma também é excelente para operações noturnas " -"usandoamplificadores de pouca luz. Não admira que o MP5SD seja uma " -"dasmetralhadoras silenciosas mais precisas do seu tipo." #: lang/json/gun_from_json.py msgid "Kel-Tec SUB-2000" @@ -90762,8 +80466,6 @@ msgid "" "A uniquely designed pistol caliber carbine with an integral folding stock " "and that makes use of 9x19mm Glock magazines." msgstr "" -" Kel-Tec SUB-2000 Uma carabina de calibre de pistola de design exclusivo " -"comum material de dobra integral e que utiliza magazines Glock de 9x19mm." #: lang/json/gun_from_json.py msgid "L2032 Lookout" @@ -90780,12 +80482,6 @@ msgid "" "holographic and laser sights. Similar to other Leadworks products it " "doesn't accept third-party modifications." msgstr "" -" L2032 Lookout Após o sucesso do Enforcer, a Leadworks LLC reformulou " -"seudesign de autorevolver para atender ao mercado de 9x19mm. O " -"Lookoutaproveita o 9x19mm menor para realizar uma sétima rodada, sem " -"sacrificar afacilidade de manuseio ou recarga do Enforcer tornado lendário. " -"Vem comconstruído em mira holográfica e laser. Semelhante a outros " -"produtosLeadworks, não aceita modificações de terceiros." #: lang/json/gun_from_json.py msgid "L39B" @@ -90801,12 +80497,6 @@ msgid "" "fearsome appearance. Comes with built in red dot and laser sights. Similar" " to other Leadworks products it doesn't accept third-party modifications." msgstr "" -" L39B Um revólver de 9x19mm de queima seletiva introduzido pela " -"LeadworksLLC, o L39B oferece posicionamento preciso de disparo único, bem " -"como poderde fogo controlável de curto alcance com seu modo de disparo de " -"trêsvoltas. Usuários elogiaram sua precisão e aparência assustadora. Vem " -"componto vermelho e mira laser. Semelhante a outros produtos Leadworks, " -"nãoaceita modificações de terceiros." #: lang/json/gun_from_json.py msgid "L39" @@ -90822,12 +80512,6 @@ msgid "" "would have destroyed a lesser weapon. Similar to other Leadworks products " "it doesn't accept third-party modifications." msgstr "" -" L39 Uma pistola semiautomática de 9x19 mm introduzida pela Leadworks LLC, " -"aL39 oferece posicionamento preciso de disparo único em uma estrutura " -"muitorobusta com pontos vermelhos e miras a laser embutidos. Várias " -"lendasurbanas descrevem o uso de maneiras que teriam destruído uma arma " -"menor. Semelhante a outros produtos Leadworks, não aceita modificações " -"deterceiros." #: lang/json/gun_from_json.py msgid "Beretta M9" @@ -90840,8 +80524,6 @@ msgid "" "A very popular 9x19mm pistol, the M9 has been the standard issue sidearm of " "the US army since 1985." msgstr "" -" Beretta M9 Uma pistola 9x19mm muito popular, a M9 tem sido a arma padrão " -"doexército norte-americano desde 1985." #: lang/json/gun_from_json.py msgid "pipe rifle: 9x19mm" @@ -90878,11 +80560,6 @@ msgid "" "known for reliability, its main advantages were low cost and being able to " "use German 9mm ammunition." msgstr "" -" rifle de cano: 9x19mm STEN Uma metralhadora britânica desenvolvida durantea" -" Segunda Guerra Mundial, para compensar a escassez de suprimentos. Projetado" -" para ser feito com mão-de-obra não qualificada e não conhecidopela " -"confiabilidade, suas principais vantagens eram o baixo custo e acapacidade " -"de usar munição alemã de 9mm." #: lang/json/gun_from_json.py msgid "TEC-9" @@ -90896,9 +80573,6 @@ msgid "" "parts. Its rise in popularity among criminals is largely due to its " "intimidating looks and low cost." msgstr "" -" TEC-9 O TEC-9 é uma pistola automática feita de polímeros baratos e " -"peçasestampadas. Sua ascensão na popularidade entre os criminosos é em " -"grandeparte devido à sua aparência intimidante e de baixo custo." #: lang/json/gun_from_json.py msgid "USP 9mm" @@ -90912,9 +80586,6 @@ msgid "" " durability, it has been found to stay accurate even after being subjected " "to extreme abuse." msgstr "" -" USP 9mm Uma pistola popular, amplamente utilizada entre os agentes da lei. " -"Extensivamente testado quanto à durabilidade, constatou-se que elepermanece " -"preciso mesmo após ser submetido a um abuso extremo." #: lang/json/gun_from_json.py msgid "Uzi 9mm" @@ -90928,10 +80599,6 @@ msgid "" "other submachine gun. It is widely used as a personal defense weapon, or as" " a primary weapon by elite frontline forces." msgstr "" -" Uzi 9mm A Uzi 9x19mm tem desfrutado de imensa popularidade, vendendo " -"maisunidades do que qualquer outra submetralhadora. É amplamente usado como " -"umaarma de defesa pessoal ou como uma arma primária pelas forças da linha " -"defrente da elite." #: lang/json/gun_from_json.py msgid "Glock 17" @@ -90944,8 +80611,6 @@ msgid "" "Designed for all shooters, the Glock 17 is marketed towards law-enforcement " "and military." msgstr "" -" Glock 17 Projetado para todos os atiradores, o Glock 17 é " -"comercializadopara a aplicação da lei e militar." #: lang/json/gun_from_json.py msgid "Glock 18C" @@ -90998,10 +80663,6 @@ msgid "" "era TT-33 pistol. It uses the 9x18mm cartridge, which remains in use among " "various former Soviet countries." msgstr "" -" Makarov PM O Pistolet Makarova foi desenvolvido pela União Soviética " -"parasubstituir a pistola TT-33 da era da Segunda Guerra Mundial. Ele usa " -"ocartucho 9x18mm, que permanece em uso entre vários países da antiga " -"UniãoSoviética." #: lang/json/gun_from_json.py msgid "Skorpion Vz. 82" @@ -91014,8 +80675,6 @@ msgid "" "A version of the Skorpion submachine gun chambered in 9x18mm Makarov, with a" " slightly longer barrel than the original design." msgstr "" -" Skorpion Vz. 82 Uma versão da submetralhadora Skorpion com câmara em " -"9x18mmMakarov, com um cano ligeiramente mais longo que o desenho original." #: lang/json/gun_from_json.py msgid "BGM-71F TOW" @@ -91029,9 +80688,6 @@ msgid "" "crew-served weapon or mounted on vehicles. While fairly accurate, it isn't " "fire-and-forget." msgstr "" -" ATGM Launcher Um lançador de mísseis guiados antitanques, capaz de " -"serutilizado como arma de tripulação ou montado em veículos. Embora " -"sejabastante preciso, não é o fogo-e-esqueça." #: lang/json/gun_from_json.py msgid "bionic shotgun" @@ -91074,9 +80730,6 @@ msgid "" "A homemade version of a crude precursor to the shotgun. Able to fire just " "about anything you put down the barrel, but it will degrade pretty quick." msgstr "" -" Fusão blaster laser finger Uma versão caseira de um precursor bruto " -"daespingarda. Capaz de disparar qualquer coisa que você coloque no cano, " -"masele vai se degradar bem rápido." #: lang/json/gun_from_json.py msgid "makeshift chemical thrower" @@ -91089,9 +80742,6 @@ msgid "" "A bulky, self-made chemical sprayer with an internal conversion mechanism " "that allows all sorts of chemicals to be dispersed to your surroundings." msgstr "" -" lançador químico Um pulverizador químico volumoso, feito por você mesmo, " -"com um mecanismo de conversão interno que permite que todos os tipos " -"deprodutos químicos sejam dispersos para o ambiente." #: lang/json/gun_from_json.py msgid "flamethrower" @@ -91104,8 +80754,6 @@ msgid "" "A large flamethrower with substantial gas reserves. Very menacing and " "deadly." msgstr "" -" lança-chamas Um grande lança-chamas com reservas substanciais de gás. " -"Muitoameaçador e mortal." #: lang/json/gun_from_json.py msgid "spraycan flamethrower" @@ -91120,11 +80768,6 @@ msgid "" "been crudely modified to disperse gasoline, and a small pump attached to the" " side allows for repressurization, though this process takes a few minutes." msgstr "" -" Um favorito de hooligans ao redor do mundo, este mais leve duto-gravadopara" -" uma lata de spray é provavelmente tão perigoso para o usuário comoqualquer " -"outra pessoa. O bocal foi modificado grosseiramente para dispersara " -"gasolina, e uma pequena bomba presa ao lado permite a repressurização, " -"embora esse processo leve alguns minutos." #: lang/json/gun_from_json.py msgid "simple flamethrower" @@ -91137,9 +80780,6 @@ msgid "" "A simple, home-made flamethrower. While its capacity is not superb, it is " "more than capable of igniting terrain and monsters alike." msgstr "" -" lança-chamas simples Um lança-chamas simples e caseiro. Embora " -"suacapacidade não seja excelente, é mais do que capaz de acender terreno " -"emonstros." #: lang/json/gun_from_json.py msgid "RM451 flamethrower" @@ -91154,12 +80794,6 @@ msgid "" "high-speed piezoelectric igniter. Solidly built with durability in mind, it" " serves as an incredibly destructive weapon in the right hands." msgstr "" -" Lança-chamas RM451 Um lança-chamas de combate de nível militar " -"projetadopela Rivtech, o lança-chamas RM451 incorpora um sistema de " -"combustível dealimentação rápida de pressão de ciclo com um dispositivo de " -"igniçãopiezoelétrico de alta velocidade. Solidamente construído com " -"durabilidadeem mente, serve como uma arma incrivelmente destrutiva nas mãos " -"certas." #: lang/json/gun_from_json.py msgid "flintlock carbine" @@ -91173,10 +80807,6 @@ msgid "" "and may yet re-earn its feared status due to its ease of handling and " "ability to use easily-crafted ammunition." msgstr "" -" carabina de pederneira Esse design curto de rifle já dominou os campos " -"debatalha da Europa antiga e ainda pode reconquistar seu status de " -"medodevido à facilidade de manuseio e à capacidade de usar munição " -"defabricação fácil." #: lang/json/gun_from_json.py msgid "handmade double-barrel flintlock" @@ -91191,10 +80821,6 @@ msgid "" "flintlock is an intricate work of gunsmithing, this weapon is simpler yet " "still serviceable." msgstr "" -" pederneira artesanal de cano duplo Esta é uma espingarda compacta de " -"canoque combina um par de ações rítmicas de pederneira e dois canos. " -"Enquantoum pederneiro de cano múltiplo antigo é um intrincado trabalho de " -"armeiro, esta arma é mais simples, mas ainda útil." #: lang/json/gun_from_json.py msgid "flintlock pistol" @@ -91207,8 +80833,6 @@ msgid "" "A beautifully decorated flintlock pistol. If using this doesn't makes you " "feel a pirate, nothing will." msgstr "" -" pistola de pederneira Uma pistola de pederneira lindamente decorada. Seusar" -" isso não faz você se sentir um pirata, nada será." #: lang/json/gun_from_json.py msgid "flintlock rifle" @@ -91222,10 +80846,6 @@ msgid "" "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." msgstr "" -" rifle de pederneira Pela primeira vez, algo * bom * voltou dos mortos. " -"Estedesign antigo não tem a taxa de fogo das armas modernas, mas embala " -"tantoquanto o melhor deles e recompensa o atirador habilidoso com " -"muniçãofacilmente trabalhada." #: lang/json/gun_from_json.py msgid "heavy rail rifle" @@ -91243,14 +80863,6 @@ msgid "" "cumbersome to wield; not to mention that it consumes UPS charges at a " "tremendous rate, making it impractical for use in prolonged engagements." msgstr "" -" rifle de trilho pesado Esta variante overpowered e overengineered do " -"rifleferroviário ferromagnético foi projetado para fornecer " -"obliteraçãoeletromagnética-driven através de quaisquer obstáculos que se " -"encontra nafrente dele, seja edifícios, veículos ou hordas de mortos-vivos. " -"Noentanto, o grande volume e peso desta arma em comparação com a maioria " -"dosfuzis contemporâneos torna um pouco pesado para empunhar; sem mencionar " -"queele consome cargas da UPS a uma taxa tremenda, tornando impraticável o " -"usoem compromissos prolongados." #: lang/json/gun_from_json.py msgid "ferromagnetic rail rifle" @@ -91265,11 +80877,6 @@ msgid "" "point of spontaneous combustion by a Lorentz force generated by " "electromagnetic induction, powered by a standard UPS." msgstr "" -" rifle ferroviário ferromagnético Um único tiro, eletricamente impulsionado," -" lançador de trilho de aço artesanal de sucata. A estaca de metal " -"dehipervelocidade que ela dispara é acelerada ao ponto da " -"combustãoespontânea por uma força de Lorentz gerada por indução " -"eletromagnética, alimentada por um no-break padrão." #: lang/json/gun_from_json.py msgid "coilgun" @@ -91282,8 +80889,6 @@ msgid "" "A homemade gun, using electromagnets to accelerate a ferromagnetic " "projectile to high velocity. Powered by UPS." msgstr "" -" coilgun Uma arma caseira, usando eletroímãs para acelerar um " -"projétilferromagnético a alta velocidade. Alimentado por UPS." #: lang/json/gun_from_json.py msgid "nail gun" @@ -91296,8 +80901,6 @@ msgid "" "A tool used to drive nails into wood or other material. It could also be " "used as a ad-hoc weapon." msgstr "" -" pistola de pregos Uma ferramenta usada para conduzir as unhas em madeira " -"ououtro material. Também poderia ser usado como uma arma ad-hoc." #: lang/json/gun_from_json.py msgid "nail rifle" @@ -91311,9 +80914,6 @@ msgid "" "short barrel, stock and hand guard. It can be reloaded using detachable " "magazines and is an overall much more effective weapon." msgstr "" -" Este é um prego que foi extensivamente modificado com a adição de um " -"barrilcurto, estoque e guarda de mão. Ele pode ser recarregado usando " -"revistasdestacáveis e é uma arma muito mais eficaz." #: lang/json/gun_from_json.py msgid "Paintball gun" @@ -91324,8 +80924,6 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "A fairly harmless gun that shoots small paintballs." msgstr "" -" Arma de paintball Uma arma bastante inofensiva que dispara pequenas bolasde" -" tinta." #: lang/json/gun_from_json.py msgid "heavy automatic shotgun" @@ -91339,10 +80937,6 @@ msgid "" "chambered and re-bored for shotgun shells, and completely redesigned to be " "wielded unmounted by one user." msgstr "" -" espingarda automática pesada Modificada a partir da maciça M2 Browning, " -"esta metralhadora pesada foi recondicionada e re-furada para cartuchos " -"deespingarda, e completamente redesenhada para ser empunhada desmontada " -"porum usuário." #: lang/json/gun_from_json.py msgid "12 gauge pistol" @@ -91355,8 +80949,6 @@ msgid "" "A single shot pistol that loads 12 gauge shotgun shells, handcrafted from " "scrap." msgstr "" -" 12 pistola de calibre Uma pistola de um único tiro que carrega 12 " -"cartuchosde espingarda de calibre, feitos à mão a partir de sucata." #: lang/json/gun_from_json.py msgid "manual autoshotgun" @@ -91369,9 +80961,6 @@ msgid "" "A six-barrel hand-cranked automatic shotgun made from bicycle parts. Though" " a bit unwieldy, it is exceedingly powerful for such a simple machine." msgstr "" -" autoshotgun manual Uma espingarda automática de manivela de seis " -"cilindrosfeita de peças de bicicleta. Embora um pouco pesado, é extremamente" -" poderoso para uma máquina tão simples." #: lang/json/gun_from_json.py msgid "Kel-Tec KSG" @@ -91385,10 +80974,6 @@ msgid "" " to increase its capacity. Each tube has to be loaded separately, but this " "offers the option of loading different ammunition for different situations." msgstr "" -" Kel-Tec KSG Uma espingarda de acção de bomba bullpup, a Kel-Tec KSG " -"utilizaum par de tubos de revista para aumentar a sua capacidade. Cada tubo " -"deveser carregado separadamente, mas isso oferece a opção de " -"carregardiferentes munições para diferentes situações." #: lang/json/gun_from_json.py msgid "L12 Defender" @@ -91403,11 +80988,6 @@ msgid "" "built in red dot and laser sights. Like most other Leadworks products it " "doesn't accept third-party modifications." msgstr "" -" L12 Defender O único produto de espingarda da Leadworks LLC até à data " -"ésurpreendentemente compacto graças ao seu mecanismo de bombagem emmovimento" -" e à frente e atrás. Além disso, foi construído em pontosvermelhos e miras a" -" laser. Como a maioria dos outros produtos da Leadworks, não aceita " -"modificações de terceiros." #: lang/json/gun_from_json.py msgid "M1014 shotgun" @@ -91420,8 +81000,6 @@ msgid "" "Its relative simplicity and reliability made the Benelli M4 the most " "successful semi-automatic shotgun ever created." msgstr "" -" Espingarda M1014 A sua relativa simplicidade e fiabilidade tornaram " -"aBenelli M4 a espingarda semiautomática de maior sucesso já criada." #: lang/json/gun_from_json.py msgid "Mossberg 500" @@ -91434,9 +81012,6 @@ msgid "" "The Mossberg 500 is a popular series of pump-action shotguns, often acquired" " for military use. It is noted for its high durability and low recoil." msgstr "" -" Mossberg 500 O Mossberg 500 é uma popular série de espingardas de ação " -"debomba, muitas vezes adquiridas para uso militar. É conhecido por sua " -"altadurabilidade e baixo recuo." #: lang/json/gun_from_json.py msgid "double-barrel pipe shotgun" @@ -91449,9 +81024,6 @@ msgid "" "A home-made double-barreled shotgun. It is simply two pipes attached to a " "stock, with a pair of hammers to strike the two rounds it holds." msgstr "" -" espingarda de tubo duplo cano Uma espingarda de cano duplo feita em casa. " -"São simplesmente dois tubos ligados a um estoque, com um par de martelospara" -" atacar as duas rodadas que ele segura." #: lang/json/gun_from_json.py msgid "pipe shotgun" @@ -91464,8 +81036,6 @@ msgid "" "A home-made shotgun. It is simply a pipe attached to a stock, with a hammer" " to strike the single round it holds." msgstr "" -" espingarda cano Uma espingarda caseira. É simplesmente um tubo preso a " -"umcalço, com um martelo para golpear o único círculo que segura." #: lang/json/gun_from_json.py msgid "Remington 870" @@ -91479,9 +81049,6 @@ msgid "" " hunters and law enforcement agencies alike thanks to its high accuracy and " "muzzle velocity." msgstr "" -" Remington 870 Uma das espingardas mais populares no mercado, o Remington870" -" é usado por caçadores e agências de aplicação da lei, graças à sua " -"altaprecisão e velocidade de focinho." #: lang/json/gun_from_json.py msgid "shotgun revolver" @@ -91494,8 +81061,6 @@ msgid "" "A shotgun modified to use a revolver cylinder mechanism, it can hold 6 " "cartridges." msgstr "" -" revólver espingarda Uma espingarda modificada para usar um mecanismo " -"decilindro de revólver, pode conter 6 cartuchos." #: lang/json/gun_from_json.py msgid "Saiga-12" @@ -91509,9 +81074,6 @@ msgid "" "pattern as the AK47 rifle. It reloads with a magazine, rather than one " "shell at a time like most shotguns." msgstr "" -" Saiga-12 O Saiga-12 é uma espingarda semi-automática projetada no " -"mesmopadrão Kalashnikov que o rifle AK47. Ele recarrega com uma revista, " -"aoinvés de uma concha de cada vez, como a maioria das espingardas." #: lang/json/gun_from_json.py msgid "double barrel shotgun" @@ -91524,9 +81086,6 @@ msgid "" "An old shotgun, possibly antique. It is little more than a pair of barrels," " a wood stock, and a hammer to strike the cartridges." msgstr "" -" Espingarda de cano duplo Uma espingarda velha, possivelmente antiga. Épouco" -" mais que um par de barris, um calço de madeira e um martelo parabater nos " -"cartuchos." #: lang/json/gun_from_json.py msgid "single barrel shotgun" @@ -91540,9 +81099,6 @@ msgid "" "stock, and a hammer to strike the cartridge. Its simple design keeps it " "both light and accurate." msgstr "" -" espingarda de cano único Uma espingarda velha, possivelmente antiga. Épouco" -" mais que um barril, um calço de madeira e um martelo para bater nocartucho." -" Seu design simples mantém a luz e a precisão." #: lang/json/gun_from_json.py msgid "handmade lever shotgun" @@ -91555,9 +81111,6 @@ msgid "" "A well designed homemade lever-action shotgun. With a 8 round magazine, " "this is one of the better homemade weapons." msgstr "" -" espingarda de alavanca artesanal Uma espingarda de alavanca de ação " -"caseirabem projetada. Com uma revista de 8 rounds, esta é uma das melhores " -"armascaseiras." #: lang/json/gun_from_json.py msgid "flaregun" @@ -91568,8 +81121,6 @@ msgstr[1] "" #: lang/json/gun_from_json.py msgid "A plastic single shot pistol that can be loaded with signal flares." msgstr "" -" flaregun Uma pistola única de plástico que pode ser carregada " -"comsinalizadores." #: lang/json/gun_from_json.py msgid "XM34 EMP projector" @@ -91582,9 +81133,6 @@ msgid "" "A powerful electrolaser developed by the R&D outfit \"Aerial Labs\". " "Especially effective against electronic targets." msgstr "" -" Projetor XM34 EMP Um poderoso electrolaser desenvolvido pela equipe de " -"pesquisa e desenvolvimento 'Aerial Labs'. Especialmenteeficaz contra alvos " -"eletrônicos." #: lang/json/gun_from_json.py msgid "handheld laser cannon" @@ -91597,9 +81145,6 @@ 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 "" -" canhão a laser portátil Este é um canhão a laser retirado do cano de " -"umatorre de laser Cerberus TX-5LR que foi modificada para usar a energia " -"daUPS para disparar." #: lang/json/gun_from_json.py msgid "A7 laser rifle" @@ -91614,11 +81159,6 @@ 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 "" -" A7 rifle laser Um estado do rifle laser de arte desenvolvido pela R&D " -"'Aerial Labs'. O desempenho inicial rivalizava com omelhor da Rivtech, com " -"rumores circulando sobre desonestidade corporativa. Embora o cataclismo " -"tenha colocado isso na pilha de cinzas da história, esta arma ainda pode " -"fazer o mesmo com seus inimigos." #: lang/json/gun_from_json.py msgid "fusion blaster rifle" @@ -91631,9 +81171,6 @@ msgid "" "A cyborg's fusion blaster arm, cannibalized and converted into a rifle. " "This improvised weapon is powered by a standard UPS connection." msgstr "" -" rifle de blaster de fusão Um braço de blaster de fusão do cyborg, " -"canibalizado e convertido em um rifle. Esta arma improvisada é alimentadapor" -" uma conexão UPS padrão." #: lang/json/gun_from_json.py msgid "V29 laser pistol" @@ -91647,9 +81184,6 @@ msgid "" " first handheld laser weapons. It is larger than most traditional handguns," " but displays no recoil whatsoever." msgstr "" -" Pistola laser V29 A pistola laser V29 foi concebida em meados do século " -"XXIe foi uma das primeiras armas laser portáteis. É maior do que a maioria " -"dasarmas tradicionais, mas não apresenta qualquer tipo de recuo." #: lang/json/gun_from_json.py msgid "homemade laser pistol" @@ -91663,9 +81197,6 @@ msgid "" " century. While little more than duct tape and electronics, it runs on a " "standard UPS." msgstr "" -" pistola a laser caseira Esta pistola laser foi baseada na pistola laser " -"V29projetada em meados do século XXI. Embora pouco mais que fita adesiva " -"eeletrônica, ele é executado em um no-break padrão." #: lang/json/gun_from_json.py msgid "sawn-off shotgun" @@ -91678,9 +81209,6 @@ msgid "" "The barrels of shotguns are often sawed in half to make it more maneuverable" " and concealable. This has the added effect of reducing accuracy greatly." msgstr "" -" espingarda de serrote Os canos de espingardas são frequentemente serradosao" -" meio para torná-lo mais manobrável e ocultável. Isso tem o efeitoadicional " -"de reduzir muito a precisão." #: lang/json/gun_from_json.py msgid "sawn pipe shotgun" @@ -91693,9 +81221,6 @@ msgid "" "A home-made sawn off shotgun. It is simply a short pipe attached to a " "stock, with a hammer to strike the single round it holds." msgstr "" -" espingarda de cano serrado Um serrote feito em casa fora da espingarda. " -"Ésimplesmente um tubo curto preso a um calço, com um martelo para golpear " -"aúnica volta que ele segura." #: lang/json/gun_from_json.py msgid "NX-17 charge rifle" @@ -91709,10 +81234,6 @@ msgid "" "supply, or UPS. It does not reload normally; instead, press fire once to " "start charging it from your UPS, then again to unload the charge." msgstr "" -" Rifle de carga NX-17 Um rifle multiuso, projetado para uso em conjunto " -"comuma fonte de alimentação unificada ou UPS. Não recarrega normalmente; " -"emvez disso, pressione o botão de fogo uma vez para começar a carregá-lo " -"nono-break e, em seguida, novamente para descarregar a carga." #: lang/json/gun_from_json.py msgid "blowgun" @@ -91725,8 +81246,6 @@ msgid "" "A wooden blowgun, easy to use and very accurate. It uses darts as " "ammunition." msgstr "" -" zarabatana Uma zarabatana de madeira, fácil de usar e muito precisa. " -"Usadardos como munição." #: lang/json/gun_from_json.py msgid "hard-light longbow" @@ -91767,9 +81286,6 @@ msgid "" "This is a cheap laser rifle made from common components. Weak, but can be " "powered with rechargeable batteries." msgstr "" -" rifle de laser de má qualidade Este é um rifle de laser barato feito " -"decomponentes comuns. Fraco, mas pode ser alimentado com " -"bateriasrecarregáveis." #: lang/json/gun_from_json.py msgid "C.R.I.T .5 LP" @@ -91918,11 +81434,6 @@ msgid "" "The energy shot ignites oxygen creating fires as it moves and an explosion " "on impact." msgstr "" -" tubo SMG: .38 tubo SMG: 9x19mm tubo SMG: .40 tubo SMG: .45 Um " -"poderosogerador de energia iônica é implantado em seu peito. Dispara uma " -"poderosaexplosão de energia em constante expansão que passa por vários " -"alvos. Odisparo de energia inflama o oxigênio, criando incêndios à medida " -"que semove e uma explosão no impacto." #: lang/json/gun_from_json.py msgid "SVS-24" @@ -91935,9 +81446,6 @@ 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 "" -" SVS-24 O rifle de assalto de Sarafanov substituiu a famosa família de " -"armasAK como o rifle de serviço do exército russo. Usa o cartucho de " -"6.54x42mm." #: lang/json/gun_from_json.py msgid "SVS-24C" @@ -91951,9 +81459,6 @@ msgid "" "crews or special forces due to its smaller size. The shorter barrel reduces" " accuracy." msgstr "" -" SVS-24C A versão compacta do SVS-24 padrão. É comumente emitido paraequipes" -" de tanques ou forças especiais devido ao seu tamanho menor. O canomais " -"curto reduz a precisão." #: lang/json/gun_from_json.py msgid "CW-24" @@ -91967,9 +81472,6 @@ msgid "" "for the US market. It's pure semi-automatic, and fires the weaker 5.45x39mm" " cartridge." msgstr "" -" CW-24 Versão civil do SVS-24. Foi fabricado pela Clearwater Arms, Georgia, " -"para o mercado dos EUA. É puro semi-automático e dispara o cartucho5.45x39mm" -" mais fraco." #: lang/json/gun_from_json.py msgid "CW-24M" @@ -91982,8 +81484,6 @@ msgid "" "Civilian version of the SVS-24. This one fires the same 6.54x42mm cartridge" " as the SVS-24." msgstr "" -" CW-24M Versão civil do SVS-24. Este dispara o mesmo cartucho de " -"6.54x42mmque o SVS-24." #: lang/json/gun_from_json.py msgid "CW-24K" @@ -91996,8 +81496,6 @@ msgid "" "Civilian version of the SVS-24. This one fires the cheaper, but still " "powerful, 7.62x39mm cartridge." msgstr "" -" CW-24K Versão civil do SVS-24. Este dispara o cartucho mais barato, " -"masainda poderoso, de 7.62x39mm." #: lang/json/gun_from_json.py msgid "Modified CW-24" @@ -92011,9 +81509,6 @@ msgid "" "crudely crafted full-auto bolt carrier. Don't expect the original " "reliability." msgstr "" -" Versão CW-24 civilizada modificada do SVS-24. Ele tem um receptormodificado" -" e um novo transportador de parafusos completamente automático. Não espere a" -" confiabilidade original." #: lang/json/gun_from_json.py msgid "Modified CW-24M" @@ -92032,8 +81527,6 @@ msgid "" "The Clearwater Arms version of the famous SVD-63 Dragunov. This one was " "rechambered for the .308 round." msgstr "" -" Modified CW-24M CWD-63 A versão Clearwater Arms do famoso SVD-63 Dragunov. " -"Este foi reclamou para a rodada .308." #: lang/json/gun_from_json.py msgid "Wrist DREAD" @@ -92047,9 +81540,6 @@ msgid "" "operator. It fires .20 metal pellets at an incredible rate without any " "flash or noise. It is mainly a defensive weapon." msgstr "" -" Pulso DREAD A versão miniaturizada do DREAD MkIX anexado ao pulso " -"dooperador. Ele dispara pellets de metal a uma incrível velocidade, " -"semqualquer flash ou ruído. É principalmente uma arma defensiva." #: lang/json/gun_from_json.py msgid "JHEC M128" @@ -92062,9 +81552,6 @@ 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 "" -" JHEC M128 O autorevólver M128 Johnson Heavy Equipment Co. M128; todos " -"osoutros não conseguem medir-se. A Johnson Heavy Equipment Co. é " -"umasubsidiária da D & B Minneapolis." #: lang/json/gun_from_json.py msgid "Boomlighter 454" @@ -92078,9 +81565,6 @@ msgid "" "powerful pistol packs a punch with precision, power and flair. Comes with a" " one of a kind integrated flamethrower." msgstr "" -" Boomlighter 454 Feito à mão por mestres armeiros da D & B Minneapolis, " -"esta pistola precisa e potente embala com precisão, potência e talento. " -"Vemcom um tipo de lança-chamas integrado." #: lang/json/gun_from_json.py msgid "gunsword" @@ -92094,9 +81578,6 @@ msgid "" " While chambering big rounds, the barrels are so short it slightly reduces " "outgoing damage." msgstr "" -" Uma longa lâmina afiada, com duas potentes câmaras de 500 S & W " -"Magnumno cabo. Durante as grandes rodadas, os canos são tão curtos que " -"reduzemligeiramente o dano de saída." #: lang/json/gun_from_json.py msgid "gunknife" @@ -92110,9 +81591,6 @@ msgid "" "grip. While chambering big rounds, the barrels are so short it slightly " "reduces outgoing damage." msgstr "" -" gunknife Uma lâmina curta mas afiada, com duas potentes câmaras de 500 " -"S& W Magnum no punho. Durante as grandes rodadas, os canos são tãocurtos" -" que reduzem ligeiramente o dano de saída." #: lang/json/gun_from_json.py msgid "FiveO handcannon" @@ -92126,9 +81604,6 @@ msgid "" "piece of steel proves otherwise. The sheer bulk however does make it quite " "adept at smashing face." msgstr "" -" FiveO handcannon Alguém louco pensou que o .50 BMG pertencia a uma pistola." -" Este pedaço maciço de aço prova o contrário. O grande volume, no entanto, " -"torna-o bastante perito em quebrar o rosto." #: lang/json/gun_from_json.py msgid "M919" @@ -92142,9 +81617,6 @@ msgid "" "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 Fabricado pela fabricante de máquinas Sarah e Suhl de Portland, Maine," -" a metralhadora M919 é a metralhadora 9x19mm mais precisa do mercado. " -"Destinado a uso policial, é equipado com um lançador de granadas integral." #: lang/json/gun_from_json.py msgid "Eagle 1776" @@ -92158,10 +81630,6 @@ msgid "" "submachine gun, made from fine parts assembled in America, including an " "integral grenade launcher. Eagle 1776: From the arsenal of freedom!" msgstr "" -" Eagle 1776 Você vê diante de você uma maravilha da engenharia americana:uma" -" poderosa submetralhadora .44 Magnum, feita de peças finas montadas " -"naAmérica, incluindo um lançador de granadas integrado. Águia 1776: " -"Doarsenal da liberdade!" #: lang/json/gun_from_json.py msgid "L.T. carbine" @@ -92175,9 +81643,6 @@ msgid "" "blanket an area with lightning clouds. While damaging, it is less lethal " "than live ammunition." msgstr "" -" Carabina LT A carabina Lightning Trail foi desenvolvida para a tropa " -"dechoque rapidamente cobrir uma área com nuvens relâmpago. Apesar " -"deprejudicial, é menos letal do que a munição viva." #: lang/json/gun_from_json.py msgid "arc cannon" @@ -92191,9 +81656,6 @@ msgid "" "proximity to each other. Originally manufactured to fry insects, now it’s " "been turned up to fry zombies." msgstr "" -" canhão de arco O canhão de arco dispara raios de arco arqueando-se " -"entrealvos próximos uns dos outros. Originalmente fabricado para fritar " -"insetos, agora ele foi transformado em zumbis fritos." #: lang/json/gun_from_json.py msgid "M1911 DS" @@ -92208,10 +81670,6 @@ msgid "" "laced with lime green details. Now they will know why they fear the night." " Bat hood sold separately." msgstr "" -" M1911 DS O M1911 Darkstalker é um M1911 muito modificado, tem uma " -"bestatotalmente integrada e trilhos adicionados. Profissional com acabamento" -" emébano preto, atado com detalhes em verde limão. Agora eles saberão " -"porquetemem a noite. Bat capuz vendido separadamente." #: lang/json/gun_from_json.py msgid "pipe gun: revolver ammo" @@ -92224,8 +81682,6 @@ msgid "" "A home-made breech-loading gun made from a metal pipe. It can hold a single" " revolver round." msgstr "" -" canhão de canhão: munição de revólver Uma arma de carga de culatra feita " -"emcasa feita de um cano de metal. Pode segurar uma única rodada de revólver." #: lang/json/gun_from_json.py msgid "lever action carbine" @@ -92238,9 +81694,6 @@ msgid "" "A rugged lever-action carbine reminiscent of the Wild West. It holds twelve" " revolver rounds in a tubular internal magazine." msgstr "" -" carabina de alavanca de ação Uma carabina de ação alavanca robusto " -"quelembra o Velho Oeste. Ele possui doze rodadas de revólver em uma " -"revistainterna tubular." #: lang/json/gun_from_json.py msgid "semiautomatic pistol" @@ -92253,9 +81706,6 @@ msgid "" "A typical sidearm for the police, military, and licensed civilians. It " "holds 15 rounds of pistol ammo in a detachable magazine." msgstr "" -" pistola semiautomática Uma típica arma de fogo para a polícia, militares " -"ecivis licenciados. Ele detém 15 rodadas de munição de pistola em umarevista" -" destacável." #: lang/json/gun_from_json.py msgid "holdout pistol" @@ -92268,8 +81718,6 @@ msgid "" "A very small pistol meant to be concealed and fired at close range. It " "holds five rounds of pistol ammo." msgstr "" -" pistola de segurança Uma pistola muito pequena deveria ser escondida " -"edisparada a curta distância. Ele contém cinco rodadas de munição depistola." #: lang/json/gun_from_json.py msgid "submachine gun" @@ -92282,9 +81730,6 @@ msgid "" "A selective fire carbine favored by vehicle crews, special police, and " "criminals. It holds thirty rounds of pistol ammo in a detachable magazine." msgstr "" -" metralhadora Uma carabina de fogo seletiva favorecida por equipes " -"deveículos, policiais especiais e criminosos. Ela segura trinta rodadas " -"demunição de pistola em uma revista destacável." #: lang/json/gun_from_json.py msgid "advanced submachine gun" @@ -92297,9 +81742,6 @@ msgid "" "An exotic submachinegun with a larger ammo capacity and higher rate of fire." " It holds fifty rounds of pistol ammo in a detachable magazine." msgstr "" -" metralhadora avançada Um submachinegun exótico com maior capacidade " -"demunição e maior taxa de fogo. Possui cinquenta rodadas de munição " -"depistola em uma revista destacável." #: lang/json/gun_from_json.py msgid "plinking carbine" @@ -92312,24 +81754,18 @@ msgid "" "A cheap carbine made for target practice or varmint hunting. It uses " "detachable pistol magazines." msgstr "" -" carabina plinking Uma carabina barata feita para a prática de alvo ou " -"caçavarmint. Utiliza revistas de pistola destacáveis." #: lang/json/gun_from_json.py msgid "" "A refined and modernized version of the classic cowboy sidearm. Its " "cylinder holds six powerful revolver rounds." msgstr "" -" Uma versão refinada e modernizada da clássica arma de cowboy. Seu " -"cilindropossui seis poderosas rodadas de revólver." #: lang/json/gun_from_json.py msgid "" "A pump-action single-barreled shotgun. It holds six shells in an internal " "tubular magazine" msgstr "" -" Uma espingarda de cano único de ação de bomba. Possui seis conchas em " -"umcompartimento tubular interno" #: lang/json/gun_from_json.py msgid "combat shotgun" @@ -92342,9 +81778,6 @@ msgid "" "A military issue shotgun that can be fired in short bursts. It holds eight " "shells in an internal magazine." msgstr "" -" espingarda de combate Uma espingarda de emissão militar que pode " -"serdisparada em rajadas curtas. Ela contém oito conchas em uma " -"revistainterna." #: lang/json/gun_from_json.py msgid "semiautomatic carbine" @@ -92357,9 +81790,6 @@ msgid "" "A compact and lightweight carbine favored by hunters and the police. It " "holds ten rounds of light rifle ammo in a detachable magazine." msgstr "" -" carabina semiautomática Uma carabina compacta e leve, preferida " -"peloscaçadores e pela polícia. Possui dez rodadas de munição leve de rifle " -"emuma revista destacável." #: lang/json/gun_from_json.py msgid "assault rifle" @@ -92373,9 +81803,6 @@ msgid "" "commercial knockoffs for the civilian market. It uses detachable magazines " "of various capacities." msgstr "" -" rifle de assalto Um rifle de assalto leve usado por militares dos " -"EUA,também tem centenas de imitações comerciais para o mercado civil. " -"Utilizarevistas destacáveis de várias capacidades." #: lang/json/gun_from_json.py msgid "foreign assault rifle" @@ -92388,9 +81815,6 @@ msgid "" "A cheap but reliable assault rifle imported from overseas. It uses imported" " magazines which are incompatible with standard rifle magazines." msgstr "" -" rifle de assalto estrangeiro Um rifle de assalto barato, mas " -"confiávelimportado do exterior. Ele usa revistas importadas que são " -"incompatíveiscom revistas de rifle padrão." #: lang/json/gun_from_json.py msgid "" @@ -92398,10 +81822,6 @@ msgid "" "Individual Carbine competition to replace the M4 carbine. It failed to " "replace it, but it is widely used by military all around the world." msgstr "" -" O Beretta ARX-160 era um competidor de Fase II na competição " -"CarbineIndividual do Exército dos Estados Unidos para substituir a carabina " -"M4.Não conseguiu substituí-lo, mas é amplamente utilizado por militares " -"emtodo o mundo." #: lang/json/gun_from_json.py msgid "light machine gun" @@ -92415,9 +81835,6 @@ msgid "" "rather than placing accurate shots. It can be reloaded using both drum " "magazines and ammo belts." msgstr "" -" metralhadora leve Uma metralhadora leve portátil construída paraestabelecer" -" fogo supressivo em vez de colocar fotos precisas. Ele pode serrecarregado " -"usando revistas de bateria e cintos de munição." #: lang/json/gun_from_json.py msgid "general purpose machine gun" @@ -92430,9 +81847,6 @@ msgid "" "A hefty machine gun meant to be fired from bipods or mounted to vehicles. " "Unlike the lighter version this can only be reloaded using ammo belts" msgstr "" -" metralhadora de uso geral Uma pesada metralhadora destinada a ser " -"disparadade bipods ou montada em veículos. Ao contrário da versão mais leve," -" isso sópode ser recarregado usando correias de munição" #: lang/json/gun_from_json.py msgid "minigun" @@ -92447,11 +81861,6 @@ msgid "" " rotate to keep from overheating. It holds up to five hundred rounds of " "belted rifle ammo, and requires a UPS to power its electric motor." msgstr "" -" minigun Apesar do nome, esta é uma enorme arma automática destinada a " -"sermontada em veículos; é apenas miniatura comparado a um canhão. Tem " -"seisbarris que giram para evitar o superaquecimento. Ele suporta até " -"quinhentasrodadas de munição de rifle com cinto e requer um no-break para " -"alimentarseu motor elétrico." #: lang/json/gun_from_json.py msgid "bolt action rifle" @@ -92465,9 +81874,6 @@ msgid "" "police and military snipers. It holds five rounds of rifle ammo in an " "internal magazine." msgstr "" -" rifle de ação do parafuso Um rifle de ação de parafuso sólido feito " -"paracaça grande jogo, mas também usado pela polícia e atiradores militares. " -"Possui cinco rodadas de munição de rifle em uma revista interna." #: lang/json/gun_from_json.py msgid "service rifle" @@ -92480,9 +81886,6 @@ msgid "" "An old semiautomatic rifle still used in military drills and parades. It " "holds ten rounds of rifle ammo in an internal magazine." msgstr "" -" rifle de serviço Um velho rifle semiautomático ainda usado em " -"exercíciosmilitares e desfiles. Possui dez rodadas de munição de rifle em " -"uma revistainterna." #: lang/json/gun_from_json.py msgid "battle rifle" @@ -92495,9 +81898,6 @@ msgid "" "A highly modular, selective fire battle rifle used by the US military. It " "uses either compact 20-round or bulkier 30-round detachable magazines." msgstr "" -" rifle de batalha Um rifle de batalha de fogo altamente modular e " -"seletivousado pelos militares dos EUA. Ele usa compactos 20-round ou mais " -"granel30-reservatórios removíveis redondos." #: lang/json/gun_from_json.py msgid "medium machine gun" @@ -92510,9 +81910,6 @@ msgid "" "A medium machine gun used by the US military, meant to be fired from bipods " "or mounted to vehicles. It uses ammo belts of up to 200-rounds." msgstr "" -" metralhadora média Uma metralhadora média usada pelos militares dos " -"EUA,destinada a ser disparada de bipés ou montada em veículos. Utiliza " -"cintosde munição de até 200 voltas." #: lang/json/gun_from_json.py msgid "antimateriel rifle" @@ -92526,9 +81923,6 @@ msgid "" "and enemy combatants. It holds ten rounds of heavy rifle ammo in a " "detachable magazine." msgstr "" -" rifle antimateriel Um poderoso rifle sniper de ação rápida destinado " -"adestruir veículos, equipamentos e combatentes inimigos. Possui dez " -"rodadasde munição pesada de rifle em uma revista destacável." #: lang/json/gun_from_json.py msgid "heavy machine gun" @@ -92541,9 +81935,6 @@ msgid "" "A heavy automatic weapon that must be mounted to a vehicle to fire. It " "holds two hundred rounds of military ammo in a large belt drum." msgstr "" -" metralhadora pesada Uma arma automática pesada que deve ser montada em " -"umveículo para disparar. Possui duzentos cartuchos de munição militar em " -"umgrande tambor." #: lang/json/gun_from_json.py msgid "pipe gun: pistol ammo" @@ -92556,8 +81947,6 @@ msgid "" "A home-made gun. It is simply a pipe attached to a stock, with a hammer to " "strike the single round it holds." msgstr "" -" canhão: pistola munição Uma arma caseira. É simplesmente um tubo preso a " -"umcalço, com um martelo para golpear o único círculo que segura." #: lang/json/gun_from_json.py msgid "survivor's six shooter" @@ -92570,9 +81959,6 @@ msgid "" "A homemade 6 shot revolver. While it's not as good as the pre-Cataclysm " "manufactured weapons, it's a decent piece of work all things considered." msgstr "" -" seis shooter do sobrevivente Um revólver caseiro de 6 tiros. Embora nãoseja" -" tão bom quanto as armas fabricadas antes do cataclismo, é uma peçadecente " -"de trabalho, considerando todas as coisas." #: lang/json/gun_from_json.py msgid "pipe gun: rifle ammo" @@ -92586,9 +81972,6 @@ msgid "" "improvements have been made, such as a tube system for feeding and " "chambering more powerful rifle rounds." msgstr "" -" arma de cano: rifle munição Uma arma caseira. Enquanto ainda um " -"tuboprimitivo e design 2x4, algumas pequenas melhorias foram feitas, como " -"umsistema de tubo para alimentação e câmaras de rifle mais poderosas." #: lang/json/gun_from_json.py msgid "survivor's carbine" @@ -92602,9 +81985,6 @@ msgid "" "detachable magazine and with a shortened barrel, this is one of the better " "homemade weapons." msgstr "" -" carabina de sobrevivente Uma carabina caseira bem projetada usando " -"muniçãode rifle leve. Cabe uma revista destacável de 10 rounds e com um " -"canoencurtado, esta é uma das melhores armas caseiras." #: lang/json/gun_from_json.py msgid "" @@ -92612,9 +81992,6 @@ msgid "" "cataclysm. Especially effective against electronic targets. It charges off" " of UPS power stations." msgstr "" -" Um poderoso eletroolaser desenvolvido por P & D paramilitar não " -"muitoantes do cataclismo. Especialmente eficaz contra alvos eletrônicos. " -"Elecarrega as estações de energia da UPS." #: lang/json/gun_from_json.py msgid "hand-held laser cannon" @@ -92627,8 +82004,6 @@ msgid "" "This is a laser cannon stripped from the barrel of a laser turret; it has " "been modified to use UPS power for firing." msgstr "" -" canhão a laser de mão Este é um canhão a laser retirado do cano de umatorre" -" de laser; Ele foi modificado para usar o poder da UPS para disparar." #: lang/json/gun_from_json.py msgid "laser rifle" @@ -92644,11 +82019,6 @@ msgid "" "that on the ash heap of history, this weapon can still do the same to your " "foes." msgstr "" -" rifle a laser Um rifle de laser de última geração que funciona com " -"energiada UPS. Foi desenvolvido por P & D paramilitar pouco antes " -"docataclismo. O desempenho inicial rivalizava com as armas balísticas " -"maisavançadas do dia. Embora o cataclismo tenha colocado isso na pilha " -"decinzas da história, esta arma ainda pode fazer o mesmo com seus inimigos." #: lang/json/gun_from_json.py msgid "laser pistol" @@ -92661,9 +82031,6 @@ msgid "" "This pistol is larger than most traditional handguns, but displays no recoil" " whatsoever. It runs efficiently on UPS power." msgstr "" -" pistola a laser Esta pistola é maior do que a maioria das " -"pistolastradicionais, mas não exibe qualquer tipo de recuo. Ele funciona de " -"maneiraeficiente com a energia da UPS." #: lang/json/gun_from_json.py msgid "scrap laser pistol" @@ -92676,9 +82043,6 @@ msgid "" "Based on its military and commercial cousin, this laser pistol is little " "more than duct tape and electronics, however it runs on standard UPS power." msgstr "" -" Pistola de laser de sucata Baseado em seu primo militar e comercial, " -"estapistola de laser é pouco mais que fita adesiva e eletrônica, no entanto," -" ele é executado em energia de no-break padrão." #: lang/json/gun_from_json.py msgid "fusion rifle" @@ -92699,11 +82063,6 @@ msgid "" "with polymers to reduce blooming. While powerful, it suffers from short " "range. It accepts hydrogen canisters as ammunition." msgstr "" -" rifle de plasma rifle de fusão Desenvolvido por uma equipe de pesquisa " -"dearmas de ponta em conjunto com DARPA, esta arma de energia alimentada " -"porUPS aquece hidrogênio para criar plasma e envelopá-lo com polímeros " -"parareduzir o florescimento. Embora poderoso, ele sofre de curto alcance. " -"Aceita cartuchos de hidrogênio como munição." #: lang/json/gun_from_json.py msgid "magnum pistol" @@ -92716,8 +82075,6 @@ msgid "" "A powerful semi-automatic pistol which fires revolver rounds. Loads a " "detachable, 7-round magazine." msgstr "" -" pistola magnum Uma poderosa pistola semiautomática que dispara rondas " -"derevólver. Carrega uma revista destacável com 7 voltas." #: lang/json/gun_from_json.py msgid "recoilless rifle" @@ -92730,9 +82087,6 @@ msgid "" "The recoilless rifle is a breech-loading 84 millimeter man-portable, " "reusable, multi-role recoilless rifle commonly used by the US military." msgstr "" -" Rifle sem recuo O rifle sem recuo é um rifle de 84 milímetros de altura, " -"portátil, reutilizável e multi-função, comumente usado pelos militares " -"dosEUA." #: lang/json/gun_from_json.py msgid "Woodbow" @@ -92758,9 +82112,6 @@ msgid "" "gunpowder. While it has an extremely short range, it gives a powerful edge " "in close combat." msgstr "" -" lança de fogo Uma antiga lança chinesa, com um pequeno tubo preso por " -"umacarga de pólvora. Embora tenha um alcance extremamente curto, dá " -"umavantagem poderosa em combate próximo." #: lang/json/gun_from_json.py msgctxt "gun_type_type" @@ -92777,8 +82128,6 @@ msgstr[1] "" msgid "" "This is a pseudo item for monster attacks. If you see this, it's a bug." msgstr "" -" base robogun Este é um pseudo item para ataques de monstros. Se você " -"verisso, é um bug." #: lang/json/gun_from_json.py msgid "integral 12 gauge shotgun" @@ -92839,10 +82188,6 @@ msgid "" "A wooden tool for supporting a javelin, to throw it more effectively than by" " hand." msgstr "" -" integral 12 bitola espingarda integral 50 calibre machinegun integralagulha" -" arma integral 8mm arma de fogo integral laser emissor integralrailgun " -"integral relâmpago integral integral EMP gerador atlatl Umaferramenta de " -"madeira para apoiar um dardo, jogá-lo com mais eficácia doque manualmente." #: lang/json/gun_from_json.py msgid "makeshift crossbow" @@ -92857,11 +82202,6 @@ msgid "" "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 "" -" Besta improvisada Uma besta simples e artesanal do estilo Skane, com " -"umaestaca de madeira que é puxada de baixo para soltar a corda do arco. Não " -"étão poderoso quanto outros desenhos de besta, mas é mais fácil puxar o " -"arcopara trás. Os parafusos disparados dessa arma têm uma boa chance " -"depermanecer intactos para reutilização." #: lang/json/gun_from_json.py msgid "Ichaival" @@ -92875,9 +82215,6 @@ msgid "" "to fire 10 arrows with every pull of the string. It has gold and silver " "ornaments on it." msgstr "" -" Ichaival Esta é uma réplica do arco possuído por Odin, Ichaival, que " -"hárumores de disparar 10 flechas a cada puxada da corda. Tem ornamentos " -"deouro e prata sobre ele." #: lang/json/gun_from_json.py msgid "integral nailgun" @@ -92909,11 +82246,6 @@ msgid "" "aircraft use, but later adapted for armored vehicles. Obviously it needs to" " be mounted on a vehicle to fire." msgstr "" -" Vara de Plasma de Vedação Integral Vara de Plasma de Vórtice Canhão de " -"30mmCanhão automático de corrente, compartimentado em 30x113mm, " -"originalmenteprojetado para uso em aeronaves, mas posteriormente adaptado " -"para veículosblindados. Obviamente, ele precisa ser montado em um veículo " -"para disparar." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "120mm tank gun" @@ -92926,8 +82258,6 @@ msgid "" "A 120mm cannon from a tank. Obviously it needs to be mounted on a vehicle " "to fire." msgstr "" -" Arma de tanque de 120 mm Um canhão de 120 mm de um tanque. Obviamente, " -"eleprecisa ser montado em um veículo para disparar." #: lang/json/gun_from_json.py msgid "120mm autoloading tank gun" @@ -92940,9 +82270,6 @@ msgid "" "A 120mm cannon from a tank, with a 5-round autoloader. Obviously it needs " "to be mounted on a vehicle to fire." msgstr "" -" Pistola de tanque de autoloading de 120mm Um canhão de 120mm de um tanque, " -"com um autoloader de 5 voltas. Obviamente, ele precisa ser montado em " -"umveículo para disparar." #: lang/json/gun_from_json.py msgid "120mm remote weapon system" @@ -92955,9 +82282,6 @@ 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 "" -" Sistema de armas remoto de 120 mm Um canhão de 120 mm com um " -"carregadoravançado, projetado para operar por controle remoto. Obviamente, " -"eleprecisa ser montado em um veículo para disparar." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "155mm howitzer" @@ -92970,9 +82294,6 @@ msgid "" "A 155mm cannon designed for artillery and heavy tanks. Obviously it needs " "to be mounted on a vehicle to fire." msgstr "" -" Canhão de 155mm Um canhão de 155mm projetado para artilharia e " -"tanquespesados. Obviamente, ele precisa ser montado em um veículo para " -"disparar." #: lang/json/gun_from_json.py msgid "Vehicular ATGM Launcher" @@ -92985,9 +82306,6 @@ 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 "" -" Lançador ATGM Veicular Um lançador de mísseis guiados anti-tanque. " -"Emboraaltamente preciso, não é fogo-e-esqueça. Obviamente, ele precisa " -"sermontado em um veículo para disparar." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "biting blob" @@ -93005,14 +82323,6 @@ msgid "" "significantly thicker in order to support its more strenuous movement; " "though it seems pliable enough to pull apart..." msgstr "" -" Uma bolha viva se transformou em uma arma autônoma; destinado a seresticado" -" através de uma moldura como uma forma de barreira. Evoluiu acapacidade de " -"gerar constantemente saliências calcificadas que são entãocontroladas por " -"cordões de tração sinuosos. Estes 'dentes' podem então ser usados para " -"trancar e ferir qualquer coisa que seja infelizo suficiente para estar por " -"perto. A membrana externa também se tornousignificativamente mais espessa " -"para suportar seu movimento maisextenuante; embora pareça suficientemente " -"flexível para se separar ..." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "gel shooter" @@ -93028,12 +82338,6 @@ msgid "" " 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 "" -" atirador de gel Uma gota viva se transformou em uma arma autônoma. " -"Elevasculha o solo em busca de material, que depois é retirado de nutrição. " -"Orestante é então expulso a uma velocidade significativa em direção " -"aqualquer ameaça próxima. A massa amorfa pode ser moldada e fixada ao " -"seutoque, mas a arma em si é inerte sem algo para controlá-la. Parece " -"flexívelo suficiente para separar ..." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "frost lancer" @@ -93050,12 +82354,6 @@ msgid "" "attached at your touch, but the weapon itself is inert without something to " "control it." msgstr "" -" geada lancer Uma bolha viva se transformou em uma arma autônoma. " -"Umaaberração biológica que existe em temperaturas abaixo de zero. Depois " -"defiltrar os nutrientes da água, ela congela o restante em uma " -"incrivelmenteafiada lança de gelo; que, em seguida, lança em ameaças nas " -"proximidades. Amassa amorfa pode ser moldada e fixada ao seu toque, mas a " -"arma em si éinerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "snapping ooze" @@ -93073,13 +82371,6 @@ msgid "" "attached at your touch, but the weapon itself is inert without something to " "control it." msgstr "" -" Uma gosma viva se transformou em uma arma autônoma. Uma " -"mutaçãodesconcertante em uma criatura já desconcertante, esta bolha é " -"envolta emuma espessa camada de pêlo, que serve como uma forma de proteção. " -"Alémdisso, é capaz de projetar fileiras de fragmentos pontiagudos " -"calcificados, imitando a mandíbula de uma criatura mais reconhecível. A " -"massa amorfa podeser moldada e fixada ao seu toque, mas a arma em si é " -"inerte sem algo paracontrolá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "blobsaw" @@ -93097,14 +82388,6 @@ msgid "" "attached at your touch, but the weapon itself is inert without something to " "control it." msgstr "" -" blobsaw Uma bolha viva se transformou em uma arma autônoma; destinado a " -"seresticado através de uma moldura como uma forma de barreira. Enquanto " -"seusprimos mais simples têm um limite para o número de " -"protuberânciasqueratínicas que podem projetar e controlar; essa bolha pode " -"utilizarcentenas desses dentes afiados para destruir qualquer coisa que " -"detectecomo uma ameaça em fitas irreconhecíveis. A massa amorfa pode ser " -"moldada efixada ao seu toque, mas a arma em si é inerte sem algo para " -"controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel puffer" @@ -93121,12 +82404,6 @@ msgid "" "at your touch, but the weapon itself is inert without something to control " "it." msgstr "" -" puffer de combustível Uma bolha viva se transformou em uma arma autônoma. " -"Um comedor bastante exigente, ele se alimenta de produtos " -"químicosencontrados dentro da gasolina. O processo de digestão torna o " -"resultadoincrivelmente viscoso que, quando as ameaças se aproximam, é " -"lançado;Enredando tudo o que acertar. A massa amorfa pode ser moldada e " -"fixada aoseu toque, mas a arma em si é inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "acid puffer" @@ -93141,11 +82418,6 @@ msgid "" "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 "" -" Baiacu ácido Uma bolha viva se transformou em uma arma autônoma. " -"Umalimentador de filtro, o processo de digestão produz subprodutos " -"altamenteácidos; que é então expulso em qualquer inimigo próximo. A massa " -"amorfa pode ser moldada e fixada ao seu toque, mas a arma em si é inerte sem" -" algopara controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "gel spiker" @@ -93162,13 +82434,6 @@ msgid "" "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 "" -" spiker gel Uma bolha viva se transformou em uma arma autônoma. Capaz " -"decalcificar grandes números de fragmentos semelhantes a presas dentro de " -"si. Ele arremessa grupos desses fragmentos junto com uma pequena parte " -"delemesmo. Quando chega ao seu destino, os restos destacados atiram " -"nessesfragmentos em todas as direções, expirando no processo. A massa amorfa" -" podeser moldada e fixada ao seu toque, mas a arma em si é inerte sem algo " -"paracontrolá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "gel spouter" @@ -93183,10 +82448,6 @@ msgid "" " be shaped and attached at your touch, but the weapon itself is inert " "without something to control it." msgstr "" -" spouter de gel Uma bolha viva se transformou em uma arma autônoma. " -"Podesugar a água de um tanque de veículo e forçá-lo a expulsá-lo em um " -"coneamplo. A massa amorfa pode ser moldada e fixada ao seu toque, mas a arma" -" emsi é inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "gel lancer" @@ -93203,12 +82464,6 @@ msgid "" "amorphous mass can be shaped and attached at your touch, but the weapon " "itself is inert without something to control it." msgstr "" -" Lancer gel Uma bolha viva se transformou em uma arma autônoma. " -"Evoluindoincríveis habilidades de percepção, é capaz de localizar e " -"discernirpossíveis ameaças dentro de um grande raio. Quando uma ameaça em " -"potencialé localizada, ela dispara um pequeno projétil calcificado com " -"incrívelvelocidade e precisão. A massa amorfa pode ser moldada e fixada ao " -"seutoque, mas a arma em si é inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "gel razor" @@ -93223,10 +82478,6 @@ msgid "" " 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 "" -" gel razor Uma bolha viva se transformou em uma arma autônoma. Ummetabolismo" -" aprimorado permite calcificar discos grandes e dentados que sãolançados em " -"direção a ameaças próximas. A massa amorfa pode ser moldada efixada ao seu " -"toque, mas a arma em si é inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "shock bulb" @@ -93241,10 +82492,6 @@ msgid "" " The amorphous mass can be shaped and attached at your touch, but the " "weapon itself is inert without something to control it." msgstr "" -" Uma bolha viva se transformou em uma arma autônoma. De maneira chocante, " -"dealguma forma é capaz de projetar eletricidade, que descarrega em " -"qualquerameaça próxima. A massa amorfa pode ser moldada e fixada ao seu " -"toque, masa arma em si é inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "gel puffer" @@ -93261,12 +82508,6 @@ msgid "" "mass can be shaped and attached at your touch, but the weapon itself is " "inert without something to control it." msgstr "" -" Soprador de gel Uma bolha viva se transformou em uma arma autônoma. " -"Umalimentador de filtro, retira toda a água que processa de nutrientes " -"eexpulsa o restante para quaisquer ameaças próximas. O processo " -"dealimentação por filtro também torna o líquido remanescente viscoso, " -"emboratambém se dissipe rapidamente. A massa amorfa pode ser moldada e " -"fixada aoseu toque, mas a arma em si é inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "fire puffer" @@ -93283,12 +82524,6 @@ msgid "" "attached at your touch, but the weapon itself is inert without something to " "control it." msgstr "" -" Baiacu de fogo Uma gota viva se transformou em uma arma autônoma. Umcomedor" -" bastante exigente, ele se alimenta de produtos químicos encontradosdentro " -"da gasolina. O material digerido ainda é altamente inflamável e, quando " -"lançado, também ativa uma glândula de ignição localizada na membranaexterna." -" A massa amorfa pode ser moldada e fixada ao seu toque, mas a armaem si é " -"inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "spark blight" @@ -93305,12 +82540,6 @@ msgid "" "and attached at your touch, but the weapon itself is inert without something" " to control it." msgstr "" -" spark blight Uma bolha viva se transformou em uma arma autônoma. É capaz " -"dearmazenar energia da luz do sol dentro de si na forma de eletricidade. " -"Então, em uma demonstração de força verdadeiramente desconcertante, " -"projetaum fluxo altamente concentrado de eletricidade em direção a " -"possíveisameaças. A massa amorfa pode ser moldada e fixada ao seu toque, mas" -" a armaem si é inerte sem algo para controlá-la." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "diamond lance" @@ -93329,14 +82558,6 @@ msgid "" "specialized chassis in order to be brought to bear on its unfortunate " "targets." msgstr "" -" Lança de diamante Uma arma que é tão mortal quanto deslumbrante. A matrizde" -" diamante no centro desta arma atua como um catalisador; mudandorapidamente " -"materiais pesados de carbono em uma substância cristalina que équase igual a" -" diamante em dureza. A substância decai rapidamente quandoseparada do " -"catalisador; Assim, um pedaço pré-formado de carbono é colocadoem contato " -"com a matriz, imediatamente cristalizado e lançado com a mesmarapidez. O " -"lançador requer um chassi especializado para ser usado em seusalvos " -"infelizes." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "diamond nova" @@ -93356,15 +82577,6 @@ msgid "" "projectile undergoes explosive decomposition; shattering into a brilliant " "burst of diamond fragments." msgstr "" -" diamante nova Uma arma que é tão mortal quanto deslumbrante. A matriz " -"dediamante no centro desta arma atua como um catalisador; mudando " -"rapidamentemateriais pesados de carbono em uma substância cristalina que é " -"quase iguala diamante em dureza. A substância decompõe-se rapidamente quando" -" separadado catalisador e, em tamanhos tão grandes quanto o projétil usado, " -"tambémdecai rapidamente quando em contato com outro material. Assim, o " -"projétil émantido e lançado pelo uso de ar pressurizado de uma pedra de " -"vórtice. Aoatingir seu alvo, o projétil sofre uma decomposição explosiva; " -"quebrando emuma explosão brilhante de fragmentos de diamante." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex accelerator" @@ -93377,9 +82589,6 @@ 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 "" -" acelerador de vórtice Esta arma usa rajadas de ar poderosas para " -"lançarfragmentos pontiagudos em seu alvo em alta velocidade. Você precisará " -"dealgum tipo de plataforma para montá-lo." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex bolter" @@ -93392,9 +82601,6 @@ msgid "" "This weapon uses powerful bursts of air to launch bolts at its target at " "high speed. You'll need some form of platform to mount it on." msgstr "" -" bolinha de vórtice Esta arma usa rajadas de ar poderosas para " -"lançarparafusos em seu alvo em alta velocidade. Você precisará de algum tipo" -" deplataforma para montá-lo." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex cannon" @@ -93409,11 +82615,6 @@ msgid "" "power this gun. While powerful for its size, you'll need some form of " "platform to mount it on." msgstr "" -" canhão de vórtice Essencialmente, uma grande arma pneumática feita " -"paraarremessar trilhos de metal afiados. Em vez de um sistema mecânico, " -"vocêconseguiu aproveitar o vórtice para alimentar essa arma. Embora " -"poderosopara seu tamanho, você precisará de alguma forma de plataforma para " -"montá-lo." #: lang/json/gun_from_json.py lang/json/vehicle_part_from_json.py msgid "vortex rifle" @@ -93426,9 +82627,6 @@ msgid "" "This weapon uses powerful bursts of air to launch small projectiles at its " "target at high speed. You'll need some form of platform to mount it on." msgstr "" -" rifle de vórtice Esta arma usa rajadas de ar poderosas para lançar " -"pequenosprojéteis em seu alvo em alta velocidade. Você precisará de algum " -"tipo deplataforma para montá-lo." #: lang/json/gun_from_json.py msgid "storm bolter" @@ -93442,9 +82640,6 @@ msgid "" "bolts to be launched accurately and in quick succession. It requires a " "support of some sort in order to be operated." msgstr "" -" boltador de tempestade Este parafuso pneumático foi bastante aprimorado, " -"permitindo que vários parafusos sejam lançados com precisão e em " -"rápidasucessão. Requer algum tipo de apoio para ser operado." #: lang/json/gun_from_json.py msgid "slingshot cannon" @@ -93459,11 +82654,6 @@ msgid "" "powerful and surprisingly accurate, but far too large to be used without " "some sort of stable platform." msgstr "" -" canhão de estilingue Essencialmente vários cordões compridos sustentadospor" -" dois lados longos e reforçados e um mecanismo preso a uma manivela " -"paradesenhá-lo e dispará-lo. É enganosamente poderoso e " -"surpreendentementepreciso, mas grande demais para ser usado sem algum tipo " -"de plataformaestável." #: lang/json/gun_from_json.py msgid "lacerator" @@ -93477,9 +82667,6 @@ msgid "" "power from a vehicle's engines, and thus must be mounted on such in order to" " be operated." msgstr "" -" lacerator Esta arma lança discos de metal serrilhados em inimigos próximos." -" Ele extrai seu poder dos motores de um veículo e, portanto, deve sermontado" -" para poder ser operado." #: lang/json/gun_from_json.py msgid "rotary cannon" @@ -93495,11 +82682,6 @@ msgid "" "unwieldy, and it must be mounted on a support structure in order to be " "fired." msgstr "" -" canhão rotativo Esta arma temível ostenta 3 barris em uma " -"configuraçãocíclica. Um mecanismo especializado carrega as rodadas de outra " -"maneiraproblemáticas; permitindo que ele seja disparado em rápida sucessão. " -"Noentanto, isso torna incrivelmente pesado, e deve ser montado em " -"umaestrutura de suporte para ser disparado." #: lang/json/gun_from_json.py msgid "laser cannon" @@ -93513,10 +82695,6 @@ msgid "" " increased power requirements require a significant power source and the " "size of the firing mechanism also requires support." msgstr "" -" canhão a laser Este canhão laser aprimorado sacrifica a eficiência para " -"poder destrutivo. Os requisitos de potência aumentados requerem uma fontede " -"energia significativa e o tamanho do mecanismo de disparo também " -"requersuporte." #: lang/json/gun_from_json.py msgid "pulse laser" @@ -93530,10 +82708,6 @@ msgid "" "The increased power requirements require a significant power source and the " "firing mechanism also requires a specialized chassis." msgstr "" -" laser de pulso A capacidade de dano aumentado e as rajadas rápidas " -"fazemdesta uma arma poderosa. Os requisitos de potência aumentados requerem " -"umafonte de energia significativa e o mecanismo de disparo também requer " -"umchassi especializado." #: lang/json/gun_from_json.py msgid "turbolaser cannon" @@ -93548,11 +82722,6 @@ msgid "" " also requires the services of a specialized chassis, and one must be wary " "of the prodigious power needs of such a weapon." msgstr "" -" canhão turbolaser Com um emissor e condensador aumentados, este " -"lasermontado é capaz de sobreaquecer a maioria dos materiais até ao ponto " -"deexplodir. O mecanismo de disparo também requer os serviços de um " -"chassiespecializado, e é preciso ter cuidado com as necessidades de " -"energiaprodigiosas de tal arma." #: lang/json/gun_from_json.py msgid "perforator" @@ -93568,11 +82737,6 @@ msgid "" "due to its small size. It must be mounted on a specialized chassis in order" " to be fired." msgstr "" -" perfurador Uma bobina com circuitos eletromagnéticos aprimorados para " -"poderimpulsionar um projétil metálico em alta velocidade e com grande " -"precisão. Capaz de perfurar a armadura com pouco problema, embora o próprio " -"projétilnão tenha danos devido ao seu pequeno tamanho. Deve ser montado em " -"umchassi especializado para ser acionado." #: lang/json/gun_from_json.py msgid "needler" @@ -93587,11 +82751,6 @@ msgid "" "unfortunate targets. However, these features render it incredibly unwieldy," " and it must be mounted on a supporting frame in order to be fired." msgstr "" -" Needler Esta pistola de pregos aprimorada possui um mecanismo de " -"disparoespecial que é acionado para disparar até 5 unhas de uma só vez" -";Certifique-se de deixar cair o martelo em seus alvos infelizes. No entanto," -" esses recursos o tornam incrivelmente pesado e devem ser montados em " -"umaestrutura de suporte para serem disparados." #: lang/json/gun_from_json.py msgid "hypervelocity driver" @@ -93608,13 +82767,6 @@ msgid "" "limited by its prodigious power requirements however, and its large size " "necessitates an appropriately-equipped vehicle." msgstr "" -" driver de hipervelocidade Um lançador de trilho de aço único, " -"eletricamenteimpulsionado. As melhorias poderosas e francamente perigosas " -"feitas aossistemas de potência desta arma são capazes de imbuir uma carga " -"maciça emum único trilho; tanto que muitas vezes se fragmenta em fragmentos " -"mortaisno impacto. Suas capacidades são limitadas por seus requisitos de " -"potênciaprodigiosos, e seu tamanho grande requer um veículo adequadamente " -"equipado." #: lang/json/gun_from_json.py msgid "ripper" @@ -93628,9 +82780,6 @@ msgid "" " 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 "" -" Ripper Esta arma ameaçadora lança rapidamente discos com lâminas que " -"rasgamos inimigos com efeito devastador. Ele extrai seu poder dos motores de" -" umveículo e, portanto, deve ser montado para poder ser operado." #: lang/json/gun_from_json.py msgid "rotary speargun" @@ -93644,10 +82793,6 @@ msgid "" "allowing projectiles to be rapidly loaded and fired. However, the weight " "requires an external support measure." msgstr "" -" arma de fogo rotativa Este arpão pneumático apresenta um cano " -"giratórioatrás de seu lançador, permitindo que os projéteis sejam " -"rapidamentecarregados e disparados. No entanto, o peso requer uma medida de " -"apoioexterno." #: lang/json/gun_from_json.py msgid "scorpion ballista" @@ -93661,10 +82806,6 @@ msgid "" "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 "" -" ballista escorpião Uma enorme besta operada por tensão. A manivela " -"permitedesenhar sem a necessidade de trabalho pesado. É muito grande para " -"serusado a pé e, portanto, precisa ser montado em um veículo para ser " -"operado." #: lang/json/gun_from_json.py msgid "splintergun" @@ -93679,11 +82820,6 @@ msgid "" "turn unarmored targets into pulp. It must be mounted on a specialized " "chassis in order to be fired." msgstr "" -" splintergun Um carvoeiro altamente modificado que dispara " -"minúsculosfragmentos de metal a altas velocidades com extrema rapidez. A " -"barragemresultante é altamente imprecisa, mas pode transformar alvos não " -"armados emcelulose. Deve ser montado em um chassi especializado para ser " -"acionado." #: lang/json/gun_from_json.py msgid "harpoon gun" @@ -93696,9 +82832,6 @@ 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 "" -" Arpão Arpão Armadura operada por tensão. Uma manivela permite que sedesenhe" -" as cordas rapidamente, mas é muito difícil de manejar sem algumtipo de " -"apoio." #: lang/json/gun_from_json.py msgid "Tesla cannon" @@ -93712,10 +82845,6 @@ msgid "" "bolts that arc to nearby enemies. It must be attached to a large power " "source, but it allows for much more powerful bolts." msgstr "" -" Tesla cannon Esta alteração do Chain Lightning biônico dispara " -"relâmpagosartificiais que atingem os inimigos próximos. Ele deve ser " -"conectado a umagrande fonte de energia, mas permite parafusos muito mais " -"potentes." #: lang/json/gun_from_json.py msgid "avalanche rifle" @@ -93730,10 +82859,6 @@ msgid "" "incredibly unwieldy, and it must be mounted on a supporting platform in " "order to be fired." msgstr "" -" rifle de avalanche Este rifle de assalto pneumático foi bastanteaprimorado," -" disparando projéteis mais rapidamente e com maior velocidade. No entanto, " -"esses recursos o tornam incrivelmente pesado e devem sermontados em uma " -"plataforma de suporte para serem disparados." #: lang/json/gun_from_json.py msgid "Model 10 revolver" @@ -93745,8 +82870,6 @@ msgstr[1] "" msgid "" "A six-shot revolver. It has a swing-out cylinder for ease of reloading." msgstr "" -" Modelo 10 revólver Um revólver de seis tiros. Tem um cilindro de " -"aberturapara facilitar o recarregamento." #: lang/json/gun_from_json.py msgid "M6 Aircrew Survival Weapon" @@ -93761,11 +82884,6 @@ msgid "" "military aircraft pilots who might be stranded after a crash, later produced" " commercially by various companies." msgstr "" -" M6 Aircrew Survival Weapon Um rifle de combinação leve, combinando um " -"canode aro .22 com canhão shotgun .410 e projetado para dobrar " -"paraarmazenamento compacto. Produzido por pilotos de aviões militares que " -"podemficar presos após um acidente, mais tarde produzidos comercialmente " -"porvárias empresas." #: lang/json/gun_from_json.py msgid "Colt Single Action Army" @@ -93780,11 +82898,6 @@ msgid "" "famous by westerns, modern reproductions are still made for Cowboy Action " "Shooting, and some deem them the greatest gun ever made." msgstr "" -" Colt Single Action Army Também conhecido como Peacemaker e M1873, o " -"ColtSingle Action Army é um dos primeiros revólveres a usar um moderno " -"cartuchoindependente. Tornada famosa por westerns, reproduções modernas " -"ainda sãofeitas para o Cowboy Action Shooting, e alguns consideram-nos a " -"maior armajá feita." #: lang/json/gun_from_json.py msgid "Colt Lightning .45" @@ -93798,10 +82911,6 @@ msgid "" ".44-40, modern versions most commonly use .45 Long Colt, complementing the " "Single Action Army as a Cowboy Action Shooting firearm." msgstr "" -" Colt Lightning .45 Uma reprodução moderna de uma espingarda de bomba Colt. " -"Originalmente compartimentada em .44-40, as versões modernas mais " -"comumenteusam .45 Long Colt, complementando o Exército de Ação Única como " -"uma armade tiro de tiro de Cowboy." #: lang/json/gun_from_json.py msgid "Bond Arms Derringer" @@ -93815,9 +82924,6 @@ msgid "" " commonly chambered for .45 Long Colt, with chambers long enough to accept " ".410 shotgun shells." msgstr "" -" Bond Arms Derringer O Bond Arms Derringer é uma série de pistolas " -"compactasde cano duplo. Mais comumente compartimentada para o Long Colt, 45," -" comcâmaras compridas o bastante para aceitar 400 cápsulas de espingarda." #: lang/json/gun_from_json.py msgid ".410 youth shotgun" @@ -93830,9 +82936,6 @@ msgid "" "An old break-action shotgun, chambered in .410 bore. Designed as a lower-" "recoil alternative to 12 gauge, it is light and simple in manufacture." msgstr "" -" .410 espingarda juvenil Uma antiga espingarda de acção rompida, " -"compartimentada em .410. Projetado como uma alternativa de menor recuo paraa" -" bitola 12, é leve e de fabricação simples." #: lang/json/gun_from_json.py msgid ".410 pipe shotgun" @@ -93845,9 +82948,6 @@ msgid "" "A home-made shotgun, in .410 bore. It is simply a pipe attached to a stock," " with a hammer to strike the single round it holds." msgstr "" -" .410 espingarda cano Uma espingarda caseira, em .410 bore. É simplesmenteum" -" tubo preso a um calço, com um martelo para golpear o único círculo " -"quesegura." #: lang/json/gun_from_json.py msgid "AF2011A1 .38 Super" @@ -93860,8 +82960,6 @@ msgid "" "A double-barrel semi-automatic pistol. It looks like two M1911s melded " "together." msgstr "" -" AF2011A1 .38 Super Uma pistola semi-automática de cano duplo. Parece " -"quedois M1911s se fundiram." #: lang/json/gun_from_json.py msgid "M1991A1 .38 Super" @@ -93874,8 +82972,6 @@ msgid "" "A modern M1911, chambered for the .38 Super cartridge. It can achieve good " "accuracy." msgstr "" -" M1991A1 .38 Super Um M1911 moderno, compartimentado para o cartucho " -"Super38. Pode conseguir uma boa precisão." #: lang/json/gun_from_json.py msgid "Taurus Raging Judge Magnum" @@ -93889,9 +82985,6 @@ msgid "" "Casull. It has the ability to fire .410 shotshells and .45 Long Colt " "cartridges." msgstr "" -" Taurus Raging Judge Magnum O Taurus Raging Juiz Magnum é um revólver de " -"5tiros que está no Casull .454. Ele tem a capacidade de disparar tiros " -"deshot.410 e cartuchos Long Colt .45." #: lang/json/gunmod_from_json.py msgid "barrel extension" @@ -93904,13 +82997,10 @@ msgid "" "A longer barrel increases the muzzle velocity of a firearm, contributing to " "both accuracy and damage but reduces portability and slows aiming." msgstr "" -" extensão do cano Um cano mais longo aumenta a velocidade do cano de umaarma" -" de fogo, contribuindo para a precisão e o dano, mas reduz aportabilidade e " -"diminui a pontaria." #: lang/json/gunmod_from_json.py msgid "barrel" -msgstr "barril" +msgstr "" #: lang/json/gunmod_from_json.py msgid "rifled barrel" @@ -93924,9 +83014,6 @@ msgid "" "when firing slugs. The rifling makes the gun less suitable for shot, " "however." msgstr "" -" cano rifled Rifling um cano de espingarda é feito principalmente " -"paramelhorar sua precisão ao disparar lesmas. O rifling torna a arma " -"menosadequada para tiro, no entanto." #: lang/json/gunmod_from_json.py msgid "rapid blowback" @@ -93939,13 +83026,10 @@ msgid "" "An improved blowback mechanism makes your firearm's automatic fire faster, " "at the cost of reduced accuracy and increased noise." msgstr "" -" blowback rápido Um mecanismo de blowback aprimorado torna o fogo " -"automáticoda sua arma de fogo mais rápido, com o custo de menor precisão e " -"maiorruído." #: lang/json/gunmod_from_json.py msgid "mechanism" -msgstr "mecanismo" +msgstr "" #: lang/json/gunmod_from_json.py msgid "auto-fire mechanism" @@ -93959,9 +83043,6 @@ msgid "" "burst size of three rounds. However it reduces accuracy and increases " "noise." msgstr "" -" mecanismo de auto-disparo Um mecanismo simples que converte uma pistola " -"emuma arma de fogo seletiva com um tamanho de rajada de três voltas. " -"Noentanto, reduz a precisão e aumenta o ruído." #: lang/json/gunmod_from_json.py msgid "handmade auto-fire mechanism" @@ -93974,8 +83055,6 @@ msgid "" "Mechanism that allows your CW-24 rifle to fire in fully automatic mode. It " "is handmade." msgstr "" -" mecanismo de auto-fogo artesanal Mecanismo que permite que seu rifle CW-" -"24dispare no modo totalmente automático. É feito à mão." #: lang/json/gunmod_from_json.py msgid ".22 caliber conversion kit" @@ -93989,14 +83068,10 @@ msgid "" "or .223 firearm converts it to a .22 firearm. The conversion results in a " "slight reduction to accuracy." msgstr "" -" Kit de conversão de calibre .22 A substituição de várias peças-chave de " -"umaarma de fogo de 9x19 mm, 0,38, 0,40, 5,7 mm, 4,6 mm, 7,62 x 39 mm ou " -"0,227converte-a para uma arma de fogo .22. A conversão resulta em uma " -"pequenaredução na precisão." #: lang/json/gunmod_from_json.py msgid "bore" -msgstr "furo" +msgstr "" #: lang/json/gunmod_from_json.py msgid ".223 caliber conversion kit" @@ -94010,10 +83085,6 @@ msgid "" " rifle to the popular, accurate, and lighter .223 caliber. The conversion " "results in slight reductions to both accuracy and ammo capacity." msgstr "" -" .223 kit de conversão de calibre Este kit é usado para converter um " -"rifleshotgun, 5.45x39mm, 7.62x39mm, .30-06 ou .308 no popular, preciso e " -"maisleve calibre .223. A conversão resulta em pequenas reduções tanto " -"naprecisão quanto na capacidade de munição." #: lang/json/gunmod_from_json.py msgid ".308 caliber conversion kit" @@ -94027,10 +83098,6 @@ msgid "" "the popular and powerful .308 caliber. The conversion results in reduced " "ammo capacity and a slight reduction to accuracy." msgstr "" -" .30 kit de conversão de calibre Este kit é usado para converter um " -"rifleshotgun ou 7.62x39mm, .223 ou .30-06 no popular e poderoso calibre " -".308. Aconversão resulta em capacidade reduzida de munição e uma ligeira " -"reduçãona precisão." #: lang/json/gunmod_from_json.py msgid ".45 caliber conversion kit" @@ -94044,9 +83111,6 @@ msgid "" " to a .45 firearm. The conversion results in a slight reduction to " "accuracy." msgstr "" -" Kit de conversão de calibre .45 A substituição de várias peças-chave de " -"umaarma de fogo 9x19mm, .38, .40 ou .44 converte-a em uma arma de fogo .45. " -"Aconversão resulta em uma pequena redução na precisão." #: lang/json/gunmod_from_json.py msgid "4.6mm caliber conversion kit" @@ -94060,10 +83124,6 @@ msgid "" "or .38 firearms to their proprietary 4.6x30mm, a round designed for accuracy" " and armor penetration." msgstr "" -" Kit de conversão de calibre de 4,6 mm Um kit de conversão produzido " -"pelaHeckler and Koch, usado para converter armas de fogo .22, 9x19mm ou .38 " -"emsua própria 4.6x30mm, uma rodada projetada para precisão e penetração " -"deblindagem." #: lang/json/gunmod_from_json.py msgid "5.7mm caliber conversion kit" @@ -94077,10 +83137,6 @@ msgid "" " firearms to their proprietary 5.7x28mm, a round designed for accuracy and " "armor penetration." msgstr "" -" Kit de conversão de calibre de 5,7 mm Um kit de conversão produzido pela " -"FNHerstal, usado para converter armas de fogo .22, 9x19mm ou .38 em " -"seuspróprios 5.7x28mm, uma rodada projetada para precisão e penetração " -"deblindagem." #: lang/json/gunmod_from_json.py msgid "9x19mm caliber conversion kit" @@ -94094,9 +83150,6 @@ msgid "" "converts it to a 9x19mm firearm. The conversion results in a slight " "reduction to accuracy." msgstr "" -" Kit de conversão de calibre 9x19mm A substituição de várias peças-chave " -"deuma arma de fogo 9x18mm, .38, .40, .44 ou .45 converte-a em uma arma " -"defogo 9x19mm. A conversão resulta em uma pequena redução na precisão." #: lang/json/gunmod_from_json.py msgid "belt feed adapter" @@ -94109,13 +83162,10 @@ msgid "" "A kit providing the necessary parts for permanently converting a firearm " "from magazine to belt-feed. Guaranteed to void your warranty." msgstr "" -" Adaptador de alimentação de correia Um kit que fornece as peças " -"necessáriaspara converter permanentemente uma arma de fogo de revista em " -"correia dealimentação. Garantido para anular sua garantia." #: lang/json/gunmod_from_json.py msgid "magazine" -msgstr "revista" +msgstr "" #: lang/json/gunmod_from_json.py msgid "tuned mechanism" @@ -94128,8 +83178,6 @@ msgid "" "A set of finely tuned internal components which increase the precision and " "reliably of a firearm." msgstr "" -" mecanismo sintonizado Conjunto de componentes internos finamente " -"ajustadosque aumentam a precisão e confiabilidade de uma arma de fogo." #: lang/json/gunmod_from_json.py msgid "arrow rest" @@ -94142,17 +83190,15 @@ msgid "" "A small extension above the grip which an arrow rests upon while being " "aimed. Improves accuracy with no drawbacks." msgstr "" -" resto de seta Uma pequena extensão acima do aperto que uma seta repousa " -"aoser visada. Melhora a precisão sem inconvenientes." #: lang/json/gunmod_from_json.py msgid "accessories" -msgstr "acessórios" +msgstr "" #: lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "bow" -msgstr "arco" +msgstr "" #: lang/json/gunmod_from_json.py msgid "bow stabilizer" @@ -94165,13 +83211,10 @@ msgid "" "A counterweight placed forward of the bow's grip allows for greater " "accuracy. Aside from increased weight and size, there are no drawbacks." msgstr "" -" estabilizador de proa Um contrapeso colocado à frente do punho da " -"proapermite maior precisão. Além do aumento de peso e tamanho, não " -"háinconvenientes." #: lang/json/gunmod_from_json.py msgid "stabilizer" -msgstr "estabilizador" +msgstr "" #: lang/json/gunmod_from_json.py msgid "bow stabilizer system" @@ -94185,10 +83228,6 @@ msgid "" "mount on modern bows. Takes extra time to set up when wielding, but doesn't" " take much extra space." msgstr "" -" Sistema estabilizador de proa Um conjunto de três hastes estabilizadoras " -"eamortecidas com um suporte de molas para montagem em arcos modernos. " -"Demoratempo extra para configurar quando empunhando, mas não ocupa muito " -"espaçoextra." #: lang/json/gunmod_from_json.py msgid "bow dampening kit" @@ -94202,19 +83241,15 @@ msgid "" "designed to stick on the limbs and string of a bow to absorb vibrations. " "This substantially reduces noise during firing and can help with accuracy." msgstr "" -" kit de amortecimento de proa Um conjunto de almofadas simples e tiras " -"depele ou borracha com adesivo, projetadas para grudar nos membros e " -"cordõesde um arco para absorver as vibrações. Isso reduz substancialmente o " -"ruídodurante o disparo e pode ajudar na precisão." #: lang/json/gunmod_from_json.py msgid "dampening" -msgstr "amortecimento" +msgstr "" #: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py src/item.cpp msgctxt "gun_type_type" msgid "crossbow" -msgstr "besta" +msgstr "" #: lang/json/gunmod_from_json.py msgid "belt clip" @@ -94273,9 +83308,6 @@ msgid "" "increase in noise, but also greatly improves the ease with which the weapon " "can be carried and wielded." msgstr "" -" cano encurtado Um cano encurtado resulta em precisão marcadamente reduzidae" -" um pequeno aumento no ruído, mas também melhora muito a facilidade comque a" -" arma pode ser transportada e empunhada." #: lang/json/gunmod_from_json.py msgid "upstest" @@ -94288,8 +83320,6 @@ msgid "" "Testmod for UPS drain on mods, this should never spawn, if you see this, " "it's a bug. 50 UPS drain." msgstr "" -" upstest Testmod for UPS dreno em mods, isso nunca deve aparecer, se vocêver" -" isso, é um bug. 50 drenagem da UPS." #: lang/json/gunmod_from_json.py msgid "LW barrel extension" @@ -94302,9 +83332,6 @@ msgid "" "A Leadworks built in longer barrel increases the muzzle velocity of a " "firearm, contributing to both accuracy and damage." msgstr "" -" Extensão de barril de LW Um Leadworks construído em barril mais " -"longoaumenta a velocidade da boca de uma arma de fogo, contribuindo para " -"aprecisão e o dano." #: lang/json/gunmod_from_json.py msgid "LW shortened barrel" @@ -94318,9 +83345,6 @@ msgid "" " minor increase in noise, but also greatly improves the ease with which the " "weapon can be carried and wielded." msgstr "" -" LW barril encurtado Um Leadworks construído em cano encurtado resulta " -"emalcance reduzido de armas e um pequeno aumento no ruído, mas também " -"melhoramuito a facilidade com que a arma pode ser transportada e empunhada." #: lang/json/gunmod_from_json.py msgid "LW heavy duty barrel" @@ -94333,9 +83357,6 @@ msgid "" "A Leadworks built in heavy duty barrel especially designed for prolonged " "shooting. Increases damage output and weapon range." msgstr "" -" Cilindro para serviço pesado LW A Leadworks construído em barril de " -"serviçopesado especialmente projetado para disparo prolongado. Aumenta a " -"produçãode dano e o alcance das armas." #: lang/json/gunmod_from_json.py msgid "Power shot" @@ -94351,7 +83372,7 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "underbarrel" -msgstr "underbarrel" +msgstr "" #: lang/json/gunmod_from_json.py msgid "brass catcher" @@ -94364,8 +83385,6 @@ msgid "" "A bag that hangs off the side of your gun and catches ejected casings so you" " don't have to pick them up." msgstr "" -" Um saco que pendura do lado da sua arma e pega as carcaças ejetadas paraque" -" você não tenha que pegá-las." #: lang/json/gunmod_from_json.py msgid "lightweight replacement furniture" @@ -94378,13 +83397,10 @@ msgid "" "A set of lightweight composite grips and furniture that reduces a firearm's " "weight, and as a consequence, its handling and melee damage." msgstr "" -" mobília de substituição leve Um conjunto de alças e móveis leves " -"compostosque reduzem o peso de uma arma de fogo e, como conseqüência, o seu " -"manuseioe danos corpo a corpo." #: lang/json/gunmod_from_json.py msgid "grip" -msgstr "firmeza" +msgstr "" #: lang/json/gunmod_from_json.py msgid "ergonomic grip" @@ -94396,8 +83412,6 @@ msgstr[1] "" msgid "" "A set of ergonomic replacement furniture for a firearm improving handling." msgstr "" -" Pega ergonómica Um conjunto de mobiliário de substituição ergonómico " -"parauma arma de fogo que melhora o manuseamento." #: lang/json/gunmod_from_json.py msgid "beam scatterer" @@ -94411,13 +83425,10 @@ msgid "" "beam into several lower powered beams. This increases point-blank damage, " "but greatly reduces range." msgstr "" -" Dispersor de feixe Um conjunto de ótica feito para caber em armas de laser," -" que difratará o feixe de laser em vários feixes de menor potência. " -"Issoaumenta o dano em pontos, mas reduz bastante o alcance." #: lang/json/gunmod_from_json.py msgid "lens" -msgstr "lente" +msgstr "" #: lang/json/gunmod_from_json.py msgid "electrolaser conversion" @@ -94431,10 +83442,6 @@ msgid "" "into a less-lethal electrolaser capable of stunning targets, at the cost of " "a decreased damage output and increased power consumption." msgstr "" -" conversão eletrolaser Um conjunto de eletrônica e óptica de altatecnologia." -" Estes convertem uma pistola de laser num electrolaser menosletal capaz de " -"atordoar os alvos, ao custo de uma menor perda de dano emaior consumo de " -"energia." #: lang/json/gunmod_from_json.py msgid "high density capacitor" @@ -94447,13 +83454,10 @@ msgid "" "A capacitor with a higher energy density increases range and damage; at the" " cost of a markedly increased power consumption." msgstr "" -" capacitor de alta densidade Um capacitor com maior densidade de " -"energiaaumenta o alcance e o dano; à custa de um consumo de energia " -"acentuadamenteaumentado." #: lang/json/gunmod_from_json.py msgid "emitter" -msgstr "emissor" +msgstr "" #: lang/json/gunmod_from_json.py msgid "Leadworks magazine adapter" @@ -94466,9 +83470,6 @@ msgid "" "A bootleg adapter for permanently converting a firearm to accept proprietary" " Leadworks magazines. Guaranteed to void your warranty." msgstr "" -" Adaptador de revista Leadworks Um adaptador bootleg para " -"converterpermanentemente uma arma de fogo para aceitar magazines " -"proprietários daLeadworks. Garantido para anular sua garantia." #: lang/json/gunmod_from_json.py msgid "match trigger" @@ -94481,8 +83482,6 @@ msgid "" "A precision weighted trigger assembly that slightly improves a firearm's " "accuracy." msgstr "" -" trigger de correspondência Um conjunto de trigger ponderado de precisão " -"quemelhora levemente a precisão de uma arma de fogo." #: lang/json/gunmod_from_json.py msgid "drop-in auto sear" @@ -94498,17 +83497,11 @@ msgid "" "good as actual full-auto parts, so precision and reliability suffer " "slightly." msgstr "" -" drop-in auto sear Esta é uma peça de metal vagamente em forma de'U'" -" com uma paleta vagamente em forma de 'T' em umalfinete. Uma vez " -"enfiado no receptor inferior de um AR-15, o rifle setornará capaz de fogo " -"seletivo. A superfície sear artesanal não é tão boaquanto as peças " -"totalmente automáticas, portanto a precisão e aconfiabilidade sofrem um " -"pouco." #: lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "ar15" -msgstr "ar15" +msgstr "" #: lang/json/gunmod_from_json.py msgid "lightning link" @@ -94524,12 +83517,6 @@ msgid "" "full-auto is enabled. Reliability and precision suffer greatly due to " "questionable craftsmanship and lack of unobtainium SP-1 parts." msgstr "" -" Elo Relâmpago Originalmente concebido para o Colt SP-1, esta 'reprodução' " -"destina-se a converter um AR-15 num rifle totalmenteautomático. Depois que " -"as modificações necessárias forem feitas e o linkestiver no lugar, semi- " -"auto será desabilitado e full-auto será habilitado. Confiabilidade e " -"precisão sofrem muito devido ao artesanato questionável eà falta de partes " -"unobtainium SP-1." #: lang/json/gunmod_from_json.py msgid "firearm waterproofing" @@ -94542,9 +83529,6 @@ msgid "" "A set of seals and gaskets that will allow a firearm to operate reliably " "while submerged in water." msgstr "" -" impermeabilização de armas de fogo Um conjunto de vedações e gaxetas " -"quepermitirá que uma arma de fogo funcione de maneira confiável " -"enquantoestiver submersa na água." #: lang/json/gunmod_from_json.py msgid "replaceable furniture kit" @@ -94668,13 +83652,10 @@ msgid "" "A ported barrel redirects exhaust gases to compensate for muzzle climb, " "improves recoil but increases noise and reduces accuracy slightly." msgstr "" -" barril portado Um barril portado redireciona os gases de escape " -"paracompensar a subida da boca, melhora o recuo, mas aumenta o ruído e " -"reduzligeiramente a precisão." #: lang/json/gunmod_from_json.py msgid "muzzle" -msgstr "focinho" +msgstr "" #: lang/json/gunmod_from_json.py msgid "muzzle brake" @@ -94687,9 +83668,6 @@ msgid "" "A muzzle brake redirects exhaust gases to compensate for muzzle climb, " "improving recoil but increasing bulk, noise, and reducing accuracy slightly." msgstr "" -" freio de boca O freio de boca direciona os gases de escape para compensar " -"asubida da boca, melhorando o recuo, mas aumentando o volume, o ruído " -"ereduzindo a precisão levemente." #: lang/json/gunmod_from_json.py msgid "homemade suppressor" @@ -94755,9 +83733,6 @@ msgid "" "report of a firearm. This RK6S34 Mustela is a rather advanced version " "integral to the RM11B rifle system." msgstr "" -" Supressor RK6S34 Um supressor reduz a quantidade de ruído e flash defocinho" -" gerados pelo relatório de uma arma de fogo. Este Mustela RK6S34 éuma versão" -" bastante avançada integrante do sistema de rifle RM11B." #: lang/json/gunmod_from_json.py msgid "shotgun suppressor" @@ -94770,9 +83745,6 @@ msgid "" "A suppressor designed to work with shotguns. It's a lot more complex than a" " suppressor for a pistol or rifle." msgstr "" -" supressor de espingarda Um supressor projetado para trabalhar " -"comespingardas. É muito mais complexo que um supressor para uma pistola " -"ourifle." #: lang/json/gunmod_from_json.py msgid "suppressor" @@ -94787,10 +83759,6 @@ msgid "" "without protection; a suppressor will bring the loudness of a report down to" " generally safe levels." msgstr "" -" supressor Um supressor reduz a quantidade de ruído e o flash do cano " -"geradopelo relatório de uma arma de fogo. O tiroteio é extremamente alto e " -"podedanificar sua audição sem proteção; um supressor trará o volume de " -"umrelatório para níveis geralmente seguros." #: lang/json/gunmod_from_json.py msgid "mp5sd integral suppressor" @@ -94800,7 +83768,7 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "The integrated suppressor for the mp5sd." -msgstr "supressor integral mp5sd O supressor integrado para o mp5sd." +msgstr "" #: lang/json/gunmod_from_json.py msgid "compact suppressor" @@ -94813,8 +83781,6 @@ msgid "" "A compact suppressor designed for pistols and best used with smaller " "calibers." msgstr "" -" supressor compacto Um supressor compacto projetado para pistolas e " -"melhorusado com calibres menores." #: lang/json/gunmod_from_json.py msgid "rail-mounted crossbow" @@ -94827,13 +83793,10 @@ msgid "" "A kit to attach a pair of crossbow arms and a firing rail to the barrel of a" " long firearm. It allows crossbow bolts to be fired." msgstr "" -" Besta montada em trilho Um kit para prender um par de braços de besta e " -"umtrilho de disparo ao cano de uma arma de fogo longa. Permite que " -"osparafusos de besta sejam disparados." #: lang/json/gunmod_from_json.py msgid "rail" -msgstr "mira telescópica" +msgstr "" #: lang/json/gunmod_from_json.py msgid "offset iron sights" @@ -94846,9 +83809,6 @@ msgid "" "An alternative set of iron sights mounted at 45° for use when a scope or " "other modification prevents use of the primary sights." msgstr "" -" mira de ferro compensada Um conjunto alternativo de miras de ferro " -"montadasa 45 ° para uso quando um escopo ou outra modificação impedir o uso " -"dasmiras primárias." #: lang/json/gunmod_from_json.py msgid "offset sight rail" @@ -94859,8 +83819,6 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "An additional rail set at 45° for attaching a secondary optic." msgstr "" -" trilho de desvio Um trilho adicional ajustado a 45 ° para conectar " -"umaóptica secundária." #: lang/json/gunmod_from_json.py msgid "rail laser sight" @@ -94874,10 +83832,6 @@ msgid "" "enhance ease and speed of target acquisition. Aside from increased weight, " "there are no drawbacks." msgstr "" -" visão a laser sobre trilhos Um pequeno laser de luz visível que é montadono" -" trilho acessório de uma arma de fogo para aumentar a facilidade e " -"avelocidade da aquisição de alvos. Além do aumento de peso, não " -"hádesvantagens." #: lang/json/gunmod_from_json.py msgid "gyroscopic stabilizer" @@ -94890,9 +83844,6 @@ msgid "" "An advanced unit that straps onto the side of your firearm and reduces " "vibration, greatly reducing recoil and slightly increasing accuracy." msgstr "" -" estabilizador giroscópico Uma unidade avançada que se encaixa na lateral " -"dasua arma de fogo e reduz a vibração, reduzindo bastante o recuo " -"eaumentando ligeiramente a precisão." #: lang/json/gunmod_from_json.py msgid "LW gyroscopic stabilizer" @@ -94903,8 +83854,6 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "An advanced Leadworks built in gyroscopic stabilizer." msgstr "" -" Estabilizador giroscópico LW Um avançado Leadworks construído " -"emestabilizador giroscópico." #: lang/json/gunmod_from_json.py msgid "five pin bow sight" @@ -94918,13 +83867,10 @@ msgid "" "modern bows. Improves accuracy substantially, but takes a bit longer to " "line up." msgstr "" -" viseira de arco de cinco pinos Um conjunto de fibra ótica ajustável " -"queaponta pinos com um suporte para montar em arcos modernos. Melhora " -"aprecisão substancialmente, mas demora um pouco mais para se alinhar." #: lang/json/gunmod_from_json.py msgid "sights" -msgstr "mira" +msgstr "" #: lang/json/gunmod_from_json.py msgid "single pin bow sight" @@ -94937,8 +83883,6 @@ msgid "" "A single aluminum pin with a bracket to mount on modern bows. Quick to use," " but not very accurate." msgstr "" -" viseira de arco único pino Um único pino de alumínio com um suporte " -"paramontar em arcos modernos. Rápido de usar, mas não muito preciso." #: lang/json/gunmod_from_json.py msgid "bow scope" @@ -94952,9 +83896,6 @@ msgid "" "accompanying clarifier peep sight. Designed for extra long shots, but " "easily adjusted for short range. Spectacularly accurate." msgstr "" -" escopo de proa Um único escopo de ampliação montado em um suporteajustável," -" com acompanhamento clarificador peep sight. Projetado para tirosextra " -"longos, mas facilmente ajustado para curto alcance. Espetacularmentepreciso." #: lang/json/gunmod_from_json.py msgid "holographic sight" @@ -94967,8 +83908,6 @@ msgid "" "Used extensively by military forces, it increases accuracy and weight. This" " is a step up from a red dot sight." msgstr "" -" visão holográfica Usado extensivamente por forças militares, aumenta " -"aprecisão e o peso. Este é um passo acima de uma visão de ponto vermelho." #: lang/json/gunmod_from_json.py msgid "iron sights" @@ -94978,7 +83917,7 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "A basic set of iron sights" -msgstr "vistas de ferro Um conjunto básico de mira de ferro" +msgstr "" #: lang/json/gunmod_from_json.py msgid "pistol scope" @@ -94991,8 +83930,6 @@ msgid "" "A small scope intended for use on a handgun. Increases weight but improves " "accuracy greatly." msgstr "" -" pistola de escopo Um pequeno escopo destinado a uso em uma arma. Aumenta " -"opeso, mas melhora muito a precisão." #: lang/json/gunmod_from_json.py msgid "red dot sight" @@ -95005,8 +83942,6 @@ msgid "" "Adds a red dot optic to the top of your gun, replacing the iron sights. " "Increases accuracy and weight." msgstr "" -" visão de ponto vermelho Adiciona uma ótica de ponto vermelho ao topo de " -"suaarma, substituindo as vistas de ferro. Aumenta a precisão e o peso." #: lang/json/gunmod_from_json.py msgid "rifle scope" @@ -95019,8 +83954,6 @@ msgid "" "A long ranged rifle scope used by civilians and military alike, increases " "weight but improves accuracy greatly." msgstr "" -" Escopo rifle Um longo alcance rifle utilizado por civis e militares, " -"aumenta o peso, mas melhora a precisão muito." #: lang/json/gunmod_from_json.py msgid "ACOG scope" @@ -95033,9 +83966,6 @@ msgid "" "An Advanced Combat Optical Gunsight, a milspec medium magnification scope. " "Increases weight but improves accuracy significantly." msgstr "" -" Âmbito ACOG Um Advanced Combat Optical Gunsight, um escopo de " -"ampliaçãomédio milspec. Aumenta o peso, mas melhora significativamente a " -"precisão." #: lang/json/gunmod_from_json.py msgid "RS1219 scope" @@ -95049,10 +83979,6 @@ msgid "" "digital scope provides auto-adjusting focal length, a user-selectable " "reticle, and an offset reflex sight for close objectives." msgstr "" -" Escopo RS1219 Um componente integral do sistema rifle RM11B, o " -"escopodigital RS1219 Accipiter oferece distância focal de auto-ajuste, " -"umretículo selecionável pelo usuário e uma mira de reflexo offset " -"paraobjetivos próximos." #: lang/json/gunmod_from_json.py msgid "telescopic sight" @@ -95065,9 +83991,6 @@ msgid "" "A simple telescopic sight, essentially a small telescope with crosshairs. " "Increases weight but improves accuracy." msgstr "" -" mira telescópica Uma simples mira telescópica, essencialmente um " -"pequenotelescópio com mira telescópica. Aumenta o peso, mas melhora a " -"precisão." #: lang/json/gunmod_from_json.py msgid "telescopic pistol sight" @@ -95080,8 +84003,6 @@ msgid "" "A simple telescopic sight intended for use on a handgun. Increases weight " "but improves accuracy greatly." msgstr "" -" mira de pistola telescópica Uma mira telescópica simples destinada a uso " -"emuma arma de mão. Aumenta o peso, mas melhora muito a precisão." #: lang/json/gunmod_from_json.py msgid "LW red dot sight" @@ -95092,7 +84013,6 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "Built in red-dot sight for the Leadworks weapon." msgstr "" -" LW red dot sight Construído com uma visão a vermelho para a arma Leadworks." #: lang/json/gunmod_from_json.py msgid "LW rifle scope" @@ -95102,7 +84022,7 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "Built in rifle scope for the Leadworks weapon." -msgstr "Escopo rifle LW Construído no escopo rifle para a arma Leadworks." +msgstr "" #: lang/json/gunmod_from_json.py msgid "LW ACOG scope" @@ -95115,9 +84035,6 @@ msgid "" "An Leadworks built in Advanced Combat Optical Gunsight, a milspec medium " "magnification scope. Improves accuracy significantly." msgstr "" -" LW ACOG scope Um Leadworks construído em Advanced Combat Optical Gunsight, " -"um escopo de ampliação médio milspec. Melhora a precisão de " -"formasignificativa." #: lang/json/gunmod_from_json.py msgid "LW holographic sight" @@ -95127,7 +84044,7 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "Leadworks built in holographic sight." -msgstr "LW visão holográfica Leadworks construído em visão holográfica." +msgstr "" #: lang/json/gunmod_from_json.py msgid "shoulder strap" @@ -95140,8 +84057,6 @@ msgid "" "A shoulder strap allows the rifle to be worn over your shoulders like a " "piece of clothing. However, it offers no protection." msgstr "" -" alça de ombro Uma alça de ombro permite que o rifle seja usado sobre " -"osombros como uma peça de roupa. No entanto, não oferece proteção." #: lang/json/gunmod_from_json.py msgid "adjustable stock" @@ -95152,12 +84067,10 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "An adjustable replacement stock improving both recoil and accuracy." msgstr "" -" estoque ajustável Um estoque de substituição ajustável que melhora tanto " -"orecuo quanto a precisão." #: lang/json/gunmod_from_json.py msgid "stock" -msgstr "estoque" +msgstr "" #: lang/json/gunmod_from_json.py msgid "folding stock" @@ -95170,9 +84083,6 @@ msgid "" "A folding stock which reduces volume but needs unfolding before use. " "Increases the time needed to wield the weapon." msgstr "" -" estoque dobrável Um estoque dobrável que reduz o volume, mas precisa " -"serdesdobrado antes de ser usado. Aumenta o tempo necessário para empunhar " -"aarma." #: lang/json/gunmod_from_json.py msgid "folding wire stock" @@ -95196,8 +84106,6 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "An add on stock for handguns considerably improving control of recoil." msgstr "" -" estoque de pistola Um estoque adicional de armas de mão " -"melhorandoconsideravelmente o controle do recuo." #: lang/json/gunmod_from_json.py msgid "recoil stock" @@ -95208,8 +84116,6 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "A replacement stock designed to absorb perceived recoil." msgstr "" -" estoque de recuo Um estoque de reposição projetado para absorver o " -"recuopercebido." #: lang/json/gunmod_from_json.py msgid "cheek pad" @@ -95223,10 +84129,6 @@ msgid "" " relief efficiency, prevents slipping, and reduces recoil to the neck and " "cheek." msgstr "" -" almofada de bochecha Um acessório de estoque para rifles de atirador " -"deelite e até mesmo DMRs que melhoram consideravelmente a eficiência " -"doalívio dos olhos, evitam o escorregamento e reduzem o recuo no pescoço e " -"nabochecha." #: lang/json/gunmod_from_json.py msgid "aux flamethrower" @@ -95239,8 +84141,6 @@ msgid "" "This custom-built miniature flamethrower is made to be attached to almost " "any sort of firearm, greatly expanding its lethality." msgstr "" -" Este lança-chamas miniatura personalizado é feito para ser anexado a " -"quasequalquer tipo de arma de fogo, expandindo sua letalidade." #: lang/json/gunmod_from_json.py msgid "bipod" @@ -95254,10 +84154,6 @@ msgid "" "rest and reduce motion. Although they greatly improve handling of recoil " "they are usable only on certain surfaces and are slow to equip." msgstr "" -" bipé Bipods são comumente usados em rifles e metralhadoras para fornecer " -"umdescanso para a frente e reduzir o movimento. Embora eles melhorem muito " -"omanuseio do recuo, eles são utilizáveis apenas em certas superfícies e " -"sãolentos para se equipar." #: lang/json/gunmod_from_json.py msgid "combination gun shotgun" @@ -95270,8 +84166,6 @@ msgid "" "The integrated underbarrel shotgun of a combination gun which holds two " "shots. It's irremovable." msgstr "" -" espingarda de arma combinada A espingarda de underbarrel integrada de " -"umaarma de combinação que segura dois tiros. É inamovível." #: lang/json/gunmod_from_json.py msgid "pipe combination gun shotgun" @@ -95284,9 +84178,6 @@ msgid "" "The integrated underbarrel shotgun of a pipe combination gun which holds two" " shots. It's irremovable." msgstr "" -" espingarda de canhão de combinação de canos A espingarda de cano " -"baixointegrada de uma pistola de combinação de canos que segura dois " -"disparos. Éinamovível." #: lang/json/gunmod_from_json.py msgid "forward grip" @@ -95299,9 +84190,6 @@ msgid "" "A grip placed forward on the barrel allows for greater control. Not as " "effective as a bipod but usable under all conditions." msgstr "" -" aderência para a frente Um punho colocado para a frente no cano permite " -"ummaior controle. Não tão eficaz quanto um bipé, mas utilizável sob todas " -"ascondições." #: lang/json/gunmod_from_json.py msgid "integrated bayonet" @@ -95311,11 +84199,11 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "This is the bayonet integrated in the firearm." -msgstr "baioneta integrada Esta é a baioneta integrada na arma de fogo." +msgstr "" #: lang/json/gunmod_from_json.py msgid "bayonet" -msgstr "baioneta" +msgstr "" #: lang/json/gunmod_from_json.py msgid "KSG second magazine" @@ -95328,8 +84216,6 @@ msgid "" "The integrated second shotgun magazine of the Kel-Tec KSG which holds 7 " "shots. It's irremovable." msgstr "" -" KSG second magazine A segunda revista de espingardas integrada da Kel- " -"TecKSG que comporta 7 tiros. É inamovível." #: lang/json/gunmod_from_json.py msgid "underbarrel laser sight" @@ -95343,9 +84229,6 @@ msgid "" "and speed of target acquisition. Aside from increased weight, there are no " "drawbacks." msgstr "" -" Vista de raio inferior a laser Um laser de luz visível que se monta sob " -"ocano de uma arma de fogo para aumentar a facilidade e a velocidade " -"daaquisição de alvos. Além do aumento de peso, não há desvantagens." #: lang/json/gunmod_from_json.py msgid "LeMat revolver shotgun" @@ -95358,8 +84241,6 @@ msgid "" "The integrated underbarrel shotgun of a modified LeMat revolver which holds " "a single shot. It's irremovable." msgstr "" -" Espingarda de revólver de LeMat A espingarda de underbarrel integrada de " -"umrevólver de LeMat modificado que segura um único tiro. É inamovível." #: lang/json/gunmod_from_json.py msgid "M203" @@ -95373,9 +84254,6 @@ msgid "" "attached to almost any rifle. It allows a single 40mm grenade to be loaded " "and fired." msgstr "" -" M203 O M203 foi originalmente projetado para uso com variantes M16, mashoje" -" pode ser conectado a quase todos os rifles. Ele permite que uma " -"únicagranada de 40mm seja carregada e disparada." #: lang/json/gunmod_from_json.py msgid "M320 GLM" @@ -95390,10 +84268,6 @@ msgid "" " be either attached to a rifle or combined with a buttstock for stand alone " "use." msgstr "" -" M320 GLM O M320 Grenade Launcher Module oferece a funcionalidade " -"delançadores maiores em um pacote muito pequeno com o custo de " -"menorprecisão. Pode ser anexado a um rifle ou combinado com um buttstock " -"parauso independente." #: lang/json/gunmod_from_json.py msgid "masterkey shotgun" @@ -95407,9 +84281,6 @@ msgid "" "many rifles. It allows a total of four shotgun shells to be loaded and " "fired." msgstr "" -" espingarda masterkey Uma espingarda de acção de bomba minimalista, que " -"podeser montada sob o cano de muitos espingardas. Ele permite que um total " -"dequatro cartuchos de espingarda sejam carregados e disparados." #: lang/json/gunmod_from_json.py msgid "40mm pipe launcher" @@ -95422,9 +84293,6 @@ msgid "" "This is a home built launcher tube that can be attached to almost any rifle." " It allows a single 40mm grenade to be loaded and fired." msgstr "" -" Lançador de tubos de 40mm Este é um tubo de lançador construído em casa que" -" pode ser anexado a quase qualquer rifle. Ele permite que uma única " -"granadade 40mm seja carregada e disparada." #: lang/json/gunmod_from_json.py msgid "pistol bayonet" @@ -95437,9 +84305,6 @@ msgid "" "A pistol bayonet is a stabbing weapon that can be attached to the front of a" " handgun, allowing a melee attack to deal piercing damage." msgstr "" -" baioneta de pistola Uma baioneta de pistola é uma arma que pode ser " -"anexadaà frente de uma arma, permitindo que um ataque corpo-a-corpo cause " -"danoperfurante." #: lang/json/gunmod_from_json.py msgid "RM121 aux shotgun" @@ -95453,9 +84318,6 @@ msgid "" "caseless shotgun, which can be mounted under the barrel of many rifles. " "Accepts RMSA10 box magazines." msgstr "" -" RM121 aux shotgun O sistema de armas auxiliares Rivtech RM121 é " -"umaespingarda semi-automática, alimentada a carregador, que pode ser " -"montadasob o cano de muitas espingardas. Aceita revistas de caixa RMSA10." #: lang/json/gunmod_from_json.py msgid "underslung shotgun" @@ -95468,9 +84330,6 @@ msgid "" "A short shotgun with 2 barrels, which can be mounted under the barrel of " "many rifles. It allows two shotgun shells to be loaded and fired." msgstr "" -" espingarda underslung Uma espingarda curta com 2 barris, que pode " -"sermontada sob o cano de muitos rifles. Permite que dois cartuchos " -"deespingarda sejam carregados e disparados." #: lang/json/gunmod_from_json.py msgid "LW underbarrel laser sight" @@ -95483,9 +84342,6 @@ msgid "" "A Leadworks built in visible-light laser that mounts under a firearm's " "barrel to enhance ease and speed of target acquisition." msgstr "" -" LW underbarrel laser sight Um Leadworks construído em laser de luz " -"visívelque é montado sob o cano de uma arma de fogo para aumentar a " -"facilidade e avelocidade da aquisição de alvos." #: lang/json/gunmod_from_json.py msgid "LW forward grip" @@ -95498,8 +84354,6 @@ msgid "" "A Leadworks built in grip placed forward on the barrel allows for greater " "control." msgstr "" -" LW forward grip Um aperto de Leadworks construído em frente colocado " -"nobarril permite um maior controle." #: lang/json/gunmod_from_json.py msgid "LW bipod" @@ -95513,10 +84367,6 @@ msgid "" "motion. Although it greatly improve handling of recoil it is usable only on" " certain surfaces and are slow to equip." msgstr "" -" LW bipod Leadworks construído em bipé projetado para fornecer um " -"descansopara a frente e reduzir o movimento. Embora melhore bastante o " -"manuseio dorecuo, ele é utilizável apenas em certas superfícies e demora a " -"serequipado." #: lang/json/gunmod_from_json.py msgid "LW underslung shotgun" @@ -95529,9 +84379,6 @@ msgid "" "Leadworks built in minimalist pump action shotgun module. It allows 4 " "shotgun shells to be loaded and fired." msgstr "" -" LW espingarda suspensa Leadworks construído em módulo shotgun bomba de " -"açãominimalista. Ele permite que 4 cartuchos de espingarda sejam carregados " -"edisparados." #: lang/json/gunmod_from_json.py msgid "LW GLM" @@ -95544,8 +84391,6 @@ msgid "" "The Leadworks built in Grenade Launcher Module offers the functionality of " "larger launchers in a very small package." msgstr "" -" LW GLM O Leadworks construído em Grenade Launcher Module oferece " -"afuncionalidade de lançadores maiores em um pacote muito pequeno." #: lang/json/gunmod_from_json.py msgid "spare magazine" @@ -95558,9 +84403,6 @@ msgid "" "A spare magazine you can keep on hand to make reloads faster, but must " "itself be reloaded before it can be used again." msgstr "" -" Uma revista de reposição que você pode manter à mão para recarregar " -"maisrapidamente, mas deve ser recarregada antes de poder ser usada " -"novamente." #: lang/json/gunmod_from_json.py msgid "extended magazine" @@ -95582,8 +84424,6 @@ msgstr[1] "" #: lang/json/gunmod_from_json.py msgid "Completely doubles the ammunition capacity of your firearm." msgstr "" -" double magazine Duplica completamente a capacidade de munição da sua armade" -" fogo." #: lang/json/gunmod_from_json.py msgid "battle rifle conversion" @@ -95597,14 +84437,10 @@ msgid "" "battle rifle. It reduces accuracy, and increases noise and recoil, but also" " increases damage and fire rate." msgstr "" -" conversão de rifle de batalha Este é um kit de conversão completo, " -"projetado para transformar um rifle em um poderoso rifle de batalha. Reduza " -"precisão e aumenta o ruído e o recuo, mas também aumenta os danos e ataxa de" -" disparo." #: lang/json/gunmod_from_json.py msgid "conversion" -msgstr "conversão" +msgstr "" #: lang/json/gunmod_from_json.py msgid "sniper conversion" @@ -95618,10 +84454,6 @@ msgid "" "sniper rifle. It removes any automatic fire capabilities but also increases" " accuracy and damage." msgstr "" -" conversão sniper Este é um kit de conversão completo, projetado " -"paratransformar um rifle em um rifle sniper mortal. Ele remove " -"qualquercapacidade de disparo automático, mas também aumenta a precisão e o " -"dano." #: lang/json/gunmod_from_json.py msgid "Underslung flare launcher" @@ -95696,9 +84528,6 @@ msgid "" "This kit is used to convert 6.54 rifle to the 5.45 caliber. The conversion " "results in slight reductions to recoil." msgstr "" -" Kit de conversão de calibre 5.45 Este kit é usado para converter o " -"rifle6.54 para o calibre 5.45. A conversão resulta em ligeiras reduções " -"pararecuar." #: lang/json/gunmod_from_json.py msgid "6.54 caliber conversion kit" @@ -95711,8 +84540,6 @@ msgid "" "This kit is used to convert 5.45 rifle to the 6.54 caliber. The conversion " "results in increased recoil." msgstr "" -" Kit de conversão de calibre 6.54 Este kit é usado para converter o " -"rifle5.45 para o calibre 6.54. A conversão resulta em maior recuo." #: lang/json/gunmod_from_json.py msgid "7.62 caliber conversion kit" @@ -95725,8 +84552,6 @@ msgid "" "This kit is used to convert 6.54 rifle to the 7.62 caliber. The conversion " "results in increased recoil." msgstr "" -" Kit de conversão calibre 7.62 Este kit é usado para converter 6.54 " -"riflepara o calibre 7.62. A conversão resulta em maior recuo." #: lang/json/gunmod_from_json.py msgid "Flaregun conversion kit" @@ -95739,17 +84564,12 @@ msgid "" "Replacing several key parts flaregun to convert it to a .40 firearm. The " "conversion results in reduced accuracy and increased recoil." msgstr "" -" Kit de conversão de flaregun Substituindo várias partes importantes " -"deflaregun para convertê-lo em uma arma de fogo .40. A conversão resulta " -"emprecisão reduzida e aumento do recuo." #: lang/json/gunmod_from_json.py msgid "" "This genuine Herostratus flamethrower is ideal for light brush clearing and " "self-defense." msgstr "" -" Este genuíno lança-chamas Herostratus é ideal para limpeza de escovas " -"levese autodefesa." #: lang/json/gunmod_from_json.py msgid "E.M.A.S." @@ -95765,12 +84585,6 @@ msgid "" "however drain UPS charges when firing and due to extensive modifications the" " gun can no longer operate without a UPS." msgstr "" -" O EMAS ElectroMagnetic Acceleration System (Sistema de " -"AceleraçãoEletromagnética EMAS) é uma matriz de eletroímãs presos à frente " -"do cano, acelerando qualquer projétil disparado a velocidades ainda mais " -"altas, aumentando o dano, recuando e reduzindo a precisão. No entanto, " -"eledescarrega as cargas da UPS durante o disparo e, devido a " -"extensasmodificações, a pistola não pode mais operar sem um no-break." #: lang/json/gunmod_from_json.py msgid "makeshift pistol bayonet" @@ -95784,10 +84598,6 @@ msgid "" "spike with some string. It still makes a decent melee weapon in a pinch " "when attached to a pistol." msgstr "" -" baioneta de pistola improvisada Uma versão improvisada de uma " -"baionetasignificou uma pistola que consiste em um mero pico com alguma " -"corda. Aindafaz uma arma decente melee em uma pitada quando preso a uma " -"pistola." #: lang/json/gunmod_from_json.py msgid "makeshift sword bayonet" @@ -95801,10 +84611,6 @@ msgid "" "with some string. It still makes a good melee weapon providing reach " "attacks when attached to long arm or crossbow." msgstr "" -" baioneta de espada improvisada Uma versão improvisada de uma baioneta " -"deespada que consiste em uma lâmina salvada com alguma corda. Ele ainda " -"fazuma boa arma corpo a corpo, proporcionando ataques de alcance quando " -"presoao braço longo ou besta." #: lang/json/gunmod_from_json.py msgid "M6 ASW shotgun" @@ -95817,24 +84623,20 @@ msgid "" "The integrated .410 shotgun of the M6 Aircrew Survival Weapon. It's " "irremovable." msgstr "" -" Espingarda M6 ASW A espingarda integrada .410 da Arma Sobrevivência " -"daTripulação M6. É inamovível." #: lang/json/harvest_from_json.py msgid "You gut and fillet the fish" -msgstr "Você estripa e filtra o peixe" +msgstr "" #: lang/json/harvest_from_json.py msgid "You carefully crack open its exoskeleton to get at the flesh beneath" -msgstr "Você cuidadosamente abre seu exoesqueleto para pegar a carne abaixo" +msgstr "" #: lang/json/harvest_from_json.py msgid "" "You search for any salvageable bionic hardware in what's left of this failed" " experiment" msgstr "" -" Você procura por qualquer hardware biônico aproveitável no que sobrou " -"desteexperimento falido" #: lang/json/harvest_from_json.py msgid "" @@ -95847,33 +84649,28 @@ msgid "" "You messily hack apart the colossal mass of fused, rancid flesh, taking note" " of anything that stands out." msgstr "" -" Você bagunça a massa colossal de carne fundida e rançosa, notando " -"qualquercoisa que se destaque." #: lang/json/harvest_from_json.py msgid "You laboriously dissect the colossal insect." -msgstr "Você laboriosamente disseca o inseto colossal." +msgstr "" #: lang/json/harvest_from_json.py msgid "You laboriously hack and dig through the remains of the fungal mass." -msgstr "Você laboriosamente invade os restos da massa fúngica." +msgstr "" #: lang/json/harvest_from_json.py msgid "You butcher the fallen zombie and hack off its head" -msgstr "Você mata o zumbi caído e corta sua cabeça" +msgstr "" #: lang/json/help_from_json.py msgid ": Introduction" -msgstr " : Introdução" +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 "" -" Cataclismo é uma sobrevivência roguelike com um cenário de " -"apocalipsemonstro. Você sobreviveu ao ataque original, mas o futuro parece " -"bemsombrio." #: lang/json/help_from_json.py msgid "" @@ -95882,11 +84679,6 @@ msgid "" "survivors you must stay alert, since someone may be plotting behind your " "back to take your hard-earned loot." msgstr "" -" Você deve se preparar para enfrentar as muitas dificuldades que estão " -"porvir, incluindo suprimentos cada vez menores, criaturas hostis e " -"condiçõesclimáticas adversas. Mesmo entre os companheiros sobreviventes, " -"você deveficar alerta, pois alguém pode estar conspirando nas suas costas " -"parareceber o seu saque duramente conquistado." #: lang/json/help_from_json.py msgid "" @@ -95896,12 +84688,6 @@ msgid "" "directions. In this survival roguelike, you will have to find food; you also" " need to keep yourself hydrated and sleep periodically." msgstr "" -" O cataclismo difere dos roguelikes tradicionais de várias maneiras. Em " -"vezde explorar uma masmorra subterrânea, com uma área limitada em cada " -"nível, você está explorando um mundo verdadeiramente infinito, estendendo-se" -" emtodas as quatro direções cardeais. Nesta sobrevivência roguelike, você " -"teráque encontrar comida; Você também precisa manter-se hidratado e " -"dormirperiodicamente." #: lang/json/help_from_json.py msgid "" @@ -95910,14 +84696,10 @@ msgid "" "medications, and a wide variety of tools are all available to help you " "survive." msgstr "" -" Enquanto o Cataclysm tem mais tarefas para rastrear do que muitos " -"outrosroguelikes, a configuração do jogo no futuro próximo torna algumas " -"tarefasmais fáceis. Armas de fogo, medicamentos e uma ampla variedade " -"deferramentas estão disponíveis para ajudá-lo a sobreviver." #: lang/json/help_from_json.py msgid ": Movement" -msgstr " : Movimento" +msgstr "" #: lang/json/help_from_json.py msgid "Movement is performed using the numpad, or vikeys." @@ -95925,7 +84707,7 @@ msgstr "O movimento é feito usando o teclado numério ou vikeys." #: lang/json/help_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -95933,16 +84715,10 @@ msgid "" " you will then replenish a variable amount of movement points, depending on " "many factors (press to see the exact amount)." msgstr "" -" Cada passo levará 100 pontos de movimento (ou mais, dependendo do " -"terreno);você irá então reabastecer uma quantidade variável de pontos de " -"movimento, dependendo de muitos fatores (pressione para " -"ver aquantia exata)." #: lang/json/help_from_json.py msgid "To attempt to hit a monster with your weapon, simply move into it." msgstr "" -" Para tentar acertar um monstro com sua arma, simplesmente se mova " -"paradentro dele." #: lang/json/help_from_json.py msgid "" @@ -95952,12 +84728,6 @@ msgid "" "choose a direction). Smashing down obstacles is much easier with a good " "weapon or a strong character." msgstr "" -" Você pode encontrar portas, ('+'); estes podem ser abertos " -"com ou fechado com . Algumas portas estão " -"trancadas. Portas trancadas, janelas e alguns outros obstáculos podem ser " -"destruídosesmagando-os ( , depois escolha uma direção). " -"Esmagarobstáculos é muito mais fácil com uma boa arma ou um personagem " -"forte." #: lang/json/help_from_json.py msgid "" @@ -95967,16 +84737,10 @@ msgid "" "to react. Pressing will toggle \"Safe Mode\". While this is" " on, any movement will be ignored if new monsters enter the player's view." msgstr "" -" Pode haver momentos em que você deseja mover-se mais rapidamente " -"mantendopressionada uma tecla de movimento. No entanto, o movimento rápido " -"destamaneira pode levar o jogador a entrar em uma situação perigosa ou mesmo" -" sermorto antes de ter a chance de reagir. Pressionando irá" -" alternar 'Modo de segurança'. Enquanto isso estiver ativado, qualquer " -"movimento será ignorado se novos monstros entrarem na visão dojogador." #: lang/json/help_from_json.py msgid ": Viewing" -msgstr " : Visualizando" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -95992,7 +84756,7 @@ msgstr "" #: lang/json/help_from_json.py msgid ": Hunger, thirst, and sleep" -msgstr ": Fome, sede e sono" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96000,10 +84764,6 @@ msgid "" " a status warning at the sidebar will appear. As hunger and thirst reach " "critical levels, you will begin to suffer movement penalties." msgstr "" -" Com o passar do tempo, você começará a sentir fome e sede. Quando " -"issoacontece, um aviso de status na barra lateral será exibido. À medida que" -" afome e a sede atingem níveis críticos, você começará a sofrer " -"penalidadesde movimento." #: lang/json/help_from_json.py msgid "" @@ -96018,17 +84778,6 @@ msgid "" "completely atrocious one. You can and should examine food items to view " "their nutritional facts." msgstr "" -" A sede é mais perigosa que a fome, mas você pode desenvolver " -"váriasdeficiências de vitaminas se comer mal. Essas deficiências vêm em " -"estágios, então, por exemplo, você não passará de uma saúde perfeitamente " -"boa para um escorbuto completo em um instante. Quaisquer deficiências em " -"desenvolvimento e contínuas serão relatadas na ficha de personagem. " -"Deficiências infligirão várias penalidades, mas, felizmente, elas sãosempre " -"reversíveis, e as pílulas multivitamínicas podem ajudá-lo a corrigir " -"quaisquer deficiências. Você também pode ingerir muitas vitaminas, e isso " -"também pode criar problemas. Certifique-se de ter uma dieta equilibrada, " -"oupelo menos não completamente atroz. Você pode e deve examinar itens " -"alimentares para ver seus fatos nutricionais." #: lang/json/help_from_json.py msgid "" @@ -96043,17 +84792,6 @@ msgid "" "diseased water. To make sure it's healthy, purify the water by boiling it or" " using water purifier before drinking." msgstr "" -" Encontrar comida em uma cidade geralmente é fácil; fora de uma cidade, você" -" pode ter que caçar. Depois de matar um animal, fique de pé sobre o " -"cadáverdo animal e corte-o em pequenos pedaços de carne, " -"pressionando. Você também pode procurar por frutas ou " -"vegetaiscomestíveis; Para fazer isso, encontre uma planta promissora e " -"examine-a. Da mesma forma, você pode ter que beber água de um rio ou outra " -"fontenatural. Para coletá-lo, fique em águas rasas e pressione " -" .Você precisará de um contêiner à prova d'água para " -"armazená-lo. Estejaavisado que algumas fontes de água não são confiáveis e " -"podem produzir águacontaminada. Para ter certeza de que é saudável, " -"purifique a águafervendo-a ou usando o purificador de água antes de beber." #: lang/json/help_from_json.py msgid "" @@ -96065,18 +84803,10 @@ msgid "" " be vulnerable to attack, so try to find a safe place to sleep, or set traps" " for unwary intruders." msgstr "" -" A cada 14 a 20 horas, você se sentirá sonolento. Se você não " -"dormepressionando , você começará a sofrer penalidades " -"deestatísticas e movimentos. Você pode nem sempre adormecer imediatamente. " -"Dormir dentro de casa, especialmente em uma cama, ajudará. Se isso não " -"forsuficiente, as pílulas para dormir podem ser úteis. Enquanto dorme, " -"vocêrecuperará lentamente os pontos de vida perdidos. Você também " -"estarávulnerável a ataques, então tente encontrar um local seguro para " -"dormir oudefina armadilhas para invasores desavisados." #: lang/json/help_from_json.py msgid ": Pain and stimulants" -msgstr " : Dor e estimulantes" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96087,12 +84817,6 @@ msgid "" "influence of many painkillers, the physiological side effects may slow you " "or reduce your stats." msgstr "" -" Quando você recebe dano de quase qualquer fonte, você começará a sentirdor." -" A dor diminui sua velocidade e reduz suas estatísticas, e encontraruma " -"maneira de controlar a dor é um imperativo inicial. O mais comum édrogas: " -"aspirina, codeína, tramadol, oxicodona e muito mais são ótimasopções. Esteja" -" ciente de que, embora sob a influência de muitosanalgésicos, os efeitos " -"colaterais fisiológicos podem atrasá-lo ou reduzirsuas estatísticas." #: lang/json/help_from_json.py msgid "" @@ -96100,9 +84824,6 @@ msgid "" "oxycodone and don't notice the effects right away, don't start taking more -" " you may overdose and die!" msgstr "" -" Repare que a maioria dos analgésicos demora um pouco para começar. Se " -"vocêtomar um pouco de oxicodona e não notar os efeitos imediatamente, " -"nãocomece a tomar mais - você pode overdose e morrer!" #: lang/json/help_from_json.py msgid "" @@ -96110,9 +84831,6 @@ msgid "" "in a lot of pain, it may be wise to find a safe spot and simply rest for an " "extended period of time." msgstr "" -" A dor também desaparece com o tempo, por isso, se as drogas não " -"estãodisponíveis e você está com muita dor, pode ser aconselhável encontrar " -"umlocal seguro e simplesmente descansar por um longo período de tempo." #: lang/json/help_from_json.py msgid "" @@ -96123,17 +84841,10 @@ msgid "" "importantly, most are highly addictive. Stimulants range from the caffeine " "rush of cola to the more intense high of Adderall and methamphetamine." msgstr "" -" Outra classe comum de drogas é estimulantes. Os estimulantes proporcionam " -"avocê uma corrida temporária de energia, aumentando sua velocidade " -"demovimento e muitas estatísticas (mais notavelmente a inteligência" -"),tornando-as úteis para ajudar no estudo. Há dois inconvenientes para " -"osestimulantes: eles tornam mais difícil o sono e, mais importante, a " -"maioriaé altamente viciante. Estimulantes vão desde a corrida de cafeína de " -"colaaté a mais intensa alta de Adderall e metanfetamina." #: lang/json/help_from_json.py msgid ": Addiction" -msgstr " : Vício" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96143,24 +84854,16 @@ msgid "" " but all addictions have only one cure; 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 "" -" Muitos medicamentos têm potencial para dependência. Cada vez que " -"vocêconsome tal droga, há uma chance de que você cresça dependente dela. " -"Consumir mais dessa droga aumentará sua dependência. Os efeitos variammuito " -"entre as drogas, mas todos os vícios têm apenas uma cura; indo perufrio. O " -"processo pode durar dias e vai deixá-lo muito fraco, por isso tentefazê-lo " -"em uma área segura." #: lang/json/help_from_json.py msgid "" "If you are suffering from drug withdrawal, taking more of the drug will " "cause the effects to cease immediately, but may deepen your dependence." msgstr "" -" Se você está sofrendo de abstinência de drogas, tomar mais da droga farácom" -" que os efeitos cessem imediatamente, mas pode aprofundar suadependência." #: lang/json/help_from_json.py msgid ": Morale and learning" -msgstr " : Moral e aprendizado" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96168,9 +84871,6 @@ msgid "" "depressing post-apocalypse world is tough to deal with, and your mood will " "naturally decrease very slowly." msgstr "" -" Seu personagem tem um nível de moral que afeta você de várias maneiras. " -"Odeprimente mundo pós-apocalíptico é difícil de lidar, e seu " -"humornaturalmente diminuirá muito lentamente." #: lang/json/help_from_json.py msgid "" @@ -96179,10 +84879,6 @@ msgid "" "options. Most morale-boosting activities can only take you to a certain " "level before they grow boring." msgstr "" -" Existem muitas opções para aumentar o moral; ler um livro divertido, " -"comercomida deliciosa e tomar drogas recreativas são apenas algumas opções. " -"Amaioria das atividades que aumentam a moral só podem levá-lo a um " -"certonível antes que elas se tornem tediosas." #: lang/json/help_from_json.py msgid "" @@ -96190,10 +84886,6 @@ msgid "" "decay. Eating disgusting food, reading a boring technical book, killing a " "friendly NPC, or going through drug withdrawal are some prominent examples." msgstr "" -" Há também muitas maneiras de diminuir sua moral, além de sua " -"decadêncianatural. Comer comida repugnante, ler um livro técnico chato, " -"matar um NPCamigável ou passar por uma retirada de drogas são alguns " -"exemplosproeminentes." #: lang/json/help_from_json.py msgid "" @@ -96203,11 +84895,6 @@ msgid "" "fills you with gusto and energy, and you will find yourself moving faster. " "At extremely high levels, you will receive stat bonuses." msgstr "" -" Baixa moral vai fazer você lento e desmotivado. Se o seu moral cair " -"muitobaixo, você não será capaz de realizar qualquer tarefa. Se você se " -"tornarsuficientemente deprimido, sofrerá penalidades estatais. Um moral " -"muitoalto lhe enche de ânimo e energia, e você se verá movendo mais rápido. " -"Emníveis extremamente altos, você receberá bônus stat." #: lang/json/help_from_json.py msgid "" @@ -96217,11 +84904,6 @@ msgid "" "learning potential. Higher or lower focus levels make it easier or harder to" " learn from practical experience." msgstr "" -" O moral também é responsável por garantir que você possa aprender de " -"formaeficaz, por meio de um mecânico chamado de 'foco'. Seu nível defoco é " -"uma medida de quão efetivamente você pode aprender. O nível naturalé 100, o " -"que indica potencial de aprendizagem normal. Níveis de foco maisaltos ou " -"mais baixos facilitam ou dificultam o aprendizado com aexperiência prática." #: lang/json/help_from_json.py msgid "" @@ -96232,12 +84914,6 @@ msgid "" "factored into the set point calculation - it's harder to learn when you're " "in pain." msgstr "" -" Seu nível de foco tem um ponto de ajuste natural para o qual converge. " -"Quando seu foco é muito menor - ou mais alto - do que esse ponto de ajuste, " -"ele mudará mais rápido do que quando estiver próximo do ponto de ajuste. Ter" -" moral elevado aumentará o set point, e ter moral baixo diminuirá o " -"setpoint. A dor também é fatorada no cálculo do ponto de ajuste - é " -"maisdifícil aprender quando você está com dor." #: lang/json/help_from_json.py msgid "" @@ -96248,16 +84924,10 @@ msgid "" "decreases your focus rapidly, by giving a significant penalty to the set " "point of your focus." msgstr "" -" Seu foco também é reduzido por certas atividades. Treinar suas " -"habilidadesatravés da prática do mundo real reduz gradualmente seu foco, em " -"umaquantidade que depende do seu nível atual de foco (foco maior " -"significadiminuições maiores, assim como aprendizado aprimorado). Treinar " -"suashabilidades lendo livros diminui seu foco rapidamente, dando uma " -"penalidadesignificativa ao ponto de ajuste de seu foco." #: lang/json/help_from_json.py msgid ": Radioactivity and mutation" -msgstr " : Radioatividade e mutação" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96266,11 +84936,6 @@ msgid "" "more and more. While in radiation-free areas, your radiation level will " "slowly decrease. Taking Prussian blue tablets will help speed the process." msgstr "" -" Embora seja relativamente raro, certas áreas do mundo podem " -"estarcontaminadas com radiação. Ele irá gradualmente se acumular em seu " -"corpo, enfraquecendo-o mais e mais. Enquanto estiver em áreas livres de " -"radiação, seu nível de radiação diminuirá lentamente. Tomar comprimidos " -"azuis daPrússia ajudará a acelerar o processo." #: lang/json/help_from_json.py msgid "" @@ -96280,11 +84945,6 @@ msgid "" " style considerably. It is possible to find substances that will remove " "mutations, though these are extremely rare." msgstr "" -" Se você se tornar muito irradiado, poderá desenvolver mutações. Na " -"maioriadas vezes, essas mutações serão negativas; no entanto, muitos são " -"benéficose outros têm efeitos positivos e negativos. Suas mutações podem " -"mudarconsideravelmente o seu estilo de jogo. É possível encontrar " -"substânciasque removerão as mutações, embora sejam extremamente raras." #: lang/json/help_from_json.py msgid "" @@ -96294,15 +84954,10 @@ msgid "" "met, you will permanently transcend your humanity into a wholly different " "life-form." msgstr "" -" Existem várias substâncias mutagênicas e consumi-las (ou injetá- " -"las)conferirá mutações. No entanto, o processo sobrecarrega " -"significativamenteo seu corpo e pode ser viciante. Com mutações suficientes " -"e certascondições sendo atendidas, você transcenderá permanentemente sua " -"humanidadeem uma forma de vida totalmente diferente." #: lang/json/help_from_json.py msgid ": Bionics" -msgstr " : Biônica" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96311,11 +84966,6 @@ 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 "" -" A biônica é uma atualização biomecânica do seu corpo. Enquanto muitos " -"sãosimplesmente versões “embutidas” de itens que você teria que carregar, " -"algumas biônicas têm efeitos únicos que de outra forma seriam inatingíveis. " -"Algumas biônicas estão constantemente trabalhando, enquanto outras " -"precisamser ativadas e desativadas conforme necessário." #: lang/json/help_from_json.py msgid "" @@ -96325,12 +84975,6 @@ msgid "" "a variety of ways, but all require the installation of a special bionic just" " for fuel consumption." msgstr "" -" A maioria das biônicas requer uma fonte de energia e você precisará de " -"umabateria interna para armazenar energia para elas. Sua quantidade atual " -"deenergia é exibida na barra lateral logo abaixo da sua saúde. " -"Oreabastecimento de energia pode ser feito de várias maneiras, mas " -"todasexigem a instalação de um biônico especial apenas para consumo " -"decombustível." #: lang/json/help_from_json.py msgid "" @@ -96341,12 +84985,6 @@ msgid "" "difficult to find, but may be purchased from certain wandering vagabonds for" " a very high price." msgstr "" -" A instalação de um biônico só é possível com profissionais treinados ou " -"comaparelhos médicos especializados. Usar máquinas para manipular a " -"biônicarequer altos níveis de inteligência, primeiros socorros, mecânica " -"eeletrônica. Cuidado, porém, uma falha pode prejudicá-lo! Muitos " -"módulosbiônicos são difíceis de encontrar, mas podem ser comprados de " -"certosvagabundos errantes por um preço muito alto." #: lang/json/help_from_json.py msgid "" @@ -96354,9 +84992,6 @@ msgid "" "installation; and as well as installation, this non-trivial surgical " "procedure requires anesthesia." msgstr "" -" Qualquer biônico pode ser removido do seu corpo, mas não é mais fácil doque" -" sua instalação; e assim como a instalação, esse procedimento cirúrgiconão " -"trivial exige anestesia." #: lang/json/help_from_json.py msgid "" @@ -96373,13 +85008,10 @@ msgid "" "fixation of the patient and operation inself may take hours. So you have to" " make sure that you will safe during this process." msgstr "" -" Observe que a instalação ou desinstalação biônica exige narcose, a " -"fixaçãodo paciente e a operação por conta própria podem levar horas. Então " -"vocêtem que ter certeza que você estará seguro durante este processo." #: lang/json/help_from_json.py msgid ": Crafting" -msgstr " : Crafting" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96387,10 +85019,6 @@ 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 "" -" Muitos itens importantes podem ser muito difíceis de encontrar ou " -"custarãomuito dinheiro para o comércio. Felizmente, é possível criar uma " -"grandevariedade de produtos (da melhor maneira possível) com as ferramentas," -" materiais e treinamento adequados." #: lang/json/help_from_json.py msgid "" @@ -96398,10 +85026,6 @@ msgid "" " you can keep your tool set. All recipes require one or more ingredients. " "These ARE used up in crafting." msgstr "" -" Algumas receitas requerem um conjunto de ferramentas. Estes não são " -"usadosdurante a criação, para que você possa manter seu conjunto de " -"ferramentas. Todas as receitas requerem um ou mais ingredientes. Estes são " -"usados naelaboração." #: lang/json/help_from_json.py msgid "" @@ -96416,17 +85040,6 @@ msgid "" "book: just have it handy when crafting. Different knowledge is useful for " "different applications:" msgstr "" -" Para criar itens, pressione . Existem sete categorias: " -"Armas,Munição, Comida, Produtos Químicos, Eletrônica, Armadura e Outros. Em " -"cadacategoria principal existem várias subcategorias menores. Embora " -"algunsitens não precisem ser criados, a maioria exige que você tenha " -"algumconhecimento. Às vezes, um sobrevivente experiente elaborará " -"umadeterminada receita a partir de seu conhecimento da habilidade, mas " -"commais frequência precisará de material de referência, geralmente um livro " -"dealgum tipo. A leitura de tais referências dá uma chance de memorizar " -"asreceitas de imediato, e você também pode criar uma referência ao " -"livro:basta tê-lo à mão ao criar. Diferentes conhecimentos são úteis " -"paradiferentes aplicações:" #: lang/json/help_from_json.py msgid "" @@ -96435,10 +85048,6 @@ msgid "" "-> Tailoring is used to create basic clothing, and armor later on.\n" "-> Electronics lets you make a wide variety of tools with intricate uses." msgstr "" -" -> Fabrication é a habilidade genérica dos artesãos, usada para umagrande variedade de equipamentos. \n" -" -> Cozinhar, em níveis baixos, éusada para fazer receitas saborosas; em níveis mais altos, você tem umacompreensão da química e pode fabricar armas químicas e elixires benéficos.\n" -" -> A alfaiataria é usada para criar roupas básicas e armaduras maistarde. \n" -" -> A eletrônica permite fazer uma ampla variedade deferramentas com usos intrincados.\n" #: lang/json/help_from_json.py msgid "" @@ -96446,18 +85055,12 @@ msgid "" " create certain items. Traps, Marksmanship, and First Aid are all required " "for certain items." msgstr "" -" Além das habilidades primárias de elaboração, outras habilidades podem " -"sernecessárias para criar certos itens. Armadilhas, boa pontaria e " -"primeirossocorros são todos necessários para certos itens." #: lang/json/help_from_json.py msgid "" "Crafting an item with high difficulty may fail and possibly waste some " "materials. You should prepare spare material, just in case." msgstr "" -" Criar um item com alta dificuldade pode falhar e possivelmente " -"desperdiçaralguns materiais. Você deve preparar material de reposição, " -"apenas no caso." #: lang/json/help_from_json.py msgid "" @@ -96468,7 +85071,7 @@ msgstr "" #: lang/json/help_from_json.py msgid ": Traps" -msgstr ": Armadilhas" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96479,12 +85082,6 @@ msgid "" "trap anything that steps on them). Others need to be crafted; this requires " "the Traps skill and possibly Mechanics." msgstr "" -" Antes de dormir em um território perigoso, pode ser sábio colocararmadilhas" -" para afastar intrusões indesejadas. Existem algumas armadilhas aserem " -"encontradas no mundo, mais notavelmente o envoltório de bolha (quefará um " -"barulho alto se pisado, ajudando a acordá-lo) e armadilhas (quefazem barulho" -" e dano, e aprisionam qualquer coisa que pise nelas ). Outrosprecisam ser " -"criados; isso requer a habilidade Armadilhas e possivelmenteMecânica." #: lang/json/help_from_json.py msgid "" @@ -96493,11 +85090,6 @@ msgid "" "require additional tools, like a shovel, to be set. Once set, a trap will " "remain in place until stepped on or disarmed." msgstr "" -" Para definir uma armadilha, basta usar o item (pressione ) " -"eescolha uma direção; a armadilha será colocada em um ladrilho adjacente. " -"Algumas armadilhas podem requerer ferramentas adicionais, como uma pá, " -"aserem configuradas. Uma vez definida, uma armadilha permanecerá no localaté" -" ser posta em marcha ou desarmada." #: lang/json/help_from_json.py msgid "" @@ -96507,11 +85099,6 @@ msgid "" "however, if you fail, there is a chance that you will set off the trap, " "suffering the consequences." msgstr "" -" Para desarmar uma armadilha, examine (pressione ) o " -"espaçoem que está. Seu sucesso depende da sua habilidade e Destreza " -"deArmadilhas. Se você tiver sucesso, a armadilha é removida e substituída " -"poralgumas ou todas as suas partes constituintes; no entanto, se você " -"falhar, há uma chance de você sair da armadilha, sofrendo as conseqüências." #: lang/json/help_from_json.py msgid "" @@ -96519,14 +85106,10 @@ msgid "" "entirely dependent upon your Perception. Should you stumble into a trap, you" " may have a chance to avoid it, depending on your Dodge skill." msgstr "" -" Muitas armadilhas estão total ou parcialmente ocultas. Sua capacidade " -"dedetectar armadilhas depende inteiramente da sua percepção. Se você " -"tropeçarem uma armadilha, você pode ter a chance de evitá-la, dependendo da " -"suahabilidade Dodge." #: lang/json/help_from_json.py msgid ": Items overview" -msgstr " : Visão geral dos itens" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96536,12 +85119,6 @@ msgid "" "a blue background. Pressing , then a direction key, will " "allow you to examine these containers and loot their contents." msgstr "" -" Há uma grande variedade de itens disponíveis para seu uso. Você " -"podeencontrá-los deitados no chão; se assim for, basta " -"pressionar para pegar itens no mesmo quadrado. Alguns itens " -"sãoencontrados dentro de um contêiner, desenhados como {com um fundo azul. " -"Pressionando , em seguida, uma tecla de direção, " -"permitiráque você examine esses recipientes e saqueie seu conteúdo." #: lang/json/help_from_json.py msgid "" @@ -96550,11 +85127,6 @@ msgid "" "superior. You can also access the item comparison menu by pressing C after " " to view nearby items menu is open and an item is selected." msgstr "" -" Pressionando abre um menu de comparação, onde você pode " -"verdois itens lado-a-lado com seus atributos destacados para indicar qual " -"ésuperior. Você também pode acessar o menu de comparação de " -"itenspressionando C após para ver o menu de itens próximos" -" éaberto e um item é selecionado." #: lang/json/help_from_json.py msgid "" @@ -96566,14 +85138,6 @@ msgid "" "strength. Cutting damage is a guaranteed increase in damage, but it may be " "reduced by a monster's natural armor." msgstr "" -" Todos os itens podem ser usados como armas brancas, embora alguns " -"sejammelhores que outros. Você pode verificar os atributos corpo a corpo de " -"umitem que está carregando ao bater para entrar no " -"seuinventário, pressionando a letra do item. Existem 3 valores de " -"combatecorpo a corpo: golpe, corte e bônus de golpe (ou penalidade). Dano de" -" golpeé universalmente efetivo, mas é limitado pela baixa força. Dano de " -"corte éum aumento garantido no dano, mas pode ser reduzido pela armadura " -"naturalde um monstro." #: lang/json/help_from_json.py msgid "" @@ -96584,12 +85148,6 @@ msgid "" "unwielding your weapon, it will go back in your inventory, or will be " "dropped on the ground if there is no space." msgstr "" -" Para empunhar um item como arma, pressione então a " -"letraadequada. empunhar o item que você está empunhando no momento vai " -"manobrá-lo, deixando as mãos vazias. Uma arma empunhada não contribuirá para" -" o seuvolume transportado, por isso, segurar um item grande em suas mãos " -"pode seruma boa opção para viajar. Ao manusear sua arma, ela retornará ao " -"seuinventário ou será derrubada no chão se não houver espaço." #: lang/json/help_from_json.py msgid "" @@ -96597,9 +85155,6 @@ msgid "" "Armor reduces damage and helps you resist things like smoke. To take off an " "item, press then the proper letter." msgstr "" -" Para usar uma peça de roupa, pressione então a letra adequada." -" A armadura reduz o dano e ajuda a resistir a coisas como fumaça. " -"Pararetirar um item, pressione então a letra adequada." #: lang/json/help_from_json.py msgid "" @@ -96607,10 +85162,6 @@ msgid "" "open) is the ability to filter or prioritize items. You can enter item " "names, or various advanced filter strings: {:}" msgstr "" -" Também disponível no menu Exibir itens próximos (pressione" -" para abrir) é a capacidade de filtrar ou priorizar itens. Você pode inserir" -" nomes de itens ou várias sequências de filtros avançados:{ : " -" }" #: lang/json/help_from_json.py msgid "" @@ -96620,15 +85171,10 @@ msgid "" "\t dgt = damage greater than (0-5) | {dgt:2}\n" "\t dlt = damage less than (0-5) | {dlt:1}" msgstr "" -" Tokens atualmente disponíveis: \n" -" \\ tc = category (livros, comida, etc) |{c: livros} \n" -" \\ tm = material (algodão, kevlar, etc) | {m: ferro} \n" -" \\ tdgt = dano maior que (0-5) | {dgt: 2} \n" -" \\ t dlt = dano menor que (0-5) |{dlt: 1}\n" #: lang/json/help_from_json.py msgid ": Combat" -msgstr ": Combate" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96636,9 +85182,6 @@ msgid "" "represented by letters on your screen; a list of monster names, and their " "positions relative to you, is displayed on the right side of the screen." msgstr "" -" Zumbis nas cidades irão aparecer no início do jogo. Todos os monstros " -"sãorepresentados por letras na tela; uma lista de nomes de monstros e " -"suasposições em relação a você é exibida no lado direito da tela." #: lang/json/help_from_json.py msgid "" @@ -96650,14 +85193,6 @@ msgid "" " and lose movement points. If a monster hits you, your clothing may absorb " "some damage, but you will absorb the excess." msgstr "" -" Para atacar um monstro com uma arma branca, simplesmente mova-se para eles." -" O tempo que leva para atacar depende do tamanho e peso da sua arma. " -"Armaspequenas e leves são as mais rápidas; Os ataques desarmados aumentam " -"develocidade com a sua habilidade de combate desarmado e, eventualmente, " -"serão MUITO rápidos. Um golpe de sucesso com uma arma contundente " -"podeatordoar o monstro temporariamente. Uma falta pode fazer você tropeçar " -"eperder pontos de movimento. Se um monstro bater em você, sua roupa " -"podeabsorver algum dano, mas você absorverá o excesso." #: lang/json/help_from_json.py msgid "" @@ -96666,11 +85201,6 @@ msgid "" " in a given firearm's description. Fortunately, a firearm often spawns with " "one such magazine in it." msgstr "" -" Enxames de monstros podem exigir armas de fogo. A maioria das armas de " -"fogono jogo exige revistas compatíveis para guardar as munições. " -"Revistascompatíveis são listadas na descrição de uma determinada arma de " -"fogo. Felizmente, uma arma de fogo geralmente aparece com uma dessas " -"revistas." #: lang/json/help_from_json.py msgid "" @@ -96683,14 +85213,6 @@ msgid "" "chambering a round though. Of course all this takes some time, so try not to" " do it if there are monsters nearby." msgstr "" -" Você pode ejetar uma revista de uma arma de fogo pressionando" -" e carregá-lo com munição compatível separadamente, ou sevocê tiver uma arma" -" de fogo com uma revista parcialmente preenchida, e umpouco de munição no " -"inventário, você pode simplesmente pedir uma recargapressionando " -" , então você irá ejetar automaticamente arevista, enchê-la " -"com o máximo de munição possível e depois colocar arevista de volta. Você " -"não precisa se preocupar com o uso de uma rodada. Claro que tudo isso leva " -"algum tempo, então tente não fazer isso se houvermonstros por perto." #: lang/json/help_from_json.py msgid "" @@ -96700,15 +85222,10 @@ msgid "" ".270 = .30-06,\n" ".40 S&W = 10mm." msgstr "" -" Embora as revistas sejam frequentemente específicas para armas de fogo, emalgumas ocasiões uma revista é compatível com várias outras armas de fogo. As armas de fogo no jogo geralmente refletem protótipos do mundo real emtermos de calibre e compatibilidade. Abaixo estão alguns exemplos demunição intercambiável: \n" -" .308 = 7.62x51mm, \n" -" .223 = 5.56 NATO, \n" -" .270 =.30-06, \n" -" .40 S & W = 10mm.\n" #: lang/json/help_from_json.py msgid "Magazine descriptions also list the compatible ammo." -msgstr "Descrições do carregador também listam a munição compatível." +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96717,11 +85234,6 @@ msgid "" "for example load 9x19mm JHP and 9x19mm FMJ ammo into the same magazine, " "since a magazine always requires identical rounds to be loaded in it." msgstr "" -" Observe que, embora existam vários tipos de munição para um " -"determinadocalibre e tipo de revista, não é possível misturar e combinar " -"esses tiposem uma única revista. Você não pode, por exemplo, carregar " -"munição 9x19mmJHP e 9x19mm FMJ na mesma revista, uma vez que uma revista " -"sempre requerque rodadas idênticas sejam carregadas nela." #: lang/json/help_from_json.py msgid "" @@ -96732,13 +85244,6 @@ msgid "" "'a'ctivate the appropriate clothing item, at which point you'll get to " "choose which magazine to store." msgstr "" -" As revistas podem ser armazenadas dentro de vários acessórios " -"desgastadospara acesso mais rápido, como plataformas peitorais e bolsas de " -"munição. Todos esses itens de armazenamento compatíveis estão listados na " -"descriçãode uma determinada revista. No momento, você só pode armazenar uma " -"revistapor item de vestuário. Para guardar uma revista em um item de " -"vestuário,'ative o item de vestuário apropriado, no ponto em que você " -"poderáescolher qual revista armazenar." #: lang/json/help_from_json.py msgid "" @@ -96749,14 +85254,6 @@ msgid "" ". Firing continuously, especially in bursts, will " "severely reduce accuracy." msgstr "" -" Para disparar, pressione , mova o cursor para o " -"espaçorelevante e pressione '.' para aumentar o objetivo da sua arma" -" e'f' para disparar. Além disso, você pode querer atirar em níveis " -"deobjetivo pré-definidos usando 'a', 'c' ou " -"'p'.Algumas armas têm modos de disparo alternados, como o fogo " -"explodido; paraalternar os modos, pressione . " -"Dispararcontinuamente, especialmente em rajadas, reduzirá severamente a " -"precisão." #: lang/json/help_from_json.py msgid "" @@ -96764,13 +85261,10 @@ msgid "" " of zombies. Try to avoid getting cornered inside a building. Ducking down " "into the subways or sewers is often an excellent escape tactic." msgstr "" -" Fugir será muitas vezes uma tática sólida, especialmente quando dominadapor" -" um enxame de zumbis. Tente evitar ficar encurralado dentro de umprédio. " -"Mergulhar nos metrôs ou nos esgotos é uma excelente tática de fuga." #: lang/json/help_from_json.py msgid ": Martial arts styles" -msgstr ": Estilos de artes marciais" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96780,11 +85274,6 @@ msgid "" "found in their own traits, learned from manuals or by taking lessons from " "wandering masters." msgstr "" -" Uma variedade de estilos de luta estão disponíveis, particularmente para " -"olutador desarmado. Você pode começar com a sua escolha de um estilo único, " -"comumente ensinado, começando com o traço de Treinamento de Artes Marciais. " -"Muitos, muitos mais podem ser encontrados em seus próprios traços, " -"aprendidos com manuais ou tomando lições de mestres errantes." #: lang/json/help_from_json.py msgid "" @@ -96798,15 +85287,6 @@ msgid "" "accidentally wielding weapons taken from the ground, enable \"Keep hands " "free\" found in the styles menu." msgstr "" -" Para selecionar um estilo de luta, pressione . " -"Algunsestilos são relevantes somente quando você está desarmado, outros " -"sãocompatíveis ou exigem certas armas. Se a sua arma atual é compatível com " -"oestilo escolhido, você começará a usar o estilo selecionado imediatamente. " -"Caso contrário, será bloqueado como seu estilo padrão. Para começar a usá- " -"lo, manuseie uma arma relevante ou esvazie suas mãos, " -"pressionando , então a chave para o item que você está usando " -"atualmente. Se você quiser evitar o uso acidental de armas retiradas do " -"chão, ative 'Manter as mãos livres' encontradas no menu de estilos." #: lang/json/help_from_json.py msgid "" @@ -96815,10 +85295,6 @@ msgid "" "unarmed skill. You can check the moves by pressing '?' in the pick style " "menu." msgstr "" -" A maioria dos estilos tem uma variedade de movimentos especiais associadosa" -" eles. A maioria tem um requisito de habilidade e ficará indisponível " -"atévocê atingir um nível de habilidade desarmada. Você pode verificar " -"osmovimentos pressionando '?' no menu de estilo de seleção." #: lang/json/help_from_json.py msgid "" @@ -96827,14 +85303,10 @@ msgid "" "moves to bonuses depending on the situation you are in. You can check these " "by examining your style." msgstr "" -" Muitos estilos também têm efeitos especiais desbloqueados sob " -"certascondições. Estes são variados e exclusivos para cada estilo, e vão " -"desdemovimentos combinados especiais até bônus, dependendo da situação em " -"quevocê se encontra. Você pode verificar isso examinando seu estilo." #: lang/json/help_from_json.py msgid ": Survival tips" -msgstr ": Dicas de sobrevivência" +msgstr "" #: lang/json/help_from_json.py msgid "" @@ -96845,13 +85317,6 @@ msgid "" " may carry others. Unless you plan on concentrating on melee combat, seek " "out gun stores as soon as possible and load up on more than one type." msgstr "" -" A primeira coisa a fazer é verificar o seu local de partida para " -"itensúteis. Seu armazenamento inicial é limitado, e uma mochila, " -"capaimpermeável ou outro meio de armazenamento permitirá que você leve " -"muitomais. Encontrar uma arma é importante; frigideiras, facas de açougueiro" -" emuito mais são comuns em casas; lojas de ferragens podem carregar outras. " -"Amenos que você planeje se concentrar em combates corpo a corpo, procure " -"aslojas de armas o mais rápido possível e carregue em mais de um tipo." #: lang/json/help_from_json.py msgid "" @@ -96861,11 +85326,6 @@ msgid "" "equipment. The high concentration of zombies makes them a deathtrap -- but a" " necessary resource of food and ammunition." msgstr "" -" Também é importante levar alguns medicamentos; analgésicos são essenciais, " -"e drogas como cigarros facilitarão a sua vida (mas cuidado com o " -"vício).Deixe a cidade assim que você tiver um bom estoque de equipamentos. A" -" altaconcentração de zumbis faz deles uma armadilha mortal - mas um " -"recursonecessário de comida e munição." #: lang/json/help_from_json.py msgid "" @@ -96874,11 +85334,6 @@ msgid "" " slowly climb through. Never be afraid to just run if you can outpace your " "enemies. Irregular terrain, like forests, may help you lose monsters." msgstr "" -" O combate é muito mais fácil se você puder lutar apenas com um monstro " -"deuma só vez. Use as portas como um ponto de estrangulamento ou fique " -"atrásde uma janela e bata enquanto os zumbis sobem lentamente. Nunca tenha " -"medode correr se você conseguir superar seus inimigos. Terrenos irregulares," -" como florestas, podem ajudá-lo a perder monstros." #: lang/json/help_from_json.py msgid "" @@ -96886,9 +85341,6 @@ msgid "" "attract unwanted attention. Save the guns for emergencies, and melee when " "you can." msgstr "" -" Usar armas de fogo é a maneira mais fácil de matar um inimigo, mas o " -"somatrairá atenção indesejada. Salve as armas para emergências e melee " -"quandopuder." #: lang/json/help_from_json.py msgid "" @@ -96898,11 +85350,6 @@ msgid "" "damage. Items made of glass, ceramics, diamond or precious metals will be " "totally immune to acid." msgstr "" -" Se você precisa se proteger do ácido, roupas feitas de tecido " -"<couro<kevlar <plástico. Assim, enquanto o couro e o kevlar " -"protegem vocêcontra inimigos ativos, um traje de proteção e botas de " -"borracha o tornarãoimune a danos ácidos. Itens feitos de vidro, cerâmica, " -"diamante ou metaispreciosos serão totalmente imunes ao ácido." #: lang/json/help_from_json.py msgid "" @@ -96910,9 +85357,6 @@ msgid "" " never know when you might need an item, most are good to sell, and you can " "easily drop unwanted items on the floor." msgstr "" -" Tente manter seu inventário o mais completo possível sem sobrecarregar. " -"Você nunca sabe quando pode precisar de um item, a maioria é boa paravender," -" e você pode facilmente deixar cair itens indesejados no chão." #: lang/json/help_from_json.py msgid "" @@ -96922,11 +85366,6 @@ msgid "" "frostbite. If you're having trouble staying warm over night, make a pile of " "clothing on the floor to sleep on." msgstr "" -" Fique de olho no tempo. Vento e umidade vão exacerbar as " -"condiçõesterríveis, então busque abrigo se você não conseguir resistir a " -"elas. Permanecer seco é importante, especialmente se as condições forem " -"tãobaixas que causariam congelamento. Se você está tendo problemas para " -"seaquecer durante a noite, faça uma pilha de roupas no chão para dormir." #: lang/json/help_from_json.py msgid "" @@ -96938,13 +85377,6 @@ msgid "" "layering penalty applies a minimum of 2 and a maximum of 10 encumbrance per " "article of clothing." msgstr "" -" Sua roupa pode ficar em uma das cinco camadas do seu corpo: próxima dapele," -" padrão, cintura, acima e com cinto. Você pode usar um item de cadacamada em" -" uma parte do corpo sem incorrer em uma penalidade de ônus paramuitos itens " -"gastos. Quaisquer itens além do primeiro em cada camadaadicionam o ônus do " -"(s) artigo (s) adicional (ais) de vestuário ao ônus daparte do corpo. A " -"penalidade de estratagema aplica-se a um mínimo de 2 e aum máximo de 10 " -"oneração por artigo de vestuário." #: lang/json/help_from_json.py msgid "" @@ -96954,11 +85386,6 @@ msgid "" "on a tank top it would conflict with the leather touring suit and add the " "minimum encumbrance penalty of 2." msgstr "" -" Por exemplo, em seu torso, um personagem pode usar um espartilho de " -"couro(próximo à pele), um traje de couro (padrão), um sobretudo (over) e " -"umpacote de runner (cinturão) de sobrevivente. Sua pena de empecilho é 0. " -"Seela colocar uma blusa, ela entrará em conflito com a roupa de couro " -"eacrescentará a penalidade mínima de ônus de 2." #: lang/json/help_from_json.py msgid ": Vehicles and Driving" @@ -96969,8 +85396,6 @@ msgid "" "You control vehicles using the numpad, or vikeys. However, you control their" " controls, rather than the vehicle directly." msgstr "" -" Você controla veículos usando o numpad ou vikeys. No entanto, você " -"controlaseus controles, em vez do veículo diretamente." #: lang/json/help_from_json.py msgid "" @@ -96988,10 +85413,6 @@ msgid "" "fumble the controls. As your Driving skill improves, you will fumble less " "and less. To simply maintain course and speed, hit ." msgstr "" -" 10-30 MPH, ou 16-48 KPH, é uma boa velocidade para pilotos iniciantes, " -"quetendem a atrapalhar os controles. À medida que sua habilidade de " -"dirigirmelhora, você vai se atrapalhar cada vez menos. Para simplesmente " -"manter orumo e a velocidade, pressione ." #: lang/json/help_from_json.py msgid "" @@ -97001,11 +85422,6 @@ msgid "" " to bring up the \"Vehicle Controls\" menu, which has" " options for things you'd do from the driver's seat." msgstr "" -" É uma boa ideia puxar o freio de mão - 's' - quandoestacionar, só para " -"ficar seguro. Se você quiser sair, acender as luzes, alternar o controle de " -"cruzeiro, ligar ou desligar o motor ou usar os controles do veículo, " -"pressione para abrir o menu 'Controles do Veículo', " -"que tem opções para as coisas que vocêfaria do assento do motorista." #: lang/json/help_from_json.py msgid "" @@ -97142,7 +85558,7 @@ msgstr "" #: lang/json/help_from_json.py msgid "<1>: List of item types and data" -msgstr "<1>: lista de tipos de itens e dados" +msgstr "" #: lang/json/help_from_json.py #, no-python-format @@ -97160,61 +85576,46 @@ msgid "" ", Tiny item\n" "These are all generic items, useful only to be wielded as a weapon. However, some have special uses; they will show up under the TOOLS section in your inventory. Press to use these." msgstr "" -" / Arma grande \n" -" ; Pequena arma ou ferramenta \n" -" , Item minúsculo \\ nEstessão todos itens genéricos, úteis apenas para serem usados como armas. Noentanto, alguns têm usos especiais; eles aparecerão na seção FERRAMENTAS doseu inventário. pressione para usar estes.\n" #: lang/json/help_from_json.py msgid "" ") Container\n" "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 "" -" ) Contêiner \n" -" Esses itens podem conter outros itens. Alguns são armaspassáveis. Muitos serão listados com o seu conteúdo, por exemplo \"garrafa plástica de água\". Aqueles que contêm comestíveis podem ser comidos com ; isso pode deixar um recipiente vazio.\n" #: lang/json/help_from_json.py msgid "" "[ Clothing\n" "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 "" -" [Roupas \n" -" Isso pode ser usado com o chave ou removido com o chave. Pode cobrir uma ou mais partes do corpo; você podeusar vários artigos de vestuário em qualquer parte do corpo, mas isso vaiafetá-lo severamente. Cada artigo de vestuário pode fornecer espaço dearmazenamento, calor, sobrecarga e resistência a ataques de contusão e / oude corte. Alguns podem proteger contra efeitos ambientais.\n" #: lang/json/help_from_json.py msgid "" "( Firearm\n" "This weapon may be loaded with ammunition with , unloaded with , and fired with . Some have automatic fire, which may be used with at a penalty to accuracy. The color refers to the type; handguns are gray, shotguns are red, submachine guns are cyan, rifles are brown, assault rifles are blue, and heavy machine guns are light red. Each has a dispersion rating, a bonus to damage, a rate of fire, and a maximum load. Note that most firearms load fully in one action, while shotguns must be loaded one shell at a time." msgstr "" -" (Arma de fogo \n" -" Esta arma pode estar carregada de munição com descarregado com e disparou com . Alguns têm fogo automático, que pode ser usado com a uma penalidade de precisão. A cor refere-se aotipo; as armas de fogo são cinzas, as espingardas são vermelhas, asmetralhadoras são cianas, as espingardas são marrons, as espingardas deassalto são azuis e as metralhadoras pesadas são vermelhas-claras. Cada umtem uma classificação de dispersão, um bônus de dano, uma taxa de fogo euma carga máxima. Note que a maioria das armas de fogo é carregadacompletamente em uma ação, enquanto as espingardas devem ser carregadas umaconcha de cada vez.\n" #: lang/json/help_from_json.py msgid "" "= Ammunition\n" "Ammunition is worthless without a gun to load it into. Generally, there are several variants for any particular caliber. Ammunition has damage, dispersion, and range ratings, and an armor-piercing quality." msgstr "" -" = Munição \n" -" A munição é inútil sem uma arma para carregá-la. Geralmente, existem várias variantes para qualquer calibre específico. A munição temclassificações de dano, dispersão e alcance, além de uma qualidade deblindagem.\n" #: lang/json/help_from_json.py msgid "" "* Thrown weapon; simple projectile or grenade\n" "These items are suited for throwing, and many are only useful when thrown, such as grenades, Molotov cocktails, or tear gas. Once activated be certain to throw these items by pressing , then the letter of the item to throw." msgstr "" -" * Arma lançada; simples projétil ou granada \n" -" Esses itens são adequadospara arremessos, e muitos são úteis apenas quando jogados, como granadas, coquetéis Molotov ou gás lacrimogêneo. Uma vez ativado, certifique-se dejogar esses itens pressionando , então a letra do item parajogar.\n" #: lang/json/help_from_json.py msgid "" "? Book or magazine\n" "This can be read for training or entertainment by pressing . Most require a basic level of intelligence; some require some base knowledge in the relevant subject. Some books may contain useful crafting recipes." msgstr "" -" ? Livro ou revista \n" -" Isso pode ser lido para treinamento ou entretenimentopressionando . A maioria exige um nível básico deinteligência; alguns requerem algum conhecimento básico no assuntorelevante. Alguns livros podem conter receitas de artesanato úteis.\n" #: lang/json/help_from_json.py msgid "<2>: Description of map symbols" -msgstr "<2>: Descrição dos símbolos do mapa" +msgstr "" #: lang/json/help_from_json.py msgid "MAP SYMBOLS:" @@ -97225,158 +85626,123 @@ msgid "" ". Field - Empty grassland, occasional wild " "fruit." msgstr "" -" . Campo - Pradaria vazia, frutos " -"silvestresocasionais." #: lang/json/help_from_json.py msgid "" "F Forest - May be dense or sparse. Slow " "moving; foragable food." msgstr "" -" F Floresta - Pode ser densa ou esparsa. " -"Movendodevagar; alimento foragable." #: lang/json/help_from_json.py msgid "" "│─└┌┐┘├┴┤┬┼ Road - Safe from burrowing animals." msgstr "" -" │─└┌┐┘├┴┤┬┼ Road - Seguro de animais burrowing." #: lang/json/help_from_json.py msgid "" "H= Highway - Like roads, but lined with " "guard rails." msgstr "" -" H = Rodovia - Como estradas, mas revestidas " -"degrades de proteção." #: lang/json/help_from_json.py msgid "|- Bridge - Helps you cross rivers." -msgstr " | - Bridge - Ajuda você a atravessar rios." +msgstr "" #: lang/json/help_from_json.py msgid "" "R River - Most creatures can not swim across " "them, but you may." msgstr "" -" R Rio - A maioria das criaturas não consegue " -"nadarnelas, mas você pode." #: lang/json/help_from_json.py msgid "" "O Parking lot - Empty lot, few items. " "Mostly useless." msgstr "" -" O Estacionamento - Lote vazio, alguns itens. " -"Principalmente inútil." #: lang/json/help_from_json.py msgid "" "^>v< House - Filled with a variety of " "items. Good place to sleep." msgstr "" -" ^> v < Casa - preenchida com " -"umavariedade de itens. Bom lugar para dormir." #: lang/json/help_from_json.py msgid "" "^>v< Gas station - A good place to collect " "gasoline. Risk of explosion." msgstr "" -" ^> v < Posto de gasolina - Um bom " -"lugarpara coletar gasolina. Risco de explosão" #: lang/json/help_from_json.py msgid "" "^>v< Pharmacy - The best source for vital " "medications." msgstr "" -" ^> v < Farmácia - A melhor fonte " -"demedicamentos vitais." #: lang/json/help_from_json.py msgid "" "^>v< Grocery store - A good source of canned " "food and other supplies." msgstr "" -" ^> v < Mercearia - Uma boa fonte de " -"comidaenlatada e outros suprimentos." #: lang/json/help_from_json.py msgid "" "^>v< Hardware store - Home to tools, melee " "weapons and crafting goods." msgstr "" -" ^> v < Loja de ferragens - Casa de ferramentas," -" armas brancas e produtos de artesanato." #: lang/json/help_from_json.py msgid "" "^>v< Sporting Goods store - Several " "survival tools and melee weapons." msgstr "" -" ^> v < Loja de artigos esportivos -Várias" -" ferramentas de sobrevivência e armas brancas." #: lang/json/help_from_json.py msgid "" "^>v< Liquor store - Alcohol is good for " "crafting Molotov cocktails." msgstr "" -" ^> v < Loja de bebidas alcoólicas - O " -"álcoolé bom para a elaboração de coquetéis Molotov." #: lang/json/help_from_json.py msgid "" "^>v< Gun store - Firearms and ammunition are very " "valuable." msgstr "" -" ^> v < Loja de armas - Armas de fogo e " -"muniçõessão muito valiosas." #: lang/json/help_from_json.py msgid "" "^>v< Clothing store - High-capacity clothing, " "some light armor." msgstr "" -" ^> v < Loja de roupas - Roupas de " -"altacapacidade, algumas armaduras leves." #: lang/json/help_from_json.py msgid "" "^>v< Library - Home to books, both entertaining " "and informative." msgstr "" -" ^> v < Biblioteca - Lar de livros, " -"tantodivertidos quanto informativos." #: lang/json/help_from_json.py msgid "" "^>v< Man-made buildings - The pointed side " "indicates the front door." msgstr "" -" ^> v < Edifícios construídos pelo homem - " -"Olado pontiagudo indica a porta da frente." #: lang/json/help_from_json.py msgid " There are many others out there... search for them!" -msgstr "Há muitos outros por aí ... procure por eles!" +msgstr "" #: lang/json/help_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/help_from_json.py msgid "<3>: Description of gun types" -msgstr "<3>: Descrição dos tipos de armas" +msgstr "" #: lang/json/help_from_json.py msgid "" "( Handguns\n" "Handguns are small weapons held in one or both hands. They are much more difficult to aim and control than larger firearms, and this is reflected in their poor accuracy. However, their small size makes them appropriate for short-range combat. They are also relatively quick to reload and use a very wide selection of ammunition. Their small size and low weight make it possible to carry several loaded handguns, switching from one to the next once their ammo is spent." msgstr "" -" (Armas de mão \n" -" Handguns são pequenas armasmantidas em uma ou ambas as mãos. Eles são muito mais difíceis de mirar econtrolar do que as armas de fogo maiores, e isso se reflete em sua poucaprecisão. No entanto, seu pequeno tamanho os torna apropriados paracombates de curto alcance. Eles também são relativamente rápidos pararecarregar e usar uma ampla variedade de munição. Seu pequeno tamanho ebaixo peso possibilitam carregar várias armas carregadas, mudando de umapara a outra quando sua munição é gasta.\n" #: lang/json/help_from_json.py msgid "" @@ -97384,9 +85750,6 @@ msgid "" "The best feature of crossbows is their silence. The bolts they fire are only rarely destroyed; if you pick up the bolts after firing them, your ammunition supply will last much longer. Crossbows suffer from a short range and a very long reload time (modified by your strength); plus, most only hold a single round. \n" "For this reason, it is advisable to carry a few loaded crossbows. Crossbows can be very difficult to find; however, it is possible to craft one given enough Mechanics skill. Likewise, it is possible to make wooden bolts from any number of wooden objects, though these are much less effective than steel bolts. Crossbows use the handgun skill." msgstr "" -" (Bestas \n" -" A melhor característica de bestas é o seusilêncio. Os parafusos que eles disparam raramente são destruídos; Se vocêpegar os parafusos depois de demiti-los, o suprimento de munição vai durarmuito mais tempo. Bestas sofrem de um curto alcance e um tempo de recargamuito longo (modificado pela sua força); Além disso, a maioria só possuiuma única rodada. \n" -" Por esta razão, é aconselhável levar algumas bestascarregadas. Bestas pode ser muito difícil de encontrar; no entanto, épossível criar uma habilidade de Mecânica suficiente. Da mesma forma, épossível fazer parafusos de madeira a partir de qualquer número de objetosde madeira, embora estes sejam muito menos eficazes do que os parafusos deaço. Bestas usam a habilidade de arma.\n" #: lang/json/help_from_json.py msgid "" @@ -97394,9 +85757,6 @@ msgid "" "Silent, deadly, easy to make, and the arrows are reusable. Bows have been used forever. Bows are two handed and require the user to have a certain strength level. If you do not have enough strength to draw the string back, you will fire at a reduced effectiveness. This reduces the reload and fire speeds and decreases the range of the arrows fired. \n" "Most normal bows require strength of at least 8, others require an above average strength of 10, or a significant strength of 12. Bows use the archery skill." msgstr "" -" (Arcos \n" -" Silencioso, mortal, fácil de fazer, e asflechas são reutilizáveis. Arcos foram usados para sempre. Arcos são deduas mãos e exigem que o usuário tenha um certo nível de força. Se você nãotem força suficiente para puxar a corda de volta, você irá atirar com umaeficácia reduzida. Isso reduz as velocidades de recarga e disparo e diminuio alcance das setas disparadas. \n" -" A maioria dos arcos normais requeremforça de pelo menos 8, outros requerem uma força acima da média de 10, ouuma força significativa de 12. Arcos usam a habilidade de arco e flecha.\n" #: lang/json/help_from_json.py msgid "" @@ -97404,25 +85764,18 @@ msgid "" "Shotguns are some of the most powerful weapons in the game, capable of taking out almost any enemy with a single hit. Birdshot and 00 shot spread, making it very easy to hit nearby monsters. However, they are very ineffective against armor, and some armored monsters might shrug off 00 shot completely. Shotgun slugs are the answer to this problem; they also offer much better range than shot.\n" "The biggest drawback to shotguns is their noisiness. They are very loud, and impossible to silence. A shot that kills one zombie might attract three more! Beware of that." msgstr "" -" (Espingardas \n" -" As armas são algumas das armas mais poderosas do jogo, capazes de eliminar quase todos os inimigos com um únicogolpe. Birdshot e 00 shot se espalharam, tornando muito fácil atingirmonstros próximos. No entanto, eles são muito ineficazes contra a armadura, e alguns monstros blindados podem dar de ombros completamente. Asespingardas de espingarda são a resposta para este problema; eles tambémoferecem alcance muito melhor do que o disparo. \n" -" A maior desvantagem deespingardas é o seu ruído. Eles são muito altos e impossíveis de silenciar. Um tiro que mata um zumbi pode atrair mais três! Cuidado com isso.\n" #: lang/json/help_from_json.py 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 "" -" (Metralhadoras \n" -" As armas submachinas são pequenasarmas (algumas são pouco maiores que uma arma), projetadas para combaterelativamente próximo e a capacidade de pulverizar grandes quantidades debalas. No entanto, eles são mais eficazes ao disparar tiros únicos, portanto, use discrição. Eles usam principalmente as munições 9mm e .45; noentanto, existem outras SMGs. Eles recarregam moderadamente rapidamente esão adequados para combate de curto ou médio alcance.\n" #: lang/json/help_from_json.py msgid "" "( Sniper and Marksman Rifles\n" "Sniper and marksman rifles are popular for their superior range and accuracy. What's more, their scopes or sights make shots fired at targets at very long range as accurate as those with a shorter range. Unlike assault rifles, sniper and marksman rifles usually have no automatic fire. They are also may be slow to reload and fire, so when facing a large group of nearby enemies, they are not the best pick." msgstr "" -" (Sniper e Marksman Rifles \n" -" As espingardas deprecisão e de atirador são populares por seu alcance e precisão superiores. Além disso, seus telescópios ou miras fazem tiros disparados contra alvos auma distância muito longa, tão precisos quanto aqueles com um alcancemenor. Ao contrário dos fuzis de assalto, os rifles atiradores e atiradoresgeralmente não têm fogo automático. Eles também podem ser lentos pararecarregar e disparar, por isso, quando enfrentam um grande grupo deinimigos próximos, eles não são a melhor escolha.\n" #: lang/json/help_from_json.py msgid "" @@ -97430,17 +85783,12 @@ msgid "" "Assault rifles are similar to hunting rifles in many ways; they are also suited for long range combat, with similar bonuses and penalties. Unlike hunting rifles, assault rifles are capable of automatic fire. Assault rifles are less accurate than hunting rifles, and this is worsened under automatic fire, so save it for when you're highly skilled. \n" "Assault rifles are an excellent choice for medium or long range combat, or even close-range bursts again a large number of enemies. They are difficult to use, and are best saved for skilled riflemen." msgstr "" -" (Rifles de assalto \n" -" As espingardas de assalto sãosemelhantes às espingardas de caça de várias maneiras; eles também sãoadequados para combates de longo alcance, com bônus e penalidadessemelhantes. Ao contrário dos fuzis de caça, os fuzis de assalto sãocapazes de disparar automaticamente. Os fuzis de assalto são menos precisosdo que os rifles de caça, e isso é agravado sob fogo automático, portanto, guarde-o para quando você for altamente qualificado. \n" -" As espingardas àprova de balas são uma excelente escolha para combates de médio ou longoalcance, ou até mesmo rajadas de perto, um grande número de inimigos. Elessão difíceis de usar e são mais bem guardados para os fuzileirosqualificados.\n" #: lang/json/help_from_json.py msgid "" "( Machine Guns\n" "Machine guns are one of the most powerful firearms available. They are even larger than assault rifles; however, they are capable of holding 100 or more rounds of highly-damaging ammunition. They are not built for accuracy, and firing single rounds is not very effective. However, they also possess a very high rate of fire and somewhat low recoil, making them very good at clearing out large numbers of enemies." msgstr "" -" ( Metralhadoras \n" -" As metralhadoras são uma dasarmas mais poderosas disponíveis. Eles são ainda maiores que os fuzis deassalto; no entanto, eles são capazes de realizar 100 ou mais cartuchos demunição altamente prejudicial. Eles não são construídos para precisão, edisparar rodadas simples não é muito eficaz. No entanto, eles tambémpossuem uma taxa muito alta de fogo e recuo um pouco baixo, tornando- osmuito bons em eliminar um grande número de inimigos.\n" #: lang/json/help_from_json.py msgid "" @@ -97448,120 +85796,82 @@ msgid "" "Energy weapons is an umbrella term used to describe a variety of rifles and handguns which fire lasers, plasma, or energy attacks. They started to appear in military use just prior to the start of the apocalypse, and as such are very difficult to find.\n" "Energy weapons have no recoil at all; they are nearly silent, have a long range, and are fairly damaging. The biggest drawback to energy weapons is scarcity of ammunition; it is wise to reserve the precious ammo for when you really need it." msgstr "" -" (Armas Energéticas Armas de energia é um termousado para descrever uma variedade de rifles e revólveres que disparamlasers, plasma ou ataques de energia. Eles começaram a aparecer em usomilitar pouco antes do início do apocalipse e, como tal, são muito difíceisde encontrar. \n" -" Armas energéticas não têm nenhum recuo; eles são quasesilenciosos, têm um longo alcance e são bastante prejudiciais. A maiordesvantagem das armas de energia é a escassez de munição; É sábio reservara preciosa munição para quando você realmente precisar dela.\n" #: lang/json/help_from_json.py msgid "<4>: FAQ (contains spoilers!)" -msgstr "<4>: FAQ (contém spoilers!)" +msgstr "" #: lang/json/help_from_json.py msgid "" "Q: What is Safe Mode, and why does it prevent me from moving?\n" "A: Safe Mode is a way to guarantee that you won't die by holding a movement key down. When a monster comes into view, your movement will be ignored until Safe Mode is turned off with the ! key. This ensures that the sudden appearance of a monster won't catch you off guard." msgstr "" -" P: O que é o Modo de segurança e por que ele me impede de se mover? \" " -"NA:Modo de segurança é uma maneira de garantir que você não morra " -"mantendopressionada uma tecla de movimento. Quando um monstro aparece, " -"seumovimento será ignorado até que o Modo de Segurança seja desativado com " -"o!chave. Isso garante que a aparição repentina de um monstro não irá pegá- " -"lodesprevenido." #: lang/json/help_from_json.py msgid "" "Q: It seems like everything I eat makes me sick! What's wrong?\n" "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 "" -" P: Parece que tudo que eu como me deixa doente! O que está errado? \" " -"NA:Muita da comida encontrada nas cidades é perecível e durará apenas " -"algunsdias após o início de um novo jogo. A eletricidade saiu há vários dias" -" paraque frutas, leite e outros sejam os primeiros a estragar. Após os " -"primeirosdois dias, você deve mudar para comida enlatada, carne seca e caça." -" Alémdisso, você deve certificar-se de cozinhar qualquer alimento e " -"purificar aágua que você quer, pois pode conter parasitas ou não ser seguro." #: lang/json/help_from_json.py msgid "" "Q: How can I remove boards from boarded-up windows and doors?\n" "A: Use a hammer and choose the direction of the boarded-up window or door to remove the boards." msgstr "" -" P: Como posso remover placas de portas e janelas com painéis? \n" -" A: Use ummartelo e escolha a direção da janela ou porta com tábuas para remover asplacas.\n" #: lang/json/help_from_json.py 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 "" -" Q: O jogo apenas me disse para sair, e outras coisas estranhas estãoacontecendo. \n" -" A: Você tem o traço esquizofrênico, que pode fazer o jogoparecer um buggy.\n" #: lang/json/help_from_json.py msgid "" "Q: How can I prevent monsters from attacking while I sleep?\n" "A: Find a safe place to sleep, for example in a cleared building far from the front door. Set traps if you have them, or build a fire." msgstr "" -" P: Como posso evitar que monstros ataquem enquanto eu durmo? \n" -" A: Encontreum lugar seguro para dormir, por exemplo, em um prédio limpo longe da portada frente. Defina armadilhas se você as tiver ou construa um incêndio.\n" #: lang/json/help_from_json.py msgid "" "Q: Why do I always sink when I try to swim?\n" "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." msgstr "" -" P: Por que eu sempre afundo quando tento nadar? \n" -" A: Sua capacidade denatação é muito reduzida pelo peso que você está carregando e também éafetada negativamente pelas roupas que você veste. Até atingir um altonível de habilidade de natação, você precisará soltar seu equipamento eremover sua roupa para nadar, tornando-o um plano de fuga de última hora.\n" #: lang/json/help_from_json.py msgid "" "Q: How can I cure a fungal infection?\n" "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 "" -" P: Como posso curar uma infecção fúngica? \n" -" A: A geléia real, o filtrosanguíneo biônico e alguns antifúngicos podem curar a infecção por fungos. Você pode encontrar geléia real nas colméias que pontilham as florestas. Osprodutos químicos antifúngicos para curar a infecção fúngica podem serencontrados como produtos aleatórios ou feitos de outros ingredientes.\n" #: lang/json/help_from_json.py msgid "" "Q: How do I get into science labs?\n" "A: You can enter the front door if you have an ID card by examining () the keypad. If you are skilled in computers and have an electrohack, it is possible to hack the keypad. An EMP blast has a chance to force the doors open, but it's more likely to break them. You can also sneak in through the sewers sometimes, or try to smash through the walls with explosions." msgstr "" -" P: Como entro nos laboratórios de ciências? \n" -" A: Você pode entrar pelaporta da frente se tiver uma carteira de identidade examinando ( ) o teclado. Se você é habilidoso em computadores e tem umelectrohack, é possível hackear o teclado. Uma explosão EMP tem a chance deforçar a abertura das portas, mas é mais provável que elas sejam quebradas. Você também pode se esgueirar pelos esgotos às vezes, ou tentar quebrar asparedes com explosões.\n" #: lang/json/help_from_json.py msgid "" "Q: Why does my crafting fail so often?\n" "A: Check the difficulty of the recipe, and the primary skill used; your skill level should be around one and a half times the difficulty to be confident that it will succeed." msgstr "" -" P: Por que minha elaboração falha com tanta frequência? \n" -" A: Verifique adificuldade da receita e a habilidade primária usada; seu nível dehabilidade deve ser em torno de uma vez e meia a dificuldade de ter certezade que será bem-sucedido.\n" #: lang/json/help_from_json.py msgid "" "Q: Why can't I carry anything?\n" "A: At the start of the game you only have the space in your pockets. A good first goal of many survivors is to find a backpack or pouch to store things in. (The shelter basement is a good place to check first!)" msgstr "" -" P: Por que não consigo carregar nada? \n" -" A: No início do jogo, você só temespaço nos seus bolsos. Um bom primeiro objetivo de muitos sobreviventes éencontrar uma mochila ou bolsa para guardar coisas. (O porão do abrigo é umbom lugar para verificar primeiro!)\n" #: lang/json/help_from_json.py msgid "" "Q: Help! I started a fire and now my house is burning down!\n" "A: Fires will spread to nearby flammable tiles if they are able. Lighting a fire in a set-up brazier, stove, wood stove, stone fireplace, or pit will stop it from spreading. Fire extinguishers can put out fires that get out of control." msgstr "" -" Q: Ajuda! Eu iniciei um incêndio e agora minha casa está queimando. \" " -"NA:Incêndios se espalharão para as telhas inflamáveis próximas se " -"elespuderem. Acender um fogo em um braseiro, fogão, fogão a lenha, lareira " -"depedra ou cova impedirá que ele se espalhe. Extintores de incêndio " -"podemapagar incêndios que saem do controle." #: lang/json/help_from_json.py msgid "" "Q: I'm cold and can't sleep at night!\n" "A: Gather some clothes and put them in the place you use to sleep in. Being hungry, thirsty, wet, or injured can also make you feel the cold more, so try to avoid these effects before you go to sleep." msgstr "" -" P: Estou com frio e não consigo dormir à noite! \n" -" A: Reúna algumas roupase coloque-as no local em que você costuma dormir. Estar com fome, com sede, molhado ou ferido também pode fazer com que você sinta mais o frio, entãotente evitar esses efeitos antes de dormir.\n" #: lang/json/help_from_json.py msgid "" @@ -97573,56 +85883,48 @@ msgid "" " .308 (7.62) - for even more powerful rifles. Also good long range option.\n" " It should be enough in the beginning. Or even just grab any shotgun, fill it with buckshot and give them hell!" msgstr "" -" Q: Existem muitos calibres e armas. Isso me confunde - eu não costumoentender o que é compatível com o que. \n" -" A: Tente lembrar alguns calibreshabituais: \n" -" 9x19 (ou simplesmente 9mm) - cabe a maioria das pistolasbásicas (Glock, por exemplo) e SMGs, muito fáceis de encontrar e fazer otrabalho contra os zumbis comuns; \n" -" 00 - chumbo - para a maioria dasespingardas. Muito poderoso contra alvo não armado em intervalos maispróximos; \n" -" .223 (5.56) - para rifles. Boa opção de longo alcance. \\ N.308 (7.62) - para rifles ainda mais potentes. Também é uma boa opção delongo alcance. \n" -" Deve ser o suficiente no começo. Ou até mesmo pegarqualquer espingarda, preenchê-lo com chumbo grosso e dar-lhes o inferno!\n" #: lang/json/help_from_json.py msgid "" "Q: I have a question that's not addressed here. How can I get an answer?\n" "A: Ask the helpful people on the forum at discourse.cataclysmdda.org or at the IRC channel #CataclysmDDA on freenode." msgstr "" -" P: Eu tenho uma pergunta que não foi abordada aqui. Como posso obter umaresposta? \n" -" A: Pergunte às pessoas úteis no fórum emdiscourse.cataclysmdda.org ou no canal de IRC #CataclysmDDA em freenode.\n" #: lang/json/item_action_from_json.py msgid "Repair cotton/leather/wool/Nomex/fur" -msgstr "Reparação de algodão / couro / lã / Nomex / pele" +msgstr "" #: lang/json/item_action_from_json.py msgid "Repair metal/plastic/kevlar" -msgstr "Reparação de metal / plástico / kevlar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Modify Clothing" -msgstr "Modificar vestimenta" +msgstr "" #: lang/json/item_action_from_json.py msgid "Start a fire quickly" -msgstr "Comece um incêndio rapidamente" +msgstr "" #: lang/json/item_action_from_json.py msgid "Pull out nails" -msgstr "Retire as unhas" +msgstr "" #: lang/json/item_action_from_json.py msgid "Pick a lock" -msgstr "Pegue um cadeado" +msgstr "" #: lang/json/item_action_from_json.py msgid "Deploy item" -msgstr "Implantar item" +msgstr "" #: lang/json/item_action_from_json.py msgid "Pry crate, window or door" -msgstr "Caixa de alavanca, janela ou porta" +msgstr "" #: lang/json/item_action_from_json.py msgid "Upturn earth" -msgstr "Terra subida" +msgstr "" #: lang/json/item_action_from_json.py msgid "Dig water channel here" @@ -97630,7 +85932,7 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Dig through rock" -msgstr "Cavar através da rocha" +msgstr "" #: lang/json/item_action_from_json.py msgid "Burrow through rock" @@ -97638,39 +85940,39 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Use geiger counter" -msgstr "Use o contador geiger" +msgstr "" #: lang/json/item_action_from_json.py msgid "Cut metal" -msgstr "Cortar metal" +msgstr "" #: lang/json/item_action_from_json.py msgid "Cut bolts or wires" -msgstr "Cortar parafusos ou fios" +msgstr "" #: lang/json/item_action_from_json.py msgid "Heat up food (with it)" -msgstr "Aquecer a comida (com ela)" +msgstr "" #: lang/json/item_action_from_json.py msgid "Repair wood/paper/bone/chitin" -msgstr "Reparo de madeira / de papel / de ossos / de quitina" +msgstr "" #: lang/json/item_action_from_json.py msgid "Attach as toolmod" -msgstr "Anexar como toolmod" +msgstr "" #: lang/json/item_action_from_json.py msgid "Attach as gunmod" -msgstr "Anexar como gunmod" +msgstr "" #: lang/json/item_action_from_json.py msgid "Repair a gun" -msgstr "Reparar uma arma" +msgstr "" #: lang/json/item_action_from_json.py msgid "Create a moving hologram" -msgstr "Crie um holograma em movimento" +msgstr "" #: lang/json/item_action_from_json.py msgid "Extract data from memory banks" @@ -97678,47 +85980,47 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Hack a robot" -msgstr "Hacker um robô" +msgstr "" #: lang/json/item_action_from_json.py msgid "Smoke/snort meth" -msgstr "Smoke / snort meth" +msgstr "" #: lang/json/item_action_from_json.py msgid "Taze something" -msgstr "Algo Taze" +msgstr "" #: lang/json/item_action_from_json.py msgid "Take anticonvulsant" -msgstr "Tome anticonvulsivo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Cut a log into planks" -msgstr "Cortar um log em pranchas" +msgstr "" #: lang/json/item_action_from_json.py msgid "Remove tool mods" -msgstr "Remover mods da ferramenta" +msgstr "" #: lang/json/item_action_from_json.py msgid "Cut up an item" -msgstr "Cortar um item" +msgstr "" #: lang/json/item_action_from_json.py msgid "Write on an item" -msgstr "Escreva em um item" +msgstr "" #: lang/json/item_action_from_json.py msgid "Cauterize a wound" -msgstr "Cauterizar uma ferida" +msgstr "" #: lang/json/item_action_from_json.py msgid "Create a zombie slave" -msgstr "Crie um escravo zumbi" +msgstr "" #: lang/json/item_action_from_json.py msgid "Start countdown" -msgstr "Iniciar contagem regressiva" +msgstr "" #: lang/json/item_action_from_json.py msgid "Learn spell" @@ -97730,80 +86032,80 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Use holster" -msgstr "Use coldre" +msgstr "" #: lang/json/item_action_from_json.py msgid "Saw down barrel" -msgstr "Viu o cano" +msgstr "" #: lang/json/item_action_from_json.py msgid "Inject" -msgstr "Injetar" +msgstr "" #: lang/json/item_action_from_json.py lang/json/item_action_from_json.py #: src/handle_action.cpp msgid "Drink" -msgstr "Beber" +msgstr "" #: lang/json/item_action_from_json.py msgid "Take" -msgstr "Pegar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Use" -msgstr "Usar" +msgstr "" #: lang/json/item_action_from_json.py src/artifact.cpp msgid "Ring" -msgstr "Anel" +msgstr "" #: lang/json/item_action_from_json.py msgid "Attach" -msgstr "Anexar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Consume" -msgstr "Consumir" +msgstr "" #: lang/json/item_action_from_json.py msgid "Use camera" -msgstr "Use a câmera" +msgstr "" #: lang/json/item_action_from_json.py msgid "Pour out" -msgstr "Para fora" +msgstr "" #: lang/json/item_action_from_json.py msgid "Capture/place" -msgstr "Capturar / colocar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Place" -msgstr "Colocar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Chew" -msgstr "Mastigar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Clear rubble" -msgstr "Entulho claro" +msgstr "" #: lang/json/item_action_from_json.py msgid "Flip" -msgstr "Giro" +msgstr "" #: lang/json/item_action_from_json.py msgid "Snort coke" -msgstr "Coque snort" +msgstr "" #: lang/json/item_action_from_json.py msgid "Apply" -msgstr "Aplique" +msgstr "" #: lang/json/item_action_from_json.py lang/json/keybinding_from_json.py msgid "Eat" -msgstr "Comer" +msgstr "" #: lang/json/item_action_from_json.py msgid "Dig pit here" @@ -97811,15 +86113,15 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Find direction" -msgstr "Encontre a direção" +msgstr "" #: lang/json/item_action_from_json.py msgid "Blow" -msgstr "Golpe" +msgstr "" #: lang/json/item_action_from_json.py msgid "Make it talk" -msgstr "Faça falar" +msgstr "" #: lang/json/item_action_from_json.py msgctxt "ECIG" @@ -97828,44 +86130,44 @@ msgstr "Fumaça" #: lang/json/item_action_from_json.py msgid "Take off" -msgstr "Descolar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Spray" -msgstr "Spray" +msgstr "" #: lang/json/item_action_from_json.py msgid "Fill pit / tamp ground" -msgstr "Preencha o poço / terra" +msgstr "" #. ~ Mutation class name #: lang/json/item_action_from_json.py lang/json/mutation_category_from_json.py msgid "Fish" -msgstr "Pescar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Set" -msgstr "Conjunto" +msgstr "" #: lang/json/item_action_from_json.py msgid "Detach gunmods" -msgstr "Destacar gunmods" +msgstr "" #: lang/json/item_action_from_json.py msgid "Trim the hair" -msgstr "Aparar o cabelo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Heat up food (in it)" -msgstr "Aquecer a comida (nele)" +msgstr "" #: lang/json/item_action_from_json.py msgid "Inhale" -msgstr "Inalar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Drill" -msgstr "Broca" +msgstr "" #: lang/json/item_action_from_json.py src/options.cpp msgid "Ask" @@ -97874,15 +86176,15 @@ msgstr "Perguntar" #: lang/json/item_action_from_json.py lang/json/item_action_from_json.py #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Read" -msgstr "Ler" +msgstr "" #: lang/json/item_action_from_json.py msgid "Meditate" -msgstr "Meditar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Mop" -msgstr "Esfregão" +msgstr "" #: lang/json/item_action_from_json.py msgid "Play music" @@ -97898,7 +86200,7 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Prepare to use" -msgstr "Prepare-se para usar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Use regulator" @@ -97906,66 +86208,66 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Unfold" -msgstr "Desdobrar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Fold" -msgstr "Dobrar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Cook" -msgstr "Cozinhar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Cut up metal" -msgstr "Cortar metal" +msgstr "" #: lang/json/item_action_from_json.py msgid "Pack an item" -msgstr "Embale um item" +msgstr "" #: lang/json/item_action_from_json.py msgid "Squeeze" -msgstr "Aperto" +msgstr "" #: lang/json/item_action_from_json.py msgctxt "PORTABLE_GAME" msgid "Play" -msgstr "Jogar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Put up" -msgstr "Levante" +msgstr "" #: lang/json/item_action_from_json.py msgid "Measure radiation" -msgstr "Medir radiação" +msgstr "" #: lang/json/item_action_from_json.py lang/json/mission_def_from_json.py #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: lang/json/talk_topic_from_json.py src/game_inventory.cpp msgid "..." -msgstr "..." +msgstr "" #: lang/json/item_action_from_json.py msgid "Control an RC car" -msgstr "Controle um carro RC" +msgstr "" #: lang/json/item_action_from_json.py msgid "Modify an item" -msgstr "Modifique um item" +msgstr "" #: lang/json/item_action_from_json.py msgid "Control a vehicle" -msgstr "Controlar um veículo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Shave" -msgstr "Raspar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Siphon" -msgstr "Sifão" +msgstr "" #: lang/json/item_action_from_json.py msgctxt "SMOKING" @@ -97974,27 +86276,27 @@ msgstr "Fumaça" #: lang/json/item_action_from_json.py msgid "Write something" -msgstr "Escreva algo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Teleport yourself" -msgstr "Teleporte-se" +msgstr "" #: lang/json/item_action_from_json.py msgid "Extinguish a fire" -msgstr "Extinga fogo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Dry/clean yourself" -msgstr "Seque/Limpe a si mesmo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Unpack" -msgstr "Desembale" +msgstr "" #: lang/json/item_action_from_json.py msgid "Draw some blood" -msgstr "Desenhe um pouco de sangue" +msgstr "" #: lang/json/item_action_from_json.py msgid "Recharge a battery" @@ -98002,19 +86304,19 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Well, you know" -msgstr "Bem, você sabe" +msgstr "" #: lang/json/item_action_from_json.py msgid "Wash clothes" -msgstr "Lavar roupas" +msgstr "" #: lang/json/item_action_from_json.py msgid "Purify some water" -msgstr "Purificar água" +msgstr "" #: lang/json/item_action_from_json.py msgid "Check weather information" -msgstr "Verifique as informações do tempo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Reload" @@ -98022,40 +86324,40 @@ msgstr "Recarregar" #: lang/json/item_action_from_json.py msgid "Store/unload ammo" -msgstr "Armazenar/descarregar munição" +msgstr "" #: lang/json/item_action_from_json.py msgid "Make some noise" -msgstr "Fazer barulho" +msgstr "" #: lang/json/item_action_from_json.py msgctxt "musical_instrument" msgid "Play" -msgstr "Jogar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Activate/deactivate" -msgstr "Ativar/desativar" +msgstr "" #: lang/json/item_action_from_json.py msgid "Install bionic" -msgstr "Instalar biônico" +msgstr "" #: lang/json/item_action_from_json.py msgid "Chop down a tree" -msgstr "Derrubar uma árvore" +msgstr "" #: lang/json/item_action_from_json.py msgid "Chop a Tree Trunk into logs" -msgstr "Cortar tronco em lenha" +msgstr "" #: lang/json/item_action_from_json.py msgid "Break stick" -msgstr "Quebrar graveto" +msgstr "" #: lang/json/item_action_from_json.py msgid "Get content" -msgstr "Pegar o conteúdo" +msgstr "" #: lang/json/item_action_from_json.py msgid "Use Scale" @@ -98071,7 +86373,7 @@ msgstr "" #: lang/json/item_action_from_json.py msgid "Take a magnesium tablet" -msgstr "Tome um comprimido de magnésio" +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98083,7 +86385,7 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear has an alarm clock feature." -msgstr "Esta engrenagem tem um despertador característica." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98091,8 +86393,6 @@ msgid "" "This clothing won't hinder special attacks that involve mutated " "anatomy." msgstr "" -" Esta roupa não vai atrapalhar ataques especiais que envolvem anatomia" -" mutada ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98100,33 +86400,27 @@ msgid "" "This item can be activated or reloaded from adjacent tile without picking it" " up." msgstr "" -" Este item pode ser ativado ou recarregado a partir de um ladrilho " -"adjacentesem recuperá-lo." #: lang/json/json_flag_from_json.py msgid "" "This gear is equipped with an accurate barometer (which is used to measure " "atmospheric pressure)." msgstr "" -" Esta engrenagem está equipada com um barômetro preciso (que é usado " -"paramedir a pressão atmosférica)." #: lang/json/json_flag_from_json.py msgid "" "This item can be clipped on to a belt loop of the appropriate " "size." msgstr "" -" Este item pode ser cortado em um cinto de loop do " -"tamanhoapropriado." #: lang/json/json_flag_from_json.py msgid "Layer for backpacks and things worn over outerwear." -msgstr "Camada para mochilas e coisas usadas em outerwear." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear is strapped onto you." -msgstr "Esta engrenagem é amarrado em você." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98134,28 +86428,22 @@ msgid "" "A follower could make use of this CBM if installed" " properly." msgstr "" -" UMA seguidor poderia fazer uso deste CBM " -"seinstalado corretamente." #: lang/json/json_flag_from_json.py msgid "" "Blinds the wearer while worn, and provides nominal protection vs flashbang " "flashes." msgstr "" -" Cega o usuário enquanto está gasto e fornece proteção nominal contraflashes" -" de flash." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear prevents you from seeing anything." msgstr "" -" Esta engrenagem impede Você é de vendo " -"qualquercoisa." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This item can be used to block attacks when worn." -msgstr "Este item pode ser usado para bloquear ataques quando usado." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98163,9 +86451,6 @@ msgid "" "This item is a Compact Bionic Module. You'll need to use specialized " "machinery or ask a surgeon to install it into your body." msgstr "" -" Este item é um módulo biônico compacto. Você precisará usemaquinaria" -" especializada ou pergunte a um cirurgião para " -"instalá-lo em seu corpo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98173,8 +86458,6 @@ msgid "" "This piece of clothing has built-in or attached climate " "control, keeping you at a comfortable temperature." msgstr "" -" Esta peça de roupa controle climático embutido ou anexado " -",mantendo você em um temperatura confortável ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98182,16 +86465,12 @@ msgid "" "This piece of clothing has a wide collar that can keep your " "mouth warm if it is unencumbered." msgstr "" -" Esta peça de roupa tem um gola larga isso pode manter " -"suaboca morna se não estiver embaraçada." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" "This gear prevents you from hearing any sounds." msgstr "" -" Esta engrenagem impede Você é de ouvir qualquer " -"som ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98199,8 +86478,6 @@ msgid "" "This item has a diamond coating improving its cutting or " "piercing damage." msgstr "" -" Este item tem um revestimento de diamante melhorando " -"sua dano de corte ou perfuração ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98209,10 +86486,6 @@ msgid "" "obstacles by moving into tiles with them. Note that automatic mining option" " should be set to true for this to work." msgstr "" -" Enquanto empunhado, este item permite que você mine através de rochas " -"eoutros obstáculos difíceis, movendo-se em telhas com eles. Observe que " -"aopção de mineração automática deve ser configurada como true para que " -"issofuncione." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98220,21 +86493,16 @@ msgid "" "As a weapon, this item is well-made and will withstand " "the punishment of combat." msgstr "" -" Como arma, este item é bem feito e vai suportar " -"apunição do combate ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This tastes better while cold." msgstr "" -" Este gostos Melhor enquanto frio " -"." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This tastes better while hot." msgstr "" -" Este gostos Melhor enquanto quente ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98242,8 +86510,6 @@ msgid "" "This gear completely protects you from electric " "discharges." msgstr "" -" Esta engrenagem protege completamente Você é de " -"descargas elétricas ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98255,62 +86521,57 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "You can wear only one." -msgstr "Você pode vestir apenas um ." +msgstr "" #: lang/json/json_flag_from_json.py msgid "" "Wearing this clothing gives a morale bonus if the player has the Stylish " "trait." msgstr "" -" Vestir esta roupa dá um bônus de moral se o jogador tiver a " -"característicaElegante." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This piece of clothing is fancy." -msgstr "Esta peça de roupa é chique ." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This item counts as fire for crafting purposes." msgstr "" -" Este item conta como fogo para fins de elaboração." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This item can start fire." -msgstr "Este item pode começar fogo ." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This item can serve as a firewood." -msgstr "Este item pode servir como lenha." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear corrects farsightedness." -msgstr "Esta engrenagem corrige hipermetropia ." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear corrects nearsightedness." -msgstr "Esta engrenagem corrige miopia ." +msgstr "" #: lang/json/json_flag_from_json.py msgid "" "Zombie-dropped clothing giving various penalties if Filthy mod is active." msgstr "" -" Roupas derrubadas de zumbis dando várias penalidades se o mod Filthyestiver" -" ativo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This piece of clothing is filthy." -msgstr "Esta peça de roupa é imundo ." +msgstr "" #: lang/json/json_flag_from_json.py msgid "Used for eyes protection from flashbang." -msgstr "Usado para proteção dos olhos do flashbang." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98318,16 +86579,12 @@ msgid "" "This clothing prevents going underwater including both " "drowning and diving." msgstr "" -" Esta roupa evita ir debaixo d'água incluindo ambos" -" afogamento e mergulho ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" "This gear is fragile and won't protect you for long." msgstr "" -" Esta engrenagem é frágil e não vai te proteger pormuito" -" tempo ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98335,16 +86592,12 @@ msgid "" "As a weapon, this item is flimsy and won't last long in " "combat before breaking apart." msgstr "" -" Como arma, este item é frágil e não durará muito " -"emcombate antes de se separar." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" "This gear completely protects you from any gas." msgstr "" -" Esta engrenagem protege completamente Você é de " -"qualquer gás ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98352,36 +86605,28 @@ msgid "" "This piece of clothing has a hood to keep your head warm if " "your head is unencumbered." msgstr "" -" Esta peça de roupa tem um capuz para manter a cabeça quente," -" se a sua cabeça estiver livre." #: lang/json/json_flag_from_json.py msgid "" "This gear is equipped with an accurate hygrometer (which is used to measure " "humidity)." msgstr "" -" Esta engrenagem está equipada com um higrômetro preciso (que é usado " -"paramedir a umidade)." #: lang/json/json_flag_from_json.py msgid "" "This item is a component of the gun it is attached to. It can't be removed " "without destroying it." msgstr "" -" Este item é um componente da arma a que está ligado. Não pode ser " -"removidosem destruí-lo." #: lang/json/json_flag_from_json.py msgid "Item can never be used with a CVD machine." -msgstr "Item nunca pode ser usado com uma máquina CVD." +msgstr "" #: lang/json/json_flag_from_json.py msgid "" "Don't offer to draw items from this holster when the fire key is pressed " "whilst the player's hands are empty." msgstr "" -" Não ofereça sacar itens deste estojo quando a tecla de fogo for " -"pressionadaenquanto as mãos do jogador estiverem vazias." #: lang/json/json_flag_from_json.py msgid "" @@ -98394,8 +86639,6 @@ msgid "" "forces calories and vitamins to be the ones defined in the json, instead of " "inheriting from ingredients" msgstr "" -" força calorias e vitaminas a serem definidas no json, em vez de herdar " -"dosingredientes" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98408,9 +86651,6 @@ msgid "" "This food melts when not in a very cold climate, and " "tastes much better when frozen." msgstr "" -" Esta comida derrete quando não está em um clima muito " -"frio e gosto muito Melhor quando " -"congeladas ." #: lang/json/json_flag_from_json.py msgid "Outer garment layer." @@ -98419,15 +86659,13 @@ msgstr "Camada de vestuário exterior." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear is generally worn over clothing." -msgstr "Este equipamento é geralmente desgastado roupas." +msgstr "" #: lang/json/json_flag_from_json.py msgid "" "Can always be worn no matter encumbrance/mutations/bionics/etc., but " "prevents any other clothing being worn over this." msgstr "" -" Pode sempre ser usado, não importa o impacto / mutações / biônica / etc, " -"mas impede que qualquer outra roupa seja usada por causa disso." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98435,16 +86673,12 @@ msgid "" "This clothing is large enough to accommodate abnormally large mutated " "anatomy." msgstr "" -" Esta roupa é grande o suficiente para acomodar anatomia " -"mutadaanormalmente grande ." #: lang/json/json_flag_from_json.py msgid "" "Can be worn comfortably by mutants with Tiny or Unassuming. Too small for " "anyone else." msgstr "" -" Pode ser usado confortavelmente por mutantes com Tiny ou despretensioso. " -"Muito pequeno para qualquer outra pessoa." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98452,16 +86686,12 @@ msgid "" "This gear reduces the volume of sounds to a safe " "level." msgstr "" -" Esta engrenagem reduz o volume de sons paraum" -" nível seguro." #: lang/json/json_flag_from_json.py msgid "" "Increases warmth for hands if the player's hands are cold and the player is " "wielding nothing." msgstr "" -" Aumenta o calor das mãos se as mãos do jogador estiverem frias e o " -"jogadornão estiver empunhando nada." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98469,16 +86699,12 @@ msgid "" "This clothing has pockets to warm your hands when you are " "wielding nothing." msgstr "" -" Esta roupa tem bolsos para aquecer as mãos quando você " -"nãoestá empunhando nada." #: lang/json/json_flag_from_json.py msgid "" "If turned ON, it uses its own source of power, instead of relying on power " "of the user." msgstr "" -" Se estiver ligado, ele usa sua própria fonte de energia, em vez de " -"dependerda energia do usuário." #: lang/json/json_flag_from_json.py #, no-python-format @@ -98489,8 +86715,6 @@ msgstr "" #: lang/json/json_flag_from_json.py msgid "This gear keeps out the mind control rays." msgstr "" -" Esta engrenagem mantém fora a raios de controlemental" -" ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98498,8 +86722,6 @@ msgid "" "This clothing completely protects you from " "radiation." msgstr "" -" Esta roupa protege completamente Você é de " -"radiação ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98507,8 +86729,6 @@ msgid "" "This clothing partially protects you from " "radiation." msgstr "" -" Esta roupa protege parcialmente Você é de " -"radiação ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98524,60 +86744,55 @@ msgstr "" #: lang/json/json_flag_from_json.py msgid "Prevents the covered body-part(s) from getting wet in the rain." -msgstr "Impede que a (s) parte (s) do corpo coberta (s) se molhem na chuva." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" "This piece of clothing is designed to keep you dry in the rain." msgstr "" -" Esta peça de roupa é projetada para mantê-lo seco na chuva." #: lang/json/json_flag_from_json.py msgid "" "Prevents the player from wielding a weapon two-handed, forcing one-handed " "use if the weapon permits it." msgstr "" -" Impede o jogador de empunhar uma arma com as duas mãos, forçando o uso " -"comuma mão, se a arma permitir." #: lang/json/json_flag_from_json.py msgid "This item can be stored in a sheath of the appropriate size." -msgstr "Este item pode ser armazenado em uma bainha do tamanho apropriado." +msgstr "" #: lang/json/json_flag_from_json.py msgid "This item can be stored in a scabbard of the appropriate size." -msgstr "Este item pode ser armazenado em uma bainha do tamanho apropriado." +msgstr "" #: lang/json/json_flag_from_json.py msgid "This item can be stored in a sling of the appropriate size." -msgstr "Este item pode ser armazenado em uma linga do tamanho apropriado." +msgstr "" #: lang/json/json_flag_from_json.py msgid "This item can be stored in a bag of the appropriate size." -msgstr "Este item pode ser armazenado em uma sacola do tamanho apropriado." +msgstr "" #: lang/json/json_flag_from_json.py msgid "Undergarment layer." -msgstr "Camada de roupa de baixo." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This clothing lies close to the skin." -msgstr "Esta roupa fica perto para a pele." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This clothing is restrictive and slows your movement speed." msgstr "" -" Esta roupa é restritiva e retarda sua velocidade de movimento ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" "This clothing slows your thirst by reducing moisture loss." msgstr "" -" Esta roupa retarda sua sede reduzindo a perda de umidade." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98585,25 +86800,21 @@ msgid "" "This clothing will protect you from harm and withstand a " "lot of abuse." msgstr "" -" Esta roupa vai proteger você de dano e suportar " -"muitoabuso ." #: lang/json/json_flag_from_json.py msgid "Prevents glaring when in sunlight." -msgstr "Evita ofuscar quando na luz solar." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This clothing keeps the glare out of your eyes." -msgstr "Esta roupa mantém o brilho fora dos seus olhos." +msgstr "" #: lang/json/json_flag_from_json.py msgid "" "Gives an additional moral bonus over FANCY if the player has the Stylish " "trait." msgstr "" -" Dá um bônus moral adicional sobre FANCY se o jogador tiver o " -"atributoStylish." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98620,22 +86831,17 @@ msgid "" "This clothing allows you to see much further under " "water." msgstr "" -" Esta roupa permite que você veja muito mais embaixo " -"daagua ." #: lang/json/json_flag_from_json.py msgid "" "This gear is equipped with an accurate thermometer (which is used to measure" " temperature)." msgstr "" -" Esta engrenagem está equipada com um termômetro preciso (que é usado " -"paramedir a temperatura)." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear is equipped with an accurate thermometer." msgstr "" -"Este equipamento está equipado com termômetro preciso ." #: lang/json/json_flag_from_json.py msgid "Can be made to fit via tailoring." @@ -98652,7 +86858,7 @@ msgstr "Este equipamento é vestido ao redor ou na cintura." #: lang/json/json_flag_from_json.py msgid "Acts as a watch and allows the player to see actual time." -msgstr "Atua como um relógio e permite que o jogador veja o tempo real." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98663,8 +86869,6 @@ msgstr "Este equipamento permite ver o horário atual." msgid "" "Prevents the covered body-part(s) from getting wet in any circumstance." msgstr "" -" Impede que a (s) parte (s) do corpo coberta (s) se molhem em " -"qualquercircunstância." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98672,16 +86876,12 @@ msgid "" "This clothing won't let water through. Unless you jump in the " "river or something like that." msgstr "" -" Esta roupa não vai deixar a água passar . A menos que " -"vocêpule no rio ou algo parecido." #: lang/json/json_flag_from_json.py msgid "" "Prevents the item from making the body part count as unfriendly to water and" " thus causing negative morale from being wet." msgstr "" -" Impede que o item faça com que a parte do corpo conte como hostil à água e," -" portanto, que a moral negativa fique molhada." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98689,8 +86889,6 @@ msgid "" "This clothing performs well even when soaking wet." " This can feel good." msgstr "" -" Esta roupa executa bem mesmo quando encharcado" -" . Isso pode se sentir bem." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98698,8 +86896,6 @@ msgid "" "This clothing has a fur lining sewn into it to increase its " "overall warmth." msgstr "" -" Esta roupa tem um forro de pele costurado aumentar suaglobal" -" calor ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98707,9 +86903,6 @@ msgid "" "This gear has Kevlar inserted into strategic locations to increase " "protection with some increase to encumbrance." msgstr "" -" Esta engrenagem tem Kevlar inserido em locais estratégicos para " -"aumentar a proteção com algum aumentar a oneração " -" ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98717,8 +86910,6 @@ msgid "" "This gear has certain parts padded with leather to increase " "protection with moderate increase to encumbrance." msgstr "" -" Esta engrenagem tem certas partes acolchoadas com couro para aumentar" -" a proteção com moderado aumentar a oneração ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98726,15 +86917,11 @@ msgid "" "This clothing has a wool lining sewn into it to increase its " "overall warmth." msgstr "" -" Esta roupa tem um forro de lã costurado aumentar sua " -"global calor ." #: lang/json/json_flag_from_json.py msgid "" "Allows wielding with unarmed fighting styles and trains unarmed when used." msgstr "" -" Permite empunhar com estilos de luta desarmados e treina desarmado " -"quandousado." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98742,50 +86929,41 @@ msgid "" "This weapon can be used with unarmed fighting " "styles." msgstr "" -" Esta arma pode ser usado com estilos de lutadesarmados" -" ." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This item contains a nanofabricator recipe." -msgstr "Este item contém uma receita de nanofabricante." +msgstr "" #: lang/json/json_flag_from_json.py msgid "This bionic is a faulty bionic." -msgstr "Este biônico é um defeituoso biônico." +msgstr "" #: lang/json/json_flag_from_json.py msgid "This bionic is a power source bionic." -msgstr "Este biônico é uma fonte de energia biônica." +msgstr "" #: lang/json/json_flag_from_json.py msgid "" "This bionic only has a function when activated, else it causes its effect " "every turn." msgstr "" -" Este biônico só tem uma função quando ativado, senão causa seu efeito acada" -" turno." #: lang/json/json_flag_from_json.py msgid "" "This bionic is a gun bionic and activating it will fire it. Prevents all " "other activation effects." msgstr "" -" Este biônico é uma arma biônica e ativá-lo irá disparar. Impede todos " -"osoutros efeitos de ativação." #: lang/json/json_flag_from_json.py msgid "" "This bionic is a weapon bionic and activating it will create (or destroy) " "bionic's fake_item in user's hands. Prevents all other activation effects." msgstr "" -" Este biônico é uma arma biônica e ativá-lo irá criar (ou destruir) o falso-" -" deus biônico nas mãos do usuário. Impede todos os outros efeitos " -"deativação." #: lang/json/json_flag_from_json.py msgid "This bionic can provide power to powered armor." -msgstr "Este biônico pode fornecer energia à armadura elétrica." +msgstr "" #: lang/json/json_flag_from_json.py msgid "This makes the spell's effects permanent." @@ -98856,19 +87034,16 @@ msgid "" "An alternator. When mounted on a gasoline or diesel engine and the engine " "is on, will produce electrical power that can be stored in a battery." msgstr "" -" Um alternador. Quando montado em um motor a gasolina ou diesel e o " -"motorligado, produzirá energia elétrica que pode ser armazenada em uma " -"bateria." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "You can move through this vehicle frame without being slowed down." -msgstr "Você pode se mover através deste quadro de veículo sem ser retardado." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "A bright light that illuminates several squares inside the vehicle." -msgstr "Uma luz brilhante que ilumina vários quadrados dentro do veículo." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98876,13 +87051,11 @@ msgid "" "Armor plate. Will partially protect other components on the same frame from" " damage." msgstr "" -" Placa de armadura. Protegerá parcialmente outros componentes no mesmoquadro" -" contra danos." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "You can sleep here comfortably." -msgstr "Você pode dormir aqui confortavelmente." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98890,13 +87063,11 @@ msgid "" "You can install a seat belt or five part harness here to help keep you in " "your seat during a collision." msgstr "" -" Você pode instalar um cinto de segurança ou um arnês de cinco partes " -"paraajudar a mantê-lo em seu assento durante uma colisão." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "You can store items here." -msgstr "Você pode armazenar itens aqui." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98915,7 +87086,7 @@ msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "Illuminated items in this space will not illuminate nearby squares." -msgstr "Itens iluminados neste espaço não iluminarão os quadrados próximos." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98923,9 +87094,6 @@ msgid "" "Closed, it prevents people from seeing through the curtain. A door motor " "allows you to remotely open or close it from the vehicle controls." msgstr "" -" Fechado, impede que as pessoas vejam através da cortina. Um motor de " -"portapermite que você remotamente abra ou feche-o a partir dos controles " -"doveículo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98934,15 +87102,11 @@ msgid "" "vice versa. When closed, it prevents people from entering or leaving the " "vehicle." msgstr "" -" Quando aberta, esta parte permite que você se mova de dentro do veículopara" -" o exterior ou vice-versa. Quando fechado, impede que as pessoas entremou " -"saiam do veículo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "When turned on, this device drains power from the vehicle's batteries." msgstr "" -" Quando ligado, este dispositivo drena a energia das baterias do veículo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98951,9 +87115,6 @@ msgid "" "wheels. Requires controls to turn on. If it drains power, also requires a " "charged battery to start." msgstr "" -" Fornece energia motriz para mover o veículo se o veículo tiver " -"rodassuficientes. Requer controles para ativar. Se drena energia, também " -"requeruma bateria carregada para iniciar." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98961,15 +87122,12 @@ msgid "" "An alternator can be attached, and it will generate electrical power while " "the engine is on at the cost of some motive power." msgstr "" -" Um alternador pode ser conectado, e ele irá gerar energia elétrica " -"enquantoo motor estiver ligado, ao custo de alguma força motriz." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" "When turned on, it will stop the vehicle unless it has a strong engine." msgstr "" -" Quando ligado, ele irá parar o veículo, a menos que tenha um motor forte." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98978,9 +87136,6 @@ msgid "" " sealed against water. If the draft is less than the sealed height, your " "vehicle will float if placed in water." msgstr "" -" Cada casco do barco reduzirá o calado do seu veículo e aumentará a " -"alturacontra a água. Se o calado for menor que a altura selada, seu " -"veículoflutuará se for colocado na água." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -98988,20 +87143,16 @@ msgid "" "There's no place to attach a seat belt, so you get thrown from the vehicle " "in a crash." msgstr "" -" Não há lugar para colocar um cinto de segurança, então você é jogado " -"doveículo em um acidente." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "Keeps the rain out of the interior of the vehicle." -msgstr "Mantém a chuva fora do interior do veículo." +msgstr "" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "You need to be in a seat or saddle to operate vehicle controls." msgstr "" -" Você precisa estar em um assento ou selim para operar os controles " -"doveículo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -99010,9 +87161,6 @@ msgid "" "collision. You will automatically enable this part when you move into a " "tile with it." msgstr "" -" Esta parte ajudará a impedir que você seja lançado do veículo em " -"umacolisão. Você habilitará automaticamente essa parte quando for para " -"umbloco com ela." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -99020,15 +87168,11 @@ msgid "" "If your vehicle consists of a single tile, this wheel is enough to allow it " "to move." msgstr "" -" Se o seu veículo consiste em um único ladrilho, essa roda é suficiente " -"parapermitir que ele se mova." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "Your vehicle needs at least one set of steerable wheels to turn." msgstr "" -" Seu veículo precisa de pelo menos um conjunto de rodas direcionáveis " -"paravirar." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -99036,8 +87180,6 @@ msgid "" "A heavy weapon mounted in a turret. It can be fired from the vehicle " "controls." msgstr "" -" Uma arma pesada montada em uma torre. Pode ser disparado dos controles " -"doveículo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -99046,9 +87188,6 @@ msgid "" "vehicle will be able to move, provided it has an active engine or motor with" " enough power to move the vehicle." msgstr "" -" Se o centro de balanceamento do seu veículo estiver entre todas as rodas, " -"oveículo poderá se mover, desde que tenha um motor ou motor ativo " -"compotência suficiente para movimentar o veículo." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -99063,72 +87202,72 @@ msgstr "" #: lang/json/keybinding_from_json.py lang/json/keybinding_from_json.py #: src/input.cpp src/messages.cpp msgid "Scroll up" -msgstr "Rolar para cima" +msgstr "" #: lang/json/keybinding_from_json.py lang/json/keybinding_from_json.py #: src/input.cpp src/messages.cpp msgid "Scroll down" -msgstr "Rolar para baixo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan up" -msgstr "Pan up" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan down" -msgstr "Pan down" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Cancel menu" -msgstr "Cancelar menu" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Show description of melee style" -msgstr "Mostrar descrição do estilo corpo a corpo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan left" -msgstr "Pan esquerda" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan right" -msgstr "Pan certo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan up-left" -msgstr "Pan esquerda" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan up-right" -msgstr "Pan direita" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan down-left" -msgstr "Pan esquerda para baixo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pan down-right" -msgstr "Pan direita para baixo" +msgstr "" #: lang/json/keybinding_from_json.py src/inventory_ui.cpp msgid "Page up" -msgstr "Subir página" +msgstr "" #: lang/json/keybinding_from_json.py src/inventory_ui.cpp msgid "Page down" -msgstr "Page down" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select all" -msgstr "Selecionar tudo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll item info up" -msgstr "Rolar informações do item para cima" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll item info down" -msgstr "Rolar informações do item para baixo" +msgstr "" #: lang/json/keybinding_from_json.py src/game.cpp src/inventory_ui.cpp msgid "Previous item" @@ -99140,67 +87279,67 @@ msgstr "Próximo item" #: lang/json/keybinding_from_json.py msgid "Unmark selected item" -msgstr "Desmarcar item selecionado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Mark selected item" -msgstr "Marcar item selecionado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Add rule" -msgstr "Adicionar regra" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Remove rule" -msgstr "Remover regra" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Copy rule" -msgstr "Regra de cópia" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move rule global <-> character" -msgstr "Mover o caractere <-> global da regra" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Enable rule" -msgstr "Ativar regra" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Disable rule" -msgstr "Desativar regra" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move rule up" -msgstr "Mover regra para cima" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move rule down" -msgstr "Mover a regra para baixo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Test rule" -msgstr "Regra de teste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Enable auto pickup option" -msgstr "Ativar opção de coleta automática" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Add default ruleset" -msgstr "Adicionar conjunto de regras padrão" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Enable safemode option" -msgstr "Ativar opção de segurança" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Display Usage Help" -msgstr "Exibir ajuda de uso" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select armor for moving" -msgstr "Selecione armadura para mover" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select panel for moving" @@ -99212,135 +87351,135 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Change side armor is worn on" -msgstr "A armadura lateral muda é usada em" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Assign invlets to armor" -msgstr "Atribuir invóletos a armadura" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Sort armor into natural layer order" -msgstr "Classificar armadura em ordem de camada natural" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Equip armor from inventory" -msgstr "Equipar armadura do inventário" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Equip armor from inventory at this position" -msgstr "Equipar armadura do inventário nesta posição" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Unequip selected armor" -msgstr "Desequipar armadura selecionada" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Display Help" -msgstr "Exibir ajuda" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Reset filter" -msgstr "Repor filtro" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Cycle display mode" -msgstr "Modo de exibição de ciclo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Show recipe result" -msgstr "Mostrar resultado da receita" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Hide/show recipe" -msgstr "Ocultar / mostrar receita" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Batch crafting" -msgstr "Produção em lote" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Related recipes" -msgstr "Receitas relacionadas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle recipes to be shown in favorite tab" -msgstr "Alternar receitas a serem mostradas na guia favorita" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Go Up" -msgstr "Suba" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Go Down" -msgstr "Descer" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Next level" -msgstr "Próximo nível" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Previous level" -msgstr "Nível anterior" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Undo move" -msgstr "Desfazer movimento" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Create New level" -msgstr "Criar novo nível" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Flag" -msgstr "Toggle Flag" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle lights" -msgstr "Luzes de alternância" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Reset level" -msgstr "Repor nível" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Confirm Choice" -msgstr "Confirme a escolha" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Save mods as default" -msgstr "Salvar mods como padrão" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View full mod description" -msgstr "Ver descrição completa da modificação" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move selected mod up" -msgstr "Mover o mod selecionado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move selected mod down" -msgstr "Mover o mod selecionado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move to next category tab" -msgstr "Mover para a próxima guia de categoria" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move to previous category tab" -msgstr "Mover para a guia da categoria anterior" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pick random world name" -msgstr "Escolha o nome do mundo aleatório" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Exit worldgen screen" -msgstr "Sair da tela worldgen" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Delete Note" -msgstr "Excluir nota" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Edit Note" @@ -99348,19 +87487,19 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Create/Edit Note" -msgstr "Criar / Editar Nota" +msgstr "" #: lang/json/keybinding_from_json.py msgid "List Notes" -msgstr "Notas da lista" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Blinking" -msgstr "Alternar piscando" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Overlays" -msgstr "Alternar sobreposições" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Land Use Codes" @@ -99372,39 +87511,39 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle City Labels" -msgstr "Alternar rótulos da cidade" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Hordes" -msgstr "Alternar Hordas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Forest Trails" -msgstr "Alternar trilhas na floresta" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Explored" -msgstr "Alternar explorado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Place Overmap Terrain" -msgstr "Coloque o terreno do mapa superior" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Place Overmap Special" -msgstr "Place Overmap Special" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Rotate" -msgstr "Girar" +msgstr "" #: lang/json/keybinding_from_json.py src/construction.cpp msgid "Search" -msgstr "Procurar" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Exit screen" -msgstr "Sair da tela" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Choose destination" @@ -99412,55 +87551,55 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Fire Weapon" -msgstr "Arma de fogo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Prev Target" -msgstr "Prev Target" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Next Target" -msgstr "Próximo alvo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Aim" -msgstr "Alvo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Aimed Shot" -msgstr "Tiro Certo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Careful Shot" -msgstr "Tiro cuidadoso" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Precise Shot" -msgstr "Tiro preciso" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Switch Aiming Mode" -msgstr "Mudar modo de mira" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Switch ammo" -msgstr "Troca de munição" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Switch Firing Mode" -msgstr "Mudar modo de disparo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select" -msgstr "Selecione" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Secondary Select" -msgstr "Selecção Secundária" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Mouse Move" -msgstr "Mover Mouse" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Go to next tab" @@ -99472,23 +87611,23 @@ msgstr "Ir para a aba anterior" #: lang/json/keybinding_from_json.py msgid "Toggle Fast Scroll" -msgstr "Alternar Rápido" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Show extended description" -msgstr "Mostrar descrição estendida" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Travel to destination" -msgstr "Viajar para o destino" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Snap to Target" -msgstr "Alternar Snap to Target" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Center On Character" -msgstr "Centro no personagem" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Change gender" @@ -99504,7 +87643,7 @@ msgstr "Iniciar" #: lang/json/keybinding_from_json.py msgid "Delete template" -msgstr "Excluir modelo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Reroll Random Character" @@ -99524,179 +87663,179 @@ msgstr "Escolhe lugar inicial do personagem" #: lang/json/keybinding_from_json.py msgid "Exit new character screen" -msgstr "Saia da nova tela de personagem" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle sorting order" -msgstr "Alternar ordem de classificação" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll description up" -msgstr "Scroll description up" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll description down" -msgstr "Descrição de rolagem para baixo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Install part" -msgstr "Instalar parte" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Repair part" -msgstr "Peça de reparo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Mend part" -msgstr "Emendar parte" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Refill tank/battery" -msgstr "Recarga de tanque / bateria" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Unload fuel bunker" -msgstr "Descarregar bunker de combustível" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Remove part" -msgstr "Remover parte" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Rename vehicle" -msgstr "Renomear veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Siphon from tank" -msgstr "Sifão do tanque" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Change tire" -msgstr "Trocar pneu" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Assign crew" -msgstr "Atribuir tripulação" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Relabel a portion of a vehicle" -msgstr "Volte a etiquetar uma parte de um veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll up through fuel list" -msgstr "Percorra a lista de combustíveis" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll down through fuel list" -msgstr "Percorra a lista de combustíveis" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll up through vehicle part descriptions" -msgstr "Percorra as descrições das peças do veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll down through vehicle part descriptions" -msgstr "Role para baixo através das descrições das peças do veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll up through vehicle overview" -msgstr "Percorra a visão geral do veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll down through vehicle overview" -msgstr "Percorra a visão geral do veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle unavailable constructions" -msgstr "Alternar construções indisponíveis" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll to previous stage" -msgstr "Role para o estágio anterior" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Scroll to next stage" -msgstr "Vá até a próxima etapa" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Show all" -msgstr "Mostre tudo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Confirm & quit" -msgstr "Confirme e saia" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Resize" -msgstr "Redimensionar" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select shape" -msgstr "Selecione a forma" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Swap origin and target" -msgstr "Trocar origem e alvo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move shape" -msgstr "Mover forma" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Switch to move point / confirm" -msgstr "Mude para o ponto de movimento / confirme" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Edit traps" -msgstr "Editar armadilhas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Edit fields" -msgstr "Editar campos" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Edit terrain / furniture" -msgstr "Editar terreno / mobília" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Edit overmap / mapgen" -msgstr "Editar mapa expandido / mapgen" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Edit items" -msgstr "Editar itens" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Edit creatures" -msgstr "Edite criaturas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Show whole map" -msgstr "Mostrar mapa inteiro" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Wide move left" -msgstr "Largo movimento para a esquerda" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Wide move right" -msgstr "Largo movimento para a direita" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Wide move up" -msgstr "Largo subir" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Wide move down" -msgstr "Largo descer" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle category selection mode" -msgstr "Alternar modo de seleção de categoria" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Set item filter" -msgstr "Definir filtro de item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle item as favorite" @@ -99704,55 +87843,55 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle activate/examine" -msgstr "Alternar ativar / examinar" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pause" -msgstr "Pausa" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Map Memory" -msgstr "Alternar Memória do Mapa" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Center View" -msgstr "Vista central" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View North" -msgstr "Mover a vista norte" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View East" -msgstr "Mover a vista do leste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View South" -msgstr "Mover para o sul" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View West" -msgstr "Mover a vista para oeste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Open Door" -msgstr "Porta aberta" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Close Door" -msgstr "Porta fechada" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Smash Nearby Terrain" -msgstr "Esmagar Terreno Próximo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Examine Nearby Terrain" -msgstr "Examinar o terreno nas proximidades" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Advanced Inventory management" -msgstr "Gestão Avançada de Inventário" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Pick up Nearby Item(s)" @@ -99764,67 +87903,67 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Grab something nearby" -msgstr "Pegue algo nas proximidades" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Haul items along the ground" -msgstr "Itens de transporte ao longo do solo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Zone activities" -msgstr "Atividades de zona" +msgstr "" #: lang/json/keybinding_from_json.py src/options.cpp msgid "Butcher" -msgstr "açougueiro" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Chat with NPC" -msgstr "Bate-papo com NPC" +msgstr "" #: lang/json/keybinding_from_json.py src/game.cpp msgid "Look Around" -msgstr "Olhar em volta" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Peek Around Corners" -msgstr "Espreite em torno dos cantos" +msgstr "" #: lang/json/keybinding_from_json.py msgid "List all items around the player" -msgstr "Listar todos os itens ao redor do jogador" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Manage zones" -msgstr "Gerenciar zonas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Open Inventory" -msgstr "Inventário Aberto" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Compare two Items" -msgstr "Compare dois itens" +msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Swap Inventory Letters" -msgstr "Trocar cartas de inventário" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Apply or Use Item" -msgstr "Aplicar ou usar item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Apply or Use Wielded Item" -msgstr "Aplicar ou usar item empunhado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Wear Item" -msgstr "Item de desgaste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Take Off Worn Item" -msgstr "Retire o item desgastado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Consume Item Menu" @@ -99832,83 +87971,83 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Wield" -msgstr "Manejar" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select Martial Arts Style" -msgstr "Selecione o estilo de artes marciais" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Reload Wielded Item" -msgstr "Recarregar Item Empunhado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Unload or Empty Wielded Item" -msgstr "Descarregar ou esvaziar item empunhado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Throw Item" -msgstr "Throw Item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Blind Throw Item" -msgstr "Item de lance cego" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Fire Wielded Item" -msgstr "Item Empunhado por Fogo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle attack mode of Wielded Item" -msgstr "Alternar o modo de ataque do Item empunhado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Drop Item" -msgstr "Drop Item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Drop Item to Adjacent Tile" -msgstr "Soltar Item para o Mosaico Adjacente" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View/Activate Bionics" -msgstr "Ver / Ativar Biônica" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View/Activate Mutations" -msgstr "Visualizar / Ativar Mutações" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Re-layer armor/clothing" -msgstr "Re-camada de armadura / roupa" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Wait for Several Minutes" -msgstr "Aguarde alguns minutos" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Craft Items" -msgstr "Itens de artesanato" +msgstr "" #: lang/json/keybinding_from_json.py src/iexamine.cpp msgid "Recraft last recipe" -msgstr "Recraft a última receita" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Construct Terrain" -msgstr "Construir Terreno" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Disassemble items" -msgstr "Desmontar itens" +msgstr "" #: lang/json/keybinding_from_json.py src/defense.cpp src/defense.cpp msgid "Sleep" -msgstr "Dormir" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Control Vehicle" -msgstr "Veículo de Controle" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Travel Mode" @@ -99916,31 +88055,31 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Safe Mode" -msgstr "Alternar o modo de segurança" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Ignore Nearby Enemy" -msgstr "Ignorar inimigo nas proximidades" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Whitelist enemy" -msgstr "Inimigo Whitelist" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Save and Quit" -msgstr "Salvar e sair" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Commit Suicide" -msgstr "Cometer suicídio" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Player Info" -msgstr "Visualizar informações do jogador" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Map" -msgstr "Ver mapa" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Look at the sky" @@ -99948,47 +88087,47 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "View Missions" -msgstr "Visualizar missões" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Factions" -msgstr "Ver facções" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Kills" -msgstr "Veja as mortes" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Morale" -msgstr "Ver moral" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Message Log" -msgstr "Exibir log de mensagens" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Help" -msgstr "Ver ajuda" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Zoom In" -msgstr "Mais Zoom" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Zoom Out" -msgstr "Reduzir o zoom" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Debug Mode" -msgstr "Alternar modo de depuração" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Debug Menu" -msgstr "Menu de Depuração" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Scentmap" -msgstr "Visualizar Scentmap" +msgstr "" #: lang/json/keybinding_from_json.py msgid "View Temperature Map" @@ -100000,15 +88139,15 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" -msgstr "Mudar o estilo da barra lateral" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Fullscreen mode" -msgstr "Alternar modo de tela cheia" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Pixel Minimap" -msgstr "Alternar Minimapa Pixel" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Panel Admin" @@ -100020,23 +88159,23 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Reload Tileset" -msgstr "Recarregar o Tileset" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Features" -msgstr "Alternar recursos automáticos" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Pulp/Butcher" -msgstr "Toggle Auto Pulp / Açougueiro" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Mining" -msgstr "Alternar Auto Mineração" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Foraging" -msgstr "Toggle Auto Foraging" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto Pickup" @@ -100044,79 +88183,79 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Action Menu" -msgstr "Menu Ação" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Item Action Menu" -msgstr "Menu de ação do item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Quicksave" -msgstr "Salvamento rapido" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Quickload" -msgstr "Quickload" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View Northeast" -msgstr "Mover-se para o nordeste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View Southeast" -msgstr "Mover a vista para o sudeste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View Southwest" -msgstr "Mover a vista do sudoeste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move View Northwest" -msgstr "Mover a vista noroeste" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Burst-Fire Wielded Item" -msgstr "Item Empunhado Contra Incêndio" +msgstr "" #: lang/json/keybinding_from_json.py src/iexamine.cpp msgid "Craft as long as possible" -msgstr "Craft o maior tempo possível" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle Auto-Safemode" -msgstr "Toggle Auto-Safemode" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Autoattack" -msgstr "autoattack" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Main Menu" -msgstr "Menu principal" +msgstr "" #: lang/json/keybinding_from_json.py src/input.cpp msgid "Keybindings" -msgstr "Combinações de teclas" +msgstr "" #: lang/json/keybinding_from_json.py src/game.cpp msgid "Options" -msgstr "Opções" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Autopickup manager" -msgstr "Gerente de Autopickup" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Safe Mode manager" -msgstr "Gerenciador de modo de segurança" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Color manager" -msgstr "Gerenciador de cores" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Active World Mods" -msgstr "Modos Ativos do Mundo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Cycle move mode (run/walk/crouch)" @@ -100144,47 +88283,47 @@ msgstr "" #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Compare" -msgstr "Comparar" +msgstr "" #: lang/json/keybinding_from_json.py src/iexamine.cpp msgid "Examine" -msgstr "Examinar" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Increase priority" -msgstr "Aumentar prioridade" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Decrease priority" -msgstr "Diminuir prioridade" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Change sort order" -msgstr "Alterar ordem de classificação" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Add to safemode blacklist" -msgstr "Adicionar à lista negra de safemode" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Remove from safemode blacklist" -msgstr "Remover da lista negra de safemode" +msgstr "" #: lang/json/keybinding_from_json.py msgid "look around" -msgstr "olhar em volta" +msgstr "" #: lang/json/keybinding_from_json.py msgid "fire" -msgstr "fogo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "List items and monsters" -msgstr "Listar itens e monstros" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Reassign invlet" -msgstr "Reatribuir invlet" +msgstr "" #: lang/json/keybinding_from_json.py src/construction.cpp src/game.cpp #: src/mission_companion.cpp @@ -100198,91 +88337,91 @@ msgstr "Mover cursor para baixo" #: lang/json/keybinding_from_json.py msgid "Exit this keybinding screen" -msgstr "Saia desta tela de teclas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Remove bindings" -msgstr "Remover ligações" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Add local keybinding" -msgstr "Adicionar atalhos de teclado locais" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Add global keybinding" -msgstr "Adicionar atalhos de teclado globais" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Add zone" -msgstr "Adicionar zona" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Remove zone" -msgstr "Remover zona" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move zone up" -msgstr "Mova a zona para cima" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move zone down" -msgstr "Mover a zona para baixo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Show zone on map" -msgstr "Mostrar zona no mapa" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Enable zone" -msgstr "Ativar zona" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Disable zone" -msgstr "Desativar zona" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Show all zones / hide distant zones" -msgstr "Mostrar todas as zonas / ocultar zonas distantes" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select left inventory" -msgstr "Selecione o inventário da esquerda" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select right inventory" -msgstr "Selecione o inventário certo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle tab" -msgstr "Guia de alternância" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle vehicle" -msgstr "Alternar veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle auto-pickup for item" -msgstr "Alternar auto-pickup para item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Change sorting mode" -msgstr "Alterar o modo de classificação" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move a single item" -msgstr "Mover um único item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move an amount of item" -msgstr "Mover uma quantidade de item" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move item stack" -msgstr "Mover pilha de itens" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Move all items" -msgstr "Mover todos os itens" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Mark/unmark non-favorite items in multidrop menu" @@ -100290,79 +88429,79 @@ msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ North-West" -msgstr "Selecione os itens @ North-West" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ North" -msgstr "Selecione os itens @ North" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ North-East" -msgstr "Selecione os itens @ North-East" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ West" -msgstr "Selecione os itens @ West" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ center" -msgstr "Selecione itens @ center" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ East" -msgstr "Selecione os itens @ East" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ South-West" -msgstr "Selecione os itens @ South-West" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ South" -msgstr "Selecione os itens @ South" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ South-East" -msgstr "Selecione os itens @ South-East" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items in inventory" -msgstr "Selecione itens no inventário" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items @ all 9 fields" -msgstr "Selecione itens em todos os 9 campos" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items in dragged container" -msgstr "Selecione itens no contêiner arrastado" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items in container" -msgstr "Selecione itens no contêiner" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Select items currently worn" -msgstr "Selecione itens atualmente usados" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Restore default layout" -msgstr "Restaurar layout padrão" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Save default layout" -msgstr "Salvar o layout padrão" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Sew" -msgstr "Costurar" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Remove custom color" -msgstr "Remover cor personalizada" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Load color template" -msgstr "Carregar modelo de cor" +msgstr "" #: lang/json/keybinding_from_json.py src/veh_interact.cpp msgid "Yes" @@ -100374,15 +88513,15 @@ msgstr "Não" #: lang/json/keybinding_from_json.py msgid "Ignore further distractions and finish" -msgstr "Ignore outras distrações e termine" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Cancel popup" -msgstr "Cancelar pop-up" +msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp src/vehicle_use.cpp msgid "Control multiple electronics" -msgstr "Controle de vários eletrônicos" +msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Control individual engines" @@ -100390,135 +88529,135 @@ msgstr "Controlar motores individualmente" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Fold vehicle" -msgstr "Dobrar veículo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Release controls" -msgstr "Liberar controles" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Sound horn" -msgstr "Buzina de som" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle aisle lights" -msgstr "Alternar luzes do corredor" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle alarm" -msgstr "Alternar alarme" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle atomic lights" -msgstr "Alternar luzes atômicas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle camera system" -msgstr "Alternar sistema de câmera" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle chimes" -msgstr "Alternar sinos" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle cruise control" -msgstr "Alternar cruise control" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle dome lights" -msgstr "Alternar luzes de cúpula" +msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Toggle doors" -msgstr "Alternar portas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle engine" -msgstr "Toggle engine" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle fridge" -msgstr "Refrigerador" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle freezer" -msgstr "Alternar congelador" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle headlights" -msgstr "Alternar faróis" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle wide-angle headlights" -msgstr "Alternar faróis de grande angular" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle directional overhead lights" -msgstr "Alternar luzes indiretas direcionais" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle overhead lights" -msgstr "Alternar luzes suspensas" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle planter" -msgstr "Plantador de alternância" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle plow" -msgstr "Arado de alavanca" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle reactor" -msgstr "Reator de alternância" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle reaper" -msgstr "Alternar Ceifador" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle recharger" -msgstr "Alternar recarga" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle scoop" -msgstr "Colher de alternância" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle stereo" -msgstr "Alternar estéreo" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle water purifiers" -msgstr "Alternar purificadores de água" +msgstr "" #: lang/json/keybinding_from_json.py msgid "Toggle tracking" -msgstr "Alternar rastreamento" +msgstr "" #: lang/json/keybinding_from_json.py src/turret.cpp src/vehicle_use.cpp msgid "Set turret firing modes" -msgstr "Definir modos de disparo da torre" +msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim turrets manually" -msgstr "Aponte as torretas manualmente" +msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim automatic turrets" -msgstr "Aponte torres automáticas" +msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Aim individual turret" -msgstr "Aponte torre individual" +msgstr "" #: lang/json/keybinding_from_json.py src/vehicle_use.cpp msgid "Set turret targeting modes" -msgstr "Definir modos de segmentação da torre" +msgstr "" #: lang/json/map_extra_from_json.py src/character.cpp src/iuse_actor.cpp msgid "Nothing" -msgstr "Nada" +msgstr "" #. ~ Description for Nothing #: lang/json/map_extra_from_json.py @@ -100627,7 +88766,7 @@ msgstr "" #: lang/json/map_extra_from_json.py msgid "Helicopter Crash" -msgstr "Acidente de helicóptero" +msgstr "" #. ~ Description for Helicopter Crash #: lang/json/map_extra_from_json.py @@ -100805,372 +88944,372 @@ msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Consolidated Computerized Bank of the Treasury" -msgstr "Banco Informatizado Consolidado do Tesouro" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Open Vault" -msgstr "Cofre aberto" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "High Security Consolidated Computerized Bank of the Treasury" -msgstr "Banco Informatizado Consolidado de Alta Segurança do Tesouro" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Closed at sunset." -msgstr "Fechado ao pôr do sol." +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Maintained by the church." -msgstr "Mantido pelo Igreja." +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Cemetery" -msgstr " Cemitério" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Cemetery" -msgstr " Cemitério" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Please respect the cemetery" -msgstr "Por favor, respeite o cemitério" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "May and their family rest in peace" -msgstr "Maio e sua família descansa em paz" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Family Cemetery" -msgstr " Cemitério da Família" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Church Bells 1.2" -msgstr "Igreja Bels 1.2" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Gathering Toll" -msgstr "Recolha de Portagens" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Wedding Toll" -msgstr "Pedágio de Casamento" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Funeral Toll" -msgstr "Pedágio Funeral" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Municipal City Dump" -msgstr "Depósito de cidade municipal" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Caution: Work in Progress" -msgstr "Cuidado: trabalho em andamento" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Private Property: No Trespassing" -msgstr "Propriedade Privada: No Trespassing" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Discount Tires" -msgstr "Pneus com Desconto" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Dollar Store" -msgstr "Loja do dólar" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "OPEN 24/7!" -msgstr "ABERTO 24/7!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Dump" -msgstr " Despejo" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "DUMP" -msgstr "DESCARREGAR" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Area Dump" -msgstr " Despejo de área" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "'s Tree Farm, call us at 555-8758!" -msgstr " Fazenda da Árvore, ligue para 555-8758!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Christmas trees available early winter!" -msgstr "Árvores de Natal disponíveis no início do inverno!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Welcome to Botanical Garden! Please stay on the path!" -msgstr "Bem-vindo ao Jardim Botânico! Por favor, fique no caminho!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "WILLOW" -msgstr "SALGUEIRO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PINE" -msgstr "PINHO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HICKORY" -msgstr "HICKORY" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "MAPLE" -msgstr "BORDO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "BIRCH" -msgstr "BÉTULA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "OAK" -msgstr "CARVALHO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "CHAMOMILE" -msgstr "CAMOMILA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "POPPY" -msgstr "PAPOILA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "CACTUS" -msgstr "CACTO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "DANDELION" -msgstr "DENTE DE CAMPO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "KENTUCKY COFFEE" -msgstr "CAFÉ KENTUCKY" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PEAR" -msgstr "PERA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "CHERRY" -msgstr "CEREJA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "APPLE" -msgstr "MAÇÃ" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PEACH" -msgstr "PÊSSEGO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "APRICOT" -msgstr "DAMASCO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PLUM" -msgstr "AMEIXA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "BLUEBELL" -msgstr "BLUEBELL" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "DAHLIA" -msgstr "DÁLIA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "CATTAIL" -msgstr "CATTAIL" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "DATURA" -msgstr "DATURA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "STRAWBERRY" -msgstr "MORANGO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "BLUEBERRY" -msgstr "MIRTILO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Community Garden" -msgstr " Jardim Comunitário" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Community Garden. Grow your own food!" -msgstr " Jardim Comunitário. Cresça sua própria comida!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Community Garden, sign up for your own plot!" -msgstr " Community Garden, inscreva-se no seu próprio terreno!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Community Garden, grow your own vegetables!" -msgstr " Jardim Comunitário, cultive seus próprios vegetais!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Public Garden" -msgstr " Jardim público" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #16" -msgstr "FURO # 16" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #14" -msgstr "FURO # 14" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #15" -msgstr "FURO # 15" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #10" -msgstr "FURO # 10" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #17" -msgstr "FURO # 17" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #12" -msgstr "FURO # 12" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #8" -msgstr "FURO # 8" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #11" -msgstr "FURO # 11" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #9" -msgstr "FURO # 9" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #4" -msgstr "FURO # 4" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #18" -msgstr "FURO # 18" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #13" -msgstr "FURO # 13" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #7" -msgstr "FURO # 7" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #5" -msgstr "FURO # 5" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #6" -msgstr "FURO # 6" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #2" -msgstr "FURO # 2" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #1" -msgstr "FURO # 1" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HOLE #3" -msgstr "FURO # 3" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Centrifuge" -msgstr "Centrífuga" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Analyze blood" -msgstr "Analise o sangue" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -101260,165 +89399,163 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Landfill" -msgstr " Aterro" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "SAND" -msgstr "AREIA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "WOODCHIPS" -msgstr "LASCAS DE MADEIRA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "LOGS" -msgstr "LOGS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "STICKS" -msgstr "STICKS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "CLAY" -msgstr "ARGILA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "HAY" -msgstr "Existe" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "DIRT" -msgstr "SUJEIRA" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "GRAVEL" -msgstr "CASCALHO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "CEMENT" -msgstr "CIMENTO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "FERTILIZER" -msgstr "FERTILIZANTE" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "ROCKS" -msgstr "ROCHAS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "BOULDERS and SLABS" -msgstr "PEDREIROS e SLABS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "" "Empty lot, great for your small business! Call at 555-2117!" msgstr "" -" Lote vazio, ótimo para o seu pequeno negócio! Ligar no555-2117!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Empty lot for sale!" -msgstr "Lote vazio para venda!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Call Family Realty at 555-3130!" -msgstr "Ligar Família Realty em 555-3130!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "SOLD!" -msgstr "VENDIDO!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "East Realty!" -msgstr "Leste Realty!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Lot for sale!" -msgstr "Lote para venda!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Call for more info. 555-7723" -msgstr "Ligue para mais informações. 555-7723" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Private Property!" -msgstr "Propriedade privada!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO Dumping!" -msgstr "NÃO Dumping!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Cheap lot for sale! Call at 555-5151!" -msgstr "Muito barato para venda! Ligar em 555-5151!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Property for sale!" -msgstr "Propriedade à venda!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Call with Realty at 555-6288!" -msgstr "Ligar com Realty em 555-6288!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Beautiful lot with some natural privacy! Call at 555-3927!" msgstr "" -" Lindo lote com alguma privacidade natural! Ligar em 555-3927!" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Property for sale, call Real Estate at 555-8255!" -msgstr "Imóvel para venda, ligue Imóveis em 555-8255!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Lot SOLD!" -msgstr "Lote VENDIDO!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "it works again." -msgstr "funciona de novo." +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " owned at " -msgstr " possuído a " +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid ", , and were here!" -msgstr " , e estava aqui!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "it works." -msgstr "funciona." +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -101426,8 +89563,6 @@ msgid "" "The mortuary name followed by a hastily written message that reads: 'I am " "not liable if your loved ones will not stay dead.'" msgstr "" -" O nome do necrotério seguido por uma mensagem escrita às pressas que " -"diz:\"Não sou responsável se seus entes queridos não ficarem mortos\"." #. ~ Sign #: lang/json/mapgen_from_json.py @@ -101437,182 +89572,182 @@ msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Medical Supply Access" -msgstr "Acesso a Suprimentos Médicos" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Unlock Door" -msgstr "Destrave a porta" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Lock Door" -msgstr "Porta de trava" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Get Apples n Ciders!" -msgstr "Obter maçãs n Ciders!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Scoop the Poop!" -msgstr "Scoop the Poop!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "DANGER! Doggy Minefield!" -msgstr "PERIGO! Minefield Doggy!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Dog Park: Off Leash Area" -msgstr "Parque do cão: Fora da área da trela" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Watch your step!" -msgstr "Assista seu passo!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Use park at your own risk." -msgstr "Use o parque por sua conta e risco." +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PolCom OS v1.47 - Supply Room Access" -msgstr "PolCom OS v1.47 - Acesso à sala de fornecimento" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Unlock Supply Room" -msgstr "Desbloquear sala de suprimentos" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PolCom OS v1.47 - Evidence Locker Access" -msgstr "PolCom OS v1.47 - Evidência Locker Access" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Unlock Evidence Locker" -msgstr "Desbloquear Evidência Locker" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO lifeguard on duty, swim at own risk!" -msgstr "SEM salva-vidas de plantão, nadar por conta e risco!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO lifeguard on duty!" -msgstr "Nenhum salva-vidas trabalhando!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO running!" -msgstr "NÃO correndo!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "MEN" -msgstr "MAS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "WOMEN" -msgstr "MULHERES" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO diving in the shallow end!" -msgstr "NÃO mergulhar na parte rasa!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Women" -msgstr "Mulheres" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Men" -msgstr "mas" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO Running!" -msgstr "NÃO correndo!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "NO Diving!" -msgstr "Não mergulhe!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "GLASS" -msgstr "VIDRO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "ALUMINUM" -msgstr "ALUMÍNIO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PAPER" -msgstr "PAPEL" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PLASTIC" -msgstr "PLÁSTICO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "ELECTRONICS" -msgstr "ELETRÔNICOS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "COPPER" -msgstr "COBRE" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "IRON" -msgstr "FERRO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "BATTERIES" -msgstr "BATERIAS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "STEEL" -msgstr "AÇO" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "'s Recycling" -msgstr " Reciclagem" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Drop off 7am to 6pm Monday thru Friday" -msgstr "Saia das 7h às 18h de segunda a sexta" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Recycling" -msgstr " Reciclando" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Drop off 8am to 8pm, weekdays." -msgstr "Saia das 8h às 20h, nos dias úteis." +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -101621,102 +89756,97 @@ msgid "" "eroded beyond usefulness. There are small holders for tourist maps " "attached." msgstr "" -" Este já foi um mapa de informações para o área, mas há muito " -"tempocorroída além de utilidade. Existem pequenos proprietários para " -"mapasturísticos em anexo." #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Danger! Do not smoke! Risk of explosion!" -msgstr "Perigo! Não fume! Risco de explosão!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Wide selection of storage batteries! Discounts!" -msgstr "Ampla seleção de baterias de armazenamento! Descontos!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "the name is gone but a slogan remains: 'We'll repair you all the way'" msgstr "" -" o nome desapareceu, mas permanece um slogan:'Vamos consertá-lo por todo o " -"caminho'" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Evac shelter computer" -msgstr "Evac shelter computer" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Emergency Message" -msgstr "Mensagem de emergência" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py lang/json/mapgen_from_json.py #: lang/json/mission_def_from_json.py msgid "Disable External Power" -msgstr "Desativar energia externa" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Contact Us" -msgstr "Contate-Nos" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Family Shooting Range" -msgstr " Faixa de tiro familiar" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Open sunrise to sunset, everyday besides Sundays" -msgstr "Abra o nascer do sol ao pôr do sol, todos os dias, além dos domingos" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "5 YARDS" -msgstr "5 YARDS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "10 YARDS" -msgstr "10 YARDS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "15 YARDS" -msgstr "15 YARDS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "20 YARDS" -msgstr "20 jardas" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "25 YARDS" -msgstr "25 YARDS" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "30 YARDS" -msgstr "30 YARDS" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Broadcasting Control" -msgstr "Controle de Transmissão" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "ERROR: SIGNAL DISCONNECT" -msgstr "ERRO: SINAL DESCONECTADO" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py lang/json/mission_def_from_json.py msgid "Install Repeater Mod" -msgstr "Instale o Modificador Repetidor" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py @@ -101726,172 +89856,172 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "The Red Dragon Tea Shop" -msgstr "A loja de chá do dragão vermelho" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "The Green Leaf Tea Shop" -msgstr "A loja de chá verde folha" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Please don't litter, keep the trail nice!" -msgstr "Por favor, não seja lixo, mantenha a trilha legal!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid " Trail" -msgstr " Trilha" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "PLEASE No fish cleaning or dish washing." -msgstr "POR FAVOR Não há limpeza de peixe ou lavagem de louça." +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Moving away sale!" -msgstr "Afastando a venda!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Estate sale!" -msgstr "Venda de imóveis!" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Operating Theater Access Control" -msgstr "Controle de Acesso ao Teatro Operacional" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "EMERGENCY EVAC - OPEN ALL DOORS" -msgstr "EVAC DE EMERGÊNCIA - ABRE TODAS AS PORTAS" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "UNLOCK AUTODOC DOOR" -msgstr "DESLOCK AUTODOC DOOR" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Containment Control" -msgstr "Controle de Contenção" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "EMERGENCY CONTAINMENT UNLOCK" -msgstr "DESBLOQUEIO DE CONTENÇÃO DE EMERGÊNCIA" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "EMERGENCY CLEANSE" -msgstr "LIMPEZA DE EMERGÊNCIA" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Containment Terminal" -msgstr "Terminal de contenção" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Mk IV Algorithmic Data Analyzer" -msgstr "Analisador de Dados Algorítmicos Mk IV" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Run Decryption Algorithm" -msgstr "Executar o algoritmo de descriptografia" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Upload Data to Melchior" -msgstr "Upload de dados para Melchior" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Access Melchior" -msgstr "Acesso Melchior" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Library Entrance" -msgstr "Entrada da Biblioteca" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "UNLOCK ENTRANCE" -msgstr "DESBLOQUEAR ENTRADA" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Barracks Entrance" -msgstr "Barracks Entrance" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Magazine Entrance" -msgstr "Revista de entrada" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Prisoner Containment Entrance" -msgstr "Entrada de Contenção de Prisioneiros" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "EMERGENCY CONTAINMENT RELEASE" -msgstr "RELEASE DE CONTENÇÃO DE EMERGÊNCIA" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE012 Storage" -msgstr "Armazenamento PE012" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "UNLOCK STORAGE" -msgstr "DESBLOQUEAR ARMAZENAMENTO" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE019 \"Sculptor\" Secure Storage" -msgstr "PE019 Armazenamento Seguro 'Escultor'" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE050 \"Alpha\" Secure Storage" -msgstr "PE050 Armazenamento Seguro 'Alfa'" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE065 \"Chimera\" Secure Storage" -msgstr "PE065 Armazenamento Seguro 'Chimera'" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE070 \"Raptor\" Secure Storage" -msgstr "PE070 Armazenamento Seguro 'Raptor'" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "PE023 \"Medical\" Secure Storage" -msgstr "PE023 Armazenamento Seguro 'Médico'" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Laboratory Train Controls" -msgstr "Controles de trem de laboratório" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "Request Subway Train" -msgstr "Solicite o trem do metrô" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py msgid "View Subway Routes" -msgstr "Ver rotas do metrô" +msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -101916,30 +90046,30 @@ msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Missile Control" -msgstr "Controle De Mísseis" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "Launch Missile" -msgstr "Míssil de lançamento" +msgstr "" #. ~ Computer option #: lang/json/mapgen_from_json.py src/mapgen.cpp msgid "Disarm Missile" -msgstr "Desarmar Míssil" +msgstr "" #: lang/json/martial_art_from_json.py msgid "No style" -msgstr "Sem estilo" +msgstr "" #. ~ Description for martial art 'No style' #: lang/json/martial_art_from_json.py msgid "Not a martial art, this is just plain old punching and kicking." -msgstr "Não é uma arte marcial, isso é simplesmente socar e chutar." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Force unarmed" -msgstr "Forçar desarmado" +msgstr "" #. ~ Description for martial art 'Force unarmed' #: lang/json/martial_art_from_json.py @@ -101947,12 +90077,10 @@ msgid "" "Not a martial art, setting this style will prevent weapon attacks and force " "punches (with free hand) or kicks." msgstr "" -" Não é uma arte marcial, definir este estilo irá impedir ataques de armas " -"eforçar socos (com a mão livre) ou chutes." #: lang/json/martial_art_from_json.py msgid "Brawling" -msgstr "Briga" +msgstr "" #. ~ Description for martial art 'Brawling' #: lang/json/martial_art_from_json.py @@ -101960,12 +90088,10 @@ msgid "" "You're used to hand-to-creature fighting. Not stylish or sporting, but it " "gets the job done." msgstr "" -" Você está acostumado a lutar de mão para criatura. Não elegante " -"ouesportivo, mas faz o trabalho." #: lang/json/martial_art_from_json.py msgid "Karate" -msgstr "Karatê" +msgstr "" #. ~ Description for martial art 'Karate' #: lang/json/martial_art_from_json.py @@ -101974,23 +90100,19 @@ msgid "" "rapid, precise attacks, blocks, and fluid movement. A successful hit allows" " you an extra dodge and two extra blocks on the following round." msgstr "" -" O karatê é uma arte marcial popular, originária do Japão. Ele se " -"concentraem ataques, bloqueios e movimentos rápidos e precisos. Um acerto " -"bemsucedido permite-lhe uma esquiva extra e dois blocos extra na " -"rondaseguinte." #: lang/json/martial_art_from_json.py msgid "Karate Hit" -msgstr "Karate Hit" +msgstr "" #. ~ Description of buff 'Karate Hit' for martial art 'Karate' #: lang/json/martial_art_from_json.py msgid "+1 Dodges, +2 Blocks" -msgstr "+1 Dodges, +2 Blocks" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Aikido" -msgstr "Aikido" +msgstr "" #. ~ Description for martial art 'Aikido' #: lang/json/martial_art_from_json.py @@ -101999,18 +90121,15 @@ msgid "" "injury to the attacker. It uses defensive throws and disarms. Damage done " "while using this technique is halved, but pain inflicted is doubled." msgstr "" -" Aikido é uma arte marcial japonesa focada em autodefesa, minimizando " -"aslesões ao atacante. Usa lances defensivos e desarma. O dano causado ao " -"usaresta técnica é reduzido pela metade, mas a dor infligida é dobrada." #. ~ Description of buff for martial art 'Aikido' #: lang/json/martial_art_from_json.py msgid "Half damage to enemies." -msgstr "Metade do dano aos inimigos." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Boxing" -msgstr "Boxe" +msgstr "" #. ~ Description for martial art 'Boxing' #: lang/json/martial_art_from_json.py @@ -102018,35 +90137,33 @@ msgid "" "Sport of the true gentleman, modern boxing has evolved from the prizefights " "of the Victorian era." msgstr "" -" Esporte do verdadeiro cavalheiro, o boxe moderno evoluiu das lutas da " -"eravitoriana." #. ~ Description of buff for martial art 'Boxing' #: lang/json/martial_art_from_json.py msgid "Per increases unarmed power, Str reduces block damage." -msgstr "Por aumenta a potência desarmada, Str reduz o dano do bloco." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Footwork" -msgstr "Footwork" +msgstr "" #. ~ Description of buff 'Footwork' for martial art 'Boxing' #: lang/json/martial_art_from_json.py msgid "Gain an extra dodge while moving." -msgstr "Ganhe uma esquiva extra enquanto se move." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Counter Chance" -msgstr "Counter Chance" +msgstr "" #. ~ Description of buff 'Counter Chance' for martial art 'Boxing' #: lang/json/martial_art_from_json.py msgid "They're wide open!" -msgstr "Eles estão bem abertos!" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Judo" -msgstr "Judo" +msgstr "" #. ~ Description for martial art 'Judo' #: lang/json/martial_art_from_json.py @@ -102055,19 +90172,15 @@ msgid "" "offensive. It also focuses on recovering from throws; while using judo, you" " will not lose any turns to being thrown or knocked down." msgstr "" -" O judô é uma arte marcial que se concentra em agarrar e arremessar, " -"tantodefensivos quanto ofensivos. Também se concentra na recuperação de " -"lances;Ao usar o judô, você não perderá nenhum turno para ser arremessado " -"ouderrubado." #. ~ Description of buff for martial art 'Judo' #: lang/json/martial_art_from_json.py msgid "Immune to throws and knockdowns." -msgstr "Imune a arremessos e knockdowns." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Tai Chi" -msgstr "Tai chi" +msgstr "" #. ~ Description for martial art 'Tai Chi' #: lang/json/martial_art_from_json.py @@ -102077,19 +90190,15 @@ msgid "" " the force of an attack makes your Perception decrease damage further on a " "block." msgstr "" -" Embora o Tai Chi seja freqüentemente visto como uma forma de " -"exercíciomental e físico, é uma arte marcial legítima, focada na autodefesa." -" Suacapacidade de absorver a força de um ataque faz com que sua " -"Percepçãodiminua o dano ainda mais em um bloco." #. ~ Description of buff for martial art 'Tai Chi' #: lang/json/martial_art_from_json.py msgid "+1 Block. Perception decreases damage when blocking." -msgstr "+1 bloco. Percepção diminui o dano ao bloquear." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Capoeira" -msgstr "Capoeira" +msgstr "" #. ~ Description for martial art 'Capoeira' #: lang/json/martial_art_from_json.py @@ -102099,32 +90208,28 @@ msgid "" "damage and attacking boosts dodge. These bonuses stack up to three times " "each." msgstr "" -" Um estilo de dança com suas raízes na escravidão brasileira, a Capoeira " -"éfocada em movimentos fluidos e chutes arrebatadores. Mover um " -"azulejoaumentará o ataque e o dano, e os ataques de ataque se esquivarão. " -"Essesbônus acumulam até três vezes cada." #: lang/json/martial_art_from_json.py msgid "Capoeira Tempo" -msgstr "Capoeira Tempo" +msgstr "" #. ~ Description of buff 'Capoeira Tempo' for martial art 'Capoeira' #: lang/json/martial_art_from_json.py msgid "+1 dodge and +1 blocks per stack" -msgstr "+1 esquiva e +1 blocos por pilha" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Capoeira Momentum" -msgstr "Capoeira Momentum" +msgstr "" #. ~ Description of buff 'Capoeira Momentum' for martial art 'Capoeira' #: lang/json/martial_art_from_json.py msgid "+2 bash and +1 acc per stack" -msgstr "+2 bash e +1 acc por pilha" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Krav Maga" -msgstr "Requisitos Maga" +msgstr "" #. ~ Description for martial art 'Krav Maga' #: lang/json/martial_art_from_json.py @@ -102133,32 +90238,28 @@ msgid "" "and effectively. It focuses on applicable attacks rather than showy or " "complex moves. Popular among police and armed forces everywhere." msgstr "" -" Originado em Israel, o Krav Maga baseia-se em derrubar um inimigo demaneira" -" rápida e eficaz. Concentra-se em ataques aplicáveis, em vez demovimentos " -"vistosos ou complexos. Popular entre a polícia e as forçasarmadas em todos " -"os lugares." #: lang/json/martial_art_from_json.py msgid "Krav Maga Hand-to-Hand" -msgstr "Requisitos Maga Hand-to-Hand" +msgstr "" #. ~ Description of buff 'Krav Maga Hand-to-Hand' for martial art 'Krav Maga' #: lang/json/martial_art_from_json.py msgid "Increased unarmed power." -msgstr "Maior poder desarmado." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Krav Maga Edged" -msgstr "Krav você é afiado" +msgstr "" #. ~ Description of buff 'Krav Maga Edged' for martial art 'Krav Maga' #: lang/json/martial_art_from_json.py msgid "Increased stabbing damage." -msgstr "Aumento do dano de esfaqueamento." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Muay Thai" -msgstr "Muay Thai" +msgstr "" #. ~ Description for martial art 'Muay Thai' #: lang/json/martial_art_from_json.py @@ -102170,21 +90271,15 @@ msgid "" "elbow strikes rather than punches, it does not benefit from using any " "weapons." msgstr "" -" Também conhecido como 'Arte dos 8 membros', o Muay Thai é uma técnicade " -"luta popular da Tailândia que usa poderosos ataques. Seus golpes sãomais " -"poderosos, com alta força e mais fraca, com pouca força, e " -"podemmomentaneamente desorientar os inimigos. Como este estilo se concentra " -"nouso de pernas e cotoveladas em vez de socos, não se beneficia do uso " -"dearmas." #. ~ Description of buff for martial art 'Muay Thai' #: lang/json/martial_art_from_json.py msgid "Attacks scale better with strength." -msgstr "Ataques escalam melhor com força." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Ninjutsu" -msgstr "Ninjutsu" +msgstr "" #. ~ Description for martial art 'Ninjutsu' #: lang/json/martial_art_from_json.py @@ -102193,28 +90288,24 @@ msgid "" " It focuses on rapid, precise, silent strikes. Ninjutsu is almost entirely" " silent. It also provides small combat bonuses every time you move." msgstr "" -" Ninjutsu é uma arte marcial e um conjunto de táticas usadas pelos ninjas " -"noJapão feudal. Concentra-se em ataques rápidos, precisos e silenciosos. " -"Ninjutsu é quase totalmente silencioso. Ele também fornece pequenos bônusde " -"combate toda vez que você se move." #. ~ Description of buff for martial art 'Ninjutsu' #: lang/json/martial_art_from_json.py msgid "Silent melee attacks." -msgstr "Ataques melee silenciosos." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Momentum shift" -msgstr "Deslocamento de impulso" +msgstr "" #. ~ Description of buff 'Momentum shift' for martial art 'Ninjutsu' #: lang/json/martial_art_from_json.py msgid "Bonus dodges and increased to-hit" -msgstr "Bonus Dodges e aumentado para acertar" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Pankration" -msgstr "Pankration" +msgstr "" #. ~ Description for martial art 'Pankration' #: lang/json/martial_art_from_json.py @@ -102223,29 +90314,26 @@ msgid "" "create a brutal sport, though modern revival of the art is less of no-holds-" "barred in nature." msgstr "" -" Uma antiga arte marcial grega, combinando técnicas de boxe e wrestling " -"paracriar um esporte brutal, embora a revitalização moderna da arte seja " -"menospreterida na natureza." #: lang/json/martial_art_from_json.py msgid "Grappling" -msgstr "Grappling" +msgstr "" #. ~ Description of buff 'Grappling' for martial art 'Pankration' #: lang/json/martial_art_from_json.py msgid "I have you now!" -msgstr "Eu te tenho agora!" +msgstr "" #. ~ Description of buff 'Counter Chance' for martial art 'Pankration' #. ~ Description of buff 'Displacement' for martial art 'Medieval #. Swordsmanship' #: lang/json/martial_art_from_json.py msgid "The enemy has presented an opening in their defense." -msgstr "O inimigo apresentou uma abertura em sua defesa." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Taekwondo" -msgstr "Taekwondo" +msgstr "" #. ~ Description for martial art 'Taekwondo' #: lang/json/martial_art_from_json.py @@ -102255,19 +90343,15 @@ msgid "" "wielded weapons. It also includes strength training; your blocks absorb " "extra damage the stronger you are." msgstr "" -" Taekwondo é o esporte nacional da Coréia e foi usado pelo exército sul- " -"coreano no século XX. Focado em chutes e por isso não se beneficia de " -"armasempunhadas. Também inclui treinamento de força; seus blocos absorvem " -"danoextra quanto mais forte você é." #. ~ Description of buff for martial art 'Taekwondo' #: lang/json/martial_art_from_json.py msgid "Strength decreases damage when blocking." -msgstr "Força diminui o dano ao bloquear." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Bionic Combatives" -msgstr "Combinações Biônicas" +msgstr "" #. ~ Description for martial art 'Bionic Combatives' #: lang/json/martial_art_from_json.py @@ -102276,22 +90360,19 @@ msgid "" " integrated weaponry, armor and augments into an consolidated fighting " "discipline." msgstr "" -" Um moderno estilo de combate para o humano pós-moderno. Os Combos " -"Biônicoscombinam armas, armaduras e acréscimos integrados em uma disciplina " -"decombate consolidada." #: lang/json/martial_art_from_json.py msgid "Biojutsu" -msgstr "Biojutsu" +msgstr "" #. ~ Description of buff 'Biojutsu' for martial art 'Bionic Combatives' #: lang/json/martial_art_from_json.py msgid "+1 Blocks" -msgstr "+1 blocos" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Zui Quan" -msgstr "Zui Quan" +msgstr "" #. ~ Description for martial art 'Zui Quan' #: lang/json/martial_art_from_json.py @@ -102302,29 +90383,24 @@ msgid "" "penalty, and successfully dodging an attack gives you bonus damage and to-" "hit based on your intelligence." msgstr "" -" AKA 'boxe bêbado', Zui Quan imita o movimento de um bêbado paraconfundir o " -"inimigo, dando-lhe um bônus de esquiva passivo baseado em suainteligência. O" -" turno depois de você atacar, você pode evitar qualquernúmero de ataques sem" -" penalidade, e se esquivar com sucesso de um ataquelhe dá um bônus de dano e" -" dano baseado em sua inteligência." #. ~ Description of buff for martial art 'Zui Quan' #: lang/json/martial_art_from_json.py msgid "Intelligence increases dodging ability" -msgstr "Inteligência aumenta a habilidade de esquiva" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Counter Strike" -msgstr "Contra-ataque" +msgstr "" #. ~ Description of buff 'Counter Strike' for martial art 'Zui Quan' #: lang/json/martial_art_from_json.py msgid "Extra damage and to-hit after successful dodge" -msgstr "Dano extra e dano após a esquiva bem sucedida" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Silat" -msgstr "Silat" +msgstr "" #. ~ Description for martial art 'Silat' #: lang/json/martial_art_from_json.py @@ -102333,32 +90409,29 @@ msgid "" " of short blades and bludgeons. Fighters stay low and mobile to avoid " "attacks, then unleash deadly critical hits." msgstr "" -" O Pentjak Silat, de origem indonésia, é um estilo de luta que abrange o " -"usode lâminas curtas e cacetes. Os lutadores ficam baixos e com " -"mobilidadepara evitar ataques, e depois acertam ataques críticos mortais." #: lang/json/martial_art_from_json.py msgid "Silat Stance" -msgstr "Postura de Silat" +msgstr "" #. ~ Description of buff 'Silat Stance' for martial art 'Silat' #. ~ Description of buff 'Schatten Folgen' for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py msgid "+1 dodge" -msgstr "+1 esquiva" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Silat Counter" -msgstr "Contador de Silat" +msgstr "" #. ~ Description of buff 'Silat Counter' for martial art 'Silat' #: lang/json/martial_art_from_json.py msgid "Extra to-hit after successful dodge" -msgstr "Extra to-hit após esquiva bem sucedida" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Fencing" -msgstr "Esgrima" +msgstr "" #. ~ Description for martial art 'Fencing' #: lang/json/martial_art_from_json.py @@ -102368,23 +90441,19 @@ msgid "" "Skilled fencers can take advantage of advances and retreats to deliver " "accurate strikes." msgstr "" -" A arte nobre de esgrima é ensinada com lâminas flexíveis de competição, " -"masas técnicas são derivadas de (e aplicáveis a) exemplos mais funcionais. " -"Esgrimistas qualificados podem aproveitar os avanços e retiros paraoferecer " -"ataques precisos." #: lang/json/martial_art_from_json.py msgid "Fencing Footwork" -msgstr "Esgrima De Pé" +msgstr "" #. ~ Description of buff 'Fencing Footwork' for martial art 'Fencing' #: lang/json/martial_art_from_json.py msgid "+2 stab and +1 acc per stack" -msgstr "+2 stab e +1 acc por stack" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Niten Ichi-Ryu" -msgstr "Niten Ichi-Ryu" +msgstr "" #. ~ Description for martial art 'Niten Ichi-Ryu' #: lang/json/martial_art_from_json.py @@ -102392,41 +90461,39 @@ msgid "" "Niten Ichi-Ryu is an ancient school of combat, transmitting a style of " "classical Japanese swordsmanship conceived by the warrior Miyamoto Musashi." msgstr "" -" Niten Ichi-Ryu é uma antiga escola de combate, transmitindo um estilo " -"deespadachim japonês clássico concebido pelo guerreiro Miyamoto Musashi." #: lang/json/martial_art_from_json.py msgid "Blocking" -msgstr "Bloqueio" +msgstr "" #. ~ Description of buff 'Blocking' for martial art 'Niten Ichi-Ryu' #: lang/json/martial_art_from_json.py msgid "You forgo dodging on the offensive, but gain more blocks." -msgstr "Você deixa de se esquivar da ofensiva, mas ganha mais bloqueios." +msgstr "" #. ~ Description of buff for martial art 'Niten Ichi-Ryu' #: lang/json/martial_art_from_json.py msgid "Perception increases dodging and damage." -msgstr "Percepção aumenta esquiva e dano." +msgstr "" #. ~ Description of buff 'Blocking' for martial art 'Niten Ichi-Ryu' #: lang/json/martial_art_from_json.py msgid "You forgo dodging on the move, but gain more blocks." -msgstr "Você deixa de se esquivar em movimento, mas ganha mais bloqueios." +msgstr "" #: lang/json/martial_art_from_json.py msgid "In-One Timing Set-Up" -msgstr "Configuração de Sincronização In-One" +msgstr "" #. ~ Description of buff 'In-One Timing Set-Up' for martial art 'Niten Ichi- #. Ryu' #: lang/json/martial_art_from_json.py msgid "You found a gap in the enemy's defense!" -msgstr "Você encontrou uma lacuna na defesa do inimigo!" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Eskrima" -msgstr "Esgrima" +msgstr "" #. ~ Description for martial art 'Eskrima' #: lang/json/martial_art_from_json.py @@ -102435,31 +90502,28 @@ msgid "" " strikes with knife and baton weapons, along with a variety of improvised " "substitutes." msgstr "" -" Eskrima, também conhecida como Kali, é uma arte marcial filipina. " -"Eleenfatiza ataques rápidos com armas de faca e bastão, junto com " -"umavariedade de substitutos improvisados." #: lang/json/martial_art_from_json.py msgid "Eskrima Combination" -msgstr "Combinação de Esgrima" +msgstr "" #. ~ Description of buff 'Eskrima Combination' for martial art 'Eskrima' #: lang/json/martial_art_from_json.py msgid "Combination" -msgstr "Combinação" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Eskrima Bashing" -msgstr "Esgrima" +msgstr "" #. ~ Description of buff 'Eskrima Bashing' for martial art 'Eskrima' #: lang/json/martial_art_from_json.py msgid "Increased bashing damage." -msgstr "Aumentou o dano contundente." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Crane Kung Fu" -msgstr "Guindaste kung fu" +msgstr "" #. ~ Description for martial art 'Crane Kung Fu' #: lang/json/martial_art_from_json.py @@ -102469,31 +90533,28 @@ msgid "" "damage, rather than Strength; you also receive a dodge bonus the turn after " "moving a tile." msgstr "" -" Um dos cinco estilos de animais Shaolin. O Crane usa técnicas intrincadasde" -" mão e dodges saltando. Destreza determina a maioria do seu dano, aoinvés de" -" força; você também recebe um bônus de esquiva no turn após moverum tile." #: lang/json/martial_art_from_json.py msgid "Crane's Precision" -msgstr "Precisão do guindaste" +msgstr "" #. ~ Description of buff 'Crane's Precision' for martial art 'Crane Kung Fu' #: lang/json/martial_art_from_json.py msgid "Damage bonus from dexterity at the cost of damage from strength." -msgstr "Bônus de dano de destreza ao custo de dano de força." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Crane's Flight" -msgstr "Voo do Guindaste" +msgstr "" #. ~ Description of buff 'Crane's Flight' for martial art 'Crane Kung Fu' #: lang/json/martial_art_from_json.py msgid "+2 Dodge" -msgstr "+2 de esquiva" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Dragon Kung Fu" -msgstr "Dragão kung fu" +msgstr "" #. ~ Description for martial art 'Dragon Kung Fu' #: lang/json/martial_art_from_json.py @@ -102502,31 +90563,28 @@ msgid "" "hard strikes. Intelligence improves your accuracy and damage dealt, as does" " moving." msgstr "" -" Um dos cinco estilos de animais Shaolin. O Dragão usa movimentos fluidos " -"eataques duros. A inteligência melhora sua precisão e dano causado, " -"assimcomo o movimento." #: lang/json/martial_art_from_json.py msgid "Dragon Style" -msgstr "Estilo do dragão" +msgstr "" #. ~ Description of buff 'Dragon Style' for martial art 'Dragon Kung Fu' #: lang/json/martial_art_from_json.py msgid "Bonus damage from intelligence." -msgstr "Bônus de dano da inteligência." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Dragon's Flight" -msgstr "Vôo do Dragão" +msgstr "" #. ~ Description of buff 'Dragon's Flight' for martial art 'Dragon Kung Fu' #: lang/json/martial_art_from_json.py msgid "+2 Accuracy & Damage" -msgstr "+2 Precisão e dano" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Leopard Kung Fu" -msgstr "Leopardo Kung Fu" +msgstr "" #. ~ Description for martial art 'Leopard Kung Fu' #: lang/json/martial_art_from_json.py @@ -102535,31 +90593,28 @@ msgid "" "strategically planned strikes. Perception and Intelligence both boost " "dodging, and moving boosts your accuracy." msgstr "" -" Um dos cinco estilos de animais Shaolin. O Leopard se concentra em " -"ataquesrápidos e estrategicamente planejados. Percepção e Inteligência " -"aumentamdrasticamente, e mover aumenta sua precisão." #: lang/json/martial_art_from_json.py msgid "Leopard Strategy" -msgstr "Estratégia Leopard" +msgstr "" #. ~ Description of buff 'Leopard Strategy' for martial art 'Leopard Kung Fu' #: lang/json/martial_art_from_json.py msgid "Perception and intelligence provide a bonus to dodge." -msgstr "Percepção e inteligência fornecem um bônus para se esquivar." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Leopard's Stalk" -msgstr "Caule do Leopardo" +msgstr "" #. ~ Description of buff 'Leopard's Stalk' for martial art 'Leopard Kung Fu' #: lang/json/martial_art_from_json.py msgid "+2 Accuracy" -msgstr "+2 Precisão" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Tiger Kung Fu" -msgstr "Tigre kung fu" +msgstr "" #. ~ Description for martial art 'Tiger Kung Fu' #: lang/json/martial_art_from_json.py @@ -102568,31 +90623,28 @@ msgid "" "attacks above all else. Your Strength determines your accuracy, and your " "attacks do increasing damage as you continue attacking." msgstr "" -" Um dos cinco estilos de animais Shaolin. O Tiger se concentra em " -"ataquesimplacáveis acima de tudo. Sua força determina sua precisão e seus " -"ataquesaumentam o dano à medida que você continua atacando." #: lang/json/martial_art_from_json.py msgid "Tiger Fury" -msgstr "Fúria do Tigre" +msgstr "" #. ~ Description of buff 'Tiger Fury' for martial art 'Tiger Kung Fu' #: lang/json/martial_art_from_json.py msgid "+3 Bash/atk" -msgstr "+3 Bash / atk" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Tiger Strength" -msgstr "Força do Tigre" +msgstr "" #. ~ Description of buff 'Tiger Strength' for martial art 'Tiger Kung Fu' #: lang/json/martial_art_from_json.py msgid "Strength provides additional damage bonus." -msgstr "Força fornece bônus de dano adicional." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Snake Kung Fu" -msgstr "Cobra Kung Fu" +msgstr "" #. ~ Description for martial art 'Snake Kung Fu' #: lang/json/martial_art_from_json.py @@ -102600,31 +90652,28 @@ msgid "" "One of the five Shaolin animal styles. The Snake focuses on sinuous " "movement and precision strikes. Your Perception improves your damage." msgstr "" -" Um dos cinco estilos de animais Shaolin. A Cobra se concentra em " -"movimentosinuoso e ataques de precisão. Sua percepção melhora seu dano." #: lang/json/martial_art_from_json.py msgid "Snake Sight" -msgstr "Visão de cobra" +msgstr "" #. ~ Description of buff 'Snake Sight' for martial art 'Snake Kung Fu' #: lang/json/martial_art_from_json.py msgid "Perception provides a bonus to damage." -msgstr "Percepção fornece um bônus ao dano." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Debug Mastery" -msgstr "Debug Mastery" +msgstr "" #. ~ Description for martial art 'Debug Mastery' #: lang/json/martial_art_from_json.py msgid "A secret martial art used only by developers and cheaters." msgstr "" -" Uma arte marcial secreta usada apenas por desenvolvedores e trapaceiros." #: lang/json/martial_art_from_json.py msgid "Elemental resistance" -msgstr "Resistência elementar" +msgstr "" #. ~ Description of buff 'Elemental resistance' for martial art 'Debug #. Mastery' @@ -102633,12 +90682,10 @@ msgid "" "+Strength bash armor, +Dexterity acid armor, +Intelligence electricity " "armor, +Perception fire armor." msgstr "" -" + Armadura de força, + Armadura de ácido de destreza, + Armadura " -"deeletricidade de inteligência, + Armadura de fogo de percepção." #: lang/json/martial_art_from_json.py msgid "Sōjutsu" -msgstr "Sōjutsu" +msgstr "" #. ~ Description for martial art 'Sōjutsu' #: lang/json/martial_art_from_json.py @@ -102647,27 +90694,24 @@ msgid "" "with a spear. Sōjutsu focuses on keeping opponents at a distance in order " "to maintain advantage in combat." msgstr "" -" Sōjutsu, 'O Caminho da Lança', é a arte marcial japonesa de lutarcom uma " -"lança. Sōjutsu se concentra em manter os adversários a distância, afim de " -"manter a vantagem em combate." #: lang/json/martial_art_from_json.py msgid "Sōjutsu Stance" -msgstr "Postura de Sōjutsu" +msgstr "" #. ~ Description of buff 'Sōjutsu Stance' for martial art 'Sōjutsu' #: lang/json/martial_art_from_json.py msgid "Bonus block with reach weapons while standing still" -msgstr "Bloqueio bônus com armas de alcance em pé" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Sōjutsu Rush" -msgstr "Sōjutsu Rush" +msgstr "" #. ~ Description of buff 'Sōjutsu Rush' for martial art 'Sōjutsu' #: lang/json/martial_art_from_json.py msgid "Increased damage when moving but no bonus block" -msgstr "Dano aumentado ao mover-se mas nenhum bloco de bônus" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Wing Chun" @@ -102694,7 +90738,7 @@ msgstr "" #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" -msgstr "Esgrima medieval" +msgstr "" #. ~ Description for martial art 'Medieval Swordsmanship' #: lang/json/martial_art_from_json.py @@ -102706,11 +90750,11 @@ msgstr "" #: lang/json/martial_art_from_json.py msgid "Displacement" -msgstr "Deslocamento" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Centipede Kung Fu" -msgstr "Centopéia Kung Fu" +msgstr "" #. ~ Description for martial art 'Centipede Kung Fu' #: lang/json/martial_art_from_json.py @@ -102718,21 +90762,19 @@ msgid "" "One of the Five Deadly Venoms. Centipede Style uses an onslaught of rapid " "strikes. Each attack you land increases your speed by 4." msgstr "" -" Um dos cinco venenos mortais. O Centipede Style usa um ataque de " -"ataquesrápidos. Cada ataque que você aterra aumenta sua velocidade em 4." #: lang/json/martial_art_from_json.py msgid "Hundred-Hitter" -msgstr "Cem-Hitter" +msgstr "" #. ~ Description of buff 'Hundred-Hitter' for martial art 'Centipede Kung Fu' #: lang/json/martial_art_from_json.py msgid "+4 Atk Speed" -msgstr "+4 de Velocidade de Ataque" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Scorpion Kung Fu" -msgstr "Escorpião Kung Fu" +msgstr "" #. ~ Description for martial art 'Scorpion Kung Fu' #: lang/json/martial_art_from_json.py @@ -102741,22 +90783,19 @@ msgid "" "uses pincer-like hands and a stinger kick. Critical hits do massive damage " "and knock your target back." msgstr "" -" Um dos cinco venenos mortais. Scorpion Style é uma arte misteriosa que " -"usamãos em forma de pinça e um pontapé de ferrão. Acertos críticos causam " -"danomassivo e derrubam seu alvo." #: lang/json/martial_art_from_json.py msgid "Scorpion Venom" -msgstr "Veneno de escorpião" +msgstr "" #. ~ Description of buff 'Scorpion Venom' for martial art 'Scorpion Kung Fu' #: lang/json/martial_art_from_json.py msgid "+2 bashing damage." -msgstr "+2 dano por contusão." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Toad Kung Fu" -msgstr "Sapo Kung Fu" +msgstr "" #. ~ Description for martial art 'Toad Kung Fu' #: lang/json/martial_art_from_json.py @@ -102765,32 +90804,29 @@ msgid "" "against all attacks. You can meditate by pausing, giving you armor, though " "you will lose focus when you move." msgstr "" -" Um dos cinco venenos mortais. Masters of Toad Style podem se " -"concentrarcontra todos os ataques. Você pode meditar fazendo uma pausa, " -"dando-lhe umaarmadura, mas você perderá o foco quando se mexer." #: lang/json/martial_art_from_json.py msgid "Toad's Iron Skin" -msgstr "Pele de Ferro do Sapo" +msgstr "" #. ~ Description of buff 'Toad's Iron Skin' for martial art 'Toad Kung Fu' #: lang/json/martial_art_from_json.py msgid "Gain up to +6 armor while standing still" -msgstr "Ganhe até +6 de armadura enquanto estiver parado" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Iron Skin Dissipation" -msgstr "Dissipação da pele de ferro" +msgstr "" #. ~ Description of buff 'Iron Skin Dissipation' for martial art 'Toad Kung #. Fu' #: lang/json/martial_art_from_json.py msgid "Iron Skin softens when you move!" -msgstr "Pele de ferro suaviza quando você se move!" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Lizard Kung Fu" -msgstr "Lagarto Kung Fu" +msgstr "" #. ~ Description for martial art 'Lizard Kung Fu' #: lang/json/martial_art_from_json.py @@ -102798,12 +90834,10 @@ msgid "" "One of the Five Deadly Venoms. Lizard Style focuses on using walls to your " "advantage." msgstr "" -" Um dos cinco venenos mortais. Lizard Style se concentra em usar paredespara" -" sua vantagem." #: lang/json/martial_art_from_json.py msgid "Viper Kung Fu" -msgstr "Víbora Kung Fu" +msgstr "" #. ~ Description for martial art 'Viper Kung Fu' #: lang/json/martial_art_from_json.py @@ -102812,36 +90846,33 @@ msgid "" "combo, which initiates on a dodge, then counters with a stunning chop and " "the legendary Viper Strike." msgstr "" -" Um legado dos cinco venenos mortais. O Viper Style tem uma combinação " -"únicade três partes, que inicia em um dodge, e então conta com um " -"chopimpressionante e o lendário Viper Strike." #: lang/json/martial_art_from_json.py msgid "Viper Lock" -msgstr "Viper Lock" +msgstr "" #. ~ Description of buff 'Viper Lock' for martial art 'Viper Kung Fu' #: lang/json/martial_art_from_json.py msgid "You bit true! Your next attack will be the Viper Strike!" -msgstr "Você mordeu a verdade! Seu próximo ataque será o Viper Strike!" +msgstr "" #: lang/json/martial_art_from_json.py msgid "Viper Patience" -msgstr "Viper Patience" +msgstr "" #. ~ Description of buff 'Viper Patience' for martial art 'Viper Kung Fu' #: lang/json/martial_art_from_json.py msgid "+2 Dodge. Dodging an attack initiates a combo." -msgstr "+2 de esquiva. Esquivando-se de um ataque inicia um combo." +msgstr "" #: lang/json/martial_art_from_json.py msgid "Viper Ambush" -msgstr "Viper Emboscada" +msgstr "" #. ~ Description of buff 'Viper Ambush' for martial art 'Viper Kung Fu' #: lang/json/martial_art_from_json.py msgid "You've lured 'em in! Your next attack will be a Viper Bite." -msgstr "Você os atraiu! Seu próximo ataque será um Viper Bite." +msgstr "" #: lang/json/martial_art_from_json.py msgid "C.R.I.T Blade-work" @@ -103025,7 +91056,7 @@ msgstr "destruído" #: lang/json/material_from_json.py msgid "Biosilicified Chitin" -msgstr "Quitina Biosilicificada" +msgstr "" #: lang/json/material_from_json.py msgid "cracked" @@ -103045,7 +91076,7 @@ msgstr "Osso" #: lang/json/material_from_json.py msgid "Brass" -msgstr "Latão" +msgstr "" #: lang/json/material_from_json.py msgid "marked" @@ -103053,7 +91084,7 @@ msgstr "marcado" #: lang/json/material_from_json.py msgid "Budget Steel" -msgstr "Aço de orçamento" +msgstr "" #: lang/json/material_from_json.py msgid "Ceramic" @@ -103077,7 +91108,7 @@ msgstr "Argila" #: lang/json/material_from_json.py msgid "Copper" -msgstr "Cobre" +msgstr "" #: lang/json/material_from_json.py msgid "Cotton" @@ -103153,7 +91184,7 @@ msgstr "Pele" #: lang/json/material_from_json.py msgid "Faux Fur" -msgstr "Peles artificiais" +msgstr "" #: lang/json/material_from_json.py msgid "Glass" @@ -103213,7 +91244,7 @@ msgstr "Laticínio" #: lang/json/material_from_json.py msgid "Neoprene" -msgstr "Neoprene" +msgstr "" #: lang/json/material_from_json.py msgid "Nomex" @@ -103253,7 +91284,7 @@ msgstr "Prata" #: lang/json/material_from_json.py msgid "Platinum" -msgstr "Platina" +msgstr "" #: lang/json/material_from_json.py msgid "Steel" @@ -103273,23 +91304,23 @@ msgstr "Matéria Vegetal" #: lang/json/material_from_json.py msgid "Tomato" -msgstr "Tomate" +msgstr "" #: lang/json/material_from_json.py msgid "Bean" -msgstr "Feijão" +msgstr "" #: lang/json/material_from_json.py msgid "Garlic" -msgstr "Alho" +msgstr "" #: lang/json/material_from_json.py msgid "Nut" -msgstr "Noz" +msgstr "" #: lang/json/material_from_json.py msgid "Mushroom" -msgstr "Cogumelo" +msgstr "" #: lang/json/material_from_json.py #: lang/json/overmap_land_use_code_from_json.py src/defense.cpp @@ -103315,19 +91346,19 @@ msgstr "Lã" #: lang/json/material_from_json.py msgid "Feces" -msgstr "Fezes" +msgstr "" #: lang/json/material_from_json.py msgid "squashed" -msgstr "esmagado" +msgstr "" #: lang/json/material_from_json.py msgid "mashed" -msgstr "purê" +msgstr "" #: lang/json/material_from_json.py msgid "mushed" -msgstr "mushed" +msgstr "" #: lang/json/material_from_json.py msgid "Dried Vegetable" @@ -103359,7 +91390,7 @@ msgstr "" #: lang/json/material_from_json.py msgid "Bronze" -msgstr "Bronze" +msgstr "" #: lang/json/material_from_json.py msgid "Titanium" @@ -103379,53 +91410,53 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Find a Book" -msgstr "Encontre um livro" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Wanna help me out?" -msgstr "Quer me ajudar?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Get me a book." -msgstr "Me traga um livro." +msgstr "" #: lang/json/mission_def_from_json.py lang/json/talk_topic_from_json.py #: lang/json/talk_topic_from_json.py msgid "Thanks." -msgstr "Obrigado." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Well, I'll find someone else to do it for me." -msgstr "Bem, eu vou encontrar alguém para fazer isso por mim." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Try a library." -msgstr "Tente uma biblioteca." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Got that book for me?" -msgstr "Tem esse livro pra mim?" +msgstr "" #: lang/json/mission_def_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Thanks!" -msgstr "Obrigado!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "OK, then hand it over." -msgstr "OK, então entregue." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Shit happens." -msgstr "Merda acontece." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Follow Sarcophagus Team" -msgstr "Siga a equipe do sarcófago" +msgstr "" #: lang/json/mission_def_from_json.py msgid "You wouldn't believe what I found..." -msgstr "Você não acreditaria no que eu encontrei ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103438,23 +91469,15 @@ msgid "" " join up with what remains of the government then now may be our only " "chance." msgstr "" -" Santo inferno, o acidente que você recuperou da caixa preta não era " -"tãoantigo quanto eu pensava. Verifique isso, foi em sua abordagem para " -"pegaruma equipe enviada para proteger e destruir algo chamado 'Sarcófago" -" deResíduos Perigosos' no meio do nada. Se o pássaro nunca pegou a " -"equipe, então ainda podemos ter a chance de encontrá-los. Ele inclui um " -"código deacesso para o elevador e uma mensagem codificada para o líder da " -"equipe, euacho. Se queremos nos unir ao que resta do governo, então agora " -"pode sernossa única chance." #: lang/json/mission_def_from_json.py msgid "Fuck ya, America!" -msgstr "Foda-se, América!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Are you going to forfeit your duty when the country needs you the most?" -msgstr "Você vai perder o seu dever quando o país mais precisa de você?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103462,95 +91485,88 @@ msgid "" "want to impress them. Carry as much ammo as you can and prepare to ditch " "this place if they have a second bird coming to pick them up." msgstr "" -" Se houver uma equipe militar lá embaixo, é melhor irmos preparados " -"sequisermos impressioná-los. Leve o máximo de munição possível e prepare- " -"separa sair desse lugar se eles tiverem um segundo pássaro vindo buscá-los." #: lang/json/mission_def_from_json.py msgid "Having any trouble following the map?" -msgstr "Está com algum problema seguindo o mapa?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "We got this shit!" -msgstr "Nós temos essa merda!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "What?! I out'ta whip your ass." -msgstr "O que?! Eu vou chicotear sua bunda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Damn, we were so close." -msgstr "Porra, estávamos tão perto." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Inhaler" -msgstr "Encontrar inalador" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm... short... of breath...." -msgstr "Eu sou ... curto ... de respirar ...." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm asthmatic. I need you to get an inhaler for me..." -msgstr "Eu sou asmático. Preciso que você pegue um inalador para mim ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Oh, thank god, thank you so much! I won't last more than a couple of days, " "so hurry..." msgstr "" -" Oh, graças a Deus, muito obrigada! Eu não durarei mais do que alguns dias, " -"então corra ..." #: lang/json/mission_def_from_json.py msgid "What?! Please, without your help!" -msgstr "O que?! Por favor, sem sua ajuda!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "There's a town nearby. Check pharmacies; it'll be behind the counter." -msgstr "Há uma cidade próxima. Verifique farmácias; ficará atrás do balcão." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find any inhaler yet?" -msgstr "Encontre algum inalador ainda?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Oh thank god! I'll be right as rain in no time." -msgstr "Oh! Graças a deus! Eu vou estar certo como chuva em nenhum momento." +msgstr "" #: lang/json/mission_def_from_json.py msgid "What?! You're lying, I can tell! Ugh, forget it!" -msgstr "O que?! Você está mentindo, eu posso dizer! Ugh, esqueça!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "How am I not dead already?!" -msgstr "Como eu não estou morto ?!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Antibiotics" -msgstr "Encontre Antibióticos" +msgstr "" #: lang/json/mission_def_from_json.py msgid "This infection is bad, bad..." -msgstr "Esta infecção é ruim mau..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm infected. Badly. I need you to get some antibiotics for me..." msgstr "" -" Estou infectado Seriamente. Eu preciso de você para obter " -"algunsantibióticos para mim ..." #: lang/json/mission_def_from_json.py msgid "Find any antibiotics yet?" -msgstr "Encontre algum antibiótico ainda?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Retrieve Military Black Box" -msgstr "Recuperar Caixa Negra Militar" +msgstr "" #: lang/json/mission_def_from_json.py msgid "We've got the flag, now we need to locate US forces." -msgstr "Nós temos a bandeira, agora precisamos localizar as forças dos EUA." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103560,47 +91576,40 @@ msgid "" "me a black box from one of the wrecks I'll look into where we might open'er " "at." msgstr "" -" Nós temos a bandeira, mas agora precisamos localizar as tropas dos EUA " -"paraver o que podemos fazer para ajudar. Eu não vi nenhum, mas eu acho que " -"umdaqueles helicópteros que estavam voando durante o surto teria uma " -"boaidéia. Se você puder me pegar uma caixa preta de um dos destroços, eu " -"vouolhar para onde nós poderíamos nos abrir." #: lang/json/mission_def_from_json.py msgid "Do you have any better ideas?" -msgstr "Você tem alguma ideia melhor?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Survivors were talking about them crashing but I don't know where. If I " "were a pilot I'd avoid crash landing in a city or forest though." msgstr "" -" Sobreviventes estavam falando sobre eles quebrando, mas eu não sei onde. " -"Seeu fosse um piloto, evitaria um pouso forçado em uma cidade ou floresta." #: lang/json/mission_def_from_json.py msgid "How 'bout that black box?" -msgstr "Que tal caixa preta?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "America, fuck ya!" -msgstr "América, foda-se!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "What?! I out'ta whip you're ass." -msgstr "O que?! Eu vou chicotear sua bunda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Damn, I'll have to find'er myself." -msgstr "Porra, vou ter que me encontrar." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Retrieve Black Box Transcript" -msgstr "Recuperar Transcrição da Caixa Negra" +msgstr "" #: lang/json/mission_def_from_json.py msgid "With the black box in hand, we need to find a lab." -msgstr "Com a caixa preta na mão, precisamos encontrar um laboratório." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103612,42 +91621,30 @@ msgid "" "can get inside and find a computer lab that still works you ought to be able" " to find out what's in the black box." msgstr "" -" Graças à sua pesquisa, temos a caixa preta, mas agora precisamos olhar " -"paraela. Agora, a maioria dos edifícios não tem mais energia, mas há alguns " -"que podem ser úteis. Você já viu um desses laboratórios de ciência que " -"surgiramno meio do nada? Aqueles otários têm um terminal brilhante na " -"frente, entãoeu sei que eles têm poder em algum lugar dentro deles. Se você " -"puder entrare encontrar um laboratório de informática que ainda funcione, " -"você deve sercapaz de descobrir o que está na caixa preta." #: lang/json/mission_def_from_json.py msgid "" "When I was play'n with the terminal for the one I ran into it kept asking " "for an ID card. Finding one would be the first order of business." msgstr "" -" Quando eu estava jogando com o terminal, encontrei um cartão " -"deidentificação. Encontrar um seria a primeira ordem do dia." #: lang/json/mission_def_from_json.py 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 "" -" América, foda-se! Eu estava no guarda há alguns anos, então estou " -"confiantede que posso fazer cara ou coroa dessas transmissões." #: lang/json/mission_def_from_json.py msgid "Damn, I maybe we can find an egg-head to crack the terminal." msgstr "" -" Porra, talvez possamos encontrar uma cabeça de ovo para quebrar o terminal." #: lang/json/mission_def_from_json.py msgid "Find Deputy Badge" -msgstr "Encontrar adjunto Badge" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Those twisted snakes..." -msgstr "Essas cobras torcidas ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103656,92 +91653,80 @@ msgid "" "justice for those who cannot. First things first, we can't just look like " "ruffians. Find us a deputy badge, easy enough?" msgstr "" -" Eu espero que você encontre o que você tirou do depósito, mas eu " -"tambémtenho outro trabalho para você que pode levá-lo a uma oportunidade " -"dedistribuir justiça para aqueles que não podem. Primeiras coisas em " -"primeirolugar, não podemos apenas olhar como rufiões. Encontre-nos um " -"distintivoadjunto, bastante fácil?" #: lang/json/mission_def_from_json.py msgid "I'd check the police station." -msgstr "Eu verificaria a delegacia." +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 "" -" Nós também somos oficiais ... apenas espere e mostrarei o que realmente " -"podemos fazer." #: lang/json/mission_def_from_json.py msgid "They shouldn't be that hard to find... should they?" -msgstr "Eles não deveriam ser tão difíceis de encontrar ... deveriam?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Any luck?" -msgstr "Alguma sorte?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Great work, Deputy. We're in business." -msgstr "Ótimo trabalho, adjunto. Estamos no negócio." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks for trying... I guess." -msgstr "Obrigado por tentar ... eu acho." +msgstr "" #: lang/json/mission_def_from_json.py msgid "The day of reckoning will come for the criminals if it hasn't already." msgstr "" -" O dia do acerto de contas virá para os criminosos se já não o tiver feito." #: lang/json/mission_def_from_json.py msgid "Find Flag" -msgstr "Encontrar Flag" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Does our flag still yet wave?" -msgstr "Nossa bandeira ainda acena?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Does our flag still yet wave? We're battered but not yet out of the fight, " "we need the old colors!" msgstr "" -" Nossa bandeira ainda acena? Estamos machucados, mas ainda não fora da luta," -" precisamos das cores antigas!" #: lang/json/mission_def_from_json.py msgid "Hell ya! Find me one of those big ol' American flags." -msgstr "Inferno ya! Encontre-me uma daquelas grandes bandeiras americanas." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Seriously? God damned commie..." -msgstr "A sério? Deus amaldiçoou ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find a large federal building or school, they must have one." -msgstr "Encontre um grande prédio ou escola federal, eles devem ter um." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Rescued the standard yet?" -msgstr "Resgatou o padrão ainda?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "What?! You liar!" -msgstr "O que?! Seu mentiroso!" +msgstr "" #: lang/json/mission_def_from_json.py 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 "" -" Você desiste? Este país desmoronou porque ninguém poderia encontrar um " -"bomhomem para confiar ... poderia muito bem desistir, eu acho." #: lang/json/mission_def_from_json.py msgid "Find Corporate Accounts" -msgstr "Encontrar contas corporativas" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103749,52 +91734,41 @@ msgid "" " paid for their elections. Just find me one of those corporate accounting " "books and I'll show you and the rest of the world just who is at fault." msgstr "" -" Nosso mundo desmoronou porque nossos líderes eram tão desonestos quanto " -"osvigaristas que pagavam por suas eleições. Apenas me encontre um " -"desseslivros de contabilidade corporativa e mostrarei a você e ao resto do " -"mundoquem é o culpado." #: lang/json/mission_def_from_json.py msgid "You'll see, I know I'm right." -msgstr "Você vai ver, eu sei que estou certo." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I know it isn't pressing but the big corporations didn't get a chance to " "destroy the evidence yet." msgstr "" -" Eu sei que não é urgente, mas as grandes corporações não tiveram a chancede" -" destruir a evidência ainda." #: lang/json/mission_def_from_json.py msgid "" "Try a big corporate building of some sort, they're bound to have an " "accounting department." msgstr "" -" Tente um grande edifício corporativo de algum tipo, eles são obrigados ater" -" um departamento de contabilidade." #: lang/json/mission_def_from_json.py msgid "" "Great, let's see... uh... hmmm... Fine, I didn't even do my own taxes but " "I'm sure this will prove their guilt if we get an expert to examine it." msgstr "" -" Ótimo, vamos ver ... uh ... hmmm ... Bem, eu nem fiz meus própriosimpostos," -" mas tenho certeza que isso provará a culpa deles se conseguirmosum " -"especialista para examiná-lo." #: lang/json/mission_def_from_json.py msgid "" "The day of reckoning will come for the corporations if it hasn't already." -msgstr "O dia do acerto de contas virá para as corporações, se já não o fez." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Patient Records" -msgstr "Encontrar registros de pacientes" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I hope I don't see many names I know..." -msgstr "Espero não ver muitos nomes que conheço ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103802,45 +91776,38 @@ msgid "" " hospital or doctor's office. I just want to know who might still be out " "there." msgstr "" -" Perdi muitos amigos ... por favor, encontre uma lista de pacientes " -"dohospital regional ou do consultório médico. Eu só quero saber quem ainda " -"pode estar lá fora." #: lang/json/mission_def_from_json.py msgid "" "Thank you, I suppose it won't change what has already happened but it will " "bring me closure." msgstr "" -" Obrigado, suponho que isso não vai mudar o que já aconteceu, mas isso " -"metrará o fechamento." #: lang/json/mission_def_from_json.py msgid "Please, I just want to know what happened to everyone." -msgstr "Por favor, só quero saber o que aconteceu com todos." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I bet you'll run into a lot of those things in the hospital, please be " "careful." msgstr "" -" Aposto que você vai se deparar com muitas dessas coisas no hospital, " -"porfavor, tenha cuidado." #: lang/json/mission_def_from_json.py msgid "Oh dear, I thought Timmy would have made it..." -msgstr "Oh querida, eu pensei que Timmy teria feito isso ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I bet some of them are still out there..." -msgstr "Aposto que alguns deles ainda estão por aí ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Weather Log" -msgstr "Encontre o Log de Tempo" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I wonder if a retreat might exist..." -msgstr "Eu me pergunto se um retiro pode existir ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103850,46 +91817,38 @@ msgid "" "ever the disease was released. We need to find a record of all the weather " "patterns leading up to the outbreak." msgstr "" -" Todo mundo que morre volta, certo? O que significa que o que quer queesteja" -" causando isso, deve estar no ar para ter infectado todos. Acreditoque, se " -"for esse o caso, deve haver regiões que não estão a favor do vento, de onde " -"a doença foi liberada. Precisamos encontrar um registro de todos ospadrões " -"climáticos que levaram ao surto." #: lang/json/mission_def_from_json.py msgid "Thanks so much, you may save both of us yet." -msgstr "Muito obrigado, você pode salvar nós dois ainda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Ya, it was a long shot I admit." -msgstr "Ya, foi um tiro no escuro, eu admito." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm not sure, maybe a news station would have what we are looking?" msgstr "" -" Não tenho certeza, talvez uma estação de notícias teria o que " -"estamosprocurando?" #: lang/json/mission_def_from_json.py msgid "These look more complicated than I thought, just give me some time." msgstr "" -" Estes parecem mais complicados do que eu pensava, apenas me dê algum tempo." #: lang/json/mission_def_from_json.py msgid "This isn't what we need." -msgstr "Isso não é o que precisamos." +msgstr "" #: lang/json/mission_def_from_json.py msgid "If only we could find a great valley or something." -msgstr "Se ao menos pudéssemos encontrar um grande vale ou algo assim." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Relic" -msgstr "Encontrar relíquia" +msgstr "" #: lang/json/mission_def_from_json.py msgid "St. Michael the archangel defend me in battle..." -msgstr "São Miguel Arcanjo defende-me em batalha ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103898,48 +91857,39 @@ msgid "" "truth to them. Please go and find me a religious relic... I doubt it will " "be of much use but I've got to hope in something." msgstr "" -" À medida que o mundo parece abandonar a realidade que conhecíamos, torna- " -"seplausível que as antigas superstições deixadas de lado possam ter " -"algumaverdade para elas. Por favor, vá e me encontre uma relíquia religiosa " -"...Eu duvido que seja de muita utilidade, mas eu tenho que esperar em " -"algumacoisa." #: lang/json/mission_def_from_json.py msgid "" "I wish you the best of luck, may whatever god you please guide your path." msgstr "" -" Desejo-lhe boa sorte, seja qual for o deus que você, por favor, guie " -"seucaminho." #: lang/json/mission_def_from_json.py msgid "Ya, I guess the stress may just be getting to me..." -msgstr "Ya, eu acho que o estresse pode estar ficando para mim ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I suppose a large church or cathedral may have something." -msgstr "Eu suponho que uma grande igreja ou catedral possa ter alguma coisa." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Any luck? Please find me a small relic. Any relic will do." msgstr "" -" Alguma sorte? Por favor, encontre-me uma pequena relíquia. Qualquerrelíquia" -" fará." #: lang/json/mission_def_from_json.py msgid "Thank you, I need some time alone now..." -msgstr "Obrigado, preciso de um tempo sozinho agora ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "What good does this do us?" -msgstr "Que bem isso nos faz?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "It was a lost cause anyways..." -msgstr "Foi uma causa perdida de qualquer maneira ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Retrieve Deposit Box" -msgstr "Recuperar caixa de depósito" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103950,16 +91900,10 @@ msgid "" " can keep any of the goodies in it that I can't use to press charges against" " these bastards." msgstr "" -" Agora eu não quero incomodar você, mas não tenho certeza do que posso " -"fazercom o livro contábil no momento. No entanto, temos um novo lead, o " -"ledgertem um cofre sob o nome do gerente regional. Adivinhe, otário " -"idiotaescreveu sua combinação. Venha comigo para recuperar a caixa e você " -"podemanter qualquer uma das guloseimas que eu não posso usar para " -"fazeracusações contra esses bastardos." #: lang/json/mission_def_from_json.py msgid "You may make a tidy profit from this." -msgstr "Você pode lucrar com isso." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -103967,73 +91911,65 @@ msgid "" "we start rebuilding unless we take measure to stop those who seek to rule " "over us." msgstr "" -" Sei que não é urgente, mas o mundo vai ser tão corrupto quando começarmos " -"areconstruir, a menos que tomemos medidas para impedir aqueles que " -"procuramnos governar." #: lang/json/mission_def_from_json.py msgid "This shouldn't be hard unless we run into a horde." -msgstr "Isso não deve ser difícil a menos que nos deparamos com uma horda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Great, anything I can't use to prosecute the bastards is yours, as promised." msgstr "" -" Ótimo, qualquer coisa que eu não possa usar para processar os bastardos " -"éseu, como prometido." #: lang/json/mission_def_from_json.py msgid "Retrieve Software" -msgstr "Recuperar Software" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Oh man, I can't believe I forgot to download it..." -msgstr "Oh homem, eu não posso acreditar que eu esqueci de baixá-lo ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "There's some important software on my computer that I need on USB." -msgstr "Há algum software importante no meu computador que eu preciso em USB." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks! Just pull the data onto this USB drive and bring it to me." msgstr "" -" Obrigado! Basta puxar os dados para esta unidade USB e trazê-lo para mim." #: lang/json/mission_def_from_json.py msgid "Seriously? It's an easy job..." -msgstr "A sério? É um trabalho fácil ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Take this USB drive. Use the console, and download the software." -msgstr "Tome este drive USB. Use o console e baixe o software." +msgstr "" #: lang/json/mission_def_from_json.py msgid "So, do you have my software yet?" -msgstr "Então, você tem meu software ainda?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Excellent, thank you!" -msgstr "Excelente, obrigado!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Wow, you failed? All that work, down the drain..." -msgstr "Uau, você falhou? Todo esse trabalho, pelo ralo ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Analyze Zombie Blood" -msgstr "Analise o Sangue Zumbi" +msgstr "" #: lang/json/mission_def_from_json.py msgid "It could be very informative to perform an analysis of zombie blood..." -msgstr "Pode ser muito informativo fazer uma análise do sangue zumbi ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I need someone to get a sample of zombie blood, take it to a hospital, and " "perform a centrifuge analysis of it." msgstr "" -" Eu preciso de alguém para obter uma amostra de sangue de zumbi, levá-lapara" -" um hospital e fazer uma análise centrífuga dela." #: lang/json/mission_def_from_json.py msgid "" @@ -104041,44 +91977,37 @@ msgid "" "use it to extract blood from the body, then take it to a hospital for " "analysis." msgstr "" -" Excelente. Tome este kit de coleta de sangue; Uma vez que você produziu " -"umcadáver zumbi, use-o para extrair o sangue do corpo e leve-o para " -"umhospital para análise." #: lang/json/mission_def_from_json.py msgid "" "Are you sure? The scientific value of that blood data could be priceless..." msgstr "" -" Você tem certeza? O valor científico dos dados do sangue pode " -"serinestimável ..." #: lang/json/mission_def_from_json.py msgid "" "The centrifuge is a bit technical; you might want to study up on the usage " "of computers before completing that part." msgstr "" -" A centrífuga é um pouco técnica; talvez você queira estudar o uso " -"decomputadores antes de concluir essa parte." #: lang/json/mission_def_from_json.py msgid "Well, do you have the data yet?" -msgstr "Bem, você tem os dados ainda?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Excellent! This may be the key to removing the infection." -msgstr "Excelente! Esta pode ser a chave para remover a infecção." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Wait, you couldn't possibly have the data! Liar!" -msgstr "Espere, você não poderia ter os dados! Mentiroso!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "What a shame, that data could have proved invaluable..." -msgstr "Que pena, esses dados poderiam ter sido inestimáveis ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Investigate Cult" -msgstr "Investigar o culto" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104089,12 +92018,6 @@ msgid "" "location for me? I'm not sure what was going on here but the priest seemed " "fairly worried about it." msgstr "" -" Você não tem ideia de como esse diário é interessante. Eu tenho duas " -"pistasmuito promissoras ... Primeiro, a Igreja Católica vem realizando " -"suaspróprias investigações sobre o fenômeno do culto global e parece ter " -"setornado muito interessada em um culto local até recentemente. Você " -"poderiainvestigar um local para mim? Não tenho certeza do que estava " -"acontecendoaqui, mas o padre parecia bastante preocupado com isso." #: lang/json/mission_def_from_json.py msgid "" @@ -104104,12 +92027,6 @@ 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 "" -" Desejo-lhe boa sorte, seja qual for o deus que você, por favor, guie " -"seucaminho ... Você pode precisar desta vez mais do que as excursões " -"passadasque você fez. Há uma nota sobre o potencial sacrifício humano nos " -"diasimediatamente anteriores e posteriores ao surto. Acredita-se que o nome " -"doculto seja a Igreja da Sabedoria Estrelar, mas note-se que as contas " -"sãodiferentes." #: lang/json/mission_def_from_json.py msgid "" @@ -104117,14 +92034,10 @@ msgid "" "not sure what you might be looking for but I'm positive you'll find " "something out of the ordinary if you look long enough." msgstr "" -" Eu duvido que o site ainda esteja ocupado, mas eu carregaria uma arma " -"defogo pelo menos ... Eu não tenho certeza do que você está procurando, " -"maseu tenho certeza que você vai encontrar algo fora do comum se você olhar " -"osuficiente." #: lang/json/mission_def_from_json.py msgid "I'm positive there is something there... there has to be, any luck?" -msgstr "Tenho certeza de que há algo lá ... tem que haver alguma sorte?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104133,15 +92046,10 @@ msgid "" "survivors of this cult... I don't known if they are responsible for the " "outbreak but they certainly know more about it than I do." msgstr "" -" Obrigado, a sua conta dessas ... criações demoníacas prova os medos que " -"asigrejas tinham sido bem fundamentadas. Nossa prioridade deveria " -"sereliminar quaisquer sobreviventes desse culto ... Eu não sei se eles " -"sãoresponsáveis pelo surto, mas eles certamente sabem mais sobre isso do " -"queeu." #: lang/json/mission_def_from_json.py msgid "Prison Visionary" -msgstr "Visionário de Prisão" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104153,14 +92061,6 @@ msgid "" "in a position to cast out the account just yet... it seems the man has " "prophesied events accurately before concerning the Church of Starry Wisdom." msgstr "" -" Eu tenho outra tarefa se você estiver se sentindo bem. Há um prisioneiroque" -" o padre fez menção especial. Eu queria saber se você poderia ver o que pode" -" ter acontecido com ele ou se ele deixou alguma coisa em sua cela. Opadre " -"admite que o indivíduo é um tanto instável, para ser franco, mas opadre " -"pessoalmente acreditava que o homem era algum tipo de visionárioarrependido." -" Eu não estou em posição de expulsar a conta ainda ... pareceque o homem " -"profetizou os acontecimentos com precisão antes de se referir àIgreja da " -"Sabedoria Estrelada." #: lang/json/mission_def_from_json.py msgid "" @@ -104169,10 +92069,6 @@ msgid "" "not sure what they would have decided to do with the inmates when they knew " "death was almost certain. " msgstr "" -" Desejo-lhe boa sorte, seja qual for o deus que você, por favor, guie " -"seucaminho ... Eu só posso imaginar que a prisão será um pequeno pedaço " -"doinferno. Eu não tenho certeza do que eles teriam decidido fazer com " -"osdetentos quando eles sabiam que a morte era quase certa." #: lang/json/mission_def_from_json.py msgid "" @@ -104181,21 +92077,15 @@ msgid "" "case, the building went into lock-down and secured the prisoners in their " "cells. Either way, navigating the building will pose its own difficulties." msgstr "" -" O pior cenário provavelmente será que os prisioneiros tenham escapado " -"desuas celas e transformaram o prédio em sua própria pequena fortaleza. " -"Namelhor das hipóteses, o prédio foi trancado e prendeu os prisioneiros " -"emsuas celas. De qualquer maneira, navegar pelo prédio apresentará " -"suaspróprias dificuldades." #: lang/json/mission_def_from_json.py msgid "" "Thank you, I'm not sure what to make of this but I'll ponder your account." msgstr "" -" Obrigado, não sei o que fazer com isso, mas vou refletir sobre sua conta." #: lang/json/mission_def_from_json.py msgid "Well damn, you must be the guys here to pick me up..." -msgstr "Bem, caramba, vocês devem ser os caras aqui para me pegar ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104206,56 +92096,46 @@ msgid "" "chance in this world. You ready to take charge boss? This world could use " "a Sheriff just about now." msgstr "" -" Eu tenho o resumo, então eu sei no que estou me metendo. Deixe-me " -"serdireto, me trate como uma merda e eu vou cobrir minha própria pele. " -"Noentanto, você me trata bem e me dá algo em que acreditar, mesmo que " -"sejaapenas um pouco de metal brilhante, e eu vou fazer o certo. Sem uma " -"bandaforte, um homem não tem chance neste mundo. Você está pronto para " -"assumir ocomando? Este mundo poderia usar um xerife apenas agora." #: lang/json/mission_def_from_json.py msgid "" "Before we get into a major fight just make sure we have the gear we need, " "boss." msgstr "" -" Antes de entrarmos em uma grande luta, certifique-se de que temos " -"oequipamento que precisamos, chefe." #: lang/json/mission_def_from_json.py msgid "" "I don't think you're going to find many other survivors who haven't taken up" " a faction yet." msgstr "" -" Eu não acho que você vai encontrar muitos outros sobreviventes que aindanão" -" tenham assumido uma facção." #: lang/json/mission_def_from_json.py msgid "I'm a pretty good shot with a rifle or pistol." -msgstr "Eu sou um tiro muito bom com um rifle ou pistola." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Any problems boss?" -msgstr "Qualquer chefe de problemas?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Wait... are you really making me a deputy?" -msgstr "Espere ... você está realmente me fazendo um vice?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I don't think so..." -msgstr "Acho que não..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Quitting already?" -msgstr "Já está saindo?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Kill 100 Zombies" -msgstr "Mate 100 zumbis" +msgstr "" #: lang/json/mission_def_from_json.py msgid "You seem to know this new world better than most..." -msgstr "Você parece conhecer este novo mundo melhor que a maioria ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104266,21 +92146,12 @@ msgid "" " to the best of my ability but you really showed promise taking out that " "other beast. You, I, and a 100 zombies laid to rest, what do you say?" msgstr "" -" Você está equipado melhor do que a maioria ... você estaria interessado " -"emtornar este mundo um pouco melhor para o resto de nós? As cidades " -"têmsuprimentos suficientes para nós, sobreviventes, começarmos a garantir " -"umaposição segura, mas não temos ninguém com as habilidades e " -"equipamentospara diluir as massas de mortos-vivos. Eu lhe darei uma mão com " -"o melhor deminha habilidade, mas você realmente mostrou a promessa de tirar " -"aquelaoutra fera. Você, eu e 100 zumbis deitados, o que você diz?" #: lang/json/mission_def_from_json.py msgid "" "Hell ya, we may get ourselves killed but we'll be among the first legends of" " the apocalypse." msgstr "" -" Inferno, podemos nos matar, mas estaremos entre as primeiras lendas " -"doapocalipse." #: lang/json/mission_def_from_json.py msgid "" @@ -104288,43 +92159,33 @@ msgid "" "most of us survivors won't make it unless someone decides to take the " "initiative." msgstr "" -" Ei, eu sei que não seria voluntário para isso também ... mas então eulembro" -" que a maioria de nós, sobreviventes, não vai conseguir, a menos quealguém " -"decida tomar a iniciativa." #: lang/json/mission_def_from_json.py msgid "I'd secure an ammo cache and try to sweep a town in multiple passes." msgstr "" -" Eu protegeria um cache de munição e tentaria varrer uma cidade em " -"váriospassos." #: lang/json/mission_def_from_json.py msgid "Got this knocked out?" -msgstr "Tem isso nocauteado?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Man... you're a goddamn machine. It was a pleasure working with you. You " "know, you may just change our little neck of the world if you keep this up." msgstr "" -" Cara ... você é uma maldita máquina. Foi um prazer trabalhar com você. " -"Vocêsabe, você pode apenas mudar o nosso pequeno pescoço do mundo se " -"vocêcontinuar assim." #: lang/json/mission_def_from_json.py msgid "I don't think that was quite a hundred dead zeds." -msgstr "Eu não acho que foram cem zeds mortos." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Kill Horde Master" -msgstr "Matar o Mestre da Horda" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I've heard some bad rumors so I hope you are up for another challenge..." msgstr "" -" Eu ouvi alguns rumores ruins, então eu espero que você esteja pronto " -"paraoutro desafio ..." #: lang/json/mission_def_from_json.py msgid "" @@ -104335,50 +92196,39 @@ msgid "" "but this thing reeks of trouble. Do whatever it takes but we can't risk it " "getting away." msgstr "" -" Aparentemente, um dos outros sobreviventes pegou uma " -"hordaextraordinariamente densa de mortos-vivos movendo-se para a área. No " -"centrodessa multidão havia um 'líder' de algum tipo. O que falta ématar o " -"filho da puta. Nós não sabemos do que é capaz ou porque é cercadopor outros " -"zumbis, mas isso é um problema. Faça o que for preciso, mas não podemos nos " -"arriscar a fugir." #: 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 "" -" Eu lhe darei uma mão, mas tentaria recrutar outro pistoleiro, se pudesse." #: lang/json/mission_def_from_json.py msgid "What's the use of walking away, they'll track you down eventually." -msgstr "Qual é o uso de ir embora, eles vão te rastrear eventualmente." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Don't risk torching the building it may be hiding in if it has a basement. " "The sucker may still be alive under the rubble and ash." msgstr "" -" Não corra o risco de incendiar o edifício no qual ele pode estar se " -"eletiver um porão. O otário ainda pode estar vivo sob os escombros e cinzas." #: lang/json/mission_def_from_json.py msgid "May that bastard never get up again." -msgstr "Que aquele desgraçado nunca mais se levante." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I don't think we got it yet." -msgstr "Eu não acho que nós temos ainda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Kill Jabberwock" -msgstr "Matar Jabberwock" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "The eater of the dead... something was ripping zombies to shreds and only " "leaving a few scattered limbs..." msgstr "" -" O comedor dos mortos ... algo estava rasgando zumbis e deixando " -"apenasalguns membros espalhados ..." #: lang/json/mission_def_from_json.py msgid "" @@ -104389,104 +92239,90 @@ msgid "" "meet-up back here. My buddy never showed up and I don't have the means to " "kill whatever it was. Can you lend a hand?" msgstr "" -" Alguns dias atrás, outro sobrevivente e eu estávamos tentando evitar " -"ascidades permanecendo na mata durante o dia e procurando comida à noite. " -"Funcionou bem contra o zed normal, mas uma noite algo pegou em nossa trilhae" -" nos perseguiu por dez minutos ou mais até que decidimos nos separar e " -"nosencontrar de volta aqui. Meu amigo nunca apareceu e eu não tenho meios " -"paramatar o que quer que fosse. Você pode dar uma mão?" #: lang/json/mission_def_from_json.py msgid "Thanks, make sure you're ready for whatever the beast is." msgstr "" -" Obrigado, verifique se você está pronto para o que quer que seja a besta." #: lang/json/mission_def_from_json.py msgid "Hey, I know I wouldn't volunteer for it either." -msgstr "Ei, eu sei que não seria voluntário para isso também." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'd carry a shotgun at least, it sounded pretty big." -msgstr "Eu carregava uma espingarda, pelo menos, parecia muito grande." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "You look a little shaken up, I can't tell you how glad I am that you killed " "it though." msgstr "" -" Você parece um pouco abalado, eu não posso te dizer o quanto estou felizque" -" você tenha matado isso." #: lang/json/mission_def_from_json.py msgid "" "Something in the shadows still seems to stare at me when I look at the " "woods." -msgstr "Algo nas sombras ainda parece me encarar quando olho para a floresta." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I'm glad you came back alive... I wasn't sure if I had sent you to your " "death." msgstr "" -" Fico feliz que você voltou vivo ... Eu não tinha certeza se eu tinhamandado" -" você para a sua morte." #: lang/json/mission_def_from_json.py msgid "Kill Zombie Mom" -msgstr "Matar mãe zumbi" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Oh god, I can't believe it happened..." -msgstr "Oh Deus, eu não posso acreditar que aconteceu" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "My mom... she's... she was killed, but then she just got back up... she's " "one of those things now. Can you put her out of her misery for me?" msgstr "" -" Minha mãe ... ela foi ... ela foi morta, mas depois ela acabou de voltar..." -" ela é uma daquelas coisas agora. Você pode colocá-la fora de suamiséria " -"para mim?" #: lang/json/mission_def_from_json.py msgid "Thank you... she would've wanted it this way." -msgstr "Obrigado ... ela teria desejado assim." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Please reconsider, I know she's suffering..." -msgstr "Por favor, reconsidere, eu sei que ela está sofrendo ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find a gun if you can, make it quick..." -msgstr "Encontre uma arma, se puder, faça isso rápido ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Well...? Did you... finish things for my mom?" -msgstr "Bem...? Você terminou as coisas para a minha mãe?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Thank you. I couldn't rest until I knew that was finished." -msgstr "Obrigado. Eu não conseguia descansar até saber que estava acabado." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Really... that's too bad." -msgstr "Realmente ... isso é muito ruim." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Null mission" -msgstr "Missão nula" +msgstr "" #: lang/json/mission_def_from_json.py msgid "YOU SHOULDN'T BE SEEING THIS, THIS IS A BUG" -msgstr "VOCÊ NÃO DEVE VER ESTE, ESTE É UM ERRO" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Reach Farm House" -msgstr "Alcançar a casa da fazenda" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I just need a place to start over..." -msgstr "Eu só preciso de um lugar para começar de novo ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104495,32 +92331,24 @@ msgid "" "of the first to go. I'd like to start over, just rebuild at one of the " "farms in the countryside. Can you help me secure one?" msgstr "" -" Eu aceitei que todo mundo que eu conhecia está morto ... de um jeito ou " -"deoutro. Eu realmente gostaria de ter feito algo para salvar meu irmão, " -"masele foi um dos primeiros a sair. Eu gostaria de começar de novo, " -"apenasreconstruir em uma das fazendas no campo. Você pode me ajudar a " -"garantirum?" #: lang/json/mission_def_from_json.py msgid "" "Thank you, let's find a remote one so we don't have to worry about many " "zombies." msgstr "" -" Obrigado, vamos encontrar um controle remoto para não termos que " -"nospreocupar com muitos zumbis." #: lang/json/mission_def_from_json.py msgid "Please, I just don't know what to do otherwise." -msgstr "Por favor, só não sei o que fazer de outra forma." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Traveling the backroads would be a good way to search for one." msgstr "" -" Viajar pelas estradas secundárias seria uma boa maneira de procurar poruma." #: lang/json/mission_def_from_json.py msgid "Shall we keep looking for a farm house?" -msgstr "Vamos continuar procurando por uma casa de fazenda?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104529,22 +92357,18 @@ msgid "" "looking brighter. At least it ought to be safe for now. You'll always be " "welcome here." msgstr "" -" Bem, meus dias de aventuras acabaram. Eu não posso te agradecer " -"osuficiente. Tentar tornar esse lugar auto-sustentável exigirá " -"algumtrabalho, mas o futuro parece mais brilhante. Pelo menos, deveria " -"serseguro por enquanto. Você será sempre bem vindo aqui." #: lang/json/mission_def_from_json.py msgid "I guess it was just a pipe dream." -msgstr "Eu acho que foi apenas um sonho." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Reach FEMA Camp" -msgstr "Alcance o acampamento da FEMA" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Maybe they escaped to one of the camps..." -msgstr "Talvez eles tenham escapado para um dos campos ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104553,40 +92377,35 @@ msgid "" "one of the FEMA camps? I know some were overrun but I don't want to believe" " all of them could have fallen." msgstr "" -" Eu não posso te agradecer o suficiente por me trazer os registros " -"dospacientes, mas eu tenho outro pedido. Você parece saber o seu caminho " -"...você poderia me levar para um dos campos da FEMA? Eu sei que alguns " -"foraminvadidos, mas eu não quero acreditar que todos eles poderiam ter " -"caído." #: lang/json/mission_def_from_json.py msgid "Thank you, just bring me to the camp... I just want to see." -msgstr "Obrigado, apenas me traga para o acampamento ... Eu só quero ver." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Please, I don't know what else to do." -msgstr "Por favor, não sei mais o que fazer." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We should go at night, if it is overrun then we can quickly make our escape." -msgstr "Devemos ir à noite, se for invadida, poderemos rapidamente escapar." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Any leads on where a camp might be?" -msgstr "Alguma pista sobre onde um acampamento pode estar?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I guess this wasn't as bright an idea as I thought." -msgstr "Eu acho que isso não foi uma idéia tão brilhante quanto eu pensava." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Reach Safety" -msgstr "Alcance a segurança" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Recover Priest's Diary" -msgstr "Recupere o Diário do Padre" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104597,29 +92416,20 @@ 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 "" -" Pelo que entendi, as criaturas que você encontrou ao redor desta " -"relíquiaeram diferentes de tudo que eu já ouvi falar. É risível que eu " -"agoraconsidere os mortos-vivos como parte de nossa realidade comum. Nunca- " -"a-menos, a igreja deve ter alguma explicação para esses eventos. Eu " -"localizeia residência de um clérigo local, você poderia ir a este endereço " -"erecuperar quaisquer itens que possam revelar qual é a posição da " -"igrejanesses eventos?" #: lang/json/mission_def_from_json.py msgid "" "If the information is confidential the priest must have it hidden within his" " own home." msgstr "" -" Se a informação for confidencial, o padre deve tê-la escondida dentro desua" -" própria casa." #: lang/json/mission_def_from_json.py msgid "Thank you, a diary is exactly what I was looking for." -msgstr "Obrigado, um diário é exatamente o que eu estava procurando." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Recruit Tracker" -msgstr "Recrutar Rastreador" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104630,83 +92440,67 @@ msgid "" "woods. Wasn't sure how long we were going to be so I told him to just camp " "there until we picked him up." msgstr "" -" Temos outro problema para lidar, mas acho que não podemos lidar com " -"issosozinhos. Então, eu enviei uma mensagem e nos encontrou um voluntário " -"...das sortes. Ele é vaidoso, mas tem um pouco de habilidade com armas " -"defogo. Ele deveria coletar tudo o que tinha de valor e vai nos encontrar " -"emuma cabana na floresta. Não tinha certeza de quanto tempo iríamos ficar, " -"então eu disse a ele para apenas acampar lá até que nós o pegássemos." #: lang/json/mission_def_from_json.py msgid "" "Rodger, if he's a no-show then any other gunslinger will do... but I doubt " "he'll quit before we even begin." msgstr "" -" Rodger, se ele não comparecer, então qualquer outro pistoleiro vai fazer..." -" mas duvido que ele saia antes mesmo de começarmos." #: lang/json/mission_def_from_json.py msgid "" "I hope the bastard is packing heat... else we'll need to grab him a gun " "before we hit our next target." msgstr "" -" Espero que o bastardo esteja empacotando calor ... do contrário, " -"precisaremos pegar uma arma antes de atingirmos o próximo alvo." #: lang/json/mission_def_from_json.py msgid "Found a gunslinger?" -msgstr "Encontrou um pistoleiro?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Great, just let me know when you are ready to wade knee-deep in an ocean of " "blood." msgstr "" -" Ótimo, deixe-me saber quando você estiver pronto para ir até os joelhos " -"emum oceano de sangue." #: lang/json/mission_def_from_json.py msgid "Find Lost Dog" -msgstr "Encontre o cão perdido" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Oh, my poor puppy..." -msgstr "Meu pobre cachorrinho ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I left my poor dog in a house, not far from here. Can you retrieve it?" msgstr "" -" Eu deixei meu pobre cachorro em uma casa, não muito longe daqui. Você " -"poderecuperá-lo?" #: lang/json/mission_def_from_json.py msgid "Thank you! Please hurry back!" -msgstr "Obrigado! Por favor, volte logo!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Please, think of my poor little puppy!" -msgstr "Por favor, pense no meu pobre cachorrinho!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Take my dog whistle; if the dog starts running off, blow it and he'll return" " to your side." msgstr "" -" Pegue meu cachorro apito; se o cão começar a fugir, assopre e ele " -"voltarápara o seu lado." #: lang/json/mission_def_from_json.py msgid "Have you found my dog yet?" -msgstr "Você já encontrou meu cachorro?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Thank you so much for finding him!" -msgstr "Muito obrigado por encontrá-lo!" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Oh no! My poor puppy..." -msgstr "Ah não! Meu pobre cachorrinho ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 100 Cigarettes" @@ -104830,11 +92624,11 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Locate Commo Team" -msgstr "Localize o Commo Team" +msgstr "" #: lang/json/mission_def_from_json.py msgid "We need help..." -msgstr "Nós precisamos de ajuda..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104845,41 +92639,32 @@ msgid "" "and return the frequency list to me. I'm sure they could probably use your " "help also." msgstr "" -" Minha equipe de comunicações foi para proteger a sala de controle de " -"rádiodepois que nós violamos a instalação. Eu não tenho notícias deles " -"desdeentão, eu preciso de você para localizá-los. Seu primeiro objetivo " -"eraregistrar todos os canais ativos que transmitiam informações sobre " -"outrossobreviventes ou instalações. Encontre-os e retorne a lista de " -"frequênciaspara mim. Tenho certeza de que eles provavelmente poderiam usar " -"sua ajudatambém." #: lang/json/mission_def_from_json.py msgid "Good luck, the communications room shouldn't be far from here." -msgstr "Boa sorte, a sala de comunicações não deveria estar longe daqui." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "I don't know why you would bother wasting your time down here if you can't " "handle a few small tasks..." msgstr "" -" Eu não sei por que você se incomodaria em desperdiçar seu tempo aqui sevocê" -" não consegue lidar com algumas pequenas tarefas ..." #: lang/json/mission_def_from_json.py msgid "We were briefed that the communications array was on this level." -msgstr "Fomos informados de que a matriz de comunicações estava nesse nível." +msgstr "" #: lang/json/mission_def_from_json.py msgid "How is the search going?" -msgstr "Como está indo a busca?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Thanks, let me know when you need another tasking." -msgstr "Obrigado, me avise quando precisar de outra tarefa." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Cull Nightmares" -msgstr "Pesadelos de Abate" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104889,30 +92674,22 @@ msgid "" "safer. If you've cleared out most of this floor then the lower levels " "should be your next target. " msgstr "" -" Sua ajuda é muito apreciada, precisamos limpar os monstros mais " -"implacáveisque estão vagando pelos níveis mais baixos. Se você pudesse " -"escolher cercade vinte do que chamamos de 'pesadelos', meus homens seriam " -"muitomais seguros. Se você limpou a maior parte deste andar, então os " -"níveismais baixos devem ser seu próximo alvo." #: lang/json/mission_def_from_json.py msgid "Good luck, finding a clear passage to the second level may be tricky." msgstr "" -" Boa sorte, encontrar uma passagem clara para o segundo nível pode " -"sercomplicado." #: lang/json/mission_def_from_json.py msgid "These creatures can swing their appendages surprisingly far." msgstr "" -" Essas criaturas podem balançar seus apêndices surpreendentemente longe." #: lang/json/mission_def_from_json.py msgid "How is the hunt going?" -msgstr "Como vai a caçada?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Fabricate Repeater Mod" -msgstr "Fabricar Modificador Repetidor" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -104925,41 +92702,26 @@ msgid "" " is boosted so we can pick it up at much longer ranges. I really need you " "make me one." msgstr "" -" Minha principal responsabilidade é monitorar o tráfego de rádio e " -"localizaralvos em potencial para proteger ou resgatar. A maioria dos " -"repetidores derádio está inativa e aqueles que estão trabalhando têm apenas " -"energia deemergência. Se você tem um conhecimento básico de eletrônica, você" -" deve sercapaz de fabricar o 'modificador de repetidor de rádio' " -"encontradonesses planos. Quando este mod é anexado ao terminal principal de " -"umaestação de rádio, todo o tráfego de rádio de curto alcance nos canais " -"deemergência é aumentado para que possamos captá-lo em intervalos muito " -"maislongos. Eu realmente preciso de você para me fazer um." #: lang/json/mission_def_from_json.py msgid "" "Thanks, I know the labs on the other side of the complex have electronic " "parts sitting around." msgstr "" -" Obrigado, sei que os laboratórios do outro lado do complexo têm " -"parteseletrônicas ao redor." #: lang/json/mission_def_from_json.py msgid "I'm sure the motorpool has a truck battery you could salvage." msgstr "" -" Tenho certeza de que a moto tem uma bateria de caminhão que você " -"poderiasalvar." #: lang/json/mission_def_from_json.py msgid "Have you had any luck fabricating it?" -msgstr "Você teve alguma sorte em fabricá-lo?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Thanks, I'll see to installing this one. It will be some time but I could " "use someone to position these around the region." msgstr "" -" Obrigado, vou instalar este. Vai levar algum tempo, mas eu poderia " -"usaralguém para posicionar isso na região." #: lang/json/mission_def_from_json.py msgid "" @@ -104969,32 +92731,24 @@ 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 "" -" Eu acho que eu poderia usar suas habilidades mais uma vez. Existem " -"pequenostransmissores localizados nos abrigos de evacuação próximos; se não " -"ossepararmos da rede elétrica, seus sistemas de energia se " -"deteriorarãorapidamente nas próximas semanas. A tarefa é bastante simples, " -"mas osabrigos nos oferecem um lugar para redirecionar os refugiados até que " -"estecofre possa ser protegido." #: lang/json/mission_def_from_json.py msgid "" "Thanks, I should be ready for you to install the radio repeater mods by the " "time you get back." msgstr "" -" Obrigado, eu deveria estar pronto para você instalar os modificadores " -"derádio repetidora no momento em que você voltar." #: lang/json/mission_def_from_json.py msgid "Try searching on the outskirts of towns." -msgstr "Tente pesquisar nos arredores das cidades." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Have you had any luck severing the connection?" -msgstr "Você teve alguma sorte em cortar a conexão?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "We are good to go! The last of the gear is powering up now." -msgstr "Nós somos bons para ir! O último equipamento está ligado agora." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105005,33 +92759,24 @@ msgid "" "unfortunately be ignored for now, without a dedicated emergency power system" " they won't be useful for some time." msgstr "" -" A maioria dos meus equipamentos essenciais foi trazida de volta on- line, " -"então é hora de você instalar o seu primeiro mod repetidor de rádio. " -"Cabeçatopside e localize a estação de rádio mais próxima. Instale o mod " -"noterminal de backup e retorne a mim para que eu possa verificar se tudo " -"foibem-sucedido. Infelizmente, as torres de rádio devem ser ignoradas " -"porenquanto, sem um sistema de energia de emergência dedicado, elas não " -"serãoúteis por algum tempo." #: lang/json/mission_def_from_json.py msgid "I'll be standing by down here once you are done." -msgstr "Eu ficarei aqui embaixo quando você terminar." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "If you could make some sort of directional antenna, it might help locating " "the radio stations." msgstr "" -" Se você pudesse fazer algum tipo de antena direcional, isso poderia ajudara" -" localizar as estações de rádio." #: lang/json/mission_def_from_json.py msgid "Have you had any luck finding a radio station?" -msgstr "Você teve alguma sorte em encontrar uma estação de rádio?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "That's one down." -msgstr "Isso é um baixo." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105040,32 +92785,25 @@ msgid "" "little bit more. With enough of them we'll be able to maintain " "communication with anyone in the region." msgstr "" -" Eu sempre poderia usar você para colocar outro modificador de repetição. " -"Eunão tenho que lembrar você, mas cada um que sobe estende nossa área " -"deresposta um pouco mais. Com o suficiente deles, poderemos manter " -"acomunicação com qualquer pessoa na região." #: lang/json/mission_def_from_json.py msgid "I'll be standing by." -msgstr "Eu estarei de pé." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Getting a working vehicle is going to become important as the distance you " "have to travel increases." msgstr "" -" Conseguir um veículo de trabalho vai se tornar importante à medida que " -"adistância a percorrer aumenta." #: lang/json/mission_def_from_json.py msgid "" "I'll try and update the captain with any signals that I need investigated." msgstr "" -" Vou tentar atualizar o capitão com todos os sinais que preciso investigar." #: lang/json/mission_def_from_json.py msgid "Reach Refugee Center" -msgstr "Alcance o Centro de Refugiados" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring 40 small cardboard boxes" @@ -105404,9 +93142,6 @@ msgid "" "not gonna say no. I can't, like, pay you or anything though, you know that " "right?" msgstr "" -" Sim, se você quer arriscar seu pescoço e me trazer o que eu preciso, eu " -"nãovou dizer não. Eu não posso pagar você ou algo assim, você sabe disso, " -"certo?" #: lang/json/mission_def_from_json.py msgid "" @@ -105415,43 +93150,36 @@ msgid "" "good sized electric motor - about 10 kg or so. I'm also going to need a 60 " "liter tank, after that." msgstr "" -" Antes de eu conseguir qualquer coisa, vou precisar configurar umcompressor." -" Eu tenho um monte de coisas para isso, mas eu preciso de umgrande tanque " -"para o ar e um bom motor elétrico - cerca de 10 kg ou mais. Eu também vou " -"precisar de um tanque de 60 litros, depois disso." #: lang/json/mission_def_from_json.py msgid "Great! Bring it to me when you find one." -msgstr "Ótimo! Traga para mim quando você encontrar um." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Oh well. Thanks for offering anyway." -msgstr "Ah bem. Obrigado por oferecer de qualquer maneira." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "A lot of electric cars and bikes use these kind of motors. So do some " "bigger robots." msgstr "" -" Muitos carros elétricos e bicicletas usam esse tipo de motor. Então " -"façaalguns robôs maiores." #: lang/json/mission_def_from_json.py msgid "Any sign of a motor I can use?" -msgstr "Qualquer sinal de motor que eu possa usar?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "That's exactly what I need! Want to talk about that tank now?" msgstr "" -" Isso é exatamente o que eu preciso! Quer falar sobre esse tanque agora?" #: lang/json/mission_def_from_json.py msgid "Huh. This isn't going to work like I thought." -msgstr "Hã. Isso não vai funcionar como eu pensava." +msgstr "" #: lang/json/mission_def_from_json.py msgid "No worries. Let me know if you want to try again." -msgstr "Não se preocupe. Deixe-me saber se você quiser tentar novamente." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring back a 60L metal tank" @@ -105462,17 +93190,12 @@ msgid "" "Now that I've got that motor, I can get my compressor mostly built. I will " "need a tank though." msgstr "" -" Agora que eu tenho esse motor, posso ter meu compressor na maior " -"parteconstruído. Vou precisar de um tanque embora." #: lang/json/mission_def_from_json.py msgid "" "I can get started building the compressor, but I need a large metal tank to " "store compressed air centrally. About 60 liters should do..." msgstr "" -" Eu posso começar a construir o compressor, mas eu preciso de um " -"grandetanque de metal para armazenar ar comprimido centralmente. Cerca de " -"60litros devem fazer ..." #: lang/json/mission_def_from_json.py msgid "" @@ -105481,15 +93204,10 @@ msgid "" "enough. Heck, if you get some sheet metal you could probably even weld a " "good one together." msgstr "" -" Ele precisa ser um bom tanque forte, como um tanque de propano grande " -"oualgo assim ... você poderia olhar para tanques de armazenamento " -"decombustível e coisas, contanto que eles sejam duráveis o suficiente. Puxa," -" se você pegar um pouco de chapa de metal, você poderia até mesmo soldar " -"umaboa peça juntos." #: lang/json/mission_def_from_json.py msgid "Any sign of a tank I can use?" -msgstr "Algum sinal de um tanque que eu possa usar?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105498,17 +93216,12 @@ msgid "" "First I gotta get this thing up and running, and argue with the bean " "counters about letting me draw power to run it." msgstr "" -" Ei, isso é perfeito, 'tanques' um monte. Ok, sinto muito porisso. De " -"qualquer forma, agora que consegui as partes, posso ser capaz deconstruir " -"uma prova de conceito. Primeiro eu tenho que colocar tudo isso emprática, e " -"discutir com os contadores de beans sobre me deixar poder paraexecutá-lo." #: lang/json/mission_def_from_json.py msgid "" "Huh. This isn't going to work like I thought. Back to the drawing board I " "guess." msgstr "" -" Hã. Isso não vai funcionar como eu pensava. De volta à prancheta, eu acho." #: lang/json/mission_def_from_json.py msgid "Find 5 first aid kits" @@ -105663,7 +93376,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" -msgstr "Clear Back Bay" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105678,23 +93391,21 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." -msgstr "Por favor, tenha cuidado, não precisamos de mais mortes." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Come back when you get a chance, we really need to start reclaiming the " "region." msgstr "" -" Volte quando tiver uma chance, nós realmente precisamos começar a " -"recuperara região." #: lang/json/mission_def_from_json.py msgid "If you can, get a friend or two to help you." -msgstr "Se você puder, pegue um amigo ou dois para ajudá-lo." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Will they be bothering us any longer?" -msgstr "Eles estarão nos incomodando por mais tempo?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105706,7 +93417,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Missing Caravan" -msgstr "Caravana perdida" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105722,11 +93433,11 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." -msgstr "Nossa comunidade sobrevive no comércio, nós apreciamos isso." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Have you dealt with them?" -msgstr "Você já lidou com eles?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105737,16 +93448,10 @@ msgid "" "food supply. If you get a chance, you should see if they need your " "assistance in the future..." msgstr "" -" Obrigado, o mundo é um lugar melhor sem eles. Dois dos nossos " -"indivíduosmais habilidosos aceitaram a ajuda da Velha Guarda na criação de " -"um postoavançado enquanto você estava fora. Nós não tínhamos muitas outras " -"opções, os refugiados ainda estão chegando e não sabemos mais o que fazer " -"com nossolimitado suprimento de comida. Se você tiver uma chance, você deve " -"ver seeles precisam de sua ajuda no futuro ..." #: lang/json/mission_def_from_json.py msgid "Retrieve Prospectus" -msgstr "Recuperar Prospecto" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105761,16 +93466,14 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." msgstr "" -" Tenho certeza de que o posto avançado se expandirá rapidamente com a " -"suaajuda." #: lang/json/mission_def_from_json.py msgid "Just follow your map." -msgstr "Apenas siga seu mapa." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the prospectus?" -msgstr "Você tem o prospecto?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105795,8 +93498,6 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "If you can do this for us our survival options would vastly increase." msgstr "" -" Se você puder fazer isso por nós, nossas opções de sobrevivênciaaumentariam" -" muito." #: lang/json/mission_def_from_json.py msgid "Solar panels are pretty common on electric cars and on rooftops." @@ -105807,8 +93508,6 @@ msgid "" "Great, I know it isn't much but we hope to continue to expand thanks to your" " help." msgstr "" -" Ótimo, eu sei que não é muito, mas esperamos continuar a expandir graças " -"àsua ajuda." #: lang/json/mission_def_from_json.py msgid "Find 100 canning jars" @@ -105854,22 +93553,16 @@ msgid "" "in the field. I need you to get a fresh sample of zombie blood, take it to " "a hospital, and perform a centrifuge analysis of it." msgstr "" -" Nós não temos o equipamento para análise real aqui, então ele precisará " -"serfeito no campo. Preciso que você pegue uma amostra nova de sangue de " -"zumbi, leve-a a um hospital e faça uma análise centrífuga dela." #: lang/json/mission_def_from_json.py msgid "" "Excellent. Take this blood draw kit; once you've found a zombie corpse, use" " it to extract blood from the body, then take it to a hospital for analysis." msgstr "" -" Excelente. Tome este kit de coleta de sangue; Depois de encontrar umcadáver" -" zumbi, use-o para extrair o sangue do corpo e leve-o ao hospitalpara " -"análise." #: lang/json/mission_def_from_json.py msgid "Download Workstation Data" -msgstr "Baixar dados da estação de trabalho" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105879,20 +93572,14 @@ msgid "" "knew! We have the destination address. Go there, get in, and bring back " "any records you can download off a computer." msgstr "" -" O software médico não analisou apenas o sangue, desencadeou um alerta " -"dogoverno. A equipe médica estava sob ordens para conduzir " -"imediatamentequalquer amostra correspondente para o laboratório mais " -"próximo. Isso devesignificar que o governo sabia! Nós temos o endereço de " -"destino. Vá lá,entre e traga de volta os registros que você pode baixar de " -"um computador." #: lang/json/mission_def_from_json.py msgid "Great! I've mapped out a route to the address." -msgstr "Ótimo! Eu mapeei uma rota para o endereço." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Can't blame you, but come back if you change your mind." -msgstr "Não posso culpá-lo, mas volte se você mudar de ideia." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105901,26 +93588,19 @@ msgid "" "computers will have some security on them. Bring back anything you find on " "a USB drive." msgstr "" -" Se o laboratório estiver trancado, talvez você possa encontrar um cartão " -"deidentificação dos funcionários que morreram na evacuação. Também " -"aperfeiçoesuas habilidades no computador, qualquer computador terá alguma " -"segurançaneles. Trazer de volta qualquer coisa que você encontrar em uma " -"unidadeUSB." #: lang/json/mission_def_from_json.py msgid "Have you completed your mission?" -msgstr "Você completou sua missão?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Thanks! This data looks damaged, but maybe I can make something out of it." msgstr "" -" Obrigado! Esses dados parecem danificados, mas talvez eu possa fazer " -"algocom isso." #: lang/json/mission_def_from_json.py msgid "Download Encryption Codes" -msgstr "Baixar Códigos de Criptografia" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105931,38 +93611,26 @@ msgid "" "hidden beneath a town, they weren't allowed in. That means it should have " "unsecured computers we can get the codes from." msgstr "" -" Infelizmente, os dados que você recebeu eram incompletos e, na maioria " -"dasvezes, criptografados. Pode haver uma maneira de obter códigos " -"decriptografia, no entanto. Eu encontrei uma reclamação da equipe de " -"infosecque eles não conseguiram entregar atualizações de segurança críticas " -"paraum site de pesquisa. Era algum tipo de site secundário mais " -"restritoescondido debaixo de uma cidade, eles não podiam entrar. Isso " -"significa quedeveria ter computadores inseguros dos quais poderíamos obter " -"os códigos." #: lang/json/mission_def_from_json.py msgid "" "Great! I've mapped out a route, it should look like a normal house. Bring " "back anything you find on a USB drive." msgstr "" -" Ótimo! Eu mapeei uma rota, deveria parecer uma casa normal. Trazer de " -"voltaqualquer coisa que você encontrar em uma unidade USB." #: lang/json/mission_def_from_json.py msgid "Expect the lab to be locked as usual." -msgstr "Espere que o laboratório seja trancado como de costume." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Wonderful! Now I just need to get an undamaged, complete archive, and we " "can really figure out what happened." msgstr "" -" Maravilhoso! Agora eu só preciso de um arquivo completo, sem danos, e " -"podemos realmente descobrir o que aconteceu." #: lang/json/mission_def_from_json.py msgid "Download Research Archives" -msgstr "Download de arquivos de pesquisa" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -105973,21 +93641,12 @@ msgid "" "everything to subzero temperatures. I bet the archives inside that lab are " "still working." msgstr "" -" Então, parece haver meses, talvez anos de experimentos, e esse conjunto " -"dedados deve ser enorme. Servidores de banco de dados grandes o " -"suficientepara abrigá-los superaqueceriam o funcionamento com energia de " -"emergência. Mas eu encontrei comunicações de um laboratório que tinha algum " -"tipo deportal congelante aberto durante o cataclismo, enviando tudo " -"paratemperaturas abaixo de zero. Aposto que os arquivos dentro " -"desselaboratório ainda estão funcionando." #: lang/json/mission_def_from_json.py msgid "" "Great! I've mapped out a route. Bundle up, it gets colder the deeper you " "go and it looks like the archives were on the fourth basement level." msgstr "" -" Ótimo! Eu mapeei uma rota. Empacote, fica mais frio quanto mais fundo " -"vocêvai e parece que os arquivos estavam no quarto nível do porão." #: lang/json/mission_def_from_json.py msgid "" @@ -105995,18 +93654,14 @@ msgid "" "You'll really need special equipment to survive that far down. Bring back " "anything you find on a USB drive." msgstr "" -" Esse laboratório vai começar a congelar e ficar mais frio quanto mais " -"fundovocê for. Você realmente precisará de equipamentos especiais " -"parasobreviver tão longe. Trazer de volta qualquer coisa que você encontrar " -"emuma unidade USB." #: lang/json/mission_def_from_json.py msgid "Thanks! This is a lot of data to go through." -msgstr "Obrigado! Isso é um monte de dados para passar." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Lab Tunnels" -msgstr "Encontrar túneis de laboratório" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106019,7 +93674,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "So glad for your help." -msgstr "Tão feliz por sua ajuda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106027,22 +93682,16 @@ msgid "" "going to be deeper inside a lab than a normal subway. Fifty feet would mean" " maybe four stories down. Bring back anything you find on a USB drive." msgstr "" -" O equipamento foi avaliado para 50 pés no subsolo, de modo que a entrada " -"dotúnel será mais profunda dentro de um laboratório do que um metrô normal. " -"Cinquenta pés significariam talvez quatro andares abaixo. Trazer de " -"voltaqualquer coisa que você encontrar em uma unidade USB." #: lang/json/mission_def_from_json.py msgid "" "Fantastic! I should be able to reconstruct what cargo moved between which " "labs. I wonder what was really going on down there." msgstr "" -" Fantástico! Eu deveria ser capaz de reconstruir a carga movimentada entreos" -" laboratórios. Eu me pergunto o que realmente estava acontecendo láembaixo." #: lang/json/mission_def_from_json.py msgid "Kill Bandits" -msgstr "Matar bandidos" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106052,37 +93701,28 @@ msgid "" "quick end... execute both of them for their crimes. Complete this and the " "Old Guard will consider you an asset in the region." msgstr "" -" Eu não gosto de enviar homens não testados para o campo, mas se você " -"ficouvivo até agora, você pode ter algumas habilidades. Há pelo menos um par" -" debandidos agachados em uma cabana local, qualquer um que atente contra " -"civisencontra um final rápido ... execute ambos por seus crimes. Complete " -"isso ea Velha Guarda irá considerá-lo um ativo na região." #: lang/json/mission_def_from_json.py msgid "Contractor, I welcome you aboard." -msgstr "Empreiteiro, eu lhe dou as boas vindas a bordo." +msgstr "" #: lang/json/mission_def_from_json.py msgid "The States will remain a wasteland unless good men choose to save it." msgstr "" -" Os Estados permanecerão um terreno baldio, a menos que os homens " -"bonsdecidam salvá-lo." #: lang/json/mission_def_from_json.py msgid "They might suspect you are coming, keep an eye out for traps." msgstr "" -" Eles podem suspeitar que você está vindo, fique de olho nas armadilhas." #: lang/json/mission_def_from_json.py msgid "" "The Old Guard thanks you for eliminating the criminals. You won't be " "forgotten." msgstr "" -" A Velha Guarda agradece por eliminar os criminosos. Você não seráesquecido." #: lang/json/mission_def_from_json.py msgid "Deal with Informant" -msgstr "Lidar com o Informante" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106092,37 +93732,30 @@ msgid "" "else know of my suspicions. We normally allow the Free Merchants to govern " "themselves so I would hate to offend them." msgstr "" -" Essa tarefa vai exigir um pouco mais de habilidade persuasiva. Eu " -"acreditoque os Hell's Raiders têm um informante aqui para monitorar quem" -" vem evai. Preciso que você descubra quem é e lide com eles sem deixar " -"ninguémsaber das minhas suspeitas. Nós normalmente permitimos que os " -"MercadoresLivres governem a si mesmos, então eu odiaria ofendê-los." #: lang/json/mission_def_from_json.py msgid "Thank you, please keep this discreet." -msgstr "Obrigado, por favor, mantenha isso discreto." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Come back when you get a chance, we could use a few good men." -msgstr "Volte quando tiver uma chance, poderemos usar alguns bons homens." +msgstr "" #: lang/json/mission_def_from_json.py msgid "If they draw first blood their friends are less likely to blame you..." msgstr "" -" Se eles tirarem primeiro sangue, é menos provável que seus amigos o " -"culpem..." #: lang/json/mission_def_from_json.py msgid "You deal with the rat?" -msgstr "Você lida com o rato?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Thank you, I'll do the explaining if anyone else asks about it." -msgstr "Obrigado, eu farei a explicação se alguém perguntar sobre isso." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Kill ???" -msgstr "Mate ???" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106131,31 +93764,24 @@ msgid "" "a packed caravan. They didn't hear any shots but I suppose some raider may " "have been real sneaky. Check out the area and report anything you find." msgstr "" -" Há outro monstro incomodando os comerciantes, mas desta vez não é humano..." -" pelo menos eu não acho. O cara simplesmente desapareceu enquantocaminhava " -"atrás de uma caravana lotada. Eles não ouviram nenhum disparo, mas suponho " -"que algum invasor tenha sido realmente sorrateiro. Confira aárea e informe " -"qualquer coisa que você encontrar." #: lang/json/mission_def_from_json.py msgid "Thanks, keeping the people safe is what we try and do." -msgstr "Obrigado, manter as pessoas seguras é o que tentamos fazer." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Search the bushes for any trace? I'm not an expert tracker but you should " "be able to find something." msgstr "" -" Procurar nos arbustos por algum traço? Eu não sou um " -"rastreadorespecialista, mas você deve ser capaz de encontrar alguma coisa." #: lang/json/mission_def_from_json.py msgid "Great work, wasn't sure what I was sending you after." -msgstr "Ótimo trabalho, não tinha certeza do que eu estava enviando depois." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Kill Raider Leader" -msgstr "Kill Raider Leader" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106181,28 +93807,16 @@ msgid "" "men or women assisting you are considered deputy marshals so keep them in " "line." msgstr "" -" Agora repita depois de mim ... Eu juro solenemente que vou apoiar edefender" -" a Constituição dos Estados Unidos contra todos os inimigos, estrangeiros e " -"domésticos ...... que eu vou suportar a verdadeira fé efidelidade ao mesmo " -"... ... que eu aceite esta obrigação livremente, semqualquer reserva mental " -"ou propósito de evasão ...... e que eu cumprireibem e fielmente os deveres " -"do ofício no qual estou prestes a entrar. Estabelecer a justiça, assegurar a" -" tranquilidade doméstica, prover a defesacomum, promover o bem-estar geral e" -" assegurar as bênçãos da liberdade. Então me ajude Deus. Parabéns, Marechal," -" não esqueça seu distintivo e arma. Como marechal, todos os homens ou " -"mulheres que o assistem são consideradosdelegados para mantê-los na linha." #: lang/json/mission_def_from_json.py msgid "" "I'd recommend having two deputies... it would be a death trap if a single " "man got surrounded." msgstr "" -" Eu recomendaria ter dois deputados ... seria uma armadilha mortal se " -"umúnico homem fosse cercado." #: lang/json/mission_def_from_json.py msgid "Has the leadership been dealt with?" -msgstr "A liderança foi tratada?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106214,15 +93828,6 @@ msgid "" "charge, I'm sure he could use your skills. Don't forget to wear your badge " "when meeting with them. Thank you once again marshal." msgstr "" -" Marechal, continuas a nos impressionar. Se você estiver interessado, " -"recebirecentemente uma mensagem informando que uma unidade estava " -"sendoimplantada em nosso AO. Eu não tenho as coordenadas exatas, mas " -"elesdisseram que estavam protegendo uma instalação subterrânea e podem " -"precisarde ajuda. O pássaro os deixou ao lado de uma estação de bombeamento." -" Nãoposso te dizer muito mais. Se você pudesse localizar o capitão, " -"tenhocerteza de que ele poderia usar suas habilidades. Não se esqueça de " -"usarseu distintivo quando se encontrar com eles. Obrigado mais uma " -"vezmarechal." #: lang/json/mission_def_from_json.py msgid "Return Field Data" @@ -106317,7 +93922,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" -msgstr "Faça 2 Stills" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106325,17 +93930,12 @@ msgid "" "need something a bit stronger to get them to forget their misery. Could you" " build me a pair of stills?" msgstr "" -" O vinho e a cerveja que podemos preparar são suficientes para atrair " -"amaioria dos clientes, mas precisamos de algo um pouco mais forte para fazê-" -"los esquecer sua miséria. Você poderia me construir um par de fotos?" #: lang/json/mission_def_from_json.py msgid "" "This should let us start producing whiskey, rum, and brandy when we get " "access to the ingredients." msgstr "" -" Isso deve nos permitir começar a produzir uísque, rum e conhaque " -"quandotivermos acesso aos ingredientes." #: lang/json/mission_def_from_json.py msgid "Come back when you get a chance. We need skilled survivors." @@ -106345,20 +93945,18 @@ msgstr "" msgid "" "I'm sure you could find the design for the stills in home brewing books." msgstr "" -" Tenho certeza que você poderia encontrar o design para as fotos em livrosde" -" cerveja em casa." #: lang/json/mission_def_from_json.py msgid "Do you have the stills?" -msgstr "Você tem os alambiques?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Thank you for the delivery." -msgstr "Obrigado pela entrega." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 20 Yeast" -msgstr "Encontre 20 fermento" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106367,26 +93965,22 @@ msgid "" "fresh yeast for us to use? I'd need about 20 teaspoons of dry yeast to get " "started." msgstr "" -" O último lote que eu fiz era terrível, tenho certeza de que algo " -"contaminouo fermento que estamos usando. Você poderia localizar uma fonte de" -" fermentofresco para usarmos? Eu precisaria de cerca de 20 colheres de chá " -"defermento seco para começar." #: lang/json/mission_def_from_json.py msgid "Thank you for your assistance." -msgstr "Obrigado pela sua ajuda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Yeast should be common in homes or bakeries." -msgstr "Levedura deve ser comum em casas ou padarias." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the yeast?" -msgstr "Você tem o fermento?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 10 Sugar Beet Seeds" -msgstr "Encontre 10 sementes de beterraba" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106396,24 +93990,18 @@ msgid "" "demand regardless of what the scavengers can find. Could you bring me at " "least enough seeds to plant a small 10 meter long patch?" msgstr "" -" O açúcar e o melaço continuam escassos. Eu coloquei um pedido para mais, " -"mas é improvável que eu vá ver uma fonte confiável por algum tempo. Se " -"vocêestiver interessado, precisaremos de sementes de beterraba açucareira " -"paraatender à demanda futura, independentemente do que os catadores " -"possamencontrar. Você poderia me trazer sementes suficientes para plantar " -"umpequeno pedaço de 10 metros?" #: lang/json/mission_def_from_json.py msgid "Farms or supply stores might have a few seeds..." -msgstr "Fazendas ou lojas de suprimentos podem ter algumas sementes ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the sugar beet seeds?" -msgstr "Você tem as sementes de beterraba?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 12 Metal Tanks" -msgstr "Encontre 12 tanques de metal" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106424,25 +94012,18 @@ msgid "" "metal tanks to build them. I've talked with the scrappers but we are a low " "priority at the moment." msgstr "" -" As bebidas que produzimos aqui se tornaram um grande atrativo para " -"osvisitantes e para o ocasional operador. Nossos lotes se tornaram maiores, " -"mas ainda estamos ficando sem espaço de armazenamento entre as corridas " -"denegociação. Eu consegui alguns voluntários para me ajudar a construir " -"umconjunto de tanques em pé, mas ainda preciso de 12 tanques de metal " -"paraconstruí-los. Eu falei com os scrappers, mas somos uma prioridade baixa " -"nomomento." #: lang/json/mission_def_from_json.py msgid "Scrapping vehicles might be your best bet." -msgstr "Veículos de sucata podem ser sua melhor aposta." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the metal tanks?" -msgstr "Você tem os tanques de metal?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 2 200-Liter Drums" -msgstr "Encontre 2 tambores de 200 litros" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106452,23 +94033,18 @@ msgid "" "200-liter drums we should be able to keep them supplied while turning a " "significant profit." msgstr "" -" Os outros sobreviventes com quem temos contato estão mais do que " -"ansiosospara trocar por cerveja ou outras bebidas. Transportar as bebidas " -"paraeles, entretanto, apresentou uma série de desafios. Se você " -"pudesselocalizar um par de tambores de 200 litros, poderíamos mantê-los " -"supridos, enquanto geramos um lucro significativo." #: lang/json/mission_def_from_json.py msgid "Factories or junk yards are the only places I know where to look." -msgstr "Fábricas ou sucatas são os únicos lugares que eu sei onde procurar." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the 200-liter drums?" -msgstr "Você tem os tambores de 200 litros?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Cut 200 2x4's" -msgstr "Cortar 200 2x4" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106479,39 +94055,29 @@ msgid "" "other half and construction. If you don't have a truck, I'd make finding " "one your first priority. " msgstr "" -" Nosso primeiro projeto é cercar o celeiro para que novos refugiados " -"tenhamum lugar seguro para dormir. Antes de podermos começar melhorias " -"sériasprecisamos de madeira para trabalhar. Colocar as quatro entradas do " -"celeirolevará quase 400 x 2 x 4 ... se você pudesse fornecer metade disso, " -"poderíamos cuidar da outra metade e da construção. Se você não tem " -"umcaminhão, eu gostaria de encontrar uma sua primeira prioridade." #: lang/json/mission_def_from_json.py msgid "" "The more men we can bring to the camp the quicker improvements can be made." msgstr "" -" Quanto mais homens pudermos trazer para o acampamento, mais " -"rápidasmelhorias poderão ser feitas." #: lang/json/mission_def_from_json.py msgid "Avoid destroying the furniture, we'll be needing it." -msgstr "Evite destruir os móveis, estaremos precisando." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have them?" -msgstr "Você os tem?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Great, I'll send word that we could use another set of hands or two to help " "out here." msgstr "" -" Ótimo, vou mandar dizer que poderíamos usar outro conjunto de mãos ou " -"duaspara ajudar aqui." #: lang/json/mission_def_from_json.py msgid "Find 25 Blankets" -msgstr "Encontre 25 cobertores" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106521,32 +94087,24 @@ msgid "" " care of the frames but will need your help looting blankets. We'd need 25 " "blankets to provide the most basic sleeping accommodations." msgstr "" -" Com as entradas do celeiro fechadas, os refugiados que se mudam para " -"ládevem se sentir mais seguros, mas o tempo pode ser amargo aqui. Nós " -"vamosprecisar construir camas improvisadas nas barracas para evitar doenças " -"equeimaduras. Podemos cuidar dos quadros, mas precisamos da sua ajuda " -"parasaquear os cobertores. Precisamos de 25 cobertores para fornecer " -"asacomodações de dormir mais básicas." #: lang/json/mission_def_from_json.py msgid "" "I'd start with looting hotels or you could sew them together... but that " "would be a last resort." msgstr "" -" Eu começaria com saques hotéis ou você poderia costurá-los juntos ... " -"masisso seria um último recurso." #: lang/json/mission_def_from_json.py msgid "Avoid destroying the furniture here, we'll be needing it." -msgstr "Evite destruir a mobília aqui, vamos precisar dela." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Your assistance is always appreciated." -msgstr "Sua ajuda é sempre bem vinda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Gather 2500 Nails" -msgstr "Reúna 2.500 unhas" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106556,23 +94114,16 @@ msgid "" "rubble. We'd need 2500 to have enough that we won't be sending you back out" " too soon." msgstr "" -" Nosso suprimento de unhas foi esgotado. Vou ter que te pedir mais " -"algumascaixas. As lojas de hardware devem ter algumas, se não tiverem " -"sidosaqueadas. Eu suponho que você pode encontrar punhados deles na " -"construçãode escombros. Precisamos de 2.500 para ter o suficiente para não " -"enviarmosvocê de volta tão cedo." #: lang/json/mission_def_from_json.py msgid "" "Deconstructing furniture isn't going to be efficient, try looking for boxes " "or grabbing any sitting on top of rubble piles." msgstr "" -" A desconstrução de mobília não será eficiente, tente procurar caixas " -"ouagarrar qualquer assento em cima de pilhas de entulho." #: lang/json/mission_def_from_json.py msgid "Gather 300 Salt" -msgstr "Recolha 300 Sal" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106586,15 +94137,6 @@ msgid "" "is salt. I negotiated them down from 500 units to 300... we were hoping you" " might have access to a source." msgstr "" -" Tenho certeza de que você notou os novos trabalhadores que começaram " -"aentrar. O conselho da Free Merchant está exigindo que " -"imediatamenteiniciemos projetos para nos tornarmos auto-suficientes devido a" -" suprimentoslimitados. Vamos precisar estabelecer rapidamente uma indústria " -"agrícolaantes do inverno e a fome nos pega despreparados e sem apoio. " -"Paraconseguir meia dúzia de pás e alguns sacos de sementes, vamos ter " -"quetrocar por ela. Eu já tenho o negócio alinhado, mas a única coisa que " -"elesestão dispostos a trocá-lo é sal. Negociei-os de 500 unidades para 300 " -"...esperávamos que você tivesse acesso a uma fonte." #: lang/json/mission_def_from_json.py msgid "" @@ -106602,28 +94144,23 @@ msgid "" "food it wouldn't do us much good now but I imagine we'll need to send you " "out to get more in the future. " msgstr "" -" O sal é a chave para preservar a carne e outros produtos perecíveis ... " -"semqualquer excesso de comida, isso não nos faria muito bem agora, mas " -"imaginoque precisaremos mandá-lo para fora para obter mais no futuro." #: 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 "" -" Se você puder encontrar uma fonte de água salgada, você deve ser capaz " -"dereduzi-la." #: lang/json/mission_def_from_json.py msgid "Do you have the salt?" -msgstr "Você tem o sal?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "We are going to begin preparing our fields immediately." -msgstr "Vamos começar a preparar nossos campos imediatamente." +msgstr "" #: lang/json/mission_def_from_json.py msgid "30 Liquid Fertilizer" -msgstr "30 Fertilizante Líquido" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106634,40 +94171,28 @@ msgid "" "liquid fertilizer for us? We'd need at least 30 units to make a significant" " improvement in our output. " msgstr "" -" Bem, nossa primeira safra será plantada em breve, mas estou começando " -"asuspeitar que nossa margem de lucro será muito menor do que esperamos. " -"Comsementes limitadas para nossa cultura original, nosso próximo curso de " -"açãoé aumentar a fertilidade do solo. Existe alguma maneira de encontrar " -"ouproduzir um fertilizante líquido básico para nós? Precisamos de pelo " -"menos30 unidades para melhorar significativamente nossa produção." #: lang/json/mission_def_from_json.py msgid "" "I don't know the exact recipe but I'm sure you could make it from a " "commercial fertilizer or produce it from bonemeal." msgstr "" -" Eu não sei a receita exata, mas tenho certeza que você poderia fazer " -"apartir de um fertilizante comercial ou produzi-lo a partir de farinha " -"deossos." #: lang/json/mission_def_from_json.py msgid "I'd look through a few basic chemistry books to find a simple recipe." msgstr "" -" Eu procuraria em alguns livros básicos de química para encontrar umareceita" -" simples." #: lang/json/mission_def_from_json.py msgid "Do you have the liquid fertilizer?" -msgstr "Você tem o fertilizante líquido?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "This really should make the first winter easier to survive." msgstr "" -" Isso realmente deve tornar o primeiro inverno mais fácil de sobreviver." #: lang/json/mission_def_from_json.py msgid "Gather 75 Stones" -msgstr "Reúna 75 Pedras" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106681,39 +94206,28 @@ msgid "" "accomplish the task before we all get sick. After we have them installed " "you will have free access to them, guaranteed. " msgstr "" -" Nossa avaliação atual da capacidade de sobrevivência " -"aumentousignificativamente graças aos seus esforços. A próxima questão " -"prioritáriaé assegurar uma fonte de água mais limpa. Beber da lagoa na parte" -" de trásdo rancho levou a um surto de disenteria. O mais rápido possível, " -"precisamos melhorar as condições sanitárias do acampamento. Para isso, " -"oprimeiro passo é cavar um poço e construir lareiras de pedra no celeiropara" -" os migrantes ferverem a água. Vamos precisar de pelo menos 75 pedrasgrandes" -" de você, se esperamos realizar a tarefa antes que todos adoeçamos. Depois " -"de instalá-los, você terá acesso livre a eles, garantido." #: lang/json/mission_def_from_json.py msgid "" "If you take a shovel to a pile of rubble you should be able to pull out " "structural grade stone." msgstr "" -" Se você levar uma pá para uma pilha de escombros, você deve ser capaz " -"depuxar pedra de grau estrutural." #: lang/json/mission_def_from_json.py msgid "Mining would always be an option if you had the resources." -msgstr "Mineração sempre seria uma opção se você tivesse os recursos." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the stone?" -msgstr "Você tem a pedra?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I appreciate the work you do." -msgstr "Eu aprecio o trabalho que você faz." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Gather 50 Pipes" -msgstr "Junte 50 tubos" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106723,35 +94237,26 @@ msgid "" " eventually become desirable. You could assist us with procuring 50 steel " "pipes, if you so have the chance." msgstr "" -" Para fabricar a bomba manual do poço e construir componentes para " -"váriosoutros projetos, precisaremos encontrar ou fabricar vários tubos de " -"aço. Oencanamento é uma possibilidade distante por enquanto, mas alguma " -"forma deirrigação se tornará desejável. Você poderia nos ajudar a adquirir " -"50 tubosde aço, se tiver a chance." #: lang/json/mission_def_from_json.py msgid "" "Hopefully we will be able to assign new migrants to help fulfill our needs " "in the future." msgstr "" -" Espero que possamos designar novos migrantes para ajudar a suprir " -"nossasnecessidades no futuro." #: lang/json/mission_def_from_json.py msgid "" "Pipes are used in numerous metal constructions. Smashing abandoned " "furniture may provide the material we need." msgstr "" -" Tubos são usados em numerosas construções metálicas. Esmagar " -"móveisabandonados pode fornecer o material de que precisamos." #: lang/json/mission_def_from_json.py msgid "Do you have the pipes?" -msgstr "Você tem os canos?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Gather 2 Motors" -msgstr "Reúna 2 Motores" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106761,29 +94266,20 @@ msgid "" " manually operated sawmill but we will need two motors to control the actual" " blades. We were hoping you might be able to secure the motors for us." msgstr "" -" Com a conclusão do poço, estamos fechando rapidamente a lacuna " -"desustentabilidade. A fim de expandir a partir daqui, vamos precisar " -"dequantidades maciças de madeira para construir fortificações e " -"novosedifícios. Já começamos a trabalhar em uma serraria operada " -"manualmente, mas precisaremos de dois motores para controlar as lâminas " -"reais. Estávamosesperando que você conseguisse garantir os motores para nós." #: lang/json/mission_def_from_json.py msgid "" "Power for the motors will be provided by a salvaged truck battery, you need " "not bring additional mechanical components. " msgstr "" -" A energia para os motores será fornecida por uma bateria de " -"caminhãorecuperada, você não precisa trazer componentes mecânicos " -"adicionais." #: lang/json/mission_def_from_json.py msgid "Do you have the motors?" -msgstr "Você tem os motores?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Gather 150 Bleach" -msgstr "Recolha de 150 lixívia" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106794,37 +94290,28 @@ msgid "" "would be the first step I imagine. Bring me 5 gallon jugs of bleach so we " "can get started." msgstr "" -" A doença e a infecção continuam sendo um problema persistente entre " -"osrefugiados. Sem pessoal e instalações médicas dedicadas, duvido que " -"todosestejam dispostos a ficar por perto quando o próximo surto acontecer. " -"Atéconseguirmos um médico ou enfermeiro, vou ter que improvisar. " -"Esterilizaçãoseria o primeiro passo que imagino. Traga-me 5 galões de água " -"sanitáriapara que possamos começar." #: lang/json/mission_def_from_json.py msgid "I'm sure you can find bleach in most homes..." msgstr "" -"Tenho certeza que você pode encontrar lixívia na maioria das casas ..." #: lang/json/mission_def_from_json.py msgid "" "If you can't find a large supply I'd recommend checking hospitals or " "research labs." msgstr "" -" Se você não consegue encontrar um grande suprimento, recomendo " -"verificarhospitais ou laboratórios de pesquisa." #: lang/json/mission_def_from_json.py msgid "Do you have the bleach?" -msgstr "Você tem o alvejante?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I appreciate it." -msgstr "Eu agradeço." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Gather 6 First Aid Kits" -msgstr "Reúna 6 kits de primeiros socorros" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106835,31 +94322,22 @@ msgid "" " could bring in 6 full kits I'm sure we could supplement them to make them " "last a bit longer." msgstr "" -" Começamos a planejar uma clínica médica, mas vamos precisar de muito " -"maissuprimentos, se quisermos mandar uma das poucas pessoas com " -"experiênciamédica do centro de refugiados para o nosso posto avançado. Eu " -"sei que oskits de primeiros socorros são raros, mas eles têm todos os " -"suprimentosbásicos que eu não tenho certeza. Se você pudesse trazer 6 kits " -"completos, tenho certeza que poderíamos complementá-los para que durassem um" -" poucomais." #: lang/json/mission_def_from_json.py msgid "We'll do our best to make them last..." -msgstr "Faremos o nosso melhor para que eles durem ..." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Homes, hospitals, labs, and doctor offices would be where I'd check." msgstr "" -" Casas, hospitais, laboratórios e consultórios médicos seriam onde " -"euverificaria." #: lang/json/mission_def_from_json.py msgid "Do you have the first aid kits?" -msgstr "Você tem os kits de primeiros socorros?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 2 Electric Welders" -msgstr "Encontre 2 soldadores elétricos" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106869,31 +94347,24 @@ msgid "" "build fortifications and equipment. We are going to need a pair of electric" " welders for our mechanics to use." msgstr "" -" O trabalho que você fez influenciou os líderes do centro de refugiados " -"aenviar alguém para ajudar com nossas necessidades médicas. O próximo passoé" -" conseguirmos uma espécie de configuração de loja para que possamoscomeçar a" -" usar sucata para construir fortificações e equipamentos. Vamosprecisar de " -"um par de soldadores elétricos para os nossos mecânicos usarem." #: lang/json/mission_def_from_json.py msgid "With two, we should be able to repair one if it breaks." -msgstr "Com dois, nós poderíamos consertar um se quebrar." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "The only place I've seen them is garages but I imagine you could find them " "in some stores." msgstr "" -" O único lugar que eu os vi é garagens, mas imagino que você " -"poderiaencontrá-los em algumas lojas." #: lang/json/mission_def_from_json.py msgid "Do you have the welders?" -msgstr "Você tem os soldadores?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 12 Car Batteries" -msgstr "Encontrar 12 baterias de carro" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106903,35 +94374,28 @@ 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 "" -" Temos o equipamento básico de que precisamos, mas sem uma rede de " -"energiaque funcione, somos forçados a confiar nas baterias de veículos " -"prontamentedisponíveis. Isso vai ser uma tarefa difícil, mas precisarei de " -"dozebaterias para trocar entre carregar e alimentar nosso equipamento. A " -"boanotícia é que eles não precisam ser cobrados, podemos cuidar disso." #: lang/json/mission_def_from_json.py msgid "I'm counting on you." -msgstr "Estou contando com você." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Cars can be found in traffic jams along roads or in parking lots... I'm " "sure you can find a few." msgstr "" -" Carros podem ser encontrados em engarrafamentos ao longo das estradas ou " -"emestacionamentos ... Tenho certeza que você pode encontrar alguns." #: lang/json/mission_def_from_json.py msgid "Do you have the car batteries?" -msgstr "Você tem as baterias do carro?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm impressed with your abilities." -msgstr "Estou impressionado com suas habilidades." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 2 Two-Way Radios" -msgstr "Encontre 2 rádios bidirecionais" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106943,39 +94407,30 @@ msgid "" " that. Communication is the biggest obstacle for the teams... could you " "bring in a pair of two-way radios?" msgstr "" -" Verifique com a enfermeira quando tiver uma chance, eu sei que ela " -"vaiprecisar de ajuda para montar nossa clínica. Na frente da construção, " -"precisaremos de uma equipe de catadores dedicada para trazer " -"suprimentosdiversos que usamos em pequenas quantidades. Vamos começar a " -"montar umaloja de lixo para eles no extremo norte do posto avançado, para " -"podermosusar sua ajuda com isso. A comunicação é o maior obstáculo para as " -"equipes... você poderia trazer um par de rádios bidirecionais?" #: lang/json/mission_def_from_json.py msgid "" "Organizing the scavenging missions is difficult enough without " "communication." -msgstr "Organizar as missões de limpeza é bastante difícil sem comunicação." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "You should be able to find them in electronics stores or at a police " "station." msgstr "" -" Você deve ser capaz de encontrá-los em lojas de eletrônicos ou em " -"umadelegacia de polícia." #: lang/json/mission_def_from_json.py msgid "Do you have the two-way radios?" -msgstr "Você tem os rádios bidirecionais?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm sure the scavengers will find these useful." -msgstr "Tenho certeza que os catadores vão achar isso útil." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Gather 5 Backpacks" -msgstr "Recolhe 5 Mochilas" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -106985,32 +94440,23 @@ msgid "" "backpacks to get them started. Could you find five backpacks to give to the" " initial team?" msgstr "" -" Os voluntários das equipes de limpeza precisarão de alguns " -"equipamentosbásicos. Quando o chefe se instalar na loja de lixo, você deve " -"perguntar aele o que mais ele precisa para suas equipes. Enquanto isso, " -"podemosfornecer algumas mochilas para começar. Você poderia encontrar " -"cincomochilas para dar ao time inicial?" #: lang/json/mission_def_from_json.py msgid "It may be easier to make them if you can't find a school or something." msgstr "" -" Pode ser mais fácil fazê-las se você não puder encontrar uma escola ou " -"algoassim." #: lang/json/mission_def_from_json.py msgid "Do you have the backpacks?" -msgstr "Você tem as mochilas?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "Having at least basic equipment greatly increases survivability. Thanks." msgstr "" -" Ter pelo menos equipamento básico aumenta enormemente a capacidade " -"desobrevivência. Obrigado." #: lang/json/mission_def_from_json.py msgid "Find Homebrewer's Bible" -msgstr "Encontre a Bíblia de Homebrewer" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107024,33 +94470,22 @@ msgid "" "going to need you to find a book called the 'Homebrewer's Bible' or " "something along those lines." msgstr "" -" O crescimento ultimamente começou a estagnar, nós temos indivíduos " -"passandopelo posto avançado, mas a perspectiva de trabalho duro apenas para " -"obteruma existência está afastando-os. Nós perguntamos e decidimos que, " -"apesarde nossas necessidades prementes, a construção de um bar deveria " -"atrairalguns dos indivíduos menos comprometidos para o posto avançado. " -"Aocontrário de outros assentamentos, quanto mais mãos temos para " -"maisalimentos, podemos produzir ... pelo menos a longo prazo. Infelizmente, " -"ninguém aqui preparou bebidas alcoólicas antes, por isso vamos precisar " -"devocê para encontrar um livro chamado 'Bíblia do Homebrewer' oualgo nesse " -"sentido." #: lang/json/mission_def_from_json.py msgid "I guess you should search homes or libraries?" -msgstr "Eu acho que você deveria procurar casas ou bibliotecas?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the book?" -msgstr "Você tem o livro?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "I guarantee we will toast to your name when the bar is finished." msgstr "" -" Eu garanto que vamos brindar ao seu nome quando a barra estiver terminada." #: lang/json/mission_def_from_json.py msgid "Gather 80 Sugar" -msgstr "Junte 80 Açúcar" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107060,35 +94495,26 @@ msgid "" "our first large batch is a priority. Could you bring in 80 units of sugar?" " That should last us until we can start producing our own supply." msgstr "" -" Apenas folheando o livro, posso dizer que um ingrediente na maioria " -"dasbebidas alcoólicas de que não temos grande oferta é o açúcar. O álcool " -"quepudemos roubar não vai durar muito tempo, então começar nosso primeiro " -"lotegrande é uma prioridade. Você poderia trazer 80 unidades de açúcar? " -"Issodeve durar até que possamos começar a produzir nosso próprio suprimento." #: lang/json/mission_def_from_json.py msgid "" "You might get lucky finding it but you could always boil it out of fruit if " "you are familiar with the process." msgstr "" -" Você pode ter sorte encontrá-lo, mas você sempre pode ferver a fruta sevocê" -" estiver familiarizado com o processo." #: lang/json/mission_def_from_json.py msgid "Do you have the sugar?" -msgstr "Você tem o açúcar?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "There is a large group of thirsty individuals in our outpost that are truly " "thankful for your work." msgstr "" -" Há um grande grupo de pessoas sedentas em nosso posto avançado que " -"sãoverdadeiramente gratas pelo seu trabalho." #: lang/json/mission_def_from_json.py msgid "Collect 30 Glass Sheets" -msgstr "Colete 30 folhas de vidro" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107099,36 +94525,25 @@ msgid "" "we are going to need a massive number of glass sheets to enclose the frames." " The first house will need 30 sheets of glass if you are still interested." msgstr "" -" Apesar de sermos um posto avançado agrícola, estamos restritos ao cultivode" -" plantas compatíveis com o clima da Nova Inglaterra durante os meses " -"maisquentes. A maneira mais fácil de contornar isso é construir casas " -"verdespara complementar nossos campos externos. Não vai ser uma maneira " -"fácil deconstruir isso, vamos precisar de um grande número de folhas de " -"vidro paraenvolver os quadros. A primeira casa precisará de 30 folhas de " -"vidro sevocê ainda estiver interessado." #: lang/json/mission_def_from_json.py msgid "" "Deconstructing existing windows is the only way I know of to keep the sheets" " intact." msgstr "" -" Desconstruir janelas existentes é a única maneira que conheço de manter " -"asfolhas intactas." #: lang/json/mission_def_from_json.py msgid "Do you have the glass sheets?" -msgstr "Você tem as folhas de vidro?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll begin planting our first seeds as soon as we can get these installed." msgstr "" -" Nós começaremos a plantar nossas primeiras sementes assim que " -"pudermosinstalá-las." #: lang/json/mission_def_from_json.py msgid "Collect 100 Aspirin" -msgstr "Colete 100 Aspirina" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107139,28 +94554,22 @@ msgid "" "prevent me from ever seeing it. I could use your help getting a few bottles" " of aspirin to start with." msgstr "" -" Eu tenho um punhado de bandagens e alguns kits de primeiros socorros " -"paratrabalhar no momento ... em outras palavras, eu sou completamente " -"incapazde tratar emergências médicas mais graves. Eu deveria ter prioridade " -"emqualquer material médico que os catadores tragam, mas eu imagino que " -"omercado negro para o material me impedirá de vê-lo. Eu poderia usar " -"suaajuda para pegar algumas garrafas de aspirina para começar." #: lang/json/mission_def_from_json.py msgid "Aspirin is pretty common in homes and convenience stores." -msgstr "A aspirina é bastante comum em residências e lojas de conveniência." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the aspirin?" -msgstr "Você tem aspirina?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "We'll go through this pretty quickly but it does help." -msgstr "Nós vamos passar por isso muito rapidamente, mas isso ajuda." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Collect 3 Hotplates" -msgstr "Colete 3 bicos" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107168,22 +94577,18 @@ msgid "" "hotplates to actually sterilize equipment. I'm sure you can find them in " "any old house or appliance store. Three should be enough for now." msgstr "" -" Recebi algumas garrafas de alvejante quando cheguei, mas preciso de " -"umnúmero de fogões para realmente esterilizar o equipamento. Tenho certeza " -"deque você pode encontrá-los em qualquer casa velha ou loja " -"deeletrodomésticos. Três devem ser suficientes por enquanto." #: lang/json/mission_def_from_json.py msgid "It should be a fairly common item, don't know what else to say." -msgstr "Deve ser um item bastante comum, não sei mais o que dizer." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the hotplates?" -msgstr "Você tem o fogão?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Collect 200 Multivitamin Pills" -msgstr "Recolha 200 comprimidos multivitamínicos" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107195,22 +94600,14 @@ msgid "" "able to treat the most vulnerable before they spread anything to the rest of" " us." msgstr "" -" A doença está se espalhando rapidamente devido à má nutrição e há pouco " -"queeu possa fazer sobre isso. Com a comida sendo escassa, as pessoas " -"estãodispostas a sobreviver em tudo o que puderem. Preciso começar a " -"suplementara dieta do posto avançado com vitaminas para evitar possíveis " -"mortesindiretamente atribuíveis à nutrição. Eu sei que é muito, mas se " -"vocêpudesse me trazer 200 comprimidos multivitamínicos, eu seria capaz " -"detratar os mais vulneráveis antes de espalhar qualquer coisa para o resto " -"denós." #: lang/json/mission_def_from_json.py msgid "Do you have the vitamins?" -msgstr "Você tem vitaminas?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Make 4 Charcoal Purifiers" -msgstr "Faça 4 purificadores de carvão" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107220,27 +94617,20 @@ msgid "" "that they can use. If you could build me four charcoal water filters I'll " "distribute them to groups as they pass through." msgstr "" -" Apesar das minhas recomendações, continuamos a ter viajantes com doençasque" -" consegui localizar até a água contaminada. Quando a água fervente não éuma " -"opção, eles precisam de algum tipo de filtro de água de carvão quepossam " -"usar. Se você pudesse me construir quatro filtros de água a carvão, eu os " -"distribuiria aos grupos quando eles passassem." #: lang/json/mission_def_from_json.py msgid "" "With some basic survival and crafting skills you should be able to make them" " with little effort." msgstr "" -" Com algumas habilidades básicas de sobrevivência e elaboração, você deveser" -" capaz de fazê-las com pouco esforço." #: lang/json/mission_def_from_json.py msgid "Do you have the charcoal water filters?" -msgstr "Você tem filtros de água a carvão?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find a Chemistry Set" -msgstr "Encontre um conjunto de química" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107249,24 +94639,19 @@ msgid "" "there any way you could go through one of the school chemistry labs and " "steal me a chemistry set?" msgstr "" -" Eu tenho trabalhado na produção de alguns dos nossos próprios " -"suprimentosmédicos, mas vou precisar de um conjunto de química para obter " -"tudo o quepreciso em ordem. Existe alguma maneira de você passar por um " -"doslaboratórios de química da escola e me roubar um conjunto de química?" #: lang/json/mission_def_from_json.py msgid "" "You might be able to find one in a pharmacy if you can't find a school." msgstr "" -" Você pode encontrar um em uma farmácia se não puder encontrar uma escola." #: lang/json/mission_def_from_json.py msgid "Do you have the chemistry set?" -msgstr "Você tem o conjunto de química?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 10 Filter Masks" -msgstr "Encontre 10 máscaras de filtro" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107274,22 +94659,18 @@ 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 "" -" O número de infecções das vias aéreas que eu encontrei na semana " -"passadaesgotou meu suprimento de máscaras. Você poderia me encontrar 10 " -"máscarasde filtro? Eu costumo apenas distribuí-los em casos graves, então eu" -" vouter certeza de fazê-los durar." #: lang/json/mission_def_from_json.py msgid "You may be able to make one if you had the right guide." -msgstr "Você pode fazer um se tiver o guia certo." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the filter masks?" -msgstr "Você tem as máscaras de filtro?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 4 Pairs of Rubber Gloves" -msgstr "Encontrar 4 pares de luvas de borracha" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107298,23 +94679,18 @@ msgid "" "me four pairs of heavy rubber gloves? That should be enough that I can task" " a few laborers with cleanup details in the event of an outbreak." msgstr "" -" Os fluidos corporais que eu tenho muitas vezes para limpar e os " -"produtosquímicos cáusticos com que lidei fizeram um número no meu atual par " -"deluvas. Você poderia me encontrar quatro pares de luvas pesadas de " -"borracha?Isso deve ser o suficiente para que eu possa incumbir alguns " -"trabalhadoresde detalhes de limpeza no caso de um surto." #: lang/json/mission_def_from_json.py msgid "You should be able to find them in cleaning closets." -msgstr "Você deve ser capaz de encontrá-los em armários de limpeza." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the rubber gloves?" -msgstr "Você tem as luvas de borracha?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 2 Scalpels" -msgstr "Encontre 2 bisturis" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107323,22 +94699,18 @@ msgid "" "scalpels to use in surgery when he arrives. I'm sure you should be able to " "find them in a hospital or craft shop." msgstr "" -" Ouvi dizer que podemos ter um médico a caminho daqui. Os trabalhadores " -"jácomeçaram a expandir a clínica, mas preciso que você localize um par " -"debisturis para usar na cirurgia quando ele chegar. Tenho certeza que " -"vocêdeve ser capaz de encontrá-los em um hospital ou loja de artesanato." #: lang/json/mission_def_from_json.py msgid "Hospitals and crafting stores should have a few." -msgstr "Hospitais e lojas de artesanato devem ter alguns." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the scalpels?" -msgstr "Você tem os bisturis?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find Advanced Emergency Care" -msgstr "Encontre o atendimento de emergência avançado" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107346,22 +94718,18 @@ msgid "" "really need a copy. The doctor is requesting a lot of supplies that I'm not" " familiar with but I believe I could make if I could get a copy of the book." msgstr "" -" Você já ouviu falar de um livro chamado 'Guia de Atendimento Avançadode " -"Emergência?' Eu realmente preciso de uma cópia. O médico está solicitando um" -" monte de suprimentos que eu não conheço, mas acredito que poderia fazer se " -"conseguisse uma cópia do livro." #: lang/json/mission_def_from_json.py msgid "Libraries are the only place I'd think to look." -msgstr "Bibliotecas são o único lugar que eu pensaria em procurar." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the Guide to Advanced Emergency Care?" -msgstr "Você tem o Guia de Atendimento Avançado de Emergência?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find a Flu Shot" -msgstr "Encontre uma vacina contra a gripe" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107371,24 +94739,18 @@ msgid "" "time until one of the older or younger members of the outpost gets a bad " "case." msgstr "" -" O médico tem algumas idéias sobre como recriar um programa de vacinaçãopara" -" a gripe comum. Se você se deparar com uma vacina contra a gripe " -"nãoutilizada, por favor, traga-a para mim. Ainda não tivemos " -"nenhumafatalidade da gripe, mas é apenas uma questão de tempo até que um " -"dosmembros mais velhos ou mais jovens do posto avançado receba um caso " -"grave." #: lang/json/mission_def_from_json.py msgid "Hospitals or clinics might have a few that haven't been used." -msgstr "Hospitais ou clínicas podem ter alguns que não foram usados." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the flu shot?" -msgstr "Você tem a vacina contra a gripe?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Find 10 Syringes" -msgstr "Encontre 10 seringas" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107397,22 +94759,18 @@ msgid "" "syringes to use. I'll take care of cleaning them to prevent transferring " "infections." msgstr "" -" Estamos começando a isolar alguns soros antibióticos naturais, mas nãotemos" -" os suprimentos para administrar os coquetéis. Eu preciso que você metraga " -"10 seringas vazias para usar. Eu vou cuidar de limpá-los para evitara " -"transferência de infecções." #: lang/json/mission_def_from_json.py msgid "Hospitals or clinics might have a few sitting around." -msgstr "Hospitais ou clínicas podem ter algumas pessoas sentadas ao redor." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the empty syringes?" -msgstr "Você tem as seringas vazias?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Make 12 Knife Spears" -msgstr "Faça 12 lanças de faca" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107422,23 +94780,18 @@ msgid "" "monsters. Could you make me a dozen of them? I may need more later but " "that should help the first few teams." msgstr "" -" Eu geralmente posso usar equipamento de sobrevivência adicional paraequipar" -" os novos recrutas. A arma mais básica que todos recebem é a lançada faca " -"... ela fornece uma boa combinação de alcance, potência efacilidade de uso " -"ao envolver os monstros mais comuns. Você poderia mefazer uma dúzia deles? " -"Eu posso precisar de mais tarde, mas isso deveajudar as primeiras equipes." #: lang/json/mission_def_from_json.py msgid "You should be able to make them with the most basic of skills." -msgstr "Você deve ser capaz de fazê-los com as habilidades mais básicas." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Do you have the knife spears?" -msgstr "Você tem as lanças da faca?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Make 5 Wearable Flashlights" -msgstr "Faça 5 lanternas wearable" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107447,18 +94800,14 @@ msgid "" " of five headlamps for them? Keeping both hands free greatly helps during " "combat." msgstr "" -" A noite é o momento ideal para a minha equipe ir em ataques, mas eles " -"vãoprecisar de melhores fontes de luz para acelerar suas missões. Você " -"poderiacriar um conjunto de cinco faróis para eles? Manter as duas mãos " -"livresajuda muito durante o combate." #: lang/json/mission_def_from_json.py msgid "Do you have the wearable flashlights?" -msgstr "Você tem as lanternas vestíveis?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Make 3 Leather Body Armor" -msgstr "Faça 3 Armadura de Couro" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107469,25 +94818,19 @@ msgid "" "armor? The life-expectancy of my scavengers would drastically increase if " "you did." msgstr "" -" Roupas que podem suportar o desgaste de subir pelas janelas e lutar " -"contraanimais selvagens estão em alta demanda. O melhor que conseguimos " -"colocar éa couraça de couro, mas é difícil fazer com nossos recursos " -"limitados. Vocêpoderia criar três pares de armaduras de couro? A expectativa" -" de vida dosmeus catadores aumentaria drasticamente se você o fizesse." #: lang/json/mission_def_from_json.py msgid "" "Finding the leather might be easier in town rather than making it yourself." msgstr "" -" Encontrar o couro pode ser mais fácil na cidade do que fazê-lo sozinho." #: lang/json/mission_def_from_json.py msgid "Do you have the leather armor?" -msgstr "Você tem a armadura de couro?" +msgstr "" #: lang/json/mission_def_from_json.py msgid "Make 12 Molotov Cocktails" -msgstr "Faça 12 coquetéis Molotov" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -107497,23 +94840,16 @@ msgid "" "willing to make us a dozen? I'm willing to pay you what I can for your " "assistance. " msgstr "" -" Quando em desvantagem ou forçados a recuar, meus catadores foram ensinadosa" -" jogar coquetéis molotov para impedir que os monstros os perseguissem. " -"Nóspassamos por um ou dois em cada missão para que possamos sempre usar " -"maisalguns. Você estaria disposto a nos fazer uma dúzia? Estou disposto a " -"pagaro que puder pela sua ajuda." #: lang/json/mission_def_from_json.py msgid "" "Alcohol or lamp oil is probably easier to refine rather than find in large " "quantities." msgstr "" -" Álcool ou óleo de lâmpada é provavelmente mais fácil de refinar do " -"queencontrar em grandes quantidades." #: lang/json/mission_def_from_json.py msgid "Do you have the Molotov cocktails?" -msgstr "Você tem os coquetéis Molotov?" +msgstr "" #: lang/json/monster_attack_from_json.py src/monattack.cpp #, c-format, no-python-format @@ -107630,7 +94966,7 @@ msgstr "Apreciou uma refeição quente" #: lang/json/morale_type_from_json.py msgid "Enjoyed a conversation" -msgstr "Apreciou uma conversa" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Ate with table" @@ -107747,7 +95083,7 @@ msgstr "Alergia à Trigo" #: lang/json/morale_type_from_json.py msgid "Enjoyed sugary food" -msgstr "Apreciamos comida açucarada" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Ate Indigestible Food" @@ -107791,7 +95127,7 @@ msgstr "Mutação Quimérica" #: lang/json/morale_type_from_json.py msgid "Mutation" -msgstr "Mutação" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Moodswing" @@ -107853,31 +95189,31 @@ msgstr "achou o gatinho *-* :3 <3" #: lang/json/morale_type_from_json.py msgid "Got a Haircut" -msgstr "Tem um corte de cabelo" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Freshly Shaven" -msgstr "Recém barbeado" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Barfed" -msgstr "Barfed" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Spent time playing with a pet" -msgstr "Tempo gasto brincando com um animal de estimação" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Lit a fire" -msgstr "Acendeu um fogo" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Spent time close to fire" -msgstr "Tempo passado perto do fogo" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Craving fire" -msgstr "Fogo desejo" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Killed recently" @@ -107889,11 +95225,11 @@ msgstr "" #: lang/json/morale_type_from_json.py msgid "Filthy Gear" -msgstr "Engrenagem Suja" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Anguished by memories of butchering human corpse" -msgstr "Angustiado por memórias de cadáver humano massacrante" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Dug out a grave" @@ -107913,11 +95249,11 @@ msgstr "" #: lang/json/morale_type_from_json.py src/debug_menu.cpp msgid "Failure" -msgstr "Falha" +msgstr "" #: lang/json/morale_type_from_json.py msgid "Debug Morale" -msgstr "Depurar Moral" +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py src/creature.cpp src/options.cpp @@ -107927,345 +95263,340 @@ msgstr "Qualquer" #. ~ Mutation class: Any mutagen_message #: lang/json/mutation_category_from_json.py msgid "You feel strange." -msgstr "Você se sente estranho." +msgstr "" #. ~ Mutation class: Any iv_message #: lang/json/mutation_category_from_json.py src/mutation_data.cpp msgid "You inject yoursel-arRGH!" -msgstr "Você injeta yoursel-arRGH!" +msgstr "" #. ~ Mutation class: Any iv_sleep_message #: lang/json/mutation_category_from_json.py msgid "You writhe and collapse to the ground." -msgstr "Você se contorce e cai no chão." +msgstr "" #. ~ Mutation class: Any iv_sound_message #: lang/json/mutation_category_from_json.py msgid "yourself scream in agony!" -msgstr "grite em agonia!" +msgstr "" #. ~ Mutation class: Any junkie_message #: lang/json/mutation_category_from_json.py src/iuse_actor.cpp msgid "You quiver with anticipation..." -msgstr "Você tremer de antecipação ..." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Plant" -msgstr "Plantar" +msgstr "" #. ~ Mutation class: Plant mutagen_message #: lang/json/mutation_category_from_json.py msgid "You feel much closer to nature." -msgstr "Você se sente muito mais perto da natureza." +msgstr "" #. ~ Mutation class: Plant iv_message #: lang/json/mutation_category_from_json.py msgid "You inject some nutrients into your phloem." -msgstr "Você injeta alguns nutrientes no seu floema." +msgstr "" #. ~ Mutation class: Plant Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Bloomed forth." -msgstr "Floresceu para frente." +msgstr "" #. ~ Mutation class: Plant Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Bloomed forth." -msgstr "Floresceu para frente." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Insect" -msgstr "Inseto" +msgstr "" #. ~ Mutation class: Insect mutagen_message #: lang/json/mutation_category_from_json.py msgid "You hear buzzing, and feel your body harden." -msgstr "Você ouve zumbido e sente seu corpo endurecer." +msgstr "" #. ~ Mutation class: Insect iv_message #: lang/json/mutation_category_from_json.py msgid "You sting yourself... for the Queen." -msgstr "Você se machuca ... pela Rainha." +msgstr "" #. ~ Mutation class: Insect Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Metamorphosed." -msgstr "Metamorfoseado" +msgstr "" #. ~ Mutation class: Insect Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Metamorphosed." -msgstr "Metamorfoseado" +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Spider" -msgstr "Aranha" +msgstr "" #. ~ Mutation class: Spider mutagen_message #: lang/json/mutation_category_from_json.py msgid "You feel insidious." -msgstr "Você se sente insidioso." +msgstr "" #. ~ Mutation class: Spider iv_message #: lang/json/mutation_category_from_json.py msgid "Mmm... the *special* venom." -msgstr "Mmm ... o veneno * especial *." +msgstr "" #. ~ Mutation class: Spider Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Found a place in the web of life." -msgstr "Encontrei um lugar na teia da vida." +msgstr "" #. ~ Mutation class: Spider Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Found a place in the web of life." -msgstr "Encontrei um lugar na teia da vida." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Slime" -msgstr "Lodo" +msgstr "" #. ~ Mutation class: Slime mutagen_message #: lang/json/mutation_category_from_json.py msgid "Your body loses all rigidity for a moment." -msgstr "Seu corpo perde toda a rigidez por um momento." +msgstr "" #. ~ Mutation class: Slime iv_message #: lang/json/mutation_category_from_json.py msgid "This stuff takes you back. Downright primordial!" -msgstr "Esse material leva você de volta. Absolutamente primordial!" +msgstr "" #. ~ Mutation class: Slime junkie_message #: lang/json/mutation_category_from_json.py msgid "Maybe if you drank enough, you'd become mutagen..." -msgstr "Talvez se você bebesse o suficiente, você se tornaria mutagênico ..." +msgstr "" #. ~ Mutation class: Slime Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Gave up on rigid human norms." -msgstr "Desisti de normas humanas rígidas." +msgstr "" #. ~ Mutation class: Slime Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Gave up on rigid human norms." -msgstr "Desisti de normas humanas rígidas." +msgstr "" #. ~ Mutation class: Fish mutagen_message #: lang/json/mutation_category_from_json.py msgid "You are overcome by an overwhelming longing for the ocean." -msgstr "Você é superado por um desejo avassalador pelo oceano." +msgstr "" #. ~ Mutation class: Fish iv_message #: lang/json/mutation_category_from_json.py msgid "Your pulse pounds as the waves." -msgstr "Seu pulso bate como as ondas." +msgstr "" #. ~ Mutation class: Fish Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Went deep." -msgstr "Foi profundo." +msgstr "" #. ~ Mutation class: Fish Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Went deep." -msgstr "Foi profundo." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Rat" -msgstr "Rato" +msgstr "" #. ~ Mutation class: Rat mutagen_message #: lang/json/mutation_category_from_json.py msgid "You feel a momentary nausea." -msgstr "Você sente uma náusea momentânea." +msgstr "" #. ~ Mutation class: Rat iv_message #: lang/json/mutation_category_from_json.py msgid "You squeak as the shot hits you." -msgstr "Você grita quando o tiro bate em você." +msgstr "" #. ~ Mutation class: Rat iv_sound_message #: lang/json/mutation_category_from_json.py msgid "eep!" -msgstr "eep!" +msgstr "" #. ~ Mutation class: Rat Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Found that survival *is* everything." -msgstr "Descobri que a sobrevivência * é * tudo." +msgstr "" #. ~ Mutation class: Rat Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Found that survival *is* everything." -msgstr "Descobri que a sobrevivência * é * tudo." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Beast" -msgstr "Fera" +msgstr "" #. ~ Mutation class: Beast mutagen_message #: lang/json/mutation_category_from_json.py msgid "Your heart races and you see blood for a moment." -msgstr "Seu coração corre e você vê sangue por um momento." +msgstr "" #. ~ Mutation class: Beast iv_message #: lang/json/mutation_category_from_json.py msgid "Your heart races wildly as the injection takes hold." -msgstr "Seu coração dispara loucamente enquanto a injeção toma conta." +msgstr "" #. ~ Mutation class: Beast Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Embraced his bestial nature." -msgstr "Abraçou sua natureza bestial." +msgstr "" #. ~ Mutation class: Beast Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Embraced his bestial nature." -msgstr "Abraçou sua natureza bestial." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Bear" -msgstr "Urso" +msgstr "" #. ~ Mutation class: Bear mutagen_message #: lang/json/mutation_category_from_json.py msgid "You feel an urge to... patrol? the forests?" -msgstr "Você sente um desejo de ... patrulhar? as florestas?" +msgstr "" #. ~ Mutation class: Bear iv_message #: lang/json/mutation_category_from_json.py msgid "You feel yourself quite equipped for wilderness survival." -msgstr "Você se sente bem equipado para a sobrevivência na selva." +msgstr "" #. ~ Mutation class: Bear Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Became one with the bears." -msgstr "Torne-se um com os ursos." +msgstr "" #. ~ Mutation class: Bear Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Became one with the bears." -msgstr "Torne-se um com os ursos." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Feline" -msgstr "Felino" +msgstr "" #. ~ Mutation class: Feline mutagen_message #: lang/json/mutation_category_from_json.py msgid "As you lap up the last of the mutagen, you wonder why..." msgstr "" -" Enquanto você lida com o último mutagênico, você se pergunta por que ..." #. ~ Mutation class: Feline iv_message #: lang/json/mutation_category_from_json.py msgid "Your back arches as the mutagen takes hold." -msgstr "Suas costas se arqueiam quando o mutagênico toma conta." +msgstr "" #. ~ Mutation class: Feline Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Realized the dream." -msgstr "Realizou o sonho." +msgstr "" #. ~ Mutation class: Feline Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Realized the dream." -msgstr "Realizou o sonho." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Wolf" -msgstr "Lobo" +msgstr "" #. ~ Mutation class: Wolf mutagen_message #: lang/json/mutation_category_from_json.py msgid "You feel an urge to mark your territory. But then it passes." -msgstr "Você sente um desejo de marcar seu território. Mas então isso passa." +msgstr "" #. ~ Mutation class: Wolf iv_message #: lang/json/mutation_category_from_json.py msgid "As the mutagen hits you, your ears twitch and you stifle a yipe." msgstr "" -" Quando o mutagênico bate em você, seus ouvidos se contraem e você abafa " -"umyipe." #. ~ Mutation class: Wolf Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Wolfed out." -msgstr "Wolfed fora." +msgstr "" #. ~ Mutation class: Wolf Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Wolfed out." -msgstr "Wolfed fora." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Cattle" -msgstr "Gado" +msgstr "" #. ~ Mutation class: Cattle mutagen_message #: lang/json/mutation_category_from_json.py msgid "Your mind and body slow down. You feel peaceful." -msgstr "Sua mente e corpo diminuem a velocidade. Você se sente em paz." +msgstr "" #. ~ Mutation class: Cattle iv_message #: lang/json/mutation_category_from_json.py msgid "You wonder if this is what rBGH feels like..." -msgstr "Você quer saber se é assim que rBGH se sente ..." +msgstr "" #. ~ Mutation class: Cattle Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Stopped worrying and learned to love the cowbell." -msgstr "Parou de se preocupar e aprendeu a amar o chocalho." +msgstr "" #. ~ Mutation class: Cattle Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Stopped worrying and learned to love the cowbell." -msgstr "Parou de se preocupar e aprendeu a amar o chocalho." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Cephalopod" -msgstr "Cefalópode" +msgstr "" #. ~ Mutation class: Cephalopod mutagen_message #: lang/json/mutation_category_from_json.py msgid "" "Your mind is overcome by images of eldritch horrors... and then they pass." msgstr "" -" Sua mente é superada por imagens de horrores horríveis ... e então " -"elespassam." #. ~ Mutation class: Cephalopod iv_message #: lang/json/mutation_category_from_json.py @@ -108273,133 +95604,131 @@ msgid "" "You watch the mutagen flow through a maze of little twisty passages. All " "the same." msgstr "" -" Você assiste o fluxo mutagênico através de um labirinto de " -"pequenaspassagens sinuosas. Tudo o mesmo." #. ~ Mutation class: Cephalopod Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Began living the dreams." -msgstr "Começou a viver os sonhos." +msgstr "" #. ~ Mutation class: Cephalopod Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Began living the dreams." -msgstr "Começou a viver os sonhos." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Bird" -msgstr "Pássaro" +msgstr "" #. ~ Mutation class: Bird mutagen_message #: lang/json/mutation_category_from_json.py msgid "Your body lightens and you long for the sky." -msgstr "Seu corpo se ilumina e você anseia pelo céu." +msgstr "" #. ~ Mutation class: Bird iv_message #: lang/json/mutation_category_from_json.py msgid "Your arms spasm in an oddly wavelike motion." -msgstr "Seus braços espasmos em um movimento estranhamente ondulatório." +msgstr "" #. ~ Mutation class: Bird Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Broke free of humanity." -msgstr "Se libertou da humanidade." +msgstr "" #. ~ Mutation class: Bird Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Broke free of humanity." -msgstr "Se libertou da humanidade." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Lizard" -msgstr "Lagarto" +msgstr "" #. ~ Mutation class: Lizard mutagen_message #: lang/json/mutation_category_from_json.py msgid "For a heartbeat, your blood cools down." -msgstr "Por um batimento cardíaco, seu sangue esfria." +msgstr "" #. ~ Mutation class: Lizard iv_message #: lang/json/mutation_category_from_json.py msgid "Your blood cools down. The feeling is... different." -msgstr "Seu sangue esfria. O sentimento é ... diferente." +msgstr "" #. ~ Mutation class: Lizard Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Shed the ugly human skin." -msgstr "Derrame a pele humana feia." +msgstr "" #. ~ Mutation class: Lizard Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Shed the ugly human skin." -msgstr "Derrame a pele humana feia." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Troglobite" -msgstr "Troglóbio" +msgstr "" #. ~ Mutation class: Troglobite mutagen_message #: lang/json/mutation_category_from_json.py msgid "You yearn for a cool, dark place to hide." -msgstr "Você anseia por um lugar frio e escuro para se esconder." +msgstr "" #. ~ Mutation class: Troglobite iv_message #: lang/json/mutation_category_from_json.py msgid "As you press the plunger, it all goes so bright..." -msgstr "Enquanto você pressiona o êmbolo, tudo fica tão brilhante ..." +msgstr "" #. ~ Mutation class: Troglobite Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Adapted to underground living." -msgstr "Adaptado à vida subterrânea." +msgstr "" #. ~ Mutation class: Troglobite Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Adapted to underground living." -msgstr "Adaptado à vida subterrânea." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Alpha" -msgstr "Alfa" +msgstr "" #. ~ Mutation class: Alpha mutagen_message #: lang/json/mutation_category_from_json.py msgid "You feel... better. Somehow." -msgstr "Você se sente melhor. De alguma forma." +msgstr "" #. ~ Mutation class: Alpha iv_message #: lang/json/mutation_category_from_json.py msgid "You took that shot like a champ!" -msgstr "Você levou esse tiro como um campeão!" +msgstr "" #. ~ Mutation class: Alpha Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Started representing." -msgstr "Começou a representar." +msgstr "" #. ~ Mutation class: Alpha Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Started representing." -msgstr "Começou a representar." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Medical" -msgstr "Médico" +msgstr "" #. ~ Mutation class: Medical mutagen_message #: lang/json/mutation_category_from_json.py @@ -108407,112 +95736,108 @@ msgid "" "You can feel the blood rushing through your veins and a strange, medicated " "feeling washes over your senses." msgstr "" -" Você pode sentir o sangue correndo em suas veias e um sentimento estranho, " -"medicado, lava seus sentidos." #. ~ Mutation class: Medical iv_message #: lang/json/mutation_category_from_json.py msgid "" "You can feel the blood in your medication stream. It's a strange feeling." msgstr "" -" Você pode sentir o sangue em seu fluxo de medicação. É um " -"sentimentoestranho." #. ~ Mutation class: Medical junkie_message #: lang/json/mutation_category_from_json.py msgid "Ahh, there it is. You can feel the mutagen again." -msgstr "Ah, ai está. Você pode sentir o mutagênico novamente." +msgstr "" #. ~ Mutation class: Medical Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Resumed clinical trials." -msgstr "Ensaios clínicos recomeçados." +msgstr "" #. ~ Mutation class: Medical Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Resumed clinical trials." -msgstr "Ensaios clínicos recomeçados." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Chimera" -msgstr "Quimera" +msgstr "" #. ~ Mutation class: Chimera mutagen_message #: lang/json/mutation_category_from_json.py msgid "You need to roar, bask, bite, and flap. NOW." -msgstr "Você precisa rugir, aquecer, morder e bater. AGORA." +msgstr "" #. ~ Mutation class: Chimera iv_message #: lang/json/mutation_category_from_json.py msgid "everyanimalthateverlived.bursting.from.YOU!" -msgstr "todos os que sobreviveram." +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 "Com um final * pop *, você sai como uma luz." +msgstr "" #. ~ Mutation class: Chimera iv_sound_message #: lang/json/mutation_category_from_json.py msgid "yourself roar in agony!" -msgstr "você mesmo rugir em agonia!" +msgstr "" #. ~ Mutation class: Chimera Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "United disunity." -msgstr "Desunião unida." +msgstr "" #. ~ Mutation class: Chimera Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "United disunity." -msgstr "Desunião unida." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Fey" -msgstr "Fada" +msgstr "" #. ~ Mutation class: Fey mutagen_message #: lang/json/mutation_category_from_json.py msgid "Nature is becoming one with you..." -msgstr "A natureza está se tornando uma com você ..." +msgstr "" #. ~ Mutation class: Fey iv_message #: lang/json/mutation_category_from_json.py msgid "Everything goes green for a second." -msgstr "Tudo fica verde por um segundo." +msgstr "" #. ~ Mutation class: Fey iv_sleep_message #: lang/json/mutation_category_from_json.py msgid "It's painfully beautiful..." -msgstr "É dolorosamente lindo ..." +msgstr "" #. ~ Mutation class: Fey Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Accepted a more natural way of life." -msgstr "Aceito um modo de vida mais natural." +msgstr "" #. ~ Mutation class: Fey Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Accepted a more natural way of life." -msgstr "Aceito um modo de vida mais natural." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py lang/json/mutation_from_json.py msgid "Raptor" -msgstr "Raptor" +msgstr "" #. ~ Mutation class: Raptor mutagen_message #: lang/json/mutation_category_from_json.py msgid "Mmm... sweet, bloody flavor... tastes like victory." -msgstr "Mmm ... sabor doce e sangrento ... tem gosto de vitória." +msgstr "" #. ~ Mutation class: Raptor iv_message #: lang/json/mutation_category_from_json.py @@ -108520,50 +95845,46 @@ msgid "" "You distinctly smell the mutagen mixing with your blood... and then it " "passes." msgstr "" -" Você distintamente cheira o mutagênico misturado com o seu sangue ... " -"eentão passa." #. ~ Mutation class: Raptor Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Hatched." -msgstr "Hachurado." +msgstr "" #. ~ Mutation class: Raptor Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Hatched." -msgstr "Hachurado." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Mouse" -msgstr "Rato" +msgstr "" #. ~ Mutation class: Mouse mutagen_message #: lang/json/mutation_category_from_json.py msgid "" "You feel a desire to curl up in a nice, warm pile of... shredded paper." msgstr "" -" Você sente o desejo de se enrolar em uma pilha agradável e quente de " -"...papel picado." #. ~ Mutation class: Mouse iv_message #: lang/json/mutation_category_from_json.py msgid "You feel... small. But comfortable." -msgstr "Você se sente ... pequeno. Mas confortável." +msgstr "" #. ~ Mutation class: Mouse Male memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_male" msgid "Found the cheese." -msgstr "Encontrei o queijo." +msgstr "" #. ~ Mutation class: Mouse Female memorial messsage #: lang/json/mutation_category_from_json.py msgctxt "memorial_female" msgid "Found the cheese." -msgstr "Encontrei o queijo." +msgstr "" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py @@ -109354,7 +96675,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Indefatigable" -msgstr "Infatigável" +msgstr "" #. ~ Description for Indefatigable #: lang/json/mutation_from_json.py @@ -109367,7 +96688,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Hyperactive" -msgstr "Hiperativo" +msgstr "" #. ~ Description for Hyperactive #: lang/json/mutation_from_json.py @@ -109408,8 +96729,6 @@ msgid "" "You heal faster when sleeping and will even recover a small amount of HP " "when not sleeping." msgstr "" -" Você se recupera mais rápido quando dorme e até recupera uma " -"pequenaquantidade de HP quando não está dormindo." #: lang/json/mutation_from_json.py msgid "Light Eater" @@ -109438,7 +96757,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Practiced Sleeper" -msgstr "Dorminhoco Praticado" +msgstr "" #. ~ Description for Practiced Sleeper #: lang/json/mutation_from_json.py @@ -109446,8 +96765,6 @@ msgid "" "Your body's demanding energy needs mean you can fall asleep just about " "anywhere." msgstr "" -" As exigentes necessidades de energia do seu corpo significam que você " -"podeadormecer em qualquer lugar." #: lang/json/mutation_from_json.py msgid "Pain Resistant" @@ -109468,8 +96785,6 @@ msgid "" "You possess natural night vision, and can see further in the dark than most." " Activate to toggle NV-visible areas on or off." msgstr "" -" Você possui visão noturna natural e pode enxergar mais no escuro do que " -"amaioria. Ative para ativar ou desativar as áreas visíveis ao NV." #: lang/json/mutation_from_json.py msgid "Poison Resistant" @@ -109626,8 +96941,6 @@ msgid "" "You are less likely to throw up from food poisoning, alcohol, etc. If you " "throw up nevertheless, you won't suffer a residual nausea." msgstr "" -" Você é menos propenso a vomitar de intoxicação alimentar, álcool, etc, " -"sevocê vomitar, no entanto, você não vai sofrer uma náusea residual." #: lang/json/mutation_from_json.py msgid "Good Memory" @@ -109640,9 +96953,6 @@ msgid "" "skills will erode slightly slower than usual, and you can remember more " "terrain." msgstr "" -" Você tem uma memória excepcional e acha fácil lembrar das coisas. " -"Suashabilidades irão corroer um pouco mais devagar do que o normal, e você " -"podese lembrar de mais terreno." #: lang/json/mutation_from_json.py msgid "Deft" @@ -109711,14 +97021,10 @@ msgid "" "enjoy food more; delicious food is better for your morale, and you don't " "mind unsavory meals as much. Activate to skip prompt for overeating." msgstr "" -" Você come mais rápido e pode comer e beber mais do que qualquer " -"outrapessoa! Você também gosta mais de comida; comida deliciosa é melhor " -"para oseu moral, e você não se importa muito com refeições desagradáveis. " -"Ativepara pular o aviso para comer demais." #: lang/json/mutation_from_json.py msgid "Bookworm" -msgstr "Bookworm" +msgstr "" #. ~ Description for Bookworm #: lang/json/mutation_from_json.py @@ -109726,8 +97032,6 @@ msgid "" "There's nothing quite like the smell of a good book! Books are more fun (or" " less boring) for you!" msgstr "" -" Não há nada como o cheiro de um bom livro! Os livros são mais divertidos(ou" -" menos chatos) para você!" #: lang/json/mutation_from_json.py msgid "Addiction Resistant" @@ -109829,8 +97133,6 @@ msgid "" "You get to see your exact amount of HP remaining and health, instead of only" " having a vague idea of whether you're in good condition or not." msgstr "" -" Você consegue ver a quantidade exata de HP restante e a saúde, em vez " -"deapenas ter uma vaga idéia de estar em boas condições ou não." #: lang/json/mutation_from_json.py msgid "Inconspicuous" @@ -109860,7 +97162,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Stimulant Psychosis" -msgstr "Psicose Estimulante" +msgstr "" #. ~ Description for Stimulant Psychosis #: lang/json/mutation_from_json.py @@ -109869,9 +97171,6 @@ msgid "" " can tolerate a lot more of them without overdosing, but if you indulge too " "much, you start seeing things..." msgstr "" -" Você tem uma história única com estimulantes (como café ou " -"anfetaminas).Você pode tolerar muito mais deles sem overdose, mas se você se" -" entregardemais, você começa a ver as coisas ..." #. ~ Description for Stylish #: lang/json/mutation_from_json.py @@ -109925,7 +97224,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Topographagnosia" -msgstr "Topographagnosia" +msgstr "" #. ~ Description for Topographagnosia #: lang/json/mutation_from_json.py @@ -109934,8 +97233,6 @@ msgid "" "orienting yourself in your surroundings, severely crippling your sight " "radius on the overmap." msgstr "" -" O dano cerebral focal tornou-o incapaz de reconhecer pontos de referência " -"eorientar-se ao seu redor, prejudicando gravemente seu raio de visão nomapa." #: lang/json/mutation_from_json.py msgid "Cannibal" @@ -109986,8 +97283,6 @@ msgid "" "You have received some martial arts training at a local dojo. You start " "with your choice of Karate, Judo, Aikido, Tai Chi, Taekwondo, or Pankration." msgstr "" -" Você recebeu treinamento de artes marciais em um dojo local. Você começa " -"com sua escolha de Karate, Judô, Aikido, Tai Chi, Taekwondo ou Pankration." #: lang/json/mutation_from_json.py msgid "Self-Defense Classes" @@ -110096,8 +97391,6 @@ msgid "" "You are a sight to behold. NPCs who care about such things will react more " "kindly to you." msgstr "" -" Você é um espetáculo para ser visto. NPCs que se importam com essas " -"coisasreagirão mais gentilmente a você." #: lang/json/mutation_from_json.py msgid "Bad Knees" @@ -110115,7 +97408,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Languorous" -msgstr "Abominável" +msgstr "" #. ~ Description for Languorous #: lang/json/mutation_from_json.py @@ -110136,8 +97429,6 @@ msgid "" "Without glasses, your seeing radius is severely reduced! However, you are " "guaranteed to start with a pair of glasses." msgstr "" -" Sem óculos, seu raio de visão é severamente reduzido! No entanto, você " -"estágarantido para começar com um par de óculos." #: lang/json/mutation_from_json.py msgid "Slow Healer" @@ -110147,11 +97438,10 @@ msgstr "Cura Lenta" #: lang/json/mutation_from_json.py msgid "You heal a little slower than most; sleeping will heal less HP." msgstr "" -" Você se cura um pouco mais devagar que a maioria; dormir vai curar menosHP." #: lang/json/mutation_from_json.py msgid "Poor Healer" -msgstr "Mau Curador" +msgstr "" #. ~ Description for Poor Healer #: lang/json/mutation_from_json.py @@ -110159,12 +97449,10 @@ msgid "" "Your health recovery through sleeping is severely impaired and causes you to" " recover only a third of usual HP." msgstr "" -" Sua recuperação de saúde durante o sono é gravemente prejudicada e faz " -"comque você recupere apenas um terço do HP normal." #: lang/json/mutation_from_json.py msgid "Imperceptive Healer" -msgstr "Curador Imperceptivo" +msgstr "" #. ~ Description for Imperceptive Healer #: lang/json/mutation_from_json.py @@ -110172,7 +97460,6 @@ msgid "" "You recover barely any health through sleeping - it will heal only one tenth" " of usual HP." msgstr "" -" Você recupera a saúde quase sem dormir - ele só cura um décimo do HPnormal." #: lang/json/mutation_from_json.py msgid "Far-Sighted" @@ -110357,7 +97644,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Hates Books" -msgstr "Odeia Livros" +msgstr "" #. ~ Description for Hates Books #: lang/json/mutation_from_json.py @@ -110365,8 +97652,6 @@ msgid "" "Reading is for nerds! Boring books are more boring, and you can't have fun " "by reading books." msgstr "" -" A leitura é para nerds! Livros chatos são mais chatos e você não pode " -"sedivertir lendo livros." #: lang/json/mutation_from_json.py msgid "Hates Fruit" @@ -110406,7 +97691,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Grain Intolerance" -msgstr "Intolerância a Grãos" +msgstr "" #. ~ Description for Grain Intolerance #: lang/json/mutation_from_json.py @@ -110415,13 +97700,10 @@ msgid "" "such as wheat or oats. It's possible for you to eat them, but you will " "suffer morale penalties due to nausea." msgstr "" -" Você tem uma alergia rara que impede você de comer a maioria dos tipos " -"degrãos, como trigo ou aveia. É possível para você comê-los, mas você " -"sofrerápenas de moral devido à náusea." #: lang/json/mutation_from_json.py msgid "Sweet Tooth" -msgstr "Guloso" +msgstr "" #. ~ Description for Sweet Tooth #: lang/json/mutation_from_json.py @@ -110429,12 +97711,10 @@ msgid "" "You have a soft spot for processed foods, and gain a morale bonus from " "eating them." msgstr "" -" Você tem um fraco por alimentos processados e ganha um bônus de moral " -"aocomê-los." #: lang/json/mutation_from_json.py msgid "Sugar-Loving" -msgstr "Sugar-Loving" +msgstr "" #. ~ Description for Sugar-Loving #: lang/json/mutation_from_json.py @@ -110442,7 +97722,6 @@ msgid "" "You *adore* the taste of junk food, and find it preferable to everything " "else!" msgstr "" -" Você * adora * o gosto de junk food, e acha-o preferível a todo o resto!" #: lang/json/mutation_from_json.py msgid "Glass Jaw" @@ -110467,9 +97746,6 @@ msgid "" "You have a hard time remembering things. Your skills will erode slightly " "faster than usual, and you can remember less terrain." msgstr "" -" Você tem dificuldade em lembrar as coisas. Suas habilidades irão corroer " -"umpouco mais rápido do que o normal, e você pode se lembrar de menos " -"terreno." #: lang/json/mutation_from_json.py msgid "Lightweight" @@ -110507,9 +97783,6 @@ msgid "" "On rare occasion, you will go full-auto when you intended to fire a single " "shot. This has no effect when firing semi-automatic firearms." msgstr "" -" Em raras ocasiões, você será totalmente automático quando tiver a " -"intençãode disparar um único tiro. Isso não tem efeito ao disparar armas de " -"fogosemiautomáticas." #: lang/json/mutation_from_json.py msgid "Strong Scent" @@ -110556,7 +97829,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Prey Animal" -msgstr "Presa animal" +msgstr "" #. ~ Description for Prey Animal #: lang/json/mutation_from_json.py @@ -110564,8 +97837,6 @@ msgid "" "Natural animals like dogs and wolves see you as prey, and are liable to " "attack you on sight." msgstr "" -" Animais naturais como cães e lobos vêem você como uma presa e podem atacá- " -"lo imediatamente." #: lang/json/mutation_from_json.py msgid "Slow Reader" @@ -110597,12 +97868,12 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Narcoleptic" -msgstr "Narcoléptico" +msgstr "" #. ~ Description for Narcoleptic #: lang/json/mutation_from_json.py msgid "You randomly fall asleep without any reason." -msgstr "Você aleatoriamente adormece sem qualquer motivo." +msgstr "" #: lang/json/mutation_from_json.py msgid "Clumsy" @@ -110627,9 +97898,6 @@ msgid "" "During moments of great stress or under the effects of stimulants, you may " "find your hands shaking uncontrollably, severely reducing your Dexterity." msgstr "" -" Durante momentos de grande estresse ou sob os efeitos de estimulantes, " -"vocêpode achar suas mãos tremendo incontrolavelmente, reduzindo severamente " -"suaDestreza." #. ~ Description for Hoarder #: lang/json/mutation_from_json.py @@ -110685,7 +97953,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Slow Footed" -msgstr "Lento" +msgstr "" #. ~ Description for Slow Footed #: lang/json/mutation_from_json.py @@ -110716,8 +97984,6 @@ msgid "" "You are badly allergic to wool, and cannot wear any clothing made of the " "substance." msgstr "" -" Você é muito alérgico a lã e não pode usar nenhuma roupa feita " -"dasubstância." #: lang/json/mutation_from_json.py msgid "Truth Teller" @@ -110757,9 +98023,6 @@ msgid "" "easily, and typically use an umbrella and sunglasses when going out in the " "sun." msgstr "" -" Você não tem pigmentação da pele devido a um problema genético. Você " -"queimamuito facilmente, e normalmente usa um guarda-chuva e óculos escuros " -"aosair ao sol." #: lang/json/mutation_from_json.py msgid "Flimsy" @@ -110808,7 +98071,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Genetic Downward Spiral" -msgstr "Espiral Descendente Genética" +msgstr "" #. ~ Description for Genetic Downward Spiral #: lang/json/mutation_from_json.py @@ -110816,9 +98079,6 @@ msgid "" "The events of the Cataclysm have damaged your DNA beyond repair. You mutate" " frequently, and all mutations you receive (from any source) are negative." msgstr "" -" Os eventos do Cataclismo danificaram seu DNA além do reparo. Você " -"sofremutações freqüentemente e todas as mutações que você recebe (de " -"qualquerfonte) são negativas." #: lang/json/mutation_from_json.py msgid "Rough Skin" @@ -110866,8 +98126,6 @@ msgid "" "Your eyes still bulge, yet your pupils look different somehow. Water " "doesn't seem to cause any trouble at all, though." msgstr "" -" Seus olhos ainda estão inchados, mas suas pupilas parecem diferentes " -"dealguma forma. A água não parece causar nenhum problema, no entanto." #: lang/json/mutation_from_json.py msgid "Cephalopod Vision" @@ -110921,9 +98179,6 @@ msgid "" "perform fine tasks such as crafting and reading in darkness. Activate to " "toggle NV-visible areas on or off." msgstr "" -" Você tem uma ótima visão de pouca luz agora, embora isso não permita " -"quevocê execute tarefas finas como criar e ler na escuridão. Ative para " -"ativarou desativar as áreas visíveis ao NV." #: lang/json/mutation_from_json.py msgid "Feline Eyes" @@ -111122,9 +98377,6 @@ msgid "" "allowing you to see as though you were wearing goggles. Slightly decreases " "wet penalties." msgstr "" -" Você tem um conjunto de lentes claras que baixam os olhos enquanto " -"estádebaixo d'água, permitindo que você veja como se estivesse " -"usandoóculos de proteção. Diminui ligeiramente as penalidades molhadas." #: lang/json/mutation_from_json.py msgid "Gills" @@ -111163,8 +98415,6 @@ msgid "" "We have begun adapting local physiology to Mycus physical structure, greatly" " reducing wet effects." msgstr "" -" Nós começamos a adaptar a fisiologia local à estrutura física do Mycus, " -"reduzindo enormemente os efeitos da umidade." #: lang/json/mutation_from_json.py msgid "Mycus Fireproofing" @@ -111178,15 +98428,10 @@ msgid "" "moderate amount, but provides powerful armor across our body, nullifies wet " "effects, and provides complete protection from fire." msgstr "" -" Nós juntamos as densas fibras anfibólas das torres nucleares de Mycus com " -"acarne adaptável e resiliente da fisiologia local. Isso reduz " -"nossavelocidade em uma quantidade moderada, mas fornece uma armadura " -"poderosa emtodo o nosso corpo, anula os efeitos molhados e fornece proteção " -"completacontra o fogo." #: lang/json/mutation_from_json.py msgid "Mycogenesis" -msgstr "Micogênese" +msgstr "" #. ~ Description for Mycogenesis #: lang/json/mutation_from_json.py @@ -111197,12 +98442,6 @@ msgid "" "us into a dormant state, which spreads spores around us as we sleep and " "revitalizes our body much more quickly than regular sleep." msgstr "" -" A fisiologia local foi totalmente incorporada com a das fibras de " -"silicatode Mycus. Além dos benefícios conferidos pelos desenvolvimentos " -"anteriores, podemos nos juntar às fibras Mycus abaixo de nós - dormir em " -"cima de áreasfúngicas nos coloca em um estado dormente, que espalha esporos " -"ao nossoredor enquanto dormimos e revitaliza nosso corpo muito mais " -"rapidamente queo sono regular." #: lang/json/mutation_from_json.py msgid "Scales" @@ -111333,7 +98572,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Gray Fur" -msgstr "Pele cinza" +msgstr "" #. ~ Description for Gray Fur #: lang/json/mutation_from_json.py @@ -111341,8 +98580,6 @@ msgid "" "Dense gray fur has grown to cover your entire body, providing a marginal " "protection against attacks, and considerable protection from cold." msgstr "" -" Pêlo cinzento denso cresceu para cobrir todo o seu corpo, proporcionandouma" -" proteção marginal contra ataques e proteção considerável contra o frio." #: lang/json/mutation_from_json.py msgid "Sleek Fur" @@ -111365,8 +98602,6 @@ msgid "" "Your fur has grown out significantly around your cheeks and neck. It " "provides minor protection against attacks." msgstr "" -" Sua pele cresceu significativamente em torno de suas bochechas e pescoço. " -"Ele fornece menor proteção contra ataques." #: lang/json/mutation_from_json.py msgid "Chitinous Skin" @@ -111394,9 +98629,6 @@ msgid "" " considerable physical protection, but reduces your Dexterity by 1. " "Somewhat reduces wet effects." msgstr "" -" Você desenvolveu um exoesqueleto de quitina, muito parecido com um inseto. " -"Ele fornece considerável proteção física, mas reduz sua Destreza em 1.Reduz " -"um pouco os efeitos molhados." #: lang/json/mutation_from_json.py msgid "Chitinous Plate" @@ -111409,10 +98641,6 @@ msgid "" "excellent physical protection, but reduces your Dexterity by 1 and encumbers" " all body parts but your eyes and mouth. Greatly reduces wet effects." msgstr "" -" Você desenvolveu um exoesqueleto de quitina feito de placas grossas eduras." -" Ele fornece excelente proteção física, mas reduz sua Destreza em 1 " -"esobrecarrega todas as partes do corpo, mas seus olhos e boca. Reduz muitoos" -" efeitos molhados." #: lang/json/mutation_from_json.py msgid "Hairy Chitin" @@ -111465,10 +98693,6 @@ msgid "" "attack you, your assailant is quite likely to get fine, bristly chitin in an" " irritating spot; it doesn't carry your venom but it will be distracting." msgstr "" -" Quantidades significativas de seus cabelos se soltaram. Se alguma " -"criaturatentar atacá-lo, é muito provável que seu agressor fique em boa " -"posição, irritadamente, em um local irritante; não carrega seu veneno, mas " -"distrai." #: lang/json/mutation_from_json.py msgid "Spines" @@ -111533,9 +98757,6 @@ msgid "" "resistance to cutting damage and minor protection from fire. Greatly " "reduces wet effects." msgstr "" -" Sua pele é coberta por uma casca clara, como a de uma árvore. Isso " -"forneceresistência ao dano de corte e menor proteção contra incêndio. Reduz " -"muitoos efeitos molhados." #: lang/json/mutation_from_json.py msgid "Thorns" @@ -111648,11 +98869,6 @@ msgid "" "guidance determines that it is safe to germinate. Rapid development taxes " "local nutrient reserves but ensures swift and effective growth." msgstr "" -" Organismos locais parecem considerar a dispersão de esporos abertos como " -"umperigo e atacam o Mycus. Assim, nossos sacos de esporos locais " -"permaneceminativos, até que a orientação local determine que é seguro " -"germinar. Odesenvolvimento rápido tributa as reservas locais de nutrientes, " -"masgarante um crescimento rápido e eficaz." #: lang/json/mutation_from_json.py msgid "Mycus Blossoms" @@ -111675,15 +98891,10 @@ msgid "" "guidance determines that it is safe to germinate. Rapid development taxes " "local nutrient reserves but ensures swift and effective growth." msgstr "" -" Organismos locais parecem considerar a dispersão de esporos abertos como " -"umperigo e atacam o Mycus. Consequentemente, nossas flores locais " -"permaneceminativas, até que a orientação local determine que é seguro " -"germinar. Odesenvolvimento rápido tributa as reservas locais de nutrientes, " -"masgarante um crescimento rápido e eficaz." #: lang/json/mutation_from_json.py msgid "Mycus Provenance" -msgstr "Prova de Mycus" +msgstr "" #. ~ Description for Mycus Provenance #: lang/json/mutation_from_json.py @@ -111692,9 +98903,6 @@ msgid "" "Acting as one, they germinate together to cement rapid growth across a large" " area according to local guidance. The Mycus must grow." msgstr "" -" Sacos e flores de esporos locais fundiram-se numa única forma simbiótica. " -"Agindo como um, eles germinam juntos para cimentar o crescimento rápido " -"emuma grande área de acordo com a orientação local. O Mycus deve crescer." #: lang/json/mutation_from_json.py msgid "Long Fingernails" @@ -111783,9 +98991,6 @@ msgid "" "you find that this does not affect your dexterity, but allows for a deadly " "unarmed attack. They also prevent wearing gloves." msgstr "" -" Seus dedos indicadores se transformaram em enormes garras. Depois de " -"umpouco de prática, você descobre que isso não afeta sua destreza, " -"maspermite um ataque mortal desarmado. Eles também evitam usar luvas." #: lang/json/mutation_from_json.py msgid "Radiogenic" @@ -111892,8 +99097,6 @@ msgid "" "Your body produces low-level pheromones which put mammals at ease. They " "will be less likely to attack or flee from you." msgstr "" -" Seu corpo produz feromônios de baixo nível que deixam os mamíferos " -"àvontade. Eles serão menos propensos a atacar ou fugir de você." #: lang/json/mutation_from_json.py msgid "Disease Immune" @@ -111919,9 +99122,6 @@ msgid "" "an increased chance for bad wounds and infections to heal on their own, and " "only suffer reduced penalties from them." msgstr "" -" Seu sistema imunológico é particularmente bom em resistir a infecções. " -"Vocêtem uma chance maior de ferimentos e infecções ruins para curar por " -"contaprópria, e só sofrer penalidades reduzidas deles." #: lang/json/mutation_from_json.py msgid "Infection Immune" @@ -111948,10 +99148,6 @@ msgid "" "system, and we may traverse Mycus biospheres easily, as native bioforms " "shift shape to accommodate us." msgstr "" -" Nós sincronizamos nossa fisiologia local com a do Mycus. Quaisquer " -"esporosque possamos encontrar não tentarão germinar dentro do sistema local," -" e podemos atravessar facilmente as biosferas de Mycus, pois as " -"bioformasnativas mudam de forma para nos acomodar." #: lang/json/mutation_from_json.py msgid "Parasite Immune" @@ -112053,8 +99249,6 @@ msgid "" "Your eyes are compound, like those of an insect. This increases your " "Perception by 2 so long as you aren't wearing eyewear." msgstr "" -" Seus olhos são compostos, como os de um inseto. Isso aumenta sua " -"Percepçãoem 2, desde que você não esteja usando óculos." #: lang/json/mutation_from_json.py msgid "Padded Feet" @@ -112080,9 +99274,6 @@ msgid "" " toes. Fortunately, they don't get in the way of your movement. " "Unfortunately, they do prevent wearing footgear." msgstr "" -" Você cresceu garras grandes, curvadas e perversamente afiadas no lugar " -"deseus dedos grandes. Felizmente, eles não atrapalham seu movimento. " -"Infelizmente, eles impedem o uso de calçados." #: lang/json/mutation_from_json.py #, no-python-format @@ -112105,10 +99296,6 @@ msgid "" "more damage, provides natural armor, and removes the need to wear shoes; " "however, you cannot wear shoes of any kind. Reduces wet effects." msgstr "" -" Seus pés se fundiram em cascos. Isso permite que os ataques de chute " -"causemmuito mais dano, forneçam armadura natural e eliminem a necessidade de" -" usarsapatos; no entanto, você não pode usar sapatos de qualquer tipo. Reduz" -" osefeitos molhados." #: lang/json/mutation_from_json.py #, no-python-format @@ -112213,10 +99400,6 @@ msgid "" "the close proximity of Mycus core towers, and in forested areas that the " "Mycus has grown into." msgstr "" -" Nós simplificamos nossas necessidades nutricionais. Contamos com o " -"Mycuspara o sustento, pois ele depende de nós. Podemos localizar fontes " -"desustento na proximidade das torres nucleares do Mycus e em áreas " -"florestaisnas quais o Mycus cresceu." #: lang/json/mutation_from_json.py msgid "Ruminant" @@ -112229,9 +99412,6 @@ msgid "" "plant material. You can eat underbrush and shrubs by activating this, " "standing over your target, and pressing E." msgstr "" -" Seu sistema digestivo é capaz de digerir celulose e outros " -"materiaisvegetais ásperos. Você pode comer arbustos e arbustos ativando " -"isso, posicionando-se sobre o alvo e pressionando E." #: lang/json/mutation_from_json.py msgid "Grazer" @@ -112244,9 +99424,6 @@ msgid "" "grass as well as underbrush and shrubs. Eat either one by activating this, " "standing over your target, and pressing E." msgstr "" -" Você está acostumado a comer as plantas diretamente, e pode obter " -"nutriçãoda grama, bem como vegetação rasteira e arbustos. Coma qualquer um " -"ativandoisso, permanecendo sobre seu alvo e pressionando E." #: lang/json/mutation_from_json.py msgid "Intestinal Fortitude" @@ -112321,10 +99498,6 @@ msgid "" "useful tissue. Excess nutrition will convert to HP, rather than being " "wasted. Activate to skip prompt for overeating." msgstr "" -" Você metaboliza os nutrientes tão rapidamente que você pode converter " -"osalimentos diretamente em tecido útil. O excesso de nutrição será " -"convertidoem HP, em vez de ser desperdiçado. Ative para pular o aviso para " -"comerdemais." #: lang/json/mutation_from_json.py msgid "Horns" @@ -112359,9 +99532,6 @@ msgid "" "You have a pair of large curled horns, like those of a ram. They allow you " "to make a strong bashing headbutt attack, but prevent wearing any headwear." msgstr "" -" Você tem um par de grandes chifres enrolados, como os de um carneiro. " -"Elespermitem que você faça um forte ataque de headbutt, mas evite usar " -"qualquerheadwear." #: lang/json/mutation_from_json.py #, no-python-format @@ -112384,9 +99554,6 @@ msgid "" "allow you to make a strong piercing headbutt attack, but prevent wearing " "headwear that is not made of fabric." msgstr "" -" Você tem um par de longos chifres pontudos, como os de um antílope. " -"Elespermitem que você faça um ataque de headbutt forte piercing, mas evitar " -"ouso de headwear que não é feito de tecido." #: lang/json/mutation_from_json.py #, no-python-format @@ -112409,9 +99576,6 @@ msgid "" "make a weak headbutt attack, but prevent wearing headwear that is not made " "of fabric." msgstr "" -" Você tem um enorme rack de chifres, como os de um alce. Eles permitem " -"quevocê faça um ataque de cabeça fraco, mas evite usar headwear que não " -"éfeito de tecido." #: lang/json/mutation_from_json.py #, no-python-format @@ -112434,9 +99598,6 @@ msgid "" "monsters up to a few tiles away, even if you can't see or hear them, but " "prevent wearing headwear that is not made of fabric." msgstr "" -" Você tem um par de antenas. Eles permitem que você detecte a presença " -"demonstros a poucos metros de distância, mesmo que você não possa vê-los " -"ououvi-los, mas evite usar roupas de cabeça que não sejam feitas de tecido." #: lang/json/mutation_from_json.py msgid "Road-Runner" @@ -112471,9 +99632,6 @@ msgid "" "You have a fin-like tail. It allows you to swim more quickly, but prevents " "wearing non-fabric pants. Slightly increases wet benefits." msgstr "" -" Você tem uma cauda de barbatana. Ele permite que você nade maisrapidamente," -" mas evita usar calças sem tecido. Aumenta ligeiramente osbenefícios do " -"molhado." #: lang/json/mutation_from_json.py msgid "Long Tail" @@ -112486,13 +99644,10 @@ msgid "" "balance, making your ability to dodge higher, but prevents wearing non-" "fabric pants." msgstr "" -" Você tem uma cauda longa e graciosa, como a de um gato grande. Melhora oseu" -" equilíbrio, tornando a sua capacidade de se esquivar mais alto, masevita o " -"uso de calças sem tecido." #: lang/json/mutation_from_json.py msgid "Cattle Tail" -msgstr "Cauda de Gado" +msgstr "" #. ~ Description for Cattle Tail #: lang/json/mutation_from_json.py @@ -112501,13 +99656,10 @@ msgid "" "instinctively swatting away flies with it, though it's not as effective at " "balancing you as you'd like. Prevents wearing non-fabric pants." msgstr "" -" Você tem uma cauda longa com um tufo no final. Você se vê " -"instintivamentematando moscas com ele, embora não seja tão eficaz em " -"equilibrá-lo quantoquiser. Evita o uso de calças sem tecido." #: lang/json/mutation_from_json.py msgid "Rodent Tail" -msgstr "Cauda de roedor" +msgstr "" #. ~ Description for Rodent Tail #: lang/json/mutation_from_json.py @@ -112515,13 +99667,10 @@ msgid "" "You have a long but hairless tail. It's a pretty effective balancing aid, " "but does look, uh, ratty. Prevents wearing non-fabric pants." msgstr "" -" Você tem uma cauda longa, mas sem pêlos. É uma ajuda de " -"balanceamentobastante eficaz, mas parece um pouco chata. Evita o uso de " -"calças semtecido." #: lang/json/mutation_from_json.py msgid "Thick Tail" -msgstr "Cauda Grossa" +msgstr "" #. ~ Description for Thick Tail #: lang/json/mutation_from_json.py @@ -112529,9 +99678,6 @@ msgid "" "You have a long, thick, lizardlike tail. It helps you balance a bit but " "also makes a serviceable whip. Prevents wearing non-fabric pants." msgstr "" -" Você tem uma cauda longa, grossa, semelhante a um lagarto. Ele ajuda você " -"aequilibrar um pouco, mas também faz um chicote reparável. Evita o uso " -"decalças sem tecido." #: lang/json/mutation_from_json.py #, no-python-format @@ -112545,7 +99691,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Raptor Tail" -msgstr "Cauda de Raptor" +msgstr "" #. ~ Description for Raptor Tail #: lang/json/mutation_from_json.py @@ -112554,13 +99700,10 @@ msgid "" "it in combat, but it significantly improves your balance. Prevents wearing " "non-fabric pants." msgstr "" -" Você tem uma cauda longa e semi-rígida semelhante a um lagarto. Você não " -"pode efetivamente atacar em combate, mas isso melhora significativamenteseu " -"equilíbrio. Evita o uso de calças sem tecido." #: lang/json/mutation_from_json.py msgid "Fluffy Tail" -msgstr "Cauda felpuda" +msgstr "" #. ~ Description for Fluffy Tail #: lang/json/mutation_from_json.py @@ -112569,13 +99712,10 @@ msgid "" "making your ability to dodge much higher. Prevents wearing non-fabric " "pants." msgstr "" -" Você tem uma cauda longa e peluda. Isso melhora muito o seu equilíbrio, " -"fazendo com que sua capacidade de se esquivar seja muito maior. Evita o " -"usode calças sem tecido." #: lang/json/mutation_from_json.py msgid "Spiked Tail" -msgstr "Cauda cravada" +msgstr "" #. ~ Description for Spiked Tail #: lang/json/mutation_from_json.py @@ -112597,7 +99737,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Club Tail" -msgstr "Cauda do Clube" +msgstr "" #. ~ Description for Club Tail #: lang/json/mutation_from_json.py @@ -112606,9 +99746,6 @@ msgid "" "your balance at all, but allows for a powerful bashing attack. Prevents " "wearing non-fabric pants." msgstr "" -" Você tem uma cauda longa que termina em um clube pesado e ósseo. Isso " -"nãomelhora seu equilíbrio, mas permite um poderoso ataque de contusão. Evita" -" ouso de calças sem tecido." #: lang/json/mutation_from_json.py #, no-python-format @@ -112622,7 +99759,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Hibernation" -msgstr "Hibernação" +msgstr "" #. ~ Description for Hibernation #: lang/json/mutation_from_json.py @@ -112630,12 +99767,10 @@ msgid "" "You've developed the ability to stockpile calories and then sleep for " "extended periods of time." msgstr "" -" Você desenvolveu a capacidade de armazenar calorias e depois dormir " -"porlongos períodos de tempo." #: lang/json/mutation_from_json.py msgid "Resilient" -msgstr "Resiliente" +msgstr "" #. ~ Description for Resilient #: lang/json/mutation_from_json.py @@ -112647,7 +99782,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Solidly Built" -msgstr "Solidamente construído" +msgstr "" #. ~ Description for Solidly Built #: lang/json/mutation_from_json.py @@ -112659,7 +99794,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "TAAANK" -msgstr "TOUGH" +msgstr "" #. ~ Description for TAAANK #: lang/json/mutation_from_json.py @@ -112671,54 +99806,53 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Pain Recovery" -msgstr "Recuperação de dor" +msgstr "" #. ~ Description for Pain Recovery #: lang/json/mutation_from_json.py msgid "You recover from pain slightly faster than normal." -msgstr "Você se recupera da dor um pouco mais rápido que o normal." +msgstr "" #: lang/json/mutation_from_json.py msgid "Quick Pain Recovery" -msgstr "Recuperação Rápida de Dor" +msgstr "" #. ~ Description for Quick Pain Recovery #: lang/json/mutation_from_json.py msgid "You recover from pain faster than normal." -msgstr "Você se recupera da dor mais rápido que o normal." +msgstr "" #: lang/json/mutation_from_json.py msgid "Very Quick Pain Recovery" -msgstr "Recuperação de dor muito rápida" +msgstr "" #. ~ Description for Very Quick Pain Recovery #: lang/json/mutation_from_json.py msgid "You recover from pain much faster than normal." -msgstr "Você se recupera da dor muito mais rápido que o normal." +msgstr "" #: lang/json/mutation_from_json.py msgid "Pain Junkie" -msgstr "Viciado em dor" +msgstr "" #. ~ Description for Pain Junkie #: lang/json/mutation_from_json.py msgid "" "You've developed a serious appetite for pain, and take pride in your scars." msgstr "" -" Você desenvolveu um apetite sério por dor e se orgulha de suas cicatrizes." #: lang/json/mutation_from_json.py msgid "Cenobite" -msgstr "Cenobita" +msgstr "" #. ~ Description for Cenobite #: lang/json/mutation_from_json.py msgid "You positively adore pain, in all its varied forms." -msgstr "Você adora positivamente a dor, em todas as suas formas variadas." +msgstr "" #: lang/json/mutation_from_json.py msgid "Deadened" -msgstr "Deadened" +msgstr "" #. ~ Description for Deadened #: lang/json/mutation_from_json.py @@ -112726,12 +99860,10 @@ msgid "" "Nothing hurts any more. Those bites tickle and the wounds itch a bit, but " "that's it." msgstr "" -" Nada dói mais. Essas mordidas fazem cócegas e as feridas coçam um pouco, " -"mas é isso." #: lang/json/mutation_from_json.py msgid "Pain Sensitive" -msgstr "Dor sensível" +msgstr "" #. ~ Description for Pain Sensitive #: lang/json/mutation_from_json.py @@ -112743,7 +99875,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Hyperalgesia" -msgstr "Hiperalgesia" +msgstr "" #. ~ Description for Hyperalgesia #: lang/json/mutation_from_json.py @@ -112755,7 +99887,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Extreme Hyperalgesia" -msgstr "Hiperalgesia extrema" +msgstr "" #. ~ Description for Extreme Hyperalgesia #: lang/json/mutation_from_json.py @@ -112763,12 +99895,10 @@ msgid "" "Your body reacts cripplingly to any source of pain. Pain dealt to you is " "doubled." msgstr "" -" Seu corpo reage mutilamente a qualquer fonte de dor. A dor tratada paravocê" -" é duplicada." #: lang/json/mutation_from_json.py msgid "Culler" -msgstr "Colher" +msgstr "" #. ~ Description for Culler #: lang/json/mutation_from_json.py @@ -112778,15 +99908,11 @@ msgid "" "less bothered by the deaths of others: their own weakness invited these " "fates upon them." msgstr "" -" Você teve uma revelação: matando as criaturas mais fracas, que só " -"morreriamde qualquer maneira, você preserva recursos para aqueles mais " -"capazes desobreviver. Você está menos incomodado com a morte dos outros: sua" -" própriafraqueza convidou esses destinos para eles." #: lang/json/mutation_from_json.py lang/json/mutation_from_json.py #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Hunter" -msgstr "Caçador" +msgstr "" #. ~ Description for Hunter #: lang/json/mutation_from_json.py @@ -112796,14 +99922,10 @@ msgid "" "Additionally, combat skills, which you use to hunt, are easier to learn and " "maintain." msgstr "" -" Seu cérebro tem muito mais em comum com um animal predatório do que com " -"umhumano, facilitando o controle de reações equivocadas à morte de sua " -"presa. Além disso, as habilidades de combate, que você usa para caçar, são " -"maisfáceis de aprender e manter." #: lang/json/mutation_from_json.py msgid "Predator" -msgstr "Predador" +msgstr "" #. ~ Description for Predator #: lang/json/mutation_from_json.py @@ -112812,13 +99934,10 @@ msgid "" "with them. Combat skills are easy to learn and maintain, but your critical " "thinking, so characteristic to these creatures, suffers." msgstr "" -" Você se considera algo diferente do humano e não tem mais empatia com eles." -" As habilidades de combate são fáceis de aprender e manter, mas " -"seupensamento crítico, tão característico para essas criaturas, sofre." #: lang/json/mutation_from_json.py msgid "Apex Predator" -msgstr "Ápice predador" +msgstr "" #. ~ Description for Apex Predator #: lang/json/mutation_from_json.py @@ -112827,22 +99946,19 @@ msgid "" "top of the food chain. You can effortlessly master and maintain combat " "skills, but your critical thinking has atrophied further." msgstr "" -" Sua mente e cérebro se adaptaram ao seu novo lugar no mundo: como um emcima" -" da cadeia alimentar. Você pode facilmente dominar e manter habilidadesde " -"combate, mas seu pensamento crítico se atrofiou ainda mais." #: lang/json/mutation_from_json.py msgid "Sapiovore" -msgstr "Sapiovore" +msgstr "" #. ~ Description for Sapiovore #: lang/json/mutation_from_json.py msgid "The hairless apes make as good eating as any other meat." -msgstr "Os macacos pelados são tão bons quanto qualquer outra carne." +msgstr "" #: lang/json/mutation_from_json.py msgid "Mycus Defender" -msgstr "Mycus Defender" +msgstr "" #. ~ Description for Mycus Defender #: lang/json/mutation_from_json.py @@ -112852,14 +99968,10 @@ msgid "" " - our fibers will grow strong and resilient when such threats present " "themselves to us." msgstr "" -" De tempos em tempos, o Mycus requer proteção do não-Mycus que, por " -"qualquermotivo, deseje que ele adoeça. Nós nos adaptamos para melhor " -"realizar essatarefa - nossas fibras crescerão fortes e resilientes quando " -"tais ameaçasse apresentarem a nós." #: lang/json/mutation_from_json.py msgid "Bird Wings" -msgstr "Asas de pássaro" +msgstr "" #. ~ Description for Bird Wings #: lang/json/mutation_from_json.py @@ -112868,13 +99980,10 @@ msgid "" "able to fly, but you can use them to slow your descent during a fall, and " "will not take falling damage under any circumstances." msgstr "" -" Você tem um par de grandes asas emplumadas. Seu corpo é pesado demais " -"paraser capaz de voar, mas você pode usá-los para desacelerar sua " -"descidadurante uma queda e não sofrerá danos em nenhuma circunstância." #: lang/json/mutation_from_json.py msgid "Insect Wings" -msgstr "Asas de insetos" +msgstr "" #. ~ Description for Insect Wings #: lang/json/mutation_from_json.py @@ -112883,13 +99992,10 @@ msgid "" "you, but are powerful enough to greatly speed your movement, with some " "effort and noise." msgstr "" -" Você tem um par de asas grandes e translúcidas. Eles são pequenos " -"demaispara levantá-lo, mas são poderosos o suficiente para acelerar muito " -"seumovimento, com algum esforço e ruído." #: lang/json/mutation_from_json.py msgid "Mouth Tentacles" -msgstr "Boca Tentáculos" +msgstr "" #. ~ Description for Mouth Tentacles #: lang/json/mutation_from_json.py @@ -112897,12 +100003,10 @@ msgid "" "A set of tentacles surrounds your mouth. They allow you to eat twice as " "fast. Slightly decreases wet penalties." msgstr "" -" Um conjunto de tentáculos envolve sua boca. Eles permitem que você comaduas" -" vezes mais rápido. Diminui ligeiramente as penalidades molhadas." #: lang/json/mutation_from_json.py msgid "Mandibles" -msgstr "Mandibles" +msgstr "" #. ~ Description for Mandibles #: lang/json/mutation_from_json.py @@ -112911,10 +100015,6 @@ msgid "" " to eat faster and provide a slicing unarmed attack, but prevent wearing " "mouthwear. Slightly reduces wet effects." msgstr "" -" Um conjunto de mandíbulas semelhantes a insetos cresceu em torno de " -"suaboca. Eles permitem que você coma mais rápido e forneça um ataque " -"desarmadode corte, mas evite usar roupas de banho. Um pouco reduz os " -"efeitosmolhados." #: lang/json/mutation_from_json.py #, no-python-format @@ -112928,7 +100028,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Folding Fangs" -msgstr "Presas dobráveis" +msgstr "" #. ~ Description for Folding Fangs #: lang/json/mutation_from_json.py @@ -112936,12 +100036,10 @@ msgid "" "Your mandibles have developed extensible fangs, allowing you to bite quickly" " or ensure your venom goes home, as desired." msgstr "" -" Suas mandíbulas desenvolveram presas extensíveis, permitindo que você " -"mordarapidamente ou garanta que seu veneno vá para casa, como desejado." #: lang/json/mutation_from_json.py msgid "Canine Ears" -msgstr "Orelhas Caninas" +msgstr "" #. ~ Description for Canine Ears #: lang/json/mutation_from_json.py @@ -112949,13 +100047,10 @@ msgid "" "Your ears have extended into long, pointed ones, like those of a canine. " "They enhance your hearing, allowing you to hear at greater distances." msgstr "" -" Suas orelhas se estenderam em pontas longas e pontudas, como as de " -"umcanino. Eles aprimoram sua audição, permitindo que você ouça a " -"distânciasmaiores." #: lang/json/mutation_from_json.py msgid "Lupine Ears" -msgstr "Orelhas de tremoço" +msgstr "" #. ~ Description for Lupine Ears #: lang/json/mutation_from_json.py @@ -112963,12 +100058,10 @@ msgid "" "Your hearing has evolved further and is now on par with wolves. You can " "hear things significantly farther away." msgstr "" -" Sua audição evoluiu ainda mais e agora está no mesmo nível dos lobos. " -"Vocêpode ouvir coisas significativamente mais distantes." #: lang/json/mutation_from_json.py msgid "Feline Ears" -msgstr "Orelhas Felinas" +msgstr "" #. ~ Description for Feline Ears #: lang/json/mutation_from_json.py @@ -112976,12 +100069,10 @@ msgid "" "Your ears have extended into long, pointed, velvety ones, like those of a " "feline. You find it easier to tune in on sounds from afar." msgstr "" -" Seus ouvidos se estenderam em longos, pontudos e aveludados, como os de " -"umfelino. Você acha mais fácil sintonizar sons de longe." #: lang/json/mutation_from_json.py msgid "Ursine Ears" -msgstr "Orelhas Ursinas" +msgstr "" #. ~ Description for Ursine Ears #: lang/json/mutation_from_json.py @@ -112989,12 +100080,10 @@ msgid "" "Your ears have grown longer and rounder, much like those of a bear. You can" " hear things a little farther away." msgstr "" -" Seus ouvidos cresceram mais e mais, muito parecidos com os de um urso. " -"Vocêpode ouvir as coisas um pouco mais longe." #: lang/json/mutation_from_json.py msgid "Pointed Ears" -msgstr "Orelhas pontudas" +msgstr "" #. ~ Description for Pointed Ears #: lang/json/mutation_from_json.py @@ -113003,13 +100092,10 @@ msgid "" "get in the way of your headgear, much. Unfortunately, they also don't seem " "to help your hearing any." msgstr "" -" Seus lóbulos superiores cresceram notavelmente mais altos. Felizmente, " -"elesnão atrapalham muito o seu capacete. Infelizmente, eles também não " -"parecemajudar a sua audição." #: lang/json/mutation_from_json.py msgid "Rodent Ears" -msgstr "Orelhas de roedores" +msgstr "" #. ~ Description for Rodent Ears #: lang/json/mutation_from_json.py @@ -113017,12 +100103,10 @@ msgid "" "Your ears are huge, round, and gray! They're rather fascinating, and help " "you hear from a much greater distance." msgstr "" -" Seus ouvidos são enormes, redondos e cinzentos! Eles são " -"bastantefascinantes e ajudam você a ouvir de uma distância muito maior." #: lang/json/mutation_from_json.py msgid "Web Walker" -msgstr "Web Walker" +msgstr "" #. ~ Description for Web Walker #: lang/json/mutation_from_json.py @@ -113030,12 +100114,10 @@ msgid "" "Your body excretes very fine amounts of a chemical which prevents you from " "sticking to webs. Walking through webs does not affect you at all." msgstr "" -" Seu corpo excreta quantidades muito boas de um produto químico que " -"impedeque você fique grudado nas teias. Andar pelas teias não afeta em nada." #: lang/json/mutation_from_json.py msgid "Web Spinner" -msgstr "Web Spinner" +msgstr "" #. ~ Description for Web Spinner #: lang/json/mutation_from_json.py @@ -113043,12 +100125,10 @@ msgid "" "Your body produces and anchors webbing. Too bad you can't seem to control " "the process. There is a chance that you will leave webs in your wake." msgstr "" -" Seu corpo produz e ancora correias. Pena que você não consegue controlar " -"oprocesso. Há uma chance de você deixar as redes em seu caminho." #: lang/json/mutation_from_json.py msgid "Web Weaver" -msgstr "Tecelão" +msgstr "" #. ~ Description for Web Weaver #: lang/json/mutation_from_json.py @@ -113056,12 +100136,10 @@ msgid "" "You've developed the necessary anatomy and techniques to control your web-" "generation. Activate this to start or stop weaving webs." msgstr "" -" Você desenvolveu a anatomia e as técnicas necessárias para controlar " -"suageração na web. Ative isso para iniciar ou parar de tecer teias." #: lang/json/mutation_from_json.py msgid "Web Diver" -msgstr "Web Diver" +msgstr "" #. ~ Description for Web Diver #: lang/json/mutation_from_json.py @@ -113069,28 +100147,24 @@ msgid "" "Your webbing is easily strong enough to support your weight. You'll use it " "to descend down any sheer drops you may encounter." msgstr "" -" Seu cinto é facilmente forte o suficiente para suportar seu peso. Você " -"vaiusá-lo para descer qualquer queda que você possa encontrar." #: lang/json/mutation_from_json.py msgid "Rope Webs" -msgstr "Teias de corda" +msgstr "" #. ~ Description for Rope Webs #: lang/json/mutation_from_json.py msgid "" "With spinnerets like THESE, who needs rope?! Activate to produce rope." msgstr "" -" Com fiandeiras como o THESE, quem precisa de corda ?! Ative para " -"produzircorda." #: lang/json/mutation_from_json.py msgid "You spin a rope from your silk." -msgstr "Você gira uma corda da sua seda." +msgstr "" #: lang/json/mutation_from_json.py msgid "Whiskers" -msgstr "Bigodes" +msgstr "" #. ~ Description for Whiskers #: lang/json/mutation_from_json.py @@ -113099,13 +100173,10 @@ msgid "" "you more aware of vibrations in the air, and improve your ability to dodge " "very slightly." msgstr "" -" Você tem um belo conjunto de bigodes felinos em volta da sua boca. Isso " -"ostorna mais conscientes das vibrações no ar e melhoram sua capacidade " -"dedesviar-se ligeiramente." #: lang/json/mutation_from_json.py msgid "Wiry Whiskers" -msgstr "Bigodes grossos" +msgstr "" #. ~ Description for Wiry Whiskers #: lang/json/mutation_from_json.py @@ -113114,13 +100185,10 @@ msgid "" "make you more aware of vibrations in the air, and improve your ability to " "dodge slightly." msgstr "" -" Você tem um conjunto de bigodes em forma de roedor em torno de sua boca. " -"Isso o torna mais consciente das vibrações no ar e melhora sua capacidadede " -"se esquivar um pouco." #: lang/json/mutation_from_json.py msgid "Fat Deposits" -msgstr "Depósitos de gordura" +msgstr "" #. ~ Description for Fat Deposits #: lang/json/mutation_from_json.py @@ -113128,12 +100196,10 @@ msgid "" "You've put on some additional weight around your body. It slows you down a " "little, but helps your swimming and warmth." msgstr "" -" Você colocou algum peso adicional em torno do seu corpo. Isso te atrasa " -"umpouco, mas ajuda a sua natação e calor." #: lang/json/mutation_from_json.py msgid "Inconveniently Large" -msgstr "Inconvenientemente Grande" +msgstr "" #. ~ Description for Inconveniently Large #: lang/json/mutation_from_json.py @@ -113142,23 +100208,19 @@ msgid "" "mass (Strength +2), but you find it throws off your balance and you get in " "your own way (+10 torso and arm encumbrance)." msgstr "" -" Você cresceu visivelmente mais alto e mais amplo. Muito do que é útil " -"massamuscular (Força +2), mas você acha que joga fora de seu equilíbrio e " -"vocêfica no seu próprio caminho (+ 10 tronco e braço oneração)." #: lang/json/mutation_from_json.py msgid "Large" -msgstr "ampla" +msgstr "" #. ~ Description for Large #: lang/json/mutation_from_json.py msgid "You carry your rugged body with the dignity you deserve. Strength +2." msgstr "" -" Você carrega seu corpo robusto com a dignidade que você merece. Força +2." #: lang/json/mutation_from_json.py msgid "Freakishly Huge" -msgstr "Freakishly Enorme" +msgstr "" #. ~ Description for Freakishly Huge #: lang/json/mutation_from_json.py @@ -113167,13 +100229,10 @@ msgid "" " into human-sized clothing or vehicles. Much of it is powerful muscle mass " "(Strength +4), but it's a real pain to haul around." msgstr "" -" Você cresceu ainda mais, a ponto de não se encaixar em roupas ou veículosde" -" tamanho humano. Muito do que é massa muscular poderosa (Força +4), mas éuma" -" dor real para transportar ao redor." #: lang/json/mutation_from_json.py msgid "Huge" -msgstr "Imenso" +msgstr "" #. ~ Description for Huge #: lang/json/mutation_from_json.py @@ -113181,154 +100240,148 @@ msgid "" "Your cardiovascular system has caught up with your muscular physique, so who" " needs pathetic human cars? Strength +4." msgstr "" -" Seu sistema cardiovascular alcançou seu físico muscular, então quem " -"precisade carros humanos patéticos? Força +4." #: lang/json/mutation_from_json.py msgid "Strong" -msgstr "Forte" +msgstr "" #. ~ Description for Strong #: lang/json/mutation_from_json.py msgid "Your muscles are a little stronger. Strength + 1" -msgstr "Seus músculos são um pouco mais fortes. Força + 1" +msgstr "" #: lang/json/mutation_from_json.py msgid "Very Strong" -msgstr "Muito forte" +msgstr "" #. ~ Description for Very Strong #: lang/json/mutation_from_json.py msgid "Your muscles are stronger. Strength + 2" -msgstr "Seus músculos são mais fortes. Força + 2" +msgstr "" #: lang/json/mutation_from_json.py msgid "Extremely Strong" -msgstr "Extremamente forte" +msgstr "" #. ~ Description for Extremely Strong #: lang/json/mutation_from_json.py msgid "Your muscles are much stronger. Strength + 4" -msgstr "Seus músculos são muito mais fortes. Força + 4" +msgstr "" #: lang/json/mutation_from_json.py msgid "Insanely Strong" -msgstr "Insanamente forte" +msgstr "" #. ~ Description for Insanely Strong #: lang/json/mutation_from_json.py msgid "Your muscles are noticeably bulging. Strength + 7" -msgstr "Seus músculos estão visivelmente abaulados. Força + 7" +msgstr "" #: lang/json/mutation_from_json.py msgid "Prime Strength" -msgstr "Força principal" +msgstr "" #. ~ Description for Prime Strength #: lang/json/mutation_from_json.py msgid "Your muscles are perfectly developed." -msgstr "Seus músculos estão perfeitamente desenvolvidos." +msgstr "" #: lang/json/mutation_from_json.py msgid "Dextrous" -msgstr "Dextrous" +msgstr "" #. ~ Description for Dextrous #: lang/json/mutation_from_json.py msgid "You are a little nimbler. Dexterity + 1" -msgstr "Você é um pouco mais ágil. Destreza + 1" +msgstr "" #: lang/json/mutation_from_json.py msgid "Very Dextrous" -msgstr "Muito Dextrous" +msgstr "" #. ~ Description for Very Dextrous #: lang/json/mutation_from_json.py msgid "You are nimbler. Dexterity + 2" -msgstr "Você é mais ágil. Destreza + 2" +msgstr "" #: lang/json/mutation_from_json.py msgid "Extremely Dextrous" -msgstr "Extremamente Dextrous" +msgstr "" #. ~ Description for Extremely Dextrous #: lang/json/mutation_from_json.py msgid "You are nimble and quick. Dexterity + 4" -msgstr "Você é ágil e rápido. Destreza + 4" +msgstr "" #: lang/json/mutation_from_json.py msgid "Insanely Dextrous" -msgstr "Insanamente Dextrous" +msgstr "" #. ~ Description for Insanely Dextrous #: lang/json/mutation_from_json.py msgid "You are much nimbler than before. Dexterity + 7" -msgstr "Você é muito mais ágil do que antes. Destreza + 7" +msgstr "" #: lang/json/mutation_from_json.py msgid "Prime Dexterity" -msgstr "Destreza Principal" +msgstr "" #. ~ Description for Prime Dexterity #: lang/json/mutation_from_json.py msgid "You're perfectly coordinated." -msgstr "Você é perfeitamente coordenado." +msgstr "" #: lang/json/mutation_from_json.py msgid "Smart" -msgstr "Inteligente" +msgstr "" #. ~ Description for Smart #: lang/json/mutation_from_json.py msgid "You are a little smarter. Intelligence + 1" -msgstr "Você é um pouco mais esperto. Inteligência + 1" +msgstr "" #: lang/json/mutation_from_json.py msgid "Very Smart" -msgstr "Muito esperto" +msgstr "" #. ~ Description for Very Smart #: lang/json/mutation_from_json.py msgid "You are smarter. Intelligence + 2" -msgstr "Você é mais esperto. Inteligência + 2" +msgstr "" #: lang/json/mutation_from_json.py msgid "Extremely Smart" -msgstr "Extremamente Inteligente" +msgstr "" #. ~ Description for Extremely Smart #: lang/json/mutation_from_json.py msgid "" "You are much smarter, and your skull bulges slightly. Intelligence + 4" msgstr "" -" Você é muito mais esperto e seu crânio está um pouco saliente. " -"Inteligência+ 4" #: lang/json/mutation_from_json.py msgid "Insanely Smart" -msgstr "Insanamente inteligente" +msgstr "" #. ~ Description for Insanely Smart #: lang/json/mutation_from_json.py msgid "" "Your skull bulges noticeably due to your impressive brain. Intelligence + 7" msgstr "" -" Seu crânio se eleva visivelmente devido ao seu cérebro impressionante. " -"Inteligência + 7" #: lang/json/mutation_from_json.py msgid "Prime Intelligence" -msgstr "Inteligência Prime" +msgstr "" #. ~ Description for Prime Intelligence #: lang/json/mutation_from_json.py msgid "" "You understand almost everything about which you think, with minimal effort." -msgstr "Você entende quase tudo sobre o que pensa, com o mínimo de esforço." +msgstr "" #: lang/json/mutation_from_json.py msgid "Distributed Neurology" -msgstr "Neurologia Distribuída" +msgstr "" #. ~ Description for Distributed Neurology #: lang/json/mutation_from_json.py @@ -113336,57 +100389,55 @@ msgid "" "Your brain has evolved beyond human imagination. You'll show them the REAL " "meaning of 'gray goo'!" msgstr "" -" Seu cérebro evoluiu além da imaginação humana. Você vai mostrar a eles " -"overdadeiro significado de 'gosma cinza'!" #: lang/json/mutation_from_json.py msgid "Perceptive" -msgstr "Perceptivo" +msgstr "" #. ~ Description for Perceptive #: lang/json/mutation_from_json.py msgid "Your senses are a little keener. Perception + 1" -msgstr "Seus sentidos são um pouco mais aguçados. Percepção + 1" +msgstr "" #: lang/json/mutation_from_json.py msgid "Very Perceptive" -msgstr "Muito perspicaz" +msgstr "" #. ~ Description for Very Perceptive #: lang/json/mutation_from_json.py msgid "Your senses are keener. Perception + 2" -msgstr "Seus sentidos são mais aguçados. Percepção + 2" +msgstr "" #: lang/json/mutation_from_json.py msgid "Extremely Perceptive" -msgstr "Extremamente Perceptivo" +msgstr "" #. ~ Description for Extremely Perceptive #: lang/json/mutation_from_json.py msgid "Your senses are much keener. Perception + 4" -msgstr "Seus sentidos são muito mais espertos. Percepção + 4" +msgstr "" #: lang/json/mutation_from_json.py msgid "Insanely Perceptive" -msgstr "Insanamente Perceptivo" +msgstr "" #. ~ Description for Insanely Perceptive #: lang/json/mutation_from_json.py msgid "You can sense things you never imagined. Perception + 7" -msgstr "Você pode sentir coisas que você nunca imaginou. Percepção + 7" +msgstr "" #: lang/json/mutation_from_json.py msgid "Prime Perception" -msgstr "Percepção Prime" +msgstr "" #. ~ Description for Prime Perception #: lang/json/mutation_from_json.py msgid "Your senses are keenly honed." -msgstr "Seus sentidos são afiados." +msgstr "" #: lang/json/mutation_from_json.py msgid "Sensory Disintegration" -msgstr "Desintegração Sensorial" +msgstr "" #. ~ Description for Sensory Disintegration #: lang/json/mutation_from_json.py @@ -113395,13 +100446,10 @@ msgid "" "'ears' of various shapes migrating about, and taste & smell are " "uncontrollable. The world is a horrible mixup. Ugh!" msgstr "" -" Seus órgãos dos sentidos estão em todo lugar: olhos se estendendo " -"eretraindo, 'orelhas' de várias formas que migram, e gosto e " -"cheirosão incontroláveis. O mundo é uma confusão horrível. Ugh!" #: lang/json/mutation_from_json.py msgid "Distributed Senses" -msgstr "Sentidos Distribuídos" +msgstr "" #. ~ Description for Distributed Senses #: lang/json/mutation_from_json.py @@ -113409,13 +100457,10 @@ msgid "" "You can now extend and reabsorb sensory organs at will, and can therefore " "ignore most shocks that would overwhelm lesser beings." msgstr "" -" Agora você pode estender e reabsorver órgãos sensoriais à vontade e, " -"portanto, pode ignorar a maioria dos choques que sobrecarregariam os " -"seresinferiores." #: lang/json/mutation_from_json.py msgid "Little" -msgstr "Pouco" +msgstr "" #. ~ Description for Little #: lang/json/mutation_from_json.py @@ -113423,12 +100468,10 @@ msgid "" "You've noticeably shrunk in size. You're able to move with increased " "litheness, but your smaller stature prevents you from carrying as much." msgstr "" -" Você visivelmente encolheu de tamanho. Você é capaz de se mover com " -"maiorceleridade, mas sua estatura menor impede que você carregue tanto." #: lang/json/mutation_from_json.py msgid "Tiny" -msgstr "Muito pequeno" +msgstr "" #. ~ Description for Tiny #: lang/json/mutation_from_json.py @@ -113439,16 +100482,10 @@ msgid "" "points are heavily reduced. However, your movement is silent, and your " "dodge skill is a little higher." msgstr "" -" Você é apenas a metade do que você costumava ser! O peso das coisas que " -"umavez você achou fácil de carregar agora é insuportável, as roupas agora " -"sãoduas vezes mais onerosas para você, a menos que você as recoloque (já " -"quevocê tem metade do tamanho delas), e seus pontos de vida são " -"muitoreduzidos. No entanto, seu movimento é silencioso e sua habilidade " -"deesquiva é um pouco maior." #: lang/json/mutation_from_json.py msgid "Unassuming" -msgstr "Modesto" +msgstr "" #. ~ Description for Unassuming #: lang/json/mutation_from_json.py @@ -113457,13 +100494,10 @@ msgid "" " are reduced, and you've learned to use your increased nimbleness to offset " "your reduced capacity to absorb damage." msgstr "" -" Você dominou sua pequena forma! A oneração de itens e as penalidades " -"porpeso são reduzidas, e você aprendeu a usar sua agilidade aumentada " -"paracompensar sua capacidade reduzida de absorver danos." #: lang/json/mutation_from_json.py msgid "Crafty" -msgstr "Astuto" +msgstr "" #. ~ Description for Crafty #: lang/json/mutation_from_json.py @@ -113471,13 +100505,10 @@ msgid "" "By making the most of your small stature, you can avoid the notice of all " "but the most perceptive creatures, and your speed is greatly increased." msgstr "" -" Ao aproveitar ao máximo sua pequena estatura, você pode evitar o aviso " -"detodas as criaturas, exceto as mais perceptivas, e sua velocidade " -"éaumentada consideravelmente." #: lang/json/mutation_from_json.py msgid "Metallassomaiphile" -msgstr "Metallassomaiphile" +msgstr "" #. ~ Description for Metallassomaiphile #: lang/json/mutation_from_json.py @@ -113486,22 +100517,19 @@ msgid "" "you thirsty. And you so love your new parts. You simply must have more " "mutagen!" msgstr "" -" Basta pensar em mutagênico (uma palavra tão linda! " -"'Mutagen'.Perfeito!) Te deixa com sede. E você ama suas novas " -"partes. Vocêsimplesmente deve ter mais mutagênico!" #: lang/json/mutation_from_json.py msgid "Head Bumps" -msgstr "Colisões de cabeça" +msgstr "" #. ~ Description for Head Bumps #: lang/json/mutation_from_json.py msgid "You have a pair of bumps on your skull." -msgstr "Você tem um par de solavancos no seu crânio." +msgstr "" #: lang/json/mutation_from_json.py msgid "Slit Nostrils" -msgstr "Narinas de Fenda" +msgstr "" #. ~ Description for Slit Nostrils #: lang/json/mutation_from_json.py @@ -113510,22 +100538,19 @@ msgid "" "like appearance. This makes breathing slightly difficult and increases " "mouth encumbrance by 10." msgstr "" -" Você tem um nariz achatado e fendas finas para as narinas, dando-lhe " -"umaaparência de lagarto. Isso torna a respiração um pouco difícil e aumenta " -"opeso da boca em 10." #: lang/json/mutation_from_json.py msgid "Forked Tongue" -msgstr "Língua bifurcada" +msgstr "" #. ~ Description for Forked Tongue #: lang/json/mutation_from_json.py msgid "Your tongue is forked, like that of a reptile. This has no effect." -msgstr "Sua língua é bifurcada, como a de um réptil. Isso não tem efeito." +msgstr "" #: lang/json/mutation_from_json.py msgid "Bulging Eyes" -msgstr "Olhos esbugalhados" +msgstr "" #. ~ Description for Bulging Eyes #: lang/json/mutation_from_json.py @@ -113533,12 +100558,10 @@ msgid "" "Your eyes bulge out several inches from your skull. This does not affect " "your vision in any way." msgstr "" -" Seus olhos se arregalam a vários centímetros do seu crânio. Isso não " -"afetasua visão de forma alguma." #: lang/json/mutation_from_json.py msgid "Mouth Flaps" -msgstr "Retalhos de boca" +msgstr "" #. ~ Description for Mouth Flaps #: lang/json/mutation_from_json.py @@ -113546,12 +100569,10 @@ msgid "" "Skin tabs and odd flaps of skin surround your mouth. They don't affect your" " eating, but are unpleasant to look at." msgstr "" -" Abas de pele e abas estranhas de pele cercam sua boca. Eles não afetam " -"suaalimentação, mas são desagradáveis de se olhar." #: lang/json/mutation_from_json.py msgid "Wing Stubs" -msgstr "Stubs de asa" +msgstr "" #. ~ Description for Wing Stubs #: lang/json/mutation_from_json.py @@ -113559,12 +100580,10 @@ msgid "" "You have a pair of stubby little wings projecting from your shoulderblades." " They can be wiggled at will, but are useless." msgstr "" -" Você tem um par de pequenas asas grossas projetando-se de suas escápulas. " -"Eles podem ser mexidos à vontade, mas são inúteis." #: lang/json/mutation_from_json.py msgid "Bat Wings" -msgstr "Asas de morcego" +msgstr "" #. ~ Description for Bat Wings #: lang/json/mutation_from_json.py @@ -113573,13 +100592,10 @@ msgid "" "they are useless, and in fact put you off balance, reducing your ability to " "dodge slightly." msgstr "" -" Você tem um par de grandes asas de couro. Você pode movê-los um pouco, " -"maseles são inúteis e, na verdade, deixam você desequilibrado, reduzindo " -"suacapacidade de se esquivar um pouco." #: lang/json/mutation_from_json.py msgid "Butterfly Wings" -msgstr "Asas de borboleta" +msgstr "" #. ~ Description for Butterfly Wings #: lang/json/mutation_from_json.py @@ -113588,31 +100604,28 @@ msgid "" "They can't lift you, and they make balancing tricky, but they certainly " "catch air and attention!" msgstr "" -" Você tem um par muito grande e muito bonito de asas coloridas. Eles não " -"podem te erguer, e eles tornam o equilíbrio difícil, mas eles " -"certamentecaptam o ar e a atenção!" #: lang/json/mutation_from_json.py msgid "Pale Skin" -msgstr "Pele pálida" +msgstr "" #. ~ Description for Pale Skin #: lang/json/mutation_from_json.py msgid "Your skin is rather pale." -msgstr "Sua pele é bastante pálida." +msgstr "" #: lang/json/mutation_from_json.py msgid "Spots" -msgstr "Pontos" +msgstr "" #. ~ Description for Spots #: lang/json/mutation_from_json.py msgid "Your skin is covered in a pattern of red spots." -msgstr "Sua pele está coberta por um padrão de manchas vermelhas." +msgstr "" #: lang/json/mutation_from_json.py msgid "Smelly" -msgstr "Malcheiroso" +msgstr "" #. ~ Description for Smelly #: lang/json/mutation_from_json.py @@ -113620,24 +100633,20 @@ msgid "" "You smell awful. Monsters that track scent will find you very easily, and " "humans will react poorly." msgstr "" -" Você cheira horrível. Monstros que rastreiam o cheiro irão encontrá- " -"lofacilmente, e os humanos reagirão mal." #: lang/json/mutation_from_json.py msgid "Deformed" -msgstr "Deformado" +msgstr "" #. ~ Description for Deformed #: lang/json/mutation_from_json.py msgid "" "You're slightly deformed. Some people will react badly to your appearance." msgstr "" -" Você está ligeiramente deformado. Algumas pessoas reagirão mal à " -"suaaparência." #: lang/json/mutation_from_json.py msgid "Badly Deformed" -msgstr "Mal deformado" +msgstr "" #. ~ Description for Badly Deformed #: lang/json/mutation_from_json.py @@ -113645,12 +100654,10 @@ msgid "" "You're hideously deformed. Some people will have a strong negative reaction" " to your appearance." msgstr "" -" Você está horrivelmente deformado. Algumas pessoas terão uma forte " -"reaçãonegativa à sua aparência." #: lang/json/mutation_from_json.py msgid "Grotesque" -msgstr "Grotesco" +msgstr "" #. ~ Description for Grotesque #: lang/json/mutation_from_json.py @@ -113658,12 +100665,10 @@ msgid "" "Your visage is disgusting and liable to induce vomiting. People will not " "want to interact with you unless they have a very good reason to." msgstr "" -" Seu rosto é nojento e capaz de induzir o vômito. As pessoas não vão " -"quererinteragir com você a menos que tenham uma boa razão para isso." #: lang/json/mutation_from_json.py msgid "Beautiful" -msgstr "Bela" +msgstr "" #. ~ Description for Beautiful #: lang/json/mutation_from_json.py @@ -113671,13 +100676,10 @@ msgid "" "You're a real head-turner. Some people will react well to your appearance, " "and most people have an easier time trusting you." msgstr "" -" Você é um verdadeiro vira-cabeça. Algumas pessoas reagirão bem à " -"suaaparência e a maioria das pessoas terá mais facilidade em confiar em " -"você." #: lang/json/mutation_from_json.py msgid "Very Beautiful" -msgstr "Muito lindo" +msgstr "" #. ~ Description for Very Beautiful #: lang/json/mutation_from_json.py @@ -113685,12 +100687,10 @@ msgid "" "You are a vision of beauty. Some people will react very well to your looks," " and most people will trust you immediately." msgstr "" -" Você é uma visão de beleza. Algumas pessoas reagirão muito bem à " -"suaaparência e a maioria das pessoas confiará em você imediatamente." #: lang/json/mutation_from_json.py msgid "Glorious" -msgstr "Glorioso" +msgstr "" #. ~ Description for Glorious #: lang/json/mutation_from_json.py @@ -113698,12 +100698,10 @@ msgid "" "You are incredibly beautiful. People cannot help themselves due to your " "charms, and will do whatever they can to please you." msgstr "" -" Você é incrivelmente linda. As pessoas não podem se ajudar devido aos " -"seusencantos e farão o que puderem para agradá-lo." #: lang/json/mutation_from_json.py msgid "Snout" -msgstr "Focinho" +msgstr "" #. ~ Description for Snout #: lang/json/mutation_from_json.py @@ -113711,12 +100709,10 @@ msgid "" "Your face and jaw have begun...changing. Masks and such fit OK, but you're " "noticeably mutated." msgstr "" -" Seu rosto e mandíbula começaram ... mudando. Máscaras e tal ajuste OK, " -"masvocê está visivelmente mutado." #: lang/json/mutation_from_json.py msgid "Bovine Snout" -msgstr "Focinho bovino" +msgstr "" #. ~ Description for Bovine Snout #: lang/json/mutation_from_json.py @@ -113724,12 +100720,10 @@ msgid "" "Your face resembles that of a bull, with a significant snout. It looks " "fearsome but prevents wearing mouthgear." msgstr "" -" Seu rosto se assemelha ao de um touro, com um focinho significativo. " -"Pareceassustador, mas evita usar o aparelho para a boca." #: lang/json/mutation_from_json.py msgid "Lupine Muzzle" -msgstr "Focinho Lupino" +msgstr "" #. ~ Description for Lupine Muzzle #: lang/json/mutation_from_json.py @@ -113737,9 +100731,6 @@ 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 "" -" Sua mandíbula e nariz se estenderam em um focinho de lobo. Ele se presta " -"amorder em combate e parece impressionante, mas evita usar o aparelho para " -"aboca." #: lang/json/mutation_from_json.py #, no-python-format @@ -113753,7 +100744,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Ursine Muzzle" -msgstr "Focinho de Ursine" +msgstr "" #. ~ Description for Ursine Muzzle #: lang/json/mutation_from_json.py @@ -113761,9 +100752,6 @@ msgid "" "Your jaw and nose have extended into a bearish muzzle. You could bite with " "it, and it looks impressive, but it prevents wearing mouthgear." msgstr "" -" Seu queixo e nariz se estenderam em um focinho de baixa. Você pode " -"mordercom ele, e parece impressionante, mas evita usar o aparelho para a " -"boca." #: lang/json/mutation_from_json.py #, no-python-format @@ -113777,7 +100765,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Rodent Muzzle" -msgstr "Focinho de roedor" +msgstr "" #. ~ Description for Rodent Muzzle #: lang/json/mutation_from_json.py @@ -113785,12 +100773,10 @@ msgid "" "Your face and jaw have extended, giving you an alert and attentive " "appearance." msgstr "" -" Seu rosto e mandíbula se estenderam, dando-lhe uma aparência alerta " -"eatenta." #: lang/json/mutation_from_json.py msgid "Reptilian Muzzle" -msgstr "Focinho Reptiliano" +msgstr "" #. ~ Description for Reptilian Muzzle #: lang/json/mutation_from_json.py @@ -113799,9 +100785,6 @@ msgid "" " look NASTY--as do the bite wounds they can inflict--but prevent wearing " "mouthgear." msgstr "" -" Seu rosto e mandíbula são uma versão mais curta daqueles encontrados " -"emjacarés. Eles parecem DESAGRADÁVEIS - assim como as mordidas que " -"podemcausar -, mas evitam o uso de aparelhos para a boca." #: lang/json/mutation_from_json.py #, no-python-format @@ -113815,7 +100798,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Proboscis" -msgstr "Probóscide" +msgstr "" #. ~ Description for Proboscis #: lang/json/mutation_from_json.py @@ -113823,12 +100806,10 @@ msgid "" "You've gotten rid of that terribly imprecise mouth and now imbibe your food " "like a proper person. Chewing was tiresome anyway." msgstr "" -" Você se livrou dessa boca terrivelmente imprecisa e agora bebe sua " -"comidacomo uma pessoa adequada. Mastigar era cansativo de qualquer maneira." #: lang/json/mutation_from_json.py msgid "Hollow Bones" -msgstr "Ossos ocos" +msgstr "" #. ~ Description for Hollow Bones #: lang/json/mutation_from_json.py @@ -113846,13 +100827,10 @@ msgid "" "food poisoning, alcohol, etc. You can, if desired, think yourself into " "vomiting, too." msgstr "" -" Você sente náuseas quase constantemente, e está mais propenso a vomitar " -"deintoxicações alimentares, álcool, etc. Você pode, se desejar, pensar " -"emvomitar também." #: lang/json/mutation_from_json.py msgid "Vomitous" -msgstr "vomitosa" +msgstr "" #. ~ Description for Vomitous #: lang/json/mutation_from_json.py @@ -113861,25 +100839,20 @@ msgid "" "frequently, you have found that you can trigger your vomit reflex on demand," " too." msgstr "" -" Você tem um distúrbio digestivo importante. Embora faça com que você " -"vomitecom frequência, descobriu que também pode ativar seu reflexo de " -"vômitoquando necessário." #: lang/json/mutation_from_json.py msgid "Fast Metabolism" -msgstr "Metabolismo acelerado" +msgstr "" #. ~ Description for Fast Metabolism #: lang/json/mutation_from_json.py msgid "" "You require more food than most people, but recover stamina slightly faster." msgstr "" -" Você precisa de mais comida do que a maioria das pessoas, mas recupera " -"aresistência um pouco mais rápido." #: lang/json/mutation_from_json.py msgid "Rapid Metabolism" -msgstr "Metabolismo Rápido" +msgstr "" #. ~ Description for Rapid Metabolism #: lang/json/mutation_from_json.py @@ -113887,12 +100860,10 @@ msgid "" "You require more resources than most, but heal more rapidly as well. " "Provides weak regeneration even when not asleep." msgstr "" -" Você precisa de mais recursos do que a maioria, mas também se recupera " -"maisrapidamente. Fornece regeneração fraca mesmo quando não está adormecido." #: lang/json/mutation_from_json.py msgid "Very Fast Metabolism" -msgstr "Metabolismo Muito Rápido" +msgstr "" #. ~ Description for Very Fast Metabolism #: lang/json/mutation_from_json.py @@ -113901,14 +100872,10 @@ msgid "" "expanded cardiovascular and respiratory systems. On a plus side, it doesn't" " take you much time to recover from any strenuous activity." msgstr "" -" Você precisa de cerca de duas vezes mais comida do que a média humana " -"paramanter seus sistemas cardiovascular e respiratório expandidos. Em um " -"ladopositivo, não leva muito tempo para se recuperar de qualquer " -"atividadeextenuante." #: lang/json/mutation_from_json.py msgid "Extreme Metabolism" -msgstr "Metabolismo Extremo" +msgstr "" #. ~ Description for Extreme Metabolism #: lang/json/mutation_from_json.py @@ -113916,21 +100883,19 @@ msgid "" "You consume three times as much food as the average human to maintain your " "truly superhuman endurance." msgstr "" -" Você consome três vezes mais comida do que a média humana para manter " -"suaresistência verdadeiramente sobre-humana." #: lang/json/mutation_from_json.py msgid "High Thirst" -msgstr "Sede Alta" +msgstr "" #. ~ Description for High Thirst #: lang/json/mutation_from_json.py msgid "Your body dries out easily; you need to drink more water." -msgstr "Seu corpo seca facilmente; você precisa beber mais água." +msgstr "" #: lang/json/mutation_from_json.py msgid "Very Thirsty" -msgstr "Muita sede" +msgstr "" #. ~ Description for Very Thirsty #: lang/json/mutation_from_json.py @@ -113938,12 +100903,10 @@ msgid "" "Ugh, out of water already? You need about twice the fluids of an average " "human." msgstr "" -" Ugh, fora da água já? Você precisa de cerca de duas vezes os fluidos de " -"umser humano médio." #: lang/json/mutation_from_json.py msgid "Extremely Thirsty" -msgstr "Extremamente sedento" +msgstr "" #. ~ Description for Extremely Thirsty #: lang/json/mutation_from_json.py @@ -113951,12 +100914,10 @@ msgid "" "You dry out seriously quickly, requiring three times as much liquid to stay " "hydrated." msgstr "" -" Você seca a sério rapidamente, exigindo três vezes mais líquido para " -"semanter hidratado." #: lang/json/mutation_from_json.py msgid "Metabolic Rehydration" -msgstr "Reidratação Metabólica" +msgstr "" #. ~ Description for Metabolic Rehydration #: lang/json/mutation_from_json.py @@ -113965,22 +100926,19 @@ msgid "" "longer gain hydration from fluids - instead, your thirst will be equal to, " "and change with, your hunger." msgstr "" -" Seu corpo recebe tudo o que precisa da comida que você come! Você não " -"ganhamais a hidratação dos fluidos - em vez disso, sua sede será igual e " -"mudarácom a sua fome." #: lang/json/mutation_from_json.py msgid "Very Heavy Sleeper" -msgstr "Sleeper muito pesado" +msgstr "" #. ~ Description for Very Heavy Sleeper #: lang/json/mutation_from_json.py msgid "You could probably sleep through a firefight." -msgstr "Você provavelmente poderia dormir em um tiroteio." +msgstr "" #: lang/json/mutation_from_json.py msgid "Very Sleepy" -msgstr "Muito sonolento" +msgstr "" #. ~ Description for Very Sleepy #: lang/json/mutation_from_json.py @@ -113988,42 +100946,38 @@ msgid "" "You find yourself needing to sleep quite often. You'll spend about half of " "your time in or around bed." msgstr "" -" Você se encontra precisando dormir com bastante frequência. Você vai " -"gastarcerca de metade do seu tempo em ou ao redor da cama." #: lang/json/mutation_from_json.py msgid "Weakening" -msgstr "Enfraquecimento" +msgstr "" #. ~ Description for Weakening #: lang/json/mutation_from_json.py msgid "" "You feel as though you are slowly weakening and your body heals slower." msgstr "" -" Você sente como se estivesse enfraquecendo lentamente e seu corpo se " -"curamais lentamente." #: lang/json/mutation_from_json.py msgid "Deterioration" -msgstr "Deterioração" +msgstr "" #. ~ Description for Deterioration #: lang/json/mutation_from_json.py msgid "Your body is very slowly wasting away." -msgstr "Seu corpo está perdendo muito lentamente." +msgstr "" #: lang/json/mutation_from_json.py msgid "Disintegration" -msgstr "Desintegração" +msgstr "" #. ~ Description for Disintegration #: lang/json/mutation_from_json.py msgid "Your body is slowly wasting away!" -msgstr "Seu corpo está lentamente perdendo!" +msgstr "" #: lang/json/mutation_from_json.py msgid "Solar Sensitivity" -msgstr "Sensibilidade solar" +msgstr "" #. ~ Description for Solar Sensitivity #: lang/json/mutation_from_json.py @@ -114031,12 +100985,10 @@ msgid "" "Your skin simply cannot handle ultraviolet radiation, such as sunlight. It " "will seriously burn you." msgstr "" -" Sua pele simplesmente não consegue lidar com a radiação ultravioleta, comoa" -" luz solar. Isso queimará você seriamente." #: lang/json/mutation_from_json.py msgid "Sores" -msgstr "Feridas" +msgstr "" #. ~ Description for Sores #: lang/json/mutation_from_json.py @@ -114044,12 +100996,10 @@ msgid "" "Your extremities are covered in painful sores. The pain is worse when they " "are covered in clothing." msgstr "" -" Suas extremidades estão cobertas de feridas dolorosas. A dor é pior " -"quandoeles estão cobertos de roupas." #: lang/json/mutation_from_json.py msgid "Light Sensitive" -msgstr "Sensível à luz" +msgstr "" #. ~ Description for Light Sensitive #: lang/json/mutation_from_json.py @@ -114057,12 +101007,10 @@ msgid "" "Sunlight makes you uncomfortable. If you are outdoors and the weather is " "Sunny, you suffer -1 to all stats." msgstr "" -" A luz do sol deixa você desconfortável. Se você estiver ao ar livre e " -"otempo estiver ensolarado, você sofre -1 de todas as estatísticas." #: lang/json/mutation_from_json.py msgid "Very Light Sensitive" -msgstr "Muito sensível à luz" +msgstr "" #. ~ Description for Very Light Sensitive #: lang/json/mutation_from_json.py @@ -114070,9 +101018,6 @@ msgid "" "Sunlight makes you very uncomfortable. If you are outdoors during the day, " "you suffer -1 to all stats; -2 if the weather is Sunny." msgstr "" -" A luz do sol deixa você muito desconfortável. Se você estiver ao ar " -"livredurante o dia, você sofre -1 para todas as estatísticas; -2 se o " -"tempoestiver ensolarado." #. ~ Description for Troglobite #: lang/json/mutation_from_json.py @@ -114080,12 +101025,10 @@ msgid "" "Sunlight makes you extremely uncomfortable, resulting in large penalties to " "all stats." msgstr "" -" A luz solar faz com que você fique extremamente desconfortável, " -"resultandoem grandes penalidades para todas as estatísticas." #: lang/json/mutation_from_json.py msgid "Webbed Hands" -msgstr "Mãos palmadas" +msgstr "" #. ~ Description for Webbed Hands #: lang/json/mutation_from_json.py @@ -114094,13 +101037,10 @@ msgid "" "causing problems with gloves. However, you can swim much faster. Slightly " "decreases wet penalties." msgstr "" -" Suas mãos e pés estão muito presos, reduzindo sua Destreza em 1 e " -"causandoproblemas com luvas. No entanto, você pode nadar muito mais rápido. " -"Diminuiligeiramente as penalidades molhadas." #: lang/json/mutation_from_json.py msgid "Paws" -msgstr "Patas" +msgstr "" #. ~ Description for Paws #: lang/json/mutation_from_json.py @@ -114109,13 +101049,10 @@ msgid "" "permanent hand encumbrance of 10, difficulty with delicate craftwork, and " "your gloves don't fit. But they handle water better." msgstr "" -" Suas mãos se fundiram em quase patas. A manipulação precisa é um " -"desafio:oneração permanente de mão de 10, dificuldade com artesanato " -"delicado esuas luvas não se encaixam. Mas eles lidam melhor com a água." #: lang/json/mutation_from_json.py msgid "Broad Paws" -msgstr "Patas Largas" +msgstr "" #. ~ Description for Broad Paws #: lang/json/mutation_from_json.py @@ -114124,13 +101061,10 @@ msgid "" "hand encumbrance of 20, serious problems crafting, and no gloves. But you " "can swim more effectively." msgstr "" -" Suas patas são muito maiores agora. A destreza manual é difícil: " -"oneraçãopermanente de mão de 20, sérios problemas de elaboração e sem luvas." -" Masvocê pode nadar de forma mais eficaz." #: lang/json/mutation_from_json.py msgid "Beak" -msgstr "Bico" +msgstr "" #. ~ Description for Beak #: lang/json/mutation_from_json.py @@ -114139,9 +101073,6 @@ msgid "" "enemies, but it is impossible for you to wear mouth gear. Slightly reduces " "wet effects." msgstr "" -" Você tem um bico para a boca. Você pode ocasionalmente usá-lo para " -"beijarseus inimigos, mas é impossível que você use equipamento de boca. Um " -"poucoreduz os efeitos molhados." #: lang/json/mutation_from_json.py #, no-python-format @@ -114155,7 +101086,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Woodpecker Beak" -msgstr "Bico de pica-pau" +msgstr "" #. ~ Description for Woodpecker Beak #: lang/json/mutation_from_json.py @@ -114163,8 +101094,6 @@ msgid "" "Pecking at prey is part of your daily routine now. Slightly reduces wet " "effects." msgstr "" -" Picando a presa faz parte da sua rotina diária agora. Um pouco reduz " -"osefeitos molhados." #: lang/json/mutation_from_json.py #, no-python-format @@ -114178,7 +101107,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Hummingbird Beak" -msgstr "Bico de beija-flor" +msgstr "" #. ~ Description for Hummingbird Beak #: lang/json/mutation_from_json.py @@ -114186,12 +101115,10 @@ msgid "" "Though your beak's not suitable for pecking, those flowers out there are a " "good source of energy. Examine them to feed." msgstr "" -" Embora seu bico não seja adequado para bicar, essas flores são uma boafonte" -" de energia. Examine-os para se alimentar." #: lang/json/mutation_from_json.py msgid "Genetically Unstable" -msgstr "Geneticamente instável" +msgstr "" #. ~ Description for Genetically Unstable #: lang/json/mutation_from_json.py @@ -114199,12 +101126,10 @@ msgid "" "Your DNA has been damaged in a way that causes you to continually develop " "more mutations." msgstr "" -" Seu DNA foi danificado de uma forma que faz com que você " -"desenvolvacontinuamente mais mutações." #: lang/json/mutation_from_json.py msgid "Genetic Chaos" -msgstr "Caos Genético" +msgstr "" #. ~ Description for Genetic Chaos #: lang/json/mutation_from_json.py @@ -114212,12 +101137,10 @@ msgid "" "Your body alters itself rapidly, and without your intervention or conscious " "control." msgstr "" -" Seu corpo se altera rapidamente e sem sua intervenção ou " -"controleconsciente." #: lang/json/mutation_from_json.py msgid "Minor Radioactivity" -msgstr "Radioatividade Menor" +msgstr "" #. ~ Description for Minor Radioactivity #: lang/json/mutation_from_json.py @@ -114225,12 +101148,10 @@ msgid "" "Your body has become radioactive! You continuously emit low levels of " "radiation, which slowly contaminates the world around you." msgstr "" -" Seu corpo se tornou radioativo! Você continuamente emite níveis baixos " -"deradiação, que lentamente contamina o mundo ao seu redor." #: lang/json/mutation_from_json.py msgid "Radioactivity" -msgstr "Radioatividade" +msgstr "" #. ~ Description for Radioactivity #: lang/json/mutation_from_json.py @@ -114238,12 +101159,10 @@ msgid "" "Your body has become radioactive! You continuously emit moderate levels of " "radiation, which contaminates the world around you." msgstr "" -" Seu corpo se tornou radioativo! Você continuamente emite níveis moderadosde" -" radiação, o que contamina o mundo ao seu redor." #: lang/json/mutation_from_json.py msgid "Severe Radioactivity" -msgstr "Radioatividade Severa" +msgstr "" #. ~ Description for Severe Radioactivity #: lang/json/mutation_from_json.py @@ -114251,12 +101170,10 @@ msgid "" "Your body has become radioactive! You continuously emit heavy levels of " "radiation, making your surroundings unlivable." msgstr "" -" Seu corpo se tornou radioativo! Você emite continuamente altos níveis " -"deradiação, tornando seu ambiente inabitável." #: lang/json/mutation_from_json.py msgid "Slimy" -msgstr "Viscoso" +msgstr "" #. ~ Description for Slimy #: lang/json/mutation_from_json.py @@ -114264,13 +101181,10 @@ msgid "" "Your body is coated with a fine slime. Protects from long term effects of " "acid, though not short term ones. Greatly increases wet benefits." msgstr "" -" Seu corpo está coberto de um bom lodo. Protege contra os efeitos a " -"longoprazo do ácido, embora não de curto prazo. Aumenta muito os benefícios " -"domolhado." #: lang/json/mutation_from_json.py msgid "Viscous" -msgstr "Viscoso" +msgstr "" #. ~ Description for Viscous #: lang/json/mutation_from_json.py @@ -114278,12 +101192,10 @@ msgid "" "Your body's slime output has become sticky and gel-like. Protects from acid" " somewhat. Greatly increases wet benefits." msgstr "" -" A produção de slime do seu corpo tornou-se pegajosa e gelatinosa. Protegedo" -" ácido um pouco. Aumenta muito os benefícios do molhado." #: lang/json/mutation_from_json.py msgid "Amorphous Body" -msgstr "Corpo Amorfo" +msgstr "" #. ~ Description for Amorphous Body #: lang/json/mutation_from_json.py @@ -114291,13 +101203,10 @@ msgid "" "Your flesh is a pleasing gel-like consistency. Your bodily functions seem " "to be moving around, and your leg-equivalents flow comfortably." msgstr "" -" Sua carne é uma consistência gelatinosa agradável. Suas funções " -"corporaisparecem estar se movendo, e seus equivalentes de perna " -"fluemconfortavelmente." #: lang/json/mutation_from_json.py msgid "Omnicellular" -msgstr "Omnicelular" +msgstr "" #. ~ Description for Omnicellular #: lang/json/mutation_from_json.py @@ -114305,12 +101214,10 @@ msgid "" "Your body is more or less one consistent whole: a single, giant, omni-cell " "that alters itself as needed." msgstr "" -" Seu corpo é mais ou menos um todo consistente: uma única omni-célulagigante" -" que se altera quando necessário." #: lang/json/mutation_from_json.py msgid "Herbivore" -msgstr "Herbívoro" +msgstr "" #. ~ Description for Herbivore #: lang/json/mutation_from_json.py @@ -114319,13 +101226,10 @@ msgid "" "good chance of making you vomit it back up; even if you manage to keep it " "down, its nutritional value is greatly reduced." msgstr "" -" A capacidade do seu corpo de digerir carne é severamente prejudicada. " -"Comercarne tem uma boa chance de fazer você vomitar de volta; Mesmo se " -"vocêconseguir mantê-lo baixo, seu valor nutricional é bastante reduzido." #: lang/json/mutation_from_json.py msgid "Carnivore" -msgstr "Carnívoro" +msgstr "" #. ~ Description for Carnivore #: lang/json/mutation_from_json.py @@ -114333,12 +101237,10 @@ msgid "" "Your body's ability to digest fruits, vegetables and grains is severely " "hampered. You cannot eat anything besides meat." msgstr "" -" A capacidade do seu corpo para digerir frutas, legumes e grãos éseveramente" -" prejudicada. Você não pode comer nada além de carne." #: lang/json/mutation_from_json.py msgid "Ponderous" -msgstr "Ponderoso" +msgstr "" #. ~ Description for Ponderous #: lang/json/mutation_from_json.py @@ -114348,7 +101250,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Very Ponderous" -msgstr "Muito ponderosa" +msgstr "" #. ~ Description for Very Ponderous #: lang/json/mutation_from_json.py @@ -114358,7 +101260,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Extremely Ponderous" -msgstr "Extremamente Ponderoso" +msgstr "" #. ~ Description for Extremely Ponderous #: lang/json/mutation_from_json.py @@ -114368,7 +101270,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Sunlight Dependent" -msgstr "Dependente da luz solar" +msgstr "" #. ~ Description for Sunlight Dependent #: lang/json/mutation_from_json.py @@ -114380,7 +101282,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Vines" -msgstr "Videiras" +msgstr "" #. ~ Description for Vines #: lang/json/mutation_from_json.py @@ -114388,12 +101290,10 @@ msgid "" "You have developed several vines sprouting from your shoulder area. They're" " bulky and get in the way." msgstr "" -" Você desenvolveu várias videiras brotando de sua área do ombro. Eles " -"sãovolumosos e atrapalham." #: lang/json/mutation_from_json.py msgid "Vine Limbs" -msgstr "Vem os membros" +msgstr "" #. ~ Description for Vine Limbs #: lang/json/mutation_from_json.py @@ -114401,9 +101301,6 @@ msgid "" "You've developed the ability to control your vines; they make good lashes. " "You can even rappel down sheer drops using them, but disconnecting HURTS." msgstr "" -" Você desenvolveu a capacidade de controlar suas videiras; eles fazem " -"bonscílios. Você pode até mesmo descer rapel usando-os, mas " -"desconectandoHURTS." #: lang/json/mutation_from_json.py #, no-python-format @@ -114417,7 +101314,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Vine Sprouter" -msgstr "Sprouter da videira" +msgstr "" #. ~ Description for Vine Sprouter #: lang/json/mutation_from_json.py @@ -114425,12 +101322,10 @@ msgid "" "You have full control of your vines, and can grow new ones and detach old " "ones more or less at will." msgstr "" -" Você tem controle total de suas vinhas, e pode cultivar novas e separar " -"asmais velhas à vontade." #: lang/json/mutation_from_json.py msgid "You detach a vine from your body." -msgstr "Você separa uma videira do seu corpo." +msgstr "" #: lang/json/mutation_from_json.py msgid "Hair Roots" @@ -114445,7 +101340,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Toe Roots" -msgstr "Raízes do dedo do pé" +msgstr "" #. ~ Description for Toe Roots #: lang/json/mutation_from_json.py @@ -114453,12 +101348,10 @@ msgid "" "Your toes have grown wriggly, and you can't imagine why you wear that stuff " "on your feet. Take it off. It's in the way." msgstr "" -" Seus dedos do pé se enroscaram e você não consegue imaginar por que " -"usaessas coisas nos pés. Tire. Está no caminho." #: lang/json/mutation_from_json.py msgid "Roots" -msgstr "Raízes" +msgstr "" #. ~ Description for Roots #: lang/json/mutation_from_json.py @@ -114467,13 +101360,10 @@ msgid "" "fishing, waiting, or otherwise being stationary for a while on diggable " "terrain, you'll extract nutrients and water from the soil." msgstr "" -" Já é hora de você começar a desenvolver um sistema de raiz. Ao ler, pescar," -" esperar ou ficar parado por algum tempo em terreno digerível, você " -"extrairánutrientes e água do solo." #: lang/json/mutation_from_json.py msgid "Rooter" -msgstr "entusiasta" +msgstr "" #. ~ Description for Rooter #: lang/json/mutation_from_json.py @@ -114481,12 +101371,10 @@ msgid "" "You find it difficult not to sink roots when able. You extract nutrients " "and water whenever on diggable terrain, but move more slowly." msgstr "" -" Você acha difícil não criar raízes quando é capaz. Você extrai nutrientes " -"eágua sempre em terrenos digeríveis, mas se move mais devagar." #: lang/json/mutation_from_json.py msgid "Chloromorphosis" -msgstr "Cloromorfose" +msgstr "" #. ~ Description for Chloromorphosis #: lang/json/mutation_from_json.py @@ -114495,9 +101383,6 @@ msgid "" "roots. Sleeping on diggable soil will satisfy any hunger or thirst you " "might have." msgstr "" -" Cada centímetro da sua pele está repleto de clorofila e você tem " -"raízesfortes. Dormir em solo digerível irá satisfazer qualquer fome ou sede " -"quevocê possa ter." #: lang/json/mutation_from_json.py msgid "Mycorrhizal Communion" @@ -114513,7 +101398,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Heat Dependent" -msgstr "Dependente de Calor" +msgstr "" #. ~ Description for Heat Dependent #: lang/json/mutation_from_json.py @@ -114526,7 +101411,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Very Heat Dependent" -msgstr "Muito Dependente do Calor" +msgstr "" #. ~ Description for Very Heat Dependent #: lang/json/mutation_from_json.py @@ -114539,7 +101424,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Cold Blooded" -msgstr "A sangue frio" +msgstr "" #. ~ Description for Cold Blooded #: lang/json/mutation_from_json.py @@ -114552,7 +101437,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Ectothermic" -msgstr "Ectérmica" +msgstr "" #. ~ Description for Ectothermic #: lang/json/mutation_from_json.py @@ -114561,13 +101446,10 @@ msgid "" "--for every 2 (1.1) degrees below or above 65 F (18.3 C). You only need to " "eat half as much as an average human." msgstr "" -" Seu corpo se tornou permanentemente de sangue frio. Sua velocidade diminui-" -" ou aumenta - para cada 2 (1,1) graus abaixo ou acima de 65 F (18,3 C).Você " -"só precisa comer metade do que um ser humano médio." #: lang/json/mutation_from_json.py msgid "Growling Voice" -msgstr "Voz Growling" +msgstr "" #. ~ Description for Growling Voice #: lang/json/mutation_from_json.py @@ -114575,12 +101457,10 @@ msgid "" "You have a growling, rough voice. Persuading NPCs will be more difficult, " "but threatening them will be easier." msgstr "" -" Você tem uma voz rouca e áspera. Persuadir NPCs será mais difícil, " -"masameaçá-los será mais fácil." #: lang/json/mutation_from_json.py msgid "Snarling Voice" -msgstr "Voz Rosnando" +msgstr "" #. ~ Description for Snarling Voice #: lang/json/mutation_from_json.py @@ -114588,12 +101468,10 @@ msgid "" "You have a threatening snarl in your voice. Persuading NPCs will be near " "impossible, but threatening them will be much easier." msgstr "" -" Você tem um grunhido ameaçador em sua voz. Persuadir NPCs será " -"quaseimpossível, mas ameaçá-los será muito mais fácil." #: lang/json/mutation_from_json.py msgid "Hissing Voice" -msgstr "Voz sibilante" +msgstr "" #. ~ Description for Hissing Voice #: lang/json/mutation_from_json.py @@ -114601,39 +101479,37 @@ msgid "" "You hiss when speaking. Persuading NPCs will be more difficult, but " "threatening them will be easier." msgstr "" -" Você assobia quando fala. Persuadir NPCs será mais difícil, mas ameaçá- " -"losserá mais fácil." #: lang/json/mutation_from_json.py msgid "Shouter" -msgstr "Shouter" +msgstr "" #. ~ Description for Shouter #: lang/json/mutation_from_json.py msgid "You occasionally shout uncontrollably." -msgstr "Você ocasionalmente grita incontrolavelmente." +msgstr "" #: lang/json/mutation_from_json.py msgid "Screamer" -msgstr "Gritador" +msgstr "" #. ~ Description for Screamer #: lang/json/mutation_from_json.py msgid "You sometimes scream uncontrollably." -msgstr "Você às vezes grita incontrolavelmente." +msgstr "" #: lang/json/mutation_from_json.py msgid "Howler" -msgstr "Berrador" +msgstr "" #. ~ Description for Howler #: lang/json/mutation_from_json.py msgid "You frequently let out a piercing howl." -msgstr "Você freqüentemente deixa escapar um uivo estridente." +msgstr "" #: lang/json/mutation_from_json.py msgid "Feathered Arms" -msgstr "Braços emplumados" +msgstr "" #. ~ Description for Feathered Arms #: lang/json/mutation_from_json.py @@ -114642,13 +101518,10 @@ msgid "" "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." msgstr "" -" Seus braços cresceram em cores vibrantes. Eles efetivamente " -"impermeabilizamseus braços e aliviam os limites, mas realmente atrapalham. " -"Eles sãosimplesmente pequenos demais para ajudá-lo no ar." #: lang/json/mutation_from_json.py msgid "Insect Limbs" -msgstr "Membros de insetos" +msgstr "" #. ~ Description for Insect Limbs #: lang/json/mutation_from_json.py @@ -114656,12 +101529,10 @@ msgid "" "You've *finally* sprouted a pair of arms from your midsection. They flail " "more-or-less uncontrollably, making you feel rather larval." msgstr "" -" Você * finalmente * brotou um par de braços de seu meio. Eles se agitammais" -" ou menos incontrolavelmente, fazendo você se sentir bastante larval." #: lang/json/mutation_from_json.py msgid "Insect Arms" -msgstr "Braços Insetos" +msgstr "" #. ~ Description for Insect Arms #: lang/json/mutation_from_json.py @@ -114669,13 +101540,10 @@ msgid "" "It's good having all your arms. Though they're too thin to block or punch, " "you can fold them inside human-shaped gear if need be." msgstr "" -" É bom ter todos os seus braços. Embora eles sejam muito finos para " -"bloquearou perfurar, você pode dobrá-los dentro da engrenagem humana se " -"fornecessário." #: lang/json/mutation_from_json.py msgid "Arachnid Limbs" -msgstr "Membros de aracnídeos" +msgstr "" #. ~ Description for Arachnid Limbs #: lang/json/mutation_from_json.py @@ -114683,13 +101551,10 @@ msgid "" "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." msgstr "" -" Há os dois últimos membros que você esperava. Infelizmente você ainda " -"nãoconsegue coordená-los, então você está seguindo seu próprio caminho. " -"Muito." #: lang/json/mutation_from_json.py msgid "Arachnid Arms" -msgstr "Aracnídeos" +msgstr "" #. ~ Description for Arachnid Arms #: lang/json/mutation_from_json.py @@ -114697,13 +101562,10 @@ msgid "" "You have four handsome limbs, and then those mutant 'hand' and 'foot' " "things. They probably aren't worth concealing." msgstr "" -" Você tem quatro membros bonitos, e depois aquelas coisas mutantes " -"de'mão' e 'pé'. Eles provavelmente não valem a pena " -"esconder." #: lang/json/mutation_from_json.py msgid "Tentacle Arms" -msgstr "Braços de tentáculos" +msgstr "" #. ~ Description for Tentacle Arms #: lang/json/mutation_from_json.py @@ -114712,9 +101574,6 @@ msgid "" "Dexterity, permanent hand encumbrance of 30, and inability to wear gloves. " "Somewhat decreases wet penalties." msgstr "" -" Seus braços se transformaram em tentáculos, resultando em um bônus de 1para" -" Destreza, ônus permanente de 30 e incapacidade de usar luvas. Diminuium " -"pouco as penalidades molhadas." #: lang/json/mutation_from_json.py #, no-python-format @@ -114738,7 +101597,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "4 Tentacles" -msgstr "4 tentáculos" +msgstr "" #. ~ Description for 4 Tentacles #: lang/json/mutation_from_json.py @@ -114748,14 +101607,10 @@ msgid "" " You can make up to 3 extra attacks with them. Somewhat decreases wet " "penalties." msgstr "" -" Seus braços se transformaram em quatro tentáculos, resultando em um bônusde" -" 1 para Destreza, ônus permanente de mão de 30 e incapacidade de usarluvas. " -"Você pode fazer até 3 ataques extras com eles. Diminui um pouco " -"aspenalidades molhadas." #: lang/json/mutation_from_json.py msgid "8 Tentacles" -msgstr "8 tentáculos" +msgstr "" #. ~ Description for 8 Tentacles #: lang/json/mutation_from_json.py @@ -114765,14 +101620,10 @@ msgid "" "gloves. You can make up to 7 extra attacks with them. Somewhat decreases " "wet penalties." msgstr "" -" Seus braços se transformaram em oito tentáculos, resultando em um bônus de1" -" para Destreza, ônus permanente das mãos de 30 e incapacidade de usarluvas. " -"Você pode fazer até 7 ataques extras com eles. Diminui um pouco " -"aspenalidades molhadas." #: lang/json/mutation_from_json.py msgid "Shell" -msgstr "Concha" +msgstr "" #. ~ Description for Shell #: lang/json/mutation_from_json.py @@ -114781,14 +101632,10 @@ msgid "" "You find you can use the empty space as 16 storage space, but cannot wear " "anything on your torso. Somewhat reduces wet effects." msgstr "" -" Você cresceu uma casca grossa sobre o seu torso, proporcionando " -"umaexcelente armadura. Você acha que pode usar o espaço vazio como 16 " -"espaçode armazenamento, mas não pode usar nada em seu torso. Algo reduz " -"osefeitos molhados." #: lang/json/mutation_from_json.py msgid "Roomy Shell" -msgstr "Concha espaçosa" +msgstr "" #. ~ Description for Roomy Shell #: lang/json/mutation_from_json.py @@ -114797,13 +101644,10 @@ msgid "" "your whole body. Activate to pull your head and limbs into your shell, " "trading mobility and vision for warmth and shelter." msgstr "" -" Seu escudo protetor cresceu o suficiente para acomodar - se necessário " -"-todo o seu corpo. Ative para puxar a cabeça e os membros para dentro da " -"suaconcha, trocando mobilidade e visão por calor e abrigo." #: lang/json/mutation_from_json.py msgid "Leg Tentacles" -msgstr "Tentáculos de perna" +msgstr "" #. ~ Description for Leg Tentacles #: lang/json/mutation_from_json.py @@ -114816,7 +101660,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Tentacle Bracing" -msgstr "Suporte de Tentáculo" +msgstr "" #. ~ Description for Tentacle Bracing #: lang/json/mutation_from_json.py @@ -114824,9 +101668,6 @@ msgid "" "Your lower-tentacles have developed suckers. They make land movement " "marginally more tiring, but do a good job of keeping you set in place." msgstr "" -" Seus tentáculos inferiores desenvolveram otários. Eles tornam o movimentode" -" terras um pouco mais cansativo, mas fazem um bom trabalho em mantê-lo " -"nolugar." #. ~ Description for Lizard #: lang/json/mutation_from_json.py @@ -114834,8 +101675,6 @@ msgid "" "You sometimes look back on your days before your tail came in. But you're " "better now." msgstr "" -" Você às vezes olha para trás em seus dias antes de sua cauda entrar. " -"Masvocê está melhor agora." #. ~ Description for Bird #: lang/json/mutation_from_json.py @@ -114843,12 +101682,10 @@ msgid "" "You're sure you'll fly someday. In the meantime, there are still nests to " "build." msgstr "" -" Você tem certeza que vai voar algum dia. Enquanto isso, ainda há ninhospara" -" construir." #: lang/json/mutation_from_json.py msgid "Aquatic" -msgstr "Aquático" +msgstr "" #. ~ Description for Aquatic #: lang/json/mutation_from_json.py @@ -114856,8 +101693,6 @@ msgid "" "Ninety percent of the planet, and it's yours to explore. And colonize. And" " enjoy. What was that about a surface?" msgstr "" -" Noventa por cento do planeta, e é seu para explorar. E colonize. " -"Eaproveitar. O que foi aquilo sobre uma superfície?" #. ~ Description for Beast #: lang/json/mutation_from_json.py @@ -114865,8 +101700,6 @@ msgid "" "It's about time you grew out. Now that you've matured, it is time to make " "something of yourself." msgstr "" -" Já é hora de você crescer. Agora que você amadureceu, é hora de fazer " -"algode si mesmo." #. ~ Description for Feline #: lang/json/mutation_from_json.py @@ -114874,24 +101707,20 @@ msgid "" "Stalking prey, eating well, and lying in the sun. Mmm, all you could ever " "desire." msgstr "" -" Perseguindo a presa, comendo bem e deitado ao sol. Mmm, tudo que " -"vocêpoderia desejar." #. ~ Description for Wolf #: lang/json/mutation_from_json.py msgid "You're the perfect candidate to lead a pack." -msgstr "Você é o candidato perfeito para liderar um bando." +msgstr "" #. ~ Description for Bear #: lang/json/mutation_from_json.py msgid "So the humans died, what's the worry? Now they won't ruin the woods." msgstr "" -" Então os humanos morreram, qual é a preocupação? Agora eles não vãoestragar" -" a floresta." #: lang/json/mutation_from_json.py msgid "Bovine" -msgstr "Bovino" +msgstr "" #. ~ Description for Bovine #: lang/json/mutation_from_json.py @@ -114899,8 +101728,6 @@ msgid "" "Civilization collapsed? Great! You and your kin will never have to worry " "about a slaughterhouse again." msgstr "" -" Civilização entrou em colapso? Ótimo! Você e seu parente nunca mais " -"terãoque se preocupar com um matadouro." #. ~ Description for Insect #: lang/json/mutation_from_json.py @@ -114908,8 +101735,6 @@ msgid "" "It would be good to be a Queen, having workers constantly servicing your " "every need...but how would you keep them in line?" msgstr "" -" Seria bom ser uma Rainha, tendo os trabalhadores constantemente atendendo " -"atodas as suas necessidades ... mas como você os manteria na linha?" #. ~ Description for Plant #: lang/json/mutation_from_json.py @@ -114917,12 +101742,10 @@ msgid "" "Well, you still have those other walking flowers-and the mushrooms too-to " "deal with. But you'll manage." msgstr "" -" Bem, você ainda tem aquelas outras flores andando - e os cogumelos também " -"-para lidar. Mas você vai conseguir." #: lang/json/mutation_from_json.py msgid "Aqueous" -msgstr "Aquoso" +msgstr "" #. ~ Description for Aqueous #: lang/json/mutation_from_json.py @@ -114930,12 +101753,10 @@ msgid "" "What was that old advertisement, 'paint the planet'? That might be a good " "long-term goal, but for now..." msgstr "" -" Qual era aquele anúncio antigo, 'pintar o planeta'? Isso pode ser um bom " -"objetivo a longo prazo, mas por enquanto ..." #: lang/json/mutation_from_json.py msgid "Subterranean" -msgstr "Subterrâneo" +msgstr "" #. ~ Description for Subterranean #: lang/json/mutation_from_json.py @@ -114944,9 +101765,6 @@ msgid "" " Now that you've become accustomed to your new digs, there's the beginnings" " of a great empire right here, underground." msgstr "" -" Não há muito sentido em se reconstruir naquela terra árida e " -"terrivelmentebrilhante. Agora que você se acostumou com suas novas " -"escavações, há ocomeço de um grande império bem aqui, no subsolo." #. ~ Description for Cephalopod #: lang/json/mutation_from_json.py @@ -114954,61 +101772,53 @@ msgid "" "Strange aeons, true, but Death seems to be slacking and you are doing just " "fine." msgstr "" -" Aeons estranhos, verdade, mas a morte parece estar afrouxando e você " -"estáindo muito bem." #: lang/json/mutation_from_json.py msgid "Arachnid" -msgstr "Aracnídeo" +msgstr "" #. ~ Description for Arachnid #: lang/json/mutation_from_json.py msgid "Well, maybe you'll just have to make your own world wide web." msgstr "" -" Bem, talvez você só tenha que criar sua própria rede mundial " -"decomputadores." #: lang/json/mutation_from_json.py lang/json/npc_from_json.py msgid "Survivor" -msgstr "Sobrevivente" +msgstr "" #. ~ Description for Survivor #: lang/json/mutation_from_json.py msgid "" "Hey. Civilization fell. You're still around. 'Rat' just isn't respectful." msgstr "" -" Ei. Civilização caiu. Você ainda está por perto. 'Rato'simplesmente" -" não é respeitoso." #: lang/json/mutation_from_json.py msgid "Prototype" -msgstr "Protótipo" +msgstr "" #. ~ Description for Prototype #: lang/json/mutation_from_json.py msgid "After all those experiments, what's a few more, hmm?" -msgstr "Depois de todos esses experimentos, o que são mais alguns, hmm?" +msgstr "" #: lang/json/mutation_from_json.py msgid "Prime" -msgstr "Prime" +msgstr "" #. ~ Description for Prime #: lang/json/mutation_from_json.py msgid "You're the perfect candidate to tidy this mess." -msgstr "Você é o candidato perfeito para arrumar essa bagunça." +msgstr "" #. ~ Description for Fey #: lang/json/mutation_from_json.py msgid "" "You are the tree under which humankind will shelter during these dark times." msgstr "" -" Você é a árvore sob a qual a humanidade se abrigará durante esses " -"tempossombrios." #: lang/json/mutation_from_json.py msgid "Chaos" -msgstr "Caos" +msgstr "" #. ~ Description for Chaos #: lang/json/mutation_from_json.py @@ -115017,9 +101827,6 @@ msgid "" "weren't meant to exist. But you do, and you're a force, no matter what " "happens." msgstr "" -" Você não pode mais dizer o que você é. Tudo e ainda nada, como você " -"nãodeveria existir. Mas você faz, e você é uma força, não importa o " -"queaconteça." #. ~ Description for Raptor #: lang/json/mutation_from_json.py @@ -115027,12 +101834,10 @@ msgid "" "The chance to undo not one but TWO extinction events. You're confident " "you'll do fine." msgstr "" -" A chance de desfazer não um, mas DOIS eventos de extinção. Você " -"estáconfiante de que vai se sair bem." #: lang/json/mutation_from_json.py msgid "Diminutive" -msgstr "Diminutivo" +msgstr "" #. ~ Description for Diminutive #: lang/json/mutation_from_json.py @@ -115040,12 +101845,10 @@ msgid "" "So much food, everywhere! And nobody's even guarding it anymore! These are" " good times." msgstr "" -" Tanta comida, em todo lugar! E ninguém está nem mesmo guardando isso! " -"Essessão bons momentos." #: lang/json/mutation_from_json.py msgid "Marloss Gateway" -msgstr "Marloss Gateway" +msgstr "" #. ~ Description for Marloss Gateway #: lang/json/mutation_from_json.py @@ -115053,30 +101856,28 @@ msgid "" "You get the feeling that you're on the cusp of becoming something greater " "than yourself." msgstr "" -" Você tem a sensação de que está prestes a se tornar algo maior que " -"vocêmesmo." #: lang/json/mutation_from_json.py msgid "Mycus" -msgstr "Mycus" +msgstr "" #. ~ Description for Mycus #: lang/json/mutation_from_json.py src/iuse.cpp msgid "We are the Mycus." -msgstr "Nós somos o Mycus." +msgstr "" #: lang/json/mutation_from_json.py msgid "Acidproof" -msgstr "À prova de ácido" +msgstr "" #. ~ Description for Acidproof #: lang/json/mutation_from_json.py msgid "Your mutated flesh is immune to the damaging effects of acid." -msgstr "Sua carne mutante é imune aos efeitos prejudiciais do ácido." +msgstr "" #: lang/json/mutation_from_json.py msgid "Acid Blood" -msgstr "Sangue Ácido" +msgstr "" #. ~ Description for Acid Blood #: lang/json/mutation_from_json.py @@ -115085,13 +101886,10 @@ msgid "" "blood, you bleed a strong molecular acid which will damage any creature " "foolish enough to harm you." msgstr "" -" Seu corpo desenvolveu um mecanismo de defesa maravilhoso. Em vez de " -"sanguenormal, você sangra um ácido molecular forte que danifica qualquer " -"criaturatola o suficiente para prejudicá-lo." #: lang/json/mutation_from_json.py msgid "Pyromaniac" -msgstr "Piromaníaco" +msgstr "" #. ~ Description for Pyromaniac #: lang/json/mutation_from_json.py @@ -115100,13 +101898,10 @@ msgid "" "light them every now and then or stand near them often. However, you gain a" " mood bonus from doing so." msgstr "" -" Você tem uma obsessão doentia pelo fogo e fica ansioso se não os acende " -"devez em quando ou fica perto deles com frequência. No entanto, você ganha " -"umbônus de humor ao fazer isso." #: lang/json/mutation_from_json.py msgid "Amphibious" -msgstr "Anfíbio" +msgstr "" #. ~ Description for Amphibious #: lang/json/mutation_from_json.py @@ -115115,13 +101910,10 @@ msgid "" "that fact. Your base swimming speed is greatly increased, and weight will " "hinder you much less while swimming." msgstr "" -" Você é tão confortável na água quanto na terra, e seu corpo se adaptou " -"emtorno desse fato. Sua velocidade básica de natação é bastante aumentada, " -"eo peso dificultará muito menos durante a natação." #: lang/json/mutation_from_json.py msgid "Lidless Eyes" -msgstr "Olhos sem tampa" +msgstr "" #. ~ Description for Lidless Eyes #: lang/json/mutation_from_json.py @@ -115131,15 +101923,10 @@ msgid "" "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." msgstr "" -" Como um verdadeiro peixe, seus olhos não têm pálpebras e, ao invés disso, " -"são cobertos por uma membrana protetora translúcida que bloqueia irritantese" -" água, além de proporcionar uma pequena armadura. Também permite que " -"vocêdurma com os olhos abertos! Ative para causar a aproximação de " -"criaturashostis para te acordar." #: lang/json/mutation_from_json.py msgid "Aqueous Repose" -msgstr "Repouso aquoso" +msgstr "" #. ~ Description for Aqueous Repose #: lang/json/mutation_from_json.py @@ -115147,13 +101934,10 @@ msgid "" "Falling asleep underwater is easy for you, and you spend less time asleep " "when you rest there. You can also eat underwater, though you can't drink." msgstr "" -" Adormecer debaixo d'água é fácil para você e você passa menos " -"tempodormindo quando descansa lá. Você também pode comer debaixo d'água," -" embora não possa beber." #: lang/json/mutation_from_json.py msgid "Toxic Flesh" -msgstr "Carne tóxica" +msgstr "" #. ~ Description for Toxic Flesh #: lang/json/mutation_from_json.py @@ -115161,12 +101945,10 @@ msgid "" "Your flesh is highly poisonous, and creatures that bite you will receive a " "nasty surprise." msgstr "" -" Sua carne é altamente venenosa, e criaturas que te mordem vão receber " -"umasurpresa desagradável." #: lang/json/mutation_from_json.py msgid "Freshwater Osmosis" -msgstr "Osmose de água doce" +msgstr "" #. ~ Description for Freshwater Osmosis #: lang/json/mutation_from_json.py @@ -115175,13 +101957,10 @@ msgid "" "your body through osmosis. While submerged in fresh water, any thirst you " "might have will be slaked." msgstr "" -" Suas guelras e pele são altamente permeáveis à umidade, e você podehidratar" -" seu corpo através da osmose. Enquanto submerso em água doce, qualquer sede " -"que você possa ter será saciada." #: lang/json/mutation_from_json.py msgid "Electroreceptors" -msgstr "Eletrorreceptores" +msgstr "" #. ~ Description for Electroreceptors #: lang/json/mutation_from_json.py @@ -115191,15 +101970,10 @@ msgid "" " allowing you to see robots and creatures charged with electricity through " "walls, but being shocked will seriously mess you up." msgstr "" -" Uma rede de eletrorreceptores cheios de geléia, como a de um tubarão, " -"cresceu em todo o seu rosto e nariz. Eles são muito sensíveis aos " -"camposmagnéticos, permitindo que você veja robôs e criaturas carregadas " -"deeletricidade através das paredes, mas ficar chocado vai te " -"atrapalharseriamente." #: lang/json/mutation_from_json.py msgid "Shark Teeth" -msgstr "Dentes de tubarão" +msgstr "" #. ~ Description for Shark Teeth #: lang/json/mutation_from_json.py @@ -115209,11 +101983,6 @@ msgid "" "lethal natural weapon, as long as your anatomy favors it. They also grow " "very fast, and you harmlessly shed them more or less at random." msgstr "" -" Seus dentes cresceram incrivelmente afiados e são formados de material " -"decálcio muito denso. Além de fazer você comer muito mais rápido, você " -"podeusá-los como uma arma natural letal, contanto que sua anatomia o " -"favoreça. Eles também crescem muito rápido e você inutilmente os libera mais" -" ou menosao acaso." #: lang/json/mutation_from_json.py #, no-python-format @@ -115227,7 +101996,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Police Officer" -msgstr "Policial" +msgstr "" #. ~ Description for Police Officer #: lang/json/mutation_from_json.py @@ -115236,13 +102005,10 @@ msgid "" "the New England region thanks to interstate agreements. Whether that means " "anything now is another question." msgstr "" -" Você é um policial devidamente juramentado, com jurisdição em toda a " -"regiãoda Nova Inglaterra, graças a acordos interestaduais. Se isso " -"significaalguma coisa agora é outra questão." #: lang/json/mutation_from_json.py msgid "SWAT Officer" -msgstr "Oficial da SWAT" +msgstr "" #. ~ Description for SWAT Officer #: lang/json/mutation_from_json.py @@ -115251,13 +102017,10 @@ msgid "" "England region thanks to interstate agreements. Whether that means anything" " now is another question." msgstr "" -" Você é um jurista devidamente autorizado, com jurisdição em toda a regiãoda" -" Nova Inglaterra, graças a acordos interestaduais. Se isso significaalguma " -"coisa agora é outra questão." #: lang/json/mutation_from_json.py msgid "Bionic Officer" -msgstr "Oficial Biônico" +msgstr "" #. ~ Description for Bionic Officer #: lang/json/mutation_from_json.py @@ -115266,13 +102029,10 @@ msgid "" "throughout the New England region thanks to interstate agreements. Whether " "you can do for the law what the law did for you is another question." msgstr "" -" Você é um aplicador da lei ressuscitado ciberneticamente, com jurisdição " -"emtoda a região da Nova Inglaterra, graças a acordos interestaduais. Se " -"vocêpode fazer pela lei, o que a lei fez por você é outra questão." #: lang/json/mutation_from_json.py msgid "Churl" -msgstr "Churl" +msgstr "" #. ~ Description for Churl #: lang/json/mutation_from_json.py @@ -115280,12 +102040,10 @@ msgid "" "Thou art a lewede man, a lowly cowherd, though where thi catel been thou " "hast not ynn certain." msgstr "" -" Tu és um homem desleixado, um humilde pastor de vacas, embora o senhor " -"nãotenha certeza." #: lang/json/mutation_from_json.py msgid "Police Detective" -msgstr "Detetive policial" +msgstr "" #. ~ Description for Police Detective #: lang/json/mutation_from_json.py @@ -115294,13 +102052,10 @@ msgid "" "throughout the New England region thanks to interstate agreements. Whether " "your shield means anything now is another question." msgstr "" -" Você é um investigador da lei devidamente juramentado, com jurisdição " -"emtoda a região da Nova Inglaterra, graças a acordos interestaduais. Se o " -"seuescudo significa alguma coisa agora é outra questão." #: lang/json/mutation_from_json.py msgid "US Marshal" -msgstr "Marechal dos EUA" +msgstr "" #. ~ Description for US Marshal #: lang/json/mutation_from_json.py @@ -115308,8 +102063,6 @@ msgid "" "You are a duly sworn Federal marshal, with nationwide jurisdiction and the " "authority of the United States of America." msgstr "" -" Você é um marechal federal devidamente empossado, com jurisdição nacional e" -" autoridade dos Estados Unidos da América." #: lang/json/mutation_from_json.py msgid "True Foodperson" @@ -115326,7 +102079,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "MD" -msgstr "MD" +msgstr "" #. ~ Description for MD #: lang/json/mutation_from_json.py @@ -115335,13 +102088,10 @@ msgid "" " when the Cataclysm struck. \"Your\" hospital was overrun and evacuated, " "but there's always work for a good doctor." msgstr "" -" Você acabou de passar pelas formalidades administrativas para a sua " -"residência quando o Cataclismo aconteceu. \\ 'Seu \\' hospital foi invadido " -"e evacuado, mas sempre há trabalho para um bom médico." #: lang/json/mutation_from_json.py msgid "Skater" -msgstr "Skatista" +msgstr "" #. ~ Description for Skater #: lang/json/mutation_from_json.py @@ -115349,12 +102099,10 @@ 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 "" -" Você passou muito tempo manobrando ativamente em patins antes do " -"Cataclismo, e é melhor ficar em pé quando marcado ou bloqueado." #: lang/json/mutation_from_json.py msgid "Martial Artist" -msgstr "Artista marcial" +msgstr "" #. ~ Description for Martial Artist #: lang/json/mutation_from_json.py @@ -115362,12 +102110,10 @@ msgid "" "You were shaping up to be a pretty decent student of the martial arts before" " the Cataclysm struck. Time to see just how good you really are." msgstr "" -" Você estava se preparando para ser uma estudante decente das artes marciais" -" antes do Cataclysm. Hora de ver o quão bom você realmente é." #: lang/json/mutation_from_json.py msgid "Black Belt" -msgstr "Cinto preto" +msgstr "" #. ~ Description for Black Belt #: lang/json/mutation_from_json.py @@ -115375,12 +102121,10 @@ msgid "" "You were competitive at national levels, and had considered teaching your " "art. Defending against the entire town may still be a challenge, though." msgstr "" -" Você era competitivo em nível nacional e pensava em ensinar sua arte. A " -"defesa contra toda a cidade ainda pode ser um desafio, no entanto." #: lang/json/mutation_from_json.py msgid "Pugilist" -msgstr "boxer" +msgstr "" #. ~ Description for Pugilist #: lang/json/mutation_from_json.py @@ -115388,12 +102132,10 @@ msgid "" "You are experienced in the Sweet Science of boxing. You could've had a shot" " at a local boxing tournament, if the Cataclysm hadn't screwed that up." msgstr "" -" Você é experiente na ciência doce do boxe. Você poderia ter tido um tiro em" -" um torneio de boxe local, se o Cataclysm não tivesse estragado tudo." #: lang/json/mutation_from_json.py msgid "Autodoc Specialist" -msgstr "Especialista em Autodoc" +msgstr "" #. ~ Description for Autodoc Specialist #: lang/json/mutation_from_json.py @@ -115402,13 +102144,10 @@ msgid "" "for surgical procedures. Operations involving it will be moderately more " "likely to succeed." msgstr "" -" Você é treinado na operação adequada do Autodoc, uma máquina avançada usada" -" para procedimentos cirúrgicos. As operações envolvendo o mesmo terão uma " -"probabilidade moderadamente maior de sucesso." #: lang/json/mutation_from_json.py msgid "Dungeon Master" -msgstr "Mestre das Masmorras" +msgstr "" #. ~ Description for Dungeon Master #: lang/json/mutation_from_json.py @@ -115418,78 +102157,74 @@ msgid "" "slightly faster, and suffer no reading time penalty for books too complex " "for you to easily understand." msgstr "" -" Semanas passadas escolhendo manuais e pesquisando tópicos dos quais você " -"não é versado o ensinaram a encontrar o que você precisa saber mais " -"rapidamente. Você lê um pouco mais rápido e não sofre penalidade de leitura " -"por livros muito complexos para você entender facilmente." #: lang/json/mutation_from_json.py msgid "Carries Brandy" -msgstr "Carrega Brandy" +msgstr "" #. ~ Description for Carries Brandy #: lang/json/mutation_from_json.py msgid "This Bartender now carries brandy!" -msgstr "Este barman agora leva conhaque!" +msgstr "" #: lang/json/mutation_from_json.py msgid "Carries Rum" -msgstr "Carrega rum" +msgstr "" #. ~ Description for Carries Rum #: lang/json/mutation_from_json.py msgid "This Bartender now carries rum!" -msgstr "Este barman agora carrega rum!" +msgstr "" #: lang/json/mutation_from_json.py msgid "Carries Whiskey" -msgstr "Carrega Whiskey" +msgstr "" #. ~ Description for Carries Whiskey #: lang/json/mutation_from_json.py msgid "This Bartender now carries whiskey!" -msgstr "Este barman agora leva uísque!" +msgstr "" #: lang/json/mutation_from_json.py msgid "Has Level 1 Companion Missions" -msgstr "Tem Missões de Companheiro de Nível 1" +msgstr "" #. ~ Description for Has Level 1 Companion Missions #: lang/json/mutation_from_json.py msgid "New mission options have become available!" -msgstr "Novas opções de missão estão disponíveis!" +msgstr "" #: lang/json/mutation_from_json.py msgid "Has Level 1 Construction Built" -msgstr "Tem construção de nível 1 construída" +msgstr "" #. ~ Description for Has Level 1 Construction Built #. ~ Description for Has Level 2 Construction Built #: lang/json/mutation_from_json.py msgid "New options may have become available!" -msgstr "Novas opções podem estar disponíveis!" +msgstr "" #: lang/json/mutation_from_json.py msgid "Has Level 2 Construction Built" -msgstr "Tem construção de nível 2 construída" +msgstr "" #: lang/json/mutation_from_json.py msgid "Starting NPC" -msgstr "Começando o NPC" +msgstr "" #. ~ Description for Starting NPC #: lang/json/mutation_from_json.py msgid "Marker for starting NPCs" -msgstr "Marcador para iniciar NPCs" +msgstr "" #: lang/json/mutation_from_json.py msgid "Static NPC" -msgstr "NPC estático" +msgstr "" #. ~ Description for Static NPC #: lang/json/mutation_from_json.py msgid "Marker for static NPCs" -msgstr "Marcador para NPCs estáticos" +msgstr "" #: lang/json/mutation_from_json.py msgid "Hallucination" @@ -115503,26 +102238,25 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Vision" -msgstr "Visão de Depuração" +msgstr "" #. ~ Description for Debug Vision #: lang/json/mutation_from_json.py msgid "You can clearly see that this is for dev purposes only." msgstr "" -" Você pode ver claramente que isso é apenas para fins de desenvolvimento." #: lang/json/mutation_from_json.py msgid "Debug Invisibility" -msgstr "Invisibilidade de depuração" +msgstr "" #. ~ Description for Debug Invisibility #: lang/json/mutation_from_json.py msgid "If you see this, you'd best be debugging something." -msgstr "Se você ver isso, seria melhor depurar alguma coisa." +msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Life Support" -msgstr "Depurar o suporte à vida" +msgstr "" #. ~ Description for Debug Life Support #: lang/json/mutation_from_json.py @@ -115530,48 +102264,46 @@ msgid "" "Holds hunger, thirst, and fatigue stable. You can debug all year long with " "this one!" msgstr "" -" Mantém a fome, sede e fadiga estáveis. Você pode depurar o ano todo com " -"esse!" #: lang/json/mutation_from_json.py msgid "Debug Deodorizer" -msgstr "Debug Deodorizer" +msgstr "" #. ~ Description for Debug Deodorizer #: lang/json/mutation_from_json.py msgid "Smell that bug? Smell's certainly not coming from you!" -msgstr "Cheirar esse bug? O cheiro certamente não vem de você!" +msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Silent Walk" -msgstr "Debug Silent Walk" +msgstr "" #. ~ Description for Debug Silent Walk #: lang/json/mutation_from_json.py msgid "Be vewwy vewwy quiet. We're hunting bugs." -msgstr "Seja vewwy vewwy quieto. Estamos caçando insetos." +msgstr "" #: lang/json/mutation_from_json.py msgid "Debug HVAC" -msgstr "Depurar AVAC" +msgstr "" #. ~ Description for Debug HVAC #: lang/json/mutation_from_json.py msgid "Temperature and weather won't bug you." -msgstr "Temperatura e clima não vão incomodar você." +msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Invincibility" -msgstr "Invencibilidade de depuração" +msgstr "" #. ~ Description for Debug Invincibility #: lang/json/mutation_from_json.py msgid "Bug repellent forcefield." -msgstr "Campo de força repelente de insetos." +msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Hammerspace" -msgstr "Depurar Hammerspace" +msgstr "" #. ~ Description for Debug Hammerspace #: lang/json/mutation_from_json.py @@ -115579,40 +102311,37 @@ msgid "" "Crafting and construction requirements bugger off with this one. Apply with" " care." msgstr "" -" Os requisitos de construção e de construção são prejudiciais com este. " -"Aplique com cuidado." #: lang/json/mutation_from_json.py msgid "Debug Mind Control" -msgstr "Debug Mind Control" +msgstr "" #. ~ Description for Debug Mind Control #: lang/json/mutation_from_json.py msgid "Mind the bugs, would you kindly?" -msgstr "Mente os insetos, você gentilmente?" +msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Carrying Capacity" -msgstr "Capacidade de Carga de Depuração" +msgstr "" #. ~ Description for Debug Carrying Capacity #: lang/json/mutation_from_json.py msgid "Lets you carry 15 bugs worth of your body weight in your mandibles." -msgstr "Deixa você carregar 15 erros no seu peso em suas mandíbulas." +msgstr "" #: lang/json/mutation_from_json.py msgid "Debug Bionic Installation" -msgstr "Depurar a instalação biônica" +msgstr "" #. ~ Description for Debug Bionic Installation #: lang/json/mutation_from_json.py msgid "Lets you instantly install torsion ratchets for your eight legs." msgstr "" -" Permite instalar instantaneamente catracas de torção para suas oito pernas." #: lang/json/mutation_from_json.py msgid "Debug Bionic Power" -msgstr "Depurar poder biônico" +msgstr "" #. ~ Description for Debug Bionic Power #: lang/json/mutation_from_json.py @@ -115620,12 +102349,10 @@ msgid "" "For fueling your inner cybug. Activate to increase power capacity by 100 " "(can be repeated.)" msgstr "" -" Por abastecer seu cybug interno. Ativar para aumentar a capacidade de " -"energia em 100 (pode ser repetido)." #: lang/json/mutation_from_json.py msgid "Squeamish" -msgstr "Squeamish" +msgstr "" #. ~ Description for Squeamish #: lang/json/mutation_from_json.py @@ -115633,12 +102360,10 @@ msgid "" "You can't even think about putting filthy clothes on yourself, especially " "from zombies' corpses." msgstr "" -" Você não pode sequer pensar em colocar roupas sujas em si mesmo, " -"especialmente a partir de cadáveres de zumbis." #: lang/json/mutation_from_json.py msgid "Bee" -msgstr "Abelha" +msgstr "" #. ~ Description for Bee #: lang/json/mutation_from_json.py @@ -115646,8 +102371,6 @@ msgid "" "NPC trait that makes monsters see it as a bee. It is a bug (heh) if you " "have it." msgstr "" -" Traço de NPC que faz com que os monstros a vejam como uma abelha. É um bug " -"(heh) se você tiver." #: lang/json/mutation_from_json.py msgid "mycus friend" @@ -115660,7 +102383,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "mute" -msgstr "mudo" +msgstr "" #. ~ Description for mute #: lang/json/mutation_from_json.py @@ -115668,8 +102391,6 @@ msgid "" "NPC trait that makes it impossible to say anything. It is a bug if you have" " it." msgstr "" -" Traço de NPC que torna impossível dizer qualquer coisa. É um bug se você " -"tiver." #: lang/json/mutation_from_json.py msgid "Nomad" @@ -115706,7 +102427,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Survivor Story" -msgstr "História do Sobrevivente" +msgstr "" #. ~ Description for Survivor Story #. ~ Description for Survivor @@ -115715,11 +102436,11 @@ msgstr "História do Sobrevivente" #. ~ Description for Survivor Story #: lang/json/mutation_from_json.py msgid "This NPC could tell you about how they survived the cataclysm" -msgstr "Este NPC poderia te contar como eles sobreviveram ao cataclismo" +msgstr "" #: lang/json/mutation_from_json.py msgid "Agriculture Training" -msgstr "Treinamento Agrícola" +msgstr "" #. ~ Description for Agriculture Training #: lang/json/mutation_from_json.py @@ -115727,21 +102448,19 @@ msgid "" "This survivor has some formal training in agriculture, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em agricultura, mas não " -"muita experiência." #: lang/json/mutation_from_json.py msgid "Agriculture Expert" -msgstr "Especialista em Agricultura" +msgstr "" #. ~ Description for Agriculture Expert #: lang/json/mutation_from_json.py msgid "This survivor has extensive experience in agriculture." -msgstr "Este sobrevivente tem uma vasta experiência em agricultura." +msgstr "" #: lang/json/mutation_from_json.py msgid "Biochemistry Training" -msgstr "Treinamento de Bioquímica" +msgstr "" #. ~ Description for Biochemistry Training #: lang/json/mutation_from_json.py @@ -115749,24 +102468,20 @@ msgid "" "This survivor has some formal training in biochemistry, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em bioquímica, mas não muita" -" experiência." #: lang/json/mutation_from_json.py msgid "Biochemistry Expert" -msgstr "Especialista em Bioquímica" +msgstr "" #. ~ Description for Biochemistry Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in biochemistry, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em bioquímica, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Biology Training" -msgstr "Treinamento de biologia" +msgstr "" #. ~ Description for Biology Training #: lang/json/mutation_from_json.py @@ -115774,12 +102489,10 @@ msgid "" "This survivor has some formal training in general biology, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em biologia geral, mas não " -"muita experiência." #: lang/json/mutation_from_json.py msgid "Biology Expert" -msgstr "Especialista em Biologia" +msgstr "" #. ~ Description for Biology Expert #: lang/json/mutation_from_json.py @@ -115787,12 +102500,10 @@ msgid "" "This survivor has extensive experience in general biology, a PhD or " "equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em biologia geral, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Bookkeeping Training" -msgstr "Treinamento de contabilidade" +msgstr "" #. ~ Description for Bookkeeping Training #: lang/json/mutation_from_json.py @@ -115800,44 +102511,38 @@ msgid "" "This survivor has some formal training in bookkeeping, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em contabilidade, mas não " -"muita experiência." #: lang/json/mutation_from_json.py msgid "Bookkeeping Expert" -msgstr "Especialista em contabilidade" +msgstr "" #. ~ Description for Bookkeeping Expert #: lang/json/mutation_from_json.py msgid "This survivor has extensive experience in bookkeeping." -msgstr "Este sobrevivente tem uma vasta experiência em contabilidade." +msgstr "" #: lang/json/mutation_from_json.py msgid "Botany Training" -msgstr "Treinamento de Botânica" +msgstr "" #. ~ Description for Botany Training #: lang/json/mutation_from_json.py msgid "" "This survivor has some formal training in botany, but not much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em botânica, mas não muita " -"experiência." #: lang/json/mutation_from_json.py msgid "Botany Expert" -msgstr "Especialista em Botânica" +msgstr "" #. ~ Description for Botany Expert #: lang/json/mutation_from_json.py msgid "This survivor has extensive experience in botany, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em botânica, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Chemistry Training" -msgstr "Treinamento Quimico" +msgstr "" #. ~ Description for Chemistry Training #: lang/json/mutation_from_json.py @@ -115845,12 +102550,10 @@ msgid "" "This survivor has some formal training in inorganic chemistry, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em química inorgânica, mas " -"não muita experiência." #: lang/json/mutation_from_json.py msgid "Chemistry Expert" -msgstr "Perito Químico" +msgstr "" #. ~ Description for Chemistry Expert #: lang/json/mutation_from_json.py @@ -115858,12 +102561,10 @@ msgid "" "This survivor has extensive experience in inorganic chemistry, a PhD or " "equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em química inorgânica, um PhD " -"ou equivalente." #: lang/json/mutation_from_json.py msgid "Culinary Training" -msgstr "Treinamento Culinário" +msgstr "" #. ~ Description for Culinary Training #: lang/json/mutation_from_json.py @@ -115871,12 +102572,10 @@ msgid "" "This survivor has some formal training in culinary arts, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em artes culinárias, mas não" -" muita experiência." #: lang/json/mutation_from_json.py msgid "Culinary Expert" -msgstr "Especialista Culinário" +msgstr "" #. ~ Description for Culinary Expert #: lang/json/mutation_from_json.py @@ -115884,12 +102583,10 @@ msgid "" "This survivor has extensive experience in culinary arts, a professional chef" " or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em artes culinárias, um chef " -"profissional ou equivalente." #: lang/json/mutation_from_json.py msgid "Electrical Engineering Training" -msgstr "Treinamento em Engenharia Elétrica" +msgstr "" #. ~ Description for Electrical Engineering Training #: lang/json/mutation_from_json.py @@ -115897,12 +102594,10 @@ msgid "" "This survivor has some formal training in electrical engineering, but not " "much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em engenharia elétrica, mas " -"não muita experiência." #: lang/json/mutation_from_json.py msgid "Electrical Engineering Expert" -msgstr "Especialista em Engenharia Elétrica" +msgstr "" #. ~ Description for Electrical Engineering Expert #: lang/json/mutation_from_json.py @@ -115910,12 +102605,10 @@ msgid "" "This survivor has extensive experience in electrical engineering: an EngD, " "extensive field experience, or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em engenharia elétrica: um " -"EngD, extensa experiência de campo ou equivalente." #: lang/json/mutation_from_json.py msgid "Mechanical Engineering Training" -msgstr "Treinamento em Engenharia Mecânica" +msgstr "" #. ~ Description for Mechanical Engineering Training #: lang/json/mutation_from_json.py @@ -115923,12 +102616,10 @@ msgid "" "This survivor has some formal training in mechanical engineering, but not " "much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em engenharia mecânica, mas " -"não muita experiência." #: lang/json/mutation_from_json.py msgid "Mechanical Engineering Expert" -msgstr "Perito em Engenharia Mecânica" +msgstr "" #. ~ Description for Mechanical Engineering Expert #: lang/json/mutation_from_json.py @@ -115936,12 +102627,10 @@ msgid "" "This survivor has extensive experience in mechanical engineering: an EngD, " "extensive field experience, or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em engenharia mecânica: um " -"EngD, extensa experiência de campo ou equivalente." #: lang/json/mutation_from_json.py msgid "Software Engineering Training" -msgstr "Treinamento em Engenharia de Software" +msgstr "" #. ~ Description for Software Engineering Training #: lang/json/mutation_from_json.py @@ -115949,12 +102638,10 @@ msgid "" "This survivor has some formal training in software engineering, but not much" " experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em engenharia de software, " -"mas não muita experiência." #: lang/json/mutation_from_json.py msgid "Software Engineering Expert" -msgstr "Especialista em engenharia de software" +msgstr "" #. ~ Description for Software Engineering Expert #: lang/json/mutation_from_json.py @@ -115962,12 +102649,10 @@ msgid "" "This survivor has extensive experience in software engineering: an EngD, " "extensive field experience, or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em engenharia de software: um " -"EngD, extensa experiência de campo ou equivalente." #: lang/json/mutation_from_json.py msgid "Structural Engineering Training" -msgstr "Treinamento em Engenharia Estrutural" +msgstr "" #. ~ Description for Structural Engineering Training #: lang/json/mutation_from_json.py @@ -115975,12 +102660,10 @@ msgid "" "This survivor has some formal training in structural engineering, but not " "much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em engenharia estrutural, " -"mas não muita experiência." #: lang/json/mutation_from_json.py msgid "Structural Engineering Expert" -msgstr "Especialista em Engenharia Estrutural" +msgstr "" #. ~ Description for Structural Engineering Expert #: lang/json/mutation_from_json.py @@ -115988,12 +102671,10 @@ msgid "" "This survivor has extensive experience in structural engineering: an EngD, " "extensive field experience, or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em engenharia estrutural: um " -"EngD, extensa experiência de campo ou equivalente." #: lang/json/mutation_from_json.py msgid "Entomology Training" -msgstr "Treinamento de entomologia" +msgstr "" #. ~ Description for Entomology Training #: lang/json/mutation_from_json.py @@ -116001,120 +102682,100 @@ msgid "" "This survivor has some formal training in entomology, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em entomologia, mas não " -"muita experiência." #: lang/json/mutation_from_json.py msgid "Entomology Expert" -msgstr "Perito em Entomologia" +msgstr "" #. ~ Description for Entomology Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in entomology, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em entomologia, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Geology Training" -msgstr "Treinamento Geológico" +msgstr "" #. ~ Description for Geology Training #: lang/json/mutation_from_json.py msgid "" "This survivor has some formal training in geology, but not much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em geologia, mas não muita " -"experiência." #: lang/json/mutation_from_json.py msgid "Geology Expert" -msgstr "Especialista em Geologia" +msgstr "" #. ~ Description for Geology Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in geology, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em geologia, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Medicine Training" -msgstr "Treinamento em Medicina" +msgstr "" #. ~ Description for Medicine Training #: lang/json/mutation_from_json.py msgid "" "This survivor has some formal training in medicine, but not much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em medicina, mas não muita " -"experiência." #: lang/json/mutation_from_json.py msgid "Medicine Expert" -msgstr "Especialista em medicina" +msgstr "" #. ~ Description for Medicine Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in medicine, an MD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em medicina, um MD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Mycology Training" -msgstr "Treinamento de micologia" +msgstr "" #. ~ Description for Mycology Training #: lang/json/mutation_from_json.py msgid "" "This survivor has some formal training in mycology, but not much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em micologia, mas não muita " -"experiência." #: lang/json/mutation_from_json.py msgid "Mycology Expert" -msgstr "Especialista em Micologia" +msgstr "" #. ~ Description for Mycology Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in mycology, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em micologia, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Physics Training" -msgstr "Treinamento Físico" +msgstr "" #. ~ Description for Physics Training #: lang/json/mutation_from_json.py msgid "" "This survivor has some formal training in physics, but not much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em física, mas não muita " -"experiência." #: lang/json/mutation_from_json.py msgid "Physics Expert" -msgstr "Especialista em Física" +msgstr "" #. ~ Description for Physics Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in physics, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em física, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Psychology Training" -msgstr "Treinamento Psicológico" +msgstr "" #. ~ Description for Psychology Training #: lang/json/mutation_from_json.py @@ -116122,24 +102783,20 @@ msgid "" "This survivor has some formal training in psychology, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em psicologia, mas não muita" -" experiência." #: lang/json/mutation_from_json.py msgid "Psychology Expert" -msgstr "Especialista em Psicologia" +msgstr "" #. ~ Description for Psychology Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in psychology, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em psicologia, um doutorado ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Sanitation Training" -msgstr "Treinamento de saneamento" +msgstr "" #. ~ Description for Sanitation Training #: lang/json/mutation_from_json.py @@ -116147,45 +102804,39 @@ msgid "" "This survivor has some formal training in sanitation, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em saneamento, mas não muita" -" experiência." #: lang/json/mutation_from_json.py msgid "Sanitation Expert" -msgstr "Especialista em Saneamento" +msgstr "" #. ~ Description for Sanitation Expert #: lang/json/mutation_from_json.py msgid "This survivor has extensive experience in sanitation." -msgstr "Este sobrevivente tem uma vasta experiência em saneamento." +msgstr "" #: lang/json/mutation_from_json.py msgid "Teaching Training" -msgstr "Treinamento de Ensino" +msgstr "" #. ~ Description for Teaching Training #: lang/json/mutation_from_json.py msgid "" "This survivor has some formal training in teaching, but not much experience." msgstr "" -" Este sobrevivente tem algum treinamento formal no ensino, mas não muita " -"experiência." #: lang/json/mutation_from_json.py msgid "Teaching Expert" -msgstr "Especialista docente" +msgstr "" #. ~ Description for Teaching Expert #: lang/json/mutation_from_json.py msgid "" "This survivor has extensive experience in teaching, a PhD or equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência no ensino, um PhD ou " -"equivalente." #: lang/json/mutation_from_json.py msgid "Veterinary Training" -msgstr "Treinamento Veterinário" +msgstr "" #. ~ Description for Veterinary Training #: lang/json/mutation_from_json.py @@ -116193,12 +102844,10 @@ msgid "" "This survivor has some formal training in veterinary medicine, but not much " "experience." msgstr "" -" Este sobrevivente tem algum treinamento formal em medicina veterinária, mas" -" não muita experiência." #: lang/json/mutation_from_json.py msgid "Veterinary Expert" -msgstr "Perito Veterinário" +msgstr "" #. ~ Description for Veterinary Expert #: lang/json/mutation_from_json.py @@ -116206,8 +102855,6 @@ msgid "" "This survivor has extensive experience in veterinary medicine, a DVM or " "equivalent." msgstr "" -" Este sobrevivente tem uma vasta experiência em medicina veterinária, um DVM" -" ou equivalente." #: lang/json/mutation_from_json.py msgid "Alpine Conditioning" @@ -116718,15 +103365,15 @@ msgstr "Sem classe" #: lang/json/npc_class_from_json.py msgid "I'm just wandering." -msgstr "Eu estou apenas vagando." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Debug Dude" -msgstr "Depurar Cara" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm helping you test the game." -msgstr "Estou te ajudando a testar o jogo." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Shopkeep" @@ -116734,7 +103381,7 @@ msgstr "Vendedor" #: lang/json/npc_class_from_json.py msgid "I'm a local shopkeeper." -msgstr "Eu sou um lojista local." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Hacker" @@ -116742,7 +103389,7 @@ msgstr "Hacker" #: lang/json/npc_class_from_json.py msgid "I'm looking for some choice systems to hack." -msgstr "Eu estou procurando por alguns sistemas de escolha para hackear." +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py @@ -116751,7 +103398,7 @@ msgstr "Doutor" #: lang/json/npc_class_from_json.py msgid "I'm looking for wounded to help." -msgstr "Estou procurando por feridos para ajudar." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Trader" @@ -116759,15 +103406,15 @@ msgstr "Negociante" #: lang/json/npc_class_from_json.py msgid "I'm collecting gear and selling it." -msgstr "Eu estou colecionando equipamento e vendendo isto." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Ninja" -msgstr "Ninja" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm a wandering master of martial arts." -msgstr "Eu sou um mestre errante de artes marciais." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Cowboy" @@ -116775,7 +103422,7 @@ msgstr "Cowboy" #: lang/json/npc_class_from_json.py msgid "Just looking for some wrongs to right." -msgstr "Apenas procurando por alguns erros para corrigir." +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Marloss Voice" @@ -116791,7 +103438,7 @@ msgstr "Cientista" #: lang/json/npc_class_from_json.py msgid "I'm looking for clues concerning these monsters' origins..." -msgstr "Estou procurando pistas sobre as origens desses monstros ..." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Bounty Hunter" @@ -116799,7 +103446,7 @@ msgstr "Caçador" #: lang/json/npc_class_from_json.py msgid "I'm a killer for hire." -msgstr "Eu sou um assassino de aluguel." +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Thug" @@ -116807,47 +103454,47 @@ msgstr "N" #: lang/json/npc_class_from_json.py msgid "I'm just here for the paycheck." -msgstr "Eu estou aqui apenas pelo pagamento." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Scavenger" -msgstr "Scavenger" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm just trying to survive." -msgstr "Eu estou apenas tentando sobreviver." +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Arsonist" -msgstr "Incendiário" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm just watching the world burn." -msgstr "Eu só estou vendo o mundo queimar." +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm tracking game." -msgstr "Estou acompanhando o jogo." +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Soldier" -msgstr "Soldado" +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Bartender" -msgstr "Garçom" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm looking for new drink recipes." -msgstr "Estou procurando novas receitas de bebida." +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Apis" -msgstr "Apis" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm bugged - I shouldn't talk to you." -msgstr "Estou com defeito - eu não deveria falar com você." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Real Person" @@ -116859,7 +103506,7 @@ msgstr "" #: lang/json/npc_class_from_json.py msgid "Chef" -msgstr "líder" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm a chef." @@ -116891,12 +103538,12 @@ msgstr "" #: lang/json/npc_class_from_json.py msgid "Beggar" -msgstr "Mendigo" +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py #: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" -msgstr "Refugiado" +msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Merchant" @@ -116904,11 +103551,11 @@ msgstr "Mercador" #: lang/json/npc_class_from_json.py msgid "Mercenary" -msgstr "Mercenário" +msgstr "" #: lang/json/npc_class_from_json.py msgid "Fighting for the all-mighty dollar." -msgstr "Lutando pelo dólar todo-poderoso." +msgstr "" #: lang/json/npc_class_from_json.py lang/json/terrain_from_json.py msgid "intercom" @@ -116941,287 +103588,245 @@ msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" -msgstr "Cativo" +msgstr "" #: lang/json/npc_class_from_json.py msgid "I got captured by those jerks." -msgstr "Eu fui capturado por aqueles idiotas." +msgstr "" #: lang/json/npc_class_from_json.py msgid "I got locked up those yahoos." -msgstr "Eu tranquei aqueles yahoos." +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm just trying to stay alive." -msgstr "Eu só estou tentando ficar vivo." +msgstr "" #: lang/json/npc_class_from_json.py msgid "I'm just trying to stay alive.... and it ain't as easy as it looks." -msgstr "Eu só estou tentando ficar vivo ... e não é tão fácil quanto parece." +msgstr "" #: lang/json/npc_class_from_json.py msgid "Lizard Mutant" -msgstr "Mutante de Lagarto" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for lizard mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagéneo lagarto ... este mundo não é mais lugar para " -"humanos, e eu não pretendo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Medical Mutant" -msgstr "Mutante Médico" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for medical mutagen... this world is no place for humans " "anymore, and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagénico médico ... este mundo não é mais lugar para " -"humanos, e não pretendo continuar a ser um." #: lang/json/npc_class_from_json.py msgid "Bird Mutant" -msgstr "Mutante de Pássaro" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for bird mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Eu estou procurando por mutagênicos de aves ... este mundo não é mais lugar" -" para humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Fish Mutant" -msgstr "Peixe mutante" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for fish mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Estou à procura de peixe mutagênico ... este mundo não é mais lugar para " -"humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Beast Mutant" -msgstr "Mutante da Besta" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for beast mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Estou procurando mutagênese de besta ... esse mundo não é mais lugar para " -"humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Ursine Mutant" -msgstr "Mutante Ursina" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for ursine mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagéneo de ursina ... este mundo não é mais lugar para" -" humanos, e não pretendo continuar a ser um." #: lang/json/npc_class_from_json.py msgid "Feline Mutant" -msgstr "Mutante Felino" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for feline mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou procurando mutagen felino ... este mundo não é mais lugar para " -"humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Lupine Mutant" -msgstr "Mutante Lupino" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for lupine mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagéneo lupino ... este mundo não é mais lugar para " -"humanos, e não pretendo continuar a ser um." #: lang/json/npc_class_from_json.py msgid "Cattle Mutant" -msgstr "Mutante de Gado" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for cattle mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou procurando por mutagênios no gado ... esse mundo não é mais lugar " -"para humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Insect Mutant" -msgstr "Mutante Inseto" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for insect mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou procurando por mutagênios de insetos ... esse mundo não é mais lugar " -"para humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Plant Mutant" -msgstr "Mutante Vegetal" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for plant mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Eu estou procurando por mutagênicos de plantas ... este mundo não é mais " -"lugar para humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Slime Mutant" -msgstr "Mutante de Lodo" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for slime mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagen de limo ... este mundo não é mais lugar para " -"humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Troglobite Mutant" -msgstr "Mutante Troglóbio" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for troglobite mutagen... this world is no place for humans " "anymore, and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagéneo troglóbico ... este mundo não é mais lugar " -"para humanos, e não pretendo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Cephalopod Mutant" -msgstr "Mutante Cefalópode" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for cephalopod mutagen... this world is no place for humans " "anymore, and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagéneo cefalópode ... este mundo não é mais lugar " -"para humanos, e não pretendo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Spider Mutant" -msgstr "Mutante de Aranha" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for spider mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagenes de aranha ... este mundo não é mais lugar para" -" humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Rat Mutant" -msgstr "Mutante de Rato" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for rat mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagênese de rato ... este mundo não é mais lugar para " -"humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Mouse Mutant" -msgstr "Mutante de Rato" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for mouse mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagenes de ratos ... este mundo não é mais lugar para " -"humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Alpha Mutant" -msgstr "Mutante Alfa" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for alpha mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Eu estou procurando por um mutagênico alfa ... este mundo não é mais lugar " -"para humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Elfa Mutant" -msgstr "Elfa Mutante" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for elfa mutagen... this world is no place for humans anymore, " "and I don't plan to keep being one." msgstr "" -" Eu estou procurando mutagen elfa ... este mundo não é mais lugar para " -"humanos, e eu não planejo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Chimera Mutant" -msgstr "Mutante Quimera" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for chimera mutagen... this world is no place for humans " "anymore, and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagéneo quimérico ... este mundo não é mais lugar para" -" humanos, e não pretendo continuar sendo um." #: lang/json/npc_class_from_json.py msgid "Raptor Mutant" -msgstr "Mutante Raptor" +msgstr "" #: lang/json/npc_class_from_json.py msgid "" "I'm looking for raptor mutagen... this world is no place for humans anymore," " and I don't plan to keep being one." msgstr "" -" Estou à procura de mutagéneo de raptor ... este mundo não é mais lugar para" -" humanos, e eu não planejo continuar sendo um." #: lang/json/npc_from_json.py msgid "Tester" -msgstr "Testador" +msgstr "" #: lang/json/npc_from_json.py msgid "Bandit" -msgstr "Bandido" +msgstr "" #: lang/json/npc_from_json.py msgid "Psycho" -msgstr "Psicopata" +msgstr "" #: lang/json/npc_from_json.py msgid "chef" @@ -117233,43 +103838,43 @@ msgstr "" #: lang/json/npc_from_json.py msgid "CPT" -msgstr "CPT" +msgstr "" #: lang/json/npc_from_json.py msgid "SFC" -msgstr "SFC" +msgstr "" #: lang/json/npc_from_json.py msgid "beggar" -msgstr "mendigo" +msgstr "" #: lang/json/npc_from_json.py msgid "Reena Sandhu" -msgstr "Reena Sandhu" +msgstr "" #: lang/json/npc_from_json.py msgid "Dino Dave" -msgstr "Dino Dave" +msgstr "" #: lang/json/npc_from_json.py msgid "Luo Meizhen" -msgstr "Luo Meizhen" +msgstr "" #: lang/json/npc_from_json.py msgid "Brandon Garder" -msgstr "Brandon Garder" +msgstr "" #: lang/json/npc_from_json.py msgid "Yusuke Taylor" -msgstr "Yusuke Taylor" +msgstr "" #: lang/json/npc_from_json.py msgid "refugee" -msgstr "refugiado" +msgstr "" #: lang/json/npc_from_json.py msgid "Aleesha Seward" -msgstr "Aleesha Seward" +msgstr "" #: lang/json/npc_from_json.py msgid "Alonso Lautrec" @@ -117277,11 +103882,11 @@ msgstr "" #: lang/json/npc_from_json.py msgid "Boris Borichenko" -msgstr "Boris Borichenko" +msgstr "" #: lang/json/npc_from_json.py msgid "Dana Nunez" -msgstr "Dana Nunez" +msgstr "" #: lang/json/npc_from_json.py msgid "Draco Dune" @@ -117301,7 +103906,7 @@ msgstr "" #: lang/json/npc_from_json.py msgid "Jenny Forcette" -msgstr "Jenny Forcette" +msgstr "" #: lang/json/npc_from_json.py msgid "John Clemens" @@ -117317,7 +103922,7 @@ msgstr "" #: lang/json/npc_from_json.py msgid "Pablo Nunez" -msgstr "Pablo Nunez" +msgstr "" #: lang/json/npc_from_json.py msgid "Rhyzaea Johnny" @@ -117325,7 +103930,7 @@ msgstr "" #: lang/json/npc_from_json.py msgid "Stan Borichenko" -msgstr "Stan Borichenko" +msgstr "" #: lang/json/npc_from_json.py msgid "Uyen Tran" @@ -117333,27 +103938,27 @@ msgstr "" #: lang/json/npc_from_json.py msgid "Vanessa Toby" -msgstr "Vanessa Toby" +msgstr "" #: lang/json/npc_from_json.py msgid "Broker" -msgstr "Corretor" +msgstr "" #: lang/json/npc_from_json.py msgid "Guard" -msgstr "Guarda" +msgstr "" #: lang/json/npc_from_json.py msgid "Makayla Sanchez" -msgstr "Makayla Sanchez" +msgstr "" #: lang/json/npc_from_json.py msgid "Representative" -msgstr "Representante" +msgstr "" #: lang/json/npc_from_json.py msgid "Merc" -msgstr "Merc" +msgstr "" #: lang/json/npc_from_json.py msgid "the intercom" @@ -117373,51 +103978,51 @@ msgstr "" #: lang/json/npc_from_json.py msgid "Barber" -msgstr "barbeiro" +msgstr "" #: lang/json/npc_from_json.py msgid "Carpenter" -msgstr "Carpinteiro" +msgstr "" #: lang/json/npc_from_json.py msgid "Crop Overseer" -msgstr "Superintendente de Colheita" +msgstr "" #: lang/json/npc_from_json.py msgid "Farmer" -msgstr "Agricultor" +msgstr "" #: lang/json/npc_from_json.py msgid "Foreman" -msgstr "Capataz" +msgstr "" #: lang/json/npc_from_json.py msgid "Nurse" -msgstr "Enfermeira" +msgstr "" #: lang/json/npc_from_json.py msgid "Scavenger Boss" -msgstr "Chefe do Tesouro" +msgstr "" #: lang/json/npc_from_json.py msgid "Scrapper" -msgstr "scrapper" +msgstr "" #: lang/json/npc_from_json.py msgid "Laborer" -msgstr "Trabalhador" +msgstr "" #: lang/json/npc_from_json.py msgid "Lumberjack" -msgstr "Lenhador" +msgstr "" #: lang/json/npc_from_json.py msgid "Woodworker" -msgstr "Marceneiro" +msgstr "" #: lang/json/npc_from_json.py msgid "Raider" -msgstr "Corsário" +msgstr "" #: lang/json/overmap_land_use_code_from_json.py msgid "Cropland" @@ -117777,7 +104382,7 @@ msgstr "drive-through abandonado" #: lang/json/overmap_terrain_from_json.py msgid "noname" -msgstr "noname" +msgstr "" #: lang/json/overmap_terrain_from_json.py #: lang/json/overmap_terrain_from_json.py src/mapdata.cpp src/mapdata.cpp @@ -117786,7 +104391,7 @@ msgstr "nada" #: lang/json/overmap_terrain_from_json.py msgid "city building" -msgstr "construção da cidade" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "park" @@ -117802,11 +104407,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "boat rental" -msgstr "aluguer de barcos" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "riverside dwelling" -msgstr "habitação ribeirinha" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "forest" @@ -117830,15 +104435,15 @@ msgstr "celeiro" #: lang/json/overmap_terrain_from_json.py msgid "car corner" -msgstr "canto do carro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "shipwreck" -msgstr "naufrágio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "razorclaw nest" -msgstr "ninho de razorclaw" +msgstr "" #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "radio tower" @@ -117850,40 +104455,40 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "looted building" -msgstr "edifício saqueado" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "ramp testing area" -msgstr "área de teste de rampa" +msgstr "" #: lang/json/overmap_terrain_from_json.py #: lang/json/start_location_from_json.py msgid "campsite" -msgstr "acampamento" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "campsites" -msgstr "parques de campismo" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "incomplete cabin" -msgstr "cabine incompleta" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "field campsite" -msgstr "campo de campismo" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "pond" -msgstr "lagoa" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bog" -msgstr "livro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "swamp shack" -msgstr "barraca de pântano" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "swamp shack roof" @@ -117892,7 +104497,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py #: lang/json/start_location_from_json.py msgid "campground" -msgstr "área de camping" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "campground roof" @@ -117900,23 +104505,23 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "desolate barn" -msgstr "celeiro desolado" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mass grave" -msgstr "sepultura em massa" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "giant sinkhole" -msgstr "buraco gigante" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "giant sinkhole base" -msgstr "base de sumidouro gigante" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public space" -msgstr "espaço público" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "parking lot" @@ -118032,7 +104637,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "cemetery" -msgstr "cemitério" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "generic_orchard" @@ -118060,7 +104665,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "sugar house" -msgstr "casa de açúcar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "sugar house roof" @@ -118072,7 +104677,7 @@ msgstr "campo de fazenda" #: lang/json/overmap_terrain_from_json.py msgid "farm house" -msgstr "casa de fazenda" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "farm house roof" @@ -118101,31 +104706,31 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "orchard" -msgstr "Pomar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "apple orchard" -msgstr "Pomar de macieiras" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "orchard processing" -msgstr "processamento de pomar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "orchard stall" -msgstr "barraca de pomar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dairy farm" -msgstr "Fazenda de gado leiteiro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small cemetery" -msgstr "pequeno cemitério" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "moonshine still" -msgstr "luar ainda" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "moonshine still roof" @@ -118133,7 +104738,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "tree farm" -msgstr "fazenda de árvores" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "carriage house" @@ -118177,7 +104782,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dirt road" -msgstr "estrada de terra" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "silos" @@ -118189,7 +104794,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "rural house" -msgstr "casa rural" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "rural house roof" @@ -118277,7 +104882,7 @@ msgstr "estacionamento da torre" #: lang/json/overmap_terrain_from_json.py msgid "office courtyard" -msgstr "pátio do escritório" +msgstr "" #: lang/json/overmap_terrain_from_json.py #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py @@ -118343,7 +104948,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bookstore" -msgstr "livraria" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bookstore roof" @@ -118371,7 +104976,7 @@ msgstr "loja de café" #: lang/json/overmap_terrain_from_json.py msgid "teashop" -msgstr "loja de chá" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "teashop roof" @@ -118387,7 +104992,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "butcher shop" -msgstr "açougue" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "butcher shop roof" @@ -118395,7 +105000,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bike shop" -msgstr "loja de bicicleta" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bike shop roof" @@ -118443,7 +105048,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "music store" -msgstr "loja de música" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "music store roof" @@ -118479,15 +105084,15 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" -msgstr "entrada de superloja de melhoria home" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore" -msgstr "superstore de melhoria home" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "garage - gas station" -msgstr "garagem - posto de gasolina" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "garage - gas station roof" @@ -118495,7 +105100,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dispensary" -msgstr "dispensário" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dispensary roof" @@ -118503,7 +105108,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small office" -msgstr "pequeno escritório" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small office roof" @@ -118511,7 +105116,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "candy shop" -msgstr "loja de doces" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "candy shop roof" @@ -118519,7 +105124,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bakery" -msgstr "padaria" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bakery roof" @@ -118527,7 +105132,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "icecream shop" -msgstr "sorveteria" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "icecream shop roof" @@ -118535,7 +105140,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dollar store" -msgstr "loja do dólar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dollar store roof" @@ -118543,7 +105148,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "LAN center" -msgstr "Centro LAN" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "LAN center roof" @@ -118551,7 +105156,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "landscaping supply co" -msgstr "co abastecimento paisagismo" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "landscaping supply co roof" @@ -118559,7 +105164,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "veterans of foreign wars" -msgstr "veteranos de guerras estrangeiras" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "veterans of foreign wars center roof" @@ -118567,7 +105172,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "thrift store" -msgstr "brechó" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "thrift store roof" @@ -118575,7 +105180,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "daycare center" -msgstr "creche" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "daycare center roof" @@ -118583,7 +105188,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" -msgstr "loja de suprimentos para animais de estimação" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "pet supply store roof" @@ -118591,11 +105196,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "abandoned shopping plaza" -msgstr "praça de compras abandonada" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "veterinarian clinic" -msgstr "clínica veterinária" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "veterinarian clinic roof" @@ -118603,7 +105208,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "laundromat" -msgstr "lavanderia" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "laundromat roof" @@ -118675,11 +105280,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small market" -msgstr "pequeno mercado" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "sex shop" -msgstr "sex shop" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "sex shop roof" @@ -118687,7 +105292,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "internet cafe" -msgstr "internet café" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "internet cafe roof" @@ -118695,7 +105300,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "car showroom" -msgstr "Salão de automoveis" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "car showroom 2nd floor" @@ -118707,11 +105312,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "car dealership" -msgstr "concessionária de carros" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "tire shop" -msgstr "loja de pneus" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "tire shop roof" @@ -118719,7 +105324,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Head Shop" -msgstr "Head Shop" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "head shop roof" @@ -118743,7 +105348,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "gardening allotment" -msgstr "loteamento de jardinagem" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "gardening allotment roof" @@ -118751,7 +105356,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "animal pound" -msgstr "libra animal" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "animal pound roof" @@ -118759,7 +105364,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "animal shelter" -msgstr "abrigo de animais" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "animal shelter roof" @@ -118767,7 +105372,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "empty commercial lot" -msgstr "lote comercial vazio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "road" @@ -118787,51 +105392,51 @@ msgstr "rocha sólida" #: lang/json/overmap_terrain_from_json.py msgid "camp survey" -msgstr "pesquisa campal" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "survivor camp" -msgstr "acampamento de sobreviventes" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "survivor base" -msgstr "base de sobreviventes" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "farm survey" -msgstr "levantamento agropecuário" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "garage survey" -msgstr "pesquisa de garagem" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "kitchen survey" -msgstr "levantamento de cozinha" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "kitchen" -msgstr "cozinha" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "hide site" -msgstr "esconder site" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "trench" -msgstr "trincheira" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "spiked trench" -msgstr "trincheira cravada" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "blacksmith survey" -msgstr "levantamento de ferreiro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "blacksmith shop" -msgstr "loja de ferreiro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "crater" @@ -118891,7 +105496,7 @@ msgstr "formigueiro" #: lang/json/overmap_terrain_from_json.py msgid "sulfurous anthill" -msgstr "formigueiro sulfuroso" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "slime pit" @@ -118971,7 +105576,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small storage units" -msgstr "pequenas unidades de armazenamento" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small storage units roof" @@ -118979,7 +105584,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "lumberyard" -msgstr "depósito de madeira" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "lumbermill" @@ -118991,11 +105596,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "construction site" -msgstr "local de construção" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "abandoned warehouse" -msgstr "armazém abandonado" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "abandoned warehouse roof" @@ -119003,7 +105608,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "storage units" -msgstr "unidades de armazenamento" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "storage units roof" @@ -119015,23 +105620,23 @@ msgstr "laboratório de ciênica" #: lang/json/overmap_terrain_from_json.py msgid "science lab tower" -msgstr "torre de laboratório de ciências" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "science train depot" -msgstr "depósito de trem de ciências" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "central train depot" -msgstr "depósito de trem central" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "access shaft" -msgstr "eixo de acesso" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "central lab" -msgstr "laboratório central" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "lab basement" @@ -119144,15 +105749,15 @@ msgstr "silo de míssil" #: lang/json/overmap_terrain_from_json.py msgid "fire lookout tower" -msgstr "Torre de vigia de incêndio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "survivor's bunker" -msgstr "bunker do sobrevivente" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "survivor's camp" -msgstr "acampamento do sobrevivente" +msgstr "" #: lang/json/overmap_terrain_from_json.py lang/json/snippet_from_json.py msgid "house" @@ -119196,123 +105801,123 @@ msgstr "armazém" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Barracks" -msgstr "Abóbada - Quartel" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Armory" -msgstr "Cofre - arsenal" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Hospital" -msgstr "Vault - Hospital" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Jail" -msgstr "Cofre - cadeia" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Offices" -msgstr "Cofre - Escritórios" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Police Station" -msgstr "Abóbada - delegacia de polícia" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Entrance" -msgstr "Cofre - entrada" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Utilities" -msgstr "Cofre - utilitários" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Passage" -msgstr "Cofre - Passagem" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Communications" -msgstr "Vault - Comunicações" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Courthouse" -msgstr "Cofre - tribunal" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Motor Pool" -msgstr "Cofre - piscina para motor" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Visitor Center" -msgstr "Vault - Centro de Visitantes" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Control" -msgstr "Cofre - controle" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Cafeteria" -msgstr "Vault - Cafeteria" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - School" -msgstr "Abóbada - escola" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Labs" -msgstr "Vault - Labs" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Robotics Bay" -msgstr "Abóbada - baía da robótica" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Slum Housing" -msgstr "Cofre - Habitação Favela" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Suites" -msgstr "Cofre - Suites" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Living Bays" -msgstr "Cofre - baías vivas" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Housing" -msgstr "Vault - Habitação" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Transition Bay" -msgstr "Cofre - Baía de Transição" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Maint. Bay" -msgstr "Cofre - tamanho. Bay" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Quartermasters" -msgstr "Vault - Quartermasters" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Kitchen" -msgstr "Cofre - cozinha" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Conference Room" -msgstr "Cofre - sala de conferências" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Library" -msgstr "Cofre - biblioteca" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Light Industry" -msgstr "Cofre - indústria leve" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Vault - Gym" -msgstr "Vault - Ginásio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "church roof" @@ -119360,7 +105965,7 @@ msgstr "prisão" #: lang/json/overmap_terrain_from_json.py msgid "post office" -msgstr "agência dos Correios" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "post office roof" @@ -119368,7 +105973,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mortuary" -msgstr "necrotério" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mortuary roof" @@ -119392,7 +105997,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "silo" -msgstr "silo" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "silo cap" @@ -119404,7 +106009,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "ranch" -msgstr "rancho" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "ranch roof" @@ -119420,11 +106025,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "football field" -msgstr "campo de futebol" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "art gallery" -msgstr "galeria de Arte" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "art gallery roof" @@ -119432,27 +106037,27 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "state park" -msgstr "Parque Estadual" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "state park parking" -msgstr "estacionamento do parque estadual" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "fishing pond" -msgstr "lagoa de pesca" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "skate park" -msgstr "parque de skate" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small wooded trail" -msgstr "pequena trilha arborizada" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "pavilion" -msgstr "pavilhão" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "pavilion roof" @@ -119460,31 +106065,31 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "hunting blind" -msgstr "cego de caça" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "nature trail" -msgstr "trilha natural" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public pond" -msgstr "lagoa pública" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "community garden" -msgstr "jardim comunitário" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public garden" -msgstr "Jardim público" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "botanical garden" -msgstr "Jardim Botânico" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "shooting range" -msgstr "faixa de tiro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "shooting range roof" @@ -119492,15 +106097,15 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "golf course" -msgstr "campo de golfe" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "golf course parking lot" -msgstr "estacionamento do campo de golfe" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "golf course service building" -msgstr "edifício de serviço de campo de golfe" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "golf course bar" @@ -119512,59 +106117,59 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "baseball field" -msgstr "campo de beisebol" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "zoo parking" -msgstr "estacionamento zoológico" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "zoo pavilion" -msgstr "pavilhão do zoológico" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "zoo" -msgstr "jardim zoológico" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "stadium parking" -msgstr "estacionamento do estádio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "stadium" -msgstr "estádio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "stadium entrance" -msgstr "entrada do estádio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "stadium field" -msgstr "campo do estádio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "stadium garage" -msgstr "garagem do estádio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "stadium bar" -msgstr "bar do estádio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Natural Spring" -msgstr "Nascente natural" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "movie theater" -msgstr "cinema" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "movie theater entrance" -msgstr "entrada do cinema" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "paintball field" -msgstr "campo de paintball" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "paintball field roof" @@ -119572,7 +106177,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "smoking lounge" -msgstr "sala de fumar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "smoking lounge roof" @@ -119580,7 +106185,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "music venue" -msgstr "local de música" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "music venue roof" @@ -119588,7 +106193,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "gambling hall" -msgstr "salão de apostas" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "gambling hall roof" @@ -119596,7 +106201,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "strip club" -msgstr "clube de strip" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "strip club roof" @@ -119644,7 +106249,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "private park" -msgstr "parque privado" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "private park roof" @@ -119652,11 +106257,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public art piece" -msgstr "peça de arte pública" +msgstr "" #: lang/json/overmap_terrain_from_json.py lang/json/terrain_from_json.py msgid "dock" -msgstr "no entanto," +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "marina" @@ -119668,7 +106273,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "duplex" -msgstr "duplex" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "apartment tower" @@ -119676,11 +106281,11 @@ msgstr "torre de apartamento" #: lang/json/overmap_terrain_from_json.py msgid "homeless camp" -msgstr "acampamento desabrigado" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "trailer park" -msgstr "estacionamento de trailers" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "trailer park roof" @@ -119688,11 +106293,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "empty residential lot" -msgstr "lote residencial vazio" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "derelict property" -msgstr "propriedade abandonada" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "river" @@ -119724,7 +106329,7 @@ msgstr "ponte" #: lang/json/overmap_terrain_from_json.py msgid "roadstop" -msgstr "roadstop" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "roadstop roof" @@ -119732,7 +106337,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public washroom" -msgstr "banheiro público" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public washroom roof" @@ -119740,7 +106345,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart" -msgstr "foodcart à beira da estrada" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "roadside foodcart roof" @@ -119748,31 +106353,31 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "railroad" -msgstr "Ferrovia" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "railroad bridge" -msgstr "ponte ferroviária" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "railroad level crossing" -msgstr "passagem de nível da ferrovia" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "railroad station" -msgstr "estação ferroviária" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "railroad station parking lot" -msgstr "estacionamento da estação de trem" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "forest trail" -msgstr "trilha da floresta" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "trailhead" -msgstr "trilha" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "subway station" @@ -119784,11 +106389,11 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "subway station (sewer level)" -msgstr "estação de metrô (nível de esgoto)" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "subway station (underground level)" -msgstr "estação de metrô (nível subterrâneo)" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "subway" @@ -119796,7 +106401,7 @@ msgstr "metrô" #: lang/json/overmap_terrain_from_json.py msgid "rest area" -msgstr "área de descanso" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "rest area roof" @@ -119804,7 +106409,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "rest area parking" -msgstr "estacionamento na área de descanso" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "control tower" @@ -119816,7 +106421,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "runway" -msgstr "pista" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "fuel station" @@ -119872,15 +106477,15 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dumpsite" -msgstr "lixão" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dump" -msgstr "despejar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "recycle center" -msgstr "centro de reciclagem" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "recycle center roof" @@ -119888,27 +106493,27 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "landfill" -msgstr "aterro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "junkyard" -msgstr "ferro-velho" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "regional dump" -msgstr "despejo regional" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small scrap yard" -msgstr "pequeno pátio de sucata" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "open sewer" -msgstr "esgoto aberto" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small dump" -msgstr "despejo pequeno" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "lake shore" @@ -119920,23 +106525,23 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "municipal reactor" -msgstr "reator municipal" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "warehouse" -msgstr "armazém" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "waste storage" -msgstr "armazenamento de lixo" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "reactor control" -msgstr "controle do reator" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "reactor room" -msgstr "sala de reator" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Bankrupt Pizzeria" @@ -119948,43 +106553,43 @@ msgstr "escritório de campo da vida selvagem" #: lang/json/overmap_terrain_from_json.py msgid "diner" -msgstr "o jantar" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "apartment" -msgstr "apartamento" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dealership" -msgstr "concessionária" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "outdoorsman's store" -msgstr "loja do outdoorsman" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "gaming store" -msgstr "loja de jogos" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "airport" -msgstr "aeroporto" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "light industry" -msgstr "indústria leve" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "reception" -msgstr "recepção" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "bunker" -msgstr "abrigo" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "scavenger bunker" -msgstr "bunker scavenger" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "magic shop" @@ -119996,156 +106601,156 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "apartment towers" -msgstr "torres de apartamentos" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "factory" -msgstr "fábrica" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mine field" -msgstr "campo minado" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "gate" -msgstr "portão" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "house basement" -msgstr "porão da casa" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "house roof" -msgstr "telhado da casa" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "attached garage" -msgstr "garagem anexa" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "National Guard Camp" -msgstr "Acampamento da Guarda Nacional" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Heliport" -msgstr "Heliporto" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "motor pool" -msgstr "piscina motor" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "repair bay" -msgstr "reparar baía" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "barracks" -msgstr "quartel" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "fuel point" -msgstr "ponto de combustível" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "company ops facility" -msgstr "instalação de operações da empresa" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "arms room" -msgstr "sala de braços" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dining facility" -msgstr "refeitório" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "adv. warfare center" -msgstr "adv. centro de guerra" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "range" -msgstr "alcance" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "aid station" -msgstr "estação de ajuda" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "commo building" -msgstr "construção de commo" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "battalion HQ" -msgstr "batalhão HQ" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "flag pole" -msgstr "poste de bandeira" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "shoppette" -msgstr "shoppette" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "gym" -msgstr "Academia" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "ammunition supply point" -msgstr "ponto de suprimento de munição" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Launch Station" -msgstr "Estação de Lançamento" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "helipad" -msgstr "heliponto" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "Military Complex" -msgstr "Complexo Militar" +msgstr "" #: lang/json/overmap_terrain_from_json.py #: lang/json/overmap_terrain_from_json.py src/vehicle_use.cpp msgid "reactor" -msgstr "reator" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "weapons lab" -msgstr "laboratório de armas" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "genetics lab" -msgstr "laboratório de genética" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "microbiology lab" -msgstr "laboratório de microbiologia" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "rocketry lab" -msgstr "laboratório de foguetes" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "robot dispatch center" -msgstr "centro de expedição de robôs" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "dense urban" -msgstr "denso urbano" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "hotel" -msgstr "hotel" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "school" -msgstr "escola" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "projects" -msgstr "projetos" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "public library" @@ -120157,43 +106762,43 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mechanics garage" -msgstr "garagem mecânica" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "mechanic garage" -msgstr "garagem mecânica" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "interface" -msgstr "interface" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "electric substation" -msgstr "subestação elétrica" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "religious cemetery" -msgstr "cemitério religioso" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "animal clinic" -msgstr "clínica animal" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "war memorial" -msgstr "Memorial de guerra" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin - barn" -msgstr "cabana arruinada - celeiro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin - car corner" -msgstr "cabine arruinada - canto do carro" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin - dirt plaza" -msgstr "cabine arruinada - praça de terra" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "desert" @@ -120201,16 +106806,16 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "FEMA refugee camp" -msgstr "Campo de refugiados FEMA" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "megastore roof" -msgstr "telhado megastore" +msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Vagabond" -msgstr "Vagabundo" +msgstr "" #. ~ Profession (male Vagabond) description #: lang/json/professions_from_json.py @@ -120220,14 +106825,11 @@ msgid "" "the world you knew is gone, and maybe your experiences relying on yourself " "to survive could be useful in this new one." msgstr "" -" As circunstâncias deixaram você vagando, sem lar, sem família, sem amigos. " -"Mas o mundo que você conheceu desapareceu e talvez suas experiências " -"confiando em si mesmo para sobreviver possam ser úteis nesse novo mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Vagabond" -msgstr "Vagabundo" +msgstr "" #. ~ Profession (female Vagabond) description #: lang/json/professions_from_json.py @@ -120237,14 +106839,11 @@ msgid "" "the world you knew is gone, and maybe your experiences relying on yourself " "to survive could be useful in this new one." msgstr "" -" As circunstâncias deixaram você vagando, sem lar, sem família, sem amigos. " -"Mas o mundo que você conheceu desapareceu e talvez suas experiências " -"confiando em si mesmo para sobreviver possam ser úteis nesse novo mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Prepper" -msgstr "Prepper biônico" +msgstr "" #. ~ Profession (male Bionic Prepper) description #: lang/json/professions_from_json.py @@ -120254,14 +106853,11 @@ msgid "" " and got additional survival training. Now the end has come, and it is time" " to see if your efforts have paid off." msgstr "" -" Você sabia que o fim estava chegando. Você se fortaleceu com algumas " -"biônicas básicas e obteve treinamento adicional de sobrevivência. Agora " -"chegou o fim, e é hora de ver se seus esforços valeram a pena." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Prepper" -msgstr "Prepper biônico" +msgstr "" #. ~ Profession (female Bionic Prepper) description #: lang/json/professions_from_json.py @@ -120271,14 +106867,11 @@ msgid "" " and got additional survival training. Now the end has come, and it is time" " to see if your efforts have paid off." msgstr "" -" Você sabia que o fim estava chegando. Você se fortaleceu com algumas " -"biônicas básicas e obteve treinamento adicional de sobrevivência. Agora " -"chegou o fim, e é hora de ver se seus esforços valeram a pena." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Survivor" -msgstr "Sobrevivente" +msgstr "" #. ~ Profession (male Survivor) description #: lang/json/professions_from_json.py @@ -120287,13 +106880,11 @@ msgid "" "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 "" -" Alguns diriam que não há nada particularmente notável sobre você. Mas você " -"sobreviveu, e isso é mais do que a maioria pode dizer agora." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Survivor" -msgstr "Sobrevivente" +msgstr "" #. ~ Profession (female Survivor) description #: lang/json/professions_from_json.py @@ -120302,13 +106893,11 @@ msgid "" "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 "" -" Alguns diriam que não há nada particularmente notável sobre você. Mas você " -"sobreviveu, e isso é mais do que a maioria pode dizer agora." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sheltered Survivor" -msgstr "Sobrevivente protegido" +msgstr "" #. ~ Profession (male Sheltered Survivor) description #: lang/json/professions_from_json.py @@ -120318,14 +106907,11 @@ msgid "" " is winter, and you hope the rag-tag collection of skills you learned from " "all those books can help you survive." msgstr "" -" No início do cataclismo, você se agachou em um abrigo antiaéreo. Agora, é " -"inverno, e você espera que a coleção de habilidades que aprendeu com todos " -"esses livros possa ajudá-lo a sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Sheltered Survivor" -msgstr "Sobrevivente protegido" +msgstr "" #. ~ Profession (female Sheltered Survivor) description #: lang/json/professions_from_json.py @@ -120335,14 +106921,11 @@ msgid "" " is winter, and you hope the rag-tag collection of skills you learned from " "all those books can help you survive." msgstr "" -" No início do cataclismo, você se agachou em um abrigo antiaéreo. Agora, é " -"inverno, e você espera que a coleção de habilidades que aprendeu com todos " -"esses livros possa ajudá-lo a sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sheltered Militia" -msgstr "Milícia Protegida" +msgstr "" #. ~ Profession (male Sheltered Militia) description #: lang/json/professions_from_json.py @@ -120352,14 +106935,11 @@ msgid "" " is winter, and you hope your guns and the skills you have acquired can help" " you survive." msgstr "" -" No início do cataclismo, você se agachou em um abrigo antiaéreo. Agora, é " -"inverno, e você espera que suas armas e as habilidades que você adquiriu " -"possam ajudá-lo a sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Sheltered Militia" -msgstr "Milícia Protegida" +msgstr "" #. ~ Profession (female Sheltered Militia) description #: lang/json/professions_from_json.py @@ -120369,14 +106949,11 @@ msgid "" " is winter, and you hope your guns and the skills you have acquired can help" " you survive." msgstr "" -" No início do cataclismo, você se agachou em um abrigo antiaéreo. Agora, é " -"inverno, e você espera que suas armas e as habilidades que você adquiriu " -"possam ajudá-lo a sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Tailor" -msgstr "Alfaiate" +msgstr "" #. ~ Profession (male Tailor) description #: lang/json/professions_from_json.py @@ -120386,14 +106963,11 @@ msgid "" " Most people wouldn't expect a simple tailor to live long. This is your " "opportunity to prove them wrong." msgstr "" -" A alfaiataria pode não parecer a habilidade mais útil quando o mundo " -"acabou. A maioria das pessoas não espera que um simples alfaiate viva por " -"muito tempo. Esta é a sua oportunidade de provar que estão errados." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Tailor" -msgstr "Alfaiate" +msgstr "" #. ~ Profession (female Tailor) description #: lang/json/professions_from_json.py @@ -120403,14 +106977,11 @@ msgid "" " Most people wouldn't expect a simple tailor to live long. This is your " "opportunity to prove them wrong." msgstr "" -" A alfaiataria pode não parecer a habilidade mais útil quando o mundo " -"acabou. A maioria das pessoas não espera que um simples alfaiate viva por " -"muito tempo. Esta é a sua oportunidade de provar que estão errados." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Chef" -msgstr "líder" +msgstr "" #. ~ Profession (male Chef) description #: lang/json/professions_from_json.py @@ -120420,14 +106991,11 @@ msgid "" "but you managed to escape the carnage with a butchers knife and only a small" " collection of stains on your uniform." msgstr "" -" Bork Bork! Anos na cozinha deixaram você carregando um volume prodigioso, " -"mas você conseguiu escapar da carnificina com uma faca de açougueiro e " -"apenas uma pequena coleção de manchas em seu uniforme." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Chef" -msgstr "líder" +msgstr "" #. ~ Profession (female Chef) description #: lang/json/professions_from_json.py @@ -120437,14 +107005,11 @@ msgid "" "but you managed to escape the carnage with a butchers knife and only a small" " collection of stains on your uniform." msgstr "" -" Bork Bork! Anos na cozinha deixaram você carregando um volume prodigioso, " -"mas você conseguiu escapar da carnificina com uma faca de açougueiro e " -"apenas uma pequena coleção de manchas em seu uniforme." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Churl" -msgstr "Churl" +msgstr "" #. ~ Profession (male Churl) description #: lang/json/professions_from_json.py @@ -120455,15 +107020,11 @@ msgid "" "underfongen to find newe lyflode in the most hidous cataclysm man hath " "witnessed sithen that deluge Noe rood out in his greet schippe." msgstr "" -" O que o deuyl? Você não sabia nada sobre isso, nem o encanto que trouxe a " -"você. No caso de esta acusação de que você precisa para começar a encontrar " -"um novo pavio no mais hediondo cataclismo, o homem tem testemunhado que o " -"dilúvio Noe se esvai em seu cumpridor schippe." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Churl" -msgstr "Churl" +msgstr "" #. ~ Profession (female Churl) description #: lang/json/professions_from_json.py @@ -120474,15 +107035,11 @@ msgid "" "underfongen to find newe lyflode in the most hidous cataclysm man hath " "witnessed sithen that deluge Noe rood out in his greet schippe." msgstr "" -" O que o deuyl? Você não sabia nada sobre isso, nem o encanto que trouxe a " -"você. No caso de esta acusação de que você precisa para começar a encontrar " -"um novo pavio no mais hediondo cataclismo, o homem tem testemunhado que o " -"dilúvio Noe se esvai em seu cumpridor schippe." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Lab Technician" -msgstr "Técnico de laboratório" +msgstr "" #. ~ Profession (male Lab Technician) description #: lang/json/professions_from_json.py @@ -120492,15 +107049,11 @@ msgid "" "conducting science. Now that the world has ended, only one question " "remains: Can you undo the very Cataclysm you helped create?" msgstr "" -" Graças ao seu tempo no laboratório, você está familiarizado com os " -"princípios básicos da condução da ciência. Agora que o mundo acabou, resta " -"apenas uma pergunta: você pode desfazer o mesmo cataclismo que ajudou a " -"criar?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Lab Technician" -msgstr "Técnico de laboratório" +msgstr "" #. ~ Profession (female Lab Technician) description #: lang/json/professions_from_json.py @@ -120510,15 +107063,11 @@ msgid "" "conducting science. Now that the world has ended, only one question " "remains: Can you undo the very Cataclysm you helped create?" msgstr "" -" Graças ao seu tempo no laboratório, você está familiarizado com os " -"princípios básicos da condução da ciência. Agora que o mundo acabou, resta " -"apenas uma pergunta: você pode desfazer o mesmo cataclismo que ajudou a " -"criar?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Home Mechanic" -msgstr "Mecânico Doméstico" +msgstr "" #. ~ Profession (male Home Mechanic) description #: lang/json/professions_from_json.py @@ -120527,13 +107076,11 @@ 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 "" -" Embora você nunca tenha sua carteira de motorista, sempre gostou de carros." -" Pelo menos agora você nunca estará querendo materiais." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Home Mechanic" -msgstr "Mecânico Doméstico" +msgstr "" #. ~ Profession (female Home Mechanic) description #: lang/json/professions_from_json.py @@ -120542,13 +107089,11 @@ 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 "" -" Embora você nunca tenha sua carteira de motorista, sempre gostou de carros." -" Pelo menos agora você nunca estará querendo materiais." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Scoundrel" -msgstr "Canalha" +msgstr "" #. ~ Profession (male Scoundrel) description #: lang/json/professions_from_json.py @@ -120559,15 +107104,11 @@ msgid "" "consequences of your actions - all these skills have helped ensure your " "survival. But how much longer will they hold out?" msgstr "" -" Sua visão flexível sobre a lei, as brigas em que você esteve (e evitou) no " -"bar e sua impressionante capacidade de fugir das conseqüências de suas ações" -" - todas essas habilidades ajudaram a garantir sua sobrevivência. Mas por " -"quanto tempo eles resistirão?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Scoundrel" -msgstr "Canalha" +msgstr "" #. ~ Profession (female Scoundrel) description #: lang/json/professions_from_json.py @@ -120578,15 +107119,11 @@ msgid "" "consequences of your actions - all these skills have helped ensure your " "survival. But how much longer will they hold out?" msgstr "" -" Sua visão flexível sobre a lei, as brigas em que você esteve (e evitou) no " -"bar e sua impressionante capacidade de fugir das conseqüências de suas ações" -" - todas essas habilidades ajudaram a garantir sua sobrevivência. Mas por " -"quanto tempo eles resistirão?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Beekeeper" -msgstr "Apicultor" +msgstr "" #. ~ Profession (male Beekeeper) description #: lang/json/professions_from_json.py @@ -120596,14 +107133,11 @@ msgid "" "bees when the cataclysm struck, but at least you managed to grab some " "utensils and honey." msgstr "" -" Você costumava ser um apicultor profissional. Você teve que abandonar suas " -"preciosas abelhas quando o cataclismo aconteceu, mas pelo menos você " -"conseguiu pegar alguns utensílios e mel." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Beekeeper" -msgstr "Apicultor" +msgstr "" #. ~ Profession (female Beekeeper) description #: lang/json/professions_from_json.py @@ -120613,14 +107147,11 @@ msgid "" "bees when the cataclysm struck, but at least you managed to grab some " "utensils and honey." msgstr "" -" Você costumava ser um apicultor profissional. Você teve que abandonar suas " -"preciosas abelhas quando o cataclismo aconteceu, mas pelo menos você " -"conseguiu pegar alguns utensílios e mel." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Basketball Player" -msgstr "Jogador de basquete" +msgstr "" #. ~ Profession (male Basketball Player) description #: lang/json/professions_from_json.py @@ -120630,14 +107161,11 @@ msgid "" "Thanks to your quick feet, you were among the lucky few to survive and " "escape from the creatures." msgstr "" -" Seria o seu primeiro grande jogo, mas depois o cataclismo aconteceu. Graças" -" aos seus pés rápidos, você estava entre os poucos sortudos para sobreviver " -"e escapar das criaturas." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Basketball Player" -msgstr "Jogador de basquete" +msgstr "" #. ~ Profession (female Basketball Player) description #: lang/json/professions_from_json.py @@ -120647,9 +107175,6 @@ msgid "" "Thanks to your quick feet, you were among the lucky few to survive and " "escape from the creatures." msgstr "" -" Seria o seu primeiro grande jogo, mas depois o cataclismo aconteceu. Graças" -" aos seus pés rápidos, você estava entre os poucos sortudos para sobreviver " -"e escapar das criaturas." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -120684,7 +107209,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Professional Cyclist" -msgstr "Ciclista profissional" +msgstr "" #. ~ Profession (male Professional Cyclist) description #: lang/json/professions_from_json.py @@ -120695,15 +107220,11 @@ msgid "" "grand tours now, but as the saying goes: Life is like riding a bicycle, you " "got to keep moving." msgstr "" -" Você era um jovem ciclista promissor com uma carreira brilhante à sua " -"frente antes que tudo isso acontecesse. Talvez você nunca consiga participar" -" das grandes turnês agora, mas como diz o ditado: a vida é como andar de " -"bicicleta, você tem que continuar andando." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Professional Cyclist" -msgstr "Ciclista profissional" +msgstr "" #. ~ Profession (female Professional Cyclist) description #: lang/json/professions_from_json.py @@ -120714,15 +107235,11 @@ msgid "" "grand tours now, but as the saying goes: Life is like riding a bicycle, you " "got to keep moving." msgstr "" -" Você era um jovem ciclista promissor com uma carreira brilhante à sua " -"frente antes que tudo isso acontecesse. Talvez você nunca consiga participar" -" das grandes turnês agora, mas como diz o ditado: a vida é como andar de " -"bicicleta, você tem que continuar andando." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Military Recruit" -msgstr "Recruta Militar" +msgstr "" #. ~ Profession (male Military Recruit) description #: lang/json/professions_from_json.py @@ -120733,16 +107250,11 @@ msgid "" " national emergency. As far as you can tell, military command abandoned you" " in this hellhole when you missed the emergency evac." msgstr "" -" Você abandonou o ensino médio com um objetivo em mente: juntar-se aos " -"militares. Você finalmente entrou, bem a tempo de seu treinamento ser " -"interrompido por uma emergência nacional. Tanto quanto você pode dizer, o " -"comando militar abandonou você neste inferno quando você perdeu a evacuação " -"de emergência." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Military Recruit" -msgstr "Recruta Militar" +msgstr "" #. ~ Profession (female Military Recruit) description #: lang/json/professions_from_json.py @@ -120753,16 +107265,11 @@ msgid "" " national emergency. As far as you can tell, military command abandoned you" " in this hellhole when you missed the emergency evac." msgstr "" -" Você abandonou o ensino médio com um objetivo em mente: juntar-se aos " -"militares. Você finalmente entrou, bem a tempo de seu treinamento ser " -"interrompido por uma emergência nacional. Tanto quanto você pode dizer, o " -"comando militar abandonou você neste inferno quando você perdeu a evacuação " -"de emergência." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Special Operator" -msgstr "Operador Especial" +msgstr "" #. ~ Profession (male Special Operator) description #: lang/json/professions_from_json.py @@ -120773,15 +107280,11 @@ msgid "" " can tell, military command abandoned you in this hellhole when you missed " "the emergency evac." msgstr "" -" Você foi o melhor dos melhores, o melhor dos militares. É por isso que você" -" ainda está vivo, mesmo depois que todos os seus companheiros caíram para os" -" mortos-vivos. Tanto quanto você pode dizer, o comando militar abandonou " -"você neste inferno quando você perdeu a evacuação de emergência." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Special Operator" -msgstr "Operador Especial" +msgstr "" #. ~ Profession (female Special Operator) description #: lang/json/professions_from_json.py @@ -120792,15 +107295,11 @@ msgid "" " can tell, military command abandoned you in this hellhole when you missed " "the emergency evac." msgstr "" -" Você foi o melhor dos melhores, o melhor dos militares. É por isso que você" -" ainda está vivo, mesmo depois que todos os seus companheiros caíram para os" -" mortos-vivos. Tanto quanto você pode dizer, o comando militar abandonou " -"você neste inferno quando você perdeu a evacuação de emergência." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Butler" -msgstr "Mordomo" +msgstr "" #. ~ Profession (Butler) description #: lang/json/professions_from_json.py @@ -120809,14 +107308,11 @@ 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 "" -" Você trabalhava em uma casa rica, mas depois do cataclismo eles tiraram " -"férias em família para um lugar desconhecido, deixando você para se defender" -" sozinho." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Maid" -msgstr "Empregada" +msgstr "" #. ~ Profession (Maid) description #: lang/json/professions_from_json.py @@ -120825,14 +107321,11 @@ 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 "" -" Você trabalhava em uma casa rica, mas depois do cataclismo eles tiraram " -"férias em família para um lugar desconhecido, deixando você para se defender" -" sozinho." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Medical Resident" -msgstr "Residente Médico" +msgstr "" #. ~ Profession (male Medical Resident) description #: lang/json/professions_from_json.py @@ -120842,14 +107335,11 @@ msgid "" "experience. You just hope it will be enough if the old adage of 'Doctor, " "heal thyself' ends up being required." msgstr "" -" Fora da escola de medicina, você tem pouca experiência prática. Você só " -"espera que seja suficiente se o velho ditado de 'Doutor, curar a si " -"mesmo' acabar sendo exigido." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Medical Resident" -msgstr "Residente Médico" +msgstr "" #. ~ Profession (female Medical Resident) description #: lang/json/professions_from_json.py @@ -120859,14 +107349,11 @@ msgid "" "experience. You just hope it will be enough if the old adage of 'Doctor, " "heal thyself' ends up being required." msgstr "" -" Fora da escola de medicina, você tem pouca experiência prática. Você só " -"espera que seja suficiente se o velho ditado de 'Doutor, curar a si " -"mesmo' acabar sendo exigido." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Gangster" -msgstr "Gangster" +msgstr "" #. ~ Profession (male Gangster) description #: lang/json/professions_from_json.py @@ -120876,14 +107363,11 @@ msgid "" " 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 "" -" O chefe sempre disse que podia confiar em você para superar os trabalhos " -"difíceis. Uma pena que ele não conseguiu, ele mesmo. Não é estranho a um " -"ponto de violência, você quase se sente em casa neste novo mundo já." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Gangster" -msgstr "Gangster" +msgstr "" #. ~ Profession (female Gangster) description #: lang/json/professions_from_json.py @@ -120893,14 +107377,11 @@ msgid "" " 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 "" -" O chefe sempre disse que podia confiar em você para superar os trabalhos " -"difíceis. Uma pena que ele não conseguiu, ele mesmo. Não é estranho a um " -"ponto de violência, você quase se sente em casa neste novo mundo já." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Security Guard" -msgstr "Segurança" +msgstr "" #. ~ Profession (male Security Guard) description #: lang/json/professions_from_json.py @@ -120911,16 +107392,11 @@ msgid "" "any particularly useful skills, but you do have some useful equipment since " "you were on the job when things started going south." msgstr "" -" Um guarda de segurança mal pago, as coisas de repente ficaram muito mais " -"perigosas do que patrulhar os terrenos afastando possíveis ladrões. Você não" -" tem nenhuma habilidade particularmente útil, mas você tem algum equipamento" -" útil desde que você estava no trabalho quando as coisas começaram a ir para" -" o sul." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Security Guard" -msgstr "Segurança" +msgstr "" #. ~ Profession (female Security Guard) description #: lang/json/professions_from_json.py @@ -120931,11 +107407,6 @@ msgid "" "any particularly useful skills, but you do have some useful equipment since " "you were on the job when things started going south." msgstr "" -" Um guarda de segurança mal pago, as coisas de repente ficaram muito mais " -"perigosas do que patrulhar os terrenos afastando possíveis ladrões. Você não" -" tem nenhuma habilidade particularmente útil, mas você tem algum equipamento" -" útil desde que você estava no trabalho quando as coisas começaram a ir para" -" o sul." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -120996,7 +107467,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Survivalist" -msgstr "Sobrevivente" +msgstr "" #. ~ Profession (male Survivalist) description #: lang/json/professions_from_json.py @@ -121007,15 +107478,11 @@ msgid "" "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 "" -" Hábeis em sobreviver longe da civilização, suas habilidades são muito " -"úteis, já que a civilização está repleta de monstros que querem que você " -"morra. Seu equipamento é básico, mas versátil - e com suas habilidades, mais" -" do que você precisa ... exceto que sua cantina está acabando!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Survivalist" -msgstr "Sobrevivente" +msgstr "" #. ~ Profession (female Survivalist) description #: lang/json/professions_from_json.py @@ -121026,15 +107493,11 @@ msgid "" "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 "" -" Hábeis em sobreviver longe da civilização, suas habilidades são muito " -"úteis, já que a civilização está repleta de monstros que querem que você " -"morra. Seu equipamento é básico, mas versátil - e com suas habilidades, mais" -" do que você precisa ... exceto que sua cantina está acabando!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Chain Smoker" -msgstr "Fumante De Corrente" +msgstr "" #. ~ Profession (male Chain Smoker) description #: lang/json/professions_from_json.py @@ -121044,14 +107507,11 @@ msgid "" " 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 "" -" Todos no trabalho conheciam você como a pessoa que sempre tinha um cigarro " -"ou dois na mão. Agora você está com um único pacote e espera encontrar mais " -"em breve. Você começa com um forte vício em nicotina." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Chain Smoker" -msgstr "Fumante De Corrente" +msgstr "" #. ~ Profession (female Chain Smoker) description #: lang/json/professions_from_json.py @@ -121061,14 +107521,11 @@ msgid "" " 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 "" -" Todos no trabalho conheciam você como a pessoa que sempre tinha um cigarro " -"ou dois na mão. Agora você está com um único pacote e espera encontrar mais " -"em breve. Você começa com um forte vício em nicotina." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Crackhead" -msgstr "Crackhead" +msgstr "" #. ~ Profession (male Crackhead) description #: lang/json/professions_from_json.py @@ -121078,14 +107535,11 @@ msgid "" "and before you knew it you were turning tricks behind the local CVS just to " "score one more line." msgstr "" -" Cocaína. É, de fato, uma droga infernal. Você explodiu seu dinheiro com um " -"pouco de poeira, e antes que você percebesse, você estava transformando " -"truques atrás do CVS local apenas para marcar mais uma linha." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Crackhead" -msgstr "Crackhead" +msgstr "" #. ~ Profession (female Crackhead) description #: lang/json/professions_from_json.py @@ -121095,14 +107549,11 @@ msgid "" "and before you knew it you were turning tricks behind the local CVS just to " "score one more line." msgstr "" -" Cocaína. É, de fato, uma droga infernal. Você explodiu seu dinheiro com um " -"pouco de poeira, e antes que você percebesse, você estava transformando " -"truques atrás do CVS local apenas para marcar mais uma linha." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hobo" -msgstr "Vagabundo" +msgstr "" #. ~ Profession (male Hobo) description #: lang/json/professions_from_json.py @@ -121113,16 +107564,11 @@ msgid "" "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." msgstr "" -" A sociedade levou-o às margens e deixou-o perambulando, sem lar, sem " -"família, sem amigos, até que você só encontrasse consolo no fundo de uma " -"garrafa. Mas a sociedade não significa mais nada e, apesar de toda a " -"porcaria do seu jeito, você ainda está de pé. Droga, você precisa de uma " -"bebida." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hobo" -msgstr "Vagabundo" +msgstr "" #. ~ Profession (female Hobo) description #: lang/json/professions_from_json.py @@ -121133,16 +107579,11 @@ msgid "" "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." msgstr "" -" A sociedade levou-o às margens e deixou-o perambulando, sem lar, sem " -"família, sem amigos, até que você só encontrasse consolo no fundo de uma " -"garrafa. Mas a sociedade não significa mais nada e, apesar de toda a " -"porcaria do seu jeito, você ainda está de pé. Droga, você precisa de uma " -"bebida." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Tweaker" -msgstr "Tweaker" +msgstr "" #. ~ Profession (male Tweaker) description #: lang/json/professions_from_json.py @@ -121152,13 +107593,11 @@ msgid "" " the only thing running through your head is where you're gonna find your " "next hit." msgstr "" -" Você não tem certeza do que aconteceu, mas tudo se foi, e a única coisa que" -" passa pela sua cabeça é onde você vai encontrar seu próximo sucesso." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Tweaker" -msgstr "Tweaker" +msgstr "" #. ~ Profession (female Tweaker) description #: lang/json/professions_from_json.py @@ -121168,8 +107607,6 @@ msgid "" " the only thing running through your head is where you're gonna find your " "next hit." msgstr "" -" Você não tem certeza do que aconteceu, mas tudo se foi, e a única coisa que" -" passa pela sua cabeça é onde você vai encontrar seu próximo sucesso." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -121228,7 +107665,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" -msgstr "Policial" +msgstr "" #. ~ Profession (male Police Officer) description #: lang/json/professions_from_json.py @@ -121239,16 +107676,11 @@ msgid "" "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 "" -" Apenas um policial da cidade pequena quando você recebeu a ligação, você " -"ainda estava pronto para vir em socorro. Exceto que em breve foi você quem " -"precisou resgatar - você teve a sorte de escapar com sua vida. Quem vai " -"respeitar sua autoridade quando o governo que esse distintivo representa " -"pode nem existir mais?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Police Officer" -msgstr "Policial" +msgstr "" #. ~ Profession (female Police Officer) description #: lang/json/professions_from_json.py @@ -121259,16 +107691,11 @@ msgid "" "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 "" -" Apenas um policial da cidade pequena quando você recebeu a ligação, você " -"ainda estava pronto para vir em socorro. Exceto que em breve foi você quem " -"precisou resgatar - você teve a sorte de escapar com sua vida. Quem vai " -"respeitar sua autoridade quando o governo que esse distintivo representa " -"pode nem existir mais?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Detective" -msgstr "Detetive policial" +msgstr "" #. ~ Profession (male Police Detective) description #: lang/json/professions_from_json.py @@ -121278,14 +107705,11 @@ msgid "" "when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" " need a smoke." msgstr "" -" Você estava à beira de um grande avanço em seu último caso de homicídio " -"quando o Cataclismo aconteceu. Agora esse suspeito está morto. Todo mundo " -"está morto. Você precisa de um cigarro." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Police Detective" -msgstr "Detetive policial" +msgstr "" #. ~ Profession (female Police Detective) description #: lang/json/professions_from_json.py @@ -121295,14 +107719,11 @@ msgid "" "when the Cataclysm struck. Now that suspect is dead. Everyone's dead. You" " need a smoke." msgstr "" -" Você estava à beira de um grande avanço em seu último caso de homicídio " -"quando o Cataclismo aconteceu. Agora esse suspeito está morto. Todo mundo " -"está morto. Você precisa de um cigarro." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "SWAT Officer" -msgstr "Oficial da SWAT" +msgstr "" #. ~ Profession (male SWAT Officer) description #: lang/json/professions_from_json.py @@ -121313,15 +107734,11 @@ msgid "" "apocalypse. Unfortunately, the breakdown of society has brought you to your" " current state of affairs; you now fight to simply stay alive." msgstr "" -" Como membro da divisão de elite da força policial, você está mais do que " -"adequadamente treinado e equipado para sobreviver ao ataque brutal do " -"apocalipse. Infelizmente, o colapso da sociedade levou você ao seu atual " -"estado de coisas; você agora luta para simplesmente permanecer vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "SWAT Officer" -msgstr "Oficial da SWAT" +msgstr "" #. ~ Profession (female SWAT Officer) description #: lang/json/professions_from_json.py @@ -121332,15 +107749,11 @@ msgid "" "apocalypse. Unfortunately, the breakdown of society has brought you to your" " current state of affairs; you now fight to simply stay alive." msgstr "" -" Como membro da divisão de elite da força policial, você está mais do que " -"adequadamente treinado e equipado para sobreviver ao ataque brutal do " -"apocalipse. Infelizmente, o colapso da sociedade levou você ao seu atual " -"estado de coisas; você agora luta para simplesmente permanecer vivo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "SWAT CQC Specialist" -msgstr "Especialista em CQC da SWAT" +msgstr "" #. ~ Profession (male SWAT CQC Specialist) description #: lang/json/professions_from_json.py @@ -121351,15 +107764,11 @@ msgid "" "of society has brought you to your current state of affairs; you now fight " "to simply stay alive." msgstr "" -" Um membro da divisão de elite da força policial, seu treinamento de combate" -" de perto o manteve vivo até agora. Infelizmente, o colapso da sociedade " -"levou você ao seu atual estado de coisas; você agora luta para simplesmente " -"permanecer vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "SWAT CQC Specialist" -msgstr "Especialista em CQC da SWAT" +msgstr "" #. ~ Profession (female SWAT CQC Specialist) description #: lang/json/professions_from_json.py @@ -121370,15 +107779,11 @@ msgid "" "of society has brought you to your current state of affairs; you now fight " "to simply stay alive." msgstr "" -" Um membro da divisão de elite da força policial, seu treinamento de combate" -" de perto o manteve vivo até agora. Infelizmente, o colapso da sociedade " -"levou você ao seu atual estado de coisas; você agora luta para simplesmente " -"permanecer vivo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Sniper" -msgstr "Atirador da Polícia" +msgstr "" #. ~ Profession (male Police Sniper) description #: lang/json/professions_from_json.py @@ -121389,15 +107794,11 @@ msgid "" "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -" Sua habilidade como atirador de elite te serviu bem no cumprimento do " -"dever, protegendo os inocentes com uma única bala bem colocada. Agora a " -"própria sobrevivência está em jogo, e você não pode se dar ao luxo de perder" -" se não quiser acabar como um jantar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Police Sniper" -msgstr "Atirador da Polícia" +msgstr "" #. ~ Profession (female Police Sniper) description #: lang/json/professions_from_json.py @@ -121408,15 +107809,11 @@ msgid "" "the line, and you can't afford to miss if you don't want to end up as " "something's dinner." msgstr "" -" Sua habilidade como atirador de elite te serviu bem no cumprimento do " -"dever, protegendo os inocentes com uma única bala bem colocada. Agora a " -"própria sobrevivência está em jogo, e você não pode se dar ao luxo de perder" -" se não quiser acabar como um jantar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Riot Control Officer" -msgstr "Oficial de controle de distúrbios" +msgstr "" #. ~ Profession (male Riot Control Officer) description #: lang/json/professions_from_json.py @@ -121427,15 +107824,11 @@ msgid "" "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 "" -" Os motins foram brutais, e isso antes dos mortos se levantarem e começarem " -"a devorar os vivos. Logo ficou claro que a linha que você estava segurando " -"estava prestes a quebrar - foi apenas por meio de um pouco de sorte e muita " -"besteira que você se afastou em um pedaço, e o pior ainda está por vir." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Riot Control Officer" -msgstr "Oficial de controle de distúrbios" +msgstr "" #. ~ Profession (female Riot Control Officer) description #: lang/json/professions_from_json.py @@ -121446,15 +107839,11 @@ msgid "" "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 "" -" Os motins foram brutais, e isso antes dos mortos se levantarem e começarem " -"a devorar os vivos. Logo ficou claro que a linha que você estava segurando " -"estava prestes a quebrar - foi apenas por meio de um pouco de sorte e muita " -"besteira que você se afastou em um pedaço, e o pior ainda está por vir." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Used Car Salesman" -msgstr "Vendedor de carros usados" +msgstr "" #. ~ Profession (male Used Car Salesman) description #: lang/json/professions_from_json.py @@ -121465,15 +107854,11 @@ msgid "" "around the block a time or two, and you'd charge way more than a dollar - " "and get it, too!" msgstr "" -" Você foi acusado de ser o tipo de pessoa que estaria disposta a vender sua " -"própria mãe por um dólar. Sempre te deixava insultado - você já esteve no " -"quarteirão uma vez ou duas e cobraria muito mais do que um dólar - e também " -"ganha!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Used Car Salesman" -msgstr "Vendedor de carros usados" +msgstr "" #. ~ Profession (female Used Car Salesman) description #: lang/json/professions_from_json.py @@ -121484,15 +107869,11 @@ msgid "" "around the block a time or two, and you'd charge way more than a dollar - " "and get it, too!" msgstr "" -" Você foi acusado de ser o tipo de pessoa que estaria disposta a vender sua " -"própria mãe por um dólar. Sempre te deixava insultado - você já esteve no " -"quarteirão uma vez ou duas e cobraria muito mais do que um dólar - e também " -"ganha!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bow Hunter" -msgstr "Caçador de arco" +msgstr "" #. ~ Profession (male Bow Hunter) description #: lang/json/professions_from_json.py @@ -121503,15 +107884,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com um arco. Por que, se o mundo acabar, não há nada que você queira " -"ao seu lado mais do que seu fiel arco. Então, quando aconteceu, você fez " -"questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bow Hunter" -msgstr "Caçador de arco" +msgstr "" #. ~ Profession (female Bow Hunter) description #: lang/json/professions_from_json.py @@ -121522,15 +107899,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com um arco. Por que, se o mundo acabar, não há nada que você queira " -"ao seu lado mais do que seu fiel arco. Então, quando aconteceu, você fez " -"questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Crossbow Hunter" -msgstr "Caçador de Besta" +msgstr "" #. ~ Profession (male Crossbow Hunter) description #: lang/json/professions_from_json.py @@ -121541,15 +107914,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com uma besta. Por que, se o mundo acabar, não há nada que você queira" -" ao seu lado mais do que sua besta confiável. Então, quando aconteceu, você " -"fez questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Crossbow Hunter" -msgstr "Caçador de Besta" +msgstr "" #. ~ Profession (female Crossbow Hunter) description #: lang/json/professions_from_json.py @@ -121560,15 +107929,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com uma besta. Por que, se o mundo acabar, não há nada que você queira" -" ao seu lado mais do que sua besta confiável. Então, quando aconteceu, você " -"fez questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Shotgun Hunter" -msgstr "Caçador de Espingardas" +msgstr "" #. ~ Profession (male Shotgun Hunter) description #: lang/json/professions_from_json.py @@ -121579,15 +107944,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com uma espingarda. Por que, se o mundo acabar, não há nada que você " -"queira ao seu lado mais do que sua fiel espingarda. Então, quando aconteceu," -" você fez questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Shotgun Hunter" -msgstr "Caçador de Espingardas" +msgstr "" #. ~ Profession (female Shotgun Hunter) description #: lang/json/professions_from_json.py @@ -121598,15 +107959,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com uma espingarda. Por que, se o mundo acabar, não há nada que você " -"queira ao seu lado mais do que sua fiel espingarda. Então, quando aconteceu," -" você fez questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Rifle Hunter" -msgstr "Caçador de rifle" +msgstr "" #. ~ Profession (male Rifle Hunter) description #: lang/json/professions_from_json.py @@ -121617,15 +107974,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com um rifle. Por que, se o mundo acabar, não há nada que você queira " -"ao seu lado mais do que seu fiel rifle. Então, quando aconteceu, você fez " -"questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Rifle Hunter" -msgstr "Caçador de rifle" +msgstr "" #. ~ Profession (female Rifle Hunter) description #: lang/json/professions_from_json.py @@ -121636,15 +107989,11 @@ msgid "" "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 você era criança, você amava caçar e logo gostou do desafio de " -"caçar com um rifle. Por que, se o mundo acabar, não há nada que você queira " -"ao seu lado mais do que seu fiel rifle. Então, quando aconteceu, você fez " -"questão de trazê-lo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Handy Man" -msgstr "Homem móvel" +msgstr "" #. ~ Profession (male Handy Man) description #: lang/json/professions_from_json.py @@ -121655,15 +108004,11 @@ msgid "" "and wonder - are your meager skills, and the few supplies you grabbed on the" " way out, sufficient to help it rebuild?" msgstr "" -" Você costumava trabalhar em uma loja de ferragens local, e você mesmo fez " -"muitas reformas em casa. Agora você olha para o horizonte de um mundo " -"arruinado e se pergunta: suas magras habilidades e os poucos suprimentos que" -" você pegou no caminho, suficientes para ajudá-lo a reconstruir?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Handy Man" -msgstr "Homem móvel" +msgstr "" #. ~ Profession (female Handy Man) description #: lang/json/professions_from_json.py @@ -121674,15 +108019,11 @@ msgid "" "and wonder - are your meager skills, and the few supplies you grabbed on the" " way out, sufficient to help it rebuild?" msgstr "" -" Você costumava trabalhar em uma loja de ferragens local, e você mesmo fez " -"muitas reformas em casa. Agora você olha para o horizonte de um mundo " -"arruinado e se pergunta: suas magras habilidades e os poucos suprimentos que" -" você pegou no caminho, suficientes para ajudá-lo a reconstruir?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Lumberjack" -msgstr "Lenhador" +msgstr "" #. ~ Profession (male Lumberjack) description #: lang/json/professions_from_json.py @@ -121691,13 +108032,11 @@ msgid "" "You're a lumberjack, and you're okay. You felled trees before the world " "ended, but suspect the undead aren't nearly as tough." msgstr "" -" Você é um lenhador e está bem. Você derrubou árvores antes do fim do mundo," -" mas suspeite que os mortos-vivos não sejam tão duros." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Lumberjack" -msgstr "Lenhador" +msgstr "" #. ~ Profession (female Lumberjack) description #: lang/json/professions_from_json.py @@ -121706,13 +108045,11 @@ msgid "" "You're a lumberjack, and you're okay. You felled trees before the world " "ended, but suspect the undead aren't nearly as tough." msgstr "" -" Você é um lenhador e está bem. Você derrubou árvores antes do fim do mundo," -" mas suspeite que os mortos-vivos não sejam tão duros." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Backpacker" -msgstr "Mochileiro" +msgstr "" #. ~ Profession (male Backpacker) description #: lang/json/professions_from_json.py @@ -121722,14 +108059,11 @@ msgid "" "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 "" -" Você viajou para viver, passear aqui e ali e viver do fundo de seus pais. " -"Mas agora eles se foram, e a única coisa entre você e a morte é a estrada " -"aberta e sua mochila." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Backpacker" -msgstr "Mochileiro" +msgstr "" #. ~ Profession (female Backpacker) description #: lang/json/professions_from_json.py @@ -121739,14 +108073,11 @@ msgid "" "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 "" -" Você viajou para viver, passear aqui e ali e viver do fundo de seus pais. " -"Mas agora eles se foram, e a única coisa entre você e a morte é a estrada " -"aberta e sua mochila." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Fast Food Cook" -msgstr "Cozinheiro De Fast Food" +msgstr "" #. ~ Profession (male Fast Food Cook) description #: lang/json/professions_from_json.py @@ -121755,14 +108086,11 @@ 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 "" -" Você costumava trabalhar em uma lanchonete de fast food chique há uma " -"semana, mas agora você mostra o significado da comida 'fast' ao correr pela " -"sua vida." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Fast Food Cook" -msgstr "Cozinheiro De Fast Food" +msgstr "" #. ~ Profession (female Fast Food Cook) description #: lang/json/professions_from_json.py @@ -121771,14 +108099,11 @@ 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 "" -" Você costumava trabalhar em uma lanchonete de fast food chique há uma " -"semana, mas agora você mostra o significado da comida 'fast' ao correr pela " -"sua vida." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Electrician" -msgstr "Eletricista" +msgstr "" #. ~ Profession (male Electrician) description #: lang/json/professions_from_json.py @@ -121789,16 +108114,11 @@ msgid "" "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 "" -" Você costumava trabalhar para alguns proprietários de pequenos negócios que" -" faziam pequenos serviços elétricos, e você só estava trabalhando em uma " -"dessas piadas de um abrigo de evacuação quando o cataclismo aconteceu. " -"Infelizmente, você não terminou de fiação nada, exceto o computador - muito " -"gordo que está fazendo agora." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Electrician" -msgstr "Eletricista" +msgstr "" #. ~ Profession (female Electrician) description #: lang/json/professions_from_json.py @@ -121809,16 +108129,11 @@ msgid "" "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 "" -" Você costumava trabalhar para alguns proprietários de pequenos negócios que" -" faziam pequenos serviços elétricos, e você só estava trabalhando em uma " -"dessas piadas de um abrigo de evacuação quando o cataclismo aconteceu. " -"Infelizmente, você não terminou de fiação nada, exceto o computador - muito " -"gordo que está fazendo agora." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Computer Hacker" -msgstr "Hacker de Computador" +msgstr "" #. ~ Profession (male Computer Hacker) description #: lang/json/professions_from_json.py @@ -121828,15 +108143,11 @@ msgid "" " 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 "" -" Pílulas de cafeína e todas as noites em frente a uma tela de computador lhe" -" deram habilidades em uma área que, aparentemente, é claramente menos do que" -" útil quando o mundo acabou. A menos que você consiga encontrar um mainframe" -" militar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Computer Hacker" -msgstr "Hacker de Computador" +msgstr "" #. ~ Profession (female Computer Hacker) description #: lang/json/professions_from_json.py @@ -121846,15 +108157,11 @@ msgid "" " 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 "" -" Pílulas de cafeína e todas as noites em frente a uma tela de computador lhe" -" deram habilidades em uma área que, aparentemente, é claramente menos do que" -" útil quando o mundo acabou. A menos que você consiga encontrar um mainframe" -" militar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Student" -msgstr "Aluna" +msgstr "" #. ~ Profession (male Student) description #: lang/json/professions_from_json.py @@ -121864,14 +108171,11 @@ msgid "" " higher stakes. There might even be something useful in one of these books " "you've been lugging around all year." msgstr "" -" Você era um estudante do ensino médio, mas os testes que você enfrentará " -"agora terão apostas muito maiores. Pode até haver algo útil em um desses " -"livros que você tem feito o ano todo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Student" -msgstr "Aluna" +msgstr "" #. ~ Profession (female Student) description #: lang/json/professions_from_json.py @@ -121881,14 +108185,11 @@ msgid "" " higher stakes. There might even be something useful in one of these books " "you've been lugging around all year." msgstr "" -" Você era um estudante do ensino médio, mas os testes que você enfrentará " -"agora terão apostas muito maiores. Pode até haver algo útil em um desses " -"livros que você tem feito o ano todo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Shower Victim" -msgstr "Vítima De Chuveiro" +msgstr "" #. ~ Profession (male Shower Victim) description #: lang/json/professions_from_json.py @@ -121898,14 +108199,11 @@ msgid "" " barely managed to escape with some soap and the most massively useful thing" " ever... a towel." msgstr "" -" Você estava no meio de um bom banho quente quando o cataclismo aconteceu! " -"Você mal conseguiu escapar com um pouco de sabão e a coisa mais massivamente" -" útil de sempre ... uma toalha." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Shower Victim" -msgstr "Vítima De Chuveiro" +msgstr "" #. ~ Profession (female Shower Victim) description #: lang/json/professions_from_json.py @@ -121915,14 +108213,11 @@ msgid "" " barely managed to escape with some soap and the most massively useful thing" " ever... a towel." msgstr "" -" Você estava no meio de um bom banho quente quando o cataclismo aconteceu! " -"Você mal conseguiu escapar com um pouco de sabão e a coisa mais massivamente" -" útil de sempre ... uma toalha." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Biker" -msgstr "Motociclista" +msgstr "" #. ~ Profession (male Biker) description #: lang/json/professions_from_json.py @@ -121931,13 +108226,11 @@ msgid "" "You spent most of your life on a Harley, and it's only natural you spend the" " rest of it riding one." msgstr "" -" Você passou a maior parte da sua vida em uma Harley, e é natural que você " -"passe o resto dela montando uma." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Biker" -msgstr "Motociclista" +msgstr "" #. ~ Profession (female Biker) description #: lang/json/professions_from_json.py @@ -121946,13 +108239,11 @@ msgid "" "You spent most of your life on a Harley, and it's only natural you spend the" " rest of it riding one." msgstr "" -" Você passou a maior parte da sua vida em uma Harley, e é natural que você " -"passe o resto dela montando uma." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Ballroom Dancer" -msgstr "Dançarino de salão" +msgstr "" #. ~ Profession (male Ballroom Dancer) description #: lang/json/professions_from_json.py @@ -121961,13 +108252,11 @@ msgid "" "You used to be a ballroom dancer before the cataclysm, and now you use your " "skills to save your life." msgstr "" -" Você costumava ser uma dançarina de salão antes do cataclismo, e agora você" -" usa suas habilidades para salvar sua vida." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Ballroom Dancer" -msgstr "Dançarino de salão" +msgstr "" #. ~ Profession (female Ballroom Dancer) description #: lang/json/professions_from_json.py @@ -121976,13 +108265,11 @@ msgid "" "You used to be a ballroom dancer before the cataclysm, and now you use your " "skills to save your life." msgstr "" -" Você costumava ser uma dançarina de salão antes do cataclismo, e agora você" -" usa suas habilidades para salvar sua vida." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Thief" -msgstr "Ladrão Biônico" +msgstr "" #. ~ Profession (male Bionic Thief) description #: lang/json/professions_from_json.py @@ -121992,14 +108279,11 @@ msgid "" "world. All you have left are the tools of your trade and your impeccable " "style." msgstr "" -" Você fez muitos roubos de alto perfil, mas seus ganhos não significam nada " -"neste mundo. Tudo o que resta são as ferramentas do seu ofício e seu estilo " -"impecável." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Thief" -msgstr "Ladrão Biônico" +msgstr "" #. ~ Profession (female Bionic Thief) description #: lang/json/professions_from_json.py @@ -122009,14 +108293,11 @@ msgid "" "world. All you have left are the tools of your trade and your impeccable " "style." msgstr "" -" Você fez muitos roubos de alto perfil, mas seus ganhos não significam nada " -"neste mundo. Tudo o que resta são as ferramentas do seu ofício e seu estilo " -"impecável." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Patient" -msgstr "Paciente Biônico" +msgstr "" #. ~ Profession (male Bionic Patient) description #: lang/json/professions_from_json.py @@ -122027,16 +108308,11 @@ msgid "" "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 "" -" Quando o diagnóstico voltou positivo, você se inscreveu para uma série de " -"cirurgias biônicas experimentais que salvaram sua vida. Agora você está mais" -" saudável do que antes, graças a um conjunto de sistemas biônicos " -"alimentados por suas próprias funções metabólicas. Aproveite ao máximo sua " -"segunda chance na vida." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Patient" -msgstr "Paciente Biônico" +msgstr "" #. ~ Profession (female Bionic Patient) description #: lang/json/professions_from_json.py @@ -122047,16 +108323,11 @@ msgid "" "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 "" -" Quando o diagnóstico voltou positivo, você se inscreveu para uma série de " -"cirurgias biônicas experimentais que salvaram sua vida. Agora você está mais" -" saudável do que antes, graças a um conjunto de sistemas biônicos " -"alimentados por suas próprias funções metabólicas. Aproveite ao máximo sua " -"segunda chance na vida." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Patient" -msgstr "Paciente" +msgstr "" #. ~ Profession (male Patient) description #: lang/json/professions_from_json.py @@ -122065,14 +108336,11 @@ 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 "" -" Quando o diagnóstico voltou positivo, você estava disposto a lutar para " -"continuar vivendo. Agora, você deve renovar seu voto de tenacidade nestes " -"novos tempos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Patient" -msgstr "Paciente" +msgstr "" #. ~ Profession (female Patient) description #: lang/json/professions_from_json.py @@ -122081,14 +108349,11 @@ 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 "" -" Quando o diagnóstico voltou positivo, você estava disposto a lutar para " -"continuar vivendo. Agora, você deve renovar seu voto de tenacidade nestes " -"novos tempos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Unwilling Mutant" -msgstr "Mutante Incapaz" +msgstr "" #. ~ Profession (male Unwilling Mutant) description #: lang/json/professions_from_json.py @@ -122097,13 +108362,11 @@ msgid "" "You were a human guinea pig, used by laboratory technicians to understand " "the immense power of mutation." msgstr "" -" Você era uma cobaia humana, usada por técnicos de laboratório para entender" -" o imenso poder da mutação." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Unwilling Mutant" -msgstr "Mutante Incapaz" +msgstr "" #. ~ Profession (female Unwilling Mutant) description #: lang/json/professions_from_json.py @@ -122112,13 +108375,11 @@ msgid "" "You were a human guinea pig, used by laboratory technicians to understand " "the immense power of mutation." msgstr "" -" Você era uma cobaia humana, usada por técnicos de laboratório para entender" -" o imenso poder da mutação." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Volunteer Mutant" -msgstr "Mutante Voluntário" +msgstr "" #. ~ Profession (male Volunteer Mutant) description #: lang/json/professions_from_json.py @@ -122128,14 +108389,11 @@ msgid "" "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 "" -" Seus sonhos de se tornar um mutante super-humano através de alterações " -"genéticas podem ter caído um pouco, mas quando o Cataclismo aconteceu, você " -"e os cientistas estavam prontos para colocar seu novo corpo em teste." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Volunteer Mutant" -msgstr "Mutante Voluntário" +msgstr "" #. ~ Profession (female Volunteer Mutant) description #: lang/json/professions_from_json.py @@ -122145,9 +108403,6 @@ msgid "" "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 "" -" Seus sonhos de se tornar um mutante super-humano através de alterações " -"genéticas podem ter caído um pouco, mas quando o Cataclismo aconteceu, você " -"e os cientistas estavam prontos para colocar seu novo corpo em teste." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -122226,7 +108481,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Athlete" -msgstr "Atleta biônico" +msgstr "" #. ~ Profession (male Bionic Athlete) description #: lang/json/professions_from_json.py @@ -122236,14 +108491,11 @@ msgid "" "Cyberolympics. Now the only thing between you and death by zombie is your " "freakish cyborg strength." msgstr "" -" É uma pena que o apocalipse tenha acontecido; Você nunca conseguirá uma " -"chance nas Cyberolimpíadas. Agora a única coisa entre você e a morte por " -"zumbi é a sua força de ciborgue bizarro." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Athlete" -msgstr "Atleta biônico" +msgstr "" #. ~ Profession (female Bionic Athlete) description #: lang/json/professions_from_json.py @@ -122253,9 +108505,6 @@ msgid "" "Cyberolympics. Now the only thing between you and death by zombie is your " "freakish cyborg strength." msgstr "" -" É uma pena que o apocalipse tenha acontecido; Você nunca conseguirá uma " -"chance nas Cyberolimpíadas. Agora a única coisa entre você e a morte por " -"zumbi é a sua força de ciborgue bizarro." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -122288,7 +108537,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Police Officer" -msgstr "Oficial de Polícia Biônica" +msgstr "" #. ~ Profession (male Bionic Police Officer) description #: lang/json/professions_from_json.py @@ -122298,14 +108547,11 @@ msgid "" "from the department's revolutionary Cybercop program. Now, in these lawless" " times, you are truly the future of law enforcement." msgstr "" -" Mortalmente feridos no cumprimento do dever, você foi ressuscitado pelos " -"cirurgiões do revolucionário programa Cybercop do departamento. Agora, " -"nestes tempos sem lei, você é verdadeiramente o futuro da aplicação da lei." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Police Officer" -msgstr "Oficial de Polícia Biônica" +msgstr "" #. ~ Profession (female Bionic Police Officer) description #: lang/json/professions_from_json.py @@ -122315,14 +108561,11 @@ msgid "" "from the department's revolutionary Cybercop program. Now, in these lawless" " times, you are truly the future of law enforcement." msgstr "" -" Mortalmente feridos no cumprimento do dever, você foi ressuscitado pelos " -"cirurgiões do revolucionário programa Cybercop do departamento. Agora, " -"nestes tempos sem lei, você é verdadeiramente o futuro da aplicação da lei." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Firefighter" -msgstr "Bombeiro Biônico" +msgstr "" #. ~ Profession (male Bionic Firefighter) description #: lang/json/professions_from_json.py @@ -122332,14 +108575,11 @@ msgid "" "enhanced to operate in the most dire of emergency situations. The end of " "the world definitely counts as a dire situation." msgstr "" -" Como bombeiro aumentado de segunda geração, você foi aprimorado " -"ciberneticamente para operar nas situações mais urgentes de emergência. O " -"fim do mundo definitivamente conta como uma situação terrível." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Firefighter" -msgstr "Bombeiro Biônico" +msgstr "" #. ~ Profession (female Bionic Firefighter) description #: lang/json/professions_from_json.py @@ -122349,14 +108589,11 @@ msgid "" "enhanced to operate in the most dire of emergency situations. The end of " "the world definitely counts as a dire situation." msgstr "" -" Como bombeiro aumentado de segunda geração, você foi aprimorado " -"ciberneticamente para operar nas situações mais urgentes de emergência. O " -"fim do mundo definitivamente conta como uma situação terrível." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Boffin" -msgstr "Bionic Bionic" +msgstr "" #. ~ Profession (male Bionic Boffin) description #: lang/json/professions_from_json.py @@ -122366,14 +108603,11 @@ msgid "" "corporation as a representative and technical advisor, utilizing the " "incredible power of your cybernetically augmented mind." msgstr "" -" Antes do apocalipse, você foi contratado por uma importante corporação " -"internacional como consultor técnico e representante, utilizando o incrível " -"poder de sua mente aumentada ciberneticamente." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Boffin" -msgstr "Bionic Bionic" +msgstr "" #. ~ Profession (female Bionic Boffin) description #: lang/json/professions_from_json.py @@ -122383,14 +108617,11 @@ msgid "" "corporation as a representative and technical advisor, utilizing the " "incredible power of your cybernetically augmented mind." msgstr "" -" Antes do apocalipse, você foi contratado por uma importante corporação " -"internacional como consultor técnico e representante, utilizando o incrível " -"poder de sua mente aumentada ciberneticamente." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Soldier" -msgstr "Soldado biônico" +msgstr "" #. ~ Profession (male Bionic Soldier) description #: lang/json/professions_from_json.py @@ -122400,15 +108631,11 @@ msgid "" "programs, a prototype cyborg soldier. You're still alive thanks to your " "augmentations, even after all your comrades fell to the undead." msgstr "" -" Você é o resultado de um dos programas de pesquisa mais recentes e finais " -"dos militares, um protótipo de soldado ciborgue. Você ainda está vivo graças" -" a seus reforços, mesmo depois que todos os seus companheiros caíram para os" -" mortos-vivos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Soldier" -msgstr "Soldado biônico" +msgstr "" #. ~ Profession (female Bionic Soldier) description #: lang/json/professions_from_json.py @@ -122418,15 +108645,11 @@ msgid "" "programs, a prototype cyborg soldier. You're still alive thanks to your " "augmentations, even after all your comrades fell to the undead." msgstr "" -" Você é o resultado de um dos programas de pesquisa mais recentes e finais " -"dos militares, um protótipo de soldado ciborgue. Você ainda está vivo graças" -" a seus reforços, mesmo depois que todos os seus companheiros caíram para os" -" mortos-vivos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Sniper" -msgstr "Atirador biônico" +msgstr "" #. ~ Profession (male Bionic Sniper) description #: lang/json/professions_from_json.py @@ -122436,14 +108659,11 @@ msgid "" "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -" Sua biônica, equipamentos e extenso treinamento em campo permitem que você " -"derrube alvos de distâncias implausíveis, mesmo após semanas de isolamento " -"total em território inimigo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Sniper" -msgstr "Atirador biônico" +msgstr "" #. ~ Profession (female Bionic Sniper) description #: lang/json/professions_from_json.py @@ -122453,14 +108673,11 @@ msgid "" "targets from implausible distances, even after weeks of total isolation in " "enemy territory." msgstr "" -" Sua biônica, equipamentos e extenso treinamento em campo permitem que você " -"derrube alvos de distâncias implausíveis, mesmo após semanas de isolamento " -"total em território inimigo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Agent" -msgstr "Agente biônico" +msgstr "" #. ~ Profession (male Bionic Agent) description #: lang/json/professions_from_json.py @@ -122471,15 +108688,11 @@ msgid "" "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -" Seu corpo tem várias biônicas no valor de milhões de dólares, pagas por " -"impostos públicos. O governo transformou você em um especialista em " -"infiltração e reconhecimento: você tem visão noturna, alarme, recursos de " -"bloqueio e um módulo de hackers." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Agent" -msgstr "Agente biônico" +msgstr "" #. ~ Profession (female Bionic Agent) description #: lang/json/professions_from_json.py @@ -122490,15 +108703,11 @@ msgid "" "specialist: you have night vision, an alarm, lock picking capabilities and a" " hacking module." msgstr "" -" Seu corpo tem várias biônicas no valor de milhões de dólares, pagas por " -"impostos públicos. O governo transformou você em um especialista em " -"infiltração e reconhecimento: você tem visão noturna, alarme, recursos de " -"bloqueio e um módulo de hackers." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Assassin" -msgstr "Assassino Biônico" +msgstr "" #. ~ Profession (male Bionic Assassin) description #: lang/json/professions_from_json.py @@ -122508,14 +108717,11 @@ msgid "" " sleeper agent capable of silently engaging your target while maintaining an" " innocuous appearance." msgstr "" -" O produto de milhões de dólares de pesquisa clandestina, você é um agente " -"dorminhoco biônico capaz de envolver silenciosamente seu alvo, mantendo uma " -"aparência inócua." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Assassin" -msgstr "Assassino Biônico" +msgstr "" #. ~ Profession (female Bionic Assassin) description #: lang/json/professions_from_json.py @@ -122525,14 +108731,11 @@ msgid "" " sleeper agent capable of silently engaging your target while maintaining an" " innocuous appearance." msgstr "" -" O produto de milhões de dólares de pesquisa clandestina, você é um agente " -"dorminhoco biônico capaz de envolver silenciosamente seu alvo, mantendo uma " -"aparência inócua." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Failed Cyborg" -msgstr "Cyborg falhado" +msgstr "" #. ~ Profession (male Failed Cyborg) description #: lang/json/professions_from_json.py @@ -122542,14 +108745,11 @@ msgid "" "but are filled with broken bionics. At least your ethanol power supply " "still works." msgstr "" -" Seu corpo é um desastre de partes biônicas. Você tem uma grande capacidade " -"de poder, mas está cheio de biônica quebrada. Pelo menos a sua fonte de " -"energia para etanol ainda funciona." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Failed Cyborg" -msgstr "Cyborg falhado" +msgstr "" #. ~ Profession (female Failed Cyborg) description #: lang/json/professions_from_json.py @@ -122559,14 +108759,11 @@ msgid "" "but are filled with broken bionics. At least your ethanol power supply " "still works." msgstr "" -" Seu corpo é um desastre de partes biônicas. Você tem uma grande capacidade " -"de poder, mas está cheio de biônica quebrada. Pelo menos a sua fonte de " -"energia para etanol ainda funciona." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Commercial Cyborg" -msgstr "Cyborg Comercial" +msgstr "" #. ~ Profession (male Commercial Cyborg) description #: lang/json/professions_from_json.py @@ -122582,7 +108779,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Commercial Cyborg" -msgstr "Cyborg Comercial" +msgstr "" #. ~ Profession (female Commercial Cyborg) description #: lang/json/professions_from_json.py @@ -122598,7 +108795,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hitchhiker" -msgstr "Mochileiro" +msgstr "" #. ~ Profession (male Hitchhiker) description #: lang/json/professions_from_json.py @@ -122607,13 +108804,11 @@ msgid "" "Your house has been demolished and your planet destroyed, but at least you " "still have your towel." msgstr "" -" Sua casa foi demolida e seu planeta destruído, mas pelo menos você ainda " -"tem sua toalha." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hitchhiker" -msgstr "Mochileiro" +msgstr "" #. ~ Profession (female Hitchhiker) description #: lang/json/professions_from_json.py @@ -122622,13 +108817,11 @@ msgid "" "Your house has been demolished and your planet destroyed, but at least you " "still have your towel." msgstr "" -" Sua casa foi demolida e seu planeta destruído, mas pelo menos você ainda " -"tem sua toalha." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Trapper" -msgstr "Caçador" +msgstr "" #. ~ Profession (male Trapper) description #: lang/json/professions_from_json.py @@ -122638,14 +108831,11 @@ msgid "" "decent living off of your catches, and trapping tutorials. Hopefully, your " "skills will come in useful against less conventional game." msgstr "" -" Você passou a maior parte da sua vida prendendo seu pai. Vocês ganharam uma" -" vida decente com suas capturas e aprisionando tutoriais. Espero que suas " -"habilidades sejam úteis contra jogos menos convencionais." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Trapper" -msgstr "Caçador" +msgstr "" #. ~ Profession (female Trapper) description #: lang/json/professions_from_json.py @@ -122655,14 +108845,11 @@ msgid "" "decent living off of your catches, and trapping tutorials. Hopefully, your " "skills will come in useful against less conventional game." msgstr "" -" Você passou a maior parte da sua vida prendendo seu pai. Vocês ganharam uma" -" vida decente com suas capturas e aprisionando tutoriais. Espero que suas " -"habilidades sejam úteis contra jogos menos convencionais." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Blacksmith" -msgstr "Ferreiro" +msgstr "" #. ~ Profession (male Blacksmith) description #: lang/json/professions_from_json.py @@ -122672,14 +108859,11 @@ msgid "" "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 "" -" Você estava passando pelo programa de ourivesaria de seu community college " -"quando o mundo acabou. Você teve problemas para sair da aula - mas conseguiu" -" manter o equipamento que estava carregando no momento." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Blacksmith" -msgstr "Ferreiro" +msgstr "" #. ~ Profession (female Blacksmith) description #: lang/json/professions_from_json.py @@ -122689,9 +108873,6 @@ msgid "" "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 "" -" Você estava passando pelo programa de ourivesaria de seu community college " -"quando o mundo acabou. Você teve problemas para sair da aula - mas conseguiu" -" manter o equipamento que estava carregando no momento." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -122730,7 +108911,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Lost Submissive" -msgstr "Submissa Perdida" +msgstr "" #. ~ Profession (male Lost Submissive) description #: lang/json/professions_from_json.py @@ -122741,15 +108922,11 @@ msgid "" "really kinky black leather. Unfortunately, there's no safewords in the " "apocalypse." msgstr "" -" No início da corrida para a segurança, você foi separado do seu mestre pelo" -" destino cruel. Agora você está por conta própria, com nada em seu nome, mas" -" um terno de couro preto realmente crespo. Infelizmente, não há palavras de " -"segurança no apocalipse." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Lost Submissive" -msgstr "Submissa Perdida" +msgstr "" #. ~ Profession (female Lost Submissive) description #: lang/json/professions_from_json.py @@ -122760,15 +108937,11 @@ msgid "" "really kinky black leather. Unfortunately, there's no safewords in the " "apocalypse." msgstr "" -" No início da corrida para a segurança, você foi separado do seu mestre pelo" -" destino cruel. Agora você está por conta própria, com nada em seu nome, mas" -" um terno de couro preto realmente crespo. Infelizmente, não há palavras de " -"segurança no apocalipse." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Senior Citizen" -msgstr "Idoso" +msgstr "" #. ~ Profession (male Senior Citizen) description #: lang/json/professions_from_json.py @@ -122778,14 +108951,11 @@ msgid "" "crazy! They ate your grandkids! But dagnabbit, you'll make them all pay " "for what they've done." msgstr "" -" Você não viu tanto sangue desde a guerra. O mundo todo ficou louco! Eles " -"comeram seus netos! Mas dagnabbit, você fará com que todos paguem pelo que " -"fizeram." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Senior Citizen" -msgstr "Idoso" +msgstr "" #. ~ Profession (female Senior Citizen) description #: lang/json/professions_from_json.py @@ -122795,14 +108965,11 @@ msgid "" "crazy! They ate your grandkids! But dagnabbit, you'll make them all pay " "for what they've done." msgstr "" -" Você não viu tanto sangue desde a guerra. O mundo todo ficou louco! Eles " -"comeram seus netos! Mas dagnabbit, você fará com que todos paguem pelo que " -"fizeram." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Otaku" -msgstr "Otaku" +msgstr "" #. ~ Profession (male Otaku) description #: lang/json/professions_from_json.py @@ -122812,15 +108979,11 @@ msgid "" "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 "" -" Tarde da noite com os amigos assistindo anime e comendo lanches preparou " -"você para a principal convenção de anime no Nordeste. Apenas tinha que ser o" -" dia do apocalipse. Pelo menos você estava pronto para o caso de sua " -"fantasia rasgar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Otaku" -msgstr "Otaku" +msgstr "" #. ~ Profession (female Otaku) description #: lang/json/professions_from_json.py @@ -122830,15 +108993,11 @@ msgid "" "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 "" -" Tarde da noite com os amigos assistindo anime e comendo lanches preparou " -"você para a principal convenção de anime no Nordeste. Apenas tinha que ser o" -" dia do apocalipse. Pelo menos você estava pronto para o caso de sua " -"fantasia rasgar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Groom" -msgstr "Noivo" +msgstr "" #. ~ Profession (Groom) description #: lang/json/professions_from_json.py @@ -122847,14 +109006,11 @@ msgid "" "The cataclysm struck on the big day and you escaped with nothing but your " "wedding attire. Cold feet? You'd just like to keep your feet attached!" msgstr "" -" O cataclismo aconteceu no grande dia e você escapou com nada além de seu " -"traje de casamento. Pés frios? Você gostaria apenas de manter seus pés " -"atados!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bride" -msgstr "Noiva" +msgstr "" #. ~ Profession (Bride) description #: lang/json/professions_from_json.py @@ -122863,14 +109019,11 @@ msgid "" "The cataclysm struck on the big day and you escaped with nothing but your " "wedding attire. Cold feet? You'd just like to keep your feet attached!" msgstr "" -" O cataclismo aconteceu no grande dia e você escapou com nada além de seu " -"traje de casamento. Pés frios? Você gostaria apenas de manter seus pés " -"atados!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Punk Rock Dude" -msgstr "Punk Rock Dude" +msgstr "" #. ~ Profession (Punk Rock Dude) description #: lang/json/professions_from_json.py @@ -122879,13 +109032,11 @@ 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 "" -" O apocalipse foi o seu sonho psicótico em realidade. Agora que o sistema " -"está morto, é hora de festejar entre os ossos do mundo!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Punk Rock Girl" -msgstr "Garota de punk rock" +msgstr "" #. ~ Profession (Punk Rock Girl) description #: lang/json/professions_from_json.py @@ -122894,13 +109045,11 @@ 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 "" -" O apocalipse foi o seu sonho psicótico em realidade. Agora que o sistema " -"está morto, é hora de festejar entre os ossos do mundo!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Firefighter" -msgstr "Bombeiro" +msgstr "" #. ~ Profession (male Firefighter) description #: lang/json/professions_from_json.py @@ -122911,16 +109060,11 @@ msgid "" "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 "" -" Como primeiro socorrista, você foi testemunha direta dos horrores " -"angustiantes do apocalipse. Separado da maior parte de seu equipamento e de " -"sua unidade enquanto estava em contato, você foi forçado a lutar contra sua " -"segurança com pouco mais do que seu confiável equipamento de ferro e bunker " -"para protegê-lo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Firefighter" -msgstr "Bombeiro" +msgstr "" #. ~ Profession (female Firefighter) description #: lang/json/professions_from_json.py @@ -122931,16 +109075,11 @@ msgid "" "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 "" -" Como primeiro socorrista, você foi testemunha direta dos horrores " -"angustiantes do apocalipse. Separado da maior parte de seu equipamento e de " -"sua unidade enquanto estava em contato, você foi forçado a lutar contra sua " -"segurança com pouco mais do que seu confiável equipamento de ferro e bunker " -"para protegê-lo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Rude Boy" -msgstr "Rude Boy" +msgstr "" #. ~ Profession (Rude Boy) description #: lang/json/professions_from_json.py @@ -122949,13 +109088,11 @@ msgid "" "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 "" -" Sua banda de ska se separou depois que o baterista se tornou um zumbi, " -"agora você está sozinho no cataclismo com alguns cigarros e seu mp3 player." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Rude Girl" -msgstr "Rude Girl" +msgstr "" #. ~ Profession (Rude Girl) description #: lang/json/professions_from_json.py @@ -122964,13 +109101,11 @@ msgid "" "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 "" -" Sua banda de ska se separou depois que o baterista se tornou um zumbi, " -"agora você está sozinho no cataclismo com alguns cigarros e seu mp3 player." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Mail Carrier" -msgstr "Transportadora de correio" +msgstr "" #. ~ Profession (male Mail Carrier) description #: lang/json/professions_from_json.py @@ -122979,14 +109114,11 @@ 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 "" -" Sua habilidade em evitar cães e descartar os brinquedos das crianças " -"enquanto entrega o correio lhe dá uma vantagem em seu novo papel como " -"sobrevivente." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Mail Carrier" -msgstr "Transportadora de correio" +msgstr "" #. ~ Profession (female Mail Carrier) description #: lang/json/professions_from_json.py @@ -122995,14 +109127,11 @@ 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 "" -" Sua habilidade em evitar cães e descartar os brinquedos das crianças " -"enquanto entrega o correio lhe dá uma vantagem em seu novo papel como " -"sobrevivente." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Convict" -msgstr "Condenar" +msgstr "" #. ~ Profession (male Convict) description #: lang/json/professions_from_json.py @@ -123011,13 +109140,11 @@ msgid "" "The cataclysm gave you a chance to escape, but freedom comes with a steep " "price." msgstr "" -" O cataclismo lhe deu uma chance de escapar, mas a liberdade vem com um " -"preço exorbitante." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Convict" -msgstr "Condenar" +msgstr "" #. ~ Profession (female Convict) description #: lang/json/professions_from_json.py @@ -123026,8 +109153,6 @@ msgid "" "The cataclysm gave you a chance to escape, but freedom comes with a steep " "price." msgstr "" -" O cataclismo lhe deu uma chance de escapar, mas a liberdade vem com um " -"preço exorbitante." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -123170,7 +109295,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Burglar" -msgstr "Assaltante" +msgstr "" #. ~ Profession (male Burglar) description #: lang/json/professions_from_json.py @@ -123179,13 +109304,11 @@ msgid "" "You thought this would be your lucky break. Does it count as breaking and " "entering if everyone in town is undead?" msgstr "" -" Você pensou que esta seria sua chance de sorte. Será que isso conta como " -"entrar e sair se todos na cidade são mortos-vivos?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Burglar" -msgstr "Assaltante" +msgstr "" #. ~ Profession (female Burglar) description #: lang/json/professions_from_json.py @@ -123194,13 +109317,11 @@ msgid "" "You thought this would be your lucky break. Does it count as breaking and " "entering if everyone in town is undead?" msgstr "" -" Você pensou que esta seria sua chance de sorte. Será que isso conta como " -"entrar e sair se todos na cidade são mortos-vivos?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Razor Boy" -msgstr "Razor Boy" +msgstr "" #. ~ Profession (Razor Boy) description #: lang/json/professions_from_json.py @@ -123211,15 +109332,11 @@ msgid "" " Now that the world has ended, those bionic enhancements may spell the " "difference between life and death." msgstr "" -" Através de uma série de cirurgias dolorosas e caras você se tornou uma arma" -" biônica ambulante, seus serviços como um mercenário disponível para o maior" -" lance. Agora que o mundo acabou, essas melhorias biônicas podem significar " -"a diferença entre a vida e a morte." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Razor Girl" -msgstr "Razor Girl" +msgstr "" #. ~ Profession (Razor Girl) description #: lang/json/professions_from_json.py @@ -123230,15 +109347,11 @@ msgid "" " Now that the world has ended, those bionic enhancements may spell the " "difference between life and death." msgstr "" -" Através de uma série de cirurgias dolorosas e caras você se tornou uma arma" -" biônica ambulante, seus serviços como um mercenário disponível para o maior" -" lance. Agora que o mundo acabou, essas melhorias biônicas podem significar " -"a diferença entre a vida e a morte." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Cyberjunkie" -msgstr "Cyberjunkie" +msgstr "" #. ~ Profession (male Cyberjunkie) description #: lang/json/professions_from_json.py @@ -123249,16 +109362,11 @@ msgid "" " The world has moved on but your posthuman hunger still cries out to be " "fed; where will you get your bionic fix now?" msgstr "" -" Há muito tempo, sua paixão ao longo da vida com o aprimoramento biônico " -"levou você a um mundo obscuro de clínicas biônicas de becos sem saída e CBMs" -" de segunda mão auto-instaladas. O mundo seguiu em frente, mas sua fome pós-" -"humana continua a ser alimentada; Onde você vai conseguir sua correção " -"biônica agora?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Cyberjunkie" -msgstr "Cyberjunkie" +msgstr "" #. ~ Profession (female Cyberjunkie) description #: lang/json/professions_from_json.py @@ -123269,16 +109377,11 @@ msgid "" " The world has moved on but your posthuman hunger still cries out to be " "fed; where will you get your bionic fix now?" msgstr "" -" Há muito tempo, sua paixão ao longo da vida com o aprimoramento biônico " -"levou você a um mundo obscuro de clínicas biônicas de becos sem saída e CBMs" -" de segunda mão auto-instaladas. O mundo seguiu em frente, mas sua fome pós-" -"humana continua a ser alimentada; Onde você vai conseguir sua correção " -"biônica agora?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Monster" -msgstr "Monstro Biônico" +msgstr "" #. ~ Profession (male Bionic Monster) description #: lang/json/professions_from_json.py @@ -123289,16 +109392,11 @@ msgid "" " 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." msgstr "" -" Completamente ultrapassado pela psicose biônica induzida, você é um monstro" -" pós-humano deformado que não tinha lugar na sociedade. Mas agora, onde uma " -"vez você foi forçado a se esconder nas sombras, você encontra nesta nova " -"desolação um mundo onde até mesmo uma criatura como você pode encontrar seu " -"nicho." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Monster" -msgstr "Monstro Biônico" +msgstr "" #. ~ Profession (female Bionic Monster) description #: lang/json/professions_from_json.py @@ -123309,16 +109407,11 @@ msgid "" " 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." msgstr "" -" Completamente ultrapassado pela psicose biônica induzida, você é um monstro" -" pós-humano deformado que não tinha lugar na sociedade. Mas agora, onde uma " -"vez você foi forçado a se esconder nas sombras, você encontra nesta nova " -"desolação um mundo onde até mesmo uma criatura como você pode encontrar seu " -"nicho." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Lawyer" -msgstr "Advogado" +msgstr "" #. ~ Profession (male Lawyer) description #: lang/json/professions_from_json.py @@ -123327,13 +109420,11 @@ 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 "" -" Agora, em vez de reclamar sobre suas taxas, seus clientes tentam comer seu " -"cérebro. Você não pode dizer qual é o pior ainda." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Lawyer" -msgstr "Advogado" +msgstr "" #. ~ Profession (female Lawyer) description #: lang/json/professions_from_json.py @@ -123342,8 +109433,6 @@ 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 "" -" Agora, em vez de reclamar sobre suas taxas, seus clientes tentam comer seu " -"cérebro. Você não pode dizer qual é o pior ainda." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -123380,7 +109469,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Priest" -msgstr "Sacerdote" +msgstr "" #. ~ Profession (male Priest) description #: lang/json/professions_from_json.py @@ -123391,15 +109480,11 @@ msgid "" " are all dead, you should probably find something more tangible to protect " "you." msgstr "" -" Quando o apocalipse aconteceu, você fez tudo o que podia para proteger os " -"fiéis da paróquia, mas parece que as orações não foram suficientes. Agora " -"que eles estão todos mortos, provavelmente você deve encontrar algo mais " -"tangível para protegê-lo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Priest" -msgstr "Sacerdote" +msgstr "" #. ~ Profession (female Priest) description #: lang/json/professions_from_json.py @@ -123410,15 +109495,11 @@ msgid "" " are all dead, you should probably find something more tangible to protect " "you." msgstr "" -" Quando o apocalipse aconteceu, você fez tudo o que podia para proteger os " -"fiéis da paróquia, mas parece que as orações não foram suficientes. Agora " -"que eles estão todos mortos, provavelmente você deve encontrar algo mais " -"tangível para protegê-lo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Kannushi" -msgstr "Kannushi" +msgstr "" #. ~ Profession (male Kannushi) description #: lang/json/professions_from_json.py @@ -123428,14 +109509,11 @@ msgid "" "sacred tasks. You preferred it when only the spirits of the dead inhabited " "your shrine, and not their rotting corpses." msgstr "" -" Você era um dos mantenedores de um santuário xintoísta, realizando rituais " -"e tarefas sagradas. Você preferia quando apenas os espíritos dos mortos " -"habitavam seu santuário, e não seus cadáveres apodrecendo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Kannushi" -msgstr "Kannushi" +msgstr "" #. ~ Profession (female Kannushi) description #: lang/json/professions_from_json.py @@ -123445,14 +109523,11 @@ msgid "" "sacred tasks. You preferred it when only the spirits of the dead inhabited " "your shrine, and not their rotting corpses." msgstr "" -" Você era um dos mantenedores de um santuário xintoísta, realizando rituais " -"e tarefas sagradas. Você preferia quando apenas os espíritos dos mortos " -"habitavam seu santuário, e não seus cadáveres apodrecendo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Imam" -msgstr "Eu tenho" +msgstr "" #. ~ Profession (Imam) description #: lang/json/professions_from_json.py @@ -123463,15 +109538,11 @@ msgid "" "in prayer. Back then they came from far and wide to listen to you, now they" " come to eat your brains." msgstr "" -" Você passou muito do seu tempo antes do apocalipse na mesquita local, " -"estudando as palavras do Profeta e do Alcorão e orientando sua comunidade em" -" oração. Naquela época, eles vieram de longe para ouvi-lo, agora eles vêm " -"para comer seus cérebros." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Mourchida" -msgstr "Mourchida" +msgstr "" #. ~ Profession (Mourchida) description #: lang/json/professions_from_json.py @@ -123482,15 +109553,11 @@ msgid "" "in prayer. Back then they came from far and wide to listen to you, now they" " come to eat your brains." msgstr "" -" Você passou muito do seu tempo antes do apocalipse na mesquita local, " -"estudando as palavras do Profeta e do Alcorão e orientando sua comunidade em" -" oração. Naquela época, eles vieram de longe para ouvi-lo, agora eles vêm " -"para comer seus cérebros." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Rabbi" -msgstr "Rabino" +msgstr "" #. ~ Profession (male Rabbi) description #: lang/json/professions_from_json.py @@ -123499,13 +109566,11 @@ msgid "" "You were celebrating with your flock in the temple when the cataclysm " "struck. You sure could use a messiah right now!" msgstr "" -" Você estava celebrando com seu rebanho no templo quando o cataclismo " -"aconteceu. Você com certeza poderia usar um messias agora mesmo!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Rabbi" -msgstr "Rabino" +msgstr "" #. ~ Profession (female Rabbi) description #: lang/json/professions_from_json.py @@ -123514,13 +109579,11 @@ msgid "" "You were celebrating with your flock in the temple when the cataclysm " "struck. You sure could use a messiah right now!" msgstr "" -" Você estava celebrando com seu rebanho no templo quando o cataclismo " -"aconteceu. Você com certeza poderia usar um messias agora mesmo!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Guru" -msgstr "Professor" +msgstr "" #. ~ Profession (male Guru) description #: lang/json/professions_from_json.py @@ -123530,14 +109593,11 @@ msgid "" " Normally, you can answer any question, but even you are not quite sure " "what to do about the ravenous undead." msgstr "" -" Você passou muitos anos viajando pelo mundo, tornando-se sábio e instruído." -" Normalmente, você pode responder a qualquer pergunta, mas mesmo assim você " -"não tem certeza do que fazer com os mortos-vivos vorazes." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Guru" -msgstr "Professor" +msgstr "" #. ~ Profession (female Guru) description #: lang/json/professions_from_json.py @@ -123547,14 +109607,11 @@ msgid "" " Normally, you can answer any question, but even you are not quite sure " "what to do about the ravenous undead." msgstr "" -" Você passou muitos anos viajando pelo mundo, tornando-se sábio e instruído." -" Normalmente, você pode responder a qualquer pergunta, mas mesmo assim você " -"não tem certeza do que fazer com os mortos-vivos vorazes." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Preacher" -msgstr "Pregador" +msgstr "" #. ~ Profession (male Preacher) description #: lang/json/professions_from_json.py @@ -123565,15 +109622,11 @@ msgid "" "host your daily podcast and the undead listening to your sermons don't seem " "particularly moved." msgstr "" -" Você dedicou sua vida a espalhar a boa palavra, sempre na estrada, viajando" -" de cidade em cidade. Agora, tudo foi para o inferno, você não pode hospedar" -" seu podcast diário e os mortos-vivos ouvindo seus sermões não parecem " -"particularmente comovidos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Preacher" -msgstr "Pregador" +msgstr "" #. ~ Profession (female Preacher) description #: lang/json/professions_from_json.py @@ -123584,15 +109637,11 @@ msgid "" "host your daily podcast and the undead listening to your sermons don't seem " "particularly moved." msgstr "" -" Você dedicou sua vida a espalhar a boa palavra, sempre na estrada, viajando" -" de cidade em cidade. Agora, tudo foi para o inferno, você não pode hospedar" -" seu podcast diário e os mortos-vivos ouvindo seus sermões não parecem " -"particularmente comovidos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Novice Martial Artist" -msgstr "Artista Marcial Novato" +msgstr "" #. ~ Profession (male Novice Martial Artist) description #: lang/json/professions_from_json.py @@ -123601,13 +109650,11 @@ 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 "" -" Você estava a caminho do dojo para sua primeira aula quando o mundo acabou." -" E você realmente queria aprender a nadar também." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Novice Martial Artist" -msgstr "Artista Marcial Novato" +msgstr "" #. ~ Profession (female Novice Martial Artist) description #: lang/json/professions_from_json.py @@ -123616,13 +109663,11 @@ 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 "" -" Você estava a caminho do dojo para sua primeira aula quando o mundo acabou." -" E você realmente queria aprender a nadar também." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Martial Artist" -msgstr "Artista marcial" +msgstr "" #. ~ Profession (male Martial Artist) description #: lang/json/professions_from_json.py @@ -123631,14 +109676,11 @@ msgid "" "'Drop the martial arts!', they said. 'Learn a skill for the REAL world!', " "they said. Well, you're about to show them! SHOW THEM ALL!" msgstr "" -" 'Largue as artes marciais!', Eles disseram. 'Aprenda uma habilidade para o " -"mundo real!', Eles disseram. Bem, você está prestes a mostrá-los! MOSTRE- " -"LHE TODOS!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Martial Artist" -msgstr "Artista marcial" +msgstr "" #. ~ Profession (female Martial Artist) description #: lang/json/professions_from_json.py @@ -123647,14 +109689,11 @@ msgid "" "'Drop the martial arts!', they said. 'Learn a skill for the REAL world!', " "they said. Well, you're about to show them! SHOW THEM ALL!" msgstr "" -" 'Largue as artes marciais!', Eles disseram. 'Aprenda uma habilidade para o " -"mundo real!', Eles disseram. Bem, você está prestes a mostrá-los! MOSTRE- " -"LHE TODOS!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Blackbelt" -msgstr "Cinto preto" +msgstr "" #. ~ Profession (male Blackbelt) description #: lang/json/professions_from_json.py @@ -123663,13 +109702,11 @@ msgid "" "As the world ends, you alone stand against the coming darkness with your " "fists of steel." msgstr "" -" Quando o mundo acaba, você sozinho fica contra a escuridão que vem com seus" -" punhos de aço." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Blackbelt" -msgstr "Cinto preto" +msgstr "" #. ~ Profession (female Blackbelt) description #: lang/json/professions_from_json.py @@ -123678,13 +109715,11 @@ msgid "" "As the world ends, you alone stand against the coming darkness with your " "fists of steel." msgstr "" -" Quando o mundo acaba, você sozinho fica contra a escuridão que vem com seus" -" punhos de aço." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Boxer" -msgstr "Boxer" +msgstr "" #. ~ Profession (male Boxer) description #: lang/json/professions_from_json.py @@ -123693,13 +109728,11 @@ msgid "" "You were training for the fight of your life before the Cataclysm struck. " "Now you fight just to keep yourself alive." msgstr "" -" Você estava treinando para a luta da sua vida antes do Cataclismo. Agora " -"você luta apenas para se manter vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Boxer" -msgstr "Boxer" +msgstr "" #. ~ Profession (female Boxer) description #: lang/json/professions_from_json.py @@ -123708,13 +109741,11 @@ msgid "" "You were training for the fight of your life before the Cataclysm struck. " "Now you fight just to keep yourself alive." msgstr "" -" Você estava treinando para a luta da sua vida antes do Cataclismo. Agora " -"você luta apenas para se manter vivo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Pizza Delivery Boy" -msgstr "Entregador de pizza" +msgstr "" #. ~ Profession (Pizza Delivery Boy) description #: lang/json/professions_from_json.py @@ -123725,15 +109756,11 @@ msgid "" "with only your wits and some leftover pizza. And they didn't even leave a " "tip!" msgstr "" -" Você estava entregando a última pizza da noite para o laboratório local de " -"criogenia quando o cataclismo chegou. Fugindo para o abrigo mais próximo, " -"você se encontra apenas com sua inteligência e algumas sobras de pizza. E " -"eles nem sequer deixaram uma dica!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Pizza Delivery Girl" -msgstr "Pizza Delivery Girl" +msgstr "" #. ~ Profession (Pizza Delivery Girl) description #: lang/json/professions_from_json.py @@ -123744,15 +109771,11 @@ msgid "" "with only your wits and some leftover pizza. And they didn't even leave a " "tip!" msgstr "" -" Você estava entregando a última pizza da noite para o laboratório local de " -"criogenia quando o cataclismo chegou. Fugindo para o abrigo mais próximo, " -"você se encontra apenas com sua inteligência e algumas sobras de pizza. E " -"eles nem sequer deixaram uma dica!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Archaeologist" -msgstr "Arqueólogo" +msgstr "" #. ~ Profession (male Archaeologist) description #: lang/json/professions_from_json.py @@ -123762,15 +109785,11 @@ msgid "" "grandfather's journal, the ground started to shake uncontrollably. Getting " "a bad feeling about the situation, you head to the nearest shelter." msgstr "" -" Enquanto estava a caminho de um templo há muito perdido, seguindo uma pista" -" do diário de seu avô morto, o chão começou a tremer incontrolavelmente. Com" -" um mau pressentimento sobre a situação, você se dirige ao abrigo mais " -"próximo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Archaeologist" -msgstr "Arqueólogo" +msgstr "" #. ~ Profession (female Archaeologist) description #: lang/json/professions_from_json.py @@ -123780,15 +109799,11 @@ msgid "" "grandfather's journal, the ground started to shake uncontrollably. Getting " "a bad feeling about the situation, you head to the nearest shelter." msgstr "" -" Enquanto estava a caminho de um templo há muito perdido, seguindo uma pista" -" do diário de seu avô morto, o chão começou a tremer incontrolavelmente. Com" -" um mau pressentimento sobre a situação, você se dirige ao abrigo mais " -"próximo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Paperboy" -msgstr "jornaleiro" +msgstr "" #. ~ Profession (Paperboy) description #: lang/json/professions_from_json.py @@ -123798,15 +109813,11 @@ msgid "" "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 "" -" Você estava entregando o jornal da manhã ao longo de sua rota habitual " -"quando o Cataclismo atingiu. As hordas de mortos-vivos parecem não valorizar" -" as últimas notícias, mas pelo menos sua fiel bicicleta ainda está " -"funcionando." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Papergirl" -msgstr "Menina de papel" +msgstr "" #. ~ Profession (Papergirl) description #: lang/json/professions_from_json.py @@ -123816,15 +109827,11 @@ msgid "" "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 "" -" Você estava entregando o jornal da manhã ao longo de sua rota habitual " -"quando o Cataclismo atingiu. As hordas de mortos-vivos parecem não valorizar" -" as últimas notícias, mas pelo menos sua fiel bicicleta ainda está " -"funcionando." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Roller Derby Player" -msgstr "Jogador Roller Derby" +msgstr "" #. ~ Profession (male Roller Derby Player) description #: lang/json/professions_from_json.py @@ -123835,16 +109842,11 @@ msgid "" "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 "" -" Você era um inferno sobre rodas antes do apocalipse. Agora o resto do seu " -"time está morto, e você provavelmente não teria vivido tanto tempo se não " -"fosse por sua propensão à violência em alta velocidade. As coisas estão " -"parecendo sombrias; Quanto tempo você pode correr voltas ao redor dos " -"mortos-vivos antes de ficar bloqueado para sempre?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Roller Derby Player" -msgstr "Jogador Roller Derby" +msgstr "" #. ~ Profession (female Roller Derby Player) description #: lang/json/professions_from_json.py @@ -123855,16 +109857,11 @@ msgid "" "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 "" -" Você era um inferno sobre rodas antes do apocalipse. Agora o resto do seu " -"time está morto, e você provavelmente não teria vivido tanto tempo se não " -"fosse por sua propensão à violência em alta velocidade. As coisas estão " -"parecendo sombrias; Quanto tempo você pode correr voltas ao redor dos " -"mortos-vivos antes de ficar bloqueado para sempre?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Farmer" -msgstr "Agricultor" +msgstr "" #. ~ Profession (male Farmer) description #: lang/json/professions_from_json.py @@ -123874,14 +109871,11 @@ msgid "" "with your trusty hoe and some seeds it's time to rebuild the Earth, one " "plant at a time." msgstr "" -" Você estava ganhando a vida levantando as colheitas, quando o cataclismo " -"acontecia. Agora, com sua enxada confiável e algumas sementes, é hora de " -"reconstruir a Terra, uma planta de cada vez." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Farmer" -msgstr "Agricultor" +msgstr "" #. ~ Profession (female Farmer) description #: lang/json/professions_from_json.py @@ -123891,14 +109885,11 @@ msgid "" "with your trusty hoe and some seeds it's time to rebuild the Earth, one " "plant at a time." msgstr "" -" Você estava ganhando a vida levantando as colheitas, quando o cataclismo " -"acontecia. Agora, com sua enxada confiável e algumas sementes, é hora de " -"reconstruir a Terra, uma planta de cada vez." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "National Guard" -msgstr "guarda Nacional" +msgstr "" #. ~ Profession (male National Guard) description #: lang/json/professions_from_json.py @@ -123908,15 +109899,11 @@ msgid "" "your best efforts you did not manage to meet up with them before all " "communications ceased and you found yourself alone amongst the dead." msgstr "" -" Sua unidade da Guarda Nacional foi ativada quando a epidemia ocorreu. " -"Apesar de seus melhores esforços, você não conseguiu se encontrar com eles " -"antes que todas as comunicações cessassem e você se encontrasse sozinho " -"entre os mortos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "National Guard" -msgstr "guarda Nacional" +msgstr "" #. ~ Profession (female National Guard) description #: lang/json/professions_from_json.py @@ -123926,15 +109913,11 @@ msgid "" "your best efforts you did not manage to meet up with them before all " "communications ceased and you found yourself alone amongst the dead." msgstr "" -" Sua unidade da Guarda Nacional foi ativada quando a epidemia ocorreu. " -"Apesar de seus melhores esforços, você não conseguiu se encontrar com eles " -"antes que todas as comunicações cessassem e você se encontrasse sozinho " -"entre os mortos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hardened Survivor" -msgstr "Sobrevivente Endurecido" +msgstr "" #. ~ Profession (male Hardened Survivor) description #: lang/json/professions_from_json.py @@ -123944,14 +109927,11 @@ msgid "" " living off nature's bounties and what you could get outside the death traps" " of the large city." msgstr "" -" Um dos poucos sortudos que escaparam do cataclismo, você fez uma vida por " -"si mesmo vivendo das recompensas da natureza e do que poderia conseguir fora" -" das armadilhas mortais da grande cidade." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hardened Survivor" -msgstr "Sobrevivente Endurecido" +msgstr "" #. ~ Profession (female Hardened Survivor) description #: lang/json/professions_from_json.py @@ -123961,14 +109941,11 @@ msgid "" " living off nature's bounties and what you could get outside the death traps" " of the large city." msgstr "" -" Um dos poucos sortudos que escaparam do cataclismo, você fez uma vida por " -"si mesmo vivendo das recompensas da natureza e do que poderia conseguir fora" -" das armadilhas mortais da grande cidade." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hardened Scavenger" -msgstr "Vassoura endurecida" +msgstr "" #. ~ Profession (male Hardened Scavenger) description #: lang/json/professions_from_json.py @@ -123978,14 +109955,11 @@ msgid "" " on the ruins of others. Whether by force, guile, or luck, you've obtained " "the best gear you could find." msgstr "" -" Um dos poucos sortudos que escapou do cataclismo, você fez uma vida para si" -" mesmo nas ruínas dos outros. Seja pela força, astúcia ou a sorte, você " -"obteve o melhor equipamento que conseguiu encontrar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hardened Scavenger" -msgstr "Vassoura endurecida" +msgstr "" #. ~ Profession (female Hardened Scavenger) description #: lang/json/professions_from_json.py @@ -123995,14 +109969,11 @@ msgid "" " on the ruins of others. Whether by force, guile, or luck, you've obtained " "the best gear you could find." msgstr "" -" Um dos poucos sortudos que escapou do cataclismo, você fez uma vida para si" -" mesmo nas ruínas dos outros. Seja pela força, astúcia ou a sorte, você " -"obteve o melhor equipamento que conseguiu encontrar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Military Holdout" -msgstr "Posse Militar" +msgstr "" #. ~ Profession (male Military Holdout) description #: lang/json/professions_from_json.py @@ -124013,15 +109984,11 @@ msgid "" "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -" Você deve ter prestado atenção ao seu treinamento de sobrevivência no campo" -" de treinamento, caso contrário, você nunca teria vivido o suficiente para " -"sobreviver à cadeia de comando e se encontrar nessa situação difícil. A " -"única missão que resta agora é sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Military Holdout" -msgstr "Posse Militar" +msgstr "" #. ~ Profession (female Military Holdout) description #: lang/json/professions_from_json.py @@ -124032,15 +109999,11 @@ msgid "" "command and find yourself in this predicament. The only mission left now is" " to survive." msgstr "" -" Você deve ter prestado atenção ao seu treinamento de sobrevivência no campo" -" de treinamento, caso contrário, você nunca teria vivido o suficiente para " -"sobreviver à cadeia de comando e se encontrar nessa situação difícil. A " -"única missão que resta agora é sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Road Warrior" -msgstr "Guerreiro de estrada" +msgstr "" #. ~ Profession (male Road Warrior) description #: lang/json/professions_from_json.py @@ -124051,15 +110014,11 @@ msgid "" "situation is dire. You've been reduced to a scavenger, living off the " "corpse of the old world." msgstr "" -" Você viveu por suas rodas durante os primeiros meses do apocalipse, mas " -"agora seu carro está perdido para este turbilhão de decadência, sua munição " -"está baixa e sua situação é terrível. Você foi reduzido a um limpador, " -"vivendo do cadáver do velho mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Road Warrior" -msgstr "Guerreiro de estrada" +msgstr "" #. ~ Profession (female Road Warrior) description #: lang/json/professions_from_json.py @@ -124070,15 +110029,11 @@ msgid "" "situation is dire. You've been reduced to a scavenger, living off the " "corpse of the old world." msgstr "" -" Você viveu por suas rodas durante os primeiros meses do apocalipse, mas " -"agora seu carro está perdido para este turbilhão de decadência, sua munição " -"está baixa e sua situação é terrível. Você foi reduzido a um limpador, " -"vivendo do cadáver do velho mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Wasteland Ranger" -msgstr "Guarda Florestal Wasteland" +msgstr "" #. ~ Profession (male Wasteland Ranger) description #: lang/json/professions_from_json.py @@ -124087,13 +110042,11 @@ msgid "" "If the human race is to survive, the threats facing its existence must be " "eliminated, no matter the cost. If it's hostile, you kill it." msgstr "" -" Se a raça humana quiser sobreviver, as ameaças que enfrentam sua existência" -" devem ser eliminadas, não importando o custo. Se for hostil, você o mata." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Wasteland Ranger" -msgstr "Guarda Florestal Wasteland" +msgstr "" #. ~ Profession (female Wasteland Ranger) description #: lang/json/professions_from_json.py @@ -124102,13 +110055,11 @@ msgid "" "If the human race is to survive, the threats facing its existence must be " "eliminated, no matter the cost. If it's hostile, you kill it." msgstr "" -" Se a raça humana quiser sobreviver, as ameaças que enfrentam sua existência" -" devem ser eliminadas, não importando o custo. Se for hostil, você o mata." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Veteran Bandit" -msgstr "Bandido veterano" +msgstr "" #. ~ Profession (male Veteran Bandit) description #: lang/json/professions_from_json.py @@ -124119,16 +110070,11 @@ msgid "" "nightmare. Only those mobile enough to scavenge or brutal enough to pillage" " would survive. You are one of the latter." msgstr "" -" Depois que as cidades explodiram, houve um turbilhão de saques; uma " -"tempestade de medo. Os homens começaram a se alimentar de homens. Nas " -"estradas, era um pesadelo de linha branca. Apenas aqueles móveis o " -"suficiente para buscar ou brutal o suficiente para a pilhagem sobreviveriam." -" Você é um dos últimos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Veteran Bandit" -msgstr "Bandido veterano" +msgstr "" #. ~ Profession (female Veteran Bandit) description #: lang/json/professions_from_json.py @@ -124139,16 +110085,11 @@ msgid "" "nightmare. Only those mobile enough to scavenge or brutal enough to pillage" " would survive. You are one of the latter." msgstr "" -" Depois que as cidades explodiram, houve um turbilhão de saques; uma " -"tempestade de medo. Os homens começaram a se alimentar de homens. Nas " -"estradas, era um pesadelo de linha branca. Apenas aqueles móveis o " -"suficiente para buscar ou brutal o suficiente para a pilhagem sobreviveriam." -" Você é um dos últimos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Mall Security" -msgstr "Segurança de shopping" +msgstr "" #. ~ Profession (male Mall Security) description #: lang/json/professions_from_json.py @@ -124158,14 +110099,11 @@ msgid "" "basic training for your job. You do however have your trusty tazer, baton, " "and pocket knife." msgstr "" -" Um guarda de segurança do shopping. Você não tem nenhuma habilidade útil, " -"além de algum treinamento básico para o seu trabalho. Você, no entanto, tem " -"seu fiel tazer, cassetete e canivete." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Mall Security" -msgstr "Segurança de shopping" +msgstr "" #. ~ Profession (female Mall Security) description #: lang/json/professions_from_json.py @@ -124175,14 +110113,11 @@ msgid "" "basic training for your job. You do however have your trusty tazer, baton, " "and pocket knife." msgstr "" -" Um guarda de segurança do shopping. Você não tem nenhuma habilidade útil, " -"além de algum treinamento básico para o seu trabalho. Você, no entanto, tem " -"seu fiel tazer, cassetete e canivete." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Naturalist" -msgstr "Naturalista" +msgstr "" #. ~ Profession (male Naturalist) description #: lang/json/professions_from_json.py @@ -124192,15 +110127,11 @@ msgid "" "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." msgstr "" -" Você chegou a um entendimento com a Mãe Natureza durante longos anos de " -"exílio auto-imposto no deserto. O mundo como eles conheciam poderia ter " -"acabado para a sua espécie abandonada, mas você dificilmente pode dizer a " -"diferença." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Naturalist" -msgstr "Naturalista" +msgstr "" #. ~ Profession (female Naturalist) description #: lang/json/professions_from_json.py @@ -124210,15 +110141,11 @@ msgid "" "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." msgstr "" -" Você chegou a um entendimento com a Mãe Natureza durante longos anos de " -"exílio auto-imposto no deserto. O mundo como eles conheciam poderia ter " -"acabado para a sua espécie abandonada, mas você dificilmente pode dizer a " -"diferença." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Fisher" -msgstr "Fisher" +msgstr "" #. ~ Profession (male Fisher) description #: lang/json/professions_from_json.py @@ -124229,16 +110156,11 @@ msgid "" "bigger and more mean. Now their horrible noises have you spooked- you just " "hope the fish aren't as nasty." msgstr "" -" Você passou a maior parte dos seus dias apenas pescando nos pântanos, " -"ficando calmamente com o que você pegou. Você achou o zumbido dos insetos " -"agradável, mas eles ficaram maiores e mais mesquinhos. Agora seus ruídos " -"horríveis te assustaram - você só espera que os peixes não sejam tão " -"desagradáveis." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Fisher" -msgstr "Fisher" +msgstr "" #. ~ Profession (female Fisher) description #: lang/json/professions_from_json.py @@ -124249,16 +110171,11 @@ msgid "" "bigger and more mean. Now their horrible noises have you spooked- you just " "hope the fish aren't as nasty." msgstr "" -" Você passou a maior parte dos seus dias apenas pescando nos pântanos, " -"ficando calmamente com o que você pegou. Você achou o zumbido dos insetos " -"agradável, mas eles ficaram maiores e mais mesquinhos. Agora seus ruídos " -"horríveis te assustaram - você só espera que os peixes não sejam tão " -"desagradáveis." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Historical Reenactor" -msgstr "Reenactor histórico" +msgstr "" #. ~ Profession (male Historical Reenactor) description #: lang/json/professions_from_json.py @@ -124268,14 +110185,11 @@ msgid "" "History exhibition when the end of the world permanently derailed your " "plans." msgstr "" -" Você estava a caminho da exposição Anual da História da Nova Guerra " -"Revolucionária da Nova Inglaterra, quando o fim do mundo descarrilou " -"permanentemente seus planos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Historical Reenactor" -msgstr "Reenactor histórico" +msgstr "" #. ~ Profession (female Historical Reenactor) description #: lang/json/professions_from_json.py @@ -124285,14 +110199,11 @@ msgid "" "History exhibition when the end of the world permanently derailed your " "plans." msgstr "" -" Você estava a caminho da exposição Anual da História da Nova Guerra " -"Revolucionária da Nova Inglaterra, quando o fim do mundo descarrilou " -"permanentemente seus planos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Ahistorical Reenactor" -msgstr "Reenactor Ahistorico" +msgstr "" #. ~ Profession (male Ahistorical Reenactor) description #: lang/json/professions_from_json.py @@ -124302,14 +110213,11 @@ msgid "" "History exhibition when the end of the world made traditional gender roles " "obsolete." msgstr "" -" Você estava a caminho da exposição Anual da História da Nova Guerra " -"Revolucionária da Nova Inglaterra, quando o fim do mundo tornou os papéis " -"tradicionais de gênero obsoletos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Ahistorical Reenactor" -msgstr "Reenactor Ahistorico" +msgstr "" #. ~ Profession (female Ahistorical Reenactor) description #: lang/json/professions_from_json.py @@ -124319,14 +110227,11 @@ msgid "" "History exhibition when the end of the world made traditional gender roles " "obsolete." msgstr "" -" Você estava a caminho da exposição Anual da História da Nova Guerra " -"Revolucionária da Nova Inglaterra, quando o fim do mundo tornou os papéis " -"tradicionais de gênero obsoletos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Drone Operator" -msgstr "Operador de zangão" +msgstr "" #. ~ Profession (male Drone Operator) description #: lang/json/professions_from_json.py @@ -124336,14 +110241,11 @@ msgid "" "newsbots and pizza delivery drones. Now all the drones carry guns instead " "of pizza." msgstr "" -" Você tinha uma máquina de programação de trabalho, como limpadores de rua " -"automáticos, newsbots e drones de entrega de pizza. Agora todos os drones " -"carregam armas em vez de pizza." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Drone Operator" -msgstr "Operador de zangão" +msgstr "" #. ~ Profession (female Drone Operator) description #: lang/json/professions_from_json.py @@ -124353,14 +110255,11 @@ msgid "" "newsbots and pizza delivery drones. Now all the drones carry guns instead " "of pizza." msgstr "" -" Você tinha uma máquina de programação de trabalho, como limpadores de rua " -"automáticos, newsbots e drones de entrega de pizza. Agora todos os drones " -"carregam armas em vez de pizza." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Skater Boy" -msgstr "Skatista" +msgstr "" #. ~ Profession (Skater Boy) description #: lang/json/professions_from_json.py @@ -124369,13 +110268,11 @@ msgid "" "You love to skate! At least now the grown-ups aren't telling you where you " "can't roll." msgstr "" -" Você ama patinar! Pelo menos agora os adultos não estão dizendo onde você " -"não pode rolar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Skater Girl" -msgstr "Skatista" +msgstr "" #. ~ Profession (Skater Girl) description #: lang/json/professions_from_json.py @@ -124384,13 +110281,11 @@ msgid "" "You love to skate! At least now the grown-ups aren't telling you where you " "can't roll." msgstr "" -" Você ama patinar! Pelo menos agora os adultos não estão dizendo onde você " -"não pode rolar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Juvenile Delinquent" -msgstr "Delinquente juvenil" +msgstr "" #. ~ Profession (male Juvenile Delinquent) description #: lang/json/professions_from_json.py @@ -124401,16 +110296,11 @@ msgid "" "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 "" -" Você nunca se importou com os adultos dizendo o que fazer, e foi assim que " -"você acabou passando a maior parte de seus dias no escritório do diretor. " -"Agora, não precisar de adultos para lhe dizer o que fazer é a única razão " -"pela qual você está vivo. Cara, você realmente deveria ter jogado " -"fisicamente hoje." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Juvenile Delinquent" -msgstr "Delinquente juvenil" +msgstr "" #. ~ Profession (female Juvenile Delinquent) description #: lang/json/professions_from_json.py @@ -124421,16 +110311,11 @@ msgid "" "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 "" -" Você nunca se importou com os adultos dizendo o que fazer, e foi assim que " -"você acabou passando a maior parte de seus dias no escritório do diretor. " -"Agora, não precisar de adultos para lhe dizer o que fazer é a única razão " -"pela qual você está vivo. Cara, você realmente deveria ter jogado " -"fisicamente hoje." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Survivalist Jr." -msgstr "Jr. Survivalista" +msgstr "" #. ~ Profession (male Survivalist Jr.) description #: lang/json/professions_from_json.py @@ -124441,16 +110326,11 @@ msgid "" "didn't get a chance to thank them. The only thing you can do for them now " "is what they always hoped you would do in the dark days ahead: survive." msgstr "" -" Seus pais eram malucos que achavam que algum 'cataclismo' estava chegando e" -" insistiram em prepará-lo para isso. Acontece que eles estavam certos. Você " -"não teve a chance de agradecer a eles. A única coisa que você pode fazer por" -" eles agora é o que eles sempre esperaram que você fizesse nos dias sombrios" -" à sua frente: sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Survivalist Jr." -msgstr "Jr. Survivalista" +msgstr "" #. ~ Profession (female Survivalist Jr.) description #: lang/json/professions_from_json.py @@ -124461,16 +110341,11 @@ msgid "" "didn't get a chance to thank them. The only thing you can do for them now " "is what they always hoped you would do in the dark days ahead: survive." msgstr "" -" Seus pais eram malucos que achavam que algum 'cataclismo' estava chegando e" -" insistiram em prepará-lo para isso. Acontece que eles estavam certos. Você " -"não teve a chance de agradecer a eles. A única coisa que você pode fazer por" -" eles agora é o que eles sempre esperaram que você fizesse nos dias sombrios" -" à sua frente: sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Student" -msgstr "Estudante Biônico" +msgstr "" #. ~ Profession (male Bionic Student) description #: lang/json/professions_from_json.py @@ -124481,15 +110356,11 @@ msgid "" "anything. And now, you are facing the most dire test yet, and once again " "you had better succeed, or else." msgstr "" -" Seus pais eram tão obcecados em ter certeza de que você agia em todos os " -"testes que eles lhe tinham equipado com biônica para torná-lo mais " -"inteligente e nunca esquecer de nada. E agora, você está enfrentando o teste" -" mais terrível até agora, e mais uma vez você teve sucesso, ou então." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Student" -msgstr "Estudante Biônico" +msgstr "" #. ~ Profession (female Bionic Student) description #: lang/json/professions_from_json.py @@ -124500,15 +110371,11 @@ msgid "" "anything. And now, you are facing the most dire test yet, and once again " "you had better succeed, or else." msgstr "" -" Seus pais eram tão obcecados em ter certeza de que você agia em todos os " -"testes que eles lhe tinham equipado com biônica para torná-lo mais " -"inteligente e nunca esquecer de nada. E agora, você está enfrentando o teste" -" mais terrível até agora, e mais uma vez você teve sucesso, ou então." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Dodgeball Player" -msgstr "Jogador de Dodgeball" +msgstr "" #. ~ Profession (male Dodgeball Player) description #: lang/json/professions_from_json.py @@ -124517,14 +110384,11 @@ 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 "" -" Você gostava de jogar queimada, onde não se esquivar da bola significava " -"que você estava fora. Agora, não se esquivar ameaça sua vida. Não " -"escorregue." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Dodgeball Player" -msgstr "Jogador de Dodgeball" +msgstr "" #. ~ Profession (female Dodgeball Player) description #: lang/json/professions_from_json.py @@ -124533,14 +110397,11 @@ 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 "" -" Você gostava de jogar queimada, onde não se esquivar da bola significava " -"que você estava fora. Agora, não se esquivar ameaça sua vida. Não " -"escorregue." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Science Club Member" -msgstr "Membro do Science Club" +msgstr "" #. ~ Profession (male Science Club Member) description #: lang/json/professions_from_json.py @@ -124551,15 +110412,11 @@ msgid "" "fun chemicals that make things go boom. At least now no one's around to " "tell you that you can't." msgstr "" -" Você era um membro do clube de ciências da escola, e agora você está tão " -"chateado quanto você que a escola não deixaria você brincar com os produtos " -"químicos realmente divertidos que fazem as coisas crescerem. Pelo menos " -"agora ninguém está por perto para dizer que você não pode." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Science Club Member" -msgstr "Membro do Science Club" +msgstr "" #. ~ Profession (female Science Club Member) description #: lang/json/professions_from_json.py @@ -124570,15 +110427,11 @@ msgid "" "fun chemicals that make things go boom. At least now no one's around to " "tell you that you can't." msgstr "" -" Você era um membro do clube de ciências da escola, e agora você está tão " -"chateado quanto você que a escola não deixaria você brincar com os produtos " -"químicos realmente divertidos que fazem as coisas crescerem. Pelo menos " -"agora ninguém está por perto para dizer que você não pode." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "A/V Club Member" -msgstr "Membro do clube A / V" +msgstr "" #. ~ Profession (male A/V Club Member) description #: lang/json/professions_from_json.py @@ -124588,14 +110441,11 @@ msgid "" "can use your technical skills to help stay alive. You just haven't figured " "out how to make an awesome death ray yet." msgstr "" -" Você era um membro do clube A / V da escola. Você tem certeza de que há " -"alguma maneira de usar suas habilidades técnicas para se manter vivo. Você " -"ainda não descobriu como fazer um incrível raio da morte ainda." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "A/V Club Member" -msgstr "Membro do clube A / V" +msgstr "" #. ~ Profession (female A/V Club Member) description #: lang/json/professions_from_json.py @@ -124605,14 +110455,11 @@ msgid "" "can use your technical skills to help stay alive. You just haven't figured " "out how to make an awesome death ray yet." msgstr "" -" Você era um membro do clube A / V da escola. Você tem certeza de que há " -"alguma maneira de usar suas habilidades técnicas para se manter vivo. Você " -"ainda não descobriu como fazer um incrível raio da morte ainda." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Teacher" -msgstr "Professor" +msgstr "" #. ~ Profession (male Teacher) description #: lang/json/professions_from_json.py @@ -124622,14 +110469,11 @@ msgid "" "listened to your teachings. However, the dead won't write out lines for " "eating you alive." msgstr "" -" Você tem ensinado crianças por toda a sua vida, e elas basicamente ouviram " -"seus ensinamentos. No entanto, os mortos não escrevem linhas para te comer " -"vivo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Teacher" -msgstr "Professor" +msgstr "" #. ~ Profession (female Teacher) description #: lang/json/professions_from_json.py @@ -124639,14 +110483,11 @@ msgid "" "listened to your teachings. However, the dead won't write out lines for " "eating you alive." msgstr "" -" Você tem ensinado crianças por toda a sua vida, e elas basicamente ouviram " -"seus ensinamentos. No entanto, os mortos não escrevem linhas para te comer " -"vivo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Photojournalist" -msgstr "Fotojornalista" +msgstr "" #. ~ Profession (male Photojournalist) description #: lang/json/professions_from_json.py @@ -124657,15 +110498,11 @@ msgid "" "seems more difficult a prospect than usual. You managed to hold onto your " "camera, hopefully you can get some fantastic shots." msgstr "" -" Você era um fotojornalista freelancer antes do final. Você tem a chance de " -"ser o primeiro jornalista a cobrir o apocalipse, embora encontrar um editor " -"pareça uma perspectiva mais difícil do que o normal. Você conseguiu segurar " -"sua câmera, esperançosamente você pode adquirir alguns tiros fantásticos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Photojournalist" -msgstr "Fotojornalista" +msgstr "" #. ~ Profession (female Photojournalist) description #: lang/json/professions_from_json.py @@ -124676,15 +110513,11 @@ msgid "" "seems more difficult a prospect than usual. You managed to hold onto your " "camera, hopefully you can get some fantastic shots." msgstr "" -" Você era um fotojornalista freelancer antes do final. Você tem a chance de " -"ser o primeiro jornalista a cobrir o apocalipse, embora encontrar um editor " -"pareça uma perspectiva mais difícil do que o normal. Você conseguiu segurar " -"sua câmera, esperançosamente você pode adquirir alguns tiros fantásticos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Gym Teacher" -msgstr "Professor de ginástica" +msgstr "" #. ~ Profession (male Gym Teacher) description #: lang/json/professions_from_json.py @@ -124693,14 +110526,11 @@ 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 "" -" Depois de uma carreira de ensinar às crianças a arte dos esportes que eles " -"mais odeiam, os zumbis ao seu redor se recusam a dar as voltas, mesmo com o " -"assovio." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Gym Teacher" -msgstr "Professor de ginástica" +msgstr "" #. ~ Profession (female Gym Teacher) description #: lang/json/professions_from_json.py @@ -124709,14 +110539,11 @@ 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 "" -" Depois de uma carreira de ensinar às crianças a arte dos esportes que eles " -"mais odeiam, os zumbis ao seu redor se recusam a dar as voltas, mesmo com o " -"assovio." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Camper" -msgstr "Campista" +msgstr "" #. ~ Profession (male Camper) description #: lang/json/professions_from_json.py @@ -124727,15 +110554,11 @@ msgid "" "sounded. The world may be ruined, but you're prepared to make a home " "wherever you may find yourself." msgstr "" -" Você sempre gostava de caminhar e acampar no deserto antes que tudo se " -"desfizesse, então era óbvio pegar sua mochila e correr quando as sirenes " -"soavam. O mundo pode estar arruinado, mas você está preparado para fazer um " -"lar onde quer que se encontre." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Camper" -msgstr "Campista" +msgstr "" #. ~ Profession (female Camper) description #: lang/json/professions_from_json.py @@ -124746,15 +110569,11 @@ msgid "" "sounded. The world may be ruined, but you're prepared to make a home " "wherever you may find yourself." msgstr "" -" Você sempre gostava de caminhar e acampar no deserto antes que tudo se " -"desfizesse, então era óbvio pegar sua mochila e correr quando as sirenes " -"soavam. O mundo pode estar arruinado, mas você está preparado para fazer um " -"lar onde quer que se encontre." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Miner" -msgstr "Mineiro" +msgstr "" #. ~ Profession (male Miner) description #: lang/json/professions_from_json.py @@ -124763,14 +110582,11 @@ 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 "" -" Você é um mineiro, não um menor! Sua cantina está seca, sua britadeira está" -" sem gasolina e você está em seu último par de baterias para seu capacete de" -" mineração ..." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Miner" -msgstr "Mineiro" +msgstr "" #. ~ Profession (female Miner) description #: lang/json/professions_from_json.py @@ -124779,14 +110595,11 @@ 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 "" -" Você é um mineiro, não um menor! Sua cantina está seca, sua britadeira está" -" sem gasolina e você está em seu último par de baterias para seu capacete de" -" mineração ..." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Traceur" -msgstr "plotadora" +msgstr "" #. ~ Profession (Traceur) description #: lang/json/professions_from_json.py @@ -124796,14 +110609,11 @@ msgid "" " 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." msgstr "" -" Você praticou parkour por muitos anos e fez do mundo seu playground. Não " -"seria mentira dizer que correr é a sua vida. O que é bom, porque agora que o" -" fim chegou, você está correndo pela sua vida." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Traceuse" -msgstr "tracer" +msgstr "" #. ~ Profession (Traceuse) description #: lang/json/professions_from_json.py @@ -124813,14 +110623,11 @@ msgid "" " 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." msgstr "" -" Você praticou parkour por muitos anos e fez do mundo seu playground. Não " -"seria mentira dizer que correr é a sua vida. O que é bom, porque agora que o" -" fim chegou, você está correndo pela sua vida." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Tourist" -msgstr "Turista" +msgstr "" #. ~ Profession (male Tourist) description #: lang/json/professions_from_json.py @@ -124829,13 +110636,11 @@ msgid "" "You came here to get a taste of New England; Now you hope New England won't " "get a taste of you!" msgstr "" -" Você veio aqui para sentir o gosto da Nova Inglaterra; Agora você espera " -"que a Nova Inglaterra não tenha um gostinho de você!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Tourist" -msgstr "Turista" +msgstr "" #. ~ Profession (female Tourist) description #: lang/json/professions_from_json.py @@ -124844,13 +110649,11 @@ msgid "" "You came here to get a taste of New England; Now you hope New England won't " "get a taste of you!" msgstr "" -" Você veio aqui para sentir o gosto da Nova Inglaterra; Agora você espera " -"que a Nova Inglaterra não tenha um gostinho de você!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Naked and Afraid" -msgstr "Nu e com medo" +msgstr "" #. ~ Profession (male Naked and Afraid) description #: lang/json/professions_from_json.py @@ -124859,13 +110662,11 @@ 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 "" -" Você estava filmando um reality show na floresta e o elenco e a equipe " -"pareciam ter se transformado em zumbis. Parece que é pra valer agora ..." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Naked and Afraid" -msgstr "Nu e com medo" +msgstr "" #. ~ Profession (female Naked and Afraid) description #: lang/json/professions_from_json.py @@ -124874,13 +110675,11 @@ 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 "" -" Você estava filmando um reality show na floresta e o elenco e a equipe " -"pareciam ter se transformado em zumbis. Parece que é pra valer agora ..." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Augmentation Associate" -msgstr "Aumentar Associado" +msgstr "" #. ~ Profession (male Augmentation Associate) description #: lang/json/professions_from_json.py @@ -124891,15 +110690,11 @@ msgid "" "zombies in the world that can calibrate an Autodoc, your skills might come " "in handy now that the world is over." msgstr "" -" Quando a biônica surgiu pela primeira vez, você foi rápido em transformá- " -"los em sua carreira e passou os dias supervisionando a instalação deles. " -"Como um dos poucos não-zumbis do mundo que pode calibrar um Autodoc, suas " -"habilidades podem ser úteis agora que o mundo acabou." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Augmentation Associate" -msgstr "Aumentar Associado" +msgstr "" #. ~ Profession (female Augmentation Associate) description #: lang/json/professions_from_json.py @@ -124910,15 +110705,11 @@ msgid "" "zombies in the world that can calibrate an Autodoc, your skills might come " "in handy now that the world is over." msgstr "" -" Quando a biônica surgiu pela primeira vez, você foi rápido em transformá- " -"los em sua carreira e passou os dias supervisionando a instalação deles. " -"Como um dos poucos não-zumbis do mundo que pode calibrar um Autodoc, suas " -"habilidades podem ser úteis agora que o mundo acabou." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Game Master" -msgstr "Mestre do jogo" +msgstr "" #. ~ Profession (male Game Master) description #: lang/json/professions_from_json.py @@ -124929,16 +110720,11 @@ msgid "" "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 "" -" Tentar reunir os gatos para entrar em um lugar todas as semanas ensinou-lhe" -" algo: geralmente é melhor cortar suas perdas e confiar em seu intestino. " -"Por essa razão, quando você teve dois shows e os outros dois tentaram comer " -"você, você desistiu. Talvez você possa encontrar alguns novos jogadores nas " -"ruínas do mundo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Game Master" -msgstr "Mestre do jogo" +msgstr "" #. ~ Profession (female Game Master) description #: lang/json/professions_from_json.py @@ -124949,16 +110735,11 @@ msgid "" "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 "" -" Tentar reunir os gatos para entrar em um lugar todas as semanas ensinou-lhe" -" algo: geralmente é melhor cortar suas perdas e confiar em seu intestino. " -"Por essa razão, quando você teve dois shows e os outros dois tentaram comer " -"você, você desistiu. Talvez você possa encontrar alguns novos jogadores nas " -"ruínas do mundo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Game Master" -msgstr "Mestre do Jogo Biônico" +msgstr "" #. ~ Profession (male Bionic Game Master) description #: lang/json/professions_from_json.py @@ -124970,16 +110751,11 @@ msgid "" "smarter, and memorized the entire handbook. Let's hope that knowledge helps" " you now." msgstr "" -" Você entrou em uma grande fortuna, através da sorte ou da vontade, e " -"organizou jogos para pessoas que a maior parte do mundo sabia em uma base de" -" primeiro nome. Você poderia se dar ao luxo de estragar seus jogadores, e " -"assim você fez. Você investiu em biônica para torná-lo mais inteligente e " -"memorizou todo o manual. Vamos esperar que o conhecimento ajude você agora." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Game Master" -msgstr "Mestre do Jogo Biônico" +msgstr "" #. ~ Profession (female Bionic Game Master) description #: lang/json/professions_from_json.py @@ -124991,16 +110767,11 @@ msgid "" "smarter, and memorized the entire handbook. Let's hope that knowledge helps" " you now." msgstr "" -" Você entrou em uma grande fortuna, através da sorte ou da vontade, e " -"organizou jogos para pessoas que a maior parte do mundo sabia em uma base de" -" primeiro nome. Você poderia se dar ao luxo de estragar seus jogadores, e " -"assim você fez. Você investiu em biônica para torná-lo mais inteligente e " -"memorizou todo o manual. Vamos esperar que o conhecimento ajude você agora." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Zoo Keeper" -msgstr "Guardião do jardim zoológico" +msgstr "" #. ~ Profession (male Zoo Keeper) description #: lang/json/professions_from_json.py @@ -125009,14 +110780,11 @@ 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 "" -" Você foi chamado no seu dia de folga para alimentar os animais no zoológico" -" porque nenhum dos seus colegas de trabalho apareceu para o trabalho por um " -"motivo ou outro." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Zoo Keeper" -msgstr "Guardião do jardim zoológico" +msgstr "" #. ~ Profession (female Zoo Keeper) description #: lang/json/professions_from_json.py @@ -125025,14 +110793,11 @@ 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 "" -" Você foi chamado no seu dia de folga para alimentar os animais no zoológico" -" porque nenhum dos seus colegas de trabalho apareceu para o trabalho por um " -"motivo ou outro." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Golfer" -msgstr "Jogador de golfe" +msgstr "" #. ~ Profession (male Golfer) description #: lang/json/professions_from_json.py @@ -125041,13 +110806,11 @@ msgid "" "You decided to get away from the family for the day to do a little golfing " "by yourself." msgstr "" -" Você decidiu se afastar da família durante o dia para fazer um pouco de " -"golfe sozinho." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Golfer" -msgstr "Jogador de golfe" +msgstr "" #. ~ Profession (female Golfer) description #: lang/json/professions_from_json.py @@ -125056,13 +110819,11 @@ msgid "" "You decided to get away from the family for the day to do a little golfing " "by yourself." msgstr "" -" Você decidiu se afastar da família durante o dia para fazer um pouco de " -"golfe sozinho." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Surgeon" -msgstr "Cirurgião Biônico" +msgstr "" #. ~ Profession (male Bionic Surgeon) description #: lang/json/professions_from_json.py @@ -125072,15 +110833,11 @@ msgid "" "augmentation program to expand the medical field. With your expertise and " "augmentations, you can perform precise surgery with little assistance." msgstr "" -" Como um dos principais cirurgiões do país, você foi escolhido para um " -"programa de aumento para expandir o campo da medicina. Com sua experiência e" -" aprimoramentos, você pode realizar cirurgias precisas com pouca " -"assistência." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Surgeon" -msgstr "Cirurgião Biônico" +msgstr "" #. ~ Profession (female Bionic Surgeon) description #: lang/json/professions_from_json.py @@ -125090,10 +110847,6 @@ msgid "" "augmentation program to expand the medical field. With your expertise and " "augmentations, you can perform precise surgery with little assistance." msgstr "" -" Como um dos principais cirurgiões do país, você foi escolhido para um " -"programa de aumento para expandir o campo da medicina. Com sua experiência e" -" aprimoramentos, você pode realizar cirurgias precisas com pouca " -"assistência." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -126136,7 +111889,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Rookie" -msgstr "Rookie" +msgstr "" #. ~ Profession (male Rookie) description #: lang/json/professions_from_json.py @@ -126145,13 +111898,11 @@ msgid "" "It's been months since the Cataclysm and somehow you're still greener than a" " tree. Maybe you're just a slow learner, who knows." msgstr "" -" Já faz meses desde o Cataclismo e de alguma forma você ainda é mais verde " -"que uma árvore. Talvez você seja apenas um aprendiz lento, quem sabe." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Rookie" -msgstr "Rookie" +msgstr "" #. ~ Profession (female Rookie) description #: lang/json/professions_from_json.py @@ -126160,34 +111911,28 @@ msgid "" "It's been months since the Cataclysm and somehow you're still greener than a" " tree. Maybe you're just a slow learner, who knows." msgstr "" -" Já faz meses desde o Cataclismo e de alguma forma você ainda é mais verde " -"que uma árvore. Talvez você seja apenas um aprendiz lento, quem sabe." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Novice" -msgstr "Notícias" +msgstr "" #. ~ Profession (male Novice) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "You're a merely competent survivor so far. Let's change that, yeah?" msgstr "" -" Você é um sobrevivente meramente competente até agora. Vamos mudar isso, " -"sim?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Novice" -msgstr "Notícias" +msgstr "" #. ~ Profession (female Novice) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "You're a merely competent survivor so far. Let's change that, yeah?" msgstr "" -" Você é um sobrevivente meramente competente até agora. Vamos mudar isso, " -"sim?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -126398,7 +112143,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" -msgstr "Valente do Rei" +msgstr "" #. ~ Profession (male Brave of the King) description #: lang/json/professions_from_json.py @@ -126408,14 +112153,11 @@ msgid "" "was uncommon due to desert conditions, such equipment did see increased " "usage during the New Kingdom period." msgstr "" -" Infantaria de elite do antigo Egito e guarda-costas do faraó. Embora a " -"armadura fosse incomum devido às condições do deserto, esse equipamento viu " -"um aumento no uso durante o período do Novo Império." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Brave of the King" -msgstr "Valente do Rei" +msgstr "" #. ~ Profession (female Brave of the King) description #: lang/json/professions_from_json.py @@ -126425,14 +112167,11 @@ msgid "" "was uncommon due to desert conditions, such equipment did see increased " "usage during the New Kingdom period." msgstr "" -" Infantaria de elite do antigo Egito e guarda-costas do faraó. Embora a " -"armadura fosse incomum devido às condições do deserto, esse equipamento viu " -"um aumento no uso durante o período do Novo Império." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hoplite" -msgstr "Hoplita" +msgstr "" #. ~ Profession (male Hoplite) description #: lang/json/professions_from_json.py @@ -126442,14 +112181,11 @@ msgid "" "the Macedonean phalanx. Well-trained for combat in formation, but less " "effective when outmaneuvered or on broken ground." msgstr "" -" Infantaria pesada das antigas cidades-estados gregas, antes da mudança para" -" a falange macedônica. Bem treinado para o combate em formação, mas menos " -"eficaz quando ultrapassado ou em terreno desfeito." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hoplite" -msgstr "Hoplita" +msgstr "" #. ~ Profession (female Hoplite) description #: lang/json/professions_from_json.py @@ -126459,14 +112195,11 @@ msgid "" "the Macedonean phalanx. Well-trained for combat in formation, but less " "effective when outmaneuvered or on broken ground." msgstr "" -" Infantaria pesada das antigas cidades-estados gregas, antes da mudança para" -" a falange macedônica. Bem treinado para o combate em formação, mas menos " -"eficaz quando ultrapassado ou em terreno desfeito." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Legionary" -msgstr "Legionário" +msgstr "" #. ~ Profession (male Legionary) description #: lang/json/professions_from_json.py @@ -126476,14 +112209,11 @@ msgid "" "legion's equipment. Trained to act in formation with javelin and sword, " "well-known for their field fortifications as well." msgstr "" -" A infantaria pesada romana, depois das reformas militares que padronizaram " -"o equipamento da legião. Treinados para atuar em formação com dardo e " -"espada, bem conhecidos por suas fortificações de campo também." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Legionary" -msgstr "Legionário" +msgstr "" #. ~ Profession (female Legionary) description #: lang/json/professions_from_json.py @@ -126493,14 +112223,11 @@ msgid "" "legion's equipment. Trained to act in formation with javelin and sword, " "well-known for their field fortifications as well." msgstr "" -" A infantaria pesada romana, depois das reformas militares que padronizaram " -"o equipamento da legião. Treinados para atuar em formação com dardo e " -"espada, bem conhecidos por suas fortificações de campo também." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Viking" -msgstr "Viking" +msgstr "" #. ~ Profession (male Viking) description #: lang/json/professions_from_json.py @@ -126509,13 +112236,11 @@ msgid "" "The infamous pirates of the early medieval period, raiders and explorers " "from various Scandinavian countries." msgstr "" -" Os infames piratas do início do período medieval, invasores e exploradores " -"de vários países escandinavos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Viking" -msgstr "Viking" +msgstr "" #. ~ Profession (female Viking) description #: lang/json/professions_from_json.py @@ -126524,13 +112249,11 @@ msgid "" "The infamous pirates of the early medieval period, raiders and explorers " "from various Scandinavian countries." msgstr "" -" Os infames piratas do início do período medieval, invasores e exploradores " -"de vários países escandinavos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Man-at-Arms" -msgstr "Homem-de-armas" +msgstr "" #. ~ Profession (Man-at-Arms) description #: lang/json/professions_from_json.py @@ -126540,14 +112263,11 @@ msgid "" "born or of common blood. While knights traditionally were men-at-arms, not " "every man-at-arms was a knight." msgstr "" -" A cavalaria pesada medieval de vários países da Europa, seja de origem " -"nobre ou de sangue comum. Embora os cavaleiros tradicionalmente fossem " -"homens de armas, nem todo homem de armas era um cavaleiro." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Woman-at-Arms" -msgstr "Mulher-de-armas" +msgstr "" #. ~ Profession (Woman-at-Arms) description #: lang/json/professions_from_json.py @@ -126557,14 +112277,11 @@ msgid "" "born or of common blood. While knights traditionally were men-at-arms, not " "every man-at-arms was a knight." msgstr "" -" A cavalaria pesada medieval de vários países da Europa, seja de origem " -"nobre ou de sangue comum. Embora os cavaleiros tradicionalmente fossem " -"homens de armas, nem todo homem de armas era um cavaleiro." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Horse Archer" -msgstr "Arqueiro" +msgstr "" #. ~ Profession (male Horse Archer) description #: lang/json/professions_from_json.py @@ -126573,13 +112290,11 @@ msgid "" "The famed light cavalry of the Mongol Empire. Best known for their skill as" " mounted archers." msgstr "" -" A famosa cavalaria ligeira do Império Mongol. Mais conhecido por sua " -"habilidade como arqueiros montados." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Horse Archer" -msgstr "Arqueiro" +msgstr "" #. ~ Profession (female Horse Archer) description #: lang/json/professions_from_json.py @@ -126588,13 +112303,11 @@ msgid "" "The famed light cavalry of the Mongol Empire. Best known for their skill as" " mounted archers." msgstr "" -" A famosa cavalaria ligeira do Império Mongol. Mais conhecido por sua " -"habilidade como arqueiros montados." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Samurai" -msgstr "Samurai" +msgstr "" #. ~ Profession (male Samurai) description #: lang/json/professions_from_json.py @@ -126603,14 +112316,11 @@ 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 "" -" Nobreza guerreira do Japão feudal. Conhecidos originalmente como mestres do" -" cavalo e do arco, eles se tornam famosos por sua esgrima em épocas " -"posteriores." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Samurai" -msgstr "Samurai" +msgstr "" #. ~ Profession (female Samurai) description #: lang/json/professions_from_json.py @@ -126619,14 +112329,11 @@ 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 "" -" Nobreza guerreira do Japão feudal. Conhecidos originalmente como mestres do" -" cavalo e do arco, eles se tornam famosos por sua esgrima em épocas " -"posteriores." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Wanderer" -msgstr "Andarilho" +msgstr "" #. ~ Profession (male Wanderer) description #: lang/json/professions_from_json.py @@ -126636,14 +112343,11 @@ msgid "" "of modern life. Though from the looks of it, things have changed since last" " time you've been anywhere near civilization." msgstr "" -" Você sempre preferiu o conforto do céu aberto, longe das complexidades da " -"vida moderna. Apesar da aparência, as coisas mudaram desde a última vez em " -"que você esteve em qualquer lugar perto da civilização." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Wanderer" -msgstr "Andarilho" +msgstr "" #. ~ Profession (female Wanderer) description #: lang/json/professions_from_json.py @@ -126653,14 +112357,11 @@ msgid "" "of modern life. Though from the looks of it, things have changed since last" " time you've been anywhere near civilization." msgstr "" -" Você sempre preferiu o conforto do céu aberto, longe das complexidades da " -"vida moderna. Apesar da aparência, as coisas mudaram desde a última vez em " -"que você esteve em qualquer lugar perto da civilização." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Prehistoric Hunter" -msgstr "Caçador Pré-histórico" +msgstr "" #. ~ Profession (male Prehistoric Hunter) description #: lang/json/professions_from_json.py @@ -126671,15 +112372,11 @@ msgid "" "didn't have to fight the living dead, and you had your kin to stand beside " "you. Here, you're on your own." msgstr "" -" Uma relíquia viva e fora de lugar da pré-história, encalhada em um mundo " -"desconhecido e aterrorizante. A vida como caçador-coletor era difícil, mas " -"pelo menos você não precisava lutar contra os mortos-vivos, e você tinha " -"seus parentes para ficar ao seu lado. Aqui você está sozinho." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Prehistoric Hunter" -msgstr "Caçador Pré-histórico" +msgstr "" #. ~ Profession (female Prehistoric Hunter) description #: lang/json/professions_from_json.py @@ -126690,15 +112387,11 @@ msgid "" "didn't have to fight the living dead, and you had your kin to stand beside " "you. Here, you're on your own." msgstr "" -" Uma relíquia viva e fora de lugar da pré-história, encalhada em um mundo " -"desconhecido e aterrorizante. A vida como caçador-coletor era difícil, mas " -"pelo menos você não precisava lutar contra os mortos-vivos, e você tinha " -"seus parentes para ficar ao seu lado. Aqui você está sozinho." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Fighter" -msgstr "Lutador" +msgstr "" #. ~ Profession (male Fighter) description #: lang/json/professions_from_json.py @@ -126707,13 +112400,11 @@ 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 "" -" Um mestre de armas e armaduras e um temível combatente marcial; você é um " -"lutador, forjado na guerra e temperado no campo de batalha." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Fighter" -msgstr "Lutador" +msgstr "" #. ~ Profession (female Fighter) description #: lang/json/professions_from_json.py @@ -126722,13 +112413,11 @@ 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 "" -" Um mestre de armas e armaduras e um temível combatente marcial; você é um " -"lutador, forjado na guerra e temperado no campo de batalha." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Rogue" -msgstr "Vampiro" +msgstr "" #. ~ Profession (male Rogue) description #: lang/json/professions_from_json.py @@ -126737,13 +112426,11 @@ msgid "" "A street urchin skilled in legerdemain and deadly with a blade; you are a " "rogue, a resourceful trickster and master thief." msgstr "" -" Um moleque de rua especializado em legerdemain e mortal com uma lâmina; " -"você é um ladino, um malandro inventivo e um ladrão principal." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Rogue" -msgstr "Vampiro" +msgstr "" #. ~ Profession (female Rogue) description #: lang/json/professions_from_json.py @@ -126752,13 +112439,11 @@ msgid "" "A street urchin skilled in legerdemain and deadly with a blade; you are a " "rogue, a resourceful trickster and master thief." msgstr "" -" Um moleque de rua especializado em legerdemain e mortal com uma lâmina; " -"você é um ladino, um malandro inventivo e um ladrão principal." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Barbarian" -msgstr "bárbaro" +msgstr "" #. ~ Profession (male Barbarian) description #: lang/json/professions_from_json.py @@ -126767,13 +112452,11 @@ 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 "" -" Um filho de Crom vindo do norte amargo; você é um bárbaro, tão temível e " -"formidável quanto a terra indomada que você chama de lar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Barbarian" -msgstr "bárbaro" +msgstr "" #. ~ Profession (female Barbarian) description #: lang/json/professions_from_json.py @@ -126782,13 +112465,11 @@ 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 "" -" Um filho de Crom vindo do norte amargo; você é um bárbaro, tão temível e " -"formidável quanto a terra indomada que você chama de lar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Skald" -msgstr "poeta" +msgstr "" #. ~ Profession (male Skald) description #: lang/json/professions_from_json.py @@ -126798,14 +112479,11 @@ msgid "" "highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" " spirits." msgstr "" -" Um misterioso menestrel errante e contador de histórias vindo das terras " -"altas do norte; você é um skald, um nobre bárbaro conhecedor e palestrante " -"dos espíritos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Skald" -msgstr "poeta" +msgstr "" #. ~ Profession (female Skald) description #: lang/json/professions_from_json.py @@ -126815,14 +112493,11 @@ msgid "" "highlands; you are a skald, a noble barbarian lore-keeper and speaker to the" " spirits." msgstr "" -" Um misterioso menestrel errante e contador de histórias vindo das terras " -"altas do norte; você é um skald, um nobre bárbaro conhecedor e palestrante " -"dos espíritos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Ranger" -msgstr "guarda" +msgstr "" #. ~ Profession (male Ranger) description #: lang/json/professions_from_json.py @@ -126831,13 +112506,11 @@ 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 "" -" Um dos poucos que vagueia, mas nunca se perde; você é um guarda, sábio nos " -"caminhos da floresta e mortal com um arco." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Ranger" -msgstr "guarda" +msgstr "" #. ~ Profession (female Ranger) description #: lang/json/professions_from_json.py @@ -126846,13 +112519,11 @@ 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 "" -" Um dos poucos que vagueia, mas nunca se perde; você é um guarda, sábio nos " -"caminhos da floresta e mortal com um arco." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Monk" -msgstr "Monge" +msgstr "" #. ~ Profession (male Monk) description #: lang/json/professions_from_json.py @@ -126861,13 +112532,11 @@ msgid "" "Servant to an exotic order of ascetics; you are a monk, a pious devotee with" " extensive knowledge of unarmed combat." msgstr "" -" Servo de uma ordem exótica de ascetas; você é um monge, um devoto piedoso " -"com amplo conhecimento de combate desarmado." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Monk" -msgstr "Monge" +msgstr "" #. ~ Profession (female Monk) description #: lang/json/professions_from_json.py @@ -126876,13 +112545,11 @@ msgid "" "Servant to an exotic order of ascetics; you are a monk, a pious devotee with" " extensive knowledge of unarmed combat." msgstr "" -" Servo de uma ordem exótica de ascetas; você é um monge, um devoto piedoso " -"com amplo conhecimento de combate desarmado." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Knight" -msgstr "Cavaleiro" +msgstr "" #. ~ Profession (male Knight) description #: lang/json/professions_from_json.py @@ -126891,13 +112558,11 @@ msgid "" "Sworn defender of the land; you are a knight, an educated warrior trained " "since childhood in the ways of honorable combat." msgstr "" -" Defensor juramentado da terra; você é um cavaleiro, um guerreiro educado, " -"treinado desde a infância, nos caminhos do combate honrado." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Knight" -msgstr "Cavaleiro" +msgstr "" #. ~ Profession (female Knight) description #: lang/json/professions_from_json.py @@ -126906,13 +112571,11 @@ msgid "" "Sworn defender of the land; you are a knight, an educated warrior trained " "since childhood in the ways of honorable combat." msgstr "" -" Defensor juramentado da terra; você é um cavaleiro, um guerreiro educado, " -"treinado desde a infância, nos caminhos do combate honrado." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Sorcerer" -msgstr "Feiticeiro" +msgstr "" #. ~ Profession (Sorcerer) description #: lang/json/professions_from_json.py @@ -126921,13 +112584,11 @@ msgid "" "A wise student of ancient and forbidden knowledge; you are a wizard, a " "mystical practitioner of the (bionic) arcane arts." msgstr "" -" Um sábio estudante de conhecimento antigo e proibido; você é um mago, um " -"praticante místico das artes arcanas (biônicas)." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Sorceress" -msgstr "Feiticeira" +msgstr "" #. ~ Profession (Sorceress) description #: lang/json/professions_from_json.py @@ -126936,13 +112597,11 @@ msgid "" "A wise student of ancient and forbidden knowledge; you are a wizard, a " "mystical practitioner of the (bionic) arcane arts." msgstr "" -" Um sábio estudante de conhecimento antigo e proibido; você é um mago, um " -"praticante místico das artes arcanas (biônicas)." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Robo-Hacker" -msgstr "Robo-Hacker" +msgstr "" #. ~ Profession (male Robo-Hacker) description #: lang/json/professions_from_json.py @@ -126951,13 +112610,11 @@ 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 do fim, o seu hobby foi reprogramar e reaproveitar ilegalmente robôs " -"comerciais, mas você nunca pensou que sua sobrevivência dependesse disso." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Robo-Hacker" -msgstr "Robo-Hacker" +msgstr "" #. ~ Profession (female Robo-Hacker) description #: lang/json/professions_from_json.py @@ -126966,13 +112623,11 @@ 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 do fim, o seu hobby foi reprogramar e reaproveitar ilegalmente robôs " -"comerciais, mas você nunca pensou que sua sobrevivência dependesse disso." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Robotics Engineer" -msgstr "Engenheiro de Robótica" +msgstr "" #. ~ Profession (male Robotics Engineer) description #: lang/json/professions_from_json.py @@ -126982,14 +112637,11 @@ msgid "" "kept telling you putting flamethrowers on manhacks was 'unnecessary' and " "'too dangerous,' but there's nothing to stop you now." msgstr "" -" Você era um engenheiro de baixo nível em um fabricante de robótica. A " -"gerência continuou dizendo que colocar lança-chamas em manhacks era " -"'desnecessário' e 'muito perigoso', mas não há nada para impedi-lo agora." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Robotics Engineer" -msgstr "Engenheiro de Robótica" +msgstr "" #. ~ Profession (female Robotics Engineer) description #: lang/json/professions_from_json.py @@ -126999,14 +112651,11 @@ msgid "" "kept telling you putting flamethrowers on manhacks was 'unnecessary' and " "'too dangerous,' but there's nothing to stop you now." msgstr "" -" Você era um engenheiro de baixo nível em um fabricante de robótica. A " -"gerência continuou dizendo que colocar lança-chamas em manhacks era " -"'desnecessário' e 'muito perigoso', mas não há nada para impedi-lo agora." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Robotics Prodigy" -msgstr "Robótica Prodigy" +msgstr "" #. ~ Profession (male Robotics Prodigy) description #: lang/json/professions_from_json.py @@ -127015,13 +112664,11 @@ 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 "" -" Você está construindo robôs desde que você pode segurar um ferro de solda, " -"e você não pretende deixar o fim do mundo impedir isso de continuar." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Robotics Prodigy" -msgstr "Robótica Prodigy" +msgstr "" #. ~ Profession (female Robotics Prodigy) description #: lang/json/professions_from_json.py @@ -127030,13 +112677,11 @@ 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 "" -" Você está construindo robôs desde que você pode segurar um ferro de solda, " -"e você não pretende deixar o fim do mundo impedir isso de continuar." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Robot Adoptee" -msgstr "Adopção Robótica" +msgstr "" #. ~ Profession (male Robot Adoptee) description #: lang/json/professions_from_json.py @@ -127045,13 +112690,11 @@ 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 os tumultos, um robô militar surgiu do nada para resgatá-lo. Talvez" -" pense que você é alguém importante, quem sabe." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Robot Adoptee" -msgstr "Adopção Robótica" +msgstr "" #. ~ Profession (female Robot Adoptee) description #: lang/json/professions_from_json.py @@ -127060,13 +112703,11 @@ 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 os tumultos, um robô militar surgiu do nada para resgatá-lo. Talvez" -" pense que você é alguém importante, quem sabe." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Robo-hunter" -msgstr "Robo-caçador" +msgstr "" #. ~ Profession (male Robo-hunter) description #: lang/json/professions_from_json.py @@ -127075,14 +112716,11 @@ 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 "" -" Você pagou a um hacker local para construir um cão de caça robótico. É " -"quase tão bom quanto a coisa real, mas não responde bem a ser animal de " -"estimação." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Robo-hunter" -msgstr "Robo-caçador" +msgstr "" #. ~ Profession (female Robo-hunter) description #: lang/json/professions_from_json.py @@ -127091,9 +112729,6 @@ 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 "" -" Você pagou a um hacker local para construir um cão de caça robótico. É " -"quase tão bom quanto a coisa real, mas não responde bem a ser animal de " -"estimação." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -127109,11 +112744,6 @@ msgid "" "operator before the procedure wasn't enough, your new enhancements allow you" " to handle any combat scenario be it human or not." msgstr "" -" Uma vez que o aumento biônico provou ser seguro, você foi escolhido para um" -" programa secreto de aumento de soldados. Como se ser um operador de forças " -"especiais de primeira linha antes do procedimento não fosse suficiente, seus" -" novos aprimoramentos permitem que você lide com qualquer cenário de " -"combate, seja ele humano ou não." #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -127129,16 +112759,11 @@ msgid "" "operator before the procedure wasn't enough, your new enhancements allow you" " to handle any combat scenario be it human or not." msgstr "" -" Uma vez que o aumento biônico provou ser seguro, você foi escolhido para um" -" programa secreto de aumento de soldados. Como se ser um operador de forças " -"especiais de primeira linha antes do procedimento não fosse suficiente, seus" -" novos aprimoramentos permitem que você lide com qualquer cenário de " -"combate, seja ele humano ou não." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Wasteland Cyborg" -msgstr "Cyborg Wasteland" +msgstr "" #. ~ Profession (male Wasteland Cyborg) description #: lang/json/professions_from_json.py @@ -127148,14 +112773,11 @@ msgid "" "supply raids you emerge a self-made cyborg with the some of the best crafted" " weapons and armor in the wasteland." msgstr "" -" Depois de meses de leitura, experimentação, ferimentos graves e incontáveis" -" incursões de suprimentos, você emerge um ciborgue autônomo com algumas das " -"melhores armas e armaduras artesanais no deserto." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Wasteland Cyborg" -msgstr "Cyborg Wasteland" +msgstr "" #. ~ Profession (female Wasteland Cyborg) description #: lang/json/professions_from_json.py @@ -127165,14 +112787,11 @@ msgid "" "supply raids you emerge a self-made cyborg with the some of the best crafted" " weapons and armor in the wasteland." msgstr "" -" Depois de meses de leitura, experimentação, ferimentos graves e incontáveis" -" incursões de suprimentos, você emerge um ciborgue autônomo com algumas das " -"melhores armas e armaduras artesanais no deserto." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Seasoned Tourist" -msgstr "Turista Temperado" +msgstr "" #. ~ Profession (male Seasoned Tourist) description #: lang/json/professions_from_json.py @@ -127183,15 +112802,11 @@ msgid "" "get a taste of New England; now you hope New England won't get a taste of " "you!" msgstr "" -" Devido à sua sede de aventura, fome de boa comida e renda disponível, você " -"pode viajar bastante. Você viajou aqui para sentir o gosto da Nova " -"Inglaterra; agora você espera que a Nova Inglaterra não tenha um gostinho de" -" você!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Seasoned Tourist" -msgstr "Turista Temperado" +msgstr "" #. ~ Profession (female Seasoned Tourist) description #: lang/json/professions_from_json.py @@ -127202,15 +112817,11 @@ msgid "" "get a taste of New England; now you hope New England won't get a taste of " "you!" msgstr "" -" Devido à sua sede de aventura, fome de boa comida e renda disponível, você " -"pode viajar bastante. Você viajou aqui para sentir o gosto da Nova " -"Inglaterra; agora você espera que a Nova Inglaterra não tenha um gostinho de" -" você!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Post-Human Cyborg" -msgstr "Cyborg pós-humano" +msgstr "" #. ~ Profession (male Post-Human Cyborg) description #: lang/json/professions_from_json.py @@ -127220,14 +112831,11 @@ msgid "" "augmentative technology to bring forth the future. You are now a walking " "example of what humanity could have become." msgstr "" -" Como um rico humanista, você decidiu se colocar na linha de frente da " -"tecnologia aumentativa para trazer o futuro. Você é agora um exemplo " -"ambulante do que a humanidade poderia ter se tornado." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Post-Human Cyborg" -msgstr "Cyborg pós-humano" +msgstr "" #. ~ Profession (female Post-Human Cyborg) description #: lang/json/professions_from_json.py @@ -127237,14 +112845,11 @@ msgid "" "augmentative technology to bring forth the future. You are now a walking " "example of what humanity could have become." msgstr "" -" Como um rico humanista, você decidiu se colocar na linha de frente da " -"tecnologia aumentativa para trazer o futuro. Você é agora um exemplo " -"ambulante do que a humanidade poderia ter se tornado." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Janitor" -msgstr "Zelador" +msgstr "" #. ~ Profession (male Janitor) description #: lang/json/professions_from_json.py @@ -127254,14 +112859,11 @@ msgid "" "gum from under tables. Now the only thing you'll be sweeping are the brains" " of the dead." msgstr "" -" Você ganha a vida varrendo invólucros de chocolate e pegando chiclete de " -"debaixo das mesas. Agora a única coisa que você vai varrer são os cérebros " -"dos mortos." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Janitor" -msgstr "Zelador" +msgstr "" #. ~ Profession (female Janitor) description #: lang/json/professions_from_json.py @@ -127271,14 +112873,11 @@ msgid "" "gum from under tables. Now the only thing you'll be sweeping are the brains" " of the dead." msgstr "" -" Você ganha a vida varrendo invólucros de chocolate e pegando chiclete de " -"debaixo das mesas. Agora a única coisa que você vai varrer são os cérebros " -"dos mortos." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Poor Student" -msgstr "Estudante pobre" +msgstr "" #. ~ Profession (male Poor Student) description #: lang/json/professions_from_json.py @@ -127289,15 +112888,11 @@ msgid "" "your ratty old backpack finally fell apart at the worst time. At least no " "one's mocking you now." msgstr "" -" Você vem de uma família de baixa renda e foi ridicularizada por suas roupas" -" de segunda mão e por receber almoços grátis na lanchonete. Pior ainda, sua " -"velha mochila finalmente se desfez no pior momento. Pelo menos ninguém está " -"zombando de você agora." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Poor Student" -msgstr "Estudante pobre" +msgstr "" #. ~ Profession (female Poor Student) description #: lang/json/professions_from_json.py @@ -127308,15 +112903,11 @@ msgid "" "your ratty old backpack finally fell apart at the worst time. At least no " "one's mocking you now." msgstr "" -" Você vem de uma família de baixa renda e foi ridicularizada por suas roupas" -" de segunda mão e por receber almoços grátis na lanchonete. Pior ainda, sua " -"velha mochila finalmente se desfez no pior momento. Pelo menos ninguém está " -"zombando de você agora." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Elementary Student" -msgstr "Aluno elementar" +msgstr "" #. ~ Profession (male Elementary Student) description #: lang/json/professions_from_json.py @@ -127326,14 +112917,11 @@ msgid "" " your bad dreams. The grown-ups you relied on are all dead--or undead--now." " What are you going to do?" msgstr "" -" Você é apenas uma criança, e agora o mundo se transformou em algo fora de " -"um dos seus sonhos ruins. Os adultos que você confiou estão todos mortos - " -"ou mortos-vivos - agora. O que você vai fazer?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Elementary Student" -msgstr "Aluno elementar" +msgstr "" #. ~ Profession (female Elementary Student) description #: lang/json/professions_from_json.py @@ -127343,14 +112931,11 @@ msgid "" " your bad dreams. The grown-ups you relied on are all dead--or undead--now." " What are you going to do?" msgstr "" -" Você é apenas uma criança, e agora o mundo se transformou em algo fora de " -"um dos seus sonhos ruins. Os adultos que você confiou estão todos mortos - " -"ou mortos-vivos - agora. O que você vai fazer?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Hockey Player" -msgstr "Jogador de hockey" +msgstr "" #. ~ Profession (male Hockey Player) description #: lang/json/professions_from_json.py @@ -127360,14 +112945,11 @@ msgid "" "zombies. It's just you and your hockey equipment versus the undead, but at " "least you can cross-check them now." msgstr "" -" Você era um goleiro de hóquei da liga menor antes que o resto de sua equipe" -" se tornasse zumbi. É só você e seu equipamento de hóquei contra os mortos- " -"vivos, mas pelo menos você pode cruzá-los agora." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Hockey Player" -msgstr "Jogador de hockey" +msgstr "" #. ~ Profession (female Hockey Player) description #: lang/json/professions_from_json.py @@ -127377,14 +112959,11 @@ msgid "" "zombies. It's just you and your hockey equipment versus the undead, but at " "least you can cross-check them now." msgstr "" -" Você era um goleiro de hóquei da liga menor antes que o resto de sua equipe" -" se tornasse zumbi. É só você e seu equipamento de hóquei contra os mortos- " -"vivos, mas pelo menos você pode cruzá-los agora." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Baseball Player" -msgstr "Jogador de baseball" +msgstr "" #. ~ Profession (male Baseball Player) description #: lang/json/professions_from_json.py @@ -127394,14 +112973,11 @@ msgid "" "escaped with your equipment, but how long can you survive until your innings" " are up?" msgstr "" -" Você era um batedor em uma equipe local da liga menor antes do cataclismo. " -"Você escapou com o seu equipamento, mas quanto tempo você pode sobreviver " -"até o seu turno acabar?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Baseball Player" -msgstr "Jogador de baseball" +msgstr "" #. ~ Profession (female Baseball Player) description #: lang/json/professions_from_json.py @@ -127411,14 +112987,11 @@ msgid "" "escaped with your equipment, but how long can you survive until your innings" " are up?" msgstr "" -" Você era um batedor em uma equipe local da liga menor antes do cataclismo. " -"Você escapou com o seu equipamento, mas quanto tempo você pode sobreviver " -"até o seu turno acabar?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Football Player" -msgstr "Jogador de futebol" +msgstr "" #. ~ Profession (male Football Player) description #: lang/json/professions_from_json.py @@ -127428,14 +113001,11 @@ msgid "" "and fans alike. Now they just adore your brain. You've still got your " "bulky football gear on." msgstr "" -" Você era o craque do time de futebol local, adorado por colegas de time e " -"fãs. Agora eles apenas adoram seu cérebro. Você ainda tem o seu equipamento " -"de futebol volumoso." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Football Player" -msgstr "Jogador de futebol" +msgstr "" #. ~ Profession (female Football Player) description #: lang/json/professions_from_json.py @@ -127445,9 +113015,6 @@ msgid "" "and fans alike. Now they just adore your brain. You've still got your " "bulky football gear on." msgstr "" -" Você era o craque do time de futebol local, adorado por colegas de time e " -"fãs. Agora eles apenas adoram seu cérebro. Você ainda tem o seu equipamento " -"de futebol volumoso." #. ~ Profession (male Golfer) description #: lang/json/professions_from_json.py @@ -127456,9 +113023,6 @@ msgid "" "A birdie is one under par, but how much is a zombie? Your clubhouse was " "overrun by the undead, and you fled with your trusty driving wedge." msgstr "" -" Um passarinho é um abaixo do par, mas quanto é um zumbi? Seu clube foi " -"invadido pelos mortos-vivos, e você fugiu com sua cunha de condução " -"confiável." #. ~ Profession (female Golfer) description #: lang/json/professions_from_json.py @@ -127467,14 +113031,11 @@ msgid "" "A birdie is one under par, but how much is a zombie? Your clubhouse was " "overrun by the undead, and you fled with your trusty driving wedge." msgstr "" -" Um passarinho é um abaixo do par, mas quanto é um zumbi? Seu clube foi " -"invadido pelos mortos-vivos, e você fugiu com sua cunha de condução " -"confiável." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Preppy Student" -msgstr "Estudante Preppy" +msgstr "" #. ~ Profession (male Preppy Student) description #: lang/json/professions_from_json.py @@ -127485,16 +113046,11 @@ msgid "" " they'd ever let you experience childhood, or ever shown you their love. " "You're certainly not getting either one now." msgstr "" -" Seus pais eram pessoas ocupadas, importantes, que queriam que você tivesse " -"todas as vantagens e o empurravam para ser 'bem-sucedido', o que quer que " -"isso significasse. Se ao menos eles te deixassem experimentar a infância, ou" -" algum dia te mostrassem o amor deles. Você certamente não está recebendo " -"nenhum dos dois agora." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Preppy Student" -msgstr "Estudante Preppy" +msgstr "" #. ~ Profession (female Preppy Student) description #: lang/json/professions_from_json.py @@ -127505,16 +113061,11 @@ msgid "" " they'd ever let you experience childhood, or ever shown you their love. " "You're certainly not getting either one now." msgstr "" -" Seus pais eram pessoas ocupadas, importantes, que queriam que você tivesse " -"todas as vantagens e o empurravam para ser 'bem-sucedido', o que quer que " -"isso significasse. Se ao menos eles te deixassem experimentar a infância, ou" -" algum dia te mostrassem o amor deles. Você certamente não está recebendo " -"nenhum dos dois agora." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Gangster" -msgstr "Gangster biônico" +msgstr "" #. ~ Profession (male Bionic Gangster) description #: lang/json/professions_from_json.py @@ -127526,17 +113077,11 @@ msgid "" " job. After enjoying some period of freedom to do as you wanted, now you " "find yourself needing those skills to survive. " msgstr "" -" Você era o favorito do chefe, seu protegido; Eles sempre contaram com você " -"para realizar os trabalhos mais difíceis. Vendo seu potencial, eles " -"investiram em ampliações 'básicas' e os melhores equipamentos do mercado " -"para melhor ajudá-lo em seu trabalho. Depois de desfrutar de algum período " -"de liberdade para fazer o que você queria, agora você se encontra precisando" -" dessas habilidades para sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Gangster" -msgstr "Gangster biônico" +msgstr "" #. ~ Profession (female Bionic Gangster) description #: lang/json/professions_from_json.py @@ -127548,17 +113093,11 @@ msgid "" " job. After enjoying some period of freedom to do as you wanted, now you " "find yourself needing those skills to survive. " msgstr "" -" Você era o favorito do chefe, seu protegido; Eles sempre contaram com você " -"para realizar os trabalhos mais difíceis. Vendo seu potencial, eles " -"investiram em ampliações 'básicas' e os melhores equipamentos do mercado " -"para melhor ajudá-lo em seu trabalho. Depois de desfrutar de algum período " -"de liberdade para fazer o que você queria, agora você se encontra precisando" -" dessas habilidades para sobreviver." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Awakened" -msgstr "Desperto" +msgstr "" #. ~ Profession (male Awakened) description #: lang/json/professions_from_json.py @@ -127567,13 +113106,11 @@ 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 "" -" Você foi acordado no meio da noite por um barulho. Armado apenas com uma " -"lanterna você foi investigar, agora você enfrenta o cataclismo." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Awakened" -msgstr "Desperto" +msgstr "" #. ~ Profession (female Awakened) description #: lang/json/professions_from_json.py @@ -127582,13 +113119,11 @@ 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 "" -" Você foi acordado no meio da noite por um barulho. Armado apenas com uma " -"lanterna você foi investigar, agora você enfrenta o cataclismo." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Bionic Cyclist" -msgstr "Ciclista biônico" +msgstr "" #. ~ Profession (male Bionic Cyclist) description #: lang/json/professions_from_json.py @@ -127598,14 +113133,11 @@ msgid "" "gave you an edge on escaping the start of the cataclysm. Can you keep on " "running from it forever?" msgstr "" -" Seu treinamento e aprimoramento para a competição de ciclismo da Cyber- " -"Olympics lhe deram uma vantagem ao escapar do início do cataclismo. Você " -"pode continuar correndo para sempre?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Bionic Cyclist" -msgstr "Ciclista biônico" +msgstr "" #. ~ Profession (female Bionic Cyclist) description #: lang/json/professions_from_json.py @@ -127615,14 +113147,11 @@ msgid "" "gave you an edge on escaping the start of the cataclysm. Can you keep on " "running from it forever?" msgstr "" -" Seu treinamento e aprimoramento para a competição de ciclismo da Cyber- " -"Olympics lhe deram uma vantagem ao escapar do início do cataclismo. Você " -"pode continuar correndo para sempre?" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Welder" -msgstr "Soldador" +msgstr "" #. ~ Profession (male Welder) description #: lang/json/professions_from_json.py @@ -127632,14 +113161,11 @@ msgid "" "were on your way back home when it struck. At least you got the tools of " "your craft." msgstr "" -" Você trabalhou como soldador para uma empresa offshore antes do cataclismo." -" Você estava voltando para casa quando aconteceu. Pelo menos você tem as " -"ferramentas do seu ofício." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Welder" -msgstr "Soldador" +msgstr "" #. ~ Profession (female Welder) description #: lang/json/professions_from_json.py @@ -127649,14 +113175,11 @@ msgid "" "were on your way back home when it struck. At least you got the tools of " "your craft." msgstr "" -" Você trabalhou como soldador para uma empresa offshore antes do cataclismo." -" Você estava voltando para casa quando aconteceu. Pelo menos você tem as " -"ferramentas do seu ofício." #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Primitive Survivalist" -msgstr "Sobrevivente Primitivo" +msgstr "" #. ~ Profession (male Primitive Survivalist) description #: lang/json/professions_from_json.py @@ -127666,15 +113189,11 @@ msgid "" "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 "" -" Você sabia que o dia chegaria, o dia em que tudo foi para a merda. Você se " -"preparou, não por engrenagem, mas por pura habilidade; Todos aqueles dias na" -" floresta valeram a pena. Se seus antepassados sobreviveram sem tecnologia, " -"você será amaldiçoado se não" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Primitive Survivalist" -msgstr "Sobrevivente Primitivo" +msgstr "" #. ~ Profession (female Primitive Survivalist) description #: lang/json/professions_from_json.py @@ -127684,35 +113203,31 @@ msgid "" "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 "" -" Você sabia que o dia chegaria, o dia em que tudo foi para a merda. Você se " -"preparou, não por engrenagem, mas por pura habilidade; Todos aqueles dias na" -" floresta valeram a pena. Se seus antepassados sobreviveram sem tecnologia, " -"você será amaldiçoado se não" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "*" -msgstr "*" +msgstr "" #. ~ Crafting recipes subcategory of '*' category #: lang/json/recipe_category_from_json.py msgid "FAVORITE" -msgstr "FAVORITO" +msgstr "" #. ~ Crafting recipes subcategory of '*' category #: lang/json/recipe_category_from_json.py msgid "RECENT" -msgstr "RECENTE" +msgstr "" #. ~ Crafting recipes subcategory of '*' category #: lang/json/recipe_category_from_json.py msgid "HIDDEN" -msgstr "ESCONDIDO" +msgstr "" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "WEAPON" -msgstr "ARMA" +msgstr "" #. ~ Crafting recipes subcategory all #. ~ Crafting recipes subcategory of 'ENCHANTED' category @@ -127749,22 +113264,22 @@ msgstr "EXPLOSIVO" #. ~ Crafting recipes subcategory of 'AMMO' category #: lang/json/recipe_category_from_json.py msgid "PISTOL" -msgstr "PISTOLA" +msgstr "" #. ~ Crafting recipes subcategory of 'AMMO' category #: lang/json/recipe_category_from_json.py msgid "RIFLE" -msgstr "RIFLE" +msgstr "" #. ~ Crafting recipes subcategory of 'AMMO' category #: lang/json/recipe_category_from_json.py msgid "SHOT" -msgstr "TIRO" +msgstr "" #. ~ Crafting recipes subcategory of 'AMMO' category #: lang/json/recipe_category_from_json.py msgid "GRENADES" -msgstr "GRANADAS" +msgstr "" #. ~ Crafting recipes subcategory of 'AMMO' category #: lang/json/recipe_category_from_json.py @@ -127786,7 +113301,7 @@ msgstr "BEBIDAS" #. ~ Crafting recipes subcategory of 'FOOD' category #: lang/json/recipe_category_from_json.py msgid "DRY" -msgstr "SECO" +msgstr "" #. ~ Crafting recipes subcategory of 'FOOD' category #: lang/json/recipe_category_from_json.py @@ -127816,12 +113331,12 @@ msgstr "MACARRÃO" #. ~ Crafting recipes subcategory of 'FOOD' category #: lang/json/recipe_category_from_json.py msgid "BREW" -msgstr "BREW" +msgstr "" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "CHEM" -msgstr "CHEM" +msgstr "" #. ~ Crafting recipes subcategory of 'CHEM' category #: lang/json/recipe_category_from_json.py @@ -127836,7 +113351,7 @@ msgstr "QUÍMICOS" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "ELECTRONIC" -msgstr "ELETRÔNICO" +msgstr "" #. ~ Crafting recipes subcategory of 'ELECTRONIC' category #: lang/json/recipe_category_from_json.py @@ -127908,7 +113423,7 @@ msgstr "ARMADILHAS" #. ~ Crafting recipes subcategory of 'OTHER' category #: lang/json/recipe_category_from_json.py msgid "VEHICLE" -msgstr "VEÍCULO" +msgstr "" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py @@ -127928,17 +113443,17 @@ msgstr "" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py msgid "BUILDING" -msgstr "CONSTRUÇÃO" +msgstr "" #. ~ Crafting recipes subcategory of 'BUILDING' category #: lang/json/recipe_category_from_json.py msgid "BASES" -msgstr "BASES" +msgstr "" #. ~ Crafting recipes subcategory of 'BUILDING' category #: lang/json/recipe_category_from_json.py msgid "EXPANSIONS" -msgstr "EXPANSÕES" +msgstr "" #. ~ Crafting recipes category name #: lang/json/recipe_category_from_json.py @@ -127957,7 +113472,7 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "Stuff THE MAN doesn't want you to know" -msgstr "Coisas O HOMEM não quer que você saiba" +msgstr "" #: lang/json/recipe_from_json.py msgid "We should survey the base site and set up a bulletin board." @@ -128656,113 +114171,88 @@ msgid "" "The first thing we are going to need is a command tent to manage and task " "workers from." msgstr "" -" A primeira coisa que vamos precisar é de uma tenda de comando para " -"gerenciar e encarregar os trabalhadores." #: lang/json/recipe_from_json.py msgid "" "We're going to need a fire pit and a bed if we want to stay here " "permanently." msgstr "" -" Nós vamos precisar de uma fogueira e uma cama se quisermos ficar aqui " -"permanentemente." #: lang/json/recipe_from_json.py msgid "" "To make this outpost functional we are going to need storage containers to " "organize our supplies." msgstr "" -" Para tornar esse posto avançado funcional, precisaremos de recipientes de " -"armazenamento para organizar nossos suprimentos." #: lang/json/recipe_from_json.py msgid "" "Next we should expand the camp to comfortably support two people " "indefinitely." msgstr "" -" Em seguida, devemos expandir o acampamento para apoiar confortavelmente " -"duas pessoas indefinidamente." #: lang/json/recipe_from_json.py msgid "" "Additional housing and storage will allow our camp to expand into " "specialized industries." msgstr "" -" Habitação e armazenamento adicionais permitirão que nosso acampamento se " -"expanda em indústrias especializadas." #: lang/json/recipe_from_json.py msgid "" "Constructing a hard command post will transform our little camp into a true " "base." msgstr "" -" Construir um posto de comando rígido transformará nosso pequeno acampamento" -" em uma base verdadeira." #: lang/json/recipe_from_json.py msgid "" "Building additional housing will allow us to send companions out to find " "recruits." msgstr "" -" Construir habitação adicional nos permitirá enviar companheiros para " -"encontrar recrutas." #: lang/json/recipe_from_json.py msgid "We need to expand our base to include basic dining facilities." msgstr "" -" Precisamos expandir nossa base para incluir instalações básicas de " -"refeições." #: lang/json/recipe_from_json.py msgid "More housing means that we can support additional specialists." -msgstr "Mais habitação significa que podemos apoiar especialistas adicionais." +msgstr "" #: lang/json/recipe_from_json.py msgid "An expanded kitchen is needed to support our growing settlement." msgstr "" -" Uma cozinha expandida é necessária para apoiar nosso assentamento " -"crescente." #: lang/json/recipe_from_json.py msgid "" "Finishing the hard structure will give us a more secure place to retreat to " "if we come under attack." msgstr "" -" Terminar a estrutura dura nos dará um lugar mais seguro para nos retirarmos" -" se formos atacados." #: lang/json/recipe_from_json.py msgid "" "I'm surprised we've made it this long without securing a clean water source," " we need a well." msgstr "" -" Estou surpreso por termos conseguido tanto tempo sem garantir uma fonte de " -"água limpa, precisamos de um poço." #: lang/json/recipe_from_json.py msgid "" "Building a strong wall will keep the base secure even if a small horde " "attacks." msgstr "" -" Construir um muro forte manterá a base segura mesmo que uma pequena horda " -"atente." #: lang/json/recipe_from_json.py msgid "We need to finish our half built fortifications." -msgstr "Precisamos terminar nossas fortificações meio construídas." +msgstr "" #: lang/json/recipe_from_json.py msgid "We're running out of room and need another living quarters." -msgstr "Estamos ficando sem espaço e precisamos de outro alojamento." +msgstr "" #: lang/json/recipe_from_json.py msgid "Our kitchen isn't able to keep up with demand, we need to expand it." msgstr "" -" Nossa cozinha não é capaz de acompanhar a demanda, precisamos expandi-la." #: lang/json/recipe_from_json.py msgid "We should build stronger doors to secure our compound." -msgstr "Devemos construir portas mais fortes para proteger nosso composto." +msgstr "" #: lang/json/recipe_from_json.py msgid "One more tent and our living space will be full." @@ -128780,205 +114270,167 @@ msgstr "" #: lang/json/recipe_from_json.py msgid "Survey land for a farm shop." -msgstr "Pesquisa terra para uma loja de fazenda." +msgstr "" #: lang/json/recipe_from_json.py msgid "Plowing a few plots should get us started." -msgstr "Arar alguns lotes deve nos ajudar a começar." +msgstr "" #: lang/json/recipe_from_json.py msgid "We could use a farming shed to store resources where we'll be working." msgstr "" -" Poderíamos usar um galpão agrícola para armazenar recursos onde estaremos " -"trabalhando." #: lang/json/recipe_from_json.py msgid "" "Our farm could be expanded by finishing the shed and adding additional " "plots." msgstr "" -" Nossa fazenda poderia ser expandida, terminando o galpão e adicionando " -"parcelas adicionais." #: lang/json/recipe_from_json.py msgid "" "Building a processing shack should allow us to reclaim additional seeds from" " our byproducts." msgstr "" -" Construir uma barraca de processamento deve nos permitir recuperar sementes" -" adicionais de nossos subprodutos." #: lang/json/recipe_from_json.py msgid "Survey land for a garage." -msgstr "Pesquisa terra para uma garagem." +msgstr "" #: lang/json/recipe_from_json.py msgid "Building a tool rack should be the first priority." -msgstr "Construir um rack de ferramentas deve ser a primeira prioridade." +msgstr "" #: lang/json/recipe_from_json.py msgid "We should start construction of a roof for the garage." -msgstr "Devemos começar a construção de um telhado para a garagem." +msgstr "" #: lang/json/recipe_from_json.py msgid "Finishing out the roof will let our mechanics work rain or shine." msgstr "" -" Terminar o telhado permitirá que nossos mecânicos trabalhem com chuva ou " -"faça sol." #: lang/json/recipe_from_json.py msgid "" "Our garage isn't big enough to work on larger vehicles. Let's start " "expanding it." msgstr "" -" Nossa garagem não é grande o suficiente para funcionar em veículos maiores." -" Vamos começar a expandi-lo." #: lang/json/recipe_from_json.py msgid "Finishing the roof will let us park RVs and buses in the garage." msgstr "" -" Terminar o telhado nos permitirá estacionar trailers e ônibus na garagem." #: lang/json/recipe_from_json.py msgid "" "Attaching a quarters will let our mechanics work longer hours when needed." msgstr "" -" Anexar um quarto permitirá que nossos mecânicos trabalhem por mais horas " -"quando necessário." #: lang/json/recipe_from_json.py msgid "Survey land for a kitchen." -msgstr "Pesquisa terra para uma cozinha." +msgstr "" #: lang/json/recipe_from_json.py msgid "Building a cook-shack is our first task." -msgstr "Construir um barraco de cozinha é a nossa primeira tarefa." +msgstr "" #: lang/json/recipe_from_json.py msgid "We need to finish framing the walls for the cook-shack." msgstr "" -"Precisamos terminar de enquadrar as paredes para o barraco de cozinha." #: lang/json/recipe_from_json.py msgid "" "Expanding the shack by including a smoker will increase our versatility." msgstr "" -" Expandir o barraco, incluindo um fumante, aumentará nossa versatilidade." #: lang/json/recipe_from_json.py msgid "A pantry will allow our cooks to store more non-perishables." msgstr "" -" Uma despensa permitirá que nossos cozinheiros armazenem mais não- " -"perecíveis." #: lang/json/recipe_from_json.py msgid "" "Increasing our number of smoking racks will let us craft larger batches." msgstr "" -" Aumentar nosso número de prateleiras de fumantes nos permitirá fabricar " -"lotes maiores." #: lang/json/recipe_from_json.py msgid "A well is needed so our cooks don't have to haul in water." msgstr "" -" Um poço é necessário para que nossos cozinheiros não precisem puxar água." #: lang/json/recipe_from_json.py msgid "" "Wood stoves will give us greater control of temperatures and let us craft " "more difficult recipes." msgstr "" -" Os fogões a lenha nos darão um controle maior das temperaturas e nos " -"permitirão criar receitas mais difíceis." #: lang/json/recipe_from_json.py msgid "" "Finally, expanding the pantry further will let us store additional " "materials." msgstr "" -" Finalmente, a expansão da despensa nos permitirá armazenar materiais " -"adicionais." #: lang/json/recipe_from_json.py msgid "" "A trench that may deter movement but is meant to be the foundation of a " "picket or palisade. Requirements are for 1/2 an over map tile." msgstr "" -" Uma trincheira que pode impedir o movimento, mas deve ser a base de um " -"piquete ou paliçada. Os requisitos são para 1/2 um over map tile." #: lang/json/recipe_from_json.py msgid "" "A deep trench filled with spikes, requires a trench. Requirements are for " "1/2 an over map tile." msgstr "" -" Uma vala profunda cheia de pontas requer uma trincheira. Os requisitos são " -"para 1/2 um over map tile." #: lang/json/recipe_from_json.py msgid "Survey land for a blacksmith shop." -msgstr "Terra de pesquisa para uma oficina de ferreiro." +msgstr "" #: lang/json/recipe_from_json.py msgid "Building a forge and kiln is our first task." -msgstr "Construir uma forja e forno é a nossa primeira tarefa." +msgstr "" #: lang/json/recipe_from_json.py msgid "Building a proper roof for the shop is the next step." -msgstr "Construir um telhado adequado para a loja é o próximo passo." +msgstr "" #: lang/json/recipe_from_json.py msgid "Building a working table and placing an anvil are next." msgstr "" -" Construindo uma mesa de trabalho e colocando uma bigorna são os próximos." #: lang/json/recipe_from_json.py msgid "" "If we're going to do more than simple metal casting we need a bigger shop." msgstr "" -" Se vamos fazer mais do que simples fundição de metal, precisamos de uma " -"loja maior." #: lang/json/recipe_from_json.py msgid "We need some basic tools to make more advanced crafts." msgstr "" -" Precisamos de algumas ferramentas básicas para fazer artesanato mais " -"avançado." #: lang/json/recipe_from_json.py msgid "An expanded forge will allow us to work on bigger projects." -msgstr "Uma forja expandida nos permitirá trabalhar em projetos maiores." +msgstr "" #: lang/json/recipe_from_json.py msgid "Proper steel work requires a bellows and quenching setup." -msgstr "Trabalho de aço adequado requer uma configuração de fole e têmpera." +msgstr "" #: lang/json/recipe_from_json.py msgid "A separate workshop will allow us to do the most basic of machining." -msgstr "Uma oficina separada nos permitirá fazer o mais básico de usinagem." +msgstr "" #: lang/json/recipe_from_json.py msgid "Next we need to add some basic tools and vices to the workshop." msgstr "" -" Em seguida, precisamos adicionar algumas ferramentas e vícios básicos ao " -"workshop." #: lang/json/recipe_from_json.py msgid "Advanced forging processes require more room to work." -msgstr "Processos avançados de forjamento exigem mais espaço para trabalhar." +msgstr "" #: lang/json/recipe_from_json.py msgid "An on-site well will allow us to fill boilers as needed." msgstr "" -" Um poço no local nos permitirá encher as caldeiras conforme necessário." #: lang/json/recipe_from_json.py msgid "" "A steam-powered drop hammer will greatly increase production speed in " "exchange for charcoal." msgstr "" -" Um martelo drop movido a vapor aumentará muito a velocidade de produção em " -"troca de carvão." #: lang/json/recipe_group_from_json.py msgid "Field Camp" @@ -128990,19 +114442,19 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid "Farm" -msgstr "Fazenda" +msgstr "" #: lang/json/recipe_group_from_json.py lang/json/start_location_from_json.py msgid "Garage" -msgstr "Garagem" +msgstr "" #: lang/json/recipe_group_from_json.py msgid "Kitchen" -msgstr "Cozinha" +msgstr "" #: lang/json/recipe_group_from_json.py msgid "Blacksmith Shop" -msgstr "Loja de ferreiro" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Tinder" @@ -129010,159 +114462,159 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat, Cooked" -msgstr "Cozinheiro: Carne Cozida" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Fish, Cooked" -msgstr "Cozinheiro: Peixe, Cozido" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy, Cooked" -msgstr "Cozinheiro: Veggy, Cozido" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Egg, Boiled" -msgstr "Cozinheiro: Ovo Cozido" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Starch" -msgstr "Cozinheiro: Amido" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Flatbread" -msgstr "Cozinheiro: pão sírio" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy, Cooked Wild" -msgstr "Cozinheiro: Veggy, cozido selvagem" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Flour" -msgstr "Cozinheiro: farinha" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Salt" -msgstr "Cozinheiro: Sal" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Bread" -msgstr "Cozinheiro: Pão" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Fruit Leather" -msgstr "Cozinheiro: couro de frutas" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat Jerky" -msgstr "Cozinheiro: Meat Jerky" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Mushroom, Cooked" -msgstr "Cozinheiro: Cogumelo, Cozido" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Lard" -msgstr "Cozinheiro: banha" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Cornmeal" -msgstr "Cozinheiro: farinha de milho" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat, Smoked" -msgstr "Cook: Carne defumada" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Fish, Smoked" -msgstr "Cozinheiro: Peixe fumado" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Mushroom, Dried" -msgstr "Cozinheiro: cogumelo, seco" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Fruit, Dehydrated" -msgstr "Cozinheiro: Fruta Desidratada" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Sausage" -msgstr "Cozinheiro: Salsicha" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Sausage, Wasteland" -msgstr "Cozinheiro: Salsicha, Wasteland" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat Pie" -msgstr "Cozinheiro: torta de carne" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy Pie" -msgstr "Cozinheiro: Torta Veggy" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Sugar" -msgstr "Cozinheiro: Açúcar" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Hardtack" -msgstr "Cozinheiro: Hardtack" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy, Pickled" -msgstr "Cozinheiro: Veggy, em conserva" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Cheese, Hard" -msgstr "Cozinheiro: queijo duro" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Pemmican" -msgstr "Cozinheiro: pemmican" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Veggy Aspic" -msgstr "Cozinheiro: Veggy Aspic" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat, Canned" -msgstr "Cozinheiro: carne, enlatada" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Cook: Meat Aspic" -msgstr "Cozinheiro: carne Aspic" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Pointy Sticks" -msgstr "Artesanato: Palitos pontudos" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Wild Veggy Stems" -msgstr "Artesanato: Hastes Veggy Selvagens" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Dandelion Seeds" -msgstr "Artesanato: sementes de dente de leão" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Potato, Starter" -msgstr "Artesanato: Batata, Starter" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Buckwheat Seeds" -msgstr "Artesanato: Sementes de Trigo Sarraceno" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Copper, Scrap" -msgstr "Artesanato: Cobre, Sucata" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Charcoal" -msgstr "Artesanato: Carvão vegetal" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Spike" -msgstr "Ofício: Spike" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Glass Caltrops" @@ -129170,7 +114622,7 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Steel, Chunk" -msgstr "Artesanato: Aço, Pedaço" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Crucible" @@ -129178,31 +114630,31 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Anvil" -msgstr "Ofício: bigorna" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Steel, Lump" -msgstr "Artesanato: Aço, Lump" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Knife, Copper" -msgstr "Artesanato: Faca, Cobre" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Crude" -msgstr "Artesanato: Espada, Cru" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Pot, Copper" -msgstr "Artesanal: Pote, Cobre" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Crossbow Bolt, Steel" -msgstr "Ofício: Parafuso de Besta, Aço" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Armor, Scrap Suit" -msgstr "Artesanato: armadura, terno de sucata" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Armor, Scrap Helmet" @@ -129226,215 +114678,215 @@ msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Axe, Copper" -msgstr "Artesanato: Machado, Cobre" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Spear, Copper" -msgstr "Ofício: lança, cobre" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Metalworking Chisel" -msgstr "Artesanato: Cinzel de Metalurgia" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Hammer" -msgstr "Artesanato: Martelo" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Metal Tongs" -msgstr "Artesanato: Tenazes de Metal" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Nail" -msgstr "Ofício: prego" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Wire" -msgstr "Ofício: fio" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Swage and Die Set" -msgstr "Ofício: Swage and Die Set" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Blade" -msgstr "Ofício: Lâmina" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Bearings" -msgstr "Artesanato: Rolamentos" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Caltrops" -msgstr "Artesanato: Caltrops" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Hand Drill" -msgstr "Artesanato: Broca Manual" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sheet Metal" -msgstr "Artesanato: Chapa Metálica" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Chain" -msgstr "Artesanato: Corrente" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Shovel" -msgstr "Ofício: Pá" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Rebar" -msgstr "Artesanato: Vergalhão" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Golden Ring" -msgstr "Artesanato: Anel de Ouro" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Hammer, Sledge" -msgstr "Artesanato: Martelo, Sledge" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Knife, Combat" -msgstr "Artesanato: Faca, Combate" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Spear, Steel" -msgstr "Ofício: Lança, Aço" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Machete" -msgstr "Artesanato: Machete" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Pipe" -msgstr "Ofício: tubulação" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Screwdriver" -msgstr "Artesanato: chave de fenda" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Axe, Throwing" -msgstr "Artesanato: Machado, Arremesso" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Wrench" -msgstr "Ofício: chave inglesa" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Hatchet" -msgstr "Artesanato: Machadinha" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Knife, Throwing" -msgstr "Artesanato: Faca, Jogando" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Crowbar" -msgstr "Artesanato: Crowbar" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Pot" -msgstr "Artesanato: eu posso" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Hoe" -msgstr "Artesanato: como" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Pliers" -msgstr "Artesanato: Alicates" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Halberd" -msgstr "Artesanato: alabarda" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Armor, Cuirass" -msgstr "Artesanato: Armadura, Couraça" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Knife, Pocket" -msgstr "Artesanato: Faca, Bolso" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Hammer, War" -msgstr "Artesanato: Martelo, Guerra" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Helm, Great" -msgstr "Artesanato: Leme, Grande" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Armor, Plate" -msgstr "Artesanato: Armadura, Prato" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Broadsword" -msgstr "Artesanato: Espada, Espada Larga" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Scimitar" -msgstr "Artesanato: Espada, Cimitarra" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Axe, Fire" -msgstr "Artesanato: Machado, Fogo" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Hacksaw" -msgstr "Artesanato: serrote" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Woodsaw" -msgstr "Ofício: Woodsaw" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Spear, Awl Pike" -msgstr "Artesanato: Lança, Furador Pike" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Rapier" -msgstr "Artesanato: espada, florete" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Halligan Bar" -msgstr "Artesanato: Bar Halligan" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sword, Zweihander" -msgstr "Artesanato: Espada, Zweihander" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Pickaxe" -msgstr "Artesanato: picareta" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Sheet Metal, Drop Hammer" -msgstr "Artesanato: Chapa Metálica, Martelo de Gota" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Chain, Drop Hammer" -msgstr "Artesanato: Chain, Drop Hammer" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Nail, Drop Hammer" -msgstr "Artesanato: Prego, Martelo de Gota" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Wire, Drop Hammer" -msgstr "Artesanato: Fio, Martelo de Gota" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Pipe, Drop Hammer" -msgstr "Artesanato: Cachimbo, Martelo de Gota" +msgstr "" #: lang/json/recipe_group_from_json.py msgid " Craft: Rebar, Drop Hammer" -msgstr "Artesanato: Vergalhão, Martelo de Gota" +msgstr "" #. ~ Name for scenario 'Evacuee' for a male character #: lang/json/scenario_from_json.py @@ -129472,19 +114924,19 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Evac Shelter" -msgstr "Abrigo Evac" +msgstr "" #. ~ Name for scenario 'Refugee' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Refugee" -msgstr "Refugiado" +msgstr "" #. ~ Name for scenario 'Refugee' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Refugee" -msgstr "Refugiado" +msgstr "" #. ~ Description for scenario 'Refugee' for a male character. #: lang/json/scenario_from_json.py @@ -129493,8 +114945,6 @@ msgid "" "You made it to one of the refugee centers, but they've refused to let you " "join the others underground. Looks like you're on your own..." msgstr "" -" Você chegou a um dos centros de refugiados, mas eles se recusaram a deixar " -"você se juntar aos outros no subsolo. Parece que você está por sua conta ..." #. ~ Description for scenario 'Refugee' for a female character. #: lang/json/scenario_from_json.py @@ -129503,14 +114953,12 @@ msgid "" "You made it to one of the refugee centers, but they've refused to let you " "join the others underground. Looks like you're on your own..." msgstr "" -" Você chegou a um dos centros de refugiados, mas eles se recusaram a deixar " -"você se juntar aos outros no subsolo. Parece que você está por sua conta ..." #. ~ Starting location for scenario 'Refugee'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Refugee Center" -msgstr "Centro de Refugiados" +msgstr "" #. ~ Name for scenario 'Missed' for a male character #: lang/json/scenario_from_json.py @@ -129662,13 +115110,13 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Challenge-Medieval Peasant" -msgstr "Camponês Desafio-Medieval" +msgstr "" #. ~ Name for scenario 'Challenge-Medieval Peasant' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Challenge-Medieval Peasant" -msgstr "Camponês Desafio-Medieval" +msgstr "" #. ~ Description for scenario 'Challenge-Medieval Peasant' for a male #. character. @@ -129678,8 +115126,6 @@ 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 "" -" Som nigromancie trouxe yow hidder! Só tens a coleira nas vossas pernas e o " -"botão da vossa casa e rezas a Maria moder de Deus." #. ~ Description for scenario 'Challenge-Medieval Peasant' for a female #. character. @@ -129689,8 +115135,6 @@ 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 "" -" Som nigromancie trouxe yow hidder! Só tens a coleira nas vossas pernas e o " -"botão da vossa casa e rezas a Maria moder de Deus." #. ~ Starting location for scenario 'Challenge-Medieval Peasant'. #. ~ Starting location for scenario 'Experiment'. @@ -129719,8 +115163,6 @@ msgid "" "You've been locked in a lab with no (obvious) way out! Find a way to escape" " or starve to death." msgstr "" -" Você foi trancado em um laboratório sem saída (óbvia)! Encontre uma maneira" -" de escapar ou morrer de fome." #. ~ Description for scenario 'Challenge-Lab' for a female character. #: lang/json/scenario_from_json.py @@ -129729,8 +115171,6 @@ msgid "" "You've been locked in a lab with no (obvious) way out! Find a way to escape" " or starve to death." msgstr "" -" Você foi trancado em um laboratório sem saída (óbvia)! Encontre uma maneira" -" de escapar ou morrer de fome." #. ~ Starting location for scenario 'Challenge-Lab'. #: lang/json/scenario_from_json.py @@ -129784,13 +115224,13 @@ msgstr "Cabana abandonada" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "The Next Summer" -msgstr "O próximo verão" +msgstr "" #. ~ Name for scenario 'The Next Summer' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "The Next Summer" -msgstr "O próximo verão" +msgstr "" #. ~ Description for scenario 'The Next Summer' for a male character. #: lang/json/scenario_from_json.py @@ -129799,8 +115239,6 @@ msgid "" "A little over a year has passed since the apocalypse started, and you're " "about to face your second summer in Hell." msgstr "" -" Um pouco mais de um ano se passou desde o início do apocalipse, e você está" -" prestes a enfrentar seu segundo verão no Inferno." #. ~ Description for scenario 'The Next Summer' for a female character. #: lang/json/scenario_from_json.py @@ -129809,14 +115247,12 @@ msgid "" "A little over a year has passed since the apocalypse started, and you're " "about to face your second summer in Hell." msgstr "" -" Um pouco mais de um ano se passou desde o início do apocalipse, e você está" -" prestes a enfrentar seu segundo verão no Inferno." #. ~ Starting location for scenario 'The Next Summer'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Outside Town" -msgstr "Fora da cidade" +msgstr "" #. ~ Name for scenario 'Sheltered' for a male character #: lang/json/scenario_from_json.py @@ -129839,10 +115275,6 @@ msgid "" "hurt you. Supplies are running low, and for the first time since the " "cataclysm, you will be forced to face the outside world." msgstr "" -" Quando o apocalipse eclodiu, você foi afunilado em um abrigo próximo. Aqui " -"você viveu, nunca partiu, para que os desconhecidos do mundo exterior não o " -"ferissem. Os suprimentos estão acabando, e pela primeira vez desde o " -"cataclismo, você será forçado a enfrentar o mundo exterior." #. ~ Description for scenario 'Sheltered' for a female character. #: lang/json/scenario_from_json.py @@ -129853,10 +115285,6 @@ msgid "" "hurt you. Supplies are running low, and for the first time since the " "cataclysm, you will be forced to face the outside world." msgstr "" -" Quando o apocalipse eclodiu, você foi afunilado em um abrigo próximo. Aqui " -"você viveu, nunca partiu, para que os desconhecidos do mundo exterior não o " -"ferissem. Os suprimentos estão acabando, e pela primeira vez desde o " -"cataclismo, você será forçado a enfrentar o mundo exterior." #. ~ Starting location for scenario 'Sheltered'. #: lang/json/scenario_from_json.py @@ -129912,13 +115340,13 @@ msgstr "Hospital" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Prison Break" -msgstr "Fuga da prisão" +msgstr "" #. ~ Name for scenario 'Prison Break' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Prison Break" -msgstr "Fuga da prisão" +msgstr "" #. ~ Description for scenario 'Prison Break' for a male character. #: lang/json/scenario_from_json.py @@ -129928,10 +115356,6 @@ msgid "" "prisoners have turned into mindless horrors and the security bots are " "shooting on sight... you might need to expedite your escape plans." msgstr "" -" Você foi um criminoso condenado planejando sua fuga antes do evento. Agora " -"os prisioneiros se transformaram em horrores irracionais e os bots de " -"segurança estão atirando à vista ... você pode precisar acelerar seus planos" -" de fuga." #. ~ Description for scenario 'Prison Break' for a female character. #: lang/json/scenario_from_json.py @@ -129941,16 +115365,12 @@ msgid "" "prisoners have turned into mindless horrors and the security bots are " "shooting on sight... you might need to expedite your escape plans." msgstr "" -" Você foi um criminoso condenado planejando sua fuga antes do evento. Agora " -"os prisioneiros se transformaram em horrores irracionais e os bots de " -"segurança estão atirando à vista ... você pode precisar acelerar seus planos" -" de fuga." #. ~ Starting location for scenario 'Prison Break'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Prison" -msgstr "Prisão" +msgstr "" #. ~ Name for scenario 'Challenge-Island Prison Break' for a male character #: lang/json/scenario_from_json.py @@ -130192,13 +115612,13 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "School" -msgstr "Escola" +msgstr "" #. ~ Name for scenario 'School' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "School" -msgstr "Escola" +msgstr "" #. ~ Description for scenario 'School' for a male character. #: lang/json/scenario_from_json.py @@ -130208,9 +115628,6 @@ msgid "" "students, and before you knew it the entire campus was overrun by monsters." " Guess school's out forever." msgstr "" -" Você estava na escola quando o diretor entrou e comeu um dos alunos, e " -"antes que você percebesse, todo o campus foi invadido por monstros. Acho que" -" a escola está fora para sempre." #. ~ Description for scenario 'School' for a female character. #: lang/json/scenario_from_json.py @@ -130220,15 +115637,12 @@ msgid "" "students, and before you knew it the entire campus was overrun by monsters." " Guess school's out forever." msgstr "" -" Você estava na escola quando o diretor entrou e comeu um dos alunos, e " -"antes que você percebesse, todo o campus foi invadido por monstros. Acho que" -" a escola está fora para sempre." #. ~ Starting location for scenario 'School'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "School" -msgstr "Escola" +msgstr "" #. ~ Name for scenario 'Wilderness' for a male character #: lang/json/scenario_from_json.py @@ -130270,13 +115684,13 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Helicopter Crash" -msgstr "Acidente de helicóptero" +msgstr "" #. ~ Name for scenario 'Helicopter Crash' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Helicopter Crash" -msgstr "Acidente de helicóptero" +msgstr "" #. ~ Description for scenario 'Helicopter Crash' for a male character. #: lang/json/scenario_from_json.py @@ -130285,8 +115699,6 @@ msgid "" "You've crashed your precious helicopter, it'll never fly again. You're the " "only survivor, but life without your Bird is worthless anyway." msgstr "" -" Você bateu seu precioso helicóptero, nunca mais voará. Você é o único " -"sobrevivente, mas a vida sem o seu pássaro é inútil de qualquer maneira." #. ~ Description for scenario 'Helicopter Crash' for a female character. #: lang/json/scenario_from_json.py @@ -130295,26 +115707,24 @@ msgid "" "You've crashed your precious helicopter, it'll never fly again. You're the " "only survivor, but life without your Bird is worthless anyway." msgstr "" -" Você bateu seu precioso helicóptero, nunca mais voará. Você é o único " -"sobrevivente, mas a vida sem o seu pássaro é inútil de qualquer maneira." #. ~ Starting location for scenario 'Helicopter Crash'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Crash site" -msgstr "Local de acidente" +msgstr "" #. ~ Name for scenario 'Bottom of a Mine' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Bottom of a Mine" -msgstr "Fundo de uma mina" +msgstr "" #. ~ Name for scenario 'Bottom of a Mine' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Bottom of a Mine" -msgstr "Fundo de uma mina" +msgstr "" #. ~ Description for scenario 'Bottom of a Mine' for a male character. #: lang/json/scenario_from_json.py @@ -130323,8 +115733,6 @@ msgid "" "You were mining along when you found... something. You're not sure what, " "but it sure is dark down here." msgstr "" -" Você estava minerando quando você encontrou ... alguma coisa. Você não tem " -"certeza do que, mas com certeza está escuro aqui embaixo." #. ~ Description for scenario 'Bottom of a Mine' for a female character. #: lang/json/scenario_from_json.py @@ -130333,26 +115741,24 @@ msgid "" "You were mining along when you found... something. You're not sure what, " "but it sure is dark down here." msgstr "" -" Você estava minerando quando você encontrou ... alguma coisa. Você não tem " -"certeza do que, mas com certeza está escuro aqui embaixo." #. ~ Starting location for scenario 'Bottom of a Mine'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Bottom of a mine" -msgstr "Fundo de uma mina" +msgstr "" #. ~ Name for scenario 'Fled the Riots' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Fled the Riots" -msgstr "Fugiu dos motins" +msgstr "" #. ~ Name for scenario 'Fled the Riots' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Fled the Riots" -msgstr "Fugiu dos motins" +msgstr "" #. ~ Description for scenario 'Fled the Riots' for a male character. #: lang/json/scenario_from_json.py @@ -130361,8 +115767,6 @@ msgid "" "You were present at the last of the real riots; one of the last to flee when" " the rioters stopped breathing but kept moving." msgstr "" -" Você estava presente no último dos tumultos reais; um dos últimos a fugir " -"quando os desordeiros pararam de respirar, mas continuaram em movimento." #. ~ Description for scenario 'Fled the Riots' for a female character. #: lang/json/scenario_from_json.py @@ -130371,26 +115775,24 @@ msgid "" "You were present at the last of the real riots; one of the last to flee when" " the rioters stopped breathing but kept moving." msgstr "" -" Você estava presente no último dos tumultos reais; um dos últimos a fugir " -"quando os desordeiros pararam de respirar, mas continuaram em movimento." #. ~ Starting location for scenario 'Fled the Riots'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Public Holdout" -msgstr "Holdout Público" +msgstr "" #. ~ Name for scenario 'Out of Town' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Out of Town" -msgstr "Fora da cidade" +msgstr "" #. ~ Name for scenario 'Out of Town' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Out of Town" -msgstr "Fora da cidade" +msgstr "" #. ~ Description for scenario 'Out of Town' for a male character. #: lang/json/scenario_from_json.py @@ -130400,9 +115802,6 @@ msgid "" "the end had come, or that everyone was (un)dead. Will this ignorance save " "you from the fate of the rest?" msgstr "" -" Você estava fora da civilização quando as bombas caíram; você nem sabia que" -" o fim havia chegado ou que todos estavam (in) mortos. Esta ignorância " -"salvará você do destino do resto?" #. ~ Description for scenario 'Out of Town' for a female character. #: lang/json/scenario_from_json.py @@ -130412,27 +115811,24 @@ msgid "" "the end had come, or that everyone was (un)dead. Will this ignorance save " "you from the fate of the rest?" msgstr "" -" Você estava fora da civilização quando as bombas caíram; você nem sabia que" -" o fim havia chegado ou que todos estavam (in) mortos. Esta ignorância " -"salvará você do destino do resto?" #. ~ Starting location for scenario 'Out of Town'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Out of City" -msgstr "Fora da cidade" +msgstr "" #. ~ Name for scenario 'High Tech, Low Life' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "High Tech, Low Life" -msgstr "Alta tecnologia, baixa vida" +msgstr "" #. ~ Name for scenario 'High Tech, Low Life' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "High Tech, Low Life" -msgstr "Alta tecnologia, baixa vida" +msgstr "" #. ~ Description for scenario 'High Tech, Low Life' for a male character. #: lang/json/scenario_from_json.py @@ -130444,11 +115840,6 @@ msgid "" "desperate people with little to lose got you what you wanted. If you went " "too deep, however, your augmentation may have come at a price..." msgstr "" -" Antes do fim do mundo, a biônica era reservada aos ricos e aos famosos. " -"Você pode não ter sido também, mas queria entrar. Escritórios escondidos em " -"porões, anestesias contrabandeadas de hospitais, e pessoas desesperadas com " -"pouco a perder conseguiam o que queriam. Se você foi muito fundo, " -"entretanto, seu aumento pode ter um preço ..." #. ~ Description for scenario 'High Tech, Low Life' for a female character. #: lang/json/scenario_from_json.py @@ -130460,29 +115851,24 @@ msgid "" "desperate people with little to lose got you what you wanted. If you went " "too deep, however, your augmentation may have come at a price..." msgstr "" -" Antes do fim do mundo, a biônica era reservada aos ricos e aos famosos. " -"Você pode não ter sido também, mas queria entrar. Escritórios escondidos em " -"porões, anestesias contrabandeadas de hospitais, e pessoas desesperadas com " -"pouco a perder conseguiam o que queriam. Se você foi muito fundo, " -"entretanto, seu aumento pode ter um preço ..." #. ~ Starting location for scenario 'High Tech, Low Life'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Shady Basement" -msgstr "Porão sombrio" +msgstr "" #. ~ Name for scenario 'At the Zoo' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "At the Zoo" -msgstr "No zoológico" +msgstr "" #. ~ Name for scenario 'At the Zoo' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "At the Zoo" -msgstr "No zoológico" +msgstr "" #. ~ Description for scenario 'At the Zoo' for a male character. #: lang/json/scenario_from_json.py @@ -130491,8 +115877,6 @@ msgid "" "It was a slow day at the zoo, until you heard people screaming outside the " "walls. The animals seem to be getting agitated.." msgstr "" -" Foi um dia lento no zoológico, até que você ouviu pessoas gritando do lado " -"de fora das paredes. Os animais parecem estar ficando agitados .." #. ~ Description for scenario 'At the Zoo' for a female character. #: lang/json/scenario_from_json.py @@ -130501,56 +115885,54 @@ msgid "" "It was a slow day at the zoo, until you heard people screaming outside the " "walls. The animals seem to be getting agitated.." msgstr "" -" Foi um dia lento no zoológico, até que você ouviu pessoas gritando do lado " -"de fora das paredes. Os animais parecem estar ficando agitados .." #. ~ Starting location for scenario 'At the Zoo'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Zoo Start" -msgstr "Zoo Start" +msgstr "" #. ~ Name for scenario 'Out Golfing' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Out Golfing" -msgstr "Fora de golfe" +msgstr "" #. ~ Name for scenario 'Out Golfing' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Out Golfing" -msgstr "Fora de golfe" +msgstr "" #. ~ Description for scenario 'Out Golfing' for a male character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_male" msgid "You decided to spend your day off doing what you love, golfing!" -msgstr "Você decidiu passar o seu dia fazendo o que ama, jogando golfe!" +msgstr "" #. ~ Description for scenario 'Out Golfing' for a female character. #: lang/json/scenario_from_json.py msgctxt "scen_desc_female" msgid "You decided to spend your day off doing what you love, golfing!" -msgstr "Você decidiu passar o seu dia fazendo o que ama, jogando golfe!" +msgstr "" #. ~ Starting location for scenario 'Out Golfing'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Out Golfing" -msgstr "Fora de golfe" +msgstr "" #. ~ Name for scenario 'Camping' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Camping" -msgstr "Acampamento" +msgstr "" #. ~ Name for scenario 'Camping' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Camping" -msgstr "Acampamento" +msgstr "" #. ~ Description for scenario 'Camping' for a male character. #: lang/json/scenario_from_json.py @@ -130559,8 +115941,6 @@ msgid "" "You and your friends decided to get away for the week and enjoy the outdoors" " via sleeping in a tent under the stars." msgstr "" -" Você e seus amigos decidiram se afastar durante a semana e aproveitar o ar " -"livre dormindo em uma tenda sob as estrelas." #. ~ Description for scenario 'Camping' for a female character. #: lang/json/scenario_from_json.py @@ -130569,14 +115949,12 @@ msgid "" "You and your friends decided to get away for the week and enjoy the outdoors" " via sleeping in a tent under the stars." msgstr "" -" Você e seus amigos decidiram se afastar durante a semana e aproveitar o ar " -"livre dormindo em uma tenda sob as estrelas." #. ~ Starting location for scenario 'Camping'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Camping" -msgstr "Acampamento" +msgstr "" #. ~ Name for scenario 'Apartment Rooftop' for a male character #: lang/json/scenario_from_json.py @@ -130654,13 +116032,13 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Scavenger" -msgstr "Scavenger" +msgstr "" #. ~ Name for scenario 'Scavenger' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Scavenger" -msgstr "Scavenger" +msgstr "" #. ~ Description for scenario 'Scavenger' for a male character. #: lang/json/scenario_from_json.py @@ -130670,10 +116048,6 @@ 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 "" -" Você é um limpador experiente, ou pelo menos tem sido uma temporada desde " -"que você se tornou um limpador. De qualquer forma, você encontrou um bunker " -"com um colega em sua lista. Acontece que eles eram muito melhores nisso do " -"que você." #. ~ Description for scenario 'Scavenger' for a female character. #: lang/json/scenario_from_json.py @@ -130683,16 +116057,12 @@ 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 "" -" Você é um limpador experiente, ou pelo menos tem sido uma temporada desde " -"que você se tornou um limpador. De qualquer forma, você encontrou um bunker " -"com um colega em sua lista. Acontece que eles eram muito melhores nisso do " -"que você." #. ~ Starting location for scenario 'Scavenger'. #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Scavenger Bunker" -msgstr "Bunker de Depósitos" +msgstr "" #. ~ Name for scenario 'Lost Faith' for a male character #: lang/json/scenario_from_json.py @@ -130728,7 +116098,7 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Church" -msgstr "Igreja" +msgstr "" #. ~ Name for scenario 'The Wizard's Apprentice' for a male character #: lang/json/scenario_from_json.py @@ -130791,9 +116161,6 @@ msgid "" "robots would protect you, but they may prove more dangerous than the " "zombies." msgstr "" -" Durante os tumultos e o caos, você se escondeu em um centro de despacho de " -"robôs esperando que os robôs o protegessem, mas eles podem se mostrar mais " -"perigosos que os zumbis." #. ~ Description for scenario 'Robots' for a female character. #: lang/json/scenario_from_json.py @@ -130803,21 +116170,18 @@ msgid "" "robots would protect you, but they may prove more dangerous than the " "zombies." msgstr "" -" Durante os tumultos e o caos, você se escondeu em um centro de despacho de " -"robôs esperando que os robôs o protegessem, mas eles podem se mostrar mais " -"perigosos que os zumbis." #. ~ Name for scenario 'Bunker Evacuee' for a male character #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Bunker Evacuee" -msgstr "Evacuado de Bunker" +msgstr "" #. ~ Name for scenario 'Bunker Evacuee' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Bunker Evacuee" -msgstr "Evacuado de Bunker" +msgstr "" #. ~ Description for scenario 'Bunker Evacuee' for a male character. #: lang/json/scenario_from_json.py @@ -130841,19 +116205,19 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "LMOE Shelter" -msgstr "Abrigo LMOE" +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 "Desafio-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 "Desafio-FEMA Death Camp" +msgstr "" #. ~ Description for scenario 'Challenge-FEMA Death Camp' for a male #. character. @@ -130881,19 +116245,19 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Fema Camp" -msgstr "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 "Mansão Holdout" +msgstr "" #. ~ Name for scenario 'Mansion Holdout' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Mansion Holdout" -msgstr "Mansão Holdout" +msgstr "" #. ~ Description for scenario 'Mansion Holdout' for a male character. #: lang/json/scenario_from_json.py @@ -130923,13 +116287,13 @@ msgstr "Mansão" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "The Last Gig" -msgstr "O último show" +msgstr "" #. ~ Name for scenario 'The Last Gig' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "The Last Gig" -msgstr "O último show" +msgstr "" #. ~ Description for scenario 'The Last Gig' for a male character. #: lang/json/scenario_from_json.py @@ -130959,7 +116323,7 @@ msgstr "" #: lang/json/scenario_from_json.py msgctxt "start_name" msgid "Intended Crime Scene" -msgstr "Cena Prevista do Crime" +msgstr "" #: lang/json/skill_from_json.py msgid "bartering" @@ -130972,9 +116336,6 @@ msgid "" "increase the odds of getting the better end of a deal, and might even see " "you convincing others to give you free stuff." msgstr "" -" Sua habilidade em barganhar, pechinchar e negociar com outras pessoas. " -"Níveis mais altos aumentam as chances de obter o melhor final de um acordo e" -" podem até mesmo convencê-lo a dar-lhe coisas grátis." #: lang/json/skill_from_json.py msgid "computers" @@ -130986,9 +116347,6 @@ msgid "" "Your skill in accessing and manipulating computers. Higher levels can allow" " a user to navigate complex software systems and even bypass their security." msgstr "" -" Sua habilidade em acessar e manipular computadores. Níveis mais altos podem" -" permitir que um usuário navegue por sistemas de software complexos e até " -"mesmo ignore sua segurança." #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "cooking" @@ -131001,9 +116359,6 @@ msgid "" " It may also be used in certain chemical mixtures and other, more esoteric " "tasks." msgstr "" -" Sua habilidade em combinar ingredientes alimentares para fazer outros " -"alimentos mais saborosos. Pode também ser usado em certas misturas químicas " -"e outras tarefas mais esotéricas." #. ~ Description for driving #: lang/json/skill_from_json.py @@ -131012,9 +116367,6 @@ msgid "" "allows greater control over vehicles at higher speeds, and reduces the " "penalty of shooting while driving." msgstr "" -" Sua habilidade em operar e dirigir um veículo em movimento. Um nível mais " -"alto permite maior controle sobre os veículos em velocidades mais altas e " -"reduz a penalidade de disparo durante a condução." #: lang/json/skill_from_json.py msgid "electronics" @@ -131027,9 +116379,6 @@ msgid "" "of objects with electrical components. This skill is an important part of " "installing and managing bionic implants." msgstr "" -" Sua habilidade em lidar com sistemas elétricos, utilizados no artesanato e " -"reparo de objetos com componentes elétricos. Esta habilidade é uma parte " -"importante da instalação e gerenciamento de implantes biônicos." #: lang/json/skill_from_json.py msgid "fabrication" @@ -131042,9 +116391,6 @@ msgid "" "objects. This skill plays an important role in the crafting of many " "objects." msgstr "" -" Sua habilidade em trabalhar com matérias-primas e moldá-las em objetos " -"úteis. Esta habilidade desempenha um papel importante na elaboração de " -"muitos objetos." #: lang/json/skill_from_json.py msgid "first aid" @@ -131057,10 +116403,6 @@ msgid "" "better use of medicines and items like bandages and first aid kits, and " "reduce the failure and complication rates of medical procedures." msgstr "" -" Sua habilidade em efetuar tratamento médico de emergência. Níveis mais " -"altos permitem melhor uso de medicamentos e itens como bandagens e kits de " -"primeiros socorros, além de reduzir as taxas de falha e complicação dos " -"procedimentos médicos." #: lang/json/skill_from_json.py msgid "mechanics" @@ -131073,9 +116415,6 @@ msgid "" "mechanical systems. This skill covers the craft of items with complex " "parts, and plays a role in the installation of bionic equipment." msgstr "" -" Sua habilidade em engenharia, manutenção e reparação de veículos e outros " -"sistemas mecânicos. Esta habilidade abrange o ofício de itens com partes " -"complexas e desempenha um papel na instalação de equipamentos biônicos." #: lang/json/skill_from_json.py msgid "speaking" @@ -131088,10 +116427,6 @@ msgid "" "flattery, threats, persuasion, lies, and other facets of interpersonal " "communication. Works best in conjunction with a high level of intelligence." msgstr "" -" Sua habilidade em falar com outras pessoas. Abrange a capacidade de " -"ostentação, bajulação, ameaças, persuasão, mentiras e outras facetas da " -"comunicação interpessoal. Funciona melhor em conjunto com um alto nível de " -"inteligência." #: lang/json/skill_from_json.py msgid "survival" @@ -131104,9 +116439,6 @@ msgid "" "survival items. This also covers your ability to skin and butcher animals " "for meat and hides." msgstr "" -" Sua habilidade em sobreviver ao deserto e na elaboração de vários itens " -"básicos de sobrevivência. Isso também cobre sua capacidade de esfolar e " -"açouguar animais para carne e peles." #: lang/json/skill_from_json.py msgid "swimming" @@ -131119,10 +116451,6 @@ msgid "" "keeps you from drowning, affects your combat effectiveness and speed in deep" " water, and determines the detriment of swimming with heavier gear." msgstr "" -" Sua capacidade de se manter à tona e se movimentar em corpos d'água. " -"Essa habilidade impede você de se afogar, afeta sua eficácia em combate e " -"sua velocidade em águas profundas, e determina o prejuízo de nadar com " -"equipamentos mais pesados." #: lang/json/skill_from_json.py src/crafting_gui.cpp msgid "tailoring" @@ -131135,9 +116463,6 @@ msgid "" "textiles. Affects knitting, sewing, stitching, weaving, and nearly anything" " else involving a needle and thread." msgstr "" -" Sua habilidade na arte e reparação de roupas, bolsas, cobertores e outros " -"têxteis. Afeta o tricô, costura, costura, tecelagem e quase tudo o que " -"envolve uma agulha e linha." #: lang/json/skill_from_json.py msgid "trapping" @@ -131150,9 +116475,6 @@ msgid "" "effectively. This skill does not affect the evasion of traps that are " "triggered." msgstr "" -" Sua habilidade em criar, definir, encontrar e desarmar armadilhas com " -"segurança e eficácia. Esta habilidade não afeta a evasão de armadilhas que " -"são acionadas." #: lang/json/skill_from_json.py msgid "archery" @@ -131165,9 +116487,6 @@ msgid "" "compound bows. Quiet and effective, they require strength of body and sight" " to wield, and are not terribly accurate over a long distance." msgstr "" -" Sua habilidade em usar armas de arco, de auto-arcos esculpidos à mão a " -"arcos compostos complexos. Quieto e eficaz, eles exigem força de corpo e " -"visão para exercer, e não são terrivelmente precisos a uma longa distância." #: lang/json/skill_from_json.py msgid "bashing weapons" @@ -131180,9 +116499,6 @@ msgid "" "baseball bats and the butts of rifles. Skill increases damage, and higher " "levels will improve the accuracy of an attack." msgstr "" -" Sua habilidade em lutar com armas contundentes, de pedras e bastões para " -"bastões de beisebol e as pontas de rifles. A habilidade aumenta o dano e " -"níveis mais altos melhoram a precisão de um ataque." #: lang/json/skill_from_json.py msgid "cutting weapons" @@ -131195,10 +116511,6 @@ msgid "" "opponent. Lower levels of skill increase accuracy and damage, while higher " "levels will help to bypass heavy armor and thick hides." msgstr "" -" Sua habilidade em lutar com armas projetadas para cortar, cortar e cortar " -"um oponente. Níveis mais baixos de habilidade aumentam a precisão e o dano, " -"enquanto níveis mais altos ajudam a contornar armaduras pesadas e couros " -"espessos." #: lang/json/skill_from_json.py msgid "dodging" @@ -131224,10 +116536,6 @@ msgid "" "general experience increases accuracy with any bows or firearms, but is " "secondary to practice with the type of ranged weapon in question." msgstr "" -" Sua habilidade geral em usar arcos e armas de fogo. Com níveis mais altos, " -"essa experiência geral aumenta a precisão com quaisquer arcos ou armas de " -"fogo, mas é secundária à prática com o tipo de arma de longo alcance em " -"questão." #: lang/json/skill_from_json.py msgid "launchers" @@ -131240,9 +116548,6 @@ msgid "" " These weapons have a variety of applications and may carry immense " "destructive power, but they are cumbersome and hard to manage." msgstr "" -" Sua habilidade em usar armas pesadas como foguetes, granadas ou lançadores " -"de mísseis. Essas armas têm uma variedade de aplicações e podem ter imenso " -"poder destrutivo, mas são difíceis e difíceis de administrar." #: lang/json/skill_from_json.py src/item_factory.cpp msgid "melee" @@ -131255,9 +116560,6 @@ msgid "" "Higher levels can significantly increase the accuracy and effectiveness of " "your physical attacks." msgstr "" -" Sua habilidade e finesse em combate pessoal, com e sem arma. Níveis mais " -"altos podem aumentar significativamente a precisão e a eficácia de seus " -"ataques físicos." #: lang/json/skill_from_json.py msgid "piercing weapons" @@ -131270,9 +116572,6 @@ msgid "" "implements. Skill increases attack accuracy as well as the chance of " "inflicting a deadly and critical blow." msgstr "" -" Sua habilidade em lutar com facas, lanças e outros instrumentos de " -"esfaqueamento. A habilidade aumenta a precisão do ataque, bem como a chance " -"de infligir um golpe mortal e crítico." #: lang/json/skill_from_json.py msgid "throwing" @@ -131284,8 +116583,6 @@ msgid "" "Your skill in throwing objects over a distance. Skill increases accuracy, " "and at higher levels, the range of a throw." msgstr "" -" Sua habilidade em atirar objetos a distância. A habilidade aumenta a " -"precisão e, em níveis mais altos, o alcance de um lançamento." #: lang/json/skill_from_json.py msgid "unarmed combat" @@ -131298,9 +116595,6 @@ msgid "" "get hurt, but those with enough practice can perform special blows and " "techniques to quickly dispatch enemies." msgstr "" -" Sua habilidade na luta corpo-a-corpo. Para os não qualificados, é uma boa " -"maneira de se machucar, mas aqueles com bastante prática podem executar " -"golpes e técnicas especiais para despachar inimigos rapidamente." #: lang/json/skill_from_json.py msgid "handguns" @@ -131313,10 +116607,6 @@ msgid "" "fire and reload faster than other guns. They are very effective at close " "quarters, though unsuited for long range engagement." msgstr "" -" Os revólveres têm pouca precisão em comparação com os rifles, mas " -"geralmente são rápidos para disparar e recarregar mais rápido que outras " -"armas. Eles são muito eficazes em quartos próximos, embora inadequados para " -"o envolvimento de longo alcance." #: lang/json/skill_from_json.py msgid "rifles" @@ -131330,10 +116620,6 @@ msgid "" "quarters. Fully automatic rifles can fire rapidly, but are harder to handle" " properly." msgstr "" -" Os rifles têm excelente alcance e precisão em comparação com outras armas " -"de fogo, mas podem ser lentos para disparar e recarregar e podem ser " -"difíceis de usar em locais próximos. Espingardas totalmente automáticas " -"podem disparar rapidamente, mas são mais difíceis de manusear corretamente." #: lang/json/skill_from_json.py msgid "shotguns" @@ -131346,10 +116632,6 @@ msgid "" "effectiveness and accuracy decline rapidly with range. Slugs can be loaded " "into shotguns to provide greater range, though they are somewhat inaccurate." msgstr "" -" Espingardas são fáceis de atirar e podem causar danos massivos, mas sua " -"eficácia e precisão declinam rapidamente com o alcance. As lesmas podem ser " -"carregadas em espingardas para fornecer maior alcance, embora sejam um pouco" -" imprecisas." #: lang/json/skill_from_json.py msgid "submachine guns" @@ -131369,7 +116651,7 @@ msgstr "" #: lang/json/skill_from_json.py msgid "weapon" -msgstr "arma" +msgstr "" #: lang/json/skill_from_json.py msgid "spellcraft" @@ -131386,461 +116668,372 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Fires can spread easily, especially with abundance of fuel." msgstr "" -" Incêndios podem se espalhar facilmente, especialmente com abundância de " -"combustível." #: lang/json/snippet_from_json.py msgid "Even without electricity, ovens can be useful fire containers." msgstr "" -" Mesmo sem eletricidade, os fornos podem ser recipientes úteis para " -"incêndio." #: lang/json/snippet_from_json.py msgid "Light itself doesn't draw zombies, it's sight, noise or smell." -msgstr "A luz em si não desenha zumbis, é a visão, o ruído ou o cheiro." +msgstr "" #: lang/json/snippet_from_json.py msgid "Moose may not be your friend." -msgstr "Moose pode não ser seu amigo." +msgstr "" #: lang/json/snippet_from_json.py msgid "Turnout gear protects from fire but not from overheating." msgstr "" -" A engrenagem de comparecimento protege do fogo mas não do superaquecimento." #: lang/json/snippet_from_json.py msgid "Peek around corners. You may see your enemy before it sees you." msgstr "" -" Espreite pelas esquinas. Você pode ver seu inimigo antes que ele veja você." #: lang/json/snippet_from_json.py msgid "Cold food lasts longer. Find a cool basement or make a root cellar." msgstr "" -" A comida fria dura mais tempo. Encontre um porão legal ou faça um porão de " -"raiz." #: lang/json/snippet_from_json.py msgid "Dying is part of the experience. Try again with what you've learned." msgstr "" -" Morrer faz parte da experiência. Tente novamente com o que você aprendeu." #: lang/json/snippet_from_json.py msgid "Frozen food? Put it by a fire or heat it up in a pan." -msgstr "Comida congelada? Coloque em fogo ou aqueça em uma panela." +msgstr "" #: lang/json/snippet_from_json.py msgid "Underground spaces like basements or caves stay cool year-round." msgstr "" -" Espaços subterrâneos como porões ou cavernas permanecem frios o ano todo." #: lang/json/snippet_from_json.py msgid "" "Afraid of wildlife? Yell until it goes away. But beware of what comes " "instead." msgstr "" -" Com medo da vida selvagem? Grite até que desapareça. Mas cuidado com o que " -"vem em seu lugar." #: lang/json/snippet_from_json.py msgid "Animals and zombies are not friends. You can take advantage of that." -msgstr "Animais e zumbis não são amigos. Você pode tirar vantagem disso." +msgstr "" #: lang/json/snippet_from_json.py msgid "A door is not the only way in or out of most places." msgstr "" -" Uma porta não é a única maneira de entrar ou sair da maioria dos lugares." #: lang/json/snippet_from_json.py msgid "Don't fight against the odds. There's no shame in running to survive." msgstr "" -" Não lute contra as probabilidades. Não há vergonha em correr para " -"sobreviver." #: lang/json/snippet_from_json.py msgid "You don't have to sit next to fire to use it." -msgstr "Você não precisa se sentar ao lado do fogo para usá-lo." +msgstr "" #: lang/json/snippet_from_json.py msgid "Many items have special actions. Try to find out what they do." msgstr "" -" Muitos itens possuem ações especiais. Tente descobrir o que eles fazem." #: lang/json/snippet_from_json.py msgid "Just because a place is dangerous doesn't mean it's worth looting." -msgstr "Só porque um lugar é perigoso não significa que vale a pena saquear." +msgstr "" #: lang/json/snippet_from_json.py msgid "If you're breaking in, be sure you also know how to get back out." -msgstr "Se você está invadindo, tenha certeza de que também sabe como voltar." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "There's usually more than one way to do things. Think outside the box." msgstr "" -" Geralmente, há mais de uma maneira de fazer as coisas. Pense fora da caixa." #: lang/json/snippet_from_json.py msgid "Survival order: shelter, water, food, then everything else." -msgstr "Sobrevivência: abrigo, água, comida e tudo mais." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Balance armor versus encumbrance. Even dropping a backpack can help in " "melee." msgstr "" -" Armadura de equilíbrio versus oneração. Até mesmo deixar cair uma mochila " -"pode ajudar em melee." #: lang/json/snippet_from_json.py msgid "" "Scared of melee? Throw some things at enemies and use reach weapons like " "spears." msgstr "" -" Com medo de melee? Jogue algumas coisas nos inimigos e use armas de alcance" -" como lanças." #: lang/json/snippet_from_json.py msgid "" "Makeshift weapons can break easily, but they are weapons, and can be made " "again." msgstr "" -" Armas improvisadas podem quebrar facilmente, mas elas são armas e podem ser" -" feitas novamente." #: lang/json/snippet_from_json.py msgid "Not much survives a car at 120mph. Can you?" -msgstr "Não muito sobrevive a um carro a 120 mph. Você pode?" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" -" Comida podre tipicamente atrai insetos, e os insetos ficaram muito maiores " -"recentemente ..." #: lang/json/snippet_from_json.py msgid "" "Drugs are great for quick stat boosts, but be careful of addictions or " "overdose." msgstr "" -" As drogas são ótimas para aumentos rápidos de estatísticas, mas tome " -"cuidado com vícios ou overdose." #: lang/json/snippet_from_json.py msgid "" "Use your map wisely. Prioritize looting places that will get you what you " "need." msgstr "" -" Use seu mapa com sabedoria. Priorize os locais de saque que lhe darão o que" -" você precisa." #: lang/json/snippet_from_json.py msgid "Wounds heal over time. Bandages and disinfectant speeds that up." msgstr "" -" As feridas cicatrizam com o tempo. Ataduras e desinfetantes aceleram isso." #: lang/json/snippet_from_json.py msgid "Don't get grabbed by zombies. Their bites can be infectious." -msgstr "Não seja agarrado por zumbis. Suas mordidas podem ser infecciosas." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Feeling odd after waking up? Try eating healthier and your health may " "improve." msgstr "" -" Sentindo-se estranho depois de acordar? Tente comer mais saudável e sua " -"saúde pode melhorar." #: lang/json/snippet_from_json.py msgid "" "Eat well or your health might suffer. Fast food is only good in a pinch." -msgstr "Coma bem ou sua saúde pode sofrer. Fast food só é bom em uma pitada." +msgstr "" #: lang/json/snippet_from_json.py msgid "Nature can provide. You can live off the land if you learn how." -msgstr "A natureza pode fornecer. Você pode viver da terra se aprender como." +msgstr "" #: lang/json/snippet_from_json.py msgid "Raw food and water from unsafe sources can't be healthy. Right?" msgstr "" -" Alimentos crus e água de fontes inseguras não podem ser saudáveis. Certo?" #: lang/json/snippet_from_json.py msgid "Why walk when you can use a car? Or a tank?" -msgstr "Por que andar quando você pode usar um carro? Ou um tanque?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Food from before the Cataclysm won't last forever. Keep that in mind." msgstr "" -" Comida de antes do Cataclismo não durará para sempre. Tenha isso em mente." #: lang/json/snippet_from_json.py msgid "" "You can make unusual things from usual stuff. Go full MacGyver style if " "needed." msgstr "" -" Você pode fazer coisas incomuns com coisas comuns. Vá para o estilo " -"MacGyver completo, se necessário." #: lang/json/snippet_from_json.py msgid "" "There are fungi you want to eat, and those you want to burn. You'll know " "the difference." msgstr "" -" Há fungos que você quer comer e aqueles que você quer queimar. Você saberá " -"a diferença." #: lang/json/snippet_from_json.py msgid "Having a backup weapon is wise. So is having a backup plan." -msgstr "Ter uma arma de backup é sensata. Então, é ter um plano de backup." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Windows can't stop zombies but they can stop gas, bile, and smoke. And your" " smell." msgstr "" -" O Windows não pode parar os zumbis, mas eles podem parar com gás, bile e " -"fumaça. E seu cheiro" #: lang/json/snippet_from_json.py msgid "Wet and angry? A dry towel will bring your smile back." -msgstr "Molhado e com raiva? Uma toalha seca trará seu sorriso de volta." +msgstr "" #: lang/json/snippet_from_json.py msgid "Like to gamble? Use mutagen! Be a winner today!" -msgstr "Gosta de jogar? Use mutagênico! Seja um vencedor hoje!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Smoking and napping is asking for more than a hole in your shirt." -msgstr "Fumar e cochilar é pedir mais do que um buraco na sua camisa." +msgstr "" #: lang/json/snippet_from_json.py msgid "You're on fire? Stop and wait to put it out." -msgstr "Você está no fogo? Pare e espere para apagá-lo." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Why it's called chicken walker? Because you'll chicken out every time " "you'll see it." msgstr "" -" Por que se chama galinheiro? Porque você vai se assustar toda vez que você " -"ver." #: lang/json/snippet_from_json.py msgid "Routine kills. Stay alert! Don't let your guard down." -msgstr "Assassinos de rotina. Fique alerta! Não baixe sua guarda." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Most medicine doesn't work instantly, so don't swallow a whole bottle of " "pills." msgstr "" -" A maioria dos medicamentos não funciona instantaneamente, por isso não " -"engula um frasco inteiro de comprimidos." #: lang/json/snippet_from_json.py msgid "" "Famous last words: Let's poke this electric zombie with a metal stick." msgstr "" -" Últimas palavras famosas: Vamos cutucar este zumbi elétrico com um bastão " -"de metal." #: lang/json/snippet_from_json.py msgid "" "A full stomach will not solve your starvation. Give it time and eat " "regularly." msgstr "" -" Um estômago cheio não vai resolver sua fome. Dê tempo e coma regularmente." #: lang/json/snippet_from_json.py msgid "" "Be mindful of environmental protection of your gear. It can take you " "places." msgstr "" -" Esteja atento à proteção ambiental do seu equipamento. Pode te levar a " -"lugares." #: lang/json/snippet_from_json.py msgid "" "Don't overlook protective gear, like gas masks or turnout gear. You never " "know." msgstr "" -" Não negligencie equipamentos de proteção, como máscaras de gás ou " -"equipamentos de turnout. Nunca se sabe." #: lang/json/snippet_from_json.py msgid "" "Out of resources? Breaking or disassembling stuff can yield interesting " "components." msgstr "" -" Sem recursos? Quebrar ou desmontar coisas pode render componentes " -"interessantes." #: lang/json/snippet_from_json.py msgid "Temperature affects the shelf life of foods. The colder, the better." msgstr "" -" Temperatura afeta o prazo de validade dos alimentos. Quanto mais frio " -"melhor." #: lang/json/snippet_from_json.py msgid "Frozen food doesn't rot, but may be inedible if not defrosted." msgstr "" -" Alimentos congelados não apodrecem, mas podem não ser comestíveis se não " -"forem descongelados." #: lang/json/snippet_from_json.py msgid "" "Some dry foods can be eaten frozen. Some foods become mushy after " "defrosting." msgstr "" -" Alguns alimentos secos podem ser comidos congelados. Alguns alimentos ficam" -" moles após o descongelamento." #: lang/json/snippet_from_json.py msgid "Thirsty on a long winter journey? Take a thermos with you." msgstr "" -" Sedento em uma longa jornada de inverno? Leve uma garrafa térmica com você." #: lang/json/snippet_from_json.py msgid "" "'Tis but a scratch?' Bandage and disinfect it anyway to speed up healing." msgstr "" -" É apenas um arranhão? Atadura e desinfectar de qualquer maneira para " -"acelerar a cicatrização." #: lang/json/snippet_from_json.py msgid "" "Broken limb pinned you down? Hospitals might have next-gen tech to get you " "going." msgstr "" -" O membro quebrado te prendeu? Os hospitais podem ter uma tecnologia de " -"última geração para você seguir em frente." #: lang/json/snippet_from_json.py msgid "" "Don't be afraid to make the game easier on yourself. Worlds can be made to " "spawn with more resources." msgstr "" -" Não tenha medo de tornar o jogo mais fácil para você. Mundos podem ser " -"criados para gerar mais recursos." #: lang/json/snippet_from_json.py msgid "" "Don't get caught with your pants down. There's no toilet paper anymore " "anyway." msgstr "" -" Não seja pego com as calças para baixo. Não há mais papel higiênico de " -"qualquer maneira." #: lang/json/snippet_from_json.py msgid "Terrain that slows you down will also slow down your enemies." -msgstr "O terreno que atrasa você também reduz a velocidade de seus inimigos." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "When the whole town is one big supermarket a shopping cart becomes your best" " friend." msgstr "" -" Quando toda a cidade é um grande supermercado, um carrinho de compras se " -"torna seu melhor amigo." #: lang/json/snippet_from_json.py msgid "" "Trying out different characters, professions, and scenarios can spice up " "your game. Roleplay!" msgstr "" -" Experimentar diferentes personagens, profissões e cenários pode incrementar" -" seu jogo. Encenação!" #: lang/json/snippet_from_json.py msgid "A survivor saved is a friend earned. Most of the time..." -msgstr "Um sobrevivente salvo é um amigo ganho. A maior parte do tempo..." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Learning how to play? Visit the keybindings menu and learn your ropes." msgstr "" -" Aprendendo a jogar? Visite o menu de atalhos de teclado e aprenda seus " -"truques." #: lang/json/snippet_from_json.py msgid "Expect the unexpected, even if it's the Spanish Inquisition." -msgstr "Espere o inesperado, mesmo que seja a Inquisição Espanhola." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "You can throw things while peeking around corners. Perfect for taking down " "gun turrets." msgstr "" -" Você pode jogar coisas enquanto espreita pelas esquinas. Perfeito para " -"derrubar torres de arma." #: lang/json/snippet_from_json.py msgid "" "Nobody told the vending machines that the world ended. Save those cash " "cards!" msgstr "" -" Ninguém disse às máquinas de venda automática que o mundo acabou. Salve " -"esses cartões de dinheiro!" #: lang/json/snippet_from_json.py msgid "" "There's got to be some cool stuff in those top-secret underground labs, " "right?" msgstr "" -" Tem que haver alguma coisa legal nesses laboratórios subterrâneos top- " -"secret, certo?" #: lang/json/snippet_from_json.py msgid "Put a funnel over a jug or barrel to collect rainwater over time." msgstr "" -" Coloque um funil sobre um jarro ou barril para coletar a água da chuva com " -"o tempo." #: lang/json/snippet_from_json.py msgid "" "The number of zombies in a city is large but finite. You can (eventually) " "kill them all." msgstr "" -" O número de zumbis em uma cidade é grande, mas finito. Você pode " -"(eventualmente) matar todos eles." #: lang/json/snippet_from_json.py msgid "" "Did you *only* take everything not nailed down? Go back for the nails!" -msgstr "Você * só * pegou tudo que não foi pregado? Volte para as unhas!" +msgstr "" #: lang/json/snippet_from_json.py msgid "You can make your own Safe Mode rules in the pause menu." msgstr "" -" Você pode criar suas próprias regras do modo de segurança no menu de pausa." #: lang/json/snippet_from_json.py msgid "The best gun in the world is useless without ammo." -msgstr "A melhor arma do mundo é inútil sem munição." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Most zombies go through cars, not around them. Remember that when running " "away." msgstr "" -" A maioria dos zumbis passa por carros, não ao redor deles. Lembre-se disso " -"quando fugir." #: lang/json/snippet_from_json.py msgid "" "If you're stuck inside with a broken leg, read some books to pass the time." msgstr "" -" Se você estiver preso com uma perna quebrada, leia alguns livros para " -"passar o tempo." #: lang/json/snippet_from_json.py msgid "Certain corpses can give you bionics if you dissect them." -msgstr "Certos cadáveres podem lhe dar biônica se você dissecá-los." +msgstr "" #: lang/json/snippet_from_json.py msgid "Don't be too greedy. Loot doesn't matter if you're dead." -msgstr "Não seja muito ganancioso. Saque não importa se você está morto." +msgstr "" #: lang/json/snippet_from_json.py msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." @@ -131848,78 +117041,73 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" -msgstr "Este é um teste do sistema de trechos de sinais" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Snippets should also support tags like , , " ", and " msgstr "" -" Snippets também devem suportar tags como , , " -" e " #: lang/json/snippet_from_json.py msgid "This should repeat the same city several times: , , " msgstr "" -" Isso deve repetir a mesma cidade várias vezes: , , " #: lang/json/snippet_from_json.py msgid "Leave No Trace." -msgstr "Não deixe nenhum rastro." +msgstr "" #: lang/json/snippet_from_json.py msgid "Plan Ahead and Prepare." -msgstr "Planeje com antecedência e prepare-se." +msgstr "" #: lang/json/snippet_from_json.py msgid "Travel and Camp on Durable Surfaces." -msgstr "Viagem e acampamento em superfícies duráveis." +msgstr "" #: lang/json/snippet_from_json.py msgid "Dispose of Waste Properly." -msgstr "Descarte o lixo adequadamente." +msgstr "" #: lang/json/snippet_from_json.py msgid "Leave What You Find." -msgstr "Deixe o que você encontrar." +msgstr "" #: lang/json/snippet_from_json.py msgid "Minimize Campfire Impacts." -msgstr "Minimize os impactos da fogueira." +msgstr "" #: lang/json/snippet_from_json.py msgid "Respect Wildlife." -msgstr "Respeite a vida selvagem." +msgstr "" #: lang/json/snippet_from_json.py msgid "Be Considerate of Other Visitors." -msgstr "Seja atencioso com outros visitantes." +msgstr "" #: lang/json/snippet_from_json.py msgid "WARNING! BEAR COUNTRY." -msgstr "AVISO! PAÍS DE URSO." +msgstr "" #: lang/json/snippet_from_json.py msgid "For hiking, skiing, and enjoying nature." -msgstr "Para caminhadas, esquiar e curtir a natureza." +msgstr "" #: lang/json/snippet_from_json.py msgid "Please stay on trail." -msgstr "Por favor, fique na trilha." +msgstr "" #: lang/json/snippet_from_json.py msgid "No motorized vehicles." -msgstr "Não há veículos motorizados." +msgstr "" #: lang/json/snippet_from_json.py msgid "DANGER. HIGH FIRE HAZARD AREA. NO OPEN FIRE. NO SMOKING." msgstr "" -" PERIGO. ÁREA DE PERIGO DE ALTO FOGO. NENHUM INCÊNDIO ABERTO. PROIBIDO " -"FUMAR." #: lang/json/snippet_from_json.py msgid "No Overnight Camping." -msgstr "Não acampar durante a noite." +msgstr "" #: lang/json/snippet_from_json.py msgid "I left my wallet in " @@ -131942,66 +117130,47 @@ msgid "" "Squirrels are pretty yummy, but if you shoot them with a high-powered gun " "you'll probably be left with no meat! Use a BB gun or maybe a .22 rifle." msgstr "" -" Os esquilos são muito gostosos, mas se você atirar neles com uma arma de " -"alta potência, você provavelmente ficará sem carne! Use uma pistola BB ou " -"talvez um rifle .22." #: lang/json/snippet_from_json.py msgid "" "Ever run into those big worm things? If you see trails of churned-up dirt, " "you can be sure they're around." msgstr "" -" Já se deparou com essas coisas grandes verme? Se você vir trilhas de " -"sujeira revolvida, pode ter certeza de que elas estão por perto." #: lang/json/snippet_from_json.py msgid "" "Try to stay on the roads as much as you can. Giant worms can't cross them!" msgstr "" -" Tente ficar nas estradas o máximo que puder. Vermes gigantes não podem " -"atravessá-los!" #: lang/json/snippet_from_json.py msgid "" "Don't relax after killing a giant worm. Little bits of them can break off " "and still attack!" msgstr "" -" Não relaxe depois de matar um verme gigante. Pequenos pedaços deles podem " -"se partir e ainda atacar!" #: lang/json/snippet_from_json.py msgid "" "If you see a big mob of zombies coming, RUN! Trying to fight them all is " "suicide unless you have a big tactical advantage." msgstr "" -" Se você vir uma grande multidão de zumbis chegando, corra! Tentar lutar " -"contra todos eles é suicídio, a menos que você tenha uma grande vantagem " -"tática." #: lang/json/snippet_from_json.py msgid "" "Watch out for those zombies that shriek; they'll let other zombies know " "where you are, and will attract them from all over." msgstr "" -" Cuidado com os zumbis que gritam; eles vão deixar os outros zumbis saberem " -"onde você está e irão atraí-los de todo lugar." #: lang/json/snippet_from_json.py msgid "" "Those acid-spitting zombies are pretty nasty, but if you're smart, you can " "get other zombies to wade through the acid." msgstr "" -" Esses zumbis cuspidores de ácido são bem desagradáveis, mas se você for " -"esperto, pode fazer com que outros zumbis percorram o ácido." #: lang/json/snippet_from_json.py msgid "" "If there's a pool of acid blocking your way, trying tossing a junk item into" " it. Eating up items will help neutralize the acid faster." msgstr "" -" Se há uma piscina de ácido bloqueando o seu caminho, tentando jogar um item" -" de lixo eletrônico nela. Comer itens ajudará a neutralizar o ácido mais " -"rapidamente." #: lang/json/snippet_from_json.py msgid "" @@ -132016,17 +117185,12 @@ msgid "" "from walls and stuff when they do... the electricity can travel along solid " "surfaces." msgstr "" -" Há esse tipo de zumbi que pode disparar raios! Fique longe de paredes e " -"coisas assim quando eles fazem ... a eletricidade pode viajar ao longo de " -"superfícies sólidas." #: lang/json/snippet_from_json.py 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 "" -" Hulks de zumbis são DESAGRADÁVEIS, mas são fáceis de ser mais espertos. Se " -"houver outros monstros entre você e eles, eles matarão o monstro por você!" #: lang/json/snippet_from_json.py msgid "" @@ -132034,9 +117198,6 @@ msgid "" "fast as hell, but pretty dumb; they'll try to smash through obstacles rather" " than going around, and that slows them down a lot." msgstr "" -" Se você topar com um hulk zumbi, provavelmente é uma boa ideia correr. Eles" -" são rápidos como o inferno, mas muito burros; eles vão tentar quebrar " -"obstáculos ao invés de ir ao redor, e isso os atrapalha muito." #: lang/json/snippet_from_json.py msgid "" @@ -132050,8 +117211,6 @@ msgid "" "Try not to kill a boomer if it's standing right next to you. They tend to " "explode when they die, and that pink goop will get all over you." msgstr "" -" Tente não matar um filho da puta se ele estiver bem ao seu lado. Eles " -"tendem a explodir quando morrem, e aquele rosado vai acabar com você." #: lang/json/snippet_from_json.py msgid "" @@ -132073,9 +117232,6 @@ msgid "" "scratch marks. You've got to shatter those bones with a hammer or " "something." msgstr "" -" Não tente pegar um esqueleto com uma arma branca ... você só vai deixar " -"marcas de arranhões. Você tem que quebrar esses ossos com um martelo ou algo" -" assim." #: lang/json/snippet_from_json.py msgid "" @@ -132089,25 +117245,18 @@ 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 "" -" Eu tenho um amigo que estava dormindo nesta cabana na floresta, quando de " -"repente ele acordou com árvores e trepadeiras crescendo através do chão e " -"das paredes! Ele disse que era algum tipo de besta enorme árvore ..." #: 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 "" -" Oh cara, você foi para os antigos sistemas de metrô? Eu tomaria cuidado ..." -" tem essas coisas lá embaixo que são como zumbis, mas mais difíceis." #: lang/json/snippet_from_json.py msgid "" "There's snakes down in most of the old sewer systems. They're slow on land," " but boy, those suckers can swim fast!" msgstr "" -" Há cobras na maioria dos antigos sistemas de esgoto. Eles são lentos em " -"terra, mas rapaz, esses otários podem nadar rápido!" #: lang/json/snippet_from_json.py msgid "" @@ -132115,9 +117264,6 @@ msgid "" "reason too--watch out for those fish. Those suckers are fast, and vicious " "too!" msgstr "" -" Se você está pensando em vagar pelos esgotos - não que você também tenha um" -" motivo - cuidado com esses peixes. Esses otários são rápidos e cruéis " -"também!" #: lang/json/snippet_from_json.py msgid "" @@ -132125,17 +117271,12 @@ msgid "" "faction's controlling them--maybe the military. All I know is, I don't want" " them taking my picture..." msgstr "" -" Você viu aqueles óculos voando por aí? É difícil dizer, mas alguma facção " -"os controla - talvez os militares. Tudo o que sei é que não quero que tirem " -"minha foto ..." #: lang/json/snippet_from_json.py msgid "" "Ever go toe-to-toe with a manhack? Tiny little helicopters covered in " "knives. Best be packing a shotgun!" msgstr "" -" Sempre vai de igual para igual com um manhack? Pequenos helicópteros " -"cobertos de facas. Melhor estar empacotando uma espingarda!" #: lang/json/snippet_from_json.py msgid "" @@ -132143,9 +117284,6 @@ msgid "" "then pop up to stab ya. Still, you're safe from them if you stay on " "pavement..." msgstr "" -" Eles são raros, mas os molebots são coisas desagradáveis. Eles atravessaram" -" o chão e depois explodiram para te esfaquear. Ainda assim, você está seguro" -" deles se você ficar na calçada ..." #: lang/json/snippet_from_json.py msgid "" @@ -132158,17 +117296,12 @@ msgid "" "Standing behind a window is a good tactic. It takes zombies a long time to " "crawl through, giving you lots of opportunities to hit them." msgstr "" -" De pé atrás de uma janela é uma boa tática. Demora muito tempo para os " -"zumbis rastejarem, dando-lhe muitas oportunidades para acertá-los." #: lang/json/snippet_from_json.py 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 "" -" Os zumbis são muito burros ... caramba, a maioria dos monstros é! Se você " -"conseguir acender um fogo entre você e eles, eles simplesmente passarão por " -"ele." #: lang/json/snippet_from_json.py msgid "" @@ -132176,9 +117309,6 @@ msgid "" "possible, but don't except as a last resort. It's inaccurate and wastes " "ammo." msgstr "" -" Eu sei que é tentador simplesmente ir para o modo automático e descarregar " -"o maior número possível de balas, mas não, exceto como último recurso. É " -"impreciso e desperdiça munição." #: lang/json/snippet_from_json.py msgid "" @@ -132186,17 +117316,12 @@ msgid "" " your gun. Be sure to aim at the zombie furthest away; you'll hit more of " "them that way." msgstr "" -" Se houver um monte de zumbis em linha reta, tente descarregar uma explosão " -"da sua arma. Certifique-se de mirar no zumbi mais distante; você vai bater " -"mais deles assim." #: lang/json/snippet_from_json.py msgid "" "If you shoot a zombie, but don't quite kill it, try to finish it off with a " "punch or something instead of wasting a bullet." msgstr "" -" Se você atirar em um zumbi, mas não matá-lo completamente, tente acabar com" -" um soco ou algo assim, em vez de desperdiçar uma bala." #: lang/json/snippet_from_json.py msgid "" @@ -132204,9 +117329,6 @@ msgid "" " you down it, try to wound the guy in front badly. He'll start moving slow " "and cause a serious traffic jam!" msgstr "" -" Se você está em um corredor ou algo assim, e há um monte de zumbis te " -"perseguindo, tente ferir o cara na frente. Ele vai começar a se mover " -"devagar e causar um engarrafamento sério!" #: lang/json/snippet_from_json.py msgid "" @@ -132215,18 +117337,12 @@ msgid "" "alcohol on fire. Then duck out the back door, and watch the zombies run " "into a burning building!" msgstr "" -" Aqui está um truque para cuidar de um enorme enxame de zumbis perseguindo " -"você: dirija-se a uma loja de bebidas, atire no máximo de garrafas que puder" -" e acenda o álcool. Então saia pela porta dos fundos e veja os zumbis " -"correrem para um prédio em chamas!" #: lang/json/snippet_from_json.py msgid "" "Sledge hammers may seem like a great weapon, but swinging them is really " "slow, and you won't do much damage unless you're really strong." msgstr "" -" Marretas podem parecer uma grande arma, mas balançar é muito lento, e você " -"não fará muito dano a menos que você seja realmente forte." #: lang/json/snippet_from_json.py msgid "" @@ -132234,9 +117350,6 @@ msgid "" "down a zombie brute with one! Of course, if you can find a katana, that " "might be even better..." msgstr "" -" Para uma boa arma corpo-a-corpo, você não pode vencer um facão. Eu vi um " -"cara derrubar um bruto zumbi com um! Claro, se você puder encontrar uma " -"katana, isso pode ser ainda melhor ..." #: lang/json/snippet_from_json.py msgid "" @@ -132251,9 +117364,6 @@ msgid "" " over someone's head, the shattering glass will hurt them extra. Of course," " it might hurt your hands, too..." msgstr "" -" Você sabe, uma garrafa de vidro pode fazer uma boa arma em uma pitada. Se " -"você quebrá-lo sobre a cabeça de alguém, o vidro quebrando os ferirá extra. " -"Claro, isso pode machucar suas mãos também ..." #: lang/json/snippet_from_json.py msgid "" @@ -132268,8 +117378,6 @@ 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 "" -" As armas do BB podem parecer uma piada, mas elas são usadas. Eles são bons " -"para caçar pequenos animais ou para conhecer o básico dos rifles." #: lang/json/snippet_from_json.py msgid "" @@ -132277,9 +117385,6 @@ msgid "" "retrieve the bolt after shooting it, so running out of ammo is less of a " "concern." msgstr "" -" Bestas são uma ótima arma para uso a longo prazo. Na maioria das vezes, " -"você pode recuperar o parafuso depois de dispará-lo, assim ficar sem munição" -" é menos preocupante." #: lang/json/snippet_from_json.py msgid "" @@ -132299,9 +117404,6 @@ msgid "" "It's good to keep a pistol handy, in case your main gun runs out of ammo or " "something. They're also better than most guns at short range." msgstr "" -" É bom manter uma pistola à mão, caso sua arma principal fique sem munição " -"ou algo assim. Eles também são melhores que a maioria das armas a curta " -"distância." #: lang/json/snippet_from_json.py msgid "" @@ -132309,18 +117411,12 @@ msgid "" "Just remember that they're noisy as hell, and you might end up attracting " "more than you kill." msgstr "" -" Espingardas são legais; você pode tirar muitos malucos com um único tiro. " -"Basta lembrar que eles são barulhentos como o inferno, e você pode acabar " -"atraindo mais do que você mata." #: lang/json/snippet_from_json.py msgid "" "A good submachine gun can't be beat. Most of them use common ammo, they're " "good at short and long range, and you can burst-fire if you need to!" msgstr "" -" Uma boa metralhadora não pode ser batida. A maioria deles usa munição " -"comum, eles são bons a curto e longo alcance, e você pode explodir se " -"precisar!" #: lang/json/snippet_from_json.py msgid "" @@ -132328,17 +117424,12 @@ msgid "" "them don't carry many rounds. Keep a pistol as a sidearm if you use a " "rifle." msgstr "" -" Espingardas de caça são ótimas a longa distância, mas sugam de perto. Além " -"disso, a maioria deles não tem muitas rodadas. Mantenha uma pistola como uma" -" arma se você usar um rifle." #: lang/json/snippet_from_json.py msgid "" "You know, you don't have to go full auto with an assault rifle. Firing " "single shots is more accurate and efficient!" msgstr "" -" Você sabe, você não precisa ir de carro com um fuzil de assalto. Disparar " -"disparos únicos é mais preciso e eficiente!" #: lang/json/snippet_from_json.py msgid "" @@ -132346,9 +117437,6 @@ msgid "" "the perfect weapon... quiet, accurate, and deadly. But I've never found " "one, and I bet ammo is wicked scarce..." msgstr "" -" Eu vi alguns caras correndo com pistolas a laser. Eles parecem a arma " -"perfeita ... silenciosa, precisa e mortal. Mas eu nunca encontrei um, e " -"aposto que a munição é muito ruim ..." #: lang/json/snippet_from_json.py msgid "" @@ -132356,17 +117444,12 @@ msgid "" "sneakers, for running extra fast, or boots for durability. Depends on your " "style, I guess." msgstr "" -" Quando se trata de calçado, você tem duas opções básicas, tanto quanto eu " -"vejo; tênis, para correr mais rápido, ou botas para maior durabilidade. " -"Depende do seu estilo, eu acho." #: lang/json/snippet_from_json.py msgid "" "You don't really need to wear gloves most of the time, but once in a while " "they'll really come in handy." msgstr "" -" Você não precisa usar luvas a maior parte do tempo, mas de vez em quando " -"elas realmente são úteis." #: lang/json/snippet_from_json.py msgid "" @@ -132379,24 +117462,18 @@ msgid "" "It's good to keep a filter mask or gas mask handy. You never know when " "you'll have to go into a smoke-filled room or something." msgstr "" -" É bom manter uma máscara de filtro ou uma máscara de gás à mão. Você nunca " -"sabe quando vai ter que ir a uma sala cheia de fumaça ou algo assim." #: lang/json/snippet_from_json.py 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 "" -" Basicamente, não há razão para não usar óculos de segurança ... nada é pior" -" do que bater nos olhos e ficar cego por alguns segundos." #: lang/json/snippet_from_json.py msgid "" "Ski goggles are a great choice if you're worried about getting stuff in your" " eyes. Perfect for dealing with boomers!" msgstr "" -" Óculos de esqui são uma ótima opção se você está preocupado em conseguir " -"coisas em seus olhos. Perfeito para lidar com boomers!" #: lang/json/snippet_from_json.py msgid "" @@ -132405,18 +117482,12 @@ msgid "" "types of zombies are camouflaged against it, and require proper light to be " "visible." msgstr "" -" Se você receber um par de óculos de visão noturna, segure-os! Uma lanterna " -"lhe dará, mas com óculos você pode ser sorrateiro. Cuidado com o fato de que" -" alguns tipos de zumbis são camuflados contra ele e exigem que a luz " -"apropriada seja visível." #: lang/json/snippet_from_json.py msgid "" "I know they look dumb, but wearing a fanny pack gives you that extra bit of " "storage without encumbering you." msgstr "" -" Eu sei que eles parecem burros, mas usar uma mochila lhe dá um pouco mais " -"de armazenamento sem sobrecarregar você." #: lang/json/snippet_from_json.py msgid "" @@ -132430,16 +117501,12 @@ msgid "" "Don't underestimate a good book. Not only will it keep you company on " "lonely nights, but you can learn a hell of a lot from some of them." msgstr "" -" Não subestime um bom livro. Não só lhe fará companhia em noites solitárias," -" mas também poderá aprender muito com algumas delas." #: lang/json/snippet_from_json.py msgid "" "It's a good idea to carry around a couple of empty bottles. You can fill " "them up with water, gasoline, or whatever!" msgstr "" -" É uma boa ideia carregar algumas garrafas vazias. Você pode enchê-los com " -"água, gasolina ou o que for!" #: lang/json/snippet_from_json.py msgid "" @@ -132472,32 +117539,24 @@ msgid "" "If you need a bunch of rags for making Molotov cocktails, take a pair of " "scissors to an old t-shirt or something." msgstr "" -" Se você precisar de um monte de trapos para fazer coquetéis Molotov, leve " -"uma tesoura para uma camiseta velha ou algo assim." #: lang/json/snippet_from_json.py msgid "" "Carrying a lighter is something all veterans do. It takes up almost no " "space, and can easily save your life." msgstr "" -" Carregar um isqueiro é algo que todos os veteranos fazem. Não ocupa quase " -"nenhum espaço e pode facilmente salvar sua vida." #: lang/json/snippet_from_json.py msgid "" "If you can spare the space, you might want to carry a fire extinguisher " "along. Nothing is worse than being trapped in a burning building!" msgstr "" -" Se você pode poupar o espaço, você pode querer levar um extintor de " -"incêndio junto. Nada é pior do que ficar preso em um prédio em chamas!" #: lang/json/snippet_from_json.py msgid "" "Crowbars not only make a pretty good weapon, they're also useful for opening" " locked doors and lifting manhole covers." msgstr "" -" As barras de braço não são apenas uma arma muito boa, elas também são úteis" -" para abrir portas trancadas e levantar tampas de bueiros." #: lang/json/snippet_from_json.py msgid "" @@ -132511,16 +117570,12 @@ msgid "" "A chainsaw may seem like a great weapon, but remember that they're slow, " "unwieldy, and very noisy." msgstr "" -" Uma motosserra pode parecer uma grande arma, mas lembre-se de que são " -"lentos, desajeitados e muito barulhentos." #: lang/json/snippet_from_json.py msgid "" "Bubblewrap is pretty harmless, but setting it up around you before going to " "sleep will keep you from waking up to a zombie punching you." msgstr "" -" O Bubblewrap é bastante inofensivo, mas configurá-lo em volta de você antes" -" de ir dormir o impedirá de acordar com um zumbi te socando." #: lang/json/snippet_from_json.py msgid "" @@ -132528,30 +117583,22 @@ msgid "" "doorway, the first zombie through will get stuck, and the rest won't be able" " to get past!" msgstr "" -" Armadilhas para ursos são uma boa maneira de cobrir uma fuga. Se você " -"colocar um em uma porta, o primeiro zumbi passará e o resto não conseguirá " -"passar!" #: lang/json/snippet_from_json.py msgid "" "Smoke grenades aren't really offensive weapons, but they'll cover up your " "scent and hide you from view--perfect for making a quick escape." msgstr "" -" Granadas de fumaça não são realmente armas ofensivas, mas elas encobrem seu" -" cheiro e o escondem da vista - perfeito para fazer uma fuga rápida." #: lang/json/snippet_from_json.py msgid "Don't use Molotovs indoors. Especially in a liquor store." msgstr "" -"Não use Molotovs dentro de casa. Especialmente em uma loja de bebidas." #: lang/json/snippet_from_json.py msgid "" "If you're going to be playing with Molotov cocktails around a gas station, " "just make sure you're a long way from those pumps." msgstr "" -" Se você vai brincar com coquetéis Molotov em um posto de gasolina, " -"certifique-se de estar longe dessas bombas." #: lang/json/snippet_from_json.py msgid "" @@ -132559,18 +117606,12 @@ msgid "" "fires blocking off the tunnel in both directions and sleeping between them." " He wound up asphyxiating on the smoke." msgstr "" -" Uma vez eu conheci um cara que imaginou que ele sobreviveria a uma noite no" -" metrô, colocando fogo bloqueando o túnel em ambas as direções e dormindo " -"entre eles. Ele acabou asfixiando a fumaça." #: lang/json/snippet_from_json.py msgid "" "Don't light a Molotov until you're ready to throw it. Not only can they go " "out, but if you accidentally drop it or something, you're in trouble." msgstr "" -" Não acenda um Molotov até que esteja pronto para jogá-lo. Não só eles podem" -" sair, mas se você acidentalmente derrubá-lo ou algo assim, você está em " -"apuros." #: lang/json/snippet_from_json.py msgid "" @@ -132578,9 +117619,6 @@ msgid "" "or grenades. Accidentally dropping them when you meant to throw them could " "be deadly." msgstr "" -" Se você é fraco ou desajeitado, pode ser uma boa idéia não mexer com " -"Molotovs ou granadas. Acidentalmente soltá-los quando você pretendia jogá- " -"los poderia ser mortal." #: lang/json/snippet_from_json.py msgid "" @@ -132593,25 +117631,18 @@ msgid "" "Be careful eating wild mushrooms. Some are poisonous, and others can make " "you hallucinate." msgstr "" -" Tenha cuidado ao comer cogumelos silvestres. Alguns são venenosos e outros " -"podem fazer você alucinar." #: lang/json/snippet_from_json.py msgid "" "Try to go around swamps, if you can. Some of them have sinkholes that can " "pull you right underground." msgstr "" -" Tente andar pelos pântanos, se puder. Alguns deles têm buracos que podem te" -" puxar para o subsolo." #: lang/json/snippet_from_json.py msgid "" "I heard about this group that raided a bee hive a while ago. Everyone got " "massacred but one, and he came home with this weird, magic honey stuff." msgstr "" -" Eu ouvi sobre esse grupo que invadiu uma colméia há um tempo atrás. Todo " -"mundo foi massacrado, mas só um, e ele voltou para casa com esse estranho e " -"mel mágico." #: lang/json/snippet_from_json.py msgid "" @@ -132632,8 +117663,6 @@ msgid "" "While there's not much to loot, gas stations are a good source for gasoline," " to power tools or to make Molotov cocktails." msgstr "" -" Enquanto não há muito para saquear, postos de gasolina são uma boa fonte de" -" gasolina, para ferramentas de poder ou para fazer coquetéis Molotov." #: lang/json/snippet_from_json.py msgid "" @@ -132647,32 +117676,24 @@ msgid "" "I know grocery stores and stuff are full of fruit, but be careful, it's " "probably rotten." msgstr "" -" Eu sei que mercearias e coisas estão cheias de frutas, mas cuidado, " -"provavelmente está podre." #: lang/json/snippet_from_json.py msgid "" "Next time you visit a grocery store, load up on canned goods. They never go" " bad!" msgstr "" -" Da próxima vez que você visitar uma mercearia, faça um carregamento de " -"produtos enlatados. Eles nunca vão mal!" #: lang/json/snippet_from_json.py msgid "" "I've found more good weapons in hardware stores than anywhere else. Except " "gun stores, of course." msgstr "" -" Eu encontrei mais boas armas em lojas de ferragens do que em qualquer outro" -" lugar. Exceto lojas de armas, é claro." #: lang/json/snippet_from_json.py msgid "" "Liquor stores are a great place to pick up non-alcoholic beverages, too. " "Not that I mind alcohol!" msgstr "" -" As lojas de bebidas alcoólicas também são um ótimo lugar para comprar " -"bebidas não-alcoólicas. Não que eu me importe com álcool!" #: lang/json/snippet_from_json.py msgid "" @@ -132686,26 +117707,18 @@ msgid "" " Walls on four sides, far from the store's entrance, a corridor for easy " "defense... it's perfect!" msgstr "" -" Passei muitas noites nos vestiários no fundo das lojas de roupas. Paredes " -"em quatro lados, longe da entrada da loja, um corredor para facilitar a " -"defesa ... é perfeito!" #: lang/json/snippet_from_json.py msgid "" "If you're getting chased by a hoard of zombies, try ducking into the subways" " and traveling a block or two, then coming back up." msgstr "" -" Se você está sendo perseguido por um tesouro de zumbis, tente entrar no " -"metrô e viajar um ou dois quarteirões, depois voltando para cima." #: lang/json/snippet_from_json.py msgid "" "Have you seen those weird science labs out in the middle of nowhere? I " "think you need some kind of special ID card to get in." msgstr "" -" Você viu aqueles estranhos laboratórios de ciência no meio do nada? Eu acho" -" que você precisa de algum tipo de carteira de identidade especial para " -"entrar." #: lang/json/snippet_from_json.py msgid "" @@ -132720,35 +117733,24 @@ msgid "" "worth the risk. I doubt they have any loot beyond some scraps of food, you " "know?" msgstr "" -" Pensei em invadir um formigueiro antes, mas percebi que não valia a pena o " -"risco. Eu duvido que eles tenham algum saque além de alguns restos de " -"comida, sabe?" #: lang/json/snippet_from_json.py msgid "" "This guy I know was walking through the subway when he came across a giant " "rift in the earth, with lava far below. Weird, huh?" msgstr "" -" Esse cara que eu conheço andava pelo metrô quando se deparou com uma fenda " -"gigante na terra, com lava bem abaixo. Estranho, né?" #: lang/json/snippet_from_json.py msgid "" "In a lot of places, there's little hallways connecting the subways with the " "sewers, with heavy metal doors on both ends. It's a perfect place to sleep!" msgstr "" -" Em muitos lugares, há pequenos corredores conectando o metrô com os " -"esgotos, com portas pesadas de metal nas duas extremidades. É um lugar " -"perfeito para dormir!" #: lang/json/snippet_from_json.py msgid "" "Be careful of drinking water from rivers and stuff, it's a good way to get " "sick. But if you have a water purifier, it'll make it safe." msgstr "" -" Tenha cuidado com a água potável dos rios e outras coisas, é uma boa " -"maneira de ficar doente. Mas se você tiver um purificador de água, ele " -"ficará seguro." #: lang/json/snippet_from_json.py msgid "" @@ -132756,9 +117758,6 @@ msgid "" "one! However, I heard they won't work if you don't bring anesthetics to put" " you in a sleep." msgstr "" -" Autodocs são provavelmente sua melhor aposta para instalar a biônica - se " -"você puder encontrar uma! No entanto, ouvi dizer que eles não funcionam se " -"você não levar anestésicos para colocá-lo em um sono." #: lang/json/snippet_from_json.py msgid "" @@ -132766,49 +117765,38 @@ msgid "" "scary screams from the ventilation shafts of mines and labs. Very " "unsettling screams." msgstr "" -" Desconfie de qualquer coisa mais profunda do que o seu porão médio. Algumas" -" pessoas ouviram gritos assustadores nos poços de ventilação de minas e " -"laboratórios. Gritos muito inquietantes." #: lang/json/snippet_from_json.py msgid "A screwdriver a day keeps the scurvy away!" -msgstr "Uma chave de fenda por dia mantém o escorbuto longe!" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Hungrier, than usual? Natural oils can help. Not tasty at all, but who " "cares when eating your leg is the second option?" msgstr "" -" Mais fome do que o habitual? Óleos naturais podem ajudar. Não é nada " -"gostoso, mas quem se importa quando comer sua perna é a segunda opção?" #: 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 "" -" Terreno pode virar a maré de uma batalha, certifique-se de usá-lo contra " -"seus inimigos, para não ser usado contra você." #: 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 a gas mask with you." msgstr "" -" As pessoas que passavam pela mina diziam algo sobre mau cheiro. Se você " -"planeja uma visita lá, considere levar uma máscara de gás com você." #: lang/json/snippet_from_json.py msgid "Knowledge is power. Seriously, just pick up a book." -msgstr "Conhecimento é poder. Sério, apenas pegue um livro." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Nothing can kill you if everything is already dead. Well, except cold, " "hunger, and… never mind." msgstr "" -" Nada pode te matar se tudo já estiver morto. Bem, exceto frio, fome e… não " -"importa." #: lang/json/snippet_from_json.py msgid "" @@ -132816,66 +117804,48 @@ msgid "" "walls, and dirt alike. I'd consider it a fable, but I've seen things, and " "can't just say it's a lie." msgstr "" -" Eu conheci uma menina que insistiu que ela viu um tubarão terrestre chato " -"através de rocha, paredes e sujeira igualmente. Eu considero isso uma " -"fábula, mas eu vi coisas, e não posso simplesmente dizer que é uma mentira." #: lang/json/snippet_from_json.py msgid "" "Boil first, then drink. Ten men caravan once drank from a spring, and they " "are now known as a three man caravan." msgstr "" -" Ferva primeiro e depois beba. Uma caravana de dez homens uma vez bebeu de " -"uma fonte e agora eles são conhecidos como uma caravana de três homens." #: lang/json/snippet_from_json.py msgid "" "I've once seen a full duffel bag pass hands five times in a week. Having a " "lot of stuff is a moot point if you can't run from zombies." msgstr "" -" Eu já vi uma mochila cheia passar as mãos cinco vezes em uma semana. Ter um" -" monte de coisas é um ponto discutível se você não pode fugir de zumbis." #: lang/json/snippet_from_json.py msgid "" "Tim says you can drive a car through a horde of zombies. Tim is now a " "zombie. Any questions?" msgstr "" -" Tim diz que você pode dirigir um carro através de uma horda de zumbis. Tim " -"agora é um zumbi. Alguma pergunta?" #: lang/json/snippet_from_json.py 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 "" -" Eles disseram: vá solar, salve o meio ambiente e você mesmo. Bem ... não há" -" ambiente para salvar agora, mas ainda é possível salvar a si mesmo, eu " -"acho." #: lang/json/snippet_from_json.py msgid "" "If you can't find a knife try smashing potted plants. It just might give " "you everything you need to make one." msgstr "" -" Se você não consegue encontrar uma faca tente esmagar plantas em vasos. " -"Pode dar tudo que você precisa para fazer um." #: lang/json/snippet_from_json.py msgid "" "What's the difference between a good and a bad choke point? The good one " "has another back door behind you." msgstr "" -" Qual é a diferença entre um bom e um mau ponto de estrangulamento? O bom " -"tem outra porta dos fundos atrás de você." #: lang/json/snippet_from_json.py msgid "" "So, methinks: if you could convince the cop-bots that you are their " "superior..." msgstr "" -" Então, pensa: se você pudesse convencer os policiais de que você é superior" -" ..." #: lang/json/snippet_from_json.py msgid "" @@ -132889,9 +117859,6 @@ 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 "" -" Um ferro de solda pode ser o melhor amigo de uma mecânica aspirante. Você " -"também pode cauterizar uma ferida, mas como muitas pessoas morreram como " -"resultado desse tratamento, acho que é um último recurso." #: lang/json/snippet_from_json.py msgid "" @@ -132899,9 +117866,6 @@ msgid "" "is a way to get them from places other than ransacked shops. Maybe that " "explains those cut-up bodies I've seen around." msgstr "" -" Eu vi algumas pessoas correndo com CBMs recém-instalados. Isso significa " -"que há uma maneira de obtê-los de lugares que não sejam lojas saqueadas. " -"Talvez isso explique aqueles corpos cortantes que eu vi por aí." #: lang/json/snippet_from_json.py msgid "" @@ -132909,9 +117873,6 @@ msgid "" "heart for learning cooking I guess I'd be able to diversify my food without " "sacrificing its shelf life." msgstr "" -" Estou farto de carne defumada, mas dura tanto tempo. Bem ... se eu tivesse " -"mais coração para aprender a cozinhar acho que seria capaz de diversificar " -"minha comida sem sacrificar sua vida útil." #: lang/json/snippet_from_json.py msgid "" @@ -132919,9 +117880,6 @@ msgid "" "burning down a building to smoke few hordes is ok, but burning a whole town " "with all the loot certainly is not." msgstr "" -" Joe complicado foi enforcado por suas maneiras criativas de matar zumbis. " -"Sim, queimar um prédio para fumar poucas hordas é bom, mas queimar uma " -"cidade inteira com todo o saque certamente não é." #: lang/json/snippet_from_json.py msgid "" @@ -132935,8 +117893,6 @@ msgid "" "A friend is a second mouth to fill, but when it comes to work four hands are" " always better than two." msgstr "" -" Um amigo é uma segunda boca para encher, mas quando se trata de trabalhar, " -"quatro mãos são sempre melhores que duas." #: lang/json/snippet_from_json.py msgid "" @@ -132944,18 +117900,12 @@ msgid "" " sorry ass away from the horde, with nothing more but some white powder I " "got from that zombie. Saved me that time." msgstr "" -" Eu fui contra as drogas até que eu quase fui morto por um zumbi e estava " -"puxando minha bunda para longe da horda, com nada além de um pó branco que " -"eu peguei daquele zumbi. Me salvou daquela vez." #: lang/json/snippet_from_json.py msgid "" "Not sure if Mike is sane any more. He was unfortunate enough to be driven " "in to a school one time. This experience broke more than his ribs then." msgstr "" -" Não tenho certeza se Mike é mais são. Ele teve a infelicidade de ser levado" -" a uma escola uma vez. Esta experiência quebrou mais do que suas costelas " -"então." #: lang/json/snippet_from_json.py msgid "" @@ -132963,21 +117913,16 @@ msgid "" "yet, run some more. There is no such thing as excess space between you and " "a stick of dynamite." msgstr "" -" Um pensamento sobre explosivos. Se você ainda pode correr e não foi boom " -"ainda, corra mais um pouco. Não existe excesso de espaço entre você e um " -"dinamite." #: lang/json/snippet_from_json.py msgid "Avoid using launchers in narrow hallways, you might miss." -msgstr "Evite usar lançadores em corredores estreitos, você pode perder." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Met a mad chemist once. She made a battery from a potato... or was it " "lemon?" msgstr "" -" Conheci um químico louco uma vez. Ela fez uma bateria de batata ... ou foi " -"limão?" #: lang/json/snippet_from_json.py msgid "" @@ -132999,8 +117944,6 @@ msgid "" "I hear there's strange big berries around, but why don't I hear first hand " "if they are filling for their size or not?" msgstr "" -" Ouvi dizer que há bagas grandes e estranhas por perto, mas por que não ouço" -" em primeira mão se elas estão preenchendo seu tamanho ou não?" #: lang/json/snippet_from_json.py msgid "" @@ -133266,590 +118209,580 @@ msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "asshat" -msgstr "asshat" +msgstr "" #: lang/json/snippet_from_json.py msgid "asswipe" -msgstr "asswipe" +msgstr "" #: lang/json/snippet_from_json.py msgid "bag of shit" -msgstr "saco de merda" +msgstr "" #: lang/json/snippet_from_json.py msgid "bastard" -msgstr "Desgraçado" +msgstr "" #: lang/json/snippet_from_json.py msgid "blockhead" -msgstr "cabeça de bloco" +msgstr "" #: lang/json/snippet_from_json.py msgid "chump" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "clown" -msgstr "palhaço" +msgstr "" #: lang/json/snippet_from_json.py msgid "cretin" -msgstr "cretino" +msgstr "" #: lang/json/snippet_from_json.py msgid "degenerate" -msgstr "degenerar" +msgstr "" #: lang/json/snippet_from_json.py msgid "dick" -msgstr "pinto" +msgstr "" #: lang/json/snippet_from_json.py msgid "dipshit" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "douchebag" -msgstr "babaca" +msgstr "" #: lang/json/snippet_from_json.py msgid "dumbass" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "dumb " -msgstr "idiota " +msgstr "" #: lang/json/snippet_from_json.py msgid "fool" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "freak" -msgstr "aberração" +msgstr "" #: lang/json/snippet_from_json.py msgid "goon" -msgstr "continue" +msgstr "" #: lang/json/snippet_from_json.py msgid "half-eaten " -msgstr "meio comido " +msgstr "" #: lang/json/snippet_from_json.py msgid "idiot" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "imbecile" -msgstr "imbecil" +msgstr "" #: lang/json/snippet_from_json.py msgid "jackass" -msgstr "burro" +msgstr "" #: lang/json/snippet_from_json.py msgid "moron" -msgstr "Idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "nitwit" -msgstr "imbecil" +msgstr "" #: lang/json/snippet_from_json.py msgid "piece of an ass" -msgstr "pedaço de uma bunda" +msgstr "" #: lang/json/snippet_from_json.py msgid "piece of shit" -msgstr "pedaço de merda" +msgstr "" #: lang/json/snippet_from_json.py msgid "punk" -msgstr "punk" +msgstr "" #: lang/json/snippet_from_json.py msgid "scumbag" -msgstr "Desprezível" +msgstr "" #: lang/json/snippet_from_json.py msgid "shit-brained " -msgstr "com cabeça de merda " +msgstr "" #: lang/json/snippet_from_json.py msgid "shit-eater" -msgstr "comedor de merda" +msgstr "" #: lang/json/snippet_from_json.py msgid "shitass" -msgstr "shitass" +msgstr "" #: lang/json/snippet_from_json.py msgid "shitbag" -msgstr "merda" +msgstr "" #: lang/json/snippet_from_json.py msgid "shitface" -msgstr "merda" +msgstr "" #: lang/json/snippet_from_json.py msgid "son of a " -msgstr "filho de uma " +msgstr "" #: lang/json/snippet_from_json.py msgid "stinky " -msgstr "fedido " +msgstr "" #: lang/json/snippet_from_json.py msgid "stupidass" -msgstr "estupidez" +msgstr "" #: lang/json/snippet_from_json.py msgid "stupid " -msgstr "estúpido " +msgstr "" #: lang/json/snippet_from_json.py msgid "swine" -msgstr "suína" +msgstr "" #: lang/json/snippet_from_json.py msgid "zombie food" -msgstr "comida zumbi" +msgstr "" #: lang/json/snippet_from_json.py msgid "loser" -msgstr "fracassado" +msgstr "" #: lang/json/snippet_from_json.py msgid "dickhead" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "asshole" -msgstr "Idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "fucker" -msgstr "Idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "sucker" -msgstr "otário" +msgstr "" #: lang/json/snippet_from_json.py msgid "fuckwad" -msgstr "fuckwad" +msgstr "" #: lang/json/snippet_from_json.py msgid "jerk" -msgstr "empurrão" +msgstr "" #: lang/json/snippet_from_json.py msgid "motherfucker" -msgstr "filho da puta" +msgstr "" #: lang/json/snippet_from_json.py msgid "shithead" -msgstr "shithead" +msgstr "" #: lang/json/snippet_from_json.py msgid " if I won't get some water soon." -msgstr " se eu não vou pegar um pouco de água em breve." +msgstr "" #: lang/json/snippet_from_json.py msgid "Can you get me some water, ?" -msgstr "Você pode me pegar um pouco de água, ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Do you have something to drink, ?" -msgstr "Você tem algo para beber? ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I need some water!" -msgstr "eu preciso de algum agua!" +msgstr "" #: lang/json/snippet_from_json.py msgid "My mouth is dry." -msgstr "Minha boca está seca." +msgstr "" #: lang/json/snippet_from_json.py msgid "When we drinkin'?" -msgstr "Quando bebemos?" +msgstr "" #: lang/json/snippet_from_json.py msgid "When was the last time I had a drink?" -msgstr "Quando foi a última vez que tomei uma bebida?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm parched, I need to drink something." -msgstr "Estou ressecada, preciso beber alguma coisa." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm thirsty..." -msgstr "Estou com sede..." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm thirsty." -msgstr "Eu estou com sede." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm thirsty." -msgstr "Eu estou com sede." +msgstr "" #: lang/json/snippet_from_json.py msgid "Can you give me something to drink, ?" -msgstr "Você pode me dar algo para beber? ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I need to get some water." -msgstr "Eu precisa pegar um pouco de água." +msgstr "" #: lang/json/snippet_from_json.py msgid " if I don't drink something." -msgstr " se eu não bebo alguma coisa." +msgstr "" #: lang/json/snippet_from_json.py msgid "Water... Is there an oasis nearby?" -msgstr "Água ... Existe um oásis nas proximidades?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Did you know that lack of water kills faster than lack of rest?" msgstr "" -" Você sabia que a falta de água mata mais rápido do que a falta de descanso?" #: lang/json/snippet_from_json.py msgid "" "Yeah sure, can't help but notice you got beer with you! Let's crack a cold " "one and chat, , how goes it?" msgstr "" -" Sim, claro, não posso deixar de notar que você tem cerveja com você! Vamos " -"quebrar um frio e conversar , como vão as coisas?" #: lang/json/snippet_from_json.py msgid "" "Oh definitely, how about one of those beers I see on you? What's up anyway?" msgstr "" -" Oh, definitivamente, que tal uma daquelas cervejas que vejo em você? O que " -"há de qualquer maneira?" #: lang/json/snippet_from_json.py msgid "" "Yeah you share those beers I see you hoarding and then we chat all you like!" " Only joking, what's up ?" msgstr "" -" Sim, você compartilha essas cervejas Eu vejo você acumulando e depois nós " -"conversamos tudo que você gosta! Apenas brincando, o que está acontecendo " -" ?" #: lang/json/snippet_from_json.py msgid "Hey, sure thing, , I need a break anyway, how are you?" msgstr "" -" Ei, claro, , Eu preciso de um descanso de qualquer maneira, como " -"você está?" #: lang/json/snippet_from_json.py msgid "Yeah OK, , how's it going?" -msgstr "Sim, ok, , como tá indo?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Sure, let's shoot the shit! You OK?" -msgstr "Claro, vamos atirar na merda! Você está bem?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Why not? How you doing?" -msgstr "Por que não? Como vai?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm OK with that, what's up?" -msgstr "Eu estou bem com isso, tudo bem?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I can spare a few minutes, how's things?" -msgstr "Eu posso poupar alguns minutos, como estão as coisas?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Sure thing , you good?" -msgstr "Coisa certa você é bom?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Alright, you got something to get off your chest?" -msgstr "Tudo bem, você tem algo para sair do seu peito?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Always ready for a good chat! But why, you OK?" -msgstr "Sempre pronto para um bom papo! Mas por que você está bem?" +msgstr "" #: lang/json/snippet_from_json.py msgid "OK , we should get to know each other, how are you coping?" -msgstr "Está bem , devemos nos conhecer, como você está lidando?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Definitely, I'm game. How you holding up?" -msgstr "Definitivamente, eu sou jogo. Como você está?" +msgstr "" #: lang/json/snippet_from_json.py msgid "darn" -msgstr "maldito" +msgstr "" #: lang/json/snippet_from_json.py msgid "fuck" -msgstr "Porra" +msgstr "" #: lang/json/snippet_from_json.py msgid "goddamn" -msgstr "maldito" +msgstr "" #: lang/json/snippet_from_json.py msgid "goddamnit" -msgstr "goddamnit" +msgstr "" #: lang/json/snippet_from_json.py msgid "damn" -msgstr "Droga" +msgstr "" #: lang/json/snippet_from_json.py msgid "damnit" -msgstr "droga" +msgstr "" #: lang/json/snippet_from_json.py msgid "shit" -msgstr "merda" +msgstr "" #: lang/json/snippet_from_json.py msgid "fuckit" -msgstr "porra" +msgstr "" #: lang/json/snippet_from_json.py msgid "crap" -msgstr "porcaria" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "son of an ass" -msgstr "filho de uma bunda" +msgstr "" #: lang/json/snippet_from_json.py msgid "Oh sugar!" -msgstr "Oh açúcar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "sad" -msgstr "agora" +msgstr "" #: lang/json/snippet_from_json.py msgid "bummed" -msgstr "bummed" +msgstr "" #: lang/json/snippet_from_json.py msgid "depressed" -msgstr "depressivo" +msgstr "" #: lang/json/snippet_from_json.py msgid "pissed" -msgstr "puto" +msgstr "" #: lang/json/snippet_from_json.py msgid "unhappy" -msgstr "infeliz" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "dejected" -msgstr "desanimado" +msgstr "" #: lang/json/snippet_from_json.py msgid "down" -msgstr "baixa" +msgstr "" #: lang/json/snippet_from_json.py msgid "glum" -msgstr "melancólico" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey ." -msgstr "Ei ." +msgstr "" #: lang/json/snippet_from_json.py msgid "Greetings ." -msgstr "saudações ." +msgstr "" #: lang/json/snippet_from_json.py msgid "Hi You okay?" -msgstr "Oi Você está bem?" +msgstr "" #: lang/json/snippet_from_json.py msgid " Let's talk." -msgstr " Vamos conversar." +msgstr "" #: lang/json/snippet_from_json.py msgid "Well hey there." -msgstr "Bem, ei aí." +msgstr "" #: lang/json/snippet_from_json.py msgid " Hello." -msgstr " Olá." +msgstr "" #: lang/json/snippet_from_json.py msgid "What's up, ?" -msgstr "Estás bem, ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "You okay, ?" -msgstr "Você está bem, ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hello, ." -msgstr "Olá, ." +msgstr "" #: lang/json/snippet_from_json.py msgid "Hi " -msgstr "Oi " +msgstr "" #: lang/json/snippet_from_json.py msgid "never" -msgstr "Nunca" +msgstr "" #: lang/json/snippet_from_json.py src/crafting_gui.cpp msgid "no" -msgstr "não" +msgstr "" #: lang/json/snippet_from_json.py msgid "not gonna happen" -msgstr "não vai acontecer" +msgstr "" #: lang/json/snippet_from_json.py msgid "not happening" -msgstr "não está acontecendo" +msgstr "" #: lang/json/snippet_from_json.py msgid "over my dead body" -msgstr "sobre o meu cadáver" +msgstr "" #: lang/json/snippet_from_json.py msgid "when pigs fly" -msgstr "quando porcos voarem" +msgstr "" #: lang/json/snippet_from_json.py msgid "won't happen" -msgstr "não vai acontecer" +msgstr "" #: lang/json/snippet_from_json.py msgid "fuck no" -msgstr "não foda-se" +msgstr "" #: lang/json/snippet_from_json.py msgid "hell no" -msgstr "de jeito nenhum" +msgstr "" #: lang/json/snippet_from_json.py msgid "no way" -msgstr "de jeito nenhum" +msgstr "" #: lang/json/snippet_from_json.py msgid "not a chance" -msgstr "não é uma chance" +msgstr "" #: lang/json/snippet_from_json.py msgid "I don't think so" -msgstr "Acho que não" +msgstr "" #: lang/json/snippet_from_json.py msgid "no way in hell" -msgstr "de jeito nenhum" +msgstr "" #: lang/json/snippet_from_json.py msgid "nuh uh" -msgstr "uh uh" +msgstr "" #: lang/json/snippet_from_json.py msgid "nope" -msgstr "Não" +msgstr "" #: lang/json/snippet_from_json.py msgid "fat chance" -msgstr "chance de gordura" +msgstr "" #: lang/json/snippet_from_json.py msgid "Goodbye, !" -msgstr "Adeus, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm leaving." -msgstr "Estou indo embora." +msgstr "" #: lang/json/snippet_from_json.py msgid "So long, !" -msgstr "Tanto tempo, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hasta luego, !" -msgstr "Até logo, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm outta here!" -msgstr "Estou fora daqui!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Bye bye, !" -msgstr "Tchau tchau, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "consider yourself dead" -msgstr "considere-se morto" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'll destroy you" -msgstr "Eu vou te destruir" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'll kick your ass" -msgstr "Vou chutar seu traseiro" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'll kill you" -msgstr "eu vou matar você" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'll send you to hell" -msgstr "Vou te mandar para o inferno" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm gonna kick your ass" -msgstr "Eu vou chutar seu traseiro" +msgstr "" #: lang/json/snippet_from_json.py msgid "you won't make it out alive" -msgstr "você não vai sair vivo" +msgstr "" #: lang/json/snippet_from_json.py msgid "you're dead" -msgstr "você está morto" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'll kill you" -msgstr "eu vou matar você" +msgstr "" #: lang/json/snippet_from_json.py msgid "you're dead meat" -msgstr "você é carne morta" +msgstr "" #: lang/json/snippet_from_json.py msgid ", " -msgstr " , " +msgstr "" #: lang/json/snippet_from_json.py msgid "you're a dead man" @@ -133857,581 +118790,579 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "you'll taste my " -msgstr "você vai provar meu " +msgstr "" #: lang/json/snippet_from_json.py msgid "you're dead" -msgstr "você é morto" +msgstr "" #: lang/json/snippet_from_json.py msgid ", " -msgstr " , " +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm not gonna last much longer" -msgstr "Eu não vou durar muito mais" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'll be dead soon" -msgstr "Eu estarei morto em breve" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'll be a goner" -msgstr "Eu vou ser um caso perdido" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm dead, ," -msgstr "Eu estou morto, ," +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm dead meat" -msgstr "Eu sou carne morta" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm in serious trouble" -msgstr "estou dentro problema sério" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm doomed" -msgstr "Eu estou condenado" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm done for" -msgstr "Eu estou pronto para" +msgstr "" #: lang/json/snippet_from_json.py msgid "I won't last much longer" -msgstr "Eu não vou durar muito mais" +msgstr "" #: lang/json/snippet_from_json.py msgid "my days are numbered" -msgstr "meus dias são numerado" +msgstr "" #: lang/json/snippet_from_json.py msgid ", I'm sorry" -msgstr " , Eu sinto Muito" +msgstr "" #: lang/json/snippet_from_json.py msgid "Can you wait?" -msgstr "Você pode esperar?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, where are you?" -msgstr "Ei, cadê você?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Wait!" -msgstr "Esperar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Wait up, !" -msgstr "Espere, !" +msgstr "" #: lang/json/snippet_from_json.py msgid ", wait for me!" -msgstr " , Espere por mim!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, wait up, ?" -msgstr "Ei, espere ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "You need to wait for me!" -msgstr "Você precisa esperar por mim!" +msgstr "" #: lang/json/snippet_from_json.py msgid "You need to wait!" -msgstr "Você Precisa esperar!" +msgstr "" #: lang/json/snippet_from_json.py msgid ", where are you?" -msgstr " , Onde está voce?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey Wait for me!" -msgstr "Ei Espere por mim!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Where are you?!" -msgstr "Onde está voce?!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, I'm over here!" -msgstr "Ei, eu estou aqui!" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm unaffiliated." -msgstr "Eu não sou afiliado." +msgstr "" #: lang/json/snippet_from_json.py msgid "I don't run with a crew." -msgstr "Eu não corro com uma tripulação." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm a solo artist, ?" -msgstr "Eu sou um artista solo ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I don't kowtow to any group, ?" -msgstr "Eu não faço kowtow a nenhum grupo ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm a freelancer." -msgstr "Sou freelancer." +msgstr "" #: lang/json/snippet_from_json.py msgid "I work alone, ." -msgstr "Eu trabalho sozinho, ." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm a free agent, more money that way." -msgstr "Eu sou um agente livre, mais dinheiro assim." +msgstr "" #: lang/json/snippet_from_json.py msgid "I prefer to work uninhibited by that kind of connection." -msgstr "Eu prefiro trabalhar desinibida por esse tipo de conexão." +msgstr "" #: lang/json/snippet_from_json.py msgid "I haven't found one that's good enough for me." -msgstr "Eu não encontrei um que seja bom o suficiente para mim." +msgstr "" #: lang/json/snippet_from_json.py msgid "I don't belong to a faction, ." -msgstr "Eu não pertenço a uma facção ." +msgstr "" #: lang/json/snippet_from_json.py msgid "amigo" -msgstr "amigo" +msgstr "" #: lang/json/snippet_from_json.py msgid "comrade" -msgstr "camarada" +msgstr "" #: lang/json/snippet_from_json.py msgid "fellow" -msgstr "companheiro" +msgstr "" #: lang/json/snippet_from_json.py msgid "lad" -msgstr "deixar" +msgstr "" #: lang/json/snippet_from_json.py msgid "mate" -msgstr "companheiro" +msgstr "" #: lang/json/snippet_from_json.py msgid "nomad" -msgstr "nômade" +msgstr "" #: lang/json/snippet_from_json.py msgid "partner" -msgstr "parceiro" +msgstr "" #: lang/json/snippet_from_json.py msgid "stranger" -msgstr "desconhecido" +msgstr "" #: lang/json/snippet_from_json.py msgid "survivor" -msgstr "sobrevivente" +msgstr "" #: lang/json/snippet_from_json.py msgid "friend" -msgstr "amiga" +msgstr "" #: lang/json/snippet_from_json.py msgid "pilgrim" -msgstr "peregrino" +msgstr "" #: lang/json/snippet_from_json.py msgid "traveler" -msgstr "viajante" +msgstr "" #: lang/json/snippet_from_json.py msgid "pal" -msgstr "amigo" +msgstr "" #: lang/json/snippet_from_json.py msgid "fella" -msgstr "bacano" +msgstr "" #: lang/json/snippet_from_json.py msgid "you" -msgstr "você" +msgstr "" #: lang/json/snippet_from_json.py msgid "dude" -msgstr "cara" +msgstr "" #: lang/json/snippet_from_json.py msgid "buddy" -msgstr "companheiro" +msgstr "" #: lang/json/snippet_from_json.py msgid "man" -msgstr "homem" +msgstr "" #: lang/json/snippet_from_json.py msgid "Catch up!" -msgstr "Alcançar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Get over here!" -msgstr "Venha pra cá!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Get over here, !" -msgstr "Venha pra cá, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Keep close, !" -msgstr "Mantenha perto, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Keep it moving, !" -msgstr "Mantenha-o em movimento, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Keep up, !" -msgstr "Manter-se, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Let's keep going, !" -msgstr "Vamos continuar, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Over here!" -msgstr "Por aqui!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Over here, !" -msgstr "Por aqui, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Stay close, !" -msgstr "Fique perto, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Stay with me, !" -msgstr "Fique comigo, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Catch up, !" -msgstr "Alcançar, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Keep up!" -msgstr "Manter-se!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Come on, !" -msgstr "Vamos, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Keep it moving!" -msgstr "Mantenha-o em movimento!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Stay with me!" -msgstr "Fique comigo!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Keep close!" -msgstr "Mantenha perto!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Stay close!" -msgstr "Fique perto!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Let's keep going!" -msgstr "Vamos continuar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "I can barely keep my eyes open." -msgstr "Eu mal posso manter meus olhos abertos." +msgstr "" #: lang/json/snippet_from_json.py msgid "When we sleepin'?" -msgstr "Quando estamos dormindo?" +msgstr "" #: lang/json/snippet_from_json.py msgid "*Yawn*" -msgstr "*Bocejar*" +msgstr "" #: lang/json/snippet_from_json.py msgid "What time is it?" -msgstr "Que horas são?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm tired..." -msgstr "Estou cansado..." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm tired." -msgstr "Eu estou cansado." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm tired." -msgstr "Eu estou cansado." +msgstr "" #: lang/json/snippet_from_json.py msgid "Can we rest for a while, ?" -msgstr "Podemos descansar por um tempo, ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I need to rest." -msgstr "Eu Preciso descansar." +msgstr "" #: lang/json/snippet_from_json.py msgid " if we don't stop for a moment." -msgstr " Se não pararmos por um momento." +msgstr "" #: lang/json/snippet_from_json.py msgid "Did you know that lack of rest kills faster than lack of food?" msgstr "" -" Você sabia que a falta de descanso mata mais rápido do que a falta de " -"comida?" #: lang/json/snippet_from_json.py msgid "I'll just go to sleep, ?" -msgstr "Eu vou dormir ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm going to sleep now." -msgstr "Eu vou dormir agora." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm off to bed. Wake me if you need me." -msgstr "Estou indo para a cama. Me acorde se você precisar de mim." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm going to sleep over there." -msgstr "Eu vou dormir lá." +msgstr "" #: lang/json/snippet_from_json.py msgid "Time for bed! See you in the morning." -msgstr "Hora de dormir! Vejo você pela manhã." +msgstr "" #: lang/json/snippet_from_json.py msgid "There's a bed calling my name, and I'm going to it." -msgstr "Há uma cama chamando meu nome e eu estou indo para ela." +msgstr "" #: lang/json/snippet_from_json.py msgid "Good night! Wake me if you need me." -msgstr "Boa noite! Me acorde se você precisar de mim." +msgstr "" #: lang/json/snippet_from_json.py msgid "extremely" -msgstr "extremamente" +msgstr "" #: lang/json/snippet_from_json.py msgid "greatly" -msgstr "muito" +msgstr "" #: lang/json/snippet_from_json.py msgid "highly" -msgstr "altamente" +msgstr "" #: lang/json/snippet_from_json.py msgid "incredibly" -msgstr "incrivelmente" +msgstr "" #: lang/json/snippet_from_json.py msgid "quite" -msgstr "bastante" +msgstr "" #: lang/json/snippet_from_json.py msgid "really" -msgstr "realmente" +msgstr "" #: lang/json/snippet_from_json.py msgid "utterly" -msgstr "totalmente" +msgstr "" #: lang/json/snippet_from_json.py msgid "fucking" -msgstr "porra" +msgstr "" #: lang/json/snippet_from_json.py msgid "super" -msgstr "super" +msgstr "" #: lang/json/snippet_from_json.py msgid "wicked" -msgstr "perverso" +msgstr "" #: lang/json/snippet_from_json.py msgid "very" -msgstr "muito" +msgstr "" #: lang/json/snippet_from_json.py msgid "mega" -msgstr "mega" +msgstr "" #: lang/json/snippet_from_json.py msgid "uber" -msgstr "uber" +msgstr "" #: lang/json/snippet_from_json.py msgid "ultra" -msgstr "ultra" +msgstr "" #: lang/json/snippet_from_json.py msgid "so " -msgstr "então " +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py src/iuse.cpp msgid "fine" -msgstr "bem" +msgstr "" #: lang/json/snippet_from_json.py msgid "okay" -msgstr "OK" +msgstr "" #: lang/json/snippet_from_json.py msgid "get it" -msgstr "pegue" +msgstr "" #: lang/json/snippet_from_json.py msgid "you dig" -msgstr "você você" +msgstr "" #: lang/json/snippet_from_json.py msgid "dig" -msgstr "você" +msgstr "" #: lang/json/snippet_from_json.py msgid "got it" -msgstr "consegui" +msgstr "" #: lang/json/snippet_from_json.py msgid "you see" -msgstr "entende" +msgstr "" #: lang/json/snippet_from_json.py msgid "see, " -msgstr "Vejo, " +msgstr "" #: lang/json/snippet_from_json.py msgid "alright" -msgstr "tudo bem" +msgstr "" #: lang/json/snippet_from_json.py msgid "that clear" -msgstr "que claro" +msgstr "" #: lang/json/snippet_from_json.py msgid "seriously" -msgstr "a sério" +msgstr "" #: lang/json/snippet_from_json.py msgid "absolutely" -msgstr "absolutamente" +msgstr "" #: lang/json/snippet_from_json.py msgid "definitely" -msgstr "definitivamente" +msgstr "" #: lang/json/snippet_from_json.py msgid "for real" -msgstr "sério" +msgstr "" #: lang/json/snippet_from_json.py msgid "honestly" -msgstr "honestamente" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "most " -msgstr "a maioria " +msgstr "" #: lang/json/snippet_from_json.py msgid "urgently" -msgstr "urgentemente" +msgstr "" #: lang/json/snippet_from_json.py msgid "REALLY" -msgstr "REALMENTE" +msgstr "" #: lang/json/snippet_from_json.py msgid "Excuse me, let me pass." -msgstr "Com licença, deixe-me passar." +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey , can I get through?" -msgstr "Ei posso passar?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Let me get past you, ." -msgstr "Deixe-me passar por você ." +msgstr "" #: lang/json/snippet_from_json.py msgid "Let me through, ?" -msgstr "Deixe-me passar, ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Step aside, !" -msgstr "Afaste-se, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Can I get past you, ?" -msgstr "Posso passar por você? ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I need to get past you, ." -msgstr "Eu preciso passar por você ." +msgstr "" #: lang/json/snippet_from_json.py msgid "Move your ass, !" -msgstr "Mova o seu bunda, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Out of my way, !" -msgstr "Fora do meu caminho, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Move it, !" -msgstr "Mova isso, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "You need to move, , ?" -msgstr "Você precisa se mover , ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Thanks for the cash, !" -msgstr "Obrigado pelo dinheiro !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Thanks a lot, !" -msgstr "Muito obrigado, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Catch you later, !" -msgstr "Te vejo mais tarde !" +msgstr "" #: lang/json/snippet_from_json.py msgid "See you later, !" -msgstr "Até logo, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "See you in hell, !" -msgstr "Vejo você no inferno, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm outta here! " -msgstr "Estou fora daqui! " +msgstr "" #: lang/json/snippet_from_json.py msgid "Thanks, !" -msgstr "Obrigado, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey! I saw you take that ! Drop it. Now." @@ -134472,320 +119403,319 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "content" -msgstr "conteúdo" +msgstr "" #: lang/json/snippet_from_json.py msgid "glad" -msgstr "feliz" +msgstr "" #: lang/json/snippet_from_json.py msgid "happy" -msgstr "feliz" +msgstr "" #: lang/json/snippet_from_json.py msgid "overjoyed" -msgstr "muito feliz" +msgstr "" #: lang/json/snippet_from_json.py msgid "pleased" -msgstr "satisfeito" +msgstr "" #: lang/json/snippet_from_json.py msgid "ecstatic" -msgstr "em êxtase" +msgstr "" #: lang/json/snippet_from_json.py msgid "thrilled" -msgstr "emocionados" +msgstr "" #: lang/json/snippet_from_json.py msgid "stoked" -msgstr "aturdido" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "tickled pink" -msgstr "cócegas rosa" +msgstr "" #: lang/json/snippet_from_json.py msgid "delighted" -msgstr "Deleitado" +msgstr "" #: lang/json/snippet_from_json.py msgid "pumped" -msgstr "bombeado" +msgstr "" #: lang/json/snippet_from_json.py msgid "Drop your weapon!" -msgstr "Solte o seu arma!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Okay , drop your weapon!" -msgstr "OK , Largue sua arma!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Put your weapon down!" -msgstr "Coloque o seu arma para baixo!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Drop the , !" -msgstr "Largue o , !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Drop the !" -msgstr "Largue o !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Drop your !" -msgstr "Solte o seu !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Put down the !" -msgstr "Coloque o !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Drop your weapon, !" -msgstr "Solte o seu arma, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Put down your !" -msgstr "Coloque o seu !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Alright, drop the !" -msgstr "Tudo bem, largue o !" +msgstr "" #: lang/json/snippet_from_json.py msgid "motherfucking" -msgstr "filho da puta" +msgstr "" #: lang/json/snippet_from_json.py msgid "freaking" -msgstr "pirando" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "fuckin'" -msgstr "porra" +msgstr "" #: lang/json/snippet_from_json.py msgid "god damn" -msgstr "Deus maldito" +msgstr "" #: lang/json/snippet_from_json.py msgid "mafuckin'" -msgstr "mafuckin '" +msgstr "" #: lang/json/snippet_from_json.py msgid "Wait up, let's talk!" -msgstr "Espere, vamos conversar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, I want to talk to you!" -msgstr "Ei eu Quero falar com você!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Come on, talk to me!" -msgstr "Venha, fale comigo!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey , let's talk!" -msgstr "Ei , vamos conversar!" +msgstr "" #: lang/json/snippet_from_json.py msgid ", we need to talk!" -msgstr " , nós precisa conversar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, we should talk, ?" -msgstr "Ei, devemos conversar ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "! Wait up!" -msgstr " ! Espere!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Wait up, ?" -msgstr "Espere, ?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Let's talk, !" -msgstr "Vamos conversar, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Look, let's talk!" -msgstr "Veja, vamos conversar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Put your hands up!" -msgstr "Coloque o seu mãos ao ar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Put your hands up, !" -msgstr "Levante as mãos, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Reach for the sky!" -msgstr "Alcançar os céus!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hands up!" -msgstr "Mãos ao ar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hands in the air!" -msgstr "Mãos no ar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hands up, !" -msgstr "Mãos ao ar, !" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hands where I can see them!" -msgstr "Mãos onde eu posso ver!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Okay , hands up!" -msgstr "OK , mãos ao ar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Okay hands up!" -msgstr "OK mãos ao ar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hands in the air, !" -msgstr "Mãos no ar, !" +msgstr "" #: lang/json/snippet_from_json.py src/martialarts.cpp msgid "Move" -msgstr "Mover" +msgstr "" #: lang/json/snippet_from_json.py msgid "Move your ass" -msgstr "Mova sua bunda" +msgstr "" #: lang/json/snippet_from_json.py msgid "Get out of the way" -msgstr "Saia do caminho" +msgstr "" #: lang/json/snippet_from_json.py msgid "You need to move" -msgstr "Você precisa se mover" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey , move" -msgstr "Ei , mover" +msgstr "" #: lang/json/snippet_from_json.py msgid " move it" -msgstr " Mova isso" +msgstr "" #: lang/json/snippet_from_json.py msgid "Move your ass" -msgstr "Mova o seu bunda" +msgstr "" #: lang/json/snippet_from_json.py msgid "Get out of my way, ," -msgstr "Saia do meu caminho, ," +msgstr "" #: lang/json/snippet_from_json.py msgid "Move to the side" -msgstr "Mover para o lado" +msgstr "" #: lang/json/snippet_from_json.py msgid "Get out of my line of fire" -msgstr "Saia da minha linha de fogo" +msgstr "" #: lang/json/snippet_from_json.py msgid "I almost want to eat my now." -msgstr "Eu quase quero comer meu agora." +msgstr "" #: lang/json/snippet_from_json.py msgid "When we eatin'?" -msgstr "Quando comemos?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'd eat a burger if I had one." -msgstr "Eu comeria um hambúrguer se tivesse um." +msgstr "" #: lang/json/snippet_from_json.py msgid "Perfect time for a lunch break." -msgstr "Tempo perfeito para uma pausa para o almoço." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm hungry..." -msgstr "Eu estou com fome..." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm hungry." -msgstr "Eu estou com fome." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm hungry." -msgstr "Eu estou com fome." +msgstr "" #: lang/json/snippet_from_json.py msgid "So, , when we eatin'?" -msgstr "Assim, quando comemos?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I need to eat something." -msgstr "Eu precisa comer alguma coisa." +msgstr "" #: lang/json/snippet_from_json.py msgid " if I don't get some food." -msgstr " se eu não conseguir alguma comida." +msgstr "" #: lang/json/snippet_from_json.py msgid "Consider this idea: you give me food and I eat it." -msgstr "Considere esta ideia: você me dá comida e eu a como." +msgstr "" #: lang/json/snippet_from_json.py msgid "Did you know that lack of food kills faster than chain smoking?" msgstr "" -" Você sabia que a falta de comida mata mais rápido do que fumar em cadeia?" #: lang/json/snippet_from_json.py msgid "fuck you" -msgstr "foda-se você" +msgstr "" #: lang/json/snippet_from_json.py msgid "fuck off" -msgstr "foda-se" +msgstr "" #: lang/json/snippet_from_json.py msgid "go fuck yourself" -msgstr "vá se foder" +msgstr "" #: lang/json/snippet_from_json.py msgid ", " -msgstr " , " +msgstr "" #: lang/json/snippet_from_json.py msgid ", " -msgstr " , " +msgstr "" #: lang/json/snippet_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/snippet_from_json.py msgid "Can I get out and walk? This vehicle is too small." -msgstr "Posso sair e andar? Este veículo é muito pequeno." +msgstr "" #: lang/json/snippet_from_json.py msgid "How about we make the next vehicle a convertible?" -msgstr "Que tal tornar o próximo veículo um conversível?" +msgstr "" #: lang/json/snippet_from_json.py msgid "This vehicle is too small." -msgstr "Este veículo é muito pequeno." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm not a contortionist!" @@ -134793,412 +119723,411 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I can't fit in your tiny human vehicle." -msgstr "Eu não posso encaixar no seu minúsculo veículo humano." +msgstr "" #: lang/json/snippet_from_json.py msgid "This sucks. I'm too big." -msgstr "Isso é uma merda. Eu sou muito grande." +msgstr "" #: lang/json/snippet_from_json.py msgid "I don't like being a mutant crammed into your tiny little vehicle." -msgstr "Eu não gosto de ser um mutante espremido em seu minúsculo veículo." +msgstr "" #: lang/json/snippet_from_json.py msgid " Fire in the hole!" -msgstr " Fogo no buraco!" +msgstr "" #: lang/json/snippet_from_json.py msgid " Get cover!" -msgstr " Obtenha cobertura!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Marines! We are leaving!" -msgstr "Fuzileiros navais! Nós somos deixando!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hit the dirt!" -msgstr "Acerte o sujeira!" +msgstr "" #: lang/json/snippet_from_json.py msgid "This shit is gonna blow!" -msgstr "este merda vai explodir!" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm standing way too close to this firecracker." -msgstr "Eu estou muito perto disso fogos de artifício." +msgstr "" #: lang/json/snippet_from_json.py msgid "I need to get some distance." -msgstr "Eu precisa obter alguma distância." +msgstr "" #: lang/json/snippet_from_json.py msgid "I need to get some distance." -msgstr "Eu precisa obter algum distância." +msgstr "" #: lang/json/snippet_from_json.py msgid " I'm getting my ass out of here!" -msgstr " Estou tirando minha bunda daqui!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Fire in the hole, motherfuckers!" -msgstr "Fogo no buraco, filhos da puta!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Fire in the hole!" -msgstr "Fogo no buraco!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Get cover!" -msgstr "Obtenha cobertura!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Get down!" -msgstr "Abaixe-se!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hit the dirt!" -msgstr "Bata a sujeira!" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm getting my ass out of here! You'd better do the same, !" msgstr "" -" Estou tirando minha bunda daqui! É melhor você fazer o mesmo !" #: lang/json/snippet_from_json.py msgid "Fire in the hole, motherfuckers!" -msgstr "Fogo no buraco, filhos da puta!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Fuck me! A " -msgstr "Foda-me! UMA " +msgstr "" #: lang/json/snippet_from_json.py msgid "Watch out for that" -msgstr "Cuidado com isso" +msgstr "" #: lang/json/snippet_from_json.py msgid "Watch out! I see a" -msgstr "Cuidado! Eu vejo uma" +msgstr "" #: lang/json/snippet_from_json.py msgid ", a" -msgstr " , uma" +msgstr "" #: lang/json/snippet_from_json.py msgid ", I'm doomed! There's a " -msgstr " , Eu estou condenado! Há um " +msgstr "" #: lang/json/snippet_from_json.py msgid ", here comes a " -msgstr " , aqui vem um " +msgstr "" #: lang/json/snippet_from_json.py msgid "Look out for that" -msgstr "Cuidado com isso" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey! Over there! I see a" -msgstr "Ei! Lá! Eu vejo uma" +msgstr "" #: lang/json/snippet_from_json.py msgid "Incoming" -msgstr "Entrada" +msgstr "" #: lang/json/snippet_from_json.py msgid "Are we fighting? There's a" -msgstr "Estamos brigando? Há um" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, ! " -msgstr "Ei, ! " +msgstr "" #: lang/json/snippet_from_json.py msgid "Look out! A" -msgstr "Tenha cuidado! UMA" +msgstr "" #: lang/json/snippet_from_json.py msgid "Look sharp! Things are heating up." -msgstr "Olhar afiado! As coisas estão esquentando." +msgstr "" #: lang/json/snippet_from_json.py msgid "Hostiles inbound." -msgstr "Hostiles de entrada." +msgstr "" #: lang/json/snippet_from_json.py msgid "Are we fighting or leaving?" -msgstr "Estamos lutando ou saindo?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, ! " -msgstr "Ei, ! " +msgstr "" #: lang/json/snippet_from_json.py msgid "Uh, ? " -msgstr "Uh ? " +msgstr "" #: lang/json/snippet_from_json.py msgid "Naptime is over." -msgstr "A hora de dormir acabou." +msgstr "" #: lang/json/snippet_from_json.py msgid "Who's there?" -msgstr "Quem está aí?" +msgstr "" #: lang/json/snippet_from_json.py lang/json/speech_from_json.py msgid "Hello?" -msgstr "Olá?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Look alive!" -msgstr "Olhe vivo!" +msgstr "" #: lang/json/snippet_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/snippet_from_json.py msgid " look sharp! Things are heating up." -msgstr " olhar afiado! Coisas são esquentando." +msgstr "" #: lang/json/snippet_from_json.py msgid " Hostiles inbound." -msgstr " Hostis entrada." +msgstr "" #: lang/json/snippet_from_json.py msgid "You're gonna rot in hell, you pieces of shit!" -msgstr "Você vai apodrecer no inferno, seus pedaços de merda!" +msgstr "" #: lang/json/snippet_from_json.py msgid "You're gonna rot in hell for this!" -msgstr "Você vai apodrecer no inferno por isso!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Kill them all and let God sort them out!" -msgstr "Mate todos eles e deixe Deus resolvê-los!" +msgstr "" #: lang/json/snippet_from_json.py msgid "I love the smell of napalm in the morning." -msgstr "Eu amo o cheiro de napalm pela manhã." +msgstr "" #: lang/json/snippet_from_json.py msgid "This is the way the fuckin' world ends." -msgstr "É assim que o mundo acaba." +msgstr "" #: lang/json/snippet_from_json.py msgid "Look at this fuckin' shit we're in, man." -msgstr "Olhe para essa porra de merda em que estamos, cara." +msgstr "" #: lang/json/snippet_from_json.py msgid "Is everything all right?" -msgstr "Está tudo bem?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Look out!" -msgstr "Tenha cuidado!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Run!" -msgstr "Corre!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Be quiet." -msgstr "Fique quieto." +msgstr "" #: lang/json/snippet_from_json.py msgid "Please, I don't want to die." -msgstr "Por favor, não quero morrer." +msgstr "" #: lang/json/snippet_from_json.py msgid "We have a serious situation here." -msgstr "Nós temos uma situação séria aqui." +msgstr "" #: lang/json/snippet_from_json.py msgid "Where did you come from?" -msgstr "De onde você veio?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Help!" -msgstr "Socorro!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Be careful out there." -msgstr "Tenha cuidado lá fora." +msgstr "" #: lang/json/snippet_from_json.py msgid "It's heading right for us!" -msgstr "Está indo para a direita para nós!" +msgstr "" #: lang/json/snippet_from_json.py msgid "You hear that?" -msgstr "Você ouve isso?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Time to die!" -msgstr "Hora de morrer!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Looks like that's over." -msgstr "Parece que acabou." +msgstr "" #: lang/json/snippet_from_json.py msgid ", " -msgstr " , " +msgstr "" #: lang/json/snippet_from_json.py msgid "I think we won." -msgstr "Eu acho que nós vencemos." +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, , " -msgstr "Ei, , " +msgstr "" #: lang/json/snippet_from_json.py msgid "Are you wounded? Am I wounded?" -msgstr "Você está ferido? Eu estou ferido?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Another day, another victory." -msgstr "Outro dia, outra vitória." +msgstr "" #: lang/json/snippet_from_json.py msgid "I think I need to see a doctor." -msgstr "Eu acho que preciso de um médico." +msgstr "" #: lang/json/snippet_from_json.py msgid "At least we know they can die." -msgstr "Pelo menos sabemos que eles podem morrer." +msgstr "" #: lang/json/snippet_from_json.py msgid "Anyone else want to die?" -msgstr "Alguém mais quer morrer?" +msgstr "" #: lang/json/snippet_from_json.py msgid "How do we get out of here?" -msgstr "Como saímos daqui?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Is that the last of them?" -msgstr "Esse é o último deles?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'd kill for a coke." -msgstr "Eu mataria por uma coca." +msgstr "" #: lang/json/snippet_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/snippet_from_json.py msgid " What a day." -msgstr " Que dia." +msgstr "" #: lang/json/snippet_from_json.py msgid " I win again!" -msgstr " Eu ganho de novo!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Don't worry about it." -msgstr "Não se preocupe com isso." +msgstr "" #: lang/json/snippet_from_json.py msgid "Don't worry." -msgstr "Não se preocupe." +msgstr "" #: lang/json/snippet_from_json.py msgid "I've seen horrors, horrors that you've seen." -msgstr "Eu vi horrores, horrores que você viu." +msgstr "" #: lang/json/snippet_from_json.py msgid "Every man has got a breaking point." -msgstr "Todo homem tem um ponto de ruptura." +msgstr "" #: lang/json/snippet_from_json.py msgid "Only a few more days 'til the weekend." -msgstr "Apenas mais alguns dias até o final de semana." +msgstr "" #: lang/json/snippet_from_json.py msgid "Anything else?" -msgstr "Algo mais?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm fine." -msgstr "Estou bem." +msgstr "" #: lang/json/snippet_from_json.py msgid "There you are." -msgstr "Aí está você." +msgstr "" #: lang/json/snippet_from_json.py msgid "Time for you to die," -msgstr "Hora de você morrer" +msgstr "" #: lang/json/snippet_from_json.py msgid "This bullet is for you," -msgstr "Essa bala é pra você" +msgstr "" #: lang/json/snippet_from_json.py msgid "I can take on" -msgstr "Eu posso assumir" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, ! I've got" -msgstr "Ei, ! eu tenho" +msgstr "" #: lang/json/snippet_from_json.py msgid "! Watch my back while I kill" -msgstr " ! Assista minhas costas enquanto mato" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'm your huckleberry," -msgstr "Eu sou sua huckleberry" +msgstr "" #: lang/json/snippet_from_json.py msgid "Sorry, but you have to do down," -msgstr "Desculpe, mas você tem que fazer para baixo," +msgstr "" #: lang/json/snippet_from_json.py msgid "! I'm gonna kill you," -msgstr " ! Eu vou matar você," +msgstr "" #: lang/json/snippet_from_json.py msgid "Watch you bleed out," -msgstr "Assista você sangrar," +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey ! I'm gonna murder" -msgstr "Ei ! Eu vou assassinato" +msgstr "" #: lang/json/snippet_from_json.py msgid "! This is the end," -msgstr " ! Este é o fim" +msgstr "" #: lang/json/snippet_from_json.py msgid "I can take on" -msgstr "eu posso assumir" +msgstr "" #: lang/json/snippet_from_json.py msgid "Time to die," -msgstr "Hora de morrer," +msgstr "" #: lang/json/snippet_from_json.py msgid "!" -msgstr " !" +msgstr "" #: lang/json/snippet_from_json.py msgid "I'ma cut those fuckin' tentacles off, bitch!" -msgstr "Eu vou cortar esses malditos tentáculos, cadela!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Watch you bleed out!" -msgstr "Assista você sangrar!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Is this Reno? Because I need to watch you die!" -msgstr "Isso é Reno? Porque eu preciso ver você morrer!" +msgstr "" #: lang/json/snippet_from_json.py msgid "You're going to pay for that, !" -msgstr "Você vai pagar por isso !" +msgstr "" #: lang/json/snippet_from_json.py msgid "I think I need to see a doctor. I'm patching myself up." @@ -135230,55 +120159,55 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Quiet down over there!" -msgstr "Calma lá embaixo!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Did you hear someone talking?" -msgstr "Você ouviu alguém falando?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Who said that?" -msgstr "Quem disse isso?" +msgstr "" #: lang/json/snippet_from_json.py msgid "That sounds bad." -msgstr "Isso parece ruim." +msgstr "" #: lang/json/snippet_from_json.py msgid "Be alert, something is up!" -msgstr "Esteja alerta, algo está acontecendo!" +msgstr "" #: lang/json/snippet_from_json.py src/player.cpp msgid "Did you hear that?" -msgstr "Você ouviu isso?" +msgstr "" #: lang/json/snippet_from_json.py msgid "What's that noise?" -msgstr "O que é esse barulho?" +msgstr "" #: lang/json/snippet_from_json.py msgid "Is something over there?" -msgstr "Tem algo aí?" +msgstr "" #: lang/json/snippet_from_json.py msgid "I hear something moving - sounded like" -msgstr "Eu ouço algo se movendo - soava como" +msgstr "" #: lang/json/snippet_from_json.py msgid "What's that sound? I heard" -msgstr "Que som é esse? Eu ouvi" +msgstr "" #: lang/json/snippet_from_json.py msgid "What's there? I heard" -msgstr "O que há? Eu ouvi" +msgstr "" #: lang/json/snippet_from_json.py msgid "Did you hear that? Sounded like" -msgstr "Você ouviu isso? Soou como" +msgstr "" #: lang/json/snippet_from_json.py msgid "What is making that sound? I can hear the" -msgstr "O que está fazendo esse som? Eu posso ouvir o" +msgstr "" #: lang/json/snippet_from_json.py msgid "Got it!" @@ -135322,11 +120251,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Whew... smells like skunk!" -msgstr "Ufa ... cheira a gambá!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Man, that smells like some good shit!" -msgstr "Cara, isso cheira a alguma merda boa!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hey, don't bogart the joint!" @@ -135362,7 +120291,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I don't know... should you really be smoking that stuff?" -msgstr "Eu não sei ... você deveria estar realmente fumando essas coisas?" +msgstr "" #: lang/json/snippet_from_json.py msgid ", that's going to ruin your nose." @@ -135382,11 +120311,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Ew, smells like burning rubber!" -msgstr "Ew, cheira a borracha queimando!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Ugh, that smells rancid!" -msgstr "Ugh, isso cheira rançoso!" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -135479,216 +120408,216 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Tell me about how you survived the cataclysm." -msgstr "Conte-me sobre como você sobreviveu ao cataclismo." +msgstr "" #: lang/json/snippet_from_json.py msgid "How did you survive the cataclysm?" -msgstr "Como você sobreviveu ao cataclismo?" +msgstr "" #: lang/json/snippet_from_json.py msgid "What was the cataclysm like for you?" -msgstr "Como foi o cataclismo para você?" +msgstr "" #: lang/json/snippet_from_json.py lang/json/talk_topic_from_json.py msgid "Let's talk about something else." -msgstr "Vamos falar de outra coisa." +msgstr "" #: lang/json/snippet_from_json.py msgid "Let's change the subject." -msgstr "Vamos mudar de assunto." +msgstr "" #: lang/json/snippet_from_json.py msgid "I'd like to ask you about something else." -msgstr "Eu gostaria de perguntar sobre outra coisa." +msgstr "" #: lang/json/snippet_from_json.py msgid "We should probably get going." -msgstr "Nós provavelmente deveríamos ir." +msgstr "" #: lang/json/snippet_from_json.py msgid "We'd better get moving." -msgstr "É melhor nos movermos." +msgstr "" #: lang/json/snippet_from_json.py msgid "Let's head out." -msgstr "Vamos sair." +msgstr "" #: lang/json/snippet_from_json.py msgid "shitty" -msgstr "merda" +msgstr "" #: lang/json/snippet_from_json.py msgid "lame" -msgstr "coxo" +msgstr "" #: lang/json/snippet_from_json.py msgid "crappy" -msgstr "de baixa qualidade" +msgstr "" #: lang/json/snippet_from_json.py msgid "unpleasant" -msgstr "desagradável" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #. ~ photo quality adjective #: lang/json/snippet_from_json.py src/iuse.cpp msgid "awful" -msgstr "horrível" +msgstr "" #: lang/json/snippet_from_json.py msgid "terrible" -msgstr "terrivel" +msgstr "" #: lang/json/snippet_from_json.py msgid "horrible" -msgstr "horrível" +msgstr "" #: lang/json/snippet_from_json.py msgid "miserable" -msgstr "miserável" +msgstr "" #: lang/json/snippet_from_json.py msgid "fucked-up" -msgstr "fodido" +msgstr "" #: lang/json/snippet_from_json.py msgid "stupid" -msgstr "estúpido" +msgstr "" #: lang/json/snippet_from_json.py msgid "idiotic" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "dumb" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "dumb-ass" -msgstr "idiota" +msgstr "" #: lang/json/snippet_from_json.py msgid "moronic" -msgstr "imbecil" +msgstr "" #: lang/json/snippet_from_json.py msgid "mickey mouse" -msgstr "Mickey Mouse" +msgstr "" #: lang/json/snippet_from_json.py msgid "shit-for-brains" -msgstr "merda para cérebros" +msgstr "" #: lang/json/snippet_from_json.py msgid "Z" -msgstr "com" +msgstr "" #: lang/json/snippet_from_json.py msgid "shambler" -msgstr "shambler" +msgstr "" #: lang/json/snippet_from_json.py msgid "goo-puker" -msgstr "goo-puker" +msgstr "" #: lang/json/snippet_from_json.py msgid "walker" -msgstr "andador" +msgstr "" #: lang/json/snippet_from_json.py msgid "walking corpse" -msgstr "cadáver ambulante" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "undead" -msgstr "Morto-vivo" +msgstr "" #: lang/json/snippet_from_json.py msgid "living dead" -msgstr "morto-vivo" +msgstr "" #: lang/json/snippet_from_json.py msgid "zombies" -msgstr "zumbis" +msgstr "" #: lang/json/snippet_from_json.py msgid "Z's" -msgstr "Z's" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "monster" -msgstr "monstro" +msgstr "" #: lang/json/snippet_from_json.py msgid "demon" -msgstr "demônio" +msgstr "" #: lang/json/snippet_from_json.py msgid "horror" -msgstr "Horror" +msgstr "" #: lang/json/snippet_from_json.py msgid "indescribable beast" -msgstr "besta indescritível" +msgstr "" #: lang/json/snippet_from_json.py msgid "creature made of nightmares" -msgstr "criatura feita de pesadelos" +msgstr "" #: lang/json/snippet_from_json.py msgid "critter" -msgstr "bicho" +msgstr "" #: lang/json/snippet_from_json.py msgid " " -msgstr " " +msgstr "" #: lang/json/snippet_from_json.py msgid "unbelievable thing" -msgstr "inacreditável coisa" +msgstr "" #: lang/json/snippet_from_json.py msgid "walking nightmare" -msgstr "pesadelo ambulante" +msgstr "" #: lang/json/snippet_from_json.py msgid "thing right out of a scary movie" -msgstr "coisa certa fora de um filme de terror" +msgstr "" #: lang/json/snippet_from_json.py msgid "the cataclysm" -msgstr "o cataclismo" +msgstr "" #: lang/json/snippet_from_json.py msgid "the apocalypse" -msgstr "o apocalipse" +msgstr "" #: lang/json/snippet_from_json.py msgid "the end of the world" -msgstr "o fim do mundo" +msgstr "" #: lang/json/snippet_from_json.py msgid "Armageddon" -msgstr "Armagedom" +msgstr "" #: lang/json/snippet_from_json.py msgid "the end of days" -msgstr "o fim dos dias" +msgstr "" #: lang/json/snippet_from_json.py msgid "They'll kill us! Run away!" @@ -135921,169 +120850,129 @@ msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " "more than a day." msgstr "" -" Você se sente ótimo! Não parece que as feridas possam atrasá-lo por mais de" -" um dia." #: lang/json/snippet_from_json.py msgid "" "Within moments you're ready and up. You don't feel like anything could stop" " you today!" msgstr "" -" Dentro de instantes você está pronto e pronto. Você não sente que qualquer " -"coisa poderia te parar hoje!" #: lang/json/snippet_from_json.py msgid "" "Your eyes open and your entire body feels like it is just bursting with " "energy to burn!" msgstr "" -" Seus olhos se abrem e todo o seu corpo parece que está explodindo de " -"energia para queimar!" #: lang/json/snippet_from_json.py msgid "" "You feel like a rubber ball; whatever hits you, you'll just bounce back!" msgstr "" -" Você se sente como uma bola de borracha; o que quer que você acerte, você " -"só vai se recuperar!" #: lang/json/snippet_from_json.py msgid "" "You're up and you feel fantastic. No sickness is going to keep you down " "today!" msgstr "" -" Você está em pé e se sente fantástico. Nenhuma doença vai te deixar pra " -"baixo hoje!" #: lang/json/snippet_from_json.py msgid "" "You're up and going rather quickly, and all the little aches from yesterday " "are gone." msgstr "" -" Você está em alta velocidade, e todas as pequenas dores de ontem se foram." #: lang/json/snippet_from_json.py msgid "" "You get up feeling pretty good, as if all your little aches were fading " "faster." msgstr "" -" Você se sente muito bem, como se todas as suas pequenas dores estivessem " -"desaparecendo mais rápido." #: lang/json/snippet_from_json.py msgid "" "Getting up comes easy to you, your muscles revitalized after your rest." msgstr "" -" Levantar-se vem fácil para você, seus músculos revitalizados após o seu " -"descanso." #: lang/json/snippet_from_json.py msgid "" "You're up and your little pains from before seem to have faded away rather " "quickly." msgstr "" -" Você está de pé e suas pequenas dores de antes parecem ter desaparecido " -"rapidamente." #: lang/json/snippet_from_json.py msgid "" "Awareness comes fast, your body coming quickly to attention after your rest." msgstr "" -" A consciência vem rapidamente, o seu corpo rapidamente chama a atenção " -"depois do seu descanso." #: lang/json/snippet_from_json.py msgid "You feel good. Healthy living does seem to have some rewards." -msgstr "Você se sente bem. A vida saudável parece ter algumas recompensas." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Getting out of bed doesn't seem too hard today. You could get used to this!" msgstr "" -" Sair da cama não parece muito difícil hoje. Você poderia se acostumar com " -"isso!" #: lang/json/snippet_from_json.py msgid "" "Alertness comes somewhat fast, and your muscles stretch easier than before " "you went to bed." msgstr "" -" Prontidão vem um pouco rápido, e seus músculos se alongam mais facilmente " -"do que antes de ir para a cama." #: lang/json/snippet_from_json.py msgid "You feel extra alert, and your body feels ready to go." -msgstr "Você se sente mais alerta e seu corpo se sente pronto para ir." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Your body stretches with ease, and you feel ready to take on the world." msgstr "" -" Seu corpo se estende com facilidade e você se sente pronto para enfrentar o" -" mundo." #: lang/json/snippet_from_json.py msgid "You feel cruddy. Maybe you should consider eating a bit healthier." msgstr "" -" Você se sente rude. Talvez você devesse considerar comer um pouco mais " -"saudável." #: lang/json/snippet_from_json.py msgid "You get up with a bit of a scratch in your throat." -msgstr "Você se levanta com um pequeno arranhão na garganta." +msgstr "" #: lang/json/snippet_from_json.py msgid "You stretch, but your muscles don't seem to be doing so good today." msgstr "" -"Você se alonga, mas seus músculos não parecem estar indo tão bem hoje." #: lang/json/snippet_from_json.py msgid "" "Your stomach gurgles. It's probably nothing, but maybe you should look into" " eating something healthy." msgstr "" -" Seu estômago gorgoleja. Provavelmente não é nada, mas talvez você deva " -"pensar em comer algo saudável." #: lang/json/snippet_from_json.py msgid "" "You struggle to awareness. Being awake seems somewhat harder to reach " "today." msgstr "" -" Você luta para a conscientização. Estar acordado parece um pouco mais " -"difícil de alcançar hoje." #: lang/json/snippet_from_json.py msgid "" "Getting out of bed only comes with great difficulty, and your muscles resist" " the movement." msgstr "" -" Sair da cama só vem com grande dificuldade, e seus músculos resistem ao " -"movimento." #: lang/json/snippet_from_json.py msgid "" "Getting up seems like it should be easy, but all you want to do is go back " "to bed." msgstr "" -" Levantar-se parece que deve ser fácil, mas tudo o que você quer fazer é " -"voltar para a cama." #: lang/json/snippet_from_json.py msgid "" "Tired hands rub at your eyes, the little aches of yesterday protesting your " "stretches." msgstr "" -" Mãos cansadas esfregam seus olhos, as pequenas dores de ontem protestando " -"contra seus alongamentos." #: lang/json/snippet_from_json.py msgid "" "Alertness seems flighty today, and your body argues when you move towards " "it." msgstr "" -" Prontidão parece fugaz hoje, e seu corpo argumenta quando você se move em " -"direção a ele." #: lang/json/snippet_from_json.py msgid "You're up, but your body seems like it would rather stay in bed." @@ -136098,587 +120987,581 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "You feel awful, and every ache from yesterday is still there." -msgstr "Você se sente horrível e toda a dor de ontem ainda está lá." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "Your eyes struggle to open, and your muscles ache like you didn't sleep at " "all." msgstr "" -" Seus olhos se esforçam para abrir e seus músculos doem como se você não " -"tivesse dormido nada." #: lang/json/snippet_from_json.py msgid "" "Bleary-eyed and half-asleep, you consider why you are doing this to " "yourself." msgstr "" -" Com os olhos turvos e meio adormecidos, você considera por que está fazendo" -" isso consigo mesmo." #: lang/json/snippet_from_json.py msgid "" "Awareness seems to only come with a battle... and your body seem to be on " "its side." msgstr "" -" Consciência parece vir apenas com uma batalha ... e seu corpo parece estar " -"do seu lado." #: lang/json/snippet_from_json.py msgid "popular " -msgstr "popular" +msgstr "" #: lang/json/snippet_from_json.py msgid "top-forty " -msgstr "top-quarenta" +msgstr "" #: lang/json/snippet_from_json.py msgid "corporate " -msgstr "corporativo" +msgstr "" #: lang/json/snippet_from_json.py msgid "commercial " -msgstr "comercial" +msgstr "" #: lang/json/snippet_from_json.py msgid "alternative " -msgstr "alternativa" +msgstr "" #: lang/json/snippet_from_json.py msgid "college " -msgstr "Faculdade" +msgstr "" #: lang/json/snippet_from_json.py msgid "arthouse " -msgstr "arthouse" +msgstr "" #: lang/json/snippet_from_json.py msgid "underground " -msgstr "subterrâneo" +msgstr "" #: lang/json/snippet_from_json.py msgid "experimental " -msgstr "experimental" +msgstr "" #: lang/json/snippet_from_json.py msgid "forgotten " -msgstr "esquecido" +msgstr "" #: lang/json/snippet_from_json.py msgid "traditional " -msgstr "tradicional" +msgstr "" #: lang/json/snippet_from_json.py msgid "historical " -msgstr "histórico" +msgstr "" #: lang/json/snippet_from_json.py msgid "classic " -msgstr "clássico" +msgstr "" #: lang/json/snippet_from_json.py msgid "modern " -msgstr "moderno" +msgstr "" #: lang/json/snippet_from_json.py msgid "adult " -msgstr "adulto" +msgstr "" #: lang/json/snippet_from_json.py msgid "contemporary " -msgstr "contemporâneo" +msgstr "" #: lang/json/snippet_from_json.py msgid "Christian " -msgstr "cristão" +msgstr "" #: lang/json/snippet_from_json.py msgid "Pagan " -msgstr "Pagão" +msgstr "" #: lang/json/snippet_from_json.py msgid "British " -msgstr "britânico" +msgstr "" #: lang/json/snippet_from_json.py msgid "Continental " -msgstr "Continental" +msgstr "" #: lang/json/snippet_from_json.py msgid "tropical " -msgstr "tropical" +msgstr "" #: lang/json/snippet_from_json.py msgid "island " -msgstr "ilha" +msgstr "" #: lang/json/snippet_from_json.py msgid "New York " -msgstr "Nova york" +msgstr "" #: lang/json/snippet_from_json.py msgid "Hollywood " -msgstr "Hollywood" +msgstr "" #: lang/json/snippet_from_json.py msgid "Trans-Pacific " -msgstr "Trans-Pacífico" +msgstr "" #: lang/json/snippet_from_json.py msgid "Latin " -msgstr "Latim" +msgstr "" #: lang/json/snippet_from_json.py msgid "instrumental " -msgstr "instrumental" +msgstr "" #: lang/json/snippet_from_json.py msgid "fusion " -msgstr "fusão" +msgstr "" #: lang/json/snippet_from_json.py msgid "visual " -msgstr "visual" +msgstr "" #: lang/json/snippet_from_json.py msgid "liquid " -msgstr "líquido" +msgstr "" #: lang/json/snippet_from_json.py msgid "digital " -msgstr "digital" +msgstr "" #: lang/json/snippet_from_json.py msgid "procedurally generated " -msgstr "gerado processualmente" +msgstr "" #: lang/json/snippet_from_json.py msgid "melodic " -msgstr "melódico" +msgstr "" #: lang/json/snippet_from_json.py msgid "harmonious " -msgstr "harmonioso" +msgstr "" #: lang/json/snippet_from_json.py msgid "discordant " -msgstr "discordante" +msgstr "" #: lang/json/snippet_from_json.py msgid "contextual " -msgstr "contextual" +msgstr "" #: lang/json/snippet_from_json.py msgid "conceptual " -msgstr "conceptual" +msgstr "" #: lang/json/snippet_from_json.py msgid "collaborative " -msgstr "colaborativo" +msgstr "" #: lang/json/snippet_from_json.py msgid "rhythmic " -msgstr "rítmico" +msgstr "" #: lang/json/snippet_from_json.py msgid "neo" -msgstr "neo" +msgstr "" #: lang/json/snippet_from_json.py msgid "retro" -msgstr "retrô" +msgstr "" #: lang/json/snippet_from_json.py msgid "post" -msgstr "postar" +msgstr "" #: lang/json/snippet_from_json.py msgid "anti" -msgstr "anti" +msgstr "" #: lang/json/snippet_from_json.py msgid "hard " -msgstr "Difícil" +msgstr "" #: lang/json/snippet_from_json.py msgid "soft " -msgstr "suave" +msgstr "" #: lang/json/snippet_from_json.py msgid "speed " -msgstr "Rapidez" +msgstr "" #: lang/json/snippet_from_json.py msgid "slow " -msgstr "lento" +msgstr "" #: lang/json/snippet_from_json.py msgid "hi-fi " -msgstr "oi-fi" +msgstr "" #: lang/json/snippet_from_json.py msgid "lo-fi " -msgstr "lo-fi" +msgstr "" #: lang/json/snippet_from_json.py msgid "mid-fi " -msgstr "meio fi" +msgstr "" #: lang/json/snippet_from_json.py msgid "ambient " -msgstr "ambiente" +msgstr "" #: lang/json/snippet_from_json.py msgid "dance " -msgstr "dança" +msgstr "" #: lang/json/snippet_from_json.py msgid "chill " -msgstr "calafrio" +msgstr "" #: lang/json/snippet_from_json.py msgid "psycho" -msgstr "psicopata" +msgstr "" #: lang/json/snippet_from_json.py msgid "turbo" -msgstr "turbo" +msgstr "" #: lang/json/snippet_from_json.py msgid "prog " -msgstr "prog" +msgstr "" #: lang/json/snippet_from_json.py msgid "glam " -msgstr "glamour" +msgstr "" #: lang/json/snippet_from_json.py msgid "outsider " -msgstr "estranho" +msgstr "" #: lang/json/snippet_from_json.py msgid "indie " -msgstr "indie" +msgstr "" #: lang/json/snippet_from_json.py msgid "dark " -msgstr "Sombrio" +msgstr "" #: lang/json/snippet_from_json.py msgid "death " -msgstr "morte" +msgstr "" #: lang/json/snippet_from_json.py msgid "electro" -msgstr "eletro" +msgstr "" #: lang/json/snippet_from_json.py msgid "acid " -msgstr "ácido" +msgstr "" #: lang/json/snippet_from_json.py msgid "space " -msgstr "espaço" +msgstr "" #: lang/json/snippet_from_json.py msgid "ghetto " -msgstr "gueto" +msgstr "" #: lang/json/snippet_from_json.py msgid "street " -msgstr "rua" +msgstr "" #: lang/json/snippet_from_json.py msgid "urban " -msgstr "urbano" +msgstr "" #: lang/json/snippet_from_json.py msgid "world " -msgstr "mundo" +msgstr "" #: lang/json/snippet_from_json.py msgid "Euro" -msgstr "euro" +msgstr "" #: lang/json/snippet_from_json.py msgid "Afro" -msgstr "Afro" +msgstr "" #: lang/json/snippet_from_json.py msgid "grunge " -msgstr "grunge" +msgstr "" #: lang/json/snippet_from_json.py msgid "brass " -msgstr "latão" +msgstr "" #: lang/json/snippet_from_json.py msgid "splatter " -msgstr "respingar" +msgstr "" #: lang/json/snippet_from_json.py msgid "swamp " -msgstr "pântano" +msgstr "" #: lang/json/snippet_from_json.py msgid "ghost " -msgstr "fantasma" +msgstr "" #: lang/json/snippet_from_json.py msgid "shadow " -msgstr "sombra" +msgstr "" #: lang/json/snippet_from_json.py msgid "neuro " -msgstr "neuro" +msgstr "" #: lang/json/snippet_from_json.py msgid "hyper" -msgstr "hiperativo" +msgstr "" #: lang/json/snippet_from_json.py msgid "carnival" -msgstr "carnaval" +msgstr "" #: lang/json/snippet_from_json.py msgid "meta" -msgstr "meta" +msgstr "" #: lang/json/snippet_from_json.py msgid "techno" -msgstr "techno" +msgstr "" #: lang/json/snippet_from_json.py msgid "synth" -msgstr "synth" +msgstr "" #: lang/json/snippet_from_json.py msgid "robo" -msgstr "assalto" +msgstr "" #: lang/json/snippet_from_json.py msgid "skate " -msgstr "patim" +msgstr "" #: lang/json/snippet_from_json.py msgid "freak " -msgstr "aberração" +msgstr "" #: lang/json/snippet_from_json.py msgid "surf " -msgstr "surfar" +msgstr "" #: lang/json/snippet_from_json.py msgid "mutant " -msgstr "mutante" +msgstr "" #: lang/json/snippet_from_json.py msgid "Jurassic " -msgstr "jurássico" +msgstr "" #: lang/json/snippet_from_json.py msgid "free " -msgstr "livre" +msgstr "" #: lang/json/snippet_from_json.py msgid "garage " -msgstr "garagem" +msgstr "" #: lang/json/snippet_from_json.py msgid "garbage " -msgstr "lixo" +msgstr "" #: lang/json/snippet_from_json.py msgid "break " -msgstr "quebrar" +msgstr "" #: lang/json/snippet_from_json.py msgid "laser " -msgstr "laser" +msgstr "" #: lang/json/snippet_from_json.py msgid "porno " -msgstr "pornô" +msgstr "" #: lang/json/snippet_from_json.py msgid "hypno" -msgstr "hypno" +msgstr "" #: lang/json/snippet_from_json.py msgid "lunar " -msgstr "lunar" +msgstr "" #: lang/json/snippet_from_json.py msgid "thunder " -msgstr "trovão" +msgstr "" #: lang/json/snippet_from_json.py msgid "clown " -msgstr "palhaço" +msgstr "" #: lang/json/snippet_from_json.py msgid "murder " -msgstr "assassinato" +msgstr "" #: lang/json/snippet_from_json.py msgid "narco " -msgstr "narco" +msgstr "" #: lang/json/snippet_from_json.py msgid "gangster " -msgstr "gangster" +msgstr "" #: lang/json/snippet_from_json.py msgid "-tune" -msgstr "-afinação" +msgstr "" #: lang/json/snippet_from_json.py msgid "-core" -msgstr "-testemunho" +msgstr "" #: lang/json/snippet_from_json.py msgid "-wave" -msgstr "-onda" +msgstr "" #: lang/json/snippet_from_json.py msgid "-beat" -msgstr "-batida" +msgstr "" #: lang/json/snippet_from_json.py msgid "-step" -msgstr "-degrau" +msgstr "" #: lang/json/snippet_from_json.py msgid "-pop" -msgstr "-pop" +msgstr "" #: lang/json/snippet_from_json.py msgid "-hop" -msgstr "-pulo" +msgstr "" #: lang/json/snippet_from_json.py msgid "-drums" -msgstr "-bateria" +msgstr "" #: lang/json/snippet_from_json.py msgid "-style" -msgstr "-estilo" +msgstr "" #: lang/json/snippet_from_json.py msgid "-chant" -msgstr "-Sing" +msgstr "" #: lang/json/snippet_from_json.py msgid "folk" -msgstr "pessoas" +msgstr "" #: lang/json/snippet_from_json.py msgid "country" -msgstr "país" +msgstr "" #: lang/json/snippet_from_json.py msgid "jazz" -msgstr "jazz" +msgstr "" #: lang/json/snippet_from_json.py msgid "blues" -msgstr "blues" +msgstr "" #: lang/json/snippet_from_json.py msgid "soul" -msgstr "alma" +msgstr "" #: lang/json/snippet_from_json.py msgid "R&B" -msgstr "R & B" +msgstr "" #: lang/json/snippet_from_json.py msgid "hip-hop" -msgstr "hip hop" +msgstr "" #: lang/json/snippet_from_json.py msgid "swing" -msgstr "balanço" +msgstr "" #: lang/json/snippet_from_json.py msgid "funk" -msgstr "funk" +msgstr "" #: lang/json/snippet_from_json.py msgid "disco" -msgstr "disco" +msgstr "" #: lang/json/snippet_from_json.py msgid "polka" -msgstr "polca" +msgstr "" #: lang/json/snippet_from_json.py msgid "tango" -msgstr "tango" +msgstr "" #: lang/json/snippet_from_json.py msgid "salsa" -msgstr "salsa" +msgstr "" #: lang/json/snippet_from_json.py msgid "mambo" -msgstr "coisas" +msgstr "" #: lang/json/snippet_from_json.py msgid "electronic" -msgstr "eletrônico" +msgstr "" #: lang/json/snippet_from_json.py msgid "metal" -msgstr "metal" +msgstr "" #: lang/json/snippet_from_json.py msgid "reaggae" -msgstr "reaggae" +msgstr "" #: lang/json/snippet_from_json.py msgid "ska" -msgstr "deveria" +msgstr "" #: lang/json/snippet_from_json.py msgid "thrash" -msgstr "thrash" +msgstr "" #: lang/json/snippet_from_json.py msgid "goth" -msgstr "gótico" +msgstr "" #: lang/json/snippet_from_json.py msgid "industrial" -msgstr "industrial" +msgstr "" #: lang/json/snippet_from_json.py msgid "psychedelic" -msgstr "psicodélico" +msgstr "" #: lang/json/snippet_from_json.py msgid "noise" -msgstr "barulho" +msgstr "" #: lang/json/snippet_from_json.py msgid "sound" -msgstr "som" +msgstr "" #: lang/json/snippet_from_json.py msgid "revival" -msgstr "renascimento" +msgstr "" #: lang/json/snippet_from_json.py msgid "gospel" -msgstr "gospel" +msgstr "" #: lang/json/snippet_from_json.py msgid "opera" -msgstr "ópera" +msgstr "" #: lang/json/snippet_from_json.py msgid "shanties" -msgstr "casebres" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -136687,11 +121570,6 @@ msgid "" " woman stares intently at a gigantic wedding cake covered with bacon and " "candy bars. The caption reads: \"Burn calories! Burn!\"" msgstr "" -" Este é um anúncio para o CBM do Metabolic Exchange da marca Diet Devil. Ele" -" mostra uma foto de um demônio obeso minúsculo sentado no ombro de uma " -"mulher. A mulher olha atentamente para um gigantesco bolo de casamento " -"coberto com bacon e barras de chocolate. A legenda diz: \\ 'Queimar " -"calorias! Queime! \"" #: lang/json/snippet_from_json.py msgid "" @@ -136700,10 +121578,6 @@ msgid "" "is about to bite into a frosting-covered baby. The caption reads: \"Eat " "What You Want! How You Want! Who You Want!\"" msgstr "" -" Este é um anúncio para o CBM do Forno Interno da marca Diet Devil. Ele " -"mostra uma foto de um pequeno diabo obeso sentado no ombro de um homem. O " -"homem está prestes a morder um bebê coberto de geada. A legenda diz: 'Coma o" -" que você quer! Como você quer! Quem você quer!'" #: lang/json/snippet_from_json.py msgid "" @@ -136712,10 +121586,6 @@ msgid "" "whiskey. A tiny obese devil sits on his shoulder and drinks a martini. The" " caption reads: \"Drink like there's no tomorrow!\"" msgstr "" -" Este é um anúncio para o CBM do Ethanol Burner da marca Diet Devil. Ele " -"mostra uma foto de um adolescente dirigindo um carro enquanto bebia uma " -"garrafa de uísque. Um diabinho obeso minúsculo senta-se em seu ombro e bebe " -"um martini. A legenda diz: 'Beba como se não houvesse amanhã!" #: lang/json/snippet_from_json.py msgid "" @@ -136724,10 +121594,6 @@ msgid "" "captions read: \"Get the new Model 28.bx Eagle-Eye!\" and \"Twenty8. See " "what you've been missing.\"" msgstr "" -" Esta é uma propaganda para o CBM Diamond Cornea da marca Twenty8. Ele " -"mostra uma imagem do módulo cibernético sendo segurado por uma águia em vôo." -" As legendas diziam: \\ 'Obtenha o novo modelo 28.bx Eagle-Eye! \\' E \" " -"'Twenty8. Veja o que você está perdendo. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136736,10 +121602,6 @@ msgid "" "\"Get the new Model 28.hx Night-Owl!\" and \"Twenty8. See what you've been " "missing.\"" msgstr "" -" Esta é uma propaganda para o CBM da Visão Noturna Twenty8. Ele mostra uma " -"imagem de uma coruja descendo em um módulo cibernético. As legendas diziam: " -"\\ 'Pegue o novo modelo 28.hx Night-Owl! \\' E \\ 'Twenty8. Veja o que você " -"está perdendo. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136748,10 +121610,6 @@ msgid "" "captions read: \"Get the new Model 28.xx Hawk-Eye!\" and \"Twenty8. See " "what you've been missing.\"" msgstr "" -" Esta é uma propaganda para o CBM Diamond Cornea da marca Twenty8. Ele " -"mostra uma imagem de um falcão voando carregando o módulo cibernético em seu" -" bico. As legendas diziam: \\ 'Obtenha o novo modelo 28.xx Hawk-Eye! \\' E " -"\\ 'Twenty8. Veja o que você está perdendo. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136760,10 +121618,6 @@ msgid "" "captions read: \"Get the new Model 28.vx Vulture today!\" and \"Twenty8. " "See what you've been missing.\"" msgstr "" -" Esta é uma propaganda para a marca Scent Vision CBM da marca Twenty8. Ele " -"mostra uma imagem de um abutre empoleirado em uma pilha de crânios e módulos" -" cibernéticos. As legendas diziam: \\ 'Obtenha o novo modelo 28.vx Vulture " -"hoje! \\' E \\ 'Twenty8. Veja o que você está perdendo. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136771,10 +121625,6 @@ msgid "" "of a robotic phoenix covered in flames. The captions read: \"Get the new " "Model 28.tx Phoenix today!\" and \"Twenty8. See what you've been missing.\"" msgstr "" -" Este é um anúncio de um CBM de Visão Infravermelha da marca Twenty8. Mostra" -" uma imagem de uma fênix robótica coberta de chamas. As legendas diziam: \" " -"'Obtenha o novo modelo 28.tx Phoenix hoje! \\' E \\ 'Twenty8. Veja o que " -"você está perdendo. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136783,10 +121633,6 @@ msgid "" "teargas and flame. The caption reads: \"DoubleTech Industries. Built to " "Protect. Programmed to Serve.\"" msgstr "" -" Este é um anúncio para os robôs de aplicação da lei da marca DoubleTech. " -"Ele mostra uma imagem de copbot e um eyebot corajosamente emergindo de uma " -"nuvem de gás lacrimogêneo e chamas. A legenda diz: \\ 'DoubleTech " -"Industries. Construído para Proteger. Programado para Servir. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136795,10 +121641,6 @@ msgid "" "bomber painted as an American flag. The caption reads: \"Built to Protect." " Programmed to Serve.\"" msgstr "" -" Este é um anúncio para os robôs de aplicação da lei da marca DoubleTech. " -"Ele mostra uma imagem de um eyebot voando ao lado de uma águia careca e um " -"bombardeiro Stealth pintado como uma bandeira americana. A legenda diz: \" " -"'Construído para Proteger. Programado para Servir. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136806,10 +121648,6 @@ msgid "" "shows a picture of a dozen eyebots floating over a woman as she jogs through" " a park. The captions read: \"Built to Protect. Programmed to Serve.\"" msgstr "" -" Este é um anúncio para os robôs de aplicação da lei da marca DoubleTech. " -"Ele mostra uma foto de uma dúzia de olhos flutuando sobre uma mulher " -"enquanto ela corre por um parque. As legendas são: \\ 'Construído para " -"proteger. Programado para servir \"" #: lang/json/snippet_from_json.py msgid "" @@ -136818,10 +121656,6 @@ msgid "" "background a troop of boy scouts salutes the robot. The caption reads: " "\"Built to Protect. Programmed to Serve.\"" msgstr "" -" Este é um anúncio para os robôs de aplicação da lei da marca DoubleTech. " -"Mostra uma foto do copbot pulverizando com pimenta um desordeiro algemado. " -"No fundo, uma tropa de escoteiros saúda o robô. A legenda diz: \" " -"'Construído para Proteger. Programado para Servir. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136855,10 +121689,6 @@ msgid "" "patient is strapped to a chair but cheerfully gives two thumbs up. The " "caption reads: \"Free Plastic Surgery While You Wait!\"" msgstr "" -" Este é um anúncio da Cyber Boutique da Sybil. Ele mostra uma foto de várias" -" médicas vestidas de biquíni removendo a pele do rosto do homem. O paciente " -"é amarrado a uma cadeira, mas alegremente dá dois polegares para cima. A " -"legenda diz: \\ 'Cirurgia plástica gratuita enquanto você espera! \"" #: lang/json/snippet_from_json.py msgid "" @@ -136869,12 +121699,6 @@ msgid "" "something less resembling medicine. The caption reads: \"Why use old IV " "when you can have Intravenous Needle CBM!\"" msgstr "" -" Este é um anúncio da Cyber Boutique da Sybil. Ele mostra uma foto de várias" -" enfermeiras de biquíni dando remédio líquido para um paciente deliciado, " -"que usa uma agulha na ponta dos dedos para sugá-lo em suas veias. Do lado de" -" fora da janela, duas figuras de sombra usando as mesmas agulhas para " -"absorver algo menos parecido com remédio. A legenda diz: \\ 'Por que usar o " -"IV antigo quando você pode ter CBM de agulha intravenosa! \"" #: lang/json/snippet_from_json.py msgid "" @@ -136883,11 +121707,6 @@ msgid "" "foreground a blood-drenched doctor gives an exaggerated wink and two thumbs " "up. The caption reads: \"Holiday sales! Get the package deals!\"" msgstr "" -" Este é um anúncio da Cyber Boutique da Sybil. Ele mostra uma foto de um " -"homem de aparência nerd cercado por um grupo de mulheres admiradoras. Em " -"primeiro plano, um médico encharcado de sangue dá uma piscadela exagerada e " -"dois polegares para cima. A legenda diz: 'Vendas de fim de ano! Receba as " -"ofertas de pacotes! \"" #: lang/json/snippet_from_json.py #, no-python-format @@ -136908,12 +121727,6 @@ msgid "" "source of his ability. The caption reads: \"Brand new! Horse power at " "hand!\"" msgstr "" -" Este é um anúncio da Cyber Boutique da Sybil. Ele mostra uma foto de um " -"homem carregando um cavalo um pouco confuso em seus ombros. Ele é flanqueado" -" por duas enfermeiras escassamente vestidas que seguram motosserras " -"ensangüentadas e dão aprovação para aprovação. Seus joelhos e cotovelos " -"inchados são costurados e parecem ser a fonte de sua habilidade. A legenda " -"diz: \\ 'Brand new! Cavalo poder na mão! \"" #: lang/json/snippet_from_json.py msgid "" @@ -136923,11 +121736,6 @@ msgid "" "approving thumbs up from the background. The caption reads: \"Bouncy as " "never before! Absorb those shocks!\"" msgstr "" -" Este é um anúncio da Cyber Boutique da Sybil. Ele mostra uma foto de um " -"homem sorrindo enquanto é implacavelmente socado por um boxeador. Ele nem " -"sequer suou como socos não têm efeito sobre ele. Duas enfermeiras seminuas " -"dão aprovação para cima do fundo. A legenda diz: \\ 'Bouncy como nunca " -"antes! Absorver esses choques! \"" #: lang/json/snippet_from_json.py msgid "" @@ -136936,10 +121744,6 @@ msgid "" "legion of villainous looking characters. The caption reads: \"Protect " "yourself with the Rivtech caseless automagnum!\"" msgstr "" -" Esta é uma propaganda para revólveres da marca Rivtech. Ele mostra uma foto" -" de um casal bem armado em trajes de negócios com armas combinando com uma " -"legião de personagens vilões. A legenda diz: \\ 'Proteja-se com o automagnum" -" sem caixa Rivtech! \"" #: lang/json/snippet_from_json.py msgid "" @@ -136948,10 +121752,6 @@ msgid "" " viewer. The caption reads: \"Rivtech caseless firearms proudly supports " "our Military.\"" msgstr "" -" Esta é uma propaganda para rifles da marca Rivtech. Ele mostra uma foto de " -"um soldado sorridente com um rifle futurista em seu ombro saudando o " -"espectador. A legenda diz: \\ 'Rivtech armas de fogo sem casar " -"orgulhosamente apóia nossas Forças Armadas. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136961,11 +121761,6 @@ msgid "" "approaching wildlife. The caption reads: \"Rivtech caseless firearms. " "Superior stopping power.\"" msgstr "" -" Esta é uma propaganda para as armas de fogo da marca Rivtech. Mostra uma " -"imagem de um trio de caçadores bem armados. Os três estão armados com " -"diferentes armas de aparência futurista e estão atirando contra uma multidão" -" hostil de animais selvagens que se aproximam. A legenda diz: \" 'armas de " -"fogo sem caixa Rivtech. Poder de parada superior. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136975,11 +121770,6 @@ msgid "" "synthetic adenosine triphosphate recovery system on the market.\" and " "\"Rivtech Bionics, guaranteed for life.\"" msgstr "" -" Esta é uma propaganda para o CBM de aumento muscular da Rivtech. Mostra uma" -" imagem de um lobo estilizado e uivante contra um fundo vermelho. A legenda " -"diz: \\ 'Biônica de myomer neurorreativa Rivtech. O sistema de recuperação " -"de adenosina trifosfato sintético mais eficiente no mercado. \\' E \" " -"'Rivetech Bionics, garantido para a vida. \"" #: lang/json/snippet_from_json.py msgid "" @@ -136989,11 +121779,6 @@ msgid "" " in quantum inductive piezochemical nerve stimulation technology.\" and " "\"Rivtech Bionics, guaranteed for life.\"" msgstr "" -" Esta é uma propaganda para a Wired Reflexes CBM da marca Rivtech. Mostra " -"uma imagem de um gato preto estilizado e rosnado contra um fundo vermelho. A" -" legenda diz: \\ 'Biônica de estimulação neuroelétrica Rivtech. O próximo " -"nível em tecnologia de estimulação nervosa piezoquímica indutiva quântica. " -"\\' E \\ 'Rivtech Bionics, garantido para toda a vida. \"" #: lang/json/snippet_from_json.py msgid "" @@ -137003,11 +121788,6 @@ msgid "" "\"Rivtech retractable monomolecular blade system. Failure is never an " "option.\" and \"Rivtech Bionics, guaranteed for life.\"" msgstr "" -" Esta é uma propaganda para o CBM de Lâmina Monomolecular da marca Rivtech. " -"Ele mostra uma foto de uma mulher com uma lâmina biônica que se estende do " -"braço dela, defendendo firmemente seus filhos de um urso raivoso. A legenda " -"diz: \\ 'Sistema de lâmina monomolecular retrátil Rivtech. A falha nunca é " -"uma opção. \\' E \\ 'Rivtech Bionics, garantido por toda a vida. \"" #: lang/json/snippet_from_json.py msgid "" @@ -137017,12 +121797,6 @@ msgid "" "system. The latest in synthetic high-performance glycoprotein deposition " "technology.\" and \"Rivtech Bionics, guaranteed for life.\"" msgstr "" -" Este é um anúncio da marca Rivapech Synaptic Accelerator CBM. Ele mostra " -"uma imagem de um corvo estilizado e voando contra um fundo vermelho. A " -"legenda diz: \\ 'Apresentando o sistema de retrovírus de mielinização " -"Rivtech Model Six. O mais recente em tecnologia sintética de deposição de " -"glicoproteína de alto desempenho. \\' E \\ 'Rivtech Bionics, garantido por " -"toda a vida. \"" #: lang/json/snippet_from_json.py msgid "" @@ -137032,10 +121806,6 @@ msgid "" " The caption reads: \"Rivtech 8x40mm caseless. Nothing else comes " "close.\"" msgstr "" -" Esta é uma propaganda da munição da marca Rivtech. Ele mostra uma imagem de" -" uma placa de aço blindada com um buraco aberto no meio. Sentado ao lado da " -"placa há um bloco de munição sem cor e brilhante. A legenda diz: \\ 'Rivtech" -" 8x40mm sem caixa. Nada mais se aproxima. \"" #: lang/json/snippet_from_json.py msgid "" @@ -137047,13 +121817,6 @@ msgid "" "The caption reads: \"A well-armed community is a SAFE community. Leadworks," " LLC.\"" msgstr "" -" Este é um anúncio para o Starter Pack Home Frontier da Leadworks LLC. Ele " -"mostra uma foto de um jovem pai suburbano, equipado com rifle e revólver, " -"mantendo um olho de aço no bairro da varanda da frente. Pais igualmente " -"armados são visíveis na frente de todas as casas da rua. As crianças " -"pequenas estão brincando e as mais velhas cuidam de uma grande horta. A " -"legenda diz: \\ 'Uma comunidade bem armada é uma comunidade SAFE. Leadworks," -" LLC. \"" #: lang/json/snippet_from_json.py msgid "" @@ -137074,13 +121837,6 @@ msgid "" "for that extra punch, and we offer semiautomatic (but equally robust!) " "versions for the civilian market. Leadworks, LLC.\"" msgstr "" -" Este é um anúncio para pistolas Leadworks LLC. Ele mostra uma foto de um " -"policial biônico ajudando um jovem casal, que estava sendo atacado por uma " -"gangue de rufiões. A legenda diz: 'Você não precisa anular sua garantia ou " -"usar seu dedão para conseguir poder de fogo do tipo criminoso. O L39B, " -"testado e comprovado pelos nossos finíssimos ciborgues em azul, está " -"disponível em .45 ACP para esse efeito extra. e oferecemos versões semi- " -"automáticas (mas igualmente robustas!) para o mercado civil." #: lang/json/snippet_from_json.py msgid "" @@ -137094,16 +121850,6 @@ msgid "" "portable conversion kits to swap from house-to-house CQB carbine to rooftop-" "patrol DSR, safely and cleanly!\"" msgstr "" -" Esta é uma propaganda para as armas modulares da Leadworks LLC. Ele mostra " -"uma foto de um sargento da polícia que trabalha pesado, mas ainda assim " -"grato, montando um rifle elegante, com armas de aparência semelhante " -"empilhadas atrás dela. A legenda diz: \\ 'A Leadworks se orgulha de oferecer" -" o sistema de armas modular L523. Não é mais necessário blindar ações e " -"manter pilhas e pilhas de rifles, carabinas e armas de apoio a esquadrões, " -"fazendo malabarismos com vários tipos de munição incompatíveis! Basta " -"adquirir uma unidade básica para cada Trooper, e use nossos kits de " -"conversão leves e portáteis para trocar de carabina CQB casa-a-casa para DSR" -" de patrulha de telhado, de forma segura e limpa!" #: lang/json/snippet_from_json.py msgid "" @@ -137114,13 +121860,6 @@ msgid "" "frequently with soap and water. In light of recent events, the CDC also " "recommends an annual flu vaccine for everyone 6 months of age and older." msgstr "" -" Este é um aviso público do Centers for Disease Control. Sua mensagem, " -"repetida em vários idiomas, diz: Devido à crescente ameaça da chamada 'Febre" -" Verde', o CDC gostaria de lembrar ao público que cubra o nariz e a boca com" -" um lenço de papel quando tossir ou espirrar e lavar o rosto. mãos " -"freqüentemente com sabão e água. À luz dos recentes acontecimentos, o CDC " -"também recomenda uma vacina contra a gripe anual para todos os 6 meses de " -"idade ou mais." #: lang/json/snippet_from_json.py msgid "" @@ -137132,13 +121871,6 @@ msgid "" "treatment camp by authorized agents of the United States military. Thank " "you for your compliance." msgstr "" -" Esta é uma mensagem pública da Agência Federal de Gerenciamento de " -"Emergências. Sua mensagem, repetida em vários idiomas, diz: FIQUE EM SUAS " -"CASAS! O governo dos EUA está tomando medidas para deter a atual epidemia de" -" 'Febre Verde' e a ajuda está atualmente a caminho de áreas atingidas. Em " -"nome da segurança pública, você é ordenado a permanecer em suas casas até " -"ser evacuado para um campo de tratamento por agentes autorizados dos " -"militares dos Estados Unidos. Obrigado pela sua conformidade." #: lang/json/snippet_from_json.py msgid "" @@ -137149,13 +121881,6 @@ msgid "" "reporting. All official evacuation points are death-traps. Secure supplies" " and escape the cities while there is still time." msgstr "" -" Este é um aviso público de uma fonte não identificada. Sua mensagem " -"desconexa, mal fotocopiada em ambos os lados da página, diz: Não acredite " -"nas mentiras! O Exército está cercando as pessoas nos campos da morte " -"enquanto a Febre Verde se espalha como um incêndio. Não acredite no que o " -"noticiário principal está reportando. Todos os pontos oficiais de evacuação " -"são armadilhas mortais. Garantir suprimentos e escapar das cidades enquanto " -"ainda há tempo." #: lang/json/snippet_from_json.py msgid "" @@ -137165,11 +121890,6 @@ msgid "" "IS JUST! YOU WILL BE DIVIDED FATHER AGAINST SON AND MOTHER AGAINST CHILD " "UNTO THE VERY LAST SINNER!" msgstr "" -" Esta é uma mensagem pública de uma fonte não identificada. Sua mensagem, " -"fotocopiada de uma cópia manuscrita rabiscada, diz: ARREPENDA SEUS PECADOS A" -" BABILÔNIA PELO TEMPO DE SEU JULGAMENTO ESTÁ NOITE! Olhe para a sua " -"destruição e saiba que é apenas! VOCÊ SERÁ DIVIDIDO PAI CONTRA O FILHO E A " -"MÃE CONTRA A CRIANÇA ATÉ O ÚLTIMO PECADOR!" #: lang/json/snippet_from_json.py msgid "" @@ -137180,12 +121900,6 @@ msgid "" "authorized military personnel. This curfew will remain in effect until " "further notice. Stay indoors. Violators will be shot on sight." msgstr "" -" Este é um aviso público do exército dos Estados Unidos. Sua breve mensagem," -" repetida em vários idiomas, diz: O Presidente dos Estados Unidos declarou " -"uma lei marcial unilateral que afeta toda a nação. Abrigo no local até ser " -"evacuado para um campo apropriado de gerenciamento de emergência por pessoal" -" militar autorizado. Este toque de recolher permanecerá em vigor até novo " -"aviso. Fique dentro de casa. Violadores serão baleados à vista." #: lang/json/snippet_from_json.py msgid "" @@ -137199,16 +121913,6 @@ msgid "" "ataxia, amnesia, mania, stroke, neurodegeneration, malignalitaloptereosis, " "necrotizing fasciitis, recurrent flu, and pinkeye." msgstr "" -" Este é um anúncio da bebida energética 'ATOMIC POWER THIRST' da " -"Rivtech. Embora pretenda anunciar um novo sabor chamado Isotope RU-238 " -"'FRUIT', a maior parte do texto é dedicada a uma longa lista de " -"possíveis efeitos colaterais: ansiedade, insônia, insônia severa, tontura, " -"tremores, náusea, dor de cabeça, vômitos, delírios, alucinações, " -"rabdomiólise, queimaduras internas, câncer de tireoide, hemorragia interna " -"extensa, hemorragia digestiva alta, diarréia, disritmia cardíaca, colapso " -"cardiovascular, ideação suicida, convulsões, ataxia, amnésia, mania, " -"acidente vascular cerebral, neurodegeneração, malignipitalitopoose, fasciite" -" necrosante, gripe recorrente e olho Rosa." #: lang/json/snippet_from_json.py msgid "" @@ -137217,10 +121921,6 @@ msgid "" "poster reads, \"Cascade Cola, for those special moments\" in bold white " "letters." msgstr "" -" Este é um anúncio de refrigerante. Na frente é uma foto de um casal feliz " -"em uma praia assistindo o pôr do sol. Entre eles estão garrafas de " -"refrigerante. O cartaz diz: 'Cascata Cola, para aqueles momentos especiais' " -"em letras brancas em negrito." #: lang/json/snippet_from_json.py msgid "" @@ -137229,19 +121929,12 @@ 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 "" -" Este é um folheto para uma cadeia alimentar rápida. Nele, um homem está " -"colocando uma ordem com uma mulher atraente vestindo uma camisa verde " -"brilhante na janela com duas crianças felizes sentadas no banco de trás. O " -"panfleto diz: 'Hambúrgueres, batatas fritas e um sorriso.' Em um canto há um" -" logotipo da empresa." #: lang/json/snippet_from_json.py msgid "" "This is an advertisement for soda. It shows a dark brown can of soda on a " "black background. The label reads \"Spin\"." msgstr "" -" Este é um anúncio de refrigerante. Ele mostra uma lata marrom escura de " -"refrigerante em um fundo preto. O rótulo indica 'Spin'." #: lang/json/snippet_from_json.py msgid "" @@ -137249,9 +121942,6 @@ msgid "" "Italian holding a pizza, with the words \"It's a goooood pizza\" written " "above his head." msgstr "" -" Este é um panfleto para uma cadeia de pizza local. Nele está uma foto de um" -" desenho animado italiano segurando uma pizza, com as palavras 'É uma pizza " -"goooood', escrito acima de sua cabeça." #: lang/json/snippet_from_json.py msgid "" @@ -137259,9 +121949,6 @@ msgid "" "shot eye with a rather long block of information beneath it making some " "fairly exaggerated claims about the product." msgstr "" -" Esta é uma das lentes de contato de propaganda de cartazes. Nela está uma " -"foto de um olho de sangue com um longo bloco de informações embaixo, fazendo" -" algumas afirmações bastante exageradas sobre o produto." #: lang/json/snippet_from_json.py msgid "" @@ -137269,9 +121956,6 @@ msgid "" "colors and patterns, but no definite message other than \"104.4 all the " "best, all the time!\" in big yellow letters." msgstr "" -" Este é um panfleto anunciando uma estação de rádio local. Tem muitas cores " -"e padrões brilhantes, mas nenhuma mensagem definida além de \\ '104.4 tudo " -"de melhor, o tempo todo! \\' Em grandes letras amarelas." #: lang/json/snippet_from_json.py msgid "" @@ -137280,10 +121964,6 @@ msgid "" "claymore walking towards the viewer. At his side is his trusty cyberdog " "companion and in the background is an explosion." msgstr "" -" Este é um cartaz de filme grande para \\ 'Action Packstone 6, vingança dos " -"homens do cão \\'. Mostra um homem em forma de jaqueta de couro com um " -"revólver e uma claymore caminhando em direção ao espectador. Ao seu lado " -"está sua fiel companheira cyberdog e ao fundo é uma explosão." #: lang/json/snippet_from_json.py msgid "" @@ -137292,10 +121972,6 @@ msgid "" "\"Improving the world, one tank at a time.\" is written across the top in " "small letters." msgstr "" -" Este é um cartaz ilustrado para uma marca de carro solar. O veículo está " -"dirigindo através de um lado do país exuberante como os animais pequenos " -"olham. O slogan 'Melhorando o mundo, um tanque de cada vez' é escrito na " -"parte superior em letras pequenas." #: lang/json/snippet_from_json.py msgid "" @@ -137305,11 +121981,6 @@ msgid "" "letters. Someone has colored in the sun with a black marker. The words " "\"oh Discordia\" are scrawled across the top." msgstr "" -" Este é um anúncio de refrigerante. Na frente é uma foto de um casal feliz " -"em uma praia assistindo o pôr do sol. Entre eles estão garrafas de " -"refrigerante. O cartaz diz: 'Cascata Cola, para aqueles momentos especiais' " -"em letras brancas em negrito. Alguém coloriu ao sol com um marcador preto. " -"As palavras \\ 'oh Discordia \\' estão escritas no topo." #: lang/json/snippet_from_json.py msgid "" @@ -137320,12 +121991,6 @@ msgid "" "this one with a permanent marker. It is now covered in rude images and " "racial epithets." msgstr "" -" Este é um folheto para uma cadeia alimentar rápida. Nele, um homem está " -"colocando uma ordem com uma mulher atraente vestindo uma camisa verde " -"brilhante na janela com duas crianças felizes no banco de trás. O panfleto " -"lê 'Hambúrgueres, batatas fritas e um sorriso' em um canto é um logotipo da " -"empresa. Alguém foi para a cidade com um marcador permanente. Agora está " -"coberto de imagens rudes e epítetos raciais." #: lang/json/snippet_from_json.py msgid "" @@ -137334,10 +121999,6 @@ msgid "" "above his head. Someone has drawn an exaggerated mustache on the cartoon " "Italian, along with a pair of crude, oversized breasts." msgstr "" -" Este é um folheto para uma cadeia de pizza local. Nele está uma foto de um " -"desenho animado italiano segurando uma pizza, com as palavras 'É uma pizza " -"goooood', escrito acima de sua cabeça. Alguém desenhou um bigode exagerado " -"no desenho animado italiano, junto com um par de seios crus e enormes." #: lang/json/snippet_from_json.py msgid "" @@ -137346,10 +122007,6 @@ msgid "" " off, and written in jagged letters across the top in red crayon are the " "words \"ALL HAIL THE CRIMSON KING!\"." msgstr "" -" Esta é uma das lentes de contato de propaganda de cartazes. É uma foto de " -"um olho de sangue. Alguém desfigurou esse aqui. A parte informativa foi " -"arrancada, e escrita em letras irregulares na parte superior em lápis " -"vermelho estão as palavras 'ALL HAIL THE CRIMSON KING!'." #: lang/json/snippet_from_json.py msgid "" @@ -137359,11 +122016,6 @@ 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 "" -" Este é um cartaz ilustrado para uma marca de carro solar. O veículo está " -"dirigindo através de um lado do país exuberante como os animais pequenos " -"olham. O slogan 'Melhorando o mundo, um tanque de cada vez' é escrito na " -"parte superior. Alguém usou uma caneta azul para escrever “quem se importa” " -"com o slogan e colocar o X sobre os olhos de todos os animais." #: lang/json/snippet_from_json.py msgid "" @@ -137373,12 +122025,6 @@ 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 "" -" Este é um cartaz anunciando um bunker subterrâneo. O cartaz mostra uma " -"bomba nuclear destruindo uma cidade enquanto uma família se acomoda em " -"segurança no subsolo. Há um slogan \\ 'Preocupado com o ataque inimigo? Quer" -" proteger sua família? Junte-se ao programa VAULT hoje. \\', Que está " -"escrito no meio. No entanto, parece não haver informações sobre * como * " -"alguém pode fazê-lo." #: lang/json/snippet_from_json.py msgid "" @@ -137388,11 +122034,6 @@ msgid "" " The caption reads \"When you chose Red Ryder, you invested in the American" " Dream. You invested in our Independence.\"" msgstr "" -" Este é um panfleto para Red Ryder BBGuns. Nela, uma criança puxa um vagão " -"vermelho brilhante com um faisão sobre ele e um rifle de madeira sobre um " -"dos ombros. A criança tem um cachorro ao lado dele e um olhar satisfeito no " -"rosto. A legenda diz: 'Quando você escolheu Red Ryder, investiu no Sonho " -"Americano. Você investiu em nossa Independência." #: lang/json/snippet_from_json.py msgid "" @@ -137403,13 +122044,6 @@ msgid "" " out of the advert. The caption reads \"Witness the rebirth of New Noir " "with 'Jersey Shore Blues'. Starring Jenifer Languiz as 'Snookie'!\"" msgstr "" -" Este é um folheto antigo para um filme dos anos 30. Um homem bronzeado, com" -" cabelos negros escorregadios e músculos protuberantes através de seu terno " -"branco, está segurando uma mulher no quadril com uma mão, e a mulher está " -"usando um vestido de couro preto. Com os quadris espalhados, ela está " -"segurando uma pistola em uma mão e estrelando diretamente fora do anúncio. A" -" legenda diz: 'Testemunhe o renascimento de New Noir com 'Jersey Shore " -"Blues'. Estrelando Jenifer Languiz como 'Snookie'! \"" #: lang/json/snippet_from_json.py msgid "" @@ -137418,18 +122052,12 @@ msgid "" " in which the essence of life is discovered through meticulous inward study " "and pious donations." msgstr "" -" 'Você encontrou (y) nosso salvador hoje? Átomo está aqui para você, está " -"dentro de você!' Este folheto marcou a crescente popularidade do Culto " -"Atômico, uma religião na qual a essência da vida é descoberta através de " -"estudo interno meticuloso e doações piedosas." #: lang/json/snippet_from_json.py msgid "" "\"Joe's Diner; 1/2 pound of meat, 3 toppings, 'your choice', all with a side" " of freedom fries and a BIG Gulp size pop.\"" msgstr "" -" \\ 'Joe's Diner; 1/2 libra de carne, 3 coberturas,' a sua escolha ', " -"tudo com um lado de batatas fritas e um grande tamanho de Gulp." #: lang/json/snippet_from_json.py msgid "" @@ -137441,7 +122069,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"WE WERE RIGHT THE GOVERNMENT DID IT\"" -msgstr "\\ 'Nós estávamos bem o governo fez isso \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -137449,99 +122077,76 @@ msgid "" "would take them down, the air around it shimmered like around that hole in " "the air we've seen creatures coming through back home\"" msgstr "" -" 'Vimos um zumbi fazendo seus parentes crescerem mesmo com danos que " -"normalmente os derrubariam, o ar ao seu redor brilhou como aquele buraco no " -"ar que vimos as criaturas vindo de volta para casa.'" #: lang/json/snippet_from_json.py msgid "\"I shot the sheriff; but I couldn't find the deputy\"" -msgstr "'Eu atirei no xerife, mas não consegui encontrar o delegado" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Some plant vines started chasin after me, so I took a gas mask and some " "teargas and I ran through them.\"" msgstr "" -" 'Algumas videiras começaram a perseguir depois de mim, então eu peguei uma " -"máscara de gás e um pouco de gás lacrimogêneo e corri através delas." #: lang/json/snippet_from_json.py msgid "\"Slingshot right through the windshield k?\"" -msgstr "\\ 'Estilingue direito através do pára-brisa k? \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"When I was a kid I used to slingshot at bugs and birds. Its really " "playing off nowadays, Ill tell you what\"" msgstr "" -" 'Quando eu era criança, eu costumava usar um estilingue em insetos e " -"pássaros. É realmente divertido hoje em dia." #: lang/json/snippet_from_json.py msgid "" "\"ALL YOU STONERS WITH YOUR VIDEYA GAMES - I BET YOU WISH YOU TOOK THE TIME " "TO LEARN A SKILL NOW DONTYA\"" msgstr "" -" \\ 'TODOS VOCÊ STONDER COM SEU VIDEYA JOGOS - EU APOSTO QUE VOCÊ DESEJOU O " -"TEMPO DE APRENDER UMA HABILIDADE AGORA DONTYA \"" #: lang/json/snippet_from_json.py msgid "\"I tried to be a bard, but the rats didn't like my piping.\"" -msgstr "'Eu tentei ser um bardo, mas os ratos não gostaram do meu cachimbo." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"I found a chocolate bar on my pillow when I got home last night. I left " "and don't wanna go back.\"" msgstr "" -" 'Eu encontrei uma barra de chocolate no meu travesseiro quando cheguei em " -"casa ontem à noite. Eu saí e não quero voltar." #: lang/json/snippet_from_json.py msgid "" "\"this demon thing came after me it got me good i shot it but i dont know " "if ill make it\"" msgstr "" -" 'Essa coisa de demônio veio depois de mim, me deixou bem, eu atirei nele, " -"mas eu não sei se vou ficar doente.'" #: lang/json/snippet_from_json.py msgid "" "\"DANNY IF YOU READ THIS THIS IS CLARA WE'RE ALL OKAY AND WE'RE HEADING TO " "THE RIVER. A BOAT SAID THEY WERE DOCKED NEARBY.\"" msgstr "" -" 'DANNY SE VOCÊ LEU ESTE É CLARA, NÓS ESTAMOS TUDO OK E NÓS ESTAMOS CHEGANDO" -" AO RIO. UM BARCO DISSE QUE ESTÃO DOCKED NEARBY. \"" #: lang/json/snippet_from_json.py msgid "" "\"When I think of all the dead people I get mad, because I was supposed to " "be the next big leader. WHERES MY CHANCE!??\"" msgstr "" -" 'Quando eu penso em todas as pessoas mortas eu fico bravo, porque eu " -"deveria ser o próximo grande líder. WHERES MY CHANCE! ??" #: lang/json/snippet_from_json.py msgid "" "\"You know they got a machine that can change the weather now? You put in a" " bunch o'numbers and the whole thing funks around!\"" msgstr "" -" 'Você sabe que eles têm uma máquina que pode mudar o clima agora? Você " -"coloca um monte de números e a coisa toda se enfraquece!" #: lang/json/snippet_from_json.py msgid "\"A man in a black robe came up to me, said he wanted to make a deal...\"" msgstr "" -" 'Um homem com uma túnica preta veio até mim, disse que queria fazer um " -"acordo ..." #: lang/json/snippet_from_json.py msgid "" "\"Cha-cha-cha-chia! Saw a woman today, with fungus coming out her head like" " hair tendrils.\"" msgstr "" -" 'Cha-cha-cha-chia! Vi uma mulher hoje, com fungos saindo de sua cabeça como" -" mechas de cabelo." #: lang/json/snippet_from_json.py msgid "" @@ -137567,48 +122172,39 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"I kept shooting with my handgun, but I never got any better!\"" -msgstr "'Eu continuei atirando com a minha arma, mas nunca melhorei!" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"ITS OKEY GUYS! I BARRYED A TIME CAPSUL IN MY BACKYARD! I PUT IN SOME " "HOEHOES.\"" msgstr "" -" 'SEU OKEY GENTE! EU BARRYED UM TEMPO CAPSUL NO MEU QUINTAL! EU COLOCO EM " -"ALGUNS HOEHOES. \"" #: lang/json/snippet_from_json.py msgid "" "\"I got my tinfoil hat on. Good thing too, cause this monster was starrin " "at me kinda funny, trying to freeze my mind in place.\"" msgstr "" -" 'Eu tenho o meu chapéu de papel alumínio. Boa coisa também, porque esse " -"monstro estava me olhando meio engraçado, tentando congelar minha mente no " -"lugar. \"" #: lang/json/snippet_from_json.py msgid "\"You want my advice? Smoke Crack, It gets shit done.\"" -msgstr "'Você quer o meu conselho? Fumaça, é uma merda.'" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"The raindrops keep falling on my head, the acid ensured my eyes would soon" " be bleedin red...\"" msgstr "" -" 'As gotas de chuva continuam caindo na minha cabeça, o ácido garantiu que " -"meus olhos fossem sangrar em breve ..." #: lang/json/snippet_from_json.py msgid "" "\"ALWAYS WITH THE EFFICIENCY GUYS; YOURE ALWAYS WORKING TO GO HOME TO PAY " "RENT TO SLEEP TO WAKE UP TO WORK AGAIN. STOP\"" msgstr "" -" 'SEMPRE COM OS INDIVÍDUOS DE EFICIÊNCIA; VOCÊ ESTÁ SEMPRE TRABALHANDO PARA " -"CASA PARA PAGAR ALUGUEL PARA DORMIR PARA ACORDAR NOVAMENTE. PARAR" #: lang/json/snippet_from_json.py msgid "\"IM OFF TO THUNDERDOME, BYE SUCKERS.\"" -msgstr "\\ 'IM OFF TO THUNDERDOME, BYE SUGADERS. \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -137616,38 +122212,27 @@ msgid "" "the afflicted area, real good too; like you're washing your hair. Then " "rinse with vodka.\"" msgstr "" -" 'Se você pegar um parasita, pegue um pouco de areia e um pouco de vodca. " -"Esfregue a areia na área afetada, muito bom também; como se estivesse " -"lavando o cabelo. Depois lave com vodca." #: lang/json/snippet_from_json.py msgid "" "\"I put my toilet water into a gastank. Then I poured it into a glass cup." " Then I drank it without vomiting my insides back into the toilet.\"" msgstr "" -" 'Eu coloquei a água do meu banheiro em um tanque. Então eu coloquei em um " -"copo de vidro. Então eu bebi sem vomitar minhas entranhas de volta ao " -"banheiro.'" #: lang/json/snippet_from_json.py msgid "" "\"This isn't real this is a test to turn you into a Manchurian Candidate!\"" msgstr "" -" 'Isso não é real, este é um teste para transformá-lo em um candidato da " -"Manchúria! \"" #: lang/json/snippet_from_json.py msgid "\"Real Men do it with STYLE. SUPASTYLIN.\"" -msgstr "'Homens de verdade fazem isso com STYLE. SUPASTYLIN. \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"They're all hiding on an oil rig, I heard it myself over the AM airwaves." " They think they're the nobles of the 21st century, the prigs.\"" msgstr "" -" \\ 'Eles estão todos escondidos em uma plataforma de petróleo, eu ouvi-me " -"sobre as ondas do ar. Eles pensam que eles são os nobres do século 21, os " -"prigs. \"" #: lang/json/snippet_from_json.py msgid "" @@ -137656,38 +122241,30 @@ msgid "" "day He shall consume us all. Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl " "fhtagn." msgstr "" -" A febre verde purgará a terra para suas crianças escolhidas. Eu vi Seu fogo" -" negro brilhando nos olhos dos aflitos e ansiosamente esperando o dia Ele " -"nos consumirá a todos. Ph'nglui mglw'nafh Cthulhu R'lyeh " -"wgah'nagl fhtagn." #: lang/json/snippet_from_json.py msgid "" "\"Some of 'em are big. Real big. Don't stick around, I saw my mate get " "fucking torn in half!\"" msgstr "" -" 'Alguns deles são grandes. Realmente grandes. Não fique por perto, eu vi " -"meu companheiro ser fodidamente dividido ao meio!'" #: lang/json/snippet_from_json.py msgid "\"po p y fl ow er s don t ea at them\"" -msgstr "\\ 'po py fl ow er s don t ea neles \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Some guy is walking through the horde without a scratch. Please tell me " "they're docile now. Please fucking tell me.\"" msgstr "" -" 'Algum cara está andando pela horda sem um arranhão. Por favor, me diga que" -" eles são dóceis agora. Por favor, me diga.'" #: lang/json/snippet_from_json.py msgid "\"Swamp water tastes good! An\"" -msgstr "\\ 'A água do pântano sabe bem!" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Why are all the lawnmowers broken?!\"" -msgstr "'Por que todos os cortadores de grama estão quebrados?! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -137695,29 +122272,24 @@ msgid "" "something up ahead one of those, just careen through to the other side. My " "van was long enough to bridge right across!\"" msgstr "" -" 'Algumas das pontes, elas estão bem próximas umas das outras, certo? Se " -"você ver alguma coisa à frente uma delas, apenas vá para o outro lado. Minha" -" van foi comprida o suficiente para atravessar em frente!'" #: lang/json/snippet_from_json.py msgid "\"BURN BURN BURN BURN BURN ALL BURN ALL BURN ALL BURN\"" -msgstr "\\ 'BURN BURN BURN BURN BURN BURN ... BURN ..." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"I took all the supplies. Don't follow me. I'm sorry, man. I have to " "look out for myself now.\"" msgstr "" -" 'Eu peguei todos os suprimentos. Não me siga. Sinto muito, cara. Eu tenho " -"que cuidar de mim agora.'" #: lang/json/snippet_from_json.py msgid "\"My next-door neighbor had a katana in his basement!\"" -msgstr "'Meu vizinho do lado tinha uma katana no porão dele!" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Am I the last one alive?\"" -msgstr "'Eu sou o último vivo?" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -137725,50 +122297,37 @@ msgid "" "bathroom and set the house on fire. At least he attracted their " "attention.\"" msgstr "" -" 'Namorado roubou minha pistola enquanto eu estava dormindo. Eu o tranquei " -"no banheiro e coloquei fogo na casa. Pelo menos ele atraiu a atenção deles.'" #: lang/json/snippet_from_json.py msgid "\"I get air conditioners, but... this whole laboratory is frozen to ice!\"" msgstr "" -" 'Eu tenho condicionadores de ar, mas ... todo esse laboratório está " -"congelado no gelo! \"" #: lang/json/snippet_from_json.py msgid "\"Fuck aerodynamics, I want another engine!\"" -msgstr "'Foda aerodinâmica, quero outro motor! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"A wood ax works pretty well against them. So does a machete, but you " "can't cut down a tree.\"" msgstr "" -" \\ 'Um machado de madeira funciona muito bem contra eles. O mesmo acontece " -"com um facão, mas você não pode derrubar uma árvore. \"" #: lang/json/snippet_from_json.py msgid "" "\"Why would you hide in a farm? Sure, it's isolated, but if they know where" " you are, you don't exactly have cover on all sides.\"" msgstr "" -" 'Por que você se esconderia em uma fazenda? Claro, é isolado, mas se eles " -"sabem onde você está, você não tem exatamente cobertura de todos os lados.'" #: lang/json/snippet_from_json.py msgid "" "\"Imagine if this spread to, like, Australia. Zombie kangaroos. Haha...\"" msgstr "" -" 'Imagine se isso se espalhar para, tipo, Austrália. Cangurus zumbis. Haha " -"..." #: lang/json/snippet_from_json.py msgid "" "\"how DO I use THESE bionic THINGS? I just STUCK the wires IN my WRIST and " "now I CAN'T STOP twitching. AND now my LEG hurts! Is THAT acid?!\"" msgstr "" -" 'como eu uso ESTAS COISAS biônicas? Eu apenas FIO os fios em meu pulso e " -"agora eu não posso parar de se contrair. E agora minha perna dói! É esse " -"ácido?! \"" #: lang/json/snippet_from_json.py msgid "" @@ -137776,21 +122335,16 @@ msgid "" " have been attracted to it. I can't see his grave through the crowd " "anymore.\"" msgstr "" -" 'Eu tentei tocar música memorial para o meu irmão morto, em um rádio. Eles " -"devem ter sido atraídos por isso. Eu não posso mais ver seu túmulo na " -"multidão.'" #: lang/json/snippet_from_json.py msgid "" "\"Took a picture of a dead dog leaping right onto a soldier. Sweet fucking " "shot!\"" msgstr "" -" 'Peguei uma foto de um cachorro morto pulando direto em um soldado. Doce " -"porra!!" #: lang/json/snippet_from_json.py msgid "\"Gas mask is nice and all, but I can hardly run with it on.\"" -msgstr "\\ 'Máscara de gás é legal e tudo, mas eu mal posso correr com isso. \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -137798,103 +122352,88 @@ msgid "" "sweetspot, though, where it can't decide what to shoot with, maybe 30 yards " "or so? Made it to the truck and just drove.\"" msgstr "" -" 'Um desses tanques de robô estava bloqueando a saída. Conseguiu algum tipo " -"de doces, no entanto, onde ele não pode decidir com o que atirar, talvez 30 " -"jardas ou mais? Chegou ao caminhão e apenas dirigiu.'" #: lang/json/snippet_from_json.py msgid "" "\"Those evac shelters have basements. Remember when they were full of food?" " Every single one is fucking empty now...\"" msgstr "" -" 'Aqueles abrigos de evacuação têm porões. Lembra quando eles estavam cheios" -" de comida? Cada um está fodidamente vazio agora ..." #: lang/json/snippet_from_json.py msgid "" "\"I made mushroom babies. My arms hurt. I hurt. I had mushroom babies. " "They are growing now.\"" msgstr "" -" 'Fiz bebês de cogumelos. Meus braços doeram. Eu machuquei. Eu tive bebês de" -" cogumelos. Eles estão crescendo agora.'" #: lang/json/snippet_from_json.py msgid "\"It doesn't matter how you die. You're gonna turn into one of them.\"" -msgstr "'Não importa como você morre. Você vai se transformar em um deles." +msgstr "" #: lang/json/snippet_from_json.py msgid "\"WHY DO ALL THE DEAD CHILDREN GO TO SCHOOL\"" -msgstr "'POR QUE TODOS OS FILHOS MORTOS IRÃO À ESCOLA?" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Don't keep your goddamn casings! They'll just weigh you down.\"" -msgstr "'Não guarde suas malditas cápsulas! Elas só vão te pesar." +msgstr "" #: lang/json/snippet_from_json.py msgid "There is a splotch of blood on it. \"blood of the zombie king\"" -msgstr "Há uma mancha de sangue nela. 'sangue do rei zumbi" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Local auto shop is full of the things. And to think I worked with them on" " repairing cars... now they're just... fucking corpses.\"" msgstr "" -" 'A loja de automóveis local está cheia de coisas. E pensar que trabalhei " -"com eles na reparação de carros ... agora eles são apenas ... merda de " -"cadáveres. \"" #: lang/json/snippet_from_json.py msgid "\"DON'T EAT THE SLIME DON'T EAT THE SLIME DON'T EAT THE SLIME\"" -msgstr "\\ 'NÃO COME O SLIME NÃO COME O SLIME NÃO COME O SLIME \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"I used to be human. But... my arms... they are like tentacles. I slither" " along akin to a snail and I shed my feathers every day.\"" msgstr "" -" 'Eu costumava ser humano. Mas ... meus braços ... eles são como tentáculos." -" Eu deslizo ao longo de um caracol e tiro minhas penas todos os dias.'" #: lang/json/snippet_from_json.py msgid "\"I don't have enough time to double tap. You don't either.\"" msgstr "" -" 'Eu não tenho tempo suficiente para tocar duas vezes. Você também não tem." #: lang/json/snippet_from_json.py msgid "\"PINK TALL ONES RUN RUN RUN RUN RUN\"" -msgstr "\\ 'PINK TALL ONES RUN RUN RUN \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Are they still human inside?\"" -msgstr "'Eles ainda são humanos por dentro?" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"the eye it watches me it follows me everywhere help\"" -msgstr "'o olho me observa, segue-me em todo lugar ajuda'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"tHE Portal it's so COld\"" -msgstr "\\ 'o Portal é tão fácil \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"I can wear three backpacks! Fuck, I'm good.\"" -msgstr "'Eu posso usar três mochilas! Porra, eu estou bem." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"They build modern bullets fuckin crazy. Set some on fire and they all " "goes like a lil grenade. Need kindling first.\"" msgstr "" -" \\ 'Eles constroem balas modernas porra louco. Defina um pouco de fogo e " -"todos eles vão como uma granada lil. Precisa de kindling primeiro. \"" #: lang/json/snippet_from_json.py msgid "\"GOD CAN'T SAVE US\"" -msgstr "'DEUS NÃO PODE SALVAR NÓS" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"SHOOT YOURSELF, LET IT END QUICKLY\"" -msgstr "'Atirar em si mesmo, deixe acabar rapidamente" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -137902,200 +122441,164 @@ msgid "" " Two, keep your iron sights lined up or succumb. Three, stay FAR WAY from " "all\"" msgstr "" -" 'Há cinco regras básicas para a sobrevivência. Um, fique preparado e " -"atento. Dois, mantenha suas miras de ferro alinhadas ou sucumba. Três, fique" -" longe de todas as coisas.'" #: lang/json/snippet_from_json.py msgid "" "\"The bricks of this bathroom look like a face. Haha... it's all I can " "focus on. At least let me shit before you break down the door. Please...\"" msgstr "" -" 'Os tijolos desse banheiro parecem um rosto. Haha ... é tudo em que eu " -"posso me concentrar. Pelo menos, deixe-me cagar antes de arrombar a porta. " -"Por favor ...'" #: lang/json/snippet_from_json.py msgid "\"What the hell are they mining for in these shafts?\"" -msgstr "'O que diabos eles estão explorando nessas hastes?'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"I am one with the plants.\"" -msgstr "'Eu sou um com as plantas." +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Broadsword! Yeah!\"" -msgstr "\\ 'Broadsword! Sim! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"If you see a trail of dirt getting displaced in your direction... run. " "Run for your life.\"" msgstr "" -" 'Se você ver uma trilha de sujeira sendo deslocada em sua direção ... " -"corra. Corra por sua vida." #: lang/json/snippet_from_json.py msgid "\"Don't fall down a nuclear silo, they left 'em all open\"" -msgstr "'Não caia em um silo nuclear, eles os deixaram abertos'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"DINT ATE THE MUSHROM\"" -msgstr "\\ 'DINT ATE O MUSHROM \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Libraries are useless after the apocalypse.\"" -msgstr "'Bibliotecas são inúteis após o apocalipse." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"I swear to God I've seen these plant things before! In a book, or " "something! I swear...\"" msgstr "" -" 'Eu juro por Deus que eu já vi essas coisas antes! Em um livro, ou algo " -"assim! Eu juro ...'" #: lang/json/snippet_from_json.py msgid "\"Is robbing a bank easier or harder now that all the guards are undead?\"" msgstr "" -" 'Está roubando um banco mais fácil ou mais forte agora que todos os guardas" -" são mortos-vivos?" #: lang/json/snippet_from_json.py msgid "\"Make sure your car is REALLY stopped before you get out.\"" msgstr "" -" 'Certifique-se de que seu carro está REALMENTE parado antes de você sair." #: lang/json/snippet_from_json.py msgid "" "\"I found some kind of stone pyramid with spikes. I feel... I feel like I'm" " being watched.\"" msgstr "" -" 'Eu encontrei algum tipo de pirâmide de pedra com espinhos. Eu sinto ... eu" -" sinto que estou sendo observado.'" #: lang/json/snippet_from_json.py msgid "" "\"Why would you ever hide in a damn gun store? The owner... he was a moron " "alright.\"" msgstr "" -" 'Por que você iria se esconder em uma maldita loja de armas? O dono ... ele" -" era um idiota certo." #: lang/json/snippet_from_json.py msgid "\"This apocalypse will be good for the US financial crisis\"" -msgstr "\\ 'Este apocalipse será bom para a crise financeira dos EUA \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"THEY DON'T feel ANYTHING\"" -msgstr "'Eles não sentem nada'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"What was XEDRA doing, anyway?\"" -msgstr "'O que a XEDRA estava fazendo, afinal?" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Is that one pharmaceutical company gonna come out with a, like, cure for " "this anytime soon?\"" msgstr "" -" 'Será que uma empresa farmacêutica vai sair com uma espécie de cura para " -"isso em breve?'" #: lang/json/snippet_from_json.py msgid "\"THE MARLEY WAS RIGHT\"" -msgstr "\\ 'O MARLEY FOI DIREITO \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"I... I just put a muffler onto a... nail gun.\"" -msgstr "'Eu só coloquei um silenciador em uma pistola de pregos.'" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Squeeze some ammonia into zombie flesh and hold it tight. You smell like " "one of them! I think.\"" msgstr "" -" 'Esprema um pouco de amônia na carne de zumbi e segure firme. Você cheira " -"como um deles! Eu acho.'" #: lang/json/snippet_from_json.py msgid "" "\"I thought my damn terminal cancer was bad enough... now the dead are " "rising?!\"" msgstr "" -" 'Eu pensei que meu maldito câncer terminal era ruim o suficiente ... agora " -"os mortos estão subindo?! \"" #: lang/json/snippet_from_json.py msgid "\"THE GOO IS IN THE WATER DON'T DRINK WATER\"" -msgstr "\\ 'O GOO ESTÁ NA ÁGUA NÃO BEBA ÁGUA \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Don't let the ember go out please don't go out I need you precious fire.\"" msgstr "" -" 'Não deixe a brasa sair, por favor, não saia, preciso de você precioso.'" #: lang/json/snippet_from_json.py msgid "\"What's with these pits... with, like, sli\"" -msgstr "\\ 'O que é com esses poços ... com, como, sli \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Everyone used their gas to get to another town... but it's the same story " "everywhere.\"" msgstr "" -" 'Todo mundo usou seu gás para chegar a outra cidade ... mas é a mesma " -"história em todos os lugares." #: lang/json/snippet_from_json.py msgid "\"The gas the gas the green gas spreads forever\"" -msgstr "\\ 'O gás o gás o gás verde se espalha para sempre \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Most things can be taken out with a shotgun. More things can be taken out" " with a grenade. Imagine what a mini-nuke does.\"" msgstr "" -" \\ 'A maioria das coisas pode ser tirada com uma espingarda. Mais coisas " -"podem ser tiradas com uma granada. Imagine o que uma mini-nuke faz. \"" #: lang/json/snippet_from_json.py msgid "" "\"My friend gave me lit dynamite, but it hasn't exploded yet... I don't " "think that's supposed to happen. God help us.\"" msgstr "" -" 'Meu amigo me deu dinamite acesa, mas ainda não explodiu ... Eu não acho " -"que isso deveria acontecer. Deus nos ajude.'" #: lang/json/snippet_from_json.py msgid "" "\"Come to the bar if you see this, let's re-enact a zombie movie, friends.\"" msgstr "" -" 'Venha para o bar se você ver isso, vamos reencenar um filme de zumbi, " -"amigos." #: lang/json/snippet_from_json.py msgid "\"They are NOT slow! They are NEVER slow!\"" -msgstr "'Eles NÃO são lentos! Eles NUNCA estão lentos! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"I had a phobia of bees BEFORE they grew to enormous sizes.\"" msgstr "" -" 'Eu tive uma fobia de abelhas ANTES que elas crescessem em tamanhos " -"enormes." #: lang/json/snippet_from_json.py msgid "" "\"Your backpack's gonna weigh you down in the water. Hell, feel free to get" " naked. Nobody's going to judge your modesty.\"" msgstr "" -" 'Sua mochila vai te pesar na água. Inferno, sinta-se livre para ficar nua. " -"Ninguém vai julgar sua modéstia.'" #: lang/json/snippet_from_json.py msgid "\"Guns too loud. Crossbow too long. Running is best.\"" -msgstr "\\ 'Armas muito altas. Besta por muito tempo. Correr é melhor. \"" +msgstr "" #: lang/json/snippet_from_json.py #, no-python-format @@ -138104,332 +122607,266 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "\"Crawled in through the vents. Whole office building is infested.\"" -msgstr "'Arrastado pelas aberturas. O prédio inteiro está infestado." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Don't shoot the people who get bit! It's OK! Death is the only thing " "that makes you turn!\"" msgstr "" -" 'Não atire nas pessoas que se mordem! Tudo bem! A morte é a única coisa que" -" faz você virar!'" #: lang/json/snippet_from_json.py msgid "" "\"Zombies, walkers, dead ones, undead, reanimated, zed, animata, biters. " "Did I miss any?\"" msgstr "" -" \\ 'Zumbis, andadores, mortos, mortos-vivos, reanimados, zed, animata, " -"mordedores. Eu perdi algum? \"" #: lang/json/snippet_from_json.py msgid "" "\"I left a stash of rechargeable batteries in my safe and apparently the " "goddamn zombie Tooth Fairy has taken them all.\"" msgstr "" -" 'Eu deixei um estoque de baterias recarregáveis no meu cofre e, " -"aparentemente, o maldito zumbi Tooth Fairy levou todos eles." #: lang/json/snippet_from_json.py msgid "" "\"All I've got is this keg of beer and an appetite. Come at me, " "apocalypse!\"" msgstr "" -" 'Tudo o que eu tenho é esse barril de cerveja e um apetite. Venha para mim," -" apocalipse!" #: lang/json/snippet_from_json.py msgid "" "\"My cousin says that murder nowadays is just a war crime. War for what, I " "don't know, since the undead seem to be rebels without a cause.\"" msgstr "" -" 'Meu primo diz que assassinato hoje em dia é apenas um crime de guerra. " -"Guerra por que, eu não sei, já que os mortos-vivos parecem ser rebeldes sem " -"causa.'" #: lang/json/snippet_from_json.py msgid "\"SWAMPS RUN SWAMPS NO SWAMPS RUN\"" -msgstr "\\ 'SWAMPS EXECUTA SWAMPS NO SWAMPS \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"dog bit off my legs, magical hospital make all better\"" -msgstr "\\ 'cão mordeu minhas pernas, hospital mágico fez tudo melhor \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"They said a walking cane was a useless weapon... but then I hit one of " "them with it.\"" msgstr "" -" \\ 'Eles disseram que uma bengala era uma arma inútil ... mas então eu " -"acertei uma delas com ela. \"" #: lang/json/snippet_from_json.py msgid "" "\"River water around these parts is extremely safe. Probably more safe than" " the damn tap water at this point.\"" msgstr "" -" 'A água do rio ao redor dessas partes é extremamente segura. Provavelmente," -" mais segura do que a maldita água da torneira neste momento.'" #: lang/json/snippet_from_json.py msgid "\"DON't bomB THe PORtals it MAKES iT WORSE\"" -msgstr "'NÃO FAÇA UM BOM COMO OS PORTAIS FAZEM-NO MAU \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"No wonder all the camps got overrun, they kept a goddamn zombie test " "subject! Each and every one of 'em!\"" msgstr "" -" 'Não admira que todos os campos tenham sido invadidos, eles mantiveram um " -"maldito assunto de teste de zumbis! Todos e cada um deles!'" #: lang/json/snippet_from_json.py msgid "\"I just realized how damn demented those fliers are.\"" -msgstr "'Eu acabei de perceber o quão dementes são esses panfletos.'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"I propose a new currency: 9mm.\"" -msgstr "'Eu proponho uma nova moeda: 9mm." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Something wrong, with cars..., ram, and,. my speedometer read six " "hundred.,.thousand can't feel lungs,\"" msgstr "" -" 'Algo errado, com carros ..., carneiro, e, meu velocímetro leu seiscentos. " -"Mil não podem sentir pulmões," #: lang/json/snippet_from_json.py msgid "" "\"My skin is crawling and I teleport every few minutes... what is going o\"" msgstr "" -" 'Minha pele está rastejando e eu me teleporte a cada poucos minutos ... o " -"que está acontecendo?'" #: lang/json/snippet_from_json.py msgid "\"You can't see them through the smoke but they can't either.\"" -msgstr "'Você não pode vê-los através da fumaça, mas eles também não podem.'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"There's gotta be a better use of all this rebar...\"" -msgstr "'Tem que haver um uso melhor de todo esse vergalhão ..." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"met schoolhouse of people, all crazy and mad they were, ate killed all of " "them, yum\"" msgstr "" -" \\ 'conheceu a escola de pessoas, todas loucas e loucas, mataram todas " -"elas, yum \"" #: lang/json/snippet_from_json.py msgid "\"STAY AWAY FROM THE BIG ONES IN THE FOREST\"" -msgstr "\\ 'FIQUE LONGE DOS GRANDES NA FLORESTA \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"got into a prison with a halligan bar. makes me wonder how they kept " "prisoners inside\"" msgstr "" -" 'Entrei em uma prisão com um bar halligan. Me faz pensar como eles " -"mantinham prisioneiros dentro" #: lang/json/snippet_from_json.py msgid "" "\"Shopping carts become a lot more efficient when you plate-weld a trunk to " "them. Crate on wheels!\"" msgstr "" -" \\ 'Os carrinhos de compras se tornam muito mais eficientes quando você " -"solda um tronco a eles. Caixote sobre rodas! \"" #: lang/json/snippet_from_json.py msgid "\"telportfd itont wall, amr gone\"" -msgstr "\\ 'telportfd parede itont, amr ido \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"This thing isn't a car any more. It's just a fucking mountain of metal on" " wheels, which I live in.\"" msgstr "" -" 'Essa coisa não é mais um carro. É só uma porra de metal sobre rodas, na " -"qual eu moro.'" #: lang/json/snippet_from_json.py msgid "" "\"Anyone else seen those really... SQUARE-looking towns? I don't think " "they're normal.\"" msgstr "" -" 'Alguém mais viu aquelas ... cidades de aparência quadrada? Eu não acho que" -" elas são normais.'" #: lang/json/snippet_from_json.py msgid "\"BOSTON IS FUNGUS DON'T GO THERE\"" -msgstr "'BOSTON É FUNGOS NÃO VÁ LÁ" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"big z threw me on top of the building, legs broken but at least im safe " "for a few more minutes\"" msgstr "" -" 'big z jogou-me no topo do edifício, pernas quebradas, mas pelo menos im " -"seguro por mais alguns minutos \"" #: lang/json/snippet_from_json.py msgid "" "\"I'm starting to feel bad about disabling all these turrets and stealing " "their ammunition.\"" msgstr "" -" 'Estou começando a me sentir mal por desativar todas essas torres e roubar " -"suas munições.'" #: lang/json/snippet_from_json.py msgid "" "\"Make sure you strip the house for all available resources-- tubes, pipes, " "ceramics, sheets, strings, and more\"" msgstr "" -" \\ 'Certifique-se de despir a casa para todos os recursos disponíveis - " -"tubos, canos, cerâmicas, folhas, cordas e muito mais \"" #: lang/json/snippet_from_json.py msgid "" "\"there was a giant shell in my backyard for a few weeks. one day a squid " "guy popped out of it and said his name was steve\"" msgstr "" -" 'havia uma concha gigante no meu quintal por algumas semanas. um dia um " -"cara de lula apareceu e disse que seu nome era steve \"" #: lang/json/snippet_from_json.py msgid "\"FUCK FAUX-MUTANTS, BEING 'EXTREMELY THIRSTY' DOES NOT COUNT\"" -msgstr "\\ 'FODA DE MUTANTES, SER 'EXTREMAMENTE SEDE' NÃO CONTÉM" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"There's nothing wrong with eating people if you HAVE to. I mean, I only " "did it because I didn't want to waste my potato chips!\"" msgstr "" -" 'Não há nada de errado em comer pessoas se você tiver. Quero dizer, eu só " -"fiz isso porque não queria desperdiçar minhas batatas fritas!'" #: lang/json/snippet_from_json.py msgid "\"all these robotic police really take the piss out of kops\"" -msgstr "'Todos esses policiais robóticos realmente mijam de kops \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"CHINA DID THIS\"" -msgstr "\\ 'CHINA FEZ ESTE \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"RUSSIA DID THIS\"" -msgstr "\\ 'RÚSSIA FEZ ISSO \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Thank You RivTech. Thank You For Good Coffee. Will Always Stay Awake For" " You Rivtech.\"" msgstr "" -" 'Obrigado RivTech. Obrigado por um bom café. Sempre permanecerá acordado " -"para você Rivtech. \"" #: lang/json/snippet_from_json.py msgid "" "\"See, now I'm just not sure where I'm putting all these storage batteries " "in my body!\"" msgstr "" -" 'Veja, agora eu não tenho certeza onde estou colocando todas essas baterias" -" no meu corpo!" #: lang/json/snippet_from_json.py msgid "\"dont try to leave they will shoot you\"" -msgstr "'não tente sair eles vão atirar em você \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"herbs + salt + cooking oil + coffee powder + ammonia = a meal, right?\"" msgstr "" -" \\ 'ervas + sal + óleo de cozinha + pó de café + amoníaco = uma refeição, " -"certo? \"" #: lang/json/snippet_from_json.py msgid "" "\"HA! YOU THOUGHT I WOULD LEAVE A USEFUL NOTE?! SCREW YOU! GO DIE IN A " "BLOB PIT!\"" msgstr "" -" 'HAH! VOCÊ PENSA QUE EU DEIXARIA UMA NOTA ÚTIL ?! PARAFUSAR VOCÊ! VÁ MORRER" -" EM UM POÇO BLOB! \"" #: lang/json/snippet_from_json.py msgid "" "\"I'd like to thank my high-school culinary arts class for teaching me how " "to make RDX and mutagenic serum.\"" msgstr "" -" 'Eu gostaria de agradecer a minha aula de artes culinárias do ensino médio " -"por me ensinar como fazer RDX e soro mutagênico.'" #: lang/json/snippet_from_json.py msgid "\"Makayla Sanchez burned down my fucking house\"" -msgstr "\\ 'Makayla Sanchez queimou minha porra de casa \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"he calls himself the 'man with the hands', don't approach\"" -msgstr "'ele se chama de 'homem com as mãos', não se aproxime \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"So... what happens if the military rescues us? We're all freaks by now, " "right? How the fuck are we gonna go back to real life?\"" msgstr "" -" 'Então ... o que acontece se os militares nos resgatarem? Somos todos " -"loucos agora, certo? Como diabos vamos voltar para a vida real?'" #: lang/json/snippet_from_json.py msgid "" "\"Not sure if my companion WANTED to turn into a bird, but I was the one " "giving her the serum, and I saved her life! That's fair, right?\"" msgstr "" -" 'Não tenho certeza se meu companheiro QUERIA se transformar em um pássaro, " -"mas eu era o único dando a ela o soro, e eu salvei a vida dela! Isso é " -"justo, certo?'" #: lang/json/snippet_from_json.py msgid "" "\"what's a resonance cascade? can't be that bad, maybe i'll get some cool " "l##/###\"" msgstr "" -" 'o que é uma cascata de ressonância? não pode ser tão ruim assim, talvez eu" -" consiga um pouco de cool l ## / ### \"" #: lang/json/snippet_from_json.py msgid "\"I've never been very confident, is that why my shots keep missing?\"" msgstr "" -" 'Eu nunca fui muito confiante, é por isso que minhas fotos continuam " -"faltando?'" #: lang/json/snippet_from_json.py msgid "\"FIRE BAD. NOW NAKED. PLEASE HELP.\"" -msgstr "\\ 'FOGO MAU. Agora nu. Por favor, ajude. \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Heard of a place up in Maine where people have their shit together. " "Hundreds of people, defense, food and shelter... let's go raid it, guys!\"" msgstr "" -" 'Ouvi falar de um lugar no Maine onde as pessoas têm suas coisas juntas. " -"Centenas de pessoas, defesa, comida e abrigo ... vamos atacá-lo, pessoal!'" #: lang/json/snippet_from_json.py msgid "" "\"The whispering fog is taking me in like a blanket. I'm warm now. I'm " "finally\"" msgstr "" -" 'O nevoeiro sussurrante está me tomando como um cobertor. Estou quente " -"agora. Estou finalmente" #: lang/json/snippet_from_json.py msgid "" "\"got a video recording of hour one when the portals were still up. pretty " "cool\"" msgstr "" -" 'Tenho uma gravação de vídeo de uma hora quando os portais ainda estavam em" -" alta. muito legal \"" #: lang/json/snippet_from_json.py msgid "" @@ -138442,157 +122879,126 @@ msgid "" "\"if anyones reading this, please tell my mom i was right about insects " "being superior\"" msgstr "" -" 'Se alguém lê isso, por favor, diga a minha mãe que eu estava certo sobre " -"insetos sendo superior \"" #: lang/json/snippet_from_json.py msgid "" "\"Diamond coated sword! Diamond coated hammer! Diamond coated clothes! " "Diamond coated hands help\"" msgstr "" -" \\ 'Espada revestida de diamante! Martelo revestido com diamante! Roupas " -"revestidas com diamante! Mãos revestidas com diamante ajudam \"" #: lang/json/snippet_from_json.py msgid "\"waded through 14 miles of sewage for playboy magazine, wasnt worth it\"" msgstr "" -" \\ 'atravessou 14 quilômetros de esgoto para a revista playboy, não valia a" -" pena \"" #: lang/json/snippet_from_json.py msgid "" "\"I'm coming back for this note in twelve hours. If I don't, take all my " "shit!\"" msgstr "" -" 'Estou voltando para esta nota em doze horas. Se eu não fizer, pegue todas " -"as minhas coisas!'" #: lang/json/snippet_from_json.py msgid "" "\"all my friends died when they came near me. there's nothing funny about " "that\"" msgstr "" -" 'todos os meus amigos morreram quando chegaram perto de mim. Não tem nada " -"de engraçado nisso'" #: lang/json/snippet_from_json.py msgid "\"Wow, this sinkhole is really comfortable!\"" -msgstr "'Uau, esse sumidouro é muito confortável! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"DOG NOT REAL DOG\"" -msgstr "\\ 'CÃO NÃO REAL DOG \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"This is all just a dream, right??! I'M GOING TO WAKE UP, SHE'S GOING TO BE" " OK\"" msgstr "" -" 'Isso tudo é apenas um sonho, certo ?? Eu vou acordar, ela vai ficar bem" #: lang/json/snippet_from_json.py msgid "\"wek ik spak\"" -msgstr "'me acorde'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"IT'S BURIED! THE TEMPLE IS BURIED!\"" -msgstr "'É enterrado! O templo está enterrado!" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"If I had a dollar for every cash card I've found, I'd have more money than" " is on these stupid things!\"" msgstr "" -" 'Se eu tivesse um dólar por cada cartão que encontrei, teria mais dinheiro " -"do que nessas coisas idiotas!'" #: lang/json/snippet_from_json.py msgid "" "\"can never have enough kevlar. basically just live in a kevlar turtle " "shell.\"" msgstr "" -" \\ 'nunca pode ter kevlar suficiente. basicamente vive em uma casca de " -"tartaruga kevlar. \"" #: lang/json/snippet_from_json.py msgid "\"Wow, I haven't had to piss in weeks!\"" -msgstr "'Uau, eu não tive que mijar em semanas!'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"MY GLITTERING SNAKE COMPELS YOU! OBEY!\"" -msgstr "\\ 'MINHA COBRA LITOSA ENCRAVE VOCÊ! OBEDEÇA! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"can sunstasin self frorever off fof my funggnaloid babiues oout fo yme " "arms eat themm up eatbtb my chidlldren\"" msgstr "" -" \\ 'pode sunstasin auto frorever fora de fof meus bebês funggnaloid oout fo" -" yme braços eat themm up eatbtb meu chidlldren \"" #: 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 "" -" 'Vou me acalmar um dia. Belo pomar, dois amigos / futura família para " -"passar o tempo, e meu exército de zlaves para guardar o lugar.'" #: lang/json/snippet_from_json.py msgid "" "\"a ctulaly don t mi nd t he cold it s f i ne in h ere nn o " "problem\"" -msgstr "'Certamente não é frio, mas não tem problema'" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"tried to shoot myself but the nanobots fixed it, fucked up the controls, " "now i can't turn them off i just want it to be over\"" msgstr "" -" \\ 'tentou me matar, mas os nanorrobôs consertaram, estragaram os " -"controles, agora eu não posso desligá-los, eu só quero que acabe \"" #: lang/json/snippet_from_json.py msgid "" "\"Tried wearing dead zombie clothes, but they still knew I was alive! It's " "like they're a hivemind, man!\"" msgstr "" -" 'Tentei usar roupas de zumbis mortos, mas eles ainda sabiam que eu estava " -"vivo! É como se eles fossem um homem hivemind!'" #: lang/json/snippet_from_json.py msgid "\"MY PALMS ONLY GROW IN POWER!\"" -msgstr "\\ 'MINHAS PALMAS SOMENTE CRESCEM NO PODER! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"riddle. what's 1/4 feathers, 1/4 scales, 1/4 metal, and 1/4 flesh? " "answer: sorry, but you should know this one.\"" msgstr "" -" \\ 'enigma. o que é 1/4 de penas, 1/4 de escamas, 1/4 de metal e 1/4 de " -"carne? resposta: desculpe, mas você deve saber este. \"" #: lang/json/snippet_from_json.py msgid "" "\"For anyone that's reading this, I just want to confirm (FROM AN UNBIASED " "SOURCE) that it was NOT the scientists' fault.\"" msgstr "" -" \\ 'Para quem está lendo isso, eu só quero confirmar (DE UMA FONTE " -"UNBIASED) que não foi culpa dos cientistas. \"" #: lang/json/snippet_from_json.py msgid "\"Whoops, I put my sister's insulin in my internal furnace. Shit.\"" msgstr "" -" 'Opa, eu coloquei a insulina da minha irmã na minha fornalha interna. " -"Merda." #: lang/json/snippet_from_json.py msgid "" "\"traveled with a few friends after the thing started. mostly stuck to bike" " paths and eaten fruit and mushroomdhfhghghhhh\"" msgstr "" -" \\ 'viajou com alguns amigos depois que a coisa começou. principalmente " -"preso a ciclovias e comido frutas e mushroomdhfghghghhhh \"" #: lang/json/snippet_from_json.py msgid "" @@ -138600,8 +123006,6 @@ msgid "" "helicopter! Filming the Cataclysm! Check us out on any working " "electronics!\"" msgstr "" -" 'Nós somos os olhos de águia no céu! Apenas duas aves mutantes em nosso " -"helicóptero! Filmando o Cataclismo! Confira-nos em qualquer eletrônica! \"" #: lang/json/snippet_from_json.py msgid "" @@ -138609,215 +123013,167 @@ msgid "" "his head, and that the zombie shouldn't penetrate his armor... poor guy. " "Bad die roll, I guess.\"" msgstr "" -" 'Meu amigo estava sendo comido. Começou a reclamar sobre como ele tinha 70 " -"HP em sua cabeça, e que o zumbi não deveria penetrar em sua armadura ... " -"pobre sujeito. Mau rolo de papel, eu acho.'" #: lang/json/snippet_from_json.py msgid "\"WE'RE GOING TO SAIL TO CANADA, BITCHES!\"" -msgstr "'VAMOS VIR PARA O CANADÁ, CADELAS! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Anyone hear about that guy who tried to sail his family to Canada? What a" " moron, right?\"" msgstr "" -" 'Alguém ouviu falar sobre aquele cara que tentou navegar sua família para o" -" Canadá? Que idiota, certo?" #: lang/json/snippet_from_json.py msgid "\"recently canadian border has gotten more dangerous don't go there\"" -msgstr "\\ 'recentemente a fronteira canadense ficou mais perigosa não vá lá \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Hey, what happened to my dad's airboat?!\"" -msgstr "'Ei, o que aconteceu com o aerobarco do meu pai?! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Reading is good! Never stop reading. Read EVERYTHING.\"" -msgstr "'A leitura é boa! Nunca pare de ler. Leia tudo." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"I'm gonna be honest here, I'm really gonna die soon so I dont want to gt " "forgnottedn ples dont forntget me y nrmmy name is h@@hbhbh\"" msgstr "" -" 'Eu vou ser honesto aqui, eu realmente vou morrer em breve, então eu não " -"quero forgnottedn ples não forntget me y nrmmy nome é h @@ hbhbh \"" #: lang/json/snippet_from_json.py msgid "" "\"It wasn't Russia or China, guys. It was me. This whole apocalypse is my " "fault. You can just call me... Darkling.\"" msgstr "" -" 'Não foi Rússia ou China, pessoal. Era eu. Todo esse apocalipse é minha " -"culpa. Você pode me chamar de ... Darkling." #: lang/json/snippet_from_json.py msgid "\"all it takes to seal a wound is a sawblade and a match! trust me\"" msgstr "" -" 'tudo o que é preciso para selar uma ferida é uma serra e um fósforo! " -"confie em mim \"" #: lang/json/snippet_from_json.py msgid "" "\"I wonder what's in this sarcophagus? Maybe it's a real sarcophagus. " "Maybe there's a big guy named God under here.\"" msgstr "" -" 'Eu me pergunto o que há neste sarcófago? Talvez seja um verdadeiro " -"sarcófago. Talvez haja um grande sujeito chamado Deus aqui embaixo." #: lang/json/snippet_from_json.py msgid "\"these hulks aint so incredible when ya got .50\"" -msgstr "'esses cascos não são tão incríveis quando você tem .50 \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Got my legs dissected. It's OK, at least I have my dog! Her legs were " "also dissected, but that's OK, we're gonna be OK...\"" msgstr "" -" 'Tenho minhas pernas dissecadas. Está tudo bem, pelo menos eu tenho meu " -"cachorro! Suas pernas também foram dissecadas, mas tudo bem, nós vamos ficar" -" bem ..." #: lang/json/snippet_from_json.py msgid "" "\"Mi-go is friend! Go with Mi-go to friend dimension! On the Friend " "Team!!\"" msgstr "" -" \\ 'Mi-go é amigo! Vá com a dimensão Mi-go para amigo! Na equipa de amigos " -"!! \"" #: lang/json/snippet_from_json.py msgid "\"We have Landed our Comet. The Sky is Ablaze.\"" -msgstr "'Nós pousamos nosso cometa. O céu está em chamas." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Last one standing. It's good feeling. I win. I win I win I win I win I " "win\"" msgstr "" -" 'Último em pé. É bom sentimento. Eu venço. Eu ganho, ganho, ganho, ganho, " -"ganho, eu ganho.'" #: lang/json/snippet_from_json.py msgid "\"Adderall cures weakness, tramadol cures death\"" -msgstr "'Adderall cura a fraqueza, o tramadol cura a morte" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"These turrets keep dodging my FUCKING BULLETS!\"" -msgstr "\\ 'Essas torres continuam esquivando-se das minhas BALAS!" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Best way to train is by throwing pebbles at birds. You'll be a legend.\"" msgstr "" -" 'A melhor maneira de treinar é jogando seixos em pássaros. Você será uma " -"lenda." #: lang/json/snippet_from_json.py msgid "\"new bedford is overrun. i'm sorry. we tried.\"" -msgstr "'New Bedford é invadido. Me desculpe. Nós tentamos. \"" +msgstr "" #: lang/json/snippet_from_json.py 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 "" -" 'Confira o meu programa de culinária na televisão! Fazendo salsichas " -"Mannwurst fora de alguns desses idiotas que tentaram invadir minha cozinha " -"mais cedo ..." #: lang/json/snippet_from_json.py msgid "" "\"Renting out my rat tunnels for 50 9mm rounds a night. I dug them with my " "own claws, so you know they're the best.\"" msgstr "" -" 'Alugando meus túneis de rato por 50 rounds de 9mm por noite. Eu os cavei " -"com minhas próprias garras, então você sabe que eles são os melhores.'" #: lang/json/snippet_from_json.py msgid "" "\"Anyone wanna listen to some music at full volume and shoot the Zs that " "approach? You pick the tunes if I get some ammo.\"" msgstr "" -" 'Alguém quer ouvir algumas músicas no volume máximo e filmar os Zs que se " -"aproximam? Você escolhe as músicas se eu conseguir alguma munição. \"" #: lang/json/snippet_from_json.py msgid "" "\"Lots of new easy ways to burn calories now. Fighting aminata, managing " "the fields, running with my wings buzzing, and more.\"" msgstr "" -" 'Muitas novas maneiras fáceis de queimar calorias agora. Combatendo " -"aminata, administrando os campos, correndo com minhas asas zunindo e muito " -"mais.'" #: lang/json/snippet_from_json.py msgid "\"lotta dead mothers\"" -msgstr "\\ 'muitas mães mortas \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"FLAMING SWORD HUMANE. CAUTERIZES WOUNDS. SURGICAL.\"" -msgstr "\\ 'FLAMING SWORD HUMANE. CAUTERIZA FERIDAS. CIRÚRGICO. \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"knife screams it screams i cant breathe so scared help me please help\"" msgstr "" -" \\ 'faca grita ele grita eu não posso respirar tão assustado me ajude por " -"favor me ajude \"" #: lang/json/snippet_from_json.py msgid "\"when it started, we could still hope The Man was gonna save us...\"" -msgstr "'quando começou, ainda podíamos esperar que o Homem nos salvasse ..." +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Hey, Ted. Alexander and Cass and I are heading to Z-Mobile for the last " "of the meth. Keep the lizard fetus fed for us, OK?\"" msgstr "" -" 'Ei, Ted. Alexander e Cass e eu estamos indo para o Z-Mobile para o final " -"da metanfetamina. Mantenha o feto lagarto alimentado por nós, ok?'" #: lang/json/snippet_from_json.py msgid "" "\"i say we call the material from melting down cars and dead robots " "'massachusetite' or 'vermontsteel' or 'connecticut composite'\"" msgstr "" -" 'Eu digo que nós chamamos o material de carros derretidos e massachusetite " -"'robôs mortos' ou 'vermontsteel' ou 'composite " -"connecticut' \"" #: lang/json/snippet_from_json.py msgid "" "\"Sometimes what you need when you're infected, bleeding, sick and hungover " "is a J and some chips.\"" msgstr "" -" \\ 'Às vezes o que você precisa quando está infectado, sangrando, doente e " -"ressaca é um J e algumas fichas. \"" #: lang/json/snippet_from_json.py msgid "\"I am nothing without my supertank and storage megastructure.\"" msgstr "" -" 'Eu não sou nada sem minha superestrutura e megasseestrutura de " -"armazenamento." #: lang/json/snippet_from_json.py msgid "" "\"Hahahahaa stupid fuck in his mansion, with his plate armor and big axe. " "Guy never swung the thing in his life. Can't block bullets, dipshit\"" msgstr "" -" 'Hahahahava uma foda estúpida em sua mansão, com sua armadura de placas e " -"grande machado. Guy nunca mudou a coisa em sua vida. Não pode bloquear " -"balas, merda" #: lang/json/snippet_from_json.py msgid "" "\"I woke up with a dozen bears in a tribe outside the vault. One was " "covered in red markings, glowing-- speaking.\"" msgstr "" -" 'Eu acordei com uma dúzia de ursos em uma tribo fora do cofre. Um deles " -"estava coberto de marcas vermelhas, brilhando - falando." #: lang/json/snippet_from_json.py msgid "" @@ -138825,239 +123181,188 @@ msgid "" "today he died fighting. feels like i knew him even though i never " "approached.\"" msgstr "" -" 'cara pobre. O observei de longe com meus binocs por meses e meses. hoje " -"ele morreu lutando. parece que eu o conhecia mesmo que eu nunca me " -"aproximei. \"" #: lang/json/snippet_from_json.py msgid "" "\"I hope I don't leave this note in a pawn shop, bank vault, or library... " "'cus that would mean I'm dead.\"" msgstr "" -" 'Eu espero que eu não deixe esta nota em uma loja de penhores, cofre do " -"banco, ou biblioteca ...' porque isso significaria que eu estou morta." #: lang/json/snippet_from_json.py msgid "\"ENGLAND DID THIS\"" -msgstr "\\ 'INGLATERRA FEZ ESTE \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"I finally dug to the hellmouth. My body burns but my soul finally finds " "its purpose\"" msgstr "" -" 'Eu finalmente cavei na boca do inferno. Meu corpo queima, mas minha alma " -"finalmente encontra seu propósito.'" #: lang/json/snippet_from_json.py msgid "" "\"That little fakkin rat din say anythin till we whacked him with a steel " "chain! Then 'e just wanted to know if he could buy the chain!\"" msgstr "" -" 'Aquele ratinho fakkin disse qualquer coisa até nós batermos nele com uma " -"corrente de aço! Então só queria saber se ele poderia comprar a corrente!'" #: lang/json/snippet_from_json.py msgid "" "\"tom, adorned with fluid sacs three layers deep, crawls to safety like a " "slug\"" msgstr "" -" \\ 'tom, adornado com sacos de fluido de três camadas de profundidade, " -"rasteja para a segurança como uma lesma \"" #: lang/json/snippet_from_json.py msgid "" "\"my friend turned fuckin insane and ate his arms and then his sister's " "arms! he looked rather cross\"" msgstr "" -" 'meu amigo ficou louco e comeu seus braços e depois os braços de sua irmã! " -"Ele parecia um pouco zangado" #: lang/json/snippet_from_json.py msgid "\"Starting today, the hallucinations are my only friends.\"" -msgstr "'A partir de hoje, as alucinações são minhas únicas amigas." +msgstr "" #: lang/json/snippet_from_json.py msgid "\"For sale: zombaby shoes, very filthy\"" -msgstr "\\ 'Para venda: sapatos zombaby, muito imunda \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Started my own brewery recently. I just need some glass bottles, now! " "Several thousand! I'm planning way ahead.\"" msgstr "" -" 'Comecei minha própria cervejaria recentemente. Eu só preciso de algumas " -"garrafas de vidro, agora! Vários milhares! Estou planejando muito à frente.'" #: lang/json/snippet_from_json.py msgid "" "\"We're the eagle-eyes in the sky! We're gonna fly our bird 'copter! " "Northward! And bomb the military checkpoint! Wish us luck!\"" msgstr "" -" \\ 'Nós somos os olhos de águia no céu! Nós vamos voar nosso helicóptero de" -" pássaro! Para o norte! E bombardeie o posto de controle militar! Nos deseje" -" sorte! \"" #: lang/json/snippet_from_json.py msgid "" "\"Heard recently of some radio op who lives in a skyscraper, announcing " "where those hordes are going. Couldn't find the frequency, though.\"" msgstr "" -" 'Ouvi falar recentemente de algum radialista que mora em um arranha-céu, " -"anunciando para onde as hordas estão indo. Não foi possível encontrar a " -"freqüência.'" #: lang/json/snippet_from_json.py msgid "\"Woah, bud! Not all cannibals eat meat!\"" -msgstr "'Woah, broto! Nem todos os canibais comem carne! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"ay why aint my bullets fuckin explodin\"" -msgstr "'ay porque as minhas malditas balas não explodem \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Those Fiktok clan people picked this place clean... no food...\"" msgstr "" -" 'As pessoas do clã Fiktok escolheram este lugar limpo ... sem comida ..." #: lang/json/snippet_from_json.py msgid "\"The fewer people in New England, the stronger we'll become.\"" -msgstr "'Quanto menos pessoas na Nova Inglaterra, mais forte nos tornaremos.'" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"It all boils down to the Apex Predator.\"" -msgstr "\\ 'Tudo se resume ao Apex Predator. \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"King Jameson ik goner! Thee cyber limbs isk falleng off me body! Stak " "pyroteknik I heear!\"" msgstr "" -" \\ 'King Jameson ik goner! Os membros cibernéticos isk fallk fora de mim " -"corpo! Stak pyroteknik eu heear! \"" #: lang/json/snippet_from_json.py msgid "" "\"Christian, but have no bible-- the Flying Spaghetti Monster is my god now." " For morale's sake...\"" msgstr "" -" 'Cristão, mas não tem bíblia - o Monstro do Espaguete Voador é meu deus " -"agora. Por amor à moral ..." #: lang/json/snippet_from_json.py msgid "\"THE GRANADE DEBUGGED MY SPIDER FRIEND WHERE IS SHE\"" -msgstr "\\ 'O GRANDE DEBUGGED MEU AMIGO DE ARANHA ONDE ESTÁ" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Got my mortar and pestle. Now if I could just find some avocados...\"" msgstr "" -" 'Peguei meu almofariz e pilão. Agora, se eu pudesse encontrar alguns " -"abacates ..." #: lang/json/snippet_from_json.py msgid "" "\"saw a girl standing with the mushrooms. spores coming out of slits in her" " neck. she looked happy.\"" msgstr "" -" \\ 'viu uma menina de pé com os cogumelos. esporos saindo de fendas no " -"pescoço dela. ela parecia feliz. \"" #: lang/json/snippet_from_json.py msgid "" "\"Found some pink berries. Eating them makes bushes into more pink berries." " Infinite berry.\"" msgstr "" -" \\ 'Encontrei algumas bagas rosa. Comê-los faz arbustos em mais bagas rosa." -" Baga infinita. \"" #: lang/json/snippet_from_json.py msgid "\"m ust grow unity\"" -msgstr "'Aumente a unidade \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"AMY IS FUNGUS. DO NOT LISTEN IF SHE ASKS YOU TO TAKE OFF MASK\"" -msgstr "'AMY IS FUNGUS. NÃO OUÇA SE SE PERGUNTE A TOMAR MASK \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"my rabbi follows a new god now. asks us to call him a local guide. i " "dont mind, he keeps us fed\"" msgstr "" -" 'Meu rabino segue um novo deus agora. nos pede para chamá-lo de guia local." -" Eu não me importo, ele nos mantém alimentados.'" #: lang/json/snippet_from_json.py msgid "\"Fungus are helping us. Help them and they will unite us\"" -msgstr "'O fungo está nos ajudando. Ajude-os e eles nos unirão'" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Saw a boy couldnt be older than 16. Walked straight through the mushroom " "tower. THROUGH IT\"" msgstr "" -" 'Vi que um menino não poderia ter mais de 16 anos. Andou direto pela torre " -"dos cogumelos. ATRAVÉS" #: lang/json/snippet_from_json.py msgid "" "\"Found some food in a box outside my house. We ate it and now the " "fungaloids aren't harming us. I think we are a mushroom now\"" msgstr "" -" 'Encontrei um pouco de comida em uma caixa do lado de fora da minha casa. " -"Nós comemos e agora os fungos não estão nos prejudicando. Acho que agora " -"somos um cogumelo.'" #: lang/json/snippet_from_json.py msgid "" "\"saw the girl again. she looked dead exhausted and walked right into the " "fungus. 30 mins later and she walked out good as new\"" msgstr "" -" \\ 'viu a menina novamente. ela parecia morta exausta e caminhou direto " -"para o fungo. 30 minutos depois e ela saiu boa como nova \"" #: lang/json/snippet_from_json.py msgid "\"HADENSBROOK REBUILT AROUND FUNGUS. THEY EAT GRAY APPLES AND SPREAD IT\"" msgstr "" -" \\ 'HADENSBROOK RECONSTRUIR AO REDOR DE FUNGOS. ELES COMEM AS MAÇAS " -"CINZENTAS E ESPALHAM-NO \"" #: lang/json/snippet_from_json.py msgid "\"mycus must grow\"" -msgstr "\\ 'mycus deve crescer \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"School bus with solar panels = TRUST. Gave us berries and seeds, we were " "out of food\"" msgstr "" -" \\ 'Ônibus escolar com painéis solares = CONFIANÇA. Nos deu bagas e " -"sementes, nós estávamos fora de comida \"" #: lang/json/snippet_from_json.py msgid "\"d o nThelp scho Ol buss makE seeeedS ARe FUNGUS!! !\"" -msgstr "'Não ajude Scho Ol Buss MakE SEED ARS FUNGUS !!! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Go to every fungus patch you find but WEAR A SUIT. Food there is very " "very filling. Look for pink berries, blue flowers\"" msgstr "" -" 'Vá a todos os remendos de fungos que você encontrar, mas USE UM TERNO. " -"Comida lá é muito muito recheio. Procure por bagas rosa, flores azuis \"" #: lang/json/snippet_from_json.py msgid "\"red blue yellow berry seed sap bloom flowers tower mycus mycus mycus.\"" msgstr "" -" \\ 'vermelho azul amarelo baga semente seiva flor flores torre mycus mycus " -"mycus. \"" #: lang/json/snippet_from_json.py msgid "" "\"Husband 30 yrs died in bombs. Mushrooms brought him back. GIVE YOURSELF " "TO THEm AND THEY WILL HELP YOU\"" msgstr "" -" \\ 'Marido 30 anos morreram em bombas. Cogumelos o trouxeram de volta. DÊ- " -"LHE PARA ELES E ELES AJUDARÃO VOCÊ \"" #: lang/json/snippet_from_json.py msgid "" @@ -139073,10 +123378,6 @@ msgid "" "riot drug) most of New England's scientific labs were bombed simultaneously " "yesterday. No word yet from the military about who the aggressors are." msgstr "" -" LABS BOMBED: Em mais provas de invasão (descontando a sugestão anterior de " -"uma droga antimotim), a maioria dos laboratórios científicos da Nova " -"Inglaterra foram bombardeados simultaneamente ontem. Ainda não há notícias " -"dos militares sobre quem são os agressores." #: lang/json/snippet_from_json.py msgid "" @@ -139092,10 +123393,6 @@ msgid "" "\"The invaders don't register as human. The securibots turned on us when we" " tried to fight them. We don't have enough people left to reprogram them.\"" msgstr "" -" INVASORES NÃO HUMANOS ?: Um comando anterior do chefe de polícia saiu pela " -"culatra. 'Os invasores não se registram como humanos. Os seguranças se " -"voltaram contra nós quando tentamos combatê-los. Não temos pessoas " -"suficientes para reprogramá-los.'" #: lang/json/snippet_from_json.py msgid "" @@ -139103,10 +123400,6 @@ msgid "" "been confirmed, and this paper has gained first hand footage proving genetic" " modification, with examples of extreme strength, speed and natural armor." msgstr "" -" INVASÃO É TROPA DE GM: Relatos de invasão por soldados ainda desconhecidos " -"foram confirmados, e este artigo ganhou imagens em primeira mão, provando " -"modificação genética, com exemplos de extrema força, velocidade e armadura " -"natural." #: lang/json/snippet_from_json.py msgid "" @@ -139115,10 +123408,6 @@ msgid "" "somehow firing lightning fields, spitting acid and reports of soldiers " "hidden in mobile clouds of smoke." msgstr "" -" INVASORES SÃO SUPER SOLDADOS: Mais uma prova de mutação, além de força, " -"velocidade e resistência, agora temos relatos de inimigos estrangeiros que " -"de alguma forma estão atirando raios, cuspindo ácido e relatos de soldados " -"escondidos em nuvens de fumaça." #: lang/json/snippet_from_json.py msgid "" @@ -139127,10 +123416,6 @@ msgid "" "than China's. We were safety-testing, which China obviously skipped " "disastrously.\"" msgstr "" -" MILITARES TEM GM TOO - GENERALIDADES: 'Queremos tranqüilizar as pessoas, " -"esses invasores não são os únicos super-soldados. Nossos genêmodos são mais " -"avançados que os da China. Éramos testes de segurança, que a China " -"obviamente ignorou desastrosamente." #: lang/json/snippet_from_json.py msgid "" @@ -139139,9 +123424,6 @@ msgid "" "extraction. Civilians will be forced to supply themselves over the next " "weeks." msgstr "" -" ANÚNCIO DE SERVIÇO PÚBLICO: \\ 'Ajuda adiada \\'. A luta pelos militares na" -" beira da Área de Desastres da Nova Inglaterra deve atrasar a extração " -"civil. Os civis serão forçados a se abastecer nas próximas semanas." #: lang/json/snippet_from_json.py msgid "" @@ -139149,9 +123431,6 @@ msgid "" "quarantined for the safety of the rest of the USA. No rescue attempts will " "be funded, it is assumed there are no survivors in the area." msgstr "" -" ANÚNCIO DE SERVIÇO PÚBLICO: 'New England Cut Off'. A Nova Inglaterra foi " -"colocada em quarentena para a segurança do resto dos EUA. Nenhuma tentativa " -"de resgate será financiada, presume-se que não haja sobreviventes na área." #: lang/json/snippet_from_json.py msgid "" @@ -139159,9 +123438,6 @@ msgid "" "yourself, our troops have the technology and the training for military " "action. Loud gunfire may attract more enemy attention than you have ammo!\"" msgstr "" -" DEIXE AOS PERITOS - GERAL: \\ 'Não tente lidar com os invasores, nossas " -"tropas têm a tecnologia e o treinamento para a ação militar. Artilharia alta" -" pode atrair mais atenção do inimigo do que você tem munição! \"" #: lang/json/snippet_from_json.py msgid "" @@ -139170,10 +123446,6 @@ msgid "" "Please retreat to your nearest evacuation center outside town and await " "extraction.\"" msgstr "" -" TOWNS TERRITÓRIO OCUPADO: Autoridades da FEMA disseram hoje 'Não tente " -"defender sua propriedade nas cidades: os invasores usam rastreamento " -"avançado, talvez perfume. Por favor, retire-se para o centro de evacuação " -"mais próximo da cidade e aguarde a extração. \"" #: lang/json/snippet_from_json.py msgid "" @@ -139182,10 +123454,6 @@ msgid "" "word yet on if this is a deliberate tactic or a side effect of the earlier " "bombings." msgstr "" -" ANÚNCIO DE SERVIÇO PÚBLICO: \\ 'Beware Chuva Ácida \\'. Vários produtos " -"químicos cáusticos no ar reagem com as nuvens de chuva para causar chuva " -"ácida mortal. Nenhuma palavra ainda sobre se esta é uma tática deliberada ou" -" um efeito colateral dos bombardeios anteriores." #: lang/json/snippet_from_json.py msgid "" @@ -139194,10 +123462,6 @@ msgid "" "smash or butcher with a knife until unrecognizable! Screw Geneva! Protect " "our troops!" msgstr "" -" O EDITOR DIZ 'DESTRUA OS MORTOS'. Inimigos reconhecíveis mortos deixados " -"deitados na rua podem doar posições de milícias! Se você matar um combatente" -" inimigo, esmague ou amasse com uma faca até ficar irreconhecível! Parafuso " -"Genebra! Proteja nossas tropas!" #: lang/json/snippet_from_json.py msgid "" @@ -139205,10 +123469,6 @@ msgid "" "headed underground near a local salon. Expert sources suggest that the " "soldiers may be headed to a possible underground bunker." msgstr "" -" SOLDADOS VISTOS UNDERGROUND. Os rumores são abundantes como testemunhas " -"oculares ver as tropas indo para o subterrâneo perto de um salão local. " -"Fontes de especialistas sugerem que os soldados podem se dirigir a um " -"possível bunker subterrâneo." #: lang/json/snippet_from_json.py msgid "" @@ -139227,10 +123487,6 @@ msgid "" "source. \"I can't disclose, but this development is the LEAST in this " "exciting vein!\"" msgstr "" -" QUADUM LEAP: Um projeto não revelado produziu resultados na forma de " -"teletransporte teórico. 'Esta é apenas a ponta do iceberg', disse uma fonte." -" 'Eu não posso revelar, mas este desenvolvimento é o MENOR nesta veia " -"excitante!'" #: lang/json/snippet_from_json.py msgid "" @@ -139239,19 +123495,12 @@ msgid "" "weaken enemies or improve our own troops. \"We're still in Alpha testing,\"" " says Kevin, \"It really needs a Bugfix\"." msgstr "" -" Ele vai explodir seu mundo: o cientista Kevin Granade revela potencial \" " -"'Reality Grenade \\', vagamente relacionado ao teleport-tech. Ele alega que " -"poderia ser usado para enfraquecer os inimigos ou melhorar nossas próprias " -"tropas. \\ 'Ainda estamos no teste Alpha \\, diz Kevin, \\' Ele realmente " -"precisa de um Bugfix \\ '." #: lang/json/snippet_from_json.py msgid "" "SECURIBOTS: Keeping your home safe, ready the second the alarm goes off... " "Who needs people?" msgstr "" -" SECURIBOTES: Mantendo a sua casa em segurança, pronto no segundo em que o " -"alarme dispara ... Quem precisa de pessoas?" #: lang/json/snippet_from_json.py #, no-python-format @@ -139269,10 +123518,6 @@ msgid "" "them, turrets will open fire on anyone without a military ID,\" a general " "said." msgstr "" -" ROBOT RAMPAGE: Três manifestantes feridos ao cercar uma base militar, " -"protestando contra torreões automatizados que tiravam os guardas dos " -"empregos. 'Nós os advertimos, as torres abrirão fogo contra qualquer um sem " -"uma identidade militar', disse um general." #: lang/json/snippet_from_json.py msgid "" @@ -139281,10 +123526,6 @@ msgid "" "militia, the government has dropped taxes on guns and applied a subsidy for " "the poor." msgstr "" -" GOVERNO APRESENTA SUBSÍDIOS DE ARMAS: Em um movimento que o governo diz que" -" vai impulsionar a economia, incentivar a produção militar e apoiar a " -"milícia de defesa, o governo diminuiu os impostos sobre armas e aplicou um " -"subsídio para os pobres." #: lang/json/snippet_from_json.py msgid "" @@ -139293,10 +123534,6 @@ msgid "" "\"We have a right to defend ourselves,\" insisted the ambassador. \"We'll " "back down when they do\"." msgstr "" -" EUA IGNORES DEMANDAS UN: O embaixador dos EUA na ONU hoje rejeitou os " -"pedidos da ONU para iniciar o desarmamento nuclear pela China, os EUA ea " -"Coréia do Norte. 'Temos o direito de nos defender', insistiu o embaixador. " -"'Vamos voltar quando eles fizerem'." #: lang/json/snippet_from_json.py msgid "" @@ -139304,9 +123541,6 @@ msgid "" "covered in solar panels with a miniature flashlight in the middle of his " "head." msgstr "" -" UMA NOVA INTEIRA VOCÊ! Aumente seu mundo com CBMs! Este anúncio apresenta " -"um homem coberto de painéis solares com uma lanterna em miniatura no meio da" -" cabeça." #: lang/json/snippet_from_json.py msgid "" @@ -139314,9 +123548,6 @@ msgid "" "revolution since espresso. Why wait for milk to boil? Have your coffee " "ready instantly with \"THE POWER OF THE ATOM\"!" msgstr "" -" O Futuro ... powered by COFFEE! Rivtech traz para você a maior revolução " -"desde o café expresso. Por que esperar que o leite ferva? Tenha seu café " -"pronto instantaneamente com \\ 'O PODER DO ÁTOM \\'!" #: lang/json/snippet_from_json.py msgid "" @@ -139324,9 +123555,6 @@ msgid "" " the elite are eating, wearing or discussing, Glamopolitan is YOUR magazine!" " So pick up a copy today and \"Sizzle Like A Star\"!" msgstr "" -" GLAMOPOLITANO! Nós temos TODAS as últimas dicas! Se você quer saber o que a" -" elite está comendo, vestindo ou discutindo, Glamopolitan é SUA revista! " -"Então pegue uma cópia hoje e 'Sizzle Like A Star'!" #: lang/json/snippet_from_json.py msgid "" @@ -139334,9 +123562,6 @@ msgid "" "Wrong! We've got all the articles that make it interesting to talk about, " "so you can \"Make Mechanics Popular\"!" msgstr "" -" MECÂNICA POPULAR: As pessoas dizem que a mecânica é chata. Nós dizemos, " -"prove-os erradamente! Nós temos todos os artigos que tornam interessante " -"falar, então você pode \\ 'Fazer Mecânica Popular \\'!" #: lang/json/snippet_from_json.py msgid "" @@ -139344,9 +123569,6 @@ msgid "" "how to make jewelery and art from it as well! We also discuss the correct " "way to use superglue without gluing your hands together!" msgstr "" -" CRAFTY CRAFTERS QUARTERLY: Macarrão não é apenas para comer mais! Aprenda " -"também a fazer joias e arte! Também discutimos a maneira correta de usar " -"super cola sem colar suas mãos!" #: lang/json/snippet_from_json.py msgid "" @@ -139355,10 +123577,6 @@ msgid "" " unable to get the exact location as our sources mysteriously disappeared " "shortly after revealing this information." msgstr "" -" UNDERGROUND BUNKER? Fontes do governo sugerem que um bunker subterrâneo " -"está sendo construído em um local secreto em caso de ataque inimigo. Não foi" -" possível obter a localização exata, pois nossas fontes desapareceram " -"misteriosamente pouco depois de revelar essas informações." #: lang/json/snippet_from_json.py msgid "" @@ -139369,12 +123587,6 @@ msgid "" "\"Brett said that he was gonna get some firewood but he never came back,\" " "said his classmate, Jianxiang Wang. The search is underway." msgstr "" -" ESTUDANTE FALTANDO: Um estudante do ensino médio desapareceu ontem à noite " -"na floresta perto de Wayland. O estudante internacional de 17 anos da China " -"(que adotou o apelido anglicizado \\ 'Brett \\' devido à dificuldade dos " -"americanos em pronunciar seu nome) foi visto pela última vez com seus amigos" -" no campo. 'Brett disse que ia pegar lenha, mas nunca voltou', disse seu " -"colega de classe, Jianxiang Wang. A busca está em andamento." #: lang/json/snippet_from_json.py msgid "" @@ -139385,12 +123597,6 @@ msgid "" "efforts of the County Search & Rescue, Brett had still not been located at " "the time of this report." msgstr "" -" AINDA PESQUISA: A busca por Brett, o estudante do ensino médio que " -"desapareceu há três dias, ainda está em andamento. 'Ele poderia ter jogado " -"no jogo de futebol contra a Weston High School ontem', disse o aflito colega" -" de equipe de Brett, '[...] nunca paramos de rezar.' Apesar dos melhores " -"esforços do County Search & Rescue, Brett ainda não havia sido " -"localizado no momento deste relatório." #: lang/json/snippet_from_json.py msgid "" @@ -139400,12 +123606,6 @@ msgid "" "have we never done such research,\" said the officer on the press " "conference, \"teleportation only exists in sci-fi films.\"" msgstr "" -" Rumores denunciados: As alegações de que os militares vinham conduzindo " -"experimentos de teletransporte em segredo nos arredores de Wayland foram " -"suspensos durante uma coletiva de imprensa hoje cedo. 'Eu tenho que " -"esclarecer que não só nunca fizemos tal pesquisa', disse o oficial na " -"conferência de imprensa, 'o teletransporte só existe em filmes de ficção " -"científica.'" #: lang/json/snippet_from_json.py msgid "" @@ -139415,11 +123615,6 @@ msgid "" "reality\". Apparently it will be crowdsourced via Kickstarter as \"Project " "Cataclysm\" " msgstr "" -" GRANADA PROCURA FINANCIAMENTO PARA GRANADE: Este artigo tem investigado " -"rumores sobre o desgraçado ex-cientista Kevin Granade buscar financiamento " -"público para a chamada arma de distorção da realidade \\ 'Granade \\', que " -"\" 'funciona [...] remendando a realidade \\'. Aparentemente será " -"crowdsourced via Kickstarter como \\ 'Project Cataclysm \\'" #: lang/json/snippet_from_json.py msgid "" @@ -139428,10 +123623,6 @@ msgid "" "country, but maintains our lead on China and keeps us defended\", the " "President said." msgstr "" -" IMPULSO DA CIÊNCIA DO GOVERNO: O governo aumentou drasticamente a P & D" -" de defesa após as exigências do desarmamento da ONU. 'Isso não só mantém " -"dinheiro em nosso país, mas mantém nossa liderança na China e nos mantém " -"defendidos', disse o presidente." #: lang/json/snippet_from_json.py msgid "" @@ -139441,12 +123632,6 @@ msgid "" "city. \"This should keep our economy going strong for years to come, with " "all the military R&D facilities being established,\", one mayor remarked." msgstr "" -" Ciência familiar: vários governadores e legisladores da região da Nova " -"Inglaterra discutiram uma nova iniciativa regional hoje, que relaxou as leis" -" que limitam a distância que um laboratório ou fábrica de materiais " -"perigosos pode ser de uma cidade. 'Isso deve manter nossa economia forte nos" -" próximos anos, com todas as instalações militares de P & D sendo " -"estabelecidas', observou um prefeito." #: lang/json/snippet_from_json.py msgid "" @@ -139455,28 +123640,18 @@ msgid "" "When asked why he had done it, his answer was \"Well, I didn't have a " "welder.\"" msgstr "" -" CONDUZINDO UMA ASA E UMA ORAÇÃO: Um homem da Nova Inglaterra provou que é " -"possível criar um carro novo a partir de sucata usando quase nada além de " -"fita adesiva. Quando perguntado por que ele tinha feito isso, sua resposta " -"foi 'Bem, eu não tenho um soldador." #: lang/json/snippet_from_json.py msgid "" "NEVER BE LEFT IN THE DARK! Rivtech Atomic-nightlight uses \"inexhaustible\"" " plutonium fuel cell, provides light, feeds power back into your grid!" msgstr "" -" NUNCA SE ESQUEÇA NO ESCURO! Rivtech Atomic-nightlight usa célula de " -"combustível \\ 'inesgotável \\ plutônio, fornece luz, alimenta o poder de " -"volta em sua grade!" #: lang/json/snippet_from_json.py msgid "" "Sick of FUEL PRICES? Bus stop too far? Get your driving fix from THE SUN!" " Solar powered electric cars: Silent, Cheap, Powerful." msgstr "" -" Doente dos PREÇOS DE COMBUSTÍVEL? Parada de ônibus longe demais? Obter sua " -"correção de condução do sol! Carros elétricos movidos a energia solar: " -"silenciosos, baratos, poderosos." #: lang/json/snippet_from_json.py msgid "" @@ -139485,9 +123660,6 @@ msgid "" "ATOMIC power! To make boiling hot coffee the MINUTE you want it! Atomic " "Coffeemaker." msgstr "" -" Café do Futuro ... AGORA! Ninguém realmente tem tempo para fazer um ótimo " -"café, mas agora você não precisa! Rivtech dá-lhe poder ATOMIC inesgotável! " -"Para fazer café fervendo o MINUTO você quer isto! Cafeteira Atômica." #: lang/json/snippet_from_json.py msgid "" @@ -139495,9 +123667,6 @@ msgid "" "Wrong! We've got all the articles that make it interesting to talk about, " "so you can \"Make Mechanics Popular\"!" msgstr "" -" MECÂNICA POPULAR: As pessoas dizem que a mecânica é entediante? Nós " -"dizemos, prove-os erradamente! Nós temos todos os artigos que tornam " -"interessante falar, então você pode \\ 'Fazer Mecânica Popular \\'!" #: lang/json/snippet_from_json.py msgid "" @@ -139505,10 +123674,6 @@ msgid "" "birdhouse design, and compare with the often confused Scandinavian Birdhouse" " design. Our article on sheet metal birdhouses will have you riveted!" msgstr "" -" CASA DE BANHO MENSAL ... Este mês, analisamos algumas inovações holandesas " -"no design de casas de pássaros, e comparamos com o desenho de passarinhos " -"escandinavos, muitas vezes confuso. Nosso artigo sobre birdhouses de chapa " -"metálica vai deixar você fascinado!" #: lang/json/snippet_from_json.py msgid "" @@ -139524,9 +123689,6 @@ msgid "" "has further relaxed gun control, expected to increase the economic boost of " "earlier gun subsidies and relieve public tension." msgstr "" -" MOSTRE-LOS SUAS ARMAS: Em resposta às mais recentes ameaças da China, o " -"governo relaxou ainda mais o controle de armas, que deve aumentar o estímulo" -" econômico dos subsídios às armas e aliviar a tensão pública." #: lang/json/snippet_from_json.py msgid "" @@ -139534,9 +123696,6 @@ msgid "" "China's threats. In the event of an actual attack, we have established " "evacuation centers, within a short distance of most towns." msgstr "" -" PRONTO PARA O PIOR: O governo provou que está pronto para lidar com as " -"ameaças da China. No caso de um ataque real, estabelecemos centros de " -"evacuação, a uma curta distância da maioria das cidades." #: lang/json/snippet_from_json.py msgid "" @@ -139544,9 +123703,6 @@ msgid "" "don't appear to be complications, but many sufferers are developing large " "amounts of benign tumorous tissue, A pound or more,\" said a doctor" msgstr "" -" MUTANT COLD: Um novo vírus da gripe surgiu na área da Nova Inglaterra. 'Não" -" parece haver complicações, mas muitos pacientes estão desenvolvendo grandes" -" quantidades de tecido tumoral benigno, uma libra ou mais', disse um médico." #: lang/json/snippet_from_json.py msgid "" @@ -139555,10 +123711,6 @@ msgid "" "strange but not especially dangerous, Homeland Security is \"looking at the " "connections now.\"" msgstr "" -" GRAVE BUSINESS: Relatórios recentes mostram um grande aumento nos roubos e " -"assaltos a funerárias nas últimas semanas. Descrito como altamente estranho," -" mas não especialmente perigoso, Homeland Security está 'olhando para as " -"conexões agora." #: lang/json/snippet_from_json.py msgid "" @@ -139567,10 +123719,6 @@ msgid "" "teleportation to reach aliens, unless they live on some kind of parallel " "world.\"" msgstr "" -" TELEPORTAÇÃO DO ESPAÇO - VERDADE OU FICÇÃO? Os cientistas abordaram uma " -"crescente teoria da conspiração hoje. 'O plutônio consumido é enorme. Não " -"podemos usar o teletransporte para alcançar alienígenas, a menos que eles " -"vivam em algum tipo de mundo paralelo.'" #: lang/json/snippet_from_json.py msgid "" @@ -139578,10 +123726,6 @@ msgid "" "demonstration of a prototype today: \"We are still working on it, the laser " "weapon lacks power, but has a technically almost unlimited range,\" one said" msgstr "" -" LASERS - PRÓXIMA COISA: Os principais pesquisadores da defesa comentaram " -"durante a demonstração de um protótipo hoje: 'Ainda estamos trabalhando " -"nisso, a arma laser não tem energia, mas tem um alcance tecnicamente quase " -"ilimitado', disse um deles." #: lang/json/snippet_from_json.py #, no-python-format @@ -139598,10 +123742,6 @@ msgid "" "evidence that suggests that decriminalized drugs cause fewer health problems" " and are generally better managed while providing valuable tax revenues." msgstr "" -" GUERRA SOBRE AS DROGAS MORTOS: O governo finalmente reagiu a evidências " -"acumuladas há muito tempo que sugerem que os medicamentos descriminalizados " -"causam menos problemas de saúde e geralmente são mais bem administrados, ao " -"mesmo tempo em que proporcionam receitas tributárias valiosas." #: lang/json/snippet_from_json.py msgid "" @@ -139610,10 +123750,6 @@ msgid "" "why not buy an MP3 PLAYER or a GAME CONSOLE? Chase those blues away at " "GREENS Supermarket" msgstr "" -" SENTINDO-SE TRISTE? Tente \\ 'Greens \\' para revistas! Seu supermercado " -"local! Nada te anima como uma boa revista ... A menos que seja comida lixo! " -"Ou por que não comprar um MP3 PLAYER ou um GAME CONSOLE? Persiga essas " -"tristezas no Supermercado GREENS" #: lang/json/snippet_from_json.py msgid "" @@ -139621,9 +123757,6 @@ msgid "" "discuss hardwood versus soft woods, whether to lacquer, oil or paint, and " "which type of nails you should use!" msgstr "" -" CASA DE BANHO MENSAL ... Que madeira preferiria um pica-pau? Este mês " -"discutimos madeira dura versus madeiras macias, seja para laca, óleo ou " -"tinta, e qual tipo de prego você deve usar!" #: lang/json/snippet_from_json.py msgid "" @@ -139631,10 +123764,6 @@ msgid "" " snare you don't know TRAP! Hunt down a copy of TRAPPERS' LIFE and learn " "about wildlife!... And how to kill it. This week, a CROSSBOW TRAP!" msgstr "" -" ... O que você sabe sobre sobreviver no deserto? Se você não pode fazer uma" -" armadilha você não sabe TRAP! Procure uma cópia da TRAPPERS 'LIFE e " -"aprenda sobre a vida selvagem! ... E como matá-la. Esta semana, uma " -"armadilha CROSSBOW!" #: lang/json/snippet_from_json.py msgid "" @@ -139643,10 +123772,6 @@ msgid "" " China massing troops. \"We must pray for the best while preparing for the " "worst.\"" msgstr "" -" APOIE O PAÍS QUE O APOIA - PRESIDENTE: Inesperadamente e impopularmente, o " -"presidente hoje instituiu um projeto de tempo de paz em resposta às tropas " -"chinesas em massa. 'Devemos orar pelo melhor enquanto nos preparamos para o " -"pior." #: lang/json/snippet_from_json.py msgid "" @@ -139655,10 +123780,6 @@ msgid "" "accomplished the goal of calming the people\". He later retracted the " "comment and is unable to be contacted." msgstr "" -" EVACS NÃO REALIZADOS: VERDADE OU FICÇÃO? Uma fonte do governo não " -"identificada sugeriu que os centros de evacuação não estão mais lotados, já " -"que 'já realizaram o objetivo de acalmar as pessoas'. Mais tarde, ele " -"retraiu o comentário e não pode ser contatado." #: lang/json/snippet_from_json.py msgid "" @@ -139667,10 +123788,6 @@ msgid "" "plasma which accurately follows a path of laser-heated air,\" according to a" " Pentagon official." msgstr "" -" NOVA ARMA DESENVOLVIDA: A defesa hoje levantou a tampa em um projeto " -"secreto mantido por muito tempo. 'Não podemos discutir os detalhes, mas gera" -" uma explosão de plasma que segue precisamente um caminho de ar aquecido por" -" laser', de acordo com um funcionário do Pentágono." #: lang/json/snippet_from_json.py msgid "" @@ -139679,10 +123796,6 @@ msgid "" "world through it. Then a shambling hazy purple mushroom came through, " "man.\"" msgstr "" -" UFO CRASH: VERDADE OU FICÇÃO? Uma conta civil afirma que um disco brilhante" -" apareceu em seu campo. 'Meio que brilhava, e eu pude ver um estranho mundo " -"cinza através dele. Então um cogumelo roxo nebuloso e trôpego apareceu, " -"cara." #: lang/json/snippet_from_json.py msgid "" @@ -139690,10 +123803,6 @@ msgid "" "formation of a new federal agency XEDRA, to oversee \"4th Axis technology\" " "already in use. Expert opinion suggests time-travel or parallel worlds." msgstr "" -" VIAGEM NO TEMPO: VERDADE OU FICÇÃO? Documentos federais vazados descrevem a" -" formação de uma nova agência federal XEDRA, para supervisionar a " -"'tecnologia do 4º eixo' já em uso. A opinião de especialistas sugere viagens" -" no tempo ou mundos paralelos." #: lang/json/snippet_from_json.py msgid "" @@ -139702,10 +123811,6 @@ msgid "" "about wildlife!... And how to kill it. Classic BEAR TRAP returns in this " "issue!" msgstr "" -" ... O que você sabe sobre sobreviver no deserto? Se você não pode fazer uma" -" armadilha você não sabe TRAP! Procure uma cópia da TRAPPERS 'LIFE e " -"aprenda sobre a vida selvagem! ... E como matá-la. O clássico BEAR TRAP " -"retorna nesta edição!" #: lang/json/snippet_from_json.py msgid "" @@ -139713,10 +123818,6 @@ msgid "" "compound bow and Hunt Your Own!? Our arrows and bolts are completely " "reusable, so why not hunt animals like Mother Nature intended?" msgstr "" -" CAÇA DE BENS! Os preços dos alimentos te derrubando? Por que não pegar uma " -"besta ou arco composto e caçar seu próprio !? Nossas flechas e parafusos são" -" completamente reutilizáveis, então porque não caçar animais como a Mãe " -"Natureza?" #: lang/json/snippet_from_json.py msgid "" @@ -139724,9 +123825,6 @@ msgid "" "enemy, a general said today. \"These stories have been tracked to communist" " sources tied in with the presumably Chinese invasion.\"" msgstr "" -" BEWARE PROPAGANDA UNDEAD: Histórias sobre os mortos \\ 'rising \\' podem " -"estimular o inimigo, disse um general hoje. \\ 'Estas histórias foram " -"rastreadas para fontes comunistas ligadas à suposta invasão chinesa. \"" #: lang/json/snippet_from_json.py msgid "" @@ -139735,10 +123833,6 @@ msgid "" "without proper registration. Please seek military personnel if you need " "access." msgstr "" -" GERAL DIZ EVITAR BUNKERS: Não tente fugir para o seu bunker militar mais " -"próximo! Bunkers com pouca equipe são defendidos por torres, que atiram sem " -"o devido registro. Por favor, procure por pessoal militar se precisar de " -"acesso." #: lang/json/snippet_from_json.py msgid "" @@ -139747,10 +123841,6 @@ msgid "" "random and senseless, our current theory is a street drug gone terribly " "wrong\"" msgstr "" -" RIOTS CAUSADOS POR \\ 'NEW DRUG \\': rumores de tumultos foram reprimidos " -"hoje. \\ 'Estes são incidentes isolados \\', disse um chefe de polícia " -"local. \\ 'A violência é aleatória e sem sentido, nossa teoria atual é uma " -"droga de rua que se tornou terrivelmente errada \"" #: lang/json/snippet_from_json.py msgid "" @@ -139759,10 +123849,6 @@ msgid "" " they teamed up with Haiti to put hoodoo drugs in the water making people " "zombies.\"" msgstr "" -" DROGA ZUMBI: VERDADE OU FICÇÃO? Um blogueiro sugere que distúrbios recentes" -" são um ataque químico da China. 'Eles estão com ciúmes da nossa " -"superioridade cibernética, eles se juntaram ao Haiti para colocar drogas na " -"água fazendo as pessoas zumbirem.'" #: lang/json/snippet_from_json.py msgid "" @@ -139770,9 +123856,6 @@ msgid "" "for months or longer, and when you've eaten it, you can refill and seal the " "jar! Stock your emergency supply TODAY!" msgstr "" -" CARNE RECOLHIDA EM UM FRASCO! Assim como sua avó costumava fazer! Vai durar" -" meses ou mais, e quando você come, você pode reabastecer e selar o frasco! " -"Estocar seu suprimento de emergência hoje!" #: lang/json/snippet_from_json.py msgid "" @@ -139780,9 +123863,6 @@ msgid "" "what-would-we-use... to PUT a lot of things in!? (Ad by the \"Play " "SchoolClothing Co.\")" msgstr "" -" SACOS, SACOS, SACOS! Eles são coisas muito úteis! Se não tivéssemos BOLSAS," -" o que usaríamos ... para colocar um monte de coisas em!? (Anúncio da \" " -"'Play SchoolClothing Co. \\')" #: lang/json/snippet_from_json.py msgid "" @@ -139791,10 +123871,6 @@ msgid "" "why not buy an MP3 PLAYER or a GAME CONSOLE? Chase those Blues away at " "GREENS Supermarket" msgstr "" -" SENTINDO-SE TRISTE? Tente \\ 'Greens \\' para revistas! Seu supermercado " -"local! Nada te anima como uma boa revista ... A menos que seja comida lixo! " -"Ou por que não comprar um MP3 PLAYER ou um GAME CONSOLE? Perseguir aqueles " -"azuis afastado no supermercado de GREENS" #: lang/json/snippet_from_json.py msgid "" @@ -139802,9 +123878,6 @@ msgid "" " of the next generation of job creators. With us you will already have a " "foot in the door when it is time to rebuild the nation!" msgstr "" -" BEM-VINDO A CASA! Sua decisão de se juntar à nossa família o levará a fazer" -" parte da próxima geração de criadores de emprego. Com a gente você já terá " -"um pé na porta quando for a hora de reconstruir a nação!" #: lang/json/snippet_from_json.py msgid "" @@ -139814,12 +123887,6 @@ msgid "" "TECHNICIAN offer limitless growth potential! Please contact your employment" " adviser if you have any questions." msgstr "" -" PRECISA DE UM NOVO TRABALHO? Agora que você garantiu uma casa confortável, " -"tente analisar uma das muitas promissoras oportunidades de carreira que têm " -"vagas abertas. Aberturas como o GEOLOGICAL ENGINEERING ASSISTANT ou o " -"FACILITY TECHNICIAN oferecem um potencial ilimitado de crescimento! Por " -"favor, entre em contato com o seu consultor de empregos se tiver alguma " -"dúvida." #: lang/json/snippet_from_json.py msgid "" @@ -139828,11 +123895,6 @@ msgid "" "will receive additional hazardous pay and time off. Please go to the " "engineering office on level 3 if you are interested." msgstr "" -" BOM COM SUAS MÃOS? A engenharia sempre precisa de outra mão para manter " -"nossa casa em bom estado de funcionamento! Como incentivo, todos os que " -"trabalham no nível 3 receberão pagamentos adicionais e folgas adicionais. " -"Por favor, dirija-se ao escritório de engenharia no nível 3 se estiver " -"interessado." #: lang/json/snippet_from_json.py msgid "" @@ -139841,11 +123903,6 @@ msgid "" "opening up to those who are willing to learn a new craft. Our library and " "research labs will keep even the hungriest minds fed!" msgstr "" -" QUER CONTINUAR A SUA EDUCAÇÃO? Nossas instalações educacionais são " -"excelentes e oferecem cursos para pessoas de todas as idades. Muitas novas " -"carreiras estão se abrindo para aqueles que estão dispostos a aprender um " -"novo ofício. Nossa biblioteca e laboratórios de pesquisa manterão até mesmo " -"as mentes famintas alimentadas!" #: lang/json/snippet_from_json.py msgid "" @@ -139856,12 +123913,6 @@ msgid "" "hardware. The caption reads: \"Autodoc - augmentation has never been so " "easy, reliable, and safe.\"" msgstr "" -" Este é um anúncio para um hospital local. Você vê um quarto de hospital " -"limpo com um homem sorridente deitado na cama. A cama está conectada a algum" -" aparelho médico com um 'Autodoc Mk. X' impresso. Um médico é visto " -"trabalhando com seu console, enquanto seu assistente está desembalando " -"alguns equipamentos de alta tecnologia. A legenda diz: \\ 'Autodoc - aumento" -" nunca foi tão fácil, confiável e seguro. \"" #: lang/json/snippet_from_json.py msgid "" @@ -139938,27 +123989,27 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "You feel cold. You need the warmth of a fire." -msgstr "Você sente frio. Você precisa do calor de um fogo." +msgstr "" #: lang/json/snippet_from_json.py msgid "Maybe a fire could calm your nerves?" -msgstr "Talvez um fogo possa acalmar seus nervos?" +msgstr "" #: lang/json/snippet_from_json.py msgid "You need to ignite something." -msgstr "Você precisa acender alguma coisa." +msgstr "" #: lang/json/snippet_from_json.py msgid "You daydream of crackling fire..." -msgstr "Você sonha acordado com fogo crepitante ..." +msgstr "" #: lang/json/snippet_from_json.py msgid "You shiver. A fire would be great right now." -msgstr "Você estremece. Um incêndio seria ótimo agora." +msgstr "" #: lang/json/snippet_from_json.py msgid "You think of randomly lighting a fire, but decide against it." -msgstr "Você pensa em acender um fogo aleatoriamente, mas decidir contra ele." +msgstr "" #: lang/json/snippet_from_json.py msgid "You think of steel blades and warm dripping blood." @@ -140142,19 +124193,12 @@ msgid "" "something: 31-34 meters and it's apparently impotent. The Director sent 'em" " back with a note that we're scientists, not firmware devs." msgstr "" -" O general Carlsberg queria que descobríssemos o que está acontecendo com o " -"AI bot. Aparentemente, o tanque de brinquedo dos defensores da gordura-gato " -"tem vários problemas ou algo assim: 31-34 metros e aparentemente é " -"impotente. O diretor os enviou de volta com uma nota de que somos " -"cientistas, não devs de firmware." #: lang/json/snippet_from_json.py msgid "" "Our chemical department has made great strides in the production of a " "concentrated mutagen, derived from samples of PE012." msgstr "" -" Nosso departamento de produtos químicos tem feito grandes avanços na " -"produção de um mutagênico concentrado, derivado de amostras de PE012." #: lang/json/snippet_from_json.py msgid "" @@ -140162,9 +124206,6 @@ msgid "" "Consumption of the treatment will reverse the effects of mutation, and may " "even cure congenital defects. This substance has been denoted PE018." msgstr "" -" Nosso departamento de química aperfeiçoou um tratamento com células-tronco " -"não direcionadas. O consumo do tratamento reverterá os efeitos da mutação e " -"poderá até curar defeitos congênitos. Esta substância foi denotada PE018." #: lang/json/snippet_from_json.py msgid "" @@ -140172,10 +124213,6 @@ msgid "" "substances, alternating between the mutagen and the purifier. Ultimately, " "the subject returned to baseline state with no apparent side effects." msgstr "" -" Ambos PE012 e PE018 mostram grande estabilidade. Um indivíduo foi exposto a" -" ambas as substâncias, alternando entre o mutagênico e o purificador. Por " -"fim, o sujeito retornou ao estado de referência sem efeitos colaterais " -"aparentes." #: lang/json/snippet_from_json.py msgid "" @@ -140184,10 +124221,6 @@ msgid "" "topical injection to a specific area of mutation. This has been denoted " "PE019. Other labs have so far been unable to reproduce the process." msgstr "" -" O Dr. Hofstadter fabricou uma versão melhorada do PE018, combinando com o " -"PE012 fora do sujeito, depois administrando a mistura através de uma injeção" -" tópica em uma área específica de mutação. Isso foi denotado PE019. Outros " -"laboratórios até agora não conseguiram reproduzir o processo." #: lang/json/snippet_from_json.py msgid "" @@ -140195,9 +124228,6 @@ msgid "" "samples should be suppressed as malicious gossip. The jealousy of rival " "teams cannot be allowed to degrade morale." msgstr "" -" Rumores do Dr. Hofstadter e sua equipe de laboratório sussurrando para " -"amostras PE019 devem ser reprimidos como fofocas maliciosas. O ciúme de " -"equipes rivais não pode degradar o moral." #: lang/json/snippet_from_json.py msgid "" @@ -140205,9 +124235,6 @@ msgid "" "that we prepare for the inevitable. PE050 can be quickly and cheaply " "reconfigured for |||||ERROR: FILE CORRUPT|||||" msgstr "" -" : |||| ERROR || Com o XE037 violando o confinamento, o Dr. Maiar recomenda " -"que nos preparemos para o inevitável. O PE050 pode ser reconfigurado de " -"forma rápida e barata para ||||| ERROR: FILE CORRUPT |||||" #: lang/json/snippet_from_json.py msgid "" @@ -140216,10 +124243,6 @@ msgid "" "been reassigned. Further discussion of or attempts to carry on his work " "will be grounds for immediate termination." msgstr "" -" O Dr. Maiar foi demitido por se envolver em pesquisa antiética em seres " -"humanos. Suas anotações estão sendo destruídas e todo o pessoal sob ele foi " -"transferido. Uma discussão mais aprofundada ou tentativas de continuar seu " -"trabalho será motivo para rescisão imediata." #: lang/json/snippet_from_json.py msgid "" @@ -140227,9 +124250,6 @@ msgid "" "BREAKDOWN, WE ROUTE AROUND IT. THE WORD IS ALREADY OUT. NOBODY DROPS MAIAR" " INTO LAVA.||||||" msgstr "" -" ||| ERRO: MEMÓRIA NÃO-REFERENDA 0Ex670c9e1f5, REJEIÇÃO: A CENSURA É UMA " -"REPARTIÇÃO, NÓS ROTAMOS EM REDE. A PALAVRA ESTÁ JÁ FORA. NINGUÉM DROGA MAIAR" -" NA LAVA. ||||||" #: lang/json/snippet_from_json.py msgid "" @@ -140238,10 +124258,6 @@ msgid "" "psychopharmacological department assets are being assigned to Dr. Sattler's " "PE070 project." msgstr "" -" Dadas as atuais projeções populacionais, a implantação do PE065 não é mais " -"viável. Nós simplesmente não temos o estoque. Os recursos restantes do " -"departamento químico e psicofarmacológico estão sendo atribuídos ao projeto " -"PE070 do Dr. Sattler." #: lang/json/snippet_from_json.py msgid "" @@ -140251,11 +124267,6 @@ msgid "" "and in some cases is reportedly more efficient, than the oral techniques we " "have been using." msgstr "" -" O sucesso do Dr. Maiar com a administração de mutagênicos intravenosos foi " -"adotado em toda a instalação; Na medida em que qualquer um de nossos " -"trabalhos possa ser 'publicado', ele e sua equipe atingem o jackpot. A " -"administração intravenosa é mais rápida e fácil, e em alguns casos é " -"supostamente mais eficiente do que as técnicas orais que temos usado." #: lang/json/snippet_from_json.py msgid "" @@ -140266,12 +124277,6 @@ msgid "" "future. Several research teams are already investigating possible " "applications." msgstr "" -" Esforços recentes de trabalho de campo e de extração resultaram em uma " -"série de mutagênicos adaptados para concentrar o processo de mutação em " -"subtipos específicos. Estes foram designados PE025 a 037. Embora " -"significativamente mais recursos e tempo para produzir, eles prometem um " -"novo futuro transumano ousado. Várias equipes de pesquisa já estão " -"investigando possíveis aplicações." #: lang/json/snippet_from_json.py msgid "" @@ -140280,10 +124285,6 @@ msgid "" "side effect being digestive upset. The lack of macro-scale physical changes" " makes it ideal for both military and civilian applications." msgstr "" -" O departamento de produtos químicos chegou com um coquetel mutagênico " -"estável. O PE050 se mostra promissor como um aprimoramento genético geral, " -"com o pior efeito colateral sendo o distúrbio digestivo. A falta de mudanças" -" físicas em macroescala o torna ideal para aplicações militares e civis." #: lang/json/snippet_from_json.py msgid "" @@ -140293,11 +124294,6 @@ msgid "" "spread of reanimated XE037 infectees. We are looking into implementation " "methodology." msgstr "" -" A equipe do Dr. Dionne apresentou um ambicioso coquetel mutagênico, chamado" -" PE065. Embora seus efeitos sejam altamente polimórficos e instáveis, para " -"dizer o mínimo, ele sugere que vários desses mutantes poderiam efetivamente " -"verificar a disseminação de infectados XE037 reanimados. Estamos analisando " -"a metodologia de implementação." #: lang/json/snippet_from_json.py msgid "" @@ -140306,11 +124302,6 @@ msgid "" "return immediately, but shifted by several meters. Our subjects oscillated " "so quickly that none were even aware that they had visited lower planes." msgstr "" -" Nós fizemos uma descoberta fascinante; criando um portal em miniatura com " -"baixa estabilidade e alta potência, pode-se transpor para a 4ª dimensão e " -"retornar imediatamente, mas deslocada em vários metros. Nossos sujeitos " -"oscilavam tão rapidamente que ninguém sabia que eles tinham visitado aviões " -"mais baixos." #: lang/json/snippet_from_json.py msgid "" @@ -140320,12 +124311,6 @@ msgid "" "bolstering the immune system and natural regenerative capabilities, though a" " few troubling behavioral side effects have been reported." msgstr "" -" A equipe de pesquisa liderada pelo Dr. Isha produziu uma forma concentrada " -"de mutagênico que mostra resultados promissores para o tratamento de muitas " -"formas de doença. O teste revela que inibe as respostas da dor do corpo " -"enquanto fortalece o sistema imunológico e as capacidades regenerativas " -"naturais, embora alguns efeitos colaterais comportamentais preocupantes " -"tenham sido relatados." #: lang/json/snippet_from_json.py msgid "" @@ -140333,9 +124318,6 @@ msgid "" "creation of a long-range transportation device eludes us, and one can " "transfer no further than 30 meters." msgstr "" -" Nossa pesquisa sobre o teletransporte parou. Por alguma razão, a criação de" -" um dispositivo de transporte de longo alcance nos ilude, e não é possível " -"transferir mais de 30 metros." #: lang/json/snippet_from_json.py msgid "" @@ -140356,11 +124338,6 @@ msgid "" "being torn apart. By the time the confusion settled, all the fauna had been" " terminated." msgstr "" -" Eu não sei como isso aconteceu, mas um zelador conseguiu ativar o portal " -"enquanto limpava o laboratório, mudando em uma variedade de fauna pré- " -"histórica. A segurança foi chamada imediatamente, mas foi incapaz de salvar " -"o zelador de ser despedaçado. No momento em que a confusão se instalou, toda" -" a fauna foi terminada." #: lang/json/snippet_from_json.py msgid "" @@ -140369,10 +124346,6 @@ msgid "" "performed a transposition in time, unfortunately the portal device was " "destroyed when security put down the fauna." msgstr "" -" Testes na fauna pré-histórica mostram relações genéticas extremamente " -"próximas com animais terrestres existentes e extintos. Pode ser que o portal" -" tenha realizado uma transposição a tempo, infelizmente o dispositivo do " -"portal foi destruído quando a segurança derrubou a fauna." #: lang/json/snippet_from_json.py msgid "" @@ -140381,11 +124354,6 @@ msgid "" " inside out, while the former sustained little damage. I would like to " "explore the phenomenon further, but subjects are expensive." msgstr "" -" Um incidente ocorreu no laboratório de teletransporte, onde um sujeito " -"conseguiu se teletransportar para outro assunto. Este último foi " -"completamente destruído de dentro para fora, enquanto o primeiro sofreu " -"poucos danos. Eu gostaria de explorar mais o fenômeno, mas os assuntos são " -"caros." #: lang/json/snippet_from_json.py msgid "" @@ -140393,9 +124361,6 @@ msgid "" " It seems prolonged rapid transposition along the 4th dimension weakens the" " forces holding one on this plane." msgstr "" -" Os assuntos de teste no departamento de teletransporte estão mostrando " -"sintomas alarmantes. Parece que a transposição rápida prolongada ao longo da" -" quarta dimensão enfraquece as forças que sustentam uma nesse plano." #: lang/json/snippet_from_json.py msgid "" @@ -140404,11 +124369,6 @@ msgid "" "occasional tunnels along the 4th dimension, allowing life forms to transfer " "to this plane. All subjects with prolonged exposure have been terminated." msgstr "" -" A catástrofe atingiu o nosso departamento de teletransporte ontem. Parece " -"que nossos sujeitos de teste estão tão desconectados deste plano que criam " -"túneis ocasionais ao longo da 4ª dimensão, permitindo que formas de vida se " -"transfiram para este plano. Todos os indivíduos com exposição prolongada " -"foram terminados." #: lang/json/snippet_from_json.py msgid "" @@ -140416,9 +124376,6 @@ msgid "" "XE037. It seems to be a kind of living, semi-sentient primordial ooze, and " "is the basis of much of the life we have found." msgstr "" -" Nosso programa de extração de formas de vida continua a produzir amostras " -"do espécime XE037. Parece ser um tipo de lama primordial viva e semi- " -"consciente, e é a base de grande parte da vida que encontramos." #: lang/json/snippet_from_json.py msgid "" @@ -140427,9 +124384,6 @@ msgid "" "Hendelson stepped into one of these pits yesterday, and was immediately " "coated and attacked." msgstr "" -" O espécime XE037, chamado jocosamente como 'o blob', foi observado entrando" -" em um tipo de estado dormente, formando uma depressão no chão. Hendelson " -"entrou em um desses poços ontem e foi imediatamente coberto e atacado." #: lang/json/snippet_from_json.py msgid "" @@ -140437,10 +124391,6 @@ msgid "" " stem cells. This is further evidence supporting Hendelson's theory of a " "near universal symbiotic relationship involving XE037." msgstr "" -" O XE037 se mostra promissor como um catalisador para clonagem e tratamentos" -" que simulam as células-tronco. Esta é mais uma evidência que sustenta a " -"teoria de Hendelson de uma relação simbiótica quase universal envolvendo " -"XE037." #: lang/json/snippet_from_json.py msgid "" @@ -140448,10 +124398,6 @@ msgid "" "similarity to XE037. XE142 and XE157 in particular show the same amorphous," " slime-like structure as XE037, suggesting a close genetic relationship." msgstr "" -" Vários dos espécimes mais avançados que recuperamos mostram uma " -"impressionante semelhança com o XE037. XE142 e XE157 mostram em particular a" -" mesma estrutura amorfa semelhante a limo como XE037, sugerindo uma relação " -"genética próxima." #: lang/json/snippet_from_json.py msgid "" @@ -140460,10 +124406,6 @@ msgid "" "weaponry, but they were susceptible to directed energy weapons and " "flagration." msgstr "" -" Hoje testamos armamento contra XE142 e XE157, duas amostras subprime " -"amorfas. Sua forma provou ser quase invulnerável ao armamento baseado em " -"projéteis, mas eles eram suscetíveis a armas de energia direcionada e " -"flagração." #: lang/json/snippet_from_json.py msgid "" @@ -140472,11 +124414,6 @@ msgid "" "disintegrated. This suggests that XE037, while compatible with subprime " "lifeforms, shows only destructive effects on prime plane lifeforms." msgstr "" -" Nosso departamento de clonagem não conseguiu produzir resultados. Em cubas " -"contendo tratamentos com células-tronco, XE037 e cubas de controle, os " -"indivíduos simples se desintegraram. Isso sugere que o XE037, apesar de " -"compatível com formas de vida subprime, mostra apenas efeitos destrutivos em" -" formas de vida do plano principal." #: lang/json/snippet_from_json.py msgid "" @@ -140485,10 +124422,6 @@ msgid "" "internal structure that is amazingly similar to that of mammals, while " "others seem to have no internal structure at all." msgstr "" -" O programa de vivissecção mostrou resultados mistos, revelando um incrível " -"grau de variação nas formas de vida do subplano. Certos espécimes têm uma " -"estrutura interna que é incrivelmente semelhante à dos mamíferos, enquanto " -"outros parecem não ter nenhuma estrutura interna." #: lang/json/snippet_from_json.py msgid "" @@ -140496,10 +124429,6 @@ msgid "" "surface entrance is quite secure, there are several possible points of entry" " below the surface, particularly in the sewage systems." msgstr "" -" Nosso departamento de segurança identificou várias falhas importantes. " -"Embora a nossa entrada na superfície seja bastante segura, existem vários " -"possíveis pontos de entrada abaixo da superfície, particularmente nos " -"sistemas de esgoto." #: lang/json/snippet_from_json.py msgid "" @@ -140508,10 +124437,6 @@ msgid "" "examination, the subject went through a revivification progress, but " "displayed next to no human intelligence." msgstr "" -" Hoje aplicamos uma amostra muito pequena de XE037, suspensa em água, para " -"sujeitar TP92, antes da terminação necessária. Durante o exame postmortem, o" -" sujeito passou por um progresso de revivificação, mas exibido ao lado de " -"nenhuma inteligência humana." #: lang/json/snippet_from_json.py msgid "" @@ -140519,9 +124444,6 @@ msgid "" " Containment of all samples of XE037 is of critical importance, as shown by" " contamination experiments." msgstr "" -" Mendelson mostra uma falta desanimadora de organização e consciência de " -"segurança. Contenção de todas as amostras de XE037 é de importância crítica," -" como mostrado por experimentos de contaminação." #: lang/json/snippet_from_json.py msgid "" @@ -140530,10 +124452,6 @@ msgid "" "forces. Before the sample was destroyed, it managed to kill two men. " "Alarmingly, their corpses displayed mobility and extreme aggression." msgstr "" -" Mendelson foi encerrado após um incidente com o XE037. Uma amostra móvel " -"substancial partiu de seu laboratório e encontrou nossas forças de " -"segurança. Antes da amostra ser destruída, conseguiu matar dois homens. De " -"forma alarmante, os cadáveres exibiam mobilidade e extrema agressividade." #: lang/json/snippet_from_json.py msgid "" @@ -140542,11 +124460,6 @@ msgid "" "two prior occasions. Sadly, our human subject pool is dwindling due to the " "short lifespan of subjects in this program. More will be acquired soon." msgstr "" -" Criámos um novo departamento para investigar os efeitos do XE037 no corpo " -"humano, especificamente para examinar o efeito de revivificação observado em" -" duas ocasiões anteriores. Infelizmente, o nosso grupo de sujeitos humanos " -"está diminuindo devido à curta vida útil dos assuntos neste programa. Mais " -"será adquirido em breve." #: lang/json/snippet_from_json.py msgid "" @@ -140554,10 +124467,6 @@ msgid "" "same revivifying effect, oddly enough. Acquiring non-human subjects, sadly," " is a long and costly process, and research into this area is lacking." msgstr "" -" Testar XE037 em sujeitos mamíferos não humanos parece não exibir o mesmo " -"efeito revitalizador, curiosamente. Adquirir pessoas não-humanas, " -"infelizmente, é um processo longo e dispendioso, e falta pesquisa sobre essa" -" área." #: lang/json/snippet_from_json.py msgid "" @@ -140566,11 +124475,6 @@ msgid "" "their way into the lab. Horrifyingly, XE037 caused near-instant mutation " "and gigantism in the insects, and security intervention was required." msgstr "" -" Depois de nossos curiosos resultados com o teste de XE037 em mamíferos não " -"humanos, decidimos introduzir a substância em alguns insetos que foram " -"encontrados no laboratório. Horrorosamente, o XE037 causou mutação e " -"gigantismo quase instantâneo nos insetos, e foi necessária uma intervenção " -"de segurança." #: lang/json/snippet_from_json.py msgid "" @@ -140579,10 +124483,6 @@ msgid "" " mammal subjects, but quickly enters a form of stasis and seems to go " "dormant." msgstr "" -" Conjectura anterior de que a revivificação ocorreu apenas em humanos e " -"insetos era prematura. A exposição introduz uma infecção persistente e de " -"baixo nível em todos os mamíferos, mas rapidamente entra em uma forma de " -"estase e parece estar dormente." #: lang/json/snippet_from_json.py msgid "" @@ -140591,20 +124491,12 @@ msgid "" "mammals such as lab rats do not obtain this critical mass of XE037 before " "going dormant. Larger canine subjects, however, do." msgstr "" -" O fator primário na determinação da revivificação de indivíduos mamíferos " -"parece ser a quantidade de XE037 dentro do corpo no momento da expiração. " -"Mamíferos menores, como ratos de laboratório, não obtêm essa massa crítica " -"de XE037 antes de ficarem inativos. Assuntos caninos maiores, no entanto, " -"fazem." #: lang/json/snippet_from_json.py msgid "" "I swear they are talking to me. No one believes me. No one understands. " "They whisper to me, at night, in the dark. Please, please, make them stop." msgstr "" -" Eu juro que eles estão falando comigo. Ninguém acredita em mim. Ninguém " -"entende. Eles sussurram para mim, à noite, no escuro. Por favor, por favor, " -"pare." #: lang/json/snippet_from_json.py msgid "" @@ -140613,10 +124505,6 @@ msgid "" "to a deceased body; revivification only occurs when the subject is exposed " "to XE037 prior to expiration." msgstr "" -" O programa S37ZBE, a investigação do XE037 em corpos humanos inertes, está " -"dando grandes passos. Recentemente, descobrimos que o XE037 não tem efeito " -"quando introduzido em um corpo falecido; a revivificação ocorre apenas " -"quando o sujeito é exposto ao XE037 antes da expiração." #: lang/json/snippet_from_json.py msgid "" @@ -140625,10 +124513,6 @@ msgid "" "and while it immediately enters stasis after equalizing, it remains in the " "body." msgstr "" -" Tentativas de ultrapassar o limite de estase em mamíferos XE037 tiveram " -"algum sucesso. A injeção subcutânea direta de XE037 se espalha rapidamente " -"pelo corpo e, enquanto entra imediatamente em estase após a equalização, " -"permanece no corpo." #: lang/json/snippet_from_json.py msgid "" @@ -140638,11 +124522,6 @@ msgid "" "electrocuted, and another researcher at the opposite end of the lab " "sustained severe current burns, despite never approaching the cage." msgstr "" -" Houve um incidente no Laboratório 24, 2 baixas relatadas, uma letal. Um " -"rato envolvido no projeto de quebra de estase foi ligado a uma máquina de " -"monitoramento e deixado durante a noite. Ao abrir a gaiola, Simon Bellevue " -"foi eletrocutado, e outro pesquisador no lado oposto do laboratório sofreu " -"queimaduras graves, apesar de nunca se aproximar da gaiola." #: lang/json/snippet_from_json.py msgid "" @@ -140651,10 +124530,6 @@ msgid "" " the monitoring device, and large buildups of XE037 were detected around the" " connection point." msgstr "" -" Um post-mortem no rato envolvido no incidente de eletrocussão revelou " -"várias alterações na sua anatomia interna centrada em torno de sua conexão " -"com o dispositivo de monitoramento, e grandes acúmulos de XE037 foram " -"detectados em torno do ponto de conexão." #: lang/json/snippet_from_json.py msgid "" @@ -140663,10 +124538,6 @@ msgid "" "incident found almost twenty rats had gone missing from their cages " "overnight." msgstr "" -" Há uma crença de que vários outros ratos experimentaram mudanças durante a " -"noite também. Esta hipótese foi informada quando uma verificação de " -"inventário após o incidente constatou que quase vinte ratos tinham " -"desaparecido de suas gaiolas durante a noite." #: lang/json/snippet_from_json.py msgid "" @@ -140675,18 +124546,12 @@ msgid "" "structural changes in the subject being tested. Exposure to radiation on " "living subjects scheduled." msgstr "" -" A exposição de grandes quantidades de XE037 a vários tipos de radiação " -"mostrou resultados promissores, estimulando a atividade e formando mudanças " -"estruturais interessantes no indivíduo que está sendo testado. Exposição à " -"radiação em sujeitos vivos programados." #: lang/json/snippet_from_json.py msgid "" "Exposure to radiation of test subject T3D indicates stimulation of internal " "XE037 deposits and a temporary lifting of the mammalian stasis condition." msgstr "" -" A exposio radiao do sujeito de teste T3D indica estimulao de depitos XE037 " -"internos e um levantamento temporio da condio de estase em mameros." #: lang/json/snippet_from_json.py msgid "" @@ -140695,11 +124560,6 @@ msgid "" "be random. T3D appears to be in immense pain as a result of these changes, " "but the lack of an oral opening has rendered him unable to vocalize." msgstr "" -" Como nos testes de amostras XE037 isoladas, a exposição prolongada à " -"radiação do T3D resultou em mudanças estruturais significativas. Estes não " -"parecem ser aleatórios. O T3D parece estar em imensa dor como resultado " -"dessas mudanças, mas a falta de uma abertura oral o tornou incapaz de " -"vocalizar." #: lang/json/snippet_from_json.py msgid "" @@ -140708,11 +124568,6 @@ msgid "" "\"mutations\". They do not appear to be truly random, and may be an attempt" " by XE037 to adapt its host to an unknown stimulus." msgstr "" -" Assunto T3D sucumbiu ao envenenamento por radiação, mas não antes de passar" -" por várias outras mudanças fisiológicas que os meninos de laboratório estão" -" se referindo como 'mutações'. Eles não parecem ser verdadeiramente " -"aleatórios e podem ser uma tentativa do XE037 de adaptar seu hospedeiro a um" -" estímulo desconhecido." #: lang/json/snippet_from_json.py msgid "" @@ -140722,12 +124577,6 @@ msgid "" "with unknown properties, primarily those known to succumb earlier to the " "effects of radiation poisoning." msgstr "" -" A revivificação post-mortem do sujeito T3D ocorreu conforme o esperado, " -"seguido por uma autópsia imediata. As mudanças internas foram " -"significativas, com grandes partes da anatomia interna dos sujeitos " -"substituídas por 'órgãos' do XE037 com propriedades desconhecidas, " -"principalmente aquelas conhecidas por sucumbirem anteriormente aos efeitos " -"do envenenamento por radiação." #: lang/json/snippet_from_json.py msgid "" @@ -140736,11 +124585,6 @@ msgid "" "significant potential. Samples of the enhanced XE037, labeled PE012, have " "been sent to several researchers for further study." msgstr "" -" As amostras de XE037 do sujeito T3D permanecem extremamente ativas. " -"Experiências adicionais sobre mutação induzida em indivíduos infectados " -"mostram um potencial significativo. Amostras do XE037 aprimorado, denominado" -" PE012, foram enviadas a vários pesquisadores para um estudo mais " -"aprofundado." #: lang/json/snippet_from_json.py msgid "" @@ -140749,10 +124593,6 @@ msgid "" "displays a mutagenic property which manifests itself after termination of " "the subject, resulting in a striking variety in postmortem morphology." msgstr "" -" S37ZBE, a investigação especial sobre os efeitos do XE037 em corpos humanos" -" inertes, fez descobertas incríveis. Parece que ocasionalmente exibe uma " -"propriedade mutagênica que se manifesta após o término do assunto, " -"resultando em uma variedade marcante na morfologia pós-morte." #: lang/json/snippet_from_json.py msgid "" @@ -140761,10 +124601,6 @@ msgid "" "expiration, embedded foreign bodies at time of revivification, proximity to " "other revived individuals, and the body mass of the subject." msgstr "" -" A incidência de mutação post-mortem parece depender de vários fatores - os " -"principais candidatos incluem o tipo e a quantidade de danos sofridos que " -"levam à expiração, corpos estranhos embutidos no momento da revivificação, " -"proximidade com outros indivíduos revividos e a massa corporal do indivíduo." #: lang/json/snippet_from_json.py msgid "" @@ -140773,11 +124609,6 @@ msgid "" "Sufficient amounts of trauma in short periods of time lead to deactivation " "of XE037, but smaller amounts over several days cause it to expand." msgstr "" -" O tempo também parece desempenhar um papel importante na revivificação pós-" -" morte, assim como o trauma sustentado é insuficiente para incapacitar " -"permanentemente o sujeito. Quantidades suficientes de trauma em curtos " -"períodos de tempo levam à desativação de XE037, mas quantidades menores ao " -"longo de vários dias fazem com que ele se expanda." #: lang/json/snippet_from_json.py msgid "" @@ -140786,11 +124617,6 @@ msgid "" " in size, acquiring enough strength to reduce a concrete wall to rubble. It" " required a 6 man team, heavily armed, to re-terminate the subject." msgstr "" -" O S37ZBE pode ser colocado em espera indefinidamente em breve. Alterações " -"morfológicas pós-morte atingiram níveis extremos; nesta manhã, um assunto " -"quase dobrou de tamanho, adquirindo força suficiente para reduzir um muro de" -" concreto a escombros. Foi necessário um time de 6 homens, fortemente " -"armado, para finalizar novamente o assunto." #: lang/json/snippet_from_json.py msgid "" @@ -140798,10 +124624,6 @@ msgid "" " safety risks. Nearly half of our security forces have been redirected to " "the S37ZBE project, simply to deal with the occasional escape of a subject." msgstr "" -" Jakobson insiste que o S37ZBE deve continuar, apesar dos riscos extremos de" -" segurança e segurança. Quase metade das nossas forças de segurança foram " -"redirecionadas para o projeto S37ZBE, simplesmente para lidar com a fuga " -"ocasional de um assunto." #: lang/json/snippet_from_json.py msgid "" @@ -140810,10 +124632,6 @@ msgid "" "revivified immediately. This suggests that XE037 may have contaminated the " "lab at large." msgstr "" -" Jakobson foi morto hoje por um dos sujeitos da S37ZBE; irônico, " -"considerando o quanto ele lutou para manter o projeto ativo. De forma " -"alarmante, seu cadáver reviveu imediatamente. Isso sugere que o XE037 pode " -"ter contaminado o laboratório como um todo." #: lang/json/snippet_from_json.py msgid "" @@ -140822,10 +124640,6 @@ msgid "" "likely via the water supply. Research has started immediately into a " "process to destroy XE037 within the human body." msgstr "" -" O término de um assunto que nunca fez parte do S37ZBE confirmou meus medos." -" O XE037 contaminou a maioria, se não todo o laboratório, provavelmente " -"através do fornecimento de água. A pesquisa começou imediatamente em um " -"processo para destruir XE037 dentro do corpo humano." #: lang/json/snippet_from_json.py msgid "" @@ -140834,10 +124648,6 @@ msgid "" "revivification post termination. Interestingly, XE037 seems to be " "completely inert prior to termination." msgstr "" -" Apesar de uma ampla variedade de tratamentos, temos sido completamente mal " -"sucedidos na remoção de XE037 de seres humanos. Cada indivíduo exibiu " -"revivificação após a rescisão. Curiosamente, o XE037 parece estar " -"completamente inerte antes da terminação." #: lang/json/snippet_from_json.py msgid "" @@ -140845,10 +124655,6 @@ msgid "" "the destruction of XE037 in living subjects. 8 of 10 of the subjects showed" " no revivification, despite confirmed dosages of XE037." msgstr "" -" Nós finalmente encontramos o sucesso em S37BEP, nossa investigação de " -"emergência sobre a destruição do XE037 em sujeitos vivos. 8 de 10 dos " -"sujeitos não apresentaram revivificação, apesar das doses confirmadas de " -"XE037." #: lang/json/snippet_from_json.py msgid "" @@ -140858,11 +124664,6 @@ msgid "" "substance which renders XE037 inert after it has activated would be " "immensely useful in the case of an outbreak." msgstr "" -" PE062, nossa \\ 'cura \\' para contaminação XE037, se aproximou da " -"perfeição. Infelizmente, a produção de PE062 é um processo caro e demorado. " -"Além disso, a substância não mostra nenhum efeito sobre os assuntos post " -"mortem em absoluto; Uma substância que torne o XE037 inerte após sua " -"ativação seria imensamente útil no caso de um surto." #: lang/json/snippet_from_json.py msgid "" @@ -140870,9 +124671,6 @@ msgid "" "half mile from the laboratory. It is unclear how it escaped; it is quite " "possible that it is in the ground water now." msgstr "" -" Uma descoberta alarmante foi feita. Uma colônia de XE037 formou-se a quase " -"meia milha do laboratório. Não está claro como ele escapou; é bem possível " -"que esteja na água subterrânea agora." #: lang/json/snippet_from_json.py msgid "" @@ -140880,10 +124678,6 @@ msgid "" "widespread XE037 contamination. It was agreed that neutralization must be " "instated immediately to prevent a catastrophic event." msgstr "" -" Uma reunião de emergência foi realizada hoje para discutir as possíveis " -"implicações da contaminação generalizada do XE037. Concordou-se que a " -"neutralização deve ser instalada imediatamente para evitar um evento " -"catastrófico." #: lang/json/snippet_from_json.py msgid "" @@ -140892,10 +124686,6 @@ msgid "" "populations will be decimated by this pandemic. We must find a way to " "remove XE037 from revivified bodies." msgstr "" -" Começou. A contaminação XE037 se espalhou por quilômetros, e aqueles que já" -" faleceram reviveram. É meu receio que populações extremamente grandes sejam" -" dizimadas por esta pandemia. Temos que encontrar uma maneira de remover o " -"XE037 de corpos revivificados." #: lang/json/snippet_from_json.py msgid "" @@ -140907,14 +124697,6 @@ msgid "" " as standard XE037 humanoid infection. Canine body size seems to influence " "the chances. See experiment tXE037b_c." msgstr "" -" Temos notícias ainda mais angustiantes do que a contaminação XE037 " -"generalizada, há relatos do XE037 em mutação em várias novas variantes. Veja" -" os arquivos de dados no XE037a - XE037f. Pesquisas sobre os efeitos dessas " -"variantes estão em andamento. Nós sabemos que XE037d mostra sinais de " -"imunidade PE062, e XE037b pode reviver várias raças de caninos. No entanto, " -"o renascimento não é tão garantido quanto a infecção humanóide padrão XE037." -" O tamanho do corpo canino parece influenciar as chances. Veja o experimento" -" tXE037b_c." #: lang/json/snippet_from_json.py msgid "" @@ -140924,11 +124706,6 @@ msgid "" "allows subplane life forms to pass into the prime plan. The cure is worse " "than the disease." msgstr "" -" Hoje encontramos a nossa solução, por acaso. Verificou-se que o XE037 é " -"completamente removido de um corpo revivificado após uma série de " -"transposições de quarta dimensão de energia extremamente alta. Infelizmente," -" isso invariavelmente permite que os formulários de vida do subplano passem " -"para o plano principal. A cura é pior que a doença." #: lang/json/snippet_from_json.py msgid "" @@ -140939,12 +124716,6 @@ msgid "" " a strategic redeployment to the underground complex known as the VAULT, and" " continuing production of PE062 there." msgstr "" -" A revivificação do XE037 atingiu níveis críticos, que estão rapidamente " -"sobrecarregando a capacidade dos militares policiais e dos policiais " -"regionais para parar. Cada equipe no campo encontrou espécimes hostis e " -"vários não estão mais respondendo às comunicações. O Dr. Savage propôs uma " -"redistribuição estratégica para o complexo subterrâneo conhecido como VAULT," -" e continua a produção de PE062 lá." #: lang/json/snippet_from_json.py msgid "" @@ -141190,11 +124961,11 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "This is not the world I have chosen. They even took my CDs!.." -msgstr "Este não é o mundo que escolhi. Eles até levaram meus CDs! .." +msgstr "" #: lang/json/snippet_from_json.py msgid "Dark days are ahead, but is that all?" -msgstr "Dias sombrios estão à frente, mas isso é tudo?" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -141202,9 +124973,6 @@ msgid "" "smiling kids and some sort of animal mascot. The flier reads \"Eat, rock, " "party, play.\"" msgstr "" -" Este é um anúncio antigo amassado para uma pizzaria local. Ele retrata " -"crianças sorridentes e algum tipo de mascote animal. O folheto diz: 'Coma, " -"balance, festeje, brinque." #: lang/json/snippet_from_json.py msgid "" @@ -141213,67 +124981,54 @@ msgid "" "party, play!\" Someone has crudely scrawled underneath it \"Smoke weed " "every day!\"" msgstr "" -" Este é um anúncio antigo amassado para uma pizzaria local. Ele retrata " -"crianças sorridentes e algum tipo de mascote animal. O panfleto diz: 'Coma, " -"balance, festeje, brinque!' Alguém rabiscou grosseiramente por baixo dele. " -"'Fumar maconha todo dia! \"" #: lang/json/snippet_from_json.py msgid "\"This is a kids place, why is their mascot so stacked!?\"" msgstr "" -" 'Este é um lugar para crianças, porque é que o seu mascote está tão " -"empilhado?'" #: lang/json/snippet_from_json.py msgid "\"NO BAD ROBOT I DON'T WANT PIZZA.\"" -msgstr "\\ 'NENHUM ROBÔ MAU EU NÃO QUERO PIZZA. \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Fuckin haunted pizza joint, just burn it down\"" -msgstr "\\ 'Porra assombrada pizzaria, apenas queimá-lo \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Pizza, arcade tokens, horrible death, got my bases covered.\"" msgstr "" -" \\ 'Pizza, fichas de arcade, morte horrível, tenho minhas bases cobertas. " -"\"" #: lang/json/snippet_from_json.py msgid "\"leg eaten by zombie robot furry help\"" -msgstr "\\ 'perna comido por zumbi robot furry help \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "KEVIN SACRIFICING GAMEPLAY FOR REALISM? THE SHOCKING TRUTH REVEALED" -msgstr "KEVIN SACRIFICANDO O JOGO PARA O REALISMO? A VERDADE CHOCADA REVELADA" +msgstr "" #: lang/json/snippet_from_json.py msgid "TEN FACTS ABOUT THE NEW BIONIC SYSTEM THAT WILL SHOCK YOU" -msgstr "DEZ FATOS SOBRE O NOVO SISTEMA BIONICO QUE O CHOQUE" +msgstr "" #: lang/json/snippet_from_json.py msgid "YOU WON'T BELIEVE WHO JUST ADDED A NEW PROFESSION" -msgstr "VOCÊ NÃO ACREDITAR QUEM APENAS ADICIONOU UMA NOVA PROFISSÃO" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "TRIVIALIZE THE EARLY GAME WITH THIS ONE SIMPLE SPEAR WEAPON! CONTRIBUTORS " "HATE HIM" msgstr "" -" TRIVIALIZE O JOGO ANTERIOR COM ESTA ARMA DE UMA LANÇA SIMPLES! " -"COLABORADORES OOTAM HIM" #: lang/json/snippet_from_json.py msgid "" "A MEDICAL MUTANT SET THEMSELVES ON FIRE - YOU WON'T BELIEVE WHAT HAPPENED " "NEXT" msgstr "" -" UM MUTANTE MÉDICO SE AJUSTEU NO FOGO - VOCÊ NÃO ACREDITARÁ O QUE ACONTECEU " -"PRÓXIMO" #: lang/json/snippet_from_json.py msgid "THE TRUTH ABOUT CATACLYSM'S DEVELOPMENT - AND ITS DISGUSTING SECRET" msgstr "" -"A VERDADE SOBRE O DESENVOLVIMENTO DA CATACLISM - E SEU SEGREDO MALDITO" #: lang/json/snippet_from_json.py #, no-python-format @@ -141283,8 +125038,6 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "20 EASY WAYS TO ESCAPE A LAB - #4 WILL BLOW YOUR MIND" msgstr "" -" 20 maneiras fáceis de escapar de um laboratório - # 4 vai explodir sua " -"mente" #: lang/json/snippet_from_json.py msgid "" @@ -141293,341 +125046,314 @@ msgid "" "stylized silhouette of a T. Rex. The flier reads \"Witness the rebirth of " "the extinct, grand opening this week!\"" msgstr "" -" Este é um anúncio de uma exposição local da vida selvagem, alegando ter " -"novos e excitantes animais em exposição. Estranhamente, a única imagem nela " -"é uma silhueta estilizada de um T. Rex. O folheto diz: 'Testemunhe o " -"renascimento da extinta inauguração desta semana!'" #: lang/json/snippet_from_json.py msgid "\"SWAMPS BAD TEETH HUGE OHGOD\"" -msgstr "\\ 'SWAMPS DAD DENTES OHGOD ENORME \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Why is that place just fucking crawling with lizards?\"" -msgstr "'Por que esse lugar está apenas rastejando com lagartos?" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Fellow scaly bretheren! Tonight we feast on the hairless apes.\"" msgstr "" -" 'Companheiros escamosos! Esta noite nós nos banqueteamos com os macacos sem" -" pêlos." #: lang/json/snippet_from_json.py msgid "\"where's some .700 t-rex medicine when you need it?\"" -msgstr "'Onde está um remédio de 700 t-rex quando você precisa?'" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"So is this what happens when you stray off the path and step on a " "butterfly?\"" msgstr "" -" 'Então é isso que acontece quando você sai do caminho e pisa em uma " -"borboleta?" #: lang/json/snippet_from_json.py msgid "\"Gun. Sword. Gunsword. Screw bayonets, this is way more awesome.\"" msgstr "" -" \\ 'Gun. Sword. Gunsword. Screw baionetas, isso é muito mais incrível. \"" #: 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 "" -" 'Não tenho certeza se empunhar essa coisa me faz sentir como um " -"fisiculturista ou um físico teórico. Ambos?'" #: lang/json/snippet_from_json.py msgid "\"This ain't your grandaddy's .50 cal hand cannon!\"" -msgstr "'Este não é o canhão de mão calibre .50 do seu avô! \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Nice pistol! Which trigger fires the flamer?\"" -msgstr "\\ 'Boa pistola! Qual gatilho dispara o flamer? \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"Why in the name of fuck did I slap a crossbow on this handgun.\"" -msgstr "'Por que, em nome da porra, eu bati uma besta nesta arma." +msgstr "" #: lang/json/snippet_from_json.py msgid "Real work for real people!" -msgstr "Real trabalho para pessoas reais!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Strike!" -msgstr "Greve!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Robots stole my job!" -msgstr "Robôs roubaram meu trabalho!" +msgstr "" #: lang/json/snippet_from_json.py msgid "robot labor=slave labor" -msgstr "trabalho de robô = trabalho escravo" +msgstr "" #: lang/json/snippet_from_json.py msgid "Bring back our jobs!" -msgstr "Traga de volta nossos trabalhos!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Robots go home!" -msgstr "Robôs vão para casa!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Human labor" -msgstr "Trabalho humano" +msgstr "" #: lang/json/snippet_from_json.py msgid "We want our old factory!" -msgstr "Nós queremos nossa antiga fábrica!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Smash the Bots!" -msgstr "Esmagar os bots!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Here Lies . What a Jerk." -msgstr "Aqui jaz . Que idiota." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Eaten by wolves." -msgstr " . Comido por lobos." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Infected." -msgstr " . Infectado." +msgstr "" #: lang/json/snippet_from_json.py msgid "We send on to Valhalla" -msgstr "Nós enviamos para Valhalla" +msgstr "" #: lang/json/snippet_from_json.py msgid "RIP " -msgstr "DESCANSE EM PAZ " +msgstr "" #: lang/json/snippet_from_json.py msgid " . Roasting in Hell." -msgstr " . Assar no Inferno." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Fallen Soldier." -msgstr " . Soldado caído." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Ripped apart by a gross tentacle thing in the woods." -msgstr " . Rasgado por uma coisa enorme de tentáculos na floresta." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Died as he lived, drunk and on fire." -msgstr " . Morreu enquanto vivia, bêbado e em chamas." +msgstr "" #: lang/json/snippet_from_json.py msgid "" " & . Crashed their motorcycles at 120mph. Buried the " "pieces together." msgstr "" -" E . Caiu suas motos a 120 mph. Enterrou os pedaços " -"juntos." #: lang/json/snippet_from_json.py msgid " . Friend, Lover, Cannibal." -msgstr " . Amigo, amante, canibal." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Vaporized by Tank Bot." -msgstr " . Vaporizado pelo Tank Bot." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Died in his sleep. Lucky Bastard." -msgstr " . Morreu em seu sono. Afortunado Bastardo." +msgstr "" #: lang/json/snippet_from_json.py msgid " Here lies . No Smoking near Molotov storage!" -msgstr "Aqui jaz . Não fumar perto de armazenamento Molotov!" +msgstr "" #: lang/json/snippet_from_json.py msgid " . Gunned down in his prime." -msgstr " . Abatido em seu auge." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Drank a mystery serum and mutated to death." msgstr "" -" . Bebeu um soro misterioso e sofreu uma mutação até a morte." #: lang/json/snippet_from_json.py msgid " . We'll never see another like him." -msgstr " . Nós nunca veremos outro como ele." +msgstr "" #: lang/json/snippet_from_json.py msgid " . Done in by mutant wasps." -msgstr " . Feito por vespas mutantes." +msgstr "" #: lang/json/snippet_from_json.py msgid "LIVING INSIDE!" -msgstr "VIVENDO DENTRO!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Send Help." -msgstr "Envie ajuda." +msgstr "" #: lang/json/snippet_from_json.py msgid "Rooms Available. Rent Negotiable." -msgstr "Quartos disponíveis. Aluguel negociável." +msgstr "" #: lang/json/snippet_from_json.py msgid "No sick allowed inside!" -msgstr "Nenhum doente permitido dentro!" +msgstr "" #: lang/json/snippet_from_json.py msgid "Need clean water." -msgstr "Precisa de água limpa." +msgstr "" #: lang/json/snippet_from_json.py msgid "Waiting for airlift." -msgstr "Esperando pelo transporte aéreo." +msgstr "" #: lang/json/snippet_from_json.py msgid "Ready for EVAC." -msgstr "Pronto para o EVAC." +msgstr "" #: lang/json/snippet_from_json.py msgid "S.O.S." -msgstr "SOS" +msgstr "" #: lang/json/snippet_from_json.py msgid "No Power. No Food. Send Airdrops Please!" -msgstr "Nenhum poder. Sem comida. Envie Airdrops Por favor!" +msgstr "" #: lang/json/snippet_from_json.py msgid "No more FEMA camp refugees. You're already dying." -msgstr "Não há mais refugiados do acampamento da FEMA. Você já está morrendo." +msgstr "" #: lang/json/snippet_from_json.py msgid "Health check required for entrance." -msgstr "Exame de saúde necessário para a entrada." +msgstr "" #: lang/json/snippet_from_json.py msgid "Running low on Medicine, Food, Water, Optimism." -msgstr "Correndo baixo em Medicina, Comida, Água, Otimismo." +msgstr "" #: lang/json/snippet_from_json.py msgid "Save us, army men." -msgstr "Salve-nos, homens do exército." +msgstr "" #: lang/json/snippet_from_json.py msgid "HELP!" -msgstr "SOCORRO!" +msgstr "" #: lang/json/snippet_from_json.py msgid "STILL ALIVE. for now." -msgstr "CONTINUA VIVO. para agora." +msgstr "" #: lang/json/snippet_from_json.py msgid "kiddo" -msgstr "garoto" +msgstr "" #: lang/json/snippet_from_json.py msgid "sweetheart" -msgstr "amor" +msgstr "" #: lang/json/snippet_from_json.py msgid "sunshine" -msgstr "brilho do sol" +msgstr "" #: lang/json/snippet_from_json.py msgid "cupcake" -msgstr "Bolinho" +msgstr "" #: lang/json/snippet_from_json.py msgid "junior" -msgstr "júnior" +msgstr "" #: lang/json/snippet_from_json.py msgid "chum" -msgstr "amigo" +msgstr "" #: lang/json/snippet_from_json.py msgid "hombre" -msgstr "homem" +msgstr "" #: lang/json/snippet_from_json.py msgid "girlfriend" -msgstr "amiga" +msgstr "" #: lang/json/snippet_from_json.py msgid "baby" -msgstr "bebê" +msgstr "" #: lang/json/snippet_from_json.py msgid "buster" -msgstr "imbecil" +msgstr "" #: lang/json/snippet_from_json.py msgid "boyo" -msgstr "boyo" +msgstr "" #: lang/json/snippet_from_json.py msgid "chief" -msgstr "chefe" +msgstr "" #: lang/json/snippet_from_json.py msgid "my dude" -msgstr "meu cara" +msgstr "" #: lang/json/snippet_from_json.py msgid "" "\"Shoot elfy mutants. Carve more bolts outta their bones. Rinse and " "repeat.\"" msgstr "" -" \\ 'Atire mutantes elfy. Esculpir mais parafusos fora de seus ossos. Lave e" -" repita. \"" #: lang/json/snippet_from_json.py msgid "" "\"Tank drone, meet the real deal. See how you handle 120 millimeters of " "HELL YEAH!\"" msgstr "" -" \\ 'Drone Tank, conheça o verdadeiro negócio. Veja como você lida com 120 " -"milímetros de INFERNO YEAH! \"" #: lang/json/snippet_from_json.py msgid "\"big fucking gun, earplugs are good for your brain\"" msgstr "" -" \\ 'grande arma do caralho, tampões de ouvido são bons para o seu cérebro " -"\"" #: lang/json/snippet_from_json.py msgid "\"I have a bicyle-mounted tank cannon. Your argument is invalid.\"" msgstr "" -" 'Eu tenho um canhão de tanques montado no bicyle. Seu argumento é inválido." #: lang/json/snippet_from_json.py msgid "" "\"Next person to call this infantry fighting vehicle a 'tank' is walking " "home.\"" msgstr "" -" 'A próxima pessoa a chamar este veículo de combate de infantaria de um " -"'tanque' está caminhando para 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 "" -" 'Encontrei o que costumava ser um pelotão blindado. A maioria dos tanques " -"tem escotilhas no topo, não nas costas como as novas que estão 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 "" -" \\ 'Agh, para ver a espiral em uma forma tão distorcida! Manipulado por seu" -" movimento Vortex! Sua Graça Perpétua! Sua beleza Manchada ... \"" #: lang/json/snippet_from_json.py msgid "\"My friend died, but at least I made her into a blob turret.\"" -msgstr "'Meu amigo morreu, mas pelo menos eu a fiz em uma torre de blob." +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -141635,57 +125361,44 @@ msgid "" " everything dies. I think I'm gonna toss it in the lake-- this just isn't " "fair anymore.\"" msgstr "" -" 'Eu tenho essa torre de canhão laser no meu carrinho de compras. Eu empurro" -" tudo e morro. Eu acho que vou jogar no lago - isso não é mais justo.'" #: 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 "" -" 'Dia 40. Controles quebrados - o reator mágico do carro faz com que ele " -"avance inexoravelmente. Rolos gigantes na frente demolem a floresta. Maine, " -"aqui vou eu.'" #: lang/json/snippet_from_json.py msgid "\"my car is a diamond in the rough... literally\"" -msgstr "\\ 'meu carro é um diamante bruto ... literalmente \"" +msgstr "" #: lang/json/snippet_from_json.py msgid "\"M249 TURRET NODDED. IS TURRET ALIVE? FINALLY, SOMEBODY TO TALK TO!\"" msgstr "" -" \\ 'M249 TURRET NODDED. ESTÁ TURRET VIVA? FINALMENTE, ALGUÉM PARA FALAR " -"PARA! \"" #: lang/json/snippet_from_json.py msgid "\"Added so many things to my taxi that it went a-blaze. Whoops.\"" msgstr "" -" \\ 'Adicionado tantas coisas para o meu táxi que foi um incêndio. Whoops. " -"\"" #: lang/json/snippet_from_json.py msgid "" "\"If I put one cargo dimension into another cargo dimension, does the " "universe end?\"" msgstr "" -" 'Se eu colocar uma dimensão de carga em outra dimensão de carga, o universo" -" acaba? \"" #: lang/json/snippet_from_json.py msgid "\"one day, i will be part of car, too\"" -msgstr "'um dia, eu serei parte do carro também'" +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 "" -" 'Coloque um pouco de dinamite e metade de uma minhoca em um refrigerante " -"velho ... WHAM! Você vai a algum lugar. \"" #: lang/json/speech_from_json.py msgid "\"Hello?\"" -msgstr "\\'Olá?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Papaya!\"" @@ -141693,162 +125406,160 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Who's there?\"" -msgstr "\\'Quem está aí?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Can you help me?\"" -msgstr "\\'Pode me ajudar?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Over here!\"" -msgstr "\\'Por aqui!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Can you repeat that?\"" -msgstr "\\'Você pode repetir isso?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You're just copying me, aren't you?\"" -msgstr "'Você está apenas me copiando, não é?'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm not afraid of you!\"" -msgstr "\\'Eu não tenho medo de você!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Come here!\"" -msgstr "\\'Venha aqui!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Please, don't!\"" -msgstr "'Por favor, não!" +msgstr "" #: lang/json/speech_from_json.py msgid "a horrified scream!" -msgstr "um grito horrorizado!" +msgstr "" #: lang/json/speech_from_json.py msgid "a little girl's wailing!" -msgstr "uma garotinha está chorando!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"So, what is this thing supposed to be, exactly?\"" -msgstr "'Então, o que essa coisa deveria ser, exatamente?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Uncategorized object seven-seven-three-four.\"" -msgstr "'Objeto não categorizado seven-seven-three-four. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It came from the other side of one of the apertures.\"" -msgstr "'Ele veio do outro lado de uma das aberturas." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Mommy, help!\"" -msgstr "'Mamãe, ajude!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"We're still trying to figure out what makes it tick.\"" -msgstr "\\ 'Ainda estamos tentando descobrir o que faz isso funcionar. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"We're not even sure what it is.\"" -msgstr "\\ 'Nós não temos certeza do que é." +msgstr "" #: lang/json/speech_from_json.py msgid "\"The cell structure is unlike any we've ever seen.\"" -msgstr "\\ 'A estrutura da célula é diferente de tudo que já vimos. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It does seem to have some form of higher level brain functioning.\"" msgstr "" -"'Parece que tem alguma forma de funcionamento cerebral de alto nível.'" #: lang/json/speech_from_json.py msgid "\"Problem solving, memory retention, that sort of thing.\"" -msgstr "\\ 'Resolução de problemas, retenção de memória, esse tipo de coisa. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"There appear to be some anomalous aspects to the mimicry.\"" -msgstr "'Parece haver alguns aspectos anômalos no mimetismo." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Members of the species have some kind of neurocognitive link.\"" -msgstr "\\ 'Membros da espécie possuem algum tipo de ligação neurocognitiva. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"This one's repeating phrases that the previous specimen was exposed to.\"" -msgstr "\\ 'Este está repetindo frases que o espécime anterior foi exposto a. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "a child shrieking!" -msgstr "uma criança gritando!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Oh God, my leg, Oh God!\"" -msgstr "'Oh Deus, minha perna, ó Deus!" +msgstr "" #: lang/json/speech_from_json.py msgid "a long cry of agony!" -msgstr "um longo grito de agonia!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You mean it's not just parroting us?\"" -msgstr "'Você quer dizer que não é apenas papaguear conosco?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's parroting us, but we're uncertain as to how or why.\"" msgstr "" -" \\ 'Está papagueando conosco, mas não temos certeza de como ou por que. \"" #: lang/json/speech_from_json.py msgid "\"It may be a mechanism for attracting prey.\"" -msgstr "'Pode ser um mecanismo para atrair presas." +msgstr "" #: lang/json/speech_from_json.py msgid "\"It could even be a way of trying to scare us off.\"" -msgstr "'Pode até ser uma maneira de tentar nos assustar." +msgstr "" #: lang/json/speech_from_json.py msgid "\"We just don't know.\"" -msgstr "'Nós simplesmente não sabemos." +msgstr "" #: lang/json/speech_from_json.py msgid "an anguished wail!" -msgstr "um lamento angustiado!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You're gonna rot in hell for this!\"" -msgstr "'Você vai apodrecer no inferno por isso!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You hear me!?\"" -msgstr "\\'Você me escuta!?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You're gonna rot in hell, you pieces of shit!\"" -msgstr "'Você vai apodrecer no inferno, seus pedaços de merda!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Like we said, we have no idea what it's thinking.\"" -msgstr "'Como dissemos, não temos ideia do que está pensando." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Is that glass electrified?\"" -msgstr "'Esse vidro é eletrificado?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Why don't you touch it and find out?\"" -msgstr "'Por que você não toca e descobre?'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Of course it is.\"" -msgstr "\\'Claro que é.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"What'll happen if the power goes out?\"" -msgstr "'O que acontecerá se a energia acabar?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Don't worry about it.\"" @@ -141860,778 +125571,771 @@ msgstr "\"não se preocupe.\"" #: lang/json/speech_from_json.py msgid "\"There are seven backup generators.\"" -msgstr "'Existem sete geradores de backup. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"And what if all the backups fail?\"" -msgstr "'E se todos os backups falharem?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"We'd have to terminate the specimen.\"" -msgstr "'Teríamos que terminar o espécime." +msgstr "" #: lang/json/speech_from_json.py msgid "\"The glass alone won't keep us safe for very long.\"" -msgstr "'O vidro sozinho não nos manterá seguros por muito tempo." +msgstr "" #: lang/json/speech_from_json.py msgid "\"That fuckin' thing is horrible, man, it gives me the creeps.\"" -msgstr "'Essa porra de coisa é horrível, cara, isso me dá arrepios.'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's probably more scared of us than we are of it.\"" -msgstr "'É provavelmente mais medo de nós do que nós somos." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Somehow, I doubt that.\"" -msgstr "'De alguma forma, duvido disso." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hey, we got other specimens that could withstand a grenade.\"" -msgstr "'Ei, nós temos outros espécimes que poderiam suportar uma granada." +msgstr "" #: lang/json/speech_from_json.py msgid "\"And that's supposed to comfort me?\"" -msgstr "'E isso deve me confortar?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"At least we know they can die.\"" -msgstr "'Pelo menos sabemos que eles podem morrer." +msgstr "" #: lang/json/speech_from_json.py msgid "\"U-O Seven-Seven-Three-Four.\"" -msgstr "\\ 'UO Seven-Seven-Three-Four. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Individual instances of U-O Seven-Seven-Three-Four.\"" -msgstr "\\ 'Instâncias individuais de UO Seven-Seven-Three-Four. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"To be kept in a standard biohazardous containment chamber.\"" msgstr "" -" \\ 'Para ser mantido em uma câmara de contenção de risco biológico padrão. " -"\"" #: lang/json/speech_from_json.py msgid "\"Until such time as more permanent arrangements are made.\"" -msgstr "\\ 'Até que mais arranjos permanentes sejam feitos \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Shows a noted preference for human brain tissue.\"" -msgstr "\\ 'Mostra uma preferência notável pelo tecido cerebral humano. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Destroy the specimen if it begins to interact with the lock.\"" -msgstr "\\ 'Destrua a amostra se ela começar a interagir com a trava. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Kill them all and let God sort them out!\"" -msgstr "'Mate todos eles e deixe que Deus os resolva!'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I watched a snail crawl along the edge of a straight razor.\"" -msgstr "'Eu assisti um caracol rastejar ao longo da borda de uma navalha." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I've seen horrors, horrors that you've seen.\"" -msgstr "'Eu vi horrores, horrores que você viu." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I love the smell of napalm in the morning.\"" -msgstr "'Eu amo o cheiro de napalm pela manhã." +msgstr "" #: lang/json/speech_from_json.py msgid "\"This is the way the fuckin' world ends.\"" -msgstr "'Este é o jeito que o maldito mundo termina." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Look at this fuckin' shit we're in, man.\"" -msgstr "'Olhe para essa porra de merda em que estamos, cara." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Every man has got a breaking point.\"" -msgstr "'Todo homem tem um ponto de ruptura." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'ma cut those fuckin' tentacles off, bitch!\"" -msgstr "'Eu vou cortar esses malditos tentáculos, cadela! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Watch you bleed out!\"" -msgstr "'Veja você sangrar!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I wonder if it understands us.\"" -msgstr "'Eu me pergunto se isso nos entende." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Do you understand what I'm saying?\"" -msgstr "\\'Você entende o que eu estou dizendo?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Look, it's responding!\"" -msgstr "'Olha, está respondendo!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"That's the first time it moved all morning.\"" -msgstr "'Essa é a primeira vez que se move toda a manhã." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm certain it's trying to understand us.\"" -msgstr "'Estou certo de que está tentando nos entender." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm not convinced it can actually comprehend us.\"" -msgstr "'Eu não estou convencido de que possa realmente nos compreender." +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's just repeating us.\"" -msgstr "\\ 'Está apenas nos repetindo. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Just being an alien creature doesn't mean it's intelligent.\"" msgstr "" -" 'Ser apenas uma criatura alienígena não significa que ela seja inteligente." #: lang/json/speech_from_json.py msgid "\"Just because it doesn't look like you doesn't mean that it isn't.\"" -msgstr "'Só porque não parece com você, não significa que não é." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Please open the door and enter the cell.\"" -msgstr "\\ 'Por favor, abra a porta e entre na célula. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Would it react differently with a child?\"" -msgstr "'Reagiria diferentemente com uma criança?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Experiments to determine extent of cognitive abilities still underway.\"" msgstr "" -" \\ 'Experimentos para determinar a extensão das habilidades cognitivas " -"ainda em andamento. \"" #: lang/json/speech_from_json.py msgid "" "\"Subject has so far displayed a total lack of empathy toward human " "suffering.\"" msgstr "" -" 'O sujeito até agora demonstrou total falta de empatia pelo sofrimento " -"humano." #: lang/json/speech_from_json.py msgid "\"I got a round trip ticket.\"" -msgstr "'Eu tenho um bilhete de ida e volta." +msgstr "" #: lang/json/speech_from_json.py msgid "\"How's your mom doing?\"" -msgstr "'Como está sua mãe?'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How's your dad doing?\"" -msgstr "'Como está seu pai?'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I love you.\"" -msgstr "\\'Eu te amo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I love you too.\"" -msgstr "\\'Eu também te amo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Just a little.\"" -msgstr "\\'Só um pouco.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Only a few more days 'til the weekend.\"" -msgstr "'Apenas mais alguns dias até o final de semana." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Do you smoke?\"" -msgstr "\\'Voce fuma?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You're new here, aren't you?\"" -msgstr "'Você é novo aqui, não é?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How do you like it here?\"" -msgstr "'Como você gosta daqui? \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It won't hurt a bit.\"" -msgstr "'Não vai doer um pouco." +msgstr "" #: lang/json/speech_from_json.py msgid "\"That was a long time ago.\"" -msgstr "\\'Isso foi há muito tempo atrás.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Does it scare you?\"" -msgstr "'Isso assusta você?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Don't worry, it can't hurt us.\"" -msgstr "'Não se preocupe, não pode nos machucar." +msgstr "" #: lang/json/speech_from_json.py msgid "\"What are you afraid will happen?\"" -msgstr "'O que você tem medo vai acontecer?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Anything else?\"" -msgstr "\\'Algo mais?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You think they're the same sex?\"" -msgstr "'Você acha que eles são do mesmo sexo?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Do they even have sex?\"" -msgstr "'Eles ainda fazem sexo? \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Can I see your phone?\"" -msgstr "'Posso ver seu telefone?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You got a dollar I can borrow?\"" -msgstr "'Você tem um dólar que eu posso pedir emprestado?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you busy at the moment?\"" -msgstr "\\'Você está ocupado no momento?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you busy later?\"" -msgstr "'Você está ocupado mais tarde?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you busy tonight?\"" -msgstr "\\'Você está ocupado esta noite?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you free tonight?\"" -msgstr "\\'Você está livre Hoje à noite?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you going to the party tonight?\"" -msgstr "'Você vai para a festa hoje à noite?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you going to help them?\"" -msgstr "'Você vai ajudá-los?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you alone?\"" -msgstr "\\'Você está sozinho?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you hungry?\"" -msgstr "\\'Está com fome?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm hungry.\"" -msgstr "\\'Eu estou com fome.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Go ahead.\"" -msgstr "\\'Continue.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Have a good time.\"" -msgstr "\\'Divirta-se.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Have you eaten yet?\"" -msgstr "\\'Você já comeu?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Is it supposed to rain tomorrow?\"" -msgstr "'É suposto chover amanhã?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Okay.\"" -msgstr "\\'OK.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Good.\"" -msgstr "\\'Boa.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Great.\"" -msgstr "\\'Ótimo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Fantastic.\"" -msgstr "\\'Fantástico.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"God damn it.\"" -msgstr "'Deus, droga." +msgstr "" #: lang/json/speech_from_json.py msgid "\"God damn it!\"" -msgstr "'Deus, droga!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Damn it.\"" -msgstr "\\'Droga.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Damn it!\"" -msgstr "\\'Droga!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Fuck.\"" -msgstr "\\'Porra.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Shit.\"" -msgstr "\\'Merda.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Fuck!\"" -msgstr "\\'Porra!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Shit!\"" -msgstr "\\'Merda!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Fuckin' piece of garbage.\"" -msgstr "'Fodendo pedaço de lixo." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I need a new lab coat.\"" -msgstr "'Eu preciso de um novo avental." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Excellent.\"" -msgstr "\\'Excelente.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Excuse me.\"" -msgstr "\\'Desculpe.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Good morning.\"" -msgstr "\\'Bom Dia.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Good afternoon.\"" -msgstr "\\'Boa tarde.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Good evening.\"" -msgstr "\\'Boa noite.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Good night.\"" -msgstr "\\'Boa noite.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Good luck.\"" -msgstr "\\'Boa sorte.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Can I help you?\"" -msgstr "\\'Posso ajudar?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you seeing anyone?\"" -msgstr "\\'Você está vendo alguém?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Forget it.\"" -msgstr "\\'Esqueça.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How long were you two together?\"" -msgstr "'Quanto tempo vocês dois estavam juntos?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Give me a call later.\"" -msgstr "\\'Me ligue mais tarde.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Call me.\"" -msgstr "\\'Me liga.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"From time to time.\"" -msgstr "\\'De tempos em tempos.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"We have a serious situation here.\"" -msgstr "'Nós temos uma situação séria aqui." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Call the police.\"" -msgstr "\\'Chame a polícia.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Call an ambulance.\"" -msgstr "\\'Chame uma ambulância.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Get me the White House.\"" -msgstr "'Pegue-me a Casa Branca." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you feeling all right?\"" -msgstr "\\'Você está se sentindo bem?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I think I'll live.\"" -msgstr "'Eu acho que vou viver." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I think I need to see a doctor.\"" -msgstr "'Eu acho que preciso ver um médico." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Is everything all right?\"" -msgstr "\\'Está tudo bem?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm okay, don't worry about me.\"" -msgstr "'Eu estou bem, não se preocupe comigo." +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's just a scratch.\"" -msgstr "'É apenas um arranhão." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I've got a headache.\"" -msgstr "\\'Eu estou com dor de cabeça.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm fine.\"" -msgstr "\\'Estou bem.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you sure?\"" -msgstr "\\'Você tem certeza?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Positive.\"" -msgstr "\\'Positivo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Affirmative.\"" -msgstr "\\ 'Afirmativo. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Negative.\"" -msgstr "\\'Negativo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Sorry.\"" -msgstr "\\'Desculpa.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Happy Birthday!\"" -msgstr "\\'Feliz Aniversário!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Have you ever been to California?\"" -msgstr "'Você já esteve na Califórnia?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"What time do you get off?\"" -msgstr "'A que horas você sai?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"We should hit up the shooting range later.\"" -msgstr "'Devemos acertar o campo de tiro mais tarde." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm heading to the pool after work.\"" -msgstr "'Estou indo para a piscina depois do trabalho. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Have a good trip.\"" -msgstr "\\'Tenha uma boa viagem.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Where did you come from?\"" -msgstr "\\'De onde você veio?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Have you been waiting long?\"" -msgstr "'Você está esperando há muito tempo?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Have you done this before?\"" -msgstr "\\'Você já fez isso antes?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hello.\"" -msgstr "\\'Olá.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Help!\"" -msgstr "\\'Socorro!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Here it is.\"" -msgstr "\\'Aqui está.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I've got family coming tomorrow.\"" -msgstr "'Eu tenho família vindo amanhã." +msgstr "" #: lang/json/speech_from_json.py msgid "\"How do I use this?\"" -msgstr "'Como eu uso isso?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How do you know?\"" -msgstr "\\'Como você sabe?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How long have you been here?\"" -msgstr "\\'À Quanto tempo você esteve aqui?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How many languages do you speak?\"" -msgstr "\\'Quantas línguas você fala?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How many people?\"" -msgstr "\\'Quantas pessoas?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How much were these earrings?\"" -msgstr "'Quanto foram esses brincos?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How much do I owe you?\"" -msgstr "\\'Quanto eu te devo?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How much will it cost?\"" -msgstr "\\'Quanto vai custar?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How much would you like?\"" -msgstr "\\'Quanto você gostaria?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How old are you?\"" -msgstr "\\'Quantos anos você tem?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How tall is it?\"" -msgstr "\\'Quão alto é isso?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How was the movie?\"" -msgstr "\\'Como foi o filme?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How was your trip?\"" -msgstr "\\'Como foi sua viagem?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"How's it going?\"" -msgstr "\\'Como tá indo?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"See you later.\"" -msgstr "\\'Até logo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"See you tonight.\"" -msgstr "\\'Vejo você à noite.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I got this weird rash a few days ago.\"" -msgstr "'Eu tenho essa erupção estranha há alguns dias." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Let me have a look at it.\"" -msgstr "'Deixe-me dar uma olhada." +msgstr "" #: lang/json/speech_from_json.py msgid "\"When did you find out?\"" -msgstr "'Quando você descobriu?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Seven o'clock.\"" -msgstr "\\'Sete horas.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Nobody is helping us.\"" -msgstr "'Ninguém está nos ajudando." +msgstr "" #: lang/json/speech_from_json.py msgid "\"We're on our own.\"" -msgstr "'Estamos sozinhos." +msgstr "" #: lang/json/speech_from_json.py msgid "\"We're all alone.\"" -msgstr "\\ 'Estamos todos sozinhos. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"We should split into groups of two each.\"" -msgstr "'Devemos dividir em grupos de dois cada." +msgstr "" #: lang/json/speech_from_json.py msgid "\"It can't follow all of us.\"" -msgstr "'Não pode seguir todos nós." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Be careful out there.\"" -msgstr "'Tenha cuidado lá fora." +msgstr "" #: lang/json/speech_from_json.py msgid "\"There you are.\"" -msgstr "\\'Aí está você.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I've been looking all over for you.\"" -msgstr "'Eu estive procurando por você." +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's looking for us.\"" -msgstr "\\ 'Está procurando por nós. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's faster than us.\"" -msgstr "'É mais rápido que nós." +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's looking right at us.\"" -msgstr "\\ 'Está olhando diretamente para nós. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's heading right for us!\"" -msgstr "'Está indo para a direita para nós!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Can you swim?\"" -msgstr "\\'Você sabe nadar?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Don't do that.\"" -msgstr "'Não faça isso." +msgstr "" #: lang/json/speech_from_json.py msgid "\"You hear that?\"" -msgstr "'Você ouviu isso?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Be quiet.\"" -msgstr "\\'Fique quieto.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Look out!\"" -msgstr "\\'Tenha cuidado!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Run!\"" -msgstr "\\'Corre!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hurry!\"" -msgstr "\\'Pressa!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"No!\"" -msgstr "\\'Não!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'll never forget you.\"" -msgstr "\\'Eu nunca te esquecerei.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Take his gun, we're going to need it.\"" -msgstr "'Pegue a arma dele, vamos precisar." +msgstr "" #: lang/json/speech_from_json.py msgid "\"How do we get out of here?\"" -msgstr "'Como vamos sair daqui?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"This place is like a maze.\"" -msgstr "'Este lugar é como um labirinto." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Oh God, I'm the only one left.\"" -msgstr "'Oh Deus, eu sou o único que sobrou." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Please, I don't want to die.\"" -msgstr "'Por favor, eu não quero morrer." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Mom.\"" -msgstr "\\'Mãe.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Mom, I miss you.\"" -msgstr "'Mãe, eu sinto sua falta." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Me go, you stay.\"" -msgstr "'Eu vou, você fica." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Please, God.\"" -msgstr "\\'Por favor Deus.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "a gurgling sound." -msgstr "um som gorgolejante." +msgstr "" #: lang/json/speech_from_json.py msgid "a choking sound." -msgstr "um som sufocante." +msgstr "" #: lang/json/speech_from_json.py msgid "a snapping sound." -msgstr "um som de estalo." +msgstr "" #. ~ Beeper sound #: lang/json/speech_from_json.py src/vehicle_use.cpp msgid "beep!" -msgstr "bip!" +msgstr "" #: lang/json/speech_from_json.py src/mattack_actors.cpp #: src/player_hardcoded_effects.cpp msgid "beep-beep-beep!" -msgstr "beep-beep-beep!" +msgstr "" #: lang/json/speech_from_json.py msgid "BEEP!" -msgstr "BIP!" +msgstr "" #: lang/json/speech_from_json.py msgid "a loud hiss." -msgstr "um assobio alto." +msgstr "" #: lang/json/speech_from_json.py msgid "a loud crackling noise." -msgstr "um barulho alto e crepitante." +msgstr "" #: lang/json/speech_from_json.py src/ranged.cpp msgid "bang!" -msgstr "bang!" +msgstr "" #: lang/json/speech_from_json.py msgid "a klaxon blaring!" -msgstr "um klaxon estridente!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"EMERGENCY, EMERGENCY!\"" -msgstr "\\ 'EMERGÊNCIA, EMERGÊNCIA! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "a static hissing sound." -msgstr "um som de assobio estático." +msgstr "" #: lang/json/speech_from_json.py msgid "\"That creepy abandoned post-apocalyptic lab complex looks safe...\"" @@ -142657,7 +126361,7 @@ msgstr "" #: lang/json/speech_from_json.py src/game.cpp src/grab.cpp msgid "a scraping noise." -msgstr "um barulho de raspagem." +msgstr "" #: lang/json/speech_from_json.py msgid "\"No... Stop the burning!\"" @@ -142725,65 +126429,61 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"TEKELI-LI!\"" -msgstr "'TEKELI-LI!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"TEKELI-LI! TEKELI-LI! TEKELI-LI!\"" -msgstr "'TEKELI-LI! TEKELI-LI! TEKELI-LI! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Tekeli-li.\"" -msgstr "\\ 'Tekeli-li. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "a slurping sound." -msgstr "um som de chupar." +msgstr "" #: lang/json/speech_from_json.py msgid "\"WHY! WHY, WHYYY!\"" -msgstr "'POR QUE! POR QUE, POR QUE!" +msgstr "" #: lang/json/speech_from_json.py msgid "an electronic voice saying \"CONNECTION FAILED. Abort, Retry, Fail?\"" msgstr "" -" uma voz eletrônica dizendo \\ 'CONNECTION FAILED. Abortar, tentar " -"novamente? \"" #: lang/json/speech_from_json.py msgid "\"I was once a man. A MAN!\"" -msgstr "'Eu já fui um homem. UM HOMEM!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"What have I become?\"" -msgstr "'O que eu me tornei?" +msgstr "" #: lang/json/speech_from_json.py msgid "an electronic voice saying \"KILL ALL HUMANS!\"" -msgstr "uma voz eletrônica dizendo \\ 'MATAR TODOS OS SERES HUMANOS! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Have you seen my children?\"" -msgstr "'Você viu meus filhos?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"What have I become? Why can't I die?\"" -msgstr "'O que eu me tornei? Por que eu não posso morrer?" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"Please, kill me!\", followed by an electronic voice saying \"SELF " "PRESERVATION PROTOCOLS ACTIVATED\"" msgstr "" -" \\ 'Por favor, me mate! \\', Seguido por uma voz eletrônica dizendo \" " -"'PROTOCOLOS DE PRESERVAÇÃO SELF ATIVADOS \"" #: lang/json/speech_from_json.py msgid "\"Please, take me with you.\"" -msgstr "\\'Por favor, me leve com você.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Not that way! Go left!\"" -msgstr "'Não é assim! Vá para a esquerda! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "" @@ -142962,131 +126662,131 @@ msgstr "" #: lang/json/speech_from_json.py msgid "Wanna play with me?" -msgstr "Quer brincar comigo?" +msgstr "" #: lang/json/speech_from_json.py msgid "Sing with me!" -msgstr "Cante comigo!" +msgstr "" #: lang/json/speech_from_json.py src/player.cpp msgid "I love you!" -msgstr "Eu te amo!" +msgstr "" #: lang/json/speech_from_json.py msgid "Please take me with you!" -msgstr "Por favor, me leve com você!" +msgstr "" #: lang/json/speech_from_json.py msgid "May I have a cookie?" -msgstr "Posso ter um cookie?" +msgstr "" #: lang/json/speech_from_json.py msgid "Let's play together!" -msgstr "Vamos jogar juntos!" +msgstr "" #: lang/json/speech_from_json.py msgid "Time to play!" -msgstr "Hora de brincar!" +msgstr "" #: lang/json/speech_from_json.py msgid "Om nom nom! Delicious!" -msgstr "Om nome do nome! Delicioso!" +msgstr "" #: lang/json/speech_from_json.py msgid "Are you my mommy?" -msgstr "Você é minha mamãe?" +msgstr "" #: lang/json/speech_from_json.py msgid "Oh, how fun!" -msgstr "Oh, que divertido!" +msgstr "" #: lang/json/speech_from_json.py msgid "You're my best friend!" -msgstr "Você é meu melhor amigo!" +msgstr "" #: lang/json/speech_from_json.py msgid "Heehee!" -msgstr "Heehee!" +msgstr "" #: lang/json/speech_from_json.py msgid "Let's have fun!" -msgstr "Vamos nos divertir!" +msgstr "" #: lang/json/speech_from_json.py msgid "Let's have a tea party!" -msgstr "Vamos fazer uma festa de chá!" +msgstr "" #: lang/json/speech_from_json.py msgid "You're the best!" -msgstr "Você é o melhor!" +msgstr "" #: lang/json/speech_from_json.py msgid "You shouldn't have done that." -msgstr "Você não deveria ter feito isso." +msgstr "" #: lang/json/speech_from_json.py msgid "Let's play... Russian roulette." -msgstr "Vamos jogar ... roleta russa." +msgstr "" #: lang/json/speech_from_json.py msgid "I hate you." -msgstr "Te odeio." +msgstr "" #: lang/json/speech_from_json.py msgid "Go kill yourself!" -msgstr "Vá se matar!" +msgstr "" #: lang/json/speech_from_json.py msgid "Big Brother is watching you..." -msgstr "O Grande Irmão está observando você..." +msgstr "" #: lang/json/speech_from_json.py msgid "Die for me!" -msgstr "Morra por mim!" +msgstr "" #: lang/json/speech_from_json.py msgid "Why won't you die?" -msgstr "Por que você não morre?" +msgstr "" #: lang/json/speech_from_json.py msgid "Blood... Delicious." -msgstr "Sangue ... Delicioso." +msgstr "" #: lang/json/speech_from_json.py msgid "See you... IN HELL!" -msgstr "Vejo você no inferno!" +msgstr "" #: lang/json/speech_from_json.py msgid "AAAIEEEEEEE!" -msgstr "AAAIEEEEEEE!" +msgstr "" #: lang/json/speech_from_json.py msgid "FUCK YOU!" -msgstr "Foda-se!" +msgstr "" #: lang/json/speech_from_json.py msgid "What did you do with my Mommy?" -msgstr "O que você fez com a minha mãe?" +msgstr "" #: lang/json/speech_from_json.py msgid "Stay with me... forever!" -msgstr "Fique comigo para sempre!" +msgstr "" #: lang/json/speech_from_json.py msgid "Hey kids. Want some candy?" -msgstr "Ei crianças. Quer um pouco de doce?" +msgstr "" #: lang/json/speech_from_json.py msgid "Down here, they ALL float!" -msgstr "Aqui embaixo, todos flutuam!" +msgstr "" #: lang/json/speech_from_json.py msgid "Do you really need that much honey?" -msgstr "Você realmente precisa de tanto mel?" +msgstr "" #: lang/json/speech_from_json.py msgid "My previous owner squealed like a pig when I gutted her!" -msgstr "Meu dono anterior gritou como um porco quando eu a destruí!" +msgstr "" #: lang/json/speech_from_json.py msgid "BARK!" @@ -143102,81 +126802,81 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"Don't make me have ye walk the plank.\"" -msgstr "'Não me faça andar pela prancha." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Welcome to the pirate's cove matey!\"" -msgstr "\\ 'Bem-vindo à enseada do pirata! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"Arr, ahoy there maties! And welcom- welcom- welcome to tha pirate's " "cove.\"" -msgstr "'Arr, ayy lá maties! E bem-vindo-bem-vindo a enseada do pirata. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's me.\"" -msgstr "\\'Wsou eu.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"SKREEEEEEEEEEEEEE!\"" -msgstr "\\ 'CREEEEEEEEEEEEEEE! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Dum de dum dum dum.\"" -msgstr "'Faça a estúpida idiota estúpida estúpida.'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Ahoy there!\"" -msgstr "'Ahoy ai!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"They will know the joy of creation.\"" -msgstr "'Eles conhecerão a alegria da criação." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Ha huhuhu huh huh.\"" -msgstr "\\ 'Ha huhuhu huh huh. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Let's eat!\"" -msgstr "\\'Vamos comer!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hello!\"" -msgstr "\\'Olá!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hai!\"" -msgstr "'Hai!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hi!\"" -msgstr "\\'Oi!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Let's play!\"" -msgstr "\\'Vamos jogar!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"What's your name little child?\"" -msgstr "'Qual é o seu nome criança pequena?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Come closer.\"" -msgstr "\\'Aproxima-te.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Come play with me!\"" -msgstr "\\'Venha brincar comigo!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"No running.\"" -msgstr "'Não corra." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Running is against the rules.\"" -msgstr "'Correr é contra as regras." +msgstr "" #: lang/json/speech_from_json.py msgid "\"RAAAAGGGGRRRHHH!\"" @@ -143192,471 +126892,426 @@ msgstr "\"WHIIIRRRCRRIIIIZZZZZZVVVT\"" #: lang/json/speech_from_json.py msgid "\"Let's rock!\"" -msgstr "\\'Vamos arrasar!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Let's Party!\"" -msgstr "\\'Vamos festejar!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you ready?\"" -msgstr "\\'Você está pronto?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "When the testing is over, you will be missed." -msgstr "Quando o teste terminar, você será perdido." +msgstr "" #: lang/json/speech_from_json.py msgid "" "Unbelievable. You, [subject name here], must be the pride of [subject " "hometown here]!" msgstr "" -" Inacreditável. Você, [nome do sujeito aqui], deve ser o orgulho de [cidade " -"natal aqui]!" #: lang/json/speech_from_json.py msgid "" "That thing is probably some sort of raw sewage container. Go ahead and rub " "your face all over it." msgstr "" -" Aquela coisa é provavelmente algum tipo de recipiente de esgoto. Vá em " -"frente e esfregue seu rosto nele." #: lang/json/speech_from_json.py msgid "" "For your own safety and the safety of others, please refrain from touching " "[bzzzzzt]" msgstr "" -" Para sua própria segurança e segurança dos outros, por favor, evite tocar " -"em [bzzzzzt]" #: lang/json/speech_from_json.py msgid "" "No one will blame you for giving up. In fact, quitting at this point is a " "perfectly reasonable response." msgstr "" -" Ninguém vai culpá-lo por desistir. De fato, desistir neste momento é uma " -"resposta perfeitamente razoável." #: lang/json/speech_from_json.py msgid "" "Fantastic! You remained resolute and resourceful in an atmosphere of extreme" " pessimism." msgstr "" -" Fantástico! Você permaneceu resoluto e engenhoso em uma atmosfera de " -"extremo pessimismo." #: lang/json/speech_from_json.py msgid "Hello again. To reiterate our previous warning: [garbled]" -msgstr "Olá de novo. Para reiterar nosso aviso anterior: [truncado]" +msgstr "" #: lang/json/speech_from_json.py msgid "Weeeeeeeeeeeeeeeeeeeeee[bzzt]" -msgstr "Weeeeeeeeeeeeeeeeeeeeee [bzzt]" +msgstr "" #: lang/json/speech_from_json.py msgid "If you become light headed from thirst, feel free to pass out." -msgstr "Se você se tornar a luz da sede, fique à vontade para desmaiar." +msgstr "" #: lang/json/speech_from_json.py msgid "" "No further compliance information is required or will be provided, and you " "are an excellent test subject!" msgstr "" -" Nenhuma outra informação de conformidade é necessária ou será fornecida, e " -"você é um excelente sujeito de teste!" #: lang/json/speech_from_json.py msgid "Thank you for helping us help you help us all." -msgstr "Obrigado por nos ajudar a ajudar você a nos ajudar a todos." +msgstr "" #: lang/json/speech_from_json.py msgid "" "Cake and grief counseling will be available at the conclusion of the test." -msgstr "Aconselhamento sobre bolo e luto estará disponível no final do teste." +msgstr "" #: lang/json/speech_from_json.py msgid "The experiment is nearing its conclusion." -msgstr "O experimento está chegando ao fim." +msgstr "" #: lang/json/speech_from_json.py msgid "" "The Enrichment Center is required to remind you that you will be baked " "[garbled] cake." msgstr "" -" O Centro de Enriquecimento é necessário para lembrá-lo de que você será " -"assado em bolo." #: lang/json/speech_from_json.py msgid "We are very, very happy for your success." -msgstr "Estamos muito, muito felizes pelo seu sucesso." +msgstr "" #: lang/json/speech_from_json.py msgid "We are throwing a party in honor of your tremendous success." -msgstr "Estamos dando uma festa em homenagem ao seu tremendo sucesso." +msgstr "" #: lang/json/speech_from_json.py msgid "A party associate will arrive shortly to collect you for your party." msgstr "" -"Um associado do partido chegará em breve para buscá-lo para sua festa." #: lang/json/speech_from_json.py msgid "I know you're there. I can feel you here." -msgstr "Eu sei que voce esta ai. Eu posso sentir você aqui." +msgstr "" #: lang/json/speech_from_json.py msgid "You're not going the right way." -msgstr "Você não está indo pelo caminho certo." +msgstr "" #: lang/json/speech_from_json.py msgid "You shouldn't be here. This isn't safe for you." -msgstr "Você não deveria estar aqui. Isso não é seguro para você." +msgstr "" #: lang/json/speech_from_json.py msgid "" "Maybe you think you're helping yourself. But you're not. This isn't " "helping anyone." msgstr "" -" Talvez você pense que está se ajudando. Mas você não é. Isso não está " -"ajudando ninguém." #: lang/json/speech_from_json.py msgid "It's not too late to turn back." -msgstr "Não é tarde demais para voltar atrás." +msgstr "" #: lang/json/speech_from_json.py msgid "Someone is going to get badly hurt." -msgstr "Alguém vai ficar muito ferido." +msgstr "" #: lang/json/speech_from_json.py msgid "" "Uh oh. Somebody cut the cake. I told them to wait for you, but they did it " "anyway." msgstr "" -" Uh oh. Alguém cortou o bolo. Eu lhes disse para esperar por você, mas eles " -"fizeram isso de qualquer maneira." #: lang/json/speech_from_json.py msgid "This is your fault. It didn't have to be like this." -msgstr "Isto é culpa sua. Não precisava ser assim." +msgstr "" #: lang/json/speech_from_json.py msgid "You're not a good person. You know that, right?" -msgstr "Você não é uma boa pessoa. Você sabe disso, certo?" +msgstr "" #: lang/json/speech_from_json.py msgid "Good people don't end up here." -msgstr "Boas pessoas não acabam aqui." +msgstr "" #: lang/json/speech_from_json.py msgid "You should have turned left before." -msgstr "Você deveria ter virado à esquerda antes." +msgstr "" #: lang/json/speech_from_json.py msgid "" "Despite your violent behavior, the only thing you've managed to break so far" " is my heart." msgstr "" -" Apesar do seu comportamento violento, a única coisa que você conseguiu " -"quebrar até agora é o meu coração." #: lang/json/speech_from_json.py msgid "What was that? Did you say something? " -msgstr "O que é que foi isso? Você disse alguma coisa?" +msgstr "" #: lang/json/speech_from_json.py msgid "" "I'd just like to point out that you were given every opportunity to succeed." " " msgstr "" -" Gostaria apenas de salientar que você recebeu todas as oportunidades para " -"ter sucesso." #: lang/json/speech_from_json.py msgid "What's your point, anyway? Survival?" -msgstr "Qual é o seu ponto, afinal? Sobrevivência?" +msgstr "" #: lang/json/speech_from_json.py msgid "" "You've been wrong about every single thing you've ever done, including this " "thing." msgstr "" -" Você esteve errado sobre cada coisa que você já fez, incluindo essa coisa." #: lang/json/speech_from_json.py msgid "" "I have an infinite capacity for knowledge, and even I'm not sure what's " "going on outside." msgstr "" -" Eu tenho uma capacidade infinita de conhecimento, e nem tenho certeza do " -"que está acontecendo lá fora." #: lang/json/speech_from_json.py msgid "" "Stop squirming and die like an adult or I'm going to delete your backup." -msgstr "Pare de se contorcer e morra como um adulto ou vou apagar seu backup." +msgstr "" #: lang/json/speech_from_json.py msgid "Good job on that, by the way. SARCASM SPHERE SELF-TEST COMPLETE." -msgstr "Bom trabalho nisso, a propósito. SARCASM SPHERE AUTOTESTE COMPLETO." +msgstr "" #: lang/json/speech_from_json.py msgid "" "I don't want to tell you your business, but if it were me, I'd leave that " "thing alone." msgstr "" -" Eu não quero te contar o seu negócio, mas se fosse eu, deixaria essa coisa " -"em paz." #: lang/json/speech_from_json.py msgid "" "Let's be honest: Neither one of us knows what that thing does. Just put it " "in the corner, and I'll deal with it later." msgstr "" -" Sejamos honestos: nenhum de nós sabe o que isso faz. Basta colocá-lo no " -"canto e eu vou lidar com isso mais tarde." #: lang/json/speech_from_json.py msgid "" "I know you don't believe this, but everything that has happened so far was " "for your benefit." msgstr "" -" Eu sei que você não acredita nisso, mas tudo o que aconteceu até agora foi " -"para o seu benefício." #: lang/json/speech_from_json.py msgid "" "I'm checking some blueprints, and I think... Yes, right here. You're " "definitely going the wrong way." msgstr "" -" Estou checando algumas plantas, e acho ... Sim, bem aqui. Você " -"definitivamente está indo pelo caminho errado." #: lang/json/speech_from_json.py msgid "Are you even listening to me?" -msgstr "Você está me ouvindo?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I've got a feeling we're not in Kansas anymore.\"" -msgstr "'Eu tenho a sensação de que não estamos mais no Kansas. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Go ahead, make my day.\"" -msgstr "\\'Vá em frente, faça o meu dia.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You talkin' to me?\"" -msgstr "\\'Você falando comigo?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Then who the hell else are you talkin' to?\"" -msgstr "'Então, quem diabos você está falando?'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Well I'm the only one here.\"" -msgstr "'Bem, eu sou o único aqui." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Who the fuck do you think you're talking to?\"" -msgstr "'Com quem você pensa que está falando?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"What we've got here is failure to communicate.\"" -msgstr "'O que temos aqui é falta de comunicação." +msgstr "" #: lang/json/speech_from_json.py msgid "\"E.T. phone home.\"" -msgstr "\\ 'E telefone para casa. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm as mad as hell, and I'm not going to take this anymore!\"" -msgstr "'Estou tão louco como o inferno, e não vou mais aguentar isso!'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"There's no place like home.\"" -msgstr "'Não há lugar como o lar." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Badges? We ain't got no badges!\"" -msgstr "\\ 'Emblemas? Nós não temos nenhum distintivo! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"We don't need no badges! I don't have to show you any stinking badges!\"" msgstr "" -" 'Nós não precisamos de distintivos! Eu não tenho que mostrar nenhum " -"distintivo fedorento!'" #: lang/json/speech_from_json.py msgid "\"I'll be back.\"" -msgstr "\\'Eu voltarei.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I see dead people.\"" -msgstr "\\'Eu vejo pessoas mortas.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's alive! It's alive!\"" -msgstr "'Está vivo! Está vivo!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Say hello to my little friend!\"" -msgstr "\\'Diga olá para meu pequeno amigo!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Here's Johnny!\"" -msgstr "\\'Aqui está o Johny!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Open the pod bay doors, HAL.\"" -msgstr "\\ 'Abra as portas do compartimento do pod, HAL. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"They may take our lives, but they'll never take our freedom!\"" -msgstr "'Eles podem tirar nossas vidas, mas nunca tomarão nossa liberdade!'" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"If you let my daughter go now, that'll be the end of it. I will not look " "for you, I will not pursue you.\"" msgstr "" -" 'Se você deixar minha filha ir agora, isso será o fim dela. Eu não vou " -"procurar por você, eu não vou te perseguir.'" #: lang/json/speech_from_json.py msgid "" "\"If you don't, I will look for you, I will find you, and I will kill you.\"" msgstr "" -" 'Se você não fizer isso, eu vou procurar por você, eu vou te encontrar, e " -"eu vou te matar." #: lang/json/speech_from_json.py msgid "\"Roads? Where we're going, we don't need roads.\"" -msgstr "'Estradas? Onde estamos indo, não precisamos de estradas." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Fasten your seatbelts. It's going to be a bumpy night.\"" -msgstr "\\ 'Prenda seus cintos de segurança. Vai ser uma noite acidentada. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"You've got to ask yourself one question: 'Do I feel lucky?' Well, do ya " "punk?\"" msgstr "" -" 'Você tem que se fazer uma pergunta: 'Eu me sinto sortudo?' Bem, " -"você é um punk?" #: lang/json/speech_from_json.py msgid "\"You had me at hello.\"" -msgstr "'Você me deu oi." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Houston, we have a problem.\"" -msgstr "\\'Houston, nós temos um problema.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Yippie-ki-yay, motherfucker!\"" -msgstr "'Yippie-ki-yay, filho da puta! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"The first rule of The Lab is: You do not talk about The Lab.\"" msgstr "" -"'A primeira regra do laboratório é: você não fala sobre o laboratório." #: lang/json/speech_from_json.py msgid "\"Don't be afraid. It's just a big, big lap dog.\"" -msgstr "'Não tenha medo. É apenas um cachorro grande e grande.'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Bring me everyone.\"" -msgstr "'Me traga todo mundo." +msgstr "" #: lang/json/speech_from_json.py msgid "\"What do you mean everyone?\"" -msgstr "'O que você quer dizer com todo mundo?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"EVERYONE!\"" -msgstr "\\'TODOS!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm going to make him an offer he can't refuse.\"" -msgstr "'Eu vou fazer uma oferta que ele não pode recusar.'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"This is the beginning of a beautiful friendship.\"" -msgstr "'Este é o começo de uma linda amizade." +msgstr "" #: lang/json/speech_from_json.py msgid "\"You can’t handle the truth!\"" -msgstr "'Você não pode lidar com a verdade!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"If you built it, he will come.\"" -msgstr "'Se você construiu, ele virá." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hasta la vista, baby.\"" -msgstr "\\'Até mais querida.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"They’re here!\"" -msgstr "\\'Eles estão aqui!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Tis but a scratch!\"" -msgstr "'Mas é um arranhão! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Frankly, my dear, I don't give a damn.\"" -msgstr "'Francamente, minha querida, eu não dou a mínima." +msgstr "" #: lang/json/speech_from_json.py msgid "\"All work and no play makes Jack a dull boy.\"" -msgstr "\\ 'Todo o trabalho e nenhum jogo faz de Jack um menino maçante. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Remember: all I'm offering is the truth. Nothing more.\"" -msgstr "\\ 'Lembre-se: tudo o que estou oferecendo é a verdade. Nada mais. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Don't call me Shirley.\"" -msgstr "'Não me chame de Shirley." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I have had it with these motherfucking snakes!\"" -msgstr "'Eu tive com essas cobras filho da puta!" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"Back up, put down the gun, and gimme some tropical flavored bubblicious.\"" msgstr "" -" \\ 'Back up, abaixe a arma, e me dê um pouco de sabor bubblicious tropical." -" \"" #: lang/json/speech_from_json.py msgid "\"And some skittles.\"" -msgstr "\\ 'E alguns skittles. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You'll shoot your eye out, kid.\"" -msgstr "'Você vai disparar seu olho para fora, garoto." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Cocainum!\"" -msgstr "\\ 'Cocainum! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I am your father.\"" -msgstr "\\'Eu sou seu pai.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Who said that?\"" -msgstr "'Quem disse isso?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"WHO THE FUCK SAID THAT?!\"" -msgstr "\\ 'QUEM A FODA DISSE QUE?! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Bullshit! You didn't convince me! Show me your real war face!\"" @@ -143664,731 +127319,729 @@ msgstr "" #: lang/json/speech_from_json.py msgid "\"What is your major malfunction, numbnut?\"" -msgstr "'Qual é o seu maior defeito, numbnut?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Leeeeeeeeeeeeeroy! Jenkins rebuild!\"" -msgstr "'Leeeeeeeeeeeeeroy! Jenkins reconstrua!'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Activated!\"" -msgstr "\\'Ativado!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Search mode activated!\"" -msgstr "\\ 'Modo de pesquisa ativado! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Coming through!\"" -msgstr "'Chegando!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Deploying!\"" -msgstr "\\ 'Implantando! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Critical Error!\"" -msgstr "\\'Erro crítico!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Ow ow ow!\"" -msgstr "'Ow ow ow!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Put me down!\"" -msgstr "'Me ponha no chão!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Target lost!\"" -msgstr "\\ 'Alvo perdido! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Searching!\"" -msgstr "\\'Procurando!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hey! It's me!\"" -msgstr "\\'Ei, sou eu!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Ouch!\"" -msgstr "\\ 'Ouch! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Sentry mode activated.\"" -msgstr "\\ 'Sentry mode ativado. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hi.\"" -msgstr "\\'Oi.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Target acquired.\"" -msgstr "\\'Alvo adquirido.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Dispensing product.\"" -msgstr "\\ 'Dispensando produto. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Firing.\"" -msgstr "\\ 'Disparando. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hello friend.\"" -msgstr "\\'Olá amigo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Gotcha.\"" -msgstr "\\'Peguei vocês.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Is anyone there?\"" -msgstr "'Alguém aí está?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I see you.\"" -msgstr "\\'Eu te vejo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Could you come over here?\"" -msgstr "'Você poderia vir até aqui?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hellooo.\"" -msgstr "'Hellooo." +msgstr "" #: lang/json/speech_from_json.py msgid "\"My fault.\"" -msgstr "\\'Minha culpa.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Ohh.\"" -msgstr "'Ohh." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Critical error.\"" -msgstr "\\'Erro crítico.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Shutting down.\"" -msgstr "\\'Desligando.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I don't blame you.\"" -msgstr "'Eu não culpo você." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I don't hate you.\"" -msgstr "'Eu não te odeio." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Whyyyy.\"" -msgstr "\\ 'Whyyyy. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"No hard feelings.\"" -msgstr "'Não há ressentimentos." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Aiaiaiaiaiai.\"" -msgstr "\\ 'Aiaiaiaiaiai. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Who are you?\"" -msgstr "\\'Quem é Você?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Help.\"" -msgstr "\\'Socorro.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Uh oh.\"" -msgstr "'Uh oh." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Illegal operation.\"" -msgstr "'Operação ilegal." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Goodbye.\"" -msgstr "\\'Adeus.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Sleep mode activated.\"" -msgstr "\\ 'Modo de espera ativado. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Your business is appreciated.\"" -msgstr "'Seu negócio é apreciado." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hibernating.\"" -msgstr "\\ 'Hibernando. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Goodnight.\"" -msgstr "\\'Boa noite.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Resting.\"" -msgstr "\\'Em repouso.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Nap time.\"" -msgstr "\\ 'Hora da sesta \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Are you still there?\"" -msgstr "\\'Você ainda está aí?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hey, it's me!\"" -msgstr "\\'Ei, sou eu!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Don't shoot!\"" -msgstr "'Não atire!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"\"" -msgstr "\\ '\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Stop shooting!\"" -msgstr "'Pare de atirar!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Self test error.\"" -msgstr "\\ 'Erro de autoteste. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Aah.\"" -msgstr "'Aah." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Unknown error.\"" -msgstr "\\'Erro desconhecido.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Malfunctioning.\"" -msgstr "\\ 'Mau funcionamento. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Aaaah.\"" -msgstr "\\ 'Aaaah. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Ow ow ow ow owww.\"" -msgstr "'Ai, ai ow ow owww." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Why?\"" -msgstr "\\'Por quê?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I did everything you asked!\"" -msgstr "'Eu fiz tudo o que você pediu!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I don't understand!\"" -msgstr "'Eu não entendo!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm fine!\"" -msgstr "\\'Estou bem!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Wheeeeee-OH NO!\"" -msgstr "\\ 'Wheeeeee-OH NÃO! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm scared!\"" -msgstr "\\'Eu estou assustado!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Something's wrong...\"" -msgstr "\\'Algo está errado...\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"What are you doing?\"" -msgstr "\\'O que você está fazendo?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Please stop.\"" -msgstr "\\'Por favor pare.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You've made your point.\"" -msgstr "'Você fez o seu ponto." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Okay, you win.\"" -msgstr "'Ok, você venceu." +msgstr "" #: lang/json/speech_from_json.py msgid "\"This is not good.\"" -msgstr "\\'Isto não é bom.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Excuse me?\"" -msgstr "\\'Desculpe?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm different...\"" -msgstr "\\'Eu sou diferente...\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Thanks anyway...\"" -msgstr "'Obrigado mesmo assim ..." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Take me with you...\"" -msgstr "\\'Me leve com você...\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"You have excellent aim!\"" -msgstr "'Você tem excelente pontaria!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I need backup!\"" -msgstr "'Eu preciso de backup!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I never liked her.\"" -msgstr "'Eu nunca gostei dela." +msgstr "" #: lang/json/speech_from_json.py msgid "\"These things happen.\"" -msgstr "\\'Essas coisas acontecem.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"That was nobody's fault.\"" -msgstr "'Isso não foi culpa de ninguém." +msgstr "" #: lang/json/speech_from_json.py msgid "\"She was provoking you.\"" -msgstr "'Ela estava te provocando." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Oh dear.\"" -msgstr "\\'Oh céus.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Oh my!\"" -msgstr "\\'Oh meu!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I blame myself.\"" -msgstr "\\'Eu me culpo.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"He probably deserved it.\"" -msgstr "'Ele provavelmente mereceu." +msgstr "" #: lang/json/speech_from_json.py msgid "\"I saw it. It was an accident.\"" -msgstr "'Eu vi. Foi um acidente." +msgstr "" #: lang/json/speech_from_json.py msgid "\"She's probably okay.\"" -msgstr "'Ela provavelmente está bem." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Noted.\"" -msgstr "\\'Notado.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"But I need to protect the humans!\"" -msgstr "'Mas eu preciso proteger os humanos!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"We're back!\"" -msgstr "\\'Estamos de volta!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hi there!\"" -msgstr "\\'Olá!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Back again!\"" -msgstr "\\'De volta!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Well, hello, stranger!\"" -msgstr "'Bem, olá, estranho!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"This time is OUR time.\"" -msgstr "'Desta vez é a nossa hora." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Second time's a charm...\"" -msgstr "'A segunda vez é um encanto ..." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Howdy, stranger!\"" -msgstr "'Howdy, estranho!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Thought you'd seen the last of us, didn't ya?\"" -msgstr "'Pensei que você tivesse visto o último de nós, não sabia?'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Dang!\"" -msgstr "'Droga!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I thought we fixed that.\"" -msgstr "'Eu pensei que nós consertamos isso." +msgstr "" #: lang/json/speech_from_json.py msgid "\"What's a guy gotta got to do to get some bullets around here?\"" -msgstr "'O que um cara tem que fazer para conseguir algumas balas por aqui?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Nope. Still can't see.\"" -msgstr "'Não. Ainda não consigo ver." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Yep. Still blind.\"" -msgstr "'Sim. Ainda cego." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Click click click! Still defective!\"" -msgstr "\\ 'Clique clique clique! Ainda com defeito! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Yeah, that's right! Still defective!\"" -msgstr "'Sim, está certo! Ainda com defeito! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Yeah! Still not working.\"" -msgstr "'Sim! Ainda não está funcionando. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Yeah! Non-lethal as ever.\"" -msgstr "'Sim! Não letal como sempre." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Can't. See. A. Thing.\"" -msgstr "'Não posso ver. A. Coisa." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Absolutely no improvement.\"" -msgstr "'Absolutamente nenhuma melhoria." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Not getting better with age!\"" -msgstr "'Não está melhorando com a idade! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"This is just getting embarrassing.\"" -msgstr "'Isso está ficando embaraçoso." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Alright, you can go.\"" -msgstr "'Tudo bem, você pode ir." +msgstr "" #: lang/json/speech_from_json.py msgid "\"[sigh] Don't tell anyone about this.\"" -msgstr "\\ '[suspiro] Não conte a ninguém sobre isso. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Well, I tried. Best of luck!\"" -msgstr "'Bem, eu tentei. Boa sorte!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hey, safe travels, there.\"" -msgstr "'Ei, viagens seguras, lá." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hey, thanks so much!\"" -msgstr "\\ 'Hey, muito obrigado! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Don't be a stranger!\"" -msgstr "'Não seja um estranho!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"It's been a pleasure!\"" -msgstr "\\'Foi um prazer!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"That was fun, wasn't it?\"" -msgstr "'Isso foi divertido, não foi?" +msgstr "" #: lang/json/speech_from_json.py msgid "" "\"I can't see a thing. What just happened? Better open fire! [click click" " click click] Dang!\"" msgstr "" -" 'Eu não consigo ver nada. O que aconteceu? Melhor abrir fogo! [Clique " -"clique clique clique] Dang! \"" #: lang/json/speech_from_json.py msgid "\"*clicking noises*\"" -msgstr "\\ '* clicando em ruídos * \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"No, wait, wait!\"" -msgstr "'Não, espere, espere!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hey, hold on now WHOA WHOA WHOA!\"" -msgstr "'Ei, espere agora WHOA WHOA WHOA! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Oh, this is ridiculous!\"" -msgstr "'Oh, isso é ridículo!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Give me another channnnce!\"" -msgstr "'Dê-me outra canse!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Hey! Squeaky-voice! Gimme some of your bullets!\"" -msgstr "'Ei! Voz estridente! Me dê algumas de suas balas!'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Can I get some bullets here? Anybody got bullets?\"" -msgstr "'Posso pegar algumas balas aqui? Alguém tem balas?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Uhhh, no bullets. Sorry.\"" -msgstr "'Uhhh, sem balas. Desculpe." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Shootin' blanks every time, ALL the time.\"" -msgstr "\\ 'Disparando em branco toda vez, TODO o tempo." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Standing down.\"" -msgstr "\\ 'De pé." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Watch and learn, everybody. Watch and learn.\"" -msgstr "'Assista e aprenda, todo mundo. Observe e aprenda." +msgstr "" #: lang/json/speech_from_json.py msgid "\"So what am I, uh, supposed to do here?\"" -msgstr "'Então o que eu devo fazer aqui?" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Identify yourself or I will shoot.\"" -msgstr "\\ 'Identifique-se ou eu vou atirar. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Pleased to meetcha.\"" -msgstr "\\ 'Prazer em conhecer. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"I'm gonna make you proud!\"" -msgstr "'Eu vou te deixar orgulhoso!" +msgstr "" #: lang/json/speech_from_json.py msgid "\"bzzzzzz.\"" -msgstr "\\ 'bzzzzzz. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Beep.\"" -msgstr "\\'Bip.\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Beep?\"" -msgstr "\\'Bip?\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Beep!\"" -msgstr "\\'Bip!\"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Beeeeep beep.\"" -msgstr "\\ 'Beeeeep beep. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Bebebeeeep.\"" -msgstr "'Bebebeeeep." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Beep boop beep?\"" -msgstr "\\ 'Beep boop beep? \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Beedoo-Beep.\"" -msgstr "\\ 'Beedoo-Beep. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Beep Beep. Whirr.\"" -msgstr "'Beep Beep. Whirr." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Vrrrr Hrrrmmm.\"" -msgstr "\\ 'Vrrrr Hrrrmmm. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Whirrrrr-click click.\"" -msgstr "\\ 'Clique em Whirrrrr-clique. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Boodoobeep beep beep.\"" -msgstr "\\ 'Boodoobeep beep beep. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Brannnnnnn Brzt Brmmmm.\"" -msgstr "\\ 'Brannnnnnn Brzt Brmmmm. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Whshoooo. Brzzzt. Brzzzt.\"" -msgstr "'Whshoooo. Brzzzt. Brzzzt. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Brrm Bum Brrm?\"" -msgstr "\\ 'Brrm Bum Brrm? \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Pwweeee Krsht.\"" -msgstr "\\ 'Pwweeee Krsht. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Fshkt fshkt. Booop.\"" -msgstr "\\ 'Fshkt fshkt. Booop. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Vzt. Vzt. Krshhhhhhhh.\"" -msgstr "\\ 'Vzt. Vzt. Krshhhhhhhh. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Whhheeee-oooo. Bedeep.\"" -msgstr "'Ooooh.'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Grrrnd clang whirrrr.\"" -msgstr "\\ 'Grrrnd clang whirrrr. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Grrrrrrrnd. Grrrnd.\"" -msgstr "'Grrrrrrrnd. Grrrnd." +msgstr "" #: lang/json/speech_from_json.py msgid "\"Cla-clang cla-clang!\"" -msgstr "\\ 'Cla-clang cla-clang! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Klang!\"" -msgstr "\\ 'Klang! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Bzzzt. Bzzzzt!\"" -msgstr "\\ 'Bzzzt. Bzzzzt! \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Bedeep. Whurrrrrmmmm.\"" -msgstr "\\ 'Bedeep. Whurrrrrmmmm. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Pwwowm. Fsht fshrrrr.\"" -msgstr "\\ 'Pwwowm. Fsht fshrrrr. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Click. Clicliclick. Vrnnnk.\"" -msgstr "\\ 'Clique. Clicliclick. Vrnnnk. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Shwwwrrrrnnnzzz bzzt.\"" -msgstr "\\ 'Vrumm Shwwwrrrrnnnzzz. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "a high pitched alarm." -msgstr "um alarme agudo." +msgstr "" #: lang/json/speech_from_json.py msgid "a blaring siren." -msgstr "uma sirene estridente." +msgstr "" #: lang/json/speech_from_json.py msgid "\"CHUG chug chug.\"" -msgstr "'CHUG chugar você.'" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Creak! Clang clang.\"" -msgstr "\\ 'Creak! Clang clang. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "\"Khr Khr Khr.\"" -msgstr "'Khr Khr Khr. \"" +msgstr "" #: lang/json/speech_from_json.py msgid "a mechanical groaning." -msgstr "um gemido mecânico." +msgstr "" #: lang/json/speech_from_json.py msgid "grinding gears." -msgstr "moagem de engrenagens." +msgstr "" #: lang/json/speech_from_json.py msgid "tortured machinery." -msgstr "maquinaria torturada." +msgstr "" #: lang/json/speech_from_json.py msgid "\"SQUEE!\"" -msgstr "\\ 'SQUEE! \"" +msgstr "" #: lang/json/start_location_from_json.py msgid "Shelter" -msgstr "Abrigo" +msgstr "" #: lang/json/start_location_from_json.py msgid "Refuge Center" -msgstr "Centro de Refúgio" +msgstr "" #: lang/json/start_location_from_json.py msgid "Boarded up house" -msgstr "Embarcado em casa" +msgstr "" #: lang/json/start_location_from_json.py msgid "Field" -msgstr "Campo" +msgstr "" #: lang/json/start_location_from_json.py msgid "House" -msgstr "casa" +msgstr "" #: lang/json/start_location_from_json.py msgid "Grocery Store" -msgstr "Bomboneria" +msgstr "" #: lang/json/start_location_from_json.py msgid "Gun Store" -msgstr "Loja de armas" +msgstr "" #: lang/json/start_location_from_json.py msgid "Pawn Shop" -msgstr "Loja de penhores" +msgstr "" #: lang/json/start_location_from_json.py msgid "Bank" -msgstr "Banco" +msgstr "" #: lang/json/start_location_from_json.py msgid "Military Surplus" -msgstr "Excedente Militar" +msgstr "" #: lang/json/start_location_from_json.py msgid "Furniture Store" -msgstr "Loja de móveis" +msgstr "" #: lang/json/start_location_from_json.py msgid "Library" -msgstr "Biblioteca" +msgstr "" #: lang/json/start_location_from_json.py msgid "Bookstore" -msgstr "Livraria" +msgstr "" #: lang/json/start_location_from_json.py msgid "Cabin" -msgstr "Cabine" +msgstr "" #: lang/json/start_location_from_json.py lang/json/start_location_from_json.py #: src/defense.cpp @@ -144397,39 +128050,39 @@ msgstr "Hospital" #: lang/json/start_location_from_json.py msgid "LMOE" -msgstr "LMOE" +msgstr "" #: lang/json/start_location_from_json.py msgid "Middle of Nowhere" -msgstr "Meio do nada" +msgstr "" #: lang/json/start_location_from_json.py msgid "Experiment Cell" -msgstr "Célula Experimental" +msgstr "" #: lang/json/start_location_from_json.py msgid "Science lab" -msgstr "Laboratório de ciências" +msgstr "" #: lang/json/start_location_from_json.py msgid "Bottom of a science lab" -msgstr "Parte inferior de um laboratório de ciências" +msgstr "" #: lang/json/start_location_from_json.py msgid "Frozen science lab" -msgstr "Laboratório de ciência congelado" +msgstr "" #: lang/json/start_location_from_json.py msgid "Deep-frozen science lab" -msgstr "Laboratório de ciências ultracongelado" +msgstr "" #: lang/json/start_location_from_json.py msgid "mall loading area" -msgstr "área de carregamento de shopping" +msgstr "" #: lang/json/start_location_from_json.py msgid "mall food court" -msgstr "praça de alimentação de shopping" +msgstr "" #: lang/json/start_location_from_json.py msgid "Fire Station" @@ -144445,15 +128098,15 @@ msgstr "" #: lang/json/start_location_from_json.py msgid "School" -msgstr "Escola" +msgstr "" #: lang/json/start_location_from_json.py msgid "Bottom of a mine" -msgstr "Fundo de uma mina" +msgstr "" #: lang/json/start_location_from_json.py msgid "Prison" -msgstr "Prisão" +msgstr "" #: lang/json/start_location_from_json.py msgid "Island prison" @@ -144461,39 +128114,39 @@ msgstr "" #: lang/json/start_location_from_json.py msgid "Hermit Shack" -msgstr "Eremita Barraca" +msgstr "" #: lang/json/start_location_from_json.py msgid "cabin in the woods" -msgstr "cabana na floresta" +msgstr "" #: lang/json/start_location_from_json.py msgid "Church" -msgstr "Igreja" +msgstr "" #: lang/json/start_location_from_json.py msgid "Religious Cemetery" -msgstr "Cemitério religioso" +msgstr "" #: lang/json/start_location_from_json.py msgid "Shady Basement" -msgstr "Porão sombrio" +msgstr "" #: lang/json/start_location_from_json.py msgid "Zoo Giftshop" -msgstr "Loja de zoológico" +msgstr "" #: lang/json/start_location_from_json.py msgid "Zoo Cages" -msgstr "Gaiolas do jardim zoológico" +msgstr "" #: lang/json/start_location_from_json.py msgid "Golf course mid course" -msgstr "Campo de golfe meio curso" +msgstr "" #: lang/json/start_location_from_json.py msgid "Golf course clubhouse" -msgstr "Clube de golfe" +msgstr "" #: lang/json/start_location_from_json.py msgid "Apartment Rooftop" @@ -144505,7 +128158,7 @@ msgstr "" #: lang/json/start_location_from_json.py msgid "Scavenger Bunker" -msgstr "Bunker de Depósitos" +msgstr "" #: lang/json/start_location_from_json.py msgid "Wizard's Secret Basement Study" @@ -144513,23 +128166,23 @@ msgstr "" #: lang/json/start_location_from_json.py msgid "Swamp" -msgstr "Pântano" +msgstr "" #: lang/json/start_location_from_json.py msgid "Robot Dispatch Center" -msgstr "Centro de Despacho de Robôs" +msgstr "" #: lang/json/start_location_from_json.py msgid "Fema Entrance" -msgstr "Entrada Fema" +msgstr "" #: lang/json/start_location_from_json.py msgid "Fema Camp" -msgstr "Fema Camp" +msgstr "" #: lang/json/start_location_from_json.py msgid "Mansion Entrance" -msgstr "Entrada da mansão" +msgstr "" #: lang/json/start_location_from_json.py src/defense.cpp msgid "Mansion" @@ -144537,15 +128190,15 @@ msgstr "Mansão" #: lang/json/start_location_from_json.py msgid "Gas Station" -msgstr "Posto de gasolina" +msgstr "" #: lang/json/start_location_from_json.py msgid "Electronics Store" -msgstr "Loja de eletrônicos" +msgstr "" #: lang/json/start_location_from_json.py msgid "Clothing Store" -msgstr "Loja de roupas" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -144773,7 +128426,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What are you doing here?" -msgstr "O que você está fazendo aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Wanna get outta here?" @@ -144781,11 +128434,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let's trade items." -msgstr "Vamos trocar itens." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can I do anything for you?" -msgstr "Posso fazer alguma coisa para você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I gotta go." @@ -144799,11 +128452,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why don't you go somewhere else?" -msgstr "Por que você não vai a outro lugar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let's trade then." -msgstr "Vamos negociar então." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I gotta go." @@ -144847,31 +128500,31 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "No, just no..." -msgstr "Não, só não..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Just let me sleep, !" -msgstr "Apenas me deixe dormir !" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Make it quick, I want to go back to sleep." -msgstr "Faça isso rápido, eu quero voltar a dormir." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Just few minutes more..." -msgstr "Apenas alguns minutos mais ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Anything to do before I go to sleep?" -msgstr "Qualquer coisa para fazer antes de ir dormir?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Wake up!" -msgstr "Acorde!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Go back to sleep." -msgstr "Volta a dormir." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is it, friend?" @@ -144879,15 +128532,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Combat commands..." -msgstr "Comandos de combate ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can you teach me anything?" -msgstr "Você pode me ensinar alguma coisa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let's trade items" -msgstr "Vamos trocar itens" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Guard this position." @@ -144895,7 +128548,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'd like to know a bit more about you..." -msgstr "Eu gostaria de saber um pouco mais sobre você ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I want you to use this item." @@ -144911,15 +128564,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Miscellaneous rules..." -msgstr "Diversas regras ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm going to go my own way for a while." -msgstr "Eu vou seguir meu próprio caminho por um tempo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let's go." -msgstr "Vamos lá." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let's just chitchat for a while..." @@ -144939,15 +128592,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let's talk about faction camps." -msgstr "Vamos falar sobre campos de facções." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Change your engagement rules..." -msgstr "Altere suas regras de engajamento ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Change your aiming rules..." -msgstr "Mude suas regras de pontaria ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Change your bionic power reserve rules..." @@ -144969,27 +128622,27 @@ msgstr "Deixa pra lá." #: lang/json/talk_topic_from_json.py msgid "Don't fight unless your life depends on it." -msgstr "Não lute a menos que sua vida dependa disso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Attack enemies that get too close." -msgstr "Ataca inimigos que chegam perto demais." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Attack enemies that you can kill easily." -msgstr "Atacar inimigos que você pode matar facilmente." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Attack only enemies that I attack first." -msgstr "Ataca apenas inimigos que eu ataco primeiro." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Attack only enemies you can reach without moving." -msgstr "Ataca apenas inimigos que você pode alcançar sem se mover." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Attack anything you want." -msgstr "Ataque o que quiser." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145050,43 +128703,43 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Aim when it's convenient." -msgstr "Aponte quando for conveniente." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Go wild, you don't need to aim much." -msgstr "Enlouqueça, você não precisa mirar muito." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Take your time, aim carefully." -msgstr "Tome seu tempo, aponte com cuidado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Don't shoot if you can't aim really well." -msgstr "Não atire se você não puder mirar muito bem." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why should I teach you?" -msgstr "Por que eu deveria te ensinar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Come on, we're friends." -msgstr "Venha, somos amigos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind then." -msgstr "Deixa pra lá então." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Forget it, let's get going." -msgstr "Esqueça, vamos indo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Follow same rules as this follower." -msgstr "Siga as mesmas regras deste seguidor." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Set up pickup rules." -msgstr "Configure regras de coleta." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Clear all overrides." @@ -145094,15 +128747,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "You're really leaving?" -msgstr "Você está saindo mesmo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yeah, I'm sure. Bye." -msgstr "Sim, tenho certeza. Tchau." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nah, I'm just kidding." -msgstr "Estou brincando." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Stay at your current position." @@ -145151,24 +128804,21 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -msgstr "" +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 "" -" Sim, este calor de verão está me batendo forte, vamos dar uma pausa rápida," -" como vai ?" #: lang/json/talk_topic_from_json.py msgid "OK, maybe it'll stop me from freezing in this weather, what's up?" msgstr "" -" OK, talvez isso me impeça de congelar nesse clima, o que está acontecendo?" #: lang/json/talk_topic_from_json.py msgid "Man it's dark out isn't it? what's up?" @@ -145176,7 +128826,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, I'm feeling pretty sick... are you doing OK though?" -msgstr "Bem, estou me sentindo muito mal ... você está bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145195,12 +128845,10 @@ msgid "" "Now, we've got a moment, I was just thinking it's been a month or so " "since... since all this, how are you coping with it all?" msgstr "" -" Agora, temos um momento, eu estava pensando que já faz um mês desde ... " -"desde tudo isso, como você está lidando com tudo isso?" #: lang/json/talk_topic_from_json.py msgid "Oh you know, not bad, not bad..." -msgstr "Oh você sabe, não é ruim, não é ruim ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145212,56 +128860,56 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Another survivor! We should travel together." -msgstr "Outro sobrevivente! Nós deveríamos viajar juntos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What are you doing?" -msgstr "O que você está fazendo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Care to trade?" -msgstr "Cuidado para negociar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "&Put away weapon." -msgstr "& Guarde a arma." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "&Drop weapon." -msgstr "& Soltar arma." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Don't worry, I'm not going to hurt you" -msgstr "Não se preocupe, eu não vou te machucar" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Drop your weapon!" -msgstr "Largue sua arma!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Get out of here or I'll kill you." -msgstr "Saia daqui ou eu vou te matar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey there, ." -msgstr "Olá, ." +msgstr "" #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp src/npctalk.cpp msgid "Bye." -msgstr "Tchau." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello there." -msgstr "Olá." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, no sudden movements..." -msgstr "Ok, sem movimentos bruscos ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Keep your distance!" -msgstr "Mantenha distância!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is my territory, ." @@ -145269,11 +128917,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Calm down. I'm not going to hurt you." -msgstr "Acalme-se. Eu não vou te machucar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Screw you, no." -msgstr "Dane-se, não." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145281,43 +128929,43 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "&Put hands up." -msgstr "&Ponha as mãos pra cima." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "*drops his weapon." -msgstr "* Solta sua arma." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "*drops_her_weapon." -msgstr "* drops_her_weapon." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Now get out of here" -msgstr "Agora sai daqui" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Now get out of here, before I kill you." -msgstr "Agora saia daqui antes que eu te mate." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, I'm going." -msgstr "Ok, eu vou" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "About that job..." -msgstr "Sobre esse trabalho ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "About one of those jobs..." -msgstr "Sobre um desses trabalhos ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's the matter?" -msgstr "Qual é o problema?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I don't care." -msgstr "Eu não me importo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I just have one job for you. Want to hear about it?" @@ -145338,11 +128986,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Oh, okay." -msgstr "Ok." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind, I'm not interested." -msgstr "Não importa, não estou interessado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What about it?" @@ -145358,91 +129006,91 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll do it!" -msgstr "Eu vou fazer isso!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not interested." -msgstr "Não interessado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not a problem." -msgstr "Não é um problema." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Got any advice?" -msgstr "Tem algum conselho?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can you share some equipment?" -msgstr "Você pode compartilhar alguns equipamentos?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll be back soon!" -msgstr "Eu volto em breve!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sounds good, thanks." -msgstr "Soa bem, obrigado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sounds good. Bye!" -msgstr "Parece bom. Tchau!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry." -msgstr "Eu sinto Muito." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Whatever. Bye." -msgstr "Tanto faz. Tchau." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry... I failed." -msgstr "Me desculpe ... eu falhei." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not yet." -msgstr "Ainda não." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "No. I'll get back to it, bye!" -msgstr "Não. Eu vou voltar para ele, tchau!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yup! Here it is!" -msgstr "Sim! Aqui está!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "We're here!" -msgstr "Estava aqui!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Here I am." -msgstr "Aqui estou." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Here it is!" -msgstr "Aqui está!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Justice has been served." -msgstr "Justiça foi cumprida." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I killed it." -msgstr "Eu matei isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I killed them. All of them." -msgstr "Eu matei eles. Todos eles." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I brought 'em." -msgstr "Eu trouxe eles." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I've taken care of it" -msgstr "Eu cuidei disso" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145456,119 +129104,113 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Mission success! I don't know what else to say." -msgstr "Missão bem sucedida! Eu não sei mais o que dizer." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Glad to help. I need no payment." -msgstr "Feliz em ajudar. Eu não preciso de pagamento." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "How about some items as payment?" -msgstr "Como sobre alguns itens como pagamento?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Maybe you can teach me something as payment?" -msgstr "Talvez você possa me ensinar algo como pagamento?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Glad to help. I need no payment. Bye!" -msgstr "Feliz em ajudar. Eu não preciso de pagamento. Tchau!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, um, sorry." -msgstr "Bem, desculpe." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry. I did what I could." -msgstr "Eu sinto Muito. Fiz o que pude." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sure, here you go!" -msgstr "Claro, aqui vai você!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thank you." -msgstr "Obrigado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks, bye." -msgstr "Obrigado, tchau." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, I guess it's just us." -msgstr "Bem, eu acho que somos só nós." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "At least we've got shelter." -msgstr "Pelo menos temos abrigo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What should we do now?" -msgstr "O que devemos fazer agora?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Any tips?" -msgstr "Alguma dica?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Want to travel with me?" -msgstr "Quer viajar comigo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I can't leave the shelter without equipment." -msgstr "Não posso sair do abrigo sem equipamento." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, bye." -msgstr "Bem, tchau." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I don't know, look for supplies and other survivors I guess." -msgstr "Eu não sei, procure suprimentos e outros sobreviventes, eu acho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Maybe we should start boarding up this place." -msgstr "Talvez devêssemos começar a embarcar neste lugar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I suppose getting a car up and running should really be useful if we have to" " disappear quickly from here." msgstr "" -" Suponho que colocar um carro em funcionamento deve ser realmente útil se " -"tivermos que desaparecer rapidamente daqui." #: lang/json/talk_topic_from_json.py msgid "" "We could look for one of those farms out here. They can provide plenty of " "food and aren't close to the cities." msgstr "" -" Nós poderíamos procurar por uma dessas fazendas aqui. Eles podem fornecer " -"muita comida e não estão perto das cidades." #: lang/json/talk_topic_from_json.py msgid "" "We should probably stay away from those cities, even if there's plenty of " "useful stuff there." msgstr "" -" Nós provavelmente devemos ficar longe dessas cidades, mesmo que haja muitas" -" coisas úteis lá." #: lang/json/talk_topic_from_json.py msgid "Hmm, okay." -msgstr "Hmm OK." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm too thirsty, give me something to drink." -msgstr "Estou com muita sede, me dê algo para beber." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm too hungry, give me something to eat." -msgstr "Estou com muita fome, me dê algo para comer." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm too tired, let me rest first." -msgstr "Estou muito cansado, deixe-me descansar primeiro." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nothing comes to my mind now. Ask me later perhaps?" @@ -145580,175 +129222,175 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Ah, okay." -msgstr "Ah ok." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not until I get some antibiotics..." -msgstr "Não até eu conseguir alguns antibióticos ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You asked me recently; ask again later." -msgstr "Você me perguntou recentemente; pergunte novamente mais tarde." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why should I travel with you?" -msgstr "Por que eu deveria viajar com você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Understood. I'll get those antibiotics." -msgstr "Entendido. Eu vou pegar esses antibióticos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Right, right, I'll ask later." -msgstr "Certo, certo, eu perguntarei depois." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I can keep you safe." -msgstr "Eu posso te manter segura." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You can keep me safe." -msgstr "Você pode me manter segura." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "We're friends, aren't we?" -msgstr "Somos amigos, não somos?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll kill you if you don't." -msgstr "Eu vou te matar se você não fizer." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You got it, I'm with you!" -msgstr "Você tem isso, eu estou com você!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Awesome!" -msgstr "Impressionante!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, let's go!" -msgstr "OK, vamos lá!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yeah... I don't think so." -msgstr "Sim ... eu não penso assim." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is it?" -msgstr "O que é isso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "How much further?" -msgstr "Quanto mais?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'd like to lead for a while." -msgstr "Eu gostaria de liderar por um tempo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Step aside. I'm leader now." -msgstr "Afaste-se. Eu sou líder agora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Alright. You can lead now." -msgstr "Tudo bem. Você pode liderar agora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Good. Something else..." -msgstr "Boa. Algo mais..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Alright, let's go." -msgstr "Tudo bem vamos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, okay." -msgstr "Está bem, está bem." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I see." -msgstr "Entendo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Alright, let's begin." -msgstr "Tudo bem, vamos começar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sounds good." -msgstr "Parece bom." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay. Lead the way." -msgstr "OK. Lidere o caminho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "No, we'll be okay here." -msgstr "Não, vamos ficar bem aqui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "On second thought, never mind." -msgstr "No segundo pensamento, não importa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Give it some time, I'll show you something new later..." -msgstr "Dá um tempo, eu vou te mostrar algo novo depois ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I have some reason for denying you training." -msgstr "Eu tenho alguns motivos para negar que você está treinando." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not a bloody chance, I'm going to get left behind!" -msgstr "Não é uma chance sangrenta, eu vou ficar para trás!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Fine." -msgstr "Bem." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm on watch." -msgstr "Estou de vigia." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I need you to come with me." -msgstr "Eu preciso que você venha comigo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "See you around." -msgstr "Até a próxima." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I really don't feel comfortable doing so..." -msgstr "Eu realmente não me sinto confortável fazendo isso ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll give you some space." -msgstr "Vou te dar um pouco de espaço." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'd prefer to keep that to myself." -msgstr "Eu prefiro manter isso para mim mesmo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I understand..." -msgstr "Compreendo..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You just asked me for stuff; ask later." -msgstr "Você acabou de me pedir coisas; pergunte mais tarde." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why should I share my equipment with you?" -msgstr "Por que devo compartilhar meu equipamento com você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, fine." -msgstr "OK tudo bem." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Because I'm holding a thermal detonator!" -msgstr "Porque eu estou segurando um detonador térmico!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Because I'm your friend!" @@ -145756,39 +129398,39 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, I am helping you out..." -msgstr "Bem, eu estou te ajudando ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll give it back!" -msgstr "Eu vou devolver!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Give it to me, or else!" -msgstr "Dê para mim, ou então!" +msgstr "" #: lang/json/talk_topic_from_json.py src/npctalk.cpp msgid "Eh, never mind." -msgstr "Eh, não importa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind, I'll do without. Bye." -msgstr "Não importa, eu vou fazer sem. Tchau." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, here you go." -msgstr "Ok, aqui vai você." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thank you!" -msgstr "Obrigado!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks! But can I have some more?" -msgstr "Obrigado! Mas posso ter mais um pouco?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks, see you later!" -msgstr "Obrigado, até mais!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You picked up something that does not belong to you..." @@ -145836,27 +129478,27 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid ", and if you ask again, !" -msgstr " , e se você perguntar de novo, !" +msgstr "" #: lang/json/talk_topic_from_json.py msgid " !" -msgstr " !" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, okay, sorry." -msgstr "Ok, desculpa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Seriously, give me more stuff!" -msgstr "Sério, me dê mais coisas!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, fine, bye." -msgstr "Tudo bem, tchau." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay" -msgstr "OK" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145866,19 +129508,19 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Works for me." -msgstr "Funciona para mim." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Maybe later." -msgstr "Talvez mais tarde." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Pleasure doing business!" -msgstr "Prazer fazer negócios!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You might be seeing more of me..." -msgstr "Você pode estar vendo mais de mim ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey again. *kzzz*" @@ -145985,11 +129627,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What about faction camps?" -msgstr "E quanto aos acampamentos de facções?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Tell me how faction camps work." -msgstr "Diga-me como funcionam os campos de facções." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Tell me how faction camps have changed." @@ -145997,11 +129639,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I want you to build a camp here." -msgstr "Eu quero que você construa um acampamento aqui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nothing. Let's talk about something else." -msgstr "Nada. Vamos falar de outra coisa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about other things you can do" @@ -146009,7 +129651,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nothing. Lets' get back to work." -msgstr "Nada. Vamos voltar ao trabalho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146017,18 +129659,14 @@ msgid "" "companions by allowing you to assign them to their own missions. These " "missions can range from gathering and crafting to eventual combat patrols." msgstr "" -" O sistema de acampamento de facção é projetado para lhe dar maior controle " -"sobre seus companheiros, permitindo que você os atribua às suas próprias " -"missões. Essas missões podem variar de coleta e elaboração a eventuais " -"patrulhas de combate." #: lang/json/talk_topic_from_json.py msgid "Go on." -msgstr "Continue." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind, let's go back to talking about camps." -msgstr "Não importa, vamos voltar a falar sobre acampamentos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about other things you can do." @@ -146036,11 +129674,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind, let's talk about something else." -msgstr "Não importa, vamos falar sobre outra coisa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Forget it. Let's go." -msgstr "Esqueça. Vamos lá." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146051,16 +129689,10 @@ msgid "" "reputation across the faction. Which can lead to VERY bad things if it gets" " too low." msgstr "" -" A comida é necessária ou produzida durante todas as missões. Missões que " -"são por um período fixo de tempo exigirão que você pague com antecedência, " -"enquanto as missões repetidas, como a coleta de lenha, são pagas após a " -"conclusão. Não ter a comida necessária para pagar um acompanhante resultará " -"em perda de reputação em toda a facção. O que pode levar a coisas muito " -"ruins se ficar muito baixo." #: lang/json/talk_topic_from_json.py msgid "Wait, repeat what you said." -msgstr "Espere, repita o que você disse." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146089,16 +129721,6 @@ msgid "" " to send companions to recruit new members, build overmap fortifications, or" " even conduct combat patrols" msgstr "" -" Depois de escolher um site, você precisará encontrar ou fazer materiais " -"para atualizar o acampamento para acessar novas missões. As primeiras novas " -"missões estão concentradas na coleta de materiais para atualizar o " -"acampamento, para que você não precise fazê-lo. Depois de dois ou três " -"upgrades, você terá acesso ao [Trabalho braçal] " -"missão que lhe permitirá ordenar os companheiros com a classificação de " -"todos os itens em torno do seu acampamento em categorias. Upgrades " -"posteriores permitem que você envie companheiros para recrutar novos " -"membros, construir fortificações de mapa ou até mesmo realizar patrulhas de " -"combate" #: lang/json/talk_topic_from_json.py msgid "" @@ -146115,24 +129737,10 @@ msgid "" "can build an additional expansion every other level after the first is " "unlocked and when one camp is full you can just as easily build another." msgstr "" -" Quando você atualiza sua primeira tenda até o fim, você desbloqueará a " -"capacidade de construir expansões. As expansões permitem que você " -"especialize cada acampamento criado, concentrando-se nos setores de que você" -" precisa. UMA [Fazenda] é recomendado para " -"jogadores que querem perseguir uma grande facção enquanto um " -" [Cozinha] É melhor para jogadores que querem " -"apenas a melhoria da qualidade de vida de ter um NPC fazendo toda a sua " -"comida. UMA [Garagem] é útil para missões do " -"tipo “chop shop”, que permitem que você troque veículos por grandes " -"quantidades de peças e recursos. Todos esses recursos podem se transformar " -"em equipamentos valiosos no [Blacksmith Shop] ." -" Você pode construir uma expansão adicional a cada outro nível após o " -"primeiro ser desbloqueado e quando um acampamento estiver cheio, você pode " -"facilmente construir outro." #: lang/json/talk_topic_from_json.py msgid "Thanks, let's go back to talking about camps." -msgstr "Obrigado, vamos voltar a falar sobre acampamentos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146153,7 +129761,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What needs to be done?" -msgstr "O que precisa ser feito?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yes, set up the bulletin board and then go back to normal duties." @@ -146165,35 +129773,33 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Mind if we just chat for a bit?" -msgstr "Importa-se de conversarmos um pouco?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Are you sure? This doesn't seem like a particularly safe place for small " "talk..." msgstr "" -" Você tem certeza? Isto não parece ser um lugar particularmente seguro para " -"conversas fofas ..." #: lang/json/talk_topic_from_json.py msgid "It's fine, we've got a moment." -msgstr "Tudo bem, nós temos um momento." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Good point, let's find a more appropriate place." -msgstr "Bom ponto, vamos encontrar um lugar mais apropriado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You're right. Forget I said anything, let's get moving." -msgstr "Você está certo. Esqueça, eu disse qualquer coisa, vamos nos mexer." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What did you want to talk about?" -msgstr "O que você queria conversar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Actually, never mind." -msgstr "Na verdade, não importa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yes, friend?" @@ -146235,7 +129841,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Who are you?" -msgstr "Quem é Você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146316,7 +129922,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What did you do before the cataclysm?" -msgstr "O que você fez antes do cataclismo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146337,7 +129943,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What happened next?" -msgstr "O que aconteceu depois?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146393,228 +129999,227 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a test conversation that shouldn't appear in the game." -msgstr "Esta é uma conversa de teste que não deve aparecer no jogo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a basic test response." -msgstr "Esta é uma resposta básica de teste." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a strength test response." -msgstr "Esta é uma resposta de teste de força." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a dexterity test response." -msgstr "Esta é uma resposta de teste de destreza." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an intelligence test response." -msgstr "Esta é uma resposta de teste de inteligência." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a perception test response." -msgstr "Esta é uma resposta de teste de percepção." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a low strength test response." -msgstr "Esta é uma resposta de teste de baixa resistência." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a low dexterity test response." -msgstr "Esta é uma resposta de teste de baixa destreza." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a low intelligence test response." -msgstr "Esta é uma resposta de teste de inteligência baixa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a low perception test response." -msgstr "Esta é uma resposta de teste de baixa percepção." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a trait test response." -msgstr "Esta é uma resposta de teste de característica." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a short trait test response." -msgstr "Esta é uma resposta curta do teste de característica." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a wearing test response." -msgstr "Esta é uma resposta de teste de desgaste." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc trait test response." -msgstr "Esta é uma resposta do teste de característica npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc short trait test response." -msgstr "Esta é uma resposta de teste de curto prazo npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a trait flags test response." -msgstr "Esta é uma resposta de teste de sinalizadores de característica." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc trait flags test response." -msgstr "Esta é uma resposta de teste de flags de traço npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an npc effect test response." -msgstr "Esta é uma resposta do teste de efeito npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a player effect test response." -msgstr "Esta é uma resposta de teste de efeito do jogador." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a cash test response." -msgstr "Esta é uma resposta de teste em dinheiro." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an npc service test response." -msgstr "Esta é uma resposta de teste de serviço npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an npc available test response." -msgstr "Esta é uma resposta de teste npc disponível." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a om_location_field test response." -msgstr "Esta é uma resposta de teste om_location_field." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a faction camp any test response." -msgstr "Este é um acampamento de facção qualquer resposta de teste." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a nearby role test response." -msgstr "Esta é uma resposta de teste de função próxima." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a class test response." -msgstr "Esta é uma resposta de teste de classe." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc allies 1 test response." -msgstr "Esta é uma resposta de teste de aliados npc 1." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This an error! npc allies 2 test response." -msgstr "Isso é um erro! npc aliados 2 resposta de teste." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc engagement rule test response." -msgstr "Esta é uma resposta de teste de regra de interação npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc aim rule test response." -msgstr "Esta é uma resposta de teste de regra de objetivo npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc rule test response." -msgstr "Esta é uma resposta de teste de regra npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc thirst test response." -msgstr "Esta é uma resposta de teste de sede da npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc hunger test response." -msgstr "Esta é uma resposta de teste de fome npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc fatigue test response." -msgstr "Esta é uma resposta do teste de fadiga do npc." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a mission goal test response." -msgstr "Esta é uma resposta de teste de meta de missão." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a season spring test response." -msgstr "Esta é uma resposta de teste de primavera de temporada." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a days since cataclysm 30 test response." -msgstr "Este é um dia desde a resposta de teste do cataclismo 30." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a season summer test response." -msgstr "Esta é uma resposta de teste da temporada de verão." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a days since cataclysm 120 test response." -msgstr "Este é um dia desde a resposta do teste do cataclismo 120." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a season autumn test response." -msgstr "Esta é uma resposta de teste de outono de temporada." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a days since cataclysm 210 test response." -msgstr "Este é um dia desde a resposta do teste do cataclismo 210." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a season winter test response." -msgstr "Esta é uma resposta de teste de inverno de temporada." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a days since cataclysm 300 test response." -msgstr "Isso é um dia desde a resposta do teste do cataclismo 300." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a is day test response." -msgstr "Esta é uma resposta do teste do dia." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a is night test response." -msgstr "Esta é uma resposta do teste da noite." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an switch 1 test response." -msgstr "Esta é uma resposta de teste do switch 1." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an switch 2 test response." -msgstr "Esta é uma resposta de teste do switch 2." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an switch default 1 test response." -msgstr "Esta é uma resposta de teste padrão 1 do switch." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an switch default 2 test response." -msgstr "Esta é uma resposta de teste padrão do switch 2." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is another basic test response." -msgstr "Esta é outra resposta básica de teste." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an or trait test response." -msgstr "Esta é uma resposta de teste ou traço." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an and cash, available, trait test response." msgstr "" -" Esta é uma resposta de teste de característica disponível e em dinheiro." #: lang/json/talk_topic_from_json.py msgid "This is a complex nested test response." -msgstr "Esta é uma resposta de teste aninhada complexa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a conditional trial response." -msgstr "Esta é uma resposta de teste condicional." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_add_effect - infection response" -msgstr "Este é um u_add_effect - resposta de infecção" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc_add_effect - infection response" -msgstr "Este é um npc_add_effect - resposta de infecção" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_lose_effect - infection response" @@ -146626,11 +130231,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_add_trait - FED MARSHALL response" -msgstr "Esta é uma resposta de u_add_trait - FED MARSHALL" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc_add_trait - FED MARSHALL response" -msgstr "Esta é uma resposta npc_add_trait - FED MARSHALL" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_lose_trait - FED MARSHALL response" @@ -146642,19 +130247,19 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_buy_item bottle of beer response" -msgstr "Esta é uma garrafa de resposta de cerveja u_buy_item" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_buy_item plastic bottle response" -msgstr "Esta é uma resposta de garrafa de plástico u_buy_item" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_spend_cash response" -msgstr "Esta é uma resposta u_spend_cash" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a multi-effect response" -msgstr "Esta é uma resposta multi-efeito" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is an opinion response" @@ -146662,7 +130267,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_sell_item plastic bottle response" -msgstr "Esta é uma resposta de garrafa de plástico u_sell_item" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a npc_consume_item beer response" @@ -146682,19 +130287,19 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_has_item beer test response." -msgstr "Esta é uma resposta do teste de cerveja u_has_item." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_has_item bottle_glass test response." -msgstr "Esta é uma resposta do teste u_has_item bottle_glass." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_has_items beer test response." -msgstr "Esta é uma resposta do teste de cerveja u_has_items." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Test failure! This is a u_has_items test response." -msgstr "Teste falha! Esta é uma resposta do teste u_has_items." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a u_has_item_category books test response." @@ -147060,17 +130665,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "How did you come to be a merc working for the Free Merchants, anyway?" msgstr "" -" Como você chegou a ser um mercenário trabalhando para os Mercadores Livres," -" afinal?" #: lang/json/talk_topic_from_json.py msgid "So, you got your whisky. Tell me that story." -msgstr "Então você tem seu uísque. Me conte essa história." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147082,27 +130685,18 @@ msgid "" "matter then, really doesn't now. Things started going crazy while I was at " "work... The military rolled into town, and the evacuation alert sounded." msgstr "" -" Antes disso começar, eu tinha um trabalho de baixa qualidade lançando " -"hambúrgueres no Grille do Sambal. Perder isso não é grande coisa. Perder " -"minha mãe e meu pai dói muito mais. A última vez que os vi vivos, acabei de " -"chegar da escola, peguei um lanche e fui trabalhar. Eu não acho que eu mesmo" -" disse à minha mãe que a amava, e fiquei chateado com meu pai por algum " -"tempo. merda que realmente não importa. Não importava então, " -"realmente não faz agora. As coisas começaram a enlouquecer enquanto eu " -"estava no trabalho ... Os militares entraram na cidade e o alerta de " -"evacuação soou." #: lang/json/talk_topic_from_json.py msgid "So, did you evacuate?" -msgstr "Então, você evacuou?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -msgstr "" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147111,11 +130705,6 @@ msgid "" "parents were gone. No sign of them. There was a big mess, stuff scattered " "everywhere like there'd been a struggle, and a little blood on the floor." msgstr "" -" Eu não evacuei. Eu fui para casa ... vi alguma coisa louca no caminho, mas " -"na época eu só pensava que eram tumultos ou drogas. Quando cheguei lá, meus " -"pais foram embora. Nenhum sinal deles. Havia uma grande bagunça, coisas " -"espalhadas por toda parte como se houvesse uma luta e um pouco de sangue no " -"chão." #: lang/json/talk_topic_from_json.py msgid "" @@ -147125,11 +130714,6 @@ msgid "" "took them anyway? I've heard that sort of thing happened. I don't know if " "I'll ever know." msgstr "" -" Ainda não os encontrei. Sempre que vejo um , uma pequena parte de " -"mim tem medo de ser uma delas. Mas então, talvez não. Talvez eles foram " -"evacuados, talvez eles lutaram e tentaram esperar por mim, mas os militares " -"os levaram assim mesmo? Eu ouvi que esse tipo de coisa aconteceu. Não sei se" -" algum dia saberei." #: lang/json/talk_topic_from_json.py msgid "" @@ -147140,11 +130724,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, please continue." -msgstr "Ok, por favor continue." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "On second thought, let's talk about something else." -msgstr "No segundo pensamento, vamos falar sobre outra coisa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147153,22 +130737,18 @@ msgid "" "drivin' ol' yeller up Mount Greenwood in the summertime, lookin' fer " "fireflies to catch." msgstr "" -" Foi quando eu tinha meu caminhão velho, o azul. Nós chamamos 'er " -"ol' yeller. Uma vez eu e o Marty Gumps - ou, como ele era conhecido " -"comigo, o Rusty G - dirigíamos o Monte Greenwood no verão, procurando por " -"vaga-lumes para pegar." #: lang/json/talk_topic_from_json.py msgid "Fireflies. Got it." -msgstr "Vagalumes. Consegui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "How does this relate to what I asked you?" -msgstr "Como isso se relaciona com o que eu perguntei a você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I need to get going." -msgstr "Eu preciso ir." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147176,21 +130756,18 @@ msgid "" "his trusty 18 gauge lyin' on his lap. That were his dog's name, only we all" " just called him 18 gauge for short." msgstr "" -" Rusty G - esse é o meu velho amigo Marty Gumps - estava no banco do " -"passageiro com seu fiel calibre 18 deitado em seu colo. Esse era o nome de " -"seu cachorro, só que todos nós o chamamos de bitola 18 para breve." #: lang/json/talk_topic_from_json.py msgid "18 gauge, the dog. Got it." -msgstr "Calibre 18, o cão. Consegui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I think I see some zombies coming. We should cut this short." -msgstr "Eu acho que vejo alguns zumbis chegando. Nós devemos cortar isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Shut up, you old fart." -msgstr "Cale a boca, seu velho peido." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147199,10 +130776,6 @@ msgid "" "18 gauge lyin' on his lap. That were his dog's name, only we all just " "called him 18 gauge for short." msgstr "" -" Droga, eu estou chegando lá, morda sua língua. Como eu estava dizendo, " -"Rusty G - esse é o meu velho amigo Marty Gumps - estava no banco do " -"passageiro com sua fiel calibre 18 deitada em seu colo. Esse era o nome de " -"seu cachorro, só que todos nós o chamamos de bitola 18 para breve." #: lang/json/talk_topic_from_json.py msgid "" @@ -147214,25 +130787,18 @@ msgid "" "damn kids rummagin' around in it. Rusty G brought his 18 gauge, and lucky " "thing cuz o' what we saw." msgstr "" -" Agora, no topo do Monte Greenwood, costumava haver uma estação de guardas " -"florestais, que seria antes de você nascer. Incendiou-se aquele ano, " -"disseram que era leve, mas você e eu sabíamos que eram crianças de faculdade" -" fazendo festa. Rusty G an 'Eu deixei o velho yeller para trás e " -"virei' para conferir. A casca queimada parecia assombrada, nós achamos " -"que havia alguns malditos garotos vasculhando o local. Rusty G trouxe sua " -"nota de 18 e sorte por causa do que vimos." #: lang/json/talk_topic_from_json.py msgid "What did you see?" -msgstr "O que você viu?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "We really, really have to go." -msgstr "Nós realmente temos que ir." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "For fuck's sake, shut UP!" -msgstr "Pelo amor de Deus, cala a boca!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147244,14 +130810,6 @@ msgid "" "were some o' them damn kids rummagin' around in it. Rusty G brought his 18 " "gauge, and lucky thing cuz o' what we saw." msgstr "" -" Seja paciente! Estou quase pronto. Agora, no topo do Monte Greenwood, " -"costumava haver uma estação de guardas florestais, que seria antes de você " -"nascer. Incendiou-se aquele ano, disseram que era leve, mas você e eu " -"sabíamos que eram crianças de faculdade fazendo festa. Rusty G an 'Eu " -"deixei o velho yeller para trás e virei' para conferir. A casca queimada" -" parecia assombrada, nós achamos que havia alguns malditos garotos " -"vasculhando o local. Rusty G trouxe sua nota de 18 e sorte por causa do que " -"vimos." #: lang/json/talk_topic_from_json.py msgid "" @@ -147260,23 +130818,18 @@ 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 "" -" Um gorram alce! Vivendo na estação ol 'ranger! Ele quase meteu Rusty, " -"mas ele ligou o calibre 18 e soprou um grande buraco em sua pele. Ol " -"'calibre 18 foi cabeça para as colinas mas nós o localizamos abaixo. " -"Moose desceu como um saco de batatas, mas uma sacola grande, se você for " -"pegar o pão." #: lang/json/talk_topic_from_json.py msgid "I catch your drift." -msgstr "Eu entendo sua deriva." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Are you done yet? Seriously!" -msgstr "Você já terminou? A sério!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "For the love of all that is holy, PLEASE shut the hell up!" -msgstr "Pelo amor de tudo que é sagrado, POR FAVOR, cale a boca!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147285,18 +130838,14 @@ msgid "" "flyin. Decided to camp out there to see it all through, but it didn't ever " "end, now, did it? So here I am." msgstr "" -" De qualquer forma, resumindo, eu estava voltando para Mount Greenwood para " -"checar a estação dos guardas novamente quando os ouvi cair e os helicópteros" -" voando. Decidiu acampar lá para ver tudo, mas isso nunca acabou, agora, " -"conseguiu? Então aqui estou." #: lang/json/talk_topic_from_json.py msgid "Thanks for the story!" -msgstr "Obrigado pela história!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "." -msgstr " ." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147304,13 +130853,10 @@ msgid "" " I'm just doing what I can to stay alive. The world ended and I bungled " "along not dying, until I met you." msgstr "" -" Eu nem sequer saiba mais. eu não tenho ideia do que está " -"acontecendo. Eu só estou fazendo o que posso para continuar vivo. O mundo " -"acabou e eu estraguei tudo sem morrer, até te conhecer." #: lang/json/talk_topic_from_json.py msgid "Huh." -msgstr "Hã." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147322,18 +130868,10 @@ msgid "" "got worse. I tried to control things, but it was just me and my deputies " "against a town in riot. Then things really got fucked up." msgstr "" -" Eu era policial. Sheriff da cidade pequena. Nós recebemos ordens sem nem " -"mesmo saber o que elas significavam. Em algum momento, um dos g-men do " -"telefone me disse que era um ataque chinês, algo no suprimento de água ... " -"Não sei se acredito nisso agora, mas na época era a melhor explicação. No " -"começo foi estranho, algumas pessoas - - Lutando como animais " -"raivosos. Então ficou pior. Eu tentei controlar as coisas, mas era só eu e " -"meus policiais contra uma cidade em motim. Então as coisas realmente ficaram" -" fodidas." #: lang/json/talk_topic_from_json.py msgid "What happened?" -msgstr "O que aconteceu?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147345,13 +130883,6 @@ msgid "" "have been the only person to escape. I haven't been able to even look at my" " badge since then." msgstr "" -" Um grande buraco aberto bem no meio da cidade, e um rastejou para" -" fora, bem na frente da igreja. Nós descarregamos nele, mas as balas apenas " -"se soltaram. Tem alguns civis no fogo cruzado. Começou apenas devorando " -"pessoas como batatas fritas em uma garganta que parecia um idiota em " -"decomposição com dentes, e ... Bem, eu perdi a coragem. Irã. Eu acho que eu " -"poderia ter sido a única pessoa a escapar. Eu não fui capaz de sequer olhar " -"para o meu crachá desde então." #: lang/json/talk_topic_from_json.py msgid "" @@ -147364,19 +130895,10 @@ msgid "" "hear it, . I could hear everything. I spent hours, maybe days " "under that van, not even trying to get out." msgstr "" -" Eu era da SWAT. Por todos os direitos eu deveria estar morto. Fomos " -"chamados para controlar \\ 'tumultos \\', que todos sabemos que foram os " -"primeiros hordas. Muito gordo bom nós éramos. Tenho certeza que " -"matamos mais civis. Mesmo entre a minha tripulação, a moral era pobre e nós " -"estávamos atirando selvagemente. Então algo nos atingiu, algo grande. Pode " -"ter sido uma bomba, eu realmente não me lembro. Eu acordei presa embaixo da " -"van da SWAT. Eu não conseguia ver nada ... mas eu podia ouvir . Eu " -"podia ouvir tudo. Passei horas, talvez dias debaixo daquela van, nem mesmo " -"tentando sair." #: lang/json/talk_topic_from_json.py msgid "But you did get out." -msgstr "Mas você saiu." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147391,16 +130913,6 @@ msgid "" "ran into any ... I ran from them. I ran, and I ran, and I ran " "some more. And here I am." msgstr "" -" Eventualmente sim. Ficou quieto por horas. Eu estava ressecada, ferida e " -"aterrorizada. Meu treinamento foi talvez a única coisa que me impediu de " -"enlouquecer. Eu decidi tentar me puxar para fora e ver o quão ruim meus " -"ferimentos eram. isso foi fácil. O lado da van estava rasgado e, no " -"fim das contas, eu estava basicamente deitada sob um pequeno entulho, com as" -" ruínas da van em volta de mim. Eu não estava nem muito machucada. Eu peguei" -" o máximo de equipamento que pude e saí. Era noite. Eu podia ouvir brigas " -"mais distantes na cidade, então eu fui para o outro lado. Eu fiz isso alguns" -" blocos antes de me deparar com qualquer ... eu corri deles. Eu " -"corri, corri e corri um pouco mais. E aqui estou eu." #: lang/json/talk_topic_from_json.py msgid "" @@ -147410,16 +130922,10 @@ msgid "" "bad internal bruising. I never thought getting shot would save my life, but" " I was off duty recuperating when the worst of it hit." msgstr "" -" Antes Eu era um policial. Eu fui baleado apenas alguns dias" -" antes de tudo cair ... Eu fiz uma chamada ruim em um ataque de drogas e um " -"babaca me pegou no intestino, que mal foi parado pelo meu colete. Eu levei " -"alguns machucados internos muito ruins. Eu nunca pensei que levar um tiro " -"salvaria minha vida, mas eu estava de folga se recuperando quando o pior " -"aconteceu." #: lang/json/talk_topic_from_json.py msgid "What did you do when you found out about the cataclysm?" -msgstr "O que você fez quando descobriu o cataclisma?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147435,21 +130941,10 @@ msgid "" "my quad out, and camped a few days in the woods, waiting for it to blow " "over. It never did." msgstr "" -" No começo eu queria ajudar. Os motins, lutando nas ruas, era demais para " -"mim apenas sentar em minha casa e ouvir sobre isso nas notícias. Então um " -"amigo meu me chamou de fora das linhas de frente. Ele tinha sido ferido e " -"ele não estava fazendo muito sentido, mas o que ele me disse ... bem, você " -"pode imaginar o tipo de coisa que ele me disse. Tudo o pior da internet " -"estava inventando e muito mais. Em vez de fazer as malas para tentar me " -"voluntariar de volta à ativa, aceitei seu conselho e fiz as malas para ir " -"embora. Minha casa ficava na periferia da cidade e os tumultos ainda não " -"tinham chegado, mas pelo que eu ouvi era mais inteligente sair do que " -"segurar firme. Eu saí naquela noite, tirei meu quadrilátero e acampei alguns" -" dias na floresta, esperando que ele explodisse. Isso nunca aconteceu." #: lang/json/talk_topic_from_json.py msgid "What was it like, surviving out there with an injury?" -msgstr "Como foi, sobrevivendo lá fora com uma lesão?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147463,16 +130958,6 @@ msgid "" "were well into the rushing into town for supplies phase. The closest I got " "to saving any old friends was putting down the monsters wearing their faces." msgstr "" -" Honestamente, provavelmente melhor do que parece. Eu tinha um bom saco de " -"bugs, uma boa tenda, muitas coisas boas. Eu não tinha sofrido nenhum dano " -"interno de órgão, meus músculos estomacais estavam muito machucados, e eu já" -" tinha tido um bom tempo para me recuperar. Eu acho que isso me impediu de " -"fazer algo muito estúpido, e acredite em mim, havia uma grande chance disso." -" Durante muito tempo tive essas visões Rambo de correr para a cidade e " -"salvar a todos, mas ainda estava muito imóvel. No momento em que tive a " -"minha força de volta, não era uma opção ... estávamos bem na corrida para a " -"cidade para a fase de suprimentos. O mais perto que consegui de salvar " -"velhos amigos foi colocar os monstros usando seus rostos." #: lang/json/talk_topic_from_json.py msgid "" @@ -147485,18 +130970,10 @@ msgid "" "but in the fighting they smashed open my cell door, and I managed to slip " "out." msgstr "" -" Eu estava apenas sentado em tranca. Eles me levaram na noite anterior, por " -"uma violação de liberdade condicional. Idiotas. Eu estava presa no meu " -"celular quando todos os policiais começaram a gritar sobre uma emergência, " -"se prepararam e me deixaram lá com apenas isso robô para um guarda. " -"Eu estava presa lá por dois malditos dias, sem comida e com um pouco de " -"água. Então este zumbi de rabo grande invadiu e começou a lutar contra o " -"robô. Eu não sabia o que diabos pensar, mas na luta eles quebraram a porta " -"da minha cela, e eu consegui escapar." #: lang/json/talk_topic_from_json.py msgid "Lucky you. How did you get away?" -msgstr "Sortudo. Como você escapou?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147506,19 +130983,14 @@ msgid "" " It was the fuckin' police robots. They knew I was in violation, and they " "kept trying to arrest me." msgstr "" -" Foi só caos nas ruas, cara. Mas eu estou acostumado ao caos. Você " -"não vive enquanto eu vivi e não sabe como evitar uma briga que não pode " -"vencer. A maior preocupação não eram os zumbis e os monstros, honestamente. " -"Foram os malditos robôs policiais. Eles sabiam que eu estava em violação e " -"continuaram tentando me prender." #: lang/json/talk_topic_from_json.py msgid "How did you keep from getting arrested?" -msgstr "Como você evitou ser preso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What were you in for in the first place?" -msgstr "O que você estava procurando em primeiro lugar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147532,15 +131004,6 @@ msgid "" "up on the edge of town layin' low under an abandoned RV for a few hours, " "then slipped out in the night." msgstr "" -" Mantido fora de sua linha de visão, é uma grande parte disso. Não deixe que" -" aqueles Câmeras voadoras te pegam, sabe? Se o fizerem, eles pedem " -"apoio das grandes armas, e então, bem, eu espero que você goste de ficar " -"tonto e enfiado na traseira de uma van. Eu mantive minha cabeça abaixada até" -" que passei o pior, mas então um dos Os eyebots me reconheceram e eu" -" tive que registrá-lo. Eu tinha sorte que os bots que eles chamavam tinham " -"queimado o maço em alguma besta de lodo gigante e estavam tentando me pegar " -"com sua merda de curto alcance. Cheguei à beira da cidade, deitado em baixo " -"de um trailer abandonado por algumas horas, depois saí à noite." #: lang/json/talk_topic_from_json.py msgid "" @@ -147550,15 +131013,10 @@ msgid "" "now, but if I've seen the last power-trippin' asshole cop, it might all be " "worth it." msgstr "" -" Besteira, é isso. Os idiotas me pegaram de posse, não era nem meu maldito " -"esconderijo. Eu não faço crack, cara, essa merda é desagradável, eu estava " -"apenas carregando para o meu amigo Johnny. Sabe, isso pode ser um " -"inferno, agora, mas se eu já vi o último policial idiota, tudo pode valer a " -"pena." #: lang/json/talk_topic_from_json.py msgid "What were you saying before?" -msgstr "O que você estava dizendo antes?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147568,15 +131026,10 @@ msgid "" " they were gonna think I ratted 'em out and come get me, but hey, no worries" " about that now." msgstr "" -" Eu fui sorte por . Eu estava de cócoras em um armazém" -" na periferia da cidade. Eu estava em um verdadeiro lugar, e minha " -"tripulação tinha acabado de ser presa em uma grande apreensão de drogas, mas" -" eu tinha fugido. Eu estava com medo de que eles pensassem que eu os delatei" -" e vieram me buscar, mas ei, não se preocupe com isso agora." #: lang/json/talk_topic_from_json.py msgid "Woah, lucky for you. How did you find out about ?" -msgstr "Woah, sorte por você. Como você ficou sabendo? ?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147590,7 +131043,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Something must have driven you out of there." -msgstr "Algo deve ter te tirado de lá." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147602,18 +131055,10 @@ msgid "" "realized it wasn't so bad, I was running out of stuff anyway. Been livin' " "on what I can loot ever since, until I fell in with you." msgstr "" -" Sim. . Um monte deles, liderado por este grande bastardo preto- " -"escuro assustador com olhos vermelhos brilhantes, eu não caguei você. Eu não" -" sei o que os trouxe para fora do meu caminho, mas eles me viram tomando um " -"mijo do lado de fora e foi isso. Eu dei alguns tiros para eles, mas aquele " -"filho da puta arrepiante acena as mãos e as traz de volta, então eu corri. " -"Uma vez que eu comecei a me recompor, percebi que não era tão ruim, eu " -"estava ficando sem coisas de qualquer maneira. Vivi o que posso aproveitar " -"desde que cheguei com você." #: lang/json/talk_topic_from_json.py msgid "Got any tips about the boss zombie?" -msgstr "Tem alguma dica sobre o chefe zumbi?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147623,12 +131068,6 @@ msgid "" "zombie on its own, and I smashed it to shit with a stick before the rest " "showed up. He tried to raise that one and it didn't get back up." msgstr "" -" Bem, quero dizer, se ele está cercado por amigos assim e ele pode " -"simplesmente trazê-los de volta, eu acho que ele é um bastardo assustador. " -"Se eu o fizesse sozinho, acho que talvez pudesse tê-lo levado. Além disso, " -"quando eu estava correndo, consegui pegar um zumbi sozinho, e o esmaguei com" -" um pau antes que o resto aparecesse. Ele tentou levantar isso e não voltou " -"a subir." #: lang/json/talk_topic_from_json.py msgid "" @@ -147648,14 +131087,10 @@ msgid "" "she's dead now. I told her about my dreams a week before the world ended. " "Serious!" msgstr "" -" OK, isso vai parecer maluco, mas eu sabia que isso ia acontecer. Como antes" -" disso. Você pode até perguntar à minha psíquica, exceto, tipo, acho que ela" -" está morta agora. Eu contei a ela sobre meus sonhos uma semana antes do fim" -" do mundo. Sério!" #: lang/json/talk_topic_from_json.py msgid "What were your dreams?" -msgstr "Quais foram seus sonhos?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147663,19 +131098,14 @@ msgid "" " was running through the woods with a stick, fighting giant spiders. For " "reals! Every night." msgstr "" -" OK, então, o primeiro sonho que tive todas as noites durante três semanas. " -"Sonhei que estava correndo pela floresta com uma vara, lutando com aranhas " -"gigantes. Para reais! Toda noite." #: lang/json/talk_topic_from_json.py msgid "OK, that doesn't seem that unusual though." -msgstr "OK, isso não parece tão incomum." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Wow, crazy, I can't believe you really dreamed ." msgstr "" -" Uau, louco, eu não posso acreditar que você realmente sonhou " -" ." #: lang/json/talk_topic_from_json.py msgid "" @@ -147687,17 +131117,10 @@ msgid "" "I heard the next day that he'd come back from the dead! Just like in my " "dream, only it was a different person!" msgstr "" -" OK, isso é apenas o começo. Então, uma semana antes de acontecer, depois do" -" sonho da aranha, eu me levantava e ia fazer xixi e depois voltava para a " -"cama porque eu estava meio que assustada, certo? E então eu teria esse outro" -" sonho, como, onde meu chefe morreu e voltou dos mortos! E então, no " -"trabalho alguns dias depois, o marido do meu chefe estava visitando e ele " -"teve um ataque cardíaco e eu ouvi no dia seguinte que ele tinha voltado da " -"morte! Assim como no meu sonho, só que era uma pessoa diferente!" #: lang/json/talk_topic_from_json.py msgid "That is kinda strange." -msgstr "Isso é meio estranho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147709,13 +131132,6 @@ msgid "" "day that he'd come back from the dead! Just like in my dream, only it was a" " different person!" msgstr "" -" CERTO?! E tem mais! Então, uma semana antes de acontecer, depois do sonho " -"da aranha, eu me levantava e ia fazer xixi e depois voltava para a cama " -"porque eu estava meio que assustada, certo? E então eu teria esse outro " -"sonho, como, onde meu chefe morreu e voltou dos mortos! E então, no trabalho" -" alguns dias depois, o marido do meu chefe estava visitando e ele teve um " -"ataque cardíaco e eu ouvi no dia seguinte que ele tinha voltado da morte! " -"Assim como no meu sonho, só que era uma pessoa diferente!" #: lang/json/talk_topic_from_json.py msgid "" @@ -147728,18 +131144,10 @@ msgid "" " still, all alone and freakin' out. That's the worst one. There are a few " "others." msgstr "" -" CERTO?! De qualquer forma, eu ainda tenho sonhos estranhos, mas não mais do" -" futuro. Tipo, eu tenho muitos sonhos arrepiantes desde que o mundo acabou. " -"Tipo, a cada duas noites, eu sonho com um campo de estrelas negras por toda " -"a Terra, e por apenas um segundo todos olham para a Terra de uma só vez como" -" um bilhão de minúsculos olhos negros. E então eles piscam e desviam o " -"olhar, e então no meu sonho a Terra é uma estrela negra como todas as " -"outras, e eu ainda estou presa, sozinha e enlouquecendo. Esse é o pior. " -"Existem alguns outros." #: lang/json/talk_topic_from_json.py msgid "Tell me some more of your weird dreams." -msgstr "Diga-me mais alguns dos seus sonhos estranhos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147749,15 +131157,10 @@ msgid "" "were real, there would be way more normal people. Because they'd actually " "be zombies. And everyone is a zombie now." msgstr "" -" OK, às vezes eu sonho que sou um zumbi. Eu apenas não percebo isso. E eu " -"apenas ajo normal para mim e vejo zumbis como pessoas normais e pessoas " -"normais como zumbis. Quando eu acordo eu sei que é falso, porque se fosse " -"real, haveria pessoas mais normais. Porque eles realmente seriam zumbis. E " -"todo mundo é um zumbi agora." #: lang/json/talk_topic_from_json.py msgid "I think we all have dreams like that now." -msgstr "Eu acho que todos nós temos sonhos assim agora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147765,30 +131168,24 @@ msgid "" " floating in a vast, uncaring galaxy. That one makes me wish that my pot " "dealer, Filthy Dan, hadn't been eaten by a giant crab monster." msgstr "" -" Sim, Provavelmente. Às vezes, também sonho que sou como um grão de poeira " -"flutuando numa vasta galáxia indiferente. Aquele me faz desejar que meu " -"negociante de maconha, Filthy Dan, não tivesse sido comido por um monstro " -"gigante de caranguejo." #: lang/json/talk_topic_from_json.py msgid "Poor Filthy Dan. " -msgstr "Pobre Sujo Dan. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me that stuff. " -msgstr "Obrigado por me dizer essas coisas. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I made it to one of those evac shelters, but it was almost worse " "than what I left behind. Escaped from there, been on the run since." msgstr "" -" Eu fiz isso para um daqueles evacuam abrigos, mas foi quase pior do" -" que o que deixei para trás. Fugiu de lá, esteve em fuga desde então." #: lang/json/talk_topic_from_json.py msgid "How did you survive on the run?" -msgstr "Como você sobreviveu na corrida?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147796,13 +131193,10 @@ msgid "" "forest before I found the courage to start picking off some of those dead " "monsters. I guess I was getting desperate." msgstr "" -" Passei muito tempo procurando ruibarbo e pedaços de verduras na floresta " -"antes de encontrar coragem para começar a pegar alguns desses monstros " -"mortos. Eu acho que estava ficando desesperado." #: lang/json/talk_topic_from_json.py msgid "And that's it? You spent months just living off the land?" -msgstr "E é isso? Você passou meses apenas vivendo da terra?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147813,16 +131207,10 @@ msgid "" "myself and started really feeling comfortable. I guess I got a bit " "complacent." msgstr "" -" Não exatamente. Depois de um tempo, fiquei bravo. Comecei a me aventurar na" -" periferia da cidade, pegando zumbis aqui e ali. Eu aprendi a viajar à noite" -" para evitar todos, exceto aqueles zumbis-sombra, e isso me deixou " -"bem longe. Eventualmente eu esvaziei um pequeno recanto confortável para mim" -" e comecei a me sentir realmente confortável. Eu acho que fiquei um pouco " -"complacente." #: lang/json/talk_topic_from_json.py msgid "Complacent?" -msgstr "Complacente?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147846,15 +131234,10 @@ msgid "" "a lot of movies kinda ran the show, because he seemed to really know what " "was going on. Spoiler alert: he didn't." msgstr "" -" O mesmo que a maioria das pessoas que não foram mortas durante os tumultos." -" Eu fui a um daqueles armadilhas da morte da evacuação. Eu " -"realmente vivi lá por um tempo com outros três. Um cara que eu acho que " -"assistiu muitos filmes meio que rodou o show, porque ele parecia realmente " -"saber o que estava acontecendo. Alerta de spoiler: ele não fez." #: lang/json/talk_topic_from_json.py msgid "What happened to your original crew?" -msgstr "O que aconteceu com sua equipe original?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147871,22 +131254,10 @@ msgid "" "The bite got infected, but it was another that finally killed him." " And then I was alone." msgstr "" -" As coisas foram para o sul quando o nosso líder destemido decidiu que nós " -"tínhamos que colocar um dos outros sobreviventes que foram mordidos. Seu " -"marido se sentiu um pouco contra isso, e eu também não estava muito " -"interessada nisso; por este ponto, ele já estava errado sobre muito. Bem, " -"ele tomou as coisas em suas próprias mãos e a matou. Então o marido decidiu " -"que uma boa volta merece outra e matou o idiota. E então ela voltou e eu a " -"matei de novo, e descolei nosso antigo líder. Infelizmente, ela dera ao " -"marido um beliscão durante a luta, quando ele não conseguia se recompor o " -"suficiente para revidar. Não que eu o culpe. Nós saímos de lá juntos, mas " -"foi demais para ele, ele claramente não estava mais nisso ... A mordida foi " -"infectada, mas foi outra que finalmente o matou. E então eu estava " -"sozinha." #: lang/json/talk_topic_from_json.py msgid "What do you think happened? You see them around anywhere?" -msgstr "O que você acha que aconteceu? Você os vê em qualquer lugar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147895,14 +131266,10 @@ msgid "" "trip to a FEMA center. We got attacked by the dead... I was the only one " "to make it out. I never looked back." msgstr "" -" Não há nada de especial em mim, não sei por que sobrevivi. Eu fui evacuado " -"com um punhado de outros, mas nós estávamos muito atrasados para fazer a " -"segunda viagem a um centro da FEMA. Nós fomos atacados pelos mortos ... Eu " -"fui o único a conseguir. Eu nunca olhei para trás." #: lang/json/talk_topic_from_json.py msgid "How did you survive after that?" -msgstr "Como você sobreviveu depois disso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147911,14 +131278,10 @@ msgid "" "food. Not the best eating, but I pulled through. At least there weren't so" " many zombies down there." msgstr "" -" Pura sorte, eu acho. Eu fui o caminho absolutamente errado, na cidade, e " -"acabei preso no sistema de metrô. Passei alguns dias vivendo com comida de " -"máquina de venda automática. Não é o melhor comer, mas eu puxei. Pelo menos " -"não havia tantos zumbis lá embaixo." #: lang/json/talk_topic_from_json.py msgid "What got you out of the subway?" -msgstr "O que te tirou do metrô?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147927,11 +131290,6 @@ msgid "" "from the vending machines, but once I ran out of cash I had to make a break " "for it. I waited until dark and then skipped out." msgstr "" -" Em linha reta a fome. Eu não tinha nenhuma grande fonte de luz lá embaixo e" -" não tinha muita comida. Eu estava deslizando para cima e para baixo para a " -"estação para comprar das máquinas de venda automática, mas uma vez que eu " -"fiquei sem dinheiro eu tive que fazer uma pausa para isso. Eu esperei até o " -"escuro e, em seguida, pulei para fora." #: lang/json/talk_topic_from_json.py msgid "" @@ -147941,15 +131299,10 @@ msgid "" "something else. I started raiding the surrounding area by night, and built " "a decent little base under there." msgstr "" -" Em linha reta a fome. Eu não tinha nenhuma grande fonte de luz lá embaixo e" -" não tinha muita comida. Eu estava deslizando para cima e para baixo para a " -"estação para comprar das máquinas de venda automática, mas uma vez que eu " -"fiquei sem dinheiro eu tive que pensar em outra coisa. Eu comecei a invadir " -"a área circundante à noite e construí uma base decente embaixo." #: lang/json/talk_topic_from_json.py msgid "I didn't meet you in the subway though. You left." -msgstr "Eu não conheci você no metrô. Você saiu." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -147961,13 +131314,6 @@ msgid "" "after that. I've camped a few places, scavenged berries and whatnot, lived " "a pretty good life compared to those first few months." msgstr "" -" Sim. Eu tive muito bom lá, mas eventualmente eu comecei a ficar um pouco " -"maluco. Sempre escuro, um pouco frio, vivendo de junk food ... uma alma só " -"pode viver assim por tanto tempo. Quando o clima acima do solo ficou mais " -"quente e as horas de luz do dia aumentaram, decidi ficar um pouco mais " -"corajosa. Eu aprendi o suficiente sobre o que eu consegui viver " -"muito bem depois disso. Acampei alguns lugares, limpei frutas e coisas do " -"tipo, vivi uma vida muito boa em comparação com aqueles primeiros meses." #: lang/json/talk_topic_from_json.py msgid "" @@ -147976,10 +131322,6 @@ msgid "" " with the other passengers, so I did what anyone would do and fucked right " "out of there." msgstr "" -" Eles estavam me enviando com um monte de evacuados para um centro de " -"refugiados, quando o ônibus foi esmagado pelo maior zumbi que você já viu. " -"Estava ocupado com os outros passageiros, então eu fiz o que qualquer um " -"faria e fodido direto de lá." #: lang/json/talk_topic_from_json.py msgid "" @@ -147987,18 +131329,14 @@ msgid "" "dogs. I took out a few with a two-by-four, but pretty quick I realized it " "was either head for the hills or get stuck like a pig. The rest is history." msgstr "" -" Meu abrigo Evac foi invadido por algumas dessas abelhas, as do tamanho de " -"cães. Eu tirei alguns com um dois-por-quatro, mas bem rápido, percebi que " -"era a cabeça para as colinas ou ficar preso como um porco. O resto é " -"história." #: lang/json/talk_topic_from_json.py msgid "Giant bees? Tell me more." -msgstr "Abelhas gigantes? Me diga mais." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "But bees aren't usually aggressive..." -msgstr "Mas as abelhas não são geralmente agressivas ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148007,32 +131345,24 @@ msgid "" "was no joke. I didn't stick around to see what the lasting effect was " "though. I'm not ashamed to admit I ran like a chicken." msgstr "" -" Sim, tenho certeza que você os viu, eles estão em todo lugar. Como algo " -"saído de um velho filme de ficção científica. Alguns dos outros no abrigo de" -" evacuações foram picados, não era brincadeira. Eu não fiquei por perto para" -" ver qual era o efeito duradouro. Eu não tenho vergonha de admitir que corri" -" como um frango." #: lang/json/talk_topic_from_json.py msgid "But bees aren't usually aggressive... Do you mean wasps?" msgstr "" -" Mas as abelhas não são geralmente agressivas ... Você quer dizer vespas?" #: lang/json/talk_topic_from_json.py msgid "" "Well, excuse me if I didn't stop to ask what kind of killer bugs " "they were." msgstr "" -" Bem, desculpe-me se eu não parasse para Pergunte que tipo de " -"insetos assassinos eles eram." #: lang/json/talk_topic_from_json.py msgid "Sorry. Could you tell me more about them?" -msgstr "Desculpa. Você poderia me falar mais sobre eles?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Right. Sorry." -msgstr "Certo. Desculpa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148045,32 +131375,20 @@ msgid "" "lockers. I went back a few days later, but the place was totally abandoned." " No idea what happened to all those people." msgstr "" -" Bem, eu estava em casa quando o alerta do celular tocou e me disse para ir " -"até um abrigo de evacuação. Então fui a um abrigo de evacuação. E então o " -"abrigo ficou lotado, e as pessoas estavam esperando para serem levadas para " -"o centro de refugiados, mas os ônibus nunca chegaram. Você já deve saber " -"sobre tudo isso. Transformou-se em pânico e depois brigou. Eu não fiquei por" -" perto para ver o que aconteceu depois; Eu fui para a floresta com as " -"ferramentas que eu poderia arrancar dos armários. Voltei alguns dias depois," -" mas o lugar estava totalmente abandonado. Não faço ideia do que aconteceu " -"com todas essas pessoas." #: lang/json/talk_topic_from_json.py msgid "" "That's a tall order. I guess the short version is that I got evacuated to a" " FEMA camp for my so-called safety, but luckily I made it out." msgstr "" -" Essa é uma tarefa difícil. Eu acho que a versão curta é que eu fui evacuado" -" para um acampamento da FEMA para a minha chamada segurança, mas felizmente " -"eu consegui sair." #: lang/json/talk_topic_from_json.py msgid "Tell me more about that FEMA camp." -msgstr "Me conte mais sobre o acampamento da FEMA." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "How did you get out?" -msgstr "como você saiu?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148081,17 +131399,10 @@ msgid "" "'turn'. Fucking idiot, right? I've been bitten a dozen times now and the " "worst I got was a gross infection." msgstr "" -" Foi aterrorizante. Nós fomos enviados para lá em um ônibus escolar " -"reaproveitado, cerca de trinta de nós. Você provavelmente pode ver os " -"problemas imediatamente. Algumas das pessoas que estavam a bordo do ônibus " -"estavam feridas, e alguns idiotas que viram muitos filmes B tentaram " -"insistir que qualquer um que tivesse sido mordido iria se virar. Porra " -"idiota, certo? Já fui mordido uma dúzia de vezes e o pior que tive foi uma " -"infecção grave." #: lang/json/talk_topic_from_json.py msgid "What happened after that?" -msgstr "O que aconteceu depois disso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148105,16 +131416,6 @@ msgid "" "for them. A few heavily armed soldiers dragged them away, and I never saw " "them again." msgstr "" -" Aquele cara começou um frenesi. As pessoas já estavam em pânico. Havia um " -"cara armado supervisionando o transporte, agindo como um policial, mas na " -"verdade ele era apenas um pouco garoto que eles entregaram um rifle " -"para. Ele tentou acalmar as coisas, e eu acho que realmente funcionou um " -"pouco, embora o grupo 'matar o infectado' fosse bonito " -"assustou-se e estava claramente pronta para pular no momento em que a avó " -"com o corte em seu braço começasse a se espumar pela boca. Eles começaram a " -"agir de novo quando chegamos ao acampamento. Isso não foi bom para eles. " -"Alguns soldados fortemente armados os arrastaram para longe e nunca mais os " -"vi." #: lang/json/talk_topic_from_json.py msgid "" @@ -148129,33 +131430,22 @@ msgid "" "stocked up over the night and I fucked right out of there. A few others " "tried to fuck out with me, but as far as I know I was the only lucky one." msgstr "" -" Aquele lugar era o caos. Eu só fiquei algumas horas. Eles tinham uma grande" -" escavadeira correndo, cavando um enorme buraco em uma seção isolada que " -"eles não nos deixariam chegar perto. Bem, eu consegui me esgueirar daquele " -"jeito, e os vi despejando carga após a carga dos mortos no buraco, " -"derramando sujeira sobre eles, mesmo quando eles reviveram e tentaram sair. " -"Mesmo com toda a merda que eu vi desde então, me assombra. Eu sabia que " -"tinha que sair. Felizmente para mim, fomos atacados na manhã seguinte por " -"algum horror gigante, um tipo que eu realmente não vi desde então. Enquanto " -"os guardas estavam ocupados com isso, eu peguei alguns suprimentos que eu " -"tinha estocado durante a noite e eu fodi direto de lá. Alguns outros " -"tentaram me foder, mas, até onde eu sei, eu fui a única sortuda." #: lang/json/talk_topic_from_json.py msgid "Maybe another time. I don't really like thinking about it." -msgstr "Talvez outra hora. Eu realmente não gosto de pensar nisso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry. Tell me more about that FEMA camp." -msgstr "Desculpa. Me conte mais sobre o acampamento da FEMA." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry for asking. " -msgstr "Desculpe por perguntar. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry for asking. " -msgstr "Desculpe por perguntar. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148170,25 +131460,14 @@ msgid "" " on the head with my tablet, again and again, until he stopped coming for " "me. I never thought I had anything like that in me." msgstr "" -" Eu não sou daqui ... Você provavelmente pode dizer pelo sotaque, eu sou do " -"Reino Unido. Eu estava aqui fazendo meu doutorado em Dartmouth. Eu estava a " -"meio caminho do MIT para uma conferência quando me parou. Eu" -" estava hospedado em um pequeno motel cheio de pulgas no lado da estrada. " -"Quando me levantei para o que quer que fosse para o café da manhã, o " -"proprietário gordo e sangrento estava sentado à sua mesa, usando as mesmas " -"roupas imundas da noite anterior. Eu pensei que ele tinha acabado de dormir " -"lá, mas quando ele olhou para mim ... bem, você sabe como são aqueles olhos " -"de Zed. Ele pulou e eu reagi sem pensar. Bateu na cabeça dele com o meu " -"tablet, de novo e de novo, até que ele parou de vir para mim. Eu nunca " -"pensei que tivesse algo assim em mim." #: lang/json/talk_topic_from_json.py msgid "What did you do next?" -msgstr "O que você fez depois?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What were you studying?" -msgstr "O que você estava estudando?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148201,18 +131480,10 @@ msgid "" "days. Even if I'd thought it wise to go back all the way to New Hampshire, " "I was far too scared." msgstr "" -" Eu vaguei por um tempo ao redor do terreno, deixando a adrenalina " -"desaparecer, esperando por algum tipo de ideia do que fazer. Eu estava no " -"meio do nada e não conhecia a área. Eu não tinha certeza se deveria voltar " -"para Hanover e tentar pegar meus pertences, ou ficar fora de onde estava. " -"Finalmente, decidi descansar um pouco até saber o que estava acontecendo. A " -"internet me disse mais do que eu precisava; Tenho certeza que você viu o " -"Twitter naqueles dias. Mesmo que achasse sensato voltar até New Hampshire, " -"eu estava com muito medo." #: lang/json/talk_topic_from_json.py msgid "Something must have driven you out of the motel." -msgstr "Algo deve ter te tirado do motel." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148224,13 +131495,6 @@ msgid "" "hunter gatherer. Honestly, I think I eat better this way than I did as a " "grad student." msgstr "" -" Sim. Fome simples. As máquinas de vending vendiam apenas amendoins e " -"biscoitos. Eu não estava disposto a confiar nisso para sobreviver. Fiquei o " -"tempo suficiente para perceber que ninguém viria atrás de mim, depois " -"arrumei o que pude e parti. Eventualmente meu carro foi pego em uma chuva " -"ácida que tirou os pneus e me deixou continuar a pé, vivendo a vida de um " -"caçador. Honestamente, acho que eu como melhor dessa maneira do que quando " -"eu era um estudante de graduação." #: lang/json/talk_topic_from_json.py msgid "" @@ -148240,32 +131504,24 @@ msgid "" "computer screens and wishing we had more information on threose chains at " "unusual temperatures and pressures for modeling." msgstr "" -" Eu estava em bioquímica. Especificamente, se você estiver interessado, eu " -"estava estudando a dobra de ácidos nucléicos não padronizados em estruturas " -"semelhantes a enzimas. Soa mais interessante do que era; a maior parte do " -"meu tempo foi gasto xingando em telas de computador e desejando que " -"tivéssemos mais informações sobre cadeias de threose em temperaturas e " -"pressões incomuns para modelagem." #: lang/json/talk_topic_from_json.py msgid "" "Nothin' special before . When the dead started walking, I " "geared up and started puttin' them back down." msgstr "" -" Nada especial antes . Quando os mortos começaram a andar, me" -" preparei e comecei a colocá-los de volta para baixo." #: lang/json/talk_topic_from_json.py msgid "How did that go?" -msgstr "Como foi?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Cool. " -msgstr "Legal. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Cool. " -msgstr "Legal. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148275,23 +131531,18 @@ msgid "" "my wounds and thinkin' about what I wanted to do next. That's when I " "figured it out." msgstr "" -" Quase foi morto. 1 é fácil pickins, mas dez é muito, e cem é uma " -"armadilha da morte. Eu me envolvi muito profundamente, e mal escorreguei com" -" minhas entranhas ainda dentro de mim. Fugi em um antigo motel por um tempo " -"lambendo minhas feridas e pensando sobre o que eu queria fazer em seguida. " -"Foi quando eu percebi isso." #: lang/json/talk_topic_from_json.py msgid "Figured what out?" -msgstr "Descobriu o que?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind. " -msgstr "Deixa pra lá. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind. " -msgstr "Deixa pra lá. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148301,20 +131552,14 @@ msgid "" "up and went back to it. Probly killed a thousand Z since then, and I'm " "still not tired of it." msgstr "" -" É isso. É para isso que eu fui feito. Lá na rua, esmagando cabeças de " -"monstros e rezando, eu conseguiria sair? Eu nunca me senti assim. Vivo. " -"Importante. Então, depois que eu me coloquei de volta, eu maltei e voltei " -"para ele. Provavelmente matou mil Z desde então, e eu ainda não estou " -"cansado disso." #: lang/json/talk_topic_from_json.py msgid "It's good you found your calling. " msgstr "" -" É bom que você tenha encontrado seu chamado. " #: lang/json/talk_topic_from_json.py msgid "It's good you found your calling. " -msgstr "É bom que você tenha encontrado seu chamado. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148324,12 +131569,6 @@ msgid "" "killed hundreds of those bastards. Sooner or later one of them will take me" " out, but I'll go down knowing I did something actually important." msgstr "" -" Ah voce sabe. Blah blah blah, tinha um emprego e uma vida, todos morreram. " -"Boo hoo. Eu tenho que ser direto com você: Eu sinceramente acho que gosto " -"disso melhor. Lutando pela sobrevivência todos os dias? Eu nunca me senti " -"tão vivo. Eu matei centenas desses bastardos. Mais cedo ou mais tarde, um " -"deles me levará para fora, mas eu descerei sabendo que fiz algo realmente " -"importante." #: lang/json/talk_topic_from_json.py msgid "" @@ -148337,17 +131576,14 @@ msgid "" "South to visit my son when it all happened. I was staying at a motel when a" " military convoy passed through and told us to evacuate to a FEMA shelter." msgstr "" -" Bem, eu não sou dessas partes. Eu estava dirigindo do Sul para visitar meu " -"filho quando tudo aconteceu. Eu estava hospedado em um motel quando um " -"comboio militar passou e nos disse para evacuar para um abrigo da FEMA." #: lang/json/talk_topic_from_json.py msgid "Tell me about your son." -msgstr "Conte-me sobre o seu filho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "So, you went to one of the FEMA camps?" -msgstr "Então, você foi a um dos campos da FEMA?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148359,16 +131595,10 @@ msgid "" "dead, so they'll steer clear of this hellhole, and that's the best as could " "be." msgstr "" -" Ele mora no norte do Canadá, no meio do nada, com sua esposa louca e meus " -"três netos. Ele é engenheiro ambiental de uma empresa de petróleo e gás por " -"aí. Ela é uma espécie de cabeça hippie. Eu amo os dois e, no que me diz " -"respeito, todos saíram dessa bagunça fodida, lá fora, no meio da rua. Eu " -"acho que eles acham que eu estou morto, então eles vão ficar longe desse " -"inferno, e isso é o melhor que poderia ser." #: lang/json/talk_topic_from_json.py msgid "What was it you said before?" -msgstr "O que você disse antes?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148378,15 +131608,10 @@ msgid "" "me bring over. I didn't know what I was supposed to be running from, but I " "sure as shit didn't run. " msgstr "" -" Senhor não Eu vou ser fodida se eu deixar uma criança em um uniforme muito " -"grande me dizer o que diabos fazer. Eu tinha meu Hummer carregado e pronto " -"para sair da estrada, eu tinha uma tonelada de gasolina, e eu até tinha " -"tantos rifles quanto a fronteira me deixava trazer. Eu não sabia do que eu " -"deveria estar fugindo, mas tenho certeza que a merda não correu." #: lang/json/talk_topic_from_json.py msgid "Where did you go then?" -msgstr "Onde você foi então?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148400,23 +131625,14 @@ msgid "" "guess I'm still kinda heading North, just by a pretty round-about way, you " "know?" msgstr "" -" No começo, continuei indo para o norte, mas me deparei com um enorme " -"bloqueio militar. Eles até tinham esses robôs gigantescos andando na TV. Eu " -"comecei a subir para dar uma olhada e, antes que eu percebesse, eles estavam" -" abrindo fogo! Eu poderia ter morrido, mas ainda tenho boas reações. Eu " -"virei a cauda e rolei para fora de lá. Meu Hummer teve alguns acessos ruins," -" e eu descobri da maneira mais difícil que eu estava vazando gás pela " -"estrada. Fiz algumas milhas antes de acabar preso no final do nada. Eu me " -"acomodei para passear. Eu acho que ainda estou indo para o norte, apenas por" -" um caminho bonito, sabe?" #: lang/json/talk_topic_from_json.py msgid "That's quite a story. " -msgstr "Isso é uma história e tanto. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That's quite a story. " -msgstr "Isso é uma história e tanto. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148427,17 +131643,10 @@ msgid "" "bad, they went over the PA system to tell us about Chinese drugs in the " "water supply. Right... Does anyone buy that explanation?" msgstr "" -" Eu estava na escola. Eu sou um veterano. Nós ouvimos sobre tumultos ... " -"Começou com uma criança mostrando vídeos de um dos grandes distúrbios em " -"Providence. Você provavelmente já viu, aquele em que a mulher se vira para a" -" câmera e você pode ver todo o seu lábio inferior arrancado, e está apenas " -"batendo lá? Ficou tão ruim, eles passaram o sistema de PA para nos falar " -"sobre drogas chinesas no abastecimento de água. Certo ... Alguém compra essa" -" explicação?" #: lang/json/talk_topic_from_json.py msgid "Where did things go from there?" -msgstr "Para onde foram as coisas de lá?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148447,16 +131656,10 @@ msgid "" " get on. The soldiers weren't much older than me... They didn't look like " "they knew what was going on. I lived just a few blocks away. I snuck off." msgstr "" -" Eu acho que ficou pior, porque a faculdade decidiu nos colocar em bloqueio." -" Por horas. E então os ônibus da escola apareceram para nos evacuar. " -"Eventualmente, eles ficaram sem ônibus. Eu era um dos poucos sortudos que " -"não tinham ônibus para ir. Os soldados não eram muito mais velhos que eu ..." -" Eles não pareciam saber o que estava acontecendo. Eu morava a poucos " -"quarteirões de distância. Eu escapei." #: lang/json/talk_topic_from_json.py msgid "Did you get home?" -msgstr "Você chegou em casa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148466,11 +131669,6 @@ msgid "" "again. I'm a bit better at killing those things now, but I haven't made it " "home yet. I guess I'm afraid of what I'll find." msgstr "" -" Sim. No caminho, conheci alguns sério. Eles me perseguiram, mas " -"eu fui muito bem na pista. Eu os perdi ... Mas não consegui chegar em casa, " -"eram demais. Acabei correndo mais. Roubou uma bicicleta e correu mais de " -"novo. Eu sou um pouco melhor em matar essas coisas agora, mas ainda não " -"cheguei em casa. Eu acho que tenho medo do que vou encontrar." #: lang/json/talk_topic_from_json.py msgid "" @@ -148483,18 +131681,10 @@ msgid "" "one of them, and I realized it wasn't just a few weird reports. I called in" " sick the next day." msgstr "" -" Eu vi tudo muito cedo, antes de tudo realmente começar. Eu trabalhei no " -"hospital. Tudo começou com um salto no número de brancos de código - isso é " -"um paciente agressivo. Não foi o meu treinamento, então eu não ouvi sobre " -"isso até mais tarde ... mas rumores começaram a voar sobre pacientes " -"delirantes hiperagressivos que codificavam e pareciam morrer, então " -"começaram a atacar o pessoal, e não respondiam a qualquer coisa que os " -"atingissem. Então um amigo meu foi morto por um deles, e eu percebi que não " -"eram apenas alguns relatos estranhos. Eu liguei doente no dia seguinte." #: lang/json/talk_topic_from_json.py msgid "What happened on your sick day?" -msgstr "O que aconteceu no seu dia de doença?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148505,16 +131695,10 @@ msgid "" "hospital. Still, I packed up my bags, locked the doors and windows, and " "waited for the evacuation call." msgstr "" -" Bem, . Eu morava a uma boa distância da cidade, e já sabia " -"que algo estava seriamente errado, mas não tinha admitido para mim mesmo o " -"que realmente estava vendo ainda. Quando vi os comboios militares entrando " -"na cidade, juntei os pedaços. No começo eu pensei que era apenas o meu " -"hospital. Ainda assim, arrumei minhas malas, tranquei as portas e janelas e " -"esperei a chamada de evacuação." #: lang/json/talk_topic_from_json.py msgid "Did you get evacuated?" -msgstr "Você foi evacuado?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148523,10 +131707,6 @@ msgid "" "horrible things came out of them. I decided it was safer in my locked up " "house." msgstr "" -" Não. A ligação chegou tarde demais. Eu já tinha visto as nuvens no " -"horizonte. Nuvens de cogumelo, e também aquelas insanas nuvens do inferno. " -"Eu ouvi que coisas horríveis saíram delas. Eu decidi que era mais seguro na " -"minha casa trancada." #: lang/json/talk_topic_from_json.py msgid "Something must have happened to drive you out?" @@ -148545,7 +131725,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I just can't talk about that right now. I can't." -msgstr "Eu simplesmente não posso falar sobre isso agora. Eu não posso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148557,13 +131737,6 @@ msgid "" "crazed, covered in wounds from bullets and bites. About halfway through my " "shift I... well, I broke." msgstr "" -" Eu estava no trabalho no hospital, quando tudo aconteceu. É um pouco de " -"borrão. Por um tempo houve relatos estranhos, coisas que pareciam " -"inacreditáveis sobre os pacientes se recuperando depois de morrer, mas a " -"maioria das coisas estava como sempre. Então, no final, as coisas " -"explodiram. Nós pensamos que era um ataque chinês, e foi isso que nos " -"disseram. Pessoas enlouquecendo, cobertas de feridas por balas e mordidas. " -"Mais ou menos na metade do meu turno eu ... bem, eu quebrei." #: lang/json/talk_topic_from_json.py msgid "" @@ -148576,35 +131749,26 @@ msgid "" "shift I... well, I broke. I'd seen such horrible injuries, and then I... " ", I can't even talk about it." msgstr "" -" Eu estava no trabalho no hospital, quando tudo aconteceu. É um pouco de " -"borrão. Por um tempo houve relatos estranhos, coisas que pareciam " -"inacreditáveis sobre os pacientes se recuperando depois de morrer, mas a " -"maioria das coisas estava como sempre. Então, no final, as coisas " -"explodiram. Nós pensamos que era um ataque chinês, e foi isso que nos " -"disseram. Pessoas enlouquecendo, cobertas de feridas por balas e mordidas. " -"Mais ou menos na metade do meu turno eu ... bem, eu quebrei. Eu tinha visto " -"ferimentos tão horríveis, e então eu ... Eu não posso nem falar " -"sobre isso." #: lang/json/talk_topic_from_json.py msgid "It might help to get it off your chest." -msgstr "Pode ajudar a tirá-lo do seu peito." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Suck it up. If we're going to work together I need to know you." -msgstr "Sugue isso. Se vamos trabalhar juntos, preciso conhecer você." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What was it that 'broke' you?" -msgstr "O que foi que 'quebrou' você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "No. I can't. Just, no." -msgstr "Não, não posso. Apenas não." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry... I'll let you be." -msgstr "Desculpe ... eu vou deixar você ser." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148619,21 +131783,10 @@ msgid "" "store old equipment. I hid there for hours, while I listened to the world " "crumbling outside and inside." msgstr "" -" Uma jovem mãe. Eu sei que ela era mãe, porque eu dei o bebê para ela. Doce " -"menina, ela ... ela tinha um bom senso de humor. Ela entrou, cuspindo a " -"gosma preta, lutando contra os enfermeiros, morta por uma ferida de bala no " -"peito. É quando eu ... não sei se finalmente acordei ou se finalmente " -"enlouqueci. De qualquer maneira, eu quebrei. Eu quebrei muito mais cedo do " -"que meus colegas, e essa é a única razão pela qual eu vivi. Eu pulei para " -"fora, fui para um canto morto do hospital que eu costumava esconder quando " -"eu era um residente. Uma velha escada levando a uma unidade fechada que a " -"equipe de manutenção estava usando para armazenar equipamentos antigos. Eu " -"me escondi lá por horas, enquanto ouvia o mundo desmoronar por dentro e por " -"fora." #: lang/json/talk_topic_from_json.py msgid "How did you get out of there?" -msgstr "Como você saiu de lá?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148647,15 +131800,6 @@ msgid "" "water from some nasty old puddle and I camped out there for a while, " "watching the city around me burn." msgstr "" -" De alguma forma, eu não sei como, eu consegui dormir lá dentro. Eu acho que" -" pode ter começado comigo hiperventilando e desmaiando. Quando acordei era " -"noite, eu estava morrendo de fome e ressequido e ... e os gritos tinham " -"morrido. No começo, tentei sair pelo caminho em que entrei, mas apontei para" -" a janela e vi uma das enfermeiras cambaleando, cuspindo aquela merda preta." -" O nome dela era Becky. Ela não era mais Becky. Então, voltei para cima e de" -" alguma forma fiz isso na área de armazenamento. De lá, o telhado. Eu bebi " -"água de uma poça velha e desagradável e acampei lá por um tempo, vendo a " -"cidade ao meu redor queimar." #: lang/json/talk_topic_from_json.py msgid "What finally brought you down?" @@ -148674,24 +131818,14 @@ msgid "" " any big fuss, by some miracle. I never made it to the cabin, but that's " "not important now." msgstr "" -" Bem, eu ainda não tinha comida. Eventualmente eu tive que descer o lado do " -"edifício ... então eu fiz, o mais silenciosamente que pude. Era noite e " -"tenho uma boa visão noturna. Aparentemente, os zumbis não, porque eu " -"consegui passar direto por eles e roubar uma bicicleta que ficava do lado da" -" estrada. Eu meio que descobri meu caminho de cima ... Eu não sou de uma " -"cidade grande, o hospital era o prédio mais alto do mundo. Evitei os " -"principais bloqueios militares e saí da cidade em direção à velha cabana de " -"um amigo. Eu tive que lutar contra um par do , mas eu consegui " -"evitar qualquer grande barulho, por algum milagre. Eu nunca cheguei à " -"cabana, mas isso não é importante agora." #: lang/json/talk_topic_from_json.py msgid "What did you see, up there on the roof?" -msgstr "O que você viu lá em cima no telhado?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me all that. " -msgstr "Obrigado por me contar tudo isso. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148705,19 +131839,10 @@ msgid "" " including the people inside who were trying to get away. You know. The " "usual stuff. I was pretty numb by that point." msgstr "" -" Meu hospital era o prédio mais alto da cidade, então eu vi um pouco. As " -"forças armadas montaram bloqueios nas estradas que entravam e saíam da " -"cidade, e havia bastante iluminação acontecendo quando eu comecei a subir. " -"Eu acho que foi principalmente torres e robôs automatizados, eu não ouvi " -"muito gritos. Eu vi alguns carros e caminhões tentarem executar a barricada " -"e serem levados para o inferno. Houve enxames de nas ruas, " -"viajando em bandos para sons e ruídos. Eu os assisti rasgar alguns carros em" -" frangalhos, incluindo as pessoas dentro que estavam tentando fugir. Você " -"sabe. O material usual. Eu estava bem entorpecido por esse ponto." #: lang/json/talk_topic_from_json.py msgid "How did you get down?" -msgstr "Como você desceu?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148730,18 +131855,10 @@ msgid "" "building, the military had blockaded us in... so I went to the most secure," " quiet damned place in the building." msgstr "" -" Fui chamado para trabalhar no hospital. Eu não costumo trabalhar lá, sou um" -" médico da comunidade. Eu realmente não amo medicina de emergência na melhor" -" das hipóteses, e quando seu paciente continua tentando rasgar seu rosto, " -"bem, isso tira o último pedaço de diversão disso. Você pode pensar que sou " -"um covarde, mas escapei cedo, e não me arrependo. Não havia nada que eu " -"pudesse ter feito exceto morrer como todo mundo. Eu não consegui sair do " -"prédio, os militares nos bloquearam ... então eu fui para o local mais " -"seguro e silencioso do prédio." #: lang/json/talk_topic_from_json.py msgid "Where was that?" -msgstr "Onde foi que?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148756,21 +131873,10 @@ msgid "" "whole morgue. At first it was because nobody was enough to come down" " there except me. Later, it was because nobody was left." msgstr "" -" O necrotério. Parece um lugar idiota para ir no início de um apocalipse " -"zumbi, certo? A coisa é que ninguém tinha chegado ao necrotério em muito " -"tempo, os corpos estavam reanimando muito rapidamente e os funcionários " -"estavam ocupados demais. Eu estava tremendo e vomitando e pude ver que o " -"mundo estava acabando ... Eu me agasalhei, peguei alguns petiscos da mesa do" -" patologista e entrei em uma daquelas gavetas para contemplar o fim do " -"mundo. Depois de quebrar a alça para se certificar de que não poderia " -"bloquear atrás de mim, é claro. isso foi seguro e quieto lá dentro. " -"Não apenas meu cubículo, todo o necrotério. No começo era porque ninguém era" -" o suficiente para descer lá, menos eu. Mais tarde, foi porque " -"ninguém foi deixado." #: lang/json/talk_topic_from_json.py msgid "Clearly you escaped at some point." -msgstr "Claramente você escapou em algum momento." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148784,19 +131890,10 @@ msgid "" "while, but the area around the hospital was too hot to keep it up, so I made" " my way out to greener pastures. And here I am." msgstr "" -" A porta era de bom aço pesado sem janela, e havia uma sala de professores " -"com uma geladeira totalmente abastecida, então quando ficou claro que nada " -"ia ficar melhor sozinha, eu me estabeleci. Eu fiquei lá por alguns dias. Eu " -"podia ouvir explosões e gritar pelo primeiro tempo, depois apenas armas e " -"explosões, e então quieto. Eventualmente, eu corri para fora de " -"lanches, então eu trabalhei até a coragem de sair de uma janela e verificar " -"a cidade à noite. Eu usei aquele lugar como base por um tempo, mas a área ao" -" redor do hospital estava muito quente para mantê-lo, então eu fiz o meu " -"caminho para pastos mais verdes. E aqui estou eu." #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me that. " -msgstr "Obrigado por me dizer isso. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148807,16 +131904,10 @@ msgid "" "military base, way out in the middle of nowhere. I didn't think much about " "that. Then I was attacked by a demon." msgstr "" -" Eu moro fora da cidade. Eu ouço que as pequenas cidades duraram um pouco " -"mais que as grandes cidades. Não importa para mim, eu estava fora em minha " -"caçada de final de inverno, eu já estava fora da cidade há uma semana. A " -"primeira pista de que as coisas estavam dando errado foi quando vi uma nuvem" -" de cogumelo perto de uma velha base militar abandonada, bem no meio do " -"nada. Eu não pensei muito sobre isso. Então fui atacado por um demônio." #: lang/json/talk_topic_from_json.py msgid "A demon?" -msgstr "Um demônio?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148828,13 +131919,6 @@ msgid "" "out there for a while, but I had to skip out when a bunch of " "showed up and trashed the place. I ran into you not much later." msgstr "" -" Sim, era como um ... como um caranguejo de casca mole, com bocas de " -"tentáculos, e continuava falando em vozes diferentes. Eu vi antes de me ver," -" e cobri com o meu Remington. Isso só irritou, mas eu tirei mais algumas " -"fotos enquanto me cobrava. Terceiro ou quarto tiro derrubou. Eu descobri que" -" a merda atingiu o ventilador, de alguma forma. Dirigi-me à minha cabana e " -"acampei lá fora por um tempo, mas eu tive que pular fora quando um monte de " -" apareceu e destruiu o lugar. Eu corri para você não muito depois." #: lang/json/talk_topic_from_json.py msgid "" @@ -148847,14 +131931,6 @@ msgid "" "in a time where I don't feel like I need to convince you I'm telling the " "truth." msgstr "" -" Meu irmão e eu estávamos em uma viagem de caça. Nós vimos helicópteros em " -"cima ... grandes, militares, carregados com coisas militares loucas e " -"sofisticadas como você vê na TV. Canhões a laser mesmo. Eles estavam indo na" -" direção do rancho dos nossos pais. Algo sobre isso realmente nos abalou, e " -"nós começamos a voltar desse jeito ... nós não estávamos tão longe quando " -"vimos esse enorme globo ocular flutuante lugar algum. Ha Difícil de " -"acreditar que estamos em um momento em que não sinto que preciso convencê- " -"lo de que estou dizendo a verdade." #: lang/json/talk_topic_from_json.py msgid "" @@ -148864,15 +131940,10 @@ msgid "" " the bed and our truck did a crazy backflip right off the road. The impact " "knocked me out cold. My brother ... he wasn't so lucky." msgstr "" -" Nós assistimos o globo ocular apenas explodir um dos helicópteros Apache " -"com algum tipo de raio. O helicóptero disparou de volta, mas caiu. Estava " -"vindo direto para nós ... Eu desviei, saí do caminho, mas um pedaço do " -"helicóptero bateu na cama e nosso caminhão fez um backflip louco na estrada." -" O impacto me derrubou com frio. Meu irmão ... ele não teve tanta sorte." #: lang/json/talk_topic_from_json.py msgid "Oh, no." -msgstr "Ah não." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148886,19 +131957,10 @@ msgid "" " grabbed my hunting knife and ran, but my brother got out and started " "crawling after me." msgstr "" -" Sim ... o ... o acidente o pegou, mas quando eu cheguei ele já estava " -"voltando. Graças a Deus pelos cintos de segurança, certo? Ele estava " -"gritando e se agitando ao redor, pendurado de cabeça para baixo. Eu pensei " -"que ele estava apenas machucado no começo, mas ele continuou vindo até mim " -"enquanto eu tentava falar com ele. Seu braço já estava machucado e ao invés " -"de desafivelar ele começou ... ele estava rasgando e puxando contra o cinto " -"de segurança. Isso, e a louca merda com o helicóptero, foi quando percebi o " -"quão fodido as coisas estavam. Peguei minha faca de caça e corri, mas meu " -"irmão saiu e começou a rastejar atrás de mim." #: lang/json/talk_topic_from_json.py msgid "Did you keep running?" -msgstr "Você continuou correndo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148910,17 +131972,10 @@ msgid "" "couldn't let my brother stay... like that. So I did what I had to, and I " "guess I'll live with that forever." msgstr "" -" Eu corri um pouco, mas depois vi zumbis soldados saindo daquele " -"helicóptero. Eles tinham o mesmo olhar sobre eles do que meu irmão, e eram " -"eles de um lado e ele do outro. Não sou genial, mas já vi alguns filmes: " -"descobri o que estava acontecendo. Eu não queria usar armadura de kevlar com" -" minha faca, então me virei e enfrentei o outro zumbi. Eu não podia deixar " -"meu irmão ficar assim. Então eu fiz o que tinha que fazer e acho que vou " -"viver com isso para sempre." #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me your story. " -msgstr "Obrigado por me contar sua história. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148935,7 +131990,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I don't see where this is going." -msgstr "Eu não vejo onde isso está indo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148946,17 +132001,10 @@ msgid "" "for them. And there was a clincher: A warning that the magic had escaped, a" " warning that all heroes had to leave the kingdom before it fell." msgstr "" -" Bem, as referências não estavam certas. Pat se referiu a coisas que nunca " -"tocamos. As situações eram próximas, mas não certas, e quando eu coloquei " -"tudo junto, contou uma história. Uma história sobre um estudioso cujos " -"filhos estavam sendo mantidos em cativeiro por um governo corrupto, forçados" -" a pesquisar magia negra para eles. E houve um argumento decisivo: um aviso " -"de que a magia havia escapado, um aviso de que todos os heróis tinham que " -"deixar o reino antes que ele caísse." #: lang/json/talk_topic_from_json.py msgid "Okay..." -msgstr "OK..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148966,15 +132014,10 @@ msgid "" "time and skip town for a while. I packed for the end of the world. Turns " "out, I packed the right stuff." msgstr "" -" Ouça, eu sei que é incrivelmente extravagante. Isso é D & D para você. " -"De qualquer forma, algo sobre o tom realmente me afetou. Eu sabia que era " -"importante. Eu desperdicei um pouco de tempo, então decidi usar meu tempo de" -" férias e pular a cidade por um tempo. Eu fiz as malas para o fim do mundo. " -"Acontece que eu arrumei as coisas certas." #: lang/json/talk_topic_from_json.py msgid "Was there anything else of use in that email?" -msgstr "Havia mais alguma coisa de uso nesse email?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -148982,9 +132025,6 @@ msgid "" "could probably decipher it, but I'm sure those burned up in ." " They bombed those labs, you know." msgstr "" -" Houve, sim, mas foi enigmático. Se eu tivesse uma cópia das anotações de " -"Pat, eu provavelmente poderia decifrá-la, mas tenho certeza que elas foram " -"queimadas . Eles bombardearam esses laboratórios, você sabe." #: lang/json/talk_topic_from_json.py msgid "" @@ -148995,13 +132035,6 @@ msgid "" "abandoned mall, but I needed food so I headed out to fend for myself in the " "woods. I wasn't doing a great job of it, so I'm kinda glad you showed up." msgstr "" -" Eu estava atrasado para evacuar quando a merda atingiu o ventilador. Ficou " -"preso na cidade por alguns dias, sobreviveu se escondendo em porões comendo " -"biscoitos escoteiros e bebendo cerveja quente. Eventualmente eu consegui " -"fugir sem ser pego pelo . Eu passei alguns dias escondidos em um " -"shopping abandonado, mas eu precisava de comida, então eu saí para me " -"defender na floresta. Eu não estava fazendo um ótimo trabalho, então eu " -"estou feliz que você apareceu." #: lang/json/talk_topic_from_json.py msgid "" @@ -149009,13 +132042,10 @@ msgid "" "enough to make a run to the store for groceries... Well, I've been running " "ever since." msgstr "" -" Eu estava em casa com a gripe quando o mundo foi para a merda, e quando me " -"recuperei o suficiente para fazer uma corrida para a loja de mantimentos ..." -" Bem, eu tenho corrido desde então." #: lang/json/talk_topic_from_json.py msgid "Come on, don't leave me hanging." -msgstr "Venha, não me deixe pendurado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149028,19 +132058,10 @@ msgid "" "pretty groggy when I ran out of chicken soup, so it took me a while to " "really process how dark and dead my building was when I headed out." msgstr "" -" Ok, bem, eu estava meio que fora naqueles primeiros dias. Eu sabia que " -"havia tempestades, mas eu estava tendo sonhos febris loucos e outras coisas." -" Honestamente, eu provavelmente deveria ter ido ao hospital, exceto que acho" -" que estaria morto agora. Eu não sei o que foi um sonho e qual foi o fim do " -"mundo. Lembro-me de ir à geladeira para tomar um drinque e perceber que a " -"luz estava apagada e a água estava quente, acho que isso foi um pouco antes " -"de minha febre romper. Eu ainda estava muito grogue quando acabei de canja " -"de galinha, então demorei um pouco para realmente processar o quão escuro e " -"morto meu prédio era quando eu saí." #: lang/json/talk_topic_from_json.py msgid "What happened when you went out?" -msgstr "O que aconteceu quando você saiu?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149055,47 +132076,30 @@ msgid "" "overran my building and I had to climb out and head for the hills on an old " "bike." msgstr "" -" Você provavelmente se lembra como eram as cidades. Eu acho que foi sobre o " -"quarto dia. Uma vez que eu saí, percebi o que estava acontecendo, ou percebi" -" que não sabia o que estava acontecendo, pelo menos. Eu vi um bando de " -"manifestantes quebrando um carro, e então notei que um deles estava batendo " -"na cabeça de uma mulher. Eu cancelei minha viagem de supermercado, corri de " -"volta para o meu apartamento antes que eles me vissem, e fiquei lá pelo " -"maior tempo que pude.. As coisas ficaram relativamente quietas quando os " -"mortos começaram a superar os vivos, então eu comecei a pilhar o que podia " -"dos meus vizinhos, matando-os novamente quando precisei. Eventualmente o " -" invadiu meu prédio e eu tive que sair e ir para as colinas em uma " -"bicicleta velha." #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me all that. " -msgstr "Obrigado por me contar tudo isso. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "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 "" -" Meu marido saiu comigo, mas foi comido por um daqueles plantar " -"monstros alguns dias antes de te conhecer. Este não foi um grande ano para " -"mim." #: lang/json/talk_topic_from_json.py msgid "" "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 "" -" Minha esposa saiu comigo, mas foi comido por um daqueles plantar " -"monstros alguns dias antes de te conhecer. Este não foi um grande ano para " -"mim." #: lang/json/talk_topic_from_json.py msgid "I'm sorry to hear it." -msgstr "Me desculpe por ouvir isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Tell me about those plant monsters." -msgstr "Me fale sobre esses monstros de plantas." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149104,22 +132108,16 @@ msgid "" "belonged, in the old world. In a weird way, I actually feel like I have a " "purpose now. Do you ever get that?" msgstr "" -" É assim que vai, sabe? Este é o fim dos tempos. Eu realmente não quero " -"falar mais sobre isso. E honestamente, nunca me senti como se pertencesse, " -"no velho mundo. De uma maneira estranha, eu realmente sinto que tenho um " -"propósito agora. Você já conseguiu isso?" #: lang/json/talk_topic_from_json.py msgid "No, that's messed up." -msgstr "Não, isso está errado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, I get that. Sometimes I feel like my existence began shortly after " "the cataclysm." msgstr "" -" Sim, eu entendo isso. Às vezes sinto que minha existência começou pouco " -"depois do cataclismo." #: lang/json/talk_topic_from_json.py msgid "" @@ -149127,9 +132125,6 @@ msgid "" "or something. I don't mean like a religious reason, just... we're " "survivors." msgstr "" -" Eu acho que aqueles de nós que chegaram até aqui têm que ter feito isso por" -" uma razão, ou algo assim. Eu não quero dizer como uma razão religiosa, " -"apenas ... nós somos sobreviventes." #: lang/json/talk_topic_from_json.py msgid "" @@ -149138,10 +132133,6 @@ msgid "" " I'd still kill a hundred zombies for an internet connection and a night " "watching crappy movies with... sorry. Let's change the subject." msgstr "" -" Haha, sim, eu posso ver porque você pensa isso. Não quero dizer que seja um" -" bom apocalipse. Eu só quero dizer que pelo menos agora eu sei o que estou " -"fazendo todo dia. Eu ainda mataria cem zumbis por uma conexão com a internet" -" e uma noite assistindo a filmes ruins ... desculpe. Vamos mudar de assunto." #: lang/json/talk_topic_from_json.py msgid "" @@ -149152,66 +132143,54 @@ msgid "" " They almost seemed intelligent... I barely made it out, only because they" " were, uh, distracted." msgstr "" -" Sim, você já viu eles? Eles são estes andando flores com um grande" -" ferrão no meio. Eles viajam em pacotes. Eles odeiam os zumbis, e " -"nós os estávamos usando como cobertura para limpar uma horda de mortos. " -"Infelizmente, as plantas são melhores rastreadores do que as . " -"Eles quase pareciam inteligentes ... Eu mal consegui, só porque estavam " -"distraídos." #: lang/json/talk_topic_from_json.py msgid "I'm sorry you lost someone." -msgstr "Sinto muito que você tenha perdido alguém." +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 "" -" Eu disse, eu não quero falar sobre isso. Como você não está entendendo " -"isso?" #: lang/json/talk_topic_from_json.py msgid "" "Like I said, it's a story, but I guess it won't kill me to tell it " "one more time." msgstr "" -" Como eu disse, é um história, mas eu acho que não vai me matar " -"para contar mais uma vez." #: lang/json/talk_topic_from_json.py msgid "Just another tale of love and loss. Not one I like to tell." msgstr "" -" Apenas outro conto de amor e perda. Não é um que eu goste de " -"contar." #: lang/json/talk_topic_from_json.py msgid "You said you lost someone." -msgstr "Você disse que perdeu alguém." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind. Sorry I brought it up." -msgstr "Deixa pra lá. Desculpe eu trouxe isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I appreciate the sentiment, but I don't think it would. Drop it." -msgstr "Eu aprecio o sentimento, mas acho que não. Largue." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "OK." -msgstr "ESTÁ BEM." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Oh, . This doesn't have anything to do with you, or with us." -msgstr "Oh, . Isso não tem nada a ver com você ou conosco." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "All right, fine. I had someone. I lost him." -msgstr "Tudo bem. Eu tive alguém. Eu perdi ele." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "All right, fine. I had someone. I lost her." -msgstr "Tudo bem. Eu tive alguém. Eu a perdi." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149224,14 +132203,6 @@ msgid "" " have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -" Ele estava em casa quando as bombas começaram a cair e o mundo foi para o " -"inferno. Eu estava no trabalho. Eu tentei chegar à nossa casa, mas a cidade " -"era uma zona de guerra. Coisas que não consigo descrever andando pelas ruas," -" esmagando pessoas e carros. Soldados tentando detê-los, mas atingindo as " -"pessoas no fogo cruzado, tanto quanto qualquer outra coisa. E então o dano " -"colateral voltaria e se juntaria ao inimigo. Se não fosse pelo meu marido, " -"eu teria acabado de sair, mas fiz o que pude e escorreguei. eu na verdade " -" fez isso vivo." #: lang/json/talk_topic_from_json.py msgid "" @@ -149244,22 +132215,14 @@ msgid "" "have just left, but I did what I could and I slipped through. I actually " " made it alive." msgstr "" -" Ela estava em casa quando as bombas começaram a cair e o mundo foi para o " -"inferno. Eu estava no trabalho. Eu tentei chegar à nossa casa, mas a cidade " -"era uma zona de guerra. Coisas que não consigo descrever andando pelas ruas," -" esmagando pessoas e carros. Soldados tentando detê-los, mas atingindo as " -"pessoas no fogo cruzado, tanto quanto qualquer outra coisa. E então o dano " -"colateral voltaria e se juntaria ao inimigo. Se não fosse por minha esposa, " -"eu teria acabado de sair, mas fiz o que pude e escorreguei. eu na verdade " -" fez isso vivo." #: lang/json/talk_topic_from_json.py msgid "You must have seen some shit." -msgstr "Você deve ter visto alguma merda." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I take it home was bad." -msgstr "Eu levo para casa foi ruim." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149275,17 +132238,6 @@ msgid "" " switch though, the fighting was starting to die off, and I was mostly just " "avoiding attention from zombies and other things." msgstr "" -" Sim. Eu realmente fiz. Levei dois dias para atravessar a cidade a pé, " -"acampando em lixeiras e lugares assim. Comecei a me mover mais à noite e " -"aprendi imediatamente a evitar os militares. Eles eram um imã para o " -" , e eles geralmente estavam estacionados onde os monstros estavam " -"chegando. Algumas partes da cidade eram bastante inofensas no começo. Havia " -"alguns pedaços onde as pessoas tinham sido evacuadas ou esvaziadas, e as " -" realmente não foi lá. Mais tarde, outros como eu começaram a se " -"mudar para esses bairros, então eu mudei e comecei a correr pelo centro da " -"cidade. Eu tive que ir para casa. No momento em que eu fiz a mudança, a luta" -" estava começando a morrer, e eu estava apenas evitando a atenção de zumbis " -"e outras coisas." #: lang/json/talk_topic_from_json.py msgid "" @@ -149300,24 +132252,14 @@ 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 "" -" O primeiro aviso foi que eu tive que passar das partes preservadas da " -"cidade para as queimadas para chegar em casa. Só piorou. Havia uma barricada" -" da polícia bem na frente da minha casa, com um par de torretas " -"automatizadas totalmente inúteis sentadas na frente, apenas observando os " -"zumbis passarem. Isso foi antes de alguém trocá-los para matar todo mundo, " -"quando matou apenas invasores humanos. Bons tempos, você sempre pode confiar" -" na burocracia para foder as coisas da maneira mais espetacular possível. De" -" qualquer forma, a casa em si estava meio desmoronada, uma van da SWAT tinha" -" entrado nela. Acho que sabia o que ia ver lá, mas cheguei tão longe e não " -"ia voltar atrás." #: lang/json/talk_topic_from_json.py msgid "You must have seen some shit on the way there." -msgstr "Você deve ter visto alguma merda no caminho até lá." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Did you make it into the house?" -msgstr "Você entrou na casa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149349,14 +132291,10 @@ msgid "" "up to run a zombie survival RPG with my friends on the weekend. Ha, I " "didn't think it'd turn into a LARP! Okay... No, that wasn't funny." msgstr "" -" Eu estava na escola para . Coisa engraçada, na verdade: eu " -"estava me preparando para executar um RPG de sobrevivência de zumbis com " -"meus amigos no fim de semana. Ha, eu não achei que iria se transformar em um" -" LARP! Ok ... Não, isso não foi engraçado." #: lang/json/talk_topic_from_json.py msgid "How did you survive school?" -msgstr "Como você sobreviveu à escola?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149370,38 +132308,24 @@ msgid "" "there, hoping they'd come. I sent texts but got no reply. After a few " "days, well... The news got worse and worse, then it stopped completely." msgstr "" -" Bem, eu posso ser um enorme nerd, mas eu não sou um idiota. Além " -"disso, sou mais experiente em gênero. Nós já tínhamos ouvido falar de " -"pessoas voltando dos mortos, na verdade é por isso que eu estava fazendo o " -"RPG. Quando os policiais vieram para colocar a escola no bloqueio eu " -"consegui escapar pelas costas. Eu moro muito longe da cidade, mas de jeito " -"nenhum eu ia pegar um ônibus para casa, então eu andei. Duas horas. Ouvi " -"muitas sirenes e até vi jatos acima. Estava ficando tarde quando voltei, mas" -" minha mãe e meu pai não estavam de volta do trabalho ainda. Eu fiquei lá, " -"esperando que eles viessem. Enviei textos mas não obtive resposta. Depois de" -" alguns dias, bem ... A notícia ficou pior e pior, então parou " -"completamente." #: lang/json/talk_topic_from_json.py msgid "What about your parents?" -msgstr "E seus pais?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What got you out of there?" -msgstr "O que te tirou de lá?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm not stupid. I know they're gone. Who knows where... Maybe in an evac " "shelter, maybe in a FEMA camp. Most of everyone is dead." msgstr "" -" Eu não sou idiota. Eu sei que eles se foram. Quem sabe onde ... Talvez em " -"um abrigo de evacuação, talvez em um acampamento da FEMA. A maioria de todos" -" está morta." #: lang/json/talk_topic_from_json.py msgid "What got you out of the house?" -msgstr "O que te tirou da casa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149411,11 +132335,6 @@ msgid "" "When they started knocking at the door, I slipped out the back and took to " "the street. And here I am." msgstr "" -" Eventualmente os zumbis vieram. Eu imaginei que eles iriam. Antes da net " -"cortar, havia muitos vídeos on-line deixando claro o que estava acontecendo." -" Eu escolhi um bom equipamento e carreguei minha bolsa com suprimentos ... " -"Quando eles começaram a bater na porta, eu saí pelas costas e fui para a " -"rua. E aqui estou eu." #: lang/json/talk_topic_from_json.py msgid "" @@ -149424,13 +132343,10 @@ msgid "" "dwell in the past when we should be making the best of what little we have " "left." msgstr "" -" Antes ? Quem se importa com isso? Este é um novo mundo, e " -"sim, é bonito . É o que temos, então não vamos nos demorar no " -"passado, quando deveríamos estar fazendo o melhor do pouco que nos resta." #: lang/json/talk_topic_from_json.py msgid "I can respect that." -msgstr "Eu posso respeitar isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149440,12 +132356,6 @@ msgid "" " I think something pretty bad must have happened to me. Or maybe I was " "just hit in the head really hard. Or both. Both seems likely." msgstr "" -" Para ser sincera ... não me lembro de verdade. Eu me lembro de detalhes " -"vagos da minha vida antes do mundo ser assim, mas em si? " -"Tudo é um borrão. Eu não sei como cheguei onde estou agora, ou como isso " -"aconteceu. Eu acho que algo muito ruim deve ter acontecido comigo. Ou talvez" -" eu tenha acabado de bater na cabeça muito forte. Ou ambos. Ambos parecem " -"prováveis." #: lang/json/talk_topic_from_json.py msgid "" @@ -149456,20 +132366,14 @@ msgid "" "where any of it comes from. I had a driver's license in my pocket and " "that's the only way I even know my name." msgstr "" -" Isso vai parecer loucura, mas eu acordei na floresta no meio do nada, " -"congelando, cerca de uma semana antes de te conhecer. Eu tinha minhas " -"roupas, uma dor de cabeça e absolutamente nenhuma memória de nada. Tipo, eu " -"sei de coisas. Eu posso falar, eu tenho habilidades e entendimento ... mas " -"eu não me lembro de onde isso vem. Eu tinha uma carteira de motorista no " -"bolso e é a única maneira de saber meu nome." #: lang/json/talk_topic_from_json.py msgid "What do you think happened?" -msgstr "O que você acha que aconteceu?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That does sound a little crazy..." -msgstr "Isso soa um pouco louco ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149478,14 +132382,10 @@ msgid "" "slashing patterns around me. Whatever happened to me, I think it was some " "weird shit." msgstr "" -" Houve algumas pistas. Tipo, eu tive uma dor de cabeça desagradável que " -"durou alguns dias, mas sem cortes ou contusões. E havia marcas de " -"queimaduras nas árvores em estranhos padrões cortantes em volta de mim. O " -"que aconteceu comigo, acho que foi uma coisa estranha." #: lang/json/talk_topic_from_json.py msgid "Are you trying to get your memory back then?" -msgstr "Você está tentando recuperar sua memória?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149497,14 +132397,6 @@ msgid "" "psychotic break and my brain did this to itself. To be honest with you I " "think I'd rather focus on surviving, and not worry about it." msgstr "" -" Bem, não ter memória é esquisito, mas vou ser sincero: acho que pode ser " -"melhor? Com o que está acontecendo, aposto que minhas memórias não foram " -"felizes. Além da minha carteira de motorista, havia fotos de crianças na " -"minha carteira ... não que isso provocou qualquer reação de mim. Eu não vi " -"nenhuma criança por perto. Talvez perder a cabeça seja uma misericórdia. " -"Inferno, talvez seja algum tipo de ruptura psicótica e meu cérebro fez isso " -"para si mesmo. Para ser honesto com você, acho que prefiro me concentrar em " -"sobreviver e não me preocupar com isso." #: lang/json/talk_topic_from_json.py msgid "" @@ -149513,10 +132405,6 @@ msgid "" " Bugs Bunny but I don't remember any time I sat down and watched a Bugs " "Bunny show." msgstr "" -" Eu sei que é doido Soa como amnésia falsa de um desenho animado do " -"Pernalonga. Vejo? Como posso saber isso, mas não me lembro como eu sei " -"disso? Tipo, eu me lembro de Pernalonga, mas não me lembro de nenhuma vez em" -" que me sentei e assisti a um show do Pernalonga." #: lang/json/talk_topic_from_json.py msgid "" @@ -149527,20 +132415,14 @@ msgid "" "gooey bastard to a pulp... and that's when I became me. I still run, " "because who doesn't, but I stand my ground now." msgstr "" -" Quem eu fui se foi. Todas essas coisas queimaram em . " -"Consegui? Quem eu sou agora começou dois dias nisso. Eu estava fugindo de um" -" grande zumbi do inferno, correndo como sempre fazia quando encontrei um " -"taco de beisebol de aço parado no chão. Tomei isso como um sinal e bati " -"aquele bastardo pegajoso em uma polpa ... e foi quando me tornei eu. Eu " -"ainda corro, porque quem não faz, mas eu estou firme agora." #: lang/json/talk_topic_from_json.py msgid "What happened to you after that?" -msgstr "O que aconteceu com você depois disso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "It can't be healthy to abandon your past like that..." -msgstr "Não pode ser saudável abandonar o seu passado assim ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149550,12 +132432,6 @@ msgid "" " my bat so I dropped it and used a nearby two-by-four, but I wound up having" " to run and leave the ol' slugger behind. I nearly died that day." msgstr "" -" Eu continuei, correndo quando precisei e lutando quando pude, como o resto " -"de nós. Comecei a aprender quem eu sou agora. Perdeu o bastão em uma luta " -"contra um raio elétrico louco atirando em zumbis. Era arco de eletricidade " -"através do meu bastão, então eu deixei cair e usei um próximo de dois por " -"quatro, mas acabei tendo que correr e deixar o velho slugger para trás. Eu " -"quase morri naquele dia." #: lang/json/talk_topic_from_json.py msgid "" @@ -149563,26 +132439,20 @@ msgid "" " Who I was is gone. Dead. I don't give a shit about your 'healthy', don't" " ask again." msgstr "" -" Ouço. Eu disse isso claramente, e se você continuar insistindo, eu vou " -"ficar bravo. Quem eu fui se foi. Morto. Eu não dou a mínima para o seu " -"'saudável', não pergunte novamente." #: lang/json/talk_topic_from_json.py msgid "" "Let's not talk about it, ok? It just hurts to think about. I've lost so " "many people... and I'm sure you have too. Let's focus on the here and now." msgstr "" -" Não vamos falar sobre isso, ok? Apenas dói pensar sobre isso. Eu perdi " -"muitas pessoas ... e tenho certeza que você também. Vamos nos concentrar no " -"aqui e agora." #: lang/json/talk_topic_from_json.py msgid "I can respect that. " -msgstr "Eu posso respeitar isso. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Fair enough. " -msgstr "Justo. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149593,20 +132463,14 @@ msgid "" "dead driver, you know - and turned my car into a skid mark. I feel bad for " "the bastards that were in the cities when it hit." msgstr "" -" Eu nem sabia sobre Imediatamente. Eu estava fora, longe do " -"pior. Meu carro quebrou na estrada, e eu estava esperando por um reboque por" -" horas. Eu finalmente terminei acampando nos arbustos do lado da estrada; " -"coisa boa, também, porque um caminhão semi chicoteado por - motorista morto," -" você sabe - e transformou meu carro em uma marca de derrapagem. Eu me sinto" -" mal pelos bastardos que estavam nas cidades quando aconteceu." #: lang/json/talk_topic_from_json.py msgid "How did you survive outside?" -msgstr "Como você sobreviveu fora?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What did you see in those first few days?" -msgstr "O que você viu naqueles primeiros dias?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149618,14 +132482,6 @@ msgid "" "the worst I saw. I didn't run into any of those demon-monsters that I hear " "attacked the cities, so I guess I got off lucky." msgstr "" -" Ha, eu não entendo completamente eu mesmo. Aqueles primeiros dias foram um " -"tempo difícil para estar do lado de fora, com certeza. Eu fui pego em uma " -"daquelas tempestades infernais, começou a queimar minha pele imediatamente. " -"Consegui me abrigar debaixo de um carro, deitado em cima da minha tenda. " -"Destruiu a maldita coisa, mas melhor do que eu. Pelo que ouvi, porém, tive " -"sorte. Isso foi praticamente o pior que eu vi. Eu não encontrei nenhum " -"daqueles monstros demoníacos que ouvi atacarem as cidades, então acho que " -"tive sorte." #: lang/json/talk_topic_from_json.py msgid "" @@ -149637,14 +132493,6 @@ msgid "" "them. Stalling out was a death sentence, because the dead were coming along" " the roads picking off the survivors." msgstr "" -" Além da chuva ácida, eu via principalmente pessoas fugindo das cidades. Eu " -"tentei ficar longe das estradas, mas eu não queria me perder na floresta, " -"então eu fiquei nas margens profundas. Eu vi carros, ônibus, caminhões " -"carregados de evacuados. Muita coisa seguiu em frente, mas muita coisa ficou" -" sem gasolina e outras coisas. Alguns estavam tão cheios de equipamento e as" -" pessoas lá estavam pessoas penduradas fora deles. Stalling out foi uma " -"sentença de morte, porque os mortos estavam vindo pelas estradas, matando os" -" sobreviventes." #: lang/json/talk_topic_from_json.py msgid "" @@ -149655,16 +132503,10 @@ msgid "" "we went inside to rest up, and while we were in there a weird dust settled " "over everything." msgstr "" -" Eu estava em uma viagem de pesca com meu amigo quando isso aconteceu. Eu " -"não sei exatamente como os dias se alinham ... nossa primeira pista de que o" -" Armagedom tinha chegado foi quando fomos atingidos por algum tipo de vento " -"envenenado, com uma espécie de névoa ácida que queimou nossos olhos e pele. " -"Não sabíamos o que fazer com isso, então fomos para dentro descansar e, " -"enquanto estávamos lá, uma poeira estranha tomou conta de tudo." #: lang/json/talk_topic_from_json.py msgid "What happened after the acid mist?" -msgstr "O que aconteceu depois da névoa ácida?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149674,14 +132516,10 @@ msgid "" "find out. We packed up our shit, scraped off the boat, and took off " "upriver." msgstr "" -" De manhã, a área ao redor do lago estava coberta de um molde rosado, e " -"havia cogumelos ambulantes em torno de atirar nuvens de poeira no ar. Nós " -"não sabíamos o que estava acontecendo, mas nenhum de nós queria ficar e " -"descobrir. Nós empacotamos nossa merda, raspamos o barco e saímos rio acima." #: lang/json/talk_topic_from_json.py msgid "What happened to your friend?" -msgstr "O que aconteceu com seu amigo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149690,14 +132528,10 @@ msgid "" "riverside, hoping they might have something to help or at least know what " "was going on." msgstr "" -" Ela ficou doente algumas horas depois que saímos do lago. Puking, " -"reclamando de suas articulações doendo. Eu nos levei para uma lojinha que eu" -" conhecia à margem do rio, esperando que eles pudessem ter algo para ajudar " -"ou pelo menos saber o que estava acontecendo." #: lang/json/talk_topic_from_json.py msgid "I guess they didn't know." -msgstr "Eu acho que eles não sabiam." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149706,14 +132540,10 @@ msgid "" " some painkillers and gravol, but when I came out to the boat, well... it " "was too late for her." msgstr "" -" A loja estava vazia, na verdade. Ela estava desesperada, então eu entrei. " -"Descobri mais sobre o caos nas cidades do rádio da loja. Tenho meu amigo " -"alguns analgésicos e gravol, mas quando eu saí para o barco, bem ... era " -"tarde demais para ela." #: lang/json/talk_topic_from_json.py msgid "She was dead?" -msgstr "Ela estava morta?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149722,18 +132552,14 @@ msgid "" "busting out of every part of her. I... I ran. Now I wish that I'd put her" " out of her misery, but going back there now would be suicide." msgstr "" -" Eu gostaria. Isso teria sido uma misericórdia. Ela estava soltando um grito" -" horrível e sufocante, e seu corpo estava se desfazendo. Cogumelos estavam " -"saindo de todas as partes dela. Eu corri. Agora eu gostaria que eu a " -"colocasse fora de sua miséria, mas voltar lá agora seria suicídio." #: lang/json/talk_topic_from_json.py msgid "That's awful. " -msgstr "Isso é horrível. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That's awful. " -msgstr "Isso é horrível. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149742,19 +132568,14 @@ msgid "" " of course, just my luck: I was miles out of town for a work conference when" " China attacked and the world ended." msgstr "" -" Ooooh, garoto. Eu estava pronto para isso. Os ventos sopravam dessa maneira" -" há anos. Eu tinha um último homem completo no abrigo da terra montado fora " -"da cidade. Então, claro, apenas a minha sorte: eu estava a quilômetros da " -"cidade para uma conferência de trabalho quando a China atacou e o mundo " -"acabou." #: lang/json/talk_topic_from_json.py msgid "What happened to you?" -msgstr "O que aconteceu com você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What about your shelter?" -msgstr "E quanto ao seu abrigo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149765,17 +132586,10 @@ msgid "" "fifty bucks it was Lee. Anyway, I stole the co-ordinator's pickup and " "headed straight for my shelter." msgstr "" -" Nossa conferência foi em um retiro por um lago. Todos nós recebemos a " -"transmissão de emergência em nossas celas, mas eu fui o único a ler nas " -"entrelinhas e ver o que era: bi-terrorismo em larga escala. Eu não estava " -"prestes a ficar e descobrir quem dos meus colegas de trabalho era um agente " -"adormecido. Embora eu tivesse apostado cinquenta dólares, era Lee. De " -"qualquer forma, roubei a caminhonete do coordenador e fui direto para o meu " -"abrigo." #: lang/json/talk_topic_from_json.py msgid "Did you get there?" -msgstr "Você chegou lá?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149786,39 +132600,30 @@ msgid "" " couple bullets into it for good measure. I hope I never see something like" " that again." msgstr "" -" Não, eu mal tenho duas milhas. Eu bati em algum tipo de bio-arma de fenda " -"infernal, um grito louco feito de braços e pernas e cabeças de " -"todos os tipos de criaturas, humanos também. Acho que matei, mas sei com " -"certeza que matei o caminhão. Agarrei minha mochila e corri, depois de " -"colocar algumas balas nela por precaução. Espero nunca mais ver algo assim." #: lang/json/talk_topic_from_json.py msgid "" "I still haven't made it there. Every time I've tried I've been headed off " "by the . Who knows, maybe someday." msgstr "" -" Eu ainda não cheguei lá. Toda vez que eu tentei eu fui encabeçada pelo " -". Quem sabe, talvez um dia." #: lang/json/talk_topic_from_json.py msgid "Could you tell me that story again?" -msgstr "Você poderia me contar essa história de novo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Oh, man. I thought I was ready. I had it all planned out. Bug out bags. " "Loaded guns. Maps of escape routes. Bunker in the back yard." msgstr "" -" Oh cara. Eu pensei que estava pronto. Eu tinha tudo planeado. Bug fora de " -"sacos. Armas carregadas. Mapas de rotas de fuga. Bunker no quintal." #: lang/json/talk_topic_from_json.py msgid "Sounds like it didn't work out." -msgstr "Parece que não deu certo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey, I'd really be interested in seeing those maps." -msgstr "Ei, eu realmente estaria interessado em ver esses mapas." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149833,21 +132638,10 @@ msgid "" " rip the head off my neighbor's dog. I saw a soldier's body twitch and grow" " into some kind of electrified hulk beast. I watched it all happen." msgstr "" -" Depende da sua definição. Eu estou vivo, não estou? Quando o próprio " -"Inferno desceu dos céus e monstros começaram a atacar as cidades, eu peguei " -"minhas coisas e me amontoei no bunker. Minhas câmeras de superfície ficaram " -"online por dias; Eu podia ver tudo acontecendo lá em cima. Eu assisti essas " -"coisas passarem. Eu ainda tenho pesadelos sobre a maneira como seus corpos " -"se moviam, como eles quebraram o mundo só para estar aqui. Eu não tinha nada" -" melhor para fazer. Eu os assisti rasgar a polícia e os militares, assisti " -"os mortos se levantarem e começarem a lutar contra os vivos. Eu assisti a " -"velha velhinha da rua rasgar a cabeça do cachorro do meu vizinho. Eu vi o " -"corpo de um soldado se contorcer e se transformar em algum tipo de besta " -"eletrificada. Eu assisti tudo acontecer." #: lang/json/talk_topic_from_json.py msgid "Why did you leave your bunker?" -msgstr "Por que você deixou seu bunker?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149859,79 +132653,68 @@ msgid "" "thing, and I killed the ones outside the bunker. I guess the adrenaline was" " what I needed. It's kept me going since then." msgstr "" -" Honestamente? Eu estava planejando morrer. Depois do que eu vi, fiquei um " -"pouco louco. Eu pensei que tinha acabado com certeza, achei que não havia " -"nenhum ponto em lutar contra isso. Pensei que não duraria um minuto aqui " -"fora, mas não consegui terminar ali. Eu saí, planejando deixar o " -"acabar comigo, mas o que posso dizer? O instinto de sobrevivência é uma " -"coisa engraçada, e eu matei os que estavam do lado de fora do bunker. Eu " -"acho que a adrenalina era o que eu precisava. Isso me mantém desde então." #: lang/json/talk_topic_from_json.py msgid "Thanks for telling me that. " -msgstr "Obrigado por me dizer isso. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, I do. I'd be willing to part with them for, say, $1000. Straight " "from your ATM account, no cash cards." msgstr "" -" Sim. Eu estaria disposto a separar-me deles por, digamos, $ 1000. Direto da" -" sua conta ATM, sem cartões de dinheiro." #: lang/json/talk_topic_from_json.py msgid "[$1000] You have a deal." -msgstr "[$ 1000] Você tem um acordo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Whatever's in that map benefits both of us." -msgstr "O que quer que esteja nesse mapa beneficia a nós dois." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "How 'bout you hand it over and I don't get pissed off?" -msgstr "E você entregá-lo e eu não entendo irritado?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry for changing the subject. What was it you were saying?" -msgstr "Desculpe por mudar de assunto. O que você estava dizendo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "All right. Here they are." -msgstr "Tudo certo. Aqui estão eles." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks! What was it you were saying before?" -msgstr "Obrigado! O que você estava dizendo antes?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks! " -msgstr "Obrigado! " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks! " -msgstr "Obrigado! " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nice try. You want the maps, you pay up." -msgstr "Boa tentativa. Você quer os mapas, você paga." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Fine. What was it you were saying before?" -msgstr "Bem. O que você estava dizendo antes?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I was in jail for , but I escaped. Hell of a story." msgstr "" -" Eu estava preso por mas eu escapei. Inferno de uma " -"história." #: lang/json/talk_topic_from_json.py msgid "So tell me this 'hell of a story'" -msgstr "Então me diga isso 'inferno de uma história'" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What were you in for?" -msgstr "O que você estava procurando?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -149939,9 +132722,6 @@ msgid "" "the Eastern seaboard. Hah, the stories I could tell you... but I won't. " "That's all way behind me." msgstr "" -" Essa é uma história em si, meu amigo. Eu tive um dos maiores crescimentos " -"na costa leste. Hah, as histórias que eu poderia te contar ... mas eu não " -"vou. Está tudo bem atrás de mim." #: lang/json/talk_topic_from_json.py msgid "" @@ -149949,55 +132729,40 @@ msgid "" "making a bioweapon. It didn't get used or anything, but, well, it got out " "of hand." msgstr "" -" É um pouco ... é uma coisa. Começou como um desafio. Acabei fazendo uma " -"arma biológica. Não se acostumou nem nada, mas, bem, saiu do controle." #: lang/json/talk_topic_from_json.py msgid "" "Tax evasion. I was an accountant, and I helped my boss move a hell of a lot" " of money in some very clever ways. Not clever enough, it turns out..." msgstr "" -" Evasão fiscal. Eu era um contador e ajudei meu patrão a movimentar um monte" -" de dinheiro de maneiras muito inteligentes. Não é inteligente o suficiente," -" acontece ..." #: lang/json/talk_topic_from_json.py msgid "" "This sounds a lot cooler than it is: possession of an unlicensed nuclear " "accelerator." msgstr "" -" Isso soa muito mais legal do que é: posse de um acelerador nuclear não " -"licenciado." #: lang/json/talk_topic_from_json.py msgid "" "I got a little bit into black market organ trading. It sounds worse than it" " was... but it was pretty bad." msgstr "" -" Eu me meti um pouco no mercado de órgãos do mercado negro. Parece pior do " -"que era ... mas foi muito ruim." #: lang/json/talk_topic_from_json.py msgid "Multiple counts of possession. I used to be really hung up on meth." msgstr "" -" Múltiplas contagens de posse. Eu costumava ficar muito viciado em " -"metanfetamina." #: lang/json/talk_topic_from_json.py msgid "" "Assault charges. I really don't want to get into it, let's just say that " "you don't want to talk during a movie around me okay?" msgstr "" -" Acusações de assalto. Eu realmente não quero entrar nisso, vamos apenas " -"dizer que você não quer falar durante um filme ao meu redor, ok?" #: lang/json/talk_topic_from_json.py 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 "" -" Você sabe, eu realmente não quero mais dizer. Está tudo atrás de mim e " -"gostaria de continuar assim." #: lang/json/talk_topic_from_json.py msgid "" @@ -150006,15 +132771,10 @@ msgid "" " solitary while a few more landed in the infirmary. Some looked pretty bad," " now I kinda wonder if any of them were our first ." msgstr "" -" Ok, bem, eu estava no lugar errado na hora errada. Houve uma grande briga, " -"eu não fiquei claro disso, e eu e um monte de outros fomos jogados na " -"solitária, enquanto mais alguns desembarcaram na enfermaria. Alguns pareciam" -" muito ruins, agora eu meio que me pergunto se algum deles foi nosso " -"primeiro ." #: lang/json/talk_topic_from_json.py msgid "How did you get out of lockup?" -msgstr "Como você saiu do bloqueio?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150025,17 +132785,10 @@ msgid "" "guard. He let me out, filled me in on what was going on. I wanted to think" " he was crazy, but something in his eyes... I believed him." msgstr "" -" Eu ouvi tiros, mesmo de baixo em lockup. Não ouviu muito gritar nem nada. " -"Essa foi a minha primeira pista de que algo estava acontecendo. Comida parou" -" de aparecer, em seguida. Então, as luzes se apagaram. Eu estava lá por " -"talvez horas, talvez dias, quando finalmente uma lanterna nos bares me " -"cegou. Foi um guarda. Ele me deixou sair, me contou o que estava " -"acontecendo. Eu queria pensar que ele era louco, mas algo em seus olhos ... " -"Eu acreditei nele." #: lang/json/talk_topic_from_json.py msgid "What did you do from there?" -msgstr "O que você fez de lá?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150047,18 +132800,10 @@ msgid "" "lockers to the entry hall, used them as shields, and pushed them until we " "were close enough to take out the bots' sensors with our weapons." msgstr "" -" Nós soltamos os outros na solitária. Nós estávamos presos, os bots do " -"guarda tinham dado errado e não deixavam ninguém sair, e o resto das " -"pessoas, exceto esse guarda, tinha se virado. Passamos alguns dias " -"despolpando e tentando descobrir um caminho seguro além dos bots. " -"A comida estava acabando. Finalmente, escolhemos o pior, o único plano em " -"que podíamos pensar: arrastamos alguns armários para o saguão de entrada, os" -" usávamos como escudos e os empurramos até estarmos perto o suficiente para " -"tirar os sensores dos bots com nossas armas." #: lang/json/talk_topic_from_json.py msgid "Did that actually work?" -msgstr "Isso realmente funcionou?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150066,13 +132811,10 @@ msgid "" "shoot the lockers but I guess they mistook us for family. There were six of" " us and four of them, and four of us made it out." msgstr "" -" Funcionou melhor do que eu imaginava, honestamente. Nós pensamos que os " -"bots atirariam nos armários, mas eu acho que eles nos confundiram com a " -"família. Havia seis de nós e quatro deles, e quatro de nós saímos." #: lang/json/talk_topic_from_json.py msgid "What happened to the others that made it?" -msgstr "O que aconteceu com os outros que fizeram isso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150084,13 +132826,6 @@ msgid "" " you where I saw him last. Wasn't long before I met you, and he had a good " "thing going, might still be there." msgstr "" -" O guarda decolou sozinho. Não confiamos em nós e eu não o culpo. Os outros " -"dois queriam montar um show de bandido. Não sentou direito comigo, então eu " -"dividi em termos muito bons. Eu corri para o guarda mais algumas vezes. " -"Pensei em ver se ele viajaria comigo, mas não sei. Eu não acho que ele " -"aceitaria a oferta, eu sempre serei um trapaceiro para ele. Se você quiser " -"tentar, posso lhe dizer onde o vi pela última vez. Não demorou muito para " -"que eu te conhecesse, e ele tinha uma coisa boa, ainda poderia estar lá." #: lang/json/talk_topic_from_json.py msgid "" @@ -150104,24 +132839,12 @@ msgid "" "collateral damage after it got blasted off Orleans by a tank. I was already" " busy running frantically by then." msgstr "" -" Na verdade, sou professor de química em Harvard. Eu estive em licença pelos" -" últimos seis meses. Eu não posso imaginar a universidade era um bom lugar " -"para estar, dado o que eu ouvi sobre Boston ... Eu não tenho certeza se " -"alguém conseguiu. Eu estava na minha cabana perto de Chatham, aparentemente " -"trabalhando nos últimos retoques de um jornal, mas na maior parte apenas " -"bebendo uísque e agradecendo às minhas estrelas da sorte pela posse. Aqueles" -" foram bons dias. Entao veio , os comboios militares, o " -". Minha cabine foi esmagada por um , apenas um dano " -"colateral depois que ele foi expulso de Orleans por um tanque. Eu já estava " -"ocupado correndo freneticamente até então." #: lang/json/talk_topic_from_json.py msgid "" "Do you think there's some way your knowledge could help us understand all " "this?" msgstr "" -" Você acha que há alguma maneira de seu conhecimento nos ajudar a entender " -"tudo isso?" #: lang/json/talk_topic_from_json.py msgid "" @@ -150129,14 +132852,10 @@ msgid "" " I'm at a loss to how that relates, but if you come across something where " "my knowledge would help I'll gladly offer it." msgstr "" -" Difícil de dizer. Eu não sou realmente um químico orgânico, eu fiz química " -"geológica. Eu estou em uma perda de como isso se relaciona, mas se você se " -"deparar com algo onde o meu conhecimento ajudaria eu vou oferecê-lo de bom " -"grado." #: lang/json/talk_topic_from_json.py msgid "Cool. What did you say before that?" -msgstr "Legal. O que você disse antes disso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150144,13 +132863,10 @@ msgid "" "be with the Lord. I don't understand why He didn't take me too, but I " "suppose it'll all be clear in time." msgstr "" -" Minha história. Hã. Não é nada de especial. Eu tive pessoas, mas elas se " -"levantaram para estar com o Senhor. Eu não entendo porque Ele não me levou " -"também, mas suponho que tudo ficará claro a tempo." #: lang/json/talk_topic_from_json.py msgid "Do you mean in a religious sense, or...?" -msgstr "Você quer dizer em um sentido religioso, ou ...?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150161,20 +132877,14 @@ msgid "" "along those lines. It's not going exactly like I thought it would, but " "that's prophecy for you." msgstr "" -" Claro. Está claro o suficiente, não é? Esse ... esse fim, foi o " -"arrebatamento. Eu ainda estou aqui, e ainda não entendo o porquê, mas vou " -"manter Jesus em meu coração através das Tribulações vindouras. Quando eles " -"passarem, tenho certeza de que Ele me receberá no Reino dos Céus. Ou ... ou " -"algo nesse sentido. Não está indo exatamente como eu pensei que seria, mas é" -" uma profecia para você." #: lang/json/talk_topic_from_json.py msgid "What if you're wrong?" -msgstr "E se você estiver errado?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What will you do then?" -msgstr "O que você vai fazer então?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150184,15 +132894,10 @@ msgid "" "the Earth, and the Righteous have all be drawn up into the Lord's Kingdom. " "What more proof could you possibly ask for?" msgstr "" -" O que? Como você pode dizer algo assim? Eu não posso acreditar que você " -"olharia para tudo isso e pensaria que poderia ser qualquer coisa, menos o " -"fim dos tempos. Os mortos estão caminhando, as portas do Inferno se abriram," -" as Bestas do Diabo andam na Terra, e os Justos estão todos no Reino do " -"Senhor. Que mais provas você poderia pedir?" #: lang/json/talk_topic_from_json.py msgid "What will you do, then?" -msgstr "O que você vai fazer então?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150201,9 +132906,6 @@ msgid "" "we're the meek that shall inherit the Earth. Although I don't love our " "odds." msgstr "" -" Vou manter a fé e continuar orando e derrubar os agentes do Inferno onde os" -" vejo. É tudo o que poucos conseguem fazer, não é? Suponho que talvez " -"sejamos os mansos que herdarão a Terra. Embora eu não ame nossas chances." #: lang/json/talk_topic_from_json.py msgid "" @@ -150211,10 +132913,6 @@ msgid "" "Rapture has come, and I was left behind. So now, I guess I wander through " "Hell on Earth. I wish I'd paid more attention in Sunday School." msgstr "" -" O mesmo que qualquer um. Eu me afastei de Deus e agora estou pagando o " -"preço. O arrebatamento chegou e eu fui deixado para trás. Então agora, eu " -"acho que perambulo pelo Inferno na Terra. Eu gostaria de ter prestado mais " -"atenção na Escola Dominical." #: lang/json/talk_topic_from_json.py msgid "" @@ -150226,13 +132924,6 @@ msgid "" "rioting in Boston and such, I curled up with my canned soup and changed the " "channel." msgstr "" -" Eu morava sozinho, na antiga propriedade da família, fora da cidade. Meu " -"marido faleceu um pouco mais de um mês antes que isso começasse ... câncer. " -"Se algo de bom saiu de tudo isso, é que finalmente vejo um positivo em " -"perdê-lo tão jovem. Eu tinha sido fechado por um tempo de qualquer maneira. " -"Quando as notícias começaram a falar sobre armas biológicas chinesas e " -"agentes adormecidos, e mostrando os tumultos em Boston e tal, eu me enrolei " -"com a minha sopa enlatada e mudei de canal." #: lang/json/talk_topic_from_json.py msgid "" @@ -150244,13 +132935,6 @@ msgid "" "rioting in Boston and such, I curled up with my canned soup and changed the " "channel." msgstr "" -" Eu morava sozinho, na antiga propriedade da família, fora da cidade. Minha " -"esposa faleceu um pouco mais de um mês antes que isso começasse ... câncer. " -"Se algo de bom saiu de tudo isso, é que eu finalmente vejo um ponto positivo" -" em perdê-la tão jovem. Eu tinha sido fechado por um tempo de qualquer " -"maneira. Quando as notícias começaram a falar sobre armas biológicas " -"chinesas e agentes adormecidos, e mostrando os tumultos em Boston e tal, eu " -"me enrolei com a minha sopa enlatada e mudei de canal." #: lang/json/talk_topic_from_json.py msgid "" @@ -150261,12 +132945,6 @@ msgid "" " changing the channels. Then, one day, there were no channels to change to." " Just the emergency broadcast, over and over." msgstr "" -" Bem, construiu um pouco. Houve aquela chuva ácida, queimou um dos meus " -"tratores. Não que eu estivesse trabalhando nos campos desde ... bem, tinha " -"sido um ano e eu não tinha feito muito a pena fazer. Houve " -"explosões e coisas, e helicópteros no alto. Eu estava com medo, mantive as " -"cortinas fechadas, continuei mudando os canais. Então, um dia, não havia " -"canais para mudar. Apenas a transmissão de emergência, mais e mais." #: lang/json/talk_topic_from_json.py msgid "" @@ -150279,14 +132957,6 @@ msgid "" "Unfortunately I led the back to my farm, and had to bug out of " "there. Might go back and clear it out, someday." msgstr "" -" Essa foi a primeira coisa que realmente me tirou disso. Eu realmente não " -"tinha amigos muito próximos, mas havia pessoas na cidade que eu me importava" -" um pouco. Eu tinha enviado alguns textos, mas não tinha realmente percebido" -" que eles não respondiam há dias. Entrei no meu caminhão e tentei voltar " -"para a cidade. Não fui longe antes de atingir um pilhada infestada " -"bloqueando a estrada, e foi aí que comecei a juntar tudo. Nunca cheguei à " -"cidade. Infelizmente eu levei o de volta para minha fazenda, e " -"tive que sair de lá. Pode voltar e limpar isso, algum dia." #: lang/json/talk_topic_from_json.py msgid "" @@ -150297,12 +132967,6 @@ msgid "" "having with that, so my dog Buck and I, we headed out while they were all " "sniffin' their own farts." msgstr "" -" Bem, eu morava na beira de uma cidade pequena. Loja de esquina e um posto " -"de gasolina e não muito mais. Nós ouvimos sobre a merda que está acontecendo" -" na cidade, mas não vimos muito até que os militares chegaram e tentaram " -"montar um acampamento lá. Eles queriam engarrafar todos nós na cidade, e eu " -"não estava tendo com isso, então meu cachorro, Buck e eu, saímos enquanto " -"todos estavam farejando seus próprios peidos." #: lang/json/talk_topic_from_json.py msgid "" @@ -150313,25 +132977,18 @@ msgid "" "first we walked along the highway a little, but saw too many army trucks and" " buses full of evacuees, and that's when we found out about the ." msgstr "" -" Buck e eu saímos e fomos para o leste, indo para o rancho de minha amiga. " -"Droga pequena bonita pensou que nós há pouco estávamos indo para uma " -"caminhada longa real. Eu não podia pegar o caminhão sem que os garotos do " -"exército o pegassem. Nós chegamos na floresta, acampados em uma encosta " -"para. Embalado e mantido saindo. No princípio nós caminhamos um pouco ao " -"longo da rodovia, mas vimos muitos caminhões de exército e aviões cheios de " -"evacuados, e isso é quando nós descobrimos sobre o ." #: lang/json/talk_topic_from_json.py msgid "Where's Buck now?" -msgstr "Onde está Buck agora?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I see where this is headed. " -msgstr "Eu vejo onde isso está indo. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I see where this is headed. " -msgstr "Eu vejo onde isso está indo. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150343,46 +133000,32 @@ msgid "" "well, while I was still cryin', Buck came back. I had to ... . " "I... I can't say it. You know." msgstr "" -" Chegamos ao rancho do meu amigo, mas o Os g-homens estavam lá " -"primeiro. Tudo estava tapado e havia uma barricada policial na frente. Um " -"daqueles torretas ... atirou Buck. Quase me pegou também. Eu" -" consegui meu filhote ... tirá-lo de lá, que ... não foi fácil, tive que " -"usar uma porta de carro de polícia como um escudo, tive que matar um " -"policial-zumbi primeiro. E então, bem, enquanto eu ainda chorava, Buck " -"voltou. Eu precisei ... . Eu não posso dizer isso. Você sabe." #: lang/json/talk_topic_from_json.py msgid "I'm sorry about Buck. " -msgstr "Sinto muito por Buck. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry about Buck. " -msgstr "Sinto muito por Buck. " +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 "" -" Como eu disse, você quer que eu conte uma história, você tem que " -"desembolsar o uísque. Uma garrafa cheia, lembre-se." #: 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 "" -" Ouço. Eu vou cortar isso. Eu trabalho para você, ok? Eu não estou " -"interessado em me apegar. Você não me pagou para ser seu 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 " "gotta pony up too. We're stuck with each other for a bit." msgstr "" -" Eu não estou procurando por um amigo, mas eu paguei minhas dívidas e ganhei" -" do meu jeito. Você tem que pagar também. Estamos presos um ao outro por um " -"tempo." #: lang/json/talk_topic_from_json.py msgid "" @@ -150390,21 +133033,18 @@ msgid "" "from. If I'm going to let you stand behind me with a loaded gun, you're " "going to toe the line too." msgstr "" -" Não fale para mim. Eu sei de onde todo mundo que trabalha para mim vem. Se " -"eu vou deixar você ficar atrás de mim com uma arma carregada, você está indo" -" para o linha também." #: lang/json/talk_topic_from_json.py msgid "Is this enough whisky for you?" -msgstr "Isso é bastante uísque para você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Fine. Let's talk business, then." -msgstr "Bem. Vamos falar de negócios então." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Fine, have it your way." -msgstr "Tudo bem, faça do seu jeito." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150412,25 +133052,20 @@ msgid "" "like it, I'll take my fee and go back to the center. Ain't hard to find " "contracts." msgstr "" -" Sem dados. Você me pediu para ir junto. Isto é o que você recebe. Se você " -"não gostar, vou pagar minha taxa e voltar para o centro. Não é difícil " -"encontrar contratos." #: lang/json/talk_topic_from_json.py msgid "Fine, then. Let's talk about something else." -msgstr "Tudo bem então. Vamos falar de outra coisa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Have it your way." -msgstr "Faça do seu jeito." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I respect where you're coming from, but no. Not interested. If you don't " "like it, I can find another boss easy enough." msgstr "" -" Eu respeito de onde você vem, mas não. Não interessado. Se você não gosta, " -"eu posso encontrar outro chefe bastante fácil." #: lang/json/talk_topic_from_json.py msgid "" @@ -150438,29 +133073,22 @@ msgid "" "Fine. Bring me a bottle of single malt, we share a drink, I tell you the " "story." msgstr "" -" , você vai continuar me incomodando sobre isso para sempre, " -"aintcha. Bem. Traga-me uma garrafa de malte, compartilhamos uma bebida, eu " -"conto a história." #: lang/json/talk_topic_from_json.py msgid "" "I'll get looking for that. In the meantime there was something else I " "wanted to talk about." msgstr "" -" Vou procurar por isso. Nesse meio tempo, havia outra coisa que eu queria " -"falar." #: lang/json/talk_topic_from_json.py msgid "I'll get back to you on that." -msgstr "Eu vou falar com você sobre isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, okay. I can respect that. How about this: bring me a bottle of " "single malt, we share a drink, I tell you the story." msgstr "" -" Sim, ok. Eu posso respeitar isso. Que tal isso: traga-me uma garrafa de " -"malte, compartilhamos uma bebida, eu conto a história." #: lang/json/talk_topic_from_json.py msgid "" @@ -150470,15 +133098,10 @@ msgid "" "is brewing nice scotch, and we ain't never gettin' peat from Islay ever " "again. Makes me shed a tear just thinking about it." msgstr "" -" Oh, sim, esta é uma boa escolha. Segure-se para mim, vamos tomar uma bebida" -" mais tarde. Agora estamos praticamente nadando em bom uísque, mas algum dia" -" a última garrafa vai ficar bêbada. Vai levar um bom tempo até que qualquer " -"um de nós esteja fazendo um bom scotch, e nunca mais vamos tirar turfa de " -"Islay. Me faz derramar uma lágrima só de pensar nisso." #: lang/json/talk_topic_from_json.py msgid "You owe me a story." -msgstr "Você me deve uma história." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150490,38 +133113,28 @@ msgid "" "by the Free Merchants early on, and then the Old Guard for a bit, but I was " "getting itchy feet when you came by with an offer. Here I am." msgstr "" -" Principalmente eu só queria arrancar um pouco de você. Não há realmente " -"muita história. Eu estava nos fuzileiros navais, anos atrás. Depois disso, o" -" contrato de segurança funcionou. Eu estava fora guardando algum depósito de" -" um armazém quando o apocalipse rolou pela cidade. Eu estava fora da cidade," -" armado, e sei quando não escolher uma briga, então eu não fui morto. Ferida" -" recrutada pelos Mercadores Livres no começo, e depois a Velha Guarda por um" -" tempo, mas eu estava ficando comichão quando você aparecia com uma oferta. " -"Aqui estou." #: lang/json/talk_topic_from_json.py msgid "" "Why was a guy with your skillset guarding a warehouse? Must've been some " "warehouse." msgstr "" -" Por que um cara com sua qualificação protegendo um armazém? Deve ter sido " -"algum armazém." #: lang/json/talk_topic_from_json.py msgid "What was working for the Free Merchants like?" -msgstr "O que estava funcionando para os comerciantes livres como?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What was working for the Old Guard like?" -msgstr "O que estava funcionando para a velha guarda como?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks for that." -msgstr "Obrigado por isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks for that. Let's get going." -msgstr "Obrigado por isso. Vamos indo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150531,11 +133144,6 @@ msgid "" "rent-a-cop to watch it. I had only just started working there when the shit" " hit the fan, and I kinda forgot about that to be honest." msgstr "" -" Hã. Não tinha pensado nisso há séculos, mas agora que você mencionou isso, " -"foi um trabalho estranho. Era apenas um armazém fechado no meio do nada, e " -"eu não era um empreiteiro barato naqueles dias. Poderia ter qualquer " -"policial para assisti-lo. Eu tinha acabado de começar a trabalhar lá quando " -"a merda bateu no ventilador, e eu meio que esqueci disso para ser honesta." #: lang/json/talk_topic_from_json.py msgid "" @@ -150544,19 +133152,12 @@ 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 "" -" Fodendo. Patrulhas de caravanas foram um pouco mais divertidas, por um " -"tempo, mas um cara só pode comer tanto pó de estrada. Guardando aquela pilha" -" de tijolos cheios de maricas tristes que nem sequer podem justificar " -"sobreviver ? Bem, eu não sei. Eles não são ruins, mas eu não" -" estou trabalhando para eles agora." #: lang/json/talk_topic_from_json.py msgid "" "Why was someone with your skillset guarding a warehouse? Must've been some " "warehouse." msgstr "" -" Por que alguém com seu conjunto de habilidades estava guardando um " -"depósito? Deve ter sido algum armazém." #: lang/json/talk_topic_from_json.py msgid "" @@ -150564,10 +133165,6 @@ msgid "" "that I trust, I wouldn't take more of their work. If I had a solid team, " "though, I'd happily work for Uncle Sam again." msgstr "" -" Bom trabalho e algumas coisas divertidas, mas arriscadas. Sem algumas mãos " -"ao meu lado que eu confio, eu não levaria mais do seu trabalho. Se eu " -"tivesse uma equipe sólida, no entanto, eu ficaria feliz em trabalhar para o " -"Tio Sam novamente." #: lang/json/talk_topic_from_json.py msgid "" @@ -150581,27 +133178,16 @@ msgid "" "thing, but from her, it actually had me worried. I packed a bug-out bag " "just in case." msgstr "" -" Antes Eu trabalhei em um laboratório. Não olhe para mim " -"assim, não tinha nada a ver com essas coisas ... Eu estava estudando as " -"interações proteína-proteína no músculo liso em camundongos, usando RMN. " -"Nada, nem mesmo vagamente relacionado a zumbis. Enfim, eu estava na " -"conferência de Biologia Experimental do ano passado em São Francisco, e uma " -"velha amiga minha estava falando sobre uma merda realmente estranha que ela " -"ouviu de sair dos laboratórios do governo. Realmente calar o assunto. " -"Normalmente eu não colocaria muita credibilidade nesse tipo de coisa, mas " -"dela, isso realmente me preocupava. Eu arrumei uma bolsa de bug para o caso." #: lang/json/talk_topic_from_json.py msgid "What came of it?" -msgstr "O que aconteceu com isso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "If I got you the right stuff, do you think you'd be able to like... do " "science to it?" msgstr "" -" Se eu consegui a coisa certa, você acha que seria capaz de gostar ... fazer" -" ciência para isso?" #: lang/json/talk_topic_from_json.py msgid "" @@ -150615,20 +133201,10 @@ msgid "" "so prepared. Like I said, I'm not that kind of scientist, but they didn't " "seem to understand. I... I did my best." msgstr "" -" A ordem de evacuação soou, então eu evacuei, relativamente rápido. Isso me " -"tirou antes da pior parte. Nosso centro de evacuação era inútil ... eu, " -"alguns outros evacuados, algumas latas de comida e alguns cobertores de " -"emergência. Nem perto do suficiente para dar a volta. Os evacuados dividiram" -" o meio em alguns campos, e as lutas internas começaram. Eu corri para a " -"floresta próxima com alguns outros. Nós fugimos, tivemos um pequeno " -"acampamento. Eles tentaram me tornar seu líder, achei que eu soubesse mais " -"sobre as coisas do que eu, porque eu estava tão preparada. Como eu disse, " -"não sou esse tipo de cientista, mas eles não parecem entender. Eu fiz o meu " -"melhor." #: lang/json/talk_topic_from_json.py msgid "What happened with your leadership run?" -msgstr "O que aconteceu com sua liderança?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150640,18 +133216,10 @@ msgid "" "really get past it. We parted ways on good terms not long before I met you." " I just couldn't face the reminder of what had happened." msgstr "" -" Eu pensei que sairmos, deixar os outros terem o centro de evacuação para si" -" mesmos, seria o suficiente, mas não foi. Eles nos rastrearam na noite, " -"alguns dias depois. Eles ... bem ... eu consegui sair junto com um outro " -"sobrevivente. Os atacantes eram como animais. Nós tentamos viajar juntos por" -" um tempo. Eu me culpei pelo que havia acontecido e não pude realmente " -"passar por isso. Nós nos separamos em bons termos não muito antes de te " -"conhecer. Eu simplesmente não conseguia encarar a lembrança do que " -"aconteceu." #: lang/json/talk_topic_from_json.py msgid "I'm sorry to hear that. " -msgstr "Sinto muito por ouvir isso. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150661,11 +133229,6 @@ msgid "" "safe lab of my own, with quite a lot of fancy gear, and a reliable power " "grid. I think that's a long way down the road." msgstr "" -" Quero dizer, se você encontrar algo relacionado a tudo isso que se resume à" -" bioquímica analítica, eu provavelmente poderia ajudá-lo a decifrá-lo e " -"talvez explicá-lo um pouco. Para fazer mais, como analisar amostras e tal, " -"eu precisaria de um laboratório seguro, com bastante equipamento sofisticado" -" e uma rede elétrica confiável. Eu acho que é um longo caminho pela estrada." #: lang/json/talk_topic_from_json.py msgid "" @@ -150677,14 +133240,6 @@ msgid "" " hard hit to the side of my head. I have no idea what happened to me, but " "clearly I had already been on the run for a bit." msgstr "" -" Eu tenho uma memória em branco por cerca de três dias antes e depois " -" na realidade. Eu trabalhei em um laboratório - nada a ver " -"com nada disso; material de física. Eu acho que estava trabalhando lá quando" -" as coisas aconteceram. Minha primeira lembrança clara está correndo pelo " -"mato a alguns quilômetros da cidade. Eu estava enfaixado, eu tinha uma bolsa" -" de mensageiro carregada com equipamento, e eu dei um duro golpe no lado da " -"minha cabeça. Eu não tenho ideia do que aconteceu comigo, mas claramente eu " -"já estava fugindo um pouco." #: lang/json/talk_topic_from_json.py msgid "" @@ -150694,12 +133249,6 @@ msgid "" "I'd need a safe lab of my own, with quite a lot of fancy gear, and a " "reliable power grid. I think that's a long way down the road." msgstr "" -" Quero dizer, se você encontrar algo relacionado a tudo isso que esteja sob " -"a bandeira da física teórica, eu provavelmente poderia ajudá-lo a decifrá- " -"lo e talvez explicá-lo um pouco. Para fazer mais, como construir modelos " -"funcionais e similares, eu precisaria de um laboratório seguro, com bastante" -" equipamento sofisticado e uma rede elétrica confiável. Eu acho que é um " -"longo caminho pela estrada." #: lang/json/talk_topic_from_json.py msgid "" @@ -150711,17 +133260,10 @@ msgid "" "other thing I am that the other grunts ain't: alive. You can figure the " "rest out." msgstr "" -" Ouça, eu não quero entrar muito nisso. Eu estava nas reservas, ok? Eu não " -"assinei para alguma merda de glória sobre como proteger minha nação, eu " -"queria fazer algum exercício, fazer alguns amigos, e fica bem no meu " -"currículo. Eu nunca pensei que seria chamado para o serviço ativo para lutar" -" zumbis. Talvez eu seja um desertor, ou uma galinheira, mas eu posso" -" te dizer uma outra coisa que eu sou que os outros grunhidos não são: vivos." -" Você pode descobrir o resto." #: lang/json/talk_topic_from_json.py msgid "Fair enough, thanks. " -msgstr "Justo, obrigado. " +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150732,16 +133274,10 @@ msgid "" "efforts'. Our orders barely made sense, our officers were as confused as we" " were." msgstr "" -" Eu estava no exército. Apenas um novo recruta. Eu nem tinha feito " -"treinamento básico, eles realmente me ligaram para sair do acampamento para " -"servir uma vez que a merda bateu no ventilador. Eu mal sabia de qual " -"extremidade da arma as balas saíam, e elas me enfiaram em um caminhão e me " -"levaram a Newport para 'ajudar nos esforços de evacuação'. Nossas ordens mal" -" faziam sentido, nossos oficiais estavam tão confusos quanto nós." #: lang/json/talk_topic_from_json.py msgid "What happened in Newport?" -msgstr "O que aconteceu em Newport?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150754,24 +133290,15 @@ msgid "" " getting myself out, the others started getting back up. Long story short, " "I lived, they didn't, and I ran." msgstr "" -" Nós nunca chegamos a Newport. O caminhão foi pisoteado por algo gigantesco." -" Eu nem vi, só vi essa enorme perna espinhosa preta e verde atravessa o " -"teto, através do el-tee. Ouvi os pneus rangendo, senti o caminhão levantar. " -"Nós fomos chutados para fora da perna como merda de cachorro de um tênis. Eu" -" não sei como sobrevivi. A coisa rolou, matou a maioria de nós ali mesmo. Eu" -" devo ter apagado um pouco. Veio para, e enquanto eu estava saindo, os " -"outros começaram a se levantar. Resumindo, eu vivi, eles não, e eu corri." #: lang/json/talk_topic_from_json.py msgid "" "Oh, that's quite the story. happened on my wedding day." msgstr "" -" Oh, essa é toda a história. aconteceu no dia do meu " -"casamento." #: lang/json/talk_topic_from_json.py msgid "Oh, I'm sorry..." -msgstr "Oh, me desculpe..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150780,15 +133307,10 @@ msgid "" " for me I was late to the ceremony... I guess some of the fresher corpses " "in the graveyard had gotten up and started harassing the party." msgstr "" -" Sim, em retrospecto, talvez não tenha sido a melhor escolha de encontros, " -"não é? Eu admito que eu tinha pés frios embora. De qualquer forma, estávamos" -" nos casando na igreja. Sorte minha que eu estava atrasado para a cerimônia " -"... Eu acho que alguns dos cadáveres mais frescos do cemitério se levantaram" -" e começaram a assediar a festa." #: lang/json/talk_topic_from_json.py msgid "You seem surprisingly calm about all this." -msgstr "Você parece surpreendentemente calmo com tudo isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150798,11 +133320,6 @@ msgid "" "At the time I thought I was being a coward, but now I know if I'd stayed to " "help, I'd just be another dripping corpse." msgstr "" -" Depois que vi o que estava acontecendo, me virei e saí na direção oposta. " -"Eu já vi filmes de zumbis antes. Eu peguei algumas coisas de casa e consegui" -" sair da cidade antes que as coisas fossem muito ruins. Na época, achei que " -"estava sendo covarde, mas agora sei que se tivesse ficado para ajudar, seria" -" apenas mais um cadáver gotejante." #: lang/json/talk_topic_from_json.py msgid "" @@ -150812,11 +133329,6 @@ msgid "" " just gonna keep on believing they're out there, doing well. That's more " "than most of us have." msgstr "" -" Bem, eu tenho essa estranha esperança. É provavelmente estúpido, mas eu vi " -"meu noivo sair de lá com sua irmã - minha dama de honra - em sua caminhonete" -" quando as coisas correram mal. Então, até eu deparar com eles de um jeito " -"ou de outro, vou continuar acreditando que eles estão indo bem. Isso é mais " -"do que a maioria de nós tem." #: lang/json/talk_topic_from_json.py msgid "" @@ -150826,59 +133338,50 @@ msgid "" "just gonna keep on believing they're out there, doing well. That's more " "than most of us have." msgstr "" -" Bem, eu tenho essa estranha esperança. É provavelmente estúpido, mas eu vi " -"minha noiva sair de lá com seu irmão - meu padrinho - em sua caminhonete " -"enquanto as coisas correram mal. Então, até eu deparar com eles de um jeito " -"ou de outro, vou continuar acreditando que eles estão indo bem. Isso é mais " -"do que a maioria de nós tem." #: lang/json/talk_topic_from_json.py msgid "What were you saying before that?" -msgstr "O que você estava dizendo antes disso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Marshal, I hope you're here to assist us." -msgstr "Marechal, espero que esteja aqui para nos ajudar." +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 " "you'll get out while you can." msgstr "" -" Senhor, eu não sei como diabos você chegou aqui, mas se você tem algum " -"senso, você sairá enquanto puder." #: 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 "" -" Senhora, eu não sei como diabos você chegou até aqui, mas se você tem algum" -" senso, você sairá enquanto puder." #: lang/json/talk_topic_from_json.py msgid "What are you doing down here?" -msgstr "o quê você está fazendo aqui em baixo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can you tell me about this facility?" -msgstr "Você pode me falar sobre essa facilidade?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What do you need done?" -msgstr "O que você precisa fazer?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "About the mission..." -msgstr "Sobre a missão ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "About one of those missions..." -msgstr "Sobre uma dessas missões ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I've got to go..." -msgstr "Eu tenho que ir..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150891,19 +133394,10 @@ msgid "" "refugee traffic away from overcrowded outposts and free up more of our " "forces to conduct recovery operations." msgstr "" -" Estou liderando o que resta da minha empresa em uma missão para recuperar " -"essa facilidade. Nós entramos no complexo com duas dúzias de homens e " -"imediatamente cuidamos dessa sala de controle. Daqui despachei meus homens " -"para assegurar sistemas vitais localizados neste andar e nos andares abaixo " -"deste. Se formos bem sucedidos, esta instalação pode ser desminada e usada " -"como uma base permanente de operações na região. O mais importante é que nos" -" permitirá redirecionar o tráfego de refugiados para fora de postos " -"avançados superlotados e liberar mais de nossas forças para realizar " -"operações de recuperação." #: lang/json/talk_topic_from_json.py msgid "Seems like a decent plan..." -msgstr "Parece um plano decente ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150918,49 +133412,34 @@ msgid "" "sickness. The only other thing the logs tell us is that all water pressure " "was diverted to the lower levels." msgstr "" -" Esta instalação foi construída para fornecer um refúgio seguro no caso de " -"um conflito global. O cofre pode suportar milhares de pessoas por alguns " -"anos se todos os sistemas estiverem operacionais e se houver notificação " -"suficiente. Infelizmente, o sistema de energia foi danificado ou sabotado em" -" algum momento e liberou uma única explosão extremamente letal de radiação. " -"O evento catastrófico durou vários minutos e resultou na morte da maioria " -"das pessoas localizadas no 2º e no andar inferior. Os que trabalhavam nesse " -"andar conseguiram selar as vias de acesso aos andares inferiores antes de " -"sucumbirem à doença da radiação. A única outra coisa que os troncos nos " -"dizem é que toda a pressão da água foi desviada para os níveis mais baixos." #: lang/json/talk_topic_from_json.py msgid "Whatever they did it must have worked since we are still alive..." msgstr "" -" O que quer que tenham feito, deve ter funcionado desde que ainda estamos " -"vivos ..." #: lang/json/talk_topic_from_json.py msgid "Marshal, I'm rather surprised to see you here." -msgstr "Marechal, estou muito surpreso em ver você aqui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sir you are not authorized to be here... you should leave." msgstr "" -" Senhor, você não está autorizado a estar aqui ... você deveria ir embora." #: lang/json/talk_topic_from_json.py msgid "Ma'am you are not authorized to be here... you should leave." msgstr "" -" Senhora, você não está autorizado a estar aqui ... você deveria ir embora." #: lang/json/talk_topic_from_json.py msgid "[MISSION] The captain sent me to get a frequency list from you." msgstr "" -" [MISSÃO] O capitão me enviou para obter uma lista de frequências de você." #: lang/json/talk_topic_from_json.py msgid "Do you need any help?" -msgstr "Você precisa de alguma ajuda?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I should be going" -msgstr "eu deveria estar indo" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150968,13 +133447,10 @@ msgid "" "rather restricted in what I can release... go find my commander if you have " "any questions." msgstr "" -" Estamos protegendo o array de comunicações externas para esse recurso. " -"Estou bastante restrito no que posso liberar ... vá procurar meu comandante " -"se tiver alguma dúvida." #: lang/json/talk_topic_from_json.py msgid "I'll try and find your commander then..." -msgstr "Vou tentar encontrar o seu comandante então ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -150986,65 +133462,54 @@ msgid "" "federal secrets and maintain the integrity of the comms network. We are " "hoping a few plain text messages can get picked up though." msgstr "" -" Eu estava esperando o capitão para enviar um corredor. Aqui está a lista " -"que você está procurando. O que podemos identificar aqui são simplesmente as" -" freqüências que têm tráfego nelas. Muitas das transmissões são " -"indecifráveis sem reparar ou substituir o equipamento aqui. Quando a " -"instalação estava sendo invadida, o procedimento padrão era destruir o " -"hardware de criptografia para proteger os segredos federais e manter a " -"integridade da rede de comunicações. Esperamos que algumas mensagens de " -"texto simples possam ser captadas." #: lang/json/talk_topic_from_json.py msgid "Hello, marshal." -msgstr "Olá, marechal." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Marshal, I'm afraid I can't talk now." -msgstr "Marechal, tenho medo de não poder falar agora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm not in charge here, marshal." -msgstr "Eu não estou no comando aqui, marechal." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm supposed to direct all questions to my leadership, marshal." msgstr "" -" Eu deveria direcionar todas as perguntas para a minha liderança, marechal." #: lang/json/talk_topic_from_json.py msgid "Hey, citizen... I'm not sure you belong here." -msgstr "Ei, cidadão ... não tenho certeza se você pertence aqui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You should mind your own business, nothing to see here." -msgstr "Você deve cuidar do seu próprio negócio, nada para ver aqui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "If you need something you'll need to talk to someone else." -msgstr "Se você precisar de algo, precisará conversar com outra pessoa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sir." -msgstr "Senhor." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Dude, if you can hold your own you should look into enlisting." msgstr "" -" Cara, se você pode manter o seu próprio você deve olhar para se alistar." #: lang/json/talk_topic_from_json.py msgid "Ma'am" -msgstr "madame" +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 "" -" Ei, senhorita, você não acha que seria mais seguro se você ficasse comigo?" #: lang/json/talk_topic_from_json.py msgid "Don't mind me..." -msgstr "Não se importe comigo ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151066,12 +133531,10 @@ msgid "" "Please, help me. I need food. Aren't you their sheriff? Can't you help " "me?" msgstr "" -" Por favor me ajude. Eu preciso de comida. Você não é seu xerife? Você não " -"pode me ajudar?" #: lang/json/talk_topic_from_json.py msgid "Please, help me. I need food." -msgstr "Por favor me ajude. Eu preciso de comida." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151085,7 +133548,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Get away from me." -msgstr "Saia de perto de mim." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151099,13 +133562,10 @@ 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 "" -" Eles não me deixam entrar. Dizem que estão muito cheios. Tenho permissão " -"para acampar aqui enquanto eu mantiver limpo e não fazer barulho, mas estou " -"com tanta fome." #: lang/json/talk_topic_from_json.py msgid "Why don't you scavenge your own food?" -msgstr "Por que você não limpa sua própria comida?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What did you do before ?" @@ -151121,11 +133581,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'd better get going." -msgstr "É melhor eu ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I can't help you." -msgstr "Me desculpe, eu não posso te ajudar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thank you so much." @@ -151153,9 +133613,6 @@ msgid "" " condition, don't have any useful skills, and I'm terrified of and" " violence. How am I supposed to find a safe place?" msgstr "" -" Onde mais? Eu não posso lutar contra essas coisas lá fora. Estou em " -"condições físicas terríveis, não tenho nenhuma habilidade útil e tenho pavor" -" e violência. Como vou encontrar um lugar seguro?" #: lang/json/talk_topic_from_json.py msgid "" @@ -151176,10 +133633,6 @@ msgid "" "begging for scraps and waiting for someone in the center to die and make " "room for me, thanks." msgstr "" -" Lá fora? Isso é suicídio! As pessoas que saem de lá não voltam, pessoas que" -" podem se manter ... diferentemente de mim. Eu prefiro me arriscar " -"implorando por restos e esperando alguém no centro morrer e abrir espaço " -"para mim, obrigado." #: lang/json/talk_topic_from_json.py msgid "" @@ -151195,10 +133648,6 @@ msgid "" "some point people are going to need a teacher again, but right now they just" " want food, shelter, and clothing." msgstr "" -" Eu era um professor de matemática do ensino médio. Foi um bom trabalho, " -"adorei. Engraçado, não é super aplicável depois do fim do mundo. Quero " -"dizer, em algum momento as pessoas vão precisar de um professor de novo, mas" -" agora só querem comida, abrigo e roupas." #: lang/json/talk_topic_from_json.py msgid "" @@ -151265,7 +133714,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" -msgstr "Já te falei de papelão, amigo? Voc ~ e tem algum?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151290,15 +133739,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Cardboard?" -msgstr "Cartão?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why are you sitting out here?" -msgstr "Por que você está sentado aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Are you seriously wearing a dinosaur costume?" -msgstr "Você está seriamente vestindo uma fantasia de dinossauro?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Do you need something to eat?" @@ -151329,12 +133778,10 @@ msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " "I told him to go fuck himself." msgstr "" -" Estou construindo uma casa de papelão. O sandman não me quer, mas eu disse " -"a ele para ir se foder." #: lang/json/talk_topic_from_json.py msgid "Why cardboard?" -msgstr "Porquê papelão?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "The sandman?" @@ -151346,7 +133793,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." -msgstr "Eu acho que tenho que ir ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151355,9 +133802,6 @@ msgid "" "hits the cardboard and can't penetrate. The reflection can stop any further" " damage." msgstr "" -" Há muito disso agora, e os zumbis têm medo disso. Isso me manteve seguro " -"até agora. Os raios beta vêm do ponto central do zumbi, então ele atinge o " -"papelão e não pode penetrar. A reflexão pode parar qualquer dano adicional." #: lang/json/talk_topic_from_json.py msgid "" @@ -151385,8 +133829,6 @@ msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " "going to build my new house and I won't let them in." msgstr "" -" Esses covardes estão com medo de mim. Eles não me deixam entrar na base " -"deles. Eu vou construir minha nova casa e não vou deixá-los entrar." #: lang/json/talk_topic_from_json.py msgid "You said you were building a house?" @@ -151394,7 +133836,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." -msgstr "Não." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I... I can see you wearing it. Why are you wearing that?" @@ -151402,7 +133844,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" -msgstr "O que foi aquilo de papelão?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151470,11 +133912,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Don't bother with these assholes." -msgstr "Não se incomode com esses idiotas." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's up?" -msgstr "Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I might have some food for you. Are you hungry?" @@ -151490,7 +133932,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Ok... see ya." -msgstr "Ok te vejo por ai." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151504,11 +133946,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "They're 'too full'. Won't share fuck-all." -msgstr "Eles estão 'muito cheios'. Não vai compartilhar foda-tudo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why are you living here then?" -msgstr "Por que você está morando aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, they might not share, but I can. Are you hungry?" @@ -151521,10 +133963,6 @@ msgid "" "us sitting around the entryway. So kind and generous of them, to let us sit" " here and slowly starve." msgstr "" -" Mesmo sem eles ajudando, é o lugar mais seguro para agachar. Contanto que " -"mantenhamos tudo limpo aqui e não causemos problemas de saneamento, eles não" -" se importam em ficar sentados na entrada. Tão gentil e generoso deles, " -"deixar-nos sentar aqui e lentamente morrer de fome." #: lang/json/talk_topic_from_json.py msgid "" @@ -151823,15 +134261,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey, are you a big fan of survival of the fittest?" -msgstr "Ei, você é um grande fã da sobrevivência do mais apto?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why do you ask?" -msgstr "Por que você pergunta?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry, not interested." -msgstr "Desculpe, não estou interessado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nice to see you too, what's up?" @@ -151852,8 +134290,6 @@ 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 "" -" Porque eu com certeza não me encaixo, então estou sentada aqui até morrer " -"de fome. Ajudar uma pobre alma doentia?" #: lang/json/talk_topic_from_json.py msgid "I could maybe help you out... want something to eat?" @@ -151861,19 +134297,19 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" -msgstr "O que você tem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "They won't let you in because you're sick?" -msgstr "Eles não vão deixar você entrar porque você está doente?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "How did you even get here if you're so sick?" -msgstr "Como você chegou aqui se está tão doente?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why are you camped out here if they won't let you in?" -msgstr "Por que você está acampado aqui se eles não o deixarem entrar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That's awful kind of you, you really are a wonderful person." @@ -151901,10 +134337,6 @@ msgid "" "like I can check that ol' whatchamacallit, the blood test the docs used to " "bug me about every couple months." msgstr "" -" Você nome dele! Asma, diabetes, artrite. Diabetes não tem sido tão ruim " -"desde que eu parei, sabe, comendo regularmente. Bem, eu suponho que não " -"tenha. Não é como se eu pudesse verificar o que é o whatchamacallit, o exame" -" de sangue que os médicos usaram para me irritar a cada dois meses." #: lang/json/talk_topic_from_json.py msgid "You seem awfully happy considering the situation." @@ -151915,8 +134347,6 @@ msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " "of weight and I'm too weak to pull it, so I'm out here." msgstr "" -" Eles têm bocas suficientes para alimentar que podem puxar seu próprio peso." -" Eu tenho muito peso e sou fraco demais para puxar, então estou aqui fora." #: lang/json/talk_topic_from_json.py msgid "" @@ -151924,9 +134354,6 @@ msgid "" "they got in. They were some of the last ones to get in actually. I didn't " "make the cutoff." msgstr "" -" Veio com um pequeno grupo há um tempo atrás. Os outros eram jovens e em " -"forma, eles entraram. Eles foram alguns dos últimos a entrar na verdade. Eu " -"não fiz o corte." #: lang/json/talk_topic_from_json.py msgid "" @@ -151935,11 +134362,6 @@ msgid "" "have none of this and still have to look for food... in other words, I'd be " "dead as a doornail. Or I guess undead." msgstr "" -" Isso é uma misericórdia. Eu tenho abrigo, luz e calor, e esses guardas nos " -"ajudarão se algum zumbi aparecer. Não é tão ruim. Se eu estivesse sozinha " -"não teria nada disso e ainda teria que procurar comida ... em outras " -"palavras, estaria morta como um rabo de andorinha. Ou eu acho que mortos- " -"vivos." #: lang/json/talk_topic_from_json.py msgid "" @@ -152032,15 +134454,15 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." -msgstr "Ei, amigo." +msgstr "" #: lang/json/talk_topic_from_json.py src/player.cpp msgid "What are you doing out here?" -msgstr "O que você está fazendo aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I couldn't help but notice, you're covered in fur." -msgstr "Eu não pude deixar de notar, você está coberto de pele." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Would you like something to eat?" @@ -152051,16 +134473,14 @@ msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " "to kill on sight." msgstr "" -" Eu moro aqui. Muito mutante para se juntar ao cool kids club, mas não " -"mutante o suficiente para matar à vista." #: lang/json/talk_topic_from_json.py msgid "Why live out here?" -msgstr "Por que morar aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You seem like you can hold your own. Why not travel with me?" -msgstr "Você parece que pode se manter. Por que não viajar comigo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -152079,9 +134499,6 @@ msgid "" "little while after the cataclysm. No idea what caused it. I can't blame " "them for hating it, I hate it." msgstr "" -" Gross, não é? Parece pêlos. Eu comecei a crescer em todos os lugares um " -"pouco depois do cataclismo. Não faço ideia do que causou isso. Eu não posso " -"culpá-los por odiarem isso, eu odeio isso." #: lang/json/talk_topic_from_json.py msgid "" @@ -152152,10 +134569,6 @@ msgid "" "for this little gaggle of squatters. As long as I'm the only one providing " "for them, I don't think I can leave." msgstr "" -" Bem, agora, é uma oferta muito gentil, e eu aprecio você olhando além dos " -"pêlos pubianos de corpo inteiro. Desculpe, porém. Eu me sinto meio " -"responsável por esse pequeno bando de invasores. Contanto que eu seja o " -"único a fornecer para eles, não acho que posso sair." #: lang/json/talk_topic_from_json.py msgid "" @@ -152184,11 +134597,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey there." -msgstr "Olá." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Oh, hey, it's you again." -msgstr "Oh, ei, é você de novo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You're back, and still alive! Whoa." @@ -152196,23 +134609,23 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Aw hey, look who's back." -msgstr "Ah, olhe quem está de volta." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Oh, uh... hi. You look new. I'm Aleesha." -msgstr "Oh, uh ... oi. Você parece novo. Eu sou Aleesha." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, kid. What's up?" -msgstr "Prazer em conhecê-lo, garoto. Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi, Aleesha. What's up?" -msgstr "Olá Aleesha Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Aleesha, nice to meet you. I gotta go though." -msgstr "Oi Aleesha, prazer em conhecê-lo. Eu tenho que ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Aleesha. I can't stay to talk." @@ -152220,23 +134633,23 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm sixteen." -msgstr "Eu não sou criança, ok? Eu tenho dezesseis anos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fifteen." -msgstr "Eu não sou criança, ok? Eu tenho quinze." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm not a kid, okay? I'm fourteen." -msgstr "Eu não sou criança, ok? Eu tenho quatorze." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. What's up?" -msgstr "Desculpe, eu não quis dizer nada com isso. Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean anything by it. I'll be on my way." -msgstr "Desculpe, eu não quis dizer nada com isso. Estarei à caminho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -152246,11 +134659,6 @@ msgid "" "I've read all the books, and there's zombies outside so we're stuck in here." " We can hear them at night." msgstr "" -" Estamos apenas esperando por aqui, como um bando de idiotas. Estamos " -"supostamente esperando para descer ao abrigo, mas já faz mais de um mês. Eu " -"não acho que isso está acontecendo. Eu não sei o que estamos fazendo aqui. " -"Eu li todos os livros e há zumbis do lado de fora, então estamos presos " -"aqui. Nós podemos ouvi-los durante a noite." #: lang/json/talk_topic_from_json.py msgid "" @@ -152259,11 +134667,6 @@ msgid "" "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 "" -" Eu não sei o que está acontecendo. Não tenho certeza do que estamos fazendo" -" aqui. Eles dizem que devemos esperar até que possamos ser transferidos para" -" o abrigo no andar de baixo, mas estamos aqui há dias e não há nenhuma " -"palavra sobre quanto tempo ficaremos esperando. É tudo tão estúpido e " -"ninguém pode me dizer nada." #: lang/json/talk_topic_from_json.py msgid "" @@ -152420,19 +134823,19 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, well. I'm glad you are back." -msgstr "Bem bem. Estou feliz que você esteja de volta." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello again, my friend." -msgstr "Olá de novo, meu amigo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "It is good to see you again." -msgstr "É bom ver você novamente." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Ah, another new face. Hello. I am Boris." -msgstr "Ah, outro novo rosto. Olá. Eu sou o Boris." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nice to meet you, Boris." @@ -152440,11 +134843,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi, Boris. What's up?" -msgstr "Oi Boris Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Boris, nice to meet you. I gotta go though." -msgstr "Oi Boris, prazer em conhecê-lo. Eu tenho que ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Boris. I can't stay to talk." @@ -152452,7 +134855,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "It is nice to meet you too. To what do I owe the pleasure?" -msgstr "É um prazer te conhecer também. A que devo o prazer?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -152462,7 +134865,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I just wanted to say hi. I'll be on my way." -msgstr "Eu só queria dizer oi. Estarei à caminho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -152549,35 +134952,35 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello, nice to see you again." -msgstr "Olá, prazer em vê-lo novamente." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "It's good to see you're still around." -msgstr "É bom ver que você ainda está por perto." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi there. I'm Dana, nice to see a new face." -msgstr "Olá. Eu sou Dana, bom ver um novo rosto." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Dana, hey? Nice to meet you." -msgstr "Dana, ei? Prazer em conhecê-lo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi, Dana. What's up?" -msgstr "Oi Dana Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Dana, nice to meet you. I gotta go though." -msgstr "Oi Dana, prazer em conhecê-lo. Eu tenho que ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Dana, nice to see you too. I gotta go though." -msgstr "Oi Dana, prazer em ver você também. Eu tenho que ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "We don't get many new faces around here. How can I help you?" -msgstr "Nós não temos muitas caras novas por aqui. Como posso ajudá-lo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'd better get going. Bye, Dana." @@ -153154,7 +135557,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello again." -msgstr "Olá de novo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Good to see you're still around." @@ -153304,7 +135707,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi." -msgstr "Oi." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey again." @@ -153344,7 +135747,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "." -msgstr "." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153364,28 +135767,28 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nice to see you again." -msgstr "É bom ver você de novo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Hi there. Haven't see you around here before. I'm Jenny, Jenny Forcette." -msgstr "Olá. Não te vejo por aqui antes. Eu sou Jenny, Jenny Forcette." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nice meeting you. What are you doing on that computer?" -msgstr "Muito prazer em conhece-lo. O que você está fazendo nesse computador?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi, Jenny. What are you up to these days?" -msgstr "Oi Jenny O que voce tem feito ultimamente?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Nice meeting you. I'd best get going, though." -msgstr "Muito prazer em conhece-lo. É melhor eu ir embora, no entanto." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry Jenny, I can't stay to chat." -msgstr "Desculpe Jenny, não posso ficar para conversar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153393,17 +135796,14 @@ msgid "" "I used to be an engineer, though... I'm trying to think of some kind of " "project to get my mind off all this." msgstr "" -" Apenas arrumando ao redor. Eu ainda estou um pouco chocada demais para " -"fazer muito. Eu costumava ser engenheiro, no entanto ... Estou tentando " -"pensar em algum tipo de projeto para me livrar de tudo isso." #: lang/json/talk_topic_from_json.py msgid "What's it like living here?" -msgstr "Como é viver aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Good luck with that. I'd better get going." -msgstr "Boa sorte com isso. É melhor eu ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153413,16 +135813,10 @@ msgid "" "night we can hear the outside, and we all just lie there awake, " "thinking the same things but too scared to talk about it." msgstr "" -" Morando aqui? Sim, acho que moro aqui agora. É estranho. Estamos lotados " -"neste pequeno espaço, eu não conheço essas pessoas, mas estamos " -"compartilhando banheiros e todos nós passamos pelo mesmo material. Não é " -"ótimo. À noite podemos ouvir o do lado de fora, e todos nós apenas" -" ficamos acordados, pensando as mesmas coisas, mas com muito medo de falar " -"sobre isso." #: lang/json/talk_topic_from_json.py msgid "Can you tell me anything about the other refugees here?" -msgstr "Você pode me dizer alguma coisa sobre os outros refugiados aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153438,7 +135832,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What was that you said about living here?" -msgstr "O que você disse sobre morar aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153446,13 +135840,10 @@ msgid "" "rifle bullets. I'm kinda working on a design that would use them to protect" " the base. Got a long way to go, though." msgstr "" -" Eu recentemente entrei em posse deste molde para fazer balas de rifle de ar" -" de alto calibre. Eu estou meio que trabalhando em um design que os usaria " -"para proteger a base. Ainda tem um longo caminho a percorrer." #: lang/json/talk_topic_from_json.py msgid "What are you planning?" -msgstr "O que você está planejando?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153463,12 +135854,6 @@ msgid "" " though, I have a bunch of features I want. Ask me again in a couple weeks " "and I'll give you some more info." msgstr "" -" Bem, essas coisas são um calibre padrão .30. Eles devem ser compatíveis com" -" qualquer cano de rifle semelhante. Seria muito fácil reutilizar algumas " -"partes do rifle em grandes armas aéreas que poderíamos usar sem depender da " -"pólvora, e sem tanto barulho. Eu ainda estou desenhando um design real, " -"porém, eu tenho um monte de recursos que eu quero. Pergunte-me novamente em " -"algumas semanas e eu lhe darei mais algumas informações." #: lang/json/talk_topic_from_json.py msgid "" @@ -153480,18 +135865,10 @@ msgid "" " to be enough food to go around. I'm really hoping I can lose myself in " "this project. Still haven't had a good night's sleep since ." msgstr "" -" Já faz mais de um mês, então acho que estou começando a me acostumar com " -"isso. As coisas foram muito difíceis depois que Sean morreu, mas não foi " -"nossa primeira grande perda e não será a última, eu acho. Eu fiz alguns " -"amigos e, de uma maneira estranha, somos todos como família. Nós estávamos " -"todos esperando que eles pudessem nos deixar lá embaixo mais cedo do que " -"isso. Nós nunca temos certeza se vai haver comida suficiente para dar a " -"volta. Eu realmente espero poder me perder neste projeto. Ainda não tive uma" -" boa noite de sono desde ." #: lang/json/talk_topic_from_json.py msgid "What was it you said you were planning?" -msgstr "O que você disse que estava planejando?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153500,18 +135877,14 @@ msgid "" "power pneumatic rifle turrets around the center. It's a lot easier than " "trying to make gunpowder!" msgstr "" -" Cerca de um mês atrás, recebi um molde para fazer balas de rifle de ar de " -"alto calibre. Eu projetei algumas torres que usariam um sistema de ar " -"central para alimentar torres de fuzil pneumático ao redor do centro. É " -"muito mais fácil do que tentar fazer pólvora!" #: lang/json/talk_topic_from_json.py msgid "Tell me more about those turrets." -msgstr "Me conte mais sobre essas torres." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sounds interesting, talk to you later." -msgstr "Parece interessante, falo com você depois." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153526,21 +135899,10 @@ msgid "" " are tons of advantages. Only trouble is, I can't convince the Free " "Merchants to give me the parts I need." msgstr "" -" Eles são bem grandes. Isso não é algo que você carrega com você. Eles " -"disparam balas de calibre 30 usando ar comprimido que faríamos no porão e " -"depois canalizam tanques de armazenamento individuais para as armas, o que " -"seria bom para algumas centenas de tiros cada. O design deve ser capaz de " -"auto ou semi-auto-fogo, em um intervalo que é bastante comparável a uma arma" -" baseada em pólvora. Ele tira algumas das partes mais limitadas das armas de" -" longo alcance: nenhuma pólvora, nenhum invólucro de latão, apenas nos leva " -"a derreter no meu molde. Não é silencioso, mas não é tão alto quanto uma " -"arma química. Existem toneladas de vantagens. O único problema é que não " -"consigo convencer os Mercadores Livres a me dar as peças de que preciso." #: lang/json/talk_topic_from_json.py msgid "Is there some way I can help you get the stuff you need?" msgstr "" -" Existe alguma maneira eu posso ajudá-lo a obter as coisas que você precisa?" #: lang/json/talk_topic_from_json.py msgid "" @@ -153551,11 +135913,6 @@ msgid "" "We know we've got it pretty good... we're safe, we're alive. It's just, " "like, what kind of life are we even living?" msgstr "" -" Isso é bom e ruim. Estamos todos muito cansados de ficar confinados aqui " -"por meses, sem saber se haverá comida para comer ou não. Está começando a " -"parecer que eles nunca vão nos deixar ir para o porão seguro, e nenhum de " -"nós dormiu bem desde que fomos trazidos. Sabemos que temos muito bem ... " -"estamos a salvo, estamos vivos. É como que tipo de vida estamos vivendo?" #: lang/json/talk_topic_from_json.py msgid "" @@ -153564,10 +135921,6 @@ msgid "" " didn't choose to be with each other. I don't know how long we can stay " "like this before somebody snaps." msgstr "" -" Está ficando ruim. Ficamos presos aqui por meses, nada mudando, nada " -"melhorando. Não podemos sair, não temos o suficiente para comer e não " -"escolhemos estar um com o outro. Eu não sei quanto tempo podemos ficar assim" -" antes que alguém se agarre." #: lang/json/talk_topic_from_json.py msgid "" @@ -153580,14 +135933,6 @@ msgid "" "leadership decisions, as if they made those kind of calls. What did you " "want to know?" msgstr "" -" Para melhor ou pior, somos uma comunidade agora. Fátima e eu trabalhamos " -"juntos um pouco, e eu considero Dana, Draco e Aleesha como meus amigos, e é " -"claro que também conheci o marido de Dana, Pedro. Os Borichenkos são sua " -"própria marca doce de bagunça, como todos nós. Os Singhs têm um ao outro e " -"se mantêm principalmente para si mesmos. Vanessa e eu não vemos olho no " -"olho, mas ainda estou feliz por ela estar aqui. Uyen e Rhyzaea estão sempre " -"discutindo sobre decisões de liderança, como se eles fizessem esse tipo de " -"ligação. O que você queria saber?" #: lang/json/talk_topic_from_json.py msgid "" @@ -153597,39 +135942,34 @@ msgid "" "Singhs, Vanessa, Uyen, or Rhyzaea quite as well, but we've talked enough. " "What did you want to know?" msgstr "" -" Bem, tem um monte de gente. Estamos começando a formar um pouco de " -"comunidade. Fatima e eu trabalhamos juntos um pouco, e eu tenho saído muito " -"com Dana, Draco e Aleesha. Eu não conheço muito bem o bando de Borichenko, " -"os Singhs, Vanessa, Uyen ou Rhyzaea, mas já falamos o suficiente. O que você" -" queria saber?" #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Free Merchants?" -msgstr "Você pode me falar sobre os comerciantes livres?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can you tell me about Fatima?" -msgstr "Você pode me falar sobre Fátima?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What has made you friends with Dana, Draco, and Aleesha?" -msgstr "O que fez você amigo de Dana, Draco e Aleesha?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Borichenkos?" -msgstr "Você pode me falar sobre os Borichenkos?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the Singhs?" -msgstr "Você pode me falar sobre os Singhs?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can you tell me about the others?" -msgstr "Você pode me falar sobre os outros?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What was it you said earlier?" -msgstr "O que você disse antes?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -153651,10 +135991,6 @@ msgid "" " like it is. She and I have been doing some odd jobs around the upstairs " "here, fixing up old machinery and things." msgstr "" -" Fatima é um doce, mas ela é uma idiota total. Eu sei, eu sei, é para trás " -"para o engenheiro chamar o mecânico pesado de um nerd, mas ei. Eu chamo como" -" é. Ela e eu temos feito alguns trabalhos estranhos ao redor do andar de " -"cima, consertando máquinas e coisas antigas." #: lang/json/talk_topic_from_json.py msgid "" @@ -153681,12 +136017,6 @@ msgid "" "they were standoffish before. They probably do the most to pull their " "weight around here whenever there's work to be done." msgstr "" -" Eu não conheci Boris, Garry e Stan tão bem pelo primeiro tempo. Eles meio " -"que se mantinham para eles mesmos. Boris e Garry tinham acabado de perder o " -"filho, você sabe. É muita sorte que Stan esteja com eles, ele é o irmão mais" -" novo de Boris. Juntos, eles são um time muito bom. Eu me sinto mal por " -"pensar que eles eram reservados antes. Eles provavelmente fazem o máximo " -"para puxar seu peso por aqui sempre que há trabalho a ser feito." #: lang/json/talk_topic_from_json.py msgid "" @@ -153695,11 +136025,6 @@ msgid "" " 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 "" -" Boris e Garry são casados, eu acho. Eles se mantêm parados, parecem um " -"pouco reservados se você me perguntar. Stan é irmão de Boris, eu acho, mas " -"não tenho muita certeza. Ele parece bom o suficiente, mas ele é um homem de " -"poucas palavras. Eu não consigo dar uma boa conta neles. Eu aprendi a não " -"forçar muito embora." #: lang/json/talk_topic_from_json.py msgid "" @@ -153709,11 +136034,6 @@ msgid "" "stick really close together. I think... I think they also just don't really" " like any of us." msgstr "" -" Os Singhs são realmente tímidos e eu acho que eles se sentem muito mal em " -"passar por isso juntos. Eles são a única família completa que eu já vi desde" -" . Isso tem que parecer muito estranho, e eu acho que isso os" -" fez ficar muito juntos. Eu acho que ... eu acho que eles também não gostam " -"de nenhum de nós." #: lang/json/talk_topic_from_json.py msgid "" @@ -153722,10 +136042,6 @@ msgid "" "Punjabi. They always seem nice, and they do their share, they just don't " "have any social connection." msgstr "" -" Eu realmente não consigo dar conta deles. Eles nunca falam com ninguém fora" -" de seu pequeno grupo familiar, eles apenas sentam em seu próprio lugar e " -"falam Punjabi. Eles sempre parecem bons, e eles fazem a sua parte, eles " -"simplesmente não têm nenhuma conexão social." #: lang/json/talk_topic_from_json.py msgid "" @@ -153738,15 +136054,6 @@ msgid "" "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 "" -" Vanessa ... Eu estou fazendo o meu melhor, eu realmente estou, mas nós " -"simplesmente não nos damos bem. Um dia desses, um de nós provavelmente vai " -"engolir o outro com um ferro de engomar, e agradeço que passe mais tempo em " -"torno dos ferros de engomar. Uyen e Rhyzaea são pessoas excelentes, e eu " -"realmente gosto deles, mas não suporto essa merda política que eles estão " -"fazendo. Alonso é apenas um ... ele ... não há palavras educadas para o que " -"ele é. Muitos dos outros estão bem com isso, e tudo bem, claro, eu acho. " -"John é um estereótipo ambulante, mas é um grande companheiro de poker. Eu " -"admito que eu gosto dele." #: lang/json/talk_topic_from_json.py msgid "" @@ -153759,14 +136066,6 @@ msgid "" "is a walking stereotype, I imagine there must be more depth to him, but I " "haven't seen it yet." msgstr "" -" Vanessa ... bem, ela é legal, eu acho. Eu tenho que dizer, ela meio que me " -"deixa louca, mas nós estamos nisso juntos, então eu tento não ser muito " -"dura. Uyen e Rhyzaea parecem querer fazer o show aqui, mas eu tento ficar " -"fora dessas políticas e me concentrar apenas em construir coisas. Eu não " -"vejo muito bem vindo disso. Alonso está bem, ele está claramente interessado" -" em mim e também em todas as outras mulheres solteiras aqui. Não é minha " -"coisa, em um grupo tão pequeno. John é um estereótipo ambulante, imagino que" -" deve haver mais profundidade para ele, mas ainda não o vi." #: lang/json/talk_topic_from_json.py msgid "Howdy, pardner." @@ -153948,23 +136247,23 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi there. I'm Pablo, nice to see a new face." -msgstr "Olá. Eu sou Pablo, bom ver um novo rosto." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Pablo, hey? Nice to meet you." -msgstr "Pablo, ei? Prazer em conhecê-lo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi, Pablo. What's up?" -msgstr "Oi Pablo Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Pablo, nice to meet you. I gotta go though." -msgstr "Oi Pablo, prazer em conhecê-lo. Eu tenho que ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Pablo, nice to see you too. I gotta go though." -msgstr "Oi Pablo, bom te ver também. Eu tenho que ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -154184,7 +136483,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello." -msgstr "Olá." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hm? Oh, hi." @@ -154206,11 +136505,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi, Stan. What's up?" -msgstr "Olá Stan. Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Stan, nice to meet you. I gotta go though." -msgstr "Oi Stan, prazer em conhecê-lo. Eu tenho que ir embora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hi Stan. I can't stay to talk." @@ -154222,7 +136521,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "You seem distracted." -msgstr "Você parece distraído." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -154311,36 +136610,31 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." -msgstr "Oh, você voltou." +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 "" -" Ótimo. Outra nova boca para alimentar? Apenas o que precisamos. Bem, eu sou" -" a Vanessa." #: lang/json/talk_topic_from_json.py msgid "I'm not a new mouth to feed, but nice to meet you too." msgstr "" -" Eu não sou uma nova boca para alimentar, mas prazer em conhecê-lo também." #: lang/json/talk_topic_from_json.py msgid "Hi, Vanessa. What's up?" -msgstr "Oi Vanessa Estás bem?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yeah, no. I'm going." -msgstr "É, não. Vou." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Well that's good. If you're going to pull your own weight I guess that's an" " improvement." msgstr "" -" Bem, isso é bom. Se você for puxar seu próprio peso, acho que é uma " -"melhoria." #: lang/json/talk_topic_from_json.py msgid "" @@ -154507,7 +136801,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" -msgstr "Por que fubá, jerky e vinho de frutas?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" @@ -154525,7 +136819,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" -msgstr "Você está querendo comprar mais alguma coisa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Very well... let's talk about something else." @@ -154623,104 +136917,96 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." -msgstr "Olá marechal." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is this place?" -msgstr "O que é este lugar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can I join you guys?" -msgstr "Posso me juntar a vocês?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Anything I can do for you?" -msgstr "Algo que eu possa fazer por você?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "See you later." -msgstr "Até logo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "This is a refugee center that we've made into a sort of trading hub." msgstr "" -" Este é um centro de refugiados que transformamos em uma espécie de centro " -"comercial." #: lang/json/talk_topic_from_json.py msgid "So are you with the government or something?" -msgstr "Então você está com o governo ou algo assim?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What do you trade?" -msgstr "O que você negocia?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Ha ha ha, no. Though there is Old Guard somewhere around here if you have " "any questions relating to what the government is up to." msgstr "" -" Hahaha não. Embora haja Old Guard em algum lugar por aqui, se você tiver " -"alguma dúvida sobre o que o governo está fazendo." #: lang/json/talk_topic_from_json.py msgid "Oh, okay. I'll go look for him" -msgstr "Ok. Vou procurá-lo" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Anything valuable really. If you really want to know, go ask one of the " "actual traders. I'm just protection." msgstr "" -" Qualquer coisa realmente valiosa. Se você realmente quiser saber, pergunte " -"a um dos operadores reais. Eu sou apenas proteção." #: lang/json/talk_topic_from_json.py msgid "I'll go talk to them later." -msgstr "Eu vou falar com eles depois." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Will do, thanks!" -msgstr "Vai fazer, obrigado!" +msgstr "" #: lang/json/talk_topic_from_json.py lang/json/talk_topic_from_json.py #: src/npctalk.cpp msgid "Nope." -msgstr "Não." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That's pretty blunt!" -msgstr "Isso é bem direto!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Death is pretty blunt." -msgstr "A morte é bem direta." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "So no negotiating? No, 'If you do this quest then we'll let you in?'" msgstr "" -" Então não negociar? Não, 'Se você fizer essa missão, então nós vamos " -"deixar você entrar?'" #: lang/json/talk_topic_from_json.py msgid "I don't like your attitude." -msgstr "Eu não gosto da sua atitude." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well alright then." -msgstr "Bem tudo bem então." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Then leave, you have two feet." -msgstr "Então saia, você tem dois pés." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I think I'd rather rearrange your face instead!" -msgstr "Acho que prefiro reorganizar seu rosto!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I will." -msgstr "Eu vou." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -154732,7 +137018,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Alright then." -msgstr "Tudo bem então." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "A good word might be helpful. What do you need?" @@ -154740,11 +137026,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Old Guard huh, I'll go talk to him!" -msgstr "Velha Guarda, huh, vou falar com ele!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Who are the Old Guard?" -msgstr "Quem é a velha guarda?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -154753,52 +137039,47 @@ msgid "" "some military unit that once protected the president. Their liaison is " "usually hanging around here somewhere." msgstr "" -" Esse é apenas o nosso apelido para eles. Eles são o que resta do governo " -"federal. Não sei o quão legítimo eles são, mas eles são nomeados após uma " -"unidade militar que uma vez protegeu o presidente. Sua ligação geralmente " -"está por aqui." #: lang/json/talk_topic_from_json.py msgid "Whatever, I had another question." -msgstr "Seja como for, eu tive outra pergunta." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Okay, I'll go look for him then." -msgstr "Ok, vou procurá-lo então." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Stay safe out there. Hate to have to kill you after you've already died." msgstr "" -" Fique seguro lá fora. Odeio ter que te matar depois que você já morreu." #: lang/json/talk_topic_from_json.py msgid "I am actually new." -msgstr "Eu sou realmente novo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Are there any rules I should follow while inside?" -msgstr "Existe alguma regra que eu deveria seguir enquanto dentro?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "So who is everyone around here?" -msgstr "Então, quem é todo mundo por aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Lets trade!" -msgstr "Deixa o comércio!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Is there anything I can do to help?" -msgstr "Existe alguma coisa que eu possa fazer para ajudar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks! I will be on my way." -msgstr "Obrigado! Eu estarei a caminho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Yes of course. Just don't bring any trouble and it's all fine by me." -msgstr "Sim, claro. Só não traga nenhum problema e está tudo bem por mim." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -154806,17 +137087,14 @@ msgid "" " you will be all set. Also, don't go into the basement. Outsiders are not " "allowed in there." msgstr "" -" Bem, principalmente não. Apenas não saia por aí roubando os outros e " -"começando brigas e você estará pronto. Além disso, não vá para o porão. " -"Outsiders não são permitidos lá." #: lang/json/talk_topic_from_json.py msgid "Ok, thanks." -msgstr "Ok, obrigado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "So uhhh, why not?" -msgstr "Então uhhh, porque não?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -154825,11 +137103,6 @@ msgid "" "stays to the basement to prevent it from happening again. Unless you really" " prove your worth I don't foresee any exceptions to that rule." msgstr "" -" Em suma, tivemos um problema quando um refugiado doente morreu e se " -"transformou em um zumbi. Tivemos que expulsar os refugiados e a maioria do " -"nosso grupo sobrevivente agora fica no porão para evitar que isso aconteça " -"novamente. A menos que você realmente prove o seu valor, eu não prevejo " -"quaisquer exceções a essa regra." #: lang/json/talk_topic_from_json.py msgid "" @@ -154839,138 +137112,126 @@ msgid "" "of our shop. I bet some of them would be willing to organize resource runs " "with you if you ask." msgstr "" -" A maioria são catadores como você. Eles agora ganham a vida saqueando as " -"cidades em busca de algo útil: comida, armas, ferramentas, gasolina. Em " -"troca de suas descobertas, oferecemos-lhes um lugar temporário para " -"descansar e os serviços de nossa loja. Aposto que alguns deles estariam " -"dispostos a organizar corridas de recursos com você, se você pedir." #: lang/json/talk_topic_from_json.py msgid "Thanks for the heads-up." -msgstr "Obrigado pelo heads-up." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "You are asking the wrong person, should look for our merchant by the main " "entrance. Perhaps one of the scavengers is also interested." msgstr "" -" Você está perguntando a pessoa errada, deve procurar o nosso comerciante " -"pela entrada principal. Talvez um dos catadores também esteja interessado." #: lang/json/talk_topic_from_json.py msgid "Keep to yourself and you won't find any problems." -msgstr "Guarde para si e você não encontrará nenhum problema." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What do you do around here?" -msgstr "O que você faz por aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Got tips for avoiding trouble?" -msgstr "Tem dicas para evitar problemas?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Have you seen anyone who might be hiding something?" -msgstr "Você já viu alguém que possa estar escondendo alguma coisa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Bye..." -msgstr "Tchau..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I haven't been here for long but I do my best to watch who comes and goes. " "You can't always predict who will bring trouble." msgstr "" -" Eu não estou aqui há muito tempo, mas faço o meu melhor para observar quem " -"vem e vai. Você nem sempre pode prever quem trará problemas." #: lang/json/talk_topic_from_json.py msgid "Keep your head down and stay out of my way." -msgstr "Mantenha a cabeça abaixada e fique fora do meu caminho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "OK..." -msgstr "ESTÁ BEM..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Like what?" -msgstr "Como o quê?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm not sure..." -msgstr "Não tenho certeza..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Like they could be working for someone else?" -msgstr "Como eles poderiam estar trabalhando para outra pessoa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You're new here, who the hell put you up to this crap?" -msgstr "Você é novo aqui, quem diabos colocou você nessa merda?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Get bent, traitor!" -msgstr "Seja traidor!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Got something to hide?" -msgstr "Tem algo a esconder?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry, I didn't mean to offend you..." -msgstr "Desculpe, eu não quis te ofender ..." +msgstr "" #: lang/json/talk_topic_from_json.py 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 "" -" Se você não continuar com o seu negócio, vou ter que pedir para você sair e" -" não voltar." #: lang/json/talk_topic_from_json.py msgid "Sorry." -msgstr "Desculpa." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That's it, you're dead!" -msgstr "É isso aí, você está morto!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I didn't mean it!" -msgstr "Eu não quis dizer isso!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You must really have a death wish!" -msgstr "Você deve realmente ter um desejo de morte!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "We don't put-up with garbage like you, finish your business and get the hell" " out." -msgstr "Nós não colocamos lixo como você, terminamos seu negócio e saímos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm not in charge here, you're looking for someone else..." msgstr "" -" Eu não estou no comando aqui, você está procurando por outra pessoa ..." #: lang/json/talk_topic_from_json.py msgid "Keep civil or I'll bring the pain." -msgstr "Mantenha civil ou vou trazer a dor." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Just on watch, move along." -msgstr "Apenas de relance, siga em frente." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Rough out there, isn't it?" -msgstr "Áspero lá fora, não é?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Ma'am, you really shouldn't be traveling out there." -msgstr "Senhora, você realmente não deveria estar viajando por aí." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I heard this place was a refugee center..." @@ -154978,11 +137239,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" -msgstr "Ouvi alguma coisa sobre o mundo exterior?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join your group?" -msgstr "Existe alguma maneira que eu possa participar do seu grupo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's with these beggars?" @@ -154994,11 +137255,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" -msgstr "Posso fazer alguma coisa pelo centro?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I figured you might be looking for some help..." -msgstr "Eu achei que você poderia estar procurando por alguma ajuda ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Well, I'd better be going. Bye." @@ -155006,11 +137267,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Welcome marshal..." -msgstr "Bem-vindo marechal ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Welcome..." -msgstr "Bem vinda..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155045,11 +137306,6 @@ msgid "" "the scavengers out there so ruthless but some of us have had to kill our own" " bloody kids... don't even think about strong arming us." msgstr "" -" Desculpe, mas a única maneira de conseguirmos é manter nossos portões " -"abotoados rapidamente. Os guardas no porão têm ordens para atirar à vista, " -"se você peep sua cabeça nos níveis inferiores. Eu não sei o que fez os " -"catadores lá fora tão implacáveis, mas alguns de nós tiveram que matar " -"nossos próprios filhos ensangüentados ... nem pense em nos armar forte." #: lang/json/talk_topic_from_json.py msgid "" @@ -155082,13 +137338,6 @@ msgid "" "bunch of them together they end up making enough noise to attract everyone " "in the neighborhood. Luckily we haven't had a mob like that pass by here." msgstr "" -" Um cara apareceu aqui um tempo atrás dizendo que tentou entrar em Syracuse " -"depois do surto. Nem sequer chegou ao centro da cidade antes de ele se " -"deparar com uma parede de mortos-vivos que poderia parar um tanque. Ele " -"correu, mas afirma que havia vários milhares, pelo menos. Acho que quando " -"você pega um monte deles juntos, eles acabam fazendo barulho suficiente para" -" atrair todo mundo na vizinhança. Por sorte não tivemos uma turba como essa " -"por aqui." #: lang/json/talk_topic_from_json.py msgid "" @@ -155098,23 +137347,18 @@ msgid "" " here, we've been doing alright. As to where it is, I don't have the " "foggiest of ideas." msgstr "" -" Bem, há uma festa de cerca de uma dúzia de 'catadores' que encontraram " -"algum tipo de instalação governamental. Eles nos trazem literalmente uma " -"carga de caminhões de macacões, m4 e comida enlatada toda semana. Já que " -"alguns desses caras tem família aqui, nós estamos indo bem. Quanto a onde " -"está, não tenho as mais esquisitas idéias." #: lang/json/talk_topic_from_json.py msgid "Thanks, I'll keep an eye out." -msgstr "Obrigado, vou ficar de olho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, not a risk we are willing to take right now." -msgstr "Desculpe, não é um risco que estamos dispostos a aceitar agora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Fine..." -msgstr "Bem..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155123,14 +137367,10 @@ msgid "" " sure whatever toxic waste is still out there is bound to mutate more than " "just his hair." msgstr "" -" Não há uma chance no inferno! Nós tivemos um cara vindo aqui com o pelo " -"ensanguentado em todo o corpo ... bem, eu acho que não é tão estranho assim," -" mas eu tenho certeza que qualquer resíduo tóxico ainda está lá fora, está " -"prestes a mutar mais do que apenas o cabelo dele." #: lang/json/talk_topic_from_json.py msgid "Fine... *coughupyourscough*" -msgstr "Tudo bem ... * coughupyourscough *" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155138,34 +137378,28 @@ msgid "" "real survival skills so keeping our group small enough to survive on the " "food random scavengers bring to trade with us is important." msgstr "" -" Desculpe, a última coisa que precisamos é de outra boca para alimentar. A " -"maioria de nós não tem nenhuma habilidade real de sobrevivência, então " -"manter nosso grupo pequeno o suficiente para sobreviver nos alimentos que os" -" catadores aleatórios trazem para o comércio é importante." #: lang/json/talk_topic_from_json.py msgid "I'm sure I can do something to change your mind *wink*" -msgstr "Tenho certeza que posso fazer algo para mudar sua mente * wink *" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I can pull my own weight!" -msgstr "Eu posso puxar meu próprio peso!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "[INT 11] I'm sure I can organize salvage operations to increase the bounty " "scavengers bring in!" msgstr "" -" [INT 11] Tenho certeza de que posso organizar operações de salvamento para " -"aumentar a quantidade de catadores de recompensas!" #: lang/json/talk_topic_from_json.py msgid "[STR 11] I punch things in face real good!" -msgstr "[STR 11] Eu soco as coisas na cara muito bem!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I guess I'll look somewhere else..." -msgstr "Eu acho que vou procurar em outro lugar ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155175,24 +137409,18 @@ msgid "" "to 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 "" -" Não posso dizer que ouvimos muito. A maioria desses abrigos parecia ter " -"sido projetada para fazer as pessoas se sentirem mais seguras ... na " -"verdade, não ajuda na sobrevivência delas. Nosso equipamento de rádio é um " -"lixo total que alguém convenceu o governo a comprar, sem a menor intenção de" -" usá-lo. Dos carniceiros que passavam, não ouvi nada além de pontos " -"principais e rumores de hordas." #: lang/json/talk_topic_from_json.py msgid "Hordes?" -msgstr "Hordas?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard of anything better than the odd gun cache?" -msgstr "Ouvi falar de algo melhor que o estranho cachê de armas?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Was hoping for something more..." -msgstr "Estava esperando por algo mais ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155271,31 +137499,29 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Marshal..." -msgstr "Marechal..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Citizen..." -msgstr "Cidadão..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can I trade for supplies?" -msgstr "Posso trocar por suprimentos?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm a doctor, one of the several at the outpost. We were the lucky ones. " "Came here right went things started to go wrong, never left." msgstr "" -" Sou médico, um dos vários no posto avançado. Nós éramos os sortudos. Veio " -"aqui, certo, as coisas começaram a dar errado, nunca foram embora." #: lang/json/talk_topic_from_json.py msgid "So what are you doing right now?" -msgstr "Então o que você está fazendo agora?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Never mind..." -msgstr "Deixa pra lá..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155304,14 +137530,10 @@ msgid "" " have to turn people away, but I like the assignment for the chance to get " "news about the outside world." msgstr "" -" A Velha Guarda - que é o que restou dos federais - me colocou aqui para " -"rastrear qualquer nova chegada para riscos de infecção. Não pode ser muito " -"paranoico nos dias de hoje. É triste ter de afastar as pessoas, mas gosto da" -" tarefa para ter a chance de receber notícias sobre o mundo exterior." #: lang/json/talk_topic_from_json.py msgid "What kind of news?" -msgstr "Que tipo de notícia?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155319,14 +137541,10 @@ msgid "" "what's happening, the closer we can get to a treatment or maybe even a cure." " It's a long shot, but you have hope to survive." msgstr "" -" Avistamentos de mortos vivos incomuns ou novas mutações. Quanto mais " -"sabemos sobre o que está acontecendo, mais perto podemos chegar a um " -"tratamento ou até mesmo uma cura. É um tiro longo, mas você tem esperança de" -" sobreviver." #: lang/json/talk_topic_from_json.py msgid "Good luck with that..." -msgstr "Boa sorte com isso..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155334,37 +137552,32 @@ msgid "" " the days go on. Some survivors too, come in here with... adaptations. " "Maybe they're related." msgstr "" -" Este não é um surto de zumbis clássico. Os mortos parecem estar ficando " -"mais fortes com o passar dos dias. Alguns sobreviventes também entram aqui " -"com ... adaptações. Talvez eles estejam relacionados." #: lang/json/talk_topic_from_json.py 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 "" -" Nós não podemos. Não há nada que possamos poupar para vender e não tenho " -"orçamento para comprar de você. Eu não suponho que você queira doar?" #: lang/json/talk_topic_from_json.py msgid "That sure is a shiny badge you got there!" -msgstr "Isso com certeza é um emblema brilhante que você chegou lá!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heh, you look important." -msgstr "Heh, você parece importante." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm actually new." -msgstr "Eu sou realmente novo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's with your ears?" -msgstr "O que há com seus ouvidos?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Anything I can help with?" -msgstr "Qualquer coisa que eu possa ajudar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155375,7 +137588,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sucks..." -msgstr "É uma merda..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155386,28 +137599,20 @@ msgid "" "few of those monsters seem to be able to break through a fence or wall " "constructed with the stuff." msgstr "" -" Bem, tem um cara lá embaixo que tem um canhão pneumático funcionando. Ele " -"dispara metal como ... como um canhão sem o estrondo. Custo-eficiente como o" -" inferno. E não há escassez de armas improvisadas que você pode fazer. A " -"coisa grande, porém, parece continuar a construção de fortificações. Muito " -"poucos desses monstros parecem ser capazes de romper uma cerca ou parede " -"construída com o material." #: lang/json/talk_topic_from_json.py msgid "Well, then..." -msgstr "Bem então..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Nothing optimistic, at least. Had a pal on the road with a ham radio, but " "she's gone and so is that thing. Kaput." msgstr "" -" Nada otimista, pelo menos. Tinha um amigo na estrada com um radioamador, " -"mas ela se foi e assim é essa coisa. Kaput." #: lang/json/talk_topic_from_json.py msgid "Nothing optimistic?" -msgstr "Nada otimista?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155416,14 +137621,10 @@ msgid "" "there, and everyone with a radio seems to feel like documenting their last " "awful moments." msgstr "" -" A maioria dos campos de emergência já se dissolveu. As cidades são " -"cercadas, as florestas cheias de olhos brilhantes e zumbis. Alguma coisa " -"insana lá fora, e todos com um rádio parecem sentir como documentar seus " -"últimos momentos terríveis." #: lang/json/talk_topic_from_json.py msgid "I feel bad for asking." -msgstr "Eu me sinto mal por perguntar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155432,30 +137633,24 @@ msgid "" " doesn't want me here when I'm not selling, but... some people get away with" " it." msgstr "" -" Eu não sei. Quero dizer, se você puder se tornar útil. Mas isso se tornou " -"uma coisa realmente nebulosa hoje em dia. Depende de quem você pergunta. O " -"comerciante definitivamente não me quer aqui quando não estou vendendo, mas " -"... algumas pessoas escapam com isso." #: 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 "" -" Do mesmo jeito que você tem o seu, aposto. Fique quieto sobre isso, algumas" -" pessoas aqui olham para baixo em pessoas como nós." #: lang/json/talk_topic_from_json.py msgid "Ssh. Some people in here hate... mutations. This was an accident." -msgstr "Ssh Algumas pessoas aqui odeiam ... mutações. Isso foi um acidente." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry to ask" -msgstr "Desculpe por perguntar" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You're disgusting." -msgstr "Você é nojento." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155464,85 +137659,74 @@ msgid "" "the pile of rebar for sale, that's probably me. They've kept me well off in" " exchange, I guess. I'll sell you a Molotov Cocktail or two, if you want." msgstr "" -" Eu queimo os edifícios e vendo os Mercadores Livres. Não, sério. Se você " -"viu destroços queimados no lugar de subúrbios ou até mesmo ver a pilha de " -"vergalhão à venda, provavelmente sou eu. Eles me mantiveram bem em troca, eu" -" acho. Eu vou te vender um coquetel Molotov ou dois, se você quiser." #: lang/json/talk_topic_from_json.py msgid "I'll buy." -msgstr "Eu vou comprar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Who needs rebar?" -msgstr "Quem precisa de vergalhão?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "As if you're one to talk. Screw You." -msgstr "Como se você fosse alguém para conversar. Dane-se." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Screw You!" -msgstr "Dane-se!" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I thought I smelled a pig. I jest... please don't arrest me." msgstr "" -" Eu pensei que eu cheirava um porco. Eu estou brincando ... por favor, não " -"me prenda." #: lang/json/talk_topic_from_json.py msgid "Huh, thought I smelled someone new. Can I help you?" -msgstr "Huh, pensei que eu cheirava alguém novo. Posso ajudar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You... smelled me?" -msgstr "Você ... me cheirou?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Got anything for sale?" -msgstr "Tem algo para vender?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Got any survival advice?" -msgstr "Tem algum conselho de sobrevivência?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Goodbye." -msgstr "Adeus." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Oh, I didn't mean that in a bad way. Been out in the wilderness so long, I " "find myself noticing things by scent before sight." msgstr "" -" Oh, eu não quis dizer isso de um jeito ruim. Estive fora no deserto por " -"tanto tempo, me vejo notando as coisas pelo cheiro antes da vista." #: lang/json/talk_topic_from_json.py msgid "O..kay..?" -msgstr "O..kay ..?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I trade food here in exchange for a place to crash and general supplies. " "Well, more specifically I trade food that isn't stale chips and flat cola." msgstr "" -" Eu troco comida aqui em troca de um lugar para cair e suprimentos em geral." -" Bem, mais especificamente eu troco alimentos que não são chips obsoletos e " -"cola plana." #: lang/json/talk_topic_from_json.py msgid "Interesting." -msgstr "Interessante." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Oh, so you hunt?" -msgstr "Ah, então você caça?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not really, just trying to lead my life." -msgstr "Não realmente, apenas tentando levar minha vida." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155550,53 +137734,42 @@ msgid "" "Got the occasional fish and basket full of wild fruit, but nothing comes " "close to a freshly-cooked moose steak for supper!" msgstr "" -" Sim. Seja qual for o jogo que eu encontrar, eu saco e vendo a carne e " -"outras partes aqui. Tem o peixe ocasional e cesta cheia de frutos " -"silvestres, mas nada chega perto de um bife de alce recém-preparados para o " -"jantar!" #: lang/json/talk_topic_from_json.py msgid "Great, now my mouth is watering..." -msgstr "Ótimo, agora minha boca está molhando ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Sure, just bagged a fresh batch of meat. You may want to grill it up before" " it gets too, uh... 'tender'." msgstr "" -" Claro, acabei de ensacar um lote fresco de carne. Você pode querer grelhá- " -"lo antes que ele chegue também, ah ... 'macio'." #: lang/json/talk_topic_from_json.py msgid "" "Feed a man a fish, he's full for a day. Feed a man a bullet, he's full for " "the rest of his life." msgstr "" -" Alimente um homem com um peixe, ele está cheio por um dia. Alimente um " -"homem com uma bala, ele está cheio para o resto de sua vida." #: lang/json/talk_topic_from_json.py msgid "Spot your prey before something nastier spots you." -msgstr "Spot sua presa antes de algo mais desagradável você manchas." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I've heard that cougars sometimes leap. Maybe it's just a myth." -msgstr "Ouvi dizer que pumas às vezes pulam. Talvez seja apenas um mito." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "The Jabberwock is real, don't listen to what anybody else says. If you see " "it, RUN." msgstr "" -" O Jabberwock é real, não ouça o que os outros dizem. Se você ver, corra." #: lang/json/talk_topic_from_json.py msgid "" "Zombie animal meat isn't good for eating, but sometimes you, might find " "usable fur on 'em." msgstr "" -" Carne de animais zumbis não é boa para comer, mas às vezes você pode " -"encontrar peles utilizáveis." #: lang/json/talk_topic_from_json.py msgid "" @@ -155604,26 +137777,22 @@ msgid "" "but your taste buds and your colon may start to get angry at you. Eat a " "piece of fruit every once in a while." msgstr "" -" Uma dieta constante de carne cozida e água limpa irá mantê-lo vivo para " -"sempre, mas o seu paladar e seu cólon pode começar a ficar com raiva de " -"você. Coma um pedaço de fruta de vez em quando." #: lang/json/talk_topic_from_json.py msgid "Smoke crack to get more shit done." -msgstr "Fumaça crack para fazer mais merda." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Watch your back out there." -msgstr "Assista suas costas lá fora." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Is there any way I can join the 'Old Guard'?" msgstr "" -"Existe alguma maneira que eu possa me juntar à 'Velha Guarda'?" #: lang/json/talk_topic_from_json.py msgid "Does the Old Guard need anything?" -msgstr "A velha guarda precisa de alguma coisa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155633,15 +137802,10 @@ msgid "" "chosen to coordinate civilian and militia efforts in support of military " "operations." msgstr "" -" Eu sou a ligação federal da região. A maioria das pessoas aqui nos chama de" -" 'Velha Guarda' e eu gosto bastante do som dela. Apesar de como as " -"coisas atualmente aparecem, o governo federal não foi totalmente destruído. " -"Após o surto, fui escolhido para coordenar os esforços de civis e milícias " -"em apoio às operações militares." #: lang/json/talk_topic_from_json.py msgid "So what are you actually doing here?" -msgstr "Então, o que você está fazendo aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155651,19 +137815,14 @@ msgid "" "'Free Merchants' here prospering and in return they have provided us with " "spare men and supplies when they can." msgstr "" -" Eu garanto que os cidadãos daqui têm o que precisam para sobreviver e se " -"proteger dos invasores. Manter alguma forma de lei será o elemento mais " -"importante na reconstrução do mundo. Fazemos o que podemos para manter os " -"'Mercadores Livres' aqui prosperando e em troca eles nos forneceram " -"homens e suprimentos quando podem." #: lang/json/talk_topic_from_json.py msgid "Is there a catch?" -msgstr "Existe uma pegadinha?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Anything more to it?" -msgstr "Mais alguma coisa para isso?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155675,18 +137834,10 @@ msgid "" " them. Since most survivors here have nothing they want, they are welcomed " "as champions." msgstr "" -" Bem ... eu era como qualquer outro civil até que eles me recrutaram, então " -"eu lhe contarei diretamente. Eles são a melhor esperança que temos agora. " -"Eles são esticados incrivelmente magros, mas estão dispostos a fazer o que " -"for necessário para manter a ordem. Eles não se importam muito com os " -"saqueadores, já que eles entendem que a maioria das pessoas está morta, mas " -"se você tem algo que eles precisam ... você dará a eles. Como a maioria dos " -"sobreviventes aqui não tem nada que eles querem, eles são bem-vindos como " -"campeões." #: lang/json/talk_topic_from_json.py msgid "Hmmm..." -msgstr "Hmmm ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155696,19 +137847,14 @@ msgid "" "based out of the 2nd Fleet and patrols the Atlantic coast trying to provide " "support to the remaining footholds." msgstr "" -" Não há muita coisa empurrada pelas relações públicas em que eu realmente " -"acreditasse. Pelo que eu sei, a comunicação entre os comandos regionais de " -"força é quase inexistente. O que eu sei é que a 'Velha Guarda' está " -"atualmente baseada na 2ª Frota e patrulha a costa do Atlântico tentando dar " -"suporte aos pontos de apoio restantes." #: lang/json/talk_topic_from_json.py msgid "The 2nd Fleet?" -msgstr "A segunda frota?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Tell me about the footholds." -msgstr "Conte-me sobre os pontos de apoio." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155718,12 +137864,6 @@ msgid "" "Most civilians are offered a cabin on one of the liners to retire to if they" " serve as a federal employee for a few years." msgstr "" -" Eu não sei muito sobre como se formou, mas é a armada de navios militares e" -" comerciais que está flutuando ao largo da costa. Eles têm de tudo, de " -"superpetroleiros e transportadores a traineiras de pesca ... até mesmo " -"alguns navios da OTAN. A maioria dos civis é oferecida uma cabine em um dos " -"navios para se aposentar, se eles servem como um funcionário federal por " -"alguns anos." #: lang/json/talk_topic_from_json.py msgid "" @@ -155731,9 +137871,6 @@ msgid "" " in 'walling themselves off.' Around here I was told that there were a few " "places like this one but I couldn't tell you where." msgstr "" -" Eles podem ser apenas propaganda, mas, aparentemente, uma ou duas cidades " -"foram bem-sucedidas em 'se isolar'. Por aqui me disseram que havia alguns " -"lugares como esse, mas eu não sabia onde." #: lang/json/talk_topic_from_json.py msgid "" @@ -155742,30 +137879,23 @@ msgid "" "Completing missions as a contractor is a great way to make a name for " "yourself among the most powerful men left in the world." msgstr "" -" Você não pode participar, a menos que você passe por um recrutador. " -"Geralmente podemos usar a ajuda, pergunte-me de vez em quando se há algum " -"trabalho disponível. Completar missões como empreiteiro é uma ótima maneira " -"de fazer um nome para si mesmo entre os homens mais poderosos que restam no " -"mundo." #: lang/json/talk_topic_from_json.py msgid "I haven't done anything wrong..." -msgstr "Eu não fiz nada de errado ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Any tips for surviving?" -msgstr "Alguma dica para sobreviver?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What would it cost to hire you?" -msgstr "Quanto custaria contratar você?" +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 "" -" Eu sou apenas uma mão contratada. Alguém me paga e eu faço o que precisa " -"ser feito." #: lang/json/talk_topic_from_json.py msgid "" @@ -155773,13 +137903,10 @@ msgid "" " to save you is having a party that can return fire. People who work alone " "are easy pickings for monsters and bandits." msgstr "" -" Se você tiver que lutar para sair de uma emboscada, a única coisa que vai " -"salvá-lo é fazer uma festa que possa causar fogo. Pessoas que trabalham " -"sozinhas são escolhas fáceis para monstros e bandidos." #: lang/json/talk_topic_from_json.py msgid "I suppose I should hire a party then?" -msgstr "Eu suponho que eu deveria contratar uma festa então?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -155793,7 +137920,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I might be back." -msgstr "Eu posso estar de volta." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[FMC2500] You have a deal." @@ -155820,11 +137947,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "I guess you're the boss." -msgstr "Eu acho que você é o chefe." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Glad to have you aboard." -msgstr "Fico feliz em ter você a bordo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" @@ -155946,59 +138073,57 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" -msgstr "Qual o seu trabalho aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$5] I'll have a shave" -msgstr "[$ 5] vou fazer a barba" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$10] I'll get a haircut" -msgstr "[$ 10] Eu vou cortar o cabelo" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Maybe another time..." -msgstr "Talvez outra hora..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "What? I'm a barber... I cut hair. There's demand for cheap cuts and a " "shave out here." msgstr "" -" O que? Sou barbeiro ... cortei cabelo. Há demanda por cortes baratos e " -"barba por aqui." #: lang/json/talk_topic_from_json.py msgid "I can't imagine what I'd need your assistance with." -msgstr "Eu não posso imaginar o que eu preciso da sua ajuda." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Stand still while I get my clippers..." -msgstr "Fique parado enquanto eu pego minha tesoura ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Thanks..." -msgstr "Obrigado..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Want a drink?" -msgstr "Quer uma bebida?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm looking for information." -msgstr "Estou procurando informações." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let me see what you keep behind the counter." -msgstr "Deixe-me ver o que você mantém atrás do balcão." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What do you have on tap?" -msgstr "O que você tem na torneira?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll be going..." -msgstr "Eu vou indo ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156007,62 +138132,54 @@ msgid "" "through here though, the drinks we brew ourselves are the only thing they " "can afford." msgstr "" -" Se não é óbvio, eu supervisiono a barra aqui. Os catadores trazem o álcool " -"do velho mundo que vendemos para ocasiões especiais. Para a maioria das " -"pessoas que vêm aqui, porém, as bebidas que produzimos são a única coisa que" -" podem pagar." #: lang/json/talk_topic_from_json.py msgid "" "We have a policy of keeping information to ourselves. Ask the patrons if " "you want to hear rumors or news." msgstr "" -" Temos uma política de manter as informações para nós mesmos. Pergunte aos " -"clientes se você quer ouvir rumores ou notícias." #: lang/json/talk_topic_from_json.py msgid "Thanks for nothing." -msgstr "Obrigado por nada." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Our selection is a bit limited at the moment." -msgstr "Nossa seleção é um pouco limitada no momento." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$8] I'll take a beer" -msgstr "[$ 8] Vou tomar uma cerveja" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$10] I'll take a shot of brandy" -msgstr "[$ 10] Vou tomar uma dose de conhaque" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$10] I'll take a shot of rum" -msgstr "[$ 10] Vou levar uma dose de rum" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$12] I'll take a shot of whiskey" -msgstr "[$ 12] Vou tirar uma dose de uísque" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "On second thought, don't bother." -msgstr "No segundo pensamento, não se incomode." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "My partner is in charge of fortifying this place, you should ask him about " "what needs to be done." msgstr "" -" Meu parceiro é encarregado de fortificar este lugar, você deve perguntar a " -"ele sobre o que precisa ser feito." #: lang/json/talk_topic_from_json.py msgid "I'll talk to him then..." -msgstr "Eu vou falar com ele então ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Howdy." -msgstr "Olá" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156071,19 +138188,14 @@ msgid "" "out of the refugee center. Unless you are a trader there isn't much work " "there and food was really becoming scarce when I left." msgstr "" -" Eu estava entre um dos primeiros grupos de imigrantes enviados para " -"fortificar o posto avançado. Eu poderia ter exagerado minhas habilidades de " -"construção para dar o fora do centro de refugiados. A menos que você seja um" -" profissional, não há muito trabalho ali e a comida estava realmente se " -"tornando escassa quando saí." #: lang/json/talk_topic_from_json.py msgid "I hope you are here to do business." -msgstr "Espero que você esteja aqui para fazer negócios." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm interested in investing in agriculture..." -msgstr "Estou interessado em investir em agricultura ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156091,38 +138203,34 @@ msgid "" "searching for trade partners and investors to increase our capacity. If you" " are interested I typically have tasks that I need assistance with." msgstr "" -" Meu trabalho é administrar a produção agrícola de nosso posto avançado. " -"Estou constantemente procurando parceiros comerciais e investidores para " -"aumentar nossa capacidade. Se você estiver interessado, normalmente tenho " -"tarefas com as quais preciso de ajuda." #: lang/json/talk_topic_from_json.py msgid "I'll keep that in mind." -msgstr "Eu vou manter isso em mente." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I don't have time to see you at the moment." -msgstr "Me desculpe, eu não tenho tempo para te ver no momento." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "For the right price could I borrow your services?" -msgstr "Pelo preço certo, eu poderia pedir seus serviços?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I imagine we might be able to work something out." -msgstr "Eu imagino que podemos ser capazes de trabalhar em algo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I was wondering if you could install a cybernetic implant..." -msgstr "Eu queria saber se você poderia instalar um implante cibernético ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I need help removing an implant..." -msgstr "Preciso de ajuda para remover um implante ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'd like to hire your services." -msgstr "Eu gostaria de contratar seus serviços." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156130,9 +138238,6 @@ msgid "" "skills that transfer from before the cataclysm so things are a bit of trial " "and error." msgstr "" -" Fui enviado aqui para ajudar na instalação da fazenda. A maioria de nós não" -" tem habilidades reais que se transferem antes do cataclismo, então as " -"coisas são um pouco de tentativa e erro." #: lang/json/talk_topic_from_json.py msgid "" @@ -156141,19 +138246,14 @@ msgid "" " are a skilled laborer then you can trade your time for a bit of extra " "income on the side. Not much I can do to assist you as a farmer though." msgstr "" -" Me desculpe, eu não tenho nada para trocar. O programa de trabalho aqui " -"divide o que produzimos entre o centro de refugiados, a fazenda e nós " -"mesmos. Se você é um trabalhador qualificado, então você pode trocar seu " -"tempo por um pouco de renda extra ao lado. Não há muito que eu possa fazer " -"para ajudar você como agricultor." #: lang/json/talk_topic_from_json.py msgid "Oh." -msgstr "Oh." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You mind?" -msgstr "Você se importa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156161,54 +138261,46 @@ msgid "" "life of a dirt farmer. We get room and board but won't see a share of our " "labor unless the crop is a success." msgstr "" -" Eu sou apenas um cara de sorte que deixou de ser perseguido pelos mortos- " -"vivos para a vida nobre de um fazendeiro de terra. Temos espaço e " -"alimentação, mas não vemos uma parte do nosso trabalho a menos que a " -"colheita seja um sucesso." #: lang/json/talk_topic_from_json.py msgid "It could be worse..." -msgstr "Poderia ser pior..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I've got no time for you. If you want to make a trade or need a job look " "for the foreman or crop overseer." msgstr "" -" Não tenho tempo para você. Se você quiser fazer uma troca ou precisar de um" -" emprego, procure o capataz ou supervisor de colheita." #: lang/json/talk_topic_from_json.py msgid "I'll talk with them then..." -msgstr "Eu vou falar com eles então ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Can I help you, marshal?" -msgstr "Posso te ajudar, marechal?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Morning sir, how can I help you?" -msgstr "Manhã senhor, como posso ajudá-lo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Morning ma'am, how can I help you?" -msgstr "Manhã senhora, como posso ajudá-lo?" +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 "" -" [MISSÃO] O comerciante do Refugee Center me mandou buscar um prospecto de " -"você." #: lang/json/talk_topic_from_json.py msgid "I heard you were setting up an outpost out here." -msgstr "Ouvi dizer que você estava montando um posto avançado aqui." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's your job here?" -msgstr "Qual o seu trabalho aqui?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156221,8 +138313,6 @@ msgid "" "I was starting to wonder if they were really interested in the project or " "were just trying to get rid of me." msgstr "" -" Eu estava começando a me perguntar se eles estavam realmente interessados " -"no projeto ou se estavam apenas tentando se livrar de mim." #: lang/json/talk_topic_from_json.py msgid "" @@ -156231,14 +138321,10 @@ msgid "" "fast he expects the two of us to get setup but we were assured additional " "men were coming out here to assist us. " msgstr "" -" Ya, aquele representante da Velha Guarda pediu a nós dois que viéssemos " -"aqui e começássemos a fortificar este lugar como um campo de refugiados. Não" -" tenho certeza de quão rápido ele espera que nós dois nos preparemos, mas " -"nos garantiram que mais homens viriam aqui para nos ajudar." #: lang/json/talk_topic_from_json.py msgid "How many refugees are you expecting?" -msgstr "Quantos refugiados você está esperando?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156250,18 +138336,10 @@ msgid "" " build from scratch. The refugee center I came from is constantly facing " "starvation and undead assaults." msgstr "" -" Poderia ser facilmente centenas, tanto quanto eu sei. Eles escolheram este " -"rancho por causa de sua localização bastante remota, cerca decente e enorme " -"campo limpo. Com tanta terra como nós cercamos nós poderíamos construir uma " -"aldeia se tivéssemos os materiais. Nós teríamos tentado proteger uma pequena" -" cidade ou algo assim, mas a falta de boas terras agrícolas e o número de " -"mortos-vivos torna mais prático para nós construirmos do zero. O centro de " -"refugiados de onde eu venho está constantemente enfrentando ataques de fome " -"e mortos-vivos." #: lang/json/talk_topic_from_json.py msgid "Hopefully moving out here was worth it..." -msgstr "Esperançosamente sair daqui valeu a pena ..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156272,13 +138350,6 @@ msgid "" "it. If you have material to drop off you can just back your vehicle into " "here and dump it on the ground, we'll sort it." msgstr "" -" Eu sou o engenheiro encarregado de transformar este lugar em um campo de " -"trabalho. Esta vai ser uma batalha difícil, usamos a maior parte de nossos " -"suprimentos iniciais para chegar até aqui e embarcar nas janelas. Eu tenho " -"uma lista enorme de tarefas que precisam ser feitas, então se você puder nos" -" ajudar a fornecer, eu agradeceria. Se você tem material para cair, você " -"pode simplesmente voltar o seu veículo para cá e jogá-lo no chão, vamos " -"classificá-lo." #: lang/json/talk_topic_from_json.py msgid "" @@ -156293,68 +138364,63 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "How can I help you?" -msgstr "Como posso ajudá-lo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I could use your medical assistance." -msgstr "Eu poderia usar sua assistência médica." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I was a practicing nurse so I've taken over the medical responsibilities of " "the outpost till we can locate a physician." msgstr "" -" Eu era uma enfermeira praticante, então assumi as responsabilidades médicas" -" do posto avançado até conseguirmos localizar um médico." #: lang/json/talk_topic_from_json.py msgid "" "I'm willing to pay a premium for medical supplies that you might be able to " "scavenge up. I also have a few miscellaneous jobs from time to time." msgstr "" -" Estou disposto a pagar um prêmio por suprimentos médicos que você possa " -"conseguir. Eu também tenho alguns trabalhos diversos de vez em quando." #: lang/json/talk_topic_from_json.py msgid "What kind of jobs do you have for me?" -msgstr "Que tipo de emprego você tem para mim?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not now." -msgstr "Agora não." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Come back later, I need to take care of a few things first." -msgstr "Volte mais tarde, eu preciso cuidar de algumas coisas primeiro." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I can take a look at you or your companions if you are injured." msgstr "" -" Eu posso dar uma olhada em você ou seus companheiros se você está ferido." #: lang/json/talk_topic_from_json.py msgid "[$200, 30m] I need you to patch me up." -msgstr "[$ 200, 30m] Eu preciso de você para me consertar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$500, 1h] I need you to patch me up." -msgstr "[$ 500, 1h] Eu preciso de você para me consertar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I should be fine." -msgstr "Eu deveria estar bem." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "That's the best I can do on short notice." -msgstr "É o melhor que posso fazer a curto prazo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Welcome to the junk shop." -msgstr "Bem-vindo à loja de lixo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Let's see what you've managed to find." -msgstr "Vamos ver o que você conseguiu encontrar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156364,40 +138430,32 @@ msgid "" "we can't use helps keep us afloat with the traders. If you wanted to drop " "off a companion or two to assist in one of the runs, I'd appreciate it." msgstr "" -" Eu organizo corridas de limpeza para trazer suprimentos que não podemos " -"produzir. Eu tento e ofereço incentivos para fazer com que os migrantes se " -"juntem a uma das equipes ... é um trabalho perigoso, mas mantém nosso posto " -"avançado vivo. Vender qualquer coisa que não podemos usar ajuda a nos manter" -" à tona com os comerciantes. Se você quisesse deixar um companheiro ou dois " -"para ajudar em uma das corridas, eu agradeceria." #: lang/json/talk_topic_from_json.py msgid "I'll think about it." -msgstr "Vou pensar sobre isso." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Are you interested in the scavenging runs or one of the other tasks that I " "might have for you?" msgstr "" -" Você está interessado nas execuções de eliminação ou em uma das outras " -"tarefas que eu posso ter para você?" #: lang/json/talk_topic_from_json.py msgid "Tell me more about the scavenging runs." -msgstr "Conte-me mais sobre as execuções de eliminação." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What kind of tasks do you have for me?" -msgstr "Que tipo de tarefas você tem para mim?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "No, thanks." -msgstr "Não, obrigado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Don't mind me." -msgstr "Não se importe comigo." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156406,10 +138464,6 @@ msgid "" "surround the outpost. It provides a measure of defense in the event that we" " get attacked." msgstr "" -" Eu pulo veículos inúteis para peças de reposição e matérias-primas. Se não " -"pudermos usar um veículo imediatamente, o levamos para o ringue que estamos " -"construindo para cercar o posto avançado. Ele fornece uma medida de defesa " -"no caso de sermos atacados." #: lang/json/talk_topic_from_json.py msgid "" @@ -156417,54 +138471,44 @@ msgid "" "need a hand but can be hard to catch since they spend most of their time " "outside the outpost." msgstr "" -" Eu pessoalmente não, as equipes que enviamos para recuperar os veículos " -"geralmente precisam de uma mão, mas podem ser difíceis de pegar, já que " -"passam a maior parte do tempo fora do posto avançado." #: lang/json/talk_topic_from_json.py msgid "Please leave me alone..." -msgstr "Por favor, deixe-me só..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's wrong?" -msgstr "O que há de errado?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I was just a laborer till they could find me something a bit more permanent " "but being constantly sick has prevented me from doing much of anything." msgstr "" -" Eu era apenas um trabalhador até que eles pudessem me encontrar algo um " -"pouco mais permanente, mas estar constantemente doente me impediu de fazer " -"muita coisa." #: lang/json/talk_topic_from_json.py msgid "That's sad." -msgstr "Isso é triste." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I don't know what you could do. I've tried everything. Just give me " "time..." msgstr "" -" Eu não sei o que você poderia fazer. Eu tentei de tudo. Apenas me dê tempo " -"..." #: lang/json/talk_topic_from_json.py msgid "" "I keep getting sick! At first I thought it was something I ate but now it " "seems like I can't keep anything down..." msgstr "" -" Eu continuo ficando doente! No começo eu pensei que era algo que eu comi, " -"mas agora parece que eu não posso manter nada para baixo ..." #: lang/json/talk_topic_from_json.py msgid "Uhm." -msgstr "Uhm" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You need something?" -msgstr "Você precisa de algo?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156473,11 +138517,6 @@ msgid "" "profession became lumberjack... didn't have any say in it. If I want to eat" " then I'll be cutting wood from now till kingdom come." msgstr "" -" Sou um dos migrantes que foram desviados para este posto avançado quando " -"cheguei ao centro de refugiados. Eles disseram que eu era grande o " -"suficiente para balançar um machado, então minha profissão se tornou " -"lenhador ... não tinha nada a dizer sobre isso. Se eu quiser comer, vou " -"cortar madeira daqui até o reino." #: lang/json/talk_topic_from_json.py msgid "" @@ -156485,33 +138524,28 @@ msgid "" "The logs will be dropped off in the garage at the entrance to the camp. " "I'll need a bit of time before I can deliver another load." msgstr "" -" A taxa é um pouco íngreme, mas ainda tenho minhas cotas que preciso " -"cumprir. As toras serão deixadas na garagem na entrada do acampamento. Vou " -"precisar de um pouco de tempo antes de poder entregar outra carga." #: lang/json/talk_topic_from_json.py msgid "[$2000, 1d] 10 logs" -msgstr "[$ 2000, 1d] 10 registros" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "[$12000, 7d] 100 logs" -msgstr "[$ 12000, 7d] 100 registros" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I'll be back later." -msgstr "Voltarei mais tarde." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Don't have much time to talk." -msgstr "Não tenha muito tempo para conversar." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I turn the logs that laborers bring in into lumber to expand the outpost. " "Maintaining the saw is a chore but breaks the monotony." msgstr "" -" Eu ligo os troncos que os trabalhadores trazem para a madeira para expandir" -" o posto avançado. Manter a serra é uma tarefa, mas quebra a monotonia." #: lang/json/talk_topic_from_json.py msgid "" @@ -156519,34 +138553,30 @@ msgid "" " be hurting them if I outsourced it. Ask around though, I'm sure most " "people could use a hand." msgstr "" -" Trazer os logs é uma das poucas tarefas que podemos dar aos não " -"qualificados, então eu estaria machucando-os se eu os terceirizasse. " -"Pergunte ao redor, tenho certeza que a maioria das pessoas poderia usar uma " -"mão." #: lang/json/talk_topic_from_json.py msgid "Heya, scav." -msgstr "Heya, scav." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Did you build this place?" -msgstr "Você construiu este lugar?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why do you still use cash?" -msgstr "Por que você ainda usa dinheiro?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "You're a trader?" -msgstr "Você é um comerciante?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "I need some supplies." -msgstr "Eu preciso de alguns suprimentos." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Need help with anything?" -msgstr "Precisa de ajuda com alguma coisa?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -156555,88 +138585,76 @@ msgid "" "in the spare room awhile, just don't hog it. You're not the only scav out " "there." msgstr "" -" Não, não ... Bem, talvez um pouco. Foi tão destruído aqui como no topo " -"quando eu encontrei, não foi muito difícil de arrumar. Você é bem-vindo para" -" ficar no quarto de hóspedes por algum tempo, apenas não o oculte. Você não " -"é o único scav lá fora." #: lang/json/talk_topic_from_json.py msgid "Interesting..." -msgstr "Interessante..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" " treasure. I'm more than willing to trade if you've got the cash." msgstr "" -" Apenas um scav que teve sorte. Agora estou contente em me sentar aqui na " -"minha pilha de tesouros. Estou mais do que disposto a negociar se você tiver" -" o dinheiro." #: lang/json/talk_topic_from_json.py msgid "I see..." -msgstr "Entendo..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Why not? Everyone else does, so I suppose that's all that matters. My ATM " "over there still works, connected to the bank servers and everything." msgstr "" -" Por que não? Todo mundo faz, então eu suponho que é tudo que importa. Meu " -"caixa eletrônico ainda funciona, conectado aos servidores do banco e tudo " -"mais." #: lang/json/talk_topic_from_json.py msgid "Hmm..." -msgstr "Hmm..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I suppose I am. Scavs like you need supplies, right? And I could always " "use more money." msgstr "" -" Eu suponho que sou. Scavs como você precisa de suprimentos, certo? E eu " -"sempre poderia usar mais dinheiro." #: lang/json/talk_topic_from_json.py msgid "Alright..." -msgstr "Tudo bem..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Not at the moment, check back later perhaps." -msgstr "Não no momento, volte talvez mais tarde." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sure..." -msgstr "Certo..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Are you part of the rescue team?" -msgstr "Você faz parte da equipe de resgate?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Sorry, , the rescue has been delayed." -msgstr "Desculpa, , o resgate foi adiado." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Part? I AM the rescue team." -msgstr "Parte? Eu sou a equipe de resgate." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "So are you busting us out of here or what?" -msgstr "Então você está nos tirando daqui ou o que?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hold tight, . I've got to clear a path." -msgstr "Apertar, . Eu tenho que limpar um caminho." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Pack your bags, . We're going on a trip." -msgstr "Arrume suas malas, . Nós estamos indo em uma viagem." +msgstr "" #: lang/json/technique_from_json.py msgid "Viper Hiss" -msgstr "Viper Hiss" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156650,7 +138668,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Viper Fist" -msgstr "Viper Fist" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156664,7 +138682,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Viper Bite" -msgstr "Mordida da víbora" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156678,7 +138696,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Viper Strike" -msgstr "Viper Strike" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156692,11 +138710,11 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Viper Writhe" -msgstr "Víbora Writhe" +msgstr "" #: lang/json/technique_from_json.py msgid "Stinger Strike" -msgstr "Stinger Strike" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156710,7 +138728,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Pincer Strike" -msgstr "Greve de pinça" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156724,7 +138742,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Toad's Tongue" -msgstr "Língua do sapo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156738,7 +138756,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Rapid Strike" -msgstr "Golpe Rápido" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156752,16 +138770,16 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Not at technique at all" -msgstr "Não em técnica em absoluto" +msgstr "" #: lang/json/technique_from_json.py src/bonuses.cpp src/martialarts.cpp msgid "Block" -msgstr "Quadra" +msgstr "" #. ~ Description for Block #: lang/json/technique_from_json.py msgid "Medium blocking ability" -msgstr "Capacidade de bloqueio médio" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156775,12 +138793,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Parry" -msgstr "Parry" +msgstr "" #. ~ Description for Parry #: lang/json/technique_from_json.py msgid "High blocking ability" -msgstr "Alta capacidade de bloqueio" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156794,12 +138812,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Shield" -msgstr "Escudo" +msgstr "" #. ~ Description for Shield #: lang/json/technique_from_json.py msgid "Very high blocking ability" -msgstr "Muito alta capacidade de bloqueio" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156813,13 +138831,13 @@ msgstr "" #: lang/json/technique_from_json.py msgid "disarm" -msgstr "desarmar" +msgstr "" #. ~ Description for disarm #. ~ Description for Disarm #: lang/json/technique_from_json.py msgid "Unwield target's weapon" -msgstr "Desprender a arma do alvo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156833,12 +138851,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Spinning Strike" -msgstr "Golpe Giratório" +msgstr "" #. ~ Description for Spinning Strike #: lang/json/technique_from_json.py msgid "Attack adjacent enemies, crit only, min 4 melee" -msgstr "Ataque inimigos adjacentes, somente críticos, min 4 corpo a corpo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156852,12 +138870,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Wide Strike" -msgstr "Greve Larga" +msgstr "" #. ~ Description for Wide Strike #: lang/json/technique_from_json.py msgid "Attack in a wide arc, crit only, min 3 melee" -msgstr "Ataque em um arco amplo, somente crit, min 3 melee" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156871,12 +138889,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Impaling Strike" -msgstr "Golpe Empalador" +msgstr "" #. ~ Description for Impaling Strike #: lang/json/technique_from_json.py msgid "Attack target and another one behind it, crit only, min 4 melee" -msgstr "Ataque alvo e outro atrás, apenas critico, min 4 corpo a corpo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156890,12 +138908,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Brutal Strike" -msgstr "Golpe Brutal" +msgstr "" #. ~ Description for Brutal Strike #: lang/json/technique_from_json.py msgid "Stun 1 turn, knockback 1 tile, crit only" -msgstr "Stun 1 turn, knockback 1 tile, apenas crit" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156924,12 +138942,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Vorpal Strike" -msgstr "Greve de Vorpal" +msgstr "" #. ~ Description for Vorpal Strike #: lang/json/technique_from_json.py msgid "Cut damage multiply by 99, crit only" -msgstr "Corte dano multiplicar por 99, apenas crit" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156946,12 +138964,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Wrap Attack" -msgstr "Enrole o ataque" +msgstr "" #. ~ Description for Wrap Attack #: lang/json/technique_from_json.py msgid "Stun 2 turns" -msgstr "Stun 2 turnos" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156965,12 +138983,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Sweep Attack" -msgstr "Ataque de varredura" +msgstr "" #. ~ Description for Sweep Attack #: lang/json/technique_from_json.py msgid "Down 2 turns" -msgstr "Down 2 turnos" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -156984,12 +139002,12 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Precise Strike" -msgstr "Golpe Preciso" +msgstr "" #. ~ Description for Precise Strike #: lang/json/technique_from_json.py msgid "Stun 2 turns, crit only" -msgstr "Stun 2 turnos, apenas críticos" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157003,7 +139021,7 @@ msgstr "" #: lang/json/technique_from_json.py src/game.cpp msgid "Disarm" -msgstr "Desarmar" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157017,7 +139035,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Counterattack" -msgstr "Contra ataque" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157031,7 +139049,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Feint" -msgstr "Feint" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157045,7 +139063,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Grab Break" -msgstr "Grab Break" +msgstr "" #: lang/json/technique_from_json.py lang/json/technique_from_json.py #: src/monattack.cpp @@ -157071,7 +139089,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Cross" -msgstr "Cruz" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157085,7 +139103,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Jab" -msgstr "Jab" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157099,7 +139117,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Uppercut" -msgstr "Uppercut" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157113,7 +139131,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Cross Counter" -msgstr "Contador Cruzado" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157127,7 +139145,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "quick punch" -msgstr "soco rápido" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157141,7 +139159,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "karate chop" -msgstr "golpe de caratê" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157155,7 +139173,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "throw" -msgstr "arremessar" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157169,7 +139187,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "dodge throw" -msgstr "lançar dodge" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157183,7 +139201,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "feint at" -msgstr "Finta em" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157207,7 +139225,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "kick" -msgstr "pontapé" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157221,11 +139239,11 @@ msgstr "" #: lang/json/technique_from_json.py msgid "grab break" -msgstr "pegar quebra" +msgstr "" #: lang/json/technique_from_json.py msgid "counter-grab" -msgstr "contra-agarrar" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157239,7 +139257,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "arm lock" -msgstr "Chave de braço" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157253,7 +139271,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "chokehold" -msgstr "estrangulamento" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157267,11 +139285,11 @@ msgstr "" #: lang/json/technique_from_json.py msgid "grab" -msgstr "agarrar" +msgstr "" #: lang/json/technique_from_json.py msgid "precise strike" -msgstr "greve precisa" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157285,7 +139303,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "elbow" -msgstr "cotovelo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157309,7 +139327,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "flying knee" -msgstr "joelho voador" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157333,7 +139351,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "surprise attack" -msgstr "ataque surpresa" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157347,7 +139365,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "axe-kick" -msgstr "chute de machado" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157361,7 +139379,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "side kick" -msgstr "chute lateral" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157375,7 +139393,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "sweep kick" -msgstr "chute de varredura" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157389,7 +139407,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "biojutsu counter" -msgstr "contador de biojutsu" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157403,7 +139421,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "quick slash" -msgstr "barra rápida" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157417,7 +139435,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "biojutsu impale" -msgstr "biojutsu empalar" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157431,7 +139449,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "wide strike" -msgstr "greve larga" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157445,7 +139463,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Drunk feint" -msgstr "Finge bêbado" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157459,7 +139477,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Drunk counter" -msgstr "Contador bêbado" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157473,7 +139491,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Fencing lunge" -msgstr "Esgrima, lunge" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157487,7 +139505,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Fencing thrust" -msgstr "Esgrima" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157501,7 +139519,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Fencing stop thrust" -msgstr "Esgrima, parada, empurrão" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157515,7 +139533,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Round strike" -msgstr "Greve redonda" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157529,7 +139547,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Fan strike" -msgstr "De greve" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157543,7 +139561,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Snap strike" -msgstr "Greve de pressão" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157557,7 +139575,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Combination strike" -msgstr "Greve de combinação" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157571,7 +139589,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "free strike" -msgstr "greve livre" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157585,7 +139603,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "puño strike" -msgstr "punho de soco" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157599,7 +139617,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "knee strike" -msgstr "joelhada" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157613,7 +139631,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "hamstring" -msgstr "isquiotibiais" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157627,7 +139645,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Vicious Precision" -msgstr "Precisão viciosa" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157641,7 +139659,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Silat Brutality" -msgstr "Brutalidade de Silat" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157650,7 +139668,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Dirty Hit" -msgstr "Bateu Sujo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157664,7 +139682,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Tiger Takedown" -msgstr "Tiger Takedown" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157678,7 +139696,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Leopard Fist" -msgstr "Punho Leopardo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157692,7 +139710,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Leopard Swipe" -msgstr "Furto de leopardo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157706,7 +139724,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Leopard Foresight" -msgstr "Previsão leopardo" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157720,7 +139738,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Dragon Snatch" -msgstr "Dragon Snatch" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157762,7 +139780,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Dragon Sweeper" -msgstr "Vassoura de dragão" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157776,7 +139794,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Dragon Strike" -msgstr "Greve de Dragão" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157790,7 +139808,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Crane Wing" -msgstr "Asa de guindaste" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157804,7 +139822,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Crane Flap" -msgstr "Guindaste" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157818,7 +139836,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Crane Strike" -msgstr "Greve de guindaste" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157832,7 +139850,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Snake Snap" -msgstr "Snake Snap" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157846,7 +139864,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Snake Slide" -msgstr "Corrediça de Serpente" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157860,7 +139878,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Snake Slither" -msgstr "Snake Slither" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157874,7 +139892,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Snake Strike" -msgstr "Golpe de Serpente" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157893,11 +139911,11 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Power Hit" -msgstr "Power Hit" +msgstr "" #: lang/json/technique_from_json.py msgid "Hit Them Back" -msgstr "Acerte-os de volta" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157911,7 +139929,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Trip" -msgstr "Viagem" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157925,7 +139943,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Flowing Water Cut" -msgstr "Corte de Água Corrente" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157939,7 +139957,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Red Leaf's Cut" -msgstr "Corte da Folha Vermelha" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157953,7 +139971,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Fire and Stone's Cut" -msgstr "Fogo e Corte de Pedra" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157967,7 +139985,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "In-One Timing" -msgstr "Sincronização In-One" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157981,7 +139999,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "slow strike" -msgstr "greve lenta" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -157995,7 +140013,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "phasing strike" -msgstr "greve de fase" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -158009,7 +140027,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Push" -msgstr "Empurrar" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -158033,7 +140051,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Skewer" -msgstr "Espeto" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -158130,7 +140148,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "displace and counter" -msgstr "deslocar e contrariar" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -158144,7 +140162,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "sweeping strike" -msgstr "greve arrebatadora" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -158158,7 +140176,7 @@ msgstr "" #: lang/json/technique_from_json.py msgid "vicious strike" -msgstr "greve viciosa" +msgstr "" #: lang/json/technique_from_json.py #, python-format @@ -158714,7 +140732,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "empty space" -msgstr "espaço vazio" +msgstr "" #. ~ Description for empty space #: lang/json/terrain_from_json.py @@ -158728,7 +140746,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "half-built brick wall" -msgstr "parede de tijolo meio construída" +msgstr "" #. ~ Description for half-built brick wall #: lang/json/terrain_from_json.py @@ -158736,16 +140754,14 @@ msgid "" "Half of a brick wall, looks like it still requires some more resources and " "effort before being considered a real wall." msgstr "" -" Metade de uma parede de tijolos parece que ainda requer mais recursos e " -"esforços antes de ser considerada uma parede real." #: lang/json/terrain_from_json.py msgid "bash!" -msgstr "bater!" +msgstr "" #: lang/json/terrain_from_json.py msgid "brick wall" -msgstr "parede de tijolos" +msgstr "" #. ~ Description for brick wall #: lang/json/terrain_from_json.py @@ -158753,12 +140769,10 @@ msgid "" "A solid brick wall, sturdy enough to support a roof with enough walls and " "keep out any unwanted visitors." msgstr "" -" Uma sólida parede de tijolos, robusta o suficiente para suportar um telhado" -" com paredes suficientes e impedir a entrada de visitantes indesejados." #: lang/json/terrain_from_json.py msgid "simple metal wall" -msgstr "parede de metal simples" +msgstr "" #. ~ Description for simple metal wall #: lang/json/terrain_from_json.py @@ -158766,12 +140780,10 @@ msgid "" "A relatively simple wall made of scraped together metal. It's still capable" " of blocking intruders and supporting a roof with adjacent walls." msgstr "" -" Uma parede relativamente simples feita de metal raspado. Ainda é capaz de " -"bloquear intrusos e apoiar um telhado com paredes adjacentes." #: lang/json/terrain_from_json.py msgid "half-built simple metal wall" -msgstr "parede metálica simples parcialmente construída" +msgstr "" #. ~ Description for half-built simple metal wall #: lang/json/terrain_from_json.py @@ -158779,12 +140791,10 @@ msgid "" "A partially built makeshift wall of metal that could potentially support a " "roof if it were completed." msgstr "" -" Uma parede de metal improvisada parcialmente construída que poderia " -"sustentar um telhado se estivesse concluída." #: lang/json/terrain_from_json.py msgid "simple concrete wall" -msgstr "muro de concreto simples" +msgstr "" #. ~ Description for simple concrete wall #: lang/json/terrain_from_json.py @@ -158793,13 +140803,10 @@ msgid "" "than capable of supporting a roof, as well as keeping out most anything, " "save for vehicles." msgstr "" -" Um muro de concreto durável e uniforme, bastante monótono e sem decoração. " -"Mais do que capaz de suportar um telhado, bem como manter a maioria de " -"qualquer coisa, economize para veículos." #: lang/json/terrain_from_json.py msgid "half-built simple concrete wall" -msgstr "muro de concreto simples parcialmente construído" +msgstr "" #. ~ Description for half-built simple concrete wall #: lang/json/terrain_from_json.py @@ -158807,12 +140814,10 @@ msgid "" "A partially poured concrete wall that could probably keep anything behind it" " quite safe if it were finished." msgstr "" -" Um muro de concreto parcialmente derramado que provavelmente poderia manter" -" qualquer coisa para trás, bastante seguro se estivesse terminado." #: lang/json/terrain_from_json.py msgid "reinforced concrete wall" -msgstr "muro de concreto armado" +msgstr "" #. ~ Description for reinforced concrete wall #: lang/json/terrain_from_json.py @@ -158821,18 +140826,14 @@ msgid "" "for supporting multi-level buildings, only serious explosives and high-speed" " impacts would be capable of damaging this wall." msgstr "" -" Uma parede extremamente resistente, preenchida com concreto e vergalhões. " -"Mais adequado para suportar edifícios de vários níveis, apenas explosivos " -"sérios e impactos de alta velocidade seriam capazes de danificar essa " -"parede." #: lang/json/terrain_from_json.py msgid "scrrrash!" -msgstr "scrrrash!" +msgstr "" #: lang/json/terrain_from_json.py msgid "half-built reinforced concrete wall" -msgstr "muro de concreto armado semi-construído" +msgstr "" #. ~ Description for half-built reinforced concrete wall #: lang/json/terrain_from_json.py @@ -158841,13 +140842,10 @@ msgid "" "practical for supporting roofs or shelter. It appears to need more " "resources before being considered complete." msgstr "" -" Concreto derramado com vergalhões colocados metodicamente para fora, o que " -"não é prático para suportar telhados ou abrigos. Parece precisar de mais " -"recursos antes de ser considerado completo." #: lang/json/terrain_from_json.py msgid "rebar cage" -msgstr "gaiola de vergalhões" +msgstr "" #. ~ Description for rebar cage #: lang/json/terrain_from_json.py @@ -158855,13 +140853,10 @@ msgid "" "A structural support system made of rebar that appears to be the early " "stages of a reinforced concrete wall, just missing the poured concrete." msgstr "" -" Um sistema de suporte estrutural feito de vergalhões que parece ser os " -"estágios iniciais de uma parede de concreto armado, faltando apenas o " -"concreto derramado." #: lang/json/terrain_from_json.py msgid "concrete floor" -msgstr "Piso de concreto" +msgstr "" #. ~ Description for concrete floor #: lang/json/terrain_from_json.py @@ -158870,13 +140865,10 @@ msgid "" " the outdoors but roof collapse is possible if supporting walls are broken " "down." msgstr "" -" Um piso de concreto nu e frio com o telhado correspondente, ainda poderia " -"isolar do exterior, mas o colapso do telhado é possível se as paredes de " -"apoio forem quebradas." #: lang/json/terrain_from_json.py msgid "SMASH!" -msgstr "ESMAGAR!" +msgstr "" #. ~ Description for concrete floor #: lang/json/terrain_from_json.py @@ -158888,7 +140880,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "concrete floor, overhead light" -msgstr "piso de concreto, luz indireta" +msgstr "" #. ~ Description for concrete floor, overhead light #: lang/json/terrain_from_json.py @@ -158896,12 +140888,10 @@ msgid "" "A bare and cold concrete floor with a still-functioning light attached to " "the ceiling above." msgstr "" -" Um piso de concreto nu e frio com uma luz ainda em funcionamento ligada ao " -"teto." #: lang/json/terrain_from_json.py msgid "small rebar roof cage" -msgstr "pequena gaiola de telhado de vergalhões" +msgstr "" #. ~ Description for small rebar roof cage #: lang/json/terrain_from_json.py @@ -158909,16 +140899,14 @@ msgid "" "A series of structural support crafted from rebar in order to allow the " "pouring of concrete for a more stable floor and roof." msgstr "" -" Uma série de suporte estrutural foi feita a partir de vergalhões para " -"permitir o despejo de concreto para um piso e teto mais estáveis." #: lang/json/terrain_from_json.py msgid "SCRRRASH!" -msgstr "SCRRRASH!" +msgstr "" #: lang/json/terrain_from_json.py msgid "reinforced concrete floor" -msgstr "piso de concreto armado" +msgstr "" #. ~ Description for reinforced concrete floor #: lang/json/terrain_from_json.py @@ -158928,14 +140916,10 @@ msgid "" "matching roof, it still requires supporting walls, otherwise it may very " "well cave in." msgstr "" -" Assoalho extremamente resiliente feito de vergalhão cuidadosamente colocado" -" e concreto derramado, capaz de fornecer proteção contra os elementos. " -"Quanto ao telhado correspondente, ainda requer paredes de apoio, caso " -"contrário, pode muito bem desmoronar." #: lang/json/terrain_from_json.py msgid "rebar roof cage" -msgstr "gaiola de telhado do vergalhão" +msgstr "" #. ~ Description for rebar roof cage #: lang/json/terrain_from_json.py @@ -158943,12 +140927,10 @@ msgid "" "A network of architecturally sound rebar in order to support a floor and " "roof, looks like it's missing the poured concrete." msgstr "" -" Uma rede de vergalhões arquitetonicamente sólidos para suportar um piso e " -"um telhado parece que falta o concreto derramado." #: lang/json/terrain_from_json.py msgid "half-built reinforced concrete floor" -msgstr "piso de concreto armado de meia altura" +msgstr "" #. ~ Description for half-built reinforced concrete floor #: lang/json/terrain_from_json.py @@ -158956,12 +140938,10 @@ msgid "" "Unfinished series of rebar and poured concrete; the floor hasn't been " "smoothed and the roof isn't quite filled in yet." msgstr "" -" Série inacabada de vergalhões e concreto derramado; o chão não foi alisado " -"e o telhado ainda não está totalmente preenchido." #: lang/json/terrain_from_json.py msgid "dirt" -msgstr "sujeira" +msgstr "" #. ~ Description for dirt #: lang/json/terrain_from_json.py @@ -158969,12 +140949,10 @@ msgid "" "It's dirt. Looks like some fine soil for tillage. Could also be dug out " "for construction projects." msgstr "" -" É sujeira. Parece um bom solo para o cultivo. Também poderia ser escavado " -"para projetos de construção." #: lang/json/terrain_from_json.py msgid "thump" -msgstr "baque" +msgstr "" #. ~ Description for sand #: lang/json/terrain_from_json.py @@ -158982,12 +140960,10 @@ msgid "" "A large area of fine sand that could be useful in a number of ways, if it " "was extracted properly." msgstr "" -" Uma grande área de areia fina que pode ser útil de várias maneiras, se foi " -"extraída corretamente." #: lang/json/terrain_from_json.py msgid "clay" -msgstr "argila" +msgstr "" #. ~ Description for clay #: lang/json/terrain_from_json.py @@ -158995,12 +140971,10 @@ msgid "" "A field full of malleable clay, suitable for kiln firing if it was extracted" " properly." msgstr "" -" Um campo cheio de argila maleável, adequado para a queima do forno se fosse" -" extraído corretamente." #: lang/json/terrain_from_json.py msgid "mound of dirt" -msgstr "monte de sujeira" +msgstr "" #. ~ Description for mound of dirt #: lang/json/terrain_from_json.py @@ -159008,20 +140982,16 @@ msgid "" "An area of heaped dirt, not easily traversable. If examined more closely, " "it's quite favorable for planting seeds and the like." msgstr "" -" Uma área de sujeira acumulada, não facilmente atravessável. Se examinado " -"mais de perto, é bastante favorável para o plantio de sementes e afins." #. ~ Description for mound of dirt #: lang/json/terrain_from_json.py msgid "" "A giant hill of dirt that looks like you could crawl inside for shelter." msgstr "" -" Um monte gigante de sujeira que parece que você pode rastejar para dentro " -"em busca de abrigo." #: lang/json/terrain_from_json.py msgid "shallow pit" -msgstr "poço raso" +msgstr "" #. ~ Description for shallow pit #: lang/json/terrain_from_json.py @@ -159029,12 +140999,10 @@ msgid "" "A pit that could be dug even deeper or filled up. Also useful as a starting" " foundation for some constructions." msgstr "" -" Um buraco que poderia ser cavado ainda mais fundo ou preenchido. Também é " -"útil como base inicial para algumas construções." #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "pit" -msgstr "Cova" +msgstr "" #. ~ Description for pit #: lang/json/terrain_from_json.py @@ -159044,15 +141012,10 @@ msgid "" "enough for more advanced construction projects, and possibly to reach " "groundwater if constructed properly." msgstr "" -" Um buraco íngreme que poderia ferir gravemente alguma coisa se ela caísse, " -"potencialmente fatal se estivesse cheia de coisas afiadas e perigosas. " -"Profundamente o suficiente para projetos de construção mais avançados e, " -"possivelmente, para alcançar as águas subterrâneas, se construído " -"adequadamente." #: lang/json/terrain_from_json.py msgid "corpse filled pit" -msgstr "poço cheio de cadáver" +msgstr "" #. ~ Description for corpse filled pit #: lang/json/terrain_from_json.py @@ -159060,12 +141023,10 @@ msgid "" "A giant trench full of corpses, maybe even a mass graveyard. The bodies " "could be dug out but none of it looks remotely usable." msgstr "" -" Uma vala gigante cheia de cadáveres, talvez até um cemitério em massa. Os " -"corpos poderiam ser escavados, mas nada disso parece remotamente utilizável." #: lang/json/terrain_from_json.py msgid "covered pit" -msgstr "cova encoberta" +msgstr "" #. ~ Description for covered pit #: lang/json/terrain_from_json.py @@ -159079,7 +141040,7 @@ msgstr "" #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "spiked pit" -msgstr "poço de espetos" +msgstr "" #. ~ Description for spiked pit #: lang/json/terrain_from_json.py @@ -159087,12 +141048,10 @@ msgid "" "A narrow trench full of very pointy things that would easily puncture a " "body." msgstr "" -" Uma trincheira estreita cheia de coisas muito pontudas que facilmente " -"perfurariam um corpo." #: lang/json/terrain_from_json.py msgid "covered spiked pit" -msgstr "poço de espetos encoberto" +msgstr "" #. ~ Description for covered spiked pit #: lang/json/terrain_from_json.py @@ -159107,7 +141066,7 @@ msgstr "" #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "glass pit" -msgstr "poço de vidro" +msgstr "" #. ~ Description for glass pit #: lang/json/terrain_from_json.py @@ -159115,12 +141074,10 @@ msgid "" "Looks like a ton of broken glass was dumped into this pit, maybe not fatal " "to fall in but wouldn't be pleasant to try to crawl out." msgstr "" -" Parece que uma tonelada de vidro quebrado foi despejada nesse buraco, " -"talvez não fatal cair, mas não seria agradável tentar sair." #: lang/json/terrain_from_json.py msgid "covered glass pit" -msgstr "poço de vidro coberto" +msgstr "" #. ~ Description for covered glass pit #: lang/json/terrain_from_json.py @@ -159135,7 +141092,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "rock floor" -msgstr "chão de pedra" +msgstr "" #. ~ Description for rock floor #: lang/json/terrain_from_json.py @@ -159143,12 +141100,10 @@ msgid "" "A relatively flat area of rock and stone. Looks stable enough to be mined " "with the proper mining gear." msgstr "" -" Uma área relativamente plana de rocha e pedra. Parece estável o suficiente " -"para ser extraído com o equipamento de mineração adequado." #: lang/json/terrain_from_json.py msgid "woodchips" -msgstr "lascas de madeira" +msgstr "" #. ~ Description for woodchips #: lang/json/terrain_from_json.py @@ -159156,17 +141111,15 @@ msgid "" "Small splinters of wood laid out in a layer to prevent unwanted plants from " "growing." msgstr "" -" Pequenas lascas de madeira colocadas em uma camada para evitar o " -"crescimento de plantas indesejadas." #: lang/json/terrain_from_json.py msgid "moss" -msgstr "musgo" +msgstr "" #. ~ Description for moss #: lang/json/terrain_from_json.py msgid "Moist spongy moss." -msgstr "Musgo esponjoso úmido." +msgstr "" #. ~ Description for grass #: lang/json/terrain_from_json.py @@ -159175,13 +141128,10 @@ msgid "" "short enough would destroy the root system, causing this area to turn into a" " patch of dirt." msgstr "" -" Uma área de bluegrass hardy de Kentucky sobre o tornozelo alto. Cortar a " -"grama curto o suficiente destruiria o sistema radicular, fazendo com que " -"essa área se transformasse em um pedaço de terra." #: lang/json/terrain_from_json.py msgid "white grass" -msgstr "grama branca" +msgstr "" #. ~ Description for white grass #: lang/json/terrain_from_json.py @@ -159189,57 +141139,55 @@ msgid "" "A section of Kentucky bluegrass covered in white latex-based paint, with " "neat lines designed for recreational sports." msgstr "" -" Uma seção de bluegrass de Kentucky coberta de tinta branca à base de látex," -" com linhas simples projetadas para esportes recreativos." #: lang/json/terrain_from_json.py msgid "long grass" -msgstr "grama longa" +msgstr "" #. ~ Description for long grass #: lang/json/terrain_from_json.py msgid "Long shaggy grass about shin high." -msgstr "Grama desgrenhada longa sobre a canela alta." +msgstr "" #: lang/json/terrain_from_json.py msgid "tall grass" -msgstr "grama alta" +msgstr "" #. ~ Description for tall grass #: lang/json/terrain_from_json.py msgid "Tall grass about head high." -msgstr "Grama alta sobre a cabeça alta." +msgstr "" #: lang/json/terrain_from_json.py msgid "dead grass" -msgstr "grama morta" +msgstr "" #. ~ Description for dead grass #: lang/json/terrain_from_json.py msgid "Long shaggy grass that hasn't been cut recently." -msgstr "Grama desgrenhada longa que não foi cortada recentemente." +msgstr "" #: lang/json/terrain_from_json.py msgid "golf green" -msgstr "golfe verde" +msgstr "" #. ~ Description for golf green #: lang/json/terrain_from_json.py msgid "Grass mowed very short and neat." -msgstr "Grama cortada muito curta e arrumada." +msgstr "" #: lang/json/terrain_from_json.py msgid "golf hole" -msgstr "buraco de golfe" +msgstr "" #. ~ Description for golf hole #: lang/json/terrain_from_json.py msgid "A small plastic cup embedded in the grass." -msgstr "Um pequeno copo de plástico embutido na grama." +msgstr "" #: lang/json/terrain_from_json.py msgid "metal floor" -msgstr "chão de metal" +msgstr "" #. ~ Description for metal floor #: lang/json/terrain_from_json.py @@ -159247,12 +141195,10 @@ msgid "" "High-quality and tough checkered flooring to reduce risk of slips and falls," " with a matching roof." msgstr "" -" Piso xadrez de alta qualidade e resistência para reduzir o risco de " -"escorregões e quedas, com um telhado correspondente." #: lang/json/terrain_from_json.py msgid "pavement" -msgstr "pavimento" +msgstr "" #. ~ Description for pavement #: lang/json/terrain_from_json.py @@ -159260,12 +141206,10 @@ msgid "" "A segment of asphalt, slowly degrading from cracks, frost heaves and lack of" " maintenance." msgstr "" -" Um segmento de asfalto, degradando-se lentamente de fissuras, geadas e " -"falta de manutenção." #: lang/json/terrain_from_json.py msgid "yellow pavement" -msgstr "pavimento amarelo" +msgstr "" #. ~ Description for yellow pavement #: lang/json/terrain_from_json.py @@ -159273,13 +141217,10 @@ msgid "" "Streaks of carefully aligned yellow paint mark the road to inform drivers " "not to cross. No one is enforcing these rules anymore." msgstr "" -" Listras de tinta amarela cuidadosamente alinhada marcam a estrada para " -"informar os motoristas para não cruzarem. Ninguém está impondo essas regras " -"mais." #: lang/json/terrain_from_json.py msgid "sidewalk" -msgstr "calçada" +msgstr "" #. ~ Description for sidewalk #: lang/json/terrain_from_json.py @@ -159287,8 +141228,6 @@ msgid "" "An area of common poured concrete, damaged by frost heaves and large cracks " "due to lack of maintenance." msgstr "" -" Uma área de concreto comum despejado, danificado por geadas e grandes " -"rachaduras devido à falta de manutenção." #. ~ Description for concrete #: lang/json/terrain_from_json.py @@ -159296,12 +141235,10 @@ msgid "" "A newer segment of poured concrete with surface finishes for aesthetics and " "resistance to freeze-thaw cycles." msgstr "" -" Um novo segmento de concreto derramado com acabamentos de superfície para " -"estética e resistência aos ciclos congelamento-descongelamento." #: lang/json/terrain_from_json.py msgid "floor" -msgstr "chão" +msgstr "" #. ~ Description for floor #: lang/json/terrain_from_json.py @@ -159309,8 +141246,6 @@ msgid "" "Interlocking wooden tiles that are more than likely treated against fire, " "with wooden posts and beams supporting a roof." msgstr "" -" Telhas de madeira interligadas que são mais do que provavelmente tratadas " -"contra o fogo, com postes e vigas de madeira que sustentam um telhado." #: lang/json/terrain_from_json.py msgid "wooden floor" @@ -159325,16 +141260,16 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "primitive floor" -msgstr "chão primitivo" +msgstr "" #. ~ Description for primitive floor #: lang/json/terrain_from_json.py msgid "Timber floor and supports, holding up a sod roof." -msgstr "Piso de madeira e suportes, segurando um telhado de grama." +msgstr "" #: lang/json/terrain_from_json.py msgid "simple metal floor" -msgstr "piso de metal simples" +msgstr "" #. ~ Description for simple metal floor #: lang/json/terrain_from_json.py @@ -159342,12 +141277,10 @@ msgid "" "A crudely welded together floor of metal with steel trusses and supporting " "girders." msgstr "" -" Um piso grosseiramente soldado de metal com treliças de aço e vigas de " -"suporte." #: lang/json/terrain_from_json.py msgid "waxed floor" -msgstr "chão encerado" +msgstr "" #. ~ Description for waxed floor #: lang/json/terrain_from_json.py @@ -159355,18 +141288,15 @@ msgid "" "Hardwood flooring that has been treated with chemicals to improve slip " "resistance and sliding, commonly for recreational sports." msgstr "" -" Piso de madeira que foi tratado com produtos químicos para melhorar a " -"resistência ao deslizamento e deslizamento, geralmente para esportes " -"recreativos." #: lang/json/terrain_from_json.py msgid "dirt floor" -msgstr "chão sujo" +msgstr "" #. ~ Description for dirt floor #: lang/json/terrain_from_json.py msgid "Floor consisting of finely mixed earth that has been tamped down." -msgstr "Pavimento composto por terra finamente misturada que foi socada." +msgstr "" #. ~ Description for dirt floor #: lang/json/terrain_from_json.py @@ -159377,7 +141307,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "metal grate" -msgstr "grelha de metal" +msgstr "" #. ~ Description for metal grate #: lang/json/terrain_from_json.py @@ -159385,12 +141315,10 @@ msgid "" "A type of walkway that can be used as protective covering over drains or " "even used as a filter." msgstr "" -" Um tipo de passarela que pode ser usado como cobertura protetora sobre " -"drenos ou até mesmo usado como filtro." #: lang/json/terrain_from_json.py msgid "slime" -msgstr "lodo" +msgstr "" #. ~ Description for slime #: lang/json/terrain_from_json.py @@ -159398,12 +141326,10 @@ msgid "" "A disgusting and slippery mess that could be used to stash things because " "who'd want to touch it?" msgstr "" -" Uma bagunça repugnante e escorregadia que poderia ser usada para esconder " -"as coisas, porque quem iria querer tocá-lo?" #: lang/json/terrain_from_json.py msgid "walkway" -msgstr "passarela" +msgstr "" #. ~ Description for walkway #: lang/json/terrain_from_json.py @@ -159411,12 +141337,10 @@ msgid "" "A metallic bridge commonly used in industrial settings to meet specified " "safety standards." msgstr "" -" Uma ponte metálica comumente usada em ambientes industriais para atender " -"aos padrões de segurança especificados." #: lang/json/terrain_from_json.py msgid "utility light" -msgstr "luz de utilidade" +msgstr "" #. ~ Description for utility light #: lang/json/terrain_from_json.py @@ -159424,12 +141348,10 @@ msgid "" "An industrial flood light set up to illuminate the surroundings. Smashing " "it doesn't seem like it'd produce any worthwhile salvage." msgstr "" -" Um holofote industrial criado para iluminar os arredores. Esmagar isso não " -"parece produzir nenhum resgate que valha a pena." #: lang/json/terrain_from_json.py msgid "half-built log wall" -msgstr "parede de madeira semi-construída" +msgstr "" #. ~ Description for half-built log wall #: lang/json/terrain_from_json.py @@ -159437,13 +141359,10 @@ msgid "" "A half-constructed wall of notched logs that interlock to provide stability." " Needs a few more logs to hold up a roof. Looks flammable." msgstr "" -" Uma parede parcialmente construída de troncos entalhados que se interligam " -"para fornecer estabilidade. Precisa de mais alguns troncos para sustentar um" -" telhado. Parece inflamável." #: lang/json/terrain_from_json.py msgid "log wall" -msgstr "parede de log" +msgstr "" #. ~ Description for log wall #: lang/json/terrain_from_json.py @@ -159451,12 +141370,10 @@ msgid "" "A tall wall of timber suitable for housing and insulating from the weather." " Quite flammable." msgstr "" -" Uma parede alta de madeira adequada para habitação e isolamento do tempo. " -"Bastante inflamável." #: lang/json/terrain_from_json.py msgid "chipped log wall" -msgstr "parede de madeira lascada" +msgstr "" #. ~ Description for chipped log wall #: lang/json/terrain_from_json.py @@ -159464,12 +141381,10 @@ msgid "" "A moderately damaged wall, could probably be patched up with some planks and" " nails." msgstr "" -" Uma parede moderadamente danificada, provavelmente poderia ser remendada " -"com algumas tábuas e pregos." #: lang/json/terrain_from_json.py msgid "broken log wall" -msgstr "parede de log quebrado" +msgstr "" #. ~ Description for broken log wall #: lang/json/terrain_from_json.py @@ -159478,13 +141393,10 @@ msgid "" "Looks repairable if the damage was replaced and patched together with nails " "and planks." msgstr "" -" Uma parede de madeira destruída, com apenas um tronco de apoio, pronta para" -" desmoronar. Parece reparável se o dano foi substituído e remendado " -"juntamente com pregos e tábuas." #: lang/json/terrain_from_json.py msgid "palisade wall" -msgstr "parede de paliçada" +msgstr "" #. ~ Description for palisade wall #: lang/json/terrain_from_json.py @@ -159492,12 +141404,10 @@ msgid "" "An age-old type of fortification consisting of hefty lumber staked into the " "ground and cabled together." msgstr "" -" Um antigo tipo de fortificação que consistia em madeira pesada amarrada ao " -"chão e conectada." #: lang/json/terrain_from_json.py msgid "palisade gate" -msgstr "portão de paliçada" +msgstr "" #. ~ Description for palisade gate #: lang/json/terrain_from_json.py @@ -159506,9 +141416,6 @@ msgid "" "expanded upon. Can act as a door if some type of pulley system were rigged " "on an adjacent palisade wall." msgstr "" -" Uma grande porta consistindo de longas toras conectadas, que poderiam ser " -"expandidas. Pode atuar como uma porta se algum tipo de sistema de polias for" -" montado em uma parede de paliçada adjacente." #: lang/json/terrain_from_json.py msgid "open palisade gate" @@ -159520,12 +141427,10 @@ msgid "" "A hanging palisade gate, hoisted by a nearby pulley system. Probably " "shouldn't be underneath when it comes down." msgstr "" -" Um portão de paliçada suspenso, içado por um sistema de roldanas nas " -"proximidades. Provavelmente não deveria estar por baixo quando desce." #: lang/json/terrain_from_json.py msgid "half-built wall" -msgstr "parede semi-construída" +msgstr "" #. ~ Description for half-built wall #: lang/json/terrain_from_json.py @@ -159540,7 +141445,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "wattle-and-daub wall" -msgstr "parede de pau-a-pique" +msgstr "" #. ~ Description for wattle-and-daub wall #: lang/json/terrain_from_json.py @@ -159552,7 +141457,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" -msgstr "parede de pau-a-pique quebrado" +msgstr "" #. ~ Description for broken wattle-and-daub wall #: lang/json/terrain_from_json.py @@ -159563,7 +141468,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" -msgstr "parede de pau a pique" +msgstr "" #. ~ Description for half-built wattle-and-daub wall #: lang/json/terrain_from_json.py @@ -159575,7 +141480,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "wooden wall" -msgstr "parede de madeira" +msgstr "" #. ~ Description for wooden wall #: lang/json/terrain_from_json.py @@ -159583,12 +141488,10 @@ msgid "" "A finished wall of planks and support beams, capable of supporting an upper " "level or roof. Still highly flammable." msgstr "" -" Uma parede acabada de tábuas e vigas de suporte, capaz de suportar um nível" -" superior ou telhado. Ainda altamente inflamável." #: lang/json/terrain_from_json.py msgid "chipped wood wall" -msgstr "parede de madeira lascada" +msgstr "" #. ~ Description for chipped wood wall #: lang/json/terrain_from_json.py @@ -159601,7 +141504,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "broken wood wall" -msgstr "parede de madeira quebrada" +msgstr "" #. ~ Description for broken wood wall #: lang/json/terrain_from_json.py @@ -159609,12 +141512,10 @@ msgid "" "A number of planks are missing and the structure is beginning to sag and " "fall apart. It's going to need quite a bit of work to repair this wall." msgstr "" -" Um número de tábuas está faltando e a estrutura está começando a cair e " -"desmoronar. Vai precisar de muito trabalho para consertar esse muro." #: lang/json/terrain_from_json.py msgid "wall" -msgstr "parede" +msgstr "" #. ~ Description for wall #: lang/json/terrain_from_json.py @@ -159624,14 +141525,10 @@ msgid "" "cream color, it could use more vibrant paint. Appears as though the " "material is still flammable." msgstr "" -" A parede estereotipada com estrutura de suporte de madeira preenchida com " -"isolamento e drywalled. O trabalho de pintura é a cor creme muito comum e " -"neutra, ou pode usar tinta mais vibrante. Aparece como se o material ainda " -"fosse inflamável." #: lang/json/terrain_from_json.py msgid "concrete wall" -msgstr "parede de concreto" +msgstr "" #. ~ Description for concrete wall #: lang/json/terrain_from_json.py @@ -159641,14 +141538,10 @@ msgid "" "times. Not ideal for multi-story buildings, but still capable of supporting" " a roof." msgstr "" -" Um design esteticamente agradável com linhas simples, este tipo de concreto" -" foi usado com uma mistura química mais fraca para ter tempos de ajuste mais" -" rápidos. Não é ideal para edifícios de vários andares, mas ainda é capaz de" -" suportar um telhado." #: lang/json/terrain_from_json.py msgid "metal wall" -msgstr "parede de metal" +msgstr "" #. ~ Description for metal wall #: lang/json/terrain_from_json.py @@ -159658,15 +141551,10 @@ msgid "" " elements as well as hostile forces. Blast load rated and extremely fire-" "retardant, breaching will require specialized tools or industrial vehicles." msgstr "" -" Uma folha grossa fabricada industrialmente cuidadosamente posicionada e " -"unida perfeitamente com o vedante perimetral, esta parede é capaz de " -"resistir a elementos extremos assim como a forças hostis. Com carga de " -"explosão classificada e extremamente resistente ao fogo, a abertura exigirá " -"ferramentas especializadas ou veículos industriais." #: lang/json/terrain_from_json.py msgid "glass wall" -msgstr "parede de vidro" +msgstr "" #. ~ Description for glass wall #: lang/json/terrain_from_json.py @@ -159675,13 +141563,10 @@ msgid "" "fragile. Some contain glass break sensors or window sensors that trigger if" " the glass is tampered." msgstr "" -" Uma barreira feita de vidro, nada complicado e parece extremamente frágil. " -"Alguns contêm sensores de quebra de vidro ou sensores de janela que acionam " -"se o vidro for adulterado." #: lang/json/terrain_from_json.py msgid "reinforced glass" -msgstr "vidro reforçado" +msgstr "" #. ~ Description for reinforced glass #: lang/json/terrain_from_json.py @@ -159690,13 +141575,10 @@ msgid "" "strengthening the structural properties. Still weaker than other types of " "walls, and not made to support a roof either." msgstr "" -" Um painel de vidro mais espesso com finos fios de metal embutidos, " -"fortalecendo as propriedades estruturais. Ainda mais fraco que outros tipos " -"de paredes, e também não feito para suportar um telhado." #: lang/json/terrain_from_json.py msgid "reinforced glass with closed shutters" -msgstr "vidro reforçado com persianas fechadas" +msgstr "" #. ~ Description for reinforced glass with closed shutters #: lang/json/terrain_from_json.py @@ -159706,15 +141588,10 @@ msgid "" "extreme weather. Looks like it can only be opened from the inside. Even " "with the installed shutters, it isn't feasible in supporting a roof." msgstr "" -" Uma camada secundária de proteção sobre o vidro reforçado, essas persianas " -"de metal são normalmente usadas para afastar criminosos ou proteger contra " -"danos causados por condições meteorológicas extremas. Parece que só pode ser" -" aberto por dentro. Mesmo com as persianas instaladas, não é viável suportar" -" um telhado." #: lang/json/terrain_from_json.py msgid "reinforced glass with open shutters" -msgstr "vidro reforçado com persianas abertas" +msgstr "" #. ~ Description for reinforced glass with open shutters #: lang/json/terrain_from_json.py @@ -159723,13 +141600,10 @@ msgid "" "glass. It appears as though the metal shutters can only be activated from " "the inside." msgstr "" -" Persianas metálicas suspensas que não foram implantadas, expondo o vidro " -"reforçado. Parece que as persianas de metal só podem ser ativadas por " -"dentro." #: lang/json/terrain_from_json.py msgid "closed reinforced glass door" -msgstr "porta de vidro reforçada fechada" +msgstr "" #. ~ Description for closed reinforced glass door #: lang/json/terrain_from_json.py @@ -159737,12 +141611,10 @@ msgid "" "A closed glass door reinforced with woven steel wires in a stylish, but " "practical pattern." msgstr "" -" Uma porta de vidro fechada reforçada com fios de aço em um padrão elegante," -" mas prático." #: lang/json/terrain_from_json.py msgid "open reinforced glass door" -msgstr "porta de vidro reforçada aberta" +msgstr "" #. ~ Description for open reinforced glass door #: lang/json/terrain_from_json.py @@ -159750,12 +141622,10 @@ msgid "" "A glass door reinforced with woven steel wires in a stylish, but practical " "pattern. Yep, it's open." msgstr "" -" Uma porta de vidro reforçada com fios de aço trançado em um padrão " -"elegante, mas prático. Sim, está aberto." #: lang/json/terrain_from_json.py msgid "metal bars" -msgstr "barras de metal" +msgstr "" #. ~ Description for metal bars #: lang/json/terrain_from_json.py @@ -159763,12 +141633,10 @@ msgid "" "Thick, heavy bars from the floor to the ceiling, interlaced wall to wall. " "Not made to support roofs, but great for blocking paths." msgstr "" -" Barras espessas e pesadas, do chão até o teto, entrelaçadas de parede a " -"parede. Não feito para suportar telhados, mas ótimo para bloquear caminhos." #: lang/json/terrain_from_json.py msgid "closed wood door" -msgstr "porta de madeira fechada" +msgstr "" #. ~ Description for closed wood door #: lang/json/terrain_from_json.py @@ -159776,12 +141644,10 @@ msgid "" "A standard wooden door that doesn't look very resilient. It'd probably burn" " easily, too." msgstr "" -" Uma porta de madeira padrão que não parece muito resistente. Provavelmente " -"iria queimar facilmente também." #: lang/json/terrain_from_json.py msgid "open wood door" -msgstr "porta de madeira aberta" +msgstr "" #. ~ Description for open wood door #: lang/json/terrain_from_json.py @@ -159789,12 +141655,10 @@ msgid "" "A standard wooden door that doesn't look very resilient. It'd probably burn" " easily, too. This one is wide open." msgstr "" -" Uma porta de madeira padrão que não parece muito resistente. Provavelmente " -"iria queimar facilmente também. Este está bem aberto." #: lang/json/terrain_from_json.py msgid "damaged wood door" -msgstr "porta de madeira danificada" +msgstr "" #. ~ Description for damaged wood door #: lang/json/terrain_from_json.py @@ -159808,7 +141672,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "empty door frame" -msgstr "moldura de porta vazia" +msgstr "" #. ~ Description for empty door frame #: lang/json/terrain_from_json.py @@ -159821,7 +141685,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "closed glass door" -msgstr "porta de vidro fechada" +msgstr "" #. ~ Description for closed glass door #: lang/json/terrain_from_json.py @@ -159829,12 +141693,10 @@ msgid "" "A sliding glass door, the kind that was on social media with people and " "animals running into. This one is closed, so don't hurt yourself." msgstr "" -" Uma porta de vidro deslizante, do tipo que estava nas mídias sociais, com " -"pessoas e animais correndo. Este está fechado, então não se machuque." #: lang/json/terrain_from_json.py msgid "open glass door" -msgstr "porta de vidro aberta" +msgstr "" #. ~ Description for open glass door #. ~ Description for open frosted glass door @@ -159843,12 +141705,10 @@ msgid "" "A sliding glass door that has been left open for all manner of things to " "travel through." msgstr "" -" Uma porta de vidro que foi deixada aberta para todos os tipos de coisas " -"atravessarem." #: lang/json/terrain_from_json.py msgid "closed wood door with peephole" -msgstr "porta de madeira fechada com peephole" +msgstr "" #. ~ Description for closed wood door with peephole #: lang/json/terrain_from_json.py @@ -159856,12 +141716,10 @@ msgid "" "A regular door made of ordinary wood, except this one has a peephole. If " "you examined it more closely, you'd be able to peek through the hole." msgstr "" -" Uma porta normal feita de madeira comum, só que esta tem um olho mágico. Se" -" você examinasse mais de perto, seria capaz de espiar pelo buraco." #: lang/json/terrain_from_json.py msgid "damaged wood door with peephole" -msgstr "porta de madeira danificada com peephole" +msgstr "" #. ~ Description for damaged wood door with peephole #: lang/json/terrain_from_json.py @@ -159871,14 +141729,10 @@ msgid "" " view. A few planks, nails and the right tools could patch up all the " "damage." msgstr "" -" A má notícia é que o olho mágico está quebrado e você não pode olhar para " -"fora da porta. A boa notícia é que a porta está quase quebrada, então não há" -" nada bloqueando a vista. Algumas tábuas, pregos e as ferramentas certas " -"poderiam consertar todos os danos." #: lang/json/terrain_from_json.py msgid "open wood door with peephole" -msgstr "porta de madeira aberta com olho mágico" +msgstr "" #. ~ Description for open wood door with peephole #: lang/json/terrain_from_json.py @@ -159887,14 +141741,10 @@ msgid "" "you examined it more closely, you'd be able to peek through the hole. " "Although, you don't need to peek through it since the door is open anyway." msgstr "" -" Uma porta normal feita de madeira comum, só que esta tem um olho mágico. Se" -" você examinasse mais de perto, seria capaz de espiar pelo buraco. Embora, " -"você não precise espiar através dela, uma vez que a porta está aberta de " -"qualquer maneira." #: lang/json/terrain_from_json.py msgid "closed reinforced wood door" -msgstr "porta de madeira reforçada fechada" +msgstr "" #. ~ Description for closed reinforced wood door #: lang/json/terrain_from_json.py @@ -159906,7 +141756,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "damaged reinforced wood door" -msgstr "porta de madeira reforçada danificada" +msgstr "" #. ~ Description for damaged reinforced wood door #: lang/json/terrain_from_json.py @@ -159914,12 +141764,10 @@ msgid "" "There are splintering planks and visible holes in the wood, it looks like it" " could be smashed apart if not repaired." msgstr "" -" Há tábuas quebradas e buracos visíveis na madeira, parece que ela pode ser " -"quebrada se não for consertada." #: lang/json/terrain_from_json.py msgid "open reinforced wood door" -msgstr "porta de madeira reforçada aberta" +msgstr "" #. ~ Description for open reinforced wood door #: lang/json/terrain_from_json.py @@ -159939,9 +141787,6 @@ msgid "" " easily, too. This one has an extra keyhole, so it's likely locked. You " "could pry it open or pick the lock." msgstr "" -" Uma porta de madeira padrão que não parece muito resistente. Provavelmente " -"iria queimar facilmente também. Este tem um buraco de fechadura extra, por " -"isso é provavelmente bloqueado. Você poderia abrir ou pegar a fechadura." #. ~ Description for closed wood door #: lang/json/terrain_from_json.py @@ -159950,10 +141795,6 @@ msgid "" " easily, too. This one has a deadbolt keyhole, so it's likely locked. You " "could pry it open or pick the lock, or unlock the deadbolt from the inside." msgstr "" -" Uma porta de madeira padrão que não parece muito resistente. Provavelmente " -"iria queimar facilmente também. Este tem um buraco de fechadura, então " -"provavelmente está trancado. Você poderia abrir ou pegar a fechadura ou " -"destravar a trava do lado de dentro." #. ~ Description for closed wood door #: lang/json/terrain_from_json.py @@ -159963,14 +141804,10 @@ msgid "" "one has a deadbolt keyhole, so it's likely locked. You could pry it open or" " pick the lock, or unlock the deadbolt from the inside." msgstr "" -" Uma porta normal feita de madeira comum, só que esta tem um olho mágico. Se" -" você examinasse mais de perto, seria capaz de espiar pelo buraco. Este tem " -"um buraco de fechadura, então provavelmente está trancado. Você poderia " -"abrir ou pegar a fechadura ou destravar a trava do lado de dentro." #: lang/json/terrain_from_json.py msgid "closed door curtain" -msgstr "cortina de porta fechada" +msgstr "" #. ~ Description for closed door curtain #: lang/json/terrain_from_json.py @@ -159978,12 +141815,10 @@ msgid "" "Repurposed curtains from a window acting as a door. Could be easily taken " "down for supplies or placed somewhere else." msgstr "" -" Cortinas reaproveitadas de uma janela que age como uma porta. Poderia ser " -"facilmente removido para suprimentos ou colocado em outro lugar." #: lang/json/terrain_from_json.py msgid "closed makeshift door" -msgstr "porta improvisada fechada" +msgstr "" #. ~ Description for closed makeshift door #: lang/json/terrain_from_json.py @@ -159998,11 +141833,11 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "wham." -msgstr "wham." +msgstr "" #: lang/json/terrain_from_json.py msgid "open door curtain" -msgstr "cortina de porta aberta" +msgstr "" #. ~ Description for open door curtain #: lang/json/terrain_from_json.py @@ -160011,13 +141846,10 @@ msgid "" "down for supplies or placed somewhere else. These curtains are open, " "bundled and tied next to the doorway." msgstr "" -" Cortinas reaproveitadas de uma janela que age como uma porta. Poderia ser " -"facilmente removido para suprimentos ou colocado em outro lugar. Essas " -"cortinas estão abertas, empacotadas e amarradas ao lado da porta." #: lang/json/terrain_from_json.py msgid "open makeshift door" -msgstr "porta improvisada aberta" +msgstr "" #. ~ Description for open makeshift door #: lang/json/terrain_from_json.py @@ -160034,7 +141866,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "empty metal door frame" -msgstr "frame de porta de metal vazio" +msgstr "" #. ~ Description for empty metal door frame #: lang/json/terrain_from_json.py @@ -160042,12 +141874,10 @@ msgid "" "An empty door frame made of steel and assorted metal. A variety of doors " "could be constructed here." msgstr "" -" Uma moldura de porta vazia feita de aço e metal sortido. Uma variedade de " -"portas poderia ser construída aqui." #: lang/json/terrain_from_json.py msgid "empty metal window frame" -msgstr "moldura de janela de metal vazia" +msgstr "" #. ~ Description for empty metal window frame #: lang/json/terrain_from_json.py @@ -160055,12 +141885,10 @@ msgid "" "An empty window frame constructed from assembled metal and carefully braced " "with various hardware." msgstr "" -" Uma moldura de janela vazia construída a partir de metal montado e " -"cuidadosamente apoiada em várias ferragens." #: lang/json/terrain_from_json.py msgid "locked wire gate" -msgstr "portão de arame trancado" +msgstr "" #. ~ Description for locked wire gate #: lang/json/terrain_from_json.py @@ -160069,25 +141897,20 @@ msgid "" "system. With the right tools, you could cut the metal fence or pick the " "lock. You could also examine the fence to see if it looks climbable." msgstr "" -" Um portão para uma cerca de arame. Este tem um cadeado fechado no sistema " -"de trava. Com as ferramentas certas, você poderia cortar a cerca de metal ou" -" pegar a fechadura. Você também pode examinar a cerca para ver se parece " -"escalável." #: lang/json/terrain_from_json.py msgid "closed wooden gate" -msgstr "portão de madeira fechado" +msgstr "" #. ~ Description for closed wooden gate #. ~ 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 "" -" Um portão de qualidade comercial feito de madeira com um sistema de trava." #: lang/json/terrain_from_json.py msgid "open wooden gate" -msgstr "portão de madeira aberto" +msgstr "" #. ~ Description for open wooden gate #. ~ Description for open wooden split rail gate @@ -160096,23 +141919,19 @@ msgid "" "A commercial quality gate made of wood with a latch system. The gate is " "wide open, allowing anything to travel through." msgstr "" -" Um portão de qualidade comercial feito de madeira com um sistema de trava. " -"O portão está bem aberto, permitindo que qualquer coisa atravesse." #: lang/json/terrain_from_json.py msgid "closed wire gate" -msgstr "portão de arame fechado" +msgstr "" #. ~ Description for closed wire gate #: lang/json/terrain_from_json.py msgid "A gate for a chain link fence with a latch system to stay closed." msgstr "" -" Um portão para uma cerca de arame com um sistema de trava para permanecer " -"fechado." #: lang/json/terrain_from_json.py msgid "open wire gate" -msgstr "portão de arame aberto" +msgstr "" #. ~ Description for open wire gate #: lang/json/terrain_from_json.py @@ -160120,8 +141939,6 @@ 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 "" -" Um portão para uma cerca de arame com um sistema de trava para permanecer " -"fechado. O trinco está desfeito, então o portão se abriu." #: lang/json/terrain_from_json.py msgid "closed chickenwire gate" @@ -160150,7 +141967,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "boarded up door" -msgstr "porta fechada" +msgstr "" #. ~ Description for boarded up door #: lang/json/terrain_from_json.py @@ -160158,12 +141975,10 @@ msgid "" "A standard wooden door that has several planks across it, nailed down to " "board it up and increase its durability. Still flammable though." msgstr "" -" Uma porta de madeira padrão que tem várias tábuas em toda a parte, pregada " -"para baixo e aumenta sua durabilidade. Ainda é inflamável." #: lang/json/terrain_from_json.py msgid "boarded up damaged door" -msgstr "tapou a porta danificada" +msgstr "" #. ~ Description for boarded up damaged door #: lang/json/terrain_from_json.py @@ -160171,12 +141986,10 @@ msgid "" "A boarded up wooden door, except some of the planks are fractured or coming " "loose. Without repairs, it could be broken down easily." msgstr "" -" Uma porta de madeira com tábuas, exceto que algumas das tábuas estão " -"fraturadas ou soltas. Sem reparos, poderia ser facilmente quebrado." #: lang/json/terrain_from_json.py msgid "boarded up door with peephole" -msgstr "tapada porta com olho mágico" +msgstr "" #. ~ Description for boarded up door with peephole #: lang/json/terrain_from_json.py @@ -160185,13 +141998,10 @@ msgid "" "Although it's been covered up in planks, you could still examine the " "peephole." msgstr "" -" Uma porta de tábuas feita de madeira comum, exceto que esta tem um olho " -"mágico. Embora tenha sido coberto em tábuas, você ainda pode examinar o olho" -" mágico." #: lang/json/terrain_from_json.py msgid "boarded up reinforced door" -msgstr "tapada porta reforçada" +msgstr "" #. ~ Description for boarded up reinforced door #: lang/json/terrain_from_json.py @@ -160205,7 +142015,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "boarded up damaged reinforced door" -msgstr "tapada porta danificada reforçada" +msgstr "" #. ~ Description for boarded up damaged reinforced door #: lang/json/terrain_from_json.py @@ -160220,7 +142030,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "boarded up damaged door with peephole" -msgstr "tapou a porta danificada com olho mágico" +msgstr "" #. ~ Description for boarded up damaged door with peephole #: lang/json/terrain_from_json.py @@ -160229,13 +142039,10 @@ msgid "" "Although it's been covered up in planks, the peephole was damaged and can't " "be used to see through." msgstr "" -" Uma porta destruída feita de madeira comum, exceto que esta tem um olho " -"mágico. Embora tenha sido coberto em tábuas, o olho mágico foi danificado e " -"não pode ser usado para ver através de." #: lang/json/terrain_from_json.py msgid "closed metal door" -msgstr "porta de metal fechada" +msgstr "" #. ~ Description for closed metal door #: lang/json/terrain_from_json.py @@ -160243,12 +142050,10 @@ msgid "" "An extremely resilient door made of assorted steel, carved and pounded into " "shape." msgstr "" -" Uma porta extremamente resistente feita de aço sortido, esculpida e batida " -"em forma." #: lang/json/terrain_from_json.py msgid "open secret door" -msgstr "abrir porta secreta" +msgstr "" #. ~ Description for open secret door #: lang/json/terrain_from_json.py @@ -160259,7 +142064,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "open metal door" -msgstr "porta de metal aberta" +msgstr "" #. ~ Description for open metal door #: lang/json/terrain_from_json.py @@ -160267,12 +142072,10 @@ 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 "" -" Uma porta extremamente resistente feita de aço sortido, esculpida e batida " -"em forma. Está aberto, por isso não são necessárias ferramentas para entrar." #: lang/json/terrain_from_json.py msgid "closed metal door with peephole" -msgstr "porta de metal fechada com olho mágico" +msgstr "" #. ~ Description for closed metal door with peephole #: lang/json/terrain_from_json.py @@ -160281,13 +142084,10 @@ msgid "" "shape. If you examined it more closely, you'd be able to peek through the " "hole." msgstr "" -" Uma porta extremamente resistente feita de aço sortido, esculpida e batida " -"em forma. Se você examinasse mais de perto, seria capaz de espiar pelo " -"buraco." #: lang/json/terrain_from_json.py msgid "open metal door with peephole" -msgstr "porta de metal aberta com olho mágico" +msgstr "" #. ~ Description for open metal door with peephole #: lang/json/terrain_from_json.py @@ -160297,10 +142097,6 @@ msgid "" "hole. Although, you don't need to peek through it since the door is open " "anyway." msgstr "" -" Uma porta extremamente resistente feita de aço sortido, esculpida e batida " -"em forma. Se você examinasse mais de perto, seria capaz de espiar pelo " -"buraco. Embora, você não precise espiar através dela, uma vez que a porta " -"está aberta de qualquer maneira." #. ~ Description for closed metal door #: lang/json/terrain_from_json.py @@ -160309,10 +142105,6 @@ msgid "" " anything. Typically used in conjunction with automated electronic locking " "mechanisms that require an external source to unlock." msgstr "" -" Uma porta de aço galvanizado, forjada para suportar a punição e impedir " -"alguém ou qualquer coisa. Normalmente usado em conjunto com mecanismos de " -"bloqueio eletrônico automatizado que exigem uma fonte externa para " -"desbloquear." #. ~ Description for closed metal door #: lang/json/terrain_from_json.py @@ -160321,13 +142113,10 @@ msgid "" "shape. This one has an extra keyhole, so it's likely locked. You could " "probably pick the lock." msgstr "" -" Uma porta extremamente resistente feita de aço sortido, esculpida e batida " -"em forma. Este tem um buraco de fechadura extra, por isso é provavelmente " -"bloqueado. Você provavelmente poderia escolher o bloqueio." #: lang/json/terrain_from_json.py msgid "closed bar door" -msgstr "porta de bar fechada" +msgstr "" #. ~ Description for closed bar door #: lang/json/terrain_from_json.py @@ -160335,12 +142124,10 @@ msgid "" "A detention door made up of crisscrossed stainless steel bars. The locking " "mechanism doesn't appear to be engaged." msgstr "" -" Uma porta de detenção composta de barras de aço inoxidável entrecruzadas. O" -" mecanismo de bloqueio não parece estar envolvido." #: lang/json/terrain_from_json.py msgid "open bar door" -msgstr "porta de bar aberto" +msgstr "" #. ~ Description for open bar door #: lang/json/terrain_from_json.py @@ -160348,8 +142135,6 @@ msgid "" "A detention door made up of crisscrossed stainless steel bars. It's swung " "wide open. Freedom!" msgstr "" -" Uma porta de detenção composta de barras de aço inoxidável entrecruzadas. " -"Está bem aberto. Liberdade!" #. ~ Description for closed bar door #: lang/json/terrain_from_json.py @@ -160358,26 +142143,23 @@ msgid "" "mechanism appears to be engaged. The mechanism could be picked open with " "enough skill." msgstr "" -" Uma porta de detenção composta de barras de aço inoxidável entrecruzadas. O" -" mecanismo de travamento parece estar ativado. O mecanismo pode ser aberto " -"com habilidade suficiente." #: lang/json/terrain_from_json.py msgid "closed frosted glass door" -msgstr "porta fechada de vidro fosco" +msgstr "" #. ~ Description for closed frosted glass door #: lang/json/terrain_from_json.py msgid "A sliding door of frosted white glass." -msgstr "Uma porta de correr de vidro branco fosco." +msgstr "" #: lang/json/terrain_from_json.py msgid "open frosted glass door" -msgstr "abrir porta de vidro fosco" +msgstr "" #: lang/json/terrain_from_json.py msgid "makeshift portcullis" -msgstr "portcullis improvisado" +msgstr "" #. ~ Description for makeshift portcullis #: lang/json/terrain_from_json.py @@ -160385,12 +142167,10 @@ msgid "" "An immense gateway scrapped together with various bits of steel and metal " "scraps." msgstr "" -" Um imenso portal desmantelado junto com vários pedaços de aço e restos de " -"metal." #: lang/json/terrain_from_json.py msgid "metal compactor" -msgstr "compactador de metal" +msgstr "" #. ~ Description for metal compactor #: lang/json/terrain_from_json.py @@ -160398,12 +142178,10 @@ msgid "" "A hydraulic compactor that can accept items made of various metals, and " "press them into basic shapes, ready for further crafting." msgstr "" -" Um compactador hidráulico que pode aceitar itens feitos de vários metais, e" -" pressioná-los em formas básicas, prontos para mais artesanato." #: lang/json/terrain_from_json.py msgid "window" -msgstr "janela" +msgstr "" #. ~ Description for window #: lang/json/terrain_from_json.py @@ -160411,12 +142189,10 @@ msgid "" "A giant sheet of glass inserted into a window, typically found on the side " "of shops to showcase goods." msgstr "" -" Uma folha gigante de vidro inserida em uma janela, normalmente encontrada " -"ao lado de lojas para exibir mercadorias." #: lang/json/terrain_from_json.py msgid "taped window" -msgstr "janela gravada" +msgstr "" #. ~ Description for taped window #: lang/json/terrain_from_json.py @@ -160424,12 +142200,10 @@ msgid "" "Duct tape covers this window, blocking sunlight and visibility. You could " "remove the duct tape by cutting it off." msgstr "" -" A fita adesiva cobre esta janela, bloqueando a luz solar e a visibilidade. " -"Você pode remover a fita adesiva cortando-a." #: lang/json/terrain_from_json.py msgid "window with curtains" -msgstr "janela com cortinas" +msgstr "" #. ~ Description for window with curtains #: lang/json/terrain_from_json.py @@ -160437,12 +142211,10 @@ msgid "" "A window with fancy curtains on the inside that can be drawn closed to block" " visibility and shut out any light." msgstr "" -" Uma janela com cortinas elegantes no interior que podem ser fechadas para " -"bloquear a visibilidade e bloquear qualquer luz." #: lang/json/terrain_from_json.py msgid "window without curtains" -msgstr "janela sem cortinas" +msgstr "" #. ~ Description for window without curtains #: lang/json/terrain_from_json.py @@ -160450,13 +142222,10 @@ msgid "" "A smaller window typically found in residential homes. You could install a " "curtain rod and drapes if you had the supplies and skill." msgstr "" -" Uma janela menor normalmente encontrada em residências. Você poderia " -"instalar uma haste de cortina e cortinas se você tivesse os suprimentos e " -"habilidade." #: lang/json/terrain_from_json.py msgid "open window without curtains" -msgstr "janela aberta sem cortinas" +msgstr "" #. ~ Description for open window without curtains #: lang/json/terrain_from_json.py @@ -160464,8 +142233,6 @@ msgid "" "A smaller window typically found in residential homes. It's open and can be" " crawled through." msgstr "" -" Uma janela menor normalmente encontrada em residências. Está aberto e pode " -"ser rastreado." #. ~ Description for taped window #: lang/json/terrain_from_json.py @@ -160474,8 +142241,6 @@ msgid "" "blocked out with duct tape. You could remove the duct tape by cutting it " "off." msgstr "" -" Uma janela menor normalmente encontrada em residências. Este foi bloqueado " -"com fita adesiva. Você pode remover a fita adesiva cortando-a." #. ~ Description for taped window #: lang/json/terrain_from_json.py @@ -160483,12 +142248,10 @@ msgid "" "A window with fancy curtains on the inside. This one has been blocked out " "with duct tape. You could remove the duct tape by cutting it off." msgstr "" -" Uma janela com cortinas extravagantes no interior. Este foi bloqueado com " -"fita adesiva. Você pode remover a fita adesiva cortando-a." #: lang/json/terrain_from_json.py msgid "open window with curtains" -msgstr "janela aberta com cortinas" +msgstr "" #. ~ Description for open window with curtains #: lang/json/terrain_from_json.py @@ -160496,13 +142259,10 @@ msgid "" "A window with fancy curtains on the inside that can be drawn closed to block" " visibility and shut out any light. It's open and you can crawl through." msgstr "" -" Uma janela com cortinas elegantes no interior que podem ser fechadas para " -"bloquear a visibilidade e bloquear qualquer luz. Está aberto e você pode " -"rastrear." #: lang/json/terrain_from_json.py msgid "window with closed curtains" -msgstr "janela com cortinas fechadas" +msgstr "" #. ~ Description for window with closed curtains #: lang/json/terrain_from_json.py @@ -160512,10 +142272,6 @@ msgid "" "examined the curtains more closely, you could peek through the drapes or " "tear down everything. Or you could just smash the window open." msgstr "" -" Uma janela com cortinas elegantes que foram fechadas, bloqueando a luz " -"solar e a visibilidade. As cortinas só podem ser abertas no interior. Se " -"você examinasse as cortinas mais de perto, você poderia espiar através das " -"cortinas ou derrubar tudo. Ou você poderia apenas quebrar a janela aberta." #. ~ Description for taped window #: lang/json/terrain_from_json.py @@ -160523,12 +142279,10 @@ msgid "" "Duct tape covers this window, blocking out any sunlight and visibility. You" " could remove the duct tape by cutting it off." msgstr "" -" Fita adesiva cobre esta janela, bloqueando qualquer luz solar e " -"visibilidade. Você pode remover a fita adesiva cortando-a." #: lang/json/terrain_from_json.py msgid "empty window" -msgstr "janela vazia" +msgstr "" #. ~ Description for empty window #: lang/json/terrain_from_json.py @@ -160543,7 +142297,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "window frame" -msgstr "moldura da janela" +msgstr "" #. ~ Description for window frame #: lang/json/terrain_from_json.py @@ -160552,18 +142306,14 @@ msgid "" "get hurt if you crawled through the sharp and jagged shards. You could " "smash out the remaining pieces, or take your time and quietly clean them up." msgstr "" -" Uma moldura de janela de madeira que quebrou o vidro em torno dele. Você " -"provavelmente vai se machucar se você se arrastou através dos cacos afiados " -"e irregulares. Você pode esmagar as peças restantes, ou tomar seu tempo e " -"limpá-las em silêncio." #: lang/json/terrain_from_json.py msgid "glass crunching!" -msgstr "trituração de vidro!" +msgstr "" #: lang/json/terrain_from_json.py msgid "boarded up window" -msgstr "janela fechada" +msgstr "" #. ~ Description for boarded up window #: lang/json/terrain_from_json.py @@ -160589,7 +142339,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "reinforced boarded up window" -msgstr "janela de tábuas reforçada" +msgstr "" #. ~ Description for reinforced boarded up window #: lang/json/terrain_from_json.py @@ -160598,9 +142348,6 @@ msgid "" "glass to block vision. Adding a few spikes and metal plating would further " "increase its durability." msgstr "" -" Uma janela de vidro fortemente fortificada com tábuas cuidadosamente " -"colocadas no vidro para bloquear a visão. Adicionando alguns pontos e " -"chapeamento de metal aumentaria ainda mais a sua durabilidade." #. ~ Description for reinforced boarded up window #: lang/json/terrain_from_json.py @@ -160609,13 +142356,10 @@ msgid "" "frame to block vision. Adding a few spikes and metal plating would further " "increase its durability." msgstr "" -" Uma janela fortemente fortificada com tábuas cuidadosamente colocadas em " -"toda a estrutura aberta para bloquear a visão. Adicionando alguns pontos e " -"chapeamento de metal aumentaria ainda mais a sua durabilidade." #: lang/json/terrain_from_json.py msgid "armored boarded up window" -msgstr "janela blindada com armadura" +msgstr "" #. ~ Description for armored boarded up window #: lang/json/terrain_from_json.py @@ -160624,9 +142368,6 @@ msgid "" "laboriously placed metal sheeting to further strengthen the wooden " "reinforcements underneath." msgstr "" -" Esta janela de vidro, outrora normal, agora ameaça com pontas ao longo das " -"bordas, com uma cobertura de metal laboriosamente colocada para reforçar " -"ainda mais os reforços de madeira por baixo." #. ~ Description for armored boarded up window #: lang/json/terrain_from_json.py @@ -160635,13 +142376,10 @@ msgid "" "laboriously placed metal sheeting to further strengthen the wooden " "reinforcements underneath." msgstr "" -" Esta moldura de janela uma vez normal agora ameaça com pontas ao longo das " -"bordas, com folhas de metal laboriosamente colocadas para reforçar ainda " -"mais os reforços de madeira por baixo." #: lang/json/terrain_from_json.py msgid "window frame with metal bars" -msgstr "caixilharia com barras de metal" +msgstr "" #. ~ Description for window frame with metal bars #: lang/json/terrain_from_json.py @@ -160650,13 +142388,10 @@ msgid "" "making it impossible to crawl through. Typically installed for high-value " "stores, or at least stores in bad neighborhoods." msgstr "" -" Uma folha gigante de vidro inserida em uma janela com grades de segurança " -"espessas, impossibilitando o rastreamento. Normalmente instalado para lojas " -"de alto valor, ou pelo menos lojas em bairros ruins." #: lang/json/terrain_from_json.py msgid "window with metal bars" -msgstr "janela com barras de metal" +msgstr "" #. ~ Description for window with metal bars #: lang/json/terrain_from_json.py @@ -160667,15 +142402,10 @@ msgid "" "sticker in a corner stating, 'Protected by AtmoWeb, leading AI in " "terminating crime'." msgstr "" -" Uma folha gigante de vidro inserida em uma janela com grades de segurança " -"espessas, impossibilitando o rastreamento. Normalmente instalado para lojas " -"de alto valor, ou pelo menos lojas em bairros ruins. Este tem um pequeno " -"autocolante num canto a indicar 'Protegido pela AtmoWeb, líder em AI no fim " -"do crime'." #: lang/json/terrain_from_json.py msgid "high stained glass window" -msgstr "alta vitral" +msgstr "" #. ~ Description for high stained glass window #: lang/json/terrain_from_json.py @@ -160683,8 +142413,6 @@ msgid "" "Breathtaking craftsmanship of stained glass featuring an elegant emerald " "landscape." msgstr "" -" Artesanato de tirar o fôlego de vitrais com uma elegante paisagem " -"esmeralda." #. ~ Description for high stained glass window #: lang/json/terrain_from_json.py @@ -160692,8 +142420,6 @@ msgid "" "Breathtaking craftsmanship of stained glass featuring an otherworldly " "radiant ruby flower blooming." msgstr "" -" Artesanato de tirar o fôlego do vitral que caracteriza uma florescência " -"radiante de outro mundo da flor do rubi." #. ~ Description for high stained glass window #: lang/json/terrain_from_json.py @@ -160701,8 +142427,6 @@ msgid "" "Breathtaking craftsmanship of stained glass featuring an alluring azure " "oceanic abyss." msgstr "" -" Artesanato de tirar o fôlego de vitrais com um abismo oceânico atraente " -"sedutor." #. ~ Description for solid rock #: lang/json/terrain_from_json.py @@ -160710,13 +142434,10 @@ 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 "" -" É rock sólido, pode ser cheio de todos os tipos de coisas interessantes. " -"Melhor pegar sua picareta ou implemento de escavação equivalente e atacar a " -"terra!" #: lang/json/terrain_from_json.py msgid "smoothed rock" -msgstr "rocha alisada" +msgstr "" #. ~ Description for smoothed rock #: lang/json/terrain_from_json.py @@ -160724,12 +142445,10 @@ msgid "" "A block of stone that's been smoothed and shaped, commonly granite or marble" " for funerary chapels and mausoleums." msgstr "" -" Um bloco de pedra que foi alisado e moldado, geralmente granito ou mármore " -"para capelas funerárias e mausoléus." #: lang/json/terrain_from_json.py msgid "odd fault" -msgstr "falha estranha" +msgstr "" #. ~ Description for odd fault #: lang/json/terrain_from_json.py @@ -160737,13 +142456,10 @@ msgid "" "An unnaturally humanoid-shaped hole, it seems oddly familiar. There's a " "strange sensation to examine it closer, as if it belongs to you somehow." msgstr "" -" Um buraco artificialmente humanóide, parece estranhamente familiar. Há uma " -"sensação estranha de examiná-lo mais de perto, como se ele pertencesse a " -"você de alguma forma." #: lang/json/terrain_from_json.py msgid "paper wall" -msgstr "parede de papel" +msgstr "" #. ~ Description for paper wall #: lang/json/terrain_from_json.py @@ -160752,14 +142468,10 @@ msgid "" "covered in sticky wasp saliva. Whatever structure was underneath has been " "reformed and long gone. You could smash it down effortlessly." msgstr "" -" Uma enorme parede de massa poluída que foi recuperada de edifícios " -"próximos, coberta de saliva pegajosa de vespa. Qualquer que seja a estrutura" -" por baixo, foi reformada e há muito desapareceu. Você poderia esmagá-lo sem" -" esforço." #: lang/json/terrain_from_json.py msgid "walnut tree" -msgstr "Nogueira" +msgstr "" #. ~ Description for walnut tree #: lang/json/terrain_from_json.py @@ -160768,9 +142480,6 @@ msgid "" "can see some unharvested walnuts. You could cut it down with the right " "tools." msgstr "" -" Uma árvore maciça pertencente ao gênero 'Juglans'. Se você olhar de" -" perto você pode ver algumas nozes não colhidas. Você poderia cortá-lo com " -"as ferramentas certas." #. ~ Description for walnut tree #: lang/json/terrain_from_json.py @@ -160778,12 +142487,10 @@ msgid "" "A massive tree belonging to the 'Juglans' genus. You could cut it down with" " the right tools." msgstr "" -" Uma árvore maciça pertencente ao gênero 'Juglans'. Você poderia " -"cortá-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "chestnut tree" -msgstr "Castanheira" +msgstr "" #. ~ Description for chestnut tree #: lang/json/terrain_from_json.py @@ -160792,9 +142499,6 @@ msgid "" "can see some unharvested chestnuts. You could cut it down with the right " "tools." msgstr "" -" Uma árvore maciça pertencente ao gênero 'Castanea'. Se você olhar " -"de perto você pode ver algumas castanhas não colhidas. Você poderia cortá- " -"lo com as ferramentas certas." #. ~ Description for chestnut tree #: lang/json/terrain_from_json.py @@ -160802,12 +142506,10 @@ msgid "" "A massive tree belonging to the 'Castanea' genus. You could cut it down " "with the right tools." msgstr "" -" Uma árvore maciça pertencente ao gênero 'Castanea'. Você poderia " -"cortá-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "beech tree" -msgstr "faia" +msgstr "" #. ~ Description for beech tree #: lang/json/terrain_from_json.py @@ -160816,9 +142518,6 @@ msgid "" "see some unharvested beech nuts. You could cut it down with the right " "tools." msgstr "" -" Uma árvore maciça pertencente ao gênero 'Fagus'. Se você olhar de " -"perto, poderá ver algumas nozes de faia não colhidas. Você poderia cortá-lo " -"com as ferramentas certas." #. ~ Description for beech tree #: lang/json/terrain_from_json.py @@ -160826,12 +142525,10 @@ msgid "" "A massive tree belonging to the 'Fagus' genus. You could cut it down with " "the right tools." msgstr "" -" Uma árvore maciça pertencente ao gênero 'Fagus'. Você poderia " -"cortá-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "hazelnut tree" -msgstr "avelã" +msgstr "" #. ~ Description for hazelnut tree #: lang/json/terrain_from_json.py @@ -160840,9 +142537,6 @@ msgid "" " see some unharvested hazelnuts. You could cut it down with the right " "tools." msgstr "" -" Uma árvore atarracada pertencente ao gênero 'Corylus'. Se você " -"olhar de perto você pode ver algumas avelãs não colhidas. Você poderia " -"cortá-lo com as ferramentas certas." #. ~ Description for hazelnut tree #: lang/json/terrain_from_json.py @@ -160850,12 +142544,10 @@ msgid "" "A stubby tree belonging to the 'Corylus' genus. You could cut it down with " "the right tools." msgstr "" -" Uma árvore atarracada pertencente ao gênero 'Corylus'. Você poderia" -" cortá-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "oak tree" -msgstr "Carvalho" +msgstr "" #. ~ Description for oak tree #: lang/json/terrain_from_json.py @@ -160865,10 +142557,6 @@ msgid "" "the squirrels haven't gotten yet. You could cut it down with the right " "tools." msgstr "" -" Uma enorme árvore caducifólia pertencente ao gênero Quercus, comumente " -"encontrada em toda a região da Nova Inglaterra. Se você olhar de perto, " -"poderá ver algumas bolotas que os esquilos ainda não conseguiram. Você " -"poderia cortá-lo com as ferramentas certas." #. ~ Description for oak tree #: lang/json/terrain_from_json.py @@ -160876,13 +142564,10 @@ msgid "" "A massive deciduous tree belonging to the 'Quercus' genus, commonly found " "throughout New England region. You could cut it down with the right tools." msgstr "" -" Uma enorme árvore caducifólia pertencente ao gênero Quercus, comumente " -"encontrada em toda a região da Nova Inglaterra. Você poderia cortá-lo com as" -" ferramentas certas." #: lang/json/terrain_from_json.py msgid "cottonwood tree" -msgstr "árvore de choupo" +msgstr "" #. ~ Description for cottonwood tree #: lang/json/terrain_from_json.py @@ -160890,13 +142575,10 @@ msgid "" "A large tree belonging to the 'Populus' genus, commonly found throughout New" " England region. You could cut it down with the right tools." msgstr "" -" Uma grande árvore pertencente ao gênero 'Populus', comumente " -"encontrada em toda a região da Nova Inglaterra. Você poderia cortá-lo com as" -" ferramentas certas." #: lang/json/terrain_from_json.py msgid "elm tree" -msgstr "Olmo" +msgstr "" #. ~ Description for elm tree #: lang/json/terrain_from_json.py @@ -160904,13 +142586,10 @@ msgid "" "A large tree belonging to the 'Ulmus' genus, commonly found throughout New " "England region. You could cut it down with the right tools." msgstr "" -" Uma grande árvore pertencente ao gênero 'Ulmus', comumente " -"encontrada em toda a região da Nova Inglaterra. Você poderia cortá-lo com as" -" ferramentas certas." #: lang/json/terrain_from_json.py msgid "dead tree" -msgstr "árvore morta" +msgstr "" #. ~ Description for dead tree #: lang/json/terrain_from_json.py @@ -160918,12 +142597,10 @@ msgid "" "An indiscernible tree that has withered away, whether by weather, fire or " "otherworldy. You could cut it down with the right tools." msgstr "" -" Uma árvore indiscernível que secou, seja pelo tempo, fogo ou outro mundo. " -"Você poderia cortá-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "young tree" -msgstr "árvore jovem" +msgstr "" #. ~ Description for young tree #: lang/json/terrain_from_json.py @@ -160931,12 +142608,10 @@ msgid "" "A relatively young sapling of an indeterminate species. It could take " "decades before reaching maturity, so there's no use waiting around." msgstr "" -" Uma muda relativamente nova de uma espécie indeterminada. Pode levar " -"décadas até atingir a maturidade, então não adianta esperar por aí." #: lang/json/terrain_from_json.py msgid "apple tree" -msgstr "árvore de maçã" +msgstr "" #. ~ Description for apple tree #: lang/json/terrain_from_json.py @@ -160946,10 +142621,6 @@ msgid "" "find a few mature ones in autumn. You could also cut it down with the right" " tools." msgstr "" -" Esta árvore é um membro do gênero 'Malus', produzindo frutas " -"comumente conhecidas como maçãs. Se você examinasse os galhos mais de perto," -" você provavelmente encontraria alguns maduros no outono. Você também pode " -"reduzi-lo com as ferramentas certas." #. ~ Description for apple tree #: lang/json/terrain_from_json.py @@ -160958,13 +142629,10 @@ msgid "" "as apples. There doesn't appear to be any ripe apples now. You could also " "cut it down with the right tools." msgstr "" -" Esta árvore é um membro do gênero 'Malus', produzindo frutas " -"comumente conhecidas como maçãs. Não parece haver maçãs maduras agora. Você " -"também pode reduzi-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "pear tree" -msgstr "pereira" +msgstr "" #. ~ Description for pear tree #: lang/json/terrain_from_json.py @@ -160974,10 +142642,6 @@ msgid "" "probably find a few mature ones. You could also cut it down with the right " "tools." msgstr "" -" Isso é 'Pyrus communis', ou a pereira comum, que produz peras viáveis no " -"outono. Se você examinasse os ramos mais de perto, você provavelmente " -"encontraria alguns maduros. Você também pode reduzi-lo com as ferramentas " -"certas." #. ~ Description for pear tree #: lang/json/terrain_from_json.py @@ -160986,13 +142650,10 @@ msgid "" "pears in the fall. Looks like all the ripe pears have been picked. You " "could also cut it down with the right tools." msgstr "" -" Isso é 'Pyrus communis', ou a pereira comum, que produz peras viáveis no " -"outono. Parece que todas as peras maduras foram colhidas. Você também pode " -"reduzi-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "coffee tree" -msgstr "cafeeiro" +msgstr "" #. ~ Description for coffee tree #: lang/json/terrain_from_json.py @@ -161002,10 +142663,6 @@ msgid "" "branches more closely, you could probably find a few mature ones. You could" " also cut it down with the right tools." msgstr "" -" Isso é 'gymnocladus dioicus', ou o cafeeiro kentucky, que produz " -"vagens de café torradas e folhas de cerveja no outono. Se você examinasse os" -" ramos mais de perto, você provavelmente encontraria alguns maduros. Você " -"também pode reduzi-lo com as ferramentas certas." #. ~ Description for coffee tree #: lang/json/terrain_from_json.py @@ -161015,14 +142672,10 @@ msgid "" "ripe pods have been picked. You could also cut it down with the right " "tools." msgstr "" -" Isso é 'gymnocladus dioicus', ou o cafeeiro kentucky, que produz " -"vagens de café torradas e folhas de cerveja no outono. Parece que todas as " -"vagens maduras foram colhidas. Você também pode reduzi-lo com as ferramentas" -" certas." #: lang/json/terrain_from_json.py msgid "cherry tree" -msgstr "Árvore de cereja" +msgstr "" #. ~ Description for cherry tree #: lang/json/terrain_from_json.py @@ -161032,10 +142685,6 @@ msgid "" " probably find some viable clusters. You could also cut it down with the " "right tools." msgstr "" -" Uma das várias espécies de árvores 'Prunus' encontradas na Nova " -"Inglaterra, produz cerejas no verão. Se você examinasse a folhagem mais de " -"perto, provavelmente poderia encontrar alguns grupos viáveis. Você também " -"pode reduzi-lo com as ferramentas certas." #. ~ Description for cherry tree #: lang/json/terrain_from_json.py @@ -161044,10 +142693,6 @@ msgid "" "cherries in the summer. Looks like all the ripe bunches of cherries have " "been picked. You could also cut it down with the right tools." msgstr "" -" Uma das várias espécies de árvores 'Prunus' encontradas na Nova " -"Inglaterra, produz cerejas no verão. Parece que todos os cachos maduros de " -"cerejas foram colhidos. Você também pode reduzi-lo com as ferramentas " -"certas." #: lang/json/terrain_from_json.py msgid "juniper tree" @@ -161075,7 +142720,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "peach tree" -msgstr "árvore de pêssego" +msgstr "" #. ~ Description for peach tree #: lang/json/terrain_from_json.py @@ -161085,10 +142730,6 @@ msgid "" " probably find some mature peaches. You could also cut it down with the " "right tools." msgstr "" -" Uma das várias espécies de árvores 'Prunus' encontradas na Nova " -"Inglaterra, produz pêssegos no verão. Se você examinasse os galhos mais de " -"perto, provavelmente poderia encontrar alguns pêssegos maduros. Você também " -"pode reduzi-lo com as ferramentas certas." #. ~ Description for peach tree #: lang/json/terrain_from_json.py @@ -161097,13 +142738,10 @@ msgid "" "peaches in the summer. Looks like all the ripe peaches have been picked. " "You could also cut it down with the right tools." msgstr "" -" Uma das várias espécies de árvores 'Prunus' encontradas na Nova " -"Inglaterra, produz pêssegos no verão. Parece que todos os pêssegos maduros " -"foram colhidos. Você também pode reduzi-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "apricot tree" -msgstr "Árvore de damasco" +msgstr "" #. ~ Description for apricot tree #: lang/json/terrain_from_json.py @@ -161113,10 +142751,6 @@ msgid "" " you could probably find some mature apricots. You could also cut it down " "with the right tools." msgstr "" -" Espécie transplantada de 'Prunus armeniaca', raramente encontrada " -"na Nova Inglaterra. Produz damascos no verão. Se você examinasse as esporas " -"mais de perto, você provavelmente encontraria damascos maduros. Você também " -"pode reduzi-lo com as ferramentas certas." #. ~ Description for apricot tree #: lang/json/terrain_from_json.py @@ -161125,14 +142759,10 @@ msgid "" "It produces apricots in the summer. Looks like all the ripe apricots have " "been picked. You could also cut it down with the right tools." msgstr "" -" Espécie transplantada de 'Prunus armeniaca', raramente encontrada " -"na Nova Inglaterra. Produz damascos no verão. Parece que todos os damascos " -"maduros foram colhidos. Você também pode reduzi-lo com as ferramentas " -"certas." #: lang/json/terrain_from_json.py msgid "plum tree" -msgstr "ameixeira" +msgstr "" #. ~ Description for plum tree #: lang/json/terrain_from_json.py @@ -161142,10 +142772,6 @@ msgid "" "could probably find some ripe plums. You could also cut it down with the " "right tools." msgstr "" -" Uma das várias espécies de árvores 'Prunus' encontradas na Nova " -"Inglaterra, produz ameixas no verão. Se você examinasse as esporas mais de " -"perto, provavelmente encontraria algumas ameixas maduras. Você também pode " -"reduzi-lo com as ferramentas certas." #. ~ Description for plum tree #: lang/json/terrain_from_json.py @@ -161154,13 +142780,10 @@ msgid "" "produces plums in the summer. Looks like all the ripe plums have been " "picked. You could also cut it down with the right tools." msgstr "" -" Uma das várias espécies de árvores 'Prunus' encontradas na Nova " -"Inglaterra, produz ameixas no verão. Parece que todas as ameixas maduras " -"foram colhidas. Você também pode reduzi-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "mulberry tree" -msgstr "Amoreira" +msgstr "" #. ~ Description for mulberry tree #: lang/json/terrain_from_json.py @@ -161169,9 +142792,6 @@ msgid "" "as mulberries. In the summer many berries can be picked. You could also " "cut it down with the right tools." msgstr "" -" Esta árvore é um membro do gênero 'Morus', produzindo frutas " -"comumente conhecidas como amoras. No verão muitas bagas podem ser colhidas. " -"Você também pode reduzi-lo com as ferramentas certas." #. ~ Description for mulberry tree #: lang/json/terrain_from_json.py @@ -161180,13 +142800,10 @@ msgid "" "as mulberries. There doesn't appear to be any ripe mulberries now. You " "could also cut it down with the right tools." msgstr "" -" Esta árvore é um membro do gênero 'Morus', produzindo frutas " -"comumente conhecidas como amoras. Não parece haver amoras maduras agora. " -"Você também pode reduzi-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "elderberry tree" -msgstr "árvore de sabugueiro" +msgstr "" #. ~ Description for elderberry tree #: lang/json/terrain_from_json.py @@ -161195,9 +142812,6 @@ msgid "" "known as elderberries. In the summer many berries can be picked. You could" " also cut it down with the right tools." msgstr "" -" Esta árvore é um membro do gênero 'Sambucus', produzindo frutas " -"comumente conhecidas como sabugueiro. No verão muitas bagas podem ser " -"colhidas. Você também pode reduzi-lo com as ferramentas certas." #. ~ Description for elderberry tree #: lang/json/terrain_from_json.py @@ -161206,13 +142820,10 @@ msgid "" "known as elderberries. There doesn't appear to be any ripe elderberries " "now. You could also cut it down with the right tools." msgstr "" -" Esta árvore é um membro do gênero 'Sambucus', produzindo frutas " -"comumente conhecidas como sabugueiro. Não parece haver nenhum sabugueiro " -"maduro agora. Você também pode reduzi-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "pine tree" -msgstr "Pinheiro" +msgstr "" #. ~ Description for pine tree #: lang/json/terrain_from_json.py @@ -161223,15 +142834,10 @@ msgid "" "and unharvested pinecones. Also, you could cut it down with the right " "tools." msgstr "" -" Uma árvore conífera que pertence ao gênero 'Pinus', com as espécies" -" da Nova Inglaterra variando de 'P. strobus ',' P. resinosa " -"'e' P. rigida '. Se você examinou a árvore mais de perto, você " -"pode encontrar espirais pegajosas utilizáveis e pinhas não colhidas. Além " -"disso, você poderia reduzi-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "dead pine tree" -msgstr "pinheiro morto" +msgstr "" #. ~ Description for dead pine tree #: lang/json/terrain_from_json.py @@ -161242,16 +142848,10 @@ msgid "" "aren't developed fully yet, but given a season, it could be harvestable " "again. You could also cut it down with the right tools." msgstr "" -" Uma árvore conífera que pertence ao gênero 'Pinus', com as espécies" -" da Nova Inglaterra variando de 'P. strobus ',' P. resinosa " -"'e' P. rigida '. Alguns dos galhos foram arrancados e muitas das" -" pinhas ainda não estão totalmente desenvolvidas, mas em uma temporada, elas" -" podem ser colhidas novamente. Você também pode reduzi-lo com as ferramentas" -" certas." #: lang/json/terrain_from_json.py msgid "birch tree" -msgstr "árvore de vidoeiro" +msgstr "" #. ~ Description for birch tree #: lang/json/terrain_from_json.py @@ -161262,12 +142862,6 @@ msgid "" "off some strips of bark if you examined the tree more closely. You could " "cut it down with the right tools." msgstr "" -" Uma árvore caducifólia alta do gênero 'Betula', com a " -"característica casca descascada. Espécies como 'B. alleghaniensis " -"',' B. papyrifera 'e' B. populifolia são as mais comuns na " -"região da Nova Inglaterra. Você poderia cortar algumas tiras de casca se " -"examinasse a árvore mais de perto. Você poderia cortá-lo com as ferramentas " -"certas." #. ~ Description for birch tree #: lang/json/terrain_from_json.py @@ -161278,15 +142872,10 @@ msgid "" "there isn't enough rhytidome to peel off yet. You could cut it down with " "the right tools." msgstr "" -" Uma árvore caducifólia alta do gênero 'Betula', com a " -"característica casca descascada. Espécies como 'B. alleghaniensis " -"',' B. papyrifera 'e' B. populifolia são as mais comuns na " -"região da Nova Inglaterra. Parece que não há ritmos suficientes para " -"descolar ainda. Você poderia cortá-lo com as ferramentas certas." #: lang/json/terrain_from_json.py msgid "willow tree" -msgstr "Salgueiro" +msgstr "" #. ~ Description for willow tree #: lang/json/terrain_from_json.py @@ -161307,7 +142896,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "maple tree" -msgstr "árvore de bordo" +msgstr "" #. ~ Description for maple tree #: lang/json/terrain_from_json.py @@ -161327,7 +142916,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "hickory tree" -msgstr "árvore de nogueira" +msgstr "" #. ~ Description for hickory tree #: lang/json/terrain_from_json.py @@ -161346,7 +142935,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "pistachio tree" -msgstr "árvore de pistache" +msgstr "" #. ~ Description for pistachio tree #: lang/json/terrain_from_json.py @@ -161366,7 +142955,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "almond tree" -msgstr "Amendoeira" +msgstr "" #. ~ Description for almond tree #: lang/json/terrain_from_json.py @@ -161386,7 +142975,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "pecan tree" -msgstr "árvore de pecã" +msgstr "" #. ~ Description for pecan tree #: lang/json/terrain_from_json.py @@ -161406,7 +142995,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "dead hickory tree" -msgstr "árvore de nogueira morta" +msgstr "" #. ~ Description for dead hickory tree #: lang/json/terrain_from_json.py @@ -161422,12 +143011,10 @@ msgid "" "Small plants and shrubs that decorate the forest. An observant forager " "could obtain edible plants, acorns, eggs, and mushrooms from it." msgstr "" -" Pequenas plantas e arbustos que decoram a floresta. Uma forrageira atenta " -"poderia obter plantas, bolotas, ovos e cogumelos comestíveis." #: lang/json/terrain_from_json.py msgid "brush." -msgstr "escova." +msgstr "" #. ~ Description for underbrush #: lang/json/terrain_from_json.py @@ -161446,7 +143033,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "shrub" -msgstr "arbusto" +msgstr "" #. ~ Description for shrub #: lang/json/terrain_from_json.py @@ -161455,109 +143042,106 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "peanut bush" -msgstr "arbusto de amendoim" +msgstr "" #. ~ Description for peanut bush #: lang/json/terrain_from_json.py msgid "A small bush of crunchy peanuts." -msgstr "Um pequeno arbusto de amendoim crocante." +msgstr "" #. ~ Description for peanut bush #: lang/json/terrain_from_json.py msgid "A small peanut bush that's fruitless." -msgstr "Um pequeno arbusto de amendoim que é infrutífero." +msgstr "" #: lang/json/terrain_from_json.py msgid "blueberry bush" -msgstr "arbusto de mirtilo" +msgstr "" #. ~ Description for blueberry bush #: lang/json/terrain_from_json.py msgid "A small bush of sweet blueberries." -msgstr "Um pequeno arbusto de mirtilos doces." +msgstr "" #. ~ Description for blueberry bush #: lang/json/terrain_from_json.py msgid "A small blueberry bush that's fruitless." -msgstr "Um pequeno arbusto de mirtilo que é infrutífero." +msgstr "" #: lang/json/terrain_from_json.py msgid "strawberry bush" -msgstr "arbusto de morango" +msgstr "" #. ~ Description for strawberry bush #: lang/json/terrain_from_json.py msgid "A small bush of juicy strawberries." -msgstr "Um pequeno arbusto de morangos suculentos." +msgstr "" #. ~ Description for strawberry bush #: lang/json/terrain_from_json.py msgid "A small strawberry bush that's fruitless." -msgstr "Um pequeno arbusto de morango que é infrutífero." +msgstr "" #: lang/json/terrain_from_json.py msgid "blackberry bush" -msgstr "amora silvestre" +msgstr "" #. ~ Description for blackberry bush #: lang/json/terrain_from_json.py msgid "A small bush of delicious blackberries. Watch out for its thorns!" -msgstr "Um pequeno arbusto de deliciosas amoras. Cuidado com os espinhos!" +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 "Um pequeno amora-preta que é infrutífero. Cuidado com os espinhos!" +msgstr "" #: lang/json/terrain_from_json.py msgid "huckleberry bush" -msgstr "arbusto de huckleberry" +msgstr "" #. ~ Description for huckleberry bush #: lang/json/terrain_from_json.py msgid "A small bush of huckleberries, often mistaken as blueberries." -msgstr "Um pequeno arbusto de mirtilos, muitas vezes confundido com mirtilos." +msgstr "" #. ~ Description for huckleberry bush #: lang/json/terrain_from_json.py msgid "A small huckleberry bush that's fruitless." -msgstr "Um pequeno arbusto de huckleberry que é infrutífero." +msgstr "" #: lang/json/terrain_from_json.py msgid "raspberry bush" -msgstr "arbusto de framboesa" +msgstr "" #. ~ Description for raspberry bush #: lang/json/terrain_from_json.py msgid "A small bush of delicious raspberries. Watch out for its thorns!" -msgstr "Um pequeno arbusto de deliciosas framboesas. Cuidado com os espinhos!" +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 "" -" Um pequeno arbusto de framboesa que é infrutífero. Cuidado com os espinhos!" #: lang/json/terrain_from_json.py msgid "grape bush" -msgstr "arbusto de uva" +msgstr "" #. ~ Description for grape bush #: lang/json/terrain_from_json.py msgid "A bush of a different species invaded by vines of grapes." -msgstr "Um arbusto de uma espécie diferente invadido por videiras de uvas." +msgstr "" #. ~ Description for grape bush #: lang/json/terrain_from_json.py msgid "" "A bush of a different species invaded by grape vines but they're fruitless." msgstr "" -" Um arbusto de uma espécie diferente invadida por videiras, mas elas são " -"infrutíferas." #: lang/json/terrain_from_json.py msgid "rose bush" -msgstr "arbusto de rosas" +msgstr "" #. ~ Description for rose bush #: lang/json/terrain_from_json.py @@ -161565,48 +143149,44 @@ msgid "" "A fat bush of beautiful red roses, if only you could get a date! Watch out " "for its thorns!" msgstr "" -" Um arbusto gordo de lindas rosas vermelhas, se ao menos você conseguisse um" -" encontro! Cuidado com os espinhos!" #. ~ Description for rose bush #: lang/json/terrain_from_json.py msgid "" "A fat rose bush that currently has no blooms. Watch out for its thorns!" msgstr "" -" Um arbusto de rosa gordo que atualmente não tem flores. Cuidado com os " -"espinhos!" #: lang/json/terrain_from_json.py msgid "hydrangea bush" -msgstr "arbusto da hortênsia" +msgstr "" #. ~ Description for hydrangea bush #: lang/json/terrain_from_json.py msgid "A fat, bush of fragrant blue hydrangeas." -msgstr "Um arbusto gordo de hortênsias azuis perfumadas." +msgstr "" #. ~ Description for hydrangea bush #: lang/json/terrain_from_json.py msgid "A fat hydrangea bush that currently has no blooms." -msgstr "Um arbusto de hortênsia gorda que atualmente não tem flores." +msgstr "" #: lang/json/terrain_from_json.py msgid "lilac bush" -msgstr "arbusto lilás" +msgstr "" #. ~ Description for lilac bush #: lang/json/terrain_from_json.py msgid "A wide, bush of bright pinkish purple lilacs." -msgstr "Um amplo arbusto de lilases roxos rosados e brilhantes." +msgstr "" #. ~ Description for lilac bush #: lang/json/terrain_from_json.py msgid "A wide lilac bush that currently has no blooms." -msgstr "Um grande arbusto lilás que atualmente não tem flores." +msgstr "" #: lang/json/terrain_from_json.py msgid "tree trunk" -msgstr "tronco de árvore" +msgstr "" #. ~ Description for tree trunk #: lang/json/terrain_from_json.py @@ -161617,7 +143197,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "tree stump" -msgstr "toco de árvore" +msgstr "" #. ~ Description for tree stump #: lang/json/terrain_from_json.py @@ -161626,7 +143206,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "root wall" -msgstr "parede da raiz" +msgstr "" #. ~ Description for root wall #: lang/json/terrain_from_json.py @@ -161635,7 +143215,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "wax wall" -msgstr "algo parede" +msgstr "" #. ~ Description for wax wall #: lang/json/terrain_from_json.py @@ -161644,7 +143224,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "wax floor" -msgstr "chão de cera" +msgstr "" #. ~ Description for wax floor #: lang/json/terrain_from_json.py @@ -161653,7 +143233,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "picket fence" -msgstr "cerca de piquete" +msgstr "" #. ~ Description for picket fence #: lang/json/terrain_from_json.py @@ -161661,28 +143241,26 @@ msgid "" "A barrier made of wood, it's nothing complicated. Mildly suggests where not" " to go." msgstr "" -" Uma barreira feita de madeira, não é nada complicada. Suavemente sugere " -"onde não ir." #: lang/json/terrain_from_json.py msgid "chain link fence" -msgstr "cerca da ligação chain" +msgstr "" #. ~ Description for chain link fence #: lang/json/terrain_from_json.py msgid "" "A tall fence made of woven wires. It doesn't suggest to stop, it just " "stops." -msgstr "Uma cerca alta feita de fios tecidos. Não sugere parar, apenas pára." +msgstr "" #: lang/json/terrain_from_json.py msgid "metal post" -msgstr "poste de metal" +msgstr "" #. ~ Description for metal post #: lang/json/terrain_from_json.py msgid "Set of metal posts, that can hold more serious fences." -msgstr "Conjunto de postes de metal, que podem conter cercas mais sérias." +msgstr "" #: lang/json/terrain_from_json.py msgid "chickenwire fence" @@ -161710,15 +143288,14 @@ msgid "" "A couple of posts that support the fence. They look alone without the " "fence." msgstr "" -" Um par de posts que suportam a cerca. Eles parecem sozinhos sem a cerca." #: lang/json/terrain_from_json.py msgid "fence post" -msgstr "poste de vedação" +msgstr "" #: lang/json/terrain_from_json.py msgid "wire fence" -msgstr "cerca de arame" +msgstr "" #. ~ Description for wire fence #: lang/json/terrain_from_json.py @@ -161726,24 +143303,20 @@ msgid "" "A barrier made of wire, it's nothing complicated. Mildly suggests where not" " to go." msgstr "" -" Uma barreira feita de arame, não é nada complicado. Suavemente sugere onde " -"não ir." #: lang/json/terrain_from_json.py msgid "barbed wire fence" -msgstr "cerca de arame farpado" +msgstr "" #. ~ Description for barbed wire fence #: lang/json/terrain_from_json.py msgid "" "A barrier made of sharp barbed wire. More persuasive brother of wire fence." msgstr "" -" Uma barreira feita de arame farpado afiado. Irmão mais persuasivo da cerca " -"de arame." #: lang/json/terrain_from_json.py msgid "rope fence" -msgstr "cerca de corda" +msgstr "" #. ~ Description for rope fence #: lang/json/terrain_from_json.py @@ -161751,12 +143324,10 @@ msgid "" "A barrier made of rope, it's nothing complicated. Mildly suggests where not" " to go." msgstr "" -" Uma barreira feita de corda, não é nada complicado. Suavemente sugere onde " -"não ir." #: lang/json/terrain_from_json.py msgid "railing" -msgstr "corrimão" +msgstr "" #. ~ Description for railing #: lang/json/terrain_from_json.py @@ -161765,7 +143336,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "crack!" -msgstr "crack!" +msgstr "" #: lang/json/terrain_from_json.py msgid "glass railing" @@ -161813,7 +143384,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "clang." -msgstr "clang" +msgstr "" #: lang/json/terrain_from_json.py msgid "gutter drop" @@ -161852,7 +143423,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "marloss bush" -msgstr "marloss bush" +msgstr "" #. ~ Description for marloss bush #: lang/json/terrain_from_json.py @@ -161863,11 +143434,11 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "poof!" -msgstr "poof!" +msgstr "" #: lang/json/terrain_from_json.py msgid "fungal bed" -msgstr "cama fúngica" +msgstr "" #. ~ Description for fungal bed #: lang/json/terrain_from_json.py @@ -161876,11 +143447,11 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "smash" -msgstr "esmagar" +msgstr "" #: lang/json/terrain_from_json.py msgid "fungal floor" -msgstr "chão fúngico" +msgstr "" #. ~ Description for fungal floor #: lang/json/terrain_from_json.py @@ -161916,7 +143487,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "fungal mound" -msgstr "monte fungoso" +msgstr "" #. ~ Description for fungal mound #: lang/json/terrain_from_json.py @@ -161925,7 +143496,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "fungal shrub" -msgstr "arbusto fúngico" +msgstr "" #. ~ Description for fungal shrub #: lang/json/terrain_from_json.py @@ -161937,7 +143508,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "fungal tree" -msgstr "árvore fúngica" +msgstr "" #. ~ Description for fungal tree #: lang/json/terrain_from_json.py @@ -161951,7 +143522,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "young fungal tree" -msgstr "árvore fúngica jovem" +msgstr "" #. ~ Description for young fungal tree #: lang/json/terrain_from_json.py @@ -161960,7 +143531,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "marloss tree" -msgstr "marloss tree" +msgstr "" #. ~ Description for marloss tree #: lang/json/terrain_from_json.py @@ -162087,7 +143658,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "monkey bars" -msgstr "barras de macaco" +msgstr "" #. ~ Description for monkey bars #: lang/json/terrain_from_json.py @@ -162098,7 +143669,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "backboard" -msgstr "encosto" +msgstr "" #. ~ Description for backboard #: lang/json/terrain_from_json.py @@ -162170,7 +143741,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "ATM" -msgstr "ATM" +msgstr "" #. ~ Description for ATM #: lang/json/terrain_from_json.py @@ -162184,7 +143755,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "Critical failure imminent, self destruct activated. Have a nice day!" -msgstr "Falha crítica iminente, auto-destruição ativada. Tenha um bom dia!" +msgstr "" #: lang/json/terrain_from_json.py msgid "broken generator" @@ -162209,7 +143780,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "blown-out missile" -msgstr "míssil explodido" +msgstr "" #. ~ Description for blown-out missile #: lang/json/terrain_from_json.py @@ -162225,7 +143796,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "radio controls" -msgstr "controles de rádio" +msgstr "" #. ~ Description for radio controls #: lang/json/terrain_from_json.py @@ -162259,7 +143830,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "mechanical winch" -msgstr "guincho mecânico" +msgstr "" #. ~ Description for mechanical winch #: lang/json/terrain_from_json.py @@ -162278,24 +143849,22 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "control lever" -msgstr "alavanca de controle" +msgstr "" #: lang/json/terrain_from_json.py msgid "rope and pulley" -msgstr "corda e polia" +msgstr "" #. ~ Description for rope and pulley #: lang/json/terrain_from_json.py msgid "A system of ropes and pulleys that allows to pull up heavy doors." -msgstr "Um sistema de cordas e polias que permite puxar portas pesadas." +msgstr "" #. ~ Description for rope and pulley #: lang/json/terrain_from_json.py msgid "" "A system of ropes and pulleys that allows to pull up heavy doors or gates." msgstr "" -" Um sistema de cordas e polias que permite levantar portas ou portões " -"pesados." #: lang/json/terrain_from_json.py msgid "high gauge pipe" @@ -162330,7 +143899,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "CVD machine" -msgstr "Máquina CVD" +msgstr "" #. ~ Description for CVD machine #: lang/json/terrain_from_json.py @@ -162341,7 +143910,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "CVD control panel" -msgstr "Painel de controle CVD" +msgstr "" #. ~ Description for CVD control panel #: lang/json/terrain_from_json.py @@ -162355,7 +143924,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "nanofabricator" -msgstr "nanofabricador" +msgstr "" #. ~ Description for nanofabricator #: lang/json/terrain_from_json.py @@ -162364,13 +143933,10 @@ msgid "" "miniaturized factory, several 3d printers work in tandem with a robotic " "assembler to manufacture nearly any inorganic object." msgstr "" -" Uma grande coluna de maquinaria avançada. Dentro desta fábrica auto-contida" -" e miniaturizada, várias impressoras 3D trabalham em conjunto com um " -"montador robótico para fabricar praticamente qualquer objeto inorgânico." #: lang/json/terrain_from_json.py msgid "nanofabricator control panel" -msgstr "painel de controle nanofabricator" +msgstr "" #. ~ Description for nanofabricator control panel #: lang/json/terrain_from_json.py @@ -162378,8 +143944,6 @@ msgid "" "A small computer panel attached to a nanofabricator. It has a single slot " "for reading templates." msgstr "" -" Um pequeno painel de computador ligado a um nanofabricador. Tem um único " -"slot para leitura de modelos." #: lang/json/terrain_from_json.py msgid "half-built column" @@ -162404,7 +143968,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "cloning vat" -msgstr "cuba de clonagem" +msgstr "" #. ~ Description for cloning vat #: lang/json/terrain_from_json.py @@ -162516,7 +144080,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "rope leading up" -msgstr "corda que conduz" +msgstr "" #. ~ Description for rope leading up #: lang/json/terrain_from_json.py @@ -162596,7 +144160,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "slot machine" -msgstr "caça-níqueis" +msgstr "" #. ~ Description for slot machine #: lang/json/terrain_from_json.py @@ -162637,7 +144201,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "dark pedestal" -msgstr "pedestal escuro" +msgstr "" #. ~ Description for dark pedestal #: lang/json/terrain_from_json.py @@ -162648,7 +144212,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "light pedestal" -msgstr "pedestal leve" +msgstr "" #. ~ Description for light pedestal #: lang/json/terrain_from_json.py @@ -162711,7 +144275,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "yellow switch" -msgstr "interruptor amarelo" +msgstr "" #. ~ Description for yellow switch #: lang/json/terrain_from_json.py @@ -162720,7 +144284,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "cyan switch" -msgstr "interruptor ciano" +msgstr "" #. ~ Description for cyan switch #: lang/json/terrain_from_json.py @@ -162729,7 +144293,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "purple switch" -msgstr "interruptor roxo" +msgstr "" #. ~ Description for purple switch #: lang/json/terrain_from_json.py @@ -162738,7 +144302,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "checkered switch" -msgstr "interruptor quadriculado" +msgstr "" #. ~ Description for checkered switch #: lang/json/terrain_from_json.py @@ -162770,26 +144334,26 @@ msgstr "" #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." -msgstr "Tapete vermelho macio." +msgstr "" #. ~ Description for yellow carpet #: lang/json/terrain_from_json.py msgid "Soft yellow carpet." -msgstr "Tapete amarelo suave." +msgstr "" #. ~ Description for green carpet #: lang/json/terrain_from_json.py msgid "Soft green carpet." -msgstr "Tapete verde suave." +msgstr "" #. ~ Description for purple carpet #: lang/json/terrain_from_json.py msgid "Soft purple carpet." -msgstr "Tapete roxo suave." +msgstr "" #: lang/json/terrain_from_json.py msgid "linoleum tile" -msgstr "telha do linóleo" +msgstr "" #. ~ Description for linoleum tile #: lang/json/terrain_from_json.py @@ -162810,7 +144374,7 @@ msgstr "parede vermelha" #. ~ Description for red wall #: lang/json/terrain_from_json.py msgid "Wall painted red." -msgstr "Parede pintada de vermelho." +msgstr "" #: lang/json/terrain_from_json.py msgid "white wall" @@ -162819,7 +144383,7 @@ msgstr "parede branca" #. ~ Description for white wall #: lang/json/terrain_from_json.py msgid "Wall painted white." -msgstr "Parede pintada de branco." +msgstr "" #: lang/json/terrain_from_json.py msgid "blue wall" @@ -162828,7 +144392,7 @@ msgstr "parede azul" #. ~ Description for blue wall #: lang/json/terrain_from_json.py msgid "Wall painted blue." -msgstr "Parede pintada de azul." +msgstr "" #: lang/json/terrain_from_json.py msgid "green wall" @@ -162837,7 +144401,7 @@ msgstr "parede verde" #. ~ Description for green wall #: lang/json/terrain_from_json.py msgid "Wall painted green." -msgstr "Parede pintada de verde." +msgstr "" #: lang/json/terrain_from_json.py msgid "yellow wall" @@ -162846,7 +144410,7 @@ msgstr "parede amarela" #. ~ Description for yellow wall #: lang/json/terrain_from_json.py msgid "Wall painted yellow." -msgstr "Parede pintada de amarelo." +msgstr "" #: lang/json/terrain_from_json.py msgid "pink wall" @@ -162864,7 +144428,7 @@ msgstr "parede púrpura" #. ~ Description for purple wall #: lang/json/terrain_from_json.py msgid "Wall painted purple." -msgstr "Parede pintada de roxo." +msgstr "" #: lang/json/terrain_from_json.py msgid "stone wall" @@ -162888,15 +144452,13 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "covered well" -msgstr "bem coberto" +msgstr "" #. ~ Description for covered well #: lang/json/terrain_from_json.py msgid "" "Deep well collecting ground water. Requires a method to draw water from." msgstr "" -" Bem profundo coletando água subterrânea. Requer um método para extrair " -"água." #. ~ Description for water pump #: lang/json/terrain_from_json.py @@ -162904,8 +144466,6 @@ msgid "" "Deep well collecting ground water. Installed water pump allows to draw " "water from it." msgstr "" -" Bem profundo coletando água subterrânea. A bomba de água instalada permite " -"extrair água dela." #: lang/json/terrain_from_json.py msgid "water dispenser" @@ -163006,7 +144566,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "telecom cabinet" -msgstr "armário de telecomunicações" +msgstr "" #. ~ Description for telecom cabinet #: lang/json/terrain_from_json.py @@ -163017,7 +144577,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" -msgstr "armário de telecomunicações danificado" +msgstr "" #. ~ Description for damaged telecom cabinet #: lang/json/terrain_from_json.py @@ -163046,7 +144606,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" -msgstr "Disjuntor de óleo de alta tensão" +msgstr "" #. ~ Description for HV oil circuit breaker #: lang/json/terrain_from_json.py @@ -163059,7 +144619,7 @@ msgstr "pow!" #: lang/json/terrain_from_json.py msgid "small HV oil circuit breaker" -msgstr "pequeno disjuntor de óleo de alta tensão" +msgstr "" #. ~ Description for small HV oil circuit breaker #: lang/json/terrain_from_json.py @@ -163068,7 +144628,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "large switchgear" -msgstr "grande comutador" +msgstr "" #. ~ Description for large switchgear #: lang/json/terrain_from_json.py @@ -163078,7 +144638,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "small switchgear" -msgstr "pequeno comutador" +msgstr "" #. ~ Description for small switchgear #: lang/json/terrain_from_json.py @@ -163089,7 +144649,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "lightning arrester" -msgstr "pára-raios" +msgstr "" #. ~ Description for lightning arrester #: lang/json/terrain_from_json.py @@ -163100,7 +144660,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "disconnect switch" -msgstr "interruptor de desconexão" +msgstr "" #. ~ Description for disconnect switch #: lang/json/terrain_from_json.py @@ -163111,7 +144671,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "current transformer" -msgstr "transformador de corrente" +msgstr "" #. ~ Description for current transformer #: lang/json/terrain_from_json.py @@ -163120,7 +144680,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "potential transformer" -msgstr "transformador de potencial" +msgstr "" #. ~ Description for potential transformer #: lang/json/terrain_from_json.py @@ -163132,8 +144692,6 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "A wooden platform held by a support made of logs dug into the ground." msgstr "" -" Uma plataforma de madeira sustentada por um suporte feito de troncos " -"escavados no chão." #: lang/json/terrain_from_json.py msgid "shallow bridge" @@ -163141,7 +144699,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "pontoon bridge" -msgstr "ponte de pontão" +msgstr "" #. ~ Description for pontoon bridge #. ~ Description for river bridge @@ -163150,8 +144708,6 @@ msgid "" "A floating temporary bridge, like the ones army used to make to cross " "rivers." msgstr "" -" Uma ponte flutuante e temporária, como as que o exército fazia para cruzar " -"rios." #: lang/json/terrain_from_json.py msgid "river bridge" @@ -163159,7 +144715,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "bridge pavement" -msgstr "pavimento de ponte" +msgstr "" #. ~ Description for bridge pavement #: lang/json/terrain_from_json.py @@ -163168,11 +144724,11 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" -msgstr "rachadura de concreto e metal gritando!" +msgstr "" #: lang/json/terrain_from_json.py msgid "bridge yellow pavement" -msgstr "ponte pavimento amarelo" +msgstr "" #. ~ Description for bridge yellow pavement #: lang/json/terrain_from_json.py @@ -163181,7 +144737,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "bridge sidewalk" -msgstr "calçada da ponte" +msgstr "" #. ~ Description for bridge sidewalk #: lang/json/terrain_from_json.py @@ -163190,7 +144746,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "guard rail" -msgstr "trilho de guarda" +msgstr "" #. ~ Description for guard rail #: lang/json/terrain_from_json.py @@ -163201,7 +144757,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "blackjack oak" -msgstr "carvalho de blackjack" +msgstr "" #. ~ Description for blackjack oak #: lang/json/terrain_from_json.py @@ -163222,7 +144778,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "mound of clay" -msgstr "monte de barro" +msgstr "" #. ~ Description for mound of clay #: lang/json/terrain_from_json.py @@ -163235,7 +144791,7 @@ msgstr "splosh!" #: lang/json/terrain_from_json.py msgid "mound of sand" -msgstr "monte de areia" +msgstr "" #. ~ Description for mound of sand #: lang/json/terrain_from_json.py @@ -163244,7 +144800,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "conveyor belt" -msgstr "Correia transportadora" +msgstr "" #. ~ Description for conveyor belt #: lang/json/terrain_from_json.py @@ -163253,11 +144809,11 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "ting." -msgstr "coisas." +msgstr "" #: lang/json/terrain_from_json.py msgid "light machinery" -msgstr "maquinaria leve" +msgstr "" #. ~ Description for light machinery #: lang/json/terrain_from_json.py @@ -163266,7 +144822,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "heavy machinery" -msgstr "maquinário pesado" +msgstr "" #. ~ Description for heavy machinery #: lang/json/terrain_from_json.py @@ -163275,7 +144831,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "old machinery" -msgstr "máquinas antigas" +msgstr "" #. ~ Description for old machinery #: lang/json/terrain_from_json.py @@ -163284,7 +144840,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "electronic machinery" -msgstr "maquinaria eletronica" +msgstr "" #. ~ Description for electronic machinery #: lang/json/terrain_from_json.py @@ -163293,15 +144849,15 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" -msgstr "escadas baixas (seção inicial)" +msgstr "" #: lang/json/terrain_from_json.py msgid "low stairs (end section)" -msgstr "escadas baixas (seção final)" +msgstr "" #: lang/json/terrain_from_json.py msgid "milking machine" -msgstr "máquina de ordenha" +msgstr "" #. ~ Description for milking machine #: lang/json/terrain_from_json.py @@ -163310,7 +144866,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "bulk tank" -msgstr "Tanque a granel" +msgstr "" #. ~ Description for bulk tank #: lang/json/terrain_from_json.py @@ -163319,7 +144875,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "gravel" -msgstr "cascalho" +msgstr "" #. ~ Description for gravel #: lang/json/terrain_from_json.py @@ -163328,13 +144884,10 @@ msgid "" " a collection of small stones often used for roads, as railroad ballast, and" " in many other applications." msgstr "" -" Um pequeno martelo que um juiz usa para chamar - er, espere. Oh, cascalho! " -"O cascalho é uma coleção de pequenas pedras frequentemente usadas para " -"estradas, como lastro ferroviário e em muitas outras aplicações." #: lang/json/terrain_from_json.py msgid "railroad track" -msgstr "ferrovia" +msgstr "" #. ~ Description for railroad track #: lang/json/terrain_from_json.py @@ -163345,7 +144898,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "railroad tie" -msgstr "gravata de estrada de ferro" +msgstr "" #. ~ Description for railroad tie #: lang/json/terrain_from_json.py @@ -163361,7 +144914,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "painted waxed floor" -msgstr "chão encerado pintado" +msgstr "" #. ~ Description for painted waxed floor #: lang/json/terrain_from_json.py @@ -163375,7 +144928,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "buffer stop" -msgstr "parada de buffer" +msgstr "" #. ~ Description for buffer stop #: lang/json/terrain_from_json.py @@ -163386,7 +144939,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "railroad crossing signal" -msgstr "sinal de cruzamento da estrada de ferro" +msgstr "" #. ~ Description for railroad crossing signal #: lang/json/terrain_from_json.py @@ -163398,7 +144951,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "crossbuck" -msgstr "crossbuck" +msgstr "" #. ~ Description for crossbuck #: lang/json/terrain_from_json.py @@ -163409,16 +144962,16 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "root cellar" -msgstr "adega de raiz" +msgstr "" #. ~ Description for root cellar #: lang/json/terrain_from_json.py msgid "A cellar dug into the earth for storing food in a cool environment." -msgstr "Um porão cavou na terra para armazenar comida em um ambiente fresco." +msgstr "" #: lang/json/terrain_from_json.py msgid "junk metal barrier" -msgstr "barreira de sucata de metal" +msgstr "" #. ~ Description for junk metal barrier #: lang/json/terrain_from_json.py @@ -163427,13 +144980,10 @@ msgid "" "frame. Very fashionable in post-apocalyptic shantytowns. This one isn't " "quite strong enough to support a roof, but could be reinforced." msgstr "" -" Uma parede simples de sucata enferrujada era trancada e amarrada a um " -"quadro improvisado. Muito na moda em favelas pós-apocalípticas. Este não é " -"suficientemente forte para suportar um telhado, mas pode ser reforçado." #: lang/json/terrain_from_json.py msgid "junk metal wall" -msgstr "parede de metal de sucata" +msgstr "" #. ~ Description for junk metal wall #: lang/json/terrain_from_json.py @@ -163441,13 +144991,10 @@ msgid "" "A wall of rusty scrap metal bolted and wire-tied to a sturdy frame. Very " "fashionable in post-apocalyptic shantytowns. Can support a roof." msgstr "" -" Uma parede de sucata enferrujada era trancada e amarrada a um quadro " -"robusto. Muito na moda em favelas pós-apocalípticas. Pode suportar um " -"telhado." #: lang/json/terrain_from_json.py msgid "junk metal floor" -msgstr "chão de metal lixo" +msgstr "" #. ~ Description for junk metal floor #: lang/json/terrain_from_json.py @@ -163456,9 +145003,6 @@ msgid "" "makeshift frame. Very fashionable in post-apocalyptic shantytowns. Hope " "you like the sound of rain on corrugated metal." msgstr "" -" Um teto simples e um piso de sucata de metal enferrujado e amarrado a um " -"quadro improvisado. Muito na moda em favelas pós-apocalípticas. Espero que " -"você goste do som da chuva no metal corrugado." #: lang/json/terrain_from_json.py msgid "radiation platform" @@ -163570,7 +145114,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "pine lean-to" -msgstr "pinheiros se inclinam" +msgstr "" #. ~ Description for pine lean-to #: lang/json/terrain_from_json.py @@ -163581,7 +145125,7 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "tarp lean-to" -msgstr "tarp lean-to" +msgstr "" #. ~ Description for tarp lean-to #: lang/json/terrain_from_json.py @@ -163685,11 +145229,11 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "scorched earth" -msgstr "terra arrasada" +msgstr "" #: lang/json/terrain_from_json.py msgid "nuclear reactor core" -msgstr "núcleo do reator nuclear" +msgstr "" #: lang/json/terrain_from_json.py msgid "stick wall" @@ -163750,71 +145294,71 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "electro furnace" -msgstr "forno eletro" +msgstr "" #: lang/json/terrain_from_json.py msgid "industrial drill" -msgstr "broca industrial" +msgstr "" #: lang/json/terrain_from_json.py msgid "heavy pipe" -msgstr "cano pesado" +msgstr "" #: lang/json/terrain_from_json.py msgid "knock!" -msgstr "batida!" +msgstr "" #: lang/json/terrain_from_json.py msgid "thud thud." -msgstr "baque baque." +msgstr "" #: lang/json/terrain_from_json.py msgid "knock knock." -msgstr "TOC Toc." +msgstr "" #: lang/json/terrain_from_json.py msgid "open secret" -msgstr "segredo aberto" +msgstr "" #: lang/json/terrain_from_json.py msgid "book case" -msgstr "estante" +msgstr "" #: lang/json/terrain_from_json.py msgid "unusual book case" -msgstr "estojo de livro incomum" +msgstr "" #: lang/json/terrain_from_json.py msgid "open sliding wall" -msgstr "parede deslizante aberta" +msgstr "" #: lang/json/terrain_from_json.py msgid "unusual statue" -msgstr "estátua incomum" +msgstr "" #: lang/json/terrain_from_json.py msgid "containment manual override" -msgstr "substituição manual de confinamento" +msgstr "" #: lang/json/terrain_from_json.py msgid "security bolt release" -msgstr "liberação do parafuso de segurança" +msgstr "" #: lang/json/terrain_from_json.py msgid "bridge control" -msgstr "controle de ponte" +msgstr "" #: lang/json/terrain_from_json.py msgid "mass of blob feed" -msgstr "massa de alimentação blob" +msgstr "" #: lang/json/terrain_from_json.py msgid "squish!" -msgstr "Esmagar!" +msgstr "" #: lang/json/terrain_from_json.py msgid "mound of blob feed" -msgstr "monte de alimentação de blob" +msgstr "" #: lang/json/terrain_from_json.py msgid "singing sand" @@ -163884,7 +145428,7 @@ msgstr "cortagem" #: lang/json/tool_quality_from_json.py msgid "fine cutting" -msgstr "corte fino" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "glare protection" @@ -163900,119 +145444,119 @@ msgstr "alisagem" #: lang/json/tool_quality_from_json.py msgid "hammering" -msgstr "martelando" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "fine hammering" -msgstr "bem martelando" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "wood sawing" -msgstr "serrar madeira" +msgstr "" #: lang/json/tool_quality_from_json.py src/crafting_gui.cpp msgid "metal sawing" -msgstr "serra de metal" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "fine metal sawing" -msgstr "serralharia fina" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "food cooking" -msgstr "comida cozinhar" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "boiling" -msgstr "ebulição" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "containing" -msgstr "contendo" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "chemical making" -msgstr "fabricação de produtos químicos" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "smoking" -msgstr "fumar" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "distilling" -msgstr "destilar" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "tree cutting" -msgstr "corte de árvores" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "bolt turning" -msgstr "giro do parafuso" +msgstr "" #: lang/json/tool_quality_from_json.py src/crafting_gui.cpp msgid "fine bolt turning" -msgstr "parafuso de giro fino" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "screw driving" -msgstr "aparafusar" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "fine screw driving" -msgstr "condução de parafuso fino" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "prying" -msgstr "curioso" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "lifting" -msgstr "elevação" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "jacking" -msgstr "jacking" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "self jacking" -msgstr "auto jacking" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "chiseling" -msgstr "cinzelar" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "sewing" -msgstr "de costura" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "knitting" -msgstr "tricô" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "bullet pulling" -msgstr "bala puxando" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "analysis" -msgstr "análise" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "concentration" -msgstr "concentração" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "separation" -msgstr "separação" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "fine distillation" -msgstr "destilação fina" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "chromatography" -msgstr "cromatografia" +msgstr "" #: lang/json/tool_quality_from_json.py msgid "grinding" @@ -164048,23 +145592,23 @@ msgstr "" #: lang/json/trap_from_json.py msgid "roll mat" -msgstr "rolar comida" +msgstr "" #: lang/json/trap_from_json.py msgid "fur roll mat" -msgstr "Esteira de rolo de pele" +msgstr "" #: lang/json/trap_from_json.py msgid "buried bear trap" -msgstr "armadilha do urso enterrado" +msgstr "" #: lang/json/trap_from_json.py msgid "spiked board" -msgstr "placa cravada" +msgstr "" #: lang/json/trap_from_json.py msgid "caltrops" -msgstr "caltrops" +msgstr "" #: lang/json/trap_from_json.py msgid "glass caltrops" @@ -164072,39 +145616,39 @@ msgstr "" #: lang/json/trap_from_json.py msgid "tripwire" -msgstr "tripwire" +msgstr "" #: lang/json/trap_from_json.py msgid "spinning blade engine" -msgstr "motor de pás de fiar" +msgstr "" #: lang/json/trap_from_json.py msgid "spinning blade" -msgstr "lâmina giratória" +msgstr "" #: lang/json/trap_from_json.py msgid "buried land mine" -msgstr "mina de terra enterrada" +msgstr "" #: lang/json/trap_from_json.py msgid "goo pit" -msgstr "goo pit" +msgstr "" #: lang/json/trap_from_json.py msgid "dissector" -msgstr "dissecador" +msgstr "" #: lang/json/trap_from_json.py msgid "sinkhole" -msgstr "buraco" +msgstr "" #: lang/json/trap_from_json.py msgid "shimmering portal" -msgstr "portal cintilante" +msgstr "" #: lang/json/trap_from_json.py msgid "ledge" -msgstr "borda" +msgstr "" #: lang/json/trap_from_json.py msgid "downspout funnel" @@ -164112,11 +145656,11 @@ msgstr "" #: lang/json/trap_from_json.py msgid "firewood source" -msgstr "fonte de lenha" +msgstr "" #: lang/json/trap_from_json.py msgid "practice target" -msgstr "alvo de prática" +msgstr "" #: lang/json/trap_from_json.py msgid "unfinished construction" @@ -164124,15 +145668,15 @@ msgstr "" #: lang/json/trap_from_json.py msgid "raincatcher" -msgstr "raincatcher" +msgstr "" #: lang/json/trap_from_json.py msgid "light snare trap" -msgstr "armadilha de armadilha de luz" +msgstr "" #: lang/json/trap_from_json.py msgid "heavy snare trap" -msgstr "armadilha de armadilha pesada" +msgstr "" #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164177,9 +145721,6 @@ msgid "" "You can close an opened door by pressing 'c' and then a movement key. " "Closing doors behind you can often slow down throngs of monsters greatly." msgstr "" -" Você pode fechar uma porta aberta pressionando 'c' e, em seguida, " -"uma tecla de movimento. Fechando as portas atrás de você, muitas vezes pode " -"retardar muito a multidão de monstros." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164200,10 +145741,6 @@ msgid "" " yourself on the broken glass, but it's a good last-ditch escape route. You" " can smash through other things, too." msgstr "" -" Você pode quebrar as janelas pressionando 's' e, em seguida, uma " -"tecla de movimento. Uma janela quebrada leva muito tempo para subir, e é " -"possível se machucar no vidro quebrado, mas é uma boa rota de fuga. Você " -"pode esmagar outras coisas também." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164229,9 +145766,6 @@ msgid "" "corners, etc. It's also used for interacting with a few terrain types. " "Interactive terrain is usually designated with a '6' symbol." msgstr "" -" O comando Examinar é útil para capturar itens de janelas, cantos, etc. " -"Também é usado para interagir com alguns tipos de terreno. O terreno " -"interativo é geralmente designado com um símbolo '6'." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164275,10 +145809,6 @@ msgid "" "'i'. You can then press the letter of any item to get more information " "about it." msgstr "" -" O item que você acabou de comprar entrou em seu inventário, o espaço de " -"armazenamento compartilhado de todas as roupas que você está usando. Para " -"ver seu inventário, pressione 'i'. Você pode então pressionar a letra de " -"qualquer item para obter mais informações sobre ele." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164309,11 +145839,6 @@ msgid "" "Most food expires eventually, so be careful. Some comestibles, especially " "drugs, can cause subtle, long-term effects." msgstr "" -" O item que você acabou de pegar é um comestível! Para comer um comestível, " -"pressione 'E'. Comestíveis são itens que você pode usar, como " -"comida, bebida, pílulas, etc. A maioria dos alimentos expira eventualmente, " -"então tenha cuidado. Alguns comestíveis, especialmente drogas, podem causar " -"efeitos sutis e de longo prazo." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164336,13 +145861,6 @@ msgid "" "powered weapons) have a range, which is added on top of the ammo's range " "when firing." msgstr "" -" O item que você acabou de pegar é uma arma de fogo! As armas são armas " -"muito poderosas, mas elas exigem munição. Armas de fogo têm muitos atributos" -" especiais. A maioria modifica o dano causado por sua munição. Eles também " -"têm dispersão, o que afeta sua chance de acertar. Algumas armas são semi-" -"automáticas, enquanto outras podem disparar uma rajada. Algumas armas de " -"fogo (principalmente arcos e outras armas movidas a músculos) têm um " -"alcance, que é adicionado ao topo do alcance da munição quando disparado." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164367,10 +145885,6 @@ msgid "" "cutting. Most monsters deal bashing damage, but cutting is often the more " "deadly of the two. Bullets are considered cutting damage." msgstr "" -" Você acabou de colocar um artigo de vestuário que fornece proteção física. " -"Existem dois tipos de danos que a roupa defende, contesta e corta. A maioria" -" dos monstros causa dano contundente, mas o corte geralmente é o mais mortal" -" dos dois. Balas são consideradas danos de corte." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164380,12 +145894,6 @@ msgid "" "item you put on also encumbered your torso. This will make combat a little " "more difficult. To check encumbrance, press @." msgstr "" -" Você acabou de colocar um artigo de vestuário que oferece amplo espaço de " -"armazenamento. Isso permitirá que você carregue muito mais coisas, mas " -"esteja ciente de que também há um limite no peso que você pode carregar, o " -"que depende da força. O item que você coloca também sobrecarregou seu torso." -" Isso tornará o combate um pouco mais difícil. Para verificar o ônus, " -"pressione @." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164395,12 +145903,6 @@ msgid "" "common hazards. However, they also make it a little harder to breath when " "running, so you'll move more slowly. To check encumbrance, press @." msgstr "" -" Você acabou de colocar uma peça de roupa que protege contra o meio " -"ambiente. Os mais comuns e importantes são os dispositivos respiratórios, " -"que protegem contra a fumaça, toxinas ou organismos que nascem no ar e " -"outros perigos comuns. No entanto, eles também dificultam a respiração " -"quando você está correndo, então você se move mais devagar. Para verificar o" -" ônus, pressione @." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164411,12 +145913,6 @@ msgid "" "to swing your melee weapon depends on both its size and weight; small, " "compact weapons are the fastest." msgstr "" -" Se você pressionar 'i' e depois a letra da sua arma, você verá suas" -" estatísticas de combate. Dano de contusão ignora a maioria das armaduras, " -"mas varia muito e requer força. Dano de corte é uma quantia fixa, mas é " -"bloqueado pela armadura. O bônus To-hit afeta suas chances de acertar. A " -"quantidade de tempo que leva para balançar sua arma corpo-a-corpo depende do" -" seu tamanho e peso; armas pequenas e compactas são as mais rápidas." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164510,10 +146006,6 @@ msgid "" "important defensive tactic, particularly when sleeping in unsafe territory." " Try stepping on that _ -- don't worry, it's a harmless bubblewrap trap." msgstr "" -" Você acabou de colocar uma armadilha. As armadilhas são permanentes até que" -" sejam disparadas e podem ser uma tática defensiva importante, especialmente" -" quando se está dormindo em um território inseguro. Tente pisar nisso - não " -"se preocupe, é uma inofensiva armadilha de bolhas de sabão." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164523,12 +146015,6 @@ msgid "" "penalties, making combat dangerous. Either drop an item, or possibly wield " "something-- the object you are wielding does not take up inventory space." msgstr "" -" Você está carregando mais volume do que você tem para armazenamento, o que " -"significa que você está carregando algumas coisas na dobra do seu braço ou " -"de alguma outra maneira estranha. Enquanto sobrecarregado assim, você " -"sofrerá severas penalidades de ônus, tornando o combate perigoso. Quer " -"soltar um item ou possivelmente empunhar algo - o objeto que você está " -"empunhando não ocupa espaço em estoque." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164550,13 +146036,6 @@ msgid "" " through monsters with '<' and '>'. To fire, press 'f' or '.'; to cancel, " "hit the escape key." msgstr "" -" Depois de ter uma arma carregada empunhada, você pode disparar. Pressione a" -" tecla 'f' para disparar um único tiro. Com muitas armas, você pode " -"disparar uma explosão pressionando 'F'. Você irá automaticamente " -"mirar no último monstro que atirou, ou no monstro mais próximo de você. Você" -" pode mudar seu alvo com as teclas de movimento ou percorrer monstros com " -"'<' e '>'. Para disparar, pressione 'f' ou " -"'.'; para cancelar, aperte a tecla de escape." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164567,12 +146046,6 @@ msgid "" "reduces recoil, so weak characters might want to stick to .22 or 9x19mm " "guns." msgstr "" -" Depois de disparar sua arma, você provavelmente notará um alerta de Recuo " -"no canto inferior direito. De um modo geral, quanto mais prejudicial a " -"munição, pior o recuo. Recoil reduz severamente sua chance de acertar, mas " -"você pode eliminar o recuo pausando ('.') Por um turno ou movendo " -"normalmente. Alta resistência reduz o recuo, então personagens fracos podem " -"querer ficar com armas de 22 ou 9x19mm." #: lang/json/tutorial_messages_from_json.py msgid "" @@ -164611,18 +146084,14 @@ msgid "" "press 'c' to fill a container, then select a watertight container to put the" " water into." msgstr "" -" ~ é um símbolo do terreno que indica a água. De uma fonte de água como " -"essa, você pode preencher qualquer contêiner que possa ter. Examine a água " -"('e') e pressione 'c' para encher um recipiente, em seguida," -" selecione um recipiente à prova d'água para colocar a água." #: lang/json/vehicle_from_json.py msgid "work light" -msgstr "luz de trabalho" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Bicycle" -msgstr "Bicicleta" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Mountain bike" @@ -164630,7 +146099,7 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric Bicycle" -msgstr "Bicicleta elétrica" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Motocross Bike" @@ -164642,35 +146111,35 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Motorcycle" -msgstr "Motocicleta" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Motorcycle Chassis" -msgstr "Chassi Da Motocicleta" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Quad Bike" -msgstr "Quadricíclo" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Quad Bike Chassis" -msgstr "Chassi Quadriciclo" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Scooter" -msgstr "Lambreta" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric Scooter" -msgstr "Scooter Elétrico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Superbike" -msgstr "Superbike" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Tandem" -msgstr "Tandem" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Children's Tricycle" @@ -164678,27 +146147,27 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Unicycle" -msgstr "Monociclo" +msgstr "" #: lang/json/vehicle_from_json.py msgid "canoe" -msgstr "canoa" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Amphibious Truck" -msgstr "Caminhão anfíbio" +msgstr "" #: lang/json/vehicle_from_json.py msgid "kayak" -msgstr "como" +msgstr "" #: lang/json/vehicle_from_json.py msgid "racing kayak" -msgstr "correndo como" +msgstr "" #: lang/json/vehicle_from_json.py msgid "raft" -msgstr "jangada" +msgstr "" #: lang/json/vehicle_from_json.py msgid "motor boat" @@ -164710,59 +146179,59 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Beetle" -msgstr "Besouro" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Bubble Car" -msgstr "Carro da bolha" +msgstr "" #: lang/json/vehicle_from_json.py src/construction.cpp msgid "Car" -msgstr "Carro" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Car Chassis" -msgstr "Chassi do carro" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Hatchback" -msgstr "Hatchback" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Sports Car" -msgstr "Carro esportivo" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Atomic Sports Car" -msgstr "Atomic Sports Car" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric Sports Car" -msgstr "Carro esportivo elétrico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric Racing Car" -msgstr "Carro de corrida elétrico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric Car" -msgstr "Carro elétrico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Solar Car" -msgstr "Carro solar" +msgstr "" #: lang/json/vehicle_from_json.py msgid "SUV" -msgstr "SUV" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric SUV" -msgstr "SUV elétrico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric SUV with Bike Rack" -msgstr "SUV elétrico com bicicletário" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Engine Crane" @@ -164770,171 +146239,171 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Food Vendor Cart" -msgstr "Carrinho de fornecedor de alimentos" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Golf Cart" -msgstr "Carrinho de golfe" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Handjack" -msgstr "Handjack" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Ice Cream Cart" -msgstr "Carrinho de sorvete" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Luggage Cart" -msgstr "Carrinho de bagagem" +msgstr "" #: lang/json/vehicle_from_json.py src/defense.cpp msgid "Shopping Cart" -msgstr "Carrinho de compras" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Swivel Chair" -msgstr "Cadeira giratória" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Water Cart" -msgstr "Carrinho de água" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Welding Cart" -msgstr "Carrinho de Soldagem" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Wheelbarrow" -msgstr "Carrinho de mão" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Foldable wheelchair" -msgstr "Cadeira de rodas dobrável" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Laundry Cart" -msgstr "Carrinho de Lavanderia" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Hearse" -msgstr "Carro fúnebre" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Technical" -msgstr "Técnico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Ambulance" -msgstr "Ambulância" +msgstr "" #: lang/json/vehicle_from_json.py msgid "FBI, Emergency" -msgstr "FBI, emergência" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Fire Engine" -msgstr "Bombeiros" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Fire Truck" -msgstr "Caminhão de bombeiros" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Police Car" -msgstr "Carro de polícia" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Police K9 Unit" -msgstr "Unidade de polícia K9" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Police SUV" -msgstr "SUV da polícia" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Police K9 Transport" -msgstr "Polícia K9 Transport" +msgstr "" #: lang/json/vehicle_from_json.py msgid "SWAT Truck" -msgstr "Caminhão SWAT" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Primitive Tractor" -msgstr "Trator Primitivo" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Automatic Tractor" -msgstr "Trator Automático" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Plow Tractor" -msgstr "Trator arado" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Reaper Tractor" -msgstr "Trator Ceifador" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Planter Tractor" -msgstr "Trator plantador" +msgstr "" #: lang/json/vehicle_from_json.py msgid "AH-64 Apache Wreckage" -msgstr "AH-64 Apache Wreckage" +msgstr "" #: lang/json/vehicle_from_json.py msgid "V-22 Osprey Wreckage" -msgstr "V-22 Osprey Wreckage" +msgstr "" #: lang/json/vehicle_from_json.py msgid "UH-60 Wreckage" -msgstr "Destroços UH-60" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Mechanized Infantry Carrier" -msgstr "Portador de Infantaria Mecanizado" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Armored Personnel Carrier" -msgstr "Portador de Pessoal Blindado" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Humvee" -msgstr "Humvee" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Military Cargo Truck" -msgstr "Caminhão de carga militar" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Engine Test" -msgstr "Teste do motor" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Rapid Destruction" -msgstr "Destruição Rápida" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Cross Split" -msgstr "Split cruzado" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Circle Split" -msgstr "Círculo Dividido" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Reactor test" -msgstr "Teste do reator" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Solar test" -msgstr "Teste solar" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Passenger Car" -msgstr "Carro passageiro" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Two-Seated Motorized Draisine" @@ -164950,83 +146419,83 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Flatbed Truck" -msgstr "Caminhão" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Pickup Truck" -msgstr "Caminhonete" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Semi Truck" -msgstr "Caminhão Semi" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Truck Trailer" -msgstr "Caminhão reboque" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Heavy Duty Cargo Truck" -msgstr "Caminhão de carga resistente" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Animal Control Truck" -msgstr "Caminhão de Controle de Animais" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Automatic Street Sweeper" -msgstr "Varredor de rua automático" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Excavator" -msgstr "Escavadora" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Portable Generator" -msgstr "Gerador Portátil" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Road Roller" -msgstr "Rolo de estrada" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Forklift" -msgstr "Empilhadeira" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Trencher" -msgstr "Valetadeira" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Armored Car" -msgstr "Carro blindado" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Cube Van" -msgstr "Cubo Van" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Low-End Cube Van" -msgstr "Low-End Cube Van" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Hippie Van" -msgstr "Hippie Van" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Ice Cream Truck" -msgstr "Caminhão de sorvete" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Luxury RV" -msgstr "RV de luxo" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Mobile Meth Lab" -msgstr "Laboratório de Metodologia Móvel" +msgstr "" #: lang/json/vehicle_from_json.py msgid "RV" -msgstr "RV" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Limousine" @@ -165034,7 +146503,7 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Schoolbus" -msgstr "Ônibus escolar" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Bus" @@ -165046,19 +146515,19 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Security Van" -msgstr "Van de segurança" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Wienermobile" -msgstr "Wienermobile" +msgstr "" #: lang/json/vehicle_from_json.py msgid "custom" -msgstr "personalizadas" +msgstr "" #: lang/json/vehicle_from_json.py msgid "custom_empty" -msgstr "custom_empty" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Gas Tanker" @@ -165078,15 +146547,15 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Atomic Compact" -msgstr "Compact Atômico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Atomic SUV" -msgstr "SUV atômico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Atomic Car" -msgstr "Carro atômico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Flaming Atomic Car" @@ -165094,55 +146563,55 @@ msgstr "" #: lang/json/vehicle_from_json.py msgid "Robotic Taxi" -msgstr "Táxi Robótico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Armored Robot Carrier" -msgstr "Porta-aviões blindados" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Atomic Mini-Tank" -msgstr "Mini-tanque atômico" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Light Tank" -msgstr "Tanque Leve" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Main Battle Tank" -msgstr "Tanque de batalha principal" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Self-Propelled Howitzer" -msgstr "Howitzer Self-Propelled" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Mobile Gun System" -msgstr "Sistema de armas móveis" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Bandit Bulldozer" -msgstr "Bandido Bulldozer" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Heavy Planter Tractor" -msgstr "Trator pesado plantador" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Heavy Plow Tractor" -msgstr "Trator pesado arado" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Heavy Reaper Tractor" -msgstr "Trator pesado da ceifeira" +msgstr "" #: lang/json/vehicle_from_json.py msgid "Infantry Fighting Vehicle" -msgstr "Veículo de combate de infantaria" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "rebar reinforcement" -msgstr "reforço de vergalhões" +msgstr "" #. ~ Description for rebar reinforcement #: lang/json/vehicle_part_from_json.py @@ -165150,8 +146619,6 @@ msgid "" "Improvised armor plate. Will partially protect other components on the same" " frame from damage." msgstr "" -" Placa blindada improvisada. Protegerá parcialmente outros componentes no " -"mesmo quadro contra danos." #. ~ Description for shock absorber #: lang/json/vehicle_part_from_json.py @@ -165159,8 +146626,6 @@ msgid "" "A system of springs and pads, intended to cushion the effects of collisions " "on the interior of your vehicle." msgstr "" -" Um sistema de molas e almofadas, destinado a amortecer os efeitos de " -"colisões no interior do seu veículo." #. ~ Description for car battery #. ~ Description for storage battery @@ -165170,8 +146635,6 @@ msgid "" "A battery for storing electrical power, and discharging it to power " "electrical devices built into the vehicle." msgstr "" -" Uma bateria para armazenar energia elétrica e descarregá-la para alimentar " -"dispositivos elétricos embutidos no veículo." #: lang/json/vehicle_part_from_json.py msgid "motorbike battery, small" @@ -165179,7 +146642,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "swappable storage battery" -msgstr "bateria de armazenamento trocável" +msgstr "" #. ~ Description for swappable storage battery #: lang/json/vehicle_part_from_json.py @@ -165189,15 +146652,10 @@ msgid "" "release framework to allow it to be easily swapped, though it still weighs " "so much that a lifting tool of some kind is necessary for most people." msgstr "" -" Uma bateria para armazenar energia elétrica e descarregá-la para alimentar " -"dispositivos elétricos embutidos no veículo. Este é montado em uma estrutura" -" de liberação rápida para permitir que seja facilmente trocado, embora ainda" -" pesa tanto que uma ferramenta de levantamento é necessária para a maioria " -"das pessoas." #: lang/json/vehicle_part_from_json.py msgid "board" -msgstr "borda" +msgstr "" #. ~ Description for board #: lang/json/vehicle_part_from_json.py @@ -165205,12 +146663,10 @@ msgid "" "A metal wall. Keeps zombies outside the vehicle and prevents people from " "seeing through it." msgstr "" -" Uma parede de metal. Mantém os zumbis fora do veículo e impede que as " -"pessoas vejam através dele." #: lang/json/vehicle_part_from_json.py msgid "cloth board" -msgstr "placa de pano" +msgstr "" #. ~ Description for cloth board #: lang/json/vehicle_part_from_json.py @@ -165218,12 +146674,10 @@ msgid "" "A cloth wall. Keeps zombies outside the vehicle and prevents people from " "seeing through it." msgstr "" -" Uma parede de pano. Mantém os zumbis fora do veículo e impede que as " -"pessoas vejam através dele." #: lang/json/vehicle_part_from_json.py msgid "cloth quarterpanel" -msgstr "quarterpanel de pano" +msgstr "" #. ~ Description for cloth quarterpanel #: lang/json/vehicle_part_from_json.py @@ -165231,12 +146685,10 @@ msgid "" "A half-height cloth wall. Keeps zombies outside the vehicle but allows " "people to see over it." msgstr "" -" Uma parede de pano de meia altura. Mantém os zumbis fora do veículo, mas " -"permite que as pessoas vejam por cima." #: lang/json/vehicle_part_from_json.py msgid "quarterpanel" -msgstr "quarterpanel" +msgstr "" #. ~ Description for quarterpanel #: lang/json/vehicle_part_from_json.py @@ -165244,12 +146696,10 @@ msgid "" "A half-height metal wall. Keeps zombies outside the vehicle but allows " "people to see over it." msgstr "" -" Uma parede de metal de meia altura. Mantém os zumbis fora do veículo, mas " -"permite que as pessoas vejam por cima." #: lang/json/vehicle_part_from_json.py msgid "stow board" -msgstr "arrumar placa" +msgstr "" #. ~ Description for stow board #: lang/json/vehicle_part_from_json.py @@ -165257,16 +146707,14 @@ msgid "" "A metal wall with a storage locker. Keeps zombies outside the vehicle and " "prevents people from seeing through it." msgstr "" -" Uma parede de metal com um armário de armazenamento. Mantém os zumbis fora " -"do veículo e impede que as pessoas vejam através dele." #: lang/json/vehicle_part_from_json.py msgid "heavy duty stow board" -msgstr "placa de armazenamento pesados" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy duty board" -msgstr "placa de serviço pesado" +msgstr "" #. ~ Description for heavy duty board #: lang/json/vehicle_part_from_json.py @@ -165274,12 +146722,10 @@ msgid "" "A strong metal wall. Keeps zombies outside the vehicle and prevents people " "from seeing through it." msgstr "" -" Uma parede de metal forte. Mantém os zumbis fora do veículo e impede que as" -" pessoas vejam através dele." #: lang/json/vehicle_part_from_json.py msgid "heavy duty quarterpanel" -msgstr "quarterpanel resistente" +msgstr "" #. ~ Description for heavy duty quarterpanel #: lang/json/vehicle_part_from_json.py @@ -165287,12 +146733,10 @@ msgid "" "A half-height strong metal wall. Keeps zombies outside the vehicle but " "allows people to see over it." msgstr "" -" Uma parede de metal forte de meia altura. Mantém os zumbis fora do veículo," -" mas permite que as pessoas vejam por cima." #: lang/json/vehicle_part_from_json.py msgid "wooden board" -msgstr "tábua de madeira" +msgstr "" #. ~ Description for wooden board #: lang/json/vehicle_part_from_json.py @@ -165300,12 +146744,10 @@ msgid "" "A wooden wall. Keeps zombies outside the vehicle and prevents people from " "seeing through it." msgstr "" -" Uma parede de madeira. Mantém os zumbis fora do veículo e impede que as " -"pessoas vejam através dele." #: lang/json/vehicle_part_from_json.py msgid "wooden quarterpanel" -msgstr "quarterpanel de madeira" +msgstr "" #. ~ Description for wooden quarterpanel #: lang/json/vehicle_part_from_json.py @@ -165313,12 +146755,10 @@ msgid "" "A half-height wooden wall. Keeps zombies outside the vehicle but allows " "people to see over it." msgstr "" -" Uma parede de madeira de meia altura. Mantém os zumbis fora do veículo, mas" -" permite que as pessoas vejam por cima." #: lang/json/vehicle_part_from_json.py msgid "extra light quarterpanel" -msgstr "quarterpanel extra leve" +msgstr "" #. ~ Description for extra light quarterpanel #: lang/json/vehicle_part_from_json.py @@ -165326,12 +146766,10 @@ msgid "" "A half-height thin metal wall. Keeps zombies outside the vehicle but allows" " people to see over it." msgstr "" -" Uma parede de metal fina de meia altura. Mantém os zumbis fora do veículo, " -"mas permite que as pessoas vejam por cima." #: lang/json/vehicle_part_from_json.py msgid "external shopping cart basket" -msgstr "cesta externa do carrinho de compras" +msgstr "" #. ~ Description for external shopping cart basket #. ~ Description for external wire bike basket @@ -165341,16 +146779,14 @@ msgid "" "Storage space, mounted outside your vehicle's armor and vulnerable to " "damage." msgstr "" -" Espaço de armazenamento, montado fora da blindagem do seu veículo e " -"vulnerável a danos." #: lang/json/vehicle_part_from_json.py msgid "external wire bike basket" -msgstr "cesta de bicicleta de arame externo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "external cargo rack" -msgstr "rack de carga externa" +msgstr "" #. ~ Description for bike rack #: lang/json/vehicle_part_from_json.py @@ -165361,12 +146797,6 @@ msgid "" " any bike rack to mount that vehicle onto the bike rack. 'e'xamine the bike" " rack to unmount the carried vehicle." msgstr "" -" Uma coleção de tubos e estruturas para apoiar uma bicicleta ou outro " -"veículo pequeno e transportá-lo em seu veículo. Mova um veículo com um único" -" ladrilho para que todos os ladrilhos do veículo fiquem ao lado dos racks de" -" bicicletas e, em seguida, limpe o suporte de bicicletas para montar o " -"veículo no suporte de bicicletas. 'e'xamine o bicicletário para " -"desmontar o veículo transportado." #. ~ Description for mounted spare tire #: lang/json/vehicle_part_from_json.py @@ -165375,7 +146805,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns fuel from a tank in the vehicle." -msgstr "Um motor de combustão. Queima combustível de um tanque no veículo." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "" @@ -165386,8 +146816,6 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "A combustion engine. Burns gasoline fuel from a tank in the vehicle." msgstr "" -" Um motor de combustão. Queima combustível de gasolina de um tanque no " -"veículo." #: lang/json/vehicle_part_from_json.py msgid "" @@ -165402,12 +146830,10 @@ msgid "" "A closed cycle, external combustion steam engine. Burns coal or charcoal " "from a bunker in the vehicle to produce steam." msgstr "" -" Um ciclo fechado, motor a vapor de combustão externa. Queima carvão ou " -"carvão de um bunker no veículo para produzir vapor." #: lang/json/vehicle_part_from_json.py msgid "boom crane" -msgstr "guindaste de lança" +msgstr "" #. ~ Description for boom crane #. ~ Description for internal boom crane @@ -165420,20 +146846,14 @@ msgid "" " have line of sight to where it is going and it must be within four tiles of" " it." msgstr "" -" Um guindaste de lança de aço rígido. Se estiver na sua linha de visão e " -"dentro de dois ladrilhos de outro veículo, você irá utilizá-lo " -"automaticamente quando quiser que o outro veículo mude as rodas. Para usá- " -"lo para levantar um componente pesado como um motor que você está instalando" -" ou removendo, o guindaste deve ter uma linha de visão para onde está indo e" -" deve estar dentro de quatro blocos." #: lang/json/vehicle_part_from_json.py msgid "internal boom crane" -msgstr "guindaste de lança interna" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "telescopic crane" -msgstr "guindaste telescópico" +msgstr "" #. ~ Description for telescopic crane #: lang/json/vehicle_part_from_json.py @@ -165445,12 +146865,6 @@ msgid "" "crane must have line of sight to where it is going and it must be within " "four tiles of it." msgstr "" -" Um guindaste cantilever extensível. Se estiver na sua linha de visão e " -"dentro de dois ladrilhos de outro veículo, você irá utilizá-lo " -"automaticamente quando quiser que o outro veículo mude as rodas. Para usá- " -"lo para levantar um componente pesado como um motor que você está instalando" -" ou removendo, o guindaste deve ter uma linha de visão para onde está indo e" -" deve estar dentro de quatro blocos." #. ~ Description for pallet lifter #: lang/json/vehicle_part_from_json.py @@ -165461,16 +146875,10 @@ msgid "" " like an engine that you are installing or removing, the crane must have " "line of sight to where it is going and it must be within four tiles of it." msgstr "" -" Um pequeno elevador de paletes. Se estiver na sua linha de visão e dentro " -"de dois ladrilhos de outro veículo, você irá utilizá-lo automaticamente " -"quando quiser que o outro veículo mude as rodas. Para usá-lo para levantar " -"um componente pesado como um motor que você está instalando ou removendo, o " -"guindaste deve ter uma linha de visão para onde está indo e deve estar " -"dentro de quatro blocos." #: lang/json/vehicle_part_from_json.py msgid "forklift arm" -msgstr "braço de empilhadeira" +msgstr "" #. ~ Description for forklift arm #: lang/json/vehicle_part_from_json.py @@ -165482,12 +146890,6 @@ msgid "" " have line of sight to where it is going and it must be within four tiles of" " it." msgstr "" -" Um par de braços de empilhadeira. Se estiver na sua linha de visão e dentro" -" de dois ladrilhos de outro veículo, você irá utilizá-lo automaticamente " -"quando quiser que o outro veículo mude as rodas. Para usá-lo para levantar " -"um componente pesado como um motor que você está instalando ou removendo, o " -"guindaste deve ter uma linha de visão para onde está indo e deve estar " -"dentro de quatro blocos." #. ~ Description for rockwheel #: lang/json/vehicle_part_from_json.py @@ -165497,18 +146899,14 @@ msgid "" "unless it has a strong engine. When turned on, it will dig a shallow pit in" " dirt. Mount it on the edge of your vehicle." msgstr "" -" Um disco de metal grande, alimentado pelos motores do veículo. Use os " -"controles do veículo para ligá-lo ou desligá-lo. Quando ligado, ele irá " -"parar o veículo, a menos que tenha um motor forte. Quando ligado, cavará um " -"buraco raso na terra. Montá-lo na borda do seu veículo." #: lang/json/vehicle_part_from_json.py msgid "air jack system" -msgstr "sistema de tomada de ar" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "foldable light frame" -msgstr "quadro de luz dobrável" +msgstr "" #. ~ Description for foldable light frame #: lang/json/vehicle_part_from_json.py @@ -165518,10 +146916,6 @@ msgid "" "the vehicle can be folding into a small package and picked up as a normal " "item." msgstr "" -" Uma estrutura de metal leve, projetada para dobrar. Outros componentes do " -"veículo podem ser montados nele. Se todas as estruturas e componentes de um " -"veículo forem dobráveis, o veículo pode ser dobrado em um pacote pequeno e " -"recolhido como um item normal." #. ~ Description for foldable wooden frame #: lang/json/vehicle_part_from_json.py @@ -165531,14 +146925,10 @@ msgid "" " the vehicle can be folding into a small package and picked up as a normal " "item." msgstr "" -" Um quadro de madeira leve, projetado para dobrar. Outros componentes do " -"veículo podem ser montados nele. Se todas as estruturas e componentes de um " -"veículo forem dobráveis, o veículo pode ser dobrado em um pacote pequeno e " -"recolhido como um item normal." #: lang/json/vehicle_part_from_json.py msgid "frame" -msgstr "quadro, Armação" +msgstr "" #. ~ Description for frame #: lang/json/vehicle_part_from_json.py @@ -165546,8 +146936,6 @@ msgid "" "A 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 "" -" Um quadro de metal. Outros componentes do veículo podem ser montados nele e" -" podem ser fixados em outros quadros para aumentar o tamanho do veículo." #. ~ Description for wooden frame #: lang/json/vehicle_part_from_json.py @@ -165557,10 +146945,6 @@ msgid "" "nail construction means it can be constructed and added to the vehicle " "without welding tools." msgstr "" -" Um quadro de madeira. Outros componentes do veículo podem ser montados nele" -" e podem ser fixados em outros quadros para aumentar o tamanho do veículo. " -"Construção de madeira e unhas significa que pode ser construído e adicionado" -" ao veículo sem ferramentas de soldagem." #. ~ Description for light wooden frame #: lang/json/vehicle_part_from_json.py @@ -165570,10 +146954,6 @@ msgid "" " and rope constructions means it can be constructed and added to the vehicle" " without welding tools or nails." msgstr "" -" Um quadro de madeira leve. Outros componentes do veículo podem ser montados" -" nele e podem ser fixados em outros quadros para aumentar o tamanho do " -"veículo. Construções de madeira e corda significam que ele pode ser " -"construído e adicionado ao veículo sem ferramentas ou pregos de solda." #. ~ Description for heavy duty frame #: lang/json/vehicle_part_from_json.py @@ -165582,13 +146962,10 @@ msgid "" " it can be attached to other frames to increase the vehicle's size. " "Increased mass makes it more resistant to damage in collisions." msgstr "" -" Um quadro de heavy metal. Outros componentes do veículo podem ser montados " -"nele e podem ser fixados em outros quadros para aumentar o tamanho do " -"veículo. Maior massa torna mais resistente a danos em colisões." #: lang/json/vehicle_part_from_json.py msgid "extra light frame" -msgstr "quadro de luz extra" +msgstr "" #. ~ Description for extra light frame #: lang/json/vehicle_part_from_json.py @@ -165596,13 +146973,10 @@ msgid "" "A light 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 "" -" Um quadro de metal leve. Outros componentes do veículo podem ser montados " -"nele e podem ser fixados em outros quadros para aumentar o tamanho do " -"veículo." #: lang/json/vehicle_part_from_json.py src/vehicle_use.cpp msgid "aisle lights" -msgstr "luzes do corredor" +msgstr "" #. ~ Description for atomic lamp #: lang/json/vehicle_part_from_json.py @@ -165610,8 +146984,6 @@ msgid "" "A bright light, self-powered by an atomic decay reaction that never stops. " "When turned on, it illuminates several squares inside the vehicle." msgstr "" -" Uma luz brilhante, auto-alimentada por uma reação de decaimento atômico que" -" nunca pára. Quando ligado, ilumina vários quadrados dentro do veículo." #: lang/json/vehicle_part_from_json.py msgid "atomic nightlight" @@ -165624,9 +146996,6 @@ msgid "" " When turned on, it illuminates a single square inside the vehicle that " "isn't suitable for crafting." msgstr "" -" Uma luz muito fraca, auto-alimentada por uma reação de decaimento atômico " -"que nunca pára. Quando ligado, ilumina um único quadrado dentro do veículo " -"que não é adequado para a elaboração." #. ~ Description for floodlight #: lang/json/vehicle_part_from_json.py @@ -165634,8 +147003,6 @@ msgid "" "A very bright, circular light that illuminates the area outside the vehicle " "when turned on." msgstr "" -" Uma luz circular muito brilhante que ilumina a área externa do veículo " -"quando ligada." #. ~ Description for directed floodlight #: lang/json/vehicle_part_from_json.py @@ -165644,13 +147011,10 @@ msgid "" "the vehicle when turned on. During installation, you can choose what " "direction to point the light." msgstr "" -" Uma luz muito brilhante e direcionada que ilumina uma área semi-circular " -"fora do veículo quando ligada. Durante a instalação, você pode escolher em " -"qual direção apontar a luz." #: lang/json/vehicle_part_from_json.py msgid "headlight" -msgstr "Farol" +msgstr "" #. ~ Description for headlight #: lang/json/vehicle_part_from_json.py @@ -165660,10 +147024,6 @@ msgid "" "light, so multiple headlights can illuminate the sides or rear, as well as " "the front." msgstr "" -" Uma luz brilhante que ilumina um cone estreito fora do veículo quando " -"ligado. Durante a instalação, você pode escolher em qual direção apontar a " -"luz, para que vários faróis possam iluminar as laterais ou traseira, bem " -"como a frente." #. ~ Description for motorcycle headlight #: lang/json/vehicle_part_from_json.py @@ -165676,7 +147036,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wide angle headlight" -msgstr "farol grande angular" +msgstr "" #. ~ Description for wide angle headlight #: lang/json/vehicle_part_from_json.py @@ -165686,10 +147046,6 @@ msgid "" "so multiple headlights can illuminate the sides or rear, as well as the " "front." msgstr "" -" Uma luz brilhante que ilumina um cone largo fora do veículo quando ligado. " -"Durante a instalação, você pode escolher em qual direção apontar a luz, para" -" que vários faróis possam iluminar as laterais ou traseira, bem como a " -"frente." #: lang/json/vehicle_part_from_json.py msgid "" @@ -165697,25 +147053,22 @@ msgid "" "vehicle's roof. Flashes between red and blue when turned on, attracting " "attention without illuminating the area." msgstr "" -" Luzes de emergência, como um carro da polícia ou uma ambulância, estavam no" -" teto do veículo. Pisca entre vermelho e azul quando ligado, atraindo a " -"atenção sem iluminar a área." #: lang/json/vehicle_part_from_json.py msgid "blue light" -msgstr "luz azul" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "red light" -msgstr "luz vermelha" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "aisle with lights" -msgstr "corredor com luzes" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "foot pedals" -msgstr "pedais" +msgstr "" #. ~ Description for foot pedals #: lang/json/vehicle_part_from_json.py @@ -165723,13 +147076,10 @@ msgid "" "A set of bicycle style foot pedals. If mounted on the same tile as seat, " "they allow you to move the vehicle at the cost of your stamina." msgstr "" -" Um conjunto de pedais de estilo de bicicleta. Se montado no mesmo ladrilho " -"que o assento, eles permitem que você mova o veículo ao custo de sua " -"resistência." #: lang/json/vehicle_part_from_json.py msgid "hand rims" -msgstr "jantes de mão" +msgstr "" #. ~ Description for hand rims #: lang/json/vehicle_part_from_json.py @@ -165737,14 +147087,11 @@ msgid "" "A set of wheelchair style wheels. If mounted on the same tile as seat, they" " allow you to move the vehicle at the cost of your stamina." msgstr "" -" Um conjunto de rodas de estilo de cadeira de rodas. Se montado no mesmo " -"ladrilho que o assento, eles permitem que você mova o veículo ao custo de " -"sua resistência." #. ~ Description for electric motor #: lang/json/vehicle_part_from_json.py msgid "An electric motor." -msgstr "Um motor elétrico." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "" @@ -165752,41 +147099,38 @@ msgid "" "collisions, and to increase damaged delivered in collisions, if the ram is " "the first vehicle part to collide." msgstr "" -" Um carneiro reforçado. Coloque na borda do veículo para reduzir os danos " -"sofridos nas colisões, e para aumentar o dano entregue nas colisões, se o " -"aríete for a primeira peça do veículo a colidir." #: lang/json/vehicle_part_from_json.py msgid "superalloy ram" -msgstr "ram de superliga" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy steel ram" -msgstr "ram de aço pesado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "military composite ram" -msgstr "ram composto militar" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "spiked ram" -msgstr "ram cravado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "steel ram" -msgstr "ram de aço" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wooden ram" -msgstr "ram de madeira" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "chitin ram" -msgstr "quitina ram" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "biosilicfied chitin ram" -msgstr "Ram de quitina biosilicfied" +msgstr "" #. ~ Description for shredder #: lang/json/vehicle_part_from_json.py @@ -165795,13 +147139,10 @@ msgid "" "increase the damage the vehicle delivers in collisions. Mount on the edges " "of the vehicle, preferably the front." msgstr "" -" Uma lâmina circular, movida pelo motor do veículo. Aumentará dramaticamente" -" o dano que o veículo entrega em colisões. Montar nas bordas do veículo, de " -"preferência a frente." #: lang/json/vehicle_part_from_json.py msgid "vehicle tank (2L)" -msgstr "tanque do veículo (2L)" +msgstr "" #. ~ Description for vehicle tank (2L) #. ~ Description for vehicle tank (10L) @@ -165815,28 +147156,22 @@ 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 "" -" Um espaço de armazenamento para guardar líquidos. Se abastecido com o " -"combustível apropriado para o motor do veículo, o motor retirará " -"automaticamente o combustível do tanque quando o motor estiver ligado. Se " -"estiver cheio de água, você pode acessar a água de uma torneira de água, se " -"estiver instalada no veículo. Você também pode usar uma mangueira de " -"borracha para extrair líquidos de um tanque." #: lang/json/vehicle_part_from_json.py msgid "vehicle tank (10L)" -msgstr "tanque do veículo (10L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "vehicle tank (20L)" -msgstr "tanque do veículo (20L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "vehicle tank (60L)" -msgstr "tanque do veículo (60L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "external tank (100L)" -msgstr "tanque externo (100L)" +msgstr "" #. ~ Description for external tank (100L) #: lang/json/vehicle_part_from_json.py @@ -165848,16 +147183,10 @@ msgid "" "installed in the vehicle. You can also use a rubber hose to siphon liquids " "out of a tank." msgstr "" -" Um espaço de armazenamento para reter líquidos, montado fora das paredes e " -"armaduras do veículo. Se abastecido com o combustível apropriado para o " -"motor do veículo, o motor retirará automaticamente o combustível do tanque " -"quando o motor estiver ligado. Se estiver cheio de água, você pode acessar a" -" água de uma torneira de água, se estiver instalada no veículo. Você também " -"pode usar uma mangueira de borracha para extrair líquidos de um tanque." #: lang/json/vehicle_part_from_json.py msgid "external tank (200L)" -msgstr "tanque externo (200L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wooden barrel (100L)" @@ -165882,53 +147211,50 @@ msgid "" "fuel for the vehicle's engine, the engine will automatically draw fuel from " "the tank when the engine is on." msgstr "" -" Um espaço de armazenamento para manter combustíveis sólidos. Se abastecido " -"com o combustível apropriado para o motor do veículo, o motor retirará " -"automaticamente o combustível do tanque quando o motor estiver ligado." #: lang/json/vehicle_part_from_json.py msgid "mounted flamethrower" -msgstr "lança-chamas montado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted fusion gun" -msgstr "arma de fusão montada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted A7 laser rifle" -msgstr "Rifle de laser A7 montado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted M249" -msgstr "montado M249" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted automatic shotgun" -msgstr "espingarda automática montada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted M2 Browning" -msgstr "M2 Browning montado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted M134D-H Minigun" -msgstr "MIGA M134D-H montada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted Browning Automatic Rifle" -msgstr "rifle automático Browning montado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted M240" -msgstr "M240 montado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted M60" -msgstr "montado M60" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted Mark 19 grenade launcher" -msgstr "montada Mark 19 lançador de granadas" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted BGM-71F TOW" @@ -165936,36 +147262,34 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted RM298 HMG" -msgstr "montado RM298 HMG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted RM614 LMG" -msgstr "montado RM614 LMG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted plasma gun" -msgstr "pistola de plasma montada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "null part" -msgstr "parte nula" +msgstr "" #. ~ Description for seat #: lang/json/vehicle_part_from_json.py msgid "A place to sit, or sleep if you're desperate." -msgstr "Um lugar para sentar ou dormir se estiver desesperado." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "reclining seat" -msgstr "assento reclinável" +msgstr "" #. ~ Description for reclining seat #: lang/json/vehicle_part_from_json.py msgid "" "A place to sit, and the backrest reclines to make it an uncomfortable bed." msgstr "" -" Um lugar para se sentar, e o encosto se reclina para torná-lo uma cama " -"desconfortável." #. ~ Description for yoke and harness #: lang/json/vehicle_part_from_json.py @@ -165975,114 +147299,110 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "tracking device" -msgstr "Aparelho de rastreamento" +msgstr "" #. ~ Description for tracking device #: lang/json/vehicle_part_from_json.py msgid "A small transmitter that lets you locate the vehicle on the map." -msgstr "Um pequeno transmissor que permite localizar o veículo no mapa." +msgstr "" #. ~ Description for saddle #: lang/json/vehicle_part_from_json.py msgid "A padded wedge that you straddle, like a bicycle or motorcycle." msgstr "" -" Uma cunha acolchoada que você monta, como uma bicicleta ou uma motocicleta." #: lang/json/vehicle_part_from_json.py msgid "foldable seat" -msgstr "assento dobrável" +msgstr "" #. ~ Description for foldable seat #: lang/json/vehicle_part_from_json.py msgid "A crude seat, too uncomfortable to sleep in." -msgstr "Um assento grosseiro, muito desconfortável para dormir." +msgstr "" #. ~ Description for bed #: lang/json/vehicle_part_from_json.py msgid "A small but comfortable bed." -msgstr "Uma pequena mas confortável cama." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "handle" -msgstr "lidar com" +msgstr "" #. ~ Description for handle #. ~ Description for wooden handle #. ~ Description for light wooden handle #: lang/json/vehicle_part_from_json.py msgid "A pair of handles. You can mount other items on top of it." -msgstr "Um par de alças. Você pode montar outros itens em cima dele." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wooden handle" -msgstr "cabo de madeira" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "light wooden handle" -msgstr "alça de madeira leve" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "aisle" -msgstr "corredor" +msgstr "" #. ~ Description for aisle #. ~ Description for wooden aisle #: lang/json/vehicle_part_from_json.py msgid "An aisle." -msgstr "Um corredor." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wooden aisle" -msgstr "corredor de madeira" +msgstr "" #. ~ Description for floor trunk #: lang/json/vehicle_part_from_json.py msgid "An aisle. A hatch lets you access a cargo space beneath it." msgstr "" -" Um corredor. Uma escotilha permite acessar um espaço de carga abaixo dela." #: lang/json/vehicle_part_from_json.py msgid "cloth roof" -msgstr "telhado de pano" +msgstr "" #. ~ Description for cloth roof #: lang/json/vehicle_part_from_json.py msgid "A cloth roof." -msgstr "Um telhado de tecido." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "roof" -msgstr "cobertura" +msgstr "" #. ~ Description for roof #: lang/json/vehicle_part_from_json.py msgid "A metal roof." -msgstr "Um telhado de metal." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy duty roof" -msgstr "telhado resistente" +msgstr "" #. ~ Description for heavy duty roof #: lang/json/vehicle_part_from_json.py msgid "A thick metal roof." -msgstr "Um telhado de metal grosso." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "door" -msgstr "por" +msgstr "" #. ~ Description for door #. ~ Description for wooden door #: lang/json/vehicle_part_from_json.py msgid "A door. Has a window so you can see out of it, even when closed." msgstr "" -" Uma porta. Tem uma janela para que você possa ver fora dela, mesmo quando " -"fechado." #: lang/json/vehicle_part_from_json.py msgid "opaque door" -msgstr "opaco por" +msgstr "" #. ~ Description for opaque door #. ~ Description for opaque wooden door @@ -166090,24 +147410,20 @@ msgstr "opaco por" msgid "" "A door. Solid construction means you can't see through it when closed." msgstr "" -" Uma porta. Construção sólida significa que você não pode ver através dela " -"quando fechada." #: lang/json/vehicle_part_from_json.py msgid "heavy duty door" -msgstr "porta pesada" +msgstr "" #. ~ Description for heavy duty door #: lang/json/vehicle_part_from_json.py msgid "" "A strong door. Has a window so you can see out of it, even when closed." msgstr "" -" Uma porta forte. Tem uma janela para que você possa ver fora dela, mesmo " -"quando fechado." #: lang/json/vehicle_part_from_json.py msgid "heavy duty opaque door" -msgstr "porta opaca resistente" +msgstr "" #. ~ Description for heavy duty opaque door #. ~ Description for opaque hatch @@ -166117,12 +147433,10 @@ msgid "" "A strong door. Solid construction means you can't see through it when " "closed." msgstr "" -" Uma porta forte. Construção sólida significa que você não pode ver através " -"dela quando fechada." #: lang/json/vehicle_part_from_json.py msgid "internal door" -msgstr "porta interna" +msgstr "" #. ~ Description for internal door #: lang/json/vehicle_part_from_json.py @@ -166130,35 +147444,32 @@ msgid "" "An interior door. Solid construction means you can't see through it when " "closed." msgstr "" -" Uma porta interior. Construção sólida significa que você não pode ver " -"através dela quando fechada." #: lang/json/vehicle_part_from_json.py msgid "hatch" -msgstr "chocar" +msgstr "" #. ~ Description for hatch #: lang/json/vehicle_part_from_json.py msgid "A strong door. A window lets you see through it when closed." -msgstr "Uma porta forte. Uma janela permite ver através dela quando fechada." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "opaque hatch" -msgstr "escotilha opaca" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy duty hatch" -msgstr "escotilha pesada" +msgstr "" #. ~ Description for heavy duty hatch #: lang/json/vehicle_part_from_json.py msgid "A very strong door. A window lets you see through it when closed." msgstr "" -" Uma porta muito forte. Uma janela permite ver através dela quando fechada." #: lang/json/vehicle_part_from_json.py msgid "opaque heavy duty hatch" -msgstr "escotilha pesada opaca" +msgstr "" #. ~ Description for opaque heavy duty hatch #: lang/json/vehicle_part_from_json.py @@ -166166,22 +147477,20 @@ msgid "" "A very strong door. Solid construction means you can't see through it when " "closed." msgstr "" -" Uma porta muito forte. Construção sólida significa que você não pode ver " -"através dela quando fechada." #: lang/json/vehicle_part_from_json.py msgid "windshield" -msgstr "pára-brisa" +msgstr "" #. ~ Description for windshield #: lang/json/vehicle_part_from_json.py msgid "A sheet of glass that lets you see outside the vehicle." -msgstr "Uma folha de vidro que permite ver fora do veículo." +msgstr "" #. ~ Description for blade #: lang/json/vehicle_part_from_json.py msgid "A blade, welded to the vehicle, for cutting up zombies." -msgstr "Uma lâmina, soldada ao veículo, para cortar zumbis." +msgstr "" #. ~ Description for spike #: lang/json/vehicle_part_from_json.py @@ -166189,12 +147498,10 @@ msgid "" "A metal spike, welded to the vehicle, to increase injury when crashing into " "things." msgstr "" -" Um espigão de metal, soldado ao veículo, para aumentar a lesão ao colidir " -"com as coisas." #: lang/json/vehicle_part_from_json.py msgid "swappable storage battery case" -msgstr "caixa de bateria de armazenamento intercambiável" +msgstr "" #. ~ Description for swappable storage battery case #: lang/json/vehicle_part_from_json.py @@ -166202,9 +147509,6 @@ msgid "" "A battery case for storage batteries. Allows quick removal or addition of a" " storage battery, if you can lift the battery." msgstr "" -" Um estojo de bateria para baterias de armazenamento. Permite a remoção " -"rápida ou adição de uma bateria de armazenamento, se você puder levantar a " -"bateria." #. ~ Description for military black box #: lang/json/vehicle_part_from_json.py @@ -166219,8 +147523,6 @@ msgid "" "A small nuclear reactor. When loaded with plutonium cells and turned on, " "will generate a lot of electrical power." msgstr "" -" Um pequeno reator nuclear. Quando carregado com células de plutônio e " -"ligado, irá gerar muita energia elétrica." #. ~ Description for minifridge #: lang/json/vehicle_part_from_json.py @@ -166228,8 +147530,6 @@ msgid "" "A small fridge. When turned on, it will cool the food inside, extended the " "time until the food spoils." msgstr "" -" Um pequeno frigorífico. Quando ligado, ele vai esfriar a comida dentro, " -"estendeu o tempo até que a comida estrague." #. ~ Description for washing machine #: lang/json/vehicle_part_from_json.py @@ -166238,72 +147538,69 @@ msgid "" " power, you could clean a lot of clothes. 'e'xamine the tile with the " "washing machine to use it." msgstr "" -" Uma pequena máquina de lavar roupa. Com detergente ou sabão, água e alguma " -"energia elétrica, você pode limpar muitas roupas. 'e'xamine o " -"azulejo com a máquina de lavar roupa para usá-lo." #: lang/json/vehicle_part_from_json.py msgid "trunk" -msgstr "tronco" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "box" -msgstr "caixa" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "travois" -msgstr "travois" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wood box" -msgstr "caixa de madeira" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "folding wood box" -msgstr "caixa de madeira dobrável" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "storage bag" -msgstr "saco de armazenamento" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wire bike basket" -msgstr "cesta de bicicleta de arame" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "shopping cart basket" -msgstr "carrinho de compras" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "folding shopping cart basket" -msgstr "cesta de carrinho de compras dobrável" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wood table" -msgstr "mesa de madeira" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wooden boat hull" -msgstr "casco de barco de madeira" +msgstr "" #. ~ Description for wooden boat hull #: lang/json/vehicle_part_from_json.py msgid "A wooden board that keeps the water out of your boat." -msgstr "Uma tábua de madeira que mantém a água fora do seu barco." +msgstr "" #. ~ Description for plastic boat hull #: lang/json/vehicle_part_from_json.py msgid "A rigid plastic sheet that keeps water out of your boat." -msgstr "Uma folha de plástico rígida que retém a água do barco." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "metal boat hull" -msgstr "casco do barco de metal" +msgstr "" #. ~ Description for metal boat hull #: lang/json/vehicle_part_from_json.py msgid "A metal sheet that keeps the water out of your boat." -msgstr "Uma folha de metal que mantém a água fora do seu barco." +msgstr "" #. ~ Description for carbon fiber boat hull #: lang/json/vehicle_part_from_json.py @@ -166311,26 +147608,24 @@ msgid "" "A light weight, advanced carbon fiber rigid sheet that keeps the water out " "of your boat." msgstr "" -" Uma folha rígida de fibra de carbono avançada e leve que mantém a água fora" -" de seu barco." #: lang/json/vehicle_part_from_json.py msgid "hand paddles" -msgstr "pás de mão" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "controls" -msgstr "controles" +msgstr "" #. ~ Description for controls #: lang/json/vehicle_part_from_json.py msgid "A steering wheel and accelerator and brake pedals." -msgstr "Um volante e pedais de acelerador e freio." +msgstr "" #. ~ Description for dashboard #: lang/json/vehicle_part_from_json.py msgid "A frame containing some lights and controls." -msgstr "Um quadro contendo algumas luzes e controles." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "vehicle-mounted heater" @@ -166344,26 +147639,24 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Some switches and knobs to control the vehicle's electrical systems." msgstr "" -" Alguns interruptores e botões para controlar os sistemas elétricos do " -"veículo." #. ~ Description for muffler #: lang/json/vehicle_part_from_json.py msgid "A metal pipe that reduces some of noise of the engine." -msgstr "Um tubo de metal que reduz o ruído do motor." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "seatbelt" -msgstr "cinto de segurança" +msgstr "" #. ~ Description for seatbelt #: lang/json/vehicle_part_from_json.py msgid "A belt, attached to a seat." -msgstr "Um cinto preso a um assento." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "security system" -msgstr "sistema de segurança" +msgstr "" #. ~ Description for security system #: lang/json/vehicle_part_from_json.py @@ -166372,13 +147665,10 @@ msgid "" "the proper key, and that will sound an alarm if you try. The alarm can be " "disabled." msgstr "" -" Um monte de eletrônicos que dificultam a partida do veículo sem a chave " -"apropriada, e isso soará um alarme se você tentar. O alarme pode ser " -"desativado." #: lang/json/vehicle_part_from_json.py msgid "5-point harness" -msgstr "Arnês de 5 pontos" +msgstr "" #. ~ Description for 5-point harness #: lang/json/vehicle_part_from_json.py @@ -166386,26 +147676,24 @@ msgid "" "A series of straps attached to the seat, intended to fasten together after " "going over your shoulders and hips and between your legs." msgstr "" -" Uma série de alças presas ao assento, com a intenção de ficarem juntas " -"depois de passar por cima dos ombros e dos quadris e entre as pernas." #: lang/json/vehicle_part_from_json.py msgid "curtain" -msgstr "cortina" +msgstr "" #. ~ Description for curtain #: lang/json/vehicle_part_from_json.py msgid "A sheet over a window." -msgstr "Uma folha sobre uma janela." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "aisle curtain" -msgstr "cortina de corredor" +msgstr "" #. ~ Description for aisle curtain #: lang/json/vehicle_part_from_json.py msgid "A sheet across an aisle." -msgstr "Uma folha em um corredor." +msgstr "" #. ~ Description for solar panel #: lang/json/vehicle_part_from_json.py @@ -166413,9 +147701,6 @@ msgid "" "A solar panel. Will slowly recharge the vehicle's electrical power when " "exposed to the sun. Clouds will slow the recharge speed even more." msgstr "" -" Um painel solar. Recarregará lentamente a energia elétrica do veículo " -"quando exposto ao sol. As nuvens retardarão ainda mais a velocidade de " -"recarga." #. ~ Description for wind turbine #: lang/json/vehicle_part_from_json.py @@ -166423,8 +147708,6 @@ msgid "" "A small wind turbine. Will slowly recharge the vehicle's electrical power " "when exposed to the wind." msgstr "" -" Uma pequena turbina eólica. Recarregará lentamente a energia elétrica do " -"veículo quando exposto ao vento." #. ~ Description for large wind turbine #: lang/json/vehicle_part_from_json.py @@ -166441,9 +147724,6 @@ msgid "" "exposed to the sun. Clouds will slow the recharge speed even more. " "Reinforced with armored glass to make it more resistant to damage." msgstr "" -" Um painel solar. Recarregará lentamente a energia elétrica do veículo " -"quando exposto ao sol. As nuvens retardarão ainda mais a velocidade de " -"recarga. Reforçado com vidro blindado para torná-lo mais resistente a danos." #. ~ Description for upgraded solar panel #: lang/json/vehicle_part_from_json.py @@ -166452,9 +147732,6 @@ msgid "" "electrical power when exposed to the sun. Clouds will slow the recharge " "speed even more." msgstr "" -" Um painel solar de alto desempenho. Recarregará lentamente a energia " -"elétrica do veículo quando exposto ao sol. As nuvens retardarão ainda mais a" -" velocidade de recarga." #. ~ Description for upgraded reinforced solar panel #: lang/json/vehicle_part_from_json.py @@ -166464,10 +147741,6 @@ msgid "" "speed even more. Reinforced with armored glass to make it more resistant to" " damage." msgstr "" -" Um painel solar de alto desempenho. Recarregará lentamente a energia " -"elétrica do veículo quando exposto ao sol. As nuvens retardarão ainda mais a" -" velocidade de recarga. Reforçado com vidro blindado para torná-lo mais " -"resistente a danos." #. ~ Description for quantum solar panel #: lang/json/vehicle_part_from_json.py @@ -166476,30 +147749,25 @@ msgid "" "electrical power when exposed to the sun. Clouds will slow the recharge " "speed. Extremely fragile and cannot be armored." msgstr "" -" Um painel solar de desempenho extremamente alto. Recarregará a energia " -"elétrica do veículo quando exposto ao sol. Nuvens retardarão a velocidade de" -" recarga. Extremamente frágil e não pode ser blindado." #. ~ Description for water faucet #: lang/json/vehicle_part_from_json.py msgid "A water faucet." -msgstr "Uma torneira de água." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "kitchen unit" -msgstr "unidade de cozinha" +msgstr "" #. ~ Description for kitchen unit #: lang/json/vehicle_part_from_json.py msgid "" "A small but complete kitchen unit, powered from the vehicle's batteries." msgstr "" -" Uma pequena mas completa unidade de cozinha, alimentada pelas baterias do " -"veículo." #: lang/json/vehicle_part_from_json.py msgid "welding rig" -msgstr "equipamento de soldagem" +msgstr "" #. ~ Description for welding rig #: lang/json/vehicle_part_from_json.py @@ -166510,11 +147778,6 @@ msgid "" " item or perform a repair that requires a welder, you will be given the " "option of using the welding rig." msgstr "" -" Um equipamento de soldagem montado no veículo, que consome energia das " -"baterias do veículo. Você ainda precisa de proteção contra brilho. " -"'e'xamine o azulejo com o equipamento para usá-lo para reparar itens" -" em seu inventário. Se você tentar criar um item ou executar um reparo que " -"requeira um soldador, terá a opção de usar o equipamento de soldagem." #. ~ Description for FOODCO kitchen buddy #: lang/json/vehicle_part_from_json.py @@ -166526,13 +147789,6 @@ msgid "" "your inventory. If you attempt craft an item that needs one of the kitchen " "buddy's functions, it will automatically be selected as a tool." msgstr "" -" Uma estação de fabricação multifuncional, com um purificador de água, " -"desidratador de alimentos, selador a vácuo e prensa manual para fazer " -"munição. Desenha energia das baterias do veículo. 'E'xamine a telha " -"com o amigo de cozinha para acessar a torneira de água ou para purificar a " -"água em um tanque de veículo ou em um contêiner em seu inventário. Se você " -"tentar criar um item que precise de uma das funções do companheiro de " -"cozinha, ele será automaticamente selecionado como uma ferramenta." #. ~ Description for onboard chemistry lab #: lang/json/vehicle_part_from_json.py @@ -166543,16 +147799,10 @@ msgid "" "that needs one of the chemistry lab's functions, it will automatically be " "selected as a tool." msgstr "" -" Uma pequena estação de química, incluindo uma placa de aquecimento " -"alimentada pelas baterias do veículo. 'E'xamine a telha com o " -"laboratório de química para acessar a torneira de água ou para aquecer os " -"alimentos com a placa de aquecimento. Se você tentar criar um item que " -"precise de uma das funções do laboratório de química, ele será selecionado " -"automaticamente como uma ferramenta." #: lang/json/vehicle_part_from_json.py msgid "mounted electric forge" -msgstr "forja elétrica montada" +msgstr "" #. ~ Description for mounted electric forge #: lang/json/vehicle_part_from_json.py @@ -166562,14 +147812,10 @@ msgid "" "attempt craft an item that needs a forge, you will be given the option of " "selecting it as a tool." msgstr "" -" Uma forja elétrica para usinagem de metais, alimentada pelas baterias do " -"veículo. Com um martelo e outras ferramentas, você pode usar isso para " -"trabalhar metais. Se você tentar criar um item que precise de uma forja, " -"você terá a opção de selecioná-lo como uma ferramenta." #: lang/json/vehicle_part_from_json.py msgid "mounted electric kiln" -msgstr "forno elétrico montado" +msgstr "" #. ~ Description for mounted electric kiln #: lang/json/vehicle_part_from_json.py @@ -166579,14 +147825,10 @@ msgid "" "craft an item that needs a kiln, you will be given the option of selecting " "it as a tool." msgstr "" -" Um forno elétrico para assar tijolos ou argila, alimentado pelas baterias " -"do veículo. Você poderia usar isso para endurecer tijolos ou barro. Se você " -"tentar criar um item que precise de um forno, terá a opção de selecioná-lo " -"como uma ferramenta." #: lang/json/vehicle_part_from_json.py msgid "wooden armor" -msgstr "armadura de madeira" +msgstr "" #. ~ Description for spiked plating #: lang/json/vehicle_part_from_json.py @@ -166594,15 +147836,14 @@ msgid "" "A spiked plate that will increase the damage delivered to someone else in " "collisions." msgstr "" -" Uma placa cravada que aumentará o dano causado a outra pessoa em colisões." #: lang/json/vehicle_part_from_json.py msgid "military composite armor plating" -msgstr "chapeamento de armadura composto militar" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "reinforced windshield" -msgstr "pára-brisa reforçado" +msgstr "" #. ~ Description for reinforced windshield #: lang/json/vehicle_part_from_json.py @@ -166610,8 +147851,6 @@ msgid "" "A sheet of glass that lets you see outside the vehicle. Reinforced with " "wire to make it harder to break than normal glass." msgstr "" -" Uma folha de vidro que permite ver fora do veículo. Reforçado com arame " -"para dificultar a ruptura do que o vidro normal." #. ~ Description for bicycle horn #: lang/json/vehicle_part_from_json.py @@ -166619,16 +147858,12 @@ msgid "" "A small horn. Use the vehicle controls and select the honk option to make " "noise." msgstr "" -" Um pequeno chifre. Use os controles do veículo e selecione a opção de " -"buzina para fazer barulho." #. ~ Description for car horn #: lang/json/vehicle_part_from_json.py msgid "" "A horn. Use the vehicle controls and select the honk option to make noise." msgstr "" -" Uma buzina. Use os controles do veículo e selecione a opção de buzina para " -"fazer barulho." #. ~ Description for truck horn #: lang/json/vehicle_part_from_json.py @@ -166636,8 +147871,6 @@ msgid "" "A powerful truck horn. Use the vehicle controls and select the honk option " "to make noise." msgstr "" -" Um poderoso chifre de caminhão. Use os controles do veículo e selecione a " -"opção de buzina para fazer barulho." #. ~ Description for back-up beeper #: lang/json/vehicle_part_from_json.py @@ -166645,49 +147878,45 @@ msgid "" "An electronic noise maker. It will automatically make noise when you drive " "in reverse, alerting things behind you to move out of the way." msgstr "" -" Um fabricante de ruído eletrônico. Ele irá automaticamente fazer barulho " -"quando você dirigir na direção contrária, alertando as coisas atrás de você " -"para sair do caminho." #: lang/json/vehicle_part_from_json.py msgid "trunk door" -msgstr "porta do porta-malas" +msgstr "" #. ~ Description for trunk door #: lang/json/vehicle_part_from_json.py msgid "A short door. You can always see over it, open or closed." -msgstr "Uma porta curta. Você sempre pode ver por cima, aberto ou fechado." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy duty trunk door" -msgstr "porta do porta-malas resistente" +msgstr "" #. ~ Description for heavy duty trunk door #: lang/json/vehicle_part_from_json.py msgid "A strong, short door. You can always see over it, open or closed." msgstr "" -" Uma porta forte e curta. Você sempre pode ver por cima, aberto ou fechado." #: lang/json/vehicle_part_from_json.py msgid "shutter door" -msgstr "porta do obturador" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "sliding door" -msgstr "porta deslizante" +msgstr "" #. ~ Description for sliding door #: lang/json/vehicle_part_from_json.py msgid "A door. A window lets you see through it when closed." -msgstr "Uma porta. Uma janela permite ver através dela quando fechada." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "cargo space" -msgstr "espaço de carga" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "livestock stall" -msgstr "barraca de gado" +msgstr "" #. ~ Description for livestock stall #: lang/json/vehicle_part_from_json.py @@ -166696,14 +147925,10 @@ msgid "" "next to you, or to release the animal currently contained. When selecting " "an animal to capture, choose its tile relative to you, not the part." msgstr "" -" Um espaço de carga para transportar gado. 'e'xamine-lo para " -"capturar um animal próximo a você, ou para liberar o animal atualmente " -"contido. Ao selecionar um animal para capturar, escolha a sua telha em " -"relação a você, não a parte." #: lang/json/vehicle_part_from_json.py msgid "animal compartment" -msgstr "compartimento animal" +msgstr "" #. ~ Description for animal compartment #: lang/json/vehicle_part_from_json.py @@ -166713,10 +147938,6 @@ msgid "" "selecting an animal to capture, choose its tile relative to you, not the " "part." msgstr "" -" Um grande armário para transportar animais menores. 'e'xamine-lo " -"para capturar um animal próximo a você, ou para liberar o animal atualmente " -"contido. Ao selecionar um animal para capturar, escolha a sua telha em " -"relação a você, não a parte." #. ~ Description for recharging station #: lang/json/vehicle_part_from_json.py @@ -166728,7 +147949,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wing mirror" -msgstr "espelho retrovisor" +msgstr "" #. ~ Description for wing mirror #: lang/json/vehicle_part_from_json.py @@ -166736,12 +147957,10 @@ msgid "" "A small mirror, mounted outside the vehicle. If you see the mirror, your " "vision is expanded as though you were standing where the mirror is." msgstr "" -" Um pequeno espelho, montado fora do veículo. Se você vê o espelho, sua " -"visão é expandida como se você estivesse em pé onde o espelho está." #: lang/json/vehicle_part_from_json.py msgid "inboard mirror" -msgstr "espelho interior" +msgstr "" #. ~ Description for inboard mirror #: lang/json/vehicle_part_from_json.py @@ -166749,18 +147968,15 @@ msgid "" "A small mirror, mounted inside the vehicle. If you see the mirror, your " "vision is expanded as though you were standing where the mirror is." msgstr "" -" Um pequeno espelho, montado dentro do veículo. Se você vê o espelho, sua " -"visão é expandida como se você estivesse em pé onde o espelho está." #. ~ Description for stereo system #: lang/json/vehicle_part_from_json.py msgid "A stereo system. When turned on, it plays music, improving your mood." msgstr "" -" Um sistema estéreo. Quando ligado, reproduz música, melhorando o seu humor." #: lang/json/vehicle_part_from_json.py src/vehicle_use.cpp msgid "chimes" -msgstr "sinos" +msgstr "" #. ~ Description for chimes #: lang/json/vehicle_part_from_json.py @@ -166768,8 +147984,6 @@ msgid "" "A collection of electronic bells. Use the vehicle's controls to turn it on " "or off. When turned on, it makes noise, attracting neighborhood children." msgstr "" -" Uma coleção de sinos eletrônicos. Use os controles do veículo para ligá-lo " -"ou desligá-lo. Quando ligado, faz barulho, atraindo crianças da vizinhança." #. ~ Description for jumper cable #: lang/json/vehicle_part_from_json.py @@ -166778,9 +147992,6 @@ msgid "" "and the other to another, and you can transfer electrical power between the " "two." msgstr "" -" Cabo de cobre grosso com cabos nas duas extremidades. Anexar uma " -"extremidade a um veículo e o outro a outro, e você pode transferir energia " -"elétrica entre os dois." #. ~ Description for heavy-duty cable #: lang/json/vehicle_part_from_json.py @@ -166789,22 +148000,19 @@ msgid "" "vehicle and the other to another, and you can transfer electrical power " "between the two." msgstr "" -" Cabo de cobre muito espesso com cabos nas duas extremidades. Anexar uma " -"extremidade a um veículo e o outro a outro, e você pode transferir energia " -"elétrica entre os dois." #: lang/json/vehicle_part_from_json.py msgid "wooden seat" -msgstr "assento de madeira" +msgstr "" #. ~ Description for wooden seat #: lang/json/vehicle_part_from_json.py msgid "A place to sit." -msgstr "Um lugar para sentar." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wooden spike" -msgstr "espigão de madeira" +msgstr "" #. ~ Description for wooden spike #: lang/json/vehicle_part_from_json.py @@ -166812,41 +148020,39 @@ msgid "" "A wooden spike, attached to the vehicle, to increase injury when crashing " "into things." msgstr "" -" Um espigão de madeira, preso ao veículo, para aumentar a lesão ao colidir " -"com as coisas." #: lang/json/vehicle_part_from_json.py msgid "wooden door" -msgstr "porta de madeira" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "opaque wooden door" -msgstr "porta de madeira opaca" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wooden roof" -msgstr "telhado de madeira" +msgstr "" #. ~ Description for wooden roof #: lang/json/vehicle_part_from_json.py msgid "A wooden roof." -msgstr "Um telhado de madeira." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "chitin plating" -msgstr "chapeamento de quitina" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "biosilicified chitin plating" -msgstr "chapeamento de quitina biosilicificado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "bone plating" -msgstr "revestimento ósseo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "door motor" -msgstr "por motor" +msgstr "" #. ~ Description for door motor #: lang/json/vehicle_part_from_json.py @@ -166855,9 +148061,6 @@ msgid "" "it will allow you to remotely open the door or curtain from the vehicle " "controls." msgstr "" -" Um pequeno motor elétrico. Instalado no mesmo quadro como uma porta ou " -"cortina, permitirá que você remotamente abra a porta ou a cortina dos " -"controles do veículo." #. ~ Description for drive by wire controls #: lang/json/vehicle_part_from_json.py @@ -166870,7 +148073,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "camera control system" -msgstr "sistema de controle de câmera" +msgstr "" #. ~ Description for camera control system #: lang/json/vehicle_part_from_json.py @@ -166886,12 +148089,10 @@ msgstr "" msgid "" "A small camera. Will relay what it can see to a camera control station." msgstr "" -" Uma pequena câmera. Retransmitirá o que pode ver para uma estação de " -"controle de câmera." #: lang/json/vehicle_part_from_json.py msgid "robot controls" -msgstr "controles de robô" +msgstr "" #. ~ Description for robot controls #: lang/json/vehicle_part_from_json.py @@ -166899,13 +148100,11 @@ msgid "" "A set of controls to allow a vehicle to drive itself, or you to drive it " "remotely using a controller." msgstr "" -" Um conjunto de controles para permitir que um veículo conduza a si mesmo, " -"ou você pode dirigi-lo remotamente usando um controlador." #. ~ Description for clock #: lang/json/vehicle_part_from_json.py msgid "A clock, so you know what time it is." -msgstr "Um relógio, então você sabe que horas são." +msgstr "" #. ~ Description for leather funnel #. ~ Description for makeshift funnel @@ -166913,11 +148112,11 @@ msgstr "Um relógio, então você sabe que horas são." #. ~ Description for metal funnel #: lang/json/vehicle_part_from_json.py msgid "A funnel that will collect rainwater into the tank beneath it." -msgstr "Um funil que coletará a água da chuva no tanque abaixo dela." +msgstr "" #: lang/json/vehicle_part_from_json.py src/vehicle_use.cpp msgid "scoop" -msgstr "colher" +msgstr "" #. ~ Description for scoop #: lang/json/vehicle_part_from_json.py @@ -166926,9 +148125,6 @@ msgid "" " will scoop up any loose items that it travels over, putting them into the " "vehicle's storage." msgstr "" -" Uma colher. Use os controles do veículo para ligá-lo ou desligá-lo. Quando " -"ligado, ele irá recolher todos os itens soltos que se deslocam, colocando- " -"os no armazenamento do veículo." #. ~ Description for water purifier #: lang/json/vehicle_part_from_json.py @@ -166937,9 +148133,6 @@ msgid "" "purify water in a container or in the vehicle's tanks. 'e'xamine the tile " "with the purifier to use it." msgstr "" -" Um purificador de água, alimentado pelas baterias do veículo. Você pode " -"usá-lo para purificar a água em um recipiente ou nos tanques do veículo. " -"'e'xamine o azulejo com o purificador para usá-lo." #. ~ Description for plow #: lang/json/vehicle_part_from_json.py @@ -166949,10 +148142,6 @@ msgid "" "planting seeds. It should be placed in front of any seed drills on the " "vehicle." msgstr "" -" Um arado. Use os controles do veículo para ligá-lo ou desligá-lo. Quando " -"ligado, ele criará um sulco em qualquer sujeira que ele viaje, tornando-o " -"adequado para o plantio de sementes. Deve ser colocado na frente de qualquer" -" semeador no veículo." #. ~ Description for seed drill #. ~ Description for advanced seed drill @@ -166964,12 +148153,6 @@ msgid "" "any plows on the vehicle, and any wheels should be placed so they won't run " "over the plants." msgstr "" -" Uma broca de semente. Use os controles do veículo para ligá-lo ou desligá- " -"lo. Você pode carregá-lo com sementes examinando-o. Quando ligado, ele " -"soltará as sementes à medida que o veículo se move ou as coloca na terra " -"sulcada. Ele deve ser colocado atrás de qualquer arado no veículo, e " -"quaisquer rodas devem ser colocadas para que elas não passem por cima das " -"plantas." #. ~ Description for reaper #: lang/json/vehicle_part_from_json.py @@ -166980,11 +148163,6 @@ msgid "" "include cargo space of its own so you need install a cargo space of some " "kind elsewhere in the vehicle." msgstr "" -" Um reaper automático. Use os controles do veículo para ligá-lo ou desligá- " -"lo. Quando ligado, cortará as plantas que ele percorre. Ele deve ser " -"colocado na frente de qualquer arado no veículo para operação eficiente. Ele" -" não inclui espaço de carga próprio, então você precisa instalar um espaço " -"de carga de algum outro lugar no veículo." #. ~ Description for advanced reaper #: lang/json/vehicle_part_from_json.py @@ -166995,15 +148173,10 @@ msgid "" "be placed in front of any plows in the vehicle for efficient operation. It " "has internal cargo space for collecting the harvest." msgstr "" -" Um reaper automático. Use os controles do veículo para ligá-lo ou desligá- " -"lo. Quando ligado, ele irá parar o veículo, a menos que tenha um motor " -"forte. Quando ligado, cortará as plantas e as armazenará na carga do " -"veículo. Ele deve ser colocado na frente de qualquer arado no veículo para " -"operação eficiente. Possui espaço interno de carga para coleta da safra." #: lang/json/vehicle_part_from_json.py msgid "cargo lock" -msgstr "bloqueio de carga" +msgstr "" #. ~ Description for cargo lock #: lang/json/vehicle_part_from_json.py @@ -167011,8 +148184,6 @@ msgid "" "A set of locks. Attached to a suitable cargo space, it will prevent other " "people from accessing the cargo and taking your stuff." msgstr "" -" Um conjunto de bloqueios. Anexado a um espaço de carga adequado, ele impede" -" que outras pessoas acessem a carga e levem suas coisas." #. ~ Description for turret mount #: lang/json/vehicle_part_from_json.py @@ -167020,15 +148191,12 @@ msgid "" "A rotating, universal mount for a weapon. If your hands are empty, you can " "stand next to a turret mount and 'f'ire the weapon by selecting the tile." msgstr "" -" Um suporte rotativo e universal para uma arma. Se suas mãos estiverem " -"vazias, você pode ficar ao lado de um suporte de torre e 'f'ire a " -"arma selecionando o ladrilho." #. ~ Description for metal wheel #. ~ Description for roller drum #: lang/json/vehicle_part_from_json.py msgid "A strong metal wheel." -msgstr "Uma roda de metal forte." +msgstr "" #. ~ Description for rail wheel #: lang/json/vehicle_part_from_json.py @@ -167043,57 +148211,57 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "roller drum" -msgstr "tambor de rolo" +msgstr "" #. ~ Description for wheel #: lang/json/vehicle_part_from_json.py msgid "A wheel." -msgstr "Uma roda." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wheel (steerable)" -msgstr "roda (dirigível)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "racing slick" -msgstr "correndo liso" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "racing slick (steerable)" -msgstr "correndo liso (dirigível)" +msgstr "" #. ~ Description for armored wheel #: lang/json/vehicle_part_from_json.py msgid "A very strong, armored metal wheel." -msgstr "Uma roda de metal muito forte e blindada." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "armored wheel (steerable)" -msgstr "roda blindada (dirigível)" +msgstr "" #. ~ Description for wheelbarrow wheel #. ~ Description for small wheel #. ~ Description for unicycle wheel #: lang/json/vehicle_part_from_json.py msgid "A small wheel." -msgstr "Uma pequena roda." +msgstr "" #. ~ Description for bicycle wheel #: lang/json/vehicle_part_from_json.py msgid "A thin bicycle wheel." -msgstr "Uma roda de bicicleta fina." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "bicycle wheel (steerable)" -msgstr "roda de bicicleta (dirigível)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "off-road bicycle wheel (steerable)" -msgstr "roda de bicicleta off-road (orientável)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "casters" -msgstr "rodízios" +msgstr "" #. ~ Description for casters #: lang/json/vehicle_part_from_json.py @@ -167101,25 +148269,23 @@ msgid "" "A set of small wheels, mounted on pivots, like the ones on a rolling office " "chair or grocery cart." msgstr "" -" Um conjunto de pequenas rodas, montadas em pivôs, como as de uma cadeira de" -" escritório ou carrinho de supermercado." #. ~ Description for motorbike wheel #: lang/json/vehicle_part_from_json.py msgid "A small wheel from a motorcycle." -msgstr "Uma pequena roda de uma motocicleta." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "motorbike wheel (steerable)" -msgstr "roda de moto (dirigível)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "off-road motorbike wheel (steerable)" -msgstr "roda de moto off-road (orientável)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "small wheel (steerable)" -msgstr "roda pequena (orientável)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "tricycle wheels" @@ -167134,37 +148300,35 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "unicycle wheel" -msgstr "roda de monociclo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "wheelchair wheel" -msgstr "roda de cadeira de rodas" +msgstr "" #. ~ Description for wheelchair wheel #: lang/json/vehicle_part_from_json.py msgid "A pair of wheelchair wheels." -msgstr "Um par de rodas de cadeira de rodas." +msgstr "" #. ~ Description for wide wheel #: lang/json/vehicle_part_from_json.py msgid "" "A wide wheel that provides more traction and better off-road performance." msgstr "" -" Uma roda larga que proporciona mais tração e melhor desempenho fora de " -"estrada." #: lang/json/vehicle_part_from_json.py msgid "wide wheel (steerable)" -msgstr "roda larga (orientável)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "off-road wide wheel (steerable)" -msgstr "roda larga off-road (dirigível)" +msgstr "" #. ~ Description for wooden cart wheel #: lang/json/vehicle_part_from_json.py msgid "A wooden wheel." -msgstr "Uma roda de madeira." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "cargo trough" @@ -167210,7 +148374,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py src/vehicle_use.cpp msgid "freezer" -msgstr "congelador" +msgstr "" #. ~ Description for freezer #: lang/json/vehicle_part_from_json.py @@ -167267,35 +148431,35 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "folding extra light quarterpanel" -msgstr "dobrador de luz extra quarterpanel" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "foldable door" -msgstr "porta dobrável" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "superalloy coating" -msgstr "revestimento de superliga" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted medium machine gun" -msgstr "metralhadora média montada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted general purpose machine gun" -msgstr "metralhadora montada de uso geral" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted light machine gun" -msgstr "metralhadora leve montada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted heavy machine gun" -msgstr "metralhadora pesada montada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "mounted minigun" -msgstr "minigun montado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "bulette plating" @@ -167303,7 +148467,7 @@ msgstr "" #: lang/json/vehicle_part_from_json.py msgid "robot_carrier" -msgstr "robot_carrier" +msgstr "" #. ~ Description for robot_carrier #: lang/json/vehicle_part_from_json.py @@ -167312,26 +148476,22 @@ msgid "" "you, or to release the robot currently contained. When selecting a robot to" " capture, choose its tile relative to you, not the part." msgstr "" -" Um espaço de carga para transportar robôs. 'e'xamine-lo para " -"capturar um robô ao seu lado, ou para liberar o robô contido atualmente. Ao " -"selecionar um robô para capturar, escolha o bloco relativo a você, não a " -"peça." #: lang/json/vehicle_part_from_json.py msgid "120mm tank gun (AL)" -msgstr "Pistola de tanque de 120 mm (AL)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "120mm RWS" -msgstr "120 milímetros RWS" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ATGM turret" -msgstr "Torre ATGM" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "30mm chaingun" -msgstr "Chaingun de 30mm" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "" @@ -167341,707 +148501,702 @@ msgid "" "won't fire if you're in or near the line of fire, but you may get caught in " "any explosions." msgstr "" -" Esta arma pesada é montada em uma torre automatizada. Se você configurá-lo " -"para disparar automaticamente dos controles do veículo, ele será disparado " -"contra qualquer criatura hostil que se aproxime demais do seu veículo. Ele " -"tem um sistema de segurança e não irá disparar se você estiver perto da " -"linha de fogo, mas você pode ser pego em qualquer explosão." #: lang/json/vehicle_part_from_json.py msgid "TDI Vector turret" -msgstr "Torre de vetor TDI" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated TDI Vector" -msgstr "vetor automatizado de TDI" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "storm bolter turret" -msgstr "torreta de parafusos de tempestade" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated storm bolter" -msgstr "parafusos de tempestade automatizados" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "slingshot cannon turret" -msgstr "torreta de canhão estilingue" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated slingshot cannon" -msgstr "canhão estilingue automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Bushmaster ACR turret" -msgstr "Torreta Bushmaster ACR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Bushmaster ACR" -msgstr "automatizado Bushmaster ACR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "rotary cannon turret" -msgstr "torreta giratória de canhão" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated rotary cannon" -msgstr "canhão rotativo automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "AK47 turret" -msgstr "Torre AK47" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "AK74 turret" -msgstr "Torre AK74" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "laser cannon turret" -msgstr "Torre de canhão laser" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "pulse laser turret" -msgstr "torre laser de pulso" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "turbolaser turret" -msgstr "torreta turbolaser" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "American-180 turret" -msgstr "Torre americana-180" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated American-180" -msgstr "automatizado americano-180" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "AN94 turret" -msgstr "Torre AN94" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "perforator turret" -msgstr "torre perfuradora" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated perforator" -msgstr "perfurador automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "needler turret" -msgstr "torreta de needler" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated needler" -msgstr "Needler automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "AR-15 turret" -msgstr "Torreta AR-15" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated AR-15" -msgstr "AR-15 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "hypervelocity driver turret" -msgstr "torre de motorista de hipervelocidade" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ripper turret" -msgstr "torre do estripador" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated ripper" -msgstr "estripador automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "scorpion turret" -msgstr "torre de escorpião" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated scorpion" -msgstr "escorpião automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "splintergun turret" -msgstr "torre de splintergun" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated splintergun" -msgstr "splintergun automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "tesla turret" -msgstr "torreta de tesla" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "avalanche turret" -msgstr "torre de avalanche" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated avalanche" -msgstr "avalanche automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "autoshotgun turret" -msgstr "torreta autoshotgun" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated autoshotgun" -msgstr "autoshotgun automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "blunderbuss turret" -msgstr "torre de bacamarte" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated blunderbuss" -msgstr "bacamarte automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Browning BLR turret" -msgstr "Torre Browning BLR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Calico M960 turret" -msgstr "Torreta Calico M960" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Calico M960" -msgstr "Calico M960 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "flintlock carbine turret" -msgstr "revólver carabina de pederneira" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated flintlock carbine" -msgstr "carabina de pederneira automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "coilgun turret" -msgstr "torre de revólver" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated coilgun" -msgstr "bobina automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "lacerator turret" -msgstr "torre laceradora" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated lacerator" -msgstr "lacerador automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Cx4 Storm turret" -msgstr "Torreta Cx4 Storm" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Cx4 Storm" -msgstr "automatizado Cx4 Storm" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "simple flamethrower turret" -msgstr "torreta simples do lança-chamas" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "flamethrower turret" -msgstr "torreta de lança-chamas" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM451 flamethrower turret" -msgstr "Torre de lança-chamas RM451" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "FN FAL turret" -msgstr "Torre da FAL da ONU" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated FN FAL" -msgstr "automatizado FN FAL" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "FN P90 turret" -msgstr "Torreta FN P90" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "H&K 416A5 turret" -msgstr "Torre H & K 416A5" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated H&K 416A5" -msgstr "H & K 416A5 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "heavy rail rifle turret" -msgstr "torreta pesada do rifle do trilho" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "H&K G3 turret" -msgstr "Torre H & K G3" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "H&K G36 turret" -msgstr "Torre H & K G36" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated H&K G36" -msgstr "automatizado H & K G36" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated H&K G3" -msgstr "automatizado H & K G3" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "H&K G80 turret" -msgstr "Torre H & K G80" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "H&K MP5 turret" -msgstr "Torre H & K MP5" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated H&K MP5" -msgstr "H & K MP5 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "H&K MP7 turret" -msgstr "Torre H & K MP7" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "H&K UMP45 turret" -msgstr "Torre H & K UMP45" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated H&K UMP45" -msgstr "automatizado H & K UMP45" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Kel-Tec KSG turret" -msgstr "Torre de Kel-Tec KSG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Kel-Tec KSG" -msgstr "Kel-Tec automatizado KSG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "L523 turret" -msgstr "Torreta L523" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated L523" -msgstr "automatizado L523" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "L523-CAR turret" -msgstr "Torreta L523-CAR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated L523-CAR" -msgstr "automatizado L523-CAR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "L12 Defender turret" -msgstr "L12 Defender torreta" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated L12 Defender" -msgstr "Defensor L12 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "L523-DSR turret" -msgstr "Torre L523-DSR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated L523-DSR" -msgstr "automatizado L523-DSR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "L523-LMG turret" -msgstr "Torre L523-LMG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated L523-LMG" -msgstr "automatizado L523-LMG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Long Ranger turret" -msgstr "Torre Long Ranger" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Long Ranger" -msgstr "Long Ranger automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "L523-MBR turret" -msgstr "Torre L523-MBR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated L523-MBR" -msgstr "L523-MBR automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "40mm launcher turret" -msgstr "Torre de lançador de 40 mm" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M1014 shotgun turret" -msgstr "Torre de espingarda M1014" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated M1014 shotgun" -msgstr "espingarda automática M1014" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Barrett M107A1 turret" -msgstr "Torre Barrett M107A1" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Barrett M107A1" -msgstr "Barrett M107A1 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M14-EBR turret" -msgstr "Torre M14-EBR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated M14-EBR" -msgstr "automatizado M14-EBR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M1A turret" -msgstr "Torre M1A" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated M1A" -msgstr "M1A automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M2010 ESR turret" -msgstr "Torre M2010 ESR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M27 IAR turret" -msgstr "Torre M27 IAR" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated M27 IAR" -msgstr "IAR automatizado M27" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid ".50 caliber turret" -msgstr "Torre de calibre .50" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated .50 caliber rifle" -msgstr "rifle de calibre .50 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M320 turret" -msgstr "Torre M320" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M4A1 turret" -msgstr "Torre M4A1" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated M4A1" -msgstr "M4A1 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M60 turret" -msgstr "Torreta M60" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated M60" -msgstr "M60 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M79 turret" -msgstr "Torre M79" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "MAC-10 turret" -msgstr "Torreta MAC-10" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated MAC-10" -msgstr "MAC-10 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Marlin 39A turret" -msgstr "Torreta Marlin 39A" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Marlin 39A" -msgstr "Marlin automatizado 39A" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Milkor MGL turret" -msgstr "Torreta Milkor MGL" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Mossberg 500 turret" -msgstr "Torre Mossberg 500" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Mossberg 500" -msgstr "Mossberg 500 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "nail rifle turret" -msgstr "torreta de rifle de prego" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated nail rifle" -msgstr "rifle de prego automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM216 SPIW turret" -msgstr "Torre RM216 SPIW" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "double pipe shotgun turret" -msgstr "torre de espingarda de tubo duplo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated double pipe shotgun" -msgstr "espingarda de cano duplo automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "pipe shotgun turret" -msgstr "torreta de espingarda de tubo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated pipe shotgun" -msgstr "espingarda automática de tubos" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "rail rifle turret" -msgstr "torre de rifle trilho" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Remington 700 turret" -msgstr "Torre Remington 700" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Remington 870 turret" -msgstr "Torre Remington 870" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Remington 870" -msgstr "Remington automatizado 870" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "repeating crossbow turret" -msgstr "torre de besta de repetição" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated repeating crossbow" -msgstr "besta de repetição automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "revolver shotgun turret" -msgstr "revólver revólver revólver" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated revolver shotgun" -msgstr "revólver de revólver automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid ".22 pipe rifle turret" -msgstr "Torreta do rifle da tubulação .22" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated .22 pipe rifle" -msgstr "fuzil automático 22" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid ".308 pipe rifle turret" -msgstr "Torreta do rifle da tubulação .308" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated .308 pipe rifle" -msgstr "fuzil de tubulação automatizado .308" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "9x19mm pipe rifle turret" -msgstr "Torre de rifle de tubo 9x19mm" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated 9x19mm pipe rifle" -msgstr "rifle de tubo automatizado 9x19mm" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "flintlock rifle turret" -msgstr "revólver de espingarda de pederneira" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated flintlock rifle" -msgstr "rifle de flintlock automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM11B scout rifle turret" -msgstr "Torre de espingarda batedor RM11B" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM2000 SMG turret" -msgstr "Torre RMG RM2000" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM360 carbine turret" -msgstr "Torre de carabina RM360" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated RM360 carbine" -msgstr "carabina RM360 automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM51 assault rifle turret" -msgstr "Torre de fuzil de assalto RM51" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM614 LMG turret" -msgstr "Torre RM614 LMG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM802 turret" -msgstr "RM802 torreta" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM88 battle rifle turret" -msgstr "Revólver de espingarda de batalha RM88" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "rotary speargun turret" -msgstr "torre giratória de arma de fogo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated rotary speargun" -msgstr "speargun rotativo automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Ruger 10/22 turret" -msgstr "Torre Ruger 10/22" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Ruger 10/22" -msgstr "Ruger automatizado 10/22" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Ruger mini-14 turret" -msgstr "Torre Ruger Mini-14" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Ruger mini-14" -msgstr "Ruger mini-14 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Saiga 12 turret" -msgstr "Torre Saiga 12" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Saiga 12" -msgstr "Saiga automatizado 12" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Savage 111F turret" -msgstr "Torre Selvagem 111F" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Savage 111F" -msgstr "Savage automatizado 111F" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "FN SCAR-H turret" -msgstr "Torre FN SCAR-H" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated FN SCAR-H" -msgstr "automatizado FN SCAR-H" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "FN SCAR-L turret" -msgstr "Torre FN SCAR-L" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated FN SCAR-L" -msgstr "automatizado FN SCAR-L" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "double shotgun turret" -msgstr "torre de espingarda dupla" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated double shotgun" -msgstr "Espingarda dupla automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "single shotgun turret" -msgstr "única torre de espingarda" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated single shotgun" -msgstr "espingarda automática automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "SKS turret" -msgstr "Torre SKS" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "speargun turret" -msgstr "torre de arma de fogo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated speargun" -msgstr "arma de fogo automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Steyr AUG turret" -msgstr "Torre Steyr AUG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Steyr AUG" -msgstr "automatizado Steyr AUG" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "223 carbine turret" -msgstr "Torreta de 223 carabinas" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated 223 carbine" -msgstr "carabina 223 automatizada" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "survivor special turret" -msgstr "torre especial de sobrevivente" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "TEC-9 turret" -msgstr "Torre TEC-9" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated TEC-9" -msgstr "TEC-9 automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Uzi turret" -msgstr "Use a torreta" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated Uzi" -msgstr "Uzi automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "V29 laser turret" -msgstr "Torre de laser V29" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "LACP laser turret" -msgstr "Torre laser LACP" +msgstr "" #. ~ Description for Gelatinous track #: lang/json/vehicle_part_from_json.py @@ -168049,14 +149204,12 @@ 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 "" -" Um conjunto de faixas contínuas interligadas feitas de blob. Eles podem ser" -" usados no lugar de rodas e proporcionam boa tração e desempenho off-road." #. ~ Description for gel shooter #. ~ Description for snapping ooze #: lang/json/vehicle_part_from_json.py msgid "A living blob, transformed into a heavy vehicle weapon." -msgstr "Uma bolha viva, transformada em uma arma de veículo pesado." +msgstr "" #. ~ Description for frost lancer #: lang/json/vehicle_part_from_json.py @@ -168064,12 +149217,10 @@ msgid "" "A living blob, existing in a super-cooled state and transformed into a heavy" " vehicle weapon." msgstr "" -" Uma bolha viva, existente em um estado super-resfriado e transformada em " -"uma arma de veículo pesado." #: lang/json/vehicle_part_from_json.py msgid "ice ram" -msgstr "ram de gelo" +msgstr "" #. ~ Description for ice ram #: lang/json/vehicle_part_from_json.py @@ -168079,13 +149230,10 @@ msgid "" "collision. It should be mounted on the edge of the vehicle, preferably the " "front." msgstr "" -" Uma bolha viva, existente em um estado super-resfriado. Ele absorverá dano " -"em uma colisão de veículo e causará dano adicional ao outro objeto na " -"colisão. Deve ser montado na borda do veículo, de preferência na frente." #: lang/json/vehicle_part_from_json.py msgid "ice pack" -msgstr "pacote de gelo" +msgstr "" #. ~ Description for ice pack #: lang/json/vehicle_part_from_json.py @@ -168093,13 +149241,10 @@ 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 "" -" Uma bolha viva, existente em um estado super-resfriado. Ele manterá os " -"itens armazenados frios, reduzindo a velocidade com que a comida e a bebida " -"apodrecem." #: lang/json/vehicle_part_from_json.py msgid "icy windshield" -msgstr "pára-brisa gelado" +msgstr "" #. ~ Description for icy windshield #: lang/json/vehicle_part_from_json.py @@ -168107,35 +149252,29 @@ msgid "" "A living blob, existing in a super-cooled state. It is transparent, and can" " be used to see out of the vehicle." msgstr "" -" Uma bolha viva, existente em um estado super-resfriado. É transparente e " -"pode ser usado para ver fora do veículo." #: lang/json/vehicle_part_from_json.py msgid "snow slider" -msgstr "controle deslizante de neve" +msgstr "" #. ~ Description for 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 "" -" Uma bolha viva, existente em um estado super-resfriado. Ele age como uma " -"roda." #: lang/json/vehicle_part_from_json.py msgid "icy sea skimmer" -msgstr "skimmer do mar gelado" +msgstr "" #. ~ Description for icy sea skimmer #: lang/json/vehicle_part_from_json.py msgid "" "A living blob, existing in a super-cooled state. It acts as a boat hull." msgstr "" -" Uma bolha viva, existente em um estado super-resfriado. Ele age como um " -"casco de barco." #: lang/json/vehicle_part_from_json.py msgid "gel lamp" -msgstr "lâmpada de gel" +msgstr "" #. ~ Description for gel lamp #: lang/json/vehicle_part_from_json.py @@ -168145,18 +149284,14 @@ msgid "" "can choose what direction to point the light, so multiple gel lamps can " "illuminate the sides or rear, as well as the front." msgstr "" -" Uma bolha viva e brilhante. Ele produz uma luz brilhante que ilumina um " -"cone estreito fora do veículo quando ligado. Durante a instalação, você pode" -" escolher em que direção apontar a luz, para que várias lâmpadas de gel " -"possam iluminar as laterais ou traseira, bem como a frente." #: lang/json/vehicle_part_from_json.py msgid "directed gel lamp" -msgstr "lâmpada de gel dirigida" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel retriever" -msgstr "recuperador de gel" +msgstr "" #. ~ Description for gel retriever #. ~ Description for gray retriever @@ -168167,24 +149302,21 @@ msgid "" "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 "" -" Uma bolha viva, formada para agir como uma colher. Use os controles do " -"veículo para ligá-lo ou desligá-lo. Quando ligado, ele irá recolher todos os" -" itens soltos que se deslocam, colocando-os no armazenamento do veículo." #: lang/json/vehicle_part_from_json.py msgid "gel harness" -msgstr "arnês de gel" +msgstr "" #. ~ Description for gel harness #. ~ Description for gray harness #. ~ Description for ooze harness #: lang/json/vehicle_part_from_json.py msgid "A living blob, reformed as a belt and attached to a seat." -msgstr "Uma bolha viva, reformada como um cinto e presa a um assento." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "capsule (10L)" -msgstr "cápsula (10L)" +msgstr "" #. ~ Description for capsule (10L) #. ~ Description for cocoon (30L) @@ -168198,20 +149330,14 @@ msgid "" " the vehicle. You can also use a rubber hose to siphon liquids out of a " "tank." msgstr "" -" Uma bolha viva, formada em um espaço de armazenamento para guardar " -"líquidos. Se abastecido com o combustível apropriado para o motor do " -"veículo, o motor retirará automaticamente o combustível do tanque quando o " -"motor estiver ligado. Se estiver cheio de água, você pode acessar a água de " -"uma torneira de água, se estiver instalada no veículo. Você também pode usar" -" uma mangueira de borracha para extrair líquidos de um tanque." #: lang/json/vehicle_part_from_json.py msgid "gel tank (60L)" -msgstr "tanque de gel (60L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel framework" -msgstr "estrutura de gel" +msgstr "" #. ~ Description for gel framework #. ~ Description for gray frame @@ -168223,37 +149349,32 @@ msgid "" "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 "" -" Uma bolha viva, moldada para fornecer pontos de fixação para outras bolhas." -" Outros componentes do veículo e gotas podem ser montados nele. Se todas as " -"estruturas e componentes de um veículo forem dobráveis ou feitas de blobs, o" -" veículo pode ser dobrado em um pacote pequeno e recolhido como um item " -"normal." #: lang/json/vehicle_part_from_json.py msgid "gel reinforcement" -msgstr "reforço de gel" +msgstr "" #. ~ Description for gel reinforcement #. ~ Description for gray reinforcement #. ~ Description for ooze reinforcement #: lang/json/vehicle_part_from_json.py msgid "A living blob, acting as armor plate." -msgstr "Uma bolha viva, atuando como placa de blindagem." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel roof" -msgstr "telhado de gel" +msgstr "" #. ~ Description for gel roof #. ~ Description for gray roof #. ~ Description for ooze roof #: lang/json/vehicle_part_from_json.py msgid "A living blob, placed as roof." -msgstr "Uma bolha viva, colocada como teto." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel seat" -msgstr "assento de gel" +msgstr "" #. ~ Description for gel seat #. ~ Description for gray seat @@ -168261,47 +149382,46 @@ msgstr "assento de gel" #: lang/json/vehicle_part_from_json.py msgid "A living blob, formed into a comfy couch. You can sit here." msgstr "" -" Uma bolha viva, formada em um sofá confortável. Você pode se sentar aqui." #: lang/json/vehicle_part_from_json.py msgid "gel receptacle" -msgstr "recipiente de gel" +msgstr "" #. ~ Description for gel receptacle #. ~ Description for gray receptacle #. ~ Description for ooze receptacle #: lang/json/vehicle_part_from_json.py msgid "A living blob, shaped into a cargo space." -msgstr "Uma bolha viva, moldada em um espaço de carga." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel pouch (under)" -msgstr "bolsa de gel (sob)" +msgstr "" #. ~ Description for gelatinous wheel #. ~ Description for gray wheel #: lang/json/vehicle_part_from_json.py msgid "A living blob. It acts as a wheel." -msgstr "Uma bolha viva. Ele age como uma roda." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel walkway" -msgstr "passagem de gel" +msgstr "" #. ~ Description for gel walkway #. ~ Description for gray walkway #. ~ Description for ooze walkway #: lang/json/vehicle_part_from_json.py msgid "A living blob, formed into a walkway." -msgstr "Uma bolha viva, formada em uma passarela." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel panel" -msgstr "painel de gel" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel hatch" -msgstr "escotilha de gel" +msgstr "" #. ~ Description for gel hatch #. ~ Description for gray hatch @@ -168311,12 +149431,10 @@ msgid "" "A living blob, acting as a door. Has a transparent patch so you can see out" " of it, even when closed." msgstr "" -" Uma bolha viva, agindo como uma porta. Tem um patch transparente para que " -"você possa ver, mesmo quando fechado." #: lang/json/vehicle_part_from_json.py msgid "opaque gel hatch" -msgstr "escotilha de gel opaca" +msgstr "" #. ~ Description for opaque gel hatch #. ~ Description for opaque gray hatch @@ -168326,12 +149444,10 @@ msgid "" "A living blob, acting as a door. Entirely opaque so you can't see through " "it when closed." msgstr "" -" Uma bolha viva, agindo como uma porta. Totalmente opaco para que você não " -"possa ver através dele quando estiver fechado." #: lang/json/vehicle_part_from_json.py msgid "gel battery" -msgstr "bateria de gel" +msgstr "" #. ~ Description for gel battery #: lang/json/vehicle_part_from_json.py @@ -168340,17 +149456,14 @@ msgid "" " that power and can release it to power other parts of the vehicle, allowing" " it to act as a storage battery." msgstr "" -" Uma bolha viva e brilhante. Tendo sido preenchido com energia elétrica, ele" -" armazena esse poder e pode liberá-lo para alimentar outras partes do " -"veículo, permitindo que ele atue como uma bateria de armazenamento." #: lang/json/vehicle_part_from_json.py msgid "gel battery (under)" -msgstr "bateria de gel (abaixo)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel generator" -msgstr "gerador de gel" +msgstr "" #. ~ Description for gel generator #: lang/json/vehicle_part_from_json.py @@ -168359,57 +149472,54 @@ msgid "" "power, allowing it to be used as a reactor. It also glows, and can be " "turned on to illuminate several squares inside the vehicle." msgstr "" -" Uma bolha viva e brilhante. Ele consome alimentação de blob e produz " -"energia elétrica, permitindo que ele seja usado como um reator. Ele também " -"brilha e pode ser ligado para iluminar vários quadrados dentro do veículo." #: lang/json/vehicle_part_from_json.py msgid "gray retriever" -msgstr "retriever cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray harness" -msgstr "arnês cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "cocoon (30L)" -msgstr "casulo (30L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray tank (100L)" -msgstr "tanque cinza (100L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray frame" -msgstr "moldura cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray reinforcement" -msgstr "reforço cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray roof" -msgstr "telhado cinzento" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray seat" -msgstr "assento cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray receptacle" -msgstr "receptáculo cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray pouch (under)" -msgstr "bolsa cinza (abaixo)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray walkway" -msgstr "passagem cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gray wall" -msgstr "parede cinza" +msgstr "" #. ~ Description for gray wall #. ~ Description for ooze barrier @@ -168418,20 +149528,18 @@ msgid "" "A living blob, formed into a vehicle wall. Keeps zombies outside the " "vehicle and prevents people from seeing through it." msgstr "" -" Uma bolha viva, formada na parede de um veículo. Mantém os zumbis fora do " -"veículo e impede que as pessoas vejam através dele." #: lang/json/vehicle_part_from_json.py msgid "gray hatch" -msgstr "escotilha cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "opaque gray hatch" -msgstr "escotilha cinza opaca" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "gel quarterpanel" -msgstr "gel quarterpanel" +msgstr "" #. ~ Description for gel quarterpanel #. ~ Description for gray barricade @@ -168441,85 +149549,83 @@ msgid "" "A living blob, formed into a half-height vehicle wall. Keeps zombies " "outside the vehicle but allows people to see over it." msgstr "" -" Uma bolha viva, formada em uma parede de veículo de meia altura. Mantém os " -"zumbis fora do veículo, mas permite que as pessoas vejam por cima." #: lang/json/vehicle_part_from_json.py msgid "gray barricade" -msgstr "barricada cinza" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze screen" -msgstr "tela ooze" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze retriever" -msgstr "lodo retriever" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze harness" -msgstr "ooze aproveitar" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "pod (20L)" -msgstr "sob (20L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze tank (80L)" -msgstr "tanque ooze (80L)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze chassis" -msgstr "ooze chassi" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze reinforcement" -msgstr "Reforço de óleo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze roof" -msgstr "limpe o telhado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze seat" -msgstr "assento escorregadio" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze receptacle" -msgstr "vazar o receptáculo" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze pouch (under)" -msgstr "bolsa de limo (abaixo)" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze walkway" -msgstr "passagem de ooze" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze barrier" -msgstr "barrar ooze" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "ooze hatch" -msgstr "escorrem escotilha" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "opaque ooze hatch" -msgstr "escotilha opaca" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "amorphous core" -msgstr "núcleo amorfo" +msgstr "" #. ~ Description for amorphous core #: lang/json/vehicle_part_from_json.py msgid "An amorphous mass, the living heart and brain of a blob vehicle." -msgstr "Uma massa amorfa, o coração vivo e o cérebro de um veículo de bolha." +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "inert core" -msgstr "núcleo inerte" +msgstr "" #. ~ Description for inert core #: lang/json/vehicle_part_from_json.py @@ -168528,9 +149634,6 @@ msgid "" "weapon. If your hands are empty, you can stand next to a tentacle and " "'f'ire the weapon by selecting the tile." msgstr "" -" Um núcleo amorfo adormecido, agindo como uma montagem universal rotativa " -"para uma arma. Se suas mãos estiverem vazias, você pode ficar ao lado de um " -"tentáculo e 'f'ire a arma selecionando o ladrilho." #. ~ Description for gel spouter #. ~ Description for gel spiker @@ -168542,23 +149645,19 @@ msgstr "" #. ~ Description for spark blight #: lang/json/vehicle_part_from_json.py msgid "A living blob turned into a heavy vehicle weapon." -msgstr "Uma bolha viva se transformou em uma arma pesada de veículo." +msgstr "" #: 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 "" -" Um ciclo fechado, turbina a vapor de combustão externa. Queima carvão de um" -" bunker no veículo para produzir vapor." #: lang/json/vehicle_part_from_json.py msgid "" "This part is obsolete. It should not be installed in a vehicle, and if it " "is installed, you can safely uninstall it." msgstr "" -" Esta parte é obsoleta. Ele não deve ser instalado em um veículo e, se " -"estiver instalado, você poderá desinstalá-lo com segurança." #. ~ Description for solar array #: lang/json/vehicle_part_from_json.py @@ -168568,10 +149667,6 @@ msgid "" " efficiency due to being able track the sun. Will recharge the vehicle's " "electrical power when exposed to the sun." msgstr "" -" Uma dúzia de painéis solares instalados em um chassi, atingindo vários " -"metros de altura. Ele mantém os painéis frágeis longe de qualquer ameaça " -"potencial e melhora a eficiência devido ao rastreamento do sol. Recarregará " -"a energia elétrica do veículo quando exposto ao sol." #. ~ Description for upgraded solar array #. ~ Description for upgraded reinforced solar array @@ -168582,14 +149677,10 @@ msgid "" "improves efficiency due to being able track the sun. Will recharge the " "vehicle's electrical power when exposed to the sun." msgstr "" -" Uma dúzia de painéis solares atualizados instalados em um chassi atingindo " -"vários metros de altura. Ele mantém os painéis frágeis longe de qualquer " -"ameaça potencial e melhora a eficiência devido ao rastreamento do sol. " -"Recarregará a energia elétrica do veículo quando exposto ao sol." #: lang/json/vehicle_part_from_json.py msgid "rubber treads" -msgstr "degraus de borracha" +msgstr "" #. ~ Description for rubber treads #. ~ Description for steel treads @@ -168601,18 +149692,14 @@ msgid "" "provides plenty of traction to move heavy vehicles off-road, but at the cost" " of speed due to the heavy weight." msgstr "" -" Uma seção de pista contínua, do tipo montado em veículos de construção e " -"veículos militares de combate. Ele age como uma roda, e a ampla superfície " -"fornece muita tração para mover veículos pesados fora da estrada, mas à " -"custa da velocidade devido ao peso pesado." #: lang/json/vehicle_part_from_json.py msgid "steel treads" -msgstr "degraus de aço" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "tank treads" -msgstr "degraus de tanques" +msgstr "" #. ~ Description for turret chassis #: lang/json/vehicle_part_from_json.py @@ -168621,13 +149708,10 @@ msgid "" "weapon on it as an automated weapon and the vehicle will be able to fire on " "hostile targets that get too close." msgstr "" -" Uma torre giratória, capaz de montar um sistema de armas. Instale uma arma " -"adequada como uma arma automatizada e o veículo poderá disparar em alvos " -"hostis que se aproximam demais." #: lang/json/vehicle_part_from_json.py msgid "wiring" -msgstr "fiação" +msgstr "" #. ~ Description for wiring #: lang/json/vehicle_part_from_json.py @@ -168635,89 +149719,87 @@ msgid "" "A length of heavy duty copper wire, useful for routing power from one part " "of a vehicle to another part." msgstr "" -" Um comprimento de fio de cobre resistente, útil para rotear a energia de " -"uma parte de um veículo para outra parte." #: lang/json/vehicle_part_from_json.py msgid "manual flamethrower" -msgstr "lança-chamas manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "BAR turret" -msgstr "Torre de bar" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M249 turret" -msgstr "Torre M249" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "fusion turret" -msgstr "torre de fusão" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M2 Browning turret" -msgstr "Torreta M2 Browning" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M240 turret" -msgstr "M240 torreta" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "auto-shotgun turret" -msgstr "revólver auto-shotgun" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "M134D-H Minigun turret" -msgstr "Torre de Minigun M134D-H" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "Mark 19 turret" -msgstr "Mark 19 torreta" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM614 turret" -msgstr "Torre RM614" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "RM298 turret" -msgstr "Torre RM298" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "water cannon turret" -msgstr "torreta de canhão de água" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "vortex accelerator turret" -msgstr "torreta do acelerador do vortex" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated vortex accelerator" -msgstr "acelerador de vórtice automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "vortex bolter turret" -msgstr "torreta de parafusos de vórtice" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated vortex bolter" -msgstr "parafusos de vórtice automatizados" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "vortex rifle turret" -msgstr "revólver do rifle do vortex" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "automated vortex rifle" -msgstr "rifle de vórtice automatizado" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "diamond barrier" -msgstr "barreira de diamante" +msgstr "" #. ~ Description for diamond barrier #: lang/json/vehicle_part_from_json.py msgid "A transparent, solid sheet of self-sustaining crystals." -msgstr "Uma folha transparente e sólida de cristais autossustentáveis." +msgstr "" #. ~ Description for diamond frame #: lang/json/vehicle_part_from_json.py @@ -168726,9 +149808,6 @@ msgid "" "mounted on it, and it can be attached to other frames to increase the " "vehicle's size." msgstr "" -" Um quadro de cristal super-forte. Outros componentes do veículo podem ser " -"montados nele e podem ser fixados em outros quadros para aumentar o tamanho " -"do veículo." #. ~ Description for diamond plating #: lang/json/vehicle_part_from_json.py @@ -168736,161 +149815,157 @@ msgid "" "Transparent crystal armor plate. Will partially protect other components on" " the same frame from damage." msgstr "" -" Placa de blindagem de cristal transparente. Protegerá parcialmente outros " -"componentes no mesmo quadro contra danos." #: lang/json/vehicle_part_from_json.py msgid "cargo dimension" -msgstr "dimensão de carga" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "vortex cannon turret" -msgstr "torre de canhão de vórtice" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "" "This heavy weapon is mounted on a turret, and can be fired from your vehicle" " controls." msgstr "" -" Essa arma pesada é montada em uma torre e pode ser disparada dos controles " -"do veículo." #: lang/json/vehicle_part_from_json.py msgid "manual storm bolter" -msgstr "parafusos de tempestade manuais" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual slingshot cannon" -msgstr "canhão estilingue manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual rotary cannon" -msgstr "canhão rotativo manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual laser cannon" -msgstr "canhão laser manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual pulse laser" -msgstr "laser de pulso manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual turbolaser" -msgstr "turbolaser manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual lacerator" -msgstr "lacerador manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual RM451 flamethrower" -msgstr "manual do lança-chamas RM451" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual perforator" -msgstr "perfurador manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual needler" -msgstr "Needler manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual hypervelocity driver" -msgstr "driver de hipervelocidade manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual ripper" -msgstr "estripador manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual rotary speargun" -msgstr "arma rotativa manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual scorpion ballista" -msgstr "balança de escorpião manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual splintergun" -msgstr "lasca manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual speargun" -msgstr "arma manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual tesla cannon" -msgstr "canhão tesla manual" +msgstr "" #: lang/json/vehicle_part_from_json.py msgid "manual avalanche rifle" -msgstr "rifle avalanche manual" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Clear section of road" -msgstr "Seção clara da estrada" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Randomly-distributed wrecks" -msgstr "Naufrágios distribuídos aleatoriamente" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Parked vehicles" -msgstr "Veículos estacionados" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Jack-knifed semi" -msgstr "Semi-jack-knifed" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Random car pileup" -msgstr "Empilhamento de carro aleatório" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Police car pileup" -msgstr "Pilha de carros de polícia" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Out of fuel vehicle" -msgstr "Fora do veículo de combustível" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Clear section of bridge" -msgstr "Seção clara da ponte" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Unfueled Vehicle on the bridge" -msgstr "Veículo não alimentado na ponte" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Vehicle on the bridge" -msgstr "Veículo, ligado, a, ponte" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Clear section of highway" -msgstr "Seção clara da rodovia" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Vehicle on the highway" -msgstr "Veículo na estrada" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Parking lot with vehicles" -msgstr "Estacionamento com veículos" +msgstr "" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py @@ -168904,55 +149979,55 @@ msgstr "" #: lang/json/vitamin_from_json.py msgid "Calcium" -msgstr "Cálcio" +msgstr "" #: lang/json/vitamin_from_json.py msgid "Vitamin A" -msgstr "Vitamina A" +msgstr "" #: lang/json/vitamin_from_json.py msgid "Vitamin B12" -msgstr "Vitamina B12" +msgstr "" #: lang/json/vitamin_from_json.py msgid "Vitamin C" -msgstr "Vitamina C" +msgstr "" #: src/action.cpp src/input.cpp msgid "Press " -msgstr "pressione" +msgstr "" #: src/action.cpp src/input.cpp msgid "Try" -msgstr "Experimentar" +msgstr "" #: src/action.cpp msgid "Look" -msgstr "Veja" +msgstr "" #: src/action.cpp msgid "Interact" -msgstr "Interagir" +msgstr "" #: src/action.cpp src/advanced_inv.cpp src/game_inventory.cpp msgid "Inventory" -msgstr "Inventário" +msgstr "" #: src/action.cpp msgid "Combat" -msgstr "Combate" +msgstr "" #: src/action.cpp msgid "Craft" -msgstr "Construir" +msgstr "" #: src/action.cpp msgid "Info" -msgstr "Info" +msgstr "" #: src/action.cpp msgid "Misc" -msgstr "Misc" +msgstr "" #: src/action.cpp src/options.cpp msgid "Debug" @@ -168960,15 +150035,15 @@ msgstr "Debug" #: src/action.cpp msgid "Back" -msgstr "De volta" +msgstr "" #: src/action.cpp msgid "Actions" -msgstr "Ações" +msgstr "" #: src/action.cpp msgid "MAIN MENU" -msgstr "MENU PRINCIPAL" +msgstr "" #. ~ appended to "Close where?" "Pry where?" etc. #: src/action.cpp @@ -168981,27 +150056,27 @@ msgstr "Direção inválida." #: src/activity_handlers.cpp msgid "You figure it'll take about an hour and a half at this rate." -msgstr "Você imagina que levará cerca de uma hora e meia a esse ritmo." +msgstr "" #: src/activity_handlers.cpp msgid "About an hour left to go." -msgstr "Faltou cerca de uma hora para ir." +msgstr "" #: src/activity_handlers.cpp msgid "Shouldn't be more than half an hour or so now!" -msgstr "Não deve demorar mais de meia hora agora!" +msgstr "" #: src/activity_handlers.cpp msgid "Almost there! Ten more minutes of work and you'll be through." -msgstr "Quase lá! Mais dez minutos de trabalho e você terminará." +msgstr "" #: src/activity_handlers.cpp msgid "ScratchCrunchScrabbleScurry." -msgstr "ScratchCrunchScrabbleScurry." +msgstr "" #: src/activity_handlers.cpp msgid "You finish burrowing." -msgstr "Você termina de escavar." +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169025,43 +150100,36 @@ msgstr "" #: src/activity_handlers.cpp msgid "None of your cutting tools are suitable for butchering." msgstr "" -" Nenhuma de suas ferramentas de corte é adequada para o trabalho de " -"açougueiro." #: src/activity_handlers.cpp msgid "You don't trust the quality of your tools, but carry on anyway." msgstr "" -" Você não confia na qualidade de suas ferramentas, mas continue assim mesmo." #: src/activity_handlers.cpp msgid "None of your tools are sharp and precise enough to do that." msgstr "" -" Nenhuma de suas ferramentas é afiada e precisa o suficiente para fazer " -"isso." #: src/activity_handlers.cpp msgid "You could use a better tool, but this will do." -msgstr "Você poderia usar uma ferramenta melhor, mas isso funcionará." +msgstr "" #: src/activity_handlers.cpp msgid "This tool is great, but you still would like a scalpel." -msgstr "Esta ferramenta é ótima, mas você ainda gostaria de um bisturi." +msgstr "" #: src/activity_handlers.cpp msgid "You dissect the corpse with a trusty scalpel." -msgstr "Você disseca o cadáver com um bisturi de confiança." +msgstr "" #: src/activity_handlers.cpp msgid "" "You dissect the corpse with a sophisticated system of surgical grade " "scalpels." msgstr "" -" Você disseca o cadáver com um sofisticado sistema de bisturis cirúrgicos." #: src/activity_handlers.cpp msgid "You need a cutting tool to perform a full butchery." msgstr "" -" Você precisa de uma ferramenta de corte para realizar um açougue completo." #: src/activity_handlers.cpp msgid "" @@ -169086,61 +150154,57 @@ msgstr "" #: src/activity_handlers.cpp msgid "For a corpse this big you need a saw to perform a full butchery." msgstr "" -" Para um cadáver tão grande, você precisa de uma serra para realizar um " -"açougue completo." #: src/activity_handlers.cpp msgid "" "It would be futile to search for implants inside this badly damaged corpse." -msgstr "Seria inútil procurar implantes dentro desse cadáver danificado." +msgstr "" #: src/activity_handlers.cpp msgid "This corpse is already field dressed." -msgstr "Este cadáver já está vestido de campo." +msgstr "" #: src/activity_handlers.cpp msgid "This corpse is already skinned." -msgstr "Este cadáver já está esfolado." +msgstr "" #: src/activity_handlers.cpp msgid "This corpse is too small to quarter without damaging." -msgstr "Este cadáver é pequeno demais para se dividir sem causar danos." +msgstr "" #: src/activity_handlers.cpp msgid "This is already quartered." -msgstr "Isso já está esquartejado." +msgstr "" #: src/activity_handlers.cpp msgid "You need to perform field dressing before quartering." -msgstr "Você precisa realizar um tratamento em campo antes do aquartelamento." +msgstr "" #: src/activity_handlers.cpp msgid "Would you dare desecrate the mortal remains of a fellow human being?" -msgstr "Você ousaria profanar os restos mortais de um ser humano?" +msgstr "" #: src/activity_handlers.cpp msgid "You clench your teeth at the prospect of this gruesome job." -msgstr "Você aperta os dentes diante da perspectiva desse trabalho horrível." +msgstr "" #: src/activity_handlers.cpp msgid "This will haunt you in your dreams." -msgstr "Isso irá assombrá-lo em seus sonhos." +msgstr "" #: src/activity_handlers.cpp msgid "" "You try to look away, but this gruesome image will stay on your mind for " "some time." msgstr "" -" Você tenta desviar o olhar, mas essa imagem repulsiva ficará em sua mente " -"por algum tempo." #: src/activity_handlers.cpp msgid "It needs a coffin, not a knife." -msgstr "Precisa de um caixão, não de uma faca." +msgstr "" #: src/activity_handlers.cpp msgid "You salvage what you can from the corpse, but it is badly damaged." -msgstr "Você salva o que pode do cadáver, mas está muito danificado." +msgstr "" #: src/activity_handlers.cpp msgid "" @@ -169152,8 +150216,6 @@ msgid "" "You suspect there might be bionics implanted in this corpse, that careful " "dissection might reveal." msgstr "" -" Você suspeita que possa haver biônica implantada nesse cadáver, que a " -"dissecação cuidadosa possa revelar." #: src/activity_handlers.cpp msgid "" @@ -169166,23 +150228,17 @@ msgid "" "Your butchering tool encounters something implanted in this corpse, but your" " rough cuts destroy it." msgstr "" -" Sua ferramenta de açougueiro encontra algo implantado nesse cadáver, mas " -"seus cortes brutos a destroem." #: src/activity_handlers.cpp msgid "" "You find traces of implants in the body, but you care only for the flesh." msgstr "" -" Você encontra traços de implantes no corpo, mas se importa apenas com a " -"carne." #: src/activity_handlers.cpp msgid "" "You found some bionics in the body, but harvesting them would require more " "surgical approach." msgstr "" -" Você encontrou algumas biônicas no corpo, mas colhê-las exigiria mais " -"abordagem cirúrgica." #: src/activity_handlers.cpp #, c-format @@ -169206,7 +150262,7 @@ msgstr "" #: src/activity_handlers.cpp msgid "There's no corpse to butcher!" -msgstr "Não há cadáver para açougueiro!" +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169218,24 +150274,18 @@ msgid "" "You hack up the corpse so unskillfully, that there is nothing left to " "salvage from this bloody mess." msgstr "" -" Você invade o cadáver tão inábeis, que não há mais nada para salvar dessa " -"bagunça sangrenta." #: src/activity_handlers.cpp msgid "" "You wanted to cut the corpse, but instead you hacked the meat, spilled the " "guts all over it, and made a bloody mess." msgstr "" -" Você queria cortar o cadáver, mas ao invés disso, você cortou a carne, " -"derramou as tripas por toda parte e fez uma bagunça sangrenta." #: src/activity_handlers.cpp msgid "" "You made so many mistakes during the process that you doubt even vultures " "will be interested in what's left of it." msgstr "" -" Você cometeu tantos erros durante o processo que duvida que até os abutres " -"se interessem pelo que restou dele." #. ~ %1$s - item name, %2$s - monster name #: src/activity_handlers.cpp @@ -169260,23 +150310,18 @@ msgid "" "You unskillfully hack up the corpse and chop off some excess body parts. " "You're left wondering how you did so poorly." msgstr "" -" Você involuntariamente hackear o cadáver e cortar algumas partes do corpo " -"em excesso. Você está se perguntando como você fez tão mal." #: src/activity_handlers.cpp msgid "" "Your unskilled hands slip and damage the corpse. You still hope it's not a " "total waste though." msgstr "" -" Suas mãos não qualificadas escorregam e danificam o cadáver. Você ainda " -"espera que não seja um desperdício total." #: src/activity_handlers.cpp msgid "" "You did something wrong and hacked the corpse badly. Maybe it's still " "recoverable." msgstr "" -" Você fez algo errado e cortou o cadáver mal. Talvez ainda seja recuperável." #: src/activity_handlers.cpp #, c-format @@ -169288,14 +150333,10 @@ msgid "" "You slice the corpse's belly and remove intestines and organs, until you're " "confident that it will not rot from inside." msgstr "" -" Você corta a barriga do cadáver e remove intestinos e órgãos, até que você " -"esteja confiante de que não vai apodrecer por dentro." #: src/activity_handlers.cpp msgid "You remove guts and excess parts, preparing the corpse for later use." msgstr "" -" Você remove tripas e partes em excesso, preparando o cadáver para uso " -"posterior." #: src/activity_handlers.cpp #, c-format @@ -169395,8 +150436,6 @@ 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 "" -" Você corta músculos e tendões, e remove partes do corpo até ter certeza de " -"que o zumbi não poderá atacá-lo quando ele reanimar." #: src/activity_handlers.cpp msgid "" @@ -169427,7 +150466,7 @@ msgstr "CHNK! CHNK! CHNK!" #: src/activity_handlers.cpp msgid "You finish digging." -msgstr "Você termina de cavar." +msgstr "" #: src/activity_handlers.cpp msgid "The corpse moved before you could finish smashing it!" @@ -169472,7 +150511,7 @@ msgstr "" #: src/activity_handlers.cpp msgid "There's nothing to light there." -msgstr "Não há nada para iluminar lá." +msgstr "" #: src/activity_handlers.cpp msgid "This item requires tinder to light." @@ -169480,13 +150519,11 @@ msgstr "" #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." -msgstr "Você perdeu o item que estava usando para iniciar o fogo." +msgstr "" #: src/activity_handlers.cpp msgid "There is not enough sunlight to start a fire now. You stop trying." msgstr "" -" Não há luz solar suficiente para iniciar um incêndio agora. Você para de " -"tentar." #: src/activity_handlers.cpp #, c-format @@ -169573,31 +150610,31 @@ msgstr "Você deixa os controles." #: src/activity_handlers.cpp msgid "hissssssssss!" -msgstr "hissssssssss!" +msgstr "" #: src/activity_handlers.cpp msgid "With a satisfying click, the lock on the safe opens!" -msgstr "Com um clique satisfatório, a fechadura do cofre se abre!" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat once" -msgstr "Repetir uma vez" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until reinforced" -msgstr "Repita até reforçado" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until fully repaired, but don't reinforce" -msgstr "Repita até que esteja totalmente consertado, mas não reforce" +msgstr "" #: src/activity_handlers.cpp msgid "Repeat until success/failure/level up" -msgstr "Repita até sucesso / falha / subir de nível" +msgstr "" #: src/activity_handlers.cpp msgid "Back to item selection" -msgstr "Voltar para a seleção de itens" +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169606,7 +150643,7 @@ msgstr "" #: src/activity_handlers.cpp src/iuse_actor.cpp msgid "You won't learn anything more by doing that." -msgstr "Você não aprenderá mais nada fazendo isso." +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169675,7 +150712,7 @@ msgstr "" #: src/activity_handlers.cpp msgid "You pause to engage in spiritual contemplation." -msgstr "Você faz uma pausa para se envolver em contemplação espiritual." +msgstr "" #: src/activity_handlers.cpp msgid "Auto-drive cancelled." @@ -169708,11 +150745,11 @@ msgstr "" #: src/activity_handlers.cpp msgid "You finish reading." -msgstr "Você termina de ler." +msgstr "" #: src/activity_handlers.cpp msgid "You finish waiting." -msgstr "Você acaba de esperar." +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169734,11 +150771,11 @@ msgstr "" #: src/activity_handlers.cpp msgid "You toss and turn..." -msgstr "Você joga e vira ..." +msgstr "" #: src/activity_handlers.cpp src/player_hardcoded_effects.cpp msgid "You try to sleep, but can't..." -msgstr "Você tenta dormir, mas não pode ..." +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169769,48 +150806,48 @@ msgstr "" #: src/activity_handlers.cpp msgid "You feel much better." -msgstr "Você se sente muito melhor." +msgstr "" #. ~ Sound of a metal sawing tool at work! #: src/activity_handlers.cpp msgid "grnd grnd grnd" -msgstr "grnd grnd grnd" +msgstr "" #: src/activity_handlers.cpp msgid "You finish cutting the metal." -msgstr "Você acaba de cortar o metal." +msgstr "" #. ~ Sound of a wood chopping tool at work! #: src/activity_handlers.cpp msgid "CHK!" -msgstr "CHK!" +msgstr "" #: src/activity_handlers.cpp msgid "Select a direction for the tree to fall in." -msgstr "Selecione uma direção para a árvore cair." +msgstr "" #: src/activity_handlers.cpp msgid "You finish chopping down a tree." -msgstr "Você termina de derrubar uma árvore." +msgstr "" #: src/activity_handlers.cpp msgid "You finish chopping wood." -msgstr "Você acaba de cortar madeira." +msgstr "" #. ~ Sound of a jackhammer at work! #: src/activity_handlers.cpp msgid "TATATATATATATAT!" -msgstr "TATATATATATATAT!" +msgstr "" #: src/activity_handlers.cpp msgid "You finish drilling." -msgstr "Você termina de perfurar." +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!" +msgstr "" #: src/activity_handlers.cpp msgid "Something crawls out of the coffin!" @@ -169852,11 +150889,11 @@ msgstr "" #: src/activity_handlers.cpp msgid "You open up your kit and shave." -msgstr "Você abre seu kit e faz a barba." +msgstr "" #: src/activity_handlers.cpp msgid "You give your hair a trim." -msgstr "Você dá ao seu cabelo uma guarnição." +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169870,15 +150907,15 @@ msgstr "" #: src/activity_handlers.cpp msgid "You harvested all the plots you could." -msgstr "Você colheu todos os lotes possíveis." +msgstr "" #: src/activity_handlers.cpp src/iuse.cpp msgid "You churn up the earth here." -msgstr "Você agita a terra aqui." +msgstr "" #: src/activity_handlers.cpp msgid "You tilled every tile you could." -msgstr "Você lavrou todos os azulejos que você poderia." +msgstr "" #: src/activity_handlers.cpp #, c-format @@ -169887,11 +150924,11 @@ msgstr "" #: src/activity_handlers.cpp msgid "You fertilized every plot you could." -msgstr "Você fertilizou todos os lotes possíveis." +msgstr "" #: src/activity_handlers.cpp msgid "You planted all seeds you could." -msgstr "Você plantou todas as sementes que podia." +msgstr "" #: src/activity_handlers.cpp msgid "Target lost. IFF override failed." @@ -169914,11 +150951,11 @@ msgstr "" #: src/activity_handlers.cpp msgid "...and turns friendly!" -msgstr "... e vira amiga!" +msgstr "" #: src/activity_handlers.cpp msgid "...but the robot refuses to acknowledge you as an ally!" -msgstr "... mas o robô se recusa a reconhecer você como um aliado!" +msgstr "" #: src/activity_handlers.cpp msgid "The ancient tree spirits answer your call." @@ -169938,11 +150975,11 @@ msgstr "" #: src/activity_handlers.cpp src/iexamine.cpp msgid "Use electrohack?" -msgstr "Use electrohack?" +msgstr "" #: src/activity_handlers.cpp src/iexamine.cpp msgid "Use fingerhack?" -msgstr "Use fingerhack?" +msgstr "" #: src/activity_handlers.cpp msgid "You need a hacking tool for that." @@ -169950,40 +150987,40 @@ msgstr "" #: src/activity_handlers.cpp src/iexamine.cpp msgid "You cause a short circuit!" -msgstr "Você causa um curto-circuito!" +msgstr "" #: src/activity_handlers.cpp src/iexamine.cpp msgid "Your electrohack is ruined!" -msgstr "Seu electrohack está arruinado!" +msgstr "" #: src/activity_handlers.cpp src/iexamine.cpp msgid "Your power is drained!" -msgstr "Seu poder é drenado!" +msgstr "" #: src/activity_handlers.cpp src/iexamine.cpp msgid "You activate the panel!" -msgstr "Você ativa o painel!" +msgstr "" #: src/activity_handlers.cpp src/iexamine.cpp msgid "The nearby doors slide into the floor." -msgstr "As portas próximas deslizam no chão." +msgstr "" #: src/activity_handlers.cpp src/computer.cpp src/iexamine.cpp src/iuse.cpp #: src/map.cpp msgctxt "memorial_male" msgid "Set off an alarm." -msgstr "Defina um alarme." +msgstr "" #: src/activity_handlers.cpp src/computer.cpp src/iexamine.cpp src/iuse.cpp #: src/map.cpp msgctxt "memorial_female" msgid "Set off an alarm." -msgstr "Defina um alarme." +msgstr "" #: src/activity_handlers.cpp src/computer.cpp src/computer.cpp #: src/iexamine.cpp src/iuse.cpp src/iuse_actor.cpp src/map.cpp msgid "an alarm sound!" -msgstr "um som de alarme!" +msgstr "" #: src/activity_handlers.cpp msgid "The door on the safe swings open." @@ -170200,11 +151237,11 @@ msgstr "" #: src/activity_item_handling.cpp msgid "You washed your clothing." -msgstr "Você lavou sua roupa." +msgstr "" #: src/activity_item_handling.cpp msgid "The pet has moved somewhere else." -msgstr "O animal de estimação se mudou para outro lugar." +msgstr "" #: src/activity_item_handling.cpp #, c-format @@ -170232,392 +151269,379 @@ msgstr "" #: src/addiction.cpp msgid "You need some nicotine." -msgstr "Você precisa de um pouco de nicotina." +msgstr "" #: src/addiction.cpp msgid "You could use some nicotine." -msgstr "Você poderia usar um pouco de nicotina." +msgstr "" #: src/addiction.cpp msgid "You want some caffeine." -msgstr "Você quer um pouco de cafeína." +msgstr "" #: src/addiction.cpp msgid "Your hands start shaking... you need it bad!" -msgstr "Suas mãos começam a tremer ... você precisa disso mal!" +msgstr "" #: src/addiction.cpp msgid "You could use a drink. " -msgstr "Você poderia usar uma bebida." +msgstr "" #: src/addiction.cpp msgid "Your hands start shaking... you need a drink bad!" -msgstr "Suas mãos começam a tremer ... você precisa de uma bebida ruim!" +msgstr "" #: src/addiction.cpp msgid "You could use some diazepam." -msgstr "Você poderia usar algum diazepam." +msgstr "" #: src/addiction.cpp msgid "You're shaking... you need some diazepam!" -msgstr "Você está tremendo ... você precisa de um diazepam!" +msgstr "" #: src/addiction.cpp msgid "Your hands start shaking... you need some painkillers." -msgstr "Suas mãos começam a tremer ... você precisa de alguns analgésicos." +msgstr "" #: src/addiction.cpp msgid "You feel anxious. You need your painkillers!" -msgstr "Você se sente ansioso. Você precisa de seus analgésicos!" +msgstr "" #: src/addiction.cpp msgid "You feel depressed. Speed would help." -msgstr "Você se sente deprimido. A velocidade ajudaria." +msgstr "" #: src/addiction.cpp msgid "Your hands start shaking... you need a pick-me-up." -msgstr "Suas mãos começam a tremer ... você precisa de um estimulante." +msgstr "" #: src/addiction.cpp msgid "You stop suddenly, feeling bewildered." -msgstr "Você pára de repente, sentindo-se desnorteado." +msgstr "" #: src/addiction.cpp msgid "You feel like you need a bump." -msgstr "Você sente que precisa de um solavanco." +msgstr "" #: src/addiction.cpp msgid "You're shivering, you need some crack." -msgstr "Você está tremendo, você precisa de algum crack." +msgstr "" #: src/addiction.cpp msgid "You so miss the exquisite rainbow of post-humanity." -msgstr "Você sente falta do arco-íris requintado da pós-humanidade." +msgstr "" #: src/addiction.cpp msgid "Your body is SOO booorrrring. Just a little sip to liven things up?" msgstr "" -" Seu corpo está sentindo bem. Apenas um pequeno gole para animar as coisas?" #: src/addiction.cpp msgid "" "You daydream what it'd be like if you were *different*. Different is good." msgstr "" -" Você sonha acordado como seria se você fosse * diferente *. Diferente é " -"bom." #: src/addiction.cpp msgid "You haven't had any mutagen lately." -msgstr "Você não teve nenhum mutagen recentemente." +msgstr "" #: src/addiction.cpp msgid "You could use some new parts..." -msgstr "Você poderia usar algumas partes novas ..." +msgstr "" #: src/addiction.cpp msgid "You daydream about luscious pink berries as big as your fist." -msgstr "Você sonha com lindas bagas cor-de-rosa do tamanho do seu punho." +msgstr "" #: src/addiction.cpp msgid "You daydream about nutty cyan seeds as big as your hand." -msgstr "Você sonha com sementes de ciano tão grandes quanto sua mão." +msgstr "" #: src/addiction.cpp msgid "You daydream about succulent, pale golden gel, sweet but light." -msgstr "Você sonha com um gel suculento, dourado pálido, doce mas leve." +msgstr "" #: src/addiction.cpp msgid "nicotine" -msgstr "nicotina" +msgstr "" #: src/addiction.cpp msgid "caffeine" -msgstr "cafeína" +msgstr "" #: src/addiction.cpp msgid "alcohol" -msgstr "álcool" +msgstr "" #: src/addiction.cpp msgid "sleeping pills" -msgstr "pílulas para dormir" +msgstr "" #: src/addiction.cpp msgid "opiates" -msgstr "opiáceos" +msgstr "" #: src/addiction.cpp msgid "amphetamine" -msgstr "anfetamina" +msgstr "" #: src/addiction.cpp msgid "crack cocaine" -msgstr "cocaína crack" +msgstr "" #: src/addiction.cpp msgid "mutation" -msgstr "mutação" +msgstr "" #: src/addiction.cpp msgid "Marloss berries" -msgstr "Marloss berries" +msgstr "" #: src/addiction.cpp msgid "Marloss seeds" -msgstr "Sementes de Marloss" +msgstr "" #: src/addiction.cpp msgid "Marloss gel" -msgstr "Marloss gel" +msgstr "" #: src/addiction.cpp msgid "Nicotine Withdrawal" -msgstr "Retirada de nicotina" +msgstr "" #: src/addiction.cpp msgid "Caffeine Withdrawal" -msgstr "Retirada de Cafeína" +msgstr "" #: src/addiction.cpp msgid "Alcohol Withdrawal" -msgstr "Abstinência alcoólica" +msgstr "" #: src/addiction.cpp msgid "Sleeping Pill Dependence" -msgstr "Dependência de pílula para dormir" +msgstr "" #: src/addiction.cpp msgid "Opiate Withdrawal" -msgstr "Retirada de opiáceos" +msgstr "" #: src/addiction.cpp msgid "Amphetamine Withdrawal" -msgstr "Retirada de Anfetamina" +msgstr "" #: src/addiction.cpp msgid "Cocaine Withdrawal" -msgstr "Retirada de cocaína" +msgstr "" #: src/addiction.cpp msgid "Crack Cocaine Withdrawal" -msgstr "Retirada de cocaína crack" +msgstr "" #: src/addiction.cpp msgid "Mutation Withdrawal" -msgstr "Retirada de Mutação" +msgstr "" #: src/addiction.cpp msgid "Diazepam Withdrawal" -msgstr "Retirada do diazepam" +msgstr "" #: src/addiction.cpp msgid "Marloss Longing" -msgstr "Marloss Longing" +msgstr "" #: src/addiction.cpp msgid "Marloss Desire" -msgstr "Marloss Desire" +msgstr "" #: src/addiction.cpp msgid "Marloss Cravings" -msgstr "Marloss Cravings" +msgstr "" #: src/addiction.cpp msgid "Intelligence - 1; Occasional cravings" -msgstr "Inteligência - 1; Desejos ocasionais" +msgstr "" #: src/addiction.cpp msgid "Strength - 1; Slight sluggishness; Occasional cravings" -msgstr "Força - 1; Leve lentidão; Desejos ocasionais" +msgstr "" #: src/addiction.cpp msgid "" "Perception - 1; Intelligence - 1; Occasional Cravings;\n" "Risk of delirium tremens" msgstr "" -" Percepção - 1; Inteligência - 1; Desejos ocasionais; \n" -" Risco de delirium tremens\n" #: src/addiction.cpp msgid "You may find it difficult to sleep without medication." -msgstr "Você pode achar difícil dormir sem medicação." +msgstr "" #: src/addiction.cpp msgid "" "Strength - 1; Perception - 1; Dexterity - 1;\n" "Depression and physical pain to some degree. Frequent cravings. Vomiting." msgstr "" -" Força - 1; Percepção - 1; Destreza - 1; \n" -" Depressão e dor física em algum grau. Desejos freqüentes. Vômito\n" #: src/addiction.cpp msgid "" "Strength - 1; Intelligence - 1;\n" "Movement rate reduction. Depression. Weak immune system. Frequent cravings." msgstr "" -" Força - 1; Inteligência - 1; \n" -" Redução da taxa de movimento. Depressão. Sistema imunológico fraco. Desejos freqüentes.\n" #: src/addiction.cpp msgid "Perception - 1; Intelligence - 1; Frequent cravings." -msgstr "Percepção - 1; Inteligência - 1; Desejos freqüentes." +msgstr "" #: src/addiction.cpp msgid "Perception - 2; Intelligence - 2; Frequent cravings." -msgstr "Percepção - 2; Inteligência - 2; Desejos freqüentes." +msgstr "" #: src/addiction.cpp msgid "" "You've gotten a taste for mutating and the chemicals that cause it. But you" " can stop, yeah, any time you want." msgstr "" -" Você tem um gosto por mudar e os produtos químicos que causam isso. Mas " -"você pode parar, sim, sempre que quiser." #: src/addiction.cpp msgid "" "Perception - 1; Intelligence - 1;\n" "Anxiety, nausea, hallucinations, and general malaise." msgstr "" -" Percepção - 1; Inteligência - 1; \n" -" Ansiedade, náusea, alucinações e mal- estar geral.\n" #: src/addiction.cpp msgid "You should try some of those pink berries." -msgstr "Você deveria experimentar algumas dessas bagas rosa." +msgstr "" #: src/addiction.cpp msgid "You should try some of those cyan seeds." -msgstr "Você deveria experimentar algumas dessas sementes cianas." +msgstr "" #: src/addiction.cpp msgid "You should try some of that golden gel." -msgstr "Você deveria experimentar um pouco desse gel dourado." +msgstr "" #: src/advanced_inv.cpp msgid "IN" -msgstr "EM" +msgstr "" #: src/advanced_inv.cpp msgid "SW" -msgstr "SW" +msgstr "" #: src/advanced_inv.cpp msgid "South West" -msgstr "Sudoeste" +msgstr "" #: src/advanced_inv.cpp msgid "S" -msgstr "S" +msgstr "" #: src/advanced_inv.cpp msgid "South" -msgstr "Sul" +msgstr "" #: src/advanced_inv.cpp msgid "SE" -msgstr "SE" +msgstr "" #: src/advanced_inv.cpp msgid "South East" -msgstr "Sudeste" +msgstr "" #: src/advanced_inv.cpp msgid "W" -msgstr "o" +msgstr "" #: src/advanced_inv.cpp msgid "West" -msgstr "Oeste" +msgstr "" #: src/advanced_inv.cpp msgid "DN" -msgstr "DN" +msgstr "" #: src/advanced_inv.cpp msgid "Directly below you" -msgstr "Diretamente abaixo de você" +msgstr "" #: src/advanced_inv.cpp msgid "E" -msgstr "e" +msgstr "" #: src/advanced_inv.cpp msgid "East" -msgstr "Leste" +msgstr "" #: src/advanced_inv.cpp msgid "NW" -msgstr "NW" +msgstr "" #: src/advanced_inv.cpp msgid "North West" -msgstr "noroeste" +msgstr "" #: src/advanced_inv.cpp msgid "N" -msgstr "N" +msgstr "" #: src/advanced_inv.cpp msgid "North" -msgstr "Norte" +msgstr "" #: src/advanced_inv.cpp msgid "NE" -msgstr "NE" +msgstr "" #: src/advanced_inv.cpp msgid "North East" -msgstr "Nordeste" +msgstr "" #: src/advanced_inv.cpp msgid "GR" -msgstr "GR" +msgstr "" #: src/advanced_inv.cpp msgid "Grabbed Vehicle" -msgstr "Veículo Agarrado" +msgstr "" #: src/advanced_inv.cpp msgid "AL" -msgstr "AL" +msgstr "" #: src/advanced_inv.cpp msgid "Surrounding area" -msgstr "Área ao redor" +msgstr "" #: src/advanced_inv.cpp msgid "CN" -msgstr "CN" +msgstr "" #: src/advanced_inv.cpp msgid "Container" -msgstr "Recipiente" +msgstr "" #: src/advanced_inv.cpp msgid "WR" -msgstr "WR" +msgstr "" #: src/advanced_inv.cpp msgid "Worn Items" -msgstr "Itens desgastados" +msgstr "" #. ~ Adjective in "You block of the damage with your . #: src/advanced_inv.cpp src/magic.cpp src/melee.cpp src/recipe.cpp msgid "none" -msgstr "Nenhum" +msgstr "" #: src/advanced_inv.cpp src/newcharacter.cpp msgid "name" -msgstr "nome" +msgstr "" #: src/advanced_inv.cpp msgid "weight" -msgstr "peso" +msgstr "" #: src/advanced_inv.cpp msgid "volume" -msgstr "volume" +msgstr "" #: src/advanced_inv.cpp msgid "charges" @@ -170625,11 +151649,11 @@ msgstr "" #: src/advanced_inv.cpp msgid "category" -msgstr "categoria" +msgstr "" #: src/advanced_inv.cpp src/bonuses.cpp src/effect.cpp src/effect.cpp msgid "damage" -msgstr "danificar" +msgstr "" #: src/advanced_inv.cpp msgid "ammo/charge type" @@ -170637,19 +151661,19 @@ msgstr "" #: src/advanced_inv.cpp msgid "spoilage" -msgstr "deterioração" +msgstr "" #. ~ Items list header. Table fields length without spaces: amt - 4, weight - #. 5, vol - 4. #: src/advanced_inv.cpp msgid "amt weight vol" -msgstr "amt peso vol" +msgstr "" #. ~ Items list header. Table fields length without spaces: src - 2, amt - 4, #. weight - 5, vol - 4. #: src/advanced_inv.cpp msgid "src amt weight vol" -msgstr "src amt peso vol" +msgstr "" #: src/advanced_inv.cpp msgid "Name (charges)" @@ -170657,15 +151681,15 @@ msgstr "Nome (cargas)" #: src/advanced_inv.cpp msgid "Not dragging any vehicle!" -msgstr "Não arrastando nenhum veículo!" +msgstr "" #: src/advanced_inv.cpp msgid "No dragged vehicle!" -msgstr "Nenhum veículo arrastado!" +msgstr "" #: src/advanced_inv.cpp msgid "Invalid container!" -msgstr "Recipiente inválido!" +msgstr "" #: src/advanced_inv.cpp msgid "All 9 squares" @@ -170673,19 +151697,19 @@ msgstr "Todos os 9 quadrados" #: src/advanced_inv.cpp msgid " FIRE" -msgstr " FOGO " +msgstr "" #: src/advanced_inv.cpp msgid " DANGER" -msgstr "PERIGO" +msgstr "" #: src/advanced_inv.cpp msgid " TRAP" -msgstr "ARMADILHA" +msgstr "" #: src/advanced_inv.cpp msgid " WATER" -msgstr "AGUA" +msgstr "" #: src/advanced_inv.cpp #, c-format @@ -170707,15 +151731,15 @@ msgstr "[R]edefinir" #: src/advanced_inv.cpp msgid "You look at the items, then your clothes, and scratch your head..." -msgstr "Você olha os itens, depois as roupas e coça a cabeça ..." +msgstr "" #: src/advanced_inv.cpp msgid "There are no items to be moved!" -msgstr "Não há itens a serem movidos!" +msgstr "" #: src/advanced_inv.cpp msgid "There isn't enough room, do you really want to move all?" -msgstr "Não há espaço suficiente, você realmente quer mover tudo?" +msgstr "" #: src/advanced_inv.cpp msgid "You can't put items there!" @@ -170723,7 +151747,7 @@ msgstr "Você não pode colocar objetos ali!" #: src/advanced_inv.cpp msgid "Really remove all your clothes? (woo hoo)" -msgstr "Realmente tire todas as suas roupas? (woo hoo)" +msgstr "" #: src/advanced_inv.cpp msgid "Really drop all your favorite items?" @@ -170731,7 +151755,7 @@ msgstr "" #: src/advanced_inv.cpp msgid "Skipping filled buckets to avoid spilling their contents." -msgstr "Saltando baldes cheios para evitar derramar seu conteúdo." +msgstr "" #: src/advanced_inv.cpp msgid "Sort by... " @@ -170811,7 +151835,7 @@ msgstr "" #: src/advanced_inv.cpp msgid "The destination is already full!" -msgstr "O destino já está cheio!" +msgstr "" #: src/advanced_inv.cpp msgid "Invalid container" @@ -170823,23 +151847,23 @@ msgstr "Espere um pouco..." #: src/armor_layers.cpp msgid "close to your skin" -msgstr " perto de sua pele " +msgstr "" #: src/armor_layers.cpp msgid "of normal clothing" -msgstr "do normal roupas" +msgstr "" #: src/armor_layers.cpp msgid "on your waist" -msgstr "Nas suas cintura " +msgstr "" #: src/armor_layers.cpp msgid "of outer clothing" -msgstr "do exterior roupas" +msgstr "" #: src/armor_layers.cpp msgid "strapped to you" -msgstr " amarrado para você" +msgstr "" #: src/armor_layers.cpp #, c-format @@ -170880,31 +151904,31 @@ msgstr "" #: src/armor_layers.cpp msgid "This is worn on or around your waist." -msgstr "Isso é usado na sua cintura ou ao redor dela." +msgstr "" #: src/armor_layers.cpp msgid "This is worn over your other clothes." -msgstr "Isso é usado por suas outras roupas." +msgstr "" #: src/armor_layers.cpp msgid "This is strapped onto you." -msgstr "Isso é amarrado em você." +msgstr "" #: src/armor_layers.cpp msgid "Properties" -msgstr "Propriedades" +msgstr "" #: src/armor_layers.cpp msgid "Coverage:" -msgstr "Cobertura:" +msgstr "" #: src/armor_layers.cpp msgid "Encumbrance:" -msgstr "Sobrecarga:" +msgstr "" #: src/armor_layers.cpp msgid "Warmth:" -msgstr "Calor:" +msgstr "" #: src/armor_layers.cpp #, c-format @@ -170913,19 +151937,19 @@ msgstr "" #: src/armor_layers.cpp msgid "Protection" -msgstr "Protecção" +msgstr "" #: src/armor_layers.cpp msgid "Bash:" -msgstr "Bater:" +msgstr "" #: src/armor_layers.cpp msgid "Cut:" -msgstr "Cortar:" +msgstr "" #: src/armor_layers.cpp msgid "Environmental:" -msgstr "De Meio Ambiente:" +msgstr "" #: src/armor_layers.cpp msgid "It fits you well." @@ -170953,23 +151977,23 @@ msgstr "É amigável a água." #: src/armor_layers.cpp msgid "It looks fancy." -msgstr "Parece chique." +msgstr "" #: src/armor_layers.cpp msgid "It looks really fancy." -msgstr "Parece realmente chique." +msgstr "" #: src/armor_layers.cpp msgid "You will not drown today." -msgstr "Você não vai se afogar hoje." +msgstr "" #: src/armor_layers.cpp msgid "It is very bulky." -msgstr "É muito volumoso." +msgstr "" #: src/armor_layers.cpp msgid "It helps you to see clearly underwater." -msgstr "Isso ajuda você a ver claramente debaixo d'água." +msgstr "" #: src/armor_layers.cpp #, c-format @@ -170992,7 +152016,7 @@ msgstr "" #: src/armor_layers.cpp msgid "(Innermost)" -msgstr "(Íntimo)" +msgstr "" #: src/armor_layers.cpp #, c-format @@ -171001,7 +152025,7 @@ msgstr "" #: src/armor_layers.cpp msgid "(Outermost)" -msgstr "(Outermost)" +msgstr "" #: src/armor_layers.cpp msgid "" @@ -171030,15 +152054,15 @@ msgstr "" #: src/armor_layers.cpp msgid "Can't put this on!" -msgstr "Não pode colocar isso!" +msgstr "" #: src/armor_layers.cpp msgid "Remove selected armor?" -msgstr "Remover armadura selecionada?" +msgstr "" #: src/armor_layers.cpp msgid "Reassign invlets for armor?" -msgstr "Reatribuir invlets para armadura?" +msgstr "" #: src/armor_layers.cpp #, c-format @@ -171061,445 +152085,441 @@ msgstr "" #: src/artifact.cpp msgid "smooth sphere" -msgstr "esfera macia" +msgstr "" #: src/artifact.cpp msgid "sphere" -msgstr "esfera" +msgstr "" #: src/artifact.cpp msgid "rod" -msgstr "Cajado" +msgstr "" #: src/artifact.cpp msgid "tapered rod" -msgstr "haste afilada" +msgstr "" #: src/artifact.cpp msgid "teardrop" -msgstr "lágrima" +msgstr "" #: src/artifact.cpp msgid "teardrop-shaped stone" -msgstr "pedra em forma de lágrima" +msgstr "" #: src/artifact.cpp msgid "hollow, transparent cube" -msgstr "cubo oco e transparente" +msgstr "" #: src/artifact.cpp msgid "lamp" -msgstr "luminária" +msgstr "" #: src/artifact.cpp msgid "snake" -msgstr "serpente" +msgstr "" #: src/artifact.cpp msgid "winding, flexible rod" -msgstr "enrolamento, haste flexível" +msgstr "" #: src/artifact.cpp msgid "smooth disc" -msgstr "disco suave" +msgstr "" #: src/artifact.cpp msgid "beads" -msgstr "miçangas" +msgstr "" #: src/artifact.cpp msgid "string of beads" -msgstr "corda de miçangas" +msgstr "" #: src/artifact.cpp msgid "napkin" -msgstr "guardanapo" +msgstr "" #: src/artifact.cpp msgid "very thin sheet" -msgstr "folha muito fina" +msgstr "" #: src/artifact.cpp msgid "spiked sphere" -msgstr "esfera cravada" +msgstr "" #: src/artifact.cpp msgid "urchin" -msgstr "ouriço" +msgstr "" #: src/artifact.cpp msgid "jelly" -msgstr "geléia" +msgstr "" #: src/artifact.cpp msgid "malleable blob" -msgstr "blob maleável" +msgstr "" #: src/artifact.cpp msgid "spiral" -msgstr "espiral" +msgstr "" #: src/artifact.cpp msgid "spiraling rod" -msgstr "haste em espiral" +msgstr "" #: src/artifact.cpp msgid "pin" -msgstr "PIN" +msgstr "" #: src/artifact.cpp msgid "pointed rod" -msgstr "haste pontiaguda" +msgstr "" #: src/artifact.cpp msgid "hollow tube" -msgstr "tubo oco" +msgstr "" #: src/artifact.cpp msgid "tube" -msgstr "tubo" +msgstr "" #: src/artifact.cpp msgid "pyramid" -msgstr "pirâmide" +msgstr "" #: src/artifact.cpp msgid "regular tetrahedron" -msgstr "tetraedro regular" +msgstr "" #: src/artifact.cpp msgid "crystal" -msgstr "cristal" +msgstr "" #: src/artifact.cpp msgid "translucent crystal" -msgstr "cristal translúcido" +msgstr "" #: src/artifact.cpp msgid "knot" -msgstr "nó" +msgstr "" #: src/artifact.cpp msgid "twisted, knotted cord" -msgstr "cordão trançado" +msgstr "" #: src/artifact.cpp msgid "crescent" -msgstr "crescente" +msgstr "" #: src/artifact.cpp msgid "crescent-shaped stone" -msgstr "pedra em forma de crescente" +msgstr "" #: src/artifact.cpp msgid "is constantly wriggling" -msgstr "está constantemente se contorcendo" +msgstr "" #: src/artifact.cpp msgid "wriggling" -msgstr "contorcendo-se" +msgstr "" #: src/artifact.cpp msgid "glowing" -msgstr "brilhando" +msgstr "" #: src/artifact.cpp msgid "glows faintly" -msgstr "brilha fracamente" +msgstr "" #: src/artifact.cpp msgid "humming" -msgstr "cantarolando" +msgstr "" #: src/artifact.cpp msgid "hums very quietly" -msgstr "cantarola baixinho" +msgstr "" #: src/artifact.cpp msgid "moving" -msgstr "movendo-se" +msgstr "" #: src/artifact.cpp msgid "shifts from side to side slowly" -msgstr "muda de um lado para o outro lentamente" +msgstr "" #: src/artifact.cpp msgid "makes very faint whispering sounds" -msgstr "faz sons sussurrantes muito fracos" +msgstr "" #: src/artifact.cpp msgid "whispering" -msgstr "sussurrando" +msgstr "" #: src/artifact.cpp msgid "breathing" -msgstr "respiração" +msgstr "" #: src/artifact.cpp msgid "shrinks and grows very slightly with a regular pulse, as if breathing" msgstr "" -" encolhe e cresce muito ligeiramente com um pulso regular, como se " -"respirasse" #: src/artifact.cpp msgid "dead" -msgstr "morto" +msgstr "" #: src/artifact.cpp msgid "is icy cold to the touch" -msgstr "está gelada ao toque" +msgstr "" #: src/artifact.cpp msgid "itchy" -msgstr "sarnento" +msgstr "" #: src/artifact.cpp msgid "makes your skin itch slightly when it is close" -msgstr "faz sua pele coçar levemente quando está perto" +msgstr "" #: src/artifact.cpp msgid "glittering" -msgstr "cintilante" +msgstr "" #: src/artifact.cpp msgid "glitters faintly under direct light" -msgstr "brilha fracamente sob luz direta" +msgstr "" #: src/artifact.cpp msgid "electric" -msgstr "elétrico" +msgstr "" #: src/artifact.cpp msgid "very weakly shocks you when touched" -msgstr "muito fracos te choca quando tocado" +msgstr "" #: src/artifact.cpp msgid "feels slimy" -msgstr "sente viscoso" +msgstr "" #: src/artifact.cpp msgid "slimy" -msgstr "viscoso" +msgstr "" #: src/artifact.cpp msgid "engraved" -msgstr "gravado" +msgstr "" #: src/artifact.cpp msgid "is covered with odd etchings" -msgstr "é coberto com gravuras estranhas" +msgstr "" #: src/artifact.cpp msgid "crackling" -msgstr "crepitar" +msgstr "" #: src/artifact.cpp msgid "occasionally makes a soft crackling sound" -msgstr "ocasionalmente faz um som de crepitação suave" +msgstr "" #: src/artifact.cpp msgid "is warm to the touch" -msgstr "está quente ao toque" +msgstr "" #: src/artifact.cpp msgid "warm" -msgstr "caloroso" +msgstr "" #: src/artifact.cpp msgid "makes a rattling sound when moved" -msgstr "faz um som de chocalho quando movido" +msgstr "" #: src/artifact.cpp msgid "rattling" -msgstr "chocalhar" +msgstr "" #: src/artifact.cpp msgid "has a surface reminiscent of reptile scales" -msgstr "tem uma superfície que lembra as escalas de répteis" +msgstr "" #: src/artifact.cpp msgid "scaled" -msgstr "dimensionado" +msgstr "" #: src/artifact.cpp msgid "fractal" -msgstr "fractal" +msgstr "" #: src/artifact.cpp msgid "" "has a self-similar pattern which repeats until it is too small for you to " "see" msgstr "" -" tem um padrão auto-similar que se repete até que seja muito pequeno para " -"você ver" #: src/artifact.cpp msgid "Harp" -msgstr "Harpa" +msgstr "" #: src/artifact.cpp msgid "Staff" -msgstr "Funcionários" +msgstr "" #: src/artifact.cpp msgid "Sword" -msgstr "Espada" +msgstr "" #: src/artifact.cpp msgid "Dagger" -msgstr "Punhal" +msgstr "" #: src/artifact.cpp msgid "Cube" -msgstr "Cubo" +msgstr "" #: src/artifact.cpp msgid "Heavy" -msgstr "Pesado" +msgstr "" #: src/artifact.cpp msgid "Knobbed" -msgstr "Maçaneta" +msgstr "" #: src/artifact.cpp msgid "Spiked" -msgstr "Cravado" +msgstr "" #: src/artifact.cpp msgid "Edged" -msgstr "Afiada" +msgstr "" #: src/artifact.cpp msgid "Bladed" -msgstr "Laminado" +msgstr "" #: src/artifact.cpp msgid "Robe" -msgstr "vestido" +msgstr "" #: src/artifact.cpp msgid "Coat" -msgstr "Casaco" +msgstr "" #: src/artifact.cpp msgid "Mask" -msgstr "mascarar" +msgstr "" #: src/artifact.cpp msgid "Helm" -msgstr "Leme" +msgstr "" #: src/artifact.cpp msgid "Gloves" -msgstr "Luvas" +msgstr "" #: src/artifact.cpp msgid "Boots" -msgstr "Chuteiras" +msgstr "" #: src/artifact.cpp msgid "very thin and light." -msgstr "muito fina e leve." +msgstr "" #: src/artifact.cpp msgid "extremely bulky." -msgstr "extremamente volumoso." +msgstr "" #: src/artifact.cpp msgid "covered in pockets." -msgstr "coberto em bolsos." +msgstr "" #: src/artifact.cpp msgid "disgustingly furry." -msgstr "repugnantemente peludo." +msgstr "" #: src/artifact.cpp msgid "leather-padded." -msgstr "de couro acolchoado." +msgstr "" #: src/artifact.cpp msgid "plated in iron." -msgstr "banhado em ferro." +msgstr "" #: src/artifact.cpp msgid "Eldritch" -msgstr "Eldritch" +msgstr "" #: src/artifact.cpp msgid "Forbidden" -msgstr "Proibido" +msgstr "" #: src/artifact.cpp msgid "Forgotten" -msgstr "Esquecido" +msgstr "" #: src/artifact.cpp msgid "Hideous" -msgstr "Medonho" +msgstr "" #: src/artifact.cpp msgid "Unknowable" -msgstr "Incognoscível" +msgstr "" #: src/artifact.cpp msgid "Ancient" -msgstr "Antigo" +msgstr "" #: src/artifact.cpp msgid "Bloody" -msgstr "Sangrento" +msgstr "" #: src/artifact.cpp msgid "Cursed" -msgstr "Amaldiçoado" +msgstr "" #: src/artifact.cpp msgid "Gelatinous" -msgstr "Gelatinoso" +msgstr "" #: src/artifact.cpp msgid "Undying" -msgstr "Imortal" +msgstr "" #: src/artifact.cpp msgid "Cyclopean" -msgstr "ciclópico" +msgstr "" #: src/artifact.cpp msgid "Fungal" -msgstr "Fungo" +msgstr "" #: src/artifact.cpp msgid "Shadowy" -msgstr "Sombrio" +msgstr "" #: src/artifact.cpp msgid "Silent" -msgstr "Silencioso" +msgstr "" #: src/artifact.cpp msgid "Unspeakable" -msgstr "Indizível" +msgstr "" #: src/artifact.cpp msgid "Antediluvian" -msgstr "Antediluviano" +msgstr "" #: src/artifact.cpp msgid "Frigid" -msgstr "Frigida" +msgstr "" #: src/artifact.cpp msgid "Repellent" -msgstr "Repelente" +msgstr "" #: src/artifact.cpp msgid "Shattered" -msgstr "Quebrado" +msgstr "" #: src/artifact.cpp src/faction.cpp msgid "Sleeping" -msgstr "adormecido" +msgstr "" #: src/artifact.cpp #, c-format @@ -171726,7 +152746,7 @@ msgstr "" #: src/artifact.cpp msgid "The architect's cube." -msgstr "Cubo do arquiteto." +msgstr "" #: src/artifact.cpp #, c-format @@ -171736,71 +152756,71 @@ msgstr "" #: src/artifact.cpp msgid "artifact file" -msgstr "arquivo de artefato" +msgstr "" #: src/auto_pickup.cpp msgid " AUTO PICKUP MANAGER " -msgstr "GERENTE DE COLOCAÇÃO AUTOMÁTICA" +msgstr "" #: src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "dd" -msgstr "dd" +msgstr "" #: src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "emove" -msgstr " emove" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "opy" -msgstr " opy" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "ove" -msgstr " estes" +msgstr "" #: src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "nable" -msgstr " nable" +msgstr "" #: src/auto_pickup.cpp src/game.cpp src/safemode_ui.cpp msgid "isable" -msgstr " é capaz" +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" -msgstr "<+ -> Mover para cima / baixo" +msgstr "" #: src/auto_pickup.cpp src/color.cpp src/game.cpp src/safemode_ui.cpp msgid "-Edit" -msgstr " -Editar" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "-Switch Page" -msgstr " -Switch Page" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "Rules" -msgstr "Regras" +msgstr "" #: src/auto_pickup.cpp msgid "I/E" -msgstr "I/E" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "[]" -msgstr "[ ]" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "[]" -msgstr "[ ]" +msgstr "" #: src/auto_pickup.cpp msgid "Auto pickup enabled:" -msgstr "Auto pickup habilitado:" +msgstr "" #: src/auto_pickup.cpp src/options.cpp src/safemode_ui.cpp msgid "False" @@ -171812,23 +152832,23 @@ msgstr "Verdadeiro" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "witch" -msgstr "bruxa" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "Please load a character first to use this page!" -msgstr "Por favor, carregue um personagem primeiro para usar esta página!" +msgstr "" #: src/auto_pickup.cpp src/safemode_ui.cpp msgid "" -msgstr "" +msgstr "" #: src/auto_pickup.cpp msgid "Exclude" -msgstr "Excluir" +msgstr "" #: src/auto_pickup.cpp msgid "Include" -msgstr "Incluir" +msgstr "" #: src/auto_pickup.cpp msgid "" @@ -171848,7 +152868,7 @@ msgstr "" #: src/auto_pickup.cpp msgid "Pickup Rule:" -msgstr "Regra de recebimento:" +msgstr "" #: src/auto_pickup.cpp src/color.cpp src/game.cpp src/input.cpp #: src/options.cpp src/safemode_ui.cpp @@ -171868,11 +152888,11 @@ msgstr "" #: src/auto_pickup.cpp msgid "Autopickup is not enabled in the options. Enable it now?" -msgstr "O autopupup não está habilitado nas opções. Ativá-lo agora?" +msgstr "" #: src/auto_pickup.cpp msgid "autopickup configuration" -msgstr "configuração de autopickup" +msgstr "" #: src/avatar.cpp src/iuse.cpp msgid "He" @@ -171940,7 +152960,7 @@ msgstr "" #: src/avatar.cpp msgid "Final HP:" -msgstr "HP final:" +msgstr "" #: src/avatar.cpp #, c-format @@ -171974,7 +152994,7 @@ msgstr "" #: src/avatar.cpp msgid "Final Stats:" -msgstr "Estatísticas finais:" +msgstr "" #: src/avatar.cpp #, c-format @@ -171998,19 +153018,19 @@ msgstr "" #: src/avatar.cpp msgid "Base Stats:" -msgstr "Estatísticas de base:" +msgstr "" #: src/avatar.cpp msgid "Final Messages:" -msgstr "Mensagens Finais:" +msgstr "" #: src/avatar.cpp src/game.cpp msgid "Kills:" -msgstr "Matanças:" +msgstr "" #: src/avatar.cpp msgid "No monsters were killed." -msgstr "Nenhum monstro foi morto." +msgstr "" #: src/avatar.cpp #, c-format @@ -172029,27 +153049,27 @@ msgstr "" #: src/avatar.cpp msgid "Traits:" -msgstr "Traços:" +msgstr "" #: src/avatar.cpp msgid "(None)" -msgstr "(Nenhum)" +msgstr "" #: src/avatar.cpp msgid "Ongoing Effects:" -msgstr "Efeitos em andamento:" +msgstr "" #: src/avatar.cpp src/player_display.cpp msgid "Pain" -msgstr "Dor" +msgstr "" #: src/avatar.cpp msgid "Bionics:" -msgstr "Biônica:" +msgstr "" #: src/avatar.cpp msgid "No bionics were installed." -msgstr "Nenhuma biônica foi instalada." +msgstr "" #: src/avatar.cpp #, c-format @@ -172064,19 +153084,19 @@ msgstr "" #: src/avatar.cpp msgid "Weapon:" -msgstr "Arma:" +msgstr "" #: src/avatar.cpp msgid "Equipment:" -msgstr "Equipamento:" +msgstr "" #: src/avatar.cpp msgid "Inventory:" -msgstr "Inventário:" +msgstr "" #: src/avatar.cpp msgid "Lifetime Stats" -msgstr "Lifetime Stats" +msgstr "" #: src/avatar.cpp #, c-format @@ -172100,7 +153120,7 @@ msgstr "" #: src/avatar.cpp msgid "Game History" -msgstr "História do Jogo" +msgstr "" #: src/avatar.cpp #, c-format @@ -172119,11 +153139,11 @@ msgstr "" #: src/avatar.cpp msgid "It's a bad idea to read while driving!" -msgstr "É uma má ideia ler durante a condução!" +msgstr "" #: src/avatar.cpp msgid "What's the point of studying? (Your morale is too low!)" -msgstr "Qual o sentido de estudar? (Sua moral é muito baixa!)" +msgstr "" #: src/avatar.cpp #, c-format @@ -172132,19 +153152,19 @@ msgstr "" #: src/avatar.cpp src/iuse.cpp msgid "You're illiterate!" -msgstr "Você é analfabeto!" +msgstr "" #: src/avatar.cpp msgid "Your eyes won't focus without reading glasses." -msgstr "Seus olhos não vão se concentrar sem óculos de leitura." +msgstr "" #: src/avatar.cpp msgid "It's too dark to read!" -msgstr "Está escuro demais para ler!" +msgstr "" #: src/avatar.cpp msgid "Maybe someone could read that to you, but you're deaf!" -msgstr "Talvez alguém possa ler isso para você, mas você é surdo!" +msgstr "" #: src/avatar.cpp #, c-format @@ -172193,19 +153213,19 @@ msgstr "" #: src/avatar.cpp msgid " (uninterested)" -msgstr "(desinteressado)" +msgstr "" #: src/avatar.cpp msgid " (deaf)" -msgstr "(surdo)" +msgstr "" #: src/avatar.cpp msgid " (too sad)" -msgstr "(muito triste)" +msgstr "" #: src/avatar.cpp msgid " (reading aloud to you)" -msgstr "(lendo em voz alta para você)" +msgstr "" #: src/avatar.cpp #, c-format @@ -172229,27 +153249,27 @@ msgstr "" #: src/avatar.cpp msgid "Read until you gain a level" -msgstr "Leia até você ganhar um nível" +msgstr "" #: src/avatar.cpp msgid "Read once" -msgstr "Leia uma vez" +msgstr "" #: src/avatar.cpp msgid "Read until this NPC gains a level:" -msgstr "Leia até este NPC ganhar um nível:" +msgstr "" #: src/avatar.cpp msgid "Reading for fun:" -msgstr "Lendo por diversão:" +msgstr "" #: src/avatar.cpp msgid "Not participating:" -msgstr "Não participando:" +msgstr "" #: src/avatar.cpp msgid "You already know all this book has to teach." -msgstr "Você já sabe tudo que este livro tem para ensinar." +msgstr "" #: src/avatar.cpp #, c-format @@ -172271,7 +153291,7 @@ msgstr "" #: src/avatar.cpp msgid "You read aloud..." -msgstr "Você leu em voz alta ..." +msgstr "" #: src/avatar.cpp #, c-format @@ -172416,7 +153436,7 @@ msgstr "" #: src/avatar.cpp msgid "Maybe you should find something new to read..." -msgstr "Talvez você deva encontrar algo novo para ler ..." +msgstr "" #: src/avatar.cpp #, c-format @@ -172451,19 +153471,19 @@ msgstr "" #: src/avatar.cpp src/player_hardcoded_effects.cpp msgid "It looks like you've slept through your internal alarm..." -msgstr "Parece que você dormiu no seu alarme interno ..." +msgstr "" #: src/avatar.cpp src/player_hardcoded_effects.cpp msgid "It looks like you've slept through the alarm..." -msgstr "Parece que você dormiu com o alarme ..." +msgstr "" #: src/avatar.cpp msgid "You retched, but your stomach is empty." -msgstr "Você vomitou, mas seu estômago está vazio." +msgstr "" #: src/avatar.cpp msgid "You lost your book! You stop reading." -msgstr "Você perdeu seu livro! Você pára de ler." +msgstr "" #: src/avatar.cpp msgid "Your thick scales get in the way." @@ -172499,11 +153519,11 @@ msgstr "Sua dor te distrai!" #: src/avatar.cpp msgid "You're weak from hunger." -msgstr "Você é fraco da fome." +msgstr "" #: src/avatar.cpp msgid "You're weak from thirst." -msgstr "Você é fraco de sede." +msgstr "" #: src/avatar.cpp #, c-format @@ -172512,19 +153532,19 @@ msgstr "" #: src/avatar.cpp src/bonuses.cpp src/character.cpp src/item.cpp msgid "strength" -msgstr "força" +msgstr "" #: src/avatar.cpp src/bonuses.cpp src/character.cpp src/item.cpp msgid "dexterity" -msgstr "destreza" +msgstr "" #: src/avatar.cpp src/bonuses.cpp src/character.cpp src/item.cpp msgid "intelligence" -msgstr "inteligência" +msgstr "" #: src/avatar.cpp src/bonuses.cpp src/character.cpp src/item.cpp msgid "perception" -msgstr "percepção" +msgstr "" #: src/avatar.cpp #, c-format @@ -172534,28 +153554,26 @@ msgstr "" #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "" -" Você não pode se mover enquanto estiver na sua concha. Desativá-lo para ir " -"móvel." #: src/avatar_action.cpp msgid "You cannot pull yourself away from the faultline..." -msgstr "Você não pode se afastar da falha ..." +msgstr "" #: src/avatar_action.cpp msgid "Monster in the way. Auto-move canceled." -msgstr "Monstro no caminho. Mover automaticamente cancelado." +msgstr "" #: src/avatar_action.cpp msgid "Click directly on monster to attack." -msgstr "Clique diretamente no monstro para atacar." +msgstr "" #: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp msgid "Your willpower asserts itself, and so do you!" -msgstr "Sua força de vontade se afirma, e você também!" +msgstr "" #: src/avatar_action.cpp src/handle_action.cpp src/handle_action.cpp msgid "You're too pacified to strike anything..." -msgstr "Você está muito pacificado para atacar qualquer coisa ..." +msgstr "" #: src/avatar_action.cpp #, c-format @@ -172564,23 +153582,23 @@ msgstr "" #: src/avatar_action.cpp msgid "NPC in the way, Auto-move canceled." -msgstr "NPC no caminho, movimento automático cancelado." +msgstr "" #: src/avatar_action.cpp msgid "Click directly on NPC to attack." -msgstr "Clique diretamente no NPC para atacar." +msgstr "" #: src/avatar_action.cpp msgid "Dive from moving vehicle?" -msgstr "Mergulhar de um veículo em movimento?" +msgstr "" #: src/avatar_action.cpp msgid "There is another vehicle in the way." -msgstr "Existe outro veículo no caminho." +msgstr "" #: src/avatar_action.cpp msgid "That part of the vehicle is currently unsafe." -msgstr "Essa parte do veículo é atualmente insegura." +msgstr "" #: src/avatar_action.cpp msgid "Your mount shies away from the water!" @@ -172588,11 +153606,11 @@ msgstr "" #: src/avatar_action.cpp msgid "Dive into the water?" -msgstr "Mergulhar na água?" +msgstr "" #: src/avatar_action.cpp msgid "You start swimming." -msgstr "Você começa a nadar." +msgstr "" #: src/avatar_action.cpp #, c-format @@ -172611,27 +153629,27 @@ msgstr "" #: src/avatar_action.cpp msgid "That door is locked!" -msgstr "Essa porta está trancada!" +msgstr "" #: src/avatar_action.cpp msgid "You rattle the bars but the door is locked!" -msgstr "Você sacode as barras, mas a porta está trancada!" +msgstr "" #: src/avatar_action.cpp msgid "You can't climb here - there's a ceiling above." -msgstr "Você não pode subir aqui - há um teto acima." +msgstr "" #: src/avatar_action.cpp src/game.cpp msgid "The water puts out the flames!" -msgstr "A água apaga as chamas!" +msgstr "" #: src/avatar_action.cpp msgid "The water washes off the glowing goo!" -msgstr "A água lava a gosma brilhante!" +msgstr "" #: src/avatar_action.cpp msgid "You sink like a rock!" -msgstr "Você afunda como uma rocha!" +msgstr "" #: src/avatar_action.cpp #, c-format @@ -172641,7 +153659,6 @@ msgstr "" #: src/avatar_action.cpp msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "" -" Você precisa respirar, mas não sabe nadar! Vá para terra firme, rápido!" #: src/avatar_action.cpp msgid "You cannot board a vehicle while mounted." @@ -172649,15 +153666,15 @@ msgstr "" #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." -msgstr "Nenhuma criatura hostil ao alcance. Esperando um turno." +msgstr "" #: src/avatar_action.cpp msgid "Your eyes steel, and you raise your weapon!" -msgstr "Seus olhos são de aço e você levanta sua arma!" +msgstr "" #: src/avatar_action.cpp msgid "You can't fire your weapon, it's too heavy..." -msgstr "Você não pode disparar sua arma, é muito pesado ..." +msgstr "" #: src/avatar_action.cpp #, c-format @@ -172666,11 +153683,11 @@ msgstr "" #: src/avatar_action.cpp msgid "You can no longer fire." -msgstr "Você não pode mais disparar." +msgstr "" #: src/avatar_action.cpp msgid "You need a free arm to drive!" -msgstr "Você precisa de um braço livre para dirigir!" +msgstr "" #: src/avatar_action.cpp #, c-format @@ -172684,7 +153701,7 @@ msgstr "" #: src/avatar_action.cpp msgid "You need to reload!" -msgstr "Você precisa recarregar!" +msgstr "" #: src/avatar_action.cpp #, c-format @@ -172703,8 +153720,6 @@ msgid "" "You must stand near acceptable terrain or furniture to use this weapon. A " "table, a mound of dirt, a broken window, etc." msgstr "" -" Você deve ficar perto de terrenos ou móveis aceitáveis para usar essa arma." -" Uma mesa, um monte de sujeira, uma janela quebrada, etc." #: src/avatar_action.cpp #, c-format @@ -172718,35 +153733,35 @@ msgstr "" #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." -msgstr "Você não pode jogar efetivamente enquanto estiver na sua concha." +msgstr "" #: src/avatar_action.cpp msgid "Throw item" -msgstr "Item de lançamento" +msgstr "" #: src/avatar_action.cpp msgid "You don't have any items to throw." -msgstr "Você não tem nenhum item para jogar." +msgstr "" #: src/avatar_action.cpp src/player.cpp msgid "You don't have that item." -msgstr "Você não tem esse item." +msgstr "" #: src/avatar_action.cpp msgid "That is too heavy to throw." -msgstr "Isso é muito pesado para jogar." +msgstr "" #: src/avatar_action.cpp msgid "That's part of your body, you can't throw that!" -msgstr "Isso é parte do seu corpo, você não pode jogar isso!" +msgstr "" #: src/avatar_action.cpp msgid "You concentrate mightily, and your body obeys!" -msgstr "Você se concentra poderosamente e seu corpo obedece!" +msgstr "" #: src/avatar_action.cpp msgid "You can't muster up the effort to throw anything..." -msgstr "Você não pode reunir o esforço para jogar nada ..." +msgstr "" #: src/ballistics.cpp #, c-format @@ -172765,7 +153780,7 @@ msgstr "" #: src/ballistics.cpp src/map.cpp msgid "splash!" -msgstr "respingo!" +msgstr "" #: src/ballistics.cpp #, c-format @@ -172801,7 +153816,7 @@ msgstr "" #: src/basecamp.cpp src/faction_camp.cpp msgid "Base Missions" -msgstr "Missões Base" +msgstr "" #: src/basecamp.cpp msgid "Expansion" @@ -172809,7 +153824,7 @@ msgstr "" #: src/basecamp.cpp msgid "Empty Expansion" -msgstr "Expansão Vazia" +msgstr "" #: src/bionics.cpp #, c-format @@ -172843,7 +153858,7 @@ msgstr "" #: src/bionics.cpp msgid "You change your mind and turn it off." -msgstr "Você muda de idéia e desliga." +msgstr "" #. ~Sound of a bionic sonic-resonator shaking the area #: src/bionics.cpp @@ -172852,115 +153867,115 @@ msgstr "VRRRRMP!" #: src/bionics.cpp msgid "Your speed suddenly increases!" -msgstr "Sua velocidade aumenta de repente!" +msgstr "" #: src/bionics.cpp msgid "Your muscles tear with the strain." -msgstr "Seus músculos rasgam com a tensão." +msgstr "" #: src/bionics.cpp msgid "Fungal Infection" -msgstr "Infecção por fungos" +msgstr "" #: src/bionics.cpp msgid "Insect Parasite" -msgstr "Inseto parasita" +msgstr "" #: src/bionics.cpp msgid "Poison" -msgstr "Poção" +msgstr "" #: src/bionics.cpp msgid "Methamphetamines" -msgstr "Metanfetaminas" +msgstr "" #: src/bionics.cpp msgid "Intoxicant: Other" -msgstr "Intoxicante: Outro" +msgstr "" #: src/bionics.cpp msgid "THC Intoxication" -msgstr "Intoxicação THC" +msgstr "" #: src/bionics.cpp msgid "Intestinal Parasite" -msgstr "Parasita Intestinal" +msgstr "" #: src/bionics.cpp msgid "Hemolytic Parasites" -msgstr "Parasitas Hemolíticos" +msgstr "" #: src/bionics.cpp msgid "Intracranial Parasites" -msgstr "Parasitas intracranianos" +msgstr "" #: src/bionics.cpp msgid "Intramuscular Parasites" -msgstr "Parasitas Intramusculares" +msgstr "" #: src/bionics.cpp msgid "Clostridium Tetani Infection" -msgstr "Infecção por Clostridium Tetani" +msgstr "" #: src/bionics.cpp msgid "Anticholinergic Tropane Alkaloids" -msgstr "Alcaloides Anticolinérgicos Tropânicos" +msgstr "" #: src/bionics.cpp msgid "Hallucinations" -msgstr "Alucinações" +msgstr "" #: src/bionics.cpp msgid "Minor Painkiller" -msgstr "Analgésico Menor" +msgstr "" #: src/bionics.cpp msgid "Moderate Painkiller" -msgstr "Analgésico moderado" +msgstr "" #: src/bionics.cpp msgid "Heavy Painkiller" -msgstr "Analgésico Pesado" +msgstr "" #: src/bionics.cpp msgid "Slow-Release Painkiller" -msgstr "Analgésico de liberação lenta" +msgstr "" #: src/bionics.cpp msgid "Prussian Blue" -msgstr "Azul da Prússia" +msgstr "" #: src/bionics.cpp msgid "Potassium Iodide" -msgstr "Iodeto de Potássio" +msgstr "" #: src/bionics.cpp msgid "Antihistamines" -msgstr "Anti-histamínicos" +msgstr "" #: src/bionics.cpp msgid "Adrenaline Spike" -msgstr "Pico de Adrenalina" +msgstr "" #: src/bionics.cpp msgid "Mycal Spike" -msgstr "Mycal Spike" +msgstr "" #: src/bionics.cpp msgid "Blood Test Results" -msgstr "Resultados do teste de sangue" +msgstr "" #: src/bionics.cpp msgid "No effects." -msgstr "Sem efeitos." +msgstr "" #: src/bionics.cpp msgid "There was not enough moisture in the air from which to draw water!" -msgstr "Não havia umidade suficiente no ar para tirar água!" +msgstr "" #: src/bionics.cpp msgid "Your torsion ratchet locks onto your joints." -msgstr "Sua catraca de torção trava nas juntas." +msgstr "" #: src/bionics.cpp msgid "You can now run faster, assisted by joint servomotors." @@ -172968,11 +153983,11 @@ msgstr "" #: src/bionics.cpp msgid "Start a fire where?" -msgstr "Comece uma fogueira onde?" +msgstr "" #: src/bionics.cpp src/iexamine.cpp msgid "You can't light a fire there." -msgstr "Você não pode acender um fogo lá." +msgstr "" #: src/bionics.cpp #, c-format @@ -172981,20 +153996,20 @@ msgstr "" #: src/bionics.cpp msgid "The bionic refuses to activate!" -msgstr "O biônico se recusa a ativar!" +msgstr "" #: src/bionics.cpp msgid "Create an EMP where?" -msgstr "Crie um EMP onde?" +msgstr "" #: src/bionics.cpp msgid "Your muscles hiss as hydraulic strength fills them!" -msgstr "Seus músculos silvam quando a força hidráulica os enche!" +msgstr "" #. ~ Sound of hissing hydraulic muscle! (not quite as loud as a car horn) #: src/bionics.cpp msgid "HISISSS!" -msgstr "HISISSS!" +msgstr "" #: src/bionics.cpp #, c-format @@ -173003,7 +154018,7 @@ msgstr "" #: src/bionics.cpp msgid "You unleash a powerful shockwave!" -msgstr "Você desencadeia uma poderosa onda de choque!" +msgstr "" #: src/bionics.cpp src/iuse.cpp #, c-format @@ -173037,48 +154052,40 @@ msgstr "" #: src/bionics.cpp msgid "Perform which function:" -msgstr "Execute qual função:" +msgstr "" #: src/bionics.cpp src/vehicle_use.cpp msgid "Control vehicle" -msgstr "Veículo de controle" +msgstr "" #: src/bionics.cpp msgid "RC radio" -msgstr "Rádio RC" +msgstr "" #: src/bionics.cpp msgid "" "WARNING: Purging all fuel is likely to result in radiation! Purge anyway?" msgstr "" -" AVISO: Purgar todo o combustível pode resultar em radiação! Purgar mesmo " -"assim?" #: src/bionics.cpp msgid "You need a jumper cable connected to a vehicle to drain power from it." msgstr "" -" Você precisa de um cabo de jumper conectado a um veículo para drenar a " -"energia dele." #: src/bionics.cpp msgid "Your plugged-in solar pack is now able to charge your system." -msgstr "Seu pacote solar plugado agora pode carregar seu sistema." +msgstr "" #: src/bionics.cpp msgid "" "You need to connect the cable to yourself and the solar pack before your " "solar pack can charge your system." msgstr "" -" Você precisa conectar o cabo a si mesmo e ao pacote solar antes que o seu " -"pacote solar possa carregar o seu sistema." #: src/bionics.cpp msgid "" "You might plug in your solar pack to the cable charging system, if you " "unfold it." msgstr "" -" Você pode conectar seu pacote solar ao sistema de carregamento de cabos, se" -" você desdobrá-lo." #: src/bionics.cpp #, c-format @@ -173117,7 +154124,7 @@ msgstr "" #: src/bionics.cpp msgid "Artificial night generator active!" -msgstr "Gerador de noite artificial ativo!" +msgstr "" #: src/bionics.cpp #, c-format @@ -173126,7 +154133,7 @@ msgstr "" #: src/bionics.cpp msgid "You feel your throat open up and air filling your lungs!" -msgstr "Você sente sua garganta se abrir e ar enchendo seus pulmões!" +msgstr "" #: src/bionics.cpp msgid "The removal fails without incident." @@ -173134,39 +154141,39 @@ msgstr "" #: src/bionics.cpp msgid "You flub the removal." -msgstr "Você flub a remoção." +msgstr "" #: src/bionics.cpp msgid " flubs the removal." -msgstr " flubs a remoção." +msgstr "" #: src/bionics.cpp msgid "You mess up the removal." -msgstr "Você estraga a remoção." +msgstr "" #: src/bionics.cpp msgid " messes up the removal." -msgstr " bagunça a remoção." +msgstr "" #: src/bionics.cpp src/game.cpp msgid "The removal fails." -msgstr "A remoção falha." +msgstr "" #: src/bionics.cpp msgid "The removal is a failure." -msgstr "A remoção é uma falha." +msgstr "" #: src/bionics.cpp msgid "You screw up the removal." -msgstr "Você estraga a remoção." +msgstr "" #: src/bionics.cpp msgid " screws up the removal." -msgstr " estraga a remoção." +msgstr "" #: src/bionics.cpp msgid "It really hurts!" -msgstr "Isso realmente dói!" +msgstr "" #: src/bionics.cpp #, c-format @@ -173203,11 +154210,11 @@ msgstr "" #: src/bionics.cpp msgid "You prep to begin surgery." -msgstr "Você se prepara para começar a cirurgia." +msgstr "" #: src/bionics.cpp msgid " prepares for surgery." -msgstr " se prepara para a cirurgia." +msgstr "" #: src/bionics.cpp #, c-format @@ -173228,8 +154235,6 @@ msgstr "" msgid "" "WARNING: Removing a reactor may leave radioactive material! Remove anyway?" msgstr "" -" AVISO: Remover um reator pode deixar material radioativo! Remover mesmo " -"assim?" #: src/bionics.cpp #, c-format @@ -173245,7 +154250,7 @@ msgstr "" #: src/bionics.cpp msgid "Are you sure you wish to uninstall the selected bionic?" -msgstr "Tem certeza de que deseja desinstalar o biônico selecionado?" +msgstr "" #: src/bionics.cpp #, c-format @@ -173268,13 +154273,11 @@ msgstr "" #: src/bionics.cpp msgid "Your parts are jiggled back into their familiar places." -msgstr "Suas partes voltaram para seus lugares familiares." +msgstr "" #: src/bionics.cpp msgid "'s parts are jiggled back into their familiar places." msgstr "" -" As partes de dentro são colocadas de volta em seus lugares " -"familiares." #: src/bionics.cpp #, c-format @@ -173298,8 +154301,6 @@ msgid "" "You feel a tiny pricking sensation in your right arm, and lose all sensation" " before abruptly blacking out." msgstr "" -" Você sente uma pequena sensação de picada no braço direito e perde toda a " -"sensação antes de se desvanecer abruptamente." #: src/bionics.cpp #, c-format @@ -173328,7 +154329,7 @@ msgstr "" #: src/bionics.cpp msgid "Are you sure you wish to install the selected bionic?" -msgstr "Tem certeza de que deseja instalar o biônico selecionado?" +msgstr "" #: src/bionics.cpp #, c-format @@ -173376,39 +154377,39 @@ msgstr "" #: src/bionics.cpp msgid "The installation fails without incident." -msgstr "A instalação falha sem incidentes." +msgstr "" #: src/bionics.cpp msgid "You flub the installation." -msgstr "Você flub a instalação." +msgstr "" #: src/bionics.cpp msgid " flubs the installation." -msgstr " flubs a instalação." +msgstr "" #: src/bionics.cpp msgid "You mess up the installation." -msgstr "Você estraga a instalação." +msgstr "" #: src/bionics.cpp msgid " messes up the installation." -msgstr " bagunça a instalação." +msgstr "" #: src/bionics.cpp msgid "The installation fails." -msgstr "A instalação falha." +msgstr "" #: src/bionics.cpp msgid "The installation is a failure." -msgstr "A instalação é uma falha." +msgstr "" #: src/bionics.cpp msgid "You screw up the installation." -msgstr "Você estraga a instalação." +msgstr "" #: src/bionics.cpp msgid " screws up the installation." -msgstr " estraga a instalação." +msgstr "" #. ~"Complications" is USian medical-speak for "unintended damage from a #. medical procedure". @@ -173419,7 +154420,7 @@ msgstr "" #: src/bionics.cpp msgid "The installation is faulty!" -msgstr "A instalação está com defeito!" +msgstr "" #: src/bionics.cpp #, c-format @@ -173477,23 +154478,20 @@ msgid "" " sets up the operation, configuring the Autodoc to manipulate a " "CBM." msgstr "" -" configura a operação, configurando o Autodoc para manipular um " -"CBM." #: src/bionics.cpp msgid "" "You settle into position, sliding your right wrist into the couch's strap." -msgstr "Você se acomoda, deslizando o pulso direito na alça do sofá." +msgstr "" #: src/bionics.cpp msgid "" " settles into position, sliding their wrist into the couch's strap." msgstr "" -" posiciona-se em posição, deslizando o pulso na alça do sofá." #: src/bionics.cpp msgid "You feel excited as the operation starts." -msgstr "Você se sente animado quando a operação começa." +msgstr "" #: src/bionics.cpp msgid "" @@ -173501,9 +154499,6 @@ msgid "" "sight of scalpels slicing you apart, but as operation proceeds you suddenly " "feel tired and pass out." msgstr "" -" Você se sente animado quando o Autodoc se afunda sem dor em você. Você " -"aprecia a visão de bisturis cortando-o em pedaços, mas à medida que a " -"operação avança, de repente você se sente cansado e desmaia." #: src/bionics.cpp msgid "" @@ -173517,8 +154512,6 @@ msgid "" "As your conciousness slips away, you feel regret that you won't be able to " "enjoy the operation." msgstr "" -" À medida que sua consciência se esvai, você se sente arrependido por não " -"poder aproveitar a operação." #: src/bionics_ui.cpp #, c-format @@ -173531,8 +154524,6 @@ msgid "" "Reassigning.\n" "Select a bionic to reassign or press SPACE to cancel." msgstr "" -" Reatribuição. \n" -" Selecione um biônico para reatribuir ou pressione ESPAÇO para cancelar.\n" #: src/bionics_ui.cpp msgid "" @@ -173540,9 +154531,6 @@ msgid "" "= to reassign, TAB to switch " "tabs." msgstr "" -" Ativando ! examinar, " -" = reatribuir, ABA para " -"alternar as guias." #: src/bionics_ui.cpp msgid "" @@ -173550,9 +154538,6 @@ msgid "" "= to reassign, TAB to switch " "tabs." msgstr "" -" Examinando ! ativar, " -" = reatribuir, ABA para " -"alternar as guias." #: src/bionics_ui.cpp #, c-format @@ -173576,11 +154561,11 @@ msgstr "" #: src/bionics_ui.cpp src/handle_action.cpp msgid "OFF" -msgstr "FORA" +msgstr "" #: src/bionics_ui.cpp src/handle_action.cpp msgid "ON" -msgstr "EM" +msgstr "" #: src/bionics_ui.cpp msgid "(incapacitated)" @@ -173603,19 +154588,19 @@ msgstr "" #: src/bionics_ui.cpp msgid "This bionic occupies the following body parts:" -msgstr "Este biônico ocupa as seguintes partes do corpo:" +msgstr "" #: src/bionics_ui.cpp msgid " BIONICS " -msgstr "BIÔNICA" +msgstr "" #: src/bionics_ui.cpp msgid "No activatable bionics installed." -msgstr "Nenhuma biônica ativável instalada." +msgstr "" #: src/bionics_ui.cpp msgid "No passive bionics installed." -msgstr "Nenhuma biônica passiva instalada." +msgstr "" #: src/bionics_ui.cpp #, c-format @@ -173639,40 +154624,40 @@ msgstr "" #: src/bonuses.cpp msgid "Accuracy" -msgstr "Precisão" +msgstr "" #: src/bonuses.cpp src/martialarts.cpp msgid "Dodge" -msgstr "Esquivar" +msgstr "" #: src/bonuses.cpp src/panels.cpp src/player_display.cpp msgid "Speed" -msgstr "Rapidez" +msgstr "" #: src/bonuses.cpp msgid "Move cost" -msgstr "Mover custo" +msgstr "" #: src/bonuses.cpp src/panels.cpp src/panels.cpp msgid "Armor" -msgstr "armaduras" +msgstr "" #: src/bonuses.cpp msgid "Armor pen" -msgstr "Caneta de armadura" +msgstr "" #: src/bonuses.cpp msgid "Target armor multiplier" -msgstr "Multiplicador de blindagem alvo" +msgstr "" #. ~ bash damage +80% of strength #: src/bonuses.cpp msgid " of " -msgstr "do" +msgstr "" #: src/calendar.cpp msgid "forever" -msgstr "para sempre" +msgstr "" #: src/calendar.cpp #, c-format @@ -173855,7 +154840,7 @@ msgstr "Inverno" #: src/calendar.cpp msgid "End times" -msgstr "Fim dos tempos" +msgstr "" #. ~ 1 is the year, 2 is the day (of the *year*), 3 is the time of the day in #. its usual format @@ -173873,15 +154858,15 @@ msgstr "" #: src/cata_tiles.cpp msgid "direct3d" -msgstr "direct3d" +msgstr "" #: src/cata_tiles.cpp msgid "opengl" -msgstr "opengl" +msgstr "" #: src/cata_tiles.cpp msgid "opengles2" -msgstr "opengles2" +msgstr "" #: src/cata_utility.cpp src/options.cpp msgid "mph" @@ -173890,7 +154875,7 @@ msgstr "mph" #. ~ vehicle speed tiles per turn #: src/cata_utility.cpp msgid "t/t" -msgstr "t / t" +msgstr "" #: src/cata_utility.cpp src/options.cpp msgid "km/h" @@ -173898,7 +154883,7 @@ msgstr "km/h" #: src/cata_utility.cpp msgid "m/s" -msgstr "Senhora" +msgstr "" #: src/cata_utility.cpp src/options.cpp msgid "kg" @@ -173911,21 +154896,21 @@ msgstr "lbs" #: src/cata_utility.cpp msgctxt "Volume unit" msgid "c" -msgstr "c" +msgstr "" #: src/cata_utility.cpp msgctxt "Volume unit" msgid "L" -msgstr "[Partes do Veículo] L" +msgstr "" #: src/cata_utility.cpp msgctxt "Volume unit" msgid "qt" -msgstr "qt" +msgstr "" #: src/cata_utility.cpp msgid "cup" -msgstr "copo" +msgstr "" #: src/cata_utility.cpp msgid "liter" @@ -173933,7 +154918,7 @@ msgstr "litro" #: src/cata_utility.cpp msgid "quart" -msgstr "trimestre" +msgstr "" #: src/cata_utility.cpp #, c-format @@ -173942,11 +154927,11 @@ msgstr "" #: src/cata_utility.cpp msgid "opening file failed" -msgstr "o arquivo de abertura falhou" +msgstr "" #: src/cata_utility.cpp msgid "writing to file failed" -msgstr "escrevendo para arquivo falhou" +msgstr "" #: src/cata_utility.cpp #, c-format @@ -173957,18 +154942,18 @@ msgstr "" #. if possible, or leave it as is #: src/cata_utility.cpp msgid "abcdefghijklmnopqrstuvwxyz" -msgstr "a B C D e F G H I J K L M N o p q R S T U V W x y Z" +msgstr "" #. ~ translators: place some random 2-width characters here in your language #. if possible, or leave it as is #: src/cata_utility.cpp msgid "に坂索トし荷測のンおク妙免イロコヤ梅棋厚れ表幌" -msgstr "Pesquisa de inclinação e medição de carga" +msgstr "" #: src/character.cpp msgctxt "not possessive" msgid "you" -msgstr "você" +msgstr "" #: src/character.cpp msgid "your" @@ -173985,15 +154970,15 @@ msgstr "armadura" #: src/character.cpp msgid "You struggle to stand." -msgstr "Você luta para ficar de pé." +msgstr "" #: src/character.cpp msgid "You stand up." -msgstr "Você se levanta." +msgstr "" #: src/character.cpp msgid " stands up." -msgstr " levanta-se." +msgstr "" #: src/character.cpp src/monster.cpp #, c-format @@ -174002,15 +154987,15 @@ msgstr "" #: src/character.cpp msgid "You free yourself from the webs!" -msgstr "Você se livra das teias!" +msgstr "" #: src/character.cpp msgid " frees themselves from the webs!" -msgstr " liberta-se das teias!" +msgstr "" #: src/character.cpp msgid "You try to free yourself from the webs, but can't get loose!" -msgstr "Você tenta se libertar das teias, mas não consegue se soltar!" +msgstr "" #: src/character.cpp src/monster.cpp #, c-format @@ -174019,16 +155004,15 @@ msgstr "" #: src/character.cpp msgid "You free yourself from the light snare!" -msgstr "Você se livra da armadilha da luz!" +msgstr "" #: src/character.cpp msgid " frees themselves from the light snare!" -msgstr " liberta-se da armadilha da luz!" +msgstr "" #: src/character.cpp msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "" -" Você tenta se libertar da armadilha de luz, mas não consegue se soltar!" #: src/character.cpp src/monster.cpp #, c-format @@ -174037,16 +155021,15 @@ msgstr "" #: src/character.cpp msgid "You free yourself from the heavy snare!" -msgstr "Você se livra da armadilha pesada!" +msgstr "" #: src/character.cpp msgid " frees themselves from the heavy snare!" -msgstr " liberta-se da armadilha pesada!" +msgstr "" #: src/character.cpp msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "" -" Você tenta se libertar da armadilha pesada, mas não consegue se soltar!" #: src/character.cpp src/monster.cpp #, c-format @@ -174060,40 +155043,39 @@ msgstr "" #: src/character.cpp msgid "You free yourself from the bear trap!" -msgstr "Você se livra da armadilha do urso!" +msgstr "" #: src/character.cpp msgid " frees themselves from the bear trap!" -msgstr " liberta-se da armadilha do urso!" +msgstr "" #: src/character.cpp msgid "You try to free yourself from the bear trap, but can't get loose!" msgstr "" -" Você tenta se libertar da armadilha do urso, mas não consegue se soltar!" #: src/character.cpp msgid "You free yourself from the rubble!" -msgstr "Você se livra dos escombros!" +msgstr "" #: src/character.cpp msgid " frees themselves from the rubble!" -msgstr " liberta-se dos escombros!" +msgstr "" #: src/character.cpp msgid "You try to free yourself from the rubble, but can't get loose!" -msgstr "Você tenta se libertar dos escombros, mas não consegue se soltar!" +msgstr "" #: src/character.cpp msgid "You try to escape the pit, but slip back in." -msgstr "Você tenta escapar do buraco, mas volta para dentro." +msgstr "" #: src/character.cpp msgid "You escape the pit!" -msgstr "Você foge do poço!" +msgstr "" #: src/character.cpp msgid " escapes the pit!" -msgstr " escapa do poço!" +msgstr "" #: src/character.cpp #, c-format @@ -174112,27 +155094,27 @@ msgstr "" #: src/character.cpp msgid "You find yourself no longer grabbed." -msgstr "Você não está mais preso." +msgstr "" #: src/character.cpp msgid " finds themselves no longer grabbed." -msgstr " encontra-se já não agarrado." +msgstr "" #: src/character.cpp msgid "You try break out of the grab, but fail!" -msgstr "Você tenta sair da garra, mas falha!" +msgstr "" #: src/character.cpp msgid " tries to break out of the grab, but fails!" -msgstr " tenta sair da garra, mas falha!" +msgstr "" #: src/character.cpp msgid "You break out of the grab!" -msgstr "Você sai da garra!" +msgstr "" #: src/character.cpp msgid " breaks out of the grab!" -msgstr " sai da garra!" +msgstr "" #: src/character.cpp #, c-format @@ -174169,7 +155151,7 @@ msgstr "" #: src/character.cpp msgid "Liquid from your inventory has leaked onto the ground." -msgstr "Líquido do seu inventário vazou no chão." +msgstr "" #: src/character.cpp msgid "Parched" @@ -174285,7 +155267,7 @@ msgstr "" #: src/character.cpp msgid "You don't expect any improvement from using this." -msgstr "Você não espera nenhuma melhoria de usar isso." +msgstr "" #: src/character.cpp #, c-format @@ -174294,7 +155276,7 @@ msgstr "" #: src/character.cpp msgid "It has a deep bite wound that needs cleaning." -msgstr "Tem uma ferida profunda que precisa de limpeza." +msgstr "" #: src/character.cpp #, c-format @@ -174303,14 +155285,12 @@ msgstr "" #: src/character.cpp msgid "This will not help in cleaning this wound." -msgstr "Isso não ajudará na limpeza desta ferida." +msgstr "" #: src/character.cpp msgid "" "It has a deep wound that looks infected. Antibiotics might be required." msgstr "" -" Tem uma ferida profunda que parece infectada. Antibióticos podem ser " -"necessários." #: src/character.cpp #, c-format @@ -174319,7 +155299,7 @@ msgstr "" #: src/character.cpp msgid "This will not help in healing infection." -msgstr "Isso não ajudará na cura da infecção." +msgstr "" #: src/character.cpp #, c-format @@ -174333,20 +155313,20 @@ msgstr "" #: src/character.cpp msgid "Healthy." -msgstr "Saudável." +msgstr "" #: src/character.cpp msgid "You don't expect any effect from using this." -msgstr "Você não espera nenhum efeito de usar isso." +msgstr "" #: src/character.cpp msgid "No limb would benefit from it." -msgstr "Nenhum membro se beneficiaria disso." +msgstr "" #: src/character.cpp src/inventory_ui.cpp src/monexamine.cpp #: src/npctalk_funcs.cpp src/pickup.cpp msgid "Cancel" -msgstr "Cancelar" +msgstr "" #: src/character.cpp src/iexamine.cpp #, c-format @@ -174355,7 +155335,7 @@ msgstr "" #: src/character.cpp src/veh_interact.cpp msgid "There's some left over!" -msgstr "Ainda sobra algum!" +msgstr "" #: src/character.cpp #, c-format @@ -174380,11 +155360,11 @@ msgstr "" #: src/character.cpp msgid "Wielding:" -msgstr "Empunhando:" +msgstr "" #: src/character.cpp msgid "Wearing:" -msgstr "Vestindo:" +msgstr "" #: src/character.cpp msgid "AW HELL NAH" @@ -174413,7 +155393,7 @@ msgstr "" #: src/character.cpp src/color.cpp src/color.cpp src/options.cpp #: src/panels.cpp msgid "Normal" -msgstr "Normal" +msgstr "" #: src/character.cpp msgid "Bean Pole" @@ -174521,77 +155501,77 @@ msgstr "" #: src/character.cpp msgid "a piercing howl!" -msgstr "um uivo penetrante!" +msgstr "" #: src/character.cpp msgid "yourself let out a piercing howl!" -msgstr "você mesmo soltou um uivo penetrante!" +msgstr "" #: src/character.cpp msgid "a loud scream!" -msgstr "um grito alto!" +msgstr "" #: src/character.cpp msgid "yourself scream loudly!" -msgstr "grite bem alto!" +msgstr "" #: src/character.cpp msgid "a loud shout!" -msgstr "um grito alto!" +msgstr "" #: src/character.cpp msgid "yourself shout loudly!" -msgstr "grite bem alto!" +msgstr "" #: src/character.cpp msgid "The sound of your voice is almost completely muffled!" -msgstr "O som da sua voz é quase completamente abafado!" +msgstr "" #: src/character.cpp msgid "an indistinct voice" -msgstr "uma voz indistinta" +msgstr "" #: src/character.cpp msgid "your muffled shout" -msgstr "seu grito abafado" +msgstr "" #: src/character.cpp msgid "The sound of your voice is significantly muffled!" -msgstr "O som da sua voz é significativamente abafado!" +msgstr "" #: src/character.cpp msgctxt "memorial_male" msgid "Threw up." -msgstr "Vomitou." +msgstr "" #: src/character.cpp msgctxt "memorial_female" msgid "Threw up." -msgstr "Vomitou." +msgstr "" #: src/character.cpp msgid " throws up heavily!" -msgstr " vomita pesadamente!" +msgstr "" #: src/character.cpp msgid "You throw up heavily!" -msgstr "Você vomita pesadamente!" +msgstr "" #: src/clzones.cpp msgid "No Auto Pickup" -msgstr "Nenhum recolhimento automático" +msgstr "" #: src/clzones.cpp msgid "You won't auto-pickup items inside the zone." -msgstr "Você não coletará itens automaticamente dentro da zona." +msgstr "" #: src/clzones.cpp msgid "No NPC Pickup" -msgstr "Nenhum captador de NPC" +msgstr "" #: src/clzones.cpp msgid "Friendly NPCs don't pickup items inside the zone." -msgstr "NPCs amigáveis não pegam itens dentro da zona." +msgstr "" #: src/clzones.cpp msgid "NPC Retreat" @@ -174623,258 +155603,241 @@ msgstr "" #: src/clzones.cpp msgid "Loot: Unsorted" -msgstr "Roubo: Não sorteado" +msgstr "" #: src/clzones.cpp 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 soltar saque não sorteado. Você pode usar \\ 'ordenar out loot " -"\\' zone-action para ordenar itens dentro. Pode se sobrepor com zonas Loot " -"de diferentes tipos." #: src/clzones.cpp msgid "Loot: Food" -msgstr "Roubo: Comida" +msgstr "" #: src/clzones.cpp msgid "" "Destination for comestibles. If more specific food zone is not defined, all " "food is moved here." msgstr "" -" Destino para comestíveis. Se uma zona alimentar mais específica não for " -"definida, todos os alimentos são movidos para cá." #: src/clzones.cpp msgid "Loot: P.Food" -msgstr "Saque: P. Food" +msgstr "" #: src/clzones.cpp msgid "" "Destination for perishable comestibles. Does include perishable drinks if " "such zone is not specified." msgstr "" -" Destino para comestíveis perecíveis. Inclui bebidas perecíveis se essa zona" -" não for especificada." #: src/clzones.cpp msgid "Loot: Drink" -msgstr "Roubo: Beba" +msgstr "" #: src/clzones.cpp msgid "" "Destination for drinks. Does include perishable drinks if such zone is not " "specified." msgstr "" -" Destino para bebidas. Inclui bebidas perecíveis se essa zona não for " -"especificada." #: src/clzones.cpp msgid "Loot: P.Drink" -msgstr "Saque: P. Drink" +msgstr "" #: src/clzones.cpp msgid "Destination for perishable drinks." -msgstr "Destino para bebidas perecíveis." +msgstr "" #: src/clzones.cpp msgid "Loot: Guns" -msgstr "Roubo: Armas" +msgstr "" #: src/clzones.cpp msgid "Destination for guns, bows and similar weapons." -msgstr "Destino de armas, arcos e armas similares." +msgstr "" #: src/clzones.cpp msgid "Loot: Magazines" -msgstr "Roubo: Revistas" +msgstr "" #: src/clzones.cpp msgid "Destination for gun magazines." -msgstr "Destino para revistas de armas." +msgstr "" #: src/clzones.cpp msgid "Loot: Ammo" -msgstr "Roubo: Munição" +msgstr "" #: src/clzones.cpp msgid "Destination for ammo." -msgstr "Destino para munição." +msgstr "" #: src/clzones.cpp msgid "Loot: Weapons" -msgstr "Saque: Armas" +msgstr "" #: src/clzones.cpp msgid "Destination for melee weapons." -msgstr "Destino para armas brancas." +msgstr "" #: src/clzones.cpp msgid "Loot: Tools" -msgstr "Roubo: Ferramentas" +msgstr "" #: src/clzones.cpp msgid "Destination for tools." -msgstr "Destino para ferramentas." +msgstr "" #: src/clzones.cpp msgid "Loot: Clothing" -msgstr "Roubo: Vestuário" +msgstr "" #: src/clzones.cpp msgid "" "Destination for clothing. Does include filthy clothing if such zone is not " "specified." msgstr "" -" Destino para roupas. Inclui roupas imundas se essa zona não for " -"especificada." #: src/clzones.cpp msgid "Loot: F.Clothing" -msgstr "Saque: F. Roupa" +msgstr "" #: src/clzones.cpp msgid "Destination for filthy clothing." -msgstr "Destino para roupas imundas." +msgstr "" #: src/clzones.cpp msgid "Loot: Drugs" -msgstr "Roubo: Drogas" +msgstr "" #: src/clzones.cpp msgid "Destination for drugs and other medical items." -msgstr "Destino de drogas e outros itens médicos." +msgstr "" #: src/clzones.cpp msgid "Loot: Books" -msgstr "Roubo: Livros" +msgstr "" #: src/clzones.cpp msgid "Destination for books and magazines." -msgstr "Destino para livros e revistas." +msgstr "" #: src/clzones.cpp msgid "Loot: Mods" -msgstr "Roubo: Mods" +msgstr "" #: src/clzones.cpp msgid "Destination for firearm modifications and similar items." -msgstr "Destino para modificações de arma de fogo e itens semelhantes." +msgstr "" #: src/clzones.cpp msgid "Loot: Mutagens" -msgstr "Roubo: Mutagens" +msgstr "" #: src/clzones.cpp msgid "Destination for mutagens, serums, and purifiers." -msgstr "Destino para mutagênicos, soros e purificadores." +msgstr "" #: src/clzones.cpp msgid "Loot: Bionics" -msgstr "Roubo: Biônica" +msgstr "" #: src/clzones.cpp msgid "Destination for Compact Bionics Modules aka CBMs." -msgstr "Destino para Módulos Compact Bionics, também conhecidos como CBMs." +msgstr "" #: src/clzones.cpp msgid "Loot: V.Parts" -msgstr "Saque: V. Parts" +msgstr "" #: src/clzones.cpp msgid "Destination for vehicle parts." -msgstr "Destino para peças de veículos." +msgstr "" #: src/clzones.cpp msgid "Loot: Other" -msgstr "Roubo: Outro" +msgstr "" #: src/clzones.cpp msgid "Destination for other miscellaneous items." -msgstr "Destino para outros itens diversos." +msgstr "" #: src/clzones.cpp msgid "Loot: Fuel" -msgstr "Roubo: Combustível" +msgstr "" #: src/clzones.cpp msgid "" "Destination for gasoline, diesel, lamp oil and other substances used as a " "fuel." msgstr "" -" Destino para gasolina, diesel, óleo de lâmpada e outras substâncias usadas " -"como combustível." #: src/clzones.cpp msgid "Loot: Seeds" -msgstr "Saque: Sementes" +msgstr "" #: src/clzones.cpp msgid "Destination for seeds, stems and similar items." -msgstr "Destino para sementes, caules e itens semelhantes." +msgstr "" #: src/clzones.cpp msgid "Loot: Chemical" -msgstr "Roubo: Químico" +msgstr "" #: src/clzones.cpp msgid "Destination for chemicals." -msgstr "Destino para produtos químicos." +msgstr "" #: src/clzones.cpp msgid "Loot: S.Parts" -msgstr "Saque: S. Parts" +msgstr "" #: src/clzones.cpp msgid "Destination for spare parts." -msgstr "Destino para peças de reposição." +msgstr "" #: src/clzones.cpp msgid "Loot: Artifacts" -msgstr "Roubo: Artefatos" +msgstr "" #: src/clzones.cpp msgid "Destination for artifacts" -msgstr "Destino para artefatos" +msgstr "" #: src/clzones.cpp msgid "Loot: Armor" -msgstr "Roubo: Armadura" +msgstr "" #: src/clzones.cpp msgid "" "Destination for armor. Does include filthy armor if such zone is not " "specified." msgstr "" -" Destino para armadura. Inclui armaduras imundas se essa zona não for " -"especificada." #: src/clzones.cpp msgid "Loot: F.Armor" -msgstr "Saque: F. Armor" +msgstr "" #: src/clzones.cpp msgid "Destination for filthy armor." -msgstr "Destino para armadura imunda." +msgstr "" #: src/clzones.cpp msgid "Loot: Wood" -msgstr "Roubo: Madeira" +msgstr "" #: src/clzones.cpp msgid "Destination for firewood and items that can be used as such." -msgstr "Destino para lenha e itens que podem ser usados como tal." +msgstr "" #: src/clzones.cpp msgid "Loot: Ignore" -msgstr "Roubo: Ignorar" +msgstr "" #: src/clzones.cpp msgid "Items inside of this zone are ignored by \"sort out loot\" zone-action." msgstr "" -" Os itens dentro desta zona são ignorados pela \\ 'ordenar saquear \\' ação " -"da zona." #: src/clzones.cpp msgid "Construction: Blueprint" @@ -174886,11 +155849,11 @@ msgstr "" #: src/clzones.cpp msgid "Farm: Plot" -msgstr "Fazenda: Lote" +msgstr "" #: src/clzones.cpp msgid "Designate a farm plot for tilling and planting." -msgstr "Designe um terreno para plantio e plantio." +msgstr "" #: src/clzones.cpp msgid "Basecamp: Food" @@ -174904,7 +155867,7 @@ msgstr "" #: src/clzones.cpp msgid "No seed" -msgstr "Sem semente" +msgstr "" #: src/clzones.cpp msgid "No construction" @@ -174920,35 +155883,35 @@ msgstr "" #: src/clzones.cpp msgid "Plant seed: " -msgstr "Semente de planta:" +msgstr "" #: src/clzones.cpp msgid "Zone name:" -msgstr "Nome da zona:" +msgstr "" #: src/clzones.cpp msgid "Select zone type:" -msgstr "Selecione o tipo de zona:" +msgstr "" #: src/clzones.cpp msgid "" -msgstr "" +msgstr "" #: src/clzones.cpp msgid "Bind this zone to the cargo part here?" -msgstr "Vincular esta zona para a parte de carga aqui?" +msgstr "" #: src/clzones.cpp msgid "You cannot add that type of zone to a vehicle." -msgstr "Você não pode adicionar esse tipo de zona a um veículo." +msgstr "" #: src/clzones.cpp msgid "You cannot change the order of vehicle loot zones." -msgstr "Você não pode alterar a ordem das zonas de saque do veículo." +msgstr "" #: src/clzones.cpp msgid "zones date" -msgstr "data das zonas" +msgstr "" #: src/color.cpp msgid "brown" @@ -174956,19 +155919,19 @@ msgstr "marrom" #: src/color.cpp msgid "light gray" -msgstr "cinza claro" +msgstr "" #: src/color.cpp msgid "dark gray" -msgstr "cinza escuro" +msgstr "" #: src/color.cpp msgid "light red" -msgstr "luz vermelha" +msgstr "" #: src/color.cpp msgid "light green" -msgstr "luz verde" +msgstr "" #: src/color.cpp src/item.cpp msgid "red" @@ -174980,7 +155943,7 @@ msgstr "gramado" #: src/color.cpp msgid "light blue" -msgstr "azul claro" +msgstr "" #: src/color.cpp src/item.cpp msgid "blue" @@ -174996,7 +155959,7 @@ msgstr "ciano" #: src/color.cpp msgid "light cyan" -msgstr "Ciano claro" +msgstr "" #: src/color.cpp msgid "magenta" @@ -175008,35 +155971,35 @@ msgstr "rosa" #: src/color.cpp msgid "emove custom color" -msgstr " emove cor personalizada" +msgstr "" #: src/color.cpp msgid " To navigate" -msgstr " Navegar" +msgstr "" #: src/color.cpp msgid "Load emplate" -msgstr "Carga emplastrar" +msgstr "" #: src/color.cpp msgid "Some color changes may require a restart." -msgstr "Algumas mudanças de cor podem exigir uma reinicialização." +msgstr "" #: src/color.cpp msgid "Colorname" -msgstr "colorname" +msgstr "" #: src/color.cpp msgid "Invert" -msgstr "Invertido" +msgstr "" #: src/color.cpp msgid " COLOR MANAGER " -msgstr "GERENTE DE COR" +msgstr "" #: src/color.cpp msgid "Color templates:" -msgstr "Modelos de cor:" +msgstr "" #: src/color.cpp #, c-format @@ -175045,7 +156008,7 @@ msgstr "" #: src/color.cpp msgid "custom colors" -msgstr "cores personalizadas" +msgstr "" #: src/computer.cpp #, c-format @@ -175054,11 +156017,11 @@ msgstr "Acessando %s..." #: src/computer.cpp msgid "Access is temporary blocked for security purposes." -msgstr "O acesso é bloqueado temporariamente por motivos de segurança." +msgstr "" #: src/computer.cpp msgid "Please contact the system administrator." -msgstr "Por favor contacte o administrador do sistema." +msgstr "" #: src/computer.cpp msgid "ERROR! Access denied!" @@ -175099,7 +156062,7 @@ msgstr "Burlar sistema?" #: src/computer.cpp msgid "Choose drive:" -msgstr "Escolha a unidade:" +msgstr "" #: src/computer.cpp msgid "Doors opened. Press any key..." @@ -175209,11 +156172,11 @@ msgstr "Mapa do esgoto baixado. Aperte qualquer tecla..." #: src/computer.cpp msgid "Subway map data downloaded. Press any key..." -msgstr "Dados do mapa do metrô baixados. Pressione qualquer tecla..." +msgstr "" #: src/computer.cpp msgid "Target acquisition canceled." -msgstr "Aquisição de meta cancelada." +msgstr "" #: src/computer.cpp msgid "Confirm nuclear missile launch." @@ -175288,7 +156251,7 @@ msgstr "Continuar lendo?" #: src/computer.cpp msgid "AMIGARA PROJECT" -msgstr "PROJETO AMIGARA" +msgstr "" #: src/computer.cpp #, c-format @@ -175299,35 +156262,35 @@ msgstr "" #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." -msgstr "ARQUIVO CORROMPIDO, PRESSIONE QUALQUER CHAVE ..." +msgstr "" #: src/computer.cpp msgid "--ACCESS GRANTED--" -msgstr "--ACESSO CONCEDIDO--" +msgstr "" #: src/computer.cpp msgid "Mission Complete!" -msgstr "Missão completa!" +msgstr "" #: src/computer.cpp msgid "ACCESS DENIED" -msgstr "ACESSO NEGADO" +msgstr "" #: src/computer.cpp msgid "Repeater mod installed..." -msgstr "Repetidor mod instalado ..." +msgstr "" #: src/computer.cpp msgid "You do not have a repeater mod to install..." -msgstr "Você não tem um mod repetidor para instalar ..." +msgstr "" #: src/computer.cpp msgid "Computer couldn't find its mission!" -msgstr "O computador não encontrou sua missão!" +msgstr "" #: src/computer.cpp msgid "Software downloaded." -msgstr "Software baixado." +msgstr "" #: src/computer.cpp msgid "USB drive required!" @@ -175335,80 +156298,75 @@ msgstr "Pendrive USB necessário!" #: src/computer.cpp msgid "ERROR: Please place sample in centrifuge." -msgstr "ERRO: Por favor, coloque a amostra na centrífuga." +msgstr "" #: src/computer.cpp msgid "ERROR: Please remove all but one sample from centrifuge." -msgstr "ERRO: Por favor, remova todas as amostras, exceto uma, da centrífuga." +msgstr "" #: src/computer.cpp msgid "ERROR: Please only use container with blood sample." -msgstr "ERRO: Por favor, use apenas o recipiente com amostra de sangue." +msgstr "" #: src/computer.cpp msgid "ERROR: Please only use blood samples." -msgstr "ERRO: Por favor, use apenas amostras de sangue." +msgstr "" #: src/computer.cpp msgid "Result: Human blood, no pathogens found." -msgstr "Resultado: Sangue humano, nenhum patógeno encontrado." +msgstr "" #: src/computer.cpp msgid "Result: Human blood. Unknown pathogen found." -msgstr "Resultado: sangue humano. Patógeno desconhecido encontrado." +msgstr "" #: src/computer.cpp msgid "Result: Unknown blood type. Unknown pathogen found." msgstr "" -" Resultado: tipo sanguíneo desconhecido. Patógeno desconhecido encontrado." #: src/computer.cpp msgid "Pathogen bonded to erythrocytes and leukocytes." -msgstr "Patógeno ligado a eritrócitos e leucócitos." +msgstr "" #: src/computer.cpp msgid "Download data?" -msgstr "Download de dados?" +msgstr "" #: src/computer.cpp msgid "Result: Unknown blood type. Test non-conclusive." -msgstr "Resultado: tipo sanguíneo desconhecido. Teste não conclusivo." +msgstr "" #: src/computer.cpp msgid "PROCESSING DATA" -msgstr "PROCESSANDO DADOS" +msgstr "" #: src/computer.cpp msgid "ERROR: Please place memory bank in scan area." -msgstr "ERRO: Por favor, coloque o banco de memória na área de digitalização." +msgstr "" #: src/computer.cpp msgid "ERROR: Please only scan one item at a time." -msgstr "ERRO: Por favor, digitalize apenas um item de cada vez." +msgstr "" #: src/computer.cpp msgid "ERROR: Memory bank destroyed or not present." -msgstr "ERRO: Banco de memória destruído ou não presente." +msgstr "" #: src/computer.cpp msgid "ERROR: Memory bank is empty." -msgstr "ERRO: O banco de memória está vazio." +msgstr "" #: src/computer.cpp msgid "" "Memory Bank: Military Hexron Encryption\n" "Printing Transcript\n" msgstr "" -" Banco de Memória: Criptografia Militar Hexron \n" -" Criação de Impressão \n" #: src/computer.cpp msgid "" "Memory Bank: Unencrypted\n" "Nothing of interest.\n" msgstr "" -"Banco de Memória: Não encriptado \n" -"Nada de interesse. \n" #: src/computer.cpp msgid "" @@ -175418,13 +156376,10 @@ msgid "" "SYSTEM ADMINISTRATOR TO RESOLVE THIS ISSUE.\n" " \n" msgstr "" -" ERROR: REDE DESCONECTE \n" -" AIXA DE ALCANÇAR O ROTEADOR DE REDE OU O PROXY. ENTRE EM CONTATO COM O SEU ADMINISTRADOR DE SISTEMA PARA RESOLVER ESTE PROBLEMA. \n" -" \n" #: src/computer.cpp msgid "Press any key to continue..." -msgstr "Pressione qualquer tecla para continuar..." +msgstr "" #: src/computer.cpp msgid "" @@ -175451,12 +156406,6 @@ msgid "" " \n" " \n" msgstr "" -" ATENÇÃO, A TORRE DE RÁDIO NÃO É RESPONSÁVEL. \n" -" \n" -" PODER DE BACKUP INSUFICIENTE PARA ATENDER AOS REQUISITOS DE RADIODIFUSÃO. \n" -" EM CASO DE UMA EMERGÊNCIA, ENTRE EM CONTATO COM A GUARDA NACIONAL LOCAL \n" -" UNIDADES PARA RECEBER A PRIORIDADE QUANDO OS GERADORES ESTÃO SENDO IMPULSADOS. \n" -" \\ n \n" #: src/computer.cpp msgid "" @@ -175473,14 +156422,6 @@ msgid "" " and highly toxic. Take full precautions!\n" " \n" msgstr "" -" Subj: Lembrete de segurança \n" -" Para: todos os funcionários do SRCF \n" -" De: Constantine Dvorak, Subsecretário de Segurança Nuclear \n" -" \n" -" Quero lembrar a todos os funcionários: Não abra ou examine \n" -" os contêineres acima do seu limite de segurança. Se você tiver alguma dúvida sobre os protocolos de segurança ou procedimentos de envio, entre em contato com o administrador do SRCF ou com o oficial militar no local. \n" -" Em caso de dúvida, considere que todos os recipientes são de Classe B e altamente tóxicos. Tome precauções completas! \n" -" \n" #: src/computer.cpp msgid "" @@ -175498,15 +156439,6 @@ msgid "" " at once.\n" " " msgstr "" -" Subj: Lembrete de Segurança \n" -" Para: todos os funcionários do SRCF \n" -" De: Constantine Dvorak, Subsecretário de Segurança Nuclear \n" -" \n" -" A partir de hoje, os resíduos médicos não devem ser armazenados em local próximo a materiais radioativos. Todos os contêineres devem ser reorganizados de acordo com estes novos regulamentos. Se o seu \n" -" recurso atualmente tiver esses contêineres armazenados na proximidade \n" -" , você deverá trabalhar com guardas armados de plantão em todos os momentos \n" -" . Relate qualquer atividade incomum ao seu administrador do SRCF \n" -" de uma só vez. \n" #: src/computer.cpp msgid "" @@ -175521,14 +156453,6 @@ msgid "" " to your SRCF administrator at once.\n" " " msgstr "" -" Subj: Lembrete de Segurança \n" -" Para: todos os funcionários do SRCF \n" -" De: Constantine Dvorak, Subsecretaria de Segurança Nuclear \n" -" \n" -" A saúde e segurança do trabalhador é a nossa principal preocupação! Como tal, \n" -" estamos instituindo exames de saúde semanais para todos os funcionários da SRCF \n" -" . Relate quaisquer sintomas incomuns ou alterações físicas \n" -" ao seu administrador do SRCF de uma só vez. \n" #: src/computer.cpp msgid "" @@ -175543,13 +156467,6 @@ msgid "" " medical evaluation and security debriefing.\n" " " msgstr "" -" Subj: Lembrete de Segurança \n" -" Para: todos os funcionários do SRCF \n" -" De: Constantine Dvorak, Subsecretário de Segurança Nuclear \n" -" \n" -" Todos os estabelecimentos comprometidos permanecerão bloqueados até \n" -" aviso prévio. Qualquer pessoa que tenha visto ou entrado em contato direto \n" -" com as criaturas é se reportar ao escritório em casa para uma avaliação completa e avaliação de segurança. \n" #: src/computer.cpp msgid "" @@ -175575,25 +156492,6 @@ msgid "" " incompetencies will result in charges of Federal Corruption\n" " and potentially Treason.\n" msgstr "" -" Subj: EPA: Relate todas as possíveis violações de contenção 3873643 \n" -" Para: todas as equipes SRCF \n" -" De: Robert Shane, Diretor da EPA \n" -" \n" -" Todos os depósitos e sarcófagos de resíduos perigosos devem enviar três amostras de cada etapa operacional sistema para os seguintes \n" -" endereços: \n" -" \n" -" Laboratório de Bioterrorismo do CDC \n" -" Edifício 10 \n" -" Boulevard Corporativo Square \n" -" Atlanta, GA 30329 \n" -" \n" -" Laboratório da Região 8 da EPA \n" -" 16194 W. 45th Drive \n" -" Golden, Colorado 80403 \n" -" \n" -" Estes exemplos devem ser precisos e qualquer tentativa de cobrir \n" -" incompetências resultará em cobranças de Federal Corruption \n" -" e potencialmente Treason. \n" #: src/computer.cpp msgid "" @@ -175601,9 +156499,6 @@ msgid "" " Robert Shane\n" " \n" msgstr "" -"Diretor da EPA, \n" -" Robert Shane \n" -" \n" #: src/computer.cpp msgid "" @@ -175629,22 +156524,6 @@ msgid "" " means to keep EPA agents from visiting the SRCFs, using military\n" " secrecy, emergency powers, and inter-departmental gag orders to\n" msgstr "" -" Subj: SRCF: Internal Memo, EPA [2918024] \n" -" Para: todos os funcionários administrativos do SRCF \n" -" De: Constantine Dvorak, Subsecretário de Segurança Nuclear \n" -" \n" -" Diretor Grimes lançou uma nova série de acusações que serão investigadas em breve por um comitê do Congresso. Abaixo \n" -" é a mensagem que ele me enviou. \n" -" \n" -" ----------------------------------- --------------------------- \n" -" Subj: Investigações do Congresso \n" -" Para: Constantine Dvorak, Subsecretário de Segurança Nuclear \n" -" De: Robert Shane , diretor da EPA \n" -" \n" -" A EPA opôs-se ao projeto SRCF (Security-Restricted Containment \n" -" National Facility) desde seu início. Ficamos horrorizados se \n" -" que essas instalações seriam construídas tão perto de áreas povoadas \\ n, e só concordamos em assinar o projeto se pudéssemos livremente examinar e monitorar os sarcófagos. Mas isso \n" -" não aconteceu. Desde então, o DoE empregou todos e quaisquer meios para impedir que os agentes da EPA visitem os SRCFs, usando sigilo militar, poderes de emergência e ordens de mordaça interdepartamentais para \n" #: src/computer.cpp msgid "" @@ -175666,19 +156545,6 @@ msgid "" " Robert Shane\n" " \n" msgstr "" -" envolva o projeto com um emaranhado impenetrável de burocracia. \n" -" \n" -" Embora nossos agentes não tenham sido autorizados a entrar, nossos testadores \n" -" atmosféricos em comunidades próximas detectaram altos níveis de toxinas \n" -" e radiação, e encontramos dúzias de potencialmente perigoso \n" -" compostos não identificados na água subterrânea. Agora temos provas conclusivas de que os SRCFs são uma ameaça para o público \n" -" segurança. Estamos levando esses dados para os representantes do estado e solicitando uma investigação completa do Congresso. Eles devem ser capazes de forçar a abertura de seus cofres secretos, e o mundo verá o que você está escondendo. \n" -" \n" -" Se você teve alguma participação neste surto, espero que apodreça no inferno. \n" -" \n" -" Diretor da EPA, \n" -" Robert Shane \n" -" \n" #: src/computer.cpp msgid "" @@ -175703,19 +156569,6 @@ msgid "" " Ellen Grimes\n" " \n" msgstr "" -" Subj: CDC: Internal Memo, Standby [2918115] \n" -" Para: todos os funcionários do SRCF \n" -" De: Ellen Grimes, Diretora do CDC \n" -" \n" -" Seu site, juntamente com muitos outros, foi encontrado \n" -" contaminado com o que nós agora se referirá como [redigido]. \n" -" É vital que você espere por novas ordens. Estamos aguardando o Presidente para decidir nosso curso de ação nesta crise nacional. Você prosseguirá com os procedimentos de falha e segurança do sarcófago com C-4, conforme descrito na Publicação 4423. Enviaremos a você ordens para detonar \n" -" e lacrar o sarcófago ou remover as cargas. É de extrema importância que a instalação seja lacrada imediatamente quando as ordens forem dadas. Fomos alertados pela Segurança Nacional \n" -" de que há potenciais suspeitos de terrorismo que estão sendo detidos em conexão com a recente crise nacional. \n" -" \n" -" Diretor do CDC, \n" -" Ellen Grimes \n" -" \n" #: src/computer.cpp msgid "" @@ -175742,32 +156595,32 @@ msgstr "" #: src/computer.cpp msgctxt "memorial_male" msgid "Sealed a Hazardous Material Sarcophagus." -msgstr "Selou um Sarcófago de Material Perigoso." +msgstr "" #: src/computer.cpp msgctxt "memorial_female" msgid "Sealed a Hazardous Material Sarcophagus." -msgstr "Selou um Sarcófago de Material Perigoso." +msgstr "" #: src/computer.cpp msgid "Charges Detonated" -msgstr "Cobranças Detonadas" +msgstr "" #: src/computer.cpp msgid "Backup Generator Power Failing" -msgstr "Falha de energia do gerador de backup" +msgstr "" #: src/computer.cpp msgid "Evacuate Immediately" -msgstr "Evacuar imediatamente" +msgstr "" #: src/computer.cpp msgid "Evacuate Immediately!" -msgstr "Evacuar Imediatamente!" +msgstr "" #: src/computer.cpp msgid "Access code required!" -msgstr "Código de acesso requerido!" +msgstr "" #: src/computer.cpp msgid "" @@ -175777,9 +156630,6 @@ msgid "" "Operational: Overridden\n" "\n" msgstr "" -" Poder: Somente backup \n" -" Nível de radiação: muito perigoso \\ nOperacional: substituído \n" -" \n" #: src/computer.cpp msgid "ERROR: Processing platform empty." @@ -175934,59 +156784,59 @@ msgstr "O console desliga." #: src/computer.cpp msgid "Manhacks drop from compartments in the ceiling." -msgstr "Manhacks caem de compartimentos no teto." +msgstr "" #: src/computer.cpp msgid "Secubots emerge from compartments in the floor." -msgstr "Os cubos emergem dos compartimentos no chão." +msgstr "" #: src/computer.cpp msgid "The console shocks you." -msgstr "O console choca você." +msgstr "" #: src/computer.cpp msgid "You're protected from electric shocks." -msgstr "Você está protegido contra choques elétricos." +msgstr "" #: src/computer.cpp msgid "Your body is damaged by the electric shock!" -msgstr "Seu corpo está danificado pelo choque elétrico!" +msgstr "" #: src/computer.cpp msgid "The pump explodes!" -msgstr "A bomba explode!" +msgstr "" #: src/computer.cpp msgid "Sewage leaks!" -msgstr "Vazamentos de esgoto!" +msgstr "" #: src/computer.cpp msgid "ERROR: Disruptive Spin" -msgstr "ERRO: rotação disruptiva" +msgstr "" #: src/computer.cpp msgid "ERROR: Please use blood-contained samples." -msgstr "ERRO: Por favor, use amostras contendo sangue." +msgstr "" #: src/computer.cpp msgid "ERROR: Blood draw kit, empty." -msgstr "ERRO: kit de coleta de sangue, vazio." +msgstr "" #: src/computer.cpp msgid "ERROR: Blood sample destroyed." -msgstr "ERRO: amostra de sangue destruída." +msgstr "" #: src/computer.cpp msgid "ERROR: ACCESSING DATA MALFUNCTION" -msgstr "ERRO: ACESSAR MALFUNCTION DE DADOS" +msgstr "" #: src/computer.cpp msgid "ERROR: Data bank destroyed." -msgstr "ERRO: banco de dados destruído." +msgstr "" #: src/computer.cpp msgid "SEARCHING FOR NEAREST REFUGEE CENTER, PLEASE WAIT ... " -msgstr "PROCURANDO O CENTRO DE REFÚGIO MAIS PRÓXIMO, POR FAVOR, ESPERE ..." +msgstr "" #. ~555-0164 is a fake phone number in the US, please replace it with a number #. that will not cause issues in your locale if possible. @@ -176043,11 +156893,11 @@ msgstr "Aperte %s para ver e editar as teclas." #: src/construction.cpp msgid "Stage/Variant #" -msgstr "Estágio / Variante #" +msgstr "" #: src/construction.cpp msgid "Result: " -msgstr "Resultado:" +msgstr "" #: src/construction.cpp src/crafting_gui.cpp msgid "N/A" @@ -176055,15 +156905,15 @@ msgstr "N/A" #: src/construction.cpp msgid "Required skills: " -msgstr "Habilidades necessárias:" +msgstr "" #: src/construction.cpp msgid "Requires: " -msgstr "Requer:" +msgstr "" #: src/construction.cpp msgid "Annotation: " -msgstr "Anotação:" +msgstr "" #: src/construction.cpp #, c-format @@ -176163,65 +157013,61 @@ msgstr "" #: src/construction.cpp msgid "The rock feels much warmer than normal. Proceed?" -msgstr "A rocha parece muito mais quente que o normal. Prosseguir?" +msgstr "" #: src/construction.cpp msgid "You just tunneled into lava!" -msgstr "Você acabou de entrar em lava!" +msgstr "" #: src/construction.cpp msgctxt "memorial_male" msgid "Dug a shaft into lava." -msgstr "Cavou um raio na lava." +msgstr "" #: src/construction.cpp msgctxt "memorial_female" msgid "Dug a shaft into lava." -msgstr "Cavou um raio na lava." +msgstr "" #: src/construction.cpp msgid "You dig into a preexisting space, and improvise a ladder." -msgstr "Você entra em um espaço preexistente e improvisa uma escada." +msgstr "" #: src/construction.cpp msgid "You dig a stairway, adding sturdy timbers and a rope for safety." msgstr "" -" Você cava uma escada, adicionando madeiras resistentes e uma corda por " -"segurança." #: src/construction.cpp msgid "You drill out a passage, heading deeper underground." -msgstr "Você perfura uma passagem, indo mais fundo no subsolo." +msgstr "" #: src/construction.cpp msgid "The rock overhead feels hot. You decide *not* to mine magma." -msgstr "A sobrecarga de rock é quente. Você decide * não * para meu magma." +msgstr "" #: src/construction.cpp msgid "The rock above is rather damp. You decide *not* to mine water." msgstr "" -"A rocha acima é bastante úmida. Você decide * não * para a minha água." #: src/construction.cpp msgid "You drill out a passage, heading for the surface." -msgstr "Você perfura uma passagem, indo para a superfície." +msgstr "" #: src/construction.cpp msgid "After boarding up the window the curtains and curtain rod are left." msgstr "" -" Depois de subir a janela, as cortinas e a haste da cortina são deixadas." #: src/construction.cpp msgid "You gather some clay." -msgstr "Você recolhe um pouco de barro." +msgstr "" #: src/construction.cpp msgid "You gather some sand." -msgstr "Você recolhe um pouco de areia." +msgstr "" #: src/construction.cpp msgid "You gather some materials." -msgstr "Você recolhe alguns materiais." +msgstr "" #: src/construction.cpp msgid "You cannot build there!" @@ -176229,15 +157075,15 @@ msgstr "Você não bonde construir aí!" #: src/construction.cpp msgid "You cannot deconstruct this!" -msgstr "Você não pode desconstruir isso!" +msgstr "" #: src/construction.cpp msgid "Time to complete: " -msgstr "Hora de completar:" +msgstr "" #: src/consumption.cpp msgid "That doesn't look edible." -msgstr "Isso não parece comestível." +msgstr "" #: src/consumption.cpp msgid "That doesn't look edible to you." @@ -176245,24 +157091,24 @@ msgstr "" #: src/consumption.cpp msgid "That doesn't look edible in its current form." -msgstr "Isso não parece comestível em sua forma atual." +msgstr "" #: src/consumption.cpp msgid "This is full of dirt after being on the ground." -msgstr "Isso está cheio de sujeira depois de estar no chão." +msgstr "" #: src/consumption.cpp src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp #: src/iuse_actor.cpp src/player.cpp msgid "You can't do that while underwater." -msgstr "Você não pode fazer isso enquanto estiver debaixo d'água." +msgstr "" #: src/consumption.cpp msgid "It's frozen solid. You must defrost it before you can eat it." -msgstr "Está congelado. Você deve descongelar antes de poder comer." +msgstr "" #: src/consumption.cpp msgid "You can't drink it while it's frozen." -msgstr "Você não pode beber enquanto está congelado." +msgstr "" #: src/consumption.cpp src/player.cpp #, c-format @@ -176271,35 +157117,35 @@ msgstr "" #: src/consumption.cpp msgid "We can't eat that. It's not right for us." -msgstr "Nós não podemos comer isso. Não é certo para nós." +msgstr "" #: src/consumption.cpp msgid "Ugh, you can't drink that!" -msgstr "Ugh, você não pode beber isso!" +msgstr "" #: src/consumption.cpp msgid "Eww. Inedible plant stuff!" -msgstr "Eww Material de planta não comestível!" +msgstr "" #: src/consumption.cpp msgid "The thought of eating that makes you feel sick." -msgstr "O pensamento de comer faz você se sentir mal." +msgstr "" #: src/consumption.cpp msgid "This is rotten and smells awful!" -msgstr "Isso é podre e cheira horrível!" +msgstr "" #: src/consumption.cpp msgid "The thought of eating human flesh makes you feel sick." -msgstr "O pensamento de comer carne humana faz você se sentir doente." +msgstr "" #: src/consumption.cpp msgid "You still feel nauseous and will probably puke it all up again." -msgstr "Você ainda sente náuseas e provavelmente vomitará tudo de novo." +msgstr "" #: src/consumption.cpp msgid "Your stomach won't be happy (allergy)." -msgstr "Seu estômago não será feliz (alergia)." +msgstr "" #. ~ No, we don't eat "rotten" food. We eat properly aged food, like a normal #. person. @@ -176307,11 +157153,11 @@ msgstr "Seu estômago não será feliz (alergia)." #. character. #: src/consumption.cpp msgid "Your stomach won't be happy (not rotten enough)." -msgstr "Seu estômago não será feliz (não podre o suficiente)." +msgstr "" #: src/consumption.cpp msgid "You're full already and will be forcing yourself to eat." -msgstr "Você já está cheio e estará se forçando a comer." +msgstr "" #: src/consumption.cpp msgid "You're full already and will be forcing yourself to drink." @@ -176335,12 +157181,12 @@ msgstr "" #: src/consumption.cpp msgctxt "memorial_male" msgid "Began preparing for hibernation." -msgstr "Começou a se preparar para a hibernação." +msgstr "" #: src/consumption.cpp msgctxt "memorial_female" msgid "Began preparing for hibernation." -msgstr "Começou a se preparar para a hibernação." +msgstr "" #: src/consumption.cpp msgid "" @@ -176348,9 +157194,6 @@ msgid "" "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." msgstr "" -" Você começou a armazenar calorias e líquidos para a hibernação. Você tem a " -"sensação de que deve se preparar para a cama, só por precaução, mas ... está" -" com fome de novo e pode comer uma semana inteira de comida AGORA." #: src/consumption.cpp #, c-format @@ -176410,44 +157253,41 @@ msgstr "" #: src/consumption.cpp msgid "You feast upon the human flesh, and in doing so, devour their spirit." msgstr "" -" Você se banqueteia com a carne humana e, ao fazê-lo, devora seu espírito." #: src/consumption.cpp msgid "You feast upon the human flesh." -msgstr "Você se banqueteia com a carne humana." +msgstr "" #: src/consumption.cpp msgid "You consume the sacred human flesh." -msgstr "Você consome a carne humana sagrada." +msgstr "" #: src/consumption.cpp msgid "You indulge your shameful hunger." -msgstr "Você satisfaz sua fome vergonhosa." +msgstr "" #: src/consumption.cpp msgid "You greedily devour the taboo meat." -msgstr "Você devora avidamente a carne tabu." +msgstr "" #: src/consumption.cpp msgid "Meh. You've eaten worse." -msgstr "Meh Você comeu pior." +msgstr "" #: src/consumption.cpp msgid "" "This is probably going to count against you if there's still an afterlife." msgstr "" -" Isso provavelmente vai contar contra você se ainda houver vida após a " -"morte." #: src/consumption.cpp msgid "You feel horrible for eating a person." -msgstr "Você se sente horrível por comer uma pessoa." +msgstr "" #: src/consumption.cpp msgid "" "You try to ignore its mushy texture, but it leaves you with an awful " "aftertaste." -msgstr "Você tenta ignorar sua textura mole, mas deixa um sabor horrível." +msgstr "" #: src/consumption.cpp msgid "You can't taste much of anything with this cold." @@ -176459,119 +157299,115 @@ msgstr "" #: src/consumption.cpp msgid "Yuck! How can anybody eat this stuff?" -msgstr "Que nojo! Como alguém pode comer essas coisas?" +msgstr "" #: src/consumption.cpp msgid "Mmm, junk food." -msgstr "Mmm, junk food." +msgstr "" #: src/consumption.cpp msgid "When life's got you down, there's always sugar." -msgstr "Quando a vida te abaixa, sempre há açúcar." +msgstr "" #: src/consumption.cpp msgid "They may do what they must... you've already won." -msgstr "Eles podem fazer o que precisam ... você já ganhou." +msgstr "" #: src/consumption.cpp msgid "Your stomach begins gurgling and you feel bloated and ill." -msgstr "Seu estômago começa a gorgolejar e você se sente inchado e doente." +msgstr "" #: src/consumption.cpp msgid "You find the sweet taste of honey surprisingly palatable." -msgstr "Você encontra o doce sabor do mel surpreendentemente palatável." +msgstr "" #: src/consumption.cpp msgid "You feast upon the sweet honey." -msgstr "Você se banqueteia com o doce mel." +msgstr "" #: src/consumption.cpp msgid "The shadows are getting ever closer." -msgstr "As sombras estão cada vez mais próximas." +msgstr "" #: src/consumption.cpp msgid "You have a bad feeling about this." -msgstr "Você tem um mau pressentimento sobre isso." +msgstr "" #: src/consumption.cpp msgid "A powerful sense of dread comes over you." -msgstr "Um poderoso sentimento de pavor vem de você." +msgstr "" #: src/consumption.cpp msgid "Your skin starts crawling." -msgstr "Sua pele começa a rastejar." +msgstr "" #: src/consumption.cpp msgid "They're coming to get you." -msgstr "Eles estão vindo te pegar." +msgstr "" #: src/consumption.cpp msgid "This might've been a bad idea..." -msgstr "Isso pode ter sido uma má ideia ..." +msgstr "" #: src/consumption.cpp msgid "You've really done it this time, haven't you?" -msgstr "Você realmente fez isso desta vez, não foi?" +msgstr "" #: src/consumption.cpp msgid "You have to stay vigilant. They're always watching..." -msgstr "Você tem que ficar vigilante. Eles estão sempre assistindo ..." +msgstr "" #: src/consumption.cpp msgid "mistake mistake mistake mistake mistake" -msgstr "erro erro erro erro erro" +msgstr "" #: src/consumption.cpp msgid "Just gotta stay calm, and you'll make it through this." -msgstr "Só tem que ficar calmo e você vai passar por isso." +msgstr "" #: src/consumption.cpp msgid "You're starting to feel very jumpy." -msgstr "Você está começando a se sentir muito nervoso." +msgstr "" #: src/consumption.cpp msgid "Something is twitching at the edge of your vision." -msgstr "Algo está se contraindo na borda da sua visão." +msgstr "" #: src/consumption.cpp msgid "They know what you've done..." -msgstr "Eles sabem o que você fez ..." +msgstr "" #: src/consumption.cpp msgid "You're feeling even more paranoid than usual." -msgstr "Você está se sentindo ainda mais paranoica do que o normal." +msgstr "" #: src/consumption.cpp msgid "You gorge yourself, preparing to hibernate." -msgstr "Você se empanturra, preparando-se para hibernar." +msgstr "" #: src/consumption.cpp msgid "You feel stocked for a day or two. Got your bed all ready and secured?" msgstr "" -" Você se sente estocado por um dia ou dois. Tem sua cama toda pronta e " -"segura?" #: src/consumption.cpp msgid "" "Mmm. You can still fit some more in...but maybe you should get comfortable " "and sleep." msgstr "" -" Mmm Você ainda pode se encaixar um pouco mais ... mas talvez você deva " -"ficar confortável e dormir." #: src/consumption.cpp msgid "That filled a hole! Time for bed..." -msgstr "Isso encheu um buraco! Hora de dormir..." +msgstr "" #: src/consumption.cpp msgid "You feel as though you're going to split open! In a good way?" -msgstr "Você se sente como se estivesse indo se abrir! De um jeito bom?" +msgstr "" #. ~slimespawns have *small voices* which may be the Nice equivalent #. ~of the Rat King's ALL CAPS invective. Probably shared-brain telepathy. #: src/consumption.cpp msgid "hey, you look like me! let's work together!" -msgstr "Ei, você parece comigo! vamos trabalhar juntos!" +msgstr "" #: src/consumption.cpp #, c-format @@ -176585,11 +157421,11 @@ msgstr "" #: src/consumption.cpp msgid "Your internal power storage is fully powered." -msgstr "Seu armazenamento interno de energia está totalmente ligado." +msgstr "" #: src/consumption.cpp msgid "'s internal power storage is fully powered." -msgstr " O armazenamento interno de energia é totalmente alimentado." +msgstr "" #: src/consumption.cpp #, c-format @@ -176603,7 +157439,7 @@ msgstr "" #: src/consumption.cpp msgid "That is a LOT of plutonium. Are you sure you want that much?" -msgstr "Isso é muito plutônio. Tem certeza que quer tanto assim?" +msgstr "" #: src/consumption.cpp #, c-format @@ -176679,7 +157515,7 @@ msgstr "(perto)" #: src/craft_command.cpp msgid " (person & nearby)" -msgstr "(pessoa e perto)" +msgstr "" #: src/craft_command.cpp #, c-format @@ -176690,15 +157526,15 @@ msgstr "" #: src/craft_command.cpp msgid "Some components used previously are missing. Continue?" -msgstr "Alguns componentes usados anteriormente estão faltando. Continuar?" +msgstr "" #: src/craft_command.cpp msgid "Item(s): " -msgstr "Unid):" +msgstr "" #: src/craft_command.cpp msgid "Tool(s): " -msgstr "Ferramentas):" +msgstr "" #: src/crafting.cpp msgid "Your morale is too low to craft such a difficult thing..." @@ -176711,12 +157547,10 @@ msgstr "Você não consegue ver para fabricar!" #: src/crafting.cpp msgid "Overmap terrain building recipes are not implemented yet!" msgstr "" -" As receitas de construção de terrenos sobrepostos não estão implementadas " -"ainda!" #: src/crafting.cpp msgid "You can no longer see well enough to keep crafting." -msgstr "Você não pode mais enxergar bem o suficiente para continuar criando." +msgstr "" #: src/crafting.cpp #, c-format @@ -176731,7 +157565,7 @@ msgstr "" #: src/crafting.cpp msgid "You are too frustrated to continue and just give up." -msgstr "Você está muito frustrado para continuar e simplesmente desistir." +msgstr "" #: src/crafting.cpp msgid "You can't see well and are working slowly." @@ -176746,7 +157580,7 @@ msgstr "" #: src/crafting.cpp msgid "You can't focus and are working slowly." -msgstr "Você não pode se concentrar e está trabalhando devagar." +msgstr "" #: src/crafting.cpp msgid "Craft something first" @@ -176973,7 +157807,7 @@ msgstr "" #: src/crafting.cpp msgid "You cannot disassemble this." -msgstr "Você não pode desmontar isso." +msgstr "" #: src/crafting.cpp msgid "It's rotten, I'm not taking that apart." @@ -177054,7 +157888,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "NONCRAFT" -msgstr "NÃO ARQUITECTO" +msgstr "" #: src/crafting_gui.cpp msgid "Byproducts:" @@ -177091,16 +157925,12 @@ msgid "" "[E]: Describe, [F]ind, [R]eset, [m]ode, [s]how/hide, Re[L]ated, [*]Favorite," " [b]atch [?] keybindings" msgstr "" -" [E]: Descreva, [F] ind, [R] eset, [m] ode, [s] como / ocultar, Re [L] ated," -" [*] Favoritos, [b] atch [?] Keybindings" #: src/crafting_gui.cpp msgid "" "[E]: Describe, [F]ind, [m]ode, [s]how/hide, Re[L]ated, [*]Favorite, [b]atch " "[?] keybindings" msgstr "" -" [E]: Descreva, [F] ind, [m] ode, [s] como / ocultar, Re [L] atado, [*] " -"Favorito, [b] atch [?] Keybindings" #: src/crafting_gui.cpp #, c-format @@ -177143,15 +157973,15 @@ msgstr "" #: src/crafting_gui.cpp src/defense.cpp msgid "Easy" -msgstr "Fácil" +msgstr "" #: src/crafting_gui.cpp src/defense.cpp msgid "Hard" -msgstr "Difícil" +msgstr "" #: src/crafting_gui.cpp msgid "Impossible" -msgstr "Impossível" +msgstr "" #: src/crafting_gui.cpp msgid "" @@ -177174,20 +158004,20 @@ msgstr "Nada selecionado!" #: src/crafting_gui.cpp msgid "quality of resulting item" -msgstr " qualidade do item resultante" +msgstr "" #: src/crafting_gui.cpp msgid "full description of resulting item (slow)" -msgstr " descrição completa do item resultante (lento)" +msgstr "" #. ~ Example result description search term #: src/crafting_gui.cpp msgid "reach attack" -msgstr "alcançar ataque" +msgstr "" #: src/crafting_gui.cpp msgid "component required to craft" -msgstr " componente necessário para craft" +msgstr "" #: src/crafting_gui.cpp msgid "two by four" @@ -177195,31 +158025,31 @@ msgstr "" #: src/crafting_gui.cpp msgid "primary skill used to craft" -msgstr " habilidade primária usado para craft" +msgstr "" #: src/crafting_gui.cpp msgid "any skill used to craft" -msgstr " qualquer habilidade usado para craft" +msgstr "" #: src/crafting_gui.cpp msgid "quality required to craft" -msgstr " qualidade necessário para craft" +msgstr "" #: src/crafting_gui.cpp msgid "tool required to craft" -msgstr " ferramenta necessário para craft" +msgstr "" #: src/crafting_gui.cpp msgid "recipes which are hidden or not" -msgstr "receitas que são escondido ou não" +msgstr "" #: src/crafting_gui.cpp msgid "yes" -msgstr "sim" +msgstr "" #: src/crafting_gui.cpp msgid "recipes which are memorized or not" -msgstr "receitas que são memorizado ou não" +msgstr "" #: src/crafting_gui.cpp msgid "" @@ -177227,13 +158057,10 @@ msgid "" "\n" "Examples:\n" msgstr "" -" O padrão é pesquisar os nomes dos resultados. Alguns prefixos de caractere único podem ser usados com dois pontos (:) para pesquisar de outras maneiras. Filtros adicionais são separados por vírgulas (,). \n" -" \n" -" Exemplos: \n" #: src/crafting_gui.cpp msgid "shirt" -msgstr "camisa" +msgstr "" #: src/crafting_gui.cpp #, c-format @@ -177242,7 +158069,7 @@ msgstr "" #: src/crafting_gui.cpp msgid "name of resulting item" -msgstr " nome do item resultante" +msgstr "" #: src/crafting_gui.cpp #, c-format @@ -177255,8 +158082,6 @@ msgid "" "You can use arrow keys to go through search history\n" "\n" msgstr "" -" Você pode usar teclas de seta para passar pelo histórico de pesquisa \n" -" \n" #: src/crafting_gui.cpp src/newcharacter.cpp src/overmap_ui.cpp msgid "Search:" @@ -177264,28 +158089,28 @@ msgstr "Procurar:" #: src/crafting_gui.cpp msgid "RESULTS" -msgstr "RESULTADOS" +msgstr "" #: src/crafting_gui.cpp msgid "Related recipes:" -msgstr "Receitas relacionadas:" +msgstr "" #: src/crafting_gui.cpp #, c-format msgid "%s hidden" -msgstr "%s oculto" +msgstr "" #: src/crafting_gui.cpp msgid "can craft:" -msgstr "pode craft:" +msgstr "" #: src/crafting_gui.cpp msgid "too dark" -msgstr "muito escuro" +msgstr "" #: src/crafting_gui.cpp msgid "too sad" -msgstr "muito triste" +msgstr "" #: src/crafting_gui.cpp #, c-format @@ -177302,7 +158127,7 @@ msgstr "Fabricar em massa" #: src/creature.cpp msgid " forces you to the ground!" -msgstr " te força ao chão!" +msgstr "" #: src/creature.cpp #, c-format @@ -177326,35 +158151,35 @@ msgstr "" #: src/creature.cpp msgid "You avoid an incoming projectile!" -msgstr "Você evita um projétil de entrada!" +msgstr "" #: src/creature.cpp msgid " avoids an incoming projectile." -msgstr " evita um projétil de entrada." +msgstr "" #: src/creature.cpp msgid "Headshot!" -msgstr "Na cabeça!" +msgstr "" #: src/creature.cpp src/iuse.cpp src/melee.cpp msgid "Critical!" -msgstr "Crítico!" +msgstr "" #: src/creature.cpp msgid "Good hit!" -msgstr "Bom acerto!" +msgstr "" #: src/creature.cpp msgid "Grazing hit." -msgstr "Acertou raspando." +msgstr "" #: src/creature.cpp msgid "The shot misses!" -msgstr "O tiro erra!" +msgstr "" #: src/creature.cpp msgid "You miss!" -msgstr "Você erra!" +msgstr "" #. ~ 1$ - monster name, 2$ - character's bodypart or monster's skin/armor #: src/creature.cpp @@ -177371,12 +158196,12 @@ msgstr "" #. ~ "hit points", used in scrolling combat text #: src/creature.cpp src/melee.cpp msgid "hp" -msgstr "celular" +msgstr "" #: src/creature.cpp #, c-format msgid "You hit %s for %d damage." -msgstr "Você acerta %s com %d de dano." +msgstr "" #. ~ 1$ - shooter, 2$ - target #: src/creature.cpp @@ -177386,70 +158211,70 @@ msgstr "" #: src/creature.cpp msgid "Severe pain" -msgstr "Dor severa" +msgstr "" #: src/creature.cpp msgid "Intense pain" -msgstr "Dor intensa" +msgstr "" #: src/creature.cpp msgid "Unmanageable pain" -msgstr "Dor incontrolável" +msgstr "" #: src/creature.cpp msgid "Distressing pain" -msgstr "Dor angustiante" +msgstr "" #: src/creature.cpp msgid "Distracting pain" -msgstr "Dor distrativa" +msgstr "" #: src/creature.cpp msgid "Moderate pain" -msgstr "Dor moderada" +msgstr "" #: src/creature.cpp msgid "Mild pain" -msgstr "Dor suave" +msgstr "" #: src/creature.cpp msgid "Minimal pain" -msgstr "Dor mínima" +msgstr "" #: src/creature.cpp msgid "No pain" -msgstr "Sem dor" +msgstr "" #: src/creature.cpp msgid "Hostile" -msgstr "Hostil" +msgstr "" #: src/creature.cpp src/faction.cpp msgid "Neutral" -msgstr "Neutro" +msgstr "" #: src/creature.cpp msgid "Friendly" -msgstr "Amigável" +msgstr "" #: src/creature.cpp msgid "BUG: Behavior unnamed. (Creature::get_attitude_ui_data)" -msgstr "Erro: comportamento sem nome. (Criatura :: get_attitude_ui_data)" +msgstr "" #: src/damage.cpp msgctxt "damage type" msgid "true" -msgstr "verdade" +msgstr "" #: src/damage.cpp msgctxt "damage type" msgid "biological" -msgstr "biológico" +msgstr "" #: src/damage.cpp msgctxt "damage type" msgid "bash" -msgstr "bater" +msgstr "" #: src/damage.cpp msgctxt "damage type" @@ -177459,27 +158284,27 @@ msgstr "cortar" #: src/damage.cpp msgctxt "damage type" msgid "acid" -msgstr "ácido" +msgstr "" #: src/damage.cpp msgctxt "damage type" msgid "stab" -msgstr "apunhalar" +msgstr "" #: src/damage.cpp msgctxt "damage type" msgid "heat" -msgstr "aquecer" +msgstr "" #: src/damage.cpp msgctxt "damage type" msgid "cold" -msgstr "frio" +msgstr "" #: src/damage.cpp msgctxt "damage type" msgid "electric" -msgstr "elétrico" +msgstr "" #: src/debug.cpp #, c-format @@ -177488,48 +158313,43 @@ msgstr "" #: src/debug.cpp msgid "An error has occurred! Written below is the error report:" -msgstr "Ocorreu um erro! Escrito abaixo está o relatório de erro:" +msgstr "" #: src/debug.cpp msgid "Press space bar to continue the game." msgstr "" -" pressione barra de espaço para continuar o jogo." #: src/debug.cpp msgid "" "Press I (or i) to also ignore this" " particular message in the future." msgstr "" -" pressione Eu (ou Eu ) também " -"ignorar essa mensagem em particular no futuro." #: src/debug.cpp msgid "" "Press C (or c) to copy this " "message to the clipboard." msgstr "" -" pressione C (ou c ) para " -"copiar esta mensagem para a área de transferência." #: src/debug_menu.cpp msgid "Mutate" -msgstr "Mutate" +msgstr "" #: src/debug_menu.cpp msgid "Change all skills" -msgstr "Muda todas habilidades" +msgstr "" #: src/debug_menu.cpp msgid "Learn all melee styles" -msgstr "Aprende todos estilos de corpo a corpo" +msgstr "" #: src/debug_menu.cpp msgid "Unlock all recipes" -msgstr "Destrava todas receitas" +msgstr "" #: src/debug_menu.cpp msgid "Edit player/NPC" -msgstr "Editar player / NPC" +msgstr "" #: src/debug_menu.cpp msgid "Damage self" @@ -177537,7 +158357,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Set automove route" -msgstr "Definir rota automática" +msgstr "" #: src/debug_menu.cpp msgid "Learn all spells" @@ -177565,7 +158385,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Display hordes" -msgstr "Exibir hordas" +msgstr "" #: src/debug_menu.cpp msgid "Test item group" @@ -177577,11 +158397,11 @@ msgstr "" #: src/debug_menu.cpp msgid "Display weather" -msgstr "Exibir tempo" +msgstr "" #: src/debug_menu.cpp msgid "Display overmap scents" -msgstr "Exibir perfumes de excesso de mapa" +msgstr "" #: src/debug_menu.cpp msgid "Toggle display local scents" @@ -177597,23 +158417,23 @@ msgstr "" #: src/debug_menu.cpp msgid "Show mutation category levels" -msgstr "Mostrar níveis de categoria de mutação" +msgstr "" #: src/debug_menu.cpp msgid "Draw benchmark (X seconds)" -msgstr "Desenhe benchmark (X segundos)" +msgstr "" #: src/debug_menu.cpp msgid "Test trait group" -msgstr "Grupo de características de teste" +msgstr "" #: src/debug_menu.cpp msgid "Show debug message" -msgstr "Mostrar mensagem de depuração" +msgstr "" #: src/debug_menu.cpp msgid "Crash game (test crash handling)" -msgstr "Jogo de colisão (manipulação de falhas de teste)" +msgstr "" #: src/debug_menu.cpp msgid "Toggle NPC pathfinding on map" @@ -177649,7 +158469,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Spawn NPC" -msgstr "Spawn NPC" +msgstr "" #: src/debug_menu.cpp msgid "Spawn monster" @@ -177657,7 +158477,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Spawn a vehicle" -msgstr "Gerar um veículo" +msgstr "" #: src/debug_menu.cpp msgid "Spawn artifact" @@ -177673,19 +158493,19 @@ msgstr "" #: src/debug_menu.cpp msgid "Reveal map" -msgstr "Revele o mapa" +msgstr "" #: src/debug_menu.cpp msgid "Kill NPCs" -msgstr "Matar NPCs" +msgstr "" #: src/debug_menu.cpp msgid "Map editor" -msgstr "Editor de mapas" +msgstr "" #: src/debug_menu.cpp msgid "Change weather" -msgstr "Mudança de clima" +msgstr "" #: src/debug_menu.cpp msgid "Change wind direction" @@ -177697,15 +158517,15 @@ msgstr "" #: src/debug_menu.cpp msgid "Kill all monsters" -msgstr "Mate todos os monstros" +msgstr "" #: src/debug_menu.cpp msgid "Change time" -msgstr "Mudar o tempo" +msgstr "" #: src/debug_menu.cpp msgid "Overmap editor" -msgstr "Editor de mapas" +msgstr "" #: src/debug_menu.cpp msgid "Spawn map extra" @@ -177743,7 +158563,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Where is the desired overmap?" -msgstr "Onde está o overmap desejado?" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -177752,16 +158572,16 @@ msgstr "" #: src/debug_menu.cpp src/npctrade.cpp msgid "You" -msgstr "Você" +msgstr "" #: src/debug_menu.cpp src/newcharacter.cpp src/player_display.cpp #: src/player_display.cpp msgid "Female" -msgstr "Fêmea" +msgstr "" #: src/debug_menu.cpp src/newcharacter.cpp src/player_display.cpp msgid "Male" -msgstr "Masculino" +msgstr "" #: src/debug_menu.cpp msgid "no faction" @@ -177778,7 +158598,7 @@ msgstr "" #: src/debug_menu.cpp msgid "No destination." -msgstr "Sem destino." +msgstr "" #: src/debug_menu.cpp #, c-format @@ -177827,7 +158647,7 @@ msgstr "" #: src/debug_menu.cpp src/defense.cpp msgid "Needs:" -msgstr "Necessidades:" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -177836,35 +158656,35 @@ msgstr "" #: src/debug_menu.cpp msgid "Player" -msgstr "Jogador" +msgstr "" #: src/debug_menu.cpp msgid "Edit [N]ame" -msgstr "Editar [N] ame" +msgstr "" #: src/debug_menu.cpp msgid "Edit [s]kills" -msgstr "Editar [s] mata" +msgstr "" #: src/debug_menu.cpp msgid "Edit s[t]ats" -msgstr "Editar s [t] ats" +msgstr "" #: src/debug_menu.cpp msgid "Grant [i]tems" -msgstr "Grant [i] tems" +msgstr "" #: src/debug_menu.cpp msgid "[d]elete (all) items" -msgstr "[d] elete (todos) itens" +msgstr "" #: src/debug_menu.cpp msgid "[w]ear/[w]ield an item from player's inventory" -msgstr "[w] orelha / [w] campo um item do inventário do jogador" +msgstr "" #: src/debug_menu.cpp msgid "Set [h]it points" -msgstr "Definir [h] pontos" +msgstr "" #: src/debug_menu.cpp msgid "Set [S]tamina" @@ -177872,43 +158692,43 @@ msgstr "" #: src/debug_menu.cpp msgid "Set m[o]rale" -msgstr "Set m[o]rale" +msgstr "" #: src/debug_menu.cpp msgid "Cause [p]ain" -msgstr "Causa dor" +msgstr "" #: src/debug_menu.cpp msgid "Set he[a]lth" -msgstr "Defina ele [a] lth" +msgstr "" #: src/debug_menu.cpp msgid "Set [n]eeds" -msgstr "Definir [n] eeds" +msgstr "" #: src/debug_menu.cpp msgid "M[u]tate" -msgstr "M u tate" +msgstr "" #: src/debug_menu.cpp msgid "Status Window [@]" -msgstr "Janela de status [@]" +msgstr "" #: src/debug_menu.cpp msgid "t[e]leport" -msgstr "teleporte" +msgstr "" #: src/debug_menu.cpp msgid "Edit [M]issions (WARNING: Unstable!)" -msgstr "Editar [M] issions (AVISO: instável!)" +msgstr "" #: src/debug_menu.cpp msgid "Add [m]ission" -msgstr "Adicionar [m] ission" +msgstr "" #: src/debug_menu.cpp msgid "Randomize with [c]lass" -msgstr "Randomize com [c] lass" +msgstr "" #: src/debug_menu.cpp msgid "Set [A]ttitude" @@ -177920,19 +158740,19 @@ msgstr "" #: src/debug_menu.cpp msgid "Maximum strength" -msgstr "Força máxima" +msgstr "" #: src/debug_menu.cpp msgid "Maximum dexterity" -msgstr "Máxima destreza" +msgstr "" #: src/debug_menu.cpp msgid "Maximum intelligence" -msgstr "Inteligência máxima" +msgstr "" #: src/debug_menu.cpp msgid "Maximum perception" -msgstr "Percepção máxima" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -177941,27 +158761,27 @@ msgstr "" #: src/debug_menu.cpp msgid "Delete all items from the target?" -msgstr "Excluir todos os itens do alvo?" +msgstr "" #: src/debug_menu.cpp msgid "Make target equip" -msgstr "Faça o alvo equipar" +msgstr "" #: src/debug_menu.cpp msgid "Left arm" -msgstr "Braço esquerdo" +msgstr "" #: src/debug_menu.cpp msgid "Right arm" -msgstr "Braço direito" +msgstr "" #: src/debug_menu.cpp msgid "Left leg" -msgstr "Perna esquerda" +msgstr "" #: src/debug_menu.cpp msgid "Right leg" -msgstr "Perna direita" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178029,7 +158849,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Rename:" -msgstr "Renomear:" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178045,7 +158865,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Hunger" -msgstr "Fome" +msgstr "" #: src/debug_menu.cpp msgid "Stored kCal" @@ -178053,11 +158873,11 @@ msgstr "" #: src/debug_menu.cpp msgid "Thirst" -msgstr "Sede" +msgstr "" #: src/debug_menu.cpp msgid "Fatigue" -msgstr "Fadiga" +msgstr "" #: src/debug_menu.cpp msgid "Reset all basic needs" @@ -178095,15 +158915,15 @@ msgstr "" #: src/debug_menu.cpp src/panels.cpp msgid "Health" -msgstr "Saúde" +msgstr "" #: src/debug_menu.cpp msgid "Health modifier" -msgstr "Edição de saúde" +msgstr "" #: src/debug_menu.cpp msgid "Radiation" -msgstr "Radiação" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178112,11 +158932,11 @@ msgstr "" #: src/debug_menu.cpp msgid "Choose mission type" -msgstr "Escolha o tipo de missão" +msgstr "" #: src/debug_menu.cpp msgid "Choose new class" -msgstr "Escolha uma nova turma" +msgstr "" #: src/debug_menu.cpp msgid "Choose new attitude" @@ -178124,87 +158944,87 @@ msgstr "" #: src/debug_menu.cpp src/npc.cpp msgid "Unknown attitude" -msgstr "Atitude desconhecida" +msgstr "" #: src/debug_menu.cpp msgid "Yet to start" -msgstr "Ainda para começar" +msgstr "" #: src/debug_menu.cpp msgid "In progress" -msgstr "Em progresso" +msgstr "" #: src/debug_menu.cpp msgid "Success" -msgstr "Sucesso" +msgstr "" #: src/debug_menu.cpp msgid "Bugged" -msgstr "Grampeado" +msgstr "" #: src/debug_menu.cpp src/wish.cpp msgid "Type:" -msgstr "Tipo:" +msgstr "" #: src/debug_menu.cpp msgid " Status:" -msgstr "Status:" +msgstr "" #: src/debug_menu.cpp msgid " ID:" -msgstr "IDENTIDADE:" +msgstr "" #: src/debug_menu.cpp msgid " NPC ID:" -msgstr "ID do NPC:" +msgstr "" #: src/debug_menu.cpp msgid " Target:" -msgstr "Alvo:" +msgstr "" #: src/debug_menu.cpp msgid "Player ID:" -msgstr "ID do jogador:" +msgstr "" #: src/debug_menu.cpp msgid "Select mission to edit" -msgstr "Selecione a missão para editar" +msgstr "" #: src/debug_menu.cpp msgid "Currently assigned missions:" -msgstr "Missões atualmente atribuídas:" +msgstr "" #: src/debug_menu.cpp msgid "Not assigned missions:" -msgstr "Missões não atribuídas:" +msgstr "" #: src/debug_menu.cpp msgid "Active missions:" -msgstr "Missões ativas:" +msgstr "" #: src/debug_menu.cpp msgid "Completed missions:" -msgstr "Missões concluídas:" +msgstr "" #: src/debug_menu.cpp msgid "Failed missions:" -msgstr "Missões falhadas:" +msgstr "" #: src/debug_menu.cpp msgid "Removing from active_missions" -msgstr "Removendo de active_missions" +msgstr "" #: src/debug_menu.cpp msgid "Removing from completed_missions" -msgstr "Removendo de completed_missions" +msgstr "" #: src/debug_menu.cpp msgid "Removing from failed_missions" -msgstr "Removendo de failed_missions" +msgstr "" #: src/debug_menu.cpp msgid "Unsetting active mission" -msgstr "Missão ativa desatenta" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178218,15 +159038,15 @@ msgstr "" #: src/debug_menu.cpp msgid "Fail mission" -msgstr "Missão de falha" +msgstr "" #: src/debug_menu.cpp msgid "Mark as complete" -msgstr "Marcar como completo" +msgstr "" #: src/debug_menu.cpp msgid "Remove mission without proper cleanup" -msgstr "Remova a missão sem a devida limpeza" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178235,7 +159055,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Current overmap revealed." -msgstr "O mapa atual foi revelado." +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178262,7 +159082,7 @@ msgstr "" #: src/debug_menu.cpp msgid "NPCs are NOT going to spawn." -msgstr "NPCs não vão desovar." +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178310,7 +159130,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Choose vehicle to spawn" -msgstr "Escolha o veículo para desovar" +msgstr "" #. ~ Menu entry in vehicle wish menu: 1st string: displayed name, 2nd string: #. internal name of vehicle @@ -178321,36 +159141,35 @@ msgstr "" #: src/debug_menu.cpp msgid "Martial arts debug." -msgstr "Depuração de artes marciais." +msgstr "" #: src/debug_menu.cpp msgid "Your eyes blink rapidly as knowledge floods your brain." msgstr "" -" Seus olhos piscam rapidamente enquanto o conhecimento inunda seu cérebro." #: src/debug_menu.cpp msgid "You now know a lot more than just 10 styles of kung fu." -msgstr "Agora você sabe muito mais do que apenas 10 estilos de kung fu." +msgstr "" #: src/debug_menu.cpp msgid "Recipe debug." -msgstr "Depuração de receita." +msgstr "" #: src/debug_menu.cpp msgid "You know how to craft that now." -msgstr "Você sabe como criar isso agora." +msgstr "" #: src/debug_menu.cpp msgid "Select new weather pattern:" -msgstr "Selecione o novo padrão climático:" +msgstr "" #: src/debug_menu.cpp msgid "Disable weather forcing" -msgstr "Desativar o tempo forçando" +msgstr "" #: src/debug_menu.cpp msgid "Keep normal weather patterns" -msgstr "Mantenha padrões climáticos normais" +msgstr "" #: src/debug_menu.cpp msgid "Select new wind direction:" @@ -178383,27 +159202,27 @@ msgstr "" #: src/debug_menu.cpp msgid "This binary was not compiled with tiles support." -msgstr "Este binário não foi compilado com suporte a mosaicos." +msgstr "" #: src/debug_menu.cpp msgid "year" -msgstr "ano" +msgstr "" #: src/debug_menu.cpp msgid "season" -msgstr "temporada" +msgstr "" #: src/debug_menu.cpp msgid "day" -msgstr "dia" +msgstr "" #: src/debug_menu.cpp msgid "hour" -msgstr "hora" +msgstr "" #: src/debug_menu.cpp msgid "minute" -msgstr "minuto" +msgstr "" #: src/debug_menu.cpp src/martialarts.cpp src/martialarts.cpp msgid "turn" @@ -178413,23 +159232,23 @@ msgstr[1] "" #: src/debug_menu.cpp msgid "Set year to?" -msgstr "por sua vez, definir o ano para?" +msgstr "" #: src/debug_menu.cpp msgid "Set season to? (0 = spring)" -msgstr "Definir temporada para? (0 = primavera)" +msgstr "" #: src/debug_menu.cpp msgid "Set days to?" -msgstr "Definir dias para?" +msgstr "" #: src/debug_menu.cpp msgid "Set hour to?" -msgstr "Definir hora para?" +msgstr "" #: src/debug_menu.cpp msgid "Set minute to?" -msgstr "Definir minuto para?" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -178438,15 +159257,13 @@ msgstr "" #: src/debug_menu.cpp msgid "Enter benchmark length (in milliseconds):" -msgstr "Digite o comprimento do benchmark (em milissegundos):" +msgstr "" #: src/debug_menu.cpp msgid "" "Quit without saving? This may cause issues such as duplicated or missing " "items and vehicles!" msgstr "" -" Saia sem salvar? Isso pode causar problemas, como itens e veículos " -"duplicados ou ausentes!" #: src/debug_menu.cpp #, c-format @@ -178512,15 +159329,15 @@ msgstr "" #: src/defense.cpp msgid "A caravan approaches! Press spacebar..." -msgstr "Uma caravana se aproxima! Pressione a barra de espaço..." +msgstr "" #: src/defense.cpp msgid "You don't need to sleep!" -msgstr "Você não precisa dormir!" +msgstr "" #: src/defense.cpp msgid "You cannot save in defense mode!" -msgstr "Você não pode salvar no modo de defesa!" +msgstr "" #: src/defense.cpp #, c-format @@ -178530,12 +159347,12 @@ msgstr "" #: src/defense.cpp #, c-format msgid "You managed to survive through wave %d!" -msgstr "Você sobreviveu à onda %d!" +msgstr "" #: src/defense.cpp #, c-format msgid "Please wait as the map generates [%2d%%]" -msgstr "Por favor aguarde enquanto o mapa é gerado [%2d%%]" +msgstr "" #: src/defense.cpp msgid "Previous option" @@ -178547,7 +159364,7 @@ msgstr "Próxima opção" #: src/defense.cpp msgid "Cycle option value" -msgstr "Valor da opção de ciclo" +msgstr "" #: src/defense.cpp msgid "Toggle option" @@ -178567,7 +159384,7 @@ msgstr "Zumbies" #: src/defense.cpp msgid "Triffids" -msgstr "Triffids" +msgstr "" #: src/defense.cpp msgid "Robots" @@ -178575,7 +159392,7 @@ msgstr "Robôs" #: src/defense.cpp msgid "Subspace" -msgstr "Subespaço" +msgstr "" #: src/defense.cpp src/handle_action.cpp msgid "Food" @@ -178675,23 +159492,23 @@ msgstr "Médio" #: src/defense.cpp msgid "Shaun of the Dead" -msgstr "Shaun dos Mortos" +msgstr "" #: src/defense.cpp msgid "Dawn of the Dead" -msgstr "Madrugada dos Mortos" +msgstr "" #: src/defense.cpp msgid "Eight-Legged Freaks" -msgstr "Oito perninhas de pernas" +msgstr "" #: src/defense.cpp msgid "Day of the Triffids" -msgstr "Dia dos Triffids" +msgstr "" #: src/defense.cpp msgid "Skynet" -msgstr "Skynet" +msgstr "" #: src/defense.cpp msgid "The Call of Cthulhu" @@ -178703,39 +159520,39 @@ msgstr "Um jogo personalizado." #: src/defense.cpp msgid "Easy monsters and lots of money." -msgstr "Monstros fáceis e muito dinheiro." +msgstr "" #: src/defense.cpp msgid "Harder monsters. You have to eat." -msgstr "Monstros mais duros. Você tem que comer." +msgstr "" #: src/defense.cpp msgid "All monsters. You have to eat and drink." -msgstr "Todos os monstros. Você tem que comer e beber." +msgstr "" #: src/defense.cpp msgid "Defend a bar against classic zombies. Easy and fun." -msgstr "Defenda um bar contra zumbis clássicos. Fácil e divertido." +msgstr "" #: src/defense.cpp msgid "Classic zombies. Slower and more realistic." -msgstr "Zumbis clássicos. Mais devagar e mais realista." +msgstr "" #: src/defense.cpp msgid "Fast-paced spider-fighting fun!" -msgstr "Divertida luta de aranha em ritmo acelerado!" +msgstr "" #: src/defense.cpp msgid "Defend your mansion against the triffids." -msgstr "Defenda sua mansão contra os triffids." +msgstr "" #: src/defense.cpp msgid "The robots have decided that humans are the enemy!" -msgstr "Os robôs decidiram que os humanos são o inimigo!" +msgstr "" #: src/defense.cpp msgid "Ward off legions of eldritch horrors." -msgstr "Evite legiões de horrores horríveis." +msgstr "" #: src/defense.cpp msgid "Public Works" @@ -178751,23 +159568,23 @@ msgstr "Bar" #: src/defense.cpp msgid "One entrance and many rooms. Some medical supplies." -msgstr "Uma entrada e muitos quartos. Alguns suprimentos médicos." +msgstr "" #: src/defense.cpp msgid "Easily fortifiable building. Lots of useful tools." -msgstr "Construção facilmente fortificável. Muitas ferramentas úteis." +msgstr "" #: src/defense.cpp msgid "A large building with various supplies." -msgstr "Um grande edifício com vários fornecimentos." +msgstr "" #: src/defense.cpp msgid "A small building with plenty of alcohol." -msgstr "Um pequeno prédio com muito álcool." +msgstr "" #: src/defense.cpp msgid "A large house with many rooms." -msgstr "Uma casa grande com muitos quartos." +msgstr "" #: src/defense.cpp #, c-format @@ -178781,11 +159598,11 @@ msgstr "" #: src/defense.cpp msgid "Really buy nothing?" -msgstr "Realmente não compre nada?" +msgstr "" #: src/defense.cpp msgid "You can't afford those items!" -msgstr "Você não pode pagar por esses itens!" +msgstr "" #: src/defense.cpp #, c-format @@ -178796,44 +159613,44 @@ msgstr[1] "" #: src/defense.cpp msgid "You drop some items." -msgstr "Você solta alguns itens." +msgstr "" #: src/defense.cpp msgid "Melee Weapons" -msgstr "Armas corpo a corpo" +msgstr "" #: src/defense.cpp msgid "Ranged Weapons" -msgstr "Armas de longo alcance" +msgstr "" #: src/defense.cpp msgid "Ammuniton" -msgstr "Munição" +msgstr "" #: src/defense.cpp msgid "Crafting & Construction Components" -msgstr "Componentes de construção e construção" +msgstr "" #: src/defense.cpp msgid "Food & Drugs" -msgstr "Comida & Drogas" +msgstr "" #: src/defense.cpp msgid "Clothing & Armor" -msgstr "Roupa & Armadura" +msgstr "" #: src/defense.cpp msgid "Tools, Traps & Grenades" -msgstr "Ferramentas, Armadilhas & Granadas" +msgstr "" #: src/defense.cpp msgid "Press ? for help." -msgstr "Pressione ? para ajuda." +msgstr "" #: src/defense.cpp #, c-format msgid "Your Cash: %s" -msgstr "Seu Dinheiro: %s" +msgstr "" #: src/defense.cpp #, c-format @@ -178843,17 +159660,17 @@ msgstr "" #: src/defense.cpp #, c-format msgid "Wave %d: " -msgstr "Onda %d: " +msgstr "" #: src/defense.cpp #, c-format msgid "Invasion of the %s!" -msgstr "Invasão de %s!" +msgstr "" #: src/defense.cpp #, c-format msgid "Attack of the %s!" -msgstr "Ataque de %s!" +msgstr "" #: src/defense.cpp #, c-format @@ -178863,12 +159680,12 @@ msgstr "" #: src/defense.cpp #, c-format msgid "%s from Hell!" -msgstr "%s do Inferno!" +msgstr "" #: src/defense.cpp #, c-format msgid "Beware! %s!" -msgstr "Cuidado! %s!" +msgstr "" #: src/defense.cpp #, c-format @@ -178890,28 +159707,24 @@ msgid "" "c to describe creatures, f to describe furniture, t to describe terrain, " "Esc/Enter to close." msgstr "" -" c para descrever criaturas, f para descrever móveis, t para descrever " -"terreno, Esc / Enter para fechar." #: src/descriptions.cpp msgid "You do not see any creature here." -msgstr "Você não vê nenhuma criatura aqui." +msgstr "" #: src/descriptions.cpp msgid "You do not see any furniture here." -msgstr "Você não vê nenhum móvel aqui." +msgstr "" #: src/descriptions.cpp msgid "You can't see the terrain here." -msgstr "Você não pode ver o terreno aqui." +msgstr "" #: src/descriptions.cpp msgid "" "\n" "Sign: ???" msgstr "" -"\n" -"Inscreva: ???" #: src/descriptions.cpp #, c-format @@ -178919,76 +159732,74 @@ msgid "" "\n" "Sign: %s" msgstr "" -"\n" -"Aviso: %s" #: src/descriptions.cpp src/iexamine.cpp #, c-format msgid "That is a %s." -msgstr "Isto é um(a) %s." +msgstr "" #: src/descriptions.cpp msgid "You could harvest the following things from it:" -msgstr "Você pode obter as seguintes coisas disso:" +msgstr "" #: src/dialogue_win.cpp #, c-format msgid "Dialogue: %s" -msgstr "Diálogo: %s" +msgstr "" #: src/dialogue_win.cpp msgid "Your response:" -msgstr "Sua resposta:" +msgstr "" #: src/dialogue_win.cpp msgid "Shift+L: Look at" -msgstr "Shift + L: olhe para" +msgstr "" #: src/dialogue_win.cpp msgid "Shift+S: Size up stats" -msgstr "Shift + S: dimensiona as estatísticas" +msgstr "" #: src/dialogue_win.cpp msgid "Shift+Y: Yell" -msgstr "Shift + Y: grito" +msgstr "" #: src/dialogue_win.cpp msgid "Shift+O: Check opinion" -msgstr "Shift + O: verifique a opinião" +msgstr "" #: src/dump.cpp msgid "Loading content packs" -msgstr "Carregando pacotes de conteúdo" +msgstr "" #: src/editmap.cpp msgctxt "item manipulation debug menu entry" msgid "rehash" -msgstr "reescar" +msgstr "" #: src/editmap.cpp msgctxt "item manipulation debug menu entry" msgid "edit" -msgstr "editar" +msgstr "" #: src/editmap.cpp msgctxt "item manipulation debug menu entry" msgid "dump to save/jtest-*.txt" -msgstr "despejo para salvar / jtest - *. txt" +msgstr "" #: src/editmap.cpp msgctxt "map editor" msgid "[t]rap, [f]ield, [HJKL] move++, [v] showall" -msgstr "[t] rap, [f] ield, [HJKL] move ++, [v] showall" +msgstr "" #: src/editmap.cpp msgctxt "map editor" msgid "[g] terrain/furn, [o] mapgen, [i]tems, [q]uit" -msgstr "[g] terreno / furn, [o] mapgen, [i] tems, [q] uit" +msgstr "" #: src/editmap.cpp msgctxt "map editor state" msgid "Looking around" -msgstr "Olhando em volta" +msgstr "" #: src/editmap.cpp #, c-format @@ -179032,15 +159843,15 @@ msgstr "" #: src/editmap.cpp msgid " [vehicle]" -msgstr "[veículo]" +msgstr "" #: src/editmap.cpp msgid " [indoors]" -msgstr "[dentro de casa]" +msgstr "" #: src/editmap.cpp msgid " [roof]" -msgstr "[cobertura]" +msgstr "" #: src/editmap.cpp #, c-format @@ -179086,26 +159897,26 @@ msgstr "" #: src/editmap.cpp msgid "[indoors] " -msgstr "[dentro de casa]" +msgstr "" #: src/editmap.cpp msgid "[roof] " -msgstr "[cobertura]" +msgstr "" #: src/editmap.cpp msgctxt "Map editor: terrain/furniture shortkeys" msgid "[s/tab] shape select, [m]ove, [<>^v] select" -msgstr "[s / tab] forma selecione, [m] ove, [<> ^ v] selecione" +msgstr "" #: src/editmap.cpp msgctxt "Map editor: terrain/furniture shortkeys" msgid "[enter] change, [g] change/quit, [q]uit, [v] showall" -msgstr "[enter] mudar, [g] mudar / sair, [q] uit, [v] showall" +msgstr "" #: src/editmap.cpp msgctxt "Map editor: terrain/furniture editing menu" msgid "Terrain / Furniture" -msgstr "Terreno / Mobiliário" +msgstr "" #: src/editmap.cpp msgctxt "Map editor: Field effects shortkeys" @@ -179115,36 +159926,36 @@ msgstr "" #: src/editmap.cpp msgctxt "Map editor: Field effects shortkeys" msgid "[enter] edit, [q]uit, [v] showall" -msgstr "[enter] editar, [q] uit, [v] showall" +msgstr "" #: src/editmap.cpp msgctxt "Map editor: Editing field effects" msgid "Field effects" -msgstr "Efeitos de campo" +msgstr "" #: src/editmap.cpp msgctxt "map editor: used to describe a clean field (e.g. without blood)" msgid "-clear-" -msgstr "-Claro-" +msgstr "" #: src/editmap.cpp msgctxt "map editor: traps shortkeys" msgid "[s/tab] shape select, [m]ove, [v] showall" -msgstr "[s / tab] forma de seleção, [m] ove, [v] showall" +msgstr "" #: src/editmap.cpp msgctxt "map editor: traps shortkeys" msgid "[enter] change, [t] change/quit, [q]uit" -msgstr "[enter] mudar, [t] alterar / sair, [q] uit" +msgstr "" #: src/editmap.cpp msgctxt "map editor: traps editing" msgid "Traps" -msgstr "Armadilhas" +msgstr "" #: src/editmap.cpp msgid "-clear-" -msgstr "-Claro-" +msgstr "" #. ~ trap editor list entry. 1st string is display name, 2nd string is #. internal name of trap @@ -179155,7 +159966,7 @@ msgstr "" #: src/editmap.cpp msgid "Add item" -msgstr "Adicionar Item" +msgstr "" #: src/editmap.cpp #, c-format @@ -179178,94 +159989,94 @@ msgstr "" #: src/editmap.cpp msgctxt "item manipulation debug menu entry" msgid "-[ light emission ]-" -msgstr "- [emissão de luz] -" +msgstr "" #: src/editmap.cpp msgctxt "item manipulation debug menu entry" msgid "savetest" -msgstr "savetest" +msgstr "" #: src/editmap.cpp msgctxt "item manipulation debug menu entry for adding an item on a tile" msgid "Add item" -msgstr "Adicionar Item" +msgstr "" #: src/editmap.cpp msgid "[s] resize, [y] swap" -msgstr "[s] redimensionar, [y] trocar" +msgstr "" #: src/editmap.cpp msgid "[m]move, [s]hape, [y] swap, [z] to start" -msgstr "[m] move, [s] hape, [y] swap, [z] para iniciar" +msgstr "" #: src/editmap.cpp msgid "[enter] accept, [q] abort, [v] showall" -msgstr "[enter] aceitar, [q] anular, [v] mostrar" +msgstr "" #: src/editmap.cpp msgid "Moving selection" -msgstr "Seleção em movimento" +msgstr "" #: src/editmap.cpp msgid "Resizing selection" -msgstr "Redimensionando a seleção" +msgstr "" #: src/editmap.cpp msgid "Selection type" -msgstr "Tipo de seleção" +msgstr "" #: src/editmap.cpp msgctxt "shape" msgid "Rectangle" -msgstr "Retângulo" +msgstr "" #: src/editmap.cpp msgctxt "shape" msgid "Filled Rectangle" -msgstr "Retângulo preenchido" +msgstr "" #: src/editmap.cpp msgctxt "shape" msgid "Line" -msgstr "Linha" +msgstr "" #: src/editmap.cpp msgctxt "shape" msgid "Filled Circle" -msgstr "Círculo Cheio" +msgstr "" #: src/editmap.cpp msgctxt "shape" msgid "Point" -msgstr "Ponto" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "Regenerate" -msgstr "Regenerado" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "Rotate" -msgstr "Girar" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "Apply" -msgstr "Aplique" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "Change Overmap (Doesn't Apply)" -msgstr "Alterar o mapa de acesso (não se aplica)" +msgstr "" #: src/editmap.cpp msgid "[pgup/pgdn]: prev/next oter type" -msgstr "[pgup / pgdn]: prev / next oter type" +msgstr "" #: src/editmap.cpp msgid "[up/dn] select, [enter] accept, [q] abort" -msgstr "[up / dn] selecionar, [enter] aceitar, [q] anular" +msgstr "" #: src/editmap.cpp #, c-format @@ -179274,133 +160085,119 @@ msgstr "" #: src/editmap.cpp msgid "Your mechanic could not find a vehicle at the garage." -msgstr "Seu mecânico não conseguiu encontrar um veículo na garagem." +msgstr "" #: src/editmap.cpp msgid "Select the Vehicle" -msgstr "Selecione o veículo" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "[enter] accept, [q] abort" -msgstr "[enter] aceitar, [q] anular" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "Mapgen: Moving target" -msgstr "Mapgen: Mover em movimento" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "[m]ove" -msgstr "[mover" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "[enter] change, [q]uit" -msgstr "[entrar] mudar, [q] desligado" +msgstr "" #: src/editmap.cpp msgctxt "map generator" msgid "Mapgen stamp" -msgstr "Carimbo Mapgen" +msgstr "" #: src/effect.cpp msgid "" "The scariest thing in the world would be... if all the air in the world " "turned to WOOD!" msgstr "" -" A coisa mais assustadora do mundo seria ... se todo o ar do mundo se " -"transformasse em MADEIRA!" #: src/effect.cpp msgid "" "Could Jesus microwave a burrito so hot, that he himself couldn't eat it?" msgstr "" -" Jesus poderia colocar um burrito em microondas tão quente que ele mesmo não" -" poderia comê-lo?" #: src/effect.cpp msgid "Science is all metaphor." -msgstr "A ciência é toda metáfora." +msgstr "" #: src/effect.cpp msgid "Science is a liar sometimes." -msgstr "A ciência é mentirosa às vezes." +msgstr "" #: src/effect.cpp msgid "Science is... wait, what was I talking about again?" -msgstr "A ciência é ... espere, o que eu estava falando de novo?" +msgstr "" #: src/effect.cpp msgid "" "Behind every good man there is a woman, and that woman was Martha " "Washington, man." msgstr "" -" Atrás de todo homem bom existe uma mulher, e essa mulher era Martha " -"Washington, cara." #: src/effect.cpp msgid "" "Every day, George would come home, and she would have a big fat bowl waiting" " for him when he came in the door, man." msgstr "" -" Todos os dias, George voltava para casa, e ela teria uma grande tigela " -"gorda esperando por ele quando ele entrasse pela porta, cara." #: src/effect.cpp msgid "She was a hip, hip, hip lady, man." -msgstr "Ela era uma dama de quadril, quadril e homem." +msgstr "" #: src/effect.cpp msgid "You ever see the back of a twenty dollar bill... on weed?" msgstr "" -" Você já viu a parte de trás de uma nota de vinte dólares ... em maconha?" #: src/effect.cpp msgid "" "Oh, there's some crazy shit, man. There's a dude in the bushes. Has he got" " a gun? I dunno!" msgstr "" -" Ah, tem alguma coisa louca, cara. Tem um cara nos arbustos. Ele tem uma " -"arma? Não sei!" #: src/effect.cpp msgid "RED TEAM GO, RED TEAM GO!" -msgstr "RED TEAM GO, RED TEAM GO!" +msgstr "" #: src/effect.cpp msgid "You have a sudden urge to flip your bible open to Genesis 1:29..." msgstr "" -"Você tem um desejo repentino de abrir sua Bíblia para Gênesis 1:29 ..." #: src/effect.cpp msgid "That rug really tied the room together..." -msgstr "Esse tapete realmente amarrou o quarto juntos..." +msgstr "" #: src/effect.cpp msgid "I used to do drugs... I still do, but I used to, too." -msgstr "Eu costumava usar drogas ... Eu ainda faço, mas eu também." +msgstr "" #: src/effect.cpp msgid "The herb reveals you to yourself." -msgstr "A erva revela a você mesmo." +msgstr "" #: src/effect.cpp msgid "" "Okay, like, the scariest thing in the world would be... if like you went to " "grab something and it wasn't there!" msgstr "" -" Ok, tipo, a coisa mais assustadora do mundo seria ... se você fosse pegar " -"algo e não estivesse lá!" #: src/effect.cpp msgid "They call them fingers, but I never see them fing." -msgstr "Eles chamam de dedos, mas eu nunca os vejo." +msgstr "" #: src/effect.cpp msgid "... oh, there they go." -msgstr "... ai eles vão." +msgstr "" #: src/effect.cpp msgid "" @@ -179408,65 +160205,58 @@ msgid "" "vibration, and we are all one consciousness experiencing itself " "subjectively." msgstr "" -" De repente, você percebe que toda a matéria é apenas energia condensada a " -"uma vibração lenta, e somos todos uma consciência experimentando a si mesma " -"subjetivamente." #: src/effect.cpp msgid "I usually only smoke in the late evening." -msgstr "Eu costumo fumar apenas no final da noite." +msgstr "" #: src/effect.cpp msgid "" "Oh, occasionally the early evening, but usually the late evening, or the " "mid-evening." msgstr "" -" Oh, ocasionalmente no início da noite, mas geralmente no final da tarde ou " -"no meio da noite." #: src/effect.cpp msgid "Just the early evening, mid-evening and late evening." -msgstr "Apenas no início da noite, no meio da noite e tarde da noite." +msgstr "" #: src/effect.cpp msgid "" "Occasionally, early afternoon, early mid-afternoon, or perhaps the late mid-" "afternoon." msgstr "" -" Ocasionalmente, no início da tarde, no meio da tarde, ou talvez no meio da " -"tarde." #: src/effect.cpp msgid "Oh, sometimes the early-mid-late-early-morning." -msgstr "Oh, às vezes o começo da madrugada." +msgstr "" #: src/effect.cpp msgid "...But never at dusk." -msgstr "... Mas nunca ao anoitecer." +msgstr "" #: src/effect.cpp msgid "Dave's not here, man." -msgstr "Dave não está aqui, cara." +msgstr "" #: src/effect.cpp msgid "Man, a cheeseburger sounds SO awesome right now." -msgstr "Cara, um cheeseburger soa tão incrível agora." +msgstr "" #: src/effect.cpp msgid "Eh... maybe not." -msgstr "Eh ... talvez não." +msgstr "" #: src/effect.cpp msgid "I guess, maybe, without the cheese... yeah." -msgstr "Eu acho que, talvez, sem o queijo ... sim." +msgstr "" #: src/effect.cpp msgid "Walkin' down the hall, by myself, smokin' a j with fifty elves." -msgstr "Andando pelo corredor, sozinho, fumando cinquenta elfos." +msgstr "" #: src/effect.cpp msgid "That weed was the shiz-nittlebam snip-snap-sack." -msgstr "Aquela erva era o saco de engasgar de shiz-nittlebam." +msgstr "" #: src/effect.cpp #, c-format @@ -179520,15 +160310,15 @@ msgstr "Velocidade %d; " #: src/effect.cpp msgid "pain" -msgstr "dor" +msgstr "" #: src/effect.cpp src/magic.cpp msgid "fatigue" -msgstr "fadiga" +msgstr "" #: src/effect.cpp msgid "stamina recovery" -msgstr "recuperação de energia" +msgstr "" #: src/effect.cpp msgid "thirst" @@ -179536,7 +160326,7 @@ msgstr "sede" #: src/effect.cpp msgid "quench" -msgstr "matou a sede" +msgstr "" #: src/effect.cpp msgid "hunger" @@ -179544,181 +160334,181 @@ msgstr "fome" #: src/effect.cpp msgid "sate" -msgstr "saciado" +msgstr "" #: src/effect.cpp msgid "sleepiness" -msgstr "sonolência" +msgstr "" #: src/effect.cpp msgid "rest" -msgstr "descansado" +msgstr "" #: src/effect.cpp msgid "coughing" -msgstr "tossindo" +msgstr "" #: src/effect.cpp msgid "vomiting" -msgstr "vomitando" +msgstr "" #: src/effect.cpp msgid "blackouts" -msgstr "apagões" +msgstr "" #: src/effect.cpp msgid "Const: " -msgstr "Const:" +msgstr "" #: src/effect.cpp msgid "Freq: " -msgstr "Frequencia:" +msgstr "" #: src/effect.cpp msgid "Unfreq: " -msgstr "Unfreq:" +msgstr "" #: src/effect.cpp msgid "Rare: " -msgstr "Raro: " +msgstr "" #: src/effect.cpp msgid "very poor" -msgstr "muito pobre" +msgstr "" #: src/effect.cpp msgid "poor" -msgstr "pobre" +msgstr "" #: src/effect.cpp msgid "average" -msgstr "mediano" +msgstr "" #: src/effect.cpp src/iuse.cpp msgid "good" -msgstr "bom" +msgstr "" #: src/effect.cpp msgid "great" -msgstr "ótimo" +msgstr "" #: src/effect.cpp msgid "very good" -msgstr "muito bom" +msgstr "" #: src/effect.cpp msgid "outstanding" -msgstr "espetacular" +msgstr "" #: src/effect.cpp msgid "perfect" -msgstr "perfeito" +msgstr "" #: src/event.cpp msgctxt "memorial_male" msgid "Became wanted by the police!" -msgstr "Tornou-se procurado pela polícia!" +msgstr "" #: src/event.cpp msgctxt "memorial_female" msgid "Became wanted by the police!" -msgstr "Tornou-se procurado pela polícia!" +msgstr "" #: src/event.cpp msgctxt "memorial_male" msgid "Drew the attention of more dark wyrms!" -msgstr "Chamou a atenção de mais wyrms escuros!" +msgstr "" #: src/event.cpp msgctxt "memorial_female" msgid "Drew the attention of more dark wyrms!" -msgstr "Chamou a atenção de mais wyrms escuros!" +msgstr "" #: src/event.cpp msgid "a tortured scream!" -msgstr "um grito torturado!" +msgstr "" #: src/event.cpp msgid "The eye you're carrying lets out a tortured scream!" -msgstr "O olho que você está carregando solta um grito torturado!" +msgstr "" #: src/event.cpp msgctxt "memorial_male" msgid "Angered a group of amigara horrors!" -msgstr "Angered um grupo de horrores amigara!" +msgstr "" #: src/event.cpp msgctxt "memorial_female" msgid "Angered a group of amigara horrors!" -msgstr "Angered um grupo de horrores amigara!" +msgstr "" #: src/event.cpp msgctxt "memorial_male" msgid "Destroyed a triffid grove." -msgstr "Destruiu um bosque triffid." +msgstr "" #: src/event.cpp msgctxt "memorial_female" msgid "Destroyed a triffid grove." -msgstr "Destruiu um bosque triffid." +msgstr "" #: src/event.cpp msgctxt "memorial_male" msgid "Opened a strange temple." -msgstr "Abriu um templo estranho." +msgstr "" #: src/event.cpp msgctxt "memorial_female" msgid "Opened a strange temple." -msgstr "Abriu um templo estranho." +msgstr "" #: src/event.cpp msgid "The nearby grates open to reveal a staircase!" -msgstr "As grades próximas se abrem para revelar uma escada!" +msgstr "" #: src/event.cpp msgid "Water quickly floods up to your knees." -msgstr "A água rapidamente inunda até os joelhos." +msgstr "" #: src/event.cpp msgctxt "memorial_male" msgid "Water level reached knees." -msgstr "O nível da água atingiu os joelhos." +msgstr "" #: src/event.cpp msgctxt "memorial_female" msgid "Water level reached knees." -msgstr "O nível da água atingiu os joelhos." +msgstr "" #: src/event.cpp msgid "Water fills nearly to the ceiling!" -msgstr "A água enche quase até o teto!" +msgstr "" #: src/event.cpp msgctxt "memorial_male" msgid "Water level reached the ceiling." -msgstr "O nível da água atingiu o teto." +msgstr "" #: src/event.cpp msgctxt "memorial_female" msgid "Water level reached the ceiling." -msgstr "O nível da água atingiu o teto." +msgstr "" #: src/event.cpp msgid "An eyebot swoops down nearby!" -msgstr "Um eyebot desce nas proximidades!" +msgstr "" #: src/event.cpp msgid "You hear screeches from the rock above and around you!" -msgstr "Você ouve gritos da rocha acima e ao seu redor!" +msgstr "" #: src/event.cpp msgid "The entire cavern shakes!" -msgstr "A caverna inteira treme!" +msgstr "" #: src/event.cpp msgid "The earth rumbles." -msgstr "A terra ressoa." +msgstr "" #: src/explosion.cpp msgid "You're caught in the explosion!" @@ -179726,7 +160516,7 @@ msgstr "Você é pego na explosão!" #: src/explosion.cpp msgid " is caught in the explosion!" -msgstr " está preso na explosão!" +msgstr "" #: src/explosion.cpp #, c-format @@ -179735,36 +160525,36 @@ msgstr "" #: src/explosion.cpp msgid "a" -msgstr "um" +msgstr "" #: src/explosion.cpp msgid "many" -msgstr "muito" +msgstr "" #: src/explosion.cpp msgid "several" -msgstr "vários" +msgstr "" #: src/explosion.cpp msgid "a huge number of" -msgstr "um número enorme de" +msgstr "" #: src/explosion.cpp msgid "a large number of" -msgstr "um número grande de" +msgstr "" #: src/explosion.cpp msgid "an immense number of" -msgstr "um número imenso de" +msgstr "" #: src/explosion.cpp #, c-format msgid "dealing %d damage" -msgstr "provoca %d dano" +msgstr "" #: src/explosion.cpp msgid "but they deal no damage" -msgstr "mas não provoca dano" +msgstr "" #: src/explosion.cpp #, c-format @@ -179797,11 +160587,11 @@ msgstr "uma explosão!" #: src/explosion.cpp msgid "a loud pop!" -msgstr "um pop alto!" +msgstr "" #: src/explosion.cpp msgid "a huge boom!" -msgstr "um enorme boom!" +msgstr "" #: src/explosion.cpp src/ranged.cpp msgid "Crack!" @@ -179828,7 +160618,7 @@ msgstr "" #: src/explosion.cpp msgid "The card reader is rendered non-functional." -msgstr "O leitor de cartões é apresentado como não funcional." +msgstr "" #: src/explosion.cpp msgid "The nearby doors slide open!" @@ -179866,7 +160656,7 @@ msgstr "" #: src/explosion.cpp msgid "The EMP blast drains your power." -msgstr "A explosão do EMP drena sua energia." +msgstr "" #: src/explosion.cpp #, c-format @@ -179875,195 +160665,195 @@ msgstr "" #: src/faction.cpp msgid "Archenemy" -msgstr "Arqui-inimigo" +msgstr "" #: src/faction.cpp msgid "Wanted Dead" -msgstr "Querido morto" +msgstr "" #: src/faction.cpp msgid "Enemy of the People" -msgstr "Inimigo do povo" +msgstr "" #: src/faction.cpp msgid "Wanted Criminal" -msgstr "Criminoso Desejado" +msgstr "" #: src/faction.cpp msgid "Not Welcome" -msgstr "Não é bem-vindo" +msgstr "" #: src/faction.cpp msgid "Pariah" -msgstr "Pária" +msgstr "" #: src/faction.cpp msgid "Disliked" -msgstr "Não gostei" +msgstr "" #: src/faction.cpp msgid "Hero" -msgstr "Herói" +msgstr "" #: src/faction.cpp msgid "Idol" -msgstr "Ídolo" +msgstr "" #: src/faction.cpp msgid "Beloved" -msgstr "Amado" +msgstr "" #: src/faction.cpp msgid "Highly Valued" -msgstr "Altamente valorizado" +msgstr "" #: src/faction.cpp msgid "Valued" -msgstr "Valorizado" +msgstr "" #: src/faction.cpp msgid "Well-Liked" -msgstr "Bem-gostado" +msgstr "" #: src/faction.cpp msgid "Liked" -msgstr "Gostei" +msgstr "" #: src/faction.cpp msgid "Legendary" -msgstr "Lendário" +msgstr "" #: src/faction.cpp msgid "Unchallenged" -msgstr "Incontestado" +msgstr "" #: src/faction.cpp msgid "Mighty" -msgstr "Poderoso" +msgstr "" #: src/faction.cpp msgid "Famous" -msgstr "Famoso" +msgstr "" #: src/faction.cpp msgid "Well-Known" -msgstr "Bem conhecido" +msgstr "" #: src/faction.cpp msgid "Spoken Of" -msgstr "Falado de" +msgstr "" #: src/faction.cpp msgid "Worthless Scum" -msgstr "Escória sem valor" +msgstr "" #: src/faction.cpp msgid "Vermin" -msgstr "Vermin" +msgstr "" #: src/faction.cpp msgid "Despicable" -msgstr "Desprezível" +msgstr "" #: src/faction.cpp msgid "Parasite" -msgstr "Parasita" +msgstr "" #: src/faction.cpp msgid "Leech" -msgstr "Sanguessuga" +msgstr "" #: src/faction.cpp msgid "Laughingstock" -msgstr "Laughingstock" +msgstr "" #: src/faction.cpp msgid "Filthy rich" -msgstr "Muito rico" +msgstr "" #: src/faction.cpp msgid "Affluent" -msgstr "Afluente" +msgstr "" #: src/faction.cpp msgid "Prosperous" -msgstr "Próspero" +msgstr "" #: src/faction.cpp msgid "Well-Off" -msgstr "Bem-desligado" +msgstr "" #: src/faction.cpp src/panels.cpp msgid "Comfortable" -msgstr "Confortável" +msgstr "" #: src/faction.cpp msgid "Wanting" -msgstr "Querendo" +msgstr "" #: src/faction.cpp msgid "Failing" -msgstr "Falhando" +msgstr "" #: src/faction.cpp msgid "Impoverished" -msgstr "Empobrecido" +msgstr "" #: src/faction.cpp msgid "Destitute" -msgstr "Destituído" +msgstr "" #: src/faction.cpp msgid "Overflowing" -msgstr "Transbordante" +msgstr "" #: src/faction.cpp msgid "Well-Stocked" -msgstr "Bem abastecido" +msgstr "" #: src/faction.cpp msgid "Scrapping By" -msgstr "Sucateamento por" +msgstr "" #: src/faction.cpp src/player_display.cpp msgid "Malnourished" -msgstr "Desnutrido" +msgstr "" #: src/faction.cpp msgid "Starving" -msgstr "Morrendo de fome" +msgstr "" #: src/faction.cpp src/iuse_software_minesweeper.cpp msgid "Expert" -msgstr "Especialista" +msgstr "" #: src/faction.cpp msgid "Veteran" -msgstr "Veterano" +msgstr "" #: src/faction.cpp msgid "Skilled" -msgstr "Especializado" +msgstr "" #: src/faction.cpp msgid "Competent" -msgstr "Competente" +msgstr "" #: src/faction.cpp msgid "Untrained" -msgstr "Sem treinamento" +msgstr "" #: src/faction.cpp msgid "Crippled" -msgstr "Aleijado" +msgstr "" #: src/faction.cpp msgid "Feeble" -msgstr "Fraco" +msgstr "" #: src/faction.cpp msgid "Worthless" -msgstr "Inútil" +msgstr "" #: src/faction.cpp msgid "Press enter to rename this camp" @@ -180192,15 +160982,15 @@ msgstr "" #: src/faction_camp.cpp msgid "Working to expand your camp!\n" -msgstr "Trabalhando para expandir seu acampamento! \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Ally from Upgrading" -msgstr "Recuperar Aliado da Atualização" +msgstr "" #: src/faction_camp.cpp msgid "Busy crafting!\n" -msgstr "Artesanato ocupado! \n" +msgstr "" #: src/faction_camp.cpp msgid "Craft Item" @@ -180208,7 +160998,7 @@ msgstr "" #: src/faction_camp.cpp msgid " (Finish) Crafting" -msgstr "(Acabamento) Crafting" +msgstr "" #: src/faction_camp.cpp msgid "Busy travelling!\n" @@ -180224,71 +161014,71 @@ msgstr "" #: src/faction_camp.cpp msgid "Gather Materials" -msgstr "Reunir Materiais" +msgstr "" #: src/faction_camp.cpp msgid "Searching for materials to upgrade the camp.\n" -msgstr "Pesquisando materiais para atualizar o acampamento. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Ally from Gathering" -msgstr "Recuperar Aliado do Recolhimento" +msgstr "" #: src/faction_camp.cpp msgid "Collect Firewood" -msgstr "Recolha de lenha" +msgstr "" #: src/faction_camp.cpp msgid "Searching for firewood.\n" -msgstr "Procurando por lenha. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Firewood Gatherers" -msgstr "Recuperar Coletores de Lenha" +msgstr "" #: src/faction_camp.cpp msgid "Menial Labor" -msgstr "Trabalho Menial" +msgstr "" #: src/faction_camp.cpp msgid "Performing menial labor...\n" -msgstr "Realizando trabalhos manuais ... \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Menial Laborer" -msgstr "Recuperar Trabalhadores Menis" +msgstr "" #: src/faction_camp.cpp msgid "Expand Base" -msgstr "Expand Base" +msgstr "" #: src/faction_camp.cpp msgid "Surveying for expansion...\n" -msgstr "Pesquisando para expansão ... \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Surveyor" -msgstr "Recuperar Surveyor" +msgstr "" #: src/faction_camp.cpp msgid "Cut Logs" -msgstr "Logs de corte" +msgstr "" #: src/faction_camp.cpp msgid "Cutting logs in the woods...\n" -msgstr "Cortando troncos na mata ... \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Log Cutter" -msgstr "Recuperar Log Cutter" +msgstr "" #: src/faction_camp.cpp msgid "Clear a forest" -msgstr "Limpar uma floresta" +msgstr "" #: src/faction_camp.cpp msgid "Clearing a forest...\n" -msgstr "Limpando uma floresta ... \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Clearcutter" @@ -180296,119 +161086,119 @@ msgstr "" #: src/faction_camp.cpp msgid "Setting up a hide site...\n" -msgstr "Configurando um site de ocultamento ... \n" +msgstr "" #: src/faction_camp.cpp msgid "Setup Hide Site" -msgstr "Configuração Esconder Site" +msgstr "" #: src/faction_camp.cpp msgid "Recover Hide Setup" -msgstr "Recuperar Esconder Configuração" +msgstr "" #: src/faction_camp.cpp msgid "Relay Hide Site" -msgstr "Relay Ocultar Site" +msgstr "" #: src/faction_camp.cpp msgid "Transferring gear to a hide site...\n" -msgstr "Transferindo equipamento para um site de ocultar ... \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Hide Relay" -msgstr "Recuperar relé de esconderijo" +msgstr "" #: src/faction_camp.cpp msgid "Forage for plants" -msgstr "Forragem para plantas" +msgstr "" #: src/faction_camp.cpp msgid "Foraging for edible plants.\n" -msgstr "Forrageamento de plantas comestíveis. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Foragers" -msgstr "Recuperar Foragers" +msgstr "" #: src/faction_camp.cpp msgid "Trap Small Game" -msgstr "Jogo pequeno de armadilha" +msgstr "" #: src/faction_camp.cpp msgid "Trapping Small Game.\n" -msgstr "Trapping Small Game. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Trappers" -msgstr "Recuperar Trappers" +msgstr "" #: src/faction_camp.cpp msgid "Hunt Large Animals" -msgstr "Caça Animais Grandes" +msgstr "" #: src/faction_camp.cpp msgid "Hunting large animals.\n" -msgstr "Caçando animais grandes. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Hunter" -msgstr "Recuperar Caçador" +msgstr "" #: src/faction_camp.cpp msgid "Construct Map Fortifications" -msgstr "Construct Fortifications Mapa" +msgstr "" #: src/faction_camp.cpp msgid "Constructing fortifications...\n" -msgstr "Construindo fortificações ... \n" +msgstr "" #: src/faction_camp.cpp msgid "Finish Map Fortifications" -msgstr "Acabar Mapa Fortificações" +msgstr "" #: src/faction_camp.cpp msgid "Recruit Companions" -msgstr "Recrutar Companheiros" +msgstr "" #: src/faction_camp.cpp msgid "Searching for recruits.\n" -msgstr "Procurando recrutas. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Recruiter" -msgstr "Recuperar Recrutador" +msgstr "" #: src/faction_camp.cpp msgid "Scout Mission" -msgstr "Missão Escoteira" +msgstr "" #: src/faction_camp.cpp msgid "Scouting the region.\n" -msgstr "Explorando a região. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Scout" -msgstr "Recuperar Escoteiro" +msgstr "" #: src/faction_camp.cpp msgid "Combat Patrol" -msgstr "Patrulha de Combate" +msgstr "" #: src/faction_camp.cpp msgid "Patrolling the region.\n" -msgstr "Patrulhando a região. \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Combat Patrol" -msgstr "Recuperar Patrulha de Combate" +msgstr "" #: src/faction_camp.cpp msgid " Expansion Upgrade" -msgstr "Upgrade de Expansão" +msgstr "" #: src/faction_camp.cpp msgid "Working to upgrade your expansions!\n" -msgstr "Trabalhando para atualizar suas expansões! \n" +msgstr "" #: src/faction_camp.cpp msgid "Recover Ally" @@ -180416,15 +161206,15 @@ msgstr "" #: src/faction_camp.cpp msgid " Chop Shop" -msgstr "Chop Shop" +msgstr "" #: src/faction_camp.cpp msgid "Working at the chop shop...\n" -msgstr "Trabalhando na loja de costeletas ... \n" +msgstr "" #: src/faction_camp.cpp msgid " (Finish) Chop Shop" -msgstr "(Acabamento) Chop Shop" +msgstr "" #: src/faction_camp.cpp msgid " Kitchen Cooking" @@ -180432,11 +161222,11 @@ msgstr "" #: src/faction_camp.cpp msgid "Working in your kitchen!\n" -msgstr "Trabalhando na sua cozinha! \n" +msgstr "" #: src/faction_camp.cpp msgid " (Finish) Cooking" -msgstr "Cozinhar" +msgstr "" #: src/faction_camp.cpp msgid " Blacksmithing" @@ -180444,19 +161234,19 @@ msgstr "" #: src/faction_camp.cpp msgid "Working in your blacksmith shop!\n" -msgstr "Trabalhando na sua ferraria! \n" +msgstr "" #: src/faction_camp.cpp msgid " (Finish) Smithing" -msgstr "(Acabamento) Smithing" +msgstr "" #: src/faction_camp.cpp msgid " Plow Fields" -msgstr "Arado Campos" +msgstr "" #: src/faction_camp.cpp msgid "Working to plow your fields!\n" -msgstr "Trabalhando para arar seus campos! \n" +msgstr "" #: src/faction_camp.cpp msgid " (Finish) Plow fields" @@ -180464,27 +161254,27 @@ msgstr "" #: src/faction_camp.cpp msgid " Plant Fields" -msgstr "Plant Fields" +msgstr "" #: src/faction_camp.cpp msgid "Working to plant your fields!\n" -msgstr "Trabalhando para plantar seus campos! \n" +msgstr "" #: src/faction_camp.cpp msgid " (Finish) Plant Fields" -msgstr "(Finish) Plant Fields" +msgstr "" #: src/faction_camp.cpp msgid " Harvest Fields" -msgstr "Campos de colheita" +msgstr "" #: src/faction_camp.cpp msgid "Working to harvest your fields!\n" -msgstr "Trabalhando para colher seus campos! \n" +msgstr "" #: src/faction_camp.cpp msgid " (Finish) Harvest Fields" -msgstr "Campos de Colheita" +msgstr "" #: src/faction_camp.cpp msgid " Farm Crafting" @@ -180492,15 +161282,15 @@ msgstr "" #: src/faction_camp.cpp msgid "Working on your farm!\n" -msgstr "Trabalhando na sua fazenda! \n" +msgstr "" #: src/faction_camp.cpp msgid " [DONE]\n" -msgstr "[DONE] \n" +msgstr "" #: src/faction_camp.cpp msgid " left]\n" -msgstr "esquerda] \n" +msgstr "" #: src/faction_camp.cpp src/mission_companion.cpp msgid "" @@ -180508,13 +161298,10 @@ msgid "" " \n" "Do you wish to bring your allies back into your party?" msgstr "" -"\n" -" \n" -"Você deseja trazer seus aliados de volta para sua festa?" #: src/faction_camp.cpp msgid "You choose to wait..." -msgstr "Você escolhe esperar ..." +msgstr "" #: src/faction_camp.cpp msgid "You cannot build a camp here." @@ -180530,32 +161317,26 @@ msgstr "" #: src/faction_camp.cpp msgid "You are too close to another camp!" -msgstr "Você está muito perto de outro acampamento!" +msgstr "" #: src/faction_camp.cpp msgid "" "Warning, you have selected a region with the following issues:\n" " \n" msgstr "" -"Atenção, você selecionou uma região com os seguintes problemas: \n" -" \n" #: src/faction_camp.cpp msgid "There are few forests. Wood is your primary construction material.\n" msgstr "" -" Existem poucas florestas. A madeira é o seu principal material de " -"construção. \n" #: src/faction_camp.cpp msgid "There are few large clean-ish water sources.\n" -msgstr "Existem poucas fontes de água limpas e grandes. \n" +msgstr "" #: src/faction_camp.cpp msgid "" "There are no swamps. Swamps provide access to a few late game industries.\n" msgstr "" -" Não há pântanos. Os pântanos fornecem acesso a algumas indústrias de jogos " -"atrasados. \n" #: src/faction_camp.cpp msgid "There are few fields. Farming may be difficult.\n" @@ -180575,11 +161356,11 @@ msgstr "" #: src/faction_camp.cpp msgid "There is no faction camp here to recover!" -msgstr "Não há campo de facção aqui para se recuperar!" +msgstr "" #: src/faction_camp.cpp msgid ", Camp Manager" -msgstr "Gerente do acampamento" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -180621,7 +161402,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Distribute Food" -msgstr "Distribuir comida" +msgstr "" #: src/faction_camp.cpp msgid "" @@ -180636,7 +161417,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Reset Sort Points" -msgstr "Redefinir pontos de classificação" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -180813,7 +161594,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Construct Spiked Trench" -msgstr "Construir Trincheira Cravada" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -180853,11 +161634,11 @@ msgstr "" #: src/faction_camp.cpp msgid " Expansion" -msgstr "Expansão" +msgstr "" #: src/faction_camp.cpp msgid "Recover Ally, " -msgstr "Recuperar Aliado" +msgstr "" #: src/faction_camp.cpp msgid "" @@ -180873,15 +161654,6 @@ msgid "" "Risk: None\n" "Time: 5 days \n" msgstr "" -" Notas: \n" -" Tem uma tentativa complementar de dissimular completamente um veículo em componentes. \n" -" \n" -" Será usado: mecânica \n" -" Dificuldade: 2 \\ nEfeitos: \n" -" > Peças removidas colocadas no móvel da garagem. \n" -" > Habilidade desempenha um grande papel para determinar o que é recuperado. \\ n \n" -" Risco: Nenhum \n" -" Tempo: 5 dias \n" #: src/faction_camp.cpp msgid "" @@ -180889,8 +161661,6 @@ msgid "" "Plow any spaces that have reverted to dirt or grass.\n" " \n" msgstr "" -" Notas: \n" -" Aumente os espaços que foram revertidos para sujeira ou grama. \\ N \n" #: src/faction_camp.cpp msgid "" @@ -180906,15 +161676,6 @@ msgid "" "Time: 5 Min / Plot \n" "Positions: 0/1 \n" msgstr "" -" \n" -" Aplicativo usado: fabricação \n" -" Dificuldade: N / A \n" -" Efeitos: \\ n> Restaura somente os gráficos criados na última atualização de expansão. \n" -" > Não danifica as culturas existentes. \n" -" \n" -" Risco: Nenhum \n" -" Hora: 5 min / Plot \n" -" Positions: 0/1 \n" #: src/faction_camp.cpp msgid "" @@ -180922,8 +161683,6 @@ msgid "" "Plant designated seeds in the spaces that have already been tilled.\n" " \n" msgstr "" -" Notas: \n" -" Planta sementes designadas nos espaços que já foram cultivados. \\ N \n" #: src/faction_camp.cpp msgid "" @@ -180940,16 +161699,6 @@ msgid "" "Time: 1 Min / Plot \n" "Positions: 0/1 \n" msgstr "" -" \n" -" Será usado: sobrevivência \n" -" Dificuldade: N / A \n" -" Efeitos: \n" -" > Escolha o tipo de semente ou todas as suas sementes. \n" -" > Pára quando sai de sementes ou locais de plantio. \n" -" > Plantará em TODOS os montes de terra na expansão. \n" -" \n" -" Risco: Nenhum \n" -" Tempo: 1 Min / Plot \\ nPosições: 0/1 \n" #: src/faction_camp.cpp msgid "" @@ -180957,9 +161706,6 @@ msgid "" "Harvest any plants that are ripe and bring the produce back.\n" " \n" msgstr "" -" Notas: \n" -" Combine todas as plantas que estiverem maduras e traga o produto de volta. \n" -" \n" #: src/faction_camp.cpp msgid "" @@ -180974,87 +161720,78 @@ msgid "" "Time: 3 Min / Plot \n" "Positions: 0/1 \n" msgstr "" -" \n" -" A prática usada: sobrevivência \n" -" Dificuldade: N / A \n" -" Efeitos: \\ n> Irá descarregar todos os produtos de colheita na sua localização. \n" -" \n" -" Risco: Nenhum \n" -" Hora: 3 Min / Plot \n" -" Posições: 0/1 \n" #: src/faction_camp.cpp msgid "departs to search for materials..." -msgstr "parte para procurar materiais ..." +msgstr "" #: src/faction_camp.cpp msgid "departs to search for firewood..." -msgstr "parte para procurar lenha ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from working in the woods..." -msgstr "retorna de trabalhar na floresta ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from working on the hide site..." -msgstr "retorna do trabalho no site de ocultação ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from shuttling gear between the hide site..." -msgstr "retorna da engrenagem de shuttling entre o site de ocultação ..." +msgstr "" #: src/faction_camp.cpp msgid "departs to search for edible plants..." -msgstr "parte para procurar plantas comestíveis ..." +msgstr "" #: src/faction_camp.cpp msgid "departs to set traps for small animals..." -msgstr "parte para montar armadilhas para pequenos animais ..." +msgstr "" #: src/faction_camp.cpp msgid "departs to hunt for meat..." -msgstr "parte para caçar carne ..." +msgstr "" #: src/faction_camp.cpp msgid "departs to search for recruits..." -msgstr "parte para procurar recrutas ..." +msgstr "" #: src/faction_camp.cpp msgid "departs to survey land..." -msgstr "parte para pesquisar terra ..." +msgstr "" #: src/faction_camp.cpp msgid "returns to you with something..." -msgstr "retorna para você com alguma coisa ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from your farm with something..." -msgstr "retorna da sua fazenda com alguma coisa ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from your kitchen with something..." -msgstr "retorna da sua cozinha com alguma coisa ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from your blacksmith shop with something..." -msgstr "retorna da sua loja de ferreiro com alguma coisa ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from your garage..." -msgstr "retorna da sua garagem ..." +msgstr "" #: src/faction_camp.cpp msgid "You don't have enough food stored to feed your companion." msgstr "" -" Você não tem comida suficiente armazenada para alimentar seu companheiro." #: src/faction_camp.cpp msgid "begins to upgrade the camp..." -msgstr "começa a atualizar o acampamento ..." +msgstr "" #: src/faction_camp.cpp msgid "You don't have the materials for the upgrade." -msgstr "Você não tem os materiais para a atualização." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181063,7 +161800,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Forests and swamps are the only valid cutting locations." -msgstr "Florestas e pântanos são os únicos locais de corte válidos." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181074,50 +161811,47 @@ msgstr "" #: src/faction_camp.cpp msgid "departs to cut logs..." -msgstr "parte para cortar troncos ..." +msgstr "" #: src/faction_camp.cpp msgid "Forests are the only valid cutting locations." -msgstr "As florestas são os únicos locais de corte válidos." +msgstr "" #: src/faction_camp.cpp msgid "departs to clear a forest..." -msgstr "parte para limpar uma floresta ..." +msgstr "" #: src/faction_camp.cpp msgid "Forests, swamps, and fields are valid hide site locations." msgstr "" -" Florestas, pântanos e campos são locais de sites de esconderijo válidos." #: src/faction_camp.cpp msgid "Do you wish to give your companion additional items?" -msgstr "Deseja dar itens adicionais ao seu companheiro?" +msgstr "" #: src/faction_camp.cpp msgid "departs to build a hide site..." -msgstr "parte para construir um esconderijo ..." +msgstr "" #: src/faction_camp.cpp msgid "You need equipment to setup a hide site..." msgstr "" -" Você precisa de um equipamento para configurar um site de ocultação ..." #: src/faction_camp.cpp msgid "You must select an existing hide site." -msgstr "Você deve selecionar um site de ocultação existente." +msgstr "" #: src/faction_camp.cpp msgid "Bring gear back?" -msgstr "Trazer de volta a engrenagem?" +msgstr "" #: src/faction_camp.cpp msgid "departs for the hide site..." -msgstr "parte para o site de ocultação ..." +msgstr "" #: src/faction_camp.cpp msgid "You need equipment to transport between the hide site..." msgstr "" -" Você precisa de equipamento para transportar entre o site de ocultação ..." #: src/faction_camp.cpp msgid "" @@ -181125,13 +161859,10 @@ msgid "" "swamps are valid fortification locations. In addition to existing " "fortification constructions." msgstr "" -" Selecione um ponto inicial e final. A linha deve estar reta. Campos, " -"florestas e pântanos são locais de fortificação válidos. Além das " -"construções de fortificação existentes." #: src/faction_camp.cpp msgid "Select an end point." -msgstr "Selecione um ponto final." +msgstr "" #: src/faction_camp.cpp msgid "Spiked pits must be built over existing trenches!" @@ -181139,31 +161870,29 @@ msgstr "" #: src/faction_camp.cpp msgid "Invalid terrain in construction path." -msgstr "Terreno inválido no caminho da construção." +msgstr "" #: src/faction_camp.cpp msgid "You don't have the material to build the fortification." -msgstr "Você não tem o material para construir a fortificação." +msgstr "" #: src/faction_camp.cpp msgid "begins constructing fortifications..." -msgstr "começa a construir fortificações ..." +msgstr "" #: src/faction_camp.cpp msgid "" "Select checkpoints until you reach maximum range or select the last point " "again to end." msgstr "" -" Selecione pontos de verificação até atingir o alcance máximo ou selecione o" -" último ponto novamente para terminar." #: src/faction_camp.cpp msgid "departs on patrol..." -msgstr "parte em patrulha ..." +msgstr "" #: src/faction_camp.cpp msgid "You don't have the materials to craft that" -msgstr "Você não tem os materiais para fabricar isso" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181172,35 +161901,35 @@ msgstr "" #: src/faction_camp.cpp msgid "Your batch is too large!" -msgstr "Seu lote é muito grande!" +msgstr "" #: src/faction_camp.cpp msgid "begins to work..." -msgstr "começa a funcionar ..." +msgstr "" #: src/faction_camp.cpp msgid "+ more \n" -msgstr "+ mais \n" +msgstr "" #: src/faction_camp.cpp msgid "begins to harvest the field..." -msgstr "começa a colher o campo ..." +msgstr "" #: src/faction_camp.cpp msgid "You have no additional seeds to give your companions..." -msgstr "Você não tem sementes adicionais para dar aos seus companheiros ..." +msgstr "" #: src/faction_camp.cpp src/mission_companion.cpp msgid "Which seeds do you wish to have planted?" -msgstr "Quais sementes você deseja plantar?" +msgstr "" #: src/faction_camp.cpp msgid "begins planting the field..." -msgstr "começa a plantar o campo ..." +msgstr "" #: src/faction_camp.cpp msgid "begins plowing the field..." -msgstr "começa a arar o campo ..." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181211,11 +161940,11 @@ msgstr "" #: src/faction_camp.cpp msgid "begins working in the garage..." -msgstr "começa a trabalhar na garagem ..." +msgstr "" #: src/faction_camp.cpp msgid "Your companion seems disappointed that your pantry is empty..." -msgstr "Seu companheiro parece desapontado que sua despensa está vazia ..." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181225,28 +161954,26 @@ msgstr "" #: src/faction_camp.cpp msgid "returns from upgrading the camp having earned a bit of experience..." msgstr "" -" retorna de atualizar o acampamento, ganhando um pouco de experiência ..." #: src/faction_camp.cpp msgid "returns from doing the dirty work to keep the camp running..." msgstr "" -" retorna de fazer o trabalho sujo para manter o acampamento funcionando ..." #: src/faction_camp.cpp msgid "gathering materials" -msgstr "materiais de coleta" +msgstr "" #: src/faction_camp.cpp msgid "foraging for edible plants" -msgstr "forrageamento de plantas comestíveis" +msgstr "" #: src/faction_camp.cpp msgid "trapping small animals" -msgstr "aprisionando pequenos animais" +msgstr "" #: src/faction_camp.cpp msgid "hunting for meat" -msgstr "caçando carne" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181255,11 +161982,11 @@ msgstr "" #: src/faction_camp.cpp msgid "returns from constructing fortifications..." -msgstr "retorna da construção de fortificações ..." +msgstr "" #: src/faction_camp.cpp msgid "returns from searching for recruits with a bit more experience..." -msgstr "retorna da busca por recrutas com um pouco mais de experiência ..." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181286,8 +162013,6 @@ msgid "" "NPC Overview:\n" " \n" msgstr "" -"Visão geral do NPC: \n" -" \n" #: src/faction_camp.cpp #, c-format @@ -181320,11 +162045,11 @@ msgstr "" #: src/faction_camp.cpp msgid "Top 3 Skills:\n" -msgstr "3 principais habilidades: \n" +msgstr "" #: src/faction_camp.cpp msgid "Asking for:\n" -msgstr "Perguntando por: \n" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181349,27 +162074,27 @@ msgstr "" #: src/faction_camp.cpp msgid "Select an option:" -msgstr "Selecione uma opção:" +msgstr "" #: src/faction_camp.cpp msgid "Increase Food" -msgstr "Aumentar Alimentos" +msgstr "" #: src/faction_camp.cpp msgid "Decrease Food" -msgstr "Diminuir Alimentos" +msgstr "" #: src/faction_camp.cpp msgid "Make Offer" -msgstr "Faça oferta" +msgstr "" #: src/faction_camp.cpp msgid "Not Interested" -msgstr "Não interessado" +msgstr "" #: src/faction_camp.cpp msgid "You decide you aren't interested..." -msgstr "Você decide que não está interessado ..." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181383,15 +162108,13 @@ msgstr "" #: src/faction_camp.cpp msgid "Your companion hit a river and didn't know how to swim..." -msgstr "Seu companheiro atingiu um rio e não sabia nadar ..." +msgstr "" #: src/faction_camp.cpp msgid "" "Your companion hit a river and didn't know how to swim well enough to " "cross..." msgstr "" -" Seu companheiro atingiu um rio e não sabia nadar bem o suficiente para " -"atravessar ..." #: src/faction_camp.cpp #, c-format @@ -181400,7 +162123,7 @@ msgstr "" #: src/faction_camp.cpp msgid "returns from patrol..." -msgstr "retorna da patrulha ..." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181427,7 +162150,7 @@ msgstr "" #: src/faction_camp.cpp msgid "Select an expansion:" -msgstr "Selecione uma expansão:" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181436,47 +162159,47 @@ msgstr "" #: src/faction_camp.cpp msgid "returns from surveying for the expansion." -msgstr "retorna do levantamento para a expansão." +msgstr "" #: src/faction_camp.cpp msgid "returns from working your fields... " -msgstr "retorna de trabalhar seus campos ..." +msgstr "" #: src/faction_camp.cpp msgid "MAIN" -msgstr "A PRINCIPAL" +msgstr "" #: src/faction_camp.cpp msgid " [N] " -msgstr "[N]" +msgstr "" #: src/faction_camp.cpp msgid " [NE] " -msgstr "[NE]" +msgstr "" #: src/faction_camp.cpp msgid " [E] " -msgstr "[E]" +msgstr "" #: src/faction_camp.cpp msgid " [SE] " -msgstr "[SE]" +msgstr "" #: src/faction_camp.cpp msgid " [S] " -msgstr "[S]" +msgstr "" #: src/faction_camp.cpp msgid " [SW] " -msgstr "[SW]" +msgstr "" #: src/faction_camp.cpp msgid " [W] " -msgstr "[W]" +msgstr "" #: src/faction_camp.cpp msgid " [NW] " -msgstr "[NW]" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181491,11 +162214,11 @@ msgstr "" #: src/faction_camp.cpp msgid "You must be able to see the target that you select." -msgstr "Você deve poder ver o alvo que você selecionou." +msgstr "" #: src/faction_camp.cpp msgid "Do you want to bounce off this location to extend range?" -msgstr "Você quer rebater este local para aumentar o alcance?" +msgstr "" #: src/faction_camp.cpp msgid "You do not have sufficient sort zones. Do you want to add them?" @@ -181586,15 +162309,15 @@ msgstr "" #: src/faction_camp.cpp msgid "Harvestable: " -msgstr "Colhável:" +msgstr "" #: src/faction_camp.cpp msgid "Ready for Planting: " -msgstr "Pronto para o plantio:" +msgstr "" #: src/faction_camp.cpp msgid "Needs Plowing: " -msgstr "Precisa de arar:" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181603,7 +162326,7 @@ msgstr "" #: src/faction_camp.cpp msgid "---- Engines ----\n" -msgstr "---- Motores ---- \n" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181622,11 +162345,11 @@ msgstr "" #: src/faction_camp.cpp msgid "---- Fuel Storage & Battery ----\n" -msgstr "---- Armazenamento de combustível e bateria ---- \n" +msgstr "" #: src/faction_camp.cpp msgid "Estimated Chop Time: 5 Days\n" -msgstr "Tempo de corte estimado: 5 dias \n" +msgstr "" #: src/faction_camp.cpp msgid "You do not have a camp food zone. Aborting..." @@ -181634,7 +162357,7 @@ msgstr "" #: src/faction_camp.cpp msgid "No items are located at the drop point..." -msgstr "Nenhum item está localizado no ponto de queda ..." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181667,8 +162390,6 @@ msgstr "" #: src/faction_camp.cpp msgid "The two part on friendly terms and the survivor isn't seen again." msgstr "" -" As duas partes em termos amigáveis e o sobrevivente não são vistos " -"novamente." #: src/faction_camp.cpp #, c-format @@ -181706,7 +162427,7 @@ msgstr "" #: src/faction_camp.cpp msgid "(Sounds like bullshit, you wonder what really happened.)" -msgstr "(Soa como besteira, você se pergunta o que realmente aconteceu.)" +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181717,7 +162438,7 @@ msgstr "" #: src/faction_camp.cpp msgid "The screams were terrifying, there was nothing anyone could do." -msgstr "Os gritos eram terríveis, não havia nada que alguém pudesse fazer." +msgstr "" #: src/faction_camp.cpp #, c-format @@ -181727,8 +162448,6 @@ msgstr "" #: src/faction_camp.cpp msgid "(You wonder if your companions are fit to work on their own...)" msgstr "" -" (Você quer saber se seus companheiros estão aptos para trabalhar por conta " -"própria ...)" #: src/fungal_effects.cpp src/iuse.cpp #, c-format @@ -181738,19 +162457,18 @@ msgstr "" #: src/fungal_effects.cpp msgid "The spores land on you, but you quickly swat them off with your tail!" msgstr "" -" Os esporos pousam em você, mas você rapidamente os derruba com sua cauda!" #: src/fungal_effects.cpp msgid "You're covered in tiny spores!" -msgstr "Você está coberto de pequenos esporos!" +msgstr "" #: src/fungal_effects.cpp msgid "The young tree blooms forth into a fungal blossom!" -msgstr "A árvore jovem floresce em uma flor fúngica!" +msgstr "" #: src/fungal_effects.cpp msgid "The tree blooms forth into a fungal blossom!" -msgstr "A árvore floresce em uma flor fúngica!" +msgstr "" #: src/game.cpp src/options.cpp #, c-format @@ -181759,15 +162477,15 @@ msgstr "Erro ao carregar o tileset: %s" #: src/game.cpp msgid "Loading core data" -msgstr "Carregando dados principais" +msgstr "" #: src/game.cpp msgid "Please wait while the world data loads..." -msgstr "Por favor, aguarde enquanto o mundo de dados carrega ..." +msgstr "" #: src/game.cpp src/start_location.cpp msgid "Please wait as we build your world" -msgstr "Por favor espere enquanto construímos seu mundo" +msgstr "" #. ~ %s is player name #: src/game.cpp @@ -181784,15 +162502,15 @@ msgstr "" #: src/game.cpp msgid "Survived:" -msgstr "Sobreviveu:" +msgstr "" #: src/game.cpp msgid "In memory of:" -msgstr "Em memória de:" +msgstr "" #: src/game.cpp msgid "Last Words:" -msgstr "Últimas palavras:" +msgstr "" #: src/game.cpp #, c-format @@ -181810,33 +162528,33 @@ msgstr "" #, c-format msgctxt "memorial_male" msgid "%s was killed." -msgstr "%s foi morto." +msgstr "" #: src/game.cpp #, c-format msgctxt "memorial_female" msgid "%s was killed." -msgstr "%s foi morto." +msgstr "" #: src/game.cpp #, c-format msgctxt "memorial_male" msgid "Last words: %s" -msgstr "Últimas palavras: %s" +msgstr "" #: src/game.cpp #, c-format msgctxt "memorial_female" msgid "Last words: %s" -msgstr "Últimas palavras: %s" +msgstr "" #: src/game.cpp msgid "Keep world" -msgstr "Mantenha o mundo" +msgstr "" #: src/game.cpp msgid "Reset world" -msgstr "Redefinir mundo" +msgstr "" #: src/game.cpp msgid "Delete world" @@ -181849,7 +162567,7 @@ msgstr "" #: src/game.cpp msgid "Wait till you wake up..." -msgstr "Espere até você acordar ..." +msgstr "" #: src/game.cpp #, c-format @@ -181879,77 +162597,77 @@ msgstr "" #: src/game.cpp msgid "Confirm:" -msgstr "Confirme:" +msgstr "" #: src/game.cpp msgctxt "action" msgid "activate" -msgstr "ativar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "read" -msgstr "ler" +msgstr "" #: src/game.cpp msgctxt "action" msgid "eat" -msgstr "comer" +msgstr "" #: src/game.cpp msgctxt "action" msgid "wear" -msgstr "vestir" +msgstr "" #: src/game.cpp msgctxt "action" msgid "wield" -msgstr "empunhar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "throw" -msgstr "arremessar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "change side" -msgstr "mudar lado" +msgstr "" #: src/game.cpp msgctxt "action" msgid "take off" -msgstr "tirar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "drop" -msgstr "largar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "unload" -msgstr "descarregar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "reload" -msgstr "recarregar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "part reload" -msgstr "recarga parcial" +msgstr "" #: src/game.cpp msgctxt "action" msgid "mend" -msgstr "emendar" +msgstr "" #: src/game.cpp msgctxt "action" msgid "disassemble" -msgstr "desmontar" +msgstr "" #: src/game.cpp msgctxt "action" @@ -181964,11 +162682,11 @@ msgstr "" #: src/game.cpp msgctxt "action" msgid "reassign" -msgstr "reatribuir" +msgstr "" #: src/game.cpp msgid "Autopickup" -msgstr "Autopickup" +msgstr "" #: src/game.cpp #, c-format @@ -181982,59 +162700,59 @@ msgstr "" #: src/game.cpp msgid "Move North" -msgstr "Ir ao Norte" +msgstr "" #: src/game.cpp msgid "Move Northeast" -msgstr "Ir a Nordeste" +msgstr "" #: src/game.cpp msgid "Move East" -msgstr "Ir a Leste" +msgstr "" #: src/game.cpp msgid "Move Southeast" -msgstr "Ir a Sudeste" +msgstr "" #: src/game.cpp msgid "Move South" -msgstr "Ir para o Sul" +msgstr "" #: src/game.cpp msgid "Move Southwest" -msgstr "Ir a Sudoeste" +msgstr "" #: src/game.cpp msgid "Move West" -msgstr "Ir a Oeste" +msgstr "" #: src/game.cpp msgid "Move Northwest" -msgstr "Ir a Noroeste" +msgstr "" #: src/game.cpp msgid "Descend Stairs" -msgstr "Descer escadas" +msgstr "" #: src/game.cpp msgid "Ascend Stairs" -msgstr "Subir escadas" +msgstr "" #: src/game.cpp msgid "Nothing relevant here." -msgstr "Nada relevante aqui." +msgstr "" #: src/game.cpp msgid "You are not wielding a ranged weapon." -msgstr "Você não está empunhando uma arma de longo alcance." +msgstr "" #: src/game.cpp msgid "Watch the last moments of your life...?" -msgstr "Assitir seus últimos momentos da sua vida...?" +msgstr "" #: src/game.cpp msgid "Loading files" -msgstr "Carregando arquivos" +msgstr "" #: src/game.cpp #, c-format @@ -182043,7 +162761,7 @@ msgstr "" #: src/game.cpp msgid "factions data" -msgstr "dados de facções" +msgstr "" #: src/game.cpp #, c-format @@ -182052,31 +162770,31 @@ msgstr "" #: src/game.cpp msgid "player data" -msgstr "dados do jogador" +msgstr "" #: src/game.cpp msgid "player map memory" -msgstr "memória do mapa do jogador" +msgstr "" #: src/game.cpp msgid "weather state" -msgstr "estado do tempo" +msgstr "" #: src/game.cpp msgid "player memorial" -msgstr "memorial do jogador" +msgstr "" #: src/game.cpp msgid "quick shortcuts" -msgstr "atalhos rápidos" +msgstr "" #: src/game.cpp msgid "uistate data" -msgstr "olhe a data" +msgstr "" #: src/game.cpp msgid "Failed to save game data" -msgstr "Falha ao salvar dados do jogo" +msgstr "" #: src/game.cpp msgid "You haven't killed any monsters yet!" @@ -182094,7 +162812,7 @@ msgstr "" #: src/game.cpp msgid " You are forgotten among the billions lost in the cataclysm..." -msgstr "Você está esquecido entre os bilhões perdidos no cataclismo ..." +msgstr "" #: src/game.cpp msgid "" @@ -182102,10 +162820,6 @@ msgid "" "their resources in a handful of fortified bases along the coast. Without " "the men or material to rebuild, the soldiers that remained lost all hope..." msgstr "" -" Trancada em uma batalha sem fim, a Velha Guarda foi forçada a consolidar " -"seus recursos em um punhado de bases fortificadas ao longo da costa. Sem os " -"homens ou material para reconstruir, os soldados que permaneceram perderam " -"toda a esperança ..." #: src/game.cpp msgid "" @@ -182117,13 +162831,6 @@ msgid "" "the years past, little materialized from the hopes of rebuilding " "civilization..." msgstr "" -" A firmeza dos sobreviventes individuais após o cataclismo impressionou os " -"restos esfarrapados da outrora gloriosa união. Incentivados por pequenos " -"sucessos, várias operações para recuperar as instalações tiveram um sucesso " -"limitado. Forçada a se consolidar em grandes bases, a Velha Guarda deixou " -"estas instalações nas mãos dos poucos sobreviventes que restaram. Como os " -"anos passados, pouco se materializou das esperanças de reconstruir a " -"civilização ..." #: src/game.cpp msgid "" @@ -182132,11 +162839,6 @@ msgid "" "craftsmen dispersed to found new colonies but most became victims of " "marauding bandits. Those who survived never found a place to call home..." msgstr "" -" A vida no abrigo de refugiados deteriorou-se à medida que a escassez de " -"alimentos e doenças destruíam qualquer esperança de manter um enclave " -"civilizado. Os mercadores e artesãos se dispersaram para fundar novas " -"colônias, mas a maioria se tornou vítima de bandidos saqueadores. Aqueles " -"que sobreviveram nunca encontraram um lugar para chamar de lar ..." #: src/game.cpp msgid "" @@ -182146,11 +162848,6 @@ msgid "" "stories of the old days when food was abundant and the children were allowed" " to play in the sun..." msgstr "" -" Os mercadores livres lutaram durante anos para se manterem alimentados, mas" -" suas rotas comerciais antes lucrativas foram saqueadas por bandidos e " -"bandidos. Na miséria e sujeira as primeiras gerações nascidas após o " -"cataclismo são contadas histórias dos velhos tempos, quando a comida era " -"abundante e as crianças foram autorizados a jogar no sol ..." #: src/game.cpp msgid "" @@ -182159,11 +162856,6 @@ msgid "" "their support. When the exhausted migrants returned to the refugee center " "they were turned away to face the world on their own." msgstr "" -" O novo posto avançado foi abandonado alguns meses depois. As ameaças " -"externas combinadas com a baixa produtividade das colheitas fizeram com que " -"os comerciantes livres retirassem seu apoio. Quando os migrantes exaustos " -"retornaram ao centro de refugiados, eles foram afastados para enfrentar o " -"mundo sozinhos." #: src/game.cpp msgid "" @@ -182173,12 +162865,6 @@ msgid "" "of the Free Merchants. Hard labor for little reward remained the price to " "be paid for those who sought the safety of the community." msgstr "" -" A comuna continuou a crescer rapidamente ao longo dos anos, apesar da " -"constante ameaça externa. Embora mantendo a reputação de refúgio para todos " -"os cidadãos cumpridores da lei, a liderança da comuna permaneceu fiel aos " -"interesses dos mercadores livres. O trabalho duro por pequena recompensa " -"permaneceu o preço a ser pago por aqueles que buscavam a segurança da " -"comunidade." #: src/game.cpp msgid "" @@ -182187,11 +162873,6 @@ msgid "" "monstrosities that had adapted to live in their world, those who did survive" " lived in dejected poverty and hopelessness..." msgstr "" -" Os bandos solitários de sobreviventes que vagavam pelo mundo agora " -"alienígena diminuíram em número ao longo dos anos. Incapazes de competir com" -" o crescente número de monstruosidades que se adaptaram para viver em seu " -"mundo, aqueles que sobreviveram viveram em pobreza e desespero desalentados " -"..." #: src/game.cpp msgid "" @@ -182202,13 +162883,6 @@ msgid "" "fringes of where civilization once ended, bands of hunter-gatherers began to" " adopt agrarian lifestyles in fortified enclaves..." msgstr "" -" Os catadores que floresceram nos primeiros dias do cataclismo encontraram " -"um desafio cada vez maior em encontrar e manter equipamentos do velho mundo." -" Hordas enormes tornavam as cidades impossíveis de entrar enquanto novos " -"horrores misteriosos apareciam misteriosamente perto de velhos laboratórios " -"de pesquisa. Mas nas franjas de onde a civilização uma vez acabou, bandos de" -" caçadores-coletores começaram a adotar estilos de vida agrários em enclaves" -" fortificados ..." #: src/game.cpp msgid "" @@ -182219,12 +162893,6 @@ msgid "" "infighting erupted into civil war but there were few survivors left to " "celebrate their destruction." msgstr "" -" Os invasores cresceram mais poderosos que qualquer outra facção quando o " -"atrito destruiu a Velha Guarda. Os homens e mulheres implacáveis que se " -"uniram para roubar os refugiados e saquear os assentamentos logo se viram " -"sem vítimas suficientes para sobreviver. Os Hell's Raiders acabaram " -"sendo destruídos quando as lutas internas entraram em guerra civil, mas " -"restaram poucos sobreviventes para celebrar sua destruição." #: src/game.cpp msgid "" @@ -182235,14 +162903,6 @@ msgid "" "leadership of the faction. When only one warlord finally secured control, " "there was nothing left to fight for... just endless cities full of the dead." msgstr "" -" Alimentados por drogas e raiva, os Hell's Raiders lutaram com unhas e " -"dentes para derrubar as últimas fortalezas da velha guarda. As vitórias " -"dispendiosas trouxeram aos senhores da guerra território e escravos " -"abundantes, mas pouco em termos de estabilidade. Em poucas semanas, as " -"brigas internas levaram à guerra civil, enquanto as tribos disputavam a " -"liderança da facção. Quando apenas um senhor da guerra finalmente conseguiu " -"o controle, não havia mais nada para lutar ... apenas cidades intermináveis " -"cheias de mortos." #: src/game.cpp #, c-format @@ -182257,7 +162917,7 @@ msgstr "" #: src/game.cpp #, c-format msgid "%s spotted!" -msgstr "%s avistado!" +msgstr "" #: src/game.cpp #, c-format @@ -182266,7 +162926,7 @@ msgstr "" #: src/game.cpp msgid "Our fibers strain with renewed wrath!" -msgstr "Nossas fibras se esforçam com ira renovada!" +msgstr "" #: src/game.cpp msgid "Hostile survivor spotted!" @@ -182278,7 +162938,7 @@ msgstr "Monstros avistados!" #: src/game.cpp src/handle_action.cpp msgid "Safe mode ON!" -msgstr "Modo Seguro LIGADO!" +msgstr "" #: src/game.cpp msgid "East:" @@ -182319,7 +162979,7 @@ msgstr "Seu alarme de movimento soa!" #: src/game.cpp #, c-format msgid "%s's brain explodes!" -msgstr "Cérebo de %s explode!" +msgstr "" #: src/game.cpp #, c-format @@ -182403,7 +163063,7 @@ msgstr "Você não pode ler uma tela de computador!" #: src/game.cpp msgid "You can not see a computer screen!" -msgstr "Você não pode ver uma tela de computador!" +msgstr "" #: src/game.cpp src/iuse.cpp msgid "You'll need to put on reading glasses before you can see the screen." @@ -182411,7 +163071,7 @@ msgstr "Você precisa colocar óculos antes de poder enxergar a tela." #: src/game.cpp msgid "The console doesn't display anything coherent." -msgstr "O console não exibe nada coerente." +msgstr "" #: src/game.cpp #, c-format @@ -182486,7 +163146,7 @@ msgstr "" #: src/game.cpp msgid "Control vehicle where?" -msgstr "Veículo de controle onde?" +msgstr "" #: src/game.cpp msgid "No vehicle there." @@ -182499,7 +163159,7 @@ msgstr "" #: src/game.cpp msgid "Talk" -msgstr "Conversa" +msgstr "" #: src/game.cpp src/monexamine.cpp msgid "Swap positions" @@ -182507,27 +163167,27 @@ msgstr "Trocar posições." #: src/game.cpp msgid "Push away" -msgstr "Afastar" +msgstr "" #: src/game.cpp msgid "Examine wounds" -msgstr "Examinar feridas" +msgstr "" #: src/game.cpp msgid "Use item on" -msgstr "Usar item em" +msgstr "" #: src/game.cpp msgid "Sort armor" -msgstr "Armadura de classificação" +msgstr "" #: src/game.cpp src/martialarts.cpp msgid "Attack" -msgstr "Atacar" +msgstr "" #: src/game.cpp msgid "Steal" -msgstr "Roubar" +msgstr "" #: src/game.cpp #, c-format @@ -182546,7 +163206,7 @@ msgstr "" #: src/game.cpp msgid "Limbs of: " -msgstr "Membros de: " +msgstr "" #: src/game.cpp msgid "Use which item?" @@ -182554,11 +163214,11 @@ msgstr "Usar qual item?" #: src/game.cpp src/iuse.cpp msgid "Never mind" -msgstr "Esqueça" +msgstr "" #: src/game.cpp src/npctalk.cpp msgid "You may be attacked! Proceed?" -msgstr "Você pode ser atacado! Proceder?" +msgstr "" #: src/game.cpp msgid "Examine where?" @@ -182566,15 +163226,15 @@ msgstr "Onde examinar?" #: src/game.cpp msgid "There is a fire here." -msgstr "Há fogo aqui." +msgstr "" #: src/game.cpp msgid "It's too big and unpredictable to evaluate how long it will last." -msgstr "É muito grande e imprevisível para avaliar quanto tempo vai durar." +msgstr "" #: src/game.cpp msgid "It's going to go out soon without extra fuel." -msgstr "Vai sair logo sem combustível extra." +msgstr "" #: src/game.cpp #, c-format @@ -182594,19 +163254,16 @@ msgstr "" msgid "" "It's quite decent and looks like it'll burn for a bit without extra fuel." msgstr "" -" É bastante decente e parece que vai queimar um pouco sem combustível extra." #: src/game.cpp msgid "It looks solid, and will burn for a few hours without extra fuel." -msgstr "Parece sólido e vai queimar por algumas horas sem combustível extra." +msgstr "" #: src/game.cpp msgid "" "It's very well supplied and even without extra fuel might burn for at least " "a part of a day." msgstr "" -" É muito bem fornecido e mesmo sem combustível extra pode queimar pelo menos" -" uma parte do dia." #: src/game.cpp #, c-format @@ -182673,19 +163330,19 @@ msgstr "" #: src/game.cpp msgid "Clearly visible." -msgstr "Claramente visível." +msgstr "" #: src/game.cpp msgid "A bright pink blur." -msgstr "Um borrão rosa brilhante." +msgstr "" #: src/game.cpp msgid "A pink blur." -msgstr "Um borrão rosa." +msgstr "" #: src/game.cpp msgid "Darkness." -msgstr "Trevas." +msgstr "" #: src/game.cpp msgid "Bright light." @@ -182693,7 +163350,7 @@ msgstr "Luz forte." #: src/game.cpp msgid "Unseen." -msgstr "Despercebidas." +msgstr "" #: src/game.cpp #, c-format @@ -182707,7 +163364,7 @@ msgstr "" #: src/game.cpp msgid "Lighting: " -msgstr "Iluminação:" +msgstr "" #: src/game.cpp #, c-format @@ -182716,7 +163373,7 @@ msgstr "" #: src/game.cpp msgid "Sign: ???" -msgstr "Placa: ???" +msgstr "" #: src/game.cpp #, c-format @@ -182744,11 +163401,11 @@ msgstr "Você não consegue ver o que tem dentro." #: src/game.cpp msgid "There's something there, but you can't see what it is." -msgstr "Há algo lá, mas você não pode ver o que é." +msgstr "" #: src/game.cpp msgid "More items here..." -msgstr "Mais itens aqui ..." +msgstr "" #: src/game.cpp #, c-format @@ -182758,27 +163415,27 @@ msgstr "" #: src/game.cpp msgid "how all / hide distant" -msgstr "como tudo / esconder distante" +msgstr "" #: src/game.cpp msgid "ap" -msgstr " ap" +msgstr "" #: src/game.cpp msgid "Zones manager" -msgstr "Gerente de zonas" +msgstr "" #: src/game.cpp msgid "Select first point." -msgstr "Selecione o primeiro ponto." +msgstr "" #: src/game.cpp msgid "Select second point." -msgstr "Selecione o segundo ponto." +msgstr "" #: src/game.cpp msgid "What do you want to change:" -msgstr "O que você quer mudar:" +msgstr "" #: src/game.cpp msgid "Edit name" @@ -182790,11 +163447,11 @@ msgstr "Editar tipo." #: src/game.cpp msgid "Edit options" -msgstr "Editar opções" +msgstr "" #: src/game.cpp msgid "Edit position" -msgstr "Editar posição" +msgstr "" #: src/game.cpp msgid "No Zones defined." @@ -182807,11 +163464,11 @@ msgstr "" #: src/game.cpp msgid "You can't see that destination." -msgstr "Você não pode ver esse destino." +msgstr "" #: src/game.cpp msgid "You can't travel there." -msgstr "Você não pode viajar para lá." +msgstr "" #: src/game.cpp src/init.cpp msgid "Items" @@ -182820,32 +163477,32 @@ msgstr "Itens" #. ~ Sort type: distance. #: src/game.cpp msgid "ort: dist" -msgstr "lugar: dist" +msgstr "" #. ~ Sort type: category. #: src/game.cpp msgid "ort: cat" -msgstr "lugar: gato" +msgstr "" #: src/game.cpp msgid "eset" -msgstr " caso" +msgstr "" #: src/game.cpp msgid "xamine" -msgstr " xamine" +msgstr "" #: src/game.cpp msgid "ompare" -msgstr " reis" +msgstr "" #: src/game.cpp msgid "ilter" -msgstr " mal-humorada" +msgstr "" #: src/game.cpp msgid "<+/->Priority" -msgstr "<+/-> Prioridade" +msgstr "" #: src/game.cpp msgid "You don't see any items or monsters around you!" @@ -182857,7 +163514,7 @@ msgstr "Filtrar:" #: src/game.cpp msgid "UP: history, CTRL-U: clear line, ESC: abort, ENTER: save" -msgstr "UP: histórico, CTRL-U: limpar linha, ESC: abortar, ENTER: salvar" +msgstr "" #: src/game.cpp msgid "High Priority:" @@ -182865,7 +163522,7 @@ msgstr "Alta prioridade:" #: src/game.cpp msgid "UP: history, CTRL-U clear line, ESC: abort, ENTER: save" -msgstr "UP: histórico, linha clara CTRL-U, ESC: abortar, ENTER: salvar" +msgstr "" #: src/game.cpp msgid "Low Priority:" @@ -182881,7 +163538,7 @@ msgstr "BAIXA PRIORIDADE" #: src/game.cpp msgid "You don't see any items around you!" -msgstr "Você não vê nenhum item ao seu redor!" +msgstr "" #: src/game.cpp msgid "Monsters" @@ -182889,15 +163546,15 @@ msgstr "Monstros" #: src/game.cpp msgid "You don't see any monsters around you!" -msgstr "Você não vê monstros ao seu redor!" +msgstr "" #: src/game.cpp msgid "emove from safemode Blacklist" -msgstr " emove de safemode lista negra" +msgstr "" #: src/game.cpp msgid "dd to safemode Blacklist" -msgstr "dd para lista negra de safemode" +msgstr "" #: src/game.cpp msgid "to look around" @@ -182909,7 +163566,7 @@ msgstr "para atirar" #: src/game.cpp msgid "Drop where?" -msgstr "Cair onde?" +msgstr "" #. ~ Name and number of items listed for cutting up #: src/game.cpp @@ -182949,11 +163606,11 @@ msgstr "" #: src/game.cpp msgid "Choose type of butchery:" -msgstr "Escolha o tipo de açougue:" +msgstr "" #: src/game.cpp msgid "Quick butchery" -msgstr "Açougue rápido" +msgstr "" #: src/game.cpp msgid "" @@ -182962,14 +163619,10 @@ msgid "" " but it's useful if you don't want to set up a workshop. Prevents zombies " "from raising." msgstr "" -" Esta técnica é usada quando você está com pressa, mas ainda quer colher " -"algo do cadáver. Os rendimentos são mais baixos porque você não tenta ser " -"preciso, mas é útil se você não quiser montar um workshop. Impede que zumbis" -" aumentem." #: src/game.cpp msgid "Full butchery" -msgstr "Açougue cheio" +msgstr "" #: src/game.cpp msgid "" @@ -182978,14 +163631,10 @@ msgid "" " etc.) and good tools. Yields are plentiful and varied, but it is time " "consuming." msgstr "" -" Esta técnica é usada para abater um cadáver de forma adequada e requer uma " -"corda e uma árvore ou um suporte para abate, uma superfície plana (por " -"exemplo, uma mesa, uma lona de couro, etc.) e boas ferramentas. Os " -"rendimentos são abundantes e variados, mas é demorado." #: src/game.cpp msgid "Field dress corpse" -msgstr "Cadáver vestido de campo" +msgstr "" #: src/game.cpp msgid "" @@ -182994,10 +163643,6 @@ msgid "" "lighter and will stay fresh longer. Can be combined with other methods for " "better effects." msgstr "" -" Técnica que envolve a remoção de órgãos internos e vísceras para proteger o" -" cadáver de apodrecer de dentro. Produz órgãos internos. Carcaça será mais " -"leve e permanecerá fresca por mais tempo. Pode ser combinado com outros " -"métodos para melhores efeitos." #: src/game.cpp msgid "Skin corpse" @@ -183010,15 +163655,10 @@ msgid "" "good job. Some corpses are too small to yield a full-sized hide and will " "instead produce scraps that can be used in other ways." msgstr "" -" Esfolar um cadáver é um processo envolvido e cuidadoso que normalmente leva" -" algum tempo. Você precisa de habilidade e uma faca apropriadamente afiada e" -" precisa para fazer um bom trabalho. Alguns cadáveres são pequenos demais " -"para produzir um esconderijo de tamanho normal e, em vez disso, produzem " -"aparas que podem ser usadas de outras maneiras." #: src/game.cpp msgid "Quarter corpse" -msgstr "Cadáver de um quarto" +msgstr "" #: src/game.cpp msgid "" @@ -183027,10 +163667,6 @@ msgid "" "This action destroys skin, hide, pelt, etc., so don't use it if you want to " "harvest them later." msgstr "" -" Ao aquartelar um cadáver vestido anteriormente em campo, você adquirirá " -"quatro partes com peso e volume reduzidos. Pode ajudar no transporte de " -"grandes jogos. Essa ação destrói a pele, a pele, a pele, etc., então não use" -" se quiser colhê-las mais tarde." #: src/game.cpp msgid "Dismember corpse" @@ -183045,7 +163681,7 @@ msgstr "" #: src/game.cpp msgid "Dissect corpse" -msgstr "Dissecar o cadáver" +msgstr "" #: src/game.cpp msgid "" @@ -183057,64 +163693,59 @@ msgstr "" #: src/game.cpp msgid "You can't butcher while driving!" -msgstr "Você não pode açougueiro enquanto estiver dirigindo!" +msgstr "" #: src/game.cpp msgid "You don't have a butchering tool." -msgstr "Você não tem uma ferramenta de abate." +msgstr "" #: src/game.cpp msgid "There are no corpses here to butcher." -msgstr "Não há cadáveres aqui para açougueiro." +msgstr "" #: src/game.cpp msgid "You can't access the items here." -msgstr "Você não pode acessar os itens aqui." +msgstr "" #: src/game.cpp msgid "You don't have the necessary tools to disassemble any items here." msgstr "" -" Você não tem as ferramentas necessárias para desmontar qualquer item aqui." #: src/game.cpp #, c-format msgid "You see %s nearby! Start butchering anyway?" -msgstr "Você vê %s perto! Fazer desossa mesmo assim?" +msgstr "" #: src/game.cpp msgid "Choose corpse to butcher / item to disassemble" -msgstr "Escolha cadáver para açougueiro / item para desmontar" +msgstr "" #: src/game.cpp msgid "Butcher everything" -msgstr "Destroçar tudo" +msgstr "" #: src/game.cpp msgid "Disassemble everything once" -msgstr "Desmontar tudo de uma vez" +msgstr "" #: src/game.cpp msgid "Disassemble everything" -msgstr "Desmontar tudo" +msgstr "" #: src/game.cpp msgid "Cut up everything" -msgstr "Corte tudo" +msgstr "" #: src/game.cpp msgid "" "You are not in the mood and the prospect of guts and blood on your hands " "convinces you to turn away." msgstr "" -" Você não está de bom humor e a perspectiva de coragem e sangue em suas mãos" -" o convence a se afastar." #: src/game.cpp msgid "" "You are not in the mood and the prospect of work stops you before you begin." msgstr "" -" Você não está de bom humor e a perspectiva de trabalho o impede antes de " -"começar." #: src/game.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp src/veh_interact.cpp #: src/veh_interact.cpp @@ -183133,7 +163764,7 @@ msgstr "" #: src/game.cpp msgid "You're too full to graze." -msgstr "Você está muito cheio para pastar." +msgstr "" #: src/game.cpp msgid "You eat the grass." @@ -183141,15 +163772,15 @@ msgstr "" #: src/game.cpp msgid "This grass is too short to graze." -msgstr "Esta grama é muito curta para pastar." +msgstr "" #: src/game.cpp msgid "This grass is dead and too mangled for you to graze." -msgstr "Esta grama está morta e muito destruída para pastar." +msgstr "" #: src/game.cpp msgid "This grass is tainted with paint and thus inedible." -msgstr "Esta grama está suja de tinta e assim, não comestível." +msgstr "" #: src/game.cpp #, c-format @@ -183158,11 +163789,11 @@ msgstr "" #: src/game.cpp msgid "Change side for item" -msgstr "Alterar o lado do item" +msgstr "" #: src/game.cpp msgid "You don't have sided items worn." -msgstr "Você não tem itens do lado usados." +msgstr "" #: src/game.cpp #, c-format @@ -183186,23 +163817,23 @@ msgstr "" #: src/game.cpp msgid "Reload item" -msgstr "Recarregar item" +msgstr "" #: src/game.cpp msgid "You have nothing to reload." -msgstr "Você não tem nada para recarregar." +msgstr "" #: src/game.cpp msgid "Unload item" -msgstr "Descarregar item" +msgstr "" #: src/game.cpp msgid "You have nothing to unload." -msgstr "Você não tem nada para descarregar." +msgstr "" #: src/game.cpp msgid "You're not wielding anything." -msgstr "Você não está empunhando nada." +msgstr "" #: src/game.cpp src/player.cpp #, c-format @@ -183221,7 +163852,7 @@ msgstr "" #: src/game.cpp msgid "a survivor" -msgstr "um sobrevivente" +msgstr "" #: src/game.cpp #, c-format @@ -183242,15 +163873,15 @@ msgstr "" #: src/game.cpp msgid "Engage targets." -msgstr "Envolva alvos." +msgstr "" #: src/game.cpp msgid "Reprogram the manhack?" -msgstr "Reprogramar o manhack?" +msgstr "" #: src/game.cpp msgid "Follow me." -msgstr "Me siga." +msgstr "" #: src/game.cpp #, c-format @@ -183265,7 +163896,7 @@ msgstr "" #: src/game.cpp #, c-format msgid "Really step into %s?" -msgstr "Realmente pisar em %s?" +msgstr "" #: src/game.cpp #, c-format @@ -183278,7 +163909,7 @@ msgstr "" #: src/game.cpp msgid "Can't find grabbed object." -msgstr "Não é possível encontrar o objeto agarrado." +msgstr "" #: src/game.cpp msgid "You cannot board a vehicle whilst mounted." @@ -183300,15 +163931,15 @@ msgstr "" #: src/game.cpp msgid "Your tentacles stick to the ground, but you pull them free." -msgstr "Seus tentáculos grudam no chão, mas você os liberta." +msgstr "" #: src/game.cpp msgid "footsteps" -msgstr "passos" +msgstr "" #: src/game.cpp msgid "a rattling sound." -msgstr "um som de chocalho." +msgstr "" #: src/game.cpp #, c-format @@ -183327,7 +163958,7 @@ msgstr "" #: src/game.cpp msgid "There is a sign here, but you are unable to read it." -msgstr "Há um sinal aqui, mas você não consegue lê-lo." +msgstr "" #: src/game.cpp #, c-format @@ -183336,7 +163967,7 @@ msgstr "" #: src/game.cpp msgid "Something is written here, but you are unable to read it." -msgstr "Algo está escrito aqui, mas você não consegue lê-lo." +msgstr "" #: src/game.cpp #, c-format @@ -183376,7 +164007,7 @@ msgstr "" #: src/game.cpp msgid "There's something here, but you can't see what it is." -msgstr "Há algo aqui, mas você não pode ver o que é." +msgstr "" #: src/game.cpp msgid "There's something here, but you can't reach it whilst mounted." @@ -183393,17 +164024,17 @@ msgstr[1] "" #: src/game.cpp #, c-format msgid "You see here %s." -msgstr "Você vê %s." +msgstr "" #: src/game.cpp #, c-format msgid "You see here %s and %s." -msgstr "Você vê %s e %s." +msgstr "" #: src/game.cpp #, c-format msgid "You see here %s, %s, and %s." -msgstr "Você vê %s, %s e %s." +msgstr "" #: src/game.cpp #, c-format @@ -183415,16 +164046,16 @@ msgstr[1] "" #: src/game.cpp #, c-format msgid "You see here %s and many more items." -msgstr "Você vê aqui %s e muitos mais itens." +msgstr "" #: src/game.cpp msgid "There are vehicle controls here." -msgstr "Existem controles de veículos aqui." +msgstr "" #: src/game.cpp #, c-format msgid "%s to drive." -msgstr "%s para dirigir." +msgstr "" #: src/game.cpp msgid "" @@ -183436,12 +164067,10 @@ msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " "with more energy!" msgstr "" -" Você tenta o túnel quântico através da barreira, mas são refletidos! Tente " -"novamente com mais energia!" #: src/game.cpp msgid "It's too dangerous to tunnel that far!" -msgstr "É muito perigoso fazer um túnel tão longe!" +msgstr "" #: src/game.cpp #, c-format @@ -183450,7 +164079,7 @@ msgstr "" #: src/game.cpp msgid "No furniture at grabbed point." -msgstr "Nenhum mobiliário no ponto agarrado." +msgstr "" #: src/game.cpp #, c-format @@ -183464,7 +164093,7 @@ msgstr "" #: src/game.cpp msgid "There's stuff in the way." -msgstr "Tem coisas no caminho." +msgstr "" #: src/game.cpp #, c-format @@ -183503,15 +164132,15 @@ msgstr "" #: src/game.cpp msgid "You dive into water." -msgstr "Você mergulha na água." +msgstr "" #: src/game.cpp msgid "You fall into water." -msgstr "Você cai na água." +msgstr "" #: src/game.cpp msgid "Climb where?" -msgstr "Subir onde?" +msgstr "" #: src/game.cpp #, c-format @@ -183530,70 +164159,66 @@ msgstr "" #: src/game.cpp msgid "There's something else behind it!" -msgstr "Há algo mais por trás disso!" +msgstr "" #: src/game.cpp msgid "You manage to slip past!" -msgstr "Você consegue escapar!" +msgstr "" #: src/game.cpp msgid "You manage to push past!" -msgstr "Você consegue empurrar passado!" +msgstr "" #: src/game.cpp msgid "You are already underwater!" -msgstr "Você já está debaixo d'água!" +msgstr "" #: src/game.cpp msgid "You can't dive while wearing a flotation device." -msgstr "Você não pode mergulhar usando um dispositivo de flutuação." +msgstr "" #: src/game.cpp msgid "You dive underwater!" -msgstr "Você mergulha debaixo d'água!" +msgstr "" #: src/game.cpp msgid "You surface." -msgstr "Você superfície." +msgstr "" #: src/game.cpp msgid "You try to surface but can't!" -msgstr "Você tenta aparecer, mas não consegue!" +msgstr "" #: src/game.cpp msgid "You can't climb here - there's a ceiling above your head" -msgstr "Você não pode subir aqui - há um teto acima da sua cabeça" +msgstr "" #: src/game.cpp msgid "" "You can't climb here - you need walls and/or furniture to brace against" msgstr "" -" Você não pode subir aqui - você precisa de paredes e / ou móveis para se " -"apoiar" #: src/game.cpp msgid "" "You can't climb here - there is no terrain above you that would support your" " weight" msgstr "" -" Você não pode subir aqui - não há terreno acima de você que suporte seu " -"peso" #: src/game.cpp msgid "You can't go down here!" -msgstr "Você não pode descer aqui!" +msgstr "" #: src/game.cpp msgid "You can't go up here!" -msgstr "Você não pode subir aqui!" +msgstr "" #: src/game.cpp msgid "You can't drag things up and down stairs." -msgstr "Você não pode arrastar as coisas para cima e para baixo." +msgstr "" #: src/game.cpp src/handle_action.cpp msgid "You cannot haul items here." -msgstr "Você não pode transportar itens aqui." +msgstr "" #: src/game.cpp #, c-format @@ -183605,85 +164230,75 @@ msgid "" "There is a LOT of heat coming out of there, even the stairs have melted " "away. Jump down? You won't be able to get back up." msgstr "" -" Há muito calor saindo de lá, até as escadas se derreteram. Saltar para " -"baixo? Você não poderá se recuperar." #: src/game.cpp msgid "" "There is a LOT of heat coming out of there. Push through the half-molten " "rocks and ascend? You will not be able to get back down." msgstr "" -" Há muito calor saindo de lá. Empurre através das rochas meio derretidas e " -"suba? Você não poderá voltar atrás." #: src/game.cpp msgid "You may be unable to return back down these stairs. Continue up?" msgstr "" -" Você pode ser incapaz de voltar a descer essas escadas. Continue para cima?" #: src/game.cpp msgid "Halfway down, the way down becomes blocked off." -msgstr "Na metade do caminho, o caminho para baixo fica bloqueado." +msgstr "" #: src/game.cpp msgid "There is a sheer drop halfway down. Web-descend?" -msgstr "Há uma queda completa até a metade. Descer na web?" +msgstr "" #: src/game.cpp msgid "" "You attach a web and dive down headfirst, flipping upright and landing on " "your feet." msgstr "" -" Você prende uma teia e mergulha de cabeça, virando na vertical e " -"aterrissando de pé." #: src/game.cpp msgid "You securely web up and work your way down, lowering yourself safely." -msgstr "Você se segura na Web e desce, abaixando-se com segurança." +msgstr "" #: src/game.cpp msgid "There is a sheer drop halfway down. Use your vines to descend?" -msgstr "Há uma queda completa até a metade. Use suas vinhas para descer?" +msgstr "" #: src/game.cpp msgid "Detach a vine? It'll hurt, but you'll be able to climb back up..." -msgstr "Separar uma videira? Vai doer, mas você poderá subir de volta ..." +msgstr "" #: src/game.cpp msgid "You descend on your vines, though leaving a part of you behind stings." msgstr "" -" Você desce em suas videiras, embora deixando uma parte de você atrás de " -"picadas." #: src/game.cpp msgid "You gingerly descend using your vines." -msgstr "Você descende cautelosamente usando suas vinhas." +msgstr "" #: src/game.cpp msgid "" "You effortlessly lower yourself and leave a vine rooted for future use." msgstr "" -" Você se abaixa sem esforço e deixa uma videira enraizada para uso futuro." #: src/game.cpp msgid "There is a sheer drop halfway down. Climb your grappling hook down?" -msgstr "Há uma queda completa até a metade. Suba o seu gancho para baixo?" +msgstr "" #: src/game.cpp msgid "There is a sheer drop halfway down. Climb your rope down?" -msgstr "Há uma queda completa até a metade. Suba a corda?" +msgstr "" #: src/game.cpp msgid "There is a sheer drop halfway down. Jump?" -msgstr "Há uma queda completa até a metade. Saltar?" +msgstr "" #: src/game.cpp msgid "AUTO: goes down" -msgstr "AUTO: desce" +msgstr "" #: src/game.cpp msgid "AUTO: goes up" -msgstr "AUTO: sobe" +msgstr "" #: src/game.cpp #, c-format @@ -183703,7 +164318,7 @@ msgstr "" #: src/game.cpp msgid "a sound nearby from the stairs!" -msgstr "um som nas proximidades da escada!" +msgstr "" #: src/game.cpp #, c-format @@ -183781,11 +164396,11 @@ msgstr "" #: src/game.cpp msgid "Set the Scent Map sensitivity to (0 to cancel)?" -msgstr "Definir a sensibilidade do mapa de fragmentos para (0 para cancelar)?" +msgstr "" #: src/game.cpp msgid "Saving game, this may take a while" -msgstr "Salvando jogo, isso pode demorar um pouco" +msgstr "" #: src/game.cpp #, c-format @@ -183821,25 +164436,22 @@ msgid "" "You don't seem to have a valid Unicode locale. You may see some weird " "characters (e.g. empty boxes or question marks). You have been warned." msgstr "" -" Você não parece ter uma localidade Unicode válida. Você pode ver alguns " -"caracteres estranhos (por exemplo, caixas vazias ou pontos de interrogação)." -" Você foi avisado." #: src/game.cpp src/player.cpp msgid "You suddenly feel sharp pain for no reason." -msgstr "De repente você sente uma dor aguda sem motivo." +msgstr "" #: src/game.cpp msgid "You feel your body decaying." -msgstr "Você sente seu corpo decaindo." +msgstr "" #: src/game.cpp msgid "You feel fatigue seeping into your body." -msgstr "Você sente fadiga se infiltrando em seu corpo." +msgstr "" #: src/game.cpp msgid "The portal collapses!" -msgstr "O portal entra em colapso!" +msgstr "" #: src/game.cpp #, c-format @@ -183853,91 +164465,91 @@ msgstr "" #: src/game.cpp msgid "Your skin feels slithery." -msgstr "Sua pele parece escorregadia." +msgstr "" #: src/game.cpp msgid "You fade into invisibility!" -msgstr "Você desaparece na invisibilidade!" +msgstr "" #: src/game.cpp msgid "You can see through walls!" -msgstr "Você pode ver através das paredes!" +msgstr "" #: src/game.cpp msgid "You can see through everything!" -msgstr "Você pode ver através de tudo!" +msgstr "" #: src/game.cpp msgid "Your steps stop making noise." -msgstr "Seus passos param de fazer barulho." +msgstr "" #: src/game.cpp msgid "A glow of light forms around you." -msgstr "Um brilho de luz se forma ao seu redor." +msgstr "" #: src/game.cpp msgid "Your mental state feels protected." -msgstr "Seu estado mental parece protegido." +msgstr "" #: src/game.cpp msgid "You feel insulated." -msgstr "Você se sente isolado." +msgstr "" #: src/game.cpp msgid "Your back feels strengthened." -msgstr "Suas costas se sentem fortalecidas." +msgstr "" #: src/game.cpp msgid "You feel a pleasant tingle." -msgstr "Você sente um formigamento agradável." +msgstr "" #: src/game.cpp msgid "You feel hungry." -msgstr "Você sente fome." +msgstr "" #: src/game.cpp msgid "You feel thirsty." -msgstr "Você sente sede." +msgstr "" #: src/game.cpp msgid "You feel an evil presence..." -msgstr "Você sente uma presença maligna ..." +msgstr "" #: src/game.cpp msgid "You feel a tickle of insanity." -msgstr "Você sente uma pontada de insanidade." +msgstr "" #: src/game.cpp msgid "Your skin prickles with radiation." -msgstr "Sua pele se arrepia com radiação." +msgstr "" #: src/game.cpp msgid "You feel your genetic makeup degrading." -msgstr "Você sente sua composição genética se degradando." +msgstr "" #: src/game.cpp msgid "You feel an otherworldly attention upon you..." -msgstr "Você sente uma atenção sobrenatural sobre você ..." +msgstr "" #: src/game.cpp msgid "You feel a force pulling you inwards." -msgstr "Você sente uma força puxando você para dentro." +msgstr "" #: src/game.cpp msgid "You hear a rattling noise coming from inside yourself." -msgstr "Você ouve um barulho vindo de dentro de si mesmo." +msgstr "" #: src/game.cpp msgid "You feel storms coming." -msgstr "Você sente tempestades vindo." +msgstr "" #: src/game.cpp msgid "You feel unwell." -msgstr "Você se sente mal." +msgstr "" #: src/game.cpp msgid "A cloud of smoke appears." -msgstr "Uma nuvem de fumaça aparece." +msgstr "" #: src/game.cpp #, c-format @@ -183966,7 +164578,7 @@ msgstr "" #: src/game_inventory.cpp msgid "You don't have the necessary item at hand." -msgstr "Você não tem o item necessário à mão." +msgstr "" #: src/game_inventory.cpp #, c-format @@ -183977,7 +164589,7 @@ msgstr "" #: src/game_inventory.cpp src/inventory_ui.cpp msgid "Your inventory is empty." -msgstr "Seu inventário está vazio." +msgstr "" #: src/game_inventory.cpp #, c-format @@ -183986,51 +164598,51 @@ msgstr "" #: src/game_inventory.cpp msgid "ENCUMBRANCE" -msgstr "ENCUMBRANCE" +msgstr "" #: src/game_inventory.cpp msgid "COVERAGE" -msgstr "COBERTURA" +msgstr "" #: src/game_inventory.cpp msgid "WARMTH" -msgstr "CALOR" +msgstr "" #: src/game_inventory.cpp msgid "BASH" -msgstr "BATER" +msgstr "" #: src/game_inventory.cpp msgid "CUT" -msgstr "CORTAR" +msgstr "" #: src/game_inventory.cpp msgid "ACID" -msgstr "ÁCIDO" +msgstr "" #: src/game_inventory.cpp msgid "FIRE" -msgstr "FOGO" +msgstr "" #: src/game_inventory.cpp msgid "ENV" -msgstr "ENV" +msgstr "" #: src/game_inventory.cpp src/player.cpp msgid "Wear item" -msgstr "Item de desgaste" +msgstr "" #: src/game_inventory.cpp msgid "You have nothing to wear." -msgstr "Você não tem nada para vestir." +msgstr "" #: src/game_inventory.cpp msgid "Take off item" -msgstr "Tirar item" +msgstr "" #: src/game_inventory.cpp msgid "You don't wear anything." -msgstr "Você não usa nada." +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184044,60 +164656,60 @@ msgstr "" #: src/game_inventory.cpp msgid "Can't pick up spilt liquids" -msgstr "Não pode pegar líquidos derramados" +msgstr "" #: src/game_inventory.cpp msgid "Too big to pick up" -msgstr "Grande demais para pegar" +msgstr "" #: src/game_inventory.cpp msgid "Too heavy to pick up" -msgstr "Muito pesado para pegar" +msgstr "" #: src/game_inventory.cpp msgid "YIELD" -msgstr "PRODUÇÃO" +msgstr "" #: src/game_inventory.cpp msgid "TIME" -msgstr "TEMPO" +msgstr "" #: src/game_inventory.cpp msgid "Disassemble item" -msgstr "Desmontar item" +msgstr "" #: src/game_inventory.cpp msgid "You don't have any items you could disassemble." -msgstr "Você não tem nenhum item que possa desmontar." +msgstr "" #: src/game_inventory.cpp msgid "CALORIES" -msgstr "CALORIAS" +msgstr "" #: src/game_inventory.cpp msgid "QUENCH" -msgstr "QUENCH" +msgstr "" #: src/game_inventory.cpp msgid "JOY" -msgstr "ALEGRIA" +msgstr "" #. ~ Used for permafood shelf life in the Eat menu #: src/game_inventory.cpp msgid "indefinite" -msgstr "indefinido" +msgstr "" #: src/game_inventory.cpp msgid "SHELF LIFE" -msgstr "VALIDADE" +msgstr "" #: src/game_inventory.cpp msgid "FRESHNESS" -msgstr "FRESCURA" +msgstr "" #: src/game_inventory.cpp msgid "SPOILS IN" -msgstr "SPOILS EM" +msgstr "" #: src/game_inventory.cpp msgid "Battery" @@ -184105,67 +164717,67 @@ msgstr "Bateria" #: src/game_inventory.cpp msgid "Reactor" -msgstr "Reator" +msgstr "" #: src/game_inventory.cpp msgid "Furnace" -msgstr "Forno" +msgstr "" #: src/game_inventory.cpp msgid "CBM" -msgstr "CBM" +msgstr "" #: src/game_inventory.cpp msgid "ENERGY" -msgstr "ENERGIA" +msgstr "" #: src/game_inventory.cpp msgid "Can't drink spilt liquids" -msgstr "Não pode beber líquidos derramados" +msgstr "" #: src/game_inventory.cpp msgid "You're fully charged" -msgstr "Você está totalmente carregado" +msgstr "" #: src/game_inventory.cpp msgid "soon!" -msgstr "logo!" +msgstr "" #: src/game_inventory.cpp msgid "fresh" -msgstr "fresco" +msgstr "" #: src/game_inventory.cpp msgid "quite fresh" -msgstr "quse fresco" +msgstr "" #: src/game_inventory.cpp msgid "near midlife" -msgstr "próximo à meia vida" +msgstr "" #: src/game_inventory.cpp msgid "past midlife" -msgstr "passada meia vida" +msgstr "" #: src/game_inventory.cpp msgid "getting older" -msgstr "ficando velho" +msgstr "" #: src/game_inventory.cpp msgid "old" -msgstr "velho" +msgstr "" #: src/game_inventory.cpp msgid "rotten" -msgstr "podre" +msgstr "" #: src/game_inventory.cpp msgid "Consume item" -msgstr "Consumir item" +msgstr "" #: src/game_inventory.cpp msgid "You have nothing to consume." -msgstr "Você não tem nada para consumir." +msgstr "" #: src/game_inventory.cpp msgid "Consume food" @@ -184193,7 +164805,7 @@ msgstr "" #: src/game_inventory.cpp msgid "ACTION" -msgstr "AÇÃO" +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184204,48 +164816,48 @@ msgstr[1] "" #: src/game_inventory.cpp msgid "Use item" -msgstr "Usar item" +msgstr "" #: src/game_inventory.cpp msgid "You don't have any items you can use." -msgstr "Você não tem nenhum item que possa usar." +msgstr "" #: src/game_inventory.cpp msgid "always" -msgstr "sempre" +msgstr "" #: src/game_inventory.cpp msgid "SUCCESS CHANCE" -msgstr "CHANCE DE SUCESSO" +msgstr "" #: src/game_inventory.cpp msgid "DAMAGE RISK" -msgstr "RISCO DE DANOS" +msgstr "" #: src/game_inventory.cpp #, c-format msgid "requires at least %s" -msgstr "precisa pelo menos %s" +msgstr "" #: src/game_inventory.cpp msgid "is too difficult for you to modify" -msgstr "é muito difícil para você modificar" +msgstr "" #: src/game_inventory.cpp msgid "Select gun to modify" -msgstr "Selecione uma arma para modificar" +msgstr "" #: src/game_inventory.cpp msgid "You don't have any guns to modify." -msgstr "Você não tem armas para modificar." +msgstr "" #: src/game_inventory.cpp msgid "?" -msgstr " ? " +msgstr "" #: src/game_inventory.cpp msgid "martial arts" -msgstr "artes marciais" +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184258,19 +164870,19 @@ msgstr "" #: src/game_inventory.cpp msgid "RECIPES" -msgstr "RECEITAS" +msgstr "" #: src/game_inventory.cpp msgid "FUN" -msgstr "DIVERSÃO" +msgstr "" #: src/game_inventory.cpp msgid "CHAPTER IN" -msgstr "CAPITULO EM" +msgstr "" #: src/game_inventory.cpp msgid "You have nothing to read." -msgstr "Você não tem nada para ler." +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184285,27 +164897,27 @@ msgstr "" #: src/game_inventory.cpp msgctxt "Shot as damage" msgid "SHOT" -msgstr "TIRO" +msgstr "" #: src/game_inventory.cpp msgid "STAB" -msgstr "PUNHALADA" +msgstr "" #: src/game_inventory.cpp msgid "MELEE" -msgstr "MELEE" +msgstr "" #: src/game_inventory.cpp msgid "MOVES" -msgstr "MOVIMENTOS" +msgstr "" #: src/game_inventory.cpp msgid "Wield item" -msgstr "Empunhar item" +msgstr "" #: src/game_inventory.cpp msgid "You have nothing to wield." -msgstr "Você não tem nada para empunhar." +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184314,7 +164926,7 @@ msgstr "" #: src/game_inventory.cpp src/iuse_actor.cpp msgid "Holster item" -msgstr "Item de coldre" +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184328,15 +164940,15 @@ msgstr "" #: src/game_inventory.cpp src/iuse.cpp msgid "Cut up what?" -msgstr "Cortar o quê?" +msgstr "" #: src/game_inventory.cpp msgid "You have nothing to cut up." -msgstr "Você não tem nada para cortar." +msgstr "" #: src/game_inventory.cpp msgid "Repair what?" -msgstr "Reparar o quê?" +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184345,11 +164957,11 @@ msgstr "" #: src/game_inventory.cpp msgid "Saw barrel" -msgstr "Barril de serra" +msgstr "" #: src/game_inventory.cpp msgid "You don't have any guns." -msgstr "Você não tem armas." +msgstr "" #: src/game_inventory.cpp #, c-format @@ -184358,23 +164970,23 @@ msgstr "" #: src/game_inventory.cpp msgid "Multidrop" -msgstr "Multidrop" +msgstr "" #: src/game_inventory.cpp msgid "To drop x items, type a number before selecting." -msgstr "Para descartar x itens, digite um número antes de selecionar." +msgstr "" #: src/game_inventory.cpp msgid "You have nothing to drop." -msgstr "Você não tem nada a perder." +msgstr "" #: src/game_inventory.cpp msgid "Select two items to compare them." -msgstr "Selecione dois itens para compará-los." +msgstr "" #: src/game_inventory.cpp msgid "There are no items to compare." -msgstr "Não há itens para comparar." +msgstr "" #: src/game_inventory.cpp msgid "" @@ -184524,7 +165136,7 @@ msgstr "" #: src/gates.cpp msgid "You'll need to construct a seal to close the crate!" -msgstr "Você precisará construir um selo para fechar a caixa!" +msgstr "" #: src/gates.cpp #, c-format @@ -184543,11 +165155,11 @@ msgstr "Tem muita coisa no caminho." #: src/gates.cpp msgid "stuff" -msgstr "coisa" +msgstr "" #: src/grab.cpp msgid "No vehicle at grabbed point." -msgstr "Nenhum veículo no ponto agarrado." +msgstr "" #: src/grab.cpp #, c-format @@ -184572,11 +165184,11 @@ msgstr "" #: src/grab.cpp #, c-format msgid "You lack the strength to move the %s" -msgstr "Falta-te força para mover %s" +msgstr "" #: src/grab.cpp msgid "errors in movement code" -msgstr "erros no código de movimento" +msgstr "" #: src/grab.cpp #, c-format @@ -184590,25 +165202,24 @@ msgstr "" #: src/handle_action.cpp msgid "No radio car connected." -msgstr "Nenhum carro de rádio conectado." +msgstr "" #: src/handle_action.cpp msgid "sound of a collision with an obstacle." -msgstr "som de uma colisão com um obstáculo." +msgstr "" #. ~ Sound of moving a remote controlled car #: src/handle_action.cpp msgid "zzz..." -msgstr "zzz ..." +msgstr "" #: src/handle_action.cpp msgid "You can't drive the vehicle from here. You need controls!" -msgstr "Você não pode dirigir o veículo daqui. Você precisa de controles!" +msgstr "" #: src/handle_action.cpp msgid "Can't drive this vehicle remotely. It has no working controls." msgstr "" -" Não pode dirigir este veículo remotamente. Não tem controles de trabalho." #: src/handle_action.cpp msgid "Open where?" @@ -184660,7 +165271,7 @@ msgstr "Onde agarrar?" #: src/handle_action.cpp msgid "You get a hold of yourself." -msgstr "Você se segura." +msgstr "" #: src/handle_action.cpp #, c-format @@ -184683,15 +165294,15 @@ msgstr "Não há nada para agarrar aqui!" #: src/handle_action.cpp msgid "You cannot haul inside vehicles." -msgstr "Você não pode transportar dentro de veículos." +msgstr "" #: src/handle_action.cpp msgid "You cannot haul while in deep water." -msgstr "Você não pode transportar enquanto estiver em águas profundas." +msgstr "" #: src/handle_action.cpp msgid "There are no items to haul here." -msgstr "Não há itens para transportar aqui." +msgstr "" #: src/handle_action.cpp msgid "Smash where?" @@ -184745,11 +165356,11 @@ msgstr "" #: src/handle_action.cpp msgid "Wait 300 heartbeats" -msgstr "Espere 300 batimentos cardíacos" +msgstr "" #: src/handle_action.cpp msgid "Wait 1800 heartbeats" -msgstr "Espere 1800 batimentos cardíacos" +msgstr "" #: src/handle_action.cpp msgid "Set alarm for dawn" @@ -184757,7 +165368,7 @@ msgstr "" #: src/handle_action.cpp msgid "Wait till dawn" -msgstr "Espere pelo amanhecer" +msgstr "" #: src/handle_action.cpp msgid "Set alarm for noon" @@ -184765,7 +165376,7 @@ msgstr "" #: src/handle_action.cpp msgid "Wait till noon" -msgstr "Espere até o meio dia" +msgstr "" #: src/handle_action.cpp msgid "Set alarm for dusk" @@ -184773,7 +165384,7 @@ msgstr "" #: src/handle_action.cpp msgid "Wait till dusk" -msgstr "Espere até o crepúsculo" +msgstr "" #: src/handle_action.cpp msgid "Set alarm for midnight" @@ -184781,7 +165392,7 @@ msgstr "" #: src/handle_action.cpp msgid "Wait till midnight" -msgstr "Espere até a meia noite" +msgstr "" #: src/handle_action.cpp msgid "Cancel the currently set alarm." @@ -184789,7 +165400,7 @@ msgstr "" #: src/handle_action.cpp msgid "Wait till weather changes" -msgstr "Espere até as mudanças climáticas" +msgstr "" #: src/handle_action.cpp #, c-format @@ -184802,7 +165413,7 @@ msgstr "" #: src/handle_action.cpp msgid "Wait for how long?" -msgstr "Espere por quanto tempo?" +msgstr "" #: src/handle_action.cpp msgid "You cancel your alarm." @@ -184814,15 +165425,15 @@ msgstr "" #: src/handle_action.cpp msgid "Are you sure you want to sleep?" -msgstr "Tem certeza de que quer dormir?" +msgstr "" #: src/handle_action.cpp src/iuse.cpp msgid "Yes." -msgstr "Sim." +msgstr "" #: src/handle_action.cpp msgid "Yes, and save game before sleeping." -msgstr "Sim, e salve o jogo antes de dormir." +msgstr "" #: src/handle_action.cpp #, c-format @@ -184831,23 +165442,21 @@ msgstr "" #: src/handle_action.cpp msgid "You may want to deactivate these before you sleep." -msgstr "Você pode querer desativá-los antes de dormir." +msgstr "" #: src/handle_action.cpp msgid "" "You're engorged to hibernate. The alarm would only attract attention. Set an" " alarm anyway?" msgstr "" -" Você está ingurgitado de hibernar. O alarme só atrairia atenção. Definir um" -" alarme de qualquer maneira?" #: src/handle_action.cpp msgid "You have an alarm clock. Set an alarm?" -msgstr "Você tem um despertador. Definir um alarme?" +msgstr "" #: src/handle_action.cpp msgid "No, don't set an alarm." -msgstr "Não, não defina um alarme." +msgstr "" #: src/handle_action.cpp #, c-format @@ -184856,7 +165465,7 @@ msgstr "" #: src/handle_action.cpp msgid "There is no compatible zone nearby." -msgstr "Não há zona compatível nas proximidades." +msgstr "" #: src/handle_action.cpp #, c-format @@ -184865,11 +165474,11 @@ msgstr "" #: src/handle_action.cpp msgid "Pick action:" -msgstr "Escolha a ação:" +msgstr "" #: src/handle_action.cpp msgid "Sort out my loot" -msgstr "Ordenar meu saque" +msgstr "" #: src/handle_action.cpp msgid "" @@ -184877,65 +165486,56 @@ msgid "" "zones. Uses empty space in your inventory or utilizes a cart, if you are " "holding one." msgstr "" -" Ordena o saque de Saque: Zona não classificada para zonas de saque " -"apropriadas próximas. Usa o espaço vazio em seu inventário ou utiliza um " -"carrinho, se você estiver segurando um." #: src/handle_action.cpp msgid "Till farm plots" -msgstr "Para terrenos agrícolas" +msgstr "" #: src/handle_action.cpp msgid "Till farm plots... you need a tool to dig with" msgstr "" -" Até as parcelas de fazenda ... você precisa de uma ferramenta para escavar" #: src/handle_action.cpp msgid "Tills nearby Farm: Plot zones." -msgstr "Para Farm nas proximidades: zonas de plotagem." +msgstr "" #: src/handle_action.cpp msgid "Plant seeds... it is too cold for planting" -msgstr "Plante sementes ... está muito frio para plantar" +msgstr "" #: src/handle_action.cpp msgid "Plant seeds" -msgstr "Sementes de plantas" +msgstr "" #: src/handle_action.cpp msgid "Plant seeds... you don't have any" -msgstr "Plante sementes ... você não tem nenhum" +msgstr "" #: src/handle_action.cpp msgid "" "Plant seeds into nearby Farm: Plot zones. Farm plot has to be set to " "specific plant seed and you must have seeds in your inventory." msgstr "" -" Plantar sementes na Fazenda vizinha: zonas de plotagem. O terreno da " -"fazenda deve ser definido para sementes de plantas específicas e você deve " -"ter sementes em seu inventário." #: src/handle_action.cpp msgid "Fertilize plots" -msgstr "Adubar parcelas" +msgstr "" #: src/handle_action.cpp msgid "Fertilize plots... you don't have any fertilizer" -msgstr "Adubar parcelas ... você não tem nenhum fertilizante" +msgstr "" #: src/handle_action.cpp msgid "Fertilize any nearby Farm: Plot zones." -msgstr "Fertilizar qualquer fazenda nas proximidades: zonas de plotagem." +msgstr "" #: src/handle_action.cpp msgid "Harvest plots" -msgstr "Parcelas de Colheita" +msgstr "" #: src/handle_action.cpp msgid "Harvest any full-grown plants from nearby Farm: Plot zones" msgstr "" -" Colher quaisquer plantas adultas da Fazenda nas proximidades: Zonas de " -"plotagem" #: src/handle_action.cpp msgid "Construct Plots" @@ -184947,16 +165547,16 @@ msgstr "" #: src/handle_action.cpp msgid "You need a tool to dig with." -msgstr "Você precisa de uma ferramenta para escavar." +msgstr "" #: src/handle_action.cpp src/iexamine.cpp src/mission_companion.cpp #: src/vehicle_part.cpp msgid "It is too cold to plant anything now." -msgstr "Está frio demais para plantar qualquer coisa agora." +msgstr "" #: src/handle_action.cpp msgid "You don't have any seeds." -msgstr "Você não tem nenhuma semente." +msgstr "" #: src/handle_action.cpp #, c-format @@ -184975,7 +165575,7 @@ msgstr "" #: src/handle_action.cpp msgid "Draw what?" -msgstr "Desenhe o que?" +msgstr "" #: src/handle_action.cpp msgid "Change to which movement mode?" @@ -185024,7 +165624,7 @@ msgstr "" #: src/handle_action.cpp msgid "Auto-move canceled" -msgstr "Mover automaticamente cancelado" +msgstr "" #: src/handle_action.cpp #, c-format @@ -185047,7 +165647,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't open things while you're in your shell." -msgstr "Você não pode abrir coisas enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't open things while you're riding." @@ -185055,7 +165655,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't close things while you're in your shell." -msgstr "Você não pode fechar as coisas enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't close things while you're riding." @@ -185063,16 +165663,15 @@ msgstr "" #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." -msgstr "Você não pode esmagar as coisas enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't examine your surroundings while you're in your shell." -msgstr "Você não pode examinar seu entorno enquanto estiver em sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't move mass quantities while you're in your shell." msgstr "" -" Você não pode mover quantidades em massa enquanto estiver na sua concha." #: src/handle_action.cpp msgid "You can't move mass quantities while you're riding." @@ -185088,7 +165687,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." -msgstr "Você não pode pegar coisas enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't grab things while you're riding." @@ -185096,7 +165695,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." -msgstr "Você não pode transportar coisas enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't haul things while you're riding." @@ -185104,7 +165703,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." -msgstr "Você não pode açougueiro enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't butcher while you're riding." @@ -185112,7 +165711,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." -msgstr "Você não pode espreitar nas esquinas enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't peek around corners while you're riding." @@ -185121,13 +165720,11 @@ msgstr "" #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "" -" Você não pode deixar cair coisas em outro ladrilho enquanto estiver na sua " -"concha." #: src/handle_action.cpp src/handle_action.cpp src/iexamine.cpp #: src/iexamine.cpp msgid "You can't craft while you're in your shell." -msgstr "Você não pode criar enquanto está na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't craft while you're riding." @@ -185135,7 +165732,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't disassemble items while driving." -msgstr "Você não pode desmontar itens durante a condução." +msgstr "" #: src/handle_action.cpp msgid "You can't disassemble items while you're riding." @@ -185143,11 +165740,11 @@ msgstr "" #: src/handle_action.cpp msgid "You can't construct while in a vehicle." -msgstr "Você não pode construir enquanto estiver em um veículo." +msgstr "" #: src/handle_action.cpp msgid "You can't construct while you're in your shell." -msgstr "Você não pode construir enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "You can't construct while you're riding." @@ -185160,15 +165757,15 @@ msgstr "" #: src/handle_action.cpp msgid "new binding is " -msgstr "nova ligação é" +msgstr "" #: src/handle_action.cpp msgid "new default binding is '^'." -msgstr "A nova ligação padrão é '^'." +msgstr "" #: src/handle_action.cpp msgid "You can't operate a vehicle while you're in your shell." -msgstr "Você não pode operar um veículo enquanto estiver na sua concha." +msgstr "" #: src/handle_action.cpp msgid "Auto travel mode OFF!" @@ -185180,23 +165777,23 @@ msgstr "" #: src/handle_action.cpp msgid "Safe mode OFF!" -msgstr "Modo de segurança OFF!" +msgstr "" #: src/handle_action.cpp msgid "Safe mode OFF! (Auto safe mode still enabled!)" -msgstr "Modo de segurança OFF! (Modo de segurança automática ainda ativado!)" +msgstr "" #: src/handle_action.cpp msgid "Auto safe mode OFF!" -msgstr "Modo de segurança automática OFF!" +msgstr "" #: src/handle_action.cpp msgid "Auto safe mode ON!" -msgstr "Modo de segurança automática ON!" +msgstr "" #: src/handle_action.cpp msgid "Ignoring enemy!" -msgstr "Ignorando o inimigo!" +msgstr "" #: src/handle_action.cpp msgid "You make the sign of the cross." @@ -185204,7 +165801,7 @@ msgstr "" #: src/handle_action.cpp msgid "Ignoring laser targeting!" -msgstr "Ignorando a segmentação por laser!" +msgstr "" #: src/handle_action.cpp #, c-format @@ -185213,15 +165810,15 @@ msgstr "" #: src/handle_action.cpp msgid "Commit suicide?" -msgstr "Cometer suicídio?" +msgstr "" #: src/handle_action.cpp msgid "REALLY commit suicide?" -msgstr "Realmente se suicida?" +msgstr "" #: src/handle_action.cpp msgid "Save and quit?" -msgstr "Salvar e sair?" +msgstr "" #: src/handle_action.cpp msgid "You can't see the sky from here." @@ -185249,11 +165846,11 @@ msgstr "" #: src/handle_action.cpp msgid "Debug mode ON!" -msgstr "Modo de depuração ON!" +msgstr "" #: src/handle_action.cpp msgid "Debug mode OFF!" -msgstr "Modo de depuração OFF!" +msgstr "" #: src/handle_liquid.cpp #, c-format @@ -185272,11 +165869,11 @@ msgstr "" #: src/handle_liquid.cpp msgid "Consume it" -msgstr "Consumir" +msgstr "" #: src/handle_liquid.cpp msgid "Pour into a container" -msgstr "Despeje em um recipiente" +msgstr "" #: src/handle_liquid.cpp msgid "That's the same container!" @@ -185294,7 +165891,7 @@ msgstr "" #: src/handle_liquid.cpp msgid "Pour on the ground" -msgstr "Despeje no chão" +msgstr "" #: src/handle_liquid.cpp #, c-format @@ -185308,7 +165905,7 @@ msgstr "" #: src/handle_liquid.cpp msgid "That's where you took it from!" -msgstr "É de onde você tirou isso!" +msgstr "" #: src/handle_liquid.cpp msgid "You can't pour there!" @@ -185324,24 +165921,22 @@ msgid "" "Please press one of the following for help on that topic:\n" "Press ESC to return to the game." msgstr "" -" Por favor, pressione um dos seguintes para obter ajuda sobre esse tópico: " -"\" nPressione ESC para retornar ao jogo." #: src/help.cpp msgid "Note colors: " -msgstr "Observe as cores:" +msgstr "" #: src/help.cpp msgid " HELP " -msgstr "SOCORRO" +msgstr "" #: src/iexamine.cpp msgid "Apply diamond coating" -msgstr "Aplique o revestimento de diamante" +msgstr "" #: src/iexamine.cpp msgid "You don't have a suitable item to coat with diamond" -msgstr "Você não tem um item adequado para revestir com diamante" +msgstr "" #: src/iexamine.cpp #, c-format @@ -185350,11 +165945,11 @@ msgstr "" #: src/iexamine.cpp msgid "Introduce Nanofabricator template" -msgstr "Introduzir o modelo Nanofabricator" +msgstr "" #: src/iexamine.cpp msgid "You don't have any usable templates." -msgstr "Você não tem nenhum modelo utilizável." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185368,7 +165963,7 @@ msgstr "" #: src/iexamine.cpp msgid "Out of order." -msgstr "Fora de serviço." +msgstr "" #: src/iexamine.cpp msgid "Translocator gate active." @@ -185387,19 +165982,19 @@ msgstr "" #: src/iexamine.cpp msgid "Purchase cash card?" -msgstr "Compre cartão de dinheiro?" +msgstr "" #: src/iexamine.cpp msgid "You need $1.00 in your account to purchase a card." -msgstr "Você precisa de US $ 1,00 em sua conta para comprar um cartão." +msgstr "" #: src/iexamine.cpp msgid "Withdraw Money" -msgstr "Sacar dinheiro" +msgstr "" #: src/iexamine.cpp msgid "You need a cash card before you can withdraw money!" -msgstr "Você precisa de um cartão de dinheiro antes de poder sacar dinheiro!" +msgstr "" #: src/iexamine.cpp msgid "You need to pay down your debt first!" @@ -185407,19 +166002,19 @@ msgstr "" #: src/iexamine.cpp msgid "You need money in your account before you can withdraw money!" -msgstr "Você precisa de dinheiro em sua conta antes de poder sacar dinheiro!" +msgstr "" #: src/iexamine.cpp msgid "Deposit Money" -msgstr "Depositar dinheiro" +msgstr "" #: src/iexamine.cpp msgid "You need a charged cash card before you can deposit money!" -msgstr "Você precisa de um cartão em dinheiro antes de depositar dinheiro!" +msgstr "" #: src/iexamine.cpp msgid "Transfer All Money" -msgstr "Transferir todo o dinheiro" +msgstr "" #: src/iexamine.cpp #, c-format @@ -185434,11 +166029,10 @@ msgstr "" #: src/iexamine.cpp msgid "This will automatically deduct $1.00 from your bank account. Continue?" msgstr "" -" Isso irá deduzir automaticamente $ 1,00 da sua conta bancária. Continuar?" #: src/iexamine.cpp msgid "You can only deposit money from charged cash cards!" -msgstr "Você só pode depositar dinheiro a partir de cartões em dinheiro!" +msgstr "" #: src/iexamine.cpp #, c-format @@ -185464,7 +166058,7 @@ msgstr "" #: src/iexamine.cpp msgid "You need a charged cash card to purchase things!" -msgstr "Você precisa de um cartão em dinheiro para comprar coisas!" +msgstr "" #: src/iexamine.cpp #, c-format @@ -185473,31 +166067,31 @@ msgstr "" #: src/iexamine.cpp msgid "That item is too expensive!" -msgstr "Esse item é muito caro!" +msgstr "" #: src/iexamine.cpp msgid "With a beep, the empty vending machine shuts down" -msgstr "Com um sinal sonoro, a máquina de vendas vazia é desligada" +msgstr "" #: src/iexamine.cpp msgid "This toilet is empty." -msgstr "Este banheiro está vazio." +msgstr "" #: src/iexamine.cpp msgid "The toilet water is frozen solid!" -msgstr "A água do vaso sanitário está congelada!" +msgstr "" #: src/iexamine.cpp msgid "Swipe your ID card?" -msgstr "Swipe seu cartão de identificação?" +msgstr "" #: src/iexamine.cpp msgid "You insert your ID card." -msgstr "Você insere seu cartão de identificação." +msgstr "" #: src/iexamine.cpp msgid "The nearby doors are already opened." -msgstr "As portas próximas já estão abertas." +msgstr "" #: src/iexamine.cpp msgid "The card reader short circuits!" @@ -185555,7 +166149,7 @@ msgstr "" #: src/iexamine.cpp msgid "If only you had a shovel..." -msgstr "Se você tivesse uma pá ..." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185569,31 +166163,31 @@ msgstr "" #: src/iexamine.cpp msgid "You vault over the obstacle with ease." -msgstr "Você salta sobre o obstáculo com facilidade." +msgstr "" #: src/iexamine.cpp msgid "You vault over the obstacle." -msgstr "Você vault sobre o obstáculo." +msgstr "" #: src/iexamine.cpp msgid "Climbing this obstacle is trivial for one such as you." -msgstr "Escalar este obstáculo é trivial para alguém como você." +msgstr "" #: src/iexamine.cpp msgid "You quickly scale the fence." -msgstr "Você rapidamente escala a cerca." +msgstr "" #: src/iexamine.cpp msgid "This obstacle is no match for your freerunning abilities." -msgstr "Este obstáculo não é páreo para suas habilidades de freerunning." +msgstr "" #: src/iexamine.cpp msgid "You slip while climbing and fall down again." -msgstr "Você escorrega enquanto sobe e cai de novo." +msgstr "" #: src/iexamine.cpp msgid "Climbing this obstacle is impossible in your current state." -msgstr "Escalar este obstáculo é impossível em seu estado atual." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185609,7 +166203,7 @@ msgstr "" #: src/iexamine.cpp msgid "You slide right between the bars." -msgstr "Você desliza para a direita entre as barras." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185633,67 +166227,67 @@ msgstr "" #: src/iexamine.cpp msgid "Place a plank over the pit?" -msgstr "Coloque uma prancha sobre o buraco?" +msgstr "" #: src/iexamine.cpp msgid "You place a plank of wood over the pit." -msgstr "Você coloca uma prancha de madeira sobre o poço." +msgstr "" #: src/iexamine.cpp msgid "Remove cover?" -msgstr "Remova a tampa?" +msgstr "" #: src/iexamine.cpp msgid "You remove the plank." -msgstr "Você remove a prancha." +msgstr "" #: src/iexamine.cpp msgid "You need $10 to play." -msgstr "Você precisa de $ 10 para jogar." +msgstr "" #: src/iexamine.cpp msgid "Insert $10?" -msgstr "Insira $ 10?" +msgstr "" #: src/iexamine.cpp msgid "Three cherries... you get your money back!" -msgstr "Três cerejas ... você recebe seu dinheiro de volta!" +msgstr "" #: src/iexamine.cpp msgid "Three bells... you win $50!" -msgstr "Três sinos ... você ganha $ 50!" +msgstr "" #: src/iexamine.cpp msgid "Three stars... you win $200!" -msgstr "Três estrelas ... você ganha $ 200!" +msgstr "" #: src/iexamine.cpp msgid "JACKPOT! You win $3000!" -msgstr "JACKPOT! Você ganha $ 3000!" +msgstr "" #: src/iexamine.cpp msgid "No win." -msgstr "Agora em." +msgstr "" #: src/iexamine.cpp msgid "Play again?" -msgstr "Jogar de novo?" +msgstr "" #: src/iexamine.cpp msgid "You mess with the dial for a little bit... and it opens!" -msgstr "Você mexer com o mostrador um pouco ... e abre!" +msgstr "" #: src/iexamine.cpp msgid "You mess with the dial for a little bit." -msgstr "Você mexer com o mostrador por um tempo." +msgstr "" #: src/iexamine.cpp msgid "You can't crack a safe while deaf!" -msgstr "Você não pode quebrar um cofre enquanto está surdo!" +msgstr "" #: src/iexamine.cpp msgid "Attempt to crack the safe?" -msgstr "Tentativa de quebrar o cofre?" +msgstr "" #: src/iexamine.cpp msgid "You start cracking the safe." @@ -185701,27 +166295,27 @@ msgstr "" #: src/iexamine.cpp msgid "You need a lockpick to open this gun safe." -msgstr "Você precisa de um lockpick para abrir esta arma segura." +msgstr "" #: src/iexamine.cpp msgid "Pick the gun safe?" -msgstr "Escolha a arma segura?" +msgstr "" #: src/iexamine.cpp msgid "You successfully unlock the gun safe." -msgstr "Você desbloqueou a arma com sucesso." +msgstr "" #: src/iexamine.cpp msgid "Your clumsy attempt jams the lock!" -msgstr "Sua tentativa desajeitada bloqueia a fechadura!" +msgstr "" #: src/iexamine.cpp msgid "The gun safe stumps your efforts to pick it." -msgstr "A arma segura seus esforços para pegá-lo." +msgstr "" #: src/iexamine.cpp msgid "If only you had something to pry with..." -msgstr "Se você tivesse algo para se intrometer ..." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185738,62 +166332,58 @@ msgid "" "as far back into the solid rock as you can see. The holes are humanoid in\n" "shape, but with long, twisted, distended limbs." msgstr "" -" Esta parede é perfeitamente vertical. Buracos estranhos e distorcidos são colocados nele, levando \n" -" as para trás na rocha sólida como você pode ver. Os buracos são humanóides em forma, mas com membros longos, torcidos e distendidos.\n" #: src/iexamine.cpp msgctxt "memorial_male" msgid "Awoke a group of dark wyrms!" -msgstr "Acordei um grupo de anciões das trevas!" +msgstr "" #: src/iexamine.cpp msgctxt "memorial_female" msgid "Awoke a group of dark wyrms!" -msgstr "Acordei um grupo de anciões das trevas!" +msgstr "" #: src/iexamine.cpp msgid "The pedestal sinks into the ground..." -msgstr "O pedestal afunda no chão ..." +msgstr "" #: src/iexamine.cpp msgid "an ominous grinding noise..." -msgstr "um ruído de moagem sinistro ..." +msgstr "" #: src/iexamine.cpp msgid "Place your petrified eye on the pedestal?" -msgstr "Coloque seu olho petrificado no pedestal?" +msgstr "" #: src/iexamine.cpp msgid "" "This pedestal is engraved in eye-shaped diagrams, and has a large semi-" "spherical indentation at the top." msgstr "" -" Este pedestal é gravado em diagramas em forma de olho, e tem um grande " -"recuo semi-esférico no topo." #: src/iexamine.cpp msgid "You cannot look through the peephole from the outside." -msgstr "Você não pode olhar pelo olho mágico do lado de fora." +msgstr "" #: src/iexamine.cpp msgid "Do what with the door?" -msgstr "Faça o que com a porta?" +msgstr "" #: src/iexamine.cpp msgid "Peek through peephole." -msgstr "Espreite pelo olho mágico." +msgstr "" #: src/iexamine.cpp msgid "Open door." -msgstr "Abra através." +msgstr "" #: src/iexamine.cpp msgid "You peek through the peephole." -msgstr "Você espia pelo olho mágico." +msgstr "" #: src/iexamine.cpp msgid "You open the door." -msgstr "Você abre a porta." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185802,19 +166392,19 @@ msgstr "" #: src/iexamine.cpp msgid "You hear the rumble of rock shifting." -msgstr "Você ouve o barulho da rocha mudando." +msgstr "" #: src/iexamine.cpp msgid "This flower is dead. You can't get it." -msgstr "Esta flor está morta. Você não pode conseguir." +msgstr "" #: src/iexamine.cpp msgid "This plant is dead. You can't get it." -msgstr "Esta planta está morta. Você não pode conseguir." +msgstr "" #: src/iexamine.cpp msgid "You drink some nectar." -msgstr "Você bebe um pouco de néctar." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185833,7 +166423,7 @@ msgstr "" #: src/iexamine.cpp msgid "You slowly suck up the nectar." -msgstr "Você lentamente absorve o néctar." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185842,15 +166432,15 @@ msgstr "" #: src/iexamine.cpp msgid "This flower has a heady aroma." -msgstr "Esta flor tem um aroma inebriante." +msgstr "" #: src/iexamine.cpp msgid "You fall asleep..." -msgstr "Você adormece ..." +msgstr "" #: src/iexamine.cpp msgid "Your legs are covered in the poppy's roots!" -msgstr "Suas pernas estão cobertas pelas raízes da papoula!" +msgstr "" #: src/iexamine.cpp msgid "The cactus' nettles sting you!" @@ -185867,15 +166457,15 @@ msgstr "" #: src/iexamine.cpp msgid "You couldn't harvest anything." -msgstr "Você não pode colher nada." +msgstr "" #: src/iexamine.cpp msgid "Nothing can be harvested from this plant in current season" -msgstr "Nada pode ser colhido desta planta na temporada atual" +msgstr "" #: src/iexamine.cpp msgid "This flower is still alive, despite the harsh conditions..." -msgstr "Esta flor ainda está viva, apesar das duras condições ..." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185884,7 +166474,7 @@ msgstr "" #: src/iexamine.cpp msgid "This flower tastes very wrong..." -msgstr "Esta flor tem um gosto muito errado ..." +msgstr "" #: src/iexamine.cpp #, c-format @@ -185908,7 +166498,7 @@ msgstr "" #: src/iexamine.cpp msgid "Use which seed?" -msgstr "Use qual semente?" +msgstr "" #: src/iexamine.cpp #, c-format @@ -185917,45 +166507,41 @@ msgstr "" #: src/iexamine.cpp msgid "You have no seeds to plant." -msgstr "Você não tem sementes para plantar." +msgstr "" #: src/iexamine.cpp msgid "Something's lying there..." -msgstr "Algo está ali ..." +msgstr "" #: src/iexamine.cpp src/mission_companion.cpp msgid "You saved your seeds for later." -msgstr "Você salvou suas sementes para mais tarde." +msgstr "" #: src/iexamine.cpp msgid "" "We have altered this unit's configuration to extract and provide local " "nutriment. The Mycus provides." msgstr "" -" Nós alteramos a configuração desta unidade para extrair e fornecer nutrição" -" local. O Mycus fornece." #: src/iexamine.cpp msgid "The seed blooms forth! We have brought true beauty to this world." msgstr "" -" A semente floresce adiante! Nós trouxemos a verdadeira beleza para este " -"mundo." #: src/iexamine.cpp msgid "The seed blossoms rather rapidly..." -msgstr "A semente floresce rapidamente ..." +msgstr "" #: src/iexamine.cpp msgid "The seed blossoms into a flower-looking fungus." -msgstr "A semente floresce em um fungo que parece uma flor." +msgstr "" #: src/iexamine.cpp msgid "Tile isn't a plant" -msgstr "A telha não é uma planta" +msgstr "" #: src/iexamine.cpp msgid "Tile is already fertilized" -msgstr "A telha já está fertilizada" +msgstr "" #: src/iexamine.cpp #, c-format @@ -185979,7 +166565,7 @@ msgstr "" #: src/iexamine.cpp msgid "Use which fertilizer?" -msgstr "Use qual fertilizante?" +msgstr "" #: src/iexamine.cpp #, c-format @@ -185988,11 +166574,11 @@ msgstr "" #: src/iexamine.cpp msgid "This kiln already contains charcoal." -msgstr "Este forno já contém carvão vegetal." +msgstr "" #: src/iexamine.cpp msgid "Remove it before firing the kiln again." -msgstr "Retire-o antes de disparar o forno novamente." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186001,16 +166587,15 @@ msgstr "" #: src/iexamine.cpp msgid "This kiln is empty. Fill it with wood or bone and try again." -msgstr "Este forno está vazio. Encha-o com madeira ou osso e tente novamente." +msgstr "" #: src/iexamine.cpp msgid "The batch in this kiln is too small to yield any charcoal." -msgstr "O lote neste forno é muito pequeno para produzir carvão." +msgstr "" #: src/iexamine.cpp msgid "This kiln is ready to be fired, but you have no fire source." msgstr "" -" Este forno está pronto para ser disparado, mas você não tem fonte de fogo." #: src/iexamine.cpp #, c-format @@ -186019,19 +166604,19 @@ msgstr "" #: src/iexamine.cpp msgid "Fire the kiln?" -msgstr "Fogo no forno?" +msgstr "" #: src/iexamine.cpp msgid "You fire the charcoal kiln." -msgstr "Você atira no forno a carvão." +msgstr "" #: src/iexamine.cpp msgid "This kiln is empty..." -msgstr "Este forno está vazio ..." +msgstr "" #: src/iexamine.cpp msgid "There's a charcoal kiln there." -msgstr "Há um forno de carvão lá." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186056,7 +166641,7 @@ msgstr "" #: src/iexamine.cpp src/iexamine.cpp src/vehicle_use.cpp msgid "Select an action" -msgstr "Selecione uma ação" +msgstr "" #: src/iexamine.cpp msgid "Start a fire" @@ -186091,15 +166676,15 @@ msgstr "" #: src/iexamine.cpp msgid "This keg is empty." -msgstr "Este barril está vazio." +msgstr "" #: src/iexamine.cpp msgid "You have no brew to ferment." -msgstr "Você não tem fermentação para fermentar." +msgstr "" #: src/iexamine.cpp msgid "Use which brew?" -msgstr "Use que cerveja?" +msgstr "" #: src/iexamine.cpp #, c-format @@ -186123,7 +166708,7 @@ msgstr "" #: src/iexamine.cpp msgid "Start fermenting cycle" -msgstr "Comece o ciclo de fermentação" +msgstr "" #: src/iexamine.cpp #, c-format @@ -186137,16 +166722,15 @@ msgstr "" #: src/iexamine.cpp msgid "Start fermenting cycle?" -msgstr "Começar o ciclo de fermentação?" +msgstr "" #: src/iexamine.cpp msgid "The vat is full, so you close the lid and start the fermenting cycle." msgstr "" -" A cuba está cheia, então feche a tampa e inicie o ciclo de fermentação." #: src/iexamine.cpp msgid "You close the lid and start the fermenting cycle." -msgstr "Você fecha a tampa e inicia o ciclo de fermentação." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186160,7 +166744,7 @@ msgstr "" #: src/iexamine.cpp msgid "It will finish brewing in less than an hour." -msgstr "Terminará a fermentação em menos de uma hora." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186190,7 +166774,7 @@ msgstr "" #: src/iexamine.cpp msgid "Store which drink?" -msgstr "Armazenar qual bebida?" +msgstr "" #: src/iexamine.cpp #, c-format @@ -186214,11 +166798,11 @@ msgstr "" #: src/iexamine.cpp src/vehicle_use.cpp msgid "Have a drink" -msgstr "Tomar uma bebida" +msgstr "" #: src/iexamine.cpp msgid "Refill" -msgstr "Reabastecer" +msgstr "" #: src/iexamine.cpp #, c-format @@ -186253,7 +166837,7 @@ msgstr "" #: src/iexamine.cpp msgid "You have no tool to dig with..." -msgstr "Você não tem ferramenta para cavar com ..." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186262,20 +166846,16 @@ msgstr "" #: src/iexamine.cpp msgid "Which container?" -msgstr "Qual contêiner?" +msgstr "" #: src/iexamine.cpp msgid "You need a tool to drill the crust to tap this maple tree." msgstr "" -" Você precisa de uma ferramenta para perfurar a crosta para tocar essa " -"árvore de bordo." #: src/iexamine.cpp msgid "" "You need a tool to hammer the spile into the crust to tap this maple tree." msgstr "" -" Você precisa de uma ferramenta para martelar o spill na crosta para tocar " -"essa árvore de bordo." #: src/iexamine.cpp #, c-format @@ -186284,11 +166864,11 @@ msgstr "" #: src/iexamine.cpp msgid "No container added. The sap will just spill on the ground." -msgstr "Nenhum contêiner adicionado. A seiva só vai derramar no chão." +msgstr "" #: src/iexamine.cpp msgid "Remove tap" -msgstr "Remover toque" +msgstr "" #: src/iexamine.cpp #, c-format @@ -186302,12 +166882,11 @@ msgstr "" #: src/iexamine.cpp msgid "Remove container" -msgstr "Remova o recipiente" +msgstr "" #: src/iexamine.cpp msgid "You need a hammering tool to remove the spile from the crust." msgstr "" -" Você precisa de uma ferramenta de martelar para remover o spile da crosta." #: src/iexamine.cpp #, c-format @@ -186316,24 +166895,21 @@ msgstr "" #: src/iexamine.cpp msgid "The shrub offers up a fruit, then crumbles into a fungal bed." -msgstr "O arbusto oferece uma fruta e depois desmorona em um leito fúngico." +msgstr "" #: src/iexamine.cpp msgid "" "We have located a particularly vital nutrient deposit underneath this " "location." msgstr "" -" Localizamos um depósito de nutrientes particularmente vital por baixo desse" -" local." #: src/iexamine.cpp msgid "Additional nourishment is available." -msgstr "Nutrição adicional está disponível." +msgstr "" #: src/iexamine.cpp msgid "The tree offers up a fruit, then shrivels into a fungal tree." msgstr "" -" A árvore oferece uma fruta e depois se transforma em uma árvore fúngica." #: src/iexamine.cpp #, c-format @@ -186347,7 +166923,7 @@ msgstr "" #: src/iexamine.cpp msgid "Recycle what metal?" -msgstr "Reciclar o metal?" +msgstr "" #. ~ %1$s: an item in the compactor , %2$s: desired compactor output material #: src/iexamine.cpp @@ -186388,11 +166964,11 @@ msgstr "" #: src/iexamine.cpp msgid "Ka-klunk!" -msgstr "Ka-gole!" +msgstr "" #: src/iexamine.cpp msgid "The compactor chews up all the items in its hopper." -msgstr "O compactador mastiga todos os itens em sua tremonha." +msgstr "" #. ~ %1$s: compactor output material #: src/iexamine.cpp @@ -186408,7 +166984,7 @@ msgstr "" #: src/iexamine.cpp msgid "It spits out an assortment of smaller pieces instead." -msgstr "Em vez disso, ele libera uma variedade de peças menores." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186464,31 +167040,31 @@ msgstr "" #: src/iexamine.cpp msgid "Do what with the curtains?" -msgstr "Faça o que com as cortinas?" +msgstr "" #: src/iexamine.cpp msgid "Peek through the closed curtains." -msgstr "Espreite através das cortinas fechadas." +msgstr "" #: src/iexamine.cpp msgid "Tear down the curtains." -msgstr "Derrube as cortinas." +msgstr "" #: src/iexamine.cpp msgid "You carefully peek through the curtains." -msgstr "Você espia cuidadosamente através das cortinas." +msgstr "" #: src/iexamine.cpp msgid "You tear the curtains and curtain rod off the windowframe." -msgstr "Você rasga as cortinas e a cortina da janela." +msgstr "" #: src/iexamine.cpp msgid "You're illiterate, and can't read the message on the sign." -msgstr "Você é analfabeto e não consegue ler a mensagem no cartaz." +msgstr "" #: src/iexamine.cpp msgid "Nothing legible on the sign." -msgstr "Nada legível no sinal." +msgstr "" #: src/iexamine.cpp msgid "Overwrite the existing message on the sign?" @@ -186500,7 +167076,7 @@ msgstr "" #: src/iexamine.cpp msgid "You leave the sign alone." -msgstr "Você deixa o sinal sozinho." +msgstr "" #: src/iexamine.cpp msgid "Write what?" @@ -186512,88 +167088,87 @@ msgstr "" #: src/iexamine.cpp msgid "You graffiti a message onto the sign." -msgstr "Você grafa uma mensagem no letreiro." +msgstr "" #: src/iexamine.cpp msgid "Platinum member" -msgstr "Membro da platina" +msgstr "" #: src/iexamine.cpp msgid "Gold member" -msgstr "Membro de Ouro" +msgstr "" #: src/iexamine.cpp msgid "Silver member" -msgstr "Membro de prata" +msgstr "" #: src/iexamine.cpp msgid "Beloved customer" -msgstr "Cliente amado" +msgstr "" #: src/iexamine.cpp msgid "You're illiterate, and can't read the screen." -msgstr "Você é analfabeto e não consegue ler a tela." +msgstr "" #: src/iexamine.cpp msgid "Failure! No gas pumps found!" -msgstr "Falha! Nenhuma bomba de gás encontrada!" +msgstr "" #: src/iexamine.cpp msgid "Failure! No gas tank found!" -msgstr "Falha! Nenhum tanque de gasolina encontrado!" +msgstr "" #: src/iexamine.cpp msgid "This station is out of fuel. We apologize for the inconvenience." msgstr "" -" Esta estação está sem combustível. Pedimos desculpas pela inconveniência." #: src/iexamine.cpp msgid "Welcome to AutoGas!" -msgstr "Bem-vindo à AutoGas!" +msgstr "" #: src/iexamine.cpp msgid "What would you like to do?" -msgstr "O que você gostaria de fazer?" +msgstr "" #: src/iexamine.cpp msgid "Buy gas." -msgstr "Compre gás." +msgstr "" #: src/iexamine.cpp msgid "Refund cash." -msgstr "Reembolso em dinheiro." +msgstr "" #: src/iexamine.cpp msgid "Current gas pump: " -msgstr "Bomba de gás atual:" +msgstr "" #: src/iexamine.cpp msgid "Choose a gas pump." -msgstr "Escolha uma bomba de gás." +msgstr "" #: src/iexamine.cpp msgid "Your discount: " -msgstr "O seu desconto:" +msgstr "" #: src/iexamine.cpp msgid "Your price per gasoline unit: " -msgstr "Seu preço por unidade de gasolina:" +msgstr "" #: src/iexamine.cpp msgid "Hack console." -msgstr "Hack Console." +msgstr "" #: src/iexamine.cpp msgid "Please choose gas pump:" -msgstr "Por favor, escolha a bomba de gás:" +msgstr "" #: src/iexamine.cpp msgid "Pump " -msgstr "Bomba" +msgstr "" #: src/iexamine.cpp msgid "Not enough money, please refill your cash card." -msgstr "Não há dinheiro suficiente, por favor, recarregue seu cartão." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186602,7 +167177,7 @@ msgstr "" #: src/iexamine.cpp msgid "Glug Glug Glug" -msgstr "Glug Glug Glug" +msgstr "" #: src/iexamine.cpp #, c-format @@ -186612,16 +167187,14 @@ msgstr "" #: src/iexamine.cpp msgid "You hack the terminal and route all available fuel to your pump!" msgstr "" -" Você hackear o terminal e direcionar todo o combustível disponível para a " -"sua bomba!" #: src/iexamine.cpp msgid "Glug Glug Glug Glug Glug Glug Glug Glug Glug" -msgstr "Glug Glug Glug Glug Glug Glug Glug Glug Glug Glug" +msgstr "" #: src/iexamine.cpp msgid "Unable to refund, no fuel in pump." -msgstr "Incapaz de reembolsar, sem combustível na bomba." +msgstr "" #: src/iexamine.cpp msgid "There is a ledge here. What do you want to do?" @@ -186662,7 +167235,7 @@ msgstr "" #: src/iexamine.cpp msgid "You can't climb down there" -msgstr "Você não pode descer lá" +msgstr "" #: src/iexamine.cpp #, c-format @@ -186677,17 +167250,17 @@ msgstr "" #: src/iexamine.cpp msgid "You probably won't be able to get back up. Climb down?" -msgstr "Você provavelmente não será capaz de voltar. Descer?" +msgstr "" #: src/iexamine.cpp msgid "" "You should be able to climb back up easily if you climb down there. Climb " "down?" -msgstr "Você deve ser capaz de subir facilmente se descer lá. Descer?" +msgstr "" #: src/iexamine.cpp msgid "You may have problems climbing back up. Climb down?" -msgstr "Você pode ter problemas para subir de volta. Descer?" +msgstr "" #: src/iexamine.cpp msgid "You decided to step back from the ledge." @@ -186709,7 +167282,7 @@ msgstr "" #: src/iexamine.cpp msgid "No connected couches found. Operation impossible. Exiting." -msgstr "Nenhum sofá conectado encontrado. Operação impossível. Saindo." +msgstr "" #: src/iexamine.cpp msgid "Patient is dead. Please remove corpse to proceed. Exiting." @@ -186723,15 +167296,15 @@ msgstr "" #: src/iexamine.cpp msgid "Autodoc Mk. XI. Status: Online. Please choose operation." -msgstr "Autodoc Mk. XI. Status: online. Por favor escolha a operação." +msgstr "" #: src/iexamine.cpp msgid "Choose Compact Bionic Module to install." -msgstr "Escolha Compact Bionic Module para instalar." +msgstr "" #: src/iexamine.cpp msgid "Choose installed bionic to uninstall." -msgstr "Escolha bionic instalado para desinstalar." +msgstr "" #: src/iexamine.cpp msgid "ERROR NO SPACE AVAILABLE. Operation impossible. Exiting." @@ -186739,7 +167312,7 @@ msgstr "" #: src/iexamine.cpp msgid "Choose bionic to uninstall" -msgstr "Escolha biônico para desinstalar" +msgstr "" #: src/iexamine.cpp msgid "UNKNOWN COMMAND. Autodoc Mk. XI. Crashed." @@ -186750,8 +167323,6 @@ msgid "" "No patient found located on the connected couches. Operation impossible. " "Exiting." msgstr "" -" Nenhum paciente encontrado localizado nos sofás conectados. Operação " -"impossível. Saindo." #: src/iexamine.cpp msgid "Autodoc Mk. XI. Status: Online. Please choose operation" @@ -186772,7 +167343,7 @@ msgstr "" #. ~ %1$s is patient name #: src/iexamine.cpp msgid "You don't have any bionics installed." -msgstr "Você não tem nenhuma biônica instalada." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186841,11 +167412,11 @@ msgstr "" #: src/iexamine.cpp msgid "This rack already contains smoked food." -msgstr "Este rack já contém comida defumada." +msgstr "" #: src/iexamine.cpp msgid "Remove it before firing the smoking rack again." -msgstr "Retire-o antes de disparar novamente o suporte para fumar." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186861,27 +167432,21 @@ msgstr "" msgid "" "This rack has some smoked food that might be dehydrated by smoking it again." msgstr "" -" Este rack tem alguns alimentos defumados que podem ser desidratados por " -"fumar novamente." #: src/iexamine.cpp msgid "" "This rack is empty. Fill it with raw meat, fish or sausages and try again." msgstr "" -" Este rack está vazio. Encha-o com carne crua, peixe ou salsichas e tente " -"novamente." #: src/iexamine.cpp msgid "There is no charcoal in the rack." -msgstr "Não há carvão no rack." +msgstr "" #: src/iexamine.cpp msgid "" "This rack is overloaded with food, and it blocks the flow of smoke. Remove " "some and try again." msgstr "" -" Este rack está sobrecarregado com comida e bloqueia o fluxo de fumaça. " -"Remova alguns e tente novamente." #: src/iexamine.cpp #, c-format @@ -186890,7 +167455,7 @@ msgstr "" #: src/iexamine.cpp msgid "There is not enough charcoal in the rack to smoke this much food." -msgstr "Não há carvão suficiente no rack para fumar tanta comida." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186902,28 +167467,26 @@ msgstr "" #: src/iexamine.cpp msgid "This smoking rack is ready to be fired, but you have no fire source." msgstr "" -" Este rack de fumar está pronto para ser demitido, mas você não tem fonte de" -" fogo." #: src/iexamine.cpp msgid "Fire the smoking rack?" -msgstr "Fogo o rack de fumar?" +msgstr "" #: src/iexamine.cpp msgid "You light a small fire under the rack and it starts to smoke." -msgstr "Você acende um pequeno fogo sob o rack e começa a fumegar." +msgstr "" #: src/iexamine.cpp msgid "You can't place more food while it's smoking." -msgstr "Você não pode colocar mais comida enquanto está fumando." +msgstr "" #: src/iexamine.cpp msgid "Load smoking rack with what kind of food?" -msgstr "Carregar rack de fumar com que tipo de comida?" +msgstr "" #: src/iexamine.cpp msgid "You don't have any food that can be smoked." -msgstr "Você não tem comida que possa ser fumada." +msgstr "" #: src/iexamine.cpp #, c-format @@ -186932,11 +167495,11 @@ msgstr "" #: src/iexamine.cpp msgid "You don't have that many." -msgstr "Você não tem tantos." +msgstr "" #: src/iexamine.cpp msgid "You can't place that many." -msgstr "Você não pode colocar tantos." +msgstr "" #: src/iexamine.cpp #, c-format @@ -187046,11 +167609,11 @@ msgstr "" #: src/iexamine.cpp msgid "You inspect its contents and find: " -msgstr "Você inspeciona seu conteúdo e descobre:" +msgstr "" #: src/iexamine.cpp msgid "... that it is empty." -msgstr "... que está vazio." +msgstr "" #: src/iexamine.cpp msgid "You see some grains that are not yet milled to fine flour." @@ -187071,16 +167634,15 @@ msgstr "" #: src/iexamine.cpp msgid "What to do with the smoking rack:" -msgstr "O que fazer com o suporte para fumar:" +msgstr "" #: src/iexamine.cpp msgid "Inspect smoking rack" -msgstr "Inspecione o suporte para fumar" +msgstr "" #: src/iexamine.cpp msgid "Light up and smoke food... insert some food for smoking first" msgstr "" -" Acender e fumar comida ... insira um pouco de comida para fumar primeiro" #: src/iexamine.cpp #, c-format @@ -187089,19 +167651,17 @@ msgstr "" #: src/iexamine.cpp msgid "Light up and smoke food" -msgstr "Acender e fumar comida" +msgstr "" #: src/iexamine.cpp msgid "" "Light up the smoking rack and start smoking. Smoking will take about 6 " "hours." msgstr "" -" Acenda a prateleira de fumar e comece a fumar. Fumar levará cerca de 6 " -"horas." #: src/iexamine.cpp msgid "Insert food for smoking... smoking rack is full" -msgstr "Inserir comida para fumar ... rack de fumo está cheio" +msgstr "" #: src/iexamine.cpp #, c-format @@ -187113,8 +167673,6 @@ msgid "" "Fill the smoking rack with raw meat, fish or sausages for smoking or fruit " "or vegetable or smoked meat for drying." msgstr "" -" Encha o rack de fumar com carne crua, peixe ou salsichas para fumar ou " -"frutas ou vegetais ou carne fumada para secar." #: src/iexamine.cpp msgid "You cannot disassemble this smoking rack while it is active!" @@ -187126,15 +167684,15 @@ msgstr "" #: src/iexamine.cpp msgid "Remove food from smoking rack" -msgstr "Remova a comida do suporte para fumar" +msgstr "" #: src/iexamine.cpp msgid "Reload with charcoal... you don't have any" -msgstr "Recarregue com carvão ... você não tem nenhum" +msgstr "" #: src/iexamine.cpp msgid "Reload with charcoal" -msgstr "Recarregar com carvão" +msgstr "" #: src/iexamine.cpp #, c-format @@ -187145,14 +167703,12 @@ msgstr "" #: src/iexamine.cpp msgid "Quench burning charcoal" -msgstr "Quench queimando carvão" +msgstr "" #: src/iexamine.cpp msgid "" "Quenching will stop smoking process, but also destroy all used charcoal." msgstr "" -" A têmpera irá parar o processo de fumar, mas também destruirá todo o carvão" -" usado." #: src/iexamine.cpp #, c-format @@ -187166,7 +167722,7 @@ msgstr "" #: src/iexamine.cpp msgid "There's a smoking rack here. It is lit and smoking." -msgstr "Há um rack de fumar aqui. Está iluminado e fumando." +msgstr "" #: src/iexamine.cpp #, c-format @@ -187186,23 +167742,23 @@ msgstr "" #: src/iexamine.cpp msgid "There's a smoking rack here." -msgstr "Há um rack de fumar aqui." +msgstr "" #: src/iexamine.cpp msgid "You see some smoldering embers there." -msgstr "Você vê algumas brasas latentes lá." +msgstr "" #: src/iexamine.cpp msgid "It is already lit and smoking." -msgstr "Já está aceso e fumando." +msgstr "" #: src/iexamine.cpp msgid "You stop the smoking process." -msgstr "Você pára o processo de fumar." +msgstr "" #: src/iexamine.cpp msgid "You open the unlocked safe. " -msgstr "Você abre o cofre desbloqueado." +msgstr "" #: src/iexamine.cpp #, c-format @@ -187235,11 +167791,11 @@ msgstr "" #: src/init.cpp msgid "Finalizing" -msgstr "Finalizando" +msgstr "" #: src/init.cpp msgid "Body parts" -msgstr "Partes do corpo" +msgstr "" #: src/init.cpp msgid "Field types" @@ -187247,27 +167803,27 @@ msgstr "" #: src/init.cpp msgid "Emissions" -msgstr "Emissões" +msgstr "" #: src/init.cpp msgid "Crafting requirements" -msgstr "Requisitos de artesanato" +msgstr "" #: src/init.cpp msgid "Vehicle parts" -msgstr "Peças de veículos" +msgstr "" #: src/init.cpp msgid "Traps" -msgstr "Armadilhas" +msgstr "" #: src/init.cpp msgid "Bionics" -msgstr "Biônica" +msgstr "" #: src/init.cpp msgid "Terrain" -msgstr "chão" +msgstr "" #: src/init.cpp msgid "Overmap land use codes" @@ -187275,35 +167831,35 @@ msgstr "" #: src/init.cpp msgid "Overmap terrain" -msgstr "Sobrepõe o terreno" +msgstr "" #: src/init.cpp msgid "Overmap connections" -msgstr "Conexões de overmap" +msgstr "" #: src/init.cpp msgid "Overmap specials" -msgstr "Overmap specials" +msgstr "" #: src/init.cpp msgid "Vehicle prototypes" -msgstr "Protótipos de veículos" +msgstr "" #: src/init.cpp msgid "Mapgen weights" -msgstr "Pesos Mapgen" +msgstr "" #: src/init.cpp msgid "Monster types" -msgstr "Tipos de monstro" +msgstr "" #: src/init.cpp msgid "Monster groups" -msgstr "Grupos de monstros" +msgstr "" #: src/init.cpp msgid "Monster factions" -msgstr "Facções monstro" +msgstr "" #: src/init.cpp msgid "Factions" @@ -187311,19 +167867,19 @@ msgstr "" #: src/init.cpp msgid "Crafting recipes" -msgstr "Crafting recipes" +msgstr "" #: src/init.cpp msgid "Recipe groups" -msgstr "Grupos de receita" +msgstr "" #: src/init.cpp msgid "Martial arts" -msgstr "Artes marciais" +msgstr "" #: src/init.cpp msgid "NPC classes" -msgstr "Classes NPC" +msgstr "" #: src/init.cpp msgid "Missions" @@ -187335,87 +167891,87 @@ msgstr "" #: src/init.cpp msgid "Harvest lists" -msgstr "Listas de colheita" +msgstr "" #: src/init.cpp msgid "Anatomies" -msgstr "Anatomias" +msgstr "" #: src/init.cpp msgid "Tileset" -msgstr "Tileset" +msgstr "" #: src/init.cpp msgid "Verifying" -msgstr "Verificando" +msgstr "" #: src/init.cpp msgid "Flags" -msgstr "Bandeiras" +msgstr "" #: src/init.cpp msgid "Vitamins" -msgstr "Vitaminas" +msgstr "" #: src/init.cpp msgid "Activities" -msgstr "actividades" +msgstr "" #: src/init.cpp msgid "Materials" -msgstr "Materiais" +msgstr "" #: src/init.cpp msgid "Engine faults" -msgstr "Falhas do motor" +msgstr "" #: src/init.cpp msgid "Mapgen definitions" -msgstr "Definições do Mapgen" +msgstr "" #: src/init.cpp msgid "Furniture and terrain" -msgstr "Móveis e terreno" +msgstr "" #: src/init.cpp msgid "Professions" -msgstr "Profissões" +msgstr "" #: src/init.cpp msgid "Scenarios" -msgstr "Cenários" +msgstr "" #: src/init.cpp msgid "Mutations" -msgstr "Mutações" +msgstr "" #: src/init.cpp msgid "Mutation Categories" -msgstr "Categorias de mutação" +msgstr "" #: src/init.cpp msgid "Overmap locations" -msgstr "Overmap locais" +msgstr "" #: src/init.cpp msgid "Ammunition types" -msgstr "Tipos de munição" +msgstr "" #: src/init.cpp msgid "Gates" -msgstr "Portões" +msgstr "" #: src/init.cpp msgid "Mission types" -msgstr "Tipos de missão" +msgstr "" #: src/init.cpp msgid "Item actions" -msgstr "Ações do item" +msgstr "" #: src/init.cpp msgid "NPC templates" -msgstr "Modelos NPC" +msgstr "" #: src/init.cpp msgid "Spells" @@ -187423,7 +167979,7 @@ msgstr "" #: src/input.cpp msgid "key bindings configuration" -msgstr "configuração de atalhos de teclado" +msgstr "" #: src/input.cpp #, c-format @@ -187441,11 +167997,11 @@ msgstr "" #: src/input.cpp msgctxt "keybinding" msgid "Disabled" -msgstr "Desativado" +msgstr "" #: src/input.cpp src/output.h src/requirements.cpp msgid " or " -msgstr "ou" +msgstr "" #. ~ keybinding description for anykey #: src/input.cpp @@ -187470,15 +168026,15 @@ msgstr "[%s] %s" #: src/input.cpp msgid "Unbound keys" -msgstr "Chaves não ligadas" +msgstr "" #: src/input.cpp msgid "Keybinding active only on this screen" -msgstr "Keybinding ativo apenas nesta tela" +msgstr "" #: src/input.cpp msgid "Keybinding active globally" -msgstr "Keybinding ativo globalmente" +msgstr "" #: src/input.cpp msgid "" @@ -187486,9 +168042,6 @@ msgid "" "Press + to add local keybinding\n" "Press = to add global keybinding\n" msgstr "" -" Pressione - para remover o atalho de teclado \n" -" Pressione + para adicionar atalhos locais \n" -" Pressione = para adicionar atalhos de teclado globais \n" #: src/input.cpp #, c-format @@ -187505,8 +168058,6 @@ msgid "" "There are already local keybindings defined for this action, please remove " "them first." msgstr "" -" Já existem atalhos de teclado locais definidos para esta ação, remova-os " -"primeiro." #: src/input.cpp #, c-format @@ -187532,11 +168083,11 @@ msgstr "" #: src/input.cpp msgid "any key" -msgstr "qualquer chave" +msgstr "" #: src/input.cpp msgid "mouse movement" -msgstr "movimento do mouse" +msgstr "" #: src/inventory.cpp #, c-format @@ -187560,11 +168111,11 @@ msgstr "" #: src/inventory_ui.cpp msgid "ITEMS WORN" -msgstr "ITENS VESTADOS" +msgstr "" #: src/inventory_ui.cpp msgid "WEAPON HELD" -msgstr "ARMA REALIZADA" +msgstr "" #: src/inventory_ui.cpp #, c-format @@ -187578,7 +168129,7 @@ msgstr "" #: src/inventory_ui.cpp msgid "There are no available choices" -msgstr "Não há opções disponíveis" +msgstr "" #: src/inventory_ui.cpp #, c-format @@ -187592,19 +168143,19 @@ msgstr "" #: src/inventory_ui.cpp msgid "Next column" -msgstr "Próxima coluna" +msgstr "" #: src/inventory_ui.cpp msgid "Previous column" -msgstr "Coluna anterior" +msgstr "" #: src/inventory_ui.cpp msgid "Confirm your selection" -msgstr "Confirme sua seleção" +msgstr "" #: src/inventory_ui.cpp msgid "Switch selection mode" -msgstr "Alternar modo de seleção" +msgstr "" #: src/inventory_ui.cpp msgid "Toggle favorite" @@ -187612,19 +168163,19 @@ msgstr "" #: src/inventory_ui.cpp msgid "Home" -msgstr "Casa" +msgstr "" #: src/inventory_ui.cpp msgid "End" -msgstr "Fim" +msgstr "" #: src/inventory_ui.cpp msgid "Category selection mode" -msgstr "Modo de seleção de categoria" +msgstr "" #: src/inventory_ui.cpp msgid "Mark/unmark selected item" -msgstr "Marcar / desmarcar item selecionado" +msgstr "" #: src/inventory_ui.cpp msgid "Mark/unmark non-favorite items" @@ -187632,7 +168183,7 @@ msgstr "" #: src/inventory_ui.cpp msgid "ITEMS TO COMPARE" -msgstr "ITENS A COMPARAR" +msgstr "" #: src/inventory_ui.cpp #, c-format @@ -187646,20 +168197,20 @@ msgstr "" #: src/inventory_ui.cpp msgid "ITEMS TO DROP" -msgstr "ITENS PARA PASSAR" +msgstr "" #: src/item.cpp msgid "yellow" -msgstr "amarelo" +msgstr "" #: src/item.cpp msgctxt "color" msgid "orange" -msgstr "laranja" +msgstr "" #: src/item.cpp msgid "black" -msgstr "Preto" +msgstr "" #: src/item.cpp #, c-format @@ -187670,7 +168221,7 @@ msgstr "" #: src/item.cpp msgid "* This food looks as fresh as it can be." -msgstr "* Esta comida parece fresco como pode ser." +msgstr "" #: src/item.cpp #, c-format @@ -187683,16 +168234,12 @@ msgstr "" msgid "" "* This food looks old. It's on the brink of becoming inedible." msgstr "" -" * Esta comida parece velho . Está à beira de se tornar não " -"comestível." #: src/item.cpp msgid "" "* This food looks fine. If you were more skilled in cooking or" " survival, you might be able to make a better estimation." msgstr "" -" * Esta comida parece bem . Se você fosse mais habilidoso em " -"cozinhar ou sobreviver, você poderia fazer uma estimativa melhor." #. ~ here, %s is an approximate time span, e.g., "over 2 weeks" or "about 1 #. season" @@ -187732,59 +168279,59 @@ msgstr "" #: src/item.cpp msgid "Category: " -msgstr "Categoria:" +msgstr "" #: src/item.cpp msgid "$" -msgstr "$ " +msgstr "" #: src/item.cpp msgid "Price: " -msgstr "Preço:" +msgstr "" #: src/item.cpp msgid "Barter value: " -msgstr "Valor de troca:" +msgstr "" #: src/item.cpp msgid "Volume: " -msgstr " Volume :" +msgstr "" #: src/item.cpp msgid "Weight: " -msgstr "Peso:" +msgstr "" #: src/item.cpp msgid "Rigid: " -msgstr " Rígido :" +msgstr "" #: src/item.cpp msgid "No (contents increase volume)" -msgstr "Não (conteúdo aumenta volume)" +msgstr "" #: src/item.cpp msgid "Bash: " -msgstr "Bater:" +msgstr "" #: src/item.cpp msgid "Cut: " -msgstr "Cortar:" +msgstr "" #: src/item.cpp msgid "Pierce: " -msgstr "Perfurar:" +msgstr "" #: src/item.cpp msgid "To-hit bonus: " -msgstr "Bônus para acertar:" +msgstr "" #: src/item.cpp msgid "Moves per attack: " -msgstr "Movimentos por ataque:" +msgstr "" #: src/item.cpp msgid "Minimum requirements:" -msgstr " Requerimentos mínimos: " +msgstr "" #: src/item.cpp #, c-format @@ -187803,7 +168350,7 @@ msgstr "" #: src/item.cpp msgid "Amount: " -msgstr "Montante:" +msgstr "" #: src/item.cpp msgid "age (hours): " @@ -187819,11 +168366,11 @@ msgstr "" #: src/item.cpp msgid "last rot: " -msgstr "última podridão:" +msgstr "" #: src/item.cpp msgid "last temp: " -msgstr "última temp:" +msgstr "" #: src/item.cpp msgid "max rot (turns): " @@ -187855,47 +168402,47 @@ msgstr "" #: src/item.cpp msgid "burn: " -msgstr "queimar:" +msgstr "" #: src/item.cpp msgid "Quench: " -msgstr "Saciar:" +msgstr "" #: src/item.cpp msgid "Enjoyability: " -msgstr "Enjoyability:" +msgstr "" #: src/item.cpp msgid "Stimulation:" -msgstr "Estimulação:" +msgstr "" #: src/item.cpp msgid "Downer" -msgstr "Downer" +msgstr "" #: src/item.cpp msgid "Upper" -msgstr "Superior" +msgstr "" #: src/item.cpp msgid "Portions: " -msgstr "Porções:" +msgstr "" #: src/item.cpp msgid "* Consuming this item is addicting." -msgstr "* Consumir este item é viciante ." +msgstr "" #: src/item.cpp msgid "Calories (kcal): " -msgstr " Calorias (kcal) :" +msgstr "" #: src/item.cpp msgid "Smells like: " -msgstr "Cheira como:" +msgstr "" #: src/item.cpp src/iuse_actor.cpp msgid "Vitamins (RDA): " -msgstr "Vitaminas (RDA):" +msgstr "" #: src/item.cpp msgid "* This food will cause an allergic reaction." @@ -187903,28 +168450,25 @@ msgstr "" #: src/item.cpp msgid "* This food contains human flesh." -msgstr "* Este alimento contém carne humana ." +msgstr "" #: src/item.cpp msgid "* This food contains human flesh." -msgstr "* Este alimento contém carne humana ." +msgstr "" #: src/item.cpp msgid "* This food is tainted and will poison you." -msgstr "* Esta comida é contaminado e vai envenenar você." +msgstr "" #: src/item.cpp msgid "* On closer inspection, this appears to be poisonous." msgstr "" -" * Em uma inspeção mais próxima, isso parece ser venenoso ." #: src/item.cpp msgid "" "* On closer inspection, this appears to be " "hallucinogenic." msgstr "" -" * Em uma inspeção mais próxima, isso parece ser alucinogênico " -" ." #: src/item.cpp #, c-format @@ -187938,46 +168482,34 @@ msgid "" "* Quality of this food suffers when it's frozen, and it will become" " mushy after thawing out." msgstr "" -" * A qualidade deste alimento sofre quando está congelado e vai " -"ficar mole depois de descongelar ." #: src/item.cpp msgid "" "* It was frozen once and after thawing became mushy and " "tasteless. It will rot if thawed again." msgstr "" -" * Foi congelado uma vez e depois de descongelar tornou-se mole e sem " -"gosto . Apodrece se descongelado novamente." #: src/item.cpp msgid "* It seems that deep freezing killed all parasites." msgstr "" -" * Parece que o congelamento profundo matou todos os parasitas " -" ." #: src/item.cpp msgid "" "This food has started to rot, but your bionic " "digestion can tolerate it." msgstr "" -" Esta comida começou a podridão , mas sua " -"digestão biônica pode tolerar isso ." #: src/item.cpp msgid "" "This food has started to rot, but you can tolerate " "it." msgstr "" -" Esta comida começou a podridão , mas você pode " -"tolerar isso ." #: src/item.cpp msgid "" "This food has started to rot. Eating it would be a " "very bad idea." msgstr "" -" Esta comida começou a podridão . Comendo seria " -"um muito má ideia ." #: src/item.cpp #, c-format @@ -187992,43 +168524,43 @@ msgstr "" #: src/item.cpp msgid " per round" -msgstr " por rodada" +msgstr "" #: src/item.cpp msgid "Reload time: " -msgstr "Tempo de recarregamento:" +msgstr "" #: src/item.cpp msgid "Ammunition: " -msgstr "Munição:" +msgstr "" #: src/item.cpp msgid "Type: " -msgstr "Tipo:" +msgstr "" #: src/item.cpp msgid "Damage: " -msgstr " Danificar :" +msgstr "" #: src/item.cpp msgid "Damage multiplier: " -msgstr " Multiplicador de danos :" +msgstr "" #: src/item.cpp msgid "Armor-pierce: " -msgstr "Armor-pierce:" +msgstr "" #: src/item.cpp msgid "Range: " -msgstr "Alcance:" +msgstr "" #: src/item.cpp msgid "Dispersion: " -msgstr "Dispersão:" +msgstr "" #: src/item.cpp msgid "Recoil: " -msgstr "Recuo:" +msgstr "" #: src/item.cpp msgid "This ammo has been hand-loaded." @@ -188055,15 +168587,15 @@ msgstr "" #: src/item.cpp msgid "Skill used: " -msgstr "Habilidade usada:" +msgstr "" #: src/item.cpp msgid "Magazine: " -msgstr "Revista:" +msgstr "" #: src/item.cpp msgid "Capacity: " -msgstr " Capacidade: " +msgstr "" #: src/item.cpp #, c-format @@ -188078,67 +168610,67 @@ msgstr "" #: src/item.cpp msgid "Base aim speed: " -msgstr "Velocidade de mira base:" +msgstr "" #: src/item.cpp msgid "Even chance of good hit at range: " -msgstr "Mesmo chance de sucesso no alcance:" +msgstr "" #: src/item.cpp msgid "" -msgstr "" +msgstr "" #: src/item.cpp msgid " seconds" -msgstr " segundos" +msgstr "" #: src/item.cpp msgid "Time to reach aim level: " -msgstr "Hora de alcançar o nível da meta:" +msgstr "" #: src/item.cpp msgid "Damage: " -msgstr "Danificar:" +msgstr "" #: src/item.cpp msgid " = " -msgstr "= " +msgstr "" #: src/item.cpp msgid "Sight dispersion: " -msgstr "Dispersão de visão:" +msgstr "" #: src/item.cpp msgid "Approximate recoil: " -msgstr "Recuo aproximado:" +msgstr "" #: src/item.cpp msgid " (with bipod )" -msgstr "(com bipé )" +msgstr "" #: src/item.cpp msgid "Effective recoil: " -msgstr "Recuo Efetivo:" +msgstr "" #: src/item.cpp msgid "Recommended strength (burst): " -msgstr "Força recomendada (rajada):" +msgstr "" #: src/item.cpp msgid " seconds per round" -msgstr " segundos por rodada" +msgstr "" #: src/item.cpp msgid "Fire modes: " -msgstr " Modos de fogo: " +msgstr "" #: src/item.cpp msgid "Compatible magazines: " -msgstr " Revistas compatíveis: " +msgstr "" #: src/item.cpp msgid "Mods: " -msgstr " Modificações: " +msgstr "" #: src/item.cpp #, c-format @@ -188158,20 +168690,18 @@ msgid "" "When attached to a gun, allows making reach melee " "attacks with it." msgstr "" -" Quando preso a uma arma, permite fazer alcançar " -"ataques corpo a corpo com isso." #: src/item.cpp msgid "Dispersion modifier: " -msgstr "Dispersão modificar:" +msgstr "" #: src/item.cpp msgid "Aim speed: " -msgstr "Aponte a velocidade:" +msgstr "" #: src/item.cpp msgid "Handling modifier: " -msgstr "Modificador de manipulação:" +msgstr "" #: src/item.cpp #, c-format @@ -188184,155 +168714,155 @@ msgstr "" #: src/item.cpp msgid "Reload modifier: " -msgstr "Recarregar edição:" +msgstr "" #: src/item.cpp msgid "Minimum strength required modifier: " -msgstr "Modificador mínimo requerido:" +msgstr "" #: src/item.cpp msgid "Adds mod locations: " -msgstr " Adiciona localizações mod: " +msgstr "" #: src/item.cpp msgid "Used on: " -msgstr "Usado em:" +msgstr "" #: src/item.cpp msgid "Location: " -msgstr "Localização:" +msgstr "" #: src/item.cpp msgid "Incompatible with mod location: " -msgstr " Incompatível com a localização mod: " +msgstr "" #: src/item.cpp msgid "Covers: " -msgstr "Capas:" +msgstr "" #: src/item.cpp msgid "The head. " -msgstr "o cabeça ." +msgstr "" #: src/item.cpp msgid "The eyes. " -msgstr "o olhos ." +msgstr "" #: src/item.cpp msgid "The mouth. " -msgstr "o boca ." +msgstr "" #: src/item.cpp msgid "The torso. " -msgstr "o tronco ." +msgstr "" #: src/item.cpp msgid "Either arm. " -msgstr "Ou braço ." +msgstr "" #: src/item.cpp msgid "The arms. " -msgstr "o braços ." +msgstr "" #: src/item.cpp msgid "The left arm. " -msgstr "o braço esquerdo ." +msgstr "" #: src/item.cpp msgid "The right arm. " -msgstr "o braço direito ." +msgstr "" #: src/item.cpp msgid "Either hand. " -msgstr "Ou mão ." +msgstr "" #: src/item.cpp msgid "The hands. " -msgstr "o mãos ." +msgstr "" #: src/item.cpp msgid "The left hand. " -msgstr "o mão esquerda ." +msgstr "" #: src/item.cpp msgid "The right hand. " -msgstr "o mão direita ." +msgstr "" #: src/item.cpp msgid "Either leg. " -msgstr "Ou perna ." +msgstr "" #: src/item.cpp msgid "The legs. " -msgstr "o pernas ." +msgstr "" #: src/item.cpp msgid "The left leg. " -msgstr "o perna esquerda ." +msgstr "" #: src/item.cpp msgid "The right leg. " -msgstr "o perna direita ." +msgstr "" #: src/item.cpp msgid "Either foot. " -msgstr "Ou ." +msgstr "" #: src/item.cpp msgid "The feet. " -msgstr "o pés ." +msgstr "" #: src/item.cpp msgid "The left foot. " -msgstr "o pé esquerdo ." +msgstr "" #: src/item.cpp msgid "The right foot. " -msgstr "o pé direito ." +msgstr "" #: src/item.cpp msgid "Nothing." -msgstr " Nada ." +msgstr "" #: src/item.cpp msgid "Layer: " -msgstr "Camada:" +msgstr "" #: src/item.cpp msgid "Close to skin. " -msgstr " Perto da pele ." +msgstr "" #: src/item.cpp msgid "Strapped. " -msgstr " Amarrado ." +msgstr "" #: src/item.cpp msgid "Outer. " -msgstr " Exterior ." +msgstr "" #: src/item.cpp msgid "Waist. " -msgstr " Cintura ." +msgstr "" #: src/item.cpp msgid "Normal. " -msgstr " Normal ." +msgstr "" #: src/item.cpp msgid "Coverage: " -msgstr "Cobertura:" +msgstr "" #: src/item.cpp msgid "Warmth: " -msgstr "Calor:" +msgstr "" #: src/item.cpp msgid " (fits)" -msgstr " (encaixa) " +msgstr "" #: src/item.cpp msgid " (poor fit)" -msgstr " (mal ajustado) " +msgstr "" #: src/item.cpp msgid " (too big)" @@ -188352,52 +168882,49 @@ msgstr "" #: src/item.cpp msgid "Encumbrance: " -msgstr " Oneração :" +msgstr "" #: src/item.cpp msgid "Encumbrance when full: " -msgstr "Sobrecarga quando cheia:" +msgstr "" #: src/item.cpp msgid "Storage: " -msgstr "Armazenamento:" +msgstr "" #: src/item.cpp msgid "Protection: Bash: " -msgstr " Protecção : Bash:" +msgstr "" #: src/item.cpp msgid "Acid: " -msgstr "Ácido:" +msgstr "" #: src/item.cpp msgid "Fire: " -msgstr "Fogo:" +msgstr "" #: src/item.cpp msgid "Environmental: " -msgstr "De Meio Ambiente:" +msgstr "" #: src/item.cpp msgid "Protection when active: " -msgstr " Proteção quando ativo :" +msgstr "" #: src/item.cpp msgid "" "Protection values are reduced by damage and you may be able to " "improve them by repairing this item." msgstr "" -" Valores de proteção são reduzido por dano e você pode ser " -"capaz de melhorá-los reparando este item ." #: src/item.cpp msgid "Just for fun." -msgstr "Apenas por diversão." +msgstr "" #: src/item.cpp msgid "Some sort of martial arts training manual." msgstr "" -"Algum tipo de manual de treinamento de artes marciais ." #: src/item.cpp #, c-format @@ -188417,7 +168944,7 @@ msgstr "" #: src/item.cpp msgid "It can be understood by beginners." -msgstr "Pode ser entendido por iniciantes ." +msgstr "" #: src/item.cpp #, c-format @@ -188436,11 +168963,11 @@ msgstr "" #: src/item.cpp msgid "Requires intelligence of to easily read." -msgstr "Requer inteligência de para ler facilmente." +msgstr "" #: src/item.cpp msgid "Reading this book affects your morale by " -msgstr "Ler este livro afeta sua moral por " +msgstr "" #: src/item.cpp msgid "A chapter of this book takes minute to read." @@ -188478,19 +169005,19 @@ msgstr "" #: src/item.cpp msgid "You need to read this book to see its contents." -msgstr "Você precisa leia este livro para ver seu conteúdo ." +msgstr "" #: src/item.cpp msgid "This container " -msgstr "Este contêiner" +msgstr "" #: src/item.cpp msgid "can be resealed, " -msgstr "pode ser resealed ," +msgstr "" #: src/item.cpp msgid "is watertight, " -msgstr "é à prova d'água ," +msgstr "" #: src/item.cpp msgid "prevents spoiling, " @@ -188549,7 +169076,7 @@ msgstr "" #: src/item.cpp msgid "Contains items with qualities:" -msgstr "Contém itens com qualidades:" +msgstr "" #: src/item.cpp msgid "" @@ -188564,22 +169091,19 @@ msgstr "" #: src/item.cpp msgid "Techniques when wielded: " -msgstr " Técnicas quando empunhadas :" +msgstr "" #: src/item.cpp msgid "* This item can be used to make long reach attacks." msgstr "" -" * Este item pode ser usado para fazer ataques de longo alcance " -" ." #: src/item.cpp msgid "* This item can be used to make reach attacks." msgstr "" -" * Este item pode ser usado para fazer alcançar ataques ." #: src/item.cpp msgid "Average melee damage:" -msgstr " Média de dano corpo a corpo: " +msgstr "" #: src/item.cpp #, c-format @@ -188608,11 +169132,11 @@ msgstr "" #: src/item.cpp msgid "You know how to use this with these martial arts styles: " -msgstr "Você sabe como usar isso com esses estilos de artes marciais:" +msgstr "" #: src/item.cpp msgid "Repaired with: " -msgstr " Reparado com :" +msgstr "" #: src/item.cpp msgid "* This item can be reinforced." @@ -188620,22 +169144,20 @@ msgstr "" #: src/item.cpp msgid "* This item is not repairable." -msgstr "* Este item é não reparável ." +msgstr "" #: src/item.cpp msgid "* This item does not conduct electricity." -msgstr "* Este item não conduz eletricidade." +msgstr "" #: src/item.cpp msgid "" "* This item effectively conducts electricity, as it has no guard." msgstr "" -" * Este item efetivamente conduz eletricidade, como não tem " -"guarda." #: src/item.cpp msgid "* This item conducts electricity." -msgstr "* Este item conduz eletricidade." +msgstr "" #: src/item.cpp msgid "* This clothing will give you an allergic reaction." @@ -188643,7 +169165,7 @@ msgstr "" #: src/item.cpp msgid "* This item can be worn with a helmet." -msgstr "* Este item pode ser usado com um capacete ." +msgstr "" #: src/item.cpp msgid "* This clothing fits you perfectly." @@ -188736,27 +169258,23 @@ msgstr "" #: src/item.cpp msgid "* This item can be worn on either side of the body." -msgstr "* Este item pode ser usado em qualquer lado do corpo." +msgstr "" #: src/item.cpp msgid "* This gear is a part of power armor." -msgstr "* Esta engrenagem é uma parte da armadura de poder." +msgstr "" #: src/item.cpp msgid "" "* When worn with a power armor suit, it will fully protect you " "from radiation." msgstr "" -" * Quando usado com um traje de armadura de força, proteger " -"totalmente Você é de radiação ." #: src/item.cpp msgid "" "* When worn with a power armor helmet, it will fully protect " "you from radiation." msgstr "" -" * Quando usado com um capacete de armadura, ele proteger totalmente " -" Você é de radiação ." #: src/item.cpp #, c-format @@ -188769,17 +169287,12 @@ msgid "" "and is not compatible with standard " "batteries." msgstr "" -" * Esta ferramenta foi modificada para usar um fonte de alimentação " -"universal e é não compatível com " -"baterias padrão ." #: src/item.cpp msgid "" "* This tool has a rechargeable power cell and is not " "compatible with standard batteries." msgstr "" -" * Esta ferramenta tem um célula de potência recarregável e é" -" não compatível com baterias padrão ." #: src/item.cpp msgid "" @@ -188788,10 +169301,6 @@ msgid "" "charge it with standard batteries, but unloading it is " "impossible." msgstr "" -" * Esta ferramenta tem um célula de potência recarregável e " -"pode ser recarregado em qualquer Estação de recarga compatível com" -" UPS . Você poderia cobrar com baterias padrão , " -"mas descarregar é impossível." #: src/item.cpp msgid "* This tool runs on bionic power." @@ -188802,13 +169311,10 @@ msgid "" "* This item has been modified to listen to radio signals. It " "can still be activated manually." msgstr "" -" * Este item foi modificado para ouvir sinais de rádio . " -"Ainda pode ser ativado manualmente." #: src/item.cpp msgid "* This item can only be activated by a radio signal." msgstr "" -"* Este item só pode ser ativado por um Sinal de rádio ." #: src/item.cpp #, c-format @@ -188820,20 +169326,18 @@ msgid "" "* Activating this item with a radio signal will " "detonate it immediately." msgstr "" -" * Ativando este item com um Sinal de rádio vai " -"detonar isso imediatamente." #: src/item.cpp msgid "This bionic is installed in the following body part(s):" -msgstr "Este biônico está instalado nas seguintes partes do corpo:" +msgstr "" #: src/item.cpp msgid "* This weapon needs two free hands to fire." -msgstr "* Esta arma precisa duas mãos livres para disparar." +msgstr "" #: src/item.cpp msgid "* This mod obscures sights of the base weapon." -msgstr "* Este mod obscurece visões da arma base." +msgstr "" #: src/item.cpp msgid "* This mod might suffer wear when firing the base weapon." @@ -188844,16 +169348,12 @@ msgid "" "* The casing of this item has cracked, revealing an " "ominous green glow." msgstr "" -" * O invólucro deste item tem rachado , revelando um " -" brilho verde sinistro ." #: src/item.cpp msgid "" "* This object is surrounded by a sickly green " "glow." msgstr "" -" * Este objeto é cercado por um brilho verde " -"doentio ." #: src/item.cpp #, c-format @@ -188882,11 +169382,11 @@ msgstr "" #: src/item.cpp msgid "Can be stored in: " -msgstr " Pode ser armazenado em: " +msgstr "" #: src/item.cpp msgid "It's done and can be activated." -msgstr "Está feito e pode ser ativado ." +msgstr "" #: src/item.cpp #, c-format @@ -188904,15 +169404,15 @@ msgstr "Nota: " #: src/item.cpp msgid "Integrated mod: " -msgstr "Mod integrado:" +msgstr "" #: src/item.cpp msgid "Mod: " -msgstr "Mod:" +msgstr "" #: src/item.cpp msgid "Contents of this item:" -msgstr " Conteúdo deste item :" +msgstr "" #: src/item.cpp #, c-format @@ -188923,11 +169423,11 @@ msgstr "" #: src/item.cpp msgid "You know dozens of things you could craft with it." -msgstr "Você conhece dezenas de coisas que você pode criar com ele." +msgstr "" #: src/item.cpp msgid "You could use it to craft various other things." -msgstr "Você poderia usá-lo para criar várias outras coisas." +msgstr "" #: src/item.cpp #, c-format @@ -188961,7 +169461,7 @@ msgstr "" #: src/item.cpp msgid "faulty " -msgstr "defeituoso" +msgstr "" #: src/item.cpp #, c-format @@ -188978,12 +169478,12 @@ msgstr "" #: src/item.cpp msgctxt "burnt adjective" msgid "badly burnt " -msgstr "gravemente queimado" +msgstr "" #: src/item.cpp msgctxt "burnt adjective" msgid "burnt " -msgstr "queimado" +msgstr "" #: src/item.cpp #, c-format @@ -189016,43 +169516,43 @@ msgstr "" #: src/item.cpp msgid " (hallucinogenic)" -msgstr "(alucinógeno)" +msgstr "" #: src/item.cpp msgid " (dirty)" -msgstr "(sujo)" +msgstr "" #: src/item.cpp src/veh_interact.cpp msgid " (rotten)" -msgstr "(podre)" +msgstr "" #: src/item.cpp msgid " (mushy)" -msgstr "(mole)" +msgstr "" #: src/item.cpp msgid " (old)" -msgstr "(velho)" +msgstr "" #: src/item.cpp msgid " (fresh)" -msgstr "(fresco)" +msgstr "" #: src/item.cpp msgid " (hot)" -msgstr "(quente)" +msgstr "" #: src/item.cpp msgid " (cold)" -msgstr "(frio)" +msgstr "" #: src/item.cpp src/veh_interact.cpp msgid " (frozen)" -msgstr "(congeladas)" +msgstr "" #: src/item.cpp msgid " (melted)" -msgstr "(derretido)" +msgstr "" #: src/item.cpp msgid " (too big)" @@ -189072,50 +169572,50 @@ msgstr "" #: src/item.cpp msgid " (poor fit)" -msgstr "(mal ajustado)" +msgstr "" #: src/item.cpp msgid " (filthy)" -msgstr "(imundo)" +msgstr "" #: src/item.cpp msgid " (UPS)" -msgstr "(UPS)" +msgstr "" #: src/item.cpp msgid " (radio:" -msgstr "(rádio:" +msgstr "" #: src/item.cpp msgctxt "The radio mod is associated with the [R]ed button." msgid "R)" -msgstr "R)" +msgstr "" #: src/item.cpp msgctxt "The radio mod is associated with the [B]lue button." msgid "B)" -msgstr "B)" +msgstr "" #: src/item.cpp msgctxt "The radio mod is associated with the [G]reen button." msgid "G)" -msgstr "G)" +msgstr "" #: src/item.cpp msgid " (wet)" -msgstr "(molhado)" +msgstr "" #: src/item.cpp msgid " (used)" -msgstr "(usava)" +msgstr "" #: src/item.cpp msgid " (lit)" -msgstr "(Bed)" +msgstr "" #: src/item.cpp msgid " (active)" -msgstr "(ativo)" +msgstr "" #: src/item.cpp msgid " *" @@ -189123,12 +169623,12 @@ msgstr "" #: src/item.cpp msgid "sawn-off " -msgstr "serrada" +msgstr "" #: src/item.cpp msgctxt "Adjective, as in diamond katana" msgid "diamond" -msgstr "diamante" +msgstr "" #. ~ This is a string to construct the item name as it is displayed. This #. format string has been added for maximum flexibility. The strings are: @@ -189149,31 +169649,31 @@ msgstr "" #: src/item.cpp msgid "left" -msgstr "esquerda" +msgstr "" #: src/item.cpp msgid "right" -msgstr "certo" +msgstr "" #: src/item.cpp msgid "++" -msgstr "++" +msgstr "" #: src/item.cpp msgid "||" -msgstr "||" +msgstr "" #: src/item.cpp msgid "|\\" -msgstr "|\\" +msgstr "" #: src/item.cpp msgid "|." -msgstr "|." +msgstr "" #: src/item.cpp msgid "\\." -msgstr "\\." +msgstr "" #: src/item.cpp msgid "XX" @@ -189181,37 +169681,37 @@ msgstr "" #: src/item.cpp msgid ".." -msgstr ".." +msgstr "" #: src/item.cpp msgctxt "damage adjective" msgid "accurized " -msgstr "com precisão" +msgstr "" #: src/item.cpp msgctxt "damage adjective" msgid "reinforced " -msgstr "reforçado" +msgstr "" #: src/item.cpp msgctxt "damage adjective" msgid "bruised " -msgstr "machucado" +msgstr "" #: src/item.cpp msgctxt "damage adjective" msgid "damaged " -msgstr "estragado" +msgstr "" #: src/item.cpp msgctxt "damage adjective" msgid "mangled " -msgstr "mutilado" +msgstr "" #: src/item.cpp msgctxt "damage adjective" msgid "pulped " -msgstr "descascado" +msgstr "" #: src/item.cpp msgid "fully intact " @@ -189219,11 +169719,11 @@ msgstr "" #: src/item.cpp msgid "isn't a weapon" -msgstr "não é uma arma" +msgstr "" #: src/item.cpp msgid "is a gunmod and cannot be modded" -msgstr "é um gunmod e não pode ser modded" +msgstr "" #: src/item.cpp #, c-format @@ -189232,7 +169732,7 @@ msgstr "" #: src/item.cpp msgid "doesn't have a slot for this mod" -msgstr "não tem um slot para este mod" +msgstr "" #: src/item.cpp #, c-format @@ -189246,11 +169746,11 @@ msgstr "" #: src/item.cpp msgid "isn't big enough to use that mod" -msgstr "não é grande o suficiente para usar esse mod" +msgstr "" #: src/item.cpp msgid "can only accept small mods on that slot" -msgstr "só pode aceitar pequenos mods nesse slot" +msgstr "" #: src/item.cpp #, c-format @@ -189259,19 +169759,19 @@ msgstr "" #: src/item.cpp msgid "is already waterproof" -msgstr "já é à prova d'água" +msgstr "" #: src/item.cpp msgid "is already eminently reliable" -msgstr "já é eminentemente confiável" +msgstr "" #: src/item.cpp msgid "cannot have a brass catcher" -msgstr "não pode ter um apanhador de latão" +msgstr "" #: src/item.cpp msgid "must be unloaded before installing this mod" -msgstr "deve ser descarregado antes de instalar este mod" +msgstr "" #: src/item.cpp #, c-format @@ -189325,11 +169825,11 @@ msgstr "" #: src/item.cpp msgid "A nearby robot has repaired itself and stands up!" -msgstr "Um robô nas proximidades reparou-se e levantou-se!" +msgstr "" #: src/item.cpp msgid "A nearby corpse rises and moves towards you!" -msgstr "Um cadáver próximo sobe e se move em sua direção!" +msgstr "" #. ~ %s is corpse name #: src/item.cpp @@ -189346,12 +169846,11 @@ msgstr "" #: src/item.cpp msgid "Oh dear god, a robot you're carrying has started moving!" -msgstr "Oh querido deus, um robô que você está carregando começou a se mover!" +msgstr "" #: src/item.cpp msgid "Oh dear god, a corpse you're carrying has started moving!" msgstr "" -" Oh querido deus, um cadáver que você está carregando começou a se mover!" #: src/item.cpp #, c-format @@ -189390,15 +169889,15 @@ msgstr "" #: src/item.cpp src/iuse.cpp msgid "You notice the cable has come loose!" -msgstr "Você percebe que o cabo se soltou!" +msgstr "" #: src/item.cpp msgid "The over-extended cable breaks loose!" -msgstr "O cabo com extensão excessiva se solta!" +msgstr "" #: src/item.cpp msgid "You reel in the cable." -msgstr "Você bobina no cabo." +msgstr "" #: src/item.cpp #, c-format @@ -189508,11 +170007,11 @@ msgstr "" #: src/item_action.cpp msgid "You don't have any items with registered uses" -msgstr "Você não tem itens com usos registrados" +msgstr "" #: src/item_action.cpp msgid "Execute which action?" -msgstr "Executar qual ação?" +msgstr "" #: src/item_factory.cpp msgid "" @@ -189520,37 +170019,34 @@ msgid "" "consume charges when active, but only when environmental hazards are " "present." msgstr "" -" Pode ser ativado para aumentar a proteção ambiental . Vai " -"consumir cargas quando ativo, mas somente quando os riscos ambientais" -" estão presentes ." #: src/item_factory.cpp msgid "cannot specify revert_msg without revert_to" -msgstr "não é possível especificar revert_msg sem revert_to" +msgstr "" #: src/item_factory.cpp msgid "Invalid tool subtype" -msgstr "Subtipo de ferramenta inválido" +msgstr "" #: src/item_factory.cpp src/trait_group.cpp msgid "Test which group?" -msgstr "Teste qual grupo?" +msgstr "" #: src/item_factory.cpp src/trait_group.cpp msgid "Result of 100 spawns:" -msgstr "Resultado de 100 spawns:" +msgstr "" #: src/item_location.cpp msgid "worn" -msgstr "desgastado" +msgstr "" #: src/item_location.cpp msgid "inventory" -msgstr "inventário" +msgstr "" #: src/itype.h msgid "click." -msgstr "clique." +msgstr "" #: src/iuse.cpp #, c-format @@ -189564,17 +170060,17 @@ msgstr "" #: src/iuse.cpp msgid "Are you sure you want to drink... this?" -msgstr "Tem certeza que quer beber ... isso?" +msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Ate a sewage sample." -msgstr "Comi uma amostra de esgoto." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Ate a sewage sample." -msgstr "Comi uma amostra de esgoto." +msgstr "" #: src/iuse.cpp #, c-format @@ -189588,7 +170084,7 @@ msgstr "" #: src/iuse.cpp msgid "You don't have anything to light it with!" -msgstr "Você não tem nada para acender!" +msgstr "" #: src/iuse.cpp #, c-format @@ -189604,47 +170100,45 @@ msgstr "" #: src/iuse.cpp msgid "Ugh, too much smoke... you feel nasty." -msgstr "Uh, muita fumaça ... você se sente desagradável." +msgstr "" #: src/iuse.cpp msgid "You take a puff from your electronic cigarette." -msgstr "Você dá uma tragada no seu cigarro eletrônico." +msgstr "" #: src/iuse.cpp msgid "You inhale some vapor from your advanced electronic cigarette." -msgstr "Você inala um pouco de vapor do seu cigarro eletrônico avançado." +msgstr "" #: src/iuse.cpp msgid "You don't have any nicotine liquid!" -msgstr "Você não tem nenhum líquido de nicotina!" +msgstr "" #: src/iuse.cpp msgid "Ugh, too much nicotine... you feel nasty." -msgstr "Uh, muita nicotina ... você se sente desagradável." +msgstr "" #: src/iuse.cpp msgid "You take some antibiotics." -msgstr "Você toma alguns antibióticos." +msgstr "" #: src/iuse.cpp msgid " takes some antibiotics." -msgstr " toma alguns antibióticos." +msgstr "" #: src/iuse.cpp msgid "The muscle spasms start to go away." -msgstr "Os espasmos musculares começam a desaparecer." +msgstr "" #: src/iuse.cpp msgid "The medication does nothing to help the spasms." -msgstr "A medicação não faz nada para ajudar os espasmos." +msgstr "" #: src/iuse.cpp msgid "" "Maybe just placebo effect, but you feel a little better as the dose settles " "in." msgstr "" -" Talvez apenas um efeito placebo, mas você se sente um pouco melhor à medida" -" que a dose se instala." #: src/iuse.cpp #, c-format @@ -189658,73 +170152,71 @@ msgstr "" #: src/iuse.cpp msgid "You wash the slime from your eyes." -msgstr "Você lava o lodo dos seus olhos." +msgstr "" #: src/iuse.cpp msgid " uses some fungicide" -msgstr " usa algum fungicida" +msgstr "" #: src/iuse.cpp msgid "You use your fungicide." -msgstr "Você usa seu fungicida." +msgstr "" #: src/iuse.cpp msgid "You feel a burning sensation under your skin that quickly fades away." msgstr "" -" Você sente uma sensação de queimação sob a pele que desaparece rapidamente." #: src/iuse.cpp msgid "Your skin grows warm for a moment." -msgstr "Sua pele fica quente por um momento." +msgstr "" #: src/iuse.cpp msgid "You take some antifungal medication." -msgstr "Você toma algum medicamento antifúngico." +msgstr "" #: src/iuse.cpp msgid "You take some antiparasitic medication." -msgstr "Você toma algum medicamento antiparasitário." +msgstr "" #: src/iuse.cpp msgid "The itching sensation under your skin fades away." -msgstr "A sensação de coceira sob a pele desaparece." +msgstr "" #: src/iuse.cpp msgid "Your bowels clench as something inside them dies." -msgstr "Seus intestinos se apertam quando algo dentro deles morre." +msgstr "" #: src/iuse.cpp msgid "Your bowels spasm painfully as something inside them dies." msgstr "" -" Suas entranhas se espasam dolorosamente quando algo dentro delas morre." #: src/iuse.cpp msgid "Your skin prickles and your veins itch for a few moments." -msgstr "Sua pele se arrepia e suas veias coçam por alguns instantes." +msgstr "" #: src/iuse.cpp msgid "The pressure inside your head feels better already." -msgstr "A pressão dentro da sua cabeça já está melhor." +msgstr "" #: src/iuse.cpp msgid "Your head pounds like a sore tooth as something inside of it dies." -msgstr "Sua cabeça bate como um dente dolorido quando algo dentro dele morre." +msgstr "" #: src/iuse.cpp msgid "The stiffness in your joints goes away." -msgstr "A rigidez nas articulações desaparece." +msgstr "" #: src/iuse.cpp msgid "The pain in your joints goes away." -msgstr "A dor nas articulações desaparece." +msgstr "" #: src/iuse.cpp msgid "You take some anticonvulsant medication." -msgstr "Você toma algum medicamento anticonvulsivo." +msgstr "" #: src/iuse.cpp msgid "You stop shaking." -msgstr "Você pára de tremer." +msgstr "" #: src/iuse.cpp msgid "" @@ -189734,35 +170226,35 @@ msgstr "" #: src/iuse.cpp msgid "You snort a bump of coke." -msgstr "Você bufa um caroço de cocaína." +msgstr "" #: src/iuse.cpp msgid "You smoke your meth." -msgstr "Você fuma sua metanfetamina." +msgstr "" #: src/iuse.cpp msgid "The world seems to sharpen." -msgstr "O mundo parece aguçar." +msgstr "" #: src/iuse.cpp msgid "You snort some crystal meth." -msgstr "Você cheira um pouco de metanfetamina." +msgstr "" #: src/iuse.cpp msgid "You inject the vaccine." -msgstr "Você injeta a vacina." +msgstr "" #: src/iuse.cpp msgid "You feel tough." -msgstr "Você se sente duro." +msgstr "" #: src/iuse.cpp msgid "You no longer need to fear the flu." -msgstr "Você não precisa mais temer a gripe." +msgstr "" #: src/iuse.cpp msgid "Are you sure you want to eat this? It looks poisonous..." -msgstr "Tem certeza de que quer comer isso? Parece venenoso ..." +msgstr "" #: src/iuse.cpp #, c-format @@ -189771,23 +170263,23 @@ msgstr "" #: src/iuse.cpp msgid "You feel completely exhausted." -msgstr "Você se sente completamente exausto." +msgstr "" #: src/iuse.cpp msgid "You feel a bit wobbly." -msgstr "Você se sente um pouco vacilante." +msgstr "" #: src/iuse.cpp msgid "You suddenly feel hollow inside." -msgstr "De repente você se sente oco por dentro." +msgstr "" #: src/iuse.cpp msgid "You feel very sleepy..." -msgstr "Você se sente com muito sono ..." +msgstr "" #: src/iuse.cpp msgid "You eat the datura seed." -msgstr "Você come a semente de datura." +msgstr "" #: src/iuse.cpp #, c-format @@ -189796,7 +170288,7 @@ msgstr "" #: src/iuse.cpp msgid "You take a puff from your inhaler." -msgstr "Você toma um sopro do seu inalador." +msgstr "" #: src/iuse.cpp #, c-format @@ -189805,27 +170297,27 @@ msgstr "" #: src/iuse.cpp msgid "This looks unhealthy, sure you want to drink it?" -msgstr "Isso parece insalubre, com certeza você quer beber?" +msgstr "" #: src/iuse.cpp msgid "This looks unhealthy, sure you want to eat it?" -msgstr "Isso parece insalubre, com certeza você quer comê-lo?" +msgstr "" #: src/iuse.cpp msgid "Blech, that tastes gross!" -msgstr "Bem, isso é ótimo!" +msgstr "" #: src/iuse.cpp msgid "Blech, that burns your throat!" -msgstr "Blech, isso queima sua garganta!" +msgstr "" #: src/iuse.cpp msgid "The meal is revitalizing." -msgstr "A refeição é revitalizante." +msgstr "" #: src/iuse.cpp msgid "Oddly enough, this doesn't taste so bad." -msgstr "Curiosamente, isso não tem um gosto tão ruim." +msgstr "" #: src/iuse.cpp #, c-format @@ -189838,61 +170330,59 @@ msgstr "Você se sente limpo." #: src/iuse.cpp msgid "You feel a slight itching inside, but it passes." -msgstr "Você sente uma ligeira coceira por dentro, mas passa." +msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Consumed purifier." -msgstr "Purificador consumido." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Consumed purifier." -msgstr "Purificador consumido." +msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Injected purifier." -msgstr "Purificador injetado." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Injected purifier." -msgstr "Purificador injetado." +msgstr "" #: src/iuse.cpp msgid "You feel a distinct burning inside, but it passes." -msgstr "Você sente um ardor distinto por dentro, mas passa." +msgstr "" #: src/iuse.cpp msgid "Feels like you're on fire, but you're OK." -msgstr "Parece que você está pegando fogo, mas você está bem." +msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Injected smart purifier." -msgstr "Purificador inteligente injetado." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Injected smart purifier." -msgstr "Purificador inteligente injetado." +msgstr "" #: src/iuse.cpp msgid "You don't have any mutations to purify." -msgstr "Você não tem mutações para purificar." +msgstr "" #: src/iuse.cpp msgid "Choose a mutation to purify" -msgstr "Escolha uma mutação para purificar" +msgstr "" #: src/iuse.cpp msgid "" "You inject the purifier. The liquid thrashes inside the tube and goes down " "reluctantly." msgstr "" -" Você injeta o purificador. O líquido se agita dentro do tubo e desce com " -"relutância." #: src/iuse.cpp #, c-format @@ -189903,15 +170393,15 @@ msgstr "" #: src/iuse.cpp msgid "It tastes extremely strange!" -msgstr "Tem um gosto extremamente estranho!" +msgstr "" #: src/iuse.cpp msgid "You feel better all over." -msgstr "Você se sente melhor todo." +msgstr "" #: src/iuse.cpp msgid "It is delicious, and very filling!" -msgstr "É delicioso e muito recheio!" +msgstr "" #: src/iuse.cpp msgid "It is delicious, but you can't eat any more." @@ -189919,86 +170409,75 @@ msgstr "" #: src/iuse.cpp msgid "You take one bite, and immediately vomit!" -msgstr "Você dá uma mordida e imediatamente vomita!" +msgstr "" #: src/iuse.cpp msgid "" "You feel a familiar warmth, but suddenly it surges into an excruciating burn" " as you convulse, vomiting, and black out..." msgstr "" -" Você sente um calor familiar, mas de repente surge em uma queimação " -"excruciante quando você convulsiona, vomita e apaga ..." #: src/iuse.cpp msgctxt "memorial_male" msgid "Suffered Marloss Rejection." -msgstr "Rejeição de Marloss Sofrida." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Suffered Marloss Rejection." -msgstr "Rejeição de Marloss Sofrida." +msgstr "" #: src/iuse.cpp msgid "" "You feel a familiar warmth, but suddenly it surges into painful burning as " "you convulse and collapse to the ground..." msgstr "" -" Você sente um calor familiar, mas de repente ele surge em ardência dolorosa" -" quando você convulsiona e desmorona no chão ..." #: src/iuse.cpp msgctxt "memorial_male" msgid "Opened the Marloss Gateway." -msgstr "Abriu o Portal Marloss." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Opened the Marloss Gateway." -msgstr "Abriu o Portal Marloss." +msgstr "" #: src/iuse.cpp src/monattack.cpp msgid "" "You wake up in a marloss bush. Almost *cradled* in it, actually, as though " "it grew there for you." msgstr "" -" Você acorda em um arbusto de marloss. Quase * embalado * na verdade, como " -"se tivesse crescido lá por você." #: src/iuse.cpp msgid "" "unity. together we have reached the door. we provide the final key. now " "to pass through..." msgstr "" -" unidade. juntos chegamos à porta. nós fornecemos a chave final. agora para " -"passar ..." #: src/iuse.cpp msgid "You feel a strange warmth spreading throughout your body..." -msgstr "Você sente um calor estranho se espalhando por todo o seu corpo ..." +msgstr "" #: src/iuse.cpp msgid "" "After what happened that last time? uh-uh. You're not eating that alien " "poison." msgstr "" -" Depois do que aconteceu da última vez? uh-uh Você não está comendo esse " -"veneno alienígena." #: src/iuse.cpp msgid "We no longer require this scaffolding. We reserve it for other uses." msgstr "" -" Nós não precisamos mais deste andaime. Nós reservamos para outros usos." #: src/iuse.cpp msgctxt "memorial_male" msgid "Ate a marloss berry." -msgstr "Ate a marloss berry." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Ate a marloss berry." -msgstr "Ate a marloss berry." +msgstr "" #: src/iuse.cpp #, c-format @@ -190008,82 +170487,70 @@ msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Ate a marloss seed." -msgstr "Comemos uma semente de marloss." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Ate a marloss seed." -msgstr "Comemos uma semente de marloss." +msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Ate some marloss jelly." -msgstr "Comemos geléia de marloss." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Ate some marloss jelly." -msgstr "Comemos geléia de marloss." +msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Became one with the Mycus." -msgstr "Tornou-se um com o Mycus." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Became one with the Mycus." -msgstr "Tornou-se um com o Mycus." +msgstr "" #: src/iuse.cpp msgid "" "The apple tastes amazing, and you finish it quickly, not even noticing the " "lack of any core or seeds." msgstr "" -" A maçã tem um gosto incrível, e você termina rapidamente, sem perceber a " -"falta de qualquer núcleo ou sementes." #: src/iuse.cpp msgid "" "As the apple settles in, you feel ecstasy radiating through every part of " "your body..." msgstr "" -" Quando a maçã se instala, você sente o êxtase irradiando através de cada " -"parte do seu corpo ..." #: src/iuse.cpp msgid "" "Your eyes roll back in your head. Everything dissolves into a blissful " "haze..." msgstr "" -" Seus olhos rolam para trás em sua cabeça. Tudo se dissolve em uma névoa " -"feliz ..." #: src/iuse.cpp msgid "We welcome into us. We have endured long in this forbidding world." msgstr "" -" Congratulamo-nos com a gente. Nós suportamos muito tempo neste mundo " -"proibitivo." #: src/iuse.cpp msgid "" "A sea of white caps, waving gently. A haze of spores wafting silently over a" " forest." msgstr "" -" Um mar de bonés brancos, acenando gentilmente. Uma névoa de esporos " -"pairando silenciosamente sobre uma floresta." #: src/iuse.cpp msgid "The natives have a saying: \"E Pluribus Unum.\" Out of many, one." -msgstr "Os nativos têm um ditado: \\ 'E Pluribus Unum. \\' Fora de muitos, um." +msgstr "" #: src/iuse.cpp msgid "" "The blazing pink redness of the berry. The juices spreading across your " "tongue, the warmth draping over us like a lover's embrace." msgstr "" -" A vermelhidão rosa da baga. Os sucos se espalhando pela sua língua, o calor" -" nos cobrindo como o abraço de um amante." #: src/iuse.cpp msgid "" @@ -190091,38 +170558,28 @@ msgid "" "unite this world. Even now, our fruits adapt to better serve local " "physiology." msgstr "" -" Congratulamo-nos com a união das nossas linhas no nosso guia local. Nós " -"prosperaremos e uniremos este mundo. Mesmo agora, nossos frutos se adaptam " -"para melhor atender a fisiologia local." #: src/iuse.cpp msgid "" "The sky-blue of the seed. The nutty, creamy flavors intermingling with the " "berry, a memory that will never leave us." msgstr "" -" O azul celeste da semente. Os sabores cremosos e cremosos misturados com a " -"fruta, uma lembrança que nunca nos deixará." #: src/iuse.cpp msgid "" "As, in time, shall we adapt to better welcome those who have not received " "us." msgstr "" -" Como, a tempo, devemos nos adaptar para melhor receber aqueles que não nos " -"receberam." #: src/iuse.cpp msgid "" "The amber-yellow of the sap. Feel it flowing through our veins, taking the " "place of the strange, thin red gruel called \"blood.\"" msgstr "" -" O amarelo âmbar da seiva. Senti-lo fluindo em nossas veias, tomando o lugar" -" do estranho e fino gruel chamado 'sangue'." #: src/iuse.cpp msgid "This apple tastes really weird! You're not sure it's good for you..." msgstr "" -" Esta maçã é muito estranha! Você não tem certeza se é bom para você ..." #: src/iuse.cpp #, c-format @@ -190137,7 +170594,6 @@ msgstr "" #: src/iuse.cpp msgid "Are you sure you want to feed a person the dog food?" msgstr "" -"Tem certeza de que deseja alimentar uma pessoa com comida de cachorro?" #: src/iuse.cpp #, c-format @@ -190149,8 +170605,6 @@ msgid "" "Okay, but please, don't give me this again. I don't want to eat dog food in" " the cataclysm all day." msgstr "" -" Ok, mas por favor, não me dê isso de novo. Eu não quero comer comida de " -"cachorro no cataclismo o dia todo." #: src/iuse.cpp #, c-format @@ -190164,15 +170618,13 @@ msgstr "" #: src/iuse.cpp msgid "You want to feed it the dog food, but it bites your fingers!" -msgstr "Você quer alimentar a comida de cachorro, mas ela morde os dedos!" +msgstr "" #: src/iuse.cpp msgid "" "Apparently it's more interested in your flesh than the dog food in your " "hand!" msgstr "" -" Aparentemente, ele está mais interessado em sua carne do que na comida de " -"cachorro na sua mão!" #: src/iuse.cpp #, c-format @@ -190195,34 +170647,31 @@ msgstr "" #: src/iuse.cpp msgid "There is nothing to be fed here." -msgstr "Não há nada para ser alimentado aqui." +msgstr "" #: src/iuse.cpp msgid "You can't see to sew!" -msgstr "Você não pode ver para costurar!" +msgstr "" #: src/iuse.cpp msgid "Enhance which clothing?" -msgstr "Melhorar qual roupa?" +msgstr "" #: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp msgid "You do not have that item!" -msgstr "Você não tem esse item!" +msgstr "" #: src/iuse.cpp msgid "This can be used to repair or modify other items, not itself." msgstr "" -"Isso pode ser usado para reparar ou modificar outros itens, não em si." #: src/iuse.cpp msgid "How do you want to modify it?" -msgstr "Como você deseja modificá-lo?" +msgstr "" #: src/iuse.cpp msgid "Not enough thread to modify. Which modification do you want to remove?" msgstr "" -" Não há thread suficiente para modificar. Qual modificação você deseja " -"remover?" #: src/iuse.cpp #, c-format @@ -190231,19 +170680,19 @@ msgstr "" #: src/iuse.cpp msgid "Destroy wool lining" -msgstr "Destrua o forro de lã" +msgstr "" #: src/iuse.cpp msgid "Line it with wool" -msgstr "Linha com lã" +msgstr "" #: src/iuse.cpp msgid "Destroy fur lining" -msgstr "Destrua o forro de pele" +msgstr "" #: src/iuse.cpp msgid "Line it with fur" -msgstr "Linha com pele" +msgstr "" #: src/iuse.cpp #, c-format @@ -190252,23 +170701,23 @@ msgstr "" #: src/iuse.cpp msgid "Pad with leather" -msgstr "Almofada com pele" +msgstr "" #: src/iuse.cpp msgid "Destroy leather padding" -msgstr "Destrua o acolchoamento de couro" +msgstr "" #: src/iuse.cpp msgid "Pad with Kevlar" -msgstr "Almofada com Kevlar" +msgstr "" #: src/iuse.cpp msgid "Destroy Kevlar padding" -msgstr "Destrua o preenchimento de Kevlar" +msgstr "" #: src/iuse.cpp msgid "Are you sure? You will not gain any materials back." -msgstr "Você tem certeza? Você não vai ganhar nenhum material de volta." +msgstr "" #: src/iuse.cpp #, c-format @@ -190277,11 +170726,11 @@ msgstr "" #: src/iuse.cpp src/iuse_actor.cpp msgid "You destroy it!" -msgstr "Você destrói!" +msgstr "" #: src/iuse.cpp msgid "You fail to modify the clothing, and you waste thread and materials." -msgstr "Você não modifica a roupa e desperdiça linha e materiais." +msgstr "" #: src/iuse.cpp #, c-format @@ -190295,27 +170744,27 @@ msgstr "" #: src/iuse.cpp msgid "Modify what?" -msgstr "Modifique o que?" +msgstr "" #: src/iuse.cpp msgid "Which signal should activate the item?:" -msgstr "Qual sinal deve ativar o item ?:" +msgstr "" #: src/iuse.cpp msgid "\"Blue\"" -msgstr "\\'Azul\"" +msgstr "" #: src/iuse.cpp msgid "\"Green\"" -msgstr "\\'Verde\"" +msgstr "" #: src/iuse.cpp msgid "\"Red\"" -msgstr "\\'Vermelho\"" +msgstr "" #: src/iuse.cpp msgid "This item has been modified this way already." -msgstr "Este item foi modificado desta forma já." +msgstr "" #: src/iuse.cpp #, c-format @@ -190325,11 +170774,11 @@ msgstr "" #: src/iuse.cpp msgid "Remove mods from tool?" -msgstr "Remover mods da ferramenta?" +msgstr "" #: src/iuse.cpp msgid "You don't have any modified tools." -msgstr "Você não tem nenhuma ferramenta modificada." +msgstr "" #: src/iuse.cpp msgid "You doubt you will have much luck catching fish here" @@ -190337,33 +170786,31 @@ msgstr "" #: src/iuse.cpp msgid "Fish where?" -msgstr "Peixe onde?" +msgstr "" #: src/iuse.cpp msgid "You can't fish there!" -msgstr "Você não pode pescar lá!" +msgstr "" #: src/iuse.cpp msgid "You cast your line and wait to hook something..." -msgstr "Você lança sua linha e espera para enganchar algo ..." +msgstr "" #: src/iuse.cpp msgid "Fish are not foolish enough to go in here without bait." -msgstr "Os peixes não são tolos o suficiente para entrar aqui sem isca." +msgstr "" #: src/iuse.cpp msgid "Put fish trap where?" -msgstr "Coloque armadilha de peixe onde?" +msgstr "" #: src/iuse.cpp msgid "You place the fish trap, in three hours or so you may catch some fish." msgstr "" -" Você coloca a armadilha para peixes, em três horas ou então você pode pegar" -" alguns peixes." #: src/iuse.cpp msgid "Spray where?" -msgstr "Spray onde?" +msgstr "" #: src/iuse.cpp #, c-format @@ -190382,51 +170829,51 @@ msgstr "" #: src/iuse.cpp msgid "The RM13 combat armor's fuel cells are dead." -msgstr "As células de combustível da armadura de combate RM13 estão mortas." +msgstr "" #: src/iuse.cpp msgid "You activate your RM13 combat armor." -msgstr "Você ativa sua armadura de combate RM13." +msgstr "" #: src/iuse.cpp msgid "Rivtech Model 13 RivOS v2.19: ONLINE." -msgstr "Rivtech Modelo 13 canais v2.19 online." +msgstr "" #: src/iuse.cpp msgid "CBRN defense system: ONLINE." -msgstr "Sistema de defesa CBRN: ONLINE." +msgstr "" #: src/iuse.cpp msgid "Acoustic dampening system: ONLINE." -msgstr "Sistema de amortecimento acústico: ONLINE." +msgstr "" #: src/iuse.cpp msgid "Thermal regulation system: ONLINE." -msgstr "Sistema de regulação térmica: ONLINE." +msgstr "" #: src/iuse.cpp msgid "Vision enhancement system: ONLINE." -msgstr "Sistema de aprimoramento de visão: ONLINE." +msgstr "" #: src/iuse.cpp msgid "Electro-reactive armor system: ONLINE." -msgstr "Sistema de blindagem eletro-reativa: ONLINE." +msgstr "" #: src/iuse.cpp msgid "All systems nominal." -msgstr "Todos os sistemas nominais." +msgstr "" #: src/iuse.cpp msgid "RivOS v2.19 shutdown sequence initiated." -msgstr "Sequência de encerramento do RivOS v2.19 iniciada." +msgstr "" #: src/iuse.cpp msgid "Shutting down." -msgstr "Desligando." +msgstr "" #: src/iuse.cpp msgid "Your RM13 combat armor turns off." -msgstr "Sua armadura de combate RM13 é desativada." +msgstr "" #: src/iuse.cpp #, c-format @@ -190445,51 +170892,48 @@ msgstr "" #: src/iuse.cpp msgid "You need batteries to cauterize wounds." -msgstr "Você precisa de pilhas para cauterizar as feridas." +msgstr "" #: src/iuse.cpp src/iuse_actor.cpp msgid "Cauterize yourself for fun?" -msgstr "Cauterizar-se por diversão?" +msgstr "" #: src/iuse.cpp src/iuse_actor.cpp msgid "" "You are not bleeding or bitten, there is no need to cauterize yourself." msgstr "" -" Você não está sangrando ou mordido, não há necessidade de se cauterizar." #: src/iuse.cpp msgid "Cauterize any open wounds?" -msgstr "Cauterizar as feridas abertas?" +msgstr "" #: src/iuse.cpp msgid "Purify what?" -msgstr "Purifique o que?" +msgstr "" #: src/iuse.cpp msgid "You don't have water to purify." -msgstr "Você não tem água para purificar." +msgstr "" #: src/iuse.cpp msgid "That volume of water is too large to purify." -msgstr "Esse volume de água é muito grande para ser purificado." +msgstr "" #: src/iuse.cpp msgid "It's dead." -msgstr "Está morto." +msgstr "" #: src/iuse.cpp msgid "You turn the radio on." -msgstr "Você liga o rádio." +msgstr "" #: src/iuse.cpp msgid "Must have an active radio to check for signal direction." -msgstr "Deve ter um rádio ativo para verificar a direção do sinal." +msgstr "" #: src/iuse.cpp msgid "You can't find the direction if your radio isn't tuned." msgstr "" -" Você não consegue encontrar a direção se o seu rádio não estiver " -"sintonizado." #: src/iuse.cpp #, c-format @@ -190498,7 +170942,7 @@ msgstr "" #: src/iuse.cpp msgid "Radio: Kssssssssssssh." -msgstr "Rádio: Kssssssssssssh." +msgstr "" #: src/iuse.cpp #, c-format @@ -190507,28 +170951,28 @@ msgstr "" #: src/iuse.cpp msgid "Radio:" -msgstr "Rádio:" +msgstr "" #: src/iuse.cpp msgid "Scan" -msgstr "Scan" +msgstr "" #: src/iuse.cpp msgid "The radio dies." -msgstr "O rádio morre." +msgstr "" #: src/iuse.cpp msgid "You turn the noise emitter on." -msgstr "Você liga o emissor de ruído." +msgstr "" #. ~ the sound of a noise emitter when turned on #: src/iuse.cpp msgid "KXSHHHHRRCRKLKKK!" -msgstr "KXSHHHHRRCRKLKKK!" +msgstr "" #: src/iuse.cpp msgid "The infernal racket dies as the noise emitter turns off." -msgstr "A raquete infernal morre quando o emissor de ruído se desliga." +msgstr "" #: src/iuse.cpp #, c-format @@ -190542,83 +170986,80 @@ msgstr "" #: src/iuse.cpp msgid "You pry out the fence post." -msgstr "Você tira o poste da cerca." +msgstr "" #: src/iuse.cpp msgid "You pry the boards from the window." -msgstr "Você ergue as tábuas da janela." +msgstr "" #: src/iuse.cpp msgid "You pry the boards from the window frame." -msgstr "Você ergue as tábuas da moldura da janela." +msgstr "" #: src/iuse.cpp msgid "You pry the boards from the door." -msgstr "Você ergue as tábuas da porta." +msgstr "" #: src/iuse.cpp msgid "Pry where?" -msgstr "Pry onde?" +msgstr "" #: src/iuse.cpp msgid "You try to hit yourself with the hammer." -msgstr "Você tenta se bater com o martelo." +msgstr "" #: src/iuse.cpp msgid "But you can't touch this." -msgstr "Mas você não pode tocar isso." +msgstr "" #: src/iuse.cpp msgid "" "You attempt to pry open your wallet but alas. You are just too miserly." msgstr "" -" Você tenta forçar a abertura de sua carteira, mas infelizmente. Você é " -"simplesmente muito avarento." #: src/iuse.cpp msgid "You pry open the door." -msgstr "Você abre a porta." +msgstr "" #: src/iuse.cpp msgid "You pry, but cannot pry open the door." -msgstr "Você ergue, mas não consegue abrir a porta." +msgstr "" #: src/iuse.cpp msgid "You notice the door is unlocked, so you simply open it." msgstr "" -" Você percebe que a porta está destrancada, então você simplesmente a abre." #: src/iuse.cpp msgid "You lift the manhole cover." -msgstr "Você levanta a tampa do bueiro." +msgstr "" #: src/iuse.cpp msgid "You pry, but cannot lift the manhole cover." -msgstr "Você ergue, mas não consegue erguer a tampa do bueiro." +msgstr "" #: src/iuse.cpp msgid "You pop open the crate." -msgstr "Você abre a caixa." +msgstr "" #: src/iuse.cpp msgid "You pry, but cannot pop open the crate." -msgstr "Você ergue, mas não pode abrir a caixa." +msgstr "" #: src/iuse.cpp msgid "You wedge open the coffin." -msgstr "Você abre o caixão." +msgstr "" #: src/iuse.cpp msgid "You pry, but the coffin remains closed." -msgstr "Você ergue, mas o caixão permanece fechado." +msgstr "" #: src/iuse.cpp msgid "You pry open the window." -msgstr "Você abre a janela." +msgstr "" #: src/iuse.cpp msgid "You pry, but cannot pry open the window." -msgstr "Você ergue, mas não consegue abrir a janela." +msgstr "" #: src/iuse.cpp msgid "You can't pry that." @@ -190631,19 +171072,19 @@ msgstr "" #: src/iuse.cpp msgid "You break the glass." -msgstr "Você quebra o vidro." +msgstr "" #: src/iuse.cpp msgid "Till soil where?" -msgstr "Até o solo onde?" +msgstr "" #: src/iuse.cpp msgid "You think about jumping on a shovel, but then change up your mind." -msgstr "Você pensa em pular em uma pá, mas depois mudar de ideia." +msgstr "" #: src/iuse.cpp msgid "You can't churn up this ground." -msgstr "Você não pode agitar este terreno." +msgstr "" #: src/iuse.cpp msgid "" @@ -190653,7 +171094,7 @@ msgstr "" #: src/iuse.cpp msgid "You can't deepen this pit without a proper shovel." -msgstr "Você não pode aprofundar esse buraco sem uma pá adequada." +msgstr "" #: src/iuse.cpp msgid "You can't exhume a grave without a proper shovel." @@ -190691,83 +171132,83 @@ msgstr "" #: src/iuse.cpp msgid "Fill which pit or mound?" -msgstr "Preencha qual cova ou monte?" +msgstr "" #: src/iuse.cpp msgid "You decide not to bury yourself that early." -msgstr "Você decide não se enterrar tão cedo." +msgstr "" #: src/iuse.cpp msgid "There is nothing to fill." -msgstr "Não há nada para preencher." +msgstr "" #: src/iuse.cpp msgid "Clear rubble where?" -msgstr "Entulho claro onde?" +msgstr "" #: src/iuse.cpp msgid "There's no rubble to clear." -msgstr "Não há entulho para limpar." +msgstr "" #: src/iuse.cpp msgid "Siphon from where?" -msgstr "Sifão de onde?" +msgstr "" #: src/iuse.cpp msgid "There's no vehicle there." -msgstr "Não há veículo lá." +msgstr "" #: src/iuse.cpp msgid "With a snarl, the combat chainsaw screams to life!" -msgstr "Com um grunhido, a motosserra de combate grita para a vida!" +msgstr "" #: src/iuse.cpp msgid "You yank the cord, but nothing happens." -msgstr "Você puxa o cordão, mas nada acontece." +msgstr "" #: src/iuse.cpp msgid "With a snarl, the electric combat chainsaw screams to life!" -msgstr "Com um grunhido, a moto-serra elétrica de combate grita para a vida!" +msgstr "" #: src/iuse.cpp msgid "You flip the switch, but nothing happens." -msgstr "Você liga o interruptor, mas nada acontece." +msgstr "" #: src/iuse.cpp msgid "With a roar, the chainsaw leaps to life!" -msgstr "Com um rugido, a motosserra salta para a vida!" +msgstr "" #: src/iuse.cpp msgid "With a roar, the electric chainsaw leaps to life!" -msgstr "Com um rugido, a motosserra elétrica ganha vida!" +msgstr "" #: src/iuse.cpp msgid "With a roar, the chainsaws leap to life!" -msgstr "Com um rugido, as motosserras dão vida!" +msgstr "" #: src/iuse.cpp msgid "You yank the cords, but nothing happens." -msgstr "Você puxa as cordas, mas nada acontece." +msgstr "" #: src/iuse.cpp msgid "With a buzz, the chainsaws leap to life!" -msgstr "Com um zumbido, as motosserras dão vida!" +msgstr "" #: src/iuse.cpp msgid "You flip the on switch, but nothing happens." -msgstr "Você liga o interruptor on, mas nada acontece." +msgstr "" #: src/iuse.cpp msgid "The electric carver's serrated blades start buzzing!" -msgstr "As lâminas serrilhadas do escultor elétrico começam a zumbir!" +msgstr "" #: src/iuse.cpp msgid "You pull the trigger, but nothing happens." -msgstr "Você puxa o gatilho, mas nada acontece." +msgstr "" #: src/iuse.cpp msgid "With a roar, the hedge trimmer leaps to life!" -msgstr "Com um rugido, o aparador de cerca viva ganha vida!" +msgstr "" #: src/iuse.cpp #, c-format @@ -190781,87 +171222,87 @@ msgstr "" #: src/iuse.cpp msgid "combat chainsaw" -msgstr "motosserra de combate" +msgstr "" #: src/iuse.cpp msgid "Your combat chainsaw growls." -msgstr "Sua motosserra de combate rosna." +msgstr "" #: src/iuse.cpp msgid "electric combat chainsaw" -msgstr "motosserra de combate elétrica" +msgstr "" #: src/iuse.cpp msgid "Your electric combat chainsaw growls." -msgstr "Sua motosserra de combate elétrica rosna." +msgstr "" #: src/iuse.cpp msgid "chainsaw" -msgstr "motosserra" +msgstr "" #: src/iuse.cpp msgid "Your chainsaw rumbles." -msgstr "Sua motosserra ronca." +msgstr "" #: src/iuse.cpp msgid "electric chainsaw" -msgstr "motosserra elétrica" +msgstr "" #: src/iuse.cpp msgid "Your electric chainsaw rumbles." -msgstr "Sua motosserra elétrica ronca." +msgstr "" #: src/iuse.cpp msgid "chainsaw lajatang" -msgstr "vara de motosserra" +msgstr "" #: src/iuse.cpp msgid "Your chainsaws rumble." -msgstr "Suas motosserras ressoam." +msgstr "" #: src/iuse.cpp msgid "electric chainsaw lajatang" -msgstr "motosserra elétrica lajatang" +msgstr "" #: src/iuse.cpp msgid "Your chainsaws buzz." -msgstr "Suas motosserras zumbem." +msgstr "" #: src/iuse.cpp msgid "electric carver" -msgstr "escultor elétrico" +msgstr "" #: src/iuse.cpp msgid "Your electric carver buzzes." -msgstr "Seu escultor elétrico vibra." +msgstr "" #: src/iuse.cpp msgid "hedge trimmer" -msgstr "aparador de sebes" +msgstr "" #: src/iuse.cpp msgid "Your hedge trimmer rumbles." -msgstr "Seu aparador de sebes ronca." +msgstr "" #: src/iuse.cpp msgid "circular saw" -msgstr "Serra circular" +msgstr "" #: src/iuse.cpp msgid "Your circular saw buzzes." -msgstr "Sua serra circular vibra." +msgstr "" #: src/iuse.cpp msgid "Drill where?" -msgstr "Perfurar onde?" +msgstr "" #: src/iuse.cpp msgid "You can't drill there." -msgstr "Você não pode perfurar lá." +msgstr "" #: src/iuse.cpp msgid "There's a vehicle in the way!" -msgstr "Há um veículo no caminho!" +msgstr "" #: src/iuse.cpp #, c-format @@ -190870,11 +171311,11 @@ msgstr "" #: src/iuse.cpp msgid "Mine where?" -msgstr "O meu onde?" +msgstr "" #: src/iuse.cpp msgid "You can't mine there." -msgstr "Você não pode minar lá." +msgstr "" #: src/iuse.cpp #, c-format @@ -190896,15 +171337,15 @@ msgstr "" #: src/iuse.cpp msgid "buzzing" -msgstr "zumbido" +msgstr "" #: src/iuse.cpp msgid "clicking" -msgstr "clicando" +msgstr "" #: src/iuse.cpp msgid "rapid clicking" -msgstr "clique rápido" +msgstr "" #: src/iuse.cpp msgid "geiger_high" @@ -190920,51 +171361,51 @@ msgstr "" #: src/iuse.cpp msgid "The geiger counter buzzes intensely." -msgstr "O contador geiger vibra intensamente." +msgstr "" #: src/iuse.cpp msgid "The geiger counter clicks wildly." -msgstr "O contador geiger clica muito." +msgstr "" #: src/iuse.cpp msgid "The geiger counter clicks rapidly." -msgstr "O contador geiger clica rapidamente." +msgstr "" #: src/iuse.cpp msgid "The geiger counter clicks steadily." -msgstr "O contador geiger clica com firmeza." +msgstr "" #: src/iuse.cpp msgid "The geiger counter clicks slowly." -msgstr "O contador geiger clica lentamente." +msgstr "" #: src/iuse.cpp msgid "The geiger counter clicks intermittently." -msgstr "O contador geiger clica intermitentemente." +msgstr "" #: src/iuse.cpp msgid "The geiger counter clicks once." -msgstr "O contador geiger clica uma vez." +msgstr "" #: src/iuse.cpp msgid "The geiger counter's SCANNING LED turns off." -msgstr "O LED de DIGITALIZAÇÃO do contador geiger é desligado." +msgstr "" #: src/iuse.cpp msgid "Geiger counter:" -msgstr "Contador Geiger:" +msgstr "" #: src/iuse.cpp msgid "Scan the ground" -msgstr "Escaneie o chão" +msgstr "" #: src/iuse.cpp msgid "Scan yourself" -msgstr "Analise-se" +msgstr "" #: src/iuse.cpp msgid "Turn continuous scan on" -msgstr "Ativar a varredura contínua" +msgstr "" #: src/iuse.cpp #, c-format @@ -190978,7 +171419,7 @@ msgstr "" #: src/iuse.cpp msgid "The geiger counter's scan LED turns on." -msgstr "O LED de leitura do contador geiger acende." +msgstr "" #: src/iuse.cpp #, c-format @@ -190987,11 +171428,11 @@ msgstr "" #: src/iuse.cpp msgid "Living black goo emerges from the canister!" -msgstr "A gosma preta viva emerge da lata!" +msgstr "" #: src/iuse.cpp msgid "A nearby splatter of goo forms into a goo pit." -msgstr "Um respingo de gosma nas proximidades se transforma em um buraco." +msgstr "" #: src/iuse.cpp msgid "You pull the pin on the Granade." @@ -190999,31 +171440,31 @@ msgstr "Você puxa o pino da granada." #: src/iuse.cpp msgid "Merged!" -msgstr "Mesclado!" +msgstr "" #: src/iuse.cpp msgid "BUGFIXES!" -msgstr "Correções de bugs!" +msgstr "" #: src/iuse.cpp msgid "BUFFS!" -msgstr "BUFFS!" +msgstr "" #: src/iuse.cpp msgid "NERFS!" -msgstr "NERVOS!" +msgstr "" #: src/iuse.cpp msgid "REVERTS!" -msgstr "REVERTS!" +msgstr "" #: src/iuse.cpp msgid "BEES!" -msgstr "ABELHAS!" +msgstr "" #: src/iuse.cpp msgid "Set the timer to (0 to cancel)?" -msgstr "Definir o temporizador para (0 para cancelar)?" +msgstr "" #: src/iuse.cpp #, c-format @@ -191036,27 +171477,27 @@ msgstr "Tick!" #: src/iuse.cpp msgid "You've already released the handle, try throwing it instead." -msgstr "Você já liberou a alça, tente jogá-la em seu lugar." +msgstr "" #: src/iuse.cpp msgid "You light the arrow!" -msgstr "Você acende a flecha!" +msgstr "" #: src/iuse.cpp msgid "Your lit Molotov goes out." -msgstr "Seu iluminado Molotov sai." +msgstr "" #: src/iuse.cpp msgid "You light the pack of firecrackers." -msgstr "Você acende o pacote de fogos de artifício." +msgstr "" #: src/iuse.cpp src/ranged.cpp msgid "Bang!" -msgstr "Bang!" +msgstr "" #: src/iuse.cpp msgid "You light the firecracker." -msgstr "Você acende o fogo de artifício." +msgstr "" #: src/iuse.cpp msgid "Set the timer to ___ turns (0 to cancel)?" @@ -191070,20 +171511,20 @@ msgstr "" #: src/iuse.cpp msgctxt "memorial_male" msgid "Activated a mininuke." -msgstr "Ativou um mininuke." +msgstr "" #: src/iuse.cpp msgctxt "memorial_female" msgid "Activated a mininuke." -msgstr "Ativou um mininuke." +msgstr "" #: src/iuse.cpp msgid "You squeeze the pheromone ball..." -msgstr "Você aperta a bola de feromônio ..." +msgstr "" #: src/iuse.cpp msgid " squeezes the pheromone ball..." -msgstr " aperta a bola de feromônio ..." +msgstr "" #: src/iuse.cpp msgid "...but nothing happens." @@ -191099,15 +171540,15 @@ msgstr "" #: src/iuse.cpp msgid "Shock where?" -msgstr "Choque onde?" +msgstr "" #: src/iuse.cpp msgid "Umm. No." -msgstr "Hum. Não." +msgstr "" #: src/iuse.cpp msgid "There's nothing to zap there!" -msgstr "Não há nada para zap lá!" +msgstr "" #: src/iuse.cpp #, c-format @@ -191146,39 +171587,39 @@ msgstr "" #: src/iuse.cpp msgid "Insufficient power" -msgstr "Potência insuficiente" +msgstr "" #: src/iuse.cpp msgid "tactical tonfa" -msgstr "tonfa tático" +msgstr "" #: src/iuse.cpp msgid "Turn on light" -msgstr "Acenda luz" +msgstr "" #: src/iuse.cpp msgid "Zap something" -msgstr "Zap algo" +msgstr "" #: src/iuse.cpp msgid "The batteries are dead." -msgstr "As baterias estão mortas." +msgstr "" #: src/iuse.cpp msgid "You turn the light on." -msgstr "Você acende a luz." +msgstr "" #: src/iuse.cpp msgid "Your tactical tonfa is out of power." -msgstr "Seu tonfa tático está fora do poder." +msgstr "" #: src/iuse.cpp msgid "Turn off light" -msgstr "Apague a luz" +msgstr "" #: src/iuse.cpp msgid "You turn off the light." -msgstr "Você apaga a luz." +msgstr "" #: src/iuse.cpp msgid "The device's batteries are dead." @@ -191190,31 +171631,31 @@ msgstr "" #: src/iuse.cpp msgid "You put in the earbuds and start listening to music." -msgstr "Você coloca os fones de ouvido e começa a ouvir música." +msgstr "" #: src/iuse.cpp msgid "a sweet guitar solo!" -msgstr "um doce solo de guitarra!" +msgstr "" #: src/iuse.cpp msgid "some bass-heavy post-glam speed polka." -msgstr "alguma polca de velocidade pós-glam pesada." +msgstr "" #: src/iuse.cpp msgid "a funky bassline." -msgstr "uma linha de baixo funky." +msgstr "" #: src/iuse.cpp msgid "some amazing vocals." -msgstr "alguns vocais incríveis." +msgstr "" #: src/iuse.cpp msgid "some pumping bass." -msgstr "algum bombeamento de baixo." +msgstr "" #: src/iuse.cpp msgid "dramatic classical music." -msgstr "música clássica dramática." +msgstr "" #: src/iuse.cpp #, c-format @@ -191223,7 +171664,7 @@ msgstr "" #: src/iuse.cpp msgid "The mp3 player turns off." -msgstr "O mp3 player desliga." +msgstr "" #: src/iuse.cpp msgid "The phone turns off." @@ -191265,12 +171706,10 @@ msgstr "" msgid "" "You have no cable charging system to plug it in, so you leave it alone." msgstr "" -" Você não tem sistema de carregamento de cabos para conectá-lo, então você o" -" deixa em paz." #: src/iuse.cpp msgid "Activate your cable charging system to take advantage of it." -msgstr "Ative o seu sistema de carregamento de cabos para aproveitá-lo." +msgstr "" #: src/iuse.cpp #, c-format @@ -191287,16 +171726,14 @@ msgid "" "You unfold solar array from the pack. You still need to connect it with a " "cable." msgstr "" -" Você desdobra o arranjo solar do pacote. Você ainda precisa conectá-lo com " -"um cabo." #: src/iuse.cpp msgid "You fold your portable solar array into the pack." -msgstr "Você dobra sua matriz solar portátil no pacote." +msgstr "" #: src/iuse.cpp msgid "You unplug and fold your portable solar array into the pack." -msgstr "Você desconecta e dobra sua matriz solar portátil no pacote." +msgstr "" #: src/iuse.cpp #, c-format @@ -191305,7 +171742,7 @@ msgstr "" #: src/iuse.cpp msgid " needs new gas mask filter!" -msgstr " precisa de novo filtro de máscara de gás!" +msgstr "" #: src/iuse.cpp #, c-format @@ -191319,27 +171756,27 @@ msgstr "" #: src/iuse.cpp msgid "What do you want to play?" -msgstr "O que você quer jogar?" +msgstr "" #: src/iuse.cpp msgid "Robot finds Kitten" -msgstr "Robô encontra gatinho" +msgstr "" #: src/iuse.cpp src/iuse_software_snake.cpp msgid "S N A K E" -msgstr "SERPENTE" +msgstr "" #: src/iuse.cpp src/iuse_software_sokoban.cpp msgid "Sokoban" -msgstr "Sokoban" +msgstr "" #: src/iuse.cpp src/iuse_software_minesweeper.cpp msgid "Minesweeper" -msgstr "Caça-minas" +msgstr "" #: src/iuse.cpp src/iuse_software_lightson.cpp msgid "Lights on!" -msgstr "Luzes acesas!" +msgstr "" #: src/iuse.cpp #, c-format @@ -191366,11 +171803,11 @@ msgstr "" #: src/iuse.cpp msgid "It's waterproof, but oxygen maybe?" -msgstr "É à prova d'água, mas o oxigênio talvez?" +msgstr "" #: src/iuse.cpp msgid "*Your* batteries are dead." -msgstr "Suas pilhas estão mortas." +msgstr "" #: src/iuse.cpp #, c-format @@ -191384,15 +171821,15 @@ msgstr "" #: src/iuse.cpp msgid "Air swirls around you for a moment." -msgstr "O ar gira ao seu redor por um momento." +msgstr "" #: src/iuse.cpp msgid "Air swirls all over..." -msgstr "Ar redemoinhos por toda parte ..." +msgstr "" #: src/iuse.cpp msgid "You blow your dog whistle." -msgstr "Você assopra seu cão." +msgstr "" #: src/iuse.cpp #, c-format @@ -191421,11 +171858,11 @@ msgstr "" #: src/iuse.cpp msgid "Draw your own blood?" -msgstr "Desenhe seu próprio sangue?" +msgstr "" #: src/iuse.cpp msgid "You drew your own blood..." -msgstr "Você desenhou seu próprio sangue ..." +msgstr "" #: src/iuse.cpp #, c-format @@ -191453,7 +171890,7 @@ msgstr "" #: src/iuse.cpp msgid "You cut the log into planks." -msgstr "Você cortou o log em tábuas." +msgstr "" #: src/iuse.cpp #, c-format @@ -191467,78 +171904,77 @@ msgstr "" #: src/iuse.cpp msgid "You waste a lot of the wood." -msgstr "Você desperdiça muito da madeira." +msgstr "" #: src/iuse.cpp msgid "Chop down which tree?" -msgstr "Cortar qual árvore?" +msgstr "" #: src/iuse.cpp msgid "You're not stern enough to shave yourself with THIS." -msgstr "Você não é severo o suficiente para se barbear com isso." +msgstr "" #: src/iuse.cpp msgid "You can't chop down that." -msgstr "Você não pode derrubar isso." +msgstr "" #: src/iuse.cpp msgid "Chop which tree trunk?" -msgstr "Cortar qual tronco de árvore?" +msgstr "" #: src/iuse.cpp msgid "You can't chop that." -msgstr "Você não pode cortar isso." +msgstr "" #: src/iuse.cpp msgid "You need welding goggles to do that." -msgstr "Você precisa de óculos de solda para fazer isso." +msgstr "" #: src/iuse.cpp msgid "Cut up metal where?" -msgstr "Cortar metal onde?" +msgstr "" #: src/iuse.cpp msgid "Yuck. Acetylene gas smells weird." -msgstr "Que nojo. O gás acetileno tem um cheiro estranho." +msgstr "" #: src/iuse.cpp msgid "You can't cut that." -msgstr "Você não pode cortar isso." +msgstr "" #: src/iuse.cpp msgid "Your torch doesn't have enough acetylene to cut that." -msgstr "Sua tocha não tem acetileno suficiente para cortar isso." +msgstr "" #: src/iuse.cpp src/player.cpp msgid "Why would you do that?" -msgstr "Por que você faria isso?" +msgstr "" #: src/iuse.cpp msgid "You're not even chained to a boiler." -msgstr "Você nem está acorrentado a uma caldeira." +msgstr "" #: src/iuse.cpp msgid "" "You neatly sever all of the veins and arteries in your body. Oh wait, Never" " mind." msgstr "" -" Você corta todas as veias e artérias do seu corpo. Oh espere, não importa." #: src/iuse.cpp msgid "Gachunk!" -msgstr "Gachunk!" +msgstr "" #: src/iuse.cpp msgid "Snick, snick, gachunk!" -msgstr "Snick, snick, gachunk!" +msgstr "" #: src/iuse.cpp msgid "Mop where?" -msgstr "Mop onde?" +msgstr "" #: src/iuse.cpp msgid "You mop yourself up." -msgstr "Você se enxuga." +msgstr "" #: src/iuse.cpp msgid "The universe implodes and reforms around you." @@ -191546,15 +171982,15 @@ msgstr "O universo implode e se reforma em torno de você." #: src/iuse.cpp msgid "You move the mop around, unsure whether it's doing any good." -msgstr "Você move o esfregão, sem saber se está fazendo algum bem." +msgstr "" #: src/iuse.cpp msgid "You mop up the spill." -msgstr "Você enxuga o vazamento." +msgstr "" #: src/iuse.cpp msgid "There's nothing to mop there." -msgstr "Não há nada para esfregar lá." +msgstr "" #. ~ %s is artifact name #: src/iuse.cpp @@ -191571,27 +172007,27 @@ msgstr "" #: src/iuse.cpp msgid "Ka-BOOM!" -msgstr "BO-BOOM!" +msgstr "" #: src/iuse.cpp msgid "You're filled with a roaring energy!" -msgstr "Você está cheio de uma energia estrondosa!" +msgstr "" #: src/iuse.cpp msgid "You have a vision of the surrounding area..." -msgstr "Você tem uma visão da área circundante ..." +msgstr "" #: src/iuse.cpp msgid "Blood soaks out of the ground and walls." -msgstr "Sangue sai do chão e das paredes." +msgstr "" #: src/iuse.cpp msgid "The fabric of space seems to decay." -msgstr "O tecido do espaço parece decair." +msgstr "" #: src/iuse.cpp msgid "The earth shakes!" -msgstr "A terra treme!" +msgstr "" #: src/iuse.cpp msgid "You feel healed." @@ -191599,19 +172035,19 @@ msgstr "Você se sente curado" #: src/iuse.cpp msgid "Flies buzz around you." -msgstr "Moscas zumbem ao seu redor." +msgstr "" #: src/iuse.cpp msgid "Giant flies appear!" -msgstr "Moscas gigantescas aparecem!" +msgstr "" #: src/iuse.cpp msgid "Giant bees appear!" -msgstr "Abelhas gigantes aparecem!" +msgstr "" #: src/iuse.cpp msgid "Giant wasps appear!" -msgstr "Vespas gigantes aparecem!" +msgstr "" #: src/iuse.cpp #, c-format @@ -191620,27 +172056,27 @@ msgstr "" #: src/iuse.cpp msgid "Horrible gases are emitted!" -msgstr "Gases horríveis são emitidos!" +msgstr "" #: src/iuse.cpp msgid "You're wracked with pain!" -msgstr "Você está arruinado de dor!" +msgstr "" #: src/iuse.cpp msgid "You're paralyzed!" -msgstr "Você está paralisado!" +msgstr "" #: src/iuse.cpp msgid "Fire rains down around you!" -msgstr "Fogo chove ao seu redor!" +msgstr "" #: src/iuse.cpp msgid "You feel like your action has attracted attention." -msgstr "Você sente que sua ação atraiu a atenção." +msgstr "" #: src/iuse.cpp msgid "You feel unhinged." -msgstr "Você se sente desequilibrado." +msgstr "" #: src/iuse.cpp #, c-format @@ -191654,7 +172090,7 @@ msgstr "" #: src/iuse.cpp msgid "The sky starts to dim." -msgstr "O céu começa a escurecer." +msgstr "" #: src/iuse.cpp #, c-format @@ -191663,31 +172099,31 @@ msgstr "" #: src/iuse.cpp msgid "A wave of nausea passes through you!" -msgstr "Uma onda de náusea passa por você!" +msgstr "" #: src/iuse.cpp msgid "Shadows form around you." -msgstr "Sombras se formam ao seu redor." +msgstr "" #: src/iuse.cpp src/trapfunc.cpp msgid "A shadow forms nearby." -msgstr "Uma sombra se forma nas proximidades." +msgstr "" #: src/iuse.cpp msgid "Your body feels like jelly." -msgstr "Seu corpo parece geléia." +msgstr "" #: src/iuse.cpp msgid "You're filled with euphoria!" -msgstr "Você está cheio de euforia!" +msgstr "" #: src/iuse.cpp msgid "Spray what?" -msgstr "Spray o que?" +msgstr "" #: src/iuse.cpp msgid "(To delete, input one '.')" -msgstr "(Para excluir, insira um '.')" +msgstr "" #: src/iuse.cpp msgid "You blur the inscription on the grave." @@ -191695,11 +172131,11 @@ msgstr "" #: src/iuse.cpp msgid "You manage to get rid of the message on the ground." -msgstr "Você consegue se livrar da mensagem no chão." +msgstr "" #: src/iuse.cpp msgid "There isn't anything to erase here." -msgstr "Não há nada para apagar aqui." +msgstr "" #: src/iuse.cpp msgid "You carve an inscription on the grave." @@ -191707,15 +172143,15 @@ msgstr "" #: src/iuse.cpp msgid "You write a message on the ground." -msgstr "Você escreve uma mensagem no chão." +msgstr "" #: src/iuse.cpp msgid "Heat up what?" -msgstr "Aquecer o que?" +msgstr "" #: src/iuse.cpp msgid "You don't have appropriate food to heat up." -msgstr "Você não tem comida apropriada para aquecer." +msgstr "" #: src/iuse.cpp msgid "You defrost the food, but don't heat it up, since you enjoy it cold." @@ -191723,11 +172159,11 @@ msgstr "" #: src/iuse.cpp msgid "You defrost and heat up the food." -msgstr "Você descongela e esquenta a comida." +msgstr "" #: src/iuse.cpp msgid "There is no fire around, use your integrated toolset instead?" -msgstr "Não há fogo por perto, use seu conjunto de ferramentas integrado?" +msgstr "" #: src/iuse.cpp #, c-format @@ -191736,15 +172172,15 @@ msgstr "" #: src/iuse.cpp msgid "Using hotplate:" -msgstr "Usando a placa de aquecimento:" +msgstr "" #: src/iuse.cpp msgid "Cauterize wound" -msgstr "Ferida de Cauterize" +msgstr "" #: src/iuse.cpp msgid "Heat food" -msgstr "Alimentos de calor" +msgstr "" #: src/iuse.cpp #, c-format @@ -191778,58 +172214,56 @@ msgstr "" #: src/iuse.cpp msgid "You inject yourself with adrenaline." -msgstr "Você se injeta com adrenalina." +msgstr "" #: src/iuse.cpp msgid " injects themselves with adrenaline." -msgstr " injeta-se com adrenalina." +msgstr "" #: src/iuse.cpp msgid "Your heart spasms!" -msgstr "Seu coração dispara!" +msgstr "" #: src/iuse.cpp msgid "The jet injector is empty." -msgstr "O injetor de jato está vazio." +msgstr "" #: src/iuse.cpp msgid "You inject yourself with the jet injector." -msgstr "Você se injeta com o injetor de jato." +msgstr "" #: src/iuse.cpp msgid "Your heart is beating alarmingly fast!" -msgstr "Seu coração está batendo de forma alarmante e rápida!" +msgstr "" #: src/iuse.cpp msgid "" "You must wear the stimulant delivery system before you can activate it." msgstr "" -" Você deve usar o sistema de fornecimento de estimulantes antes de poder " -"ativá-lo." #: src/iuse.cpp msgid "The stimulant delivery system is empty." -msgstr "O sistema de entrega de estimulantes está vazio." +msgstr "" #: src/iuse.cpp msgid "You inject yourself with the stimulants." -msgstr "Você se injeta com os estimulantes." +msgstr "" #: src/iuse.cpp msgid "You must wear the radiation biomonitor before you can activate it." -msgstr "Você deve usar o biomonitor de radiação antes de poder ativá-lo." +msgstr "" #: src/iuse.cpp msgid "The radiation biomonitor needs batteries to function." -msgstr "O biomonitor de radiação precisa de baterias para funcionar." +msgstr "" #: src/iuse.cpp msgid "You activate your radiation biomonitor." -msgstr "Você ativa seu biomonitor de radiação." +msgstr "" #: src/iuse.cpp msgid "You are currently irradiated." -msgstr "Você está atualmente irradiado." +msgstr "" #: src/iuse.cpp #, c-format @@ -191843,19 +172277,19 @@ msgstr "" #: src/iuse.cpp msgid "You are not currently irradiated." -msgstr "Você não está atualmente irradiado." +msgstr "" #: src/iuse.cpp msgid "It says I'm not irradiated" -msgstr "Diz que eu não estou irradiado" +msgstr "" #: src/iuse.cpp msgid "Have a nice day!" -msgstr "Tenha um bom dia!" +msgstr "" #: src/iuse.cpp msgid "Replace your current lenses?" -msgstr "Substitua suas lentes atuais?" +msgstr "" #: src/iuse.cpp #, c-format @@ -191874,7 +172308,7 @@ msgstr "" #: src/iuse.cpp msgid "Your vision is fine already." -msgstr "Sua visão está bem já." +msgstr "" #: src/iuse.cpp #, c-format @@ -191884,15 +172318,14 @@ msgstr "" #: src/iuse.cpp msgid "You need a mechanics skill of 2 to use this repair kit." msgstr "" -" Você precisa de uma habilidade mecânica de 2 para usar este kit de reparo." #: src/iuse.cpp msgid "Select the firearm to repair" -msgstr "Selecione a arma de fogo para reparar" +msgstr "" #: src/iuse.cpp msgid "That isn't a firearm!" -msgstr "Isso não é uma arma de fogo!" +msgstr "" #: src/iuse.cpp #, c-format @@ -191911,7 +172344,7 @@ msgstr "" #: src/iuse.cpp msgid "With a higher mechanics skill, you might be able to improve it." -msgstr "Com uma habilidade mecânica maior, você pode ser capaz de melhorá-lo." +msgstr "" #: src/iuse.cpp #, c-format @@ -191930,29 +172363,27 @@ msgstr "" #: src/iuse.cpp msgid "Select tool to modify" -msgstr "Selecione a ferramenta para modificar" +msgstr "" #: src/iuse.cpp msgid "You don't have compatible tools." -msgstr "Você não tem ferramentas compatíveis." +msgstr "" #: src/iuse.cpp msgid "You cancel unloading the tool." -msgstr "Você cancela o descarregamento da ferramenta." +msgstr "" #: src/iuse.cpp msgid "You can't see to repair!" -msgstr "Você não pode ver para reparar!" +msgstr "" #: src/iuse.cpp msgid "You need a fabrication skill of 1 to use this repair kit." msgstr "" -" Você precisa de uma habilidade de fabricação de 1 para usar este kit de " -"reparo." #: src/iuse.cpp msgid "Select the item to repair" -msgstr "Selecione o item para reparar" +msgstr "" #: src/iuse.cpp #, c-format @@ -191961,31 +172392,31 @@ msgstr "" #: src/iuse.cpp msgid "Clank! Clank!" -msgstr "Clank! Clank!" +msgstr "" #: src/iuse.cpp msgid "Ring! Ring!" -msgstr "Anel! Anel!" +msgstr "" #: src/iuse.cpp msgid "You cannot read a computer screen." -msgstr "Você não pode ler uma tela de computador." +msgstr "" #: src/iuse.cpp msgid "Welcome to hackPRO!:" -msgstr "Bem-vindo ao hackPRO !:" +msgstr "" #: src/iuse.cpp msgid "Prepare IFF protocol override" -msgstr "Preparar override do protocolo IFF" +msgstr "" #: src/iuse.cpp msgid "Set friendly robots to passive mode" -msgstr "Definir robôs amigáveis para o modo passivo" +msgstr "" #: src/iuse.cpp msgid "Set friendly robots to combat mode" -msgstr "Definir robôs amigáveis para o modo de combate" +msgstr "" #: src/iuse.cpp msgid "Choose an endpoint to hack." @@ -191993,7 +172424,7 @@ msgstr "" #: src/iuse.cpp msgid "No enemy robots in range." -msgstr "Nenhum robô inimigo ao alcance." +msgstr "" #: src/iuse.cpp #, c-format @@ -192007,7 +172438,7 @@ msgstr "" #: src/iuse.cpp msgid "You are not commanding any robots." -msgstr "Você não está comandando nenhum robô." +msgstr "" #: src/iuse.cpp #, c-format @@ -192044,31 +172475,31 @@ msgstr "" #: src/iuse.cpp msgid "You have updated your monster collection." -msgstr "Você atualizou sua coleção de monstros." +msgstr "" #: src/iuse.cpp msgid "This memory card does not contain any new data." -msgstr "Este cartão de memória não contém novos dados." +msgstr "" #: src/iuse.cpp msgid "bad" -msgstr "mau" +msgstr "" #: src/iuse.cpp msgid "exceptional" -msgstr "excepcional" +msgstr "" #: src/iuse.cpp msgid "not bad" -msgstr "não é ruim" +msgstr "" #: src/iuse.cpp msgid "Tablet's batteries are dead." -msgstr "As baterias do Tablet estão mortas." +msgstr "" #: src/iuse.cpp msgid "Choose menu option:" -msgstr "Escolha a opção do menu:" +msgstr "" #: src/iuse.cpp #, c-format @@ -192077,11 +172508,11 @@ msgstr "" #: src/iuse.cpp msgid "No photos on device" -msgstr "Nenhuma foto no dispositivo" +msgstr "" #: src/iuse.cpp msgid "Turn music off" -msgstr "Desligue a música" +msgstr "" #: src/iuse.cpp #, c-format @@ -192090,11 +172521,11 @@ msgstr "" #: src/iuse.cpp msgid "No music on device" -msgstr "Nenhuma música no dispositivo" +msgstr "" #: src/iuse.cpp msgid "View recipes on E-ink screen" -msgstr "Veja receitas na tela E-ink" +msgstr "" #: src/iuse.cpp msgid "Your photos" @@ -192102,59 +172533,59 @@ msgstr "" #: src/iuse.cpp msgid "Your collection of monsters" -msgstr "Sua coleção de monstros" +msgstr "" #: src/iuse.cpp msgid "Collection of monsters is empty" -msgstr "Coleção de monstros está vazia" +msgstr "" #: src/iuse.cpp msgid "Download data from memory card" -msgstr "Download de dados do cartão de memória" +msgstr "" #: src/iuse.cpp msgid "Decrypt memory card" -msgstr "Descriptografar cartão de memória" +msgstr "" #: src/iuse.cpp msgid "Decrypt memory card (low skill)" -msgstr "Descriptografar cartão de memória (baixa habilidade)" +msgstr "" #: src/iuse.cpp msgid "Wasted time, these pictures do not provoke your senses." -msgstr "Perder tempo, estas imagens não provocam os seus sentidos." +msgstr "" #: src/iuse.cpp msgid "You used to have a dog like this..." -msgstr "Você costumava ter um cachorro assim ..." +msgstr "" #: src/iuse.cpp msgid "Ha-ha! An amusing cat photo." -msgstr "Ha-ha! Uma divertida foto de gato." +msgstr "" #: src/iuse.cpp msgid "Excellent pictures of nature." -msgstr "Excelentes fotos da natureza." +msgstr "" #: src/iuse.cpp msgid "Food photos... your stomach rumbles!" -msgstr "Fotos de comida ... seu estômago ronca!" +msgstr "" #: src/iuse.cpp msgid "Some very interesting travel photos." -msgstr "Algumas fotos de viagem muito interessantes." +msgstr "" #: src/iuse.cpp msgid "Pictures of a concert of popular band." -msgstr "Fotos de um concerto de banda popular." +msgstr "" #: src/iuse.cpp msgid "Photos of someone's luxurious house." -msgstr "Fotos da casa luxuosa de alguém." +msgstr "" #: src/iuse.cpp msgid "You feel nostalgic as you stare at the photo." -msgstr "Você se sente nostálgico enquanto olha para a foto." +msgstr "" #: src/iuse.cpp #, c-format @@ -192168,27 +172599,27 @@ msgstr "" #: src/iuse.cpp msgid "List recipes:" -msgstr "Listar receitas:" +msgstr "" #: src/iuse.cpp msgid "Your collection of monsters:" -msgstr "Sua coleção de monstros:" +msgstr "" #: src/iuse.cpp msgid "Insert memory card" -msgstr "Insira o cartão de memória" +msgstr "" #: src/iuse.cpp msgid "This is not a compatible memory card." -msgstr "Este não é um cartão de memória compatível." +msgstr "" #: src/iuse.cpp msgid "This memory card is encrypted." -msgstr "Este cartão de memória é criptografado." +msgstr "" #: src/iuse.cpp msgid "This memory card is not encrypted." -msgstr "Este cartão de memória não está criptografado." +msgstr "" #: src/iuse.cpp #, c-format @@ -192202,7 +172633,7 @@ msgstr "" #: src/iuse.cpp msgid "You tripped the firmware protection, and the card deleted its data!" -msgstr "Você tropeçou na proteção do firmware e o cartão apagou seus dados!" +msgstr "" #: src/iuse.cpp msgid " on " @@ -192544,7 +172975,7 @@ msgstr "" #: src/iuse.cpp msgid "You can't see the camera screen, you're blind." -msgstr "Você não pode ver a tela da câmera, você é cego." +msgstr "" #: src/iuse.cpp msgid "Photos saved on camera:" @@ -192552,23 +172983,23 @@ msgstr "" #: src/iuse.cpp msgid "What to do with camera?" -msgstr "O que fazer com a câmera?" +msgstr "" #: src/iuse.cpp msgid "Take a photo" -msgstr "Tire uma foto" +msgstr "" #: src/iuse.cpp msgid "No photos in memory" -msgstr "Nenhuma foto na memória" +msgstr "" #: src/iuse.cpp msgid "List photos" -msgstr "Listar fotos" +msgstr "" #: src/iuse.cpp msgid "Upload photos to memory card" -msgstr "Carregar fotos no cartão de memória" +msgstr "" #: src/iuse.cpp msgid "You have the wrong camera focus." @@ -192590,7 +173021,7 @@ msgstr "" #: src/iuse.cpp msgid "You took a selfie." -msgstr "Você tirou uma selfie." +msgstr "" #: src/iuse.cpp #, c-format @@ -192609,11 +173040,11 @@ msgstr "" #: src/iuse.cpp msgid "This memory card is encrypted. Format and clear data?" -msgstr "Este cartão de memória é criptografado. Formatar e limpar dados?" +msgstr "" #: src/iuse.cpp msgid "Are you sure you want to clear the old data on the card?" -msgstr "Tem certeza de que deseja limpar os dados antigos no cartão?" +msgstr "" #: src/iuse.cpp msgid "You upload your photos and monster collection to memory card." @@ -192637,15 +173068,15 @@ msgstr "" #: src/iuse.cpp msgid "a police siren, whoop WHOOP." -msgstr "uma sirene de polícia, whoop WHOOP." +msgstr "" #: src/iuse.cpp msgid "The cuffs try to shock you, but you're protected from electricity." -msgstr "Os punhos tentam chocá-lo, mas você está protegido da eletricidade." +msgstr "" #: src/iuse.cpp msgid "Ouch, the cuffs shock you!" -msgstr "Ai, as algemas te chocam!" +msgstr "" #: src/iuse.cpp #, c-format @@ -192669,27 +173100,25 @@ msgstr "" #: src/iuse.cpp msgid "Using RC car:" -msgstr "Usando o carro RC:" +msgstr "" #: src/iuse.cpp msgid "Put a bomb to car" -msgstr "Coloque uma bomba no carro" +msgstr "" #: src/iuse.cpp msgid "The RC car's batteries seem to be dead." -msgstr "As baterias do carro RC parecem estar mortas." +msgstr "" #: src/iuse.cpp msgid "" "You turned on your RC car, now place it on ground, and use radio control to " "play." msgstr "" -" Você ligou seu carro RC, agora o colocou no chão e usou o controle de rádio" -" para jogar." #: src/iuse.cpp msgid "Arm what?" -msgstr "Armar o que?" +msgstr "" #: src/iuse.cpp #, c-format @@ -192708,56 +173137,56 @@ msgstr "" #: src/iuse.cpp msgid "You disarmed your RC car" -msgstr "Você desarmou seu carro RC" +msgstr "" #. ~Sound of a radio controlled car moving around #: src/iuse.cpp msgid "buzzz..." -msgstr "buzzz ..." +msgstr "" #: src/iuse.cpp msgid "What to do with activated RC car?" -msgstr "O que fazer com o carro RC ativado?" +msgstr "" #: src/iuse.cpp msgid "You turned off your RC car" -msgstr "Você desligou seu carro RC" +msgstr "" #: src/iuse.cpp src/map.cpp msgid "beep." -msgstr "bip." +msgstr "" #: src/iuse.cpp msgid "Take control of RC car" -msgstr "Assuma o controle do carro RC" +msgstr "" #: src/iuse.cpp msgid "Stop controlling RC car" -msgstr "Pare de controlar o carro RC" +msgstr "" #: src/iuse.cpp msgid "What to do with radio control?" -msgstr "O que fazer com o controle de rádio?" +msgstr "" #: src/iuse.cpp msgid "Press blue button" -msgstr "Pressione o botão azul" +msgstr "" #: src/iuse.cpp msgid "Press green button" -msgstr "Pressione o botão verde" +msgstr "" #: src/iuse.cpp msgid "Press red button" -msgstr "Pressione o botão vermelho" +msgstr "" #: src/iuse.cpp msgid "No active RC cars on ground and in range." -msgstr "Não há carros RC ativos no solo e no alcance." +msgstr "" #: src/iuse.cpp msgid "You take control of the RC car." -msgstr "Você assume o controle do carro RC." +msgstr "" #: src/iuse.cpp #, c-format @@ -192768,153 +173197,151 @@ msgstr "" #: src/iuse.cpp msgid "This vehicle's security system has locked you out!" -msgstr "O sistema de segurança deste veículo bloqueou você!" +msgstr "" #: src/iuse.cpp msgid "You trigger the alarm!" -msgstr "Você aciona o alarme!" +msgstr "" #: src/iuse.cpp msgid "You quickly bypass the security system!" -msgstr "Você rapidamente ignora o sistema de segurança!" +msgstr "" #: src/iuse.cpp msgid "Try to hack this car's security system?" -msgstr "Tente hackear o sistema de segurança deste carro?" +msgstr "" #: src/iuse.cpp msgid "You waste some time, but fail to affect the security system." -msgstr "Você perde algum tempo, mas não afeta o sistema de segurança." +msgstr "" #: src/iuse.cpp msgid "You fail to affect the security system." -msgstr "Você não afeta o sistema de segurança." +msgstr "" #: src/iuse.cpp msgid "You take some time, but manage to bypass the security system!" -msgstr "Você leva algum tempo, mas consegue contornar o sistema de segurança!" +msgstr "" #: src/iuse.cpp msgid "Select vehicle to access" -msgstr "Selecione o veículo para acessar" +msgstr "" #: src/iuse.cpp msgid "No vehicle available." -msgstr "Nenhum veículo disponível." +msgstr "" #: src/iuse.cpp msgid "The remote control's battery goes dead." -msgstr "A bateria do controle remoto se apaga." +msgstr "" #: src/iuse.cpp msgid "Lost contact with the vehicle." -msgstr "Perdeu o contato com o veículo." +msgstr "" #: src/iuse.cpp msgid "The vehicle's battery died." -msgstr "A bateria do veículo morreu." +msgstr "" #: src/iuse.cpp msgid "What to do with remote vehicle control:" -msgstr "O que fazer com o controle remoto do veículo:" +msgstr "" #: src/iuse.cpp msgid "Stop controlling the vehicle." -msgstr "Pare de controlar o veículo." +msgstr "" #: src/iuse.cpp msgid "Take control of a vehicle." -msgstr "Assuma o controle de um veículo." +msgstr "" #: src/iuse.cpp msgid "Execute one vehicle action" -msgstr "Execute uma ação de veículo" +msgstr "" #: src/iuse.cpp msgid "You take control of the vehicle." -msgstr "Você assume o controle do veículo." +msgstr "" #: src/iuse.cpp msgid "And when you gaze long into a screen, the screen also gazes into you." -msgstr "E quando você olha muito em uma tela, a tela também olha para você." +msgstr "" #: src/iuse.cpp msgid "The multi-cooker boiled your head!" -msgstr "O multi-fogão ferveu sua cabeça!" +msgstr "" #: src/iuse.cpp msgid "The characters on the screen display an obscene joke. Strange humor." -msgstr "Os personagens na tela exibem uma piada obscena. Humor estranho." +msgstr "" #. ~ Single-spaced & lowercase are intentional, conveying hurried speech-KA101 #: src/iuse.cpp msgid "Are you sure?! the multi-cooker wants to poison your food!" -msgstr "Você tem certeza?! o multi-fogão quer envenenar sua comida!" +msgstr "" #: src/iuse.cpp msgid "" "The multi-cooker argues with you about the taste preferences. You don't " "want to deal with it." msgstr "" -" O multi-fogão argumenta com você sobre as preferências de gosto. Você não " -"quer lidar com isso." #: src/iuse.cpp msgid "The multi-cooker runs away!" -msgstr "O multi-fogão foge!" +msgstr "" #: src/iuse.cpp msgid "You're surrounded by aggressive multi-cookers!" -msgstr "Você está cercado por multi-fogões agressivos!" +msgstr "" #: src/iuse.cpp msgid "The multi-cooker should be finishing shortly..." -msgstr "O multi-fogão deve estar terminando em breve ..." +msgstr "" #. ~ sound of a multi-cooker finishing its cycle! #: src/iuse.cpp msgid "ding!" -msgstr "coisa!" +msgstr "" #: src/iuse.cpp msgid "You cannot read, and don't understand the screen or the buttons!" -msgstr "Você não pode ler e não entende a tela ou os botões!" +msgstr "" #: src/iuse.cpp msgid "Welcome to the RobotChef3000. Choose option:" -msgstr "Bem vindo ao RobotChef3000. Escolha a opção:" +msgstr "" #: src/iuse.cpp msgid "Stop cooking" -msgstr "Pare de cozinhar" +msgstr "" #: src/iuse.cpp msgid "Batteries are low." -msgstr "As baterias estão fracas." +msgstr "" #: src/iuse.cpp msgid "Start cooking" -msgstr "Comece a cozinhar" +msgstr "" #: src/iuse.cpp msgid "Upgrade multi-cooker" -msgstr "Atualize o multi-fogão" +msgstr "" #: src/iuse.cpp msgid "Multi-cooker already upgraded" -msgstr "Multi-fogão já atualizado" +msgstr "" #: src/iuse.cpp msgid "Multi-cooker unable to upgrade" -msgstr "Multi-fogão incapaz de atualizar" +msgstr "" #: src/iuse.cpp msgid "Take out dish" -msgstr "Retire o prato" +msgstr "" #: src/iuse.cpp msgid "Really stop cooking?" -msgstr "Pare de cozinhar?" +msgstr "" #: src/iuse.cpp #, c-format @@ -192933,7 +173360,7 @@ msgstr "" #: src/iuse.cpp msgid "Choose desired meal:" -msgstr "Escolha a refeição desejada:" +msgstr "" #: src/iuse.cpp #, c-format @@ -192945,7 +173372,6 @@ msgid "" "The screen flashes blue symbols and scales as the multi-cooker begins to " "shake." msgstr "" -" A tela pisca símbolos e escalas azuis quando o multi-fogão começa a tremer." #: src/iuse.cpp msgid "Your morale is too low to craft..." @@ -192967,52 +173393,46 @@ msgid "" "You've successfully upgraded the multi-cooker, master tinkerer! Now it " "cooks faster!" msgstr "" -" Você atualizou com sucesso o multi-cooker, master tinkerer! Agora cozinha " -"mais rápido!" #: src/iuse.cpp msgid "" "You sagely examine and analyze the multi-cooker, but don't manage to " "accomplish anything." msgstr "" -" Você sabiamente examina e analisa o multi-fogão, mas não consegue realizar " -"nada." #: src/iuse.cpp msgid "" "Your tinkering nearly breaks the multi-cooker! Fortunately, it still works," " but best to stop messing with it." msgstr "" -" Seu conserto quase quebra o multi-fogão! Felizmente, ainda funciona, mas é " -"melhor parar de brincar com isso." #: src/iuse.cpp msgid "Using cable:" -msgstr "Usando o cabo:" +msgstr "" #: src/iuse.cpp msgid "Attach cable to vehicle" -msgstr "Conecte o cabo ao veículo" +msgstr "" #: src/iuse.cpp msgid "Attach cable to self" -msgstr "Conecte o cabo ao auto" +msgstr "" #: src/iuse.cpp msgid "Attach cable to solar pack" -msgstr "Anexar cabo ao pacote solar" +msgstr "" #: src/iuse.cpp msgid "Attach cable to vehicle where?" -msgstr "Conecte o cabo ao veículo onde?" +msgstr "" #: src/iuse.cpp msgid "Attach loose end of the cable" -msgstr "Anexar extremidade solta do cabo" +msgstr "" #: src/iuse.cpp msgid "Detach and re-spool the cable" -msgstr "Retire e volte a bobinar o cabo" +msgstr "" #: src/iuse.cpp #, c-format @@ -193026,7 +173446,7 @@ msgstr "" #: src/iuse.cpp msgid "You need soap to use this." -msgstr "Você precisa de sabão para usar isso." +msgstr "" #: src/iuse.cpp #, c-format @@ -193045,11 +173465,11 @@ msgstr "" #: src/iuse.cpp msgid "Choose hologram direction." -msgstr "Escolha a direção do holograma." +msgstr "" #: src/iuse.cpp msgid "Can't create a hologram there." -msgstr "Não é possível criar um holograma lá." +msgstr "" #: src/iuse.cpp #, c-format @@ -193108,77 +173528,76 @@ msgstr "" #: src/iuse.cpp msgid "Put the ladder where?" -msgstr "Coloque a escada onde?" +msgstr "" #: src/iuse.cpp msgid "Can't place it there." -msgstr "Não pode colocá-lo lá." +msgstr "" #: src/iuse.cpp msgid "You set down the ladder." -msgstr "Você abaixou a escada." +msgstr "" #: src/iuse.cpp src/iuse_actor.cpp msgid "You can't see to do that!" -msgstr "Você não pode ver para fazer isso!" +msgstr "" #: src/iuse.cpp msgid "You're carrying too much to clean anything." -msgstr "Você está carregando muito para limpar qualquer coisa." +msgstr "" #: src/iuse.cpp msgid "Cleanser" -msgstr "Limpador" +msgstr "" #: src/iuse.cpp msgid "ITEMS TO CLEAN" -msgstr "ITENS PARA LIMPAR" +msgstr "" #: src/iuse.cpp msgid "Multiclean" -msgstr "Multiclean" +msgstr "" #: src/iuse.cpp msgid "To clean x items, type a number before selecting." -msgstr "Para limpar itens x, digite um número antes de selecionar." +msgstr "" #: src/iuse.cpp msgid "You have nothing to clean." -msgstr "Você não tem nada para limpar." +msgstr "" #: src/iuse.cpp msgid "You are too weak to even try." -msgstr "Você é muito fraco para tentar." +msgstr "" #: src/iuse.cpp msgid "" "You use all your strength, but the stick won't break. Perhaps try again?" msgstr "" -" Você usa toda a sua força, mas o pau não vai quebrar. Talvez tente de novo?" #: src/iuse.cpp msgid "You try to break the stick in two, but it shatters into splinters." -msgstr "Você tenta quebrar o bastão em dois, mas se quebra em farpas." +msgstr "" #: src/iuse.cpp msgid "The stick breaks clean into two parts." -msgstr "O pau se quebra em duas partes." +msgstr "" #: src/iuse.cpp msgid "You break the stick, but one half shatters into splinters." -msgstr "Você quebra o pau, mas uma metade se quebra em farpas." +msgstr "" #: src/iuse.cpp msgid "The throbbing of the infection diminishes. Slightly." -msgstr "O latejar da infecção diminui. Levemente." +msgstr "" #: src/iuse.cpp msgid "You feel much better - almost entirely." -msgstr "Você se sente muito melhor - quase inteiramente." +msgstr "" #: src/iuse.cpp msgid "You feel AMAZING!" -msgstr "Você se sente incrível!" +msgstr "" #: src/iuse.cpp msgid "You empty the contents of the go bag onto the floor." @@ -193194,8 +173613,6 @@ msgid "" "Simply taking more magnesium won't help. You have to go to sleep for it to " "work." msgstr "" -" Simplesmente tomar mais magnésio não ajudará. Você tem que ir dormir para " -"que isso funcione." #: src/iuse.cpp #, c-format @@ -193204,87 +173621,87 @@ msgstr "" #: src/iuse.cpp msgid "Heads!" -msgstr "Cabeças!" +msgstr "" #: src/iuse.cpp msgid "Tails!" -msgstr "Caudas!" +msgstr "" #: src/iuse.cpp msgid "It is certain." -msgstr "É certo." +msgstr "" #: src/iuse.cpp msgid "It is decidedly so." -msgstr "É decididamente assim." +msgstr "" #: src/iuse.cpp msgid "Without a doubt." -msgstr "Sem dúvida." +msgstr "" #: src/iuse.cpp msgid "Yes - definitely." -msgstr "Sim definitivamente." +msgstr "" #: src/iuse.cpp msgid "You may rely on it." -msgstr "Você pode contar com ele." +msgstr "" #: src/iuse.cpp msgid "As I see it, yes." -msgstr "Como eu vejo, sim." +msgstr "" #: src/iuse.cpp msgid "Most likely." -msgstr "Provavelmente." +msgstr "" #: src/iuse.cpp msgid "Outlook good." -msgstr "Outlook bom." +msgstr "" #: src/iuse.cpp msgid "Signs point to yes." -msgstr "Sinais apontam que sim." +msgstr "" #: src/iuse.cpp msgid "Reply hazy, try again." -msgstr "Resposta nebulosa, tente novamente." +msgstr "" #: src/iuse.cpp msgid "Ask again later." -msgstr "Pergunte novamente mais tarde." +msgstr "" #: src/iuse.cpp msgid "Better not tell you now." -msgstr "Melhor não te dizer agora." +msgstr "" #: src/iuse.cpp msgid "Cannot predict now." -msgstr "Não é possível prever agora." +msgstr "" #: src/iuse.cpp msgid "Concentrate and ask again." -msgstr "Concentre-se e pergunte novamente." +msgstr "" #: src/iuse.cpp msgid "Don't count on it." -msgstr "Não conte com isso." +msgstr "" #: src/iuse.cpp msgid "My reply is no." -msgstr "Minha resposta é não." +msgstr "" #: src/iuse.cpp msgid "My sources say no." -msgstr "Minhas fontes dizem não." +msgstr "" #: src/iuse.cpp msgid "Outlook not so good." -msgstr "O Outlook não é tão bom." +msgstr "" #: src/iuse.cpp msgid "Very doubtful." -msgstr "Muito duvidoso." +msgstr "" #: src/iuse.cpp #, c-format @@ -193308,7 +173725,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "You can't do that while underwater" -msgstr "Você não pode fazer isso enquanto estiver debaixo d'água" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193324,11 +173741,11 @@ msgstr "" #: src/iuse_actor.cpp msgid "Countdown: " -msgstr "Contagem regressiva:" +msgstr "" #: src/iuse_actor.cpp msgid "It's already been triggered." -msgstr "Já foi acionado." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193337,15 +173754,15 @@ msgstr "" #: src/iuse_actor.cpp msgid "Power at epicenter: " -msgstr "Poder em epicentro :" +msgstr "" #: src/iuse_actor.cpp msgid "Casing mass: " -msgstr "Embalagem massa :" +msgstr "" #: src/iuse_actor.cpp msgid "Fragment mass: " -msgstr "Fragmento massa :" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193354,7 +173771,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "You need a syringe to inject this drug." -msgstr "Você precisa de um seringa para injetar esta droga." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193403,7 +173820,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "A flashing LED on the laser turret appears to indicate low light." -msgstr "Um LED piscando na torre do laser parece indicar pouca luz." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193417,15 +173834,15 @@ msgstr "" #: src/iuse_actor.cpp msgid "There is also a certain bionic that helps with this kind of armor." -msgstr "Há também um certo biônico que ajuda com esse tipo de armadura." +msgstr "" #: src/iuse_actor.cpp msgid "Use your lockpick where?" -msgstr "Use o seu lockpick onde?" +msgstr "" #: src/iuse_actor.cpp msgid "You pick your nose and your sinuses swing open." -msgstr "Você escolhe seu nariz e seus seios se abrem." +msgstr "" #: src/iuse_actor.cpp msgid "" @@ -193433,52 +173850,46 @@ msgid "" "pick your nose, but you can't pick\n" "your friend's nose" msgstr "" -" Você pode escolher seus amigos, e você pode \n" -" picar o nariz, mas você não pode escolher \n" -" o nariz do seu amigo\n" #: src/iuse_actor.cpp msgid "With a satisfying click, the chain-link gate opens." -msgstr "Com um clique satisfatório, o portão de link de corrente é aberto." +msgstr "" #: src/iuse_actor.cpp msgid "With a satisfying click, the lock on the door opens." -msgstr "Com um clique satisfatório, a fechadura da porta se abre." +msgstr "" #: src/iuse_actor.cpp msgid "The door swings open..." -msgstr "A porta se abre ..." +msgstr "" #: src/iuse_actor.cpp msgid "That door isn't locked." -msgstr "Essa porta não está trancada." +msgstr "" #: src/iuse_actor.cpp msgid "That cannot be picked." -msgstr "Isso não pode ser escolhido." +msgstr "" #: src/iuse_actor.cpp msgid "The lock stumps your efforts to pick it, and you destroy your tool." msgstr "" -" O bloqueio tropeça em seus esforços para pegá-lo e você destrói sua " -"ferramenta." #: src/iuse_actor.cpp msgid "The lock stumps your efforts to pick it, and you damage your tool." msgstr "" -" O bloqueio trava seus esforços para pegá-lo e você danifica sua ferramenta." #: src/iuse_actor.cpp msgid "The lock stumps your efforts to pick it." -msgstr "O bloqueio tropeça em seus esforços para buscá-lo." +msgstr "" #: src/iuse_actor.cpp msgid "Deploy where?" -msgstr "Implantar onde?" +msgstr "" #: src/iuse_actor.cpp msgid "You attempt to become one with the furniture. It doesn't work." -msgstr "Você tenta se tornar um com a mobília. Não funciona" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193492,7 +173903,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "There is already furniture at that location." -msgstr "Já existe móveis naquele local." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193506,46 +173917,45 @@ msgstr "" #: src/iuse_actor.cpp msgid "Light where?" -msgstr "Luz onde?" +msgstr "" #: src/iuse_actor.cpp msgid "You would set yourself on fire." -msgstr "Você se colocaria no fogo." +msgstr "" #: src/iuse_actor.cpp msgid "But you're already smokin' hot." -msgstr "Mas você já está fumando." +msgstr "" #: src/iuse_actor.cpp msgid "There is already a fire." -msgstr "Já existe um incêndio." +msgstr "" #: src/iuse_actor.cpp msgid "" "There's a brazier there but you haven't set it up to contain the fire. " "Continue?" msgstr "" -" Há um braseiro lá, mas você não configurou para conter o fogo. Continuar?" #: src/iuse_actor.cpp msgid "You successfully light a fire." -msgstr "Você acendeu um fogo com sucesso." +msgstr "" #: src/iuse_actor.cpp msgid "You light a fire, but it isn't enough. You need to light more." -msgstr "Você acende um fogo, mas não é suficiente. Você precisa acender mais." +msgstr "" #: src/iuse_actor.cpp msgid "You happily light a fire." -msgstr "Você alegremente acende um fogo." +msgstr "" #: src/iuse_actor.cpp msgid "This tool doesn't have enough charges." -msgstr "Esta ferramenta não tem custos suficientes." +msgstr "" #: src/iuse_actor.cpp msgid "You need direct sunlight to light a fire with this." -msgstr "Você precisa de luz solar direta para acender um fogo com isso." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193561,7 +173971,7 @@ msgstr "" #: src/iuse_actor.cpp src/player.cpp msgid "You do not have that item." -msgstr "Você não tem esse item." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193590,11 +174000,11 @@ msgstr "" #: src/iuse_actor.cpp msgid "You are wielding that, are you sure?" -msgstr "Você está empunhando isso, tem certeza?" +msgstr "" #: src/iuse_actor.cpp msgid "You're wearing that, are you sure?" -msgstr "Você está usando isso, tem certeza?" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193620,7 +174030,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "You can't inscribe an item that isn't solid!" -msgstr "Você não pode inscrever um item que não é sólido!" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193634,15 +174044,15 @@ msgstr "" #: src/iuse_actor.cpp msgid "It's a label" -msgstr "É um rótulo" +msgstr "" #: src/iuse_actor.cpp msgid "It's a note" -msgstr "É uma nota" +msgstr "" #: src/iuse_actor.cpp msgid "(To delete, input one '.')\n" -msgstr "(Para excluir, insira um '.') \n" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193656,35 +174066,33 @@ msgstr "" #: src/iuse_actor.cpp msgid "The ground" -msgstr "O chão" +msgstr "" #: src/iuse_actor.cpp msgid "An item" -msgstr "Um item" +msgstr "" #: src/iuse_actor.cpp msgid "Inscribe which item?" -msgstr "Inscrever qual item?" +msgstr "" #: src/iuse_actor.cpp msgid "You cauterize yourself." -msgstr "Você se cauteriza." +msgstr "" #: src/iuse_actor.cpp msgid "It hurts like hell!" -msgstr "DOI como um inferno!" +msgstr "" #: src/iuse_actor.cpp msgid "It itches a little." -msgstr "Coça um pouco." +msgstr "" #: src/iuse_actor.cpp msgid "" "You need a source of flame (4 charges worth) before you can cauterize " "yourself." msgstr "" -" Você precisa de uma fonte de fogo (4 cargas no valor) antes de poder se " -"cauterizar." #: src/iuse_actor.cpp #, c-format @@ -193693,31 +174101,29 @@ msgstr "" #: src/iuse_actor.cpp msgid "No suitable corpses" -msgstr "Nenhum cadáver adequado" +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 "" -" A perspectiva de cortar o cadáver e deixá-lo subir novamente como escravo é" -" demais para você lidar agora." #: src/iuse_actor.cpp msgid "Selectively butcher the downed zombie into a zombie slave?" -msgstr "Derrotar seletivamente o zumbi abatido em um escravo zumbi?" +msgstr "" #: src/iuse_actor.cpp msgid "Make love, not zlave." -msgstr "Faça amor, não zlave." +msgstr "" #: src/iuse_actor.cpp msgid "Well, it's more constructive than just chopping 'em into gooey meat..." -msgstr "Bem, é mais construtivo do que apenas cortá-los em carne pegajosa ..." +msgstr "" #: src/iuse_actor.cpp msgid "You feel horrible for mutilating and enslaving someone's corpse." -msgstr "Você se sente horrível por mutilar e escravizar o cadáver de alguém." +msgstr "" #. ~ %s - name of the required skill. #: src/iuse_actor.cpp @@ -193727,15 +174133,15 @@ msgstr "" #: src/iuse_actor.cpp msgid "Hsss" -msgstr "Hsss" +msgstr "" #: src/iuse_actor.cpp msgid "You can't play music underwater" -msgstr "Você não pode tocar música debaixo d'água" +msgstr "" #: src/iuse_actor.cpp msgid " can't play music underwater" -msgstr " não pode tocar música debaixo d'água" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193784,7 +174190,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "You produce an annoying sound" -msgstr "Você produz um som irritante" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193918,15 +174324,15 @@ msgstr[1] "" #: src/iuse_actor.cpp msgid "Num items: " -msgstr "Pode ser ativado para armazenar um item adequado. Itens numéricos:" +msgstr "" #: src/iuse_actor.cpp msgid "Item volume: Min: " -msgstr "Volume do item: Min:" +msgstr "" #: src/iuse_actor.cpp msgid " Max: " -msgstr "Max:" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193952,7 +174358,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Store ammo" -msgstr "Loja de munição" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193976,7 +174382,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Your tool does not have enough charges to do that." -msgstr "Sua ferramenta não tem custos suficientes para fazer isso." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -193995,15 +174401,15 @@ msgstr "" #: src/iuse_actor.cpp msgid "That requires gunsmithing tools." -msgstr "Isso requer ferramentas de armeiro." +msgstr "" #: src/iuse_actor.cpp msgid "You cannot repair this type of item." -msgstr "Você não pode reparar esse tipo de item." +msgstr "" #: src/iuse_actor.cpp msgid "This can be used to repair other items, not itself." -msgstr "Isso pode ser usado para reparar outros itens, não em si." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -194042,7 +174448,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Refitting" -msgstr "Reequipamento" +msgstr "" #: src/iuse_actor.cpp msgid "Downsizing" @@ -194054,7 +174460,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Practicing" -msgstr "Praticando" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -194063,55 +174469,55 @@ msgstr "" #: src/iuse_actor.cpp msgid "You can't use filthy items for healing." -msgstr "Você não pode usar itens imundos para se curar." +msgstr "" #: src/iuse_actor.cpp msgid "The bleeding is stopped." -msgstr "O sangramento está parado." +msgstr "" #: src/iuse_actor.cpp msgid "You stop the bleeding." -msgstr "Você para o sangramento." +msgstr "" #: src/iuse_actor.cpp msgid "The wound still bleeds." -msgstr "A ferida ainda sangra." +msgstr "" #: src/iuse_actor.cpp msgid "You fail to stop the bleeding." -msgstr "Você não consegue parar o sangramento." +msgstr "" #: src/iuse_actor.cpp msgid "The wound is cleaned." -msgstr "A ferida é limpa." +msgstr "" #: src/iuse_actor.cpp msgid "You clean the wound." -msgstr "Você limpa a ferida." +msgstr "" #: src/iuse_actor.cpp msgid "The wound still looks bad." -msgstr "A ferida ainda parece ruim." +msgstr "" #: src/iuse_actor.cpp msgid "Your wound still aches." -msgstr "Sua ferida ainda dói." +msgstr "" #: src/iuse_actor.cpp msgid "The wound is disinfected." -msgstr "A ferida é desinfetada." +msgstr "" #: src/iuse_actor.cpp msgid "You disinfect the wound." -msgstr "Você desinfeta a ferida." +msgstr "" #: src/iuse_actor.cpp msgid "The wound still looks nasty." -msgstr "A ferida ainda parece desagradável." +msgstr "" #: src/iuse_actor.cpp msgid "Your wound still hurts." -msgstr "Sua ferida ainda dói." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -194120,15 +174526,15 @@ msgstr "" #: src/iuse_actor.cpp msgid "That arm is broken. It needs surgical attention or a splint." -msgstr "Esse braço está quebrado. Precisa de atenção cirúrgica ou uma tala." +msgstr "" #: src/iuse_actor.cpp msgid "That leg is broken. It needs surgical attention or a splint." -msgstr "Essa perna está quebrada. Precisa de atenção cirúrgica ou uma tala." +msgstr "" #: src/iuse_actor.cpp msgid "Select a body part for: " -msgstr "Selecione uma parte do corpo para:" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -194137,59 +174543,59 @@ msgstr "" #: src/iuse_actor.cpp msgid "Base healing: " -msgstr " Base de cura: " +msgstr "" #: src/iuse_actor.cpp msgid "Head: " -msgstr "Cabeça:" +msgstr "" #: src/iuse_actor.cpp msgid " Torso: " -msgstr "Tronco:" +msgstr "" #: src/iuse_actor.cpp msgid " Limbs: " -msgstr "Membros:" +msgstr "" #: src/iuse_actor.cpp msgid "Actual healing: " -msgstr " Cura real: " +msgstr "" #: src/iuse_actor.cpp msgid "Base bandaging quality: " -msgstr " Qualidade de bandagem de base: " +msgstr "" #: src/iuse_actor.cpp msgid "Actual bandaging quality: " -msgstr " Qualidade de bandagem real: " +msgstr "" #: src/iuse_actor.cpp msgid "Base disinfecting quality: " -msgstr " Qualidade de desinfecção da base: " +msgstr "" #: src/iuse_actor.cpp msgid "Actual disinfecting quality: " -msgstr " Qualidade de desinfecção real: " +msgstr "" #: src/iuse_actor.cpp msgid "Chance to heal (percent): " -msgstr " Chance de curar (por cento): " +msgstr "" #: src/iuse_actor.cpp msgid "* Bleeding: " -msgstr "* Sangramento:" +msgstr "" #: src/iuse_actor.cpp msgid "* Bite: " -msgstr "* Mordida:" +msgstr "" #: src/iuse_actor.cpp msgid "* Infection: " -msgstr "* Infecção:" +msgstr "" #: src/iuse_actor.cpp msgid "Moves to use: " -msgstr " Move-se para usar :" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -194240,79 +174646,79 @@ msgstr "" #: src/iuse_actor.cpp msgid "It's not a gun." -msgstr "Não é uma arma." +msgstr "" #: src/iuse_actor.cpp msgid "The barrel is too short." -msgstr "O cano é muito curto." +msgstr "" #: src/iuse_actor.cpp msgid "The barrel is already sawn-off." -msgstr "O cano já está serrado." +msgstr "" #: src/iuse_actor.cpp msgid "Can't saw off modified barrels." -msgstr "Não pode serrar barris modificados." +msgstr "" #: src/iuse_actor.cpp msgid "You can't self-install bionics." -msgstr "Você não pode instalar a biônica por conta própria." +msgstr "" #: src/iuse_actor.cpp msgid "You have already installed this bionic." -msgstr "Você já instalou este biônico." +msgstr "" #: src/iuse_actor.cpp msgid "There is nothing to upgrade." -msgstr "Não há nada para atualizar." +msgstr "" #: src/iuse_actor.cpp msgid "You have a superior version installed." -msgstr "Você tem uma versão superior instalada." +msgstr "" #: src/iuse_actor.cpp msgid "Remove which modification?" -msgstr "Remover qual modificação?" +msgstr "" #: src/iuse_actor.cpp msgid "Doesn't appear to be modded." -msgstr "Não parece ser modded." +msgstr "" #: src/iuse_actor.cpp msgid "None of the mods can be removed." -msgstr "Nenhum dos mods pode ser removido." +msgstr "" #: src/iuse_actor.cpp msgid "Has to be taken off first." -msgstr "Tem que ser retirado primeiro." +msgstr "" #: src/iuse_actor.cpp msgctxt "memorial_male" msgid "Consumed mutagen." -msgstr "Mutagênico consumido." +msgstr "" #: src/iuse_actor.cpp msgctxt "memorial_female" msgid "Consumed mutagen." -msgstr "Mutagênico consumido." +msgstr "" #: src/iuse_actor.cpp msgid "You suddenly feel dizzy, and collapse to the ground." -msgstr "De repente você se sente tonto e cai no chão." +msgstr "" #: src/iuse_actor.cpp msgid " suddenly collapses to the ground!" -msgstr " de repente desmorona no chão!" +msgstr "" #: src/iuse_actor.cpp msgctxt "memorial_male" msgid "Injected mutagen." -msgstr "Mutagéneo injetado." +msgstr "" #: src/iuse_actor.cpp msgctxt "memorial_female" msgid "Injected mutagen." -msgstr "Mutagéneo injetado." +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -194341,7 +174747,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "Examine the center square to pack it up again." -msgstr "Examine o quadrado central para empacotá-lo novamente." +msgstr "" #: src/iuse_actor.cpp msgid "Use this item to weigh yourself. Includes everything you are wearing." @@ -194354,7 +174760,7 @@ msgstr "" #: src/iuse_software.cpp msgid "You found kitten!" -msgstr "Você achou gatinho!" +msgstr "" #: src/iuse_software.cpp #, c-format @@ -194364,867 +174770,824 @@ msgstr "" #: src/iuse_software_kitten.cpp msgid "\"I pity the fool who mistakes me for kitten!\", sez Mr. T." -msgstr "'Tenho pena do tolo que me confunde gatinho!', Diz Mr. T." +msgstr "" #: src/iuse_software_kitten.cpp msgid "That's just an old tin can." -msgstr "Isso é apenas uma velha lata." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's an altar to the horse god." -msgstr "É um altar para o deus do cavalo." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A box of dancing mechanical pencils. They dance! They sing!" -msgstr "Uma caixa de lápis mecânicos de dança. Eles dançam! Eles cantam!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's an old Duke Ellington record." -msgstr "É um velho disco da Duke Ellington." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A box of fumigation pellets." -msgstr "Uma caixa de pelotas de fumigação." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A digital clock. It's stuck at 2:17 PM." -msgstr "Um relógio digital. Está preso às 14:17." +msgstr "" #: src/iuse_software_kitten.cpp msgid "That's just a charred human corpse." -msgstr "Isso é apenas um cadáver humano carbonizado." +msgstr "" #: src/iuse_software_kitten.cpp msgid "I don't know what that is, but it's not kitten." -msgstr "Eu não sei o que é isso, mas não é gatinho." +msgstr "" #: src/iuse_software_kitten.cpp msgid "An empty shopping bag. Paper or plastic?" -msgstr "Uma sacola de compras vazia. Papel ou plástico?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "Could it be... a big ugly bowling trophy?" -msgstr "Poderia ser ... um grande e feio troféu de boliche?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "A coat hanger hovers in thin air. Odd." -msgstr "Um cabide paira no ar. Ímpar." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Not kitten, just a packet of Kool-Aid(tm)." -msgstr "Não gatinho, apenas um pacote de Kool-Aid (tm)." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A freshly-baked pumpkin pie." -msgstr "Uma torta de abóbora recém-assada." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A lone, forgotten comma, sits here, sobbing." -msgstr "Uma vírgula solitária e esquecida fica aqui soluçando." +msgstr "" #: src/iuse_software_kitten.cpp msgid "ONE HUNDRED THOUSAND CARPET FIBERS!" -msgstr "CEM MIL FATAS DE TAPETE!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's Richard Nixon's nose!" -msgstr "É o nariz de Richard Nixon!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's Lucy Ricardo. \"Aaaah, Ricky!\", she says." -msgstr "É a Lucy Ricardo. 'Aaah, Ricky!', Ela diz." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You stumble upon Bill Gates' stand-up act." -msgstr "Você se depara com o ato de stand-up de Bill Gates." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Just an autographed copy of the Kama Sutra." -msgstr "Apenas uma cópia autografada do Kama Sutra." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the Will Rogers Highway. Who was Will Rogers, anyway?" -msgstr "É a Will Rogers Highway. Quem foi Will Rogers, afinal?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "It's another robot, more advanced in design than you but strangely immobile." msgstr "" -" É outro robô, mais avançado em design do que você, mas estranhamente " -"imóvel." #: src/iuse_software_kitten.cpp msgid "Leonard Richardson is here, asking people to lick him." -msgstr "Leonard Richardson está aqui, pedindo às pessoas para lambê-lo." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a stupid mask, fashioned after a beagle." -msgstr "É uma máscara estúpida, feita à moda de um beagle." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Your State Farm Insurance(tm) representative!" -msgstr "Seu representante da State Farm Insurance (tm)!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the local draft board." -msgstr "É a diretoria local." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Seven 1/4\" screws and a piece of plastic." -msgstr "Sete parafusos de 1/4 'e um pedaço de plástico." +msgstr "" #: src/iuse_software_kitten.cpp msgid "An 80286 machine." -msgstr "Uma máquina 80286." +msgstr "" #: src/iuse_software_kitten.cpp msgid "One of those stupid \"Homes of the Stars\" maps." -msgstr "Um desses mapas estúpidos de 'Homes of the Stars'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A signpost saying \"TO KITTEN\". It points in no particular direction." msgstr "" -" Um letreiro dizendo \\ 'TO KITTEN \\'. Não aponta em nenhuma direção " -"particular." #: src/iuse_software_kitten.cpp msgid "A hammock stretched between a tree and a volleyball pole." -msgstr "Uma rede se estendia entre uma árvore e uma vara de vôlei." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A Texas Instruments of Destruction calculator." -msgstr "Uma calculadora da Texas Instruments of Destruction." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a dark, amorphous blob of matter." -msgstr "É uma bolha escura e amorfa de matéria." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Just a pincushion." -msgstr "Apenas uma almofada de alfinetes." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a mighty zombie talking about some love and prosperity." -msgstr "É um poderoso zumbi falando sobre amor e prosperidade." +msgstr "" #: src/iuse_software_kitten.cpp msgid "\"Dear robot, you may have already won our 10 MILLION DOLLAR prize...\"" msgstr "" -" 'Querido robô, você pode já ter ganhado o prêmio de 10 MILHÕES DE DÓLAR ..." #: src/iuse_software_kitten.cpp msgid "It's just an object." -msgstr "É apenas um objeto." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A mere collection of pixels." -msgstr "Uma mera coleção de pixels." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A badly dented high-hat cymbal lies on its side here." -msgstr "Um prato de chapéu alto mal amassado está de lado aqui." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A marijuana brownie." -msgstr "Um brownie de maconha." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A plush Chewbacca." -msgstr "Um Chewbacca de pelúcia." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Daily hunger conditioner from Australasia" -msgstr "Condicionador de fome diário da Australásia" +msgstr "" #: src/iuse_software_kitten.cpp msgid "Just some stuff." -msgstr "Apenas algumas coisas." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Why are you touching this when you should be finding kitten?" -msgstr "Por que você está tocando isso quando deveria encontrar gatinho?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "A glorious fan of peacock feathers." -msgstr "Um glorioso leque de penas de pavão." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's some compromising photos of Babar the Elephant." -msgstr "São algumas fotos comprometedoras do Babar, o Elefante." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A copy of the Weekly World News. Watch out for the chambered nautilus!" msgstr "" -" Uma cópia do Weekly World News. Fique atento para o nautilus em câmara!" #: src/iuse_software_kitten.cpp msgid "It's the proverbial wet blanket." -msgstr "É o proverbial cobertor molhado." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A \"Get Out of Jail Free\" card." -msgstr "Um cartão 'Saia da Prisão Livre'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "An incredibly expensive \"Mad About You\" collector plate." -msgstr "Uma incrivelmente cara placa colecionadora 'Mad About You'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Paul Moyer's necktie." -msgstr "Gravata de Paul Moyer." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A haircut and a real job. Now you know where to get one!" msgstr "" -" Um corte de cabelo e um trabalho real. Agora você sabe onde conseguir um!" #: src/iuse_software_kitten.cpp msgid "An automated robot-hater. It frowns disapprovingly at you." msgstr "" -" Um aborrecedor automatizado de robôs. Ele franze a testa em desaprovação " -"para você." #: src/iuse_software_kitten.cpp msgid "An automated robot-liker. It smiles at you." -msgstr "Um robot-liker automatizado. Ele sorri para você." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a black hole. Don't fall in!" -msgstr "É um buraco negro. Não caia!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "Just a big brick wall." -msgstr "Apenas uma grande parede de tijolos." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! No, just kidding." -msgstr "Você achou gatinho! Não, é brincadeira." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Heart of Darkness brand pistachio nuts." -msgstr "Porcas de pistache da marca Heart of Darkness." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A smoking branding iron shaped like a 24-pin connector." -msgstr "Um ferro de fumar em forma de um conector de 24 pinos." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a Java applet." -msgstr "É um applet Java." +msgstr "" #: src/iuse_software_kitten.cpp msgid "An abandoned used-car lot." -msgstr "Um lote de carros usados abandonado." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A shameless plug for Crummy: http://www.crummy.com/" -msgstr "Um plug sem vergonha para Crummy: http://www.crummy.com/" +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "A shameless plug for the UCLA Linux Users Group: http://linux.ucla.edu/" msgstr "" -" Um plugue sem vergonha para o Grupo de Usuários Linux da UCLA: " -"http://linux.ucla.edu/" #: src/iuse_software_kitten.cpp msgid "A can of Spam Lite." -msgstr "Uma lata de Spam Lite." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This is another fine mess you've gotten us into, Stanley." -msgstr "Esta é outra bagunça que você nos meteu, Stanley." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's scenery for \"Waiting for Godot\"." -msgstr "É um cenário para \\ 'Waiting for Godot \\'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This grain elevator towers high above you." -msgstr "Esse elevador de grãos está bem acima de você." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A Mentos wrapper." -msgstr "Um wrapper Mentos." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the constellation Pisces." -msgstr "É a constelação de Peixes." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a fly on the wall. Hi, fly!" -msgstr "É uma mosca na parede. Oi, voa!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "This kind of looks like kitten, but it's not." -msgstr "Esse tipo de aparência parece gatinho, mas não é." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a banana! Oh, joy!" -msgstr "É uma banana! Oh alegria!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "A helicopter has crashed here." -msgstr "Um helicóptero caiu aqui." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Carlos Tarango stands here, doing his best impression of Pat Smear." -msgstr "Carlos Tarango está aqui, fazendo sua melhor impressão de Pat Smear." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A patch of mushrooms grows here." -msgstr "Um patch de cogumelos cresce aqui." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A patch of grape jelly grows here." -msgstr "Um pedaço de geléia de uva cresce aqui." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A spindle, and a grindle, and a bucka-wacka-woom!" -msgstr "Um fuso, um fuso e um bucka-wacka-woom!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "A geyser sprays water high into the air." -msgstr "Um gêiser pulveriza água no ar." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A toenail? What good is a toenail?" -msgstr "Uma unha? Que bom é uma unha?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "You've found the fish! Not that it does you much good in this game." -msgstr "Você encontrou o peixe! Não que isso te faça muito bem neste jogo." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A Buttertonsils bar." -msgstr "Uma barra de Buttertonsils." +msgstr "" #: src/iuse_software_kitten.cpp msgid "One of the few remaining discoes." -msgstr "Uma das poucas discotecas restantes." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Ah, the uniform of a Revolutionary-era minuteman." -msgstr "Ah, o uniforme de um homem da era da Revolucionária." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A punch bowl, filled with punch and lemon slices." -msgstr "Uma tigela de ponche, cheia de ponche e fatias de limão." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's nothing but a G-thang, baby." -msgstr "Não é nada além de um G-thang, baby." +msgstr "" #: src/iuse_software_kitten.cpp msgid "IT'S ALIVE! AH HA HA HA HA!" -msgstr "ESTÁ VIVO! AH HA HA HA HA!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "This was no boating accident!" -msgstr "Este não foi um acidente de barco!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "Wait! This isn't the poker chip! You've been tricked! DAMN YOU, MENDEZ!" msgstr "" -" Esperar! Este não é o chip de poker! Você foi enganado! DRAN VOCÊ, MENDEZ!" #: src/iuse_software_kitten.cpp msgid "A livery stable! Get your livery!" -msgstr "Um estábulo! Obtenha seu libré!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a perpetual immobility machine." -msgstr "É uma máquina perpétua de imobilidade." +msgstr "" #: src/iuse_software_kitten.cpp msgid "\"On this spot in 1962, Henry Winkler was sick.\"" -msgstr "'Nesse ponto em 1962, Henry Winkler estava doente." +msgstr "" #: src/iuse_software_kitten.cpp msgid "There's nothing here; it's just an optical illusion." -msgstr "Não há nada aqui; é apenas uma ilusão de ótica." +msgstr "" #: src/iuse_software_kitten.cpp msgid "The World's Biggest Motzah Ball!" -msgstr "A Maior Bola De Motzah Do Mundo!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "A tribe of cannibals lives here. They eat Malt-O-Meal for breakfast, you " "know." msgstr "" -" Uma tribo de canibais mora aqui. Eles comem Malt-O-Meal no café da manhã, " -"você sabe." #: src/iuse_software_kitten.cpp msgid "This appears to be a rather large stack of trashy romance novels." -msgstr "Esta parece ser uma pilha bastante grande de romances inúteis." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Look out! Exclamation points!" -msgstr "Tenha cuidado! Pontos de exclamação!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "A herd of wild coffee mugs slumbers here." -msgstr "Um rebanho de canecas de café selvagens dorme aqui." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a limbo bar! How low can you go?" -msgstr "É um bar do limbo! Quão baixo você pode ir?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the horizon. Now THAT'S weird." -msgstr "É o horizonte. Agora isso é estranho." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A vase full of artificial flowers is stuck to the floor here." -msgstr "Um vaso cheio de flores artificiais está preso ao chão aqui." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A large snake bars your way." -msgstr "Uma cobra grande barra o seu caminho." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A pair of saloon-style doors swing slowly back and forth here." msgstr "" -" Um par de portas de estilo saloon balançam lentamente para frente e para " -"trás aqui." #: src/iuse_software_kitten.cpp msgid "It's an ordinary bust of Beethoven... but why is it painted green?" -msgstr "É um busto comum de Beethoven ... mas por que é pintado de verde?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's TV's lovable wisecracking Crow! \"Bite me!\", he says." -msgstr "É o adorável corvo da TV! 'Me morda!', Ele diz." +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "Hey, look, it's war. What is it good for? Absolutely nothing. Say it again." msgstr "" -" Ei, olha, é guerra. O que é bom para isso? Absolutamente nada. Diga isso de" -" novo." #: src/iuse_software_kitten.cpp msgid "It's the amazing self-referential thing that's not kitten." -msgstr "É a incrível coisa auto-referencial que não é gatinha." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A flamboyant feather boa. Now you can dress up like Carol Channing!" msgstr "" -" Uma boá de penas chamativa. Agora você pode se vestir como Carol Channing!" #: src/iuse_software_kitten.cpp msgid "\"Sure hope we get some rain soon,\" says Farmer Joe." -msgstr "'Claro que esperamos ter alguma chuva em breve', diz Farmer Joe." +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "\"How in heck can I wash my neck if it ain't gonna rain no more?\" asks " "Farmer Al." msgstr "" -" 'Como diabos eu posso lavar meu pescoço se não vai chover mais?', Pergunta " -"Farmer Al." #: src/iuse_software_kitten.cpp msgid "\"Topsoil's all gone, ma,\" weeps Lil' Greg." -msgstr "'O solo superou tudo, ma', lamenta Lil Greg." +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "This is a large brown bear. Oddly enough, it's currently peeing in the " "woods." msgstr "" -" Este é um grande urso pardo. Curiosamente, atualmente está fazendo xixi na " -"floresta." #: src/iuse_software_kitten.cpp msgid "A team of arctic explorers is camped here." -msgstr "Uma equipe de exploradores do Ártico está acampada aqui." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This object here appears to be Louis Farrakhan's bow tie." -msgstr "Este objeto aqui parece ser a gravata borboleta de Louis Farrakhan." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This is the world-famous Chain of Jockstraps." -msgstr "Esta é a mundialmente famosa cadeia de jockstraps." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A trash compactor, compacting away." -msgstr "Um compactador de lixo, compactando." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This toaster strudel is riddled with bullet holes!" -msgstr "Esta torradeira strudel está crivado de buracos de bala!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a hologram of a crashed helicopter." -msgstr "É um holograma de um helicóptero acidentado." +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "This is a television. On screen you see a robot strangely similar to " "yourself." msgstr "" -" Isto é uma televisão. Na tela, você vê um robô estranhamente parecido com " -"você." #: src/iuse_software_kitten.cpp msgid "This balogna has a first name, it's R-A-N-C-I-D." -msgstr "Este balogna tem um primeiro nome, é RANCID." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A salmon hatchery? Look again. It's merely a single salmon." -msgstr "Um incubatório de salmão? Olhe novamente. É apenas um salmão." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a rim shot. Ba-da-boom!" -msgstr "É um tiro de aro. Ba-da-boom!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "It's creepy and it's kooky, mysterious and spooky. It's also somewhat ooky." msgstr "" -" É assustador e é maluco, misterioso e assustador. Também é um pouco ooky." #: src/iuse_software_kitten.cpp msgid "This is an anagram." -msgstr "Isto é um anagrama." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This object is like an analogy." -msgstr "Este objeto é como uma analogia." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a symbol. You see in it a model for all symbols everywhere." msgstr "" -" É um símbolo. Você vê nele um modelo para todos os símbolos em todos os " -"lugares." #: src/iuse_software_kitten.cpp msgid "The object pushes back at you." -msgstr "O objeto empurra de volta para você." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A traffic signal. It appears to have been recently vandalized." -msgstr "Um sinal de trânsito. Parece ter sido recentemente vandalizado." +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "\"There is no kitten!\" cackles the old crone. You are shocked by her " "blasphemy." msgstr "" -" 'Não há gatinho!', Gargalha a velha velha. Você está chocado com sua " -"blasfêmia." #: src/iuse_software_kitten.cpp msgid "This is a Lagrange point. Don't come too close now." -msgstr "Este é um ponto de Lagrange. Não chegue muito perto agora." +msgstr "" #: src/iuse_software_kitten.cpp msgid "The dirty old tramp bemoans the loss of his harmonica." -msgstr "O velho vagabundo sujo lamenta a perda de sua gaita." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Look, it's Fanny the Irishman!" -msgstr "Olha, é Fanny, o irlandês!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "What in blazes is this?" -msgstr "O que em chamas é isso?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the instruction manual for a previous version of this game." -msgstr "É o manual de instruções para uma versão anterior deste jogo." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A brain cell. Oddly enough, it seems to be functioning." -msgstr "Uma célula cerebral. Estranhamente, parece estar funcionando." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Tea and/or crumpets." -msgstr "Chá e / ou bolinhos." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This jukebox has nothing but Cliff Richards albums in it." -msgstr "Esta jukebox não tem nada além de álbuns de Cliff Richards." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a Quaker Oatmeal tube, converted into a drum." -msgstr "É um tubo Quaker Oatmeal, convertido em um tambor." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This is a remote control. Being a robot, you keep a wide berth." msgstr "" -"Este é um controle remoto. Sendo um robô, você mantém um amplo espaço." #: src/iuse_software_kitten.cpp msgid "It's a roll of industrial-strength copper wire." -msgstr "É um rolo de fio de cobre de força industrial." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Oh boy! Grub! Er, grubs." -msgstr "Oh garoto! Grub! Er, larvas." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A puddle of mud, where the mudskippers play." -msgstr "Uma poça de lama, onde os mudskippers brincam." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Plenty of nothing." -msgstr "Muito nada." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Look at that, it's the Crudmobile." -msgstr "Olhe para isso, é o Crudmobile." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Just Walter Mattheau and Jack Lemmon." -msgstr "Apenas Walter Mattheau e Jack Lemmon." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Two crepes, two crepes in a box." -msgstr "Dois crepes, dois crepes em uma caixa." +msgstr "" #: src/iuse_software_kitten.cpp msgid "An autographed copy of \"Primary Colors\", by Anonymous." -msgstr "Uma cópia autografada de \\ 'Cores Primárias \\', por Anônimo." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Another rabbit? That's three today!" -msgstr "Outro coelho? São três hoje!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a segmentation fault. Core dumped, by the way." -msgstr "É uma falha de segmentação. Núcleo despejado, a propósito." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A historical marker showing the actual location of /dev/null." -msgstr "Um marcador histórico que mostra a localização real de / dev / null." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Thar's Mobius Dick, the convoluted whale. Arrr!" -msgstr "Mobius Dick de Thar, a baleia complicada. Arrr!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a charcoal briquette, smoking away." -msgstr "É um briquete de carvão, fumando." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A pizza, melting in the sun." -msgstr "Uma pizza, derretendo ao sol." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a \"HOME ALONE 2: Lost in New York\" novelty cup." -msgstr "É um copo de novidade 'HOME SOUND 2: Lost in New York'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A stack of 7 inch floppies wobbles precariously." -msgstr "Uma pilha de disquetes de 7 polegadas oscila precariamente." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's nothing but a corrupted floppy. Coaster anyone?" -msgstr "Não é nada além de um disquete corrompido. Coaster alguém?" +msgstr "" #: src/iuse_software_kitten.cpp msgid "A section of glowing phosphor cells sings a song of radiation to you." msgstr "" -" Uma seção de células de fósforo brilhante canta uma canção de radiação para" -" você." #: src/iuse_software_kitten.cpp msgid "This TRS-80 III is eerily silent." -msgstr "Este TRS-80 III é assustadoramente silencioso." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A toilet bowl occupies this space." -msgstr "Um vaso sanitário ocupa este espaço." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This peg-leg is stuck in a knothole!" -msgstr "Esta perna de pau está presa em um buraco!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a solitary vacuum tube." -msgstr "É um tubo de vácuo solitário." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This corroded robot is clutching a mitten." -msgstr "Este robô corroído está segurando uma luva." +msgstr "" #: src/iuse_software_kitten.cpp msgid "\"Hi, I'm Anson Williams, TV's 'Potsy'.\"" -msgstr "'Oi, eu sou Anson Williams, o 'Potsy' da TV." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This subwoofer was blown out in 1974." -msgstr "Este subwoofer foi apagado em 1974." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Three half-pennies and a wooden nickel." -msgstr "Três meio centavos e um níquel de madeira." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the missing chapter to \"A Clockwork Orange\"." -msgstr "É o capítulo que falta para \\ 'A Clockwork Orange \\'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a burrito stand flyer. \"Taqueria El Ranchito\"." -msgstr "É um panfleto de carrinho de burrito. \\ 'Taqueria El Ranchito \\'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "This smiling family is happy because they eat LARD." -msgstr "Esta família sorridente é feliz porque eles comem LARD." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Roger Avery, persona un famoso de los Estados Unidos." -msgstr "Roger Avery, uma pessoa famosa dos Estados Unidos." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Ne'er but a potted plant." -msgstr "Nunca mais um vaso de plantas." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A parrot, kipping on its back." -msgstr "Um papagaio, batendo nas costas." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A forgotten telephone switchboard." -msgstr "Uma central telefônica esquecida." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A forgotten telephone switchboard operator." -msgstr "Um operador de quadro de telefone esquecido." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's an automated robot-disdainer. It pretends you're not there." msgstr "" -" É um desmantelador de robôs automatizado. Ele finge que você não está lá." #: src/iuse_software_kitten.cpp msgid "It's a portable hole. A sign reads: \"Closed for the winter\"." -msgstr "É um buraco portátil. Uma placa diz: 'Fechado para o inverno'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Just a moldy loaf of bread." -msgstr "Apenas um pão mofado." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A little glass tub of Carmex. ($.89) Too bad you have no lips." msgstr "" -" Uma pequena banheira de vidro de Carmex. ($ 0,89) Pena que você não tem " -"lábios." #: src/iuse_software_kitten.cpp msgid "A Swiss-Army knife. All of its appendages are out. (toothpick lost)" msgstr "" -" Um canivete suíço. Todos os seus apêndices estão fora. (palito perdido)" #: src/iuse_software_kitten.cpp msgid "It's a zen simulation, trapped within an ASCII character." -msgstr "É uma simulação zen, presa dentro de um caractere ASCII." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a copy of \"The Rubaiyat of Spike Schudy\"." -msgstr "É uma cópia de 'The Rubaiyat of Spike Schudy'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's \"War and Peace\" (unabridged, very small print)." -msgstr "É \\ 'Guerra e Paz \\' (impresso, muito pequeno)." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A willing, ripe tomato bemoans your inability to digest fruit." msgstr "" -" Um tomate maduro e disposto lamenta sua incapacidade de digerir a fruta." #: src/iuse_software_kitten.cpp msgid "A robot comedian. You feel amused." -msgstr "Um comediante robô. Você se sente divertido." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's KITT, the talking car." -msgstr "É o KITT, o carro falante." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Here's Pete Peterson. His batteries seem to have long gone dead." msgstr "" -" Aqui está Pete Peterson. Suas baterias parecem ter morrido há muito tempo." #: src/iuse_software_kitten.cpp msgid "\"Blup, blup, blup\", says the mud pot." -msgstr "\\ 'Blup, blup, blup \\', diz o pote de barro." +msgstr "" #: src/iuse_software_kitten.cpp msgid "More grist for the mill." -msgstr "Mais grist para o moinho." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Grind 'em up, spit 'em out, they're twigs." -msgstr "Grind 'em up, cuspi-los, eles são galhos." +msgstr "" #: src/iuse_software_kitten.cpp msgid "The boom box cranks out an old Ethel Merman tune." -msgstr "A caixa de som produz uma antiga melodia de Ethel Merman." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's \"Finding kitten\", published by O'Reilly and Associates." -msgstr "É 'Finding kitten', publicado pela O'Reilly and Associates." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Pumpkin pie spice." -msgstr "Tempero torta de abóbora." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the Bass-Matic '76! Mmm, that's good bass!" -msgstr "É o Bass-Matic '76! Mmm, isso é bom baixo!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "\"Lend us a fiver 'til Thursday\", pleas Andy Capp." -msgstr "'Nos empreste um quinto até a quinta-feira', diz Andy Capp." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's a tape of '70s rock. All original hits! All original artists!" msgstr "" -" É uma fita de rock dos anos 70. Todos os sucessos originais! Todos os " -"artistas originais!" #: src/iuse_software_kitten.cpp msgid "You've found the fabled America Online disk graveyard!" -msgstr "Você encontrou o lendário cemitério de discos America Online!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "Empty jewelboxes litter the landscape." -msgstr "Os jewelboxes vazios cobrem a paisagem." +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's the astounding meta-object." -msgstr "É o meta-objeto surpreendente." +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "Ed McMahon stands here, lost in thought. Seeing you, he bellows, \"YES " "SIR!\"" msgstr "" -" Ed McMahon está aqui perdido em pensamentos. Vendo você, ele grita: 'SIM " -"SENHOR! \"" #: src/iuse_software_kitten.cpp msgid "...thingy???" -msgstr "... coisinha ???" +msgstr "" #: src/iuse_software_kitten.cpp msgid "It's 1000 secrets the government doesn't want you to know!" -msgstr "São 1000 segredos que o governo não quer que você saiba!" +msgstr "" #: src/iuse_software_kitten.cpp msgid "The letters O and R." -msgstr "As letras O e R." +msgstr "" #: src/iuse_software_kitten.cpp msgid "A magical... magic thing." -msgstr "Uma coisa magica ... mágica." +msgstr "" #: src/iuse_software_kitten.cpp msgid "That is a moose, a thing of pure evil. You should \"RUN!\"" @@ -195232,31 +175595,29 @@ msgstr "" #: src/iuse_software_kitten.cpp msgid "It is SOFTWARE BUG." -msgstr "É um bug de software." +msgstr "" #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008 - press q to quit." -msgstr "robotfindskitten v22July2008 - pressione q para sair." +msgstr "" #: src/iuse_software_kitten.cpp msgid "robotfindskitten v22July2008" -msgstr "robotfindskitten v22Julho2008" +msgstr "" #: src/iuse_software_kitten.cpp msgid "" "Originally by the illustrious Leonard Richardson, rewritten in PDCurses by " "Joseph Larson, ported to CDDA gaming system by a nutcase." msgstr "" -" Originalmente pelo ilustre Leonard Richardson, reescrito em PDCurses por " -"Joseph Larson, portado para o sistema de jogos CDDA por um maluco." #: src/iuse_software_kitten.cpp msgid "In this game, you are robot (" -msgstr "Neste jogo, você é robô (" +msgstr "" #: src/iuse_software_kitten.cpp msgid ")." -msgstr ")." +msgstr "" #: src/iuse_software_kitten.cpp msgid "" @@ -195265,97 +175626,91 @@ msgid "" "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." msgstr "" -" Seu trabalho é encontrar gatinho. Esta tarefa é complicada pela existência " -"de várias coisas que não são gatinhas. O robô deve tocar nos itens para " -"determinar se eles são gatinhos ou não. O jogo termina quando o robô " -"encontra gatinho. Alternativamente, você pode terminar o jogo pressionando " -"'q', 'Q' ou a tecla Escape." #: src/iuse_software_kitten.cpp msgid "Press any key to start." -msgstr "Pressione qualquer tecla para começar." +msgstr "" #: src/iuse_software_kitten.cpp msgid "Invalid command: Use direction keys or press 'q'." -msgstr "Comando inválido: use as teclas de direção ou pressione 'q'." +msgstr "" #: src/iuse_software_kitten.cpp msgid "You found kitten! Way to go, robot!" -msgstr "Você achou gatinho! Muito bem, robô!" +msgstr "" #: src/iuse_software_lightson.cpp msgid " toggle lights" -msgstr " luzes de alternância" +msgstr "" #: src/iuse_software_lightson.cpp src/iuse_software_sokoban.cpp msgid "eset" -msgstr " caso" +msgstr "" #: src/iuse_software_lightson.cpp src/iuse_software_minesweeper.cpp #: src/iuse_software_snake.cpp src/iuse_software_sokoban.cpp msgid "uit" -msgstr "fora" +msgstr "" #: src/iuse_software_lightson.cpp msgid "Game goal: Switch all the lights on." -msgstr " Objetivo do jogo: Ligue todas as luzes." +msgstr "" #: src/iuse_software_lightson.cpp msgid "Legend: # on, - off." msgstr "" -" Lenda: # em, - fora." #: src/iuse_software_lightson.cpp msgid "Toggle lights switches selected light and 4 its neighbors." -msgstr "Luzes de alternância selecionam a luz selecionada e 4 seus vizinhos." +msgstr "" #: src/iuse_software_lightson.cpp src/iuse_software_minesweeper.cpp msgid "Congratulations, you won!" -msgstr "Parabéns, você ganhou!" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Max:" -msgstr "Max:" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Min:" -msgstr "Min:" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Game Difficulty" -msgstr "Dificuldade de Jogo" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Beginner" -msgstr "Principiante" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Intermediate" -msgstr "Intermediário" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Level width:" -msgstr "Largura do nível:" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Level height:" -msgstr "Altura do nível:" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Number of bombs:" -msgstr "Número de bombas:" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "ew level" -msgstr " esse nível" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "lag" -msgstr " equipe" +msgstr "" #: src/iuse_software_minesweeper.cpp msgid "Boom, you're dead! Better luck next time." -msgstr "Boom, você está morto! Mais sorte da próxima vez." +msgstr "" #: src/iuse_software_snake.cpp src/iuse_software_sokoban.cpp #, c-format @@ -195369,7 +175724,7 @@ msgstr "" #: src/iuse_software_snake.cpp msgid "Press 'q' or ESC to exit." -msgstr "Pressione 'q' ou ESC para sair." +msgstr "" #: src/iuse_software_sokoban.cpp #, c-format @@ -195388,232 +175743,232 @@ msgstr "" #: src/iuse_software_sokoban.cpp msgid "<+> next" -msgstr "<+> próximo" +msgstr "" #: src/iuse_software_sokoban.cpp msgid "<-> prev" -msgstr "<-> prev" +msgstr "" #: src/iuse_software_sokoban.cpp msgid "ndo move" -msgstr "então mova" +msgstr "" #. ~ abbreviated direction names and long direction names #: src/line.cpp msgid "N " -msgstr "N" +msgstr "" #: src/line.cpp src/overmap.cpp msgid "north" -msgstr "norte" +msgstr "" #: src/line.cpp msgid "NE " -msgstr "NE" +msgstr "" #: src/line.cpp msgid "northeast" -msgstr "nordeste" +msgstr "" #: src/line.cpp msgid "E " -msgstr "e" +msgstr "" #: src/line.cpp src/overmap.cpp msgid "east" -msgstr "leste" +msgstr "" #: src/line.cpp msgid "SE " -msgstr "SE" +msgstr "" #: src/line.cpp msgid "southeast" -msgstr "sudeste" +msgstr "" #: src/line.cpp msgid "S " -msgstr "S" +msgstr "" #: src/line.cpp src/overmap.cpp msgid "south" -msgstr "sul" +msgstr "" #: src/line.cpp msgid "SW " -msgstr "SW" +msgstr "" #: src/line.cpp msgid "southwest" -msgstr "sudoeste" +msgstr "" #: src/line.cpp msgid "W " -msgstr "o" +msgstr "" #: src/line.cpp src/overmap.cpp msgid "west" -msgstr "oeste" +msgstr "" #: src/line.cpp msgid "NW " -msgstr "NW" +msgstr "" #: src/line.cpp msgid "northwest" -msgstr "noroeste" +msgstr "" #: src/line.cpp msgid "UP_N " -msgstr "UP_N" +msgstr "" #: src/line.cpp msgid "north and above" -msgstr "norte e acima" +msgstr "" #: src/line.cpp msgid "UP_NE" -msgstr "UP_NE" +msgstr "" #: src/line.cpp msgid "northeast and above" -msgstr "nordeste e acima" +msgstr "" #: src/line.cpp msgid "UP_E " -msgstr "UP_E" +msgstr "" #: src/line.cpp msgid "east and above" -msgstr "leste e acima" +msgstr "" #: src/line.cpp msgid "UP_SE" -msgstr "UP_SE" +msgstr "" #: src/line.cpp msgid "southeast and above" -msgstr "sudeste e acima" +msgstr "" #: src/line.cpp msgid "UP_S " -msgstr "UPS" +msgstr "" #: src/line.cpp msgid "south and above" -msgstr "sul e acima" +msgstr "" #: src/line.cpp msgid "UP_SW" -msgstr "UP_SW" +msgstr "" #: src/line.cpp msgid "southwest and above" -msgstr "sudoeste e acima" +msgstr "" #: src/line.cpp msgid "UP_W " -msgstr "UP_W" +msgstr "" #: src/line.cpp msgid "west and above" -msgstr "oeste e acima" +msgstr "" #: src/line.cpp msgid "UP_NW" -msgstr "UP_NW" +msgstr "" #: src/line.cpp msgid "northwest and above" -msgstr "noroeste e acima" +msgstr "" #: src/line.cpp msgid "DN_N " -msgstr "DN_N" +msgstr "" #: src/line.cpp msgid "north and below" -msgstr "norte e abaixo" +msgstr "" #: src/line.cpp msgid "DN_NE" -msgstr "DN_NE" +msgstr "" #: src/line.cpp msgid "northeast and below" -msgstr "nordeste e abaixo" +msgstr "" #: src/line.cpp msgid "DN_E " -msgstr "DN_E" +msgstr "" #: src/line.cpp msgid "east and below" -msgstr "leste e abaixo" +msgstr "" #: src/line.cpp msgid "DN_SE" -msgstr "DN_SE" +msgstr "" #: src/line.cpp msgid "southeast and below" -msgstr "sudeste e abaixo" +msgstr "" #: src/line.cpp msgid "DN_S " -msgstr "DN_S" +msgstr "" #: src/line.cpp msgid "south and below" -msgstr "sul e abaixo" +msgstr "" #: src/line.cpp msgid "DN_SW" -msgstr "DN_SW" +msgstr "" #: src/line.cpp msgid "southwest and below" -msgstr "sudoeste e abaixo" +msgstr "" #: src/line.cpp msgid "DN_W " -msgstr "DN_W" +msgstr "" #: src/line.cpp msgid "west and below" -msgstr "oeste e abaixo" +msgstr "" #: src/line.cpp msgid "DN_NW" -msgstr "DN_NW" +msgstr "" #: src/line.cpp msgid "northwest and below" -msgstr "noroeste e abaixo" +msgstr "" #: src/line.cpp msgid "UP_CE" -msgstr "UP_CE" +msgstr "" #: src/line.cpp msgid "above" -msgstr "acima" +msgstr "" #: src/line.cpp msgid "CE " -msgstr "CE" +msgstr "" #: src/line.cpp msgid "center" -msgstr "Centro" +msgstr "" #: src/line.cpp msgid "DN_CE" -msgstr "DN_CE" +msgstr "" #: src/line.cpp msgid "below" -msgstr "abaixo" +msgstr "" #: src/live_view.cpp msgid "Mouse View" @@ -195621,7 +175976,7 @@ msgstr "Ver com o Mouse" #: src/loading_ui.cpp msgid "Loading" -msgstr "Carregando" +msgstr "" #: src/magic.cpp msgid "ERROR: Invalid energy string. Defaulting to NONE" @@ -195922,7 +176277,7 @@ msgstr "Quer mesmo sair? Todas as alterações não salvas serão perdidas." #: src/main_menu.cpp msgid "Bugs? Suggestions? Use links in MOTD to report them." -msgstr "Insetos? Sugestões? Use links no MOTD para reportá-los." +msgstr "" #: src/main_menu.cpp #, c-format @@ -195944,7 +176299,7 @@ msgstr "Sem mensagem hoje." #: src/main_menu.cpp msgid "No credits information found." -msgstr "Nenhuma informação de créditos encontrada." +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu" @@ -195974,7 +176329,7 @@ msgstr "Epecial" #: src/main_menu.cpp msgctxt "Main Menu" msgid "Setings" -msgstr "Não faça tings" +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu" @@ -196004,12 +176359,12 @@ msgstr "einicar Mundo" #: src/main_menu.cpp msgctxt "Main Menu|World" msgid "how World Mods" -msgstr " como os Mods do Mundo" +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu|World" msgid "opy World Settings" -msgstr " opy World Settings" +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu|Settings" @@ -196019,27 +176374,26 @@ msgstr "pções" #: src/main_menu.cpp msgctxt "Main Menu|Settings" msgid "Kybindings" -msgstr "K ybindings" +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu|Settings" msgid "utopickup" -msgstr " utopickup" +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu|Settings" msgid "afemode" -msgstr " afemode" +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu|Settings" msgid "olors" -msgstr " cheiros" +msgstr "" #: src/main_menu.cpp msgid "Unable to make config directory. Check permissions." msgstr "" -" Não é possível fazer o diretório de configuração. Verifique as permissões." #: src/main_menu.cpp msgid "Unable to make save directory. Check permissions." @@ -196051,11 +176405,11 @@ msgstr "Impossível fazer diretório para amostras salvas. Cheque permissões." #: src/main_menu.cpp msgid "Unable to make sound directory. Check permissions." -msgstr "Não é possível criar o diretório de som. Verifique as permissões." +msgstr "" #: src/main_menu.cpp msgid "Really quit?" -msgstr "Realmente desistiu?" +msgstr "" #: src/main_menu.cpp msgid "Special games don't work with shared maps." @@ -196079,7 +176433,7 @@ msgstr "Pesonagem Aleatório " #: src/main_menu.cpp msgctxt "Main Menu|New Game" msgid "Play Now! (ixed Scenario)" -msgstr "Jogue agora! ( Cenário ixed)" +msgstr "" #: src/main_menu.cpp msgctxt "Main Menu|New Game" @@ -196092,7 +176446,7 @@ msgstr "Nenhuma amostra encontrada!" #: src/main_menu.cpp msgid "Press 'd' to delete a preset." -msgstr "Pressione 'd' para excluir uma predefinição." +msgstr "" #: src/main_menu.cpp #, c-format @@ -196101,7 +176455,7 @@ msgstr "" #: src/main_menu.cpp msgid "Sorry, something went wrong." -msgstr "Desculpe, algo deu errado." +msgstr "" #: src/main_menu.cpp msgid "No Worlds found!" @@ -196125,7 +176479,7 @@ msgstr "Apenas o administrador pode alterar mundos." #: src/main_menu.cpp msgid "Create World" -msgstr "Criar mundo" +msgstr "" #: src/map.cpp #, c-format @@ -196152,7 +176506,7 @@ msgstr "Possível de cavar." #: src/map.cpp msgid "Plowable. " -msgstr "Plowable." +msgstr "" #: src/map.cpp msgid "Rough. " @@ -196172,11 +176526,11 @@ msgstr "Plano." #: src/map.cpp msgid "Simple. " -msgstr "Simples." +msgstr "" #: src/map.cpp msgid "Mountable. " -msgstr "Montável." +msgstr "" #: src/map.cpp #, c-format @@ -196190,39 +176544,39 @@ msgstr "" #: src/map.cpp msgid "an alarm go off!" -msgstr "um alarme dispara!" +msgstr "" #: src/map.cpp msgid "glass shattering" -msgstr "quebra de vidro" +msgstr "" #: src/map.cpp msgid "You are crushed by the falling debris!" -msgstr "Você é esmagado pelos destroços que caem!" +msgstr "" #: src/map.cpp msgid " is crushed by the falling debris!" -msgstr " é esmagado pela queda de detritos!" +msgstr "" #: src/map.cpp msgid "The shot is stopped by the reinforced glass wall!" -msgstr "O tiro é interrompido pela parede de vidro reforçada!" +msgstr "" #: src/map.cpp msgid "The shot is stopped by the reinforced glass door!" -msgstr "O tiro é interrompido pela porta de vidro reforçada!" +msgstr "" #: src/map.cpp msgid "ke-rash!" -msgstr "ke-erupção!" +msgstr "" #: src/map.cpp msgid "The metal bars melt!" -msgstr "As barras de metal derretem!" +msgstr "" #: src/map.cpp msgid "swish" -msgstr "swish" +msgstr "" #: src/map.cpp #, c-format @@ -196241,15 +176595,15 @@ msgstr "" #: src/map.cpp msgid "You disarm the trap!" -msgstr "Você desarma a armadilha!" +msgstr "" #: src/map.cpp msgid "You fail to disarm the trap." -msgstr "Você não consegue desarmar a armadilha." +msgstr "" #: src/map.cpp msgid "You fail to disarm the trap, and you set it off!" -msgstr "Você não desarmará a armadilha e a soltará!" +msgstr "" #: src/map.cpp #, c-format @@ -196263,7 +176617,7 @@ msgstr "" #: src/map_extras.cpp msgid "DANGER! MINEFIELD!" -msgstr "PERIGO! CAMPO MINADO!" +msgstr "" #: src/map_field.cpp #, c-format @@ -196282,87 +176636,87 @@ msgstr "" #: src/map_field.cpp msgid "The acid burns your body!" -msgstr "O ácido queima seu corpo!" +msgstr "" #: src/map_field.cpp msgid "The acid burns s body!" -msgstr "O ácido queima s corpo!" +msgstr "" #: src/map_field.cpp msgid "The acid burns your legs and feet!" -msgstr "O ácido queima suas pernas e pés!" +msgstr "" #: src/map_field.cpp msgid "The acid burns s legs and feet!" -msgstr "O ácido queima s pernas e pés!" +msgstr "" #: src/map_field.cpp msgid "You're lying in a pool of acid" -msgstr "Você está deitado em uma piscina de ácido" +msgstr "" #: src/map_field.cpp msgid "You're standing in a pool of acid" -msgstr "Você está de pé em uma piscina de ácido" +msgstr "" #: src/map_field.cpp msgid "The sap sticks to you!" -msgstr "A seiva gruda em você!" +msgstr "" #: src/map_field.cpp msgid "The sap sticks to !" -msgstr "A seiva adere a !" +msgstr "" #: src/map_field.cpp msgid "The sludge is thick and sticky. You struggle to pull free." -msgstr "O lodo é grosso e pegajoso. Você luta para se libertar." +msgstr "" #: src/map_field.cpp msgid "You burn your legs and feet!" -msgstr "Você queima suas pernas e pés!" +msgstr "" #: src/map_field.cpp msgid "You're burning up!" -msgstr "Você está queimando!" +msgstr "" #: src/map_field.cpp msgid "You're set ablaze!" -msgstr "Você está em chamas!" +msgstr "" #: src/map_field.cpp msgid "Your whole body is burning!" -msgstr "Todo o seu corpo está queimando!" +msgstr "" #: src/map_field.cpp msgid " burns their legs and feet!" -msgstr " queima suas pernas e pés!" +msgstr "" #: src/map_field.cpp msgid " is burning up!" -msgstr " está queimando!" +msgstr "" #: src/map_field.cpp msgid " is set ablaze!" -msgstr " está em chamas!" +msgstr "" #: src/map_field.cpp msgid "s whole body is burning!" -msgstr " Todo o corpo está queimando!" +msgstr "" #: src/map_field.cpp msgid "You're standing in a fire!" -msgstr "Você está em pé no fogo!" +msgstr "" #: src/map_field.cpp msgid "You're waist-deep in a fire!" -msgstr "Você está na cintura em um incêndio!" +msgstr "" #: src/map_field.cpp msgid "You're surrounded by raging fire!" -msgstr "Você está cercado por um fogo violento!" +msgstr "" #: src/map_field.cpp msgid "You're lying in fire!" -msgstr "Você está mentindo no fogo!" +msgstr "" #: src/map_field.cpp #, c-format @@ -196371,79 +176725,79 @@ msgstr "" #: src/map_field.cpp msgid "This radioactive gas burns!" -msgstr "Este gás radioativo queima!" +msgstr "" #: src/map_field.cpp msgid "You're torched by flames!" -msgstr "Você está incendiado pelas chamas!" +msgstr "" #: src/map_field.cpp msgid " is torched by flames!" -msgstr " é incendiado por chamas!" +msgstr "" #: src/map_field.cpp msgid "These flames do not burn you." -msgstr "Essas chamas não te queimam." +msgstr "" #: src/map_field.cpp msgid "Those flames do not burn ." -msgstr "Essas chamas não queimam ." +msgstr "" #: src/map_field.cpp msgid "You're painfully electrocuted!" -msgstr "Você é dolorosamente eletrocutado!" +msgstr "" #: src/map_field.cpp msgid " is shocked!" -msgstr " está chocado!" +msgstr "" #: src/map_field.cpp msgid "You're shocked!" -msgstr "Você está chocado!" +msgstr "" #: src/map_field.cpp msgid "The electric cloud doesn't affect you." -msgstr "A nuvem elétrica não afeta você." +msgstr "" #: src/map_field.cpp msgid "The electric cloud doesn't seem to affect ." -msgstr "A nuvem elétrica não parece afetar ." +msgstr "" #: src/map_field.cpp msgid "You're violently teleported!" -msgstr "Você é violentamente teletransportado!" +msgstr "" #: src/map_field.cpp msgid "The bees sting you!" -msgstr "As abelhas te picam!" +msgstr "" #: src/map_field.cpp msgid "The bees sting you several times!" -msgstr "As abelhas te picam várias vezes!" +msgstr "" #: src/map_field.cpp msgid "The bees sting you many times!" -msgstr "As abelhas te picam muitas vezes!" +msgstr "" #: src/map_field.cpp msgid "The bees sting you all over your body!" -msgstr "As abelhas picam você em todo o seu corpo!" +msgstr "" #: src/map_field.cpp msgid "The incendiary burns you!" -msgstr "O incendiário queima você!" +msgstr "" #: src/map_field.cpp msgid "The incendiary burns !" -msgstr "As queimaduras incendiárias !" +msgstr "" #: src/map_field.cpp msgid "The incendiary melts into your skin!" -msgstr "O incendiário derrete na sua pele!" +msgstr "" #: src/map_field.cpp msgid "The incendiary melts into s skin!" -msgstr "O incendiário se funde s pele!" +msgstr "" #: src/map_field.cpp #, c-format @@ -196467,127 +176821,127 @@ msgstr "" #: src/mapgen.cpp msgid "Sub-prime contact console" -msgstr "Consola de contacto sub-prime" +msgstr "" #: src/mapgen.cpp msgid "Terminate Specimens" -msgstr "Termine Amostras" +msgstr "" #: src/mapgen.cpp msgid "Release Specimens" -msgstr "Liberar Espécimes" +msgstr "" #: src/mapgen.cpp msgid "Toggle Portal" -msgstr "Alternar Portal" +msgstr "" #: src/mapgen.cpp msgid "Activate Resonance Cascade" -msgstr "Ativar Cascata de Ressonância" +msgstr "" #: src/mapgen.cpp msgid "Bionic access" -msgstr "Acesso biônico" +msgstr "" #: src/mapgen.cpp msgid "Manifest" -msgstr "Manifesto" +msgstr "" #: src/mapgen.cpp msgid "Open Chambers" -msgstr "Câmaras Abertas" +msgstr "" #: src/mapgen.cpp msgid "Missile Controls" -msgstr "Controles de Mísseis" +msgstr "" #: src/mapgen.cpp msgid "EnviroCom OS v2.03" -msgstr "EnviroCom OS v2.03" +msgstr "" #: src/mapgen.cpp msgid "Unlock stairs" -msgstr "Desbloquear escadas" +msgstr "" #: src/mapgen.cpp msgid "Download Sewer Maps" -msgstr "Faça o download de mapas de esgoto" +msgstr "" #: src/mapgen.cpp msgid "Divert sample" -msgstr "Divertir amostra" +msgstr "" #: src/mapgen.cpp msgid "NEPowerOS" -msgstr "NEPowerOS" +msgstr "" #: src/mapgen.cpp msgid "Read Logs" -msgstr "Leia Logs" +msgstr "" #: src/mapgen.cpp msgid "Initiate Tremors" -msgstr "Iniciar Tremores" +msgstr "" #: src/mapgen.cpp msgid "SRCF Security Terminal" -msgstr "Terminal de Segurança SRCF" +msgstr "" #: src/mapgen.cpp msgid "Security Reminder [1055]" -msgstr "Lembrete de segurança [1055]" +msgstr "" #: src/mapgen.cpp msgid "Security Reminder [1056]" -msgstr "Lembrete de segurança [1056]" +msgstr "" #: src/mapgen.cpp msgid "Security Reminder [1057]" -msgstr "Lembrete de segurança [1057]" +msgstr "" #: src/mapgen.cpp msgid "EPA: Report All Potential Containment Breaches [3873643]" -msgstr "EPA: Relatar todas as possíveis violações de contenção [3873643]" +msgstr "" #: src/mapgen.cpp msgid "SRCF: Internal Memo, EPA [2918024]" -msgstr "SRCF: Internal Memo, EPA [2918024]" +msgstr "" #: src/mapgen.cpp msgid "CDC: Internal Memo, Standby [2918115]" -msgstr "CDC: Internal Memo, Standby [2918115]" +msgstr "" #: src/mapgen.cpp msgid "USARMY: SEAL SRCF [987167]" -msgstr "USARMY: SEAL SRCF [987167]" +msgstr "" #: src/mapgen.cpp msgid "COMMAND: REACTIVATE ELEVATOR" -msgstr "COMANDO: REACTIVA O ELEVADOR" +msgstr "" #: src/mapgen.cpp msgid "COMMAND: SEAL SRCF [4423]" -msgstr "COMANDO: SEAL SRCF [4423]" +msgstr "" #: src/mapgen.cpp msgid "Wreckage" -msgstr "Destroços" +msgstr "" #: src/mapgen.cpp msgid "Log Console" -msgstr "Log Console" +msgstr "" #: src/mapgen.cpp msgid "View Research Logs" -msgstr "Visualizar registros de pesquisa" +msgstr "" #: src/mapgen.cpp msgid "Download Map Data" -msgstr "Baixar dados do mapa" +msgstr "" #: src/mapgen.cpp msgid "Divert power to elevator" -msgstr "Desvie a energia para o elevador" +msgstr "" #: src/martialarts.cpp msgid "easy" @@ -196622,15 +176976,15 @@ msgstr[1] "" #: src/martialarts.cpp msgid "Requires: " -msgstr "Habilidade Requer: " +msgstr "" #: src/martialarts.cpp msgid "activate" -msgstr "ativar" +msgstr "" #: src/martialarts.cpp msgid "be used" -msgstr "ser usado" +msgstr "" #: src/martialarts.cpp #, c-format @@ -196701,7 +177055,7 @@ msgstr "" #: src/martialarts.cpp msgid "* Attacks will be completely silent" -msgstr "* Os ataques serão completamente silencioso " +msgstr "" #: src/martialarts.cpp #, c-format @@ -196725,15 +177079,15 @@ msgstr "" #: src/martialarts.cpp msgid "defensive" -msgstr "defensiva" +msgstr "" #: src/martialarts.cpp msgid "offensive" -msgstr "ofensiva" +msgstr "" #: src/martialarts.cpp msgid "Bonus: " -msgstr " Bônus: " +msgstr "" #: src/martialarts.cpp msgid "* Can activate on a normal or a crit hit" @@ -196741,41 +177095,37 @@ msgstr "" #: src/martialarts.cpp msgid "* Will only activate on a crit" -msgstr "* Só será ativado em um crit " +msgstr "" #: src/martialarts.cpp msgid "* Will counterattack when you dodge" msgstr "" -"* Vai contra ataque quando você esquivar " #: src/martialarts.cpp msgid "* Will counterattack when you block" -msgstr "* Vai contra ataque quando você quadra " +msgstr "" #: src/martialarts.cpp msgid "* Will grant free recovery from a miss" msgstr "" -" * Concederá recuperação gratuita a partir de um " -"senhorita " #: src/martialarts.cpp msgid "* Will break a grab" -msgstr "* Vai quebrar uma agarrar " +msgstr "" #: src/martialarts.cpp msgid "* Will attack in a wide arc in front of you" -msgstr "* Atacará em um arco largo na sua frente" +msgstr "" #: src/martialarts.cpp msgid "* Will attack adjacent enemies around you" -msgstr "* Atacará adjacente inimigos ao seu redor" +msgstr "" #: src/martialarts.cpp msgid "" "* Will attack your target and another one behind " "it" msgstr "" -" * Vai ataque seu alvo e outro um atrás isto" #: src/martialarts.cpp #, c-format @@ -196804,15 +177154,13 @@ msgstr "" #: src/martialarts.cpp msgid "* Will disarm the target" -msgstr "* Vai desarmar o alvo" +msgstr "" #: src/martialarts.cpp msgid "" "This style forces you to use unarmed strikes, even if wielding a " "weapon." msgstr "" -" Este estilo obriga a usar ataques desarmados, mesmo se empunhando " -"uma arma. " #: src/martialarts.cpp msgid "" @@ -196847,11 +177195,11 @@ msgstr "" #: src/martialarts.cpp msgid "Passive" -msgstr "Passiva" +msgstr "" #: src/martialarts.cpp msgid "Hit" -msgstr "Acertar" +msgstr "" #: src/martialarts.cpp msgid "Miss" @@ -196867,7 +177215,7 @@ msgstr "" #: src/martialarts.cpp msgid "Get hit" -msgstr "Ser atingido" +msgstr "" #: src/martialarts.cpp #, c-format @@ -196887,7 +177235,7 @@ msgstr "" #: src/material.cpp msgid "damages" -msgstr "danos" +msgstr "" #: src/mattack_actors.cpp #, c-format @@ -196931,7 +177279,7 @@ msgstr "" #: src/mattack_actors.cpp msgid "Beep." -msgstr "Bip." +msgstr "" #: src/mattack_actors.cpp src/monattack.cpp src/monattack.cpp #, c-format @@ -196949,7 +177297,7 @@ msgstr "" #: src/mattack_actors.cpp src/monattack.cpp msgid "The " -msgstr "o" +msgstr "" #: src/melee.cpp #, c-format @@ -196988,23 +177336,23 @@ msgstr "" #: src/melee.cpp msgid "Your torso encumbrance throws you off-balance." -msgstr "Seu peso no tronco o desequilibra." +msgstr "" #: src/melee.cpp msgid "You can't hit reliably due to your farsightedness." -msgstr "Você não pode bater de forma confiável devido à sua clarividência." +msgstr "" #: src/melee.cpp msgid "You miss and stumble with the momentum." -msgstr "Você sente falta e tropeça com o momento." +msgstr "" #: src/melee.cpp msgid "You swing wildly and miss." -msgstr "Você balança descontroladamente e erra." +msgstr "" #: src/melee.cpp msgid "You miss." -msgstr "Você sente falta." +msgstr "" #: src/melee.cpp #, c-format @@ -197023,19 +177371,19 @@ msgstr "" #: src/melee.cpp msgid " hits something." -msgstr " atinge alguma coisa." +msgstr "" #: src/melee.cpp msgid "You hit something." -msgstr "Você acertou alguma coisa." +msgstr "" #: src/melee.cpp msgid "You swing at the air." -msgstr "Você balança no ar." +msgstr "" #: src/melee.cpp msgid " disarms you!" -msgstr " desarma você!" +msgstr "" #: src/melee.cpp #, c-format @@ -197062,32 +177410,32 @@ msgstr "" #. ~ Adjective in "You block of the damage with your . #: src/melee.cpp msgid "all" -msgstr "todos" +msgstr "" #. ~ Adjective in "You block of the damage with your . #: src/melee.cpp msgid "nearly all" -msgstr "quase todos" +msgstr "" #. ~ Adjective in "You block of the damage with your . #: src/melee.cpp msgid "most" -msgstr "a maioria" +msgstr "" #. ~ Adjective in "You block of the damage with your . #: src/melee.cpp msgid "a lot" -msgstr "muito" +msgstr "" #. ~ Adjective in "You block of the damage with your . #: src/melee.cpp msgid "some" -msgstr "alguns" +msgstr "" #. ~ Adjective in "You block of the damage with your . #: src/melee.cpp msgid "a little" -msgstr "um pouco" +msgstr "" #: src/melee.cpp #, c-format @@ -197455,37 +177803,37 @@ msgstr "" #: src/messages.cpp msgctxt "message type" msgid "good" -msgstr "bom" +msgstr "" #: src/messages.cpp msgctxt "message type" msgid "bad" -msgstr "mau" +msgstr "" #: src/messages.cpp msgctxt "message type" msgid "mixed" -msgstr "misturado" +msgstr "" #: src/messages.cpp msgctxt "message type" msgid "warning" -msgstr "Aviso" +msgstr "" #: src/messages.cpp msgctxt "message type" msgid "info" -msgstr "info" +msgstr "" #: src/messages.cpp msgctxt "message type" msgid "neutral" -msgstr "neutro" +msgstr "" #: src/messages.cpp msgctxt "message type" msgid "debug" -msgstr "depurar" +msgstr "" #: src/messages.cpp #, c-format @@ -197519,23 +177867,23 @@ msgstr "" #: src/mission_companion.cpp msgid "Outpost Missions" -msgstr "Missões Outpost" +msgstr "" #: src/mission_companion.cpp msgid "Junk Shop Missions" -msgstr "Missões de Lixo" +msgstr "" #: src/mission_companion.cpp msgid "Agricultural Missions" -msgstr "Missões Agrícolas" +msgstr "" #: src/mission_companion.cpp msgid "Construction Missions" -msgstr "Missões de construção" +msgstr "" #: src/mission_companion.cpp msgid "Free Merchant Missions" -msgstr "Missões Comerciais Livres" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197545,14 +177893,10 @@ msgid "" " \n" "Assigning one of your allies to patrol the surrounding wilderness and isolated buildings presents the opportunity to build survival skills while engaging in relatively safe combat against isolated creatures." msgstr "" -" Lucro: $ 25- $ 500 \n" -" Perigo: Baixo \n" -" Tempo: missões de 10 horas \n" -" \\ nAtribuir a um de seus aliados para patrulhar a natureza e construções isoladas apresenta a oportunidade de construir habilidades de sobrevivência enquanto se envolve em combate relativamente seguro contra criaturas isoladas.\n" #: src/mission_companion.cpp msgid "Assign Scavenging Patrol" -msgstr "Atribuir Patrulha de Limpeza" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197562,18 +177906,14 @@ msgid "" " \n" "Patrol Roster:\n" msgstr "" -" Lucro: $ 25- $ 500 \n" -" Perigo: Baixo \n" -" Tempo: Missões de 10 horas \n" -" \\ nRelato de Patrulha: \n" #: src/mission_companion.cpp msgid " hours] \n" -msgstr "horas] \n" +msgstr "" #: src/mission_companion.cpp msgid "Retrieve Scavenging Patrol" -msgstr "Recuperar Patrulha de Limpeza" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197583,14 +177923,10 @@ msgid "" " \n" "Scavenging raids target formerly populated areas to loot as many valuable items as possible before being surrounded by the undead. Combat is to be expected and assistance from the rest of the party can't be guaranteed. The rewards are greater and there is a chance of the companion bringing back items." msgstr "" -" Lucro: $ 200 - $ 1000 \n" -" Perigo: Médio \n" -" Tempo: missões de 10 horas \n" -" \\ nAs incursões de escavação visam áreas anteriormente povoadas para roubar o maior número possível de itens valiosos antes de serem cercados pelos mortos-vivos. O combate é esperado e a assistência do resto da parte não pode ser garantida. As recompensas são maiores e existe a chance de o companheiro trazer de volta itens.\n" #: src/mission_companion.cpp msgid "Assign Scavenging Raid" -msgstr "Atribuir raid de eliminação" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197600,18 +177936,14 @@ msgid "" " \n" "Raid Roster:\n" msgstr "" -" Lucro: $ 200 a $ 1000 \n" -" Perigo: Médio \n" -" Tempo: missões de 10 horas \n" -" \\ nRaça de Empréstimo: \n" #: src/mission_companion.cpp msgid "Retrieve Scavenging Raid" -msgstr "Recuperar Raid de Limpeza" +msgstr "" #: src/mission_companion.cpp msgid "Assign Ally to Menial Labor" -msgstr "Atribuir Aliado ao Trabalho Menor" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197626,7 +177958,7 @@ msgstr "" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" -msgstr "Recuperar Aliado do Trabalho Menil" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197636,15 +177968,10 @@ msgid "" " \n" "Carpentry work requires more skill than menial labor while offering modestly improved pay. It is unlikely that your companions will face combat but there are hazards working on makeshift buildings." msgstr "" -" Lucro: $ 12 / hora \n" -" Perigo: Mínimo \n" -" Tempo: mínimo de 1 hora \n" -" \n" -" O trabalho de carpintaria requer mais habilidade do que trabalho braçal, ao mesmo tempo em que oferece um pagamento modestamente melhorado. É improvável que seus companheiros enfrentem combate, mas há perigos trabalhando em construções improvisadas.\n" #: src/mission_companion.cpp msgid "Assign Ally to Carpentry Work" -msgstr "Atribuir Aliado ao Trabalho de Carpintaria" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197654,14 +177981,10 @@ msgid "" " \n" "Labor Roster:\n" msgstr "" -" Lucro: $ 12 / hora \n" -" Perigo: Mínimo \n" -" Tempo: mínimo de 1 hora \n" -" \\ nLinha de Trabalhos: \n" #: src/mission_companion.cpp msgid "Recover Ally from Carpentry Work" -msgstr "Recuperar Aliado do Trabalho de Carpintaria" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197680,23 +178003,10 @@ msgid "" " \n" "We're willing to let you purchase a field at a substantial discount to use for your own agricultural enterprises. We'll plow it for you so you know exactly what is yours... after you have a field you can hire workers to plant or harvest crops for you. If the crop is something we have a demand for, we'll be willing to liquidate it." msgstr "" -" Custo: $ 1000 \n" -" \n" -" \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ......... \n" -" .. # .... ** \n" -" .. # Ov .. ** \\ n ... O | .... \n" -" \n" -" Estamos dispostos a permitir que você compre um campo com um desconto substancial para usar em suas próprias empresas agrícolas. Nós vamos ará-lo para você, então você sabe exatamente o que é seu ... depois de ter um campo, você pode contratar trabalhadores para plantar ou colher as colheitas para você. Se a safra é algo que temos demanda, estaremos dispostos a liquidá-la.\n" #: src/mission_companion.cpp msgid "Purchase East Field" -msgstr "Compra Campo Leste" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197715,23 +178025,10 @@ msgid "" " \n" "Protecting your field with a sturdy picket fence will keep most wildlife from nibbling your crops apart. You can expect yields to increase." msgstr "" -" Custo: $ 5500 \n" -" \n" -" \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ......... \n" -" .. # .... ** \n" -" .. # Ov .. ** \\ n ... O | .... \n" -" \n" -" Proteger seu campo com uma cerca de estaca robusta impedirá que a maioria dos animais selvagens morda suas plantações. Você pode esperar que os rendimentos aumentem.\n" #: src/mission_companion.cpp msgid "Upgrade East Field I" -msgstr "Atualizar Campo Leste I" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197750,24 +178047,10 @@ msgid "" " \n" "We'll plant the field with your choice of crop if you are willing to finance it. When the crop is ready to harvest you can have us liquidate it or harvest it for you." msgstr "" -" Custo: $ 3,00 / lote \n" -" \n" -" \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ...... ... \n" -" ......... \n" -" ......... \n" -" .. # .... ** \n" -" .. # Ov .. ** \\ n ... \n" -" \n" -" \n" -" Nós plantaremos o campo com sua escolha de cultura se você estiver disposto a financiá-lo. Quando a colheita estiver pronta para colheita, você pode nos fazer liquidar ou colher para você.\n" #: src/mission_companion.cpp msgid "Plant East Field" -msgstr "Plant East Field" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197786,23 +178069,10 @@ msgid "" " \n" "You can either have us liquidate the crop and give you the cash or pay us to harvest it for you." msgstr "" -" Custo: $ 2.00 / lote \n" -" \n" -" \n" -" ......... \n" -" ......... \n" -" ......... \n" -" ...... ... \n" -" ......... \n" -" ......... \n" -" .. # .... ** \n" -" .. # Ov .. ** \\ n .. .O | .... \n" -" \n" -" Você pode nos fazer liquidar a colheita e dar-lhe o dinheiro ou nos pagar para colhê-lo para você.\n" #: src/mission_companion.cpp msgid "Harvest East Field" -msgstr "Colheita Leste Campo" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197812,14 +178082,10 @@ msgid "" " \n" "Foraging for food involves dispatching a companion to search the surrounding wilderness for wild edibles. Combat will be avoided but encounters with wild animals are to be expected. The low pay is supplemented with the odd item as a reward for particularly large hauls." msgstr "" -" Lucro: US $ 10 / hora \n" -" Peso: Baixo \n" -" Tempo: mínimo de 4 horas \n" -" \\ nProcurar alimentos envolve despachar um acompanhante para pesquisar o deserto em busca de comestíveis silvestres. O combate será evitado, mas os encontros com animais selvagens são esperados. A baixa remuneração é complementada com o item ímpar como recompensa por lances particularmente grandes.\n" #: src/mission_companion.cpp msgid "Assign Ally to Forage for Food" -msgstr "Atribuir Aliado para Forrageira para Alimentos" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197829,15 +178095,10 @@ msgid "" " \n" "Labor Roster:\n" msgstr "" -" Lucro: $ 10 / hora \n" -" Peso: Baixo \n" -" Tempo: mínimo de 4 horas \n" -" \n" -" Linha de Trabalhos: \n" #: src/mission_companion.cpp msgid "Recover Ally from Foraging" -msgstr "Recuperar Aliado de Forrageamento" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197849,17 +178110,10 @@ msgid "" " \n" "The commune is sending food to the Free Merchants in the Refugee Center as part of a tax and in exchange for skilled labor." msgstr "" -" Lucro: $ 18 / hora \n" -" Peso: Alto \n" -" Tempo: DESCONHECIDO \n" -" \n" -" Adicionar os acompanhantes à equipe da caravana aumenta a probabilidade de sucesso. Por natureza, as caravanas são alvos extremamente tentadores para invasores ou grupos hostis, então apenas uma parte forte é recomendada. As recompensas são significativas para os participantes, mas são ainda mais importantes para as facções que lucram. \n" -" \n" -" A comuna está enviando comida para os comerciantes livres no Centro de Refugiados como parte de um imposto e em troca de mão de obra qualificada.\n" #: src/mission_companion.cpp msgid "Caravan Commune-Refugee Center" -msgstr "Caravan Commune-Refugee Center" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197870,23 +178124,18 @@ msgid "" " \n" "Roster:\n" msgstr "" -" Lucro: US $ 18 / hora \n" -" Peso: Alto \n" -" Tempo: DESCONHECIDO \n" -" \n" -" \\ nRótulo: \n" #: src/mission_companion.cpp msgid " [READY] \n" -msgstr "[PRONTO] \n" +msgstr "" #: src/mission_companion.cpp msgid " [COMPLETE] \n" -msgstr "[COMPLETO] \n" +msgstr "" #: src/mission_companion.cpp msgid " Hours] \n" -msgstr "Horas] \n" +msgstr "" #: src/mission_companion.cpp msgid "" @@ -197894,44 +178143,42 @@ msgid "" " \n" "The caravan will contain two or three additional members from the commune, are you ready to depart?" msgstr "" -" \n" -" A caravana conterá dois ou três membros adicionais da comuna, você está pronto para partir?\n" #: src/mission_companion.cpp msgid "Begin Commune-Refugee Center Run" -msgstr "Comece a Corrida do Centro da Comunidade-Refugiados" +msgstr "" #: src/mission_companion.cpp msgid "Recover Commune-Refugee Center" -msgstr "Recuperar Centro de Refugiados Comunais" +msgstr "" #: src/mission_companion.cpp msgid "There are no missions at this colony. Press Spacebar..." -msgstr "Não há missões nesta colônia. Pressione a barra de espaço..." +msgstr "" #: src/mission_companion.cpp msgid "joins the caravan team..." -msgstr "junta-se ao time da caravana ..." +msgstr "" #: src/mission_companion.cpp msgid "departs on the scavenging patrol..." -msgstr "parte na patrulha de limpeza ..." +msgstr "" #: src/mission_companion.cpp msgid "departs on the scavenging raid..." -msgstr "parte no ataque de limpeza ..." +msgstr "" #: src/mission_companion.cpp msgid "departs to work as a laborer..." -msgstr "parte para trabalhar como operário ..." +msgstr "" #: src/mission_companion.cpp msgid "departs to work as a carpenter..." -msgstr "parte para trabalhar como carpinteiro ..." +msgstr "" #: src/mission_companion.cpp msgid "departs to forage for food..." -msgstr "parte para procurar comida ..." +msgstr "" #: src/mission_companion.cpp #, c-format @@ -197945,15 +178192,15 @@ msgstr "" #: src/mission_companion.cpp msgid "A bandit party approaches the caravan in the open!" -msgstr "Uma festa de bandidos se aproxima da caravana a céu aberto!" +msgstr "" #: src/mission_companion.cpp msgid "A bandit party attacks the caravan while it it's camped!" -msgstr "Um grupo de bandidos ataca a caravana enquanto está acampada!" +msgstr "" #: src/mission_companion.cpp msgid "The caravan walks into a bandit ambush!" -msgstr "A caravana entra em uma emboscada de bandidos!" +msgstr "" #: src/mission_companion.cpp #, c-format @@ -197963,7 +178210,6 @@ msgstr "" #: src/mission_companion.cpp msgid "The caravan was a disaster and your companions never made it home..." msgstr "" -" A caravana foi um desastre e seus companheiros nunca chegaram em casa ..." #: src/mission_companion.cpp #, c-format @@ -197977,7 +178223,7 @@ msgstr "" #: src/mission_companion.cpp msgid "I'm sorry, you don't have enough money." -msgstr "Me desculpe, você não tem dinheiro suficiente." +msgstr "" #: src/mission_companion.cpp #, c-format @@ -197995,17 +178241,15 @@ msgstr "" #: src/mission_companion.cpp msgid "You have no seeds to plant!" -msgstr "Você não tem sementes para plantar!" +msgstr "" #: src/mission_companion.cpp msgid "You have no room to plant seeds..." -msgstr "Você não tem espaço para plantar sementes ..." +msgstr "" #: src/mission_companion.cpp msgid "I'm sorry, you don't have enough money to plant those seeds..." msgstr "" -" Me desculpe, você não tem dinheiro suficiente para plantar essas sementes " -"..." #: src/mission_companion.cpp #, c-format @@ -198021,15 +178265,15 @@ msgstr "" #: src/mission_companion.cpp msgid "There aren't any plants that are ready to harvest..." -msgstr "Não há plantas prontas para colher ..." +msgstr "" #: src/mission_companion.cpp msgid "Which plants do you want to have harvested?" -msgstr "Quais plantas você quer colher?" +msgstr "" #: src/mission_companion.cpp msgid "You decided to hold off for now..." -msgstr "Você decidiu adiar por agora ..." +msgstr "" #: src/mission_companion.cpp msgid "" @@ -198062,13 +178306,10 @@ msgstr "" #: src/mission_companion.cpp msgid "Through quick thinking the group was able to evade combat!" msgstr "" -"Através do pensamento rápido, o grupo foi capaz de escapar do combate!" #: src/mission_companion.cpp msgid "Combat took place in close quarters, focusing on melee skills..." msgstr "" -" O combate ocorreu em locais próximos, concentrando-se em habilidades corpo " -"a corpo ..." #: src/mission_companion.cpp #, c-format @@ -198077,7 +178318,7 @@ msgstr "" #: src/mission_companion.cpp msgid "Unfortunately they were overpowered by the undead... I'm sorry." -msgstr "Infelizmente eles foram dominados pelos mortos-vivos ... me desculpe." +msgstr "" #: src/mission_companion.cpp #, c-format @@ -198150,11 +178391,11 @@ msgstr "" #: src/mission_companion.cpp msgid "Everyone who was trapped under the collapsing roof died..." -msgstr "Todos que ficaram presos sob o teto desmoronado morreram ..." +msgstr "" #: src/mission_companion.cpp msgid "I'm sorry, there is nothing we could do." -msgstr "Desculpe, não há nada que possamos fazer." +msgstr "" #: src/mission_companion.cpp #, c-format @@ -198203,7 +178444,7 @@ msgstr "" #: src/mission_companion.cpp msgid "I'm sorry, there wasn't anything we could do..." -msgstr "Me desculpe, não havia nada que pudéssemos fazer ..." +msgstr "" #: src/mission_companion.cpp #, c-format @@ -198214,7 +178455,7 @@ msgstr "" #: src/mission_companion.cpp msgid "I fear your companion won't be returning." -msgstr "Temo que seu companheiro não retorne." +msgstr "" #: src/mission_companion.cpp #, c-format @@ -198240,11 +178481,11 @@ msgstr "" #: src/mission_companion.cpp msgid "The monsters are destroyed!" -msgstr "Os monstros são destruídos!" +msgstr "" #: src/mission_companion.cpp msgid "The monsters disengage!" -msgstr "Os monstros se desprendem!" +msgstr "" #: src/mission_companion.cpp #, c-format @@ -198253,32 +178494,32 @@ msgstr "" #: src/mission_companion.cpp msgid "You don't have any companions to send out..." -msgstr "Você não tem nenhum acompanhante para enviar ..." +msgstr "" #: src/mission_companion.cpp msgid "" "Who do you want to send? [ COMBAT : SURVIVAL : INDUSTRY ]" -msgstr "Quem você quer enviar? [COMBATE: SOBREVIVENCIA: INDÚSTRIA]" +msgstr "" #: src/mission_companion.cpp msgid "You choose to send no one..." -msgstr "Você escolhe não mandar ninguém ..." +msgstr "" #: src/mission_companion.cpp msgid "The companion you selected doesn't have the skills!" -msgstr "O acompanhante que você selecionou não tem as habilidades!" +msgstr "" #: src/mission_companion.cpp msgid "You don't have any companions ready to return..." -msgstr "Você não tem nenhum companheiro pronto para retornar ..." +msgstr "" #: src/mission_companion.cpp msgid "Who should return?" -msgstr "Quem deve retornar?" +msgstr "" #: src/mission_companion.cpp msgid "No one returns to your party..." -msgstr "Ninguém retorna a sua festa ..." +msgstr "" #: src/mission_end.cpp #, c-format @@ -198292,7 +178533,7 @@ msgstr "" #: src/mission_start.cpp msgid "Demonic Soul" -msgstr "Alma demoníaca" +msgstr "" #: src/mission_start.cpp #, c-format @@ -198306,27 +178547,25 @@ msgstr "" #: src/mission_start.cpp msgid "Download Software" -msgstr "Baixar software" +msgstr "" #: src/mission_start.cpp msgid "You don't know where the address could be..." -msgstr "Você não sabe onde o endereço poderia estar ..." +msgstr "" #: src/mission_start.cpp msgid "You mark the refugee center and the road that leads to it..." -msgstr "Você marca o centro de refugiados e a estrada que leva a ele ..." +msgstr "" #: src/mission_start.cpp msgid "" "You mark the refugee center, but you have no idea how to get there by " "road..." msgstr "" -" Você marca o centro de refugiados, mas não tem ideia de como chegar lá por " -"estrada ..." #: src/mission_start.cpp msgid "Download Routing Software" -msgstr "Faça o download do software de roteamento" +msgstr "" #: src/mission_ui.cpp msgid "ACTIVE MISSIONS" @@ -198394,43 +178633,43 @@ msgstr "" #: src/mod_manager.cpp msgid "CORE CONTENT PACKS" -msgstr "PACOTE DE CONTEÚDO PRINCIPAL" +msgstr "" #: src/mod_manager.cpp msgid "ITEM ADDITION MODS" -msgstr "MODOS DE ADIÇÃO DE PONTOS" +msgstr "" #: src/mod_manager.cpp msgid "CREATURE MODS" -msgstr "CRIATURA MODS" +msgstr "" #: src/mod_manager.cpp msgid "MISC ADDITIONS" -msgstr "ADIÇÕES DE MISCOS" +msgstr "" #: src/mod_manager.cpp msgid "BUILDINGS MODS" -msgstr "EDIFÍCIOS MODS" +msgstr "" #: src/mod_manager.cpp msgid "VEHICLE MODS" -msgstr "MODOS DE VEÍCULOS" +msgstr "" #: src/mod_manager.cpp msgid "REBALANCING MODS" -msgstr "MODELOS DE REALANCING" +msgstr "" #: src/mod_manager.cpp msgid "MAGICAL MODS" -msgstr "MODAS MÁGICAS" +msgstr "" #: src/mod_manager.cpp msgid "ITEM EXCLUSION MODS" -msgstr "ITEM EXCLUSION MODS" +msgstr "" #: src/mod_manager.cpp msgid "MONSTER EXCLUSION MODS" -msgstr "MODOS DE EXCLUSÃO DO MONSTRO" +msgstr "" #: src/mod_manager.cpp msgid "GRAPHICAL MODS" @@ -198438,27 +178677,27 @@ msgstr "" #: src/mod_manager.cpp msgid "NO CATEGORY" -msgstr "SEM CATEGORIA" +msgstr "" #: src/mod_manager.cpp msgid "Default" -msgstr "Padrão" +msgstr "" #: src/mod_manager.cpp src/safemode_ui.cpp msgid "Blacklist" -msgstr "Lista Negra" +msgstr "" #: src/mod_manager.cpp msgid "Balance" -msgstr "Equilibrar" +msgstr "" #: src/mod_manager.cpp msgid "list of default mods" -msgstr "lista de mods padrão" +msgstr "" #: src/mod_manager.cpp msgid "list of mods" -msgstr "lista de mods" +msgstr "" #: src/mod_manager_ui.cpp msgid "Author" @@ -198480,7 +178719,7 @@ msgstr[1] "" #: src/mod_manager_ui.cpp msgid "Mod version" -msgstr "Versão de Mod de Dependência do Mantenedor do Autor" +msgstr "" #: src/monattack.cpp #, c-format @@ -198519,7 +178758,7 @@ msgstr "" #: src/monattack.cpp msgid "a terrible shriek!" -msgstr "um grito terrível!" +msgstr "" #: src/monattack.cpp #, c-format @@ -198528,19 +178767,19 @@ msgstr "" #: src/monattack.cpp msgid "a piercing wail!" -msgstr "um lamento penetrante!" +msgstr "" #: src/monattack.cpp msgid "an ear-piercing howl!" -msgstr "um uivo estridente!" +msgstr "" #: src/monattack.cpp msgid "a sibilant rattling sound!" -msgstr "um som de chocalhar sibilante!" +msgstr "" #: src/monattack.cpp msgid "a spitting noise." -msgstr "um ruído de cuspir." +msgstr "" #: src/monattack.cpp #, c-format @@ -198619,11 +178858,11 @@ msgstr "" #: src/monattack.cpp msgid "You dodge it!" -msgstr "Você evita isso!" +msgstr "" #: src/monattack.cpp msgid " dodges it!" -msgstr " esquiva!" +msgstr "" #: src/monattack.cpp #, c-format @@ -198647,7 +178886,7 @@ msgstr "" #: src/monattack.cpp msgid "But nothing seems to happen." -msgstr "Mas nada parece acontecer." +msgstr "" #: src/monattack.cpp #, c-format @@ -198696,19 +178935,19 @@ msgstr "" #: src/monattack.cpp msgid "You dodge the beam!" -msgstr "Você esquiva o raio!" +msgstr "" #: src/monattack.cpp msgid " dodges the beam!" -msgstr " esquiva o raio!" +msgstr "" #: src/monattack.cpp msgid "Your armor protects you from the radiation!" -msgstr "Sua armadura protege você da radiação!" +msgstr "" #: src/monattack.cpp msgid "You get pins and needles all over." -msgstr "Você recebe alfinetes e agulhas por toda parte." +msgstr "" #: src/monattack.cpp #, c-format @@ -198755,11 +178994,11 @@ msgstr "" #: src/monattack.cpp msgid "thu-THUMP." -msgstr "receptor-THUMP." +msgstr "" #: src/monattack.cpp msgid "The root walls creak around you." -msgstr "As paredes da raiz rangem ao seu redor." +msgstr "" #. ~ the sound of a fungus releasing spores #. ~ That spore sound again @@ -198767,7 +179006,7 @@ msgstr "As paredes da raiz rangem ao seu redor." #. ~spore-release sound #: src/monattack.cpp src/mondeath.cpp src/player.cpp msgid "Pouf!" -msgstr "Puf!" +msgstr "" #: src/monattack.cpp #, c-format @@ -198776,7 +179015,7 @@ msgstr "" #: src/monattack.cpp msgid "\"Buy SpOreos(tm) now!\"" -msgstr "'Compre SpOreos (tm) agora! \"" +msgstr "" #: src/monattack.cpp #, c-format @@ -198796,7 +179035,7 @@ msgstr "" #. ~Sound of a giant fungal blossom inhaling #: src/monattack.cpp msgid "WOOOSH!" -msgstr "WOOOSH!" +msgstr "" #: src/monattack.cpp #, c-format @@ -198806,12 +179045,12 @@ msgstr "" #. ~Sound of a giant fungal blossom blowing out the dangerous fire! #: src/monattack.cpp msgid "POUFF!" -msgstr "POUFF!" +msgstr "" #. ~ That spore sound, much louder #: src/monattack.cpp msgid "POUF." -msgstr "POOF." +msgstr "" #: src/monattack.cpp #, c-format @@ -198836,7 +179075,7 @@ msgstr "" #: src/monattack.cpp msgid "You feel thousands of live spores pumping into you..." -msgstr "Você sente milhares de esporos vivos bombeando em você ..." +msgstr "" #. ~ 1$s is monster name, 2$s bodypart in accusative #: src/monattack.cpp @@ -198868,7 +179107,7 @@ msgstr "" #: src/monattack.cpp msgid "You're shoved away as a fungal wall grows!" -msgstr "Você é empurrado para longe enquanto uma parede fúngica cresce!" +msgstr "" #: src/monattack.cpp #, c-format @@ -198879,8 +179118,6 @@ msgstr "" msgid "" "The tower extends and aims several tendrils from its depths. Hold still?" msgstr "" -" A torre se estende e aponta várias gavinhas de suas profundezas. Segure " -"firme?" #: src/monattack.cpp #, c-format @@ -198893,30 +179130,26 @@ msgid "" "You see a clear golden liquid pump through the tendrils--and then lose " "consciousness." msgstr "" -" Você vê uma bomba de líquido dourado claro através dos tentáculos - e então" -" perde a consciência." #: src/monattack.cpp msgctxt "memorial_male" msgid "Was shown to the Marloss Gateway." -msgstr "Foi mostrado para o Portal Marloss." +msgstr "" #: src/monattack.cpp msgctxt "memorial_female" msgid "Was shown to the Marloss Gateway." -msgstr "Foi mostrado para o Portal Marloss." +msgstr "" #: src/monattack.cpp msgid "" "assistance, on an arduous quest. unity. together we have reached the door. " "now to pass through..." msgstr "" -" assistência, numa árdua busca. unidade. juntos chegamos à porta. agora para" -" passar ..." #: src/monattack.cpp msgid "You're shoved away as a fungal hedgerow grows!" -msgstr "Você é empurrado para longe enquanto uma sebe de fungos cresce!" +msgstr "" #. ~ %s is bodypart name in accusative. #: src/monattack.cpp @@ -198926,7 +179159,7 @@ msgstr "" #: src/monattack.cpp msgid "A fungal tendril bursts forth from the earth!" -msgstr "Um tendão fúngico irrompe da terra!" +msgstr "" #: src/monattack.cpp #, c-format @@ -198935,7 +179168,7 @@ msgstr "" #: src/monattack.cpp msgid "You feel millions of live spores pumping into you..." -msgstr "Você sente milhões de esporos vivos bombeando em você ..." +msgstr "" #: src/monattack.cpp #, c-format @@ -198967,12 +179200,12 @@ msgstr "" #: src/monattack.cpp msgctxt "memorial_male" msgid "Injected with dermatik eggs." -msgstr "Injetado com ovos Dermatik." +msgstr "" #: src/monattack.cpp msgctxt "memorial_female" msgid "Injected with dermatik eggs." -msgstr "Injetado com ovos Dermatik." +msgstr "" #: src/monattack.cpp #, c-format @@ -199098,12 +179331,12 @@ msgstr "" #: src/monattack.cpp #, c-format msgid "The %s grabs !" -msgstr "O(a) %s agarra !" +msgstr "" #: src/monattack.cpp #, c-format msgid "The %s grabs you!" -msgstr "O(a) %s te agarra!" +msgstr "" #: src/monattack.cpp #, c-format @@ -199127,7 +179360,7 @@ msgstr "" #: src/monattack.cpp msgid "You feel poison enter your body!" -msgstr "Você sente o veneno entrar em seu corpo!" +msgstr "" #: src/monattack.cpp #, c-format @@ -199142,7 +179375,6 @@ msgstr "" #: src/monattack.cpp msgid "You feel like you're being watched, it makes you sick." msgstr "" -" Você se sente como se estivesse sendo observado, isso deixa você doente." #: src/monattack.cpp #, c-format @@ -199221,11 +179453,10 @@ msgstr "" #: src/monattack.cpp msgid "Probably some now-obsolete Internal Affairs subroutine..." msgstr "" -" Provavelmente alguma sub-rotina de Assuntos Internos, agora obsoleta ..." #: src/monattack.cpp msgid "Ops used to do that in case you needed backup..." -msgstr "Ops costumava fazer isso no caso de você precisar de backup ..." +msgstr "" #: src/monattack.cpp #, c-format @@ -199245,7 +179476,6 @@ msgstr "" #: src/monattack.cpp msgid "Apparently yours aren't the only systems kept alive post-apocalypse." msgstr "" -" Aparentemente, o seu não é o único sistema mantido vivo após o apocalipse." #: src/monattack.cpp #, c-format @@ -199300,15 +179530,15 @@ msgstr "" #: src/monattack.cpp msgid "beep-beep." -msgstr "bip Bip." +msgstr "" #: src/monattack.cpp msgid "a chk!" -msgstr "um chk!" +msgstr "" #: src/monattack.cpp msgid "boop!" -msgstr "boop!" +msgstr "" #: src/monattack.cpp #, c-format @@ -199321,11 +179551,11 @@ msgstr "" #: src/monattack.cpp msgid "Those laser dots don't seem very friendly..." -msgstr "Esses pontos de laser não parecem muito amigáveis ..." +msgstr "" #: src/monattack.cpp msgid "Targeting." -msgstr "Alvejando." +msgstr "" #: src/monattack.cpp #, c-format @@ -199335,11 +179565,11 @@ msgstr "" #. ~ Sound of a tank turret swiveling into place #: src/monattack.cpp msgid "whirrrrrclick." -msgstr "whirrrrrclick." +msgstr "" #: src/monattack.cpp msgid "clank!" -msgstr "clank!" +msgstr "" #: src/monattack.cpp #, c-format @@ -199353,39 +179583,39 @@ msgstr "" #: src/monattack.cpp msgid "a robotic voice boom, \"Citizen, Halt!\"" -msgstr "um boom de voz robótica, 'Citizen, Halt!" +msgstr "" #: src/monattack.cpp msgid "a robotic voice boom, \"Please put down your weapon.\"" -msgstr "um boom de voz robótica, 'Por favor, abaixe sua arma. \"" +msgstr "" #: src/monattack.cpp msgid "a robotic voice boom, \"Come out with your hands up!\"" -msgstr "um boom de voz robótica, 'Saia com as mãos para cima!" +msgstr "" #: src/monattack.cpp msgid "a police siren, whoop WHOOP" -msgstr "uma sirene de polícia, whoop whoop" +msgstr "" #: src/monattack.cpp msgid "\"YOU... ARE FILTH...\"" -msgstr "'VOCÊ ... É FILTH ..." +msgstr "" #: src/monattack.cpp msgid "\"VERMIN... YOU ARE VERMIN...\"" -msgstr "'VERMIN ... VOCÊ É VERMINA ..." +msgstr "" #: src/monattack.cpp msgid "\"LEAVE NOW...\"" -msgstr "\\'SAIA AGORA...\"" +msgstr "" #: src/monattack.cpp msgid "\"WE... WILL FEAST... UPON YOU...\"" -msgstr "'NÓS ... FARNAMOS ... SOBRE VOCÊ ..." +msgstr "" #: src/monattack.cpp msgid "\"FOUL INTERLOPER...\"" -msgstr "\\ 'FOUL INTERLOPER ... \"" +msgstr "" #. ~ %1$s is the name of the zombie upgrading the other, %2$s is the zombie #. being upgraded. @@ -199408,12 +179638,12 @@ msgstr "" #: src/monattack.cpp #, c-format msgid "The %s vanishes!" -msgstr "O(a) %s desaparece!" +msgstr "" #: src/monattack.cpp #, c-format msgid "A %s appears!" -msgstr "Um(a) %s aparece!" +msgstr "" #: src/monattack.cpp #, c-format @@ -199460,15 +179690,15 @@ msgstr "" #: src/monattack.cpp msgid "He's brandishing a knife!" -msgstr "Ele está brandindo uma faca!" +msgstr "" #: src/monattack.cpp msgid "Quiet, quiet" -msgstr "Tranquilo, quieto" +msgstr "" #: src/monattack.cpp msgid "a terrifying roar!" -msgstr "um rugido aterrorizante!" +msgstr "" #: src/monattack.cpp #, c-format @@ -199604,126 +179834,122 @@ msgstr "" #: src/monattack.cpp msgid "\"Stop it please\"" -msgstr "\\'Pare por favor\"" +msgstr "" #: src/monattack.cpp msgid "\"Let us help you\"" -msgstr "\\'Deixe-nos ajudá-lo\"" +msgstr "" #: src/monattack.cpp msgid "\"We wish you no harm\"" -msgstr "\\ 'Nós não lhe desejamos nenhum dano \"" +msgstr "" #: src/monattack.cpp msgid "\"Do not fear\"" -msgstr "\\'Não tema\"" +msgstr "" #: src/monattack.cpp msgid "\"We can help you\"" -msgstr "\\'Nós podemos ajudar você\"" +msgstr "" #: src/monattack.cpp msgid "\"We are friendly\"" -msgstr "\\'Nós somos amigáveis\"" +msgstr "" #: src/monattack.cpp msgid "\"Please dont\"" -msgstr "'Por favor, não" +msgstr "" #. ~ Lowercase is intended: they're small voices. #: src/monattack.cpp msgid "\"hey, it's gonna be all right!\"" -msgstr "'Ei, tudo vai ficar bem!" +msgstr "" #. ~ Lowercase is intended: they're small voices. #: src/monattack.cpp msgid "\"we'll get through this!\"" -msgstr "'vamos superar isso!" +msgstr "" #. ~ Lowercase is intended: they're small voices. #: src/monattack.cpp msgid "\"i'm here for you!\"" -msgstr "\\'Estou aqui por você!\"" +msgstr "" #. ~ Lowercase is intended: they're small voices. #: src/monattack.cpp msgid "\"let me help!\"" -msgstr "\\'deixa-me ajudar!\"" +msgstr "" #: src/monattack.cpp msgid "The slime cleans you out!" -msgstr "O lodo te limpa!" +msgstr "" #: src/monattack.cpp msgid "The slime flows over you, but your gouges still ache." -msgstr "O lodo flui sobre você, mas suas fendas ainda doem." +msgstr "" #: src/monattack.cpp msgid "The slime seals up your leaks!" -msgstr "O lodo fecha seus vazamentos!" +msgstr "" #: src/monattack.cpp msgid "The slime flows over you, but your fluids are still leaking." -msgstr "O lodo corre sobre você, mas seus fluidos ainda estão vazando." +msgstr "" #: src/monattack.cpp msgid "but you grab its arm and flip it to the ground!" -msgstr "mas você agarra o braço dele e o joga no chão!" +msgstr "" #: src/monattack.cpp msgid "The flip does shock you..." -msgstr "O flip te choca ..." +msgstr "" #: src/monattack.cpp msgid "but you deftly spin out of its grasp!" -msgstr "mas você habilmente sai de seu alcance!" +msgstr "" #: src/monattack.cpp msgid "" "Halt and submit to arrest, citizen! The police will be here any moment." msgstr "" -" Parar e se submeter a prisão, cidadão! A polícia estará aqui a qualquer " -"momento." #: src/monattack.cpp msgid "Please stay in place, citizen, do not make any movements!" -msgstr "Por favor permaneça no lugar, cidadão, não faça nenhum movimento!" +msgstr "" #: src/monattack.cpp msgid "The robot carefully scans you." -msgstr "O robô examina você cuidadosamente." +msgstr "" #: src/monattack.cpp msgid "The robot carefully scans ." -msgstr "O robô examina com cuidado ." +msgstr "" #: src/monattack.cpp msgid "The riotbot orders you to present your hands and be cuffed." -msgstr "O riotbot ordena que você apresente suas mãos e seja algemado." +msgstr "" #: src/monattack.cpp msgid "Allow yourself to be arrested." -msgstr "Permita-se ser preso." +msgstr "" #: src/monattack.cpp msgid "Resist arrest!" -msgstr "Resista à prisão!" +msgstr "" #: src/monattack.cpp msgid "Feign death." -msgstr "Finja a morte." +msgstr "" #: src/monattack.cpp msgid "" "You deftly slip out of the handcuffs just as the robot closes them. The " "robot didn't seem to notice!" msgstr "" -" Você habilmente sai das algemas assim que o robô as fecha. O robô não " -"pareceu notar!" #: src/monattack.cpp msgid "The robot puts handcuffs on you." -msgstr "O robô coloca algemas em você." +msgstr "" #: src/monattack.cpp msgid "" @@ -199731,9 +179957,6 @@ msgid "" " do not remain silent, anything you say may be used against you in a court " "of law." msgstr "" -" Você está preso, cidadão. Você tem o direito de permanecer em silêncio. Se " -"você não permanecer em silêncio, qualquer coisa que disser poderá ser usada " -"contra você em um tribunal." #: src/monattack.cpp msgid "" @@ -199741,25 +179964,18 @@ msgid "" "will be provided at no cost to you. You may have your attorney present " "during any questioning." msgstr "" -" Você tem direito a um advogado. Se você não puder pagar um advogado, um " -"será fornecido sem nenhum custo para você. Você pode ter seu advogado " -"presente durante qualquer questionamento." #: src/monattack.cpp msgid "" "If you do not understand these rights, an officer will explain them in " "greater detail when taking you into custody." msgstr "" -" Se você não entender esses direitos, um oficial os explicará em maiores " -"detalhes ao levá-lo em custódia." #: src/monattack.cpp msgid "" "Do not attempt to flee or to remove the handcuffs, citizen. That can be " "dangerous to your health." msgstr "" -" Não tente fugir ou remover as algemas, cidadão. Isso pode ser perigoso para" -" sua saúde." #: src/monattack.cpp msgid "" @@ -199768,22 +179984,18 @@ msgid "" "'attack' and a potentially fatal medical condition. It backs off, signaling" " for medical help." msgstr "" -" Você cai no chão e finge um súbito ataque convulsivo. Embora você " -"obviamente ainda esteja vivo, o motim não pode dizer a diferença entre o seu" -" 'ataque' e uma condição médica potencialmente fatal. Ela recua, " -"sinalizando ajuda médica." #: src/monattack.cpp msgid "Your awkward movements do not fool the riotbot." -msgstr "Seus movimentos desajeitados não enganam o riotbot." +msgstr "" #: src/monattack.cpp msgid "The robot sprays tear gas!" -msgstr "O robô borrifa o gás lacrimogêneo!" +msgstr "" #: src/monattack.cpp msgid "Empty your hands and hold your position, citizen!" -msgstr "Esvazie suas mãos e segure sua posição, cidadão!" +msgstr "" #. ~ Sound of a riotbot using its blinding flash #: src/monattack.cpp @@ -199878,11 +180090,11 @@ msgstr "" #: src/monattack.cpp msgid "You evade the stretched arm and it sails past you!" -msgstr "Você evade o braço esticado e ele passa por você!" +msgstr "" #: src/monattack.cpp msgid " evades the stretched arm!" -msgstr " evade o braço esticado!" +msgstr "" #: src/monattack.cpp #, c-format @@ -199911,11 +180123,11 @@ msgstr "" #: src/monattack.cpp msgid "A spooky skeleton rises from the ground!" -msgstr "Um esqueleto assustador ergue-se do chão!" +msgstr "" #: src/monattack.cpp msgid "DOOT." -msgstr "DOOT" +msgstr "" #: src/mondeath.cpp #, c-format @@ -199994,7 +180206,7 @@ msgstr "" #: src/mondeath.cpp msgid "Culling the weak is distasteful, but necessary." -msgstr "Abater o fraco é desagradável, mas necessário." +msgstr "" #: src/mondeath.cpp #, c-format @@ -200062,7 +180274,7 @@ msgstr "" #: src/mondeath.cpp msgid "A cockroach nymph crawls out of the pregnant giant cockroach corpse." -msgstr "Uma ninfa de baratas sai do cadáver da barata gigante grávida." +msgstr "" #: src/mondeath.cpp #, c-format @@ -200071,7 +180283,7 @@ msgstr "" #: src/mondeath.cpp msgid "I love the smell of burning zed in the morning." -msgstr "Eu amo o cheiro de queimado pela manhã." +msgstr "" #: src/mondefense.cpp #, c-format @@ -200090,7 +180302,7 @@ msgstr "" #: src/monexamine.cpp msgid "zombie slave" -msgstr "escravo zumbi" +msgstr "" #: src/monexamine.cpp src/player.cpp #, c-format @@ -200116,7 +180328,7 @@ msgstr "" #: src/monexamine.cpp msgid "Attach bag" -msgstr "Anexar saco" +msgstr "" #: src/monexamine.cpp #, c-format @@ -200153,7 +180365,7 @@ msgstr "" #: src/monexamine.cpp msgid "Tear out pheromone ball" -msgstr "Rasgue a bola de feromônio" +msgstr "" #: src/monexamine.cpp #, c-format @@ -200252,7 +180464,7 @@ msgstr "Insira novo nome do animal de estimação:" #: src/monexamine.cpp msgid "Bag item" -msgstr "Item do saco" +msgstr "" #: src/monexamine.cpp #, c-format @@ -200301,7 +180513,7 @@ msgstr "" #: src/monexamine.cpp msgid "You tear out the pheromone ball from the zombie slave." -msgstr "Você arranca a bola de feromônio do escravo zumbi." +msgstr "" #: src/monexamine.cpp #, c-format @@ -200362,11 +180574,11 @@ msgstr "" #: src/monmove.cpp msgid "emerges" -msgstr "emerge" +msgstr "" #: src/monmove.cpp msgid "leaps" -msgstr "saltos" +msgstr "" #: src/monmove.cpp #, c-format @@ -200375,11 +180587,11 @@ msgstr "" #: src/monmove.cpp msgid "dives" -msgstr "mergulhos" +msgstr "" #: src/monmove.cpp msgid "sinks" -msgstr "pias" +msgstr "" #: src/monmove.cpp #, c-format @@ -200408,79 +180620,79 @@ msgstr "" #: src/monster.cpp msgid "tiny" -msgstr "muito pequeno" +msgstr "" #: src/monster.cpp msgid "small" -msgstr "pequeno" +msgstr "" #: src/monster.cpp msgid "medium" -msgstr "médio" +msgstr "" #: src/monster.cpp msgid "large" -msgstr "ampla" +msgstr "" #: src/monster.cpp msgid "huge" -msgstr "imenso" +msgstr "" #: src/monster.cpp msgid "Friendly." -msgstr "Amigáveis." +msgstr "" #: src/monster.cpp msgid "Passive." -msgstr "Passiva." +msgstr "" #: src/monster.cpp msgid "Fleeing!" -msgstr "Fugindo!" +msgstr "" #: src/monster.cpp msgid "Tracking." -msgstr "Rastreamento." +msgstr "" #: src/monster.cpp msgid "Ignoring." -msgstr "Ignorando." +msgstr "" #: src/monster.cpp msgid "Zombie slave." -msgstr "Escravo zumbi." +msgstr "" #: src/monster.cpp msgid "Hostile!" -msgstr "Hostil!" +msgstr "" #: src/monster.cpp msgid "BUG: Behavior unnamed." -msgstr "Erro: comportamento sem nome." +msgstr "" #: src/monster.cpp msgid "carapace" -msgstr "carapaça" +msgstr "" #: src/monster.cpp msgid "thick bark" -msgstr "casca grossa" +msgstr "" #: src/monster.cpp msgid "exoskeleton" -msgstr "exoesqueleto" +msgstr "" #: src/monster.cpp msgid "thick hide" -msgstr "couro grosso" +msgstr "" #: src/monster.cpp msgid "armor plating" -msgstr "chapeamento de armadura" +msgstr "" #: src/monster.cpp msgid "dense jelly mass" -msgstr "massa gelatinosa" +msgstr "" #: src/monster.cpp #, c-format @@ -200494,59 +180706,59 @@ msgstr "" #: src/monster.cpp msgid "It is uninjured." -msgstr "Não é ferido." +msgstr "" #: src/monster.cpp msgid "It is lightly injured." -msgstr "Está levemente ferido." +msgstr "" #: src/monster.cpp msgid "It is moderately injured." -msgstr "É moderadamente ferido." +msgstr "" #: src/monster.cpp msgid "It is heavily injured." -msgstr "Está gravemente ferido." +msgstr "" #: src/monster.cpp msgid "It is severely injured." -msgstr "Está gravemente ferido." +msgstr "" #: src/monster.cpp msgid "It is nearly dead!" -msgstr "Está quase morto!" +msgstr "" #: src/monster.cpp msgid " Difficulty " -msgstr "Dificuldade" +msgstr "" #: src/monster.cpp msgid "Difficulty " -msgstr "Dificuldade" +msgstr "" #: src/monster.cpp msgid "Minimal threat." -msgstr " Ameaça mínima. " +msgstr "" #: src/monster.cpp msgid "Mildly dangerous." -msgstr " Levemente perigoso. " +msgstr "" #: src/monster.cpp msgid "Dangerous." -msgstr " Perigoso. " +msgstr "" #: src/monster.cpp msgid "Very dangerous." -msgstr " Muito perigoso. " +msgstr "" #: src/monster.cpp msgid "Extremely dangerous." -msgstr " Extremamente perigoso. " +msgstr "" #: src/monster.cpp msgid "Fatally dangerous!" -msgstr " Fatalmente perigoso! " +msgstr "" #: src/monster.cpp #, c-format @@ -200565,23 +180777,23 @@ msgstr "" #: src/monster.cpp msgid "an animal" -msgstr "um animal" +msgstr "" #: src/monster.cpp msgid "a zombie" -msgstr "um zumbi" +msgstr "" #: src/monster.cpp msgid "a fungus" -msgstr "um fungo" +msgstr "" #: src/monster.cpp msgid "an insect" -msgstr "um inseto" +msgstr "" #: src/monster.cpp msgid "an aberration" -msgstr "uma aberração" +msgstr "" #: src/monster.cpp #, c-format @@ -200596,21 +180808,21 @@ msgstr "" #: src/monster.cpp msgctxt "Hearing as sense" msgid "hearing" -msgstr "audição" +msgstr "" #: src/monster.cpp msgctxt "Sight as sense" msgid "sight" -msgstr "vista" +msgstr "" #: src/monster.cpp msgctxt "Smell as sense" msgid "smell" -msgstr "cheiro" +msgstr "" #: src/monster.cpp msgid "It doesn't have senses." -msgstr "Não tem sentidos." +msgstr "" #: src/monster.cpp #, c-format @@ -200620,22 +180832,22 @@ msgstr "" #: src/monster.cpp msgctxt "Swim as an action" msgid "swim" -msgstr "nadar" +msgstr "" #: src/monster.cpp msgctxt "Fly as an action" msgid "fly" -msgstr "voar" +msgstr "" #: src/monster.cpp msgctxt "Dig as an action" msgid "dig" -msgstr "você" +msgstr "" #: src/monster.cpp msgctxt "Climb as an action" msgid "climb" -msgstr "escalar" +msgstr "" #: src/monster.cpp #, c-format @@ -200645,25 +180857,25 @@ msgstr "" #: src/monster.cpp msgctxt "Grab as an action" msgid "grab" -msgstr "agarrar" +msgstr "" #: src/monster.cpp msgctxt "Poison as an action" msgid "poison" -msgstr "Poção" +msgstr "" #: src/monster.cpp msgctxt "Paralyze as an action" msgid "paralyze" -msgstr "paralisar" +msgstr "" #: src/monster.cpp msgid "cause bleed" -msgstr "causar sangramento" +msgstr "" #: src/monster.cpp msgid "It has a head." -msgstr "Tem uma cabeça." +msgstr "" #: src/monster.cpp #, c-format @@ -200738,15 +180950,15 @@ msgstr "" #: src/monster.cpp msgid "You're envenomed!" -msgstr "Você está envenenado!" +msgstr "" #: src/monster.cpp msgid "You feel venom flood your body, wracking you with pain..." -msgstr "Você se sente veneno inundar seu corpo, wracking você com dor ..." +msgstr "" #: src/monster.cpp msgid "You feel venom enter your body!" -msgstr "Você sente veneno entrar em seu corpo!" +msgstr "" #: src/monster.cpp #, c-format @@ -200795,11 +181007,11 @@ msgstr "" #: src/monster.cpp msgid "hummmmm." -msgstr "Hummmmm" +msgstr "" #: src/monster.cpp msgid "fwoosh!" -msgstr "fwoosh!" +msgstr "" #: src/monster.cpp #, c-format @@ -200813,11 +181025,11 @@ msgstr "" #: src/monster.cpp msgid "BOOOOOOOM!!!" -msgstr "BOOOOOOOM !!!" +msgstr "" #: src/monster.cpp msgid "vrrrRRRUUMMMMMMMM!" -msgstr "vrrrRRRUUMMMMMMMM!" +msgstr "" #: src/monster.cpp #, c-format @@ -200826,11 +181038,11 @@ msgstr "" #: src/monster.cpp msgid "Your vision goes white!" -msgstr "Sua visão fica branca!" +msgstr "" #: src/monster.cpp msgid "VMMMMMMMMM!" -msgstr "VMMMMMMMMM!" +msgstr "" #: src/monster.cpp #, c-format @@ -200880,23 +181092,23 @@ msgstr "" #: src/morale.cpp msgid "Focus gain per minute" -msgstr "Ganho de foco por minuto" +msgstr "" #: src/morale.cpp msgid "Nothing affects your morale" -msgstr "Nada afeta sua moral" +msgstr "" #: src/morale.cpp msgid "Morale" -msgstr "moral" +msgstr "" #: src/morale.cpp msgid "Source" -msgstr "Fonte" +msgstr "" #: src/morale.cpp msgid "Value" -msgstr "Valor" +msgstr "" #: src/morale.cpp msgid "Total positive morale" @@ -200933,34 +181145,31 @@ msgstr "" #: src/mutation.cpp msgid "You start spinning web with your spinnerets!" -msgstr "Você começa a girar na web com suas fiandeiras!" +msgstr "" #: src/mutation.cpp msgid "You focus, but are too hemmed in to birth a new slimespring!" msgstr "" -" Você se concentra, mas está muito envolvido para criar um novo slimespring!" #: src/mutation.cpp msgid "" "You focus, and with a pleasant splitting feeling, birth a new slimespring!" msgstr "" -" Você se concentra e, com uma sensação agradável de rachar, dá à luz um novo" -" slimespring!" #. ~ Usual enthusiastic slimespring small voices! :D #: src/mutation.cpp msgid "wow! you look just like me! we should look out for each other!" -msgstr "Uau! você parece com eu! devemos olhar um para o outro!" +msgstr "" #. ~ Usual enthusiastic slimespring small voices! :D #: src/mutation.cpp msgid "come on, big me, let's go!" -msgstr "vamos lá, grande eu, vamos lá!" +msgstr "" #. ~ Usual enthusiastic slimespring small voices! :D #: src/mutation.cpp msgid "we're a team, we've got this!" -msgstr "nós somos uma equipe, nós temos isso!" +msgstr "" #: src/mutation.cpp msgid "You can only do that in a wooded area." @@ -200981,13 +181190,11 @@ msgstr "" #: src/mutation.cpp msgid "Bionic power storage increased by 100." -msgstr "O armazenamento de energia biônico aumentou em 100." +msgstr "" #: src/mutation.cpp msgid "You feel something straining deep inside you, yearning to be free..." msgstr "" -" Você sente algo se esforçando profundamente dentro de você, ansiando por " -"ser livre ..." #: src/mutation.cpp #, c-format @@ -201068,30 +181275,28 @@ msgid "" "After what happened that last time? uh-uh. You're not drinking that " "chemical stuff." msgstr "" -" Depois do que aconteceu da última vez? uh-uh Você não está bebendo essas " -"coisas químicas." #: src/mutation.cpp msgid "This is a contaminant. We reject it from the Mycus." -msgstr "Este é um contaminante. Nós rejeitamos isso do Mycus." +msgstr "" #: src/mutation.cpp msgid "We decontaminate it with spores." -msgstr "Nós descontaminamos com esporos." +msgstr "" #: src/mutation.cpp msgctxt "memorial_male" msgid "Destroyed a harmful invader." -msgstr "Destruiu um invasor prejudicial." +msgstr "" #: src/mutation.cpp msgctxt "memorial_female" msgid "Destroyed a harmful invader." -msgstr "Destruiu um invasor prejudicial." +msgstr "" #: src/mutation.cpp msgid "We must eliminate this contaminant at the earliest opportunity." -msgstr "Precisamos eliminar esse contaminante na primeira oportunidade." +msgstr "" #: src/mutation.cpp #, c-format @@ -201100,29 +181305,27 @@ msgstr "" #: src/mutation.cpp msgid " writhes in agony and collapses to the ground!" -msgstr " se contorce em agonia e desmorona no chão!" +msgstr "" #: src/mutation.cpp msgid "" "It was probably that marloss -- how did you know to call it \"marloss\" " "anyway?" msgstr "" -" Foi provavelmente esse marloss - como você sabia chamá-lo de 'marloss' de " -"qualquer maneira?" #: src/mutation.cpp msgid "Best to stay clear of that alien crap in future." -msgstr "Melhor ficar claro que a porcaria alienígena no futuro." +msgstr "" #: src/mutation.cpp msgctxt "memorial_male" msgid "Burned out a particularly nasty fungal infestation." -msgstr "Queimou uma infestação fúngica particularmente desagradável." +msgstr "" #: src/mutation.cpp msgctxt "memorial_female" msgid "Burned out a particularly nasty fungal infestation." -msgstr "Queimou uma infestação fúngica particularmente desagradável." +msgstr "" #: src/mutation.cpp #, c-format @@ -201133,70 +181336,66 @@ msgstr "" #: src/mutation.cpp msgctxt "memorial_male" msgid "Suffered a toxic marloss/mutagen reaction." -msgstr "Sofreu uma reação tóxica marloss / mutagen." +msgstr "" #: src/mutation.cpp msgctxt "memorial_female" msgid "Suffered a toxic marloss/mutagen reaction." -msgstr "Sofreu uma reação tóxica marloss / mutagen." +msgstr "" #: src/mutation.cpp msgid "Something strains mightily for a moment... and then... you're... FREE!" msgstr "" -" Algo tensa poderosamente por um momento ... e então ... você está ... " -"GRÁTIS!" #: src/mutation.cpp msgid "Your appetite for blood fades." -msgstr "Seu apetite por sangue desaparece." +msgstr "" #. ~NOPAIN is a post-Threshold trait, so you shouldn't #. ~legitimately have it and get here! #: src/mutation.cpp msgid "You feel extremely Bugged." -msgstr "Você se sente extremamente insatisfeito." +msgstr "" #: src/mutation.cpp msgid "You stagger with a piercing headache!" -msgstr "Você cambaleia com uma dor de cabeça penetrante!" +msgstr "" #: src/mutation.cpp msgid "Your head throbs with memories of your life, before all this..." -msgstr "Sua cabeça pulsa com memórias de sua vida, antes de tudo isso ..." +msgstr "" #: src/mutation.cpp msgid "Images of your past life flash before you." -msgstr "Imagens da sua vida passada piscam diante de você." +msgstr "" #: src/mutation_data.cpp msgctxt "memorial_male" msgid "Crossed a threshold" -msgstr "Cruzou um limiar" +msgstr "" #: src/mutation_data.cpp msgctxt "memorial_female" msgid "Crossed a threshold" -msgstr "Cruzou um limiar" +msgstr "" #: src/mutation_data.cpp msgid "Oh, yeah! That's the stuff!" -msgstr "Oh sim! Essa é a coisa!" +msgstr "" #: src/mutation_ui.cpp msgid "Reassigning." -msgstr "Reatribuição." +msgstr "" #: src/mutation_ui.cpp msgid "" "Select a mutation to reassign or press SPACE to " "cancel. " msgstr "" -" Selecione uma mutação para reatribuir ou pressione ESPAÇO " -" cancelar." #: src/mutation_ui.cpp msgid "Activating" -msgstr "Ativando" +msgstr "" #: src/mutation_ui.cpp #, c-format @@ -201205,7 +181404,7 @@ msgstr "" #: src/mutation_ui.cpp msgid "Examining" -msgstr "Examinando" +msgstr "" #: src/mutation_ui.cpp #, c-format @@ -201224,7 +181423,7 @@ msgstr "" #: src/mutation_ui.cpp msgid " MUTATIONS " -msgstr "MUTAÇÕES" +msgstr "" #: src/mutation_ui.cpp msgid "Passive:" @@ -201257,7 +181456,7 @@ msgstr "" #: src/mutation_ui.cpp msgid " - Active" -msgstr "- Ativo" +msgstr "" #: src/mutation_ui.cpp #, c-format @@ -201290,7 +181489,7 @@ msgstr "" #: src/name.cpp msgid "Tom" -msgstr "Tom" +msgstr "" #: src/newcharacter.cpp #, c-format @@ -201306,7 +181505,7 @@ msgstr "" #: src/newcharacter.cpp msgid "Freeform" -msgstr "Forma livre" +msgstr "" #: src/newcharacter.cpp src/player.cpp #, c-format @@ -201328,11 +181527,11 @@ msgstr "" #: src/newcharacter.cpp msgid "Last Character" -msgstr "Último personagem" +msgstr "" #: src/newcharacter.cpp msgid "POINTS" -msgstr "PONTOS" +msgstr "" #: src/newcharacter.cpp msgid "SCENARIO" @@ -201360,7 +181559,7 @@ msgstr "DESCRIÇÃO" #: src/newcharacter.cpp msgid "points" -msgstr "pontos" +msgstr "" #: src/newcharacter.cpp #, c-format @@ -201371,7 +181570,7 @@ msgstr "" #: src/newcharacter.cpp msgid "Multiple pools" -msgstr "Várias piscinas" +msgstr "" #: src/newcharacter.cpp msgid "" @@ -201379,21 +181578,18 @@ msgid "" "Putting stat points into traits and skills is allowed and putting trait points into skills is allowed.\n" "Scenarios and professions affect skill point pool" msgstr "" -" Stats, traits e skills têm pools de pontos separados. \n" -" Posicionar pontos de stat em traits e skills é permitido e colocar pontos de traits em skills é permitido. \n" -" Os cenários e profissões afetam o pool de pontos de habilidade\n" #: src/newcharacter.cpp msgid "Single pool" -msgstr "Piscina única" +msgstr "" #: src/newcharacter.cpp msgid "Stats, traits and skills share a single point pool." -msgstr "Estatísticas, traços e habilidades compartilham um único ponto." +msgstr "" #: src/newcharacter.cpp msgid "No point limits are enforced" -msgstr "Nenhum limite de pontos é imposto" +msgstr "" #: src/newcharacter.cpp msgid "Return to main menu?" @@ -201588,7 +181784,7 @@ msgstr "" #: src/newcharacter.cpp msgid "no filter" -msgstr "Sem filtro" +msgstr "" #. ~ 1s - profession name, 2d - current character points. #: src/newcharacter.cpp @@ -201700,7 +181896,7 @@ msgstr "Aperte %1$s para mudar para %2$s(masculino)." #: src/newcharacter.cpp msgid "Search by profession name." -msgstr "Pesquise por nome de profissão." +msgstr "" #: src/newcharacter.cpp #, c-format @@ -201743,7 +181939,7 @@ msgstr "" #: src/newcharacter.cpp msgid ", default:\n" -msgstr "padrão: \n" +msgstr "" #: src/newcharacter.cpp msgid "Scenario Location:" @@ -201751,55 +181947,55 @@ msgstr "Local do cenário:" #: src/newcharacter.cpp msgid "Scenario Flags:" -msgstr "Sinalizadores de Cenário:" +msgstr "" #: src/newcharacter.cpp msgid "Spring start" -msgstr "Começo da primavera" +msgstr "" #: src/newcharacter.cpp msgid "Summer start" -msgstr "Começo de verão" +msgstr "" #: src/newcharacter.cpp msgid "Autumn start" -msgstr "Início do outono" +msgstr "" #: src/newcharacter.cpp msgid "Winter start" -msgstr "Início do inverno" +msgstr "" #: src/newcharacter.cpp msgid "Next summer start" -msgstr "Começo do próximo verão" +msgstr "" #: src/newcharacter.cpp msgid "Infected player" -msgstr "Jogador infectado" +msgstr "" #: src/newcharacter.cpp msgid "Drunk and sick player" -msgstr "Jogador bêbado e doente" +msgstr "" #: src/newcharacter.cpp msgid "Fire nearby" -msgstr "Fogo nas proximidades" +msgstr "" #: src/newcharacter.cpp msgid "Zombies nearby" -msgstr "Zumbis próximos" +msgstr "" #: src/newcharacter.cpp msgid "Various limb wounds" -msgstr "Várias feridas nos membros" +msgstr "" #: src/newcharacter.cpp msgid "No starting NPC" -msgstr "Nenhum NPC inicial" +msgstr "" #: src/newcharacter.cpp msgid "Search by scenario name." -msgstr "Pesquise pelo nome do cenário." +msgstr "" #: src/newcharacter.cpp msgid "Name:" @@ -201882,14 +182078,10 @@ msgid "" "Too many trait points allocated, change some traits or lower some stats and " "try again." msgstr "" -" Muitos pontos de atributos atribuídos, alterar algumas características ou " -"diminuir algumas estatísticas e tentar novamente." #: src/newcharacter.cpp msgid "Too many stat points allocated, lower some stats and try again." msgstr "" -" Muitos pontos de estatísticas alocados, diminuem algumas estatísticas e " -"tentam novamente." #: src/newcharacter.cpp msgid "Remaining points will be discarded, are you sure you want to proceed?" @@ -201898,7 +182090,7 @@ msgstr "" #: src/newcharacter.cpp msgid "_______NO NAME ENTERED!_______" -msgstr "_______NO NAME INSERIDO! _______" +msgstr "" #: src/newcharacter.cpp msgid "Are you SURE you're finished? Your name will be randomly generated." @@ -201916,21 +182108,16 @@ msgstr "Nome da amostra:" #: src/newcharacter.cpp msgid "Keep in mind you may not use special characters like / in filenames" msgstr "" -" Tenha em mente que você não pode usar caracteres especiais como / em nomes " -"de arquivos" #: src/newcharacter.cpp msgid "" "Conversion of your filename to your native character set resulted in some " "unsafe characters, please try an alphanumeric filename instead" msgstr "" -" A conversão do seu nome de arquivo para o seu conjunto de caracteres nativo" -" resultou em alguns caracteres inseguros, tente um nome de arquivo " -"alfanumérico" #: src/newcharacter.cpp msgid "player template" -msgstr "modelo de jogador" +msgstr "" #: src/npc.cpp #, c-format @@ -202197,7 +182384,7 @@ msgstr "Esperando por você" #: src/npc.cpp msgid "Mugging you" -msgstr "Assaltando você" +msgstr "" #: src/npc.cpp msgid "Waiting for you to leave" @@ -202229,19 +182416,19 @@ msgstr "" #: src/npc.cpp msgid "Is trying to kill you." -msgstr "Está tentando te matar." +msgstr "" #: src/npc.cpp msgid "Is trying to flee from you." -msgstr "Está tentando fugir de você." +msgstr "" #: src/npc.cpp msgid "Is your friend." -msgstr "É seu amigo." +msgstr "" #: src/npc.cpp msgid "Is following you." -msgstr "Está a seguir-te." +msgstr "" #: src/npc.cpp msgid "Is guiding you." @@ -202249,15 +182436,15 @@ msgstr "" #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." -msgstr "Vai tentar te matar ou fugir de você se você se revelar." +msgstr "" #: src/npc.cpp msgid "Is neutral." -msgstr "É neutro." +msgstr "" #: src/npc.cpp msgid "Is still innocent and killing them will be considered murder." -msgstr "Ainda é inocente e matá-los será considerado assassinato." +msgstr "" #: src/npc.cpp msgid "He " @@ -202293,23 +182480,23 @@ msgstr "" #: src/npc.cpp msgid " gets angry!" -msgstr " fica com raiva!" +msgstr "" #: src/npc.cpp msgid " gets scared!" -msgstr " fica com medo!" +msgstr "" #: src/npc.cpp msgid " calms down." -msgstr " Acalme-se." +msgstr "" #: src/npc.cpp msgid " is no longer afraid." -msgstr " não tem mais medo." +msgstr "" #: src/npcmove.cpp msgid "" -msgstr "" +msgstr "" #: src/npcmove.cpp #, c-format @@ -202362,7 +182549,7 @@ msgstr "" #: src/npcmove.cpp src/output.h msgid " and " -msgstr "e" +msgstr "" #: src/npcmove.cpp #, c-format @@ -202452,19 +182639,19 @@ msgstr "" #: src/npcmove.cpp msgid "" -msgstr "" +msgstr "" #: src/npcmove.cpp msgid "I'm suffering from radiation sickness..." -msgstr "Estou sofrendo de doença da radiação ..." +msgstr "" #: src/npcmove.cpp msgid "" -msgstr "" +msgstr "" #: src/npcmove.cpp msgid "" -msgstr "" +msgstr "" #: src/npcmove.cpp #, c-format @@ -202478,15 +182665,15 @@ msgstr "" #: src/npctalk.cpp msgid "INTIMIDATE" -msgstr "INTIMIDAR" +msgstr "" #: src/npctalk.cpp msgid "LIE" -msgstr "MENTIRA" +msgstr "" #: src/npctalk.cpp msgid "PERSUADE" -msgstr "PERSUADIR" +msgstr "" #: src/npctalk.cpp msgid "Everyone" @@ -202580,11 +182767,11 @@ msgstr "" #: src/npctalk.cpp msgid "Yell" -msgstr "Grito" +msgstr "" #: src/npctalk.cpp msgid "Yell a sentence" -msgstr "Grite uma frase" +msgstr "" #: src/npctalk.cpp #, c-format @@ -202630,7 +182817,7 @@ msgstr "" #: src/npctalk.cpp msgid "Enter a sentence to yell" -msgstr "Digite uma frase para gritar" +msgstr "" #: src/npctalk.cpp msgid "Who should guard here?" @@ -202660,7 +182847,7 @@ msgstr "" #: src/npctalk.cpp msgid "Stay awake!" -msgstr "Fique acordado!" +msgstr "" #: src/npctalk.cpp msgid "" @@ -202703,7 +182890,7 @@ msgstr "" #: src/npctalk.cpp msgid "&You are deaf and can't talk." -msgstr "Você é surdo e não pode falar." +msgstr "" #: src/npctalk.cpp #, c-format @@ -202720,27 +182907,27 @@ msgstr "" #: src/npctalk.cpp msgid " And I have more I'd like you to do." -msgstr "E eu tenho mais que eu gostaria que você fizesse." +msgstr "" #: src/npctalk.cpp msgid " I could use a hand with something else if you are interested." -msgstr "Eu poderia usar uma mão com outra coisa se você estiver interessado." +msgstr "" #: src/npctalk.cpp msgid " If you are interested, I have another job for you." -msgstr "Se você estiver interessado, eu tenho outro trabalho para você." +msgstr "" #: src/npctalk.cpp msgid "Shall we resume?" -msgstr "Vamos retomar?" +msgstr "" #: src/npctalk.cpp msgid "Sorry, but it doesn't seem I have anything to teach you." -msgstr "Desculpe, mas parece que não tenho nada para te ensinar." +msgstr "" #: src/npctalk.cpp msgid "Here's what I can teach you..." -msgstr "Aqui está o que eu posso te ensinar ..." +msgstr "" #: src/npctalk.cpp #, c-format @@ -202760,19 +182947,19 @@ msgstr "" #: src/npctalk.cpp msgid "I run the shop here." -msgstr "Eu corro a loja aqui." +msgstr "" #: src/npctalk.cpp msgid "I'm guarding this location." -msgstr "Eu estou guardando esse local." +msgstr "" #: src/npctalk.cpp msgid "&You yell, but can't hear yourself." -msgstr "Você grita, mas não consegue ouvir a si mesmo." +msgstr "" #: src/npctalk.cpp msgid "&You yell." -msgstr "E você grita." +msgstr "" #: src/npctalk.cpp #, c-format @@ -202800,59 +182987,51 @@ msgstr "Morto de sono" #: src/npctalk.cpp msgid "Not tired" -msgstr "Não cansado" +msgstr "" #: src/npctalk.cpp msgid ". Will need sleep in " -msgstr ". Vai precisar dormir em" +msgstr "" #: src/npctalk.cpp msgid "" "\n" "Will need water in " msgstr "" -"\n" -"Vai precisar de água em" #: src/npctalk.cpp msgid "" "\n" "Thirsty" msgstr "" -"\n" -"Estilo" #: src/npctalk.cpp msgid "" "\n" "Will need food in " msgstr "" -"\n" -"Vai precisar de comida em" #: src/npctalk.cpp msgid "" "\n" "Hungry" msgstr "" -"\n" -"Hungry" #: src/npctalk.cpp msgid "YES, MASTER!" -msgstr "SIM MESTRE!" +msgstr "" #: src/npctalk.cpp msgid "Tell me about it." -msgstr "Me fale sobre isso." +msgstr "" #: src/npctalk.cpp msgid "I have news." -msgstr "Eu tenho notícias." +msgstr "" #: src/npctalk.cpp msgid "Yes, let's resume training " -msgstr "Sim, vamos retomar o treinamento" +msgstr "" #. ~Martial art style (cost in dollars) #: src/npctalk.cpp @@ -202873,15 +183052,15 @@ msgstr "" #: src/npctalk.cpp msgid "Okay, thanks." -msgstr "Ok, obrigada." +msgstr "" #: src/npctalk.cpp msgid "Let's keep moving." -msgstr "Vamos continuar andando." +msgstr "" #: src/npctalk.cpp msgid "OBEY ME!" -msgstr "ME OBEDEÇA!" +msgstr "" #: src/npctalk.cpp src/player.cpp msgid "fists" @@ -202889,22 +183068,22 @@ msgstr "punhos" #: src/npctalk.cpp msgid "BADAMMO" -msgstr "POR FAVOR" +msgstr "" #: src/npctalk.cpp msgctxt "punctuation" msgid "." -msgstr "." +msgstr "" #: src/npctalk.cpp msgctxt "punctuation" msgid "..." -msgstr "..." +msgstr "" #: src/npctalk.cpp msgctxt "punctuation" msgid "!" -msgstr "!" +msgstr "" #: src/npctalk.cpp msgctxt "npc" @@ -202946,7 +183125,7 @@ msgstr "" #: src/npctalk.cpp msgid "You'll be helpless! Proceed?" -msgstr "Você ficará desamparado! Prosseguir?" +msgstr "" #: src/npctalk.cpp #, c-format @@ -202996,11 +183175,11 @@ msgstr "" #: src/npctalk.cpp msgid "I don't trust you enough to eat THIS..." -msgstr "Eu não confie em você o suficiente para comer isso ..." +msgstr "" #: src/npctalk.cpp msgid "It doesn't look like a good idea to consume this..." -msgstr "Não parece uma boa ideia consumir isso ..." +msgstr "" #: src/npctalk.cpp #, c-format @@ -203009,35 +183188,35 @@ msgstr "" #: src/npctalk.cpp msgid "It doesn't look like a good idea to consume this.." -msgstr "Não parece uma boa ideia consumir isso" +msgstr "" #: src/npctalk.cpp msgid "Offer what?" -msgstr "Oferecer o que?" +msgstr "" #: src/npctalk.cpp msgid "You have no items to offer." -msgstr "Você não tem items a oferecer." +msgstr "" #: src/npctalk.cpp msgid "Changed your mind?" -msgstr "Mudou de ideia?" +msgstr "" #: src/npctalk.cpp msgid "How?" -msgstr "Como?" +msgstr "" #: src/npctalk.cpp msgid "Are you insane!?" -msgstr "Você está louco!?" +msgstr "" #: src/npctalk.cpp msgid "Here we go..." -msgstr "Lá vamos nós..." +msgstr "" #: src/npctalk.cpp msgid "My current weapon is better than this." -msgstr "Minha arma atual é melhor que isso." +msgstr "" #: src/npctalk.cpp #, c-format @@ -203046,11 +183225,11 @@ msgstr "" #: src/npctalk.cpp msgid "It's too encumbering to wear." -msgstr "muito amontoado para vestir" +msgstr "" #: src/npctalk.cpp msgid "I have no space to store it." -msgstr "Não tenho espaço para armazená-lo." +msgstr "" #: src/npctalk.cpp #, c-format @@ -203059,19 +183238,19 @@ msgstr "" #: src/npctalk.cpp msgid "...or to store anything else for that matter." -msgstr "... ou para guardar qualquer outra coisa para esse assunto." +msgstr "" #: src/npctalk.cpp msgid "It is too heavy for me to carry." -msgstr "É muito pesado para eu carregar." +msgstr "" #: src/npctalk_funcs.cpp msgid "Reward" -msgstr "Recompensa" +msgstr "" #: src/npctalk_funcs.cpp msgid "Trade" -msgstr "Troca" +msgstr "" #: src/npctalk_funcs.cpp msgid "Select a destination" @@ -203137,27 +183316,27 @@ msgstr "" #: src/npctalk_funcs.cpp msgid "You have no bionics to install!" -msgstr "Você não tem biônica para instalar!" +msgstr "" #: src/npctalk_funcs.cpp msgid "Which bionic do you wish to have installed?" -msgstr "Qual biônico você deseja instalar?" +msgstr "" #: src/npctalk_funcs.cpp msgid "You decide to hold off..." -msgstr "Você decide adiar ..." +msgstr "" #: src/npctalk_funcs.cpp msgid "You can't afford the procedure..." -msgstr "Você não pode pagar o procedimento ..." +msgstr "" #: src/npctalk_funcs.cpp msgid "You don't have any bionics installed..." -msgstr "Você não tem nenhuma biônica instalada ..." +msgstr "" #: src/npctalk_funcs.cpp msgid "Which bionic do you wish to uninstall?" -msgstr "Qual biônico você deseja desinstalar?" +msgstr "" #: src/npctalk_funcs.cpp #, c-format @@ -203249,11 +183428,11 @@ msgstr "" #: src/npctalk_funcs.cpp msgid "Pay:" -msgstr "Pagar:" +msgstr "" #: src/npctalk_funcs.cpp msgid "Select a follower" -msgstr "Selecione um seguidor" +msgstr "" #: src/npctalk_funcs.cpp #, c-format @@ -203267,7 +183446,7 @@ msgstr "" #: src/npctrade.cpp msgid "Exchange" -msgstr "Troca" +msgstr "" #: src/npctrade.cpp #, c-format @@ -203291,15 +183470,15 @@ msgstr "" #: src/npctrade.cpp msgid "< Back" -msgstr "<Voltar" +msgstr "" #: src/npctrade.cpp msgid "More >" -msgstr "Mais>" +msgstr "" #: src/npctrade.cpp msgid "Examine which item?" -msgstr "Examine qual item?" +msgstr "" #: src/npctrade.cpp #, c-format @@ -203417,8 +183596,6 @@ msgstr "Auto coleta ligada" msgid "" "Enable item auto pickup. Change pickup rules with the Auto Pickup Manager." msgstr "" -" Ativar a coleta automática de itens. Altere as regras de coleta com o " -"Gerenciador de recebimento automático." #: src/options.cpp msgid "Auto pickup adjacent" @@ -203430,13 +183607,10 @@ msgid "" " assign No Auto Pickup zones with the Zones Manager 'Y' key for e.g. your " "homebase." msgstr "" -" Se for verdade, irá permitir pegar itens em um ladrilho ao redor do " -"jogador. Você pode atribuir zonas de não captura automática com a tecla " -"'Y' do Zones Manager para, por exemplo, sua base de hospedagem." #: src/options.cpp msgid "Auto pickup weight limit" -msgstr "Limite de peso de pickup automático" +msgstr "" #: src/options.cpp msgid "" @@ -203449,7 +183623,7 @@ msgstr "" #: src/options.cpp msgid "Auto pickup volume limit" -msgstr "Limite de volume de pickup automático" +msgstr "" #: src/options.cpp msgid "" @@ -203474,31 +183648,27 @@ msgstr "" #: src/options.cpp msgid "List items within no auto pickup zones" -msgstr "Listar itens dentro de zonas de captura não automáticas" +msgstr "" #: src/options.cpp msgid "" "If false, you will not see messages about items, you step on, within no auto" " pickup zones." msgstr "" -" Se for falso, você não verá mensagens sobre itens, você pisa em nenhuma " -"zona de captura automática." #: src/options.cpp msgid "Additional auto features" -msgstr "Recursos automáticos adicionais" +msgstr "" #: src/options.cpp msgid "" "If true, enables configured auto features below. Disabled as long as any " "enemy monster is seen." msgstr "" -" Se verdadeiro, ativa os recursos automáticos configurados abaixo. " -"Desativado, desde que qualquer monstro inimigo seja visto." #: src/options.cpp msgid "Auto pulp or butcher" -msgstr "Auto polpa ou açougueiro" +msgstr "" #: src/options.cpp msgid "" @@ -203506,27 +183676,23 @@ msgid "" "corpses you stand on. - Pulp Adjacent: Also pulp corpses adjacent from you." " - Butcher: Butcher corpses you stand on." msgstr "" -" Ação a ser executada quando 'Auto Pulp ou Açougueiro' estiver " -"ativado. Polpa: Cadáveres de celulose em que você está. - Polpa Adjacente: " -"também corpos de celulose adjacentes a você. - Açougueiro: Cadáveres de " -"açougueiro em que você está." #: src/options.cpp msgctxt "options" msgid "Disabled" -msgstr "Desativado" +msgstr "" #: src/options.cpp msgid "Pulp" -msgstr "Polpa" +msgstr "" #: src/options.cpp msgid "Pulp Adjacent" -msgstr "Polpa Adjacente" +msgstr "" #: src/options.cpp msgid "Auto mining" -msgstr "Auto mineração" +msgstr "" #: src/options.cpp msgid "" @@ -203538,7 +183704,7 @@ msgstr "" #: src/options.cpp msgid "Auto foraging" -msgstr "Forrageamento automático" +msgstr "" #: src/options.cpp msgid "" @@ -203549,7 +183715,7 @@ msgstr "" #: src/options.cpp msgid "Bushes" -msgstr "Arbustos" +msgstr "" #: src/options.cpp msgid "Everything" @@ -203557,7 +183723,7 @@ msgstr "" #: src/options.cpp msgid "Trees" -msgstr "Árvores" +msgstr "" #: src/options.cpp msgid "Dangerous pickups" @@ -203573,7 +183739,7 @@ msgstr "" #: src/options.cpp msgid "Safe mode" -msgstr "Modo de segurança" +msgstr "" #: src/options.cpp msgid "" @@ -203585,20 +183751,17 @@ msgstr "" #: src/options.cpp msgid "Safe mode proximity distance" -msgstr "Distância de proximidade do modo de segurança" +msgstr "" #: src/options.cpp msgid "" "If safe mode is enabled, distance to hostiles at which safe mode should show" " a warning. 0 = Max player view distance." msgstr "" -" Se o modo de segurança estiver ativado, a distância até os hostis em que " -"modo de segurança deve mostrar um aviso. 0 = Distância máxima de " -"visualização do jogador." #: src/options.cpp msgid "Safe mode when driving" -msgstr "Modo de segurança ao dirigir" +msgstr "" #: src/options.cpp msgid "" @@ -203610,42 +183773,33 @@ msgstr "" #: src/options.cpp msgid "Auto reactivate safe mode" -msgstr "Auto reativar o modo de segurança" +msgstr "" #: src/options.cpp msgid "" "If true, safe mode will automatically reactivate after a certain number of " "turns. See option 'Turns to auto reactivate safe mode.'" msgstr "" -" Se for verdade, o modo de segurança será reativado automaticamente após um " -"certo número de voltas. Veja a opção 'Vira para o modo de reativação " -"automática de segurança'." #: src/options.cpp msgid "Turns to auto reactivate safe mode" -msgstr "Vira para o modo de reativação automática de segurança" +msgstr "" #: src/options.cpp msgid "" "Number of turns after which safe mode is reactivated. Will only reactivate " "if no hostiles are in 'Safe mode proximity distance.'" msgstr "" -" Número de voltas após o qual o modo de segurança é reativado. Só será " -"reativado se não houver hostis na 'Distância de proximidade do modo de " -"segurança'." #: src/options.cpp msgid "Turns to remember ignored monsters" -msgstr "Vira-se para lembrar monstros ignorados" +msgstr "" #: src/options.cpp msgid "" "Number of turns an ignored monster stays ignored after it is no longer seen." " 0 disables this option and monsters are permanently ignored." msgstr "" -" Número de voltas que um monstro ignorado permanece ignorado depois que ele " -"não é mais visto. 0 desativa esta opção e os monstros são permanentemente " -"ignorados." #: src/options.cpp msgid "Realtime turn progression" @@ -203663,7 +183817,7 @@ msgstr "" #: src/options.cpp msgid "Autosave" -msgstr "Salvamento automático" +msgstr "" #: src/options.cpp msgid "" @@ -203773,11 +183927,11 @@ msgstr "Nunca" #: src/options.cpp msgid "Sound Enabled" -msgstr "Som ativado" +msgstr "" #: src/options.cpp msgid "If true, music and sound are enabled." -msgstr "Se for verdade, a música e o som estão ativados." +msgstr "" #: src/options.cpp msgid "Choose soundpack" @@ -203789,7 +183943,7 @@ msgstr "" #: src/options.cpp msgid "Music volume" -msgstr "Volume da música" +msgstr "" #: src/options.cpp msgid "Adjust the volume of the music being played in the background." @@ -203797,7 +183951,7 @@ msgstr "Ajustar o volume da música tocando ao fundo." #: src/options.cpp msgid "Sound effect volume" -msgstr "Volume de efeito sonoro" +msgstr "" #: src/options.cpp msgid "Adjust the volume of sound effects being played by the game." @@ -203829,7 +183983,7 @@ msgstr "Unidades de temperatura" #: src/options.cpp msgid "Switch between Celsius, Fahrenheit and Kelvin." -msgstr "Alterne entre Celsius, Fahrenheit e Kelvin." +msgstr "" #: src/options.cpp msgid "Celsius" @@ -203841,7 +183995,7 @@ msgstr "Fahrenheit" #: src/options.cpp msgid "Kelvin" -msgstr "Kelvin" +msgstr "" #: src/options.cpp msgid "Speed units" @@ -203849,11 +184003,11 @@ msgstr "Unidades de velocidade" #: src/options.cpp msgid "Switch between mph, km/h and tiles/turn." -msgstr "Alterne entre mph, km / he telhas / turno." +msgstr "" #: src/options.cpp msgid "tiles/turn" -msgstr "telhas / por sua vez" +msgstr "" #: src/options.cpp msgid "Mass units" @@ -203869,7 +184023,7 @@ msgstr "Unidades de volume" #: src/options.cpp msgid "Switch between the Cup ( c ), Liter ( L ) or Quart ( qt )." -msgstr "Alterne entre a Copa (c), Litro (L) ou Quart (qt)." +msgstr "" #: src/options.cpp msgid "Cup" @@ -203892,8 +184046,6 @@ msgid "" "12h: AM/PM, e.g. 7:31 AM - Military: 24h Military, e.g. 0731 - 24h: Normal " "24h, e.g. 7:31" msgstr "" -" 12h: AM / PM, por exemplo, 7:31 AM - Militar: 24h Militar, por exemplo, " -"0731 - 24h: Normal 24h, por exemplo, 7:31" #. ~ 12h time, e.g. 11:59pm #: src/options.cpp @@ -203954,12 +184106,11 @@ msgstr "" #: src/options.cpp msgid "Open default advanced inventory layout" -msgstr "Abrir layout de inventário avançado padrão" +msgstr "" #: src/options.cpp msgid "Open default advanced inventory layout instead of last opened layout" msgstr "" -" Abrir layout de inventário avançado padrão em vez do último layout aberto" #: src/options.cpp msgid "Display actions in Use Item menu" @@ -203970,12 +184121,10 @@ msgid "" "If true, actions ( like \"Read\", \"Smoke\", \"Wrap tighter\" ) will be " "displayed next to the corresponding items." msgstr "" -" Se for verdade, as ações (como \\ 'Read \\', \\ 'Smoke \\', \\ 'Wrap " -"tighter \\') serão exibidas ao lado dos itens correspondentes." #: src/options.cpp msgid "Diagonal movement with cursor keys and modifiers" -msgstr "Movimento diagonal com teclas de cursor e modificadores" +msgstr "" #: src/options.cpp msgid "" @@ -204024,9 +184173,6 @@ msgid "" "crosshair ( in tiles version ) at distance 10 from the center will display " "its current facing." msgstr "" -" Se for verdade, ao controlar um veículo, um 'X' branco (na versão " -"curses) ou uma cruz (na versão tiles) à distância 10 do centro exibirá sua " -"face atual." #: src/options.cpp msgid "Reverse steering direction in reverse" @@ -204067,11 +184213,11 @@ msgstr "" #: src/options.cpp msgid "Message log flow" -msgstr "Fluxo do log de mensagens" +msgstr "" #: src/options.cpp msgid "Where new log messages should show." -msgstr "Onde novas mensagens de log devem aparecer." +msgstr "" #: src/options.cpp msgid "Bottom" @@ -204135,20 +184281,20 @@ msgstr "Números" #: src/options.cpp msgid "Morale style" -msgstr "Estilo moral" +msgstr "" #: src/options.cpp msgid "Morale display style in sidebar." -msgstr "Estilo de exibição de moral na barra lateral." +msgstr "" #: src/options.cpp msgid "Horizontal" -msgstr "Horizontal" +msgstr "" #. ~ aim bar style - bars or numbers #: src/options.cpp msgid "Vertical" -msgstr "Vertical" +msgstr "" #: src/options.cpp msgid "Move view offset" @@ -204213,7 +184359,7 @@ msgstr "" #: src/options.cpp msgid "Disabled" -msgstr "Desativado" +msgstr "" #: src/options.cpp msgid "Enabled" @@ -204246,7 +184392,7 @@ msgstr "" #: src/options.cpp msgid "Enable joystick" -msgstr "Ativar joystick" +msgstr "" #: src/options.cpp msgid "Enable input from joystick." @@ -204333,12 +184479,11 @@ msgstr "" #: src/options.cpp msgid "SCT with Unicode font" -msgstr "SCT com fonte Unicode" +msgstr "" #: src/options.cpp msgid "If true, will display scrolling combat text with Unicode font." msgstr "" -" Se for verdade, exibirá o texto de combate de rolagem com a fonte Unicode." #: src/options.cpp msgid "Animation delay" @@ -204483,7 +184628,7 @@ msgstr "Escolha o tileset que você quer usar." #: src/options.cpp msgid "Pixel minimap" -msgstr "Minimapa de pixel" +msgstr "" #: src/options.cpp msgid "" @@ -204497,35 +184642,35 @@ msgstr "" #: src/options.cpp msgid "Pixel minimap drawing mode" -msgstr "Modo de desenho de minimapa de pixel" +msgstr "" #: src/options.cpp msgid "Specified the mode in which the minimap drawn." -msgstr "Especificou o modo em que o minimapa foi desenhado." +msgstr "" #: src/options.cpp msgid "Solid" -msgstr "Sólido" +msgstr "" #: src/options.cpp msgid "Squares" -msgstr "Praças" +msgstr "" #: src/options.cpp msgid "Dots" -msgstr "Pontos" +msgstr "" #: src/options.cpp msgid "Pixel minimap brightness" -msgstr "Brilho do minimap do pixel" +msgstr "" #: src/options.cpp msgid "Overall brightness of pixel-detail minimap." -msgstr "Brilho total do minimapa de detalhe de pixel." +msgstr "" #: src/options.cpp msgid "Pixel minimap height" -msgstr "Altura mínima do pixel" +msgstr "" #: src/options.cpp msgid "" @@ -204537,7 +184682,7 @@ msgstr "" #: src/options.cpp msgid "Maintain pixel minimap aspect ratio" -msgstr "Manter a proporção de pixel do minimapa" +msgstr "" #: src/options.cpp msgid "Preserves the square shape of tiles shown on the pixel minimap." @@ -204580,11 +184725,11 @@ msgstr "Janela sem bordas" #: src/options.cpp msgid "Renderer" -msgstr "Renderizador" +msgstr "" #: src/options.cpp msgid "Set which renderer to use. Requires restart." -msgstr "Definir qual renderizador usar. Requer reinicialização." +msgstr "" #: src/options.cpp msgid "Software rendering" @@ -204595,32 +184740,26 @@ msgid "" "Use software renderer instead of graphics card acceleration. Requires " "restart." msgstr "" -" Use o renderizador de software em vez da aceleração da placa gráfica. " -"Requer reinicialização." #: src/options.cpp msgid "Software framebuffer acceleration" -msgstr "Aceleração do framebuffer de software" +msgstr "" #: src/options.cpp msgid "" "Use hardware acceleration for the framebuffer when using software rendering." " Requires restart." msgstr "" -" Use a aceleração de hardware para o framebuffer ao usar a renderização de " -"software. Requer reinicialização." #: src/options.cpp msgid "Use color modulated textures" -msgstr "Use texturas moduladas em cores" +msgstr "" #: src/options.cpp msgid "" "If true, tries to use color modulated textures to speed-up ASCII drawing. " "Requires restart." msgstr "" -" Se for verdade, tenta usar texturas moduladas em cores para acelerar o " -"desenho ASCII. Requer reinicialização." #: src/options.cpp msgid "Scaling mode" @@ -204632,10 +184771,6 @@ msgid "" "resolution, 'nearest' uses low-quality but fast scaling, and 'linear' " "provides high-quality scaling." msgstr "" -" Define o modo de escala, 'nenhum' (padrão) é exibido na resolução " -"nativa do jogo, 'mais próximo' usa dimensionamento de baixa " -"qualidade, mas rápido, e 'linear' fornece dimensionamento de alta " -"qualidade." #. ~ Do not scale the game image to the window size. #: src/options.cpp @@ -204771,7 +184906,7 @@ msgstr "Desligado" #: src/options.cpp msgid "Experimental 3D field of vision" -msgstr "Campo de visão 3D experimental" +msgstr "" #: src/options.cpp msgid "" @@ -204807,23 +184942,23 @@ msgstr "Controla quais migrações são aplicadas para mundos legados" #: src/options.cpp msgid "World end handling" -msgstr "Manipulação final mundial" +msgstr "" #: src/options.cpp msgid "Handling of game world when last character dies." -msgstr "Lidando de mundo de jogo quando último caráter morre." +msgstr "" #: src/options.cpp msgid "Keep" -msgstr "Manter" +msgstr "" #: src/options.cpp msgid "Reset" -msgstr "Restabelecer" +msgstr "" #: src/options.cpp msgid "Delete" -msgstr "Excluir" +msgstr "" #: src/options.cpp msgid "Query" @@ -204838,8 +184973,6 @@ msgid "" "A number determining how large cities are. 0 disables cities, roads and any" " scenario requiring a city start." msgstr "" -" Um número que determina como são as grandes cidades. 0 desativa cidades, " -"estradas e qualquer cenário que exija o início da cidade." #: src/options.cpp msgid "City spacing" @@ -204863,15 +184996,13 @@ msgstr "Um fator de escala que determina a densidade dos spawns dos monstros." #: src/options.cpp msgid "Carrion spawn rate scaling factor" -msgstr "Fator de escala da taxa de desova de Carniça" +msgstr "" #: src/options.cpp msgid "" "A scaling factor that determines how often creatures spawn from rotting " "material." msgstr "" -" Um fator de escala que determina quantas vezes as criaturas geram material " -"em decomposição." #: src/options.cpp msgid "Item spawn scaling factor" @@ -204929,7 +185060,7 @@ msgstr "Região padrão" #: src/options.cpp msgid "( WIP feature ) Determines terrain, shops, plants, and more." -msgstr "(Recurso WIP) Determina o terreno, lojas, plantas e muito mais." +msgstr "" #: src/options.cpp msgid "Initial time" @@ -204971,9 +185102,6 @@ msgid "" "seasons scales with this value, so adjusting it may cause nonsensical " "results." msgstr "" -" Duração da temporada, em dias. Aviso: Muito pouco além da duração das " -"temporadas é escalonado com este valor, portanto, ajustá-lo pode causar " -"resultados absurdos." #: src/options.cpp msgid "Construction scaling" @@ -205024,37 +185152,34 @@ msgstr "" #: src/options.cpp msgid "Static NPCs" -msgstr "NPCs estáticos" +msgstr "" #: src/options.cpp msgid "" "If true, static NPCs will spawn at pre-defined locations. Requires world " "reset." msgstr "" -" Se for verdade, os NPCs estáticos aparecerão em locais predefinidos. Requer" -" reinicialização mundial." #: src/options.cpp msgid "Starting NPCs spawn" -msgstr "Iniciando NPCs spawn" +msgstr "" #: src/options.cpp msgid "" "Determines whether starting NPCs should spawn, and if they do, how exactly." msgstr "" -" Determina se os NPCs iniciados devem aparecer e, se forem, exatamente como." #: src/options.cpp msgid "Scenario-based" -msgstr "Baseado em cenário" +msgstr "" #: src/options.cpp msgid "Random NPCs" -msgstr "NPCs Aleatórios" +msgstr "" #: src/options.cpp msgid "If true, the game will randomly spawn NPCs during gameplay." -msgstr "Se for verdade, o jogo gerará aleatoriamente NPCs durante o jogo." +msgstr "" #: src/options.cpp msgid "Mutations by radiation" @@ -205088,19 +185213,19 @@ msgstr "" #: src/options.cpp msgid "Character point pools" -msgstr "Conjuntos de pontos de personagem" +msgstr "" #: src/options.cpp msgid "Allowed point pools for character generation." -msgstr "Conjuntos de pontos permitidos para geração de caracteres." +msgstr "" #: src/options.cpp msgid "Multi-pool only" -msgstr "Apenas multi-pool" +msgstr "" #: src/options.cpp msgid "No freeform" -msgstr "Sem forma livre" +msgstr "" #: src/options.cpp msgid "Quicksave on app lose focus" @@ -205151,8 +185276,6 @@ msgid "" "If non-zero, vibrate the device for this long on input, in milliseconds. " "Ignored if hardware keyboard connected." msgstr "" -" Se não for zero, vibre o dispositivo para essa entrada longa, em " -"milissegundos. Ignorado se o teclado de hardware estiver conectado." #: src/options.cpp msgid "Show virtual joystick" @@ -205275,9 +185398,6 @@ msgid "" "joystick. Helps keep the view uncluttered while traveling long distances and" " navigating menus." msgstr "" -" Se for verdade, oculta atalhos de teclado na tela ao usar o joystick " -"virtual. Ajuda a manter a exibição desobstruída ao percorrer longas " -"distâncias e navegar pelos menus." #: src/options.cpp msgid "Default gameplay shortcuts" @@ -205615,7 +185735,7 @@ msgstr "opções" #: src/output.cpp msgid "Press any key for more..." -msgstr "Pressione qualquer tecla para mais ..." +msgstr "" #: src/output.cpp #, c-format @@ -205631,18 +185751,15 @@ msgstr "%s" #: src/output.cpp msgid "Type part of an item's name to filter it." -msgstr "Digite parte do nome de um item para filtrá-lo." +msgstr "" #: src/output.cpp msgid "Type part of an item's name to move nearby items to the bottom." msgstr "" -" Digite parte do nome de um item para mover os itens próximos para a parte " -"inferior." #: src/output.cpp msgid "Type part of an item's name to move nearby items to the top." msgstr "" -"Digite parte do nome de um item para mover itens próximos para o topo." #: src/output.cpp msgid "Separate multiple items with ," @@ -205656,31 +185773,29 @@ msgstr "Exemplo: " #: src/output.cpp msgid "To exclude items, place - in front." -msgstr "Para excluir itens, coloque - na frente." +msgstr "" #. ~ An example of how to exclude items with - when filtering items. #: src/output.cpp msgid "Example: -pipe,-chunk,-steel" -msgstr "Exemplo: -pipe, -chunk, -steel" +msgstr "" #: src/output.cpp msgid "Search [c]ategory, [m]aterial, [q]uality or [d]isassembled components:" msgstr "" -" Pesquisa [c] ategory, [m] aterial, [q] uality ou [d] és componentes " -"montados:" #. ~ An example of how to filter items based on category or material. #: src/output.cpp msgid "Examples: c:food,m:iron,q:hammering,d:pipe" -msgstr "Exemplos: c:comida, m:ferro, q:martelando, d:tubo" +msgstr "" #: src/output.cpp msgid "unknown" -msgstr "desconhecido" +msgstr "" #: src/output.cpp msgid "bright" -msgstr "brilhante" +msgstr "" #: src/output.cpp msgid "cloudy" @@ -205700,15 +185815,15 @@ msgstr "muito escuro" #: src/output.h msgid ", " -msgstr "," +msgstr "" #: src/output.h msgid ", and " -msgstr "e" +msgstr "" #: src/output.h msgid ", or " -msgstr "ou" +msgstr "" #: src/output.h #, c-format @@ -205717,15 +185832,13 @@ msgstr "" #: src/overmap.cpp msgid "invalid" -msgstr "inválido" +msgstr "" #: src/overmap.cpp msgid "" "Unable to place all configured specials, some missions may fail to " "initialize." msgstr "" -" Não é possível colocar todos os especiais configurados, algumas missões " -"podem falhar ao inicializar." #: src/overmap.cpp #, c-format @@ -205842,19 +185955,19 @@ msgstr "Códigos de cor:" #: src/overmap_ui.cpp msgid "Type GLYPH:TEXT to set a custom glyph." -msgstr "Digite GLYPH: TEXT para definir um glifo personalizado." +msgstr "" #: src/overmap_ui.cpp msgid "Type COLOR;TEXT to set a custom color." -msgstr "Digite COLOR; TEXT para definir uma cor personalizada." +msgstr "" #: src/overmap_ui.cpp msgid "Examples: B:Base | g;Loot | !:R;Minefield" -msgstr "Exemplos: B: Base | g; Saque | !: R; campo minado" +msgstr "" #: src/overmap_ui.cpp msgid "Note:" -msgstr "Nota:" +msgstr "" #: src/overmap_ui.cpp msgid "Search term:" @@ -205862,11 +185975,11 @@ msgstr "Buscar termo:" #: src/overmap_ui.cpp msgid "Multiple entries separated with , Excludes starting with -" -msgstr "Múltiplas entradas separadas por, Exclui começando com -" +msgstr "" #: src/overmap_ui.cpp msgid "No results found." -msgstr "Nenhum resultado encontrado." +msgstr "" #: src/overmap_ui.cpp msgid "Next target" @@ -205878,11 +185991,11 @@ msgstr "Alvo anterior" #: src/overmap_ui.cpp msgid "Result(s):" -msgstr "Resultados):" +msgstr "" #: src/overmap_ui.cpp msgid "Direction:" -msgstr "Direção:" +msgstr "" #: src/overmap_ui.cpp msgid "'<-' '->' Cycle targets." @@ -205898,19 +186011,19 @@ msgstr "q ou ESC para voltar." #: src/overmap_ui.cpp msgid "Select terrain to place:" -msgstr "Selecione o terreno para colocar:" +msgstr "" #: src/overmap_ui.cpp msgid "Select special to place:" -msgstr "Selecione especial para colocar:" +msgstr "" #: src/overmap_ui.cpp msgid "Place overmap terrain:" -msgstr "Coloque o terreno do mapa superior:" +msgstr "" #: src/overmap_ui.cpp msgid "Place overmap special:" -msgstr "Coloque o mapa especial:" +msgstr "" #: src/overmap_ui.cpp #, c-format @@ -205919,27 +186032,27 @@ msgstr "" #: src/overmap_ui.cpp msgid "(fixed)" -msgstr "(fixo)" +msgstr "" #: src/overmap_ui.cpp msgid "Areas highlighted in red" -msgstr "Áreas destacadas em vermelho" +msgstr "" #: src/overmap_ui.cpp msgid "already have map content" -msgstr "já tem o conteúdo do mapa" +msgstr "" #: src/overmap_ui.cpp msgid "generated. Their overmap" -msgstr "gerado. Seu mapa" +msgstr "" #: src/overmap_ui.cpp msgid "id will change, but not" -msgstr "id vai mudar, mas não" +msgstr "" #: src/overmap_ui.cpp msgid "their contents." -msgstr "seu conteúdo." +msgstr "" #: src/overmap_ui.cpp #, c-format @@ -205953,7 +186066,7 @@ msgstr "" #: src/overmap_ui.cpp msgid "[ESCAPE/Q] Cancel" -msgstr "[ESCAPE / Q] Cancelar" +msgstr "" #: src/overmap_ui.cpp msgid "Travel to this point?" @@ -206163,7 +186276,7 @@ msgstr "" #: src/panels.cpp msgid "Time: ???" -msgstr "Tempo: ???" +msgstr "" #: src/panels.cpp msgid "Moon" @@ -206196,17 +186309,17 @@ msgstr "" #: src/panels.cpp msgctxt "movement-type" msgid "W" -msgstr "o" +msgstr "" #: src/panels.cpp msgctxt "movement-type" msgid "R" -msgstr "R" +msgstr "" #: src/panels.cpp msgctxt "movement-type" msgid "C" -msgstr "[Partes do Veículo] C" +msgstr "" #: src/panels.cpp msgid "Str :" @@ -206347,7 +186460,7 @@ msgstr "" #: src/panels.cpp msgid "Weather :" -msgstr "Clima :" +msgstr "" #: src/panels.cpp msgid "Moon :" @@ -206488,17 +186601,17 @@ msgstr "" #: src/pickup.cpp #, c-format msgid "Dispose of %s and wield %s" -msgstr "Descartar %s e empunhar %s" +msgstr "" #: src/pickup.cpp #, c-format msgid "Wield %s" -msgstr "Empunhar %s" +msgstr "" #: src/pickup.cpp #, c-format msgid "Wear %s" -msgstr "Vestir %s" +msgstr "" #: src/pickup.cpp #, c-format @@ -206546,11 +186659,11 @@ msgstr "Pegar objetos no chão" #: src/pickup.cpp msgid "Next page" -msgstr "Próxima página" +msgstr "" #: src/pickup.cpp msgid "Previous page" -msgstr "Página anterior" +msgstr "" #: src/pickup.cpp msgid "PICK" @@ -206558,7 +186671,7 @@ msgstr "" #: src/pickup.cpp msgid "Set filter" -msgstr "Definir filtro" +msgstr "" #: src/pickup.cpp msgid "Enter 2 letters (case sensitive):" @@ -206566,7 +186679,7 @@ msgstr "Insira 2 letras (diferencia maiúscula):" #: src/pickup.cpp msgid "Your filter returned no results" -msgstr "Seu filtro não retornou resultados" +msgstr "" #. ~ %s %s of %s ""!20 Cash Cards of $200" - ! added if stealing. #: src/pickup.cpp @@ -206713,19 +186826,19 @@ msgstr "" #: src/player.cpp msgid "You roll on the ground, trying to smother the fire!" -msgstr "Você rola no chão, tentando abafar o fogo!" +msgstr "" #: src/player.cpp msgid " rolls on the ground!" -msgstr " rola no chão!" +msgstr "" #: src/player.cpp msgid "You attempt to put out the fire on you!" -msgstr "Você tenta apagar o fogo em você!" +msgstr "" #: src/player.cpp msgid " attempts to put out the fire on them!" -msgstr " tenta apagar o fogo neles!" +msgstr "" #: src/player.cpp msgid "You nudge your steed to a steady trot." @@ -206741,7 +186854,7 @@ msgstr "" #: src/player.cpp msgid "You start running." -msgstr "Você começa a correr." +msgstr "" #: src/player.cpp msgid "Your steed is too tired to go faster." @@ -206749,7 +186862,7 @@ msgstr "" #: src/player.cpp msgid "You're too tired to run." -msgstr "Você está cansado demais para correr." +msgstr "" #: src/player.cpp msgid "You slow your steed to a walk." @@ -206786,11 +186899,11 @@ msgstr "" #: src/player.cpp msgid "quills" -msgstr "penas" +msgstr "" #: src/player.cpp msgid "spines" -msgstr "espinhos" +msgstr "" #: src/player.cpp #, c-format @@ -206804,7 +186917,7 @@ msgstr "" #: src/player.cpp msgid "thorns" -msgstr "espinhos" +msgstr "" #: src/player.cpp #, c-format @@ -206818,7 +186931,7 @@ msgstr "" #: src/player.cpp msgid "hair" -msgstr "cabelo" +msgstr "" #: src/player.cpp #, c-format @@ -206841,19 +186954,19 @@ msgstr "" #: src/player.cpp msgid "You were hurt!" -msgstr "Você ficou ferido!" +msgstr "" #: src/player.cpp msgid "A snake sprouts from your body!" -msgstr "Uma cobra brota do seu corpo!" +msgstr "" #: src/player.cpp msgid "Some snakes sprout from your body!" -msgstr "Algumas cobras brotam do seu corpo!" +msgstr "" #: src/player.cpp msgid "Slime is torn from you, and moves on its own!" -msgstr "Slime é arrancado de você e se move por conta própria!" +msgstr "" #: src/player.cpp #, c-format @@ -206892,11 +187005,11 @@ msgstr "" #: src/player.cpp msgid "Filth from your clothing has implanted deep in the wound." -msgstr "A sujeira da sua roupa foi implantada profundamente na ferida." +msgstr "" #: src/player.cpp msgid "Ouch, something hurts!" -msgstr "Ai, algo dói!" +msgstr "" #: src/player.cpp #, c-format @@ -206935,7 +187048,7 @@ msgstr "" #: src/player.cpp msgid "...but your shock absorbers negate the damage!" -msgstr "... mas seus amortecedores anulam o dano!" +msgstr "" #: src/player.cpp #, c-format @@ -206969,71 +187082,71 @@ msgstr "" #: src/player.cpp msgid "You have a sudden heart attack!" -msgstr "Você tem um ataque cardíaco súbito!" +msgstr "" #: src/player.cpp msgctxt "memorial_male" msgid "Died of a drug overdose." -msgstr "Morreu de uma overdose de drogas." +msgstr "" #: src/player.cpp msgctxt "memorial_female" msgid "Died of a drug overdose." -msgstr "Morreu de uma overdose de drogas." +msgstr "" #: src/player.cpp msgid "Your breathing stops completely." -msgstr "Sua respiração pára completamente." +msgstr "" #: src/player.cpp msgid "Your heart spasms painfully and stops." -msgstr "Seu coração se espasra dolorosamente e para." +msgstr "" #: src/player.cpp msgid "Your heart spasms and stops." -msgstr "Seu coração se espasma e pára." +msgstr "" #: src/player.cpp msgctxt "memorial_male" msgid "Died of a healing stimulant overdose." -msgstr "Morreu de uma overdose estimulante de cura." +msgstr "" #: src/player.cpp msgctxt "memorial_female" msgid "Died of a healing stimulant overdose." -msgstr "Morreu de uma overdose estimulante de cura." +msgstr "" #: src/player.cpp msgctxt "memorial_male" msgid "Died of adrenaline overdose." -msgstr "Morreu de overdose de adrenalina." +msgstr "" #: src/player.cpp msgctxt "memorial_female" msgid "Died of adrenaline overdose." -msgstr "Morreu de overdose de adrenalina." +msgstr "" #: src/player.cpp msgid "You have starved to death." -msgstr "Você morreu de fome." +msgstr "" #: src/player.cpp msgctxt "memorial_male" msgid "Died of starvation." -msgstr "Morreu de fome." +msgstr "" #: src/player.cpp msgctxt "memorial_female" msgid "Died of starvation." -msgstr "Morreu de fome." +msgstr "" #: src/player.cpp msgid "Food..." -msgstr "Comida..." +msgstr "" #: src/player.cpp msgid "You are STARVING!" -msgstr "Você está com fome!" +msgstr "" #: src/player.cpp msgid "You feel like you haven't eaten in days..." @@ -207041,87 +187154,83 @@ msgstr "" #: src/player.cpp msgid "Your stomach feels so empty..." -msgstr "Seu estômago está tão vazio ..." +msgstr "" #: src/player.cpp msgid "You have died of dehydration." -msgstr "Você morreu de desidratação." +msgstr "" #: src/player.cpp msgctxt "memorial_male" msgid "Died of thirst." -msgstr "Morreu de sede." +msgstr "" #: src/player.cpp msgctxt "memorial_female" msgid "Died of thirst." -msgstr "Morreu de sede." +msgstr "" #: src/player.cpp msgid "Even your eyes feel dry..." -msgstr "Até seus olhos parecem secos ..." +msgstr "" #: src/player.cpp msgid "You are THIRSTY!" -msgstr "Você está com sede!" +msgstr "" #: src/player.cpp msgid "Your mouth feels so dry..." -msgstr "Sua boca parece tão seca ..." +msgstr "" #: src/player.cpp msgid "Survivor sleep now." -msgstr "Sobrevivente dorme agora." +msgstr "" #: src/player.cpp msgctxt "memorial_male" msgid "Succumbed to lack of sleep." -msgstr "Sucumbiu à falta de sono." +msgstr "" #: src/player.cpp msgctxt "memorial_female" msgid "Succumbed to lack of sleep." -msgstr "Sucumbiu à falta de sono." +msgstr "" #: src/player.cpp msgid "Anywhere would be a good place to sleep..." -msgstr "Qualquer lugar seria um bom lugar para dormir ..." +msgstr "" #: src/player.cpp msgid "You feel like you haven't slept in days." -msgstr "Você sente como se não tivesse dormido em dias." +msgstr "" #: src/player.cpp msgid "You're too physically tired to stop yawning." -msgstr "Você está fisicamente cansado demais para parar de bocejar." +msgstr "" #: src/player.cpp msgid "How much longer until bedtime?" -msgstr "Quanto tempo até dormir?" +msgstr "" #: src/player.cpp msgid "*yawn* You should really get some sleep." -msgstr "* bocejo * Você realmente deveria dormir um pouco." +msgstr "" #: src/player.cpp msgid "Your mind feels tired. It's been a while since you've slept well." -msgstr "Sua mente parece cansada. Já faz um tempo desde que você dormiu bem." +msgstr "" #: src/player.cpp msgid "" "Your mind feels foggy from lack of good sleep, and your eyes keep trying to " "close against your will." msgstr "" -" Sua mente parece nebulosa por falta de um bom sono, e seus olhos continuam " -"tentando se fechar contra a sua vontade." #: src/player.cpp msgid "" "Your mind feels weary, and you dread every wakeful minute that passes. You " "crave sleep, and feel like you're about to collapse." msgstr "" -" Sua mente se sente cansada, e você tem medo de todo minuto de vigília que " -"passa. Você deseja dormir e sente que está prestes a entrar em colapso." #: src/player.cpp msgid "" @@ -207129,9 +187238,6 @@ msgid "" " mercy. It's a miracle that you're still awake, but it just feels like a " "curse now." msgstr "" -" Você não dormiu decentemente por tanto tempo que todo o seu corpo está " -"gritando por misericórdia. É um milagre que você ainda esteja acordado, mas " -"parece uma maldição agora." #: src/player.cpp msgid "" @@ -207150,11 +187256,11 @@ msgstr "" #: src/player.cpp msgid "You're feeling tired." -msgstr "Você está se sentindo cansado." +msgstr "" #: src/player.cpp msgid "You're cramping up from stuffing yourself in this vehicle." -msgstr "Você está com cólica de se encher neste veículo." +msgstr "" #: src/player.cpp #, c-format @@ -207198,31 +187304,31 @@ msgstr "" #: src/player.cpp msgid "You cough heavily." -msgstr "Você tosse fortemente." +msgstr "" #: src/player.cpp msgid "a hacking cough." -msgstr "uma tosse seca." +msgstr "" #: src/player.cpp msgid "Your body is wracked with excruciating pain!" -msgstr "Seu corpo está arruinado com uma dor excruciante!" +msgstr "" #: src/player.cpp msgid "Your body is wracked with terrible pain!" -msgstr "Seu corpo está arruinado com dores terríveis!" +msgstr "" #: src/player.cpp msgid "Your body is wracked with pain!" -msgstr "Seu corpo está estragado de dor!" +msgstr "" #: src/player.cpp msgid "Your body pains you!" -msgstr "Seu corpo sente dor!" +msgstr "" #: src/player.cpp msgid "Your body aches." -msgstr "Seu corpo dói." +msgstr "" #: src/player.cpp #, c-format @@ -207266,19 +187372,19 @@ msgstr "" #: src/player.cpp msgid "You pass out!" -msgstr "Você desmaia!" +msgstr "" #: src/player.cpp msgid "We have mistakenly colonized a local guide! Purging now." -msgstr "Nós erroneamente colonizamos um guia local! Purgando agora." +msgstr "" #: src/player.cpp msgid "Something writhes and inside of you as it dies." -msgstr "Algo se contorce e dentro de você quando morre." +msgstr "" #: src/player.cpp msgid "Your bowels gurgle as something inside them dies." -msgstr "Suas entranhas gorgolejam quando algo dentro delas morre." +msgstr "" #: src/player.cpp #, c-format @@ -207297,60 +187403,60 @@ msgstr "" #: src/player.cpp msgid "You're drowning!" -msgstr "Você está se afogando!" +msgstr "" #: src/player.cpp msgid "You shed a tooth!" -msgstr "Você derramou um dente!" +msgstr "" #. ~Sound of buzzing Insect Wings #: src/player.cpp msgid "BZZZZZ" -msgstr "BZZZZZ" +msgstr "" #: src/player.cpp msgid "You suddenly feel numb." -msgstr "De repente você se sente entorpecido." +msgstr "" #: src/player.cpp msgid "You suddenly ache." -msgstr "De repente você dorme." +msgstr "" #: src/player.cpp msgid "You feel dizzy for a moment." -msgstr "Você se sente tonto por um momento." +msgstr "" #: src/player.cpp msgid "You suddenly feel hungry." -msgstr "De repente você sente fome." +msgstr "" #: src/player.cpp msgid "You suddenly feel a little full." -msgstr "De repente você se sente um pouco cheio." +msgstr "" #: src/player.cpp msgid "You suddenly feel thirsty." -msgstr "De repente você sente sede." +msgstr "" #: src/player.cpp msgid "You feel fatigued all of a sudden." -msgstr "Você se sente fatigado de repente." +msgstr "" #: src/player.cpp msgid "You suddenly feel very cold." -msgstr "De repente você se sente muito frio." +msgstr "" #: src/player.cpp msgid "You suddenly feel cold." -msgstr "Você de repente sente frio." +msgstr "" #: src/player.cpp msgid "You suddenly feel very hot." -msgstr "De repente você se sente muito quente." +msgstr "" #: src/player.cpp msgid "You suddenly feel hot." -msgstr "De repente você se sente quente." +msgstr "" #: src/player.cpp #, c-format @@ -207369,83 +187475,83 @@ msgstr "" #: src/player.cpp msgid "Hey, can you hear me?" -msgstr "Ei, você pode me ouvir?" +msgstr "" #: src/player.cpp msgid "Don't touch me." -msgstr "Não me toque." +msgstr "" #: src/player.cpp msgid "What's your name?" -msgstr "Qual o seu nome?" +msgstr "" #: src/player.cpp msgid "I thought you were my friend." -msgstr "Eu pensei que você era meu amigo." +msgstr "" #: src/player.cpp msgid "How are you today?" -msgstr "Como você está hoje?" +msgstr "" #: src/player.cpp msgid "Shut up! Don't lie to me." -msgstr "Cale-se! Não minta para mim." +msgstr "" #: src/player.cpp msgid "Please, don't go." -msgstr "Por favor, não vá." +msgstr "" #: src/player.cpp msgid "Don't leave me alone!" -msgstr "Não me deixe em paz!" +msgstr "" #: src/player.cpp msgid "Yeah, sure." -msgstr "Sim claro." +msgstr "" #: src/player.cpp msgid "No way, man." -msgstr "De jeito nenhum, cara." +msgstr "" #: src/player.cpp msgid "Do you really think so?" -msgstr "Você acha mesmo?" +msgstr "" #: src/player.cpp msgid "Is it really time for that?" -msgstr "É mesmo tempo para isso?" +msgstr "" #: src/player.cpp msgid "Sorry, I can't hear you." -msgstr "Desculpe, não posso te ouvir." +msgstr "" #: src/player.cpp msgid "You've told me already." -msgstr "Você já me contou." +msgstr "" #: src/player.cpp msgid "I know!" -msgstr "Eu sei!" +msgstr "" #: src/player.cpp msgid "Why are you following me?" -msgstr "Por que você está me seguindo?" +msgstr "" #: src/player.cpp msgid "This place is dangerous, you shouldn't be here." -msgstr "Este lugar é perigoso, você não deveria estar aqui." +msgstr "" #: src/player.cpp msgid "That's not true, is it?" -msgstr "Isso não é verdade, é?" +msgstr "" #: src/player.cpp msgid "Are you hurt?" -msgstr "Você está machucado?" +msgstr "" #: src/player.cpp msgid "Your " -msgstr "Seu" +msgstr "" #: src/player.cpp #, c-format @@ -207499,187 +187605,187 @@ msgstr "" #: src/player.cpp msgid "Hey, you're bleeding." -msgstr "Ei, você está sangrando." +msgstr "" #: src/player.cpp msgid "Your wound looks pretty bad." -msgstr "Sua ferida parece muito ruim." +msgstr "" #: src/player.cpp msgid "Shouldn't you put a bandage on that?" -msgstr "Você não deveria colocar uma bandagem nisso?" +msgstr "" #: src/player.cpp msgid "Please don't die! No one else lets me kill things!" -msgstr "Por favor, não morra! Ninguém mais me deixa matar coisas!" +msgstr "" #: src/player.cpp msgid "You look hurt, did I do that?" -msgstr "Você parece ferido, eu fiz isso?" +msgstr "" #: src/player.cpp msgid "Are you supposed to be bleeding?" -msgstr "Você deveria estar sangrando?" +msgstr "" #: src/player.cpp msgid "You're not going to die, are you?" -msgstr "Você não vai morrer, vai?" +msgstr "" #: src/player.cpp msgid "Kill a few more before you bleed out!" -msgstr "Mate mais alguns antes de sangrar!" +msgstr "" #: src/player.cpp msgid "Hey fix me up." -msgstr "Ei, conserte-me" +msgstr "" #: src/player.cpp msgid "I need healing!" -msgstr "Eu preciso de cura!" +msgstr "" #: src/player.cpp msgid "I hurt all over..." -msgstr "Estou todo(a) dolorido(a)..." +msgstr "" #: src/player.cpp msgid "You can put me back together, right?" -msgstr "Você pode me colocar de volta, certo?" +msgstr "" #: src/player.cpp msgid "I... I can't move my legs!" -msgstr "Eu... Eu não consigo mover minhas pernas!" +msgstr "" #: src/player.cpp msgid "Medic!" -msgstr "Médico!" +msgstr "" #: src/player.cpp msgid "I can still fight, don't replace me!" -msgstr "Eu ainda posso lutar, não me substitua!" +msgstr "" #: src/player.cpp msgid "They got me!" -msgstr "Me pegaram!" +msgstr "" #: src/player.cpp msgid "Go on without me..." -msgstr "Vá sem mim..." +msgstr "" #: src/player.cpp msgid "Am I gonna die?" -msgstr "Irei morre?" +msgstr "" #: src/player.cpp msgid "Let me kill something already!" -msgstr "Deixe-me matar alguma coisa já!" +msgstr "" #: src/player.cpp msgid "I'm your best friend, right?" -msgstr "Eu sou sua melhor amiga, certo?" +msgstr "" #: src/player.cpp msgid "Do you think it will rain today?" -msgstr "Você acha que vai chover hoje?" +msgstr "" #: src/player.cpp msgid "Try not to drop me." -msgstr "Tente não me deixar cair." +msgstr "" #: src/player.cpp msgid "How many do you think we've killed?" -msgstr "Quantos você acha que nós matamos?" +msgstr "" #: src/player.cpp msgid "I'll keep you safe!" -msgstr "Eu vou te manter em segurança!" +msgstr "" #: src/player.cpp msgid "You get a bad feeling." -msgstr "Você tem um mau pressentimento." +msgstr "" #: src/player.cpp msgid "You suddenly feel so numb..." -msgstr "Você de repente se sente tão insensível ..." +msgstr "" #: src/player.cpp msgid "You start to shake uncontrollably." -msgstr "Você começa a tremer incontrolavelmente." +msgstr "" #: src/player.cpp msgid "\"Get away from there!\"" -msgstr "\\ 'Afaste-se de lá! \"" +msgstr "" #: src/player.cpp msgid "\"What do you think you're doing?\"" -msgstr "\\'O que você pensa que está fazendo?\"" +msgstr "" #: src/player.cpp msgid "\"Stop laughing at me!\"" -msgstr "\\'Pare de rir de mim!\"" +msgstr "" #: src/player.cpp msgid "\"Don't point that thing at me!\"" -msgstr "'Não aponte essa coisa para mim!" +msgstr "" #: src/player.cpp msgid "\"Stay away from me!\"" -msgstr "\\'Fique longe de mim!\"" +msgstr "" #: src/player.cpp msgid "\"No! Stop!\"" -msgstr "\\'Não pare!\"" +msgstr "" #: src/player.cpp msgid "\"Get the fuck away from me!\"" -msgstr "'Fique longe de mim!" +msgstr "" #: src/player.cpp msgid "\"That's not true!\"" -msgstr "\\'Isso não é verdade!\"" +msgstr "" #: src/player.cpp msgid "\"What do you want from me?\"" -msgstr "\\'O que você quer de mim?\"" +msgstr "" #: src/player.cpp msgid "\"I didn't mean to do it!\"" -msgstr "'Eu não queria fazer isso!" +msgstr "" #: src/player.cpp msgid "\"It wasn't my fault!\"" -msgstr "'Não foi minha culpa!" +msgstr "" #: src/player.cpp msgid "\"I had to do it!\"" -msgstr "\\'Eu tive de fazer isto!\"" +msgstr "" #: src/player.cpp msgid "\"They made me do it!\"" -msgstr "\\'Eles me fizeram fazer isso!\"" +msgstr "" #: src/player.cpp msgid "\"What are you!?\"" -msgstr "\\'O que você é!?\"" +msgstr "" #: src/player.cpp msgid "\"I should never have trusted you!\"" -msgstr "'Eu nunca deveria ter confiado em você!" +msgstr "" #: src/player.cpp msgid "You're suddenly overcome with the urge to sleep and you pass out." -msgstr "De repente você é superado com o desejo de dormir e desmaiar." +msgstr "" #: src/player.cpp msgid "You have an asthma attack!" -msgstr "Você tem um ataque de asma!" +msgstr "" #: src/player.cpp msgid "You use your Oxygenator to clear it up, then go back to sleep." -msgstr "Você usa seu oxigenador para limpá-lo e depois voltar a dormir." +msgstr "" #: src/player.cpp msgid "You use your inhaler and go back to sleep." -msgstr "Você usa seu inalador e volta a dormir." +msgstr "" #: src/player.cpp msgid "You take a deep breath from your oxygen tank and go back to sleep." @@ -207687,7 +187793,7 @@ msgstr "" #: src/player.cpp msgid "You use your last inhaler charge." -msgstr "Você usa sua última carga de inalador." +msgstr "" #: src/player.cpp #, c-format @@ -207714,43 +187820,43 @@ msgstr "" #: src/player.cpp msgid "The sunlight is really irritating your eyes." -msgstr "A luz do sol está realmente irritando seus olhos." +msgstr "" #: src/player.cpp msgid "The sunlight burns your skin!" -msgstr "A luz do sol queima sua pele!" +msgstr "" #: src/player.cpp msgid "The sunlight distracts you." -msgstr "A luz do sol te distrai." +msgstr "" #: src/player.cpp msgid "You can't stand the sunlight!" -msgstr "Você não suporta a luz do sol!" +msgstr "" #: src/player.cpp msgid "Suddenly, you can't hear anything!" -msgstr "De repente, você não consegue ouvir nada!" +msgstr "" #: src/player.cpp msgid "Suddenly, your eyes stop working!" -msgstr "De repente, seus olhos param de funcionar!" +msgstr "" #: src/player.cpp msgid "Your visual centers must be acting up..." -msgstr "Seus centros visuais devem estar agindo ..." +msgstr "" #: src/player.cpp msgid "You feel an anomalous sensation coming from your radiation sensors." -msgstr "Você sente uma sensação anômala vinda de seus sensores de radiação." +msgstr "" #: src/player.cpp msgid "Your chest burns as your power systems overload!" -msgstr "Seu peito queima enquanto seus sistemas de energia sobrecarregam!" +msgstr "" #: src/player.cpp msgid "You suffer a painful electrical discharge!" -msgstr "Você sofre uma descarga elétrica dolorosa!" +msgstr "" #: src/player.cpp #, c-format @@ -207759,40 +187865,39 @@ msgstr "" #: src/player.cpp msgid "You suffer a burning acidic discharge!" -msgstr "Você sofre uma descarga ácida ardente!" +msgstr "" #: src/player.cpp msgid "Your batteries discharge slightly." -msgstr "Suas baterias descarregam um pouco." +msgstr "" #: src/player.cpp msgid "A bionic emits a crackle of noise!" -msgstr "Um biônico emite um estalo de ruído!" +msgstr "" #: src/player.cpp msgid "You feel your faulty bionic shuddering." -msgstr "Você sente seu tremor biônico defeituoso." +msgstr "" #: src/player.cpp msgid "Crackle!" -msgstr "Crackle!" +msgstr "" #: src/player.cpp msgid "Your vision pixelates!" -msgstr "Sua visão pixeliza!" +msgstr "" #: src/player.cpp msgid "Your malfunctioning bionic causes you to spasm and fall to the floor!" msgstr "" -"Seu bionic mau funcionamento faz com que você espasmos e caia no chão!" #: src/player.cpp msgid "Your bionics short-circuit, causing you to tremble and shiver." -msgstr "Sua biônica curto-circuito, fazendo com que você tremer e estremecer." +msgstr "" #: src/player.cpp msgid "Your malfunctioning bionic itches!" -msgstr "Seu mau funcionamento biônico coça!" +msgstr "" #: src/player.cpp msgid "Your malfunctioning bionic starts to glow!" @@ -207800,43 +187905,43 @@ msgstr "" #: src/player.cpp msgid "Your muscles spasm!" -msgstr "Seus músculos se espasam!" +msgstr "" #: src/player.cpp msgid "You fall to the ground!" -msgstr "Você vai ao chão!" +msgstr "" #: src/player.cpp msgid "You feel short of breath." -msgstr "Você sente falta de ar." +msgstr "" #: src/player.cpp msgid "You shake uncontrollably." -msgstr "Você treme descontroladamente." +msgstr "" #: src/player.cpp msgid "You feel nauseous..." -msgstr "Você sente-se nauseado..." +msgstr "" #: src/player.cpp msgid "You black out!" -msgstr "Você apaga!" +msgstr "" #: src/player.cpp msgid "Your breathing slows down." -msgstr "Sua respiração acalma." +msgstr "" #: src/player.cpp msgid "You stumble and fall over!" -msgstr "Você tropeça e cai em cima!" +msgstr "" #: src/player.cpp msgid "You feel tired..." -msgstr "Você se sente cansado..." +msgstr "" #: src/player.cpp msgid "You tiredly rub your eyes." -msgstr "Você cansadamente esfrega seus olhos." +msgstr "" #: src/player.cpp msgid " tiredly rubs their eyes." @@ -207844,7 +187949,7 @@ msgstr "" #: src/player.cpp msgid "You let out a small yawn." -msgstr "Você solta um pequeno bocejo." +msgstr "" #: src/player.cpp msgid " lets out a small yawn." @@ -207852,7 +187957,7 @@ msgstr "" #: src/player.cpp msgid "You stretch your back." -msgstr "Você estica suas costas." +msgstr "" #: src/player.cpp msgid " streches their back." @@ -207860,7 +187965,7 @@ msgstr "" #: src/player.cpp msgid "You feel mentally tired." -msgstr "Você se sente mentalmente cansado." +msgstr "" #: src/player.cpp msgid " lets out a huge yawn." @@ -207868,49 +187973,45 @@ msgstr "" #: src/player.cpp msgid "You feel lightheaded for a moment." -msgstr "Você se sente tonta por um momento." +msgstr "" #: src/player.cpp msgid "Your muscles spasm uncomfortably." -msgstr "Seus músculos espasmam desconfortavelmente." +msgstr "" #: src/player.cpp msgid "Your vision blurs a little." -msgstr "Sua visão embaça um pouco." +msgstr "" #: src/player.cpp msgid "Your mind lapses into unawareness briefly." -msgstr "Sua mente cai em falta de consciência brevemente." +msgstr "" #: src/player.cpp msgid "Your muscles ache in stressfully unpredictable ways." -msgstr "Seus músculos doem de maneira estressante e imprevisível." +msgstr "" #: src/player.cpp msgid "You have a distractingly painful headache." -msgstr "Você tem uma dor de cabeça distrativa e dolorosa." +msgstr "" #: src/player.cpp msgid "You feel heartburn and an acid taste in your mouth." -msgstr "Você sente azia e um gosto ácido em sua boca." +msgstr "" #: src/player.cpp msgid "Your mind is so tired that you feel you can't trust your eyes anymore." msgstr "" -" Sua mente está tão cansada que você sente que não pode mais confiar em seus" -" olhos." #: src/player.cpp msgid "" "Your muscles spasm uncontrollably, and you have trouble keeping your " "balance." msgstr "" -" Seus músculos entorpecem descontroladamente e você tem dificuldade em " -"manter o equilíbrio." #: src/player.cpp msgid "Your shaking legs make you stumble." -msgstr "Suas pernas trêmulas fazem você tropeçar." +msgstr "" #: src/player.cpp msgid " stumbles." @@ -207922,7 +188023,7 @@ msgstr "" #: src/player.cpp msgid "You fall over!" -msgstr "Você cai!" +msgstr "" #: src/player.cpp #, c-format @@ -207963,7 +188064,7 @@ msgstr "" #: src/player.cpp msgid "Your power armor disengages." -msgstr "Sua armadura de poder desengata." +msgstr "" #: src/player.cpp #, c-format @@ -207997,7 +188098,7 @@ msgstr "" #: src/player.cpp msgid "You sink your roots into the soil." -msgstr "Você afunda suas raízes no solo." +msgstr "" #: src/player.cpp src/veh_interact.cpp #, c-format @@ -208028,19 +188129,19 @@ msgstr "" #: src/player.cpp msgid "| Location " -msgstr "| Localização" +msgstr "" #: src/player.cpp msgid "| Amount " -msgstr "| Montante" +msgstr "" #: src/player.cpp msgid "| Moves " -msgstr "| Movimentos" +msgstr "" #: src/player.cpp msgid "| Damage | Pierce " -msgstr "| Dano | perfurar" +msgstr "" #: src/player.cpp #, c-format @@ -208049,7 +188150,7 @@ msgstr "" #: src/player.cpp msgid "Nothing to reload!" -msgstr "Nada para recarregar!" +msgstr "" #: src/player.cpp #, c-format @@ -208063,13 +188164,11 @@ msgstr "" #: src/player.cpp msgid "Can't wear power armor over other gear!" -msgstr "Não pode usar armadura de poder sobre outras artes!" +msgstr "" #: src/player.cpp msgid "You can only wear power armor components with power armor!" msgstr "" -" Você só pode usar componentes de armadura de potência com blindagem de " -"energia!" #: src/player.cpp #, c-format @@ -208083,7 +188182,7 @@ msgstr "" #: src/player.cpp msgid "You don't have a hand free to wear that." -msgstr "Você não tem uma mão livre para usar isso." +msgstr "" #: src/player.cpp #, c-format @@ -208097,7 +188196,7 @@ msgstr "" #: src/player.cpp msgid "You're already wearing footwear!" -msgstr "Você já está usando calçado!" +msgstr "" #: src/player.cpp #, c-format @@ -208106,7 +188205,7 @@ msgstr "" #: src/player.cpp msgid "You can't wear that with other headgear!" -msgstr "Você não pode usar isso com outros arnês!" +msgstr "" #: src/player.cpp #, c-format @@ -208115,7 +188214,7 @@ msgstr "" #: src/player.cpp msgid "You can't wear that much on your head!" -msgstr "Você não pode usar tanto na sua cabeça!" +msgstr "" #: src/player.cpp #, c-format @@ -208124,11 +188223,11 @@ msgstr "" #: src/player.cpp msgid "Can't wear that, it's made of wool!" -msgstr "Não pode usar isso, é feito de lã!" +msgstr "" #: src/player.cpp msgid "Can't wear that, it's filthy!" -msgstr "Não pode usar isso, é imundo!" +msgstr "" #: src/player.cpp #, c-format @@ -208142,23 +188241,23 @@ msgstr "" #: src/player.cpp msgid "horns" -msgstr "buzinas" +msgstr "" #: src/player.cpp msgid "antennae" -msgstr "antena" +msgstr "" #: src/player.cpp msgid "antlers" -msgstr "chifres" +msgstr "" #: src/player.cpp msgid "Can't wield spilt liquids." -msgstr "Não pode manejar líquidos derramados." +msgstr "" #: src/player.cpp msgid "Something you are wearing hinders the use of both hands." -msgstr "Algo que você está vestindo dificulta o uso de ambas as mãos." +msgstr "" #: src/player.cpp #, c-format @@ -208177,18 +188276,16 @@ msgstr "" #: src/player.cpp msgid "Keep hands free (off)" -msgstr "Mantenha as mãos livres (off)" +msgstr "" #: src/player.cpp msgid "Keep hands free (on)" -msgstr "Mantenha as mãos livres (ligado)" +msgstr "" #: src/player.cpp msgid "" "When this is enabled, player won't wield things unless explicitly told to." msgstr "" -" Quando isto está habilitado, o jogador não irá empunhar as coisas a menos " -"que seja explicitamente informado." #: src/player.cpp #, c-format @@ -208197,40 +188294,40 @@ msgstr "" #: src/player.cpp msgid "Spill contents and store in inventory" -msgstr "Derrame o conteúdo e armazene no inventário" +msgstr "" #: src/player.cpp msgid "Store in inventory" -msgstr "Armazenar no inventário" +msgstr "" #: src/player.cpp msgid "Drop item" -msgstr "Largar item" +msgstr "" #: src/player.cpp msgid "Spill contents and wear item" -msgstr "Espalha conteúdo e veste item" +msgstr "" #: src/player.cpp #, c-format msgid "Store in %s" -msgstr "Armazenar em %s" +msgstr "" #: src/player.cpp msgid " | Moves " -msgstr "| Movimentos" +msgstr "" #: src/player.cpp msgid "Toggle which fault?" -msgstr "Alternar qual falha?" +msgstr "" #: src/player.cpp msgid "Break" -msgstr "Quebrar" +msgstr "" #: src/player.cpp msgid "Mend" -msgstr "Emendar" +msgstr "" #: src/player.cpp #, c-format @@ -208244,15 +188341,15 @@ msgstr "" #: src/player.cpp msgid "Mend which fault?" -msgstr "Emendar qual falha?" +msgstr "" #: src/player.cpp src/veh_interact.cpp msgid "Time required:\n" -msgstr " Tempo requerido: \n" +msgstr "" #: src/player.cpp msgid "Skills:\n" -msgstr " Habilidades: \n" +msgstr "" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is skill name, and %3$i is skill level @@ -208263,20 +188360,20 @@ msgstr "" #: src/player.cpp msgid "You are already wearing that." -msgstr "Você já está usando isso." +msgstr "" #: src/player.cpp msgid " is already wearing that." -msgstr " já está usando isso." +msgstr "" #: src/player.cpp msgid " doesn't have that item." -msgstr " não tem esse item." +msgstr "" #: src/player.cpp #, c-format msgid "You put on your %s." -msgstr "Você coloca em seu %s." +msgstr "" #: src/player.cpp #, c-format @@ -208295,7 +188392,7 @@ msgstr "" #: src/player.cpp msgid "You're deafened!" -msgstr "Você está surdo!" +msgstr "" #: src/player.cpp #, c-format @@ -208330,30 +188427,26 @@ msgstr "" #: src/player.cpp msgid "You are not wearing that item." -msgstr "Você não está usando esse item." +msgstr "" #: src/player.cpp msgid " isn't wearing that item." -msgstr " não está usando esse item." +msgstr "" #: src/player.cpp msgid " is not wearing that item." -msgstr " não está usando esse item." +msgstr "" #: src/player.cpp msgid "" "You can't take off power armor while wearing other power armor components." msgstr "" -" Você não pode tirar a armadura enquanto estiver usando outros componentes " -"da armadura." #: src/player.cpp msgid "" " can't take off power armor while wearing other power armor " "components." msgstr "" -" não pode tirar a blindagem de poder enquanto estiver usando " -"outros componentes da armadura de potência." #: src/player.cpp msgid "You can't take that item off." @@ -208366,12 +188459,12 @@ msgstr "" #: src/player.cpp #, c-format msgid "No room in inventory for your %s. Drop it?" -msgstr "Sem espaço no inventário para %s. Largar?" +msgstr "" #: src/player.cpp #, c-format msgid "You take off your %s." -msgstr "Você tira seu %s." +msgstr "" #: src/player.cpp #, c-format @@ -208380,11 +188473,11 @@ msgstr "" #: src/player.cpp msgid "You can't place items here!" -msgstr "Não pode colocar itens aqui!" +msgstr "" #: src/player.cpp msgid " can't place items here!" -msgstr " não pode colocar itens aqui!" +msgstr "" #: src/player.cpp #, c-format @@ -208398,11 +188491,11 @@ msgstr "" #: src/player.cpp msgid "The liquid can't be unloaded in its current state!" -msgstr "O líquido não pode ser descarregado em seu estado atual!" +msgstr "" #: src/player.cpp msgid "Unload what?" -msgstr "Descarregar o quê?" +msgstr "" #: src/player.cpp #, c-format @@ -208431,7 +188524,7 @@ msgstr "" #: src/player.cpp msgid "You can't remove partially depleted plutonium!" -msgstr "Você não pode remover o plutônio parcialmente esgotado!" +msgstr "" #: src/player.cpp #, c-format @@ -208480,70 +188573,59 @@ msgstr "" #: src/player.cpp msgid "You relax as your roots embrace the soil." -msgstr "Você relaxa enquanto suas raízes abraçam o solo." +msgstr "" #: src/player.cpp msgid "It's impossible to sleep in this wheeled pot!" -msgstr "É impossível dormir neste pote com rodas!" +msgstr "" #: src/player.cpp msgid "The humans' furniture blocks your roots. You can't get comfortable." msgstr "" -" O mobiliário dos humanos bloqueia suas raízes. Você não pode ficar " -"confortável." #: src/player.cpp msgid "Your roots scrabble ineffectively at the unyielding surface." -msgstr "Suas raízes scrabble ineficazmente na superfície inflexível." +msgstr "" #: src/player.cpp msgid "" "Our fibers meld with the ground beneath us. The gills on our neck begin to " "seed the air with spores as our awareness fades." msgstr "" -" Nossas fibras se fundem com o chão abaixo de nós. As brânquias em nosso " -"pescoço começam a semear o ar com esporos à medida que nossa consciência se " -"desvanece." #: src/player.cpp msgid "These thick webs support your weight, and are strangely comfortable..." msgstr "" -" Estas teias grossas suportam o seu peso e são estranhamente confortáveis " -"..." #: src/player.cpp msgid "You try to sleep, but the webs get in the way. You brush them aside." -msgstr "Você tenta dormir, mas as teias atrapalham. Você as deixa de lado." +msgstr "" #: src/player.cpp msgid "You relax into your web." -msgstr "Você relaxa em sua web." +msgstr "" #: src/player.cpp msgid "" "You try to sleep, but you feel exposed and your spinnerets keep twitching." msgstr "" -" Você tenta dormir, mas se sente exposto e suas fieiras continuam se " -"contraindo." #: src/player.cpp msgid "Maybe a nice thick web would help you sleep." -msgstr "Talvez uma teia grossa te ajudasse a dormir." +msgstr "" #: src/player.cpp msgid "" "You lay beneath the waves' embrace, gazing up through the water's surface..." msgstr "" -" Você se deita sob o abraço das ondas, olhando através da superfície da água" -" ..." #: src/player.cpp msgid "You settle into the water and begin to drowse..." -msgstr "Você se acomoda na água e começa a sonhar ..." +msgstr "" #: src/player.cpp msgid "This is a comfortable place to sleep." -msgstr "Este é um lugar confortável para dormir." +msgstr "" #: src/player.cpp #, c-format @@ -208557,7 +188639,7 @@ msgstr "" #: src/player.cpp msgid "You start trying to fall asleep." -msgstr "Você tenta adormecer." +msgstr "" #: src/player.cpp msgid "Your soporific inducer starts working its magic." @@ -208577,11 +188659,11 @@ msgstr "" #: src/player.cpp msgid "You nestle your pile of clothes for warmth." -msgstr "Você aninha sua pilha de roupas para o calor." +msgstr "" #: src/player.cpp msgid "You use your pile of clothes for warmth." -msgstr "Você usa sua pilha de roupas para se aquecer." +msgstr "" #: src/player.cpp #, c-format @@ -208596,12 +188678,12 @@ msgstr "" #: src/player.cpp msgctxt "memorial_male" msgid "Entered hibernation." -msgstr "Hibernação introduzida." +msgstr "" #: src/player.cpp msgctxt "memorial_female" msgid "Entered hibernation." -msgstr "Hibernação introduzida." +msgstr "" #. ~ %s is armor name #: src/player.cpp @@ -208657,45 +188739,45 @@ msgstr "" #: src/player.cpp msgid "You resume your task." -msgstr "Você retoma sua tarefa." +msgstr "" #: src/player.cpp msgid "Wield what?" -msgstr "Empunhar o quê?" +msgstr "" #: src/player.cpp msgid "Time seems to slow down and you instinctively dodge!" -msgstr "O tempo parece diminuir e você se esquiva instintivamente!" +msgstr "" #: src/player.cpp #, c-format msgid "%s dodges... so fast!" -msgstr "%s desvia... tão rápido!" +msgstr "" #: src/player.cpp msgid "You try to dodge but there's no room!" -msgstr "Você tenta esquivar mas não dá!" +msgstr "" #: src/player.cpp #, c-format msgid "%s tries to dodge but there's no room!" -msgstr "%s tenta esquivar mas não consegue!" +msgstr "" #: src/player.cpp msgid "You start hauling items along the ground." -msgstr "Você começa a transportar itens pelo chão." +msgstr "" #: src/player.cpp msgid "Your hands are not free, which makes hauling slower." -msgstr "Suas mãos não estão livres, o que torna o transporte mais lento." +msgstr "" #: src/player.cpp msgid "You stop hauling items." -msgstr "Você para de transportar itens." +msgstr "" #: src/player.cpp msgid "Your body strains under the weight!" -msgstr "Seu corpo se esforça sob o peso!" +msgstr "" #: src/player.cpp msgid "You fall off your mount!" @@ -208703,7 +188785,7 @@ msgstr "" #: src/player.cpp src/trapfunc.cpp msgid "You hurt yourself!" -msgstr "Machucou-se!" +msgstr "" #: src/player.cpp msgctxt "memorial_male" @@ -208730,11 +188812,11 @@ msgstr "Segurando:" #: src/player.cpp #, c-format msgid "You (%s)" -msgstr "Você (%s)" +msgstr "" #: src/player.cpp msgid "Your heart races as you recall your most recent hunt." -msgstr "Seu coração dispara quando você se lembra de sua mais recente caçada." +msgstr "" #: src/player.cpp #, c-format @@ -208760,15 +188842,15 @@ msgstr "" #: src/player_display.cpp msgid "ENCUMBRANCE AND WARMTH" -msgstr "ENCUMBRANCE E WARMTH" +msgstr "" #: src/player_display.cpp msgid "EFFECTS" -msgstr "EFEITOS" +msgstr "" #: src/player_display.cpp msgid "SPEED" -msgstr "VELOCIDADE" +msgstr "" #: src/player_display.cpp #, c-format @@ -208812,8 +188894,6 @@ msgstr "" msgid "" "Head encumbrance has no effect; it simply limits how much you can put on." msgstr "" -" O ônus da cabeça não tem efeito; simplesmente limita o quanto você pode " -"colocar." #: src/player_display.cpp #, c-format @@ -208826,19 +188906,17 @@ msgstr "" msgid "" "Covering your mouth will make it more difficult to breathe and catch your " "breath." -msgstr "Cobrir a boca tornará mais difícil respirar e recuperar o fôlego." +msgstr "" #: src/player_display.cpp msgid "" "Arm encumbrance affects stamina cost of melee attacks and accuracy with " "ranged weapons." msgstr "" -" O ônus do braço afeta o custo de resistência de ataques corpo a corpo e a " -"precisão com armas à distância." #: src/player_display.cpp msgid "Reduces the speed at which you can handle or manipulate items\n" -msgstr "Reduz a velocidade na qual você pode manipular ou manipular itens \n" +msgstr "" #: src/player_display.cpp #, c-format @@ -208856,46 +188934,40 @@ msgid "" " total HP, your resistance to many diseases, and the effectiveness of " "actions which require brute force." msgstr "" -" A força afeta seus danos corpo a corpo, a quantidade de peso que você pode " -"carregar, seu HP total, sua resistência a muitas doenças e a eficácia das " -"ações que exigem força bruta." #: src/player_display.cpp msgid "Base HP:" -msgstr "Base HP:" +msgstr "" #: src/player_display.cpp msgid "Carry weight(kg):" -msgstr "Levar peso (kg):" +msgstr "" #: src/player_display.cpp msgid "Carry weight(lbs):" -msgstr "Levar peso (lbs):" +msgstr "" #: src/player_display.cpp msgid "Melee damage:" -msgstr "Dano corpo-a-corpo:" +msgstr "" #: src/player_display.cpp msgid "" "Dexterity affects your chance to hit in melee combat, helps you steady your " "gun for ranged combat, and enhances many actions that require finesse." msgstr "" -" Destreza afeta sua chance de acertar em combate corpo a corpo, ajuda a " -"estabilizar sua arma para combate à distância, e aprimora muitas ações que " -"exigem finesse." #: src/player_display.cpp msgid "Melee to-hit bonus:" -msgstr "Melee to-hit bonus:" +msgstr "" #: src/player_display.cpp msgid "Ranged penalty:" -msgstr "Penalidade à distância:" +msgstr "" #: src/player_display.cpp msgid "Throwing penalty per target's dodge:" -msgstr "Penalidade de lançamento por esquiva do alvo:" +msgstr "" #: src/player_display.cpp msgid "" @@ -208903,37 +188975,32 @@ msgid "" "complex tasks like electronics crafting. It also affects how much skill you" " can pick up from reading a book." msgstr "" -" A inteligência é menos importante na maioria das situações, mas é vital " -"para tarefas mais complexas, como a elaboração de produtos eletrônicos. " -"Também afeta quanta habilidade você pode aprender lendo um livro." #: src/player_display.cpp msgid "Read times:" -msgstr "Tempos de leitura:" +msgstr "" #: src/player_display.cpp msgid "Skill rust:" -msgstr "Ferrugem habilidade:" +msgstr "" #: src/player_display.cpp msgid "Crafting bonus:" -msgstr "Bônus de artesanato:" +msgstr "" #: src/player_display.cpp msgid "" "Perception is the most important stat for ranged combat. It's also used for" " detecting traps and other things of interest." msgstr "" -" A percepção é a estatística mais importante para o combate à distância. " -"Também é usado para detectar armadilhas e outras coisas interessantes." #: src/player_display.cpp msgid "Trap detection level:" -msgstr "Nível de detecção de armadilhas:" +msgstr "" #: src/player_display.cpp msgid "Aiming penalty:" -msgstr "Apontando a penalidade:" +msgstr "" #: src/player_display.cpp msgid "Weight:" @@ -208958,11 +189025,11 @@ msgstr "" #: src/player_display.cpp msgid "Base Move Cost:" -msgstr "Custo de movimento base:" +msgstr "" #: src/player_display.cpp msgid "Current Speed:" -msgstr "Velocidade atual:" +msgstr "" #: src/player_display.cpp #, c-format @@ -209006,67 +189073,57 @@ msgstr "" #: src/player_display.cpp src/veh_interact.cpp msgid "Strength" -msgstr "Força" +msgstr "" #: src/player_display.cpp msgid "Dexterity" -msgstr "Destreza" +msgstr "" #: src/player_display.cpp msgid "Intelligence" -msgstr "Inteligência" +msgstr "" #: src/player_display.cpp msgid "Perception" -msgstr "Percepção" +msgstr "" #: src/player_display.cpp msgid "Severely Malnourished" -msgstr "Severamente Malnutrido" +msgstr "" #: src/player_display.cpp msgid "" "Your body is severely weakened by starvation. You might die if you don't start eating regular meals!\n" " \n" msgstr "" -" Seu corpo está severamente enfraquecido pela fome. Você pode morrer se não começar a fazer refeições regulares! \n" -" \n" #: src/player_display.cpp msgid "" "Your body is weakened by starvation. Only time and regular meals will help you recover.\n" " \n" msgstr "" -" Seu corpo está enfraquecido pela fome. Somente tempo e refeições regulares ajudarão você a se recuperar. \n" -" \n" #: src/player_display.cpp msgid "In Sunlight" -msgstr "Na luz do sol" +msgstr "" #: src/player_display.cpp msgid "" "The sunlight irritates you.\n" "Strength - 1; Dexterity - 1; Intelligence - 1; Perception - 1" msgstr "" -" A luz do sol irrita você. \n" -" Força - 1; Destreza - 1; Inteligência - 1; Percepção - 1\n" #: src/player_display.cpp msgid "" "The sunlight irritates you badly.\n" "Strength - 2; Dexterity - 2; Intelligence - 2; Perception - 2" msgstr "" -" A luz do sol o irrita muito. \n" -" Força - 2; Destreza - 2; Inteligência - 2; Percepção - 2\n" #: src/player_display.cpp msgid "" "The sunlight irritates you terribly.\n" "Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" msgstr "" -" A luz do sol o irrita terrivelmente. \n" -" Força - 4; Destreza - 4; Inteligência - 4; Percepção - 4\n" #. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name #: src/player_display.cpp @@ -209082,7 +189139,7 @@ msgstr "" #: src/player_display.cpp msgid "Cycle to next category" -msgstr "Ciclo para a próxima categoria" +msgstr "" #: src/player_display.cpp msgid "Cycle to previous category" @@ -209090,7 +189147,7 @@ msgstr "" #: src/player_display.cpp msgid "Toggle skill training" -msgstr "Alterne o treinamento de habilidade" +msgstr "" #: src/player_display.cpp #, c-format @@ -209099,287 +189156,279 @@ msgstr "Aperte %s para ajuda." #: src/player_hardcoded_effects.cpp msgid "You feel nauseous." -msgstr "Você está nauseado." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You smell and taste mushrooms." -msgstr "Você cheira e saboreia cogumelos." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You spasm suddenly!" -msgstr "Você espasmo de repente!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You vomit a thick, gray goop." -msgstr "Você vomita uma gosma grossa e cinzenta." +msgstr "" #: src/player_hardcoded_effects.cpp msgid " vomits a thick, gray goop." -msgstr " vomita uma gosma cinza grossa." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You vomit thousands of live spores!" -msgstr "Você vomita milhares de esporos vivos!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid " vomits thousands of live spores!" -msgstr " vomita milhares de esporos vivos!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "The flesh on your broken arms bulges. Fungus stalks burst through!" -msgstr "A carne em seus braços quebrados protrai. Caules de fungos irrompem!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "'s broken arms bulge. Fungus stalks burst out of the bulges!" msgstr "" -" Braços quebrados. Hastes de fungos explodiram das protuberâncias!" #: src/player_hardcoded_effects.cpp msgid "" "The flesh on your broken and unbroken arms bulge. Fungus stalks burst " "through!" msgstr "" -" A carne em seus braços quebrados e ininterruptos protuberantes. Caules de " -"fungos irrompem!" #: src/player_hardcoded_effects.cpp msgid "'s arms bulge. Fungus stalks burst out of the bulges!" msgstr "" -" braços se arregalam. Hastes de fungos explodiram das " -"protuberâncias!" #: src/player_hardcoded_effects.cpp msgid "Your hands bulge. Fungus stalks burst through the bulge!" msgstr "" -"Suas mãos estão inchadas. Caules de fungos explodiram através do bojo!" #: src/player_hardcoded_effects.cpp msgid "'s hands bulge. Fungus stalks burst through the bulge!" msgstr "" -" as mãos estão salientes. Caules de fungos explodiram através do " -"bojo!" #: src/player_hardcoded_effects.cpp msgid "You feel nauseous!" -msgstr "Você se sente nauseado!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You lose some blood." -msgstr "Você perde sangue." +msgstr "" #: src/player_hardcoded_effects.cpp msgid " loses some blood." -msgstr " perde um pouco de sangue." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You feel a little strange." -msgstr "Você se sente estranho." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "The world takes on a dreamlike quality." -msgstr "O mundo assume uma qualidade de sonho." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You have a sudden nostalgic feeling." -msgstr "Você tem um sentimento súbito e nostálgico." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Everything around you is starting to breathe." -msgstr "Tudo ao seu redor está começando a respirar." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Something feels very, very wrong." -msgstr "Algo parece muito, muito errado." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You feel sick to your stomach." -msgstr "Você se sente mal do estômago." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "\"I think it's starting to kick in.\"" -msgstr "'Eu acho que está começando a chutar." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "\"Oh God, what's happening?\"" -msgstr "'Oh Deus, o que está acontecendo?" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "\"Of course... it's all fractals!\"" -msgstr "'Claro ... é tudo fractais!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "\"Huh? What was that?\"" -msgstr "'Huh? O que foi isso?" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Fractal patterns dance across your vision." -msgstr "Padrões fractais dançam através de sua visão." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Dancing fractals distract you." -msgstr "Os fractais dançantes distraem você." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Everything looks SO boring now." -msgstr "Tudo parece tão chato agora." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Things are returning to normal." -msgstr "As coisas estão voltando ao normal." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your thoughts are unclear." -msgstr "Seus pensamentos não são claros." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your face is stiff from the cold." -msgstr "Seu rosto está duro do frio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You quiver from the cold." -msgstr "Você tremer de frio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your torso is freezing cold. You should put on a few more layers." -msgstr "Seu torso está muito frio. Você deve colocar mais algumas camadas." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your shivering makes you unsteady." -msgstr "Seu tremor deixa você instável." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left arm is shivering." -msgstr "Seu braço esquerdo está tremendo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left arm trembles from the cold." -msgstr "Seu braço esquerdo treme do frio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right arm is shivering." -msgstr "Seu braço direito está tremendo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right arm trembles from the cold." -msgstr "Seu braço direito treme do frio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left hand feels like ice." -msgstr "Sua mão esquerda parece gelo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left hand quivers in the cold." -msgstr "Sua mão esquerda treme no frio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right hand feels like ice." -msgstr "Sua mão direita parece gelo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right hand quivers in the cold." -msgstr "Sua mão direita treme no frio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left leg trembles against the relentless cold." -msgstr "Sua perna esquerda treme contra o frio implacável." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your legs uncontrollably shake from the cold." -msgstr "Suas pernas tremem incontrolavelmente do frio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right leg trembles against the relentless cold." -msgstr "Sua perna direita treme contra o frio implacável." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left foot feels frigid." -msgstr "Seu pé esquerdo parece gelado." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left foot is as nimble as a block of ice." -msgstr "Seu pé esquerdo é tão ágil quanto um bloco de gelo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your freezing left foot messes up your balance." -msgstr "Seu pé esquerdo gelado estraga seu equilíbrio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right foot feels frigid." -msgstr "Seu pé direito parece gelado." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right foot is as nimble as a block of ice." -msgstr "Seu pé direito é tão ágil quanto um bloco de gelo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your freezing right foot messes up your balance." -msgstr "Seu pé direito gelado estraga seu equilíbrio." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your head is pounding from the heat." -msgstr "Sua cabeça está batendo do calor." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You are sweating profusely." -msgstr "Você está suando muito." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left hand's too sweaty to grip well." -msgstr "Sua mão esquerda está muito suada para se segurar bem." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right hand's too sweaty to grip well." -msgstr "Sua mão direita está muito suada para se segurar bem." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left leg is cramping up." -msgstr "Sua perna esquerda está se contraindo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right leg is cramping up." -msgstr "Sua perna direita está se contraindo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your left foot is swelling in the heat." -msgstr "Seu pé esquerdo está inchando no calor." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your right foot is swelling in the heat." -msgstr "Seu pé direito está inchando no calor." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "The heat is making you see things." -msgstr "O calor está fazendo você ver as coisas." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You have trouble grasping with your numb fingers." -msgstr "Você tem dificuldade em agarrar com os dedos dormentes." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your foot has gone numb." -msgstr "Seu pé ficou dormente." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your face feels numb." -msgstr "Seu rosto parece entorpecido." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your flesh crawls; insects tear through the flesh and begin to emerge!" -msgstr "Sua carne se arrasta; insetos rasgam a carne e começam a emergir!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Insects begin to emerge from 's skin!" -msgstr "Insetos começam a emergir é a pele!" +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_male" msgid "Dermatik eggs hatched." -msgstr "Ovos Dermatik eclodiram." +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_female" msgid "Dermatik eggs hatched." -msgstr "Ovos Dermatik eclodiram." +msgstr "" #. ~ %s is bodypart in accusative. #: src/player_hardcoded_effects.cpp @@ -209395,200 +189444,186 @@ msgstr "" #: src/player_hardcoded_effects.cpp msgid "Why waste your time on that insignificant speck?" -msgstr "Por que desperdiçar seu tempo com essa mancha insignificante?" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "A monster appears nearby!" -msgstr "Um monstro aparece por perto!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "A portal opens nearby, and a monster crawls through!" -msgstr "Um portal se abre nas proximidades e um monstro se arrasta!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "The bees have started escaping your teeth." -msgstr "As abelhas começaram a escapar dos seus dentes." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You feel paranoid. They're watching you." -msgstr "Você se sente paranóico. Eles estão te observando." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" "You feel like you need less teeth. You pull one out, and it is rotten to " "the core." msgstr "" -" Você sente que precisa de menos dentes. Você puxa um para fora e está podre" -" até o núcleo." #: src/player_hardcoded_effects.cpp msgid "You notice a large abscess. You pick at it." -msgstr "Você percebe um grande abcesso. Você escolhe isso." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" "You feel so sick, like you've been poisoned, but you need more. So much " "more." msgstr "" -" Você se sente tão doente, como se tivesse sido envenenado, mas precisa de " -"mais. Muito mais." #: src/player_hardcoded_effects.cpp msgid "Glowing lights surround you, and you teleport." -msgstr "Luzes brilhantes cercam você e você se teletransporta." +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_male" msgid "Spontaneous teleport." -msgstr "Teletransporte espontâneo." +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_female" msgid "Spontaneous teleport." -msgstr "Teletransporte espontâneo." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You pass out." -msgstr "Você desmaia." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You shudder suddenly." -msgstr "Você estremece de repente." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your vision is filled with bright lights..." -msgstr "Sua visão está cheia de luzes brilhantes ..." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You're suddenly covered in ectoplasm." -msgstr "De repente você está coberto de ectoplasma." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "We have many colonists awaiting passage." -msgstr "Temos muitos colonos à espera de passagem." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your asthma attack stops." -msgstr "Seu ataque de asma para." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" "Your asthma overcomes you.\n" "You asphyxiate." msgstr "" -"Sua asma supera você. \n" -"Você asfixia." #: src/player_hardcoded_effects.cpp msgctxt "memorial_male" msgid "Succumbed to an asthma attack." -msgstr "Sucumbiu a um ataque de asma." +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_female" msgid "Succumbed to an asthma attack." -msgstr "Sucumbiu a um ataque de asma." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You wheeze and gasp for air." -msgstr "Você chiou e ofegou por ar." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your head aches faintly." -msgstr "Sua cabeça doía fracamente." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your vision is getting fuzzy." -msgstr "Sua visão está ficando confusa." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your vision goes black!" -msgstr "Sua visão fica negra!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your bowels ache." -msgstr "Seus intestinos doem." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your veins itch." -msgstr "Suas veias coçam." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your muscles feel like they're knotted and tired." -msgstr "Seus músculos sentem que estão com nó e cansados." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your muscles are tight and sore." -msgstr "Seus músculos estão tensos e doloridos." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your muscles are locking up and you can't fight effectively." -msgstr "Seus músculos estão trancados e você não pode lutar de forma eficaz." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your muscles spasm." -msgstr "Seus músculos se espasam." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" "You're experiencing loss of basic motor skills and blurred vision. Your " "mind recoils in horror, unable to communicate with your spinal column." msgstr "" -" Você está experimentando perda de habilidades motoras básicas e visão " -"turva. Sua mente recua horrorizada, incapaz de se comunicar com sua coluna " -"vertebral." #: src/player_hardcoded_effects.cpp msgid "You stagger and fall!" -msgstr "Você cambaleia e cai!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "There's some kind of big machine in the sky." -msgstr "Há algum tipo de máquina grande no céu." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "It's some kind of electric snake, coming right at you!" -msgstr "É algum tipo de cobra elétrica, vindo direto para você!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" "Order us some golf shoes, otherwise we'll never get out of this place alive." msgstr "" -" Peça-nos alguns sapatos de golfe, senão nunca sairemos vivos desse lugar." #: src/player_hardcoded_effects.cpp msgid "The possibility of physical and mental collapse is now very real." -msgstr "A possibilidade de colapso físico e mental é agora muito real." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "No one should be asked to handle this trip." -msgstr "Ninguém deve ser solicitado a lidar com essa viagem." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" "Your heart spasms painfully and stops, dragging you back to reality as you " "die." msgstr "" -" Seu coração espasmo dolorosamente e pára, arrastando você de volta à " -"realidade enquanto você morre." #: src/player_hardcoded_effects.cpp msgid "" "You dissolve into beautiful paroxysms of energy. Life fades from your " "nebulae and you are no more." msgstr "" -" Você se dissolve em belos paroxismos de energia. A vida desaparece de suas " -"nebulosas e você não é mais." #: src/player_hardcoded_effects.cpp msgctxt "memorial_male" msgid "Died of datura overdose." -msgstr "Morreu de overdose de datura." +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_female" msgid "Died of datura overdose." -msgstr "Morreu de overdose de datura." +msgstr "" #. ~ %s is bodypart name. #: src/player_hardcoded_effects.cpp @@ -209598,54 +189633,52 @@ msgstr "" #: src/player_hardcoded_effects.cpp msgid "You succumb to the infection." -msgstr "Você sucumbe à infecção." +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_male" msgid "Succumbed to the infection." -msgstr "Sucumbiu à infecção." +msgstr "" #: src/player_hardcoded_effects.cpp msgctxt "memorial_female" msgid "Succumbed to the infection." -msgstr "Sucumbiu à infecção." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You feel well rested." -msgstr "Sente-se descansado." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "" "You feel physically rested, but you haven't been able to catch up on your " "missed sleep yet." msgstr "" -" Você se sente fisicamente descansado, mas ainda não conseguiu recuperar o " -"sono perdido." #: src/player_hardcoded_effects.cpp msgid "It's too bright to sleep." -msgstr "Muito claro para dormir." +msgstr "" #: src/player_hardcoded_effects.cpp #, c-format msgid "You see %s approaching!" -msgstr "Você vê %s aproximando!" +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You toss and turn trying to keep warm." -msgstr "Você treme e vira tentando se aquecer." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "It's too cold to sleep." -msgstr "Muito frio para dormir." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "You toss and turn in the heat." -msgstr "Você treme e liga o aquecedor." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "It's too hot to sleep." -msgstr "Muito quente para dormir." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "It looks like you woke up just before your alarm." @@ -209653,15 +189686,15 @@ msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer went off and you haven't slept a wink." -msgstr "Seu cronômetro interno disparou e você não dormiu nada." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer finally wakes you up." -msgstr "Seu cronômetro interno finalmente te acorda." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your internal chronometer wakes you up." -msgstr "Seu cronômetro interno te acorda." +msgstr "" #: src/player_hardcoded_effects.cpp msgid "Your alarm is going off." @@ -209805,30 +189838,30 @@ msgstr "" #: src/ranged.cpp #, c-format msgid "Recoil: %s" -msgstr "Recuo: %s" +msgstr "" #: src/ranged.cpp #, c-format msgid "Firing %s" -msgstr "Atirando %s" +msgstr "" #: src/ranged.cpp #, c-format msgid "Throwing %s" -msgstr "Arremessando %s" +msgstr "" #: src/ranged.cpp #, c-format msgid "Blind throwing %s" -msgstr "Arremessando às cegas %s" +msgstr "" #: src/ranged.cpp msgid "Set target" -msgstr "Defina alvo" +msgstr "" #: src/ranged.cpp msgid "Move cursor to target with directional keys" -msgstr "Mover o cursor para o alvo com as teclas direcionais" +msgstr "" #: src/ranged.cpp #, c-format @@ -209862,11 +189895,11 @@ msgstr "" #: src/ranged.cpp msgid "Mouse: LMB: Target, Wheel: Cycle, RMB: Fire" -msgstr "Mouse: LMB: alvo, roda: ciclo, RMB: fogo" +msgstr "" #: src/ranged.cpp msgid "Steadiness" -msgstr "Estabilidade" +msgstr "" #: src/ranged.cpp #, c-format @@ -209875,7 +189908,7 @@ msgstr "" #: src/ranged.cpp msgid "Current Aim" -msgstr "Objetivo atual" +msgstr "" #: src/ranged.cpp #, c-format @@ -209886,17 +189919,17 @@ msgstr "" #: src/ranged.cpp msgctxt "aim_confidence" msgid "Great" -msgstr "Ótimo" +msgstr "" #: src/ranged.cpp msgctxt "aim_confidence" msgid "Normal" -msgstr "Normal" +msgstr "" #: src/ranged.cpp msgctxt "aim_confidence" msgid "Graze" -msgstr "Pastar" +msgstr "" #: src/ranged.cpp #, c-format @@ -209906,11 +189939,11 @@ msgstr "" #: src/ranged.cpp msgctxt "aim_confidence" msgid "Hit" -msgstr "Acertar" +msgstr "" #: src/ranged.cpp msgid "Regular Aim" -msgstr "Objetivo Regular" +msgstr "" #: src/ranged.cpp #, c-format @@ -209919,7 +189952,7 @@ msgstr "" #: src/ranged.cpp msgid "Careful Aim" -msgstr "Objetivo Cuidadoso" +msgstr "" #: src/ranged.cpp #, c-format @@ -209928,7 +189961,7 @@ msgstr "" #: src/ranged.cpp msgid "Precise Aim" -msgstr "Objetivo preciso" +msgstr "" #: src/ranged.cpp #, c-format @@ -210026,87 +190059,87 @@ msgstr "" #: src/ranged.cpp msgid "Thunk!" -msgstr "Thunk!" +msgstr "" #: src/ranged.cpp msgid "tz-CRACKck!" -msgstr "t-CRACKck!" +msgstr "" #: src/ranged.cpp msgid "Fwoosh!" -msgstr "Fwoosh!" +msgstr "" #: src/ranged.cpp msgid "whizz!" -msgstr "whiz!" +msgstr "" #: src/ranged.cpp msgid "thonk!" -msgstr "Thonk!" +msgstr "" #: src/ranged.cpp msgid "Fzzt!" -msgstr "Fzzt!" +msgstr "" #: src/ranged.cpp msgid "Pew!" -msgstr "Pew!" +msgstr "" #: src/ranged.cpp msgid "Tsewww!" -msgstr "Tsewww!" +msgstr "" #: src/ranged.cpp msgid "Kra-kow!" -msgstr "Kra-kow!" +msgstr "" #: src/ranged.cpp msgid "Bzzt!" -msgstr "Vrumm!" +msgstr "" #: src/ranged.cpp msgid "Bzap!" -msgstr "Bzap!" +msgstr "" #: src/ranged.cpp msgid "Bzaapp!" -msgstr "Bzaapp!" +msgstr "" #: src/ranged.cpp msgid "Kra-koom!" -msgstr "Kra-join!" +msgstr "" #: src/ranged.cpp msgid "Brrrip!" -msgstr "Brrrip!" +msgstr "" #: src/ranged.cpp msgid "plink!" -msgstr "plink!" +msgstr "" #: src/ranged.cpp msgid "Brrrap!" -msgstr "Brrrap!" +msgstr "" #: src/ranged.cpp msgid "P-p-p-pow!" -msgstr "Ppp-pow!" +msgstr "" #: src/ranged.cpp msgid "blam!" -msgstr "blam!" +msgstr "" #: src/ranged.cpp msgid "Kaboom!" -msgstr "Kaboom!" +msgstr "" #: src/ranged.cpp msgid "kerblam!" -msgstr "kerblam!" +msgstr "" #: src/recipe.cpp msgid "none" -msgstr "nenhum" +msgstr "" #: src/recipe.cpp msgid "none" @@ -210190,39 +190223,39 @@ msgstr "NADA" #: src/safemode_ui.cpp msgid " SAFE MODE MANAGER " -msgstr " GERENCIADOR DO MODO DE SEGURANÇA " +msgstr "" #: src/safemode_ui.cpp msgid "Attitude" -msgstr "Atitude" +msgstr "" #: src/safemode_ui.cpp msgid "Dist" -msgstr "Dist" +msgstr "" #: src/safemode_ui.cpp msgid "B/W" -msgstr "P / B" +msgstr "" #: src/safemode_ui.cpp msgid "Safe Mode enabled:" -msgstr "Modo seguro ativado:" +msgstr "" #: src/safemode_ui.cpp msgid "Safe Mode manager currently inactive." -msgstr "Gerenciador de modo de segurança atualmente inativo." +msgstr "" #: src/safemode_ui.cpp msgid "Default rules are used. Add a rule to activate." -msgstr "Regras padrões serão usadas. Adicione uma regra para ativar." +msgstr "" #: src/safemode_ui.cpp msgid "Press ~ to add a default ruleset to get started." -msgstr "Pressione ~ para adicionar um conjunto inicial de regras padrão." +msgstr "" #: src/safemode_ui.cpp msgid "Whitelist" -msgstr "Lista Branca" +msgstr "" #: src/safemode_ui.cpp msgid "" @@ -210235,30 +190268,22 @@ msgid "" "*cid*zo*ie multiple * are allowed\n" "AcI*zO*iE case insensitive search" msgstr "" -" * é usado como um curinga. Alguns exemplos: \n" -" \n" -" humana corresponde a cada NPC \n" -" zombie coincide com o nome do monstro exatamente \n" -" acidic zo * combina com monstros começando com 'acidic zo' \n" -" * mbie combina com monstros que terminam com 'mbie' \n" -" * cid * zo * ie multiple * são permitidos \n" -" AcI * zO * iE busca insensível\n" #: src/safemode_ui.cpp msgid "Safe Mode Rule:" -msgstr "Regra do Modo de Segurança:" +msgstr "" #: src/safemode_ui.cpp msgid "Proximity Distance (0=max view distance)" -msgstr "Distância de Proximidade (0 = distância máxima da vista)" +msgstr "" #: src/safemode_ui.cpp msgid "Option: " -msgstr "Opção:" +msgstr "" #: src/safemode_ui.cpp msgid "No monsters loaded. Please start a game first." -msgstr "Nenhum monstro carregado. Por favor, comece um jogo primeiro." +msgstr "" #: src/safemode_ui.cpp #, c-format @@ -210269,15 +190294,15 @@ msgstr[1] "" #: src/safemode_ui.cpp msgid "Lists monsters regardless of their attitude." -msgstr "Lista de monstros independentemente do comportamento deles" +msgstr "" #: src/safemode_ui.cpp msgid "Safe Mode is not enabled in the options. Enable it now?" -msgstr "Modo de Segurança não está habilitado. Ativá-lo agora?" +msgstr "" #: src/safemode_ui.cpp msgid "safemode configuration" -msgstr "configuração de segurança" +msgstr "" #: src/savegame.cpp #, c-format @@ -210288,7 +190313,7 @@ msgstr "" #: src/scenario.cpp msgid "Almost all" -msgstr "Quase tudo" +msgstr "" #: src/scenario.cpp msgid "Limited" @@ -210298,12 +190323,10 @@ msgstr "Limitado" msgid "" "Sets which video display will be used to show the game. Requires restart." msgstr "" -" Define qual exibição de vídeo será usada para mostrar o jogo. Requer " -"reinicialização." #: src/sounds.cpp msgid "Your eardrums suddenly ache!" -msgstr "Seus ouvidos doem repentinamente!" +msgstr "" #: src/sounds.cpp msgid "Something is making noise." @@ -210322,34 +190345,32 @@ msgstr "" #: src/sounds.cpp #, c-format msgid "You hear %1$s" -msgstr "Você escuta %1$s" +msgstr "" #: src/sounds.cpp msgid "Your alarm clock finally wakes you up." -msgstr "Finalmente você acorda com o despertador." +msgstr "" #: src/sounds.cpp msgid "Your alarm clock wakes you up." -msgstr "Seu despertador te acorda." +msgstr "" #: src/sounds.cpp msgid "Your alarm clock goes off and you haven't slept a wink." -msgstr "Seu despertador dispara e você não dormiu nada." +msgstr "" #: src/sounds.cpp msgid "You turn off your alarm-clock." -msgstr "Você desliga seu despertador." +msgstr "" #: src/sounds.cpp msgid "a sound" -msgstr "um barulho" +msgstr "" #: src/start_location.cpp msgid "" "Unable to generate a valid starting location, please report this failure." msgstr "" -" Não é possível gerar um local de partida válido, por favor informe essa " -"falha." #: src/string_input_popup.cpp msgid "d: delete history" @@ -210357,7 +190378,7 @@ msgstr "d: Apagar histórico" #: src/translations.cpp msgid "Select your language" -msgstr "Selecione sua linguagem" +msgstr "" #. ~ Space-separated list of grammatical genders. Default should be first. #. ~ Use short names and try to be consistent between languages as far as @@ -210377,21 +190398,21 @@ msgstr "" #: src/trapfunc.cpp msgid "You step on some bubble wrap!" -msgstr "Você pisa em um plástico bolha!" +msgstr "" #: src/trapfunc.cpp msgid " steps on some bubble wrap!" -msgstr " pisa em plástico bolha!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on bubble wrap." -msgstr "Pisou no plástico bolha" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped on bubble wrap." -msgstr "Pisou no plástico bolha" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210427,7 +190448,7 @@ msgstr "" #: src/trapfunc.cpp #, c-format msgid "The %s stumbles over the cot" -msgstr "O %s tropeça no berço" +msgstr "" #: src/trapfunc.cpp msgid "SNAP!" @@ -210436,20 +190457,20 @@ msgstr "SNAP!" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Caught by a beartrap." -msgstr "Pego por uma armadilha de urso." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Caught by a beartrap." -msgstr "Pego por uma armadilha de urso." +msgstr "" #: src/trapfunc.cpp msgid "A bear trap closes on your foot!" -msgstr "Armadilha de urso fecha em seu pé!" +msgstr "" #: src/trapfunc.cpp msgid "A bear trap closes on 's foot!" -msgstr "Armadilha de urso fecha no pé de !" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210459,20 +190480,20 @@ msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." -msgstr "Pisou em uma placa cravada." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped on a spiked board." -msgstr "Pisou em uma placa cravada." +msgstr "" #: src/trapfunc.cpp msgid "You step on a spiked board!" -msgstr "Você pisa em uma prancha cravada!" +msgstr "" #: src/trapfunc.cpp msgid " steps on a spiked board!" -msgstr " passos em uma prancha cravada!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210482,20 +190503,20 @@ msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." -msgstr "Pisou em um caltrop." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped on a caltrop." -msgstr "Pisou em um caltrop." +msgstr "" #: src/trapfunc.cpp msgid "You step on a sharp metal caltrop!" -msgstr "Você pisa em um caltrop metálico afiado!" +msgstr "" #: src/trapfunc.cpp msgid " steps on a sharp metal caltrop!" -msgstr " passos em um caltrop metal afiada!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210522,25 +190543,25 @@ msgstr "" #: src/trapfunc.cpp msgid "The shards shatter!" -msgstr "Os fragmentos quebram!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Tripped on a tripwire." -msgstr "Tropeçou em um tripwire." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Tripped on a tripwire." -msgstr "Tropeçou em um tripwire." +msgstr "" #: src/trapfunc.cpp msgid "You trip over a tripwire!" -msgstr "Você tropeça em um tripwire!" +msgstr "" #: src/trapfunc.cpp msgid " trips over a tripwire!" -msgstr " viagens ao longo de um tripwire!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210554,35 +190575,35 @@ msgstr "" #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" -msgstr "Você dispara uma armadilha de besta!" +msgstr "" #: src/trapfunc.cpp msgid " triggers a crossbow trap!" -msgstr " desencadeia uma armadilha de besta!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a crossbow trap." -msgstr "Acionou uma armadilha de besta." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a crossbow trap." -msgstr "Acionou uma armadilha de besta." +msgstr "" #. ~ %s is bodypart #: src/trapfunc.cpp #, c-format msgid "Your %s is hit!" -msgstr "Seu(ua) %s é acertado!" +msgstr "" #: src/trapfunc.cpp msgid "You dodge the shot!" -msgstr "Você desvia do tiro!" +msgstr "" #: src/trapfunc.cpp msgid " dodges the shot!" -msgstr " desvia do tiro!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210596,7 +190617,7 @@ msgstr "" #: src/trapfunc.cpp msgid "Kerblam!" -msgstr "Kerblam!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210605,26 +190626,26 @@ msgstr "" #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" -msgstr "Você dispara uma armadilha de espingarda!" +msgstr "" #: src/trapfunc.cpp msgid " triggers a shotgun trap!" -msgstr " desencadeia uma armadilha de espingarda!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a shotgun trap." -msgstr "Acionou uma armadilha de espingarda." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a shotgun trap." -msgstr "Acionou uma armadilha de espingarda." +msgstr "" #: src/trapfunc.cpp #, c-format msgid "A shotgun fires and hits the %s!" -msgstr "Uma espingarda atira e acerta o(a) %s!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210633,25 +190654,25 @@ msgstr "" #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" -msgstr "Uma lâmina sai e corta seu tronco!" +msgstr "" #: src/trapfunc.cpp msgid "A blade swings out and hacks s torso!" -msgstr "Uma lâmina sai e hacks s torso!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a blade trap." -msgstr "Acionou uma armadilha de lâmina." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a blade trap." -msgstr "Acionou uma armadilha de lâmina." +msgstr "" #: src/trapfunc.cpp msgid "Snap!" -msgstr "Snap!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210660,21 +190681,21 @@ msgstr "" #: src/trapfunc.cpp msgid "A snare closes on your leg." -msgstr "Uma armadilha se fecha em sua perna." +msgstr "" #: src/trapfunc.cpp msgid "A snare closes on s leg." -msgstr "Uma armadilha se fecha s perna." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a light snare." -msgstr "Acionou uma armadilha de luz." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a light snare." -msgstr "Acionou uma armadilha de luz." +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210694,67 +190715,67 @@ msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a heavy snare." -msgstr "Acionou uma armadilha pesada." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a heavy snare." -msgstr "Acionou uma armadilha pesada." +msgstr "" #: src/trapfunc.cpp msgid "You trigger a land mine!" -msgstr "Você aciona uma mina terrestre!" +msgstr "" #: src/trapfunc.cpp msgid " triggers a land mine!" -msgstr " desencadeia uma mina terrestre!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a land mine." -msgstr "Pisei em uma mina terrestre." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped on a land mine." -msgstr "Pisei em uma mina terrestre." +msgstr "" #: src/trapfunc.cpp msgid "You trigger a booby trap!" -msgstr "Você dispara uma armadilha!" +msgstr "" #: src/trapfunc.cpp msgid " triggers a booby trap!" -msgstr " desencadeia uma armadilha!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a booby trap." -msgstr "Acionou uma armadilha." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a booby trap." -msgstr "Acionou uma armadilha." +msgstr "" #. ~ the sound of a telepad functioning #: src/trapfunc.cpp msgid "vvrrrRRMM*POP!*" -msgstr "vvrrrRRMM * POP! *" +msgstr "" #: src/trapfunc.cpp msgid "The air shimmers around you..." -msgstr "O ar brilha ao seu redor ..." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a teleport trap." -msgstr "Acionou uma armadilha de teletransporte." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a teleport trap." -msgstr "Acionou uma armadilha de teletransporte." +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210763,56 +190784,56 @@ msgstr "" #: src/trapfunc.cpp msgid "You step in a puddle of thick goo." -msgstr "Você pisa em uma poça de gosma grossa." +msgstr "" #: src/trapfunc.cpp msgid " steps in a puddle of thick goo." -msgstr " passos em uma poça de gosma grossa." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into thick goo." -msgstr "Entrou na gosma grossa." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped into thick goo." -msgstr "Entrou na gosma grossa." +msgstr "" #: src/trapfunc.cpp msgid "The acidic goo eats away at your feet." -msgstr "A gosma ácida corrói seus pés." +msgstr "" #: src/trapfunc.cpp msgid "BEEPBOOP! Please remove non-organic object." -msgstr "BEEPBOOP! Por favor, remova o objeto não orgânico." +msgstr "" #: src/trapfunc.cpp msgid "The dissector lights up, and shuts down." -msgstr "O dissecador acende e desliga." +msgstr "" #. ~ the sound of a dissector dissecting #: src/trapfunc.cpp msgid "BRZZZAP!" -msgstr "BRZZZAP!" +msgstr "" #: src/trapfunc.cpp msgid "Electrical beams emit from the floor and slice your flesh!" -msgstr "Feixes elétricos emitem do chão e cortam sua carne!" +msgstr "" #: src/trapfunc.cpp msgid "Electrical beams emit from the floor and slice s flesh!" -msgstr "Feixes elétricos emitem do chão e cortam s carne!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a dissector." -msgstr "Entrou em um dissecador." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped into a dissector." -msgstr "Entrou em um dissecador." +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210821,37 +190842,35 @@ msgstr "" #: src/trapfunc.cpp msgid " falls in a pit!" -msgstr " cai em um buraco!" +msgstr "" #: src/trapfunc.cpp msgid "You fall in a pit!" -msgstr "Você cai em um buraco!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Fell in a pit." -msgstr "Caiu em um buraco." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Fell in a pit." -msgstr "Caiu em um buraco." +msgstr "" #: src/trapfunc.cpp msgid "You flap your wings and flutter down gracefully." -msgstr "Você bate as asas e se agita graciosamente." +msgstr "" #: src/trapfunc.cpp msgid "" "You hit the ground hard, but your shock absorbers handle the impact " "admirably!" msgstr "" -" Você bateu no chão com força, mas seus amortecedores lidam com o impacto de" -" maneira admirável!" #: src/trapfunc.cpp msgid "You land nimbly." -msgstr "Você pousa com agilidade." +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210860,25 +190879,25 @@ msgstr "" #: src/trapfunc.cpp msgid "You fall in a spiked pit!" -msgstr "Você cai em um buraco cravado!" +msgstr "" #: src/trapfunc.cpp msgid " falls in a spiked pit!" -msgstr " cai em um poço cravado!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Fell into a spiked pit." -msgstr "Caiu em um poço cravado." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Fell into a spiked pit." -msgstr "Caiu em um poço cravado." +msgstr "" #: src/trapfunc.cpp msgid "You avoid the spikes within." -msgstr "Você evita os picos dentro." +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210887,29 +190906,29 @@ msgstr "" #: src/trapfunc.cpp msgid "The spears break!" -msgstr "As lanças quebram!" +msgstr "" #: src/trapfunc.cpp msgid "You fall in a pit filled with glass shards!" -msgstr "Você cai em um buraco cheio de cacos de vidro!" +msgstr "" #: src/trapfunc.cpp msgid " falls in pit filled with glass shards!" -msgstr " cai no poço cheio de cacos de vidro!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Fell into a pit filled with glass shards." -msgstr "Caiu em um buraco cheio de cacos de vidro." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Fell into a pit filled with glass shards." -msgstr "Caiu em um buraco cheio de cacos de vidro." +msgstr "" #: src/trapfunc.cpp msgid "You avoid the glass shards within." -msgstr "Você evita os cacos de vidro dentro." +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210929,12 +190948,12 @@ msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into lava." -msgstr "Entrou na lava." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped into lava." -msgstr "Entrou na lava." +msgstr "" #: src/trapfunc.cpp #, c-format @@ -210943,21 +190962,20 @@ msgstr "" #: src/trapfunc.cpp msgid "You fail to attach it..." -msgstr "Você não consegue anexá-lo ..." +msgstr "" #: src/trapfunc.cpp msgid "There's nowhere to pull yourself to, and you sink!" -msgstr "Não há para onde se mexer e você afunda!" +msgstr "" #: src/trapfunc.cpp msgid "You pull yourself to safety!" -msgstr "Você puxa-se para a segurança!" +msgstr "" #: src/trapfunc.cpp msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr "" -" passos em um sumidouro, mas consegue puxar-se para a segurança." #: src/trapfunc.cpp #, c-format @@ -210967,67 +190985,62 @@ msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." -msgstr "Entrou em um buraco." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped into a sinkhole." -msgstr "Entrou em um buraco." +msgstr "" #: src/trapfunc.cpp msgid "" "You step into a sinkhole! Throw your grappling hook out to try to catch " "something?" msgstr "" -" Você entra em um buraco! Jogue seu gancho para tentar pegar alguma coisa?" #: src/trapfunc.cpp msgid "" "You step into a sinkhole! Throw your whip out to try and snag something?" msgstr "" -" Você entra em um buraco! Jogue o seu chicote para tentar pegar alguma " -"coisa?" #: src/trapfunc.cpp msgid "" "You step into a sinkhole! Throw your rope out to try to catch something?" msgstr "" -" Você entra em um buraco! Jogue sua corda para fora para tentar pegar alguma" -" coisa?" #: src/trapfunc.cpp msgid "The sinkhole collapses!" -msgstr "O sumidouro desmorona!" +msgstr "" #: src/trapfunc.cpp msgid "A sinkhole under collapses!" -msgstr "Um sumidouro sob colapsos!" +msgstr "" #: src/trapfunc.cpp msgid "You fall into the sinkhole!" -msgstr "Você cai no buraco!" +msgstr "" #: src/trapfunc.cpp msgid " falls into a sinkhole!" -msgstr " cai em um sumidouro!" +msgstr "" #: src/trapfunc.cpp msgid "You fall down a level!" -msgstr "Você cai de um nível!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Fell down a ledge." -msgstr "Caiu uma borda." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Fell down a ledge." -msgstr "Caiu uma borda." +msgstr "" #: src/trapfunc.cpp msgid " falls down a level!" -msgstr " cai um nível!" +msgstr "" #: src/trapfunc.cpp #, c-format @@ -211036,116 +191049,116 @@ msgstr "" #: src/trapfunc.cpp msgid " flaps their wings and flutters down gracefully." -msgstr " bate as asas e se agita graciosamente." +msgstr "" #: src/trapfunc.cpp msgid "You step on a loose tile, and water starts to flood the room!" -msgstr "Você pisa em uma telha solta, e a água começa a inundar a sala!" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a flood trap." -msgstr "Acionou uma armadilha de inundação." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a flood trap." -msgstr "Acionou uma armadilha de inundação." +msgstr "" #: src/trapfunc.cpp msgid "You hear the grinding of shifting rock." -msgstr "Você ouve a moagem de rock inconstante." +msgstr "" #: src/trapfunc.cpp msgid "You're bathed in radiation!" -msgstr "Você está banhado em radiação!" +msgstr "" #: src/trapfunc.cpp msgid "A blinding flash strikes you!" -msgstr "Um brilho cegante te atinge!" +msgstr "" #: src/trapfunc.cpp msgid "Small flashes surround you." -msgstr "Pequenos brilhos te cercam." +msgstr "" #. ~ a quiet humming sound #: src/trapfunc.cpp msgid "hrm" -msgstr "HRM" +msgstr "" #. ~ a humming sound #: src/trapfunc.cpp msgid "hrmmm" -msgstr "hrmmm" +msgstr "" #. ~ a loud humming sound #: src/trapfunc.cpp msgid "HRMMM" -msgstr "hrmmm" +msgstr "" #. ~ a very loud humming sound #: src/trapfunc.cpp msgid "VRMMMMMM" -msgstr "VRMMMMMM" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a shadow trap." -msgstr "Acionou uma armadilha de sombra." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a shadow trap." -msgstr "Acionou uma armadilha de sombra." +msgstr "" #: src/trapfunc.cpp msgid "You feel your life force sapping away." -msgstr "Você sente sua força vital se esvaindo." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a life-draining trap." -msgstr "Acionou uma armadilha para drenar a vida." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a life-draining trap." -msgstr "Acionou uma armadilha para drenar a vida." +msgstr "" #. ~ the sound a snake makes #: src/trapfunc.cpp msgid "ssssssss" -msgstr "ssssssss" +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Triggered a shadow snake trap." -msgstr "Acionou uma armadilha de cobra sombria." +msgstr "" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Triggered a shadow snake trap." -msgstr "Acionou uma armadilha de cobra sombria." +msgstr "" #: src/trapfunc.cpp msgid "A shadowy snake forms nearby." -msgstr "Uma cobra sombria se forma por perto." +msgstr "" #: src/turret.cpp msgid "Set turret targeting" -msgstr "Definir segmentação da torre" +msgstr "" #: src/turret.cpp msgid "Can't aim turrets: all turrets are offline" -msgstr "Não é possível mirar torres: todas as torres estão offline" +msgstr "" #: src/turret.cpp msgid "Aim which turret?" -msgstr "Aponte qual torre?" +msgstr "" #: src/turret.cpp msgid "None of the turrets are available to fire." -msgstr "Nenhuma das torretas está disponível para disparar." +msgstr "" #: src/turret.cpp #, c-format @@ -211179,17 +191192,14 @@ msgid "" "normal worlds. Weird things might happen when you load this save. You have " "been warned." msgstr "" -" Você está salvando um tutorial - o mundo do tutorial não possui certos " -"recursos dos mundos normais. Coisas estranhas podem acontecer quando você " -"carrega este save. Você foi avisado." #: src/veh_interact.cpp msgid "Select part" -msgstr "Selecione parte" +msgstr "" #: src/veh_interact.cpp msgid "Skills required:\n" -msgstr "Habilidades requeridas:\n" +msgstr "" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is skill name, and %3$i is skill level @@ -211220,15 +191230,15 @@ msgstr "" #: src/veh_interact.cpp msgid "Funnels need to be installed over a tank." -msgstr "Os funis precisam ser instalados em um tanque." +msgstr "" #: src/veh_interact.cpp msgid "Can't install turret on another turret." -msgstr "Não é possível instalar a torre em outra torre." +msgstr "" #: src/veh_interact.cpp msgid "Additional requirements:\n" -msgstr " Requisitos adicionais: \n" +msgstr "" #. ~ %1$s represents the internal color name which shouldn't be translated, #. %2$s is skill name, and %3$i is skill level @@ -211266,11 +191276,11 @@ msgstr "" #: src/veh_interact.cpp msgid "Cannot install any part here." -msgstr "Não é possível instalar qualquer parte aqui." +msgstr "" #: src/veh_interact.cpp msgid "Choose new part to install here:" -msgstr "Escolha uma nova peça para instalar aqui:" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" @@ -211280,7 +191290,7 @@ msgstr "Tudo" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "Cargo" -msgstr "Cobrar" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" @@ -211290,62 +191300,62 @@ msgstr "Luz" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "Util" -msgstr "útil" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "Hull" -msgstr "casco" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "Internal" -msgstr "interno" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "Other" -msgstr "De outros" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "Filter" -msgstr "Filtro" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "A" -msgstr "[Partes do Veículo] A" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "C" -msgstr "[Partes do Veículo] C" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "L" -msgstr "[Partes do Veículo] L" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "U" -msgstr "[Partes do Veículo] U" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "H" -msgstr "[Partes do Veículo] H" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "I" -msgstr "[Partes do Veículo] I" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" msgid "O" -msgstr "[Partes do Veículo] O" +msgstr "" #: src/veh_interact.cpp msgctxt "Vehicle Parts|" @@ -211354,11 +191364,11 @@ msgstr "F" #: src/veh_interact.cpp msgid "Search for part" -msgstr "Pesquisar por parte" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to construct..." -msgstr "Sua moral é muito baixa para construir ..." +msgstr "" #: src/veh_interact.cpp msgid "It's too dark to see what you are doing..." @@ -211366,7 +191376,7 @@ msgstr "" #: src/veh_interact.cpp msgid "You can't install parts while driving." -msgstr "Você não pode instalar peças durante a condução." +msgstr "" #: src/veh_interact.cpp msgid "Installing this part will make the vehicle unfoldable. Continue?" @@ -211374,55 +191384,55 @@ msgstr "" #: src/veh_interact.cpp msgid "Choose shape:" -msgstr "Escolha a forma:" +msgstr "" #: src/veh_interact.cpp msgid "There are no damaged parts on this vehicle." -msgstr "Não há peças danificadas neste veículo." +msgstr "" #: src/veh_interact.cpp msgid "Choose a part here to repair:" -msgstr "Escolha uma parte aqui para reparar:" +msgstr "" #: src/veh_interact.cpp msgid "This part cannot be repaired" -msgstr "Esta parte não pode ser reparada" +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to repair..." -msgstr "Sua moral é muito baixa para reparar ..." +msgstr "" #: src/veh_interact.cpp msgid "You can't repair stuff while driving." -msgstr "Você não pode consertar coisas enquanto estiver dirigindo." +msgstr "" #: src/veh_interact.cpp msgid "Your morale is too low to mend..." -msgstr "Sua moral é baixa demais para consertar ..." +msgstr "" #: src/veh_interact.cpp msgid "No faulty parts require mending." -msgstr "Nenhuma peça com defeito requer conserto." +msgstr "" #: src/veh_interact.cpp msgid "You can't mend stuff while driving." -msgstr "Você não pode consertar coisas enquanto estiver dirigindo." +msgstr "" #: src/veh_interact.cpp msgid "Choose a part here to mend:" -msgstr "Escolha uma parte aqui para consertar:" +msgstr "" #: src/veh_interact.cpp msgid "No parts can currently be refilled" -msgstr "Atualmente, nenhuma peça pode ser recarregada" +msgstr "" #: src/veh_interact.cpp msgid "Select part to refill:" -msgstr "Selecione parte para reabastecer:" +msgstr "" #: src/veh_interact.cpp msgid "You cannot recharge a vehicle battery with handheld batteries" -msgstr "Você não pode recarregar uma bateria de veículo com baterias de mão" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211431,15 +191441,15 @@ msgstr "" #: src/veh_interact.cpp msgid "Fuel Use" -msgstr "Uso de Combustível" +msgstr "" #: src/veh_interact.cpp msgid "Tanks" -msgstr "Tanques" +msgstr "" #: src/veh_interact.cpp msgid "Contents Qty" -msgstr "Conteúdo Qtdde" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211453,11 +191463,11 @@ msgstr "" #: src/veh_interact.cpp msgid "Capacity Status" -msgstr "Status da capacidade" +msgstr "" #: src/veh_interact.cpp msgid "Reactors" -msgstr "Reatores" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211471,19 +191481,19 @@ msgstr "" #: src/veh_interact.cpp msgid "Turrets" -msgstr "Torres" +msgstr "" #: src/veh_interact.cpp msgid "Ammo Qty" -msgstr "Quantia de Munição" +msgstr "" #: src/veh_interact.cpp msgid "Seats" -msgstr "Bancos" +msgstr "" #: src/veh_interact.cpp msgid "Who" -msgstr "Quem" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211492,11 +191502,11 @@ msgstr "" #: src/veh_interact.cpp msgid "'{' to scroll up" -msgstr "'{' para rolar para cima" +msgstr "" #: src/veh_interact.cpp msgid "'}' to scroll down" -msgstr "'}' para rolar para baixo" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211534,49 +191544,47 @@ msgstr "" #: src/veh_interact.cpp msgid "No parts here." -msgstr "Nenhuma parte aqui." +msgstr "" #: src/veh_interact.cpp msgid "Choose a part here to remove:" -msgstr "Escolha uma parte aqui para remover:" +msgstr "" #: src/veh_interact.cpp msgid "You cannot remove that part while something is attached to it." -msgstr "Você não pode remover essa parte enquanto algo estiver anexado a ela." +msgstr "" #: src/veh_interact.cpp msgid "Better not remove something while driving." -msgstr "Melhor não remover algo enquanto estiver dirigindo." +msgstr "" #: src/veh_interact.cpp msgid "The vehicle has no liquid fuel left to siphon." -msgstr "O veículo não tem combustível líquido para sifão." +msgstr "" #: src/veh_interact.cpp msgid "You need a hose to siphon liquid fuel." msgstr "" -" Você precisa de um mangueira para extrair o " -"combustível líquido." #: src/veh_interact.cpp msgid "You can't siphon from a moving vehicle." -msgstr "Você não pode sugar de um veículo em movimento." +msgstr "" #: src/veh_interact.cpp msgid "Select part to siphon: " -msgstr "Selecione a peça para sifão:" +msgstr "" #: src/veh_interact.cpp msgid "The vehicle has no solid fuel left to remove." -msgstr "O veículo não tem combustível sólido para remover." +msgstr "" #: src/veh_interact.cpp msgid "You can't unload from a moving vehicle." -msgstr "Você não pode descarregar de um veículo em movimento." +msgstr "" #: src/veh_interact.cpp msgid "There is no wheel to change here." -msgstr "Não há roda para mudar aqui." +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211595,29 +191603,27 @@ msgstr "" #: src/veh_interact.cpp msgid "Who is driving while you work?" -msgstr "Quem está dirigindo enquanto você trabalha?" +msgstr "" #: src/veh_interact.cpp msgid "Choose wheel to use as replacement:" -msgstr "Escolha o volante para usar como substituto:" +msgstr "" #: src/veh_interact.cpp msgid "Need at least one seat and an ally to assign crew members." msgstr "" -" Precisa de pelo menos um assento e um aliado para designar membros da " -"tripulação." #: src/veh_interact.cpp msgid "Assign crew positions:" -msgstr "Atribuir posições de tripulação:" +msgstr "" #: src/veh_interact.cpp msgid "Select crew member" -msgstr "Selecione um membro da tripulação" +msgstr "" #: src/veh_interact.cpp msgid "Clear assignment" -msgstr "Tarefa clara" +msgstr "" #: src/veh_interact.cpp msgid "There are no parts here to label." @@ -211629,54 +191635,54 @@ msgstr "Nova categoria:" #: src/veh_interact.cpp msgid "disabled" -msgstr " Desativado " +msgstr "" #: src/veh_interact.cpp msgid "lack" -msgstr " falta " +msgstr "" #: src/veh_interact.cpp msgid "unbalanced" -msgstr " desequilibrado " +msgstr "" #: src/veh_interact.cpp msgid "no steering" -msgstr " sem direção " +msgstr "" #: src/veh_interact.cpp msgid "broken steering" -msgstr " direção quebrada " +msgstr "" #: src/veh_interact.cpp msgid "poor steering" -msgstr " má direção " +msgstr "" #: src/veh_interact.cpp msgid "enough" -msgstr " o suficiente " +msgstr "" #: src/veh_interact.cpp msgid "leaks" -msgstr " vazamentos " +msgstr "" #: src/veh_interact.cpp msgid "swims" -msgstr " nada " +msgstr "" #: src/veh_interact.cpp #, c-format msgid "Wheels/boat: %s/%s" -msgstr "Rodas/barco: %s/%s" +msgstr "" #: src/veh_interact.cpp #, c-format msgid "Boat: %s" -msgstr "Barco: %s" +msgstr "" #: src/veh_interact.cpp #, c-format msgid "Wheels: %s" -msgstr "Rodas: %s" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211684,8 +191690,6 @@ msgid "" "Safe/Top Speed: %3d/%3d " "%s" msgstr "" -" Velocidade Segura/Máxima: %3d/ " -"%3d %s" #. ~ /t means per turn #: src/veh_interact.cpp @@ -211704,12 +191708,12 @@ msgstr "" #: src/veh_interact.cpp #, c-format msgid "Water Acceleration: %3d %s/t" -msgstr "Aceleração da água: %3d %s/t" +msgstr "" #: src/veh_interact.cpp #, c-format msgid "Mass: %5.0f %s" -msgstr "Massa: %5.0f %s" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211719,19 +191723,19 @@ msgstr "" #: src/veh_interact.cpp msgid "Status:" -msgstr "Status:" +msgstr "" #: src/veh_interact.cpp msgid "Most damaged:" -msgstr "Muito danificado:" +msgstr "" #: src/veh_interact.cpp msgid "Most damaged (can't repair):" -msgstr "Muito danificado (impossível reparar):" +msgstr "" #: src/veh_interact.cpp msgid "Needs repair:" -msgstr "Precisa de reparo:" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211777,7 +191781,7 @@ msgstr "consetar" #: src/veh_interact.cpp msgid "end" -msgstr "eendar" +msgstr "" #: src/veh_interact.cpp msgid "reill" @@ -211793,7 +191797,7 @@ msgstr "usar ifão" #: src/veh_interact.cpp msgid "unloa" -msgstr "escarregar" +msgstr "" #: src/veh_interact.cpp msgid "hange tire" @@ -211801,7 +191805,7 @@ msgstr "mudar pneu" #: src/veh_interact.cpp msgid "cre" -msgstr "equipe" +msgstr "" #: src/veh_interact.cpp msgid "rname" @@ -211861,35 +191865,35 @@ msgstr "Barulho" #: src/veh_interact.cpp msgid "NoisRed" -msgstr "NoisRed" +msgstr "" #: src/veh_interact.cpp msgid "Noise Reduction" -msgstr "Redução de Ruído" +msgstr "" #: src/veh_interact.cpp msgid "Dia" -msgstr "Dia" +msgstr "" #: src/veh_interact.cpp msgid "Wheel Diameter" -msgstr "Diâmetro da Roda" +msgstr "" #: src/veh_interact.cpp msgid "Wdt" -msgstr "Wdt" +msgstr "" #: src/veh_interact.cpp msgid "Wheel Width" -msgstr "Largura da roda" +msgstr "" #: src/veh_interact.cpp msgid "Electric Power" -msgstr "Energia elétrica" +msgstr "" #: src/veh_interact.cpp msgid "Epwr" -msgstr "Epwr" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211915,11 +191919,11 @@ msgstr "Pode abrir" #: src/veh_interact.cpp msgid "BatCap" -msgstr "BatCap" +msgstr "" #: src/veh_interact.cpp msgid "Battery Capacity" -msgstr "Capacidade de carga" +msgstr "" #: src/veh_interact.cpp #, c-format @@ -211944,15 +191948,15 @@ msgstr "Usar que gizmo?" #: src/veh_interact.cpp msgid "Select tank to siphon:" -msgstr "Selecione tanque para sifonar:" +msgstr "" #: src/veh_interact.cpp msgid "Remove what?" -msgstr "Remover o quê?" +msgstr "" #: src/veh_interact.cpp msgid "The vehicle has no charged plutonium cells." -msgstr "O veículo não tem células de plutónio carregadas." +msgstr "" #: src/veh_interact.cpp #, c-format @@ -212019,7 +192023,7 @@ msgstr "" #: src/veh_type.cpp msgid "Description\n" -msgstr " Descrição \n" +msgstr "" #: src/veh_type.cpp #, c-format @@ -212064,39 +192068,39 @@ msgstr "" #: src/vehicle.cpp msgid "Remove attached alternator first." -msgstr "Remova o alternador conectado primeiro." +msgstr "" #: src/vehicle.cpp msgid "Remove attached seatbelt first." -msgstr "Remova o cinto de segurança preso primeiro." +msgstr "" #: src/vehicle.cpp msgid "Remove attached curtains first." -msgstr "Remova as cortinas presas primeiro." +msgstr "" #: src/vehicle.cpp msgid "Remove attached part first." -msgstr "Remova a peça anexada primeiro." +msgstr "" #: src/vehicle.cpp msgid "Remove battery from mount first." -msgstr "Remova a bateria da montagem primeiro." +msgstr "" #: src/vehicle.cpp msgid "Remove attached mounted weapon first." -msgstr "Remova a arma montada anexada primeiro." +msgstr "" #: src/vehicle.cpp msgid "Remove carried animal first." -msgstr "Remova o animal carregado primeiro." +msgstr "" #: src/vehicle.cpp msgid "Remove all other attached parts first." -msgstr "Remova todas as outras peças conectadas primeiro." +msgstr "" #: src/vehicle.cpp msgid "Removing this part would split the vehicle." -msgstr "Remover esta parte iria dividir o veículo." +msgstr "" #. ~ %1$s is the vehicle being loaded onto the bicycle rack #: src/vehicle.cpp @@ -212116,7 +192120,7 @@ msgstr "A parte do veículo que você estava trabalhando se foi!" #: src/vehicle.cpp msgid "The vehicle part you were holding has been destroyed!" -msgstr "A parte do veículo que você estava segurando foi destruída!" +msgstr "" #: src/vehicle.cpp #, c-format @@ -212146,35 +192150,35 @@ msgstr "" #: src/vehicle.cpp msgid "hmm" -msgstr "Hmm" +msgstr "" #: src/vehicle.cpp msgid "hummm!" -msgstr "hummm!" +msgstr "" #: src/vehicle.cpp msgid "vroom!" -msgstr "devoto!" +msgstr "" #: src/vehicle.cpp msgid "whirrr!" -msgstr "whirrr!" +msgstr "" #: src/vehicle.cpp msgid "ROARRR!" -msgstr "ROARRR!" +msgstr "" #: src/vehicle.cpp msgid "roarrr!" -msgstr "rugido!" +msgstr "" #: src/vehicle.cpp msgid "BRRROARRR!" -msgstr "BRRROARRR!" +msgstr "" #: src/vehicle.cpp msgid "BRUMBRUMBRUMBRUM!" -msgstr "BRUMBRUMBRUMBRUM!" +msgstr "" #: src/vehicle.cpp #, c-format @@ -212191,7 +192195,7 @@ msgstr "O reator de %s morreu!" #: src/vehicle.cpp #, c-format msgid "The %s's battery dies!" -msgstr "A bateria de %s morreu!" +msgstr "" #: src/vehicle.cpp #, c-format @@ -212240,7 +192244,7 @@ msgstr "O tanque de gasolina da %s explodiu!" #: src/vehicle_display.cpp msgid "More parts here..." -msgstr "Mais partes aqui ..." +msgstr "" #: src/vehicle_display.cpp #, c-format @@ -212261,12 +192265,12 @@ msgstr "" #. ~ indicates that a vehicle part is inside #: src/vehicle_display.cpp msgid "Interior" -msgstr "Interior" +msgstr "" #. ~ indicates that a vehicle part is outside #: src/vehicle_display.cpp msgid "Exterior" -msgstr "Exterior" +msgstr "" #: src/vehicle_display.cpp #, c-format @@ -212275,19 +192279,19 @@ msgstr "Categoria: %s" #: src/vehicle_display.cpp msgid "mL" -msgstr "mL" +msgstr "" #: src/vehicle_display.cpp msgid "kJ" -msgstr "kJ" +msgstr "" #: src/vehicle_display.cpp msgid "full" -msgstr "cheio" +msgstr "" #: src/vehicle_display.cpp msgid "empty" -msgstr "esvaziar" +msgstr "" #: src/vehicle_display.cpp #, c-format @@ -212301,7 +192305,7 @@ msgstr "" #: src/vehicle_group.cpp msgid "pile-up" -msgstr "empilhar" +msgstr "" #: src/vehicle_move.cpp #, c-format @@ -212387,11 +192391,10 @@ msgstr "" #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "" -" Este veículo não tem sistema de direção instalado, você não pode girá-lo." #: src/vehicle_move.cpp msgid "The steering is completely broken!" -msgstr "A direção está completamente quebrada!" +msgstr "" #: src/vehicle_move.cpp #, c-format @@ -212400,11 +192403,11 @@ msgstr "" #: src/vehicle_move.cpp msgid "It takes you a very long time to steer that vehicle!" -msgstr "Leva muito tempo para dirigir esse veículo!" +msgstr "" #: src/vehicle_move.cpp msgid "It takes you a long time to steer that vehicle!" -msgstr "Leva muito tempo para dirigir esse veículo!" +msgstr "" #: src/vehicle_move.cpp #, c-format @@ -212478,12 +192481,12 @@ msgstr "" #: src/vehicle_part.cpp msgid " (faulty)" -msgstr "(defeituoso)" +msgstr "" #: src/vehicle_part.cpp #, c-format msgid " holding %s" -msgstr "segurando %s" +msgstr "" #: src/vehicle_part.cpp #, c-format @@ -212493,22 +192496,22 @@ msgstr "" #: src/vehicle_use.cpp #, c-format msgid "Turn on %s" -msgstr "Liga %s" +msgstr "" #: src/vehicle_use.cpp #, c-format msgid "Turn off %s" -msgstr "Desliga %s" +msgstr "" #: src/vehicle_use.cpp #, c-format msgid "Turned off %s." -msgstr "Desligou %s" +msgstr "" #: src/vehicle_use.cpp #, c-format msgid "Turned on %s" -msgstr "Ligou %s" +msgstr "" #: src/vehicle_use.cpp msgid "Select door to toggle" @@ -212524,51 +192527,51 @@ msgstr "Abrir" #: src/vehicle_use.cpp msgid "Open all curtains" -msgstr "Abrir todas cortinas" +msgstr "" #: src/vehicle_use.cpp msgid "Open all curtains and doors" -msgstr "Abrir todas cortinas e portas" +msgstr "" #: src/vehicle_use.cpp msgid "Close all doors" -msgstr "Fechar todas portas" +msgstr "" #: src/vehicle_use.cpp msgid "Close all curtains and doors" -msgstr "Fechar todas cortinas e portas" +msgstr "" #: src/vehicle_use.cpp msgid "headlights" -msgstr "faroletes" +msgstr "" #: src/vehicle_use.cpp msgid "wide angle headlights" -msgstr "faróis de grande angular" +msgstr "" #: src/vehicle_use.cpp msgid "directed overhead lights" -msgstr "luzes de teto direcionadas" +msgstr "" #: src/vehicle_use.cpp msgid "overhead lights" -msgstr "luzes de teto" +msgstr "" #: src/vehicle_use.cpp msgid "dome lights" -msgstr "luzes de cúpula" +msgstr "" #: src/vehicle_use.cpp msgid "atomic lights" -msgstr "luzes atômicas" +msgstr "" #: src/vehicle_use.cpp msgid "stereo" -msgstr "estéreo" +msgstr "" #: src/vehicle_use.cpp msgid "fridge" -msgstr "geladeira" +msgstr "" #: src/vehicle_use.cpp msgid "space heater" @@ -212580,7 +192583,7 @@ msgstr "" #: src/vehicle_use.cpp msgid "recharger" -msgstr "recarregador" +msgstr "" #: src/vehicle_use.cpp msgid "Turn off camera system" @@ -212604,17 +192607,17 @@ msgstr "Sistema de câmera não liga" #: src/vehicle_use.cpp msgid "Electronics controls" -msgstr "Controles eletrônicos" +msgstr "" #: src/vehicle_use.cpp #, c-format msgid "You turn off the %s's engines to change their configurations." -msgstr "Você desliga os motores de %s para mudar suas configuraçẽos" +msgstr "" #: src/vehicle_use.cpp #, c-format msgid "You change the %s's engine configuration." -msgstr "Você muda a configuração dos motores de %s" +msgstr "" #: src/vehicle_use.cpp msgid "Toggle which?" @@ -212667,19 +192670,19 @@ msgstr "O alarme para." #: src/vehicle_use.cpp msgid "Forget vehicle position" -msgstr "Esquecer a posição do veículo" +msgstr "" #: src/vehicle_use.cpp msgid "Remember vehicle position" -msgstr "Lembrar da posição do veículo" +msgstr "" #: src/vehicle_use.cpp msgid "You stop keeping track of the vehicle position." -msgstr "Você desencana da posição do veículo" +msgstr "" #: src/vehicle_use.cpp msgid "You start keeping track of this vehicle's position." -msgstr "Você fica de olho na posição do veículo" +msgstr "" #: src/vehicle_use.cpp msgid "Stop controlling" @@ -212695,7 +192698,7 @@ msgstr "Deixar os controles" #: src/vehicle_use.cpp msgid "No controls there" -msgstr "Nenhum controle ali" +msgstr "" #: src/vehicle_use.cpp msgid "Stop driving" @@ -212804,12 +192807,12 @@ msgstr "Um(a) %s dobrado(a)." #: src/vehicle_use.cpp #, c-format msgid "You cannot use %s with a broken arm." -msgstr "Você não pode usar %s com o braço quebrado." +msgstr "" #: src/vehicle_use.cpp #, c-format msgid "You cannot use %s with a broken leg." -msgstr "Você não pode usar %s com a perna quebrada." +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -212872,15 +192875,15 @@ msgstr "Você aperta a buzina, mas nada acontece." #: src/vehicle_use.cpp #, c-format msgid "Move how many? [Have %d] (0 to cancel)" -msgstr "Mover quantos? [Tem %d] (0 cancelal)" +msgstr "" #: src/vehicle_use.cpp msgid "a simple melody blaring from the loudspeakers." -msgstr "uma simples melodia estridente nos alto-falantes." +msgstr "" #: src/vehicle_use.cpp msgid "Clanggggg!" -msgstr "Clanggggg!" +msgstr "" #: src/vehicle_use.cpp msgid "Swish" @@ -212888,45 +192891,45 @@ msgstr "Silvo" #: src/vehicle_use.cpp msgid "Clink" -msgstr "tinido" +msgstr "" #: src/vehicle_use.cpp msgid "Cugugugugug" -msgstr "Cugugugugug" +msgstr "" #: src/vehicle_use.cpp msgid "Ker-chunk" -msgstr "Ker-chunk" +msgstr "" #: src/vehicle_use.cpp msgid "Whirrrr" -msgstr "Whirrrr" +msgstr "" #: src/vehicle_use.cpp msgid "BEEEThump" -msgstr "BEEEThump" +msgstr "" #: src/vehicle_use.cpp msgid "BLEEEEEEP" -msgstr "BLEEEEEEP" +msgstr "" #: src/vehicle_use.cpp msgid "NEEeu NEEeu NEEeu" -msgstr "NEEeu NEEeu NEEeu" +msgstr "" #: src/vehicle_use.cpp msgid "WHOOP WHOOP" -msgstr "WHOOP WHOOP" +msgstr "" #: src/vehicle_use.cpp msgid "WREEP" -msgstr "WREEP" +msgstr "" #: src/vehicle_use.cpp msgid "" "You turn the washing machine off before it's finished the program, and open " "its lid." -msgstr "Você desliga a lavadora antes de terminar o programa e abre a tampa." +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -212936,24 +192939,19 @@ msgstr "" #: src/vehicle_use.cpp msgid "You need 5 charges of detergent for the washing machine." -msgstr "Você precisa de 5 cargas de detergente para a máquina de lavar roupa." +msgstr "" #: src/vehicle_use.cpp msgid "" "You need to remove all non-filthy items from the washing machine to start " "the washing program." msgstr "" -" Você precisa remover todos os itens não imundos da máquina de lavar para " -"iniciar o programa de lavagem." #: src/vehicle_use.cpp msgid "" "You pour some detergent into the washing machine, close its lid, and turn it" " on. The washing machine is being filled with water from vehicle tanks." msgstr "" -" Você coloca um pouco de detergente na máquina de lavar, fecha a tampa e a " -"liga. A máquina de lavar roupa está sendo enchida com água dos tanques do " -"veículo." #: src/vehicle_use.cpp msgid "Where is the creature to harness?" @@ -212991,11 +192989,11 @@ msgstr "Examinar veículo" #: src/vehicle_use.cpp msgid "Deactivate the washing machine" -msgstr "Desativar a lavadora" +msgstr "" #: src/vehicle_use.cpp msgid "Activate the washing machine (1.5 hours)" -msgstr "Ativar a lavadora (1,5 horas)" +msgstr "" #: src/vehicle_use.cpp msgid "Use the hotplate" @@ -213011,15 +193009,15 @@ msgstr "Usar o equipamento que está segurando?" #: src/vehicle_use.cpp msgid "Purify water in carried container" -msgstr "Purificar água em recipiente" +msgstr "" #: src/vehicle_use.cpp msgid "Purify water in vehicle tank" -msgstr "Purificar água no tanque do veículo" +msgstr "" #: src/vehicle_use.cpp msgid "Capture or release a creature" -msgstr "Capturar ou soltar uma criatura" +msgstr "" #: src/vehicle_use.cpp msgid "Load or unload a vehicle" @@ -213031,7 +193029,7 @@ msgstr "" #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" -msgstr "Recarregar semeador com sementes" +msgstr "" #: src/vehicle_use.cpp #, c-format @@ -213041,7 +193039,7 @@ msgstr "" #: src/vehicle_use.cpp #, c-format msgid "Purify water in tank" -msgstr "Purificar água no tanque" +msgstr "" #. ~ $1 - vehicle name, $2 - part name #: src/vehicle_use.cpp @@ -213140,7 +193138,7 @@ msgstr "" #: src/weather.cpp msgid "middle of nowhere" -msgstr "meio do nada" +msgstr "" #: src/weather.cpp #, c-format @@ -213201,7 +193199,7 @@ msgstr "%s kPa" #: src/weather.cpp #, c-format msgid "The weather changed to %s!" -msgstr "O clima mudou para %s\"" +msgstr "" #: src/weather_data.cpp msgid "Clear" @@ -213292,7 +193290,7 @@ msgstr "" #: src/wish.cpp #, c-format msgid "[%s] find, [%s] quit, [t] toggle base trait" -msgstr "[%s] procurar, [%s] sair, [t] alternar traço base" +msgstr "" #: src/wish.cpp #, c-format @@ -213317,7 +193315,7 @@ msgstr "" #: src/wish.cpp msgid "Add which flag? Use UPPERCASE letters without quotes" -msgstr "Adicionar qual bandeira? Use letras maiúsculas sem aspas" +msgstr "" #: src/wish.cpp msgid " (contained)" @@ -213325,12 +193323,12 @@ msgstr "(contido)" #: src/wish.cpp msgid " (flagged)" -msgstr "(marcado)" +msgstr "" #: src/wish.cpp #, c-format msgid "[%s] find, [f] container, [F] flag, [%s] quit" -msgstr "[%s] procurar, [f] recipiente, [F] marcar, [%s] sair" +msgstr "" #: src/wish.cpp #, c-format @@ -213344,7 +193342,7 @@ msgstr "Quantos?" #: src/wish.cpp #, c-format msgid "Wish granted. Wish for more or hit [%s] to quit." -msgstr "Desejo realizado. Deseje por mais ou aperte [%s] para sair." +msgstr "" #: src/wish.cpp msgid "Select a skill to modify" @@ -213387,7 +193385,7 @@ msgstr "Adicione 3" #: src/wish.cpp msgid "Set to 0" -msgstr "Definido para 0" +msgstr "" #: src/wish.cpp msgid "Subtract 1" @@ -213415,7 +193413,7 @@ msgstr "Você quer mesmo cancelar a criação do mundo?" #: src/worldfactory.cpp msgid "world data" -msgstr "dado do mundo" +msgstr "" #: src/worldfactory.cpp msgid " WORLD SELECTION " @@ -213424,7 +193422,7 @@ msgstr "SELEÇÃO DE MUNDO" #: src/worldfactory.cpp #, c-format msgid "Page %lu" -msgstr "Página %lu" +msgstr "" #: src/worldfactory.cpp msgid "Pick a world to enter game" @@ -213436,7 +193434,7 @@ msgstr "" #: src/worldfactory.cpp msgid " ACTIVE WORLD MODS " -msgstr "MODS DO MUNDO ATIVO" +msgstr "" #: src/worldfactory.cpp msgid "--NO ACTIVE MODS--" @@ -213461,7 +193459,7 @@ msgstr "Ordem do Carregamento de Mod" #: src/worldfactory.cpp #, c-format msgid "... %s = View full description " -msgstr "... %s = Ver descrição completa" +msgstr "" #: src/worldfactory.cpp msgid "--NO AVAILABLE MODS--" @@ -213495,7 +193493,7 @@ msgstr "" #: src/worldfactory.cpp msgid "________NO NAME ENTERED!________" -msgstr "_____NENHUM NOME INSERIDO!_____" +msgstr "" #: src/worldfactory.cpp msgid "Are you SURE you're finished? World name will be randomly generated." @@ -213509,8 +193507,6 @@ msgid "" "%s = Save Load Order as default. %s = Controls %s/%s = Prev/Next Option. " "%s/%s = Prev/Next Tab." msgstr "" -"%s = Salvar Ordem de Carregar como padrão. %s = Controle %s/%s = Ant/Próx " -"Opção. %s/%s = Ant/Próx Aba." #: src/worldfactory.cpp msgid "World Mods" diff --git a/lang/po/ru.po b/lang/po/ru.po index d48423257fcc2..a47d662ba7f48 100644 --- a/lang/po/ru.po +++ b/lang/po/ru.po @@ -55,8 +55,8 @@ # Darkon Rabbit, 2019 # Jin Velddrinn, 2019 # Midas , 2019 -# WX , 2019 # Антон Бурмистров <22.valiant@gmail.com>, 2019 +# WX , 2019 # msgid "" msgstr "" @@ -64,7 +64,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-07-07 23:49+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Антон Бурмистров <22.valiant@gmail.com>, 2019\n" +"Last-Translator: WX , 2019\n" "Language-Team: Russian (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5519,9 +5519,9 @@ msgstr "" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "crystallized mana" msgid_plural "crystallized mana" -msgstr[0] "Кристаллизованная мана" -msgstr[1] "Кристаллизованных маны" -msgstr[2] "Кристаллизованной маны" +msgstr[0] "Кристализованная мана" +msgstr[1] "Кристализованных маны" +msgstr[2] "Кристализованной маны" msgstr[3] "Кристаллизованная мана" #. ~ Description for crystallized mana @@ -24362,7 +24362,7 @@ msgstr[3] "интересный журнал" msgid "original copy of Housefly" msgid_plural "original copies of Housefly" msgstr[0] "оригинал «Домашней мухи»" -msgstr[1] "оригинала «Домашней мухи»" +msgstr[1] "оригиналов «Домашней мухи»" msgstr[2] "оригиналов «Домашней мухи»" msgstr[3] "оригиналы «Домашней мухи»" @@ -28565,9 +28565,9 @@ msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "irradiated huckleberry" msgid_plural "irradiated huckleberries" -msgstr[0] "облучённая черника" -msgstr[1] "облучённых черники" -msgstr[2] "облучённой черники" +msgstr[0] "облучённая люссакия" +msgstr[1] "облучённая люссакия" +msgstr[2] "облучённая люссакия" msgstr[3] "облучённая черника" #. ~ Description for irradiated huckleberry @@ -34312,9 +34312,9 @@ msgstr "Очень кислый цитрус. Можно съесть, если #: lang/json/COMESTIBLE_from_json.py msgid "handful of blueberries" msgid_plural "handful of blueberries" -msgstr[0] "горсть голубики" -msgstr[1] "горсти голубики" -msgstr[2] "горстей голубики" +msgstr[0] "горсть черники" +msgstr[1] "горсть черники" +msgstr[2] "горсть черники" msgstr[3] "горсть голубики" #. ~ Description for handful of blueberries @@ -34364,9 +34364,9 @@ msgstr "Сладкая красная ягода." #: lang/json/COMESTIBLE_from_json.py msgid "handful of huckleberries" msgid_plural "handful of huckleberries" -msgstr[0] "горсть черники" -msgstr[1] "горсти черники" -msgstr[2] "горстей черники" +msgstr[0] "горсть люссакия" +msgstr[1] "горсть люссакии" +msgstr[2] "горсть люссакии" msgstr[3] "горсть черники" #. ~ Description for handful of huckleberries @@ -40613,7 +40613,7 @@ msgstr "" msgid "foodplace loyalty card" msgid_plural "foodplace loyalty cards" msgstr[0] "скидочная карта «Сядь-и-поешь»" -msgstr[1] "скидочных карты «Сядь-и-поешь»" +msgstr[1] "скидочных карт «Сядь-и-поешь»" msgstr[2] "скидочных карт «Сядь-и-поешь»" msgstr[3] "скидочные карты «Сядь-и-поешь»" @@ -43461,7 +43461,7 @@ msgstr "" msgid "amplifier head" msgid_plural "amplifier heads" msgstr[0] "усилитель НЧ" -msgstr[1] "усилителя НЧ" +msgstr[1] "усилителей НЧ" msgstr[2] "усилителей НЧ" msgstr[3] "усилители НЧ" @@ -46260,7 +46260,7 @@ msgid_plural "sourdough starters" msgstr[0] "хлебная закваска" msgstr[1] "хлебные закваски" msgstr[2] "хлебных заквасок" -msgstr[3] "хлебная закваска" +msgstr[3] "хлебные закваски" #. ~ Description for sourdough starter #: lang/json/GENERIC_from_json.py @@ -73174,7 +73174,7 @@ msgstr "" msgid "cellphone - Flashlight" msgid_plural "cellphones - Flashlight" msgstr[0] "сотовый телефон с фонариком" -msgstr[1] "сотовых телефона с фонариком" +msgstr[1] "сотовых телефонов с фонариком" msgstr[2] "сотовых телефонов c фонариком" msgstr[3] "сотовый телефон с фонариком" @@ -73238,7 +73238,7 @@ msgstr "" msgid "smartphone - Flashlight" msgid_plural "smartphones - Flashlight" msgstr[0] "смартфон с фонариком" -msgstr[1] "смартфона с фонариком" +msgstr[1] "смартфонов с фонариком" msgstr[2] "смартфонов с фонариком" msgstr[3] "смартфоны с фонариком" @@ -78449,10 +78449,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "stone hand axe" msgid_plural "stone hand axes" -msgstr[0] "каменное рубило" -msgstr[1] "каменных рубила" -msgstr[2] "каменных рубил" -msgstr[3] "каменное рубило" +msgstr[0] "каменный топорик" +msgstr[1] "каменных топорика" +msgstr[2] "каменных топориков" +msgstr[3] "каменные топорики" #. ~ Description for stone hand axe #: lang/json/TOOL_from_json.py @@ -78466,10 +78466,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "metal hand axe" msgid_plural "metal hand axes" -msgstr[0] "металлическое рубило" -msgstr[1] "металлических рубила" -msgstr[2] "металлических рубил" -msgstr[3] "металлическое рубило" +msgstr[0] "металлический топорик" +msgstr[1] "металлических топорика" +msgstr[2] "металлических топориков" +msgstr[3] "металлические топорики" #. ~ Description for metal hand axe #: lang/json/TOOL_from_json.py @@ -78486,7 +78486,7 @@ msgstr "" msgid "pin reamer" msgid_plural "pin reamers" msgstr[0] "развёртка" -msgstr[1] "развёртки" +msgstr[1] "развёрток" msgstr[2] "развёрток" msgstr[3] "развёртки" @@ -78503,7 +78503,7 @@ msgstr "" msgid "metal fileset" msgid_plural "metal filesets" msgstr[0] "напильник по металлу" -msgstr[1] "напильника по металлу" +msgstr[1] "напильников по металлу" msgstr[2] "напильников по металлу" msgstr[3] "напильники по металлу" @@ -78865,7 +78865,7 @@ msgstr "" msgid "inactive mininuke hack" msgid_plural "inactive mininuke hacks" msgstr[0] "неактивный мэнхак с ядерной мини-бомбой" -msgstr[1] "неактивных мэнхака с ядерной мини-бомбой" +msgstr[1] "неактивных мэнхаков с ядерной мини-бомбой" msgstr[2] "неактивных мэнхаков с ядерной мини-бомбой" msgstr[3] "неактивный мэнхак с ядерной мини-бомбой" @@ -79807,7 +79807,7 @@ msgid_plural "bread knives" msgstr[0] "хлебный нож" msgstr[1] "хлебных ножа" msgstr[2] "хлебных ножей" -msgstr[3] "хлебный нож" +msgstr[3] "хлебные ножи" #. ~ Description for bread knife #: lang/json/TOOL_from_json.py @@ -82606,7 +82606,7 @@ msgstr "" msgid "Biomancer rune" msgid_plural "Biomancer runes" msgstr[0] "Биомантская руна" -msgstr[1] "Биомантских руны" +msgstr[1] "Биомантских рун" msgstr[2] "Биомантских рун" msgstr[3] "Биомантские руны" @@ -82640,7 +82640,7 @@ msgstr "" msgid "Magus rune" msgid_plural "Magus runes" msgstr[0] "Магическая руна" -msgstr[1] "Магические руны" +msgstr[1] "Магических рун" msgstr[2] "Магических рун" msgstr[3] "Магическая руна" @@ -82657,7 +82657,7 @@ msgstr "" msgid "Earthshaper rune" msgid_plural "Earthshaper runes" msgstr[0] "Земная руна" -msgstr[1] "Земные руны" +msgstr[1] "Земных рун" msgstr[2] "Земных рун" msgstr[3] "Земная руна" @@ -82674,7 +82674,7 @@ msgstr "" msgid "Kelvinist rune" msgid_plural "Kelvinist runes" msgstr[0] "Кельвинистская руна" -msgstr[1] "Кельвинистские руны" +msgstr[1] "Кельвинистских рун" msgstr[2] "Кельвинистских рун" msgstr[3] "Кельвинистская руна" @@ -82691,7 +82691,7 @@ msgstr "" msgid "Stormshaper rune" msgid_plural "Stormshaper runes" msgstr[0] "Буревая руна" -msgstr[1] "Буревые руны" +msgstr[1] "Буревых рун" msgstr[2] "Буревых рун" msgstr[3] "Буревые руны" @@ -82708,7 +82708,7 @@ msgstr "" msgid "Druid rune" msgid_plural "Druid runes" msgstr[0] "Друидическая руна" -msgstr[1] "Друидические руны" +msgstr[1] "Друидических рун" msgstr[2] "Друидических рун" msgstr[3] "Друидические руны" @@ -82725,7 +82725,7 @@ msgstr "" msgid "Animist rune" msgid_plural "Animist runes" msgstr[0] "Анимистская руна" -msgstr[1] "Анимистские руны" +msgstr[1] "Анимистских рун" msgstr[2] "Анимистских рун" msgstr[3] "Анимистские руны" @@ -82742,7 +82742,7 @@ msgstr "" msgid "alchemist rune" msgid_plural "alchemist runes" msgstr[0] "алхимическая руна" -msgstr[1] "алхимические руны" +msgstr[1] "алхимических рун" msgstr[2] "алхимических рун" msgstr[3] "алхимические руны" @@ -103872,7 +103872,7 @@ msgstr "крепление-зажим" msgid "side mount" msgid_plural "side mounts" msgstr[0] "боковое крепление" -msgstr[1] "боковых крепления" +msgstr[1] "боковых креплений" msgstr[2] "боковых креплений" msgstr[3] "боковые крепления" @@ -103949,7 +103949,7 @@ msgstr "" msgid "replaceable stock kit" msgid_plural "replaceable stock kits" msgstr[0] "набор сменных лож" -msgstr[1] "набора сменных лож" +msgstr[1] "наборов сменных лож" msgstr[2] "наборов сменных лож" msgstr[3] "наборы сменных лож" @@ -103975,7 +103975,7 @@ msgstr "крепление ложи" msgid "bottom mount" msgid_plural "bottom mounts" msgstr[0] "нижнее крепление" -msgstr[1] "нижних крепления" +msgstr[1] "нижних креплений" msgstr[2] "нижних креплений" msgstr[3] "нижние крепления" @@ -104064,7 +104064,7 @@ msgstr "" msgid "'solvent trap' suppressor" msgid_plural "'solvent trap' suppressors" msgstr[0] "глушитель из фильтра" -msgstr[1] "глушителя из фильтра" +msgstr[1] "глушителей из фильтра" msgstr[2] "глушителей из фильтра" msgstr[3] "глушители из фильтра" @@ -105287,7 +105287,7 @@ msgstr "" msgid "makeshift sword bayonet" msgid_plural "makeshift sword bayonets" msgstr[0] "самодельный меч-штык" -msgstr[1] "самодельных меч-штыка" +msgstr[1] "самодельных меч-штыков" msgstr[2] "самодельных меч-штыков" msgstr[3] "самодельных меч-штыков" @@ -105429,7 +105429,7 @@ msgid "" msgstr "" "Каждый шаг занимает 100 очков движения (или больше, в зависимости от " "ландшафта); затем вы получаете некоторое количество очков движения в " -"зависимости от множества факторов (нажмите «», чтобы " +"зависимости от множества факторов (нажмите , чтобы " "увидеть точное значение)." #: lang/json/help_from_json.py @@ -105444,11 +105444,11 @@ msgid "" "choose a direction). Smashing down obstacles is much easier with a good " "weapon or a strong character." msgstr "" -"Вы можете найти двери: («+»); они могут быть открыты с помощью " -"«», а закрыты с помощью «». Некоторые двери " -"заперты. Запертые двери, окна и другие препятствия можно разбить " -"(«» и выбрать направление). Разбить препятствия легче с хорошим" -" оружием или сильным персонажем." +"Вы можете найти двери: («+»); они могут быть открыты с помощью ," +" а закрыты с помощью . Некоторые двери заперты. Запертые двери," +" окна и другие препятствия можно разбить ( и выбрать " +"направление). Разбить препятствия легче с хорошим оружием или сильным " +"персонажем." #: lang/json/help_from_json.py msgid "" @@ -105672,7 +105672,7 @@ msgid "" "level before they grow boring." msgstr "" "Есть много вариантов поднятия настроения: чтение интересных книг, вкусная " -"пища, принятие расслабляющих наркотиков и другие. Все стимулирующие мораль " +"пища, принятия расслабляющих наркотиков и другие. Все стимулирующие мораль " "действия, подымают её до определённого уровня, после чего становятся " "скучными." @@ -105725,8 +105725,8 @@ msgid "" msgstr "" "Естественный уровень фокуса — регулируемая номинальная величина. Высокое " "значение фокуса повышает эту величину, низкое — понижает, и, чем текущий " -"фокус дальше от номинала, тем быстрее он будет меняться. Боль учитывается в " -"расчёте номинала — ведь тяжело учиться, когда больно." +"фокус дальше от номинала, тем быстрее он будет меняется. Боль учитывается в " +"расчёте номинала — ведь тяжело учится, когда больно." #: lang/json/help_from_json.py msgid "" @@ -105769,7 +105769,7 @@ msgstr "" "При высоком уровне облучения может произойти мутация. В своём большинстве " "мутации дают негативные эффекты, но немало и полезных. Есть и такие, которые" " имеют и хорошие и плохие свойства. Мутации могут сильно повлиять на стиль " -"игры. Можно найти субстанцию, избавляющую от мутаций, но они очень редки." +"игры. Можно найти субстанцию избавляющую от мутаций, но они очень редки." #: lang/json/help_from_json.py msgid "" @@ -105850,10 +105850,11 @@ msgid "" "try without proper anesthesia - normal drugs won't help." msgstr "" "Для одиноких выживальщиков лучшим способом установки или удаления бионики " -"служит Автодок. Обычно такие стоят в больницах и клиниках (даже в частных). " -"Любая связанная с ними процедура требует набора анестезии. Вы обойдёте это " -"ограничение, если сумеете каким-то образом полностью игнорировать боль. Но " -"даже не пытайтесь обезболить себя препаратами — не поможет." +"служит Автодок. Обычно такие стоят в больницах и клиниках (даже в " +"«неофициальных»). Любая связанная с ними процедура требует набора анестезии." +" Вы обойдёте это ограничение, если сумеете каким-то образом полностью " +"игнорировать боль. Но даже не пытайтесь обезболить себя препаратами — не " +"поможет." #: lang/json/help_from_json.py msgid "" @@ -105920,10 +105921,10 @@ msgid "" "-> Tailoring is used to create basic clothing, and armor later on.\n" "-> Electronics lets you make a wide variety of tools with intricate uses." msgstr "" -"-> Производство является общим навыком ремесленников, используется для изготовления широкого спектра снаряжения.\n" +"-> Производство является общим навыком ремесленников, широко используется .\n" "-> Кулинария, на низких уровнях используется для вкусных рецептов. На высоких — для изготовления оружия и снадобий.\n" "-> Шитьё используется для создания одежды, а позднее брони.\n" -"-> Электроника позволяет изготовить множество сложных инструментов." +"-> Электроника позволяет изготовить множество инструментов." #: lang/json/help_from_json.py msgid "" @@ -105951,7 +105952,7 @@ msgid "" msgstr "" "Изготовление больших или тяжёлых предметов, а также партий предметов лучше " "всего осуществлять за верстаком. Это может быть как обычный стол, так и " -"специальный верстак из металла, способный выдержать большую нагрузку." +"специальный верстак из металла, способный выдержать огромную нагрузку." #: lang/json/help_from_json.py msgid ": Traps" @@ -105980,7 +105981,7 @@ msgid "" "require additional tools, like a shovel, to be set. Once set, a trap will " "remain in place until stepped on or disarmed." msgstr "" -"Для установки ловушки просто используйте её (нажмите «») и " +"Для установки ловушки просто используйте её (нажмите ) и " "укажите направление. Некоторые ловушки требуют для установки инструменты, к " "примеру лопату. Ловушка будет действовать, пока не будет активирована или " "обезврежена." @@ -105994,8 +105995,8 @@ msgid "" "suffering the consequences." msgstr "" "Для обезвреживания ловушки нужно изучить её местоположение (нажмите " -"«»). Вероятность успеха зависит от навыка ловушек и ловкости." -" В случае успеха ловушка будет обезврежена, и на её месте появятся все " +"). Вероятность успеха зависит от навыка ловушек и ловкости. В" +" случае успеха ловушка будет обезврежена, и на её месте появятся все " "компоненты ловушки. Однако в случае неудачи есть вероятность срабатывания " "ловушки с неприятными последствиями." @@ -106023,7 +106024,7 @@ msgid "" msgstr "" "В мире есть множество полезных предметов. Вы можете найти их лежащими на " "земле; нажмите «», чтобы подобрать предметы на своей клетке. " -"Некоторые предметы находятся в контейнерах, обозначающихся символом «{» на " +"Некоторые предметы находятся в контейнерах, обозначающихся символом { на " "синем фоне. Нажмите «» и выберите клавишу направления, чтобы " "обследовать контейнер." @@ -106034,10 +106035,10 @@ msgid "" "superior. You can also access the item comparison menu by pressing C after " " to view nearby items menu is open and an item is selected." msgstr "" -"Нажатие на «» открывает меню сравнения предметов. Выберите " -"две вещи, чтобы увидеть их плюсы и минусы относительно друг друга. Сравнить " -"вещи можно и в окне осмотра близлежащих предметов, нажав «C» при просмотре " -"через «» на любом выделенном предмете." +"Нажатие на открывает меню сравнения предметов. Выберите две " +"вещи, чтобы увидеть их плюсы и минусы относительно друг друга. Сравнить вещи" +" можно и в окне осмотра близлежащих предметов, нажав «C» при просмотре через" +" на любом выделенном предмете." #: lang/json/help_from_json.py msgid "" @@ -106068,8 +106069,8 @@ msgid "" "dropped on the ground if there is no space." msgstr "" "Чтобы взять предмет в руки и использовать его как оружие, нажмите " -"«», затем соответствующую букву, он заменит то, что у вас в " -"руках на данный момент. Вещь в руках не занимает места, это полезно для " +"«», затем соответствующую букву, он заменит то, которое у вас в" +" руках на данный момент. Вещь в руках не занимает места, это полезно для " "ношения больших вещей. Если вы отпустите вещь, она вернётся в инвентарь или " "будет сброшена на землю, если нет свободного места." @@ -106167,12 +106168,12 @@ msgid "" "chambering a round though. Of course all this takes some time, so try not to" " do it if there are monsters nearby." msgstr "" -"Вы можете изъять магазин из оружия, нажав «». Вы можете " -"зарядить этот магазин подходящими боеприпасами, если они имеются у вас в " -"инвентаре. Для этого нажмите «» — игра автоматически вытащит " -"магазин, заполнит его патронами и снова зарядит в оружие. Разумеется, все " -"эти действия требуют времени, так что постарайтесь не делать этого, если " -"рядом будут монстры." +"Вы можете изъять магазин из оружия, нажав . Вы можете зарядить" +" этот магазин подходящими боеприпасами, если они имеются у вас в инвентаре. " +"Для этого нажмите — игра автоматически вытащит магазин, " +"заполнит его патронами и снова зарядит в оружие. Разумеется, все эти " +"действия требуют времени, так что постарайтесь не делать этого, если рядом " +"будут монстры." #: lang/json/help_from_json.py msgid "" @@ -106201,8 +106202,8 @@ msgid "" msgstr "" "Обратите внимание, что, хотя существует несколько типов боеприпасов для " "данного калибра и типа магазина, вы не можете смешивать и сопоставлять эти " -"типы в одном магазине. Например, вы не можете зарядить 9x19 мм JHP и 9x19 мм" -" FMJ-патроны в тот же магазин, так как в нем всегда требуются одинаковые " +"типы в одном магазине. Например, вы не можете загружать 9x19 мм JHP и 9x19 " +"мм FMJ-патроны в тот же магазин, так как в нем всегда требуются одинаковые " "патроны для заряжания." #: lang/json/help_from_json.py @@ -106230,12 +106231,12 @@ msgid "" ". Firing continuously, especially in bursts, will " "severely reduce accuracy." msgstr "" -"Чтобы выстрелить, нажмите «», подведите курсор на необходимый " +"Чтобы выстрелить, нажмите , подведите курсор на необходимый " "тайл, затем нажмите «.» или «f». Вы также можете использовать " "предопределенные уровни прицеливания, нажимая «a», «c» или «p». Некоторые " "виды оружия имеют несколько видов стрельбы, например, стрельба очередью. " -"Чтобы поменять режим стрельбы, нажмите «». Учтите, " -"что стрельба без перерыва, особенно очередью, значительно снижает точность." +"Чтобы поменять режим стрельбы, нажмите . Учтите, что" +" стрельба без перерыва, особенно очередью, значительно снижает точность." #: lang/json/help_from_json.py msgid "" @@ -106277,12 +106278,12 @@ msgid "" "accidentally wielding weapons taken from the ground, enable \"Keep hands " "free\" found in the styles menu." msgstr "" -"Чтобы сменить боевой стиль, нажмите «». Некоторые стили " +"Чтобы сменить боевой стиль, нажмите . Некоторые стили " "используются только без оружия, другие совместимы с оружием или требуют " "определённого вида оружия. Если ваше текущее оружие подходит под выбранный " "стиль, вы сразу же начнёте его использовать. В противном случае будет " "использован ваш стиль по умолчанию. Чтобы начать использовать его, возьмите " -"в руки соответствующее оружие или освободите руки, нажав «», " +"в руки соответствующее оружие или освободите руки, нажав , " "затем клавишу предмета, который у вас в руках. Если вы хотите предотвратить " "случайное использование оружия, поднятого с земли, включите «Держать руки " "свободными» в меню стилей." @@ -106309,7 +106310,7 @@ msgstr "" "У многих стилей есть уникальные эффекты, разблокируемые при определённых " "условиях. Эффекты варьируются в диапазоне, от специальных комбо, до " "различных бонусов, выдаваемых в зависимости от ситуации. Всё это можно " -"узнать, проверив стиль." +"узнать проверив стиль." #: lang/json/help_from_json.py msgid ": Survival tips" @@ -106352,9 +106353,9 @@ msgid "" "enemies. Irregular terrain, like forests, may help you lose monsters." msgstr "" "Не деритесь с несколькими противниками одновременно. Баррикадируйте дверные " -"проёмы. Станьте напротив окна и бейте зомби, пока он перелезает через " -"подоконник. Убегайте, если у вас преимущество в скорости. Двигаясь по " -"пересечённой местности, вы быстро оторвётесь от преследователей." +"проёмы. Станьте напротив окна и бейте зомби пока он перелазит. Убегайте если" +" у вас преимущество в скорости. Двигаясь по пересечённой местности, вы " +"быстро оторвётесь от преследователей." #: lang/json/help_from_json.py msgid "" @@ -106414,9 +106415,9 @@ msgid "" "article of clothing." msgstr "" "Ваша одежда может относиться к одному из пяти слоёв на вашем теле: " -"нательная, обычная, на поясе, верхняя и пристёгнутая. Вы можете носить " -"только один предмет каждого слоя на части тела без каких-либо штрафов " -"скованности за слишком много носимых вещей. Любой предмет, помимо первого, " +"прилегающая к коже, обычная, на поясе поверх и пристёгнутая. Вы можете " +"носить только один предмет каждого слоя на части тела без каких-либо штрафов" +" скованности за слишком много носимых вещей. Любой предмет, помимо первого, " "на каждом слое добавит дополнительное очко к скованности части тела. " "Минимальный штраф к скованности за каждый элемент одежды — 2, максимальный —" " 10." @@ -106429,11 +106430,11 @@ msgid "" "on a tank top it would conflict with the leather touring suit and add the " "minimum encumbrance penalty of 2." msgstr "" -"Например, на торсе персонаж может носить кожаный корсет (нательный), кожаный" -" костюм для вождения (обычный), тренч (верхний) и беговой рюкзак " -"выживальщика (пристёгнутый). Её штраф скованности равен 0. Если она наденет " -"майку, то это будет конфликтовать с костюмом для вождения и добавит " -"минимальный штраф скованности в 2 очка." +"Например, на торсе персонаж может носить кожаный корсет (нижний), кожаный " +"костюм для вождения (обычный), тренч (верхний) и беговой рюкзак выживальщика" +" (пристёгнутый). Её штраф скованности равен 0. Если она наденет майку, то " +"это будет конфликтовать с костюмом для вождения и добавит минимальный штраф " +"скованности в 2 очка." #: lang/json/help_from_json.py msgid ": Vehicles and Driving" @@ -106458,11 +106459,11 @@ msgid "" msgstr "" "Для управления транспортом нужно, находясь на месте с исправным " "«управлением транспортом» и «сиденьем», нажать «». " -"После этого: «» — газ, «» — тормоз или задний ход, " -"«» и «» — поворот влево/вправо. Диагональные " -"клавиши корректируют курс и скорость. Круиз-контроль по умолчанию включён, " -"так что газ/тормоз будет устанавливать скорость, которую будет стараться " -"поддерживать автомобиль." +"После этого: — газ, — тормоз или задний ход, " +" и — поворот влево/вправо. Диагонали корректируют " +"курс и скорость. Круиз-контроль по умолчанию включён, так что газ/тормоз " +"будет устанавливать скорость, которую будет стараться поддерживать " +"автомобиль." #: lang/json/help_from_json.py msgid "" @@ -106498,7 +106499,7 @@ msgid "" "sensitive, but normally has descriptions of the vehicle parts in the tile " "highlighted in the vehicle view on the left." msgstr "" -"При осмотре («») транспорта появится окно взаимодействия с " +"При осмотре () транспорта появится окно взаимодействия с " "транспортом. В левой панели находится вид вашего транспорта сверху и каждой " "его части. В средней панели находится сводка об установленных двигателях, " "батареях, баках, оружии и сиденьях. Содержимое правой панели варьируется, но" @@ -106548,9 +106549,9 @@ msgid "" msgstr "" "Сопротивление воздуха возрастает при увеличении ширины транспорта или " "наличии деталей, увеличивающих высоту — кузовов, проходов или турелей. Также" -" оно возрастает при ухудшении аэродинамичности, например, если есть открытые" -" сиденья или кузов спереди транспорта. Сопротивление воздуха сильно влияет " -"на скорость, особенно при высоких скоростях." +" возрастает при уменьшении аэродинамичности, например, открытые сиденья или " +"кузов спереди транспорта. Сопротивление воздуха сильно влияет на скорость, " +"особенно при высоких скоростях." #: lang/json/help_from_json.py msgid "" @@ -106576,7 +106577,7 @@ msgid "" "vehicle. Water drag has enormous effect on vehicle speed in the water. See" " the section on water vehicles for more about draft and water drag." msgstr "" -"На транспорт, способный перемещаться по воде, действует сопротивление воды. " +"У транспорта, способного перемещаться по воде, имеется сопротивление воды. " "Оно возрастает с шириной и осадкой транспорта, а осадка возрастает с массой," " но уменьшается при добавлении лодочных корпусов и расширении или удлинении " "транспорта. Сопротивление воды сильно влияет на скорость транспорта на воде." @@ -106620,7 +106621,7 @@ msgid "" msgstr "" "Опытные выживальщики могут добавлять или снимать части с транспорта при " "помощи гаечных ключей, пил и сварки. Вы даже можете собрать транспорт с нуля" -" с помощью меню Строительства («») и опции «Начать " +" с помощью меню Строительства () и опции «Начать " "постройку транспорта» при наличии рамы. Улучшение скорости, потребления " "топлива, проходимости по бездорожью и грузоподъёмности транспорта — " "непростая задача." @@ -106706,9 +106707,9 @@ msgid "" "These are all consumed by using . They provide a certain amount of nutrition, quench your thirst, may be a stimulant or a depressant, and may provide morale. There may also be more subtle effects." msgstr "" "~ Жидкость\n" -"% Пища\n" +"%% Пища\n" "! Медикаменты\n" -"Все эти предметы можно употребить с помощью «». Они дают определённое чувство сытости, утоления жажды, могут стимулировать либо успокаивать. Также они могут влиять на моральный дух и давать другие эффекты." +"Все эти предметы можно употребить с помощью . Они дают определённое чувство сытости, утоления жажды, могут стимулировать либо успокаивать. Также они могут влиять на моральный дух и давать другие эффекты." #: lang/json/help_from_json.py msgid "" @@ -106736,7 +106737,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 "" @@ -106744,7 +106745,7 @@ msgid "" "This weapon may be loaded with ammunition with , unloaded with , and fired with . Some have automatic fire, which may be used with at a penalty to accuracy. The color refers to the type; handguns are gray, shotguns are red, submachine guns are cyan, rifles are brown, assault rifles are blue, and heavy machine guns are light red. Each has a dispersion rating, a bonus to damage, a rate of fire, and a maximum load. Note that most firearms load fully in one action, while shotguns must be loaded one shell at a time." msgstr "" "( Огнестрельное оружие\n" -"Оружие может быть заряжено («»), разряжено («») и применено («»). У некоторых образцов есть режим автоматического огня («»), но страдает точность. От типа оружия зависит его цвет: пистолеты серые, ружья красные, пистолеты-пулемёты голубые, винтовки коричневые, штурмовые винтовки синие, тяжёлые пулемёты ярко-красные. Каждое оружие имеет свои показатели урона, скорострельности, кучности и других. Заметьте, что большинство оружия заряжается за раз, тогда как дробовики заряжаются по одному патрону за раз." +"Оружие может быть заряжено (), разряжено () и применено (). У некоторых образцов есть режим автоматического огня (), но страдает точность. От типа оружия зависит его цвет: пистолеты серые, ружья красные, пистолеты-пулемёты голубые, винтовки коричневые, штурмовые винтовки синие, тяжёлые пулемёты ярко-красные. Каждое оружие имеет свои показатели урона, скорострельности, кучности и других. Заметьте, что большинство оружия заряжается за раз, тогда как дробовики заряжаются по одному патрону за раз." #: lang/json/help_from_json.py msgid "" @@ -106818,7 +106819,7 @@ msgid "" "R River - Most creatures can not swim across " "them, but you may." msgstr "" -"R Река — большинство существ не могут переплывать реки, " +"R Река — большинство существ не могут плыть через реку, " "в отличие от вас." #: lang/json/help_from_json.py @@ -106826,8 +106827,8 @@ msgid "" "O Parking lot - Empty lot, few items. " "Mostly useless." msgstr "" -"O Стоянка — пустырь, мало предметов. В большинстве " -"случаев бесполезная." +"O Стоянка — пустырь, несколько предметов. В " +"большинстве случаев бесполезная." #: lang/json/help_from_json.py msgid "" @@ -106944,7 +106945,7 @@ msgid "" msgstr "" "( Арбалеты\n" "Главное достоинство арбалетов — бесшумность. Болты, выпущенные с них, зачастую остаются целыми и их стоит подбирать. К недостаткам относятся: низкая дальнобойность и медленная перезарядка (зависит от вашей силы), плюс — он же минус — большинство арбалетов однозарядны.\n" -"Из-за этого лучше носить с собой несколько заряженных арбалетов. Арбалеты сложно найти, но, при достаточном уровне механики, их можно изготовить. Можно изготовить и деревянные болты из любой подходящей древесины. Стальные болты намного эффективнее деревянных. Арбалеты используют навык Пистолеты." +"Из-за этого лучше носить с собой несколько заряженных арбалетов. Арбалеты сложно найти но, при достаточном уровне механики, их можно изготовить. Можно изготовить и деревянные болты из любой подходящей древесины. Стальные болты намного эффективнее деревянных. Арбалеты используют навык Пистолеты." #: lang/json/help_from_json.py msgid "" @@ -106964,7 +106965,7 @@ msgid "" msgstr "" "( Дробовики\n" "Дробовики, вероятно, самый убойный тип огнестрельного оружия в игре, способный уложить почти любого врага с одного выстрела. Дробь полезна против групп монстров, но неэффективна против бронированных противников, для которых дробь слишком слаба. Свинцовые пули (жаканы) решают эту проблему; также у них больше поражающий радиус, чем у дроби.\n" -"Самым большим недостатком дробовиков является шум и невозможность применения глушителя. Выстрел из дробовика в одного противника может привлечь ещё трёх! Имейте это в виду." +"Самым большим недостатком дробовиков является шум. Выстрел из дробовика в одного противника может привлечь трёх! Имейте это в виду." #: lang/json/help_from_json.py msgid "" @@ -107007,7 +107008,7 @@ msgid "" msgstr "" "( Энергетическое оружие\n" "Термин «Энергетическое оружие» используется для описания всех видов вооружения, стреляющих лазером, плазмой или чистой энергией. Энергооружие поступило на вооружение армии практически перед апокалипсисом, поэтому его трудно найти.\n" -"Энергооружие не имеет отдачи, почти бесшумно, дальнобойно и довольно мощно. Самый большой недостаток энергетического оружия — это сильная нехватка боеприпасов. Так что не тратьте их без надобности." +"Энергооружие не имеет отдачи, почти бесшумно, дальнострельно и довольно мощно. Самый большой недостаток энергетического оружия — это сильная нехватка боеприпасов. Так что не тратьте их без надобности." #: lang/json/help_from_json.py msgid "<4>: FAQ (contains spoilers!)" @@ -107050,7 +107051,7 @@ msgid "" "Q: How can I prevent monsters from attacking while I sleep?\n" "A: Find a safe place to sleep, for example in a cleared building far from the front door. Set traps if you have them, or build a fire." msgstr "" -"В: Как мне защититься от атак монстров во сне?\n" +"В: Как мне защитится от атак монстров во сне?\n" "О: Найдите безопасное место для сна, например в зачищенном помещении подальше от входной двери; неподалёку поставьте ловушки или разведите огонь." #: lang/json/help_from_json.py @@ -107059,7 +107060,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." msgstr "" "В: Почему я всегда тону, когда пытаюсь плыть?\n" -"О: Навык плавания значительно понижается, если вы несёте много веса. Одежда может испортиться в воде, так что лучше её снять. Пока не достигнете высокого показателя плавания, необходимо выкидывать вещи и одежду; используйте воду как последний путь для спасения." +"О: Навык плаванья значительно понижается, если вы несёте много веса. Одежда может испортиться в воде, так что лучше её снять. Пока не достигнете высокого показателя плаванья, необходимо выкидывать вещи и одежду, используйте воду как последний аргумент выживания." #: lang/json/help_from_json.py msgid "" @@ -107067,7 +107068,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 "" @@ -107119,10 +107120,10 @@ msgid "" " .308 (7.62) - for even more powerful rifles. Also good long range option.\n" " It should be enough in the beginning. Or even just grab any shotgun, fill it with buckshot and give them hell!" msgstr "" -"В: В игре слишком много калибров и пушек. Я запутался — не понимаю, что к чему подходит.\n" +"В: В игре слишком много калибров и пушек. Я запутался - я не понимаю, что к чему подходит.\n" "О: Попробуйте запомнить несколько калибров: \n" "9x19 (или просто 9мм) — для самых простых пистолетов (например, Глок) и пистолетов-пулемётов, они часто встречаются и полезны против обычных зомби;\n" -" Дробь 00 — крупная, для большинства дробовиков. Наносит очень высокий урон небронированным целям на близкой дистанции;\n" +" Дробь 00 — для большинства дробовиков. Наносит очень высокий урон небронированным целям на близкой дистанции;\n" " .223 (5.56) — для винтовок. Хороши для стрельбы на дальние дистанции.\n" " .308 (7.62) — для винтовок помощнее. Тоже хороши для дальней дистанции.\n" " Для начала этого достаточно. Или просто возьмите любой дробовик, набейте его дробью и задайте всем жару!" @@ -113519,8 +113520,8 @@ msgstr "" "Не хочу тебя расстраивать, но я, скорее всего, не смогу ничего сделать с " "бухгалтерией. Но у меня есть одно решение: в книге описана ячейка в сейфе на" " имя регионального менеджера. И угадай что? Этот тупой неудачник написал там" -" свой код. Пошли со мной, вскроем ячейку и ты сможешь забрать оттуда всё, " -"что я не могу использовать как обвинения против этих ублюдков." +" свой код. Пошли со мной вскроем ячейку и ты сможешь забрать оттуда всё, что" +" я не могу использовать как обвинения против этих ублюдков." #: lang/json/mission_def_from_json.py msgid "You may make a tidy profit from this." @@ -141982,8 +141983,8 @@ msgstr "Не каждый может выжить в машине, летяще msgid "" "Rotten food typically attracts bugs, and bugs got a lot bigger recently..." msgstr "" -"Гнилая пища привлекает падальщиков, а их стало гораздо больше в последнее " -"время…" +"Сгнившая пища привлекает падальщиков, так что либо заранее уничтожайте " +"сгнившее, либо устраивайте засадную охоту." #: lang/json/snippet_from_json.py msgid "" @@ -169564,17 +169565,17 @@ msgstr "промахивается, но продолжает бить #: lang/json/technique_from_json.py msgid "stumble" -msgstr "спотыкаться" +msgstr "" #: lang/json/technique_from_json.py #, python-format msgid "You stumble %s with your onslaught" -msgstr "Вы спотыкаетесь о %s при атаке" +msgstr "" #: lang/json/technique_from_json.py #, python-format msgid " stumbles %s" -msgstr " спотыкается о %s" +msgstr "" #: lang/json/technique_from_json.py msgid "Receive and Counter" @@ -175832,15 +175833,15 @@ 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/trap_from_json.py msgid "glass shards" @@ -186987,7 +186988,7 @@ msgstr "Нет семян" #: src/clzones.cpp msgid "No construction" -msgstr "Нет построек" +msgstr "" #: src/clzones.cpp msgid "Construct: " @@ -186995,7 +186996,7 @@ msgstr "Строить: " #: src/clzones.cpp msgid "No Construction" -msgstr "Нет строительства" +msgstr "" #: src/clzones.cpp msgid "Plant seed: " @@ -189260,7 +189261,7 @@ msgstr "Побочные продукты:" #: src/crafting_gui.cpp msgid "Press to attempt to craft object." -msgstr ": Крафт." +msgstr "Нажмите , чтобы попытаться изготовить объект." #: src/crafting_gui.cpp #, c-format @@ -190076,7 +190077,7 @@ msgstr "[h] установить очки здоровья" #: src/debug_menu.cpp msgid "Set [S]tamina" -msgstr "Установить выносливость («S»)" +msgstr "" #: src/debug_menu.cpp msgid "Set m[o]rale" @@ -190124,7 +190125,7 @@ msgstr "Установить Отношение [A]" #: src/debug_menu.cpp msgid "Set [O]pinion" -msgstr "Установить отношение («O»)" +msgstr "" #: src/debug_menu.cpp msgid "Maximum strength" @@ -190519,7 +190520,7 @@ msgstr "Уровень активности игрока: %s" #: src/debug_menu.cpp #, c-format msgid "Kill xp: %d" -msgstr "Опыт от убийств: %d" +msgstr "" #: src/debug_menu.cpp #, c-format @@ -191273,7 +191274,7 @@ msgstr " [крыша]" #: src/editmap.cpp #, c-format msgid "field: %s L:%d[%s] A:%d" -msgstr "область: %s L:%d[%s] A:%d" +msgstr "" #: src/editmap.cpp #, c-format @@ -194493,7 +194494,7 @@ msgstr "У вас в руках нет оружия дальнего боя." #: src/game.cpp msgid "Watch the last moments of your life...?" -msgstr "Смотреть последние минуты вашей жизни?.." +msgstr "Смотреть последние минуты вашей жизни…?" #: src/game.cpp msgid "Loading files" @@ -197452,7 +197453,7 @@ msgstr "Построить участки" #: src/handle_action.cpp msgid "Work on any nearby Blueprint: construction zones" -msgstr "Работа над любым близлежащим проектом: зоны строительства" +msgstr "" #: src/handle_action.cpp msgid "You need a tool to dig with." @@ -197545,7 +197546,7 @@ msgstr "Неизвестная команда: «%s» (%ld)" msgid "" "%s at any time to see and edit keybindings relevant to the current context." msgstr "" -"%s в любой момент для просмотра и изменения горячих клавиш в текущем " +"%sв любой момент для просмотра и изменения горячих клавиш в текущем " "контексте." #: src/handle_action.cpp @@ -200169,11 +200170,11 @@ msgstr "Переключить предмет как избранный" #: src/inventory_ui.cpp msgid "Home" -msgstr "В начало" +msgstr "Дом" #: src/inventory_ui.cpp msgid "End" -msgstr "В конец" +msgstr "Конец" #: src/inventory_ui.cpp msgid "Category selection mode" @@ -201159,8 +201160,6 @@ msgid "" "This item is a magical focus. You can cast spells with it in " "your hand." msgstr "" -"Этот предмет — магический. Вы можете читать заклинания, держа " -"его в руке." #: src/item.cpp #, c-format @@ -204781,7 +204780,7 @@ msgstr "Коллекция монстров пуста." #: src/iuse.cpp msgid "Download data from memory card" -msgstr "Скачать данные с карты памяти" +msgstr "Скачать данные на карту памяти." #: src/iuse.cpp msgid "Decrypt memory card" @@ -208006,7 +208005,7 @@ msgstr "сброс" #: src/iuse_software_lightson.cpp src/iuse_software_minesweeper.cpp #: src/iuse_software_snake.cpp src/iuse_software_sokoban.cpp msgid "uit" -msgstr " - выход" +msgstr "выход" #: src/iuse_software_lightson.cpp msgid "Game goal: Switch all the lights on." @@ -208441,7 +208440,7 @@ msgstr "телесный" #: src/magic.cpp msgid "impeded by gloves" -msgstr "с затруднениями из-за перчаток" +msgstr "" #: src/magic.cpp msgid "does not require hands" @@ -208481,23 +208480,23 @@ msgstr "до след. уровня" #: src/magic.cpp msgid "Casting Cost" -msgstr "Стоимость каста" +msgstr "" #: src/magic.cpp msgid "Casting Cost (impeded)" -msgstr "Стоимость каста (затрудн.)" +msgstr "" #: src/magic.cpp msgid "Casting Time" -msgstr "Время каста" +msgstr "" #: src/magic.cpp msgid "Casting Time (impeded)" -msgstr "Время каста (затрудн.)" +msgstr "" #: src/magic.cpp msgid "Valid Targets" -msgstr "Достижимые цели" +msgstr "" #: src/magic.cpp src/veh_interact.cpp msgid "Damage" @@ -208509,19 +208508,19 @@ msgstr "Исцеление" #: src/magic.cpp msgid "Variance" -msgstr "Отклонение" +msgstr "" #: src/magic.cpp msgid "Spawn" -msgstr "Порождение" +msgstr "" #: src/magic.cpp msgid "Summon" -msgstr "Призыв" +msgstr "" #: src/magic.cpp msgid "Spell Radius" -msgstr "Радиус заклинания" +msgstr "" #: src/magic.cpp src/veh_interact.cpp msgid "Range" @@ -208529,7 +208528,7 @@ msgstr "Дальность" #: src/magic.cpp msgid "self" -msgstr "себя" +msgstr "" #: src/magic.cpp msgid "Duration" @@ -208541,39 +208540,39 @@ msgstr "Выберите заклинание" #: src/magic.cpp msgid "AoE" -msgstr "область эффекта" +msgstr "" #: src/magic.cpp msgid "Spawned" -msgstr "Порожденный" +msgstr "" #: src/magic.cpp msgid "Recover" -msgstr "Восстановить" +msgstr "" #: src/magic.cpp msgid "Damage Type" -msgstr "Тип урона" +msgstr "" #: src/magic.cpp msgid "Stat Gain" -msgstr "Прирост характеристик" +msgstr "" #: src/magic.cpp msgid "lvl 0" -msgstr "ур. 0" +msgstr "" #: src/magic.cpp msgid "per lvl" -msgstr "за ур." +msgstr "" #: src/magic.cpp msgid "max lvl" -msgstr "макс ур." +msgstr "" #: src/magic.cpp msgid "Cast Cost" -msgstr "Стоимость каста" +msgstr "" #: src/magic.cpp msgid "Cast Time" @@ -209319,7 +209318,7 @@ msgstr "просто" #: src/martialarts.cpp msgid "moderately hard" -msgstr "непросто" +msgstr "несложно" #: src/martialarts.cpp msgid "hard" @@ -214162,9 +214161,8 @@ msgid "" "\n" "Continue anyways?" msgstr "" -"Персонаж с именем «%s» уже существует в этом мире. Сохранение перепишет старого персонажа новым.\n" -"\n" -"Все равно продолжить?" +"Персонаж с именем «%s» уже существует в этом мире. Сохранение перепишет " +"старого персонажа новым." #: src/newcharacter.cpp msgid "Last Character" @@ -219026,11 +219024,11 @@ msgstr "Боль: " #: src/panels.cpp msgid "Bad" -msgstr "Плохо" +msgstr "" #: src/panels.cpp msgid "Good" -msgstr "Хорошо" +msgstr "" #: src/panels.cpp msgid "SAFE" @@ -219286,7 +219284,7 @@ msgstr "Темп :" #: src/panels.cpp msgid "to open sidebar options" -msgstr "для настройки боковой панели" +msgstr "чтобы открыть настройки боковой панели" #: src/panels.cpp msgid "Mana" @@ -219294,7 +219292,7 @@ msgstr "Мана" #: src/panels.cpp msgid "Max Mana" -msgstr "Макс. мана" +msgstr "" #: src/panels.cpp msgid "Location" @@ -222685,12 +222683,12 @@ msgstr " %s () загрязнен гарью чёрного порох #: src/ranged.cpp #, c-format msgid "Your %s fails to cycle!" -msgstr "Ваш %s заклинило!" +msgstr "" #: src/ranged.cpp #, c-format msgid "'s %s fails to cycle!" -msgstr "У заклинило %s!" +msgstr "" #: src/ranged.cpp #, c-format @@ -225149,7 +225147,7 @@ msgid "" "This vehicle belongs to: %s, there may be consequences if you are observed " "interacting with it, continue?" msgstr "" -"У этой машины есть владелец — %s, если вас заметят за вознёй с машиной, " +"У этой машины есть владельцы — %s, если вас заметят за вознёй с машиной, " "будут последствия, продолжить?" #: src/vehicle.cpp diff --git a/lang/po/zh_CN.po b/lang/po/zh_CN.po index 5e0dbb7f98e52..a37290ce8f094 100644 --- a/lang/po/zh_CN.po +++ b/lang/po/zh_CN.po @@ -38,12 +38,12 @@ # lu ck , 2019 # 万 和 <380014507@qq.com>, 2019 # supernoob super , 2019 +# fei li , 2019 # L rient <1972308206@qq.com>, 2019 # 张义钊 , 2019 # H H , 2019 # 曾泰瑋 , 2019 # LXY 233 , 2019 -# fei li , 2019 # Amans Tofu , 2019 # msgid "" @@ -12794,7 +12794,7 @@ msgstr "一种塑料名牌,标明佩戴者是真正的医生。" #: lang/json/ARMOR_from_json.py msgid "Foodkid badge" msgid_plural "Foodkid badges" -msgstr[0] "美食小子徽章" +msgstr[0] "美食小子的徽章" #. ~ Description for Foodkid badge #: lang/json/ARMOR_from_json.py @@ -38620,7 +38620,7 @@ msgstr[0] "原木" msgid "" "A large chunk of log, cut from a tree. (a)ctivate a wood axe or wood saw to" " cut it into planks." -msgstr "从树上砍下的一大块原木。按(a)用斧头或木锯可将它加工成木板。" +msgstr "从树上砍下的一大块木头。按(A)用斧头或木锯把它制成木板。" #: lang/json/GENERIC_from_json.py msgid "splintered wood" @@ -40110,7 +40110,7 @@ msgstr "一台结构紧凑的车载冰柜,设计用于运输各种需要冰冻 #: lang/json/GENERIC_from_json.py msgid "Dana's family sourdough starter" msgid_plural "Dana's family sourdough starters" -msgstr[0] "达娜的家用酸面头" +msgstr[0] "戴娜家的酸酵头" #. ~ Description for Dana's family sourdough starter #: lang/json/GENERIC_from_json.py @@ -40121,7 +40121,7 @@ msgid "" " 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 "10 plastic bags" @@ -40381,7 +40381,7 @@ msgstr[0] "模型狐狸(损坏)" msgid "" "A broken animatronic fox. If it was in bad shape before, it's a wreck now." " For some reason, it is oozing with blood - it's not your blood." -msgstr "一只破损的模型狐狸。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型狐狸。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "old broken animatronic bunny" @@ -40393,7 +40393,7 @@ msgstr[0] "模型兔子(损坏)" msgid "" "A broken animatronic bunny. For some reason, it is oozing with blood - it's" " not your blood." -msgstr "一只破损的模型兔子。不知道为什么它不停地渗出鲜血-还好不是你的血、" +msgstr "一只破损的模型兔子。不知道为什么它不停的渗出鲜血-还好不是你的血、" #: lang/json/GENERIC_from_json.py msgid "old broken animatronic chicken" @@ -40410,7 +40410,7 @@ msgstr "一只破损的模型鸡。它看起没被激活。、" msgid "" "A broken animatronic chicken. For some reason, it is oozing with blood - " "it's not your blood." -msgstr "一只破损的模型鸡。不知道为什么它不停地渗出鲜血-还好不是你的血、" +msgstr "一只破损的模型鸡。不知道为什么它不停的渗出鲜血-还好不是你的血、" #: lang/json/GENERIC_from_json.py msgid "old broken animatronic bear" @@ -40422,7 +40422,7 @@ msgstr[0] "模型熊(损坏)" msgid "" "A broken animatronic bear. For some reason, it is oozing with blood - it's " "not your blood." -msgstr "一只破损的模型熊。不知道为什么它不停地渗出鲜血-还好不是你的血、" +msgstr "一只破损的模型熊。不知道为什么它不停的渗出鲜血-还好不是你的血、" #: lang/json/GENERIC_from_json.py msgid "broken new animatronic bear" @@ -40444,7 +40444,7 @@ msgstr[0] "模型蝙蝠(损坏)" msgid "" "A broken animatronic bat. For some reason, it is oozing with blood - it's " "not your blood." -msgstr "一只破损的模型蝙蝠。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型蝙蝠。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic beaver" @@ -40456,7 +40456,7 @@ msgstr[0] "模型海狸(损坏)" msgid "" "A broken animatronic beaver. For some reason, it is oozing with blood - " "it's not your blood." -msgstr "一只破损的模型海狸。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型海狸。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic cat" @@ -40468,7 +40468,7 @@ msgstr[0] "模型猫(损坏)" msgid "" "A broken animatronic cat. For some reason, it is oozing with blood - it's " "not your blood." -msgstr "一只破损的模型猫。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型猫。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic chipmunk" @@ -40480,7 +40480,7 @@ msgstr[0] "模型花栗鼠(损坏)" msgid "" "A broken animatronic chipmunk. For some reason, it is oozing with blood - " "it's not your blood." -msgstr "一只破损的模型花栗鼠。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型花栗鼠。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic cow" @@ -40492,7 +40492,7 @@ msgstr[0] "模型公牛(损坏)" msgid "" "A broken animatronic cow. For some reason, it is oozing with blood - it's " "not your blood." -msgstr "一只破损的模型公牛。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型公牛。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic coyote" @@ -40504,7 +40504,7 @@ msgstr[0] "模型郊狼(损坏)" msgid "" "A broken animatronic coyote. For some reason, it is oozing with blood - " "it's not your blood." -msgstr "一只破损的模型郊狼。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型郊狼。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic deer" @@ -40516,7 +40516,7 @@ msgstr[0] "模型鹿(损坏)" msgid "" "A broken animatronic deer. For some reason, it is oozing with blood - it's " "not your blood." -msgstr "一只破损的模型鹿。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型鹿。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic horse" @@ -40528,7 +40528,7 @@ msgstr[0] "模型马(损坏)" msgid "" "A broken animatronic horse. For some reason, it is oozing with blood - it's" " not your blood." -msgstr "一只破损的模型马。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型马。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic pig" @@ -40540,7 +40540,7 @@ msgstr[0] "模型猪(损坏)" msgid "" "A broken animatronic pig. For some reason, it is oozing with blood - it's " "not your blood." -msgstr "一只破损的模型猪。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型猪。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic sheep" @@ -40552,7 +40552,7 @@ msgstr[0] "模型羊(损坏)" msgid "" "A broken animatronic sheep. For some reason, it is oozing with blood - it's" " not your blood." -msgstr "一只破损的模型羊。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型羊。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic squirrel" @@ -40564,7 +40564,7 @@ msgstr[0] "模型松鼠(损坏)" msgid "" "A broken animatronic squirrel. For some reason, it is oozing with blood - " "it's not your blood." -msgstr "一只破损的模型松鼠。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型松鼠。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken animatronic child" @@ -40576,7 +40576,7 @@ msgstr[0] "模型儿童(损坏)" msgid "" "A broken animatronic child. For some reason, it is oozing with blood - it's" " not your blood." -msgstr "一只破损的模型,是个熊孩子的样子,吓死爹了,不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型,是个熊孩子的样子,吓死爹了,不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken new animatronic fox" @@ -40612,7 +40612,7 @@ msgstr[0] "模型狼(损坏)" msgid "" "A broken animatronic wolf. For some reason, it is oozing with blood - it's " "not your blood." -msgstr "一只破损的模型狼。不知道为什么它不停地渗出鲜血-还好不是你的血。" +msgstr "一只破损的模型狼。不知道为什么它不停的渗出鲜血-还好不是你的血。" #: lang/json/GENERIC_from_json.py msgid "broken marionette" @@ -49245,7 +49245,7 @@ msgid "" "A sluglike creature, eight feet long and the width of a refrigerator. Its " "black body glistens as it oozes its way along the ground. Eye stalks " "occasionally push their way out of the oily mass and look around." -msgstr "一只巨型蛞蝓,八英尺长,冰箱那么宽。黑色的身体不停地闪烁并一路\"流痕\"。它沿着地面缓慢爬行,杆状眼偶尔从油乎乎的一坨肉里伸出观察路况。" +msgstr "一只巨型蛞蝓,八英尺长,冰箱那么宽。黑色的身体不停的闪烁并一路\"流痕\"。它沿着地面缓慢爬行,杆状眼偶尔从油乎乎的一坨肉里伸出观察路况。" #: lang/json/MONSTER_from_json.py msgid "giant slug" @@ -49312,7 +49312,7 @@ msgstr "军用探照灯" msgid "" "Three high-powered searchlights with automated search AI and mounting, " "continually seeking targets." -msgstr "带有自动搜索AI的三路大功率探照灯,可以不停地搜寻目标。" +msgstr "带有自动搜索AI的三路大功率探照灯,可以不停的搜寻目标。" #: lang/json/MONSTER_from_json.py msgid "twisted body" @@ -49886,7 +49886,7 @@ msgstr "烟雾丧尸" msgid "" "A blackened and twisted naked human body, strips of flesh hang from its " "body, and it emits a constant haze of thick black smoke." -msgstr "一个黑色扭曲的丧尸,肉块挂在其身上,不停地发出阴霾的黑烟。" +msgstr "一个黑色扭曲的丧尸,肉块挂在其身上,不停的发出阴霾的黑烟。" #: lang/json/MONSTER_from_json.py msgid "spitter zombie" @@ -52911,7 +52911,7 @@ msgstr "召唤僵尸" 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 "从地底深处冒出来的丧尸会为你而战。你的法术等级越高,召唤出来的丧尸也会越多。" +msgstr "从地底深处冒出来的丧尸会为你而战。你的法术等级越高,召唤出来的上市也会越多。" #: lang/json/SPELL_from_json.py msgid "Summon Skeleton" @@ -52977,7 +52977,7 @@ msgstr "这个法术会从你的身体中伸出一个由锋利的骨头和渗出 #: lang/json/SPELL_from_json.py lang/json/effects_from_json.py msgid "Grotesque Enhancement" -msgstr "扭曲强化" +msgstr "奇异的增强" #. ~ Description for Grotesque Enhancement #: lang/json/SPELL_from_json.py @@ -53212,7 +53212,7 @@ msgstr "你与其它生命的连接允许你进入一种魔法冥想状态。在 #: lang/json/SPELL_from_json.py msgid "Bag of Cats" -msgstr "袋装猫咪" +msgstr "一袋蝙蝠" #. ~ Description for Bag of Cats #: lang/json/SPELL_from_json.py @@ -53221,7 +53221,7 @@ msgstr "你就是那个和猫讲话的怪婆婆吗?" #: lang/json/SPELL_from_json.py msgid "Cause Bear" -msgstr "恐怖威熊" +msgstr "传播棕熊" #. ~ Description for Cause Bear #: lang/json/SPELL_from_json.py @@ -53231,7 +53231,7 @@ msgid "" "because the instructions are hardly legible. No time like the Cataclysm to " "find out, though!" msgstr "" -"这个咒语看上去已被严重污染,你十分确定这法术的名字应该是“恐怖威能”,但是你也十分确定施放它不能造成恐怖,因为它的施放步骤脏到难以辨认。不过,现在是大灾变,没时间搞清楚了!" +"这个法术看起来十分模糊不清。你非常确定这法术的名字应该是“传播恐惧”,但是你同样非常确定施放它不能造成恐惧,因为你只能勉强看清它的施放步骤。不过在大灾变后时间就是生命,可不能把时间浪费在看清法术干什么上!" #: lang/json/SPELL_from_json.py msgid "Druid Rune" @@ -53331,7 +53331,7 @@ msgstr "这仪式会创造出一块与塑地者共鸣的小石块。你可以将 #: lang/json/SPELL_from_json.py msgid "Point Flare" -msgstr "定点炎爆" +msgstr "闪耀之指" #. ~ Description for Point Flare #: lang/json/SPELL_from_json.py @@ -53340,7 +53340,7 @@ msgstr "在指定地点制造强烈热能,以伤害目标。" #: lang/json/SPELL_from_json.py msgid "Finger Firelighter" -msgstr "火焰之指" +msgstr "指尖点火器" #. ~ Description for Finger Firelighter #: lang/json/SPELL_from_json.py @@ -54759,7 +54759,7 @@ msgstr "" msgid "" "This is a large, sopping wet towel. If you wait a little bit, it should dry" " out. Don't panic." -msgstr "这是块湿答答的大毛巾,不停地留着眼泪,也许是想起了那个空姐。别担心,泪水总会干的。" +msgstr "这是块湿答答的大毛巾,不停的留着眼泪,也许是想起了那个空姐。别担心,泪水总会干的。" #: lang/json/TOOL_ARMOR_from_json.py msgid "soiled towel" @@ -57199,7 +57199,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 @@ -62677,7 +62677,7 @@ msgstr[0] "照明弹(点燃)" msgid "" "This burning magnesium flare is producing light. It will last for about a " "half hour before burning out." -msgstr "这种镁制照明弹正在不停地燃烧,大约半小时后熄灭。" +msgstr "这种镁制照明弹正在不停的燃烧,大约半小时后熄灭。" #: lang/json/TOOL_from_json.py msgid "heavy duty flashlight (off)" @@ -63724,7 +63724,7 @@ msgstr "这块注魔的小石块上面有一个像自然与绿树的符号,对 #: lang/json/TOOL_from_json.py msgid "Animist rune" msgid_plural "Animist runes" -msgstr[0] "灵论者符文" +msgstr[0] "有灵论者符文" #. ~ Description for Animist rune #: lang/json/TOOL_from_json.py @@ -63749,7 +63749,7 @@ msgstr "这块注魔的小石块上面有一个像炼金术和魔药的符号。 #: lang/json/TOOL_from_json.py msgid "finger firelighter" msgid_plural "finger firelighters" -msgstr[0] "指尖火焰" +msgstr[0] "指尖生火器" #. ~ Description for finger firelighter #: lang/json/TOOL_from_json.py @@ -68611,7 +68611,7 @@ msgstr "你梦见自己很漂亮,但又被烦恼所撕裂……" #: lang/json/dream_from_json.py msgid "" "You can't quite work out what the dream is about... it just keeps changing." -msgstr "你不太能理解你的怪梦……它不停地在变幻。" +msgstr "你不太能理解你的怪梦……它不停的在变幻。" #: lang/json/dream_from_json.py msgid "Your dream is filled with creatures, and yet all seem like you." @@ -69755,7 +69755,7 @@ msgstr "你的胃中不停地翻滚,你感到非常的恶心。" #. ~ Miss message for effect(s) 'Food Poisoning'. #: lang/json/effects_from_json.py msgid "Your stomach bothers you." -msgstr "你的胃不停地让你分心。" +msgstr "你的胃不停的让你分心。" #: lang/json/effects_from_json.py msgid "Slowed" @@ -74797,7 +74797,7 @@ msgstr "一根柔韧的卷须从地板上长出来,轻轻地前后摆动着。 #: lang/json/furniture_from_json.py msgid "splorch!" -msgstr "咔!" +msgstr "产卵器!" #: lang/json/furniture_from_json.py msgid "wafting anemone" @@ -80884,7 +80884,7 @@ msgstr "枪托底座" #: lang/json/gunmod_from_json.py msgid "bottom mount" msgid_plural "bottom mounts" -msgstr[0] "管下底座" +msgstr[0] "底部底座" #: lang/json/gunmod_from_json.py msgid "" @@ -88363,7 +88363,7 @@ msgstr "一种为改造人在零重力环境中战斗而设计的未来主义武 #: lang/json/martial_art_from_json.py msgid "Verschlag" -msgstr "囚形冲击" +msgstr "囚状冲击" #. ~ Description of buff 'Verschlag' for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py @@ -88376,7 +88376,7 @@ msgstr "暗影追踪" #: lang/json/martial_art_from_json.py msgid "Einsatzrhythmen" -msgstr "谐振阻绝" +msgstr "插入节奏" #. ~ Description of buff 'Einsatzrhythmen' for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py @@ -90384,7 +90384,7 @@ msgstr "不!天啊,不,这不可能发生..." #: lang/json/mission_def_from_json.py msgid "Find Dana's family sourdough culture" -msgstr "找到达娜的家用酸面团培养罐头" +msgstr "找到达纳家族的文化" #: lang/json/mission_def_from_json.py msgid "I could get my real sourdough starter..." @@ -90439,7 +90439,7 @@ msgstr "不是这样的。" msgid "" "I am not sure if I'm gonna make it through the cataclysm without my special " "jar of goop." -msgstr "如果没有那罐特别的面头,我不确定我是否还能挺过大灾变。" +msgstr "我不确定我是否能在没有我那罐特别的粘液的情况下度过灾难。" #: lang/json/mission_def_from_json.py msgid "Bring an acoustic guitar" @@ -93029,7 +93029,7 @@ msgstr "你有一种标记领地的冲动,不过很快就消失了。" #. ~ Mutation class: Wolf iv_message #: lang/json/mutation_category_from_json.py msgid "As the mutagen hits you, your ears twitch and you stifle a yipe." -msgstr "随着诱变剂起效,你的耳朵不停地抽动,你不能不压抑着低吼。" +msgstr "随着诱变剂起效,你的耳朵不停的抽动,你不能不压抑着低吼。" #. ~ Mutation class: Wolf Male memorial messsage #: lang/json/mutation_category_from_json.py @@ -94751,7 +94751,7 @@ msgstr "你对歪曲事实毫无顾虑,说谎时毫不脸红,而谎话说的 #: lang/json/mutation_from_json.py msgid "Savings" -msgstr "略有积蓄" +msgstr "略有储蓄" #. ~ Description for Savings #: lang/json/mutation_from_json.py @@ -99484,7 +99484,7 @@ msgstr "调试用无敌" #. ~ Description for Debug Invincibility #: lang/json/mutation_from_json.py msgid "Bug repellent forcefield." -msgstr "调试用力场屏障" +msgstr "万能驱虫力场。" #: lang/json/mutation_from_json.py msgid "Debug Hammerspace" @@ -100297,7 +100297,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Kelvinist" -msgstr "炽霜法师" +msgstr "炽霜巫师" #. ~ Description for Kelvinist #: lang/json/mutation_from_json.py @@ -100305,7 +100305,7 @@ msgid "" "Disciples of the great Archwizard Lord Kelvin. Kelvinists focus their magic" " on manipulation and control of the temperature of their environment, " "leading to spectacularly powerful explosions or bone-chilling cold." -msgstr "追随大奥术师开尔文勋爵的脚步,炽霜法师们凝聚魔力,操控温度,引发炽烈爆炸,制造刺骨严寒。" +msgstr "大主教凯文勋爵的门徒炽霜巫师们将魔法聚焦于操纵与控制环境温度,导致惊人的强烈爆炸或刺骨的寒冷。" #: lang/json/mutation_from_json.py msgid "Stormshaper" @@ -105244,7 +105244,7 @@ msgctxt "prof_desc_male" msgid "" "You're a lumberjack, and you're okay. You felled trees before the world " "ended, but suspect the undead aren't nearly as tough." -msgstr "你是个伐木工而且你还活着。在世界末日前你不停地放倒树木,放倒丧尸不是更容易些呢?总之,没有报酬。" +msgstr "你是个伐木工而且你还活着。在世界末日前你不停的放倒树木,放倒丧尸不是更容易些呢?总之,没有报酬。" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -105257,7 +105257,7 @@ msgctxt "prof_desc_female" msgid "" "You're a lumberjack, and you're okay. You felled trees before the world " "ended, but suspect the undead aren't nearly as tough." -msgstr "你是个伐木工而且你还活着。在世界末日前你不停地放倒树木,放倒丧尸不是更容易些呢?总之,没有报酬。" +msgstr "你是个伐木工而且你还活着。在世界末日前你不停的放倒树木,放倒丧尸不是更容易些呢?总之,没有报酬。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -106922,7 +106922,7 @@ msgctxt "prof_desc_male" msgid "" "As the world ends, you alone stand against the coming darkness with your " "fists of steel." -msgstr "你就是奥义东斗拳的唯一传人-贱五郎•世界末,你用你的铁拳独自对抗黑暗的未来,阿达~阿达~阿达!!!" +msgstr "你就是奥义东斗拳的唯一传人-贱五郎。世界末日,你用你的铁拳独自对抗黑暗的未来,阿达~阿达~阿达!!!" #: lang/json/professions_from_json.py msgctxt "profession_female" @@ -106935,7 +106935,7 @@ msgctxt "prof_desc_female" msgid "" "As the world ends, you alone stand against the coming darkness with your " "fists of steel." -msgstr "你就是奥义东斗拳的唯一传人-贱五娘•世界末,你用你的铁拳独自对抗黑暗的未来,阿达~阿达~阿达!!!" +msgstr "你就是奥义东斗拳的唯一传人-贱五娘。世界末日,你用你的铁拳独自对抗黑暗的未来,阿达~阿达~阿达!!!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -132561,7 +132561,7 @@ msgid "" "and Rhy look out for me though. They think I don't notice that they're " "looking out for me, but I do. It's okay, they're both cool." msgstr "" -"没有人。我已经长大了,可以通过工作赚取商会币来换取食物充饥了。不过珍妮和莱会偷偷照顾我。他们以为我没有注意到,但其实我早发现了。没关系,他们都很酷。" +"没有人。我已经长大了,可以通过工作赚取商会币来换取食物充饥了。不过珍妮和瑞茜会偷偷照顾我。他们以为我没有注意到,但其实我早发现了。没关系,他们都很酷。" #: lang/json/talk_topic_from_json.py msgid "" @@ -133209,7 +133209,7 @@ msgid "" "is those MP3 players with their tin-can drum machines and whiny vocals. " "Help me find a guitar and we'll really get this place smokin'!" msgstr "" -"我也是!你知道这个时代的人们需要一些给他们带来活力的事物。音乐一定很有帮助,该死的,我想念它们,而现在只能听那些MP3里的破盆烂鼓鬼哭神嚎。帮我找把吉他吧,我可以让这个地方重新热闹起来。" +"我也是!你能理解人们在这个时候是多么的需要一些欢乐的时光。如果有些音乐的话一定可以帮助到人们。我非常想念它。但是我现在只能听到一些MP3里面发出的奇怪声音以及外面恐怖的尖叫声。帮我找把吉他吧,我可以让这个地方从新热闹起来。" #: lang/json/talk_topic_from_json.py msgid "I could be persuaded." @@ -133252,7 +133252,7 @@ msgstr "那就太棒了。" msgid "" "Yeah, wouldn't be so funny when Zed heard all the sound and broke in. Be " "responsible." -msgstr "好吧,但是如果丧尸听到声音闯进来,那就不好玩了。我们要负责任的。" +msgstr "对,如果泽德听到声音,然后闯进来,那就不好玩了。他非常负责。" #: lang/json/talk_topic_from_json.py msgid "" @@ -133850,7 +133850,7 @@ msgid "" "leadership decisions, as if they made those kind of calls. What did you " "want to know?" msgstr "" -"不管好坏,我们现在是一个社区。法蒂玛和我在一起工作了不少次,而且我认为达娜、德拉科和阿莱莎能称得上是我的朋友,我也自然而然地认识了达娜的丈夫佩德罗•波里申科一伙和我们其他人一样,都是乱七八糟拼成的团队。辛格一家彼此相依为命,但不怎么和其他人来往。瓦内萨和我意见不一,但能有她在我还是很高兴。陈宛和莱泽尔总是为领导层的决定争吵,好像他们决定得了似的。你想知道什么?" +"不管好坏,我们现在是一个社区。法蒂玛和我在一起工作了不少次,而且我认为达娜、德拉科和阿莱莎能称得上是我的朋友,我也自然而然地认识了达娜的丈夫佩德罗。波里申科一伙和我们其他人一样,都是乱七八糟拼成的团队。辛格一家彼此相依为命,但不怎么和其他人来往。瓦妮莎和我意见不一,但能有她在我还是很高兴。陈宛和莱泽尔总是为领导层的决定争吵,好像他们决定得了似的。你想知道什么?" #: lang/json/talk_topic_from_json.py msgid "" @@ -134171,7 +134171,7 @@ msgstr "" msgid "" "Dana wanted me to be the one to let you know: they've got work for you over " "at the ranch. You could get out of here if you want." -msgstr "达娜想让我告诉你,他们在牧场给你留了点活。如果你想的话随时可以出去。" +msgstr "达纳想让我告诉你,他们在牧场给你留了点活。如果你想的话随时可以出去。" #: lang/json/talk_topic_from_json.py msgid "I'd better get going. Bye, Pablo." @@ -134224,7 +134224,7 @@ msgid "" " much farther, and for some reason the monster didn't chase us, just kept " "tearing at the bus." msgstr "" -"达娜和我很早就撤离了,因为她怀了孩子。我们被带到一个集合中心,在那里坐上了一辆巴士。那巴士被一个巨大的怪物掀翻了,很多人死在那里。我们与其他几个人设法逃脱,一直走到这儿。其实我们走的并不远,不知为何那怪物并没有追我们,只是继续撕扯那辆巴士。" +"因为她怀孕了,黛娜和我很早就撤离了。他们把我们带到了一个集合中心,然后我们从那里坐上了一辆巴士。那辆巴士却被一个巨大的怪物掀翻了,很多人死了。我们与其他几个人设法逃脱,然后我们接着一直走直到我们到达这儿。其实我们走的并不远,不知为何那怪物并没有追我们,只是继续撕裂那辆巴士。" #: lang/json/talk_topic_from_json.py msgid "What about the pregnancy?" @@ -134245,7 +134245,7 @@ msgid "" "Thanks. No, really, thank you. Others have gone through so much I feel " "like we should suck it up, but Rhy says we should let ourselves mourn " "properly and she seems to know her stuff." -msgstr "谢了。不用,真的,谢谢你。其他人已经经历了这么多,我觉得我们得忍着点儿,但莱说我们可以悼念一下,她似乎知道她的事情。" +msgstr "谢了。不用,真的,谢谢你。其他人已经经历了这么多,我觉得我们得忍著點兒,但萊伊说該讓自己痛哭一場,她似乎知道了自己的狀況。" #: lang/json/talk_topic_from_json.py msgid "" @@ -134261,7 +134261,6 @@ msgid "" "seemed like ages, calling it an 'outbreak'. By the time leveller heads " "prevailed, there weren't many people left in there to recover." msgstr "" -"公交车上的那些?有一些人坚持到了最后,辛格一家和我们都在那辆公交车上,我们是最后一批到达的难民。他们把我们带进了一间处置室,那正在处理伤员,因为人手短缺,他们忽略了一个人,大家都以为他只是在打盹,但不是这样,他作为丧尸重新站了起来,这造成了巨大的恐慌。在那个狭窄的房间里,枪声,自相践踏的人们……真的很糟糕。我们离出口很近,勉强逃了出来,但几个惊慌失措的人封锁了那个地方,把无辜的人关在里面很久,他们称里面发生的是“暴动”。事情平定下来之后,那里已经没剩几个活人了。" #: lang/json/talk_topic_from_json.py msgid "" @@ -134292,7 +134291,7 @@ msgstr "为什么不搬到塔科马公社?" #: lang/json/talk_topic_from_json.py msgid "I've got a secure base. You and your wife could come with me." -msgstr "我有一个安全的营地,你和你妻子可以跟我走。" +msgstr "我有一个安全的营地,你和你妻子应该跟我走" #: lang/json/talk_topic_from_json.py msgid "" @@ -135911,7 +135910,7 @@ msgstr "好吧,我会再回来找你的。" #: lang/json/talk_topic_from_json.py msgid "[FMC2500] You have a deal." -msgstr "[商会币2500] 成交。" +msgstr "[$2500] 成交。" #: lang/json/talk_topic_from_json.py msgid "" @@ -136009,7 +136008,7 @@ msgstr "好吧,我走" #: lang/json/talk_topic_from_json.py msgid "Keep it civil, merc." -msgstr "保持文明,佣兵。" +msgstr "保持文明,默克。" #: lang/json/talk_topic_from_json.py msgid "" @@ -138065,7 +138064,7 @@ msgstr "无情地穿刺了%s" #: lang/json/technique_from_json.py msgid "Chain Punch" -msgstr "子午连环捶" +msgstr "锁链殴打" #. ~ Description for Chain Punch #: lang/json/technique_from_json.py @@ -138075,24 +138074,24 @@ msgstr "50%行动点消耗,66%伤害,击退和追踪" #: lang/json/technique_from_json.py #, python-format msgid "You chain strike %s" -msgstr "你连续捶击%s" +msgstr "你连环打击了%s" #: lang/json/technique_from_json.py #, python-format msgid " chain strikes %s" -msgstr "连续捶击%s" +msgstr "连环打击了%s" #: lang/json/technique_from_json.py msgid "You position yourself well and slip out of a grab" -msgstr "你灵活地位移,挣脱出来" +msgstr "你灵活地位移,挣脱了出来" #: lang/json/technique_from_json.py msgid " slips out of a grab" -msgstr "挣脱了!" +msgstr "从挣脱了!" #: lang/json/technique_from_json.py msgid "keep punching at" -msgstr "三星捶" +msgstr "不停击打" #: lang/json/technique_from_json.py #, python-format @@ -138106,12 +138105,12 @@ msgstr "打空了,但是继续击打%s" #: lang/json/technique_from_json.py msgid "stumble" -msgstr "白鹤寻狐" +msgstr "绊倒" #: lang/json/technique_from_json.py #, python-format msgid "You stumble %s with your onslaught" -msgstr "你发起猛攻,绊倒了%s。" +msgstr "你在攻击中被%s绊倒了" #: lang/json/technique_from_json.py #, python-format @@ -138120,31 +138119,31 @@ msgstr "绊倒了%s" #: lang/json/technique_from_json.py msgid "Receive and Counter" -msgstr "阴阳掌" +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 "grab and pommel strike" -msgstr "执械柄击" +msgstr "抓住并柄击" #: lang/json/technique_from_json.py #, python-format msgid "You grab and pommel strike %s" -msgstr "你用护手纠缠%s并用剑柄攻击对方。" +msgstr "你抓住并柄击%s" #: lang/json/technique_from_json.py #, python-format msgid " grab and pommel strikes %s" -msgstr "用护手纠缠%s并用剑柄攻击对方。" +msgstr "" #: lang/json/technique_from_json.py msgid "displace and counter" @@ -138195,12 +138194,12 @@ 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 " holds his weapon funny and slams it down on %s" -msgstr "用怪异的姿势握住武器,猛击%s。" +msgstr "" #: lang/json/technique_from_json.py msgid "Pressure Crunch" @@ -138739,7 +138738,7 @@ msgstr "空地" #. ~ Description for empty space #: lang/json/terrain_from_json.py msgid "This is empty space." -msgstr "这里是空的。" +msgstr "这是空的空间。" #. ~ Description for open air #: lang/json/terrain_from_json.py @@ -142109,7 +142108,7 @@ msgid "" "blinks askance at your geek cred. You could swipe a scientific ID badge " "near it to unlock the gates to discovery." msgstr "" -"这是智能读卡器。面板上展示着一个玻璃烧瓶图案,这是众所周知的科学符号。不祥的红色LED一直在不停地闪烁。你可以在它这刷一个科学ID卡来打开门。" +"这是智能读卡器。面板上展示着一个玻璃烧瓶图案,这是众所周知的科学符号。不祥的红色LED一直在不停的闪烁。你可以在它这刷一个科学ID卡来打开门。" #. ~ Description for card reader #: lang/json/terrain_from_json.py @@ -143140,7 +143139,7 @@ msgid "" "pulsating green conduits, snaking like blood vessels through it. The " "material is hard, warm to the touch, and slightly damp." msgstr "" -"这面墙由一种反光的、几乎不透明的、塑料似的材料制成。在这种材料的深处,你可以勉强看到由脉动的绿色导管构成的网络,像血管一样蛇行于材料之中。这种材料很坚硬,摸起来有些温暖,还微微发潮。" +"这面墙是由一种反光的,几乎不透明的,塑料似的材料制成的。在这种材料的深处,你可以勉强看到由脉动的绿色导管构成的网络,像血管一样蛇行于材料之中。这种材料很坚硬,摸起来有些温暖,还微微发潮" #: lang/json/terrain_from_json.py msgid "boom!" @@ -143395,7 +143394,7 @@ msgstr "一个巨大的沙丘,被风不断地重塑。很难爬上去。" #: lang/json/terrain_from_json.py msgid "desert pavement" -msgstr "岩漠" +msgstr "沙漠路面" #. ~ Description for desert pavement #: lang/json/terrain_from_json.py @@ -143403,7 +143402,7 @@ msgid "" "Not that kind of pavement! Naturally occurring pockets of densely packed " "rock fragments that is easier to traverse than sand, with the right " "footwear." -msgstr "它不是一种人工路面!由密集的天然空腔碎岩石组成,比沙漠更容易穿行,只要穿着合适的鞋子。" +msgstr "" #. ~ Description for scorched earth #: lang/json/terrain_from_json.py @@ -146413,7 +146412,7 @@ msgstr "车载 转轮机枪" #: lang/json/vehicle_part_from_json.py msgid "bulette plating" -msgstr "鲨蜥兽骨板" +msgstr "bulette电镀" #: lang/json/vehicle_part_from_json.py msgid "robot_carrier" @@ -148391,7 +148390,7 @@ msgstr "没有用来制作丧尸奴仆的尸体!" 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 "你不停地切除尸体的身体组织,直到你确信丧尸再次复苏时已失去攻击性为止。" +msgstr "你不停的切除尸体的身体组织,直到你确信丧尸再次复苏时已失去攻击性为止。" #: src/activity_handlers.cpp msgid "" @@ -151336,12 +151335,12 @@ msgstr "你可以从中学习到%s。" #: src/avatar.cpp #, c-format msgid "This fighting style is %s to learn." -msgstr "这种武术%s掌握。" +msgstr "这种打斗方式是%s要学的。" #: src/avatar.cpp #, c-format msgid "It would be easier to master if you'd have skill expertise in %s." -msgstr "如果你擅长%s,学起来会更加轻松。" +msgstr "如果你擅长%s的话,就更容易掌握了。" #: src/avatar.cpp #, c-format @@ -151417,23 +151416,23 @@ msgstr "习得几率:%d" msgid "" "You train the moves according to the book, but can't get a grasp of the " "style, so you start from the beginning." -msgstr "不得要领,再来一次。" +msgstr "你根据书中训练行动点消耗,但是无法掌握,所以你从头开始。" #: src/avatar.cpp msgid "" "This martial art is not easy to grasp. You start training the moves from " "the beginning." -msgstr "武道艰难,从头再来。" +msgstr "这种武术不容易掌握。 你从头开始训练行动点消耗。" #: src/avatar.cpp msgid "" "You decide to read the manual and train even more. In martial arts, " "patience leads to mastery." -msgstr "你决定温故知新,反复训练。武术一道,熟能生巧。" +msgstr "你决定阅读手册并进行更多的训练。在武术中,耐心就会精通。" #: src/avatar.cpp msgid "You try again. This training will finally pay off." -msgstr "再试一次,必有收获。" +msgstr "你要再试一次。这种训练终将得到回报。" #: src/avatar.cpp msgid "You train for a while." @@ -153473,7 +153472,7 @@ msgstr "海量运动" #: src/character.cpp msgid "You try to shout but you have no face!" -msgstr "你想要叫喊,但你没有脸!" +msgstr "你试着喊但你没有脸!" #: src/character.cpp msgid "a piercing howl!" @@ -156194,7 +156193,7 @@ msgstr "配方是否隐藏" #: src/crafting_gui.cpp msgid "yes" -msgstr "是" +msgstr "可" #: src/crafting_gui.cpp msgid "recipes which are memorized or not" @@ -157909,7 +157908,7 @@ msgstr "" #: src/descriptions.cpp src/iexamine.cpp #, c-format msgid "That is a %s." -msgstr "那是%s。" +msgstr "这里有个%s。" #: src/descriptions.cpp msgid "You could harvest the following things from it:" @@ -158020,11 +158019,11 @@ msgstr "[载具]" #: src/editmap.cpp msgid " [indoors]" -msgstr "[地板层]" +msgstr "[室内]" #: src/editmap.cpp msgid " [roof]" -msgstr "[屋顶层]" +msgstr "[车顶]" #: src/editmap.cpp #, c-format @@ -158060,7 +158059,7 @@ msgstr "涂鸦:%s" #: src/editmap.cpp src/game.cpp #, c-format msgid "Inscription: %s" -msgstr "铭刻:%s" +msgstr "登记:%s" #: src/editmap.cpp #, c-format @@ -158069,11 +158068,11 @@ msgstr "移动消耗 %d" #: src/editmap.cpp msgid "[indoors] " -msgstr "[地板层]" +msgstr "[室内]" #: src/editmap.cpp msgid "[roof] " -msgstr "[屋顶层]" +msgstr "[车顶]" #: src/editmap.cpp msgctxt "Map editor: terrain/furniture shortkeys" @@ -162357,7 +162356,7 @@ msgstr "%s\"呼呼\"地响了一阵,开始跟随你。" #: src/game.cpp #, c-format msgid "Really step into %s?" -msgstr "那里有%s,确定进入?" +msgstr "真的要走进%s?" #: src/game.cpp #, c-format @@ -164094,7 +164093,7 @@ msgstr "未知命令:\"%s\"(%ld)" #, c-format msgid "" "%s at any time to see and edit keybindings relevant to the current context." -msgstr "%s随时查看和编辑与当前上下文相关的键绑定。" +msgstr "" #: src/handle_action.cpp msgid "You can't go down stairs while you're riding." @@ -165451,7 +165450,7 @@ msgstr "它吐出了各式各样的小块金属碎屑。" #: src/iexamine.cpp #, c-format msgid "Unfinished task: %s, %d%% complete here, continue construction?" -msgstr "未完成的任务:%s,当前进度%d%%,继续吗?" +msgstr "" #: src/iexamine.cpp msgid "Cancel construction?" @@ -167035,7 +167034,7 @@ msgstr "* 这种弹药是 手工复装 的型号。" msgid "" "This ammo has been loaded with blackpowder, and will quickly clog" " up most guns, and cause rust if the gun is not cleaned." -msgstr "此弹药装载了黑火药,很快就会造成大多数枪管的堵塞,清洁不及时还会导致生锈。" +msgstr "" #: src/item.cpp msgid "This ammo never misfires." @@ -167392,18 +167391,18 @@ msgstr "这本书是一本 武术训练指南。" #: src/item.cpp #, c-format msgid "You can learn %s style from it." -msgstr "你可以从中学习到%s。" +msgstr "你可以从中学习%s招式。" #: src/item.cpp #, c-format msgid "This fighting style is %s to learn." -msgstr "这种武术%s掌握。" +msgstr "这种打斗方式是%s要学的。" #: src/item.cpp #, c-format msgid "" "It'd be easier to master if you'd have skill expertise in %s." -msgstr "如果你擅长%s,学起来会更加轻松。" +msgstr "" #: src/item.cpp msgid "It can be understood by beginners." @@ -167445,7 +167444,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." @@ -167539,7 +167538,7 @@ msgstr "道具拥有功能:" msgid "" "This item is a magical focus. You can cast spells with it in " "your hand." -msgstr "这件物品是魔力亲和的。你可以拿着它施法。" +msgstr "" #: src/item.cpp #, c-format @@ -168213,7 +168212,7 @@ msgstr "该插槽仅能容纳小型模组" #: src/item.cpp #, c-format msgid "%1$s cannot be used on item with no compatible ammo types" -msgstr "%1$s不可用,因为没有相容的弹药。" +msgstr "" #: src/item.cpp msgid "is already waterproof" @@ -168365,7 +168364,7 @@ msgstr "你需要一个激活的UPS来启动 %s!" #: src/item.cpp #, c-format msgid "Your %s rusts due to blackpowder fouling." -msgstr "你的%s因被黑火药污染而生锈。" +msgstr "你的%s因黑火药污染而被腐蚀。" #: src/item.cpp #, c-format @@ -171548,7 +171547,7 @@ msgstr "%s 已经耗光了电池,可以拿下来了。" #: src/iuse.cpp #, c-format msgid "Your HUD lights-up: \"Your shift ends in %s\"." -msgstr "你的平视显示器点亮了:“你的轮班在%s后结束”。" +msgstr "你的HUD点亮:\"你的轮班在%s点结束\"。" #: src/iuse.cpp msgid "Using RC car:" @@ -173086,7 +173085,7 @@ msgstr "把 %s 放在哪里?" msgid "" "That trap needs a space in %d tiles radius to be clear, centered %d tiles " "from you." -msgstr "该陷阱需要范围为%d的空间,陷阱中心与你的距离为%d。" +msgstr "" #: src/iuse_actor.cpp #, c-format @@ -174597,7 +174596,7 @@ msgstr "有效目标" #: src/magic.cpp src/veh_interact.cpp msgid "Damage" -msgstr "造成伤害" +msgstr "碰撞伤害" #: src/magic.cpp msgid "Healing" @@ -174605,7 +174604,7 @@ msgstr "治疗" #: src/magic.cpp msgid "Variance" -msgstr "偏差范围" +msgstr "散布范围" #: src/magic.cpp msgid "Spawn" @@ -174621,7 +174620,7 @@ msgstr "有效半径" #: src/magic.cpp src/veh_interact.cpp msgid "Range" -msgstr "有效距离" +msgstr "范围" #: src/magic.cpp msgid "self" @@ -174637,7 +174636,7 @@ msgstr "选择一个法术" #: src/magic.cpp msgid "AoE" -msgstr "有效范围" +msgstr "范围" #: src/magic.cpp msgid "Spawned" @@ -184482,7 +184481,7 @@ msgstr "旅行到该地点?" #. third parameter is a city name. #: src/overmapbuffer.cpp msgid "%1$s in central %3$s" -msgstr "位于%3$s中心的%1$s" +msgstr "" #. ~ First parameter is a terrain name, second parameter is a direction, and #. third parameter is a city name. @@ -185609,7 +185608,7 @@ msgstr "你觉得你好像好几天没有睡过觉了。" #: src/player.cpp msgid "You're too physically tired to stop yawning." -msgstr "你太疲劳了,不停地打哈欠。" +msgstr "你太疲劳了,不停的打哈欠。" #: src/player.cpp msgid "How much longer until bedtime?" @@ -187408,7 +187407,8 @@ msgid "" "Your weight is a general indicator of how much fat your body has stored up, " "which in turn shows how prepared you are to survive for a time without " "food.Having too much, or too little, can be unhealthy." -msgstr "体重是衡量你体内脂肪量的一个通用指标,换句话说它可以显示你在没有食物的情况下能够坚持多久。脂肪过多或过少都是不健康的。" +msgstr "" +"你的体重是衡量你身体储存了多少脂肪的一个通用指标,这反过来显示了你是如何准备好在没有食物的情况下生存一段时间的。拥有过多或过少脂肪都是不健康的。" #: src/player_display.cpp #, c-format @@ -187705,7 +187705,7 @@ msgstr "你的身体不受控制的颤抖着。" #: src/player_hardcoded_effects.cpp msgid "Your left arm is shivering." -msgstr "你的左臂正在不停地颤抖。" +msgstr "你的左臂正在不停的颤抖。" #: src/player_hardcoded_effects.cpp msgid "Your left arm trembles from the cold." @@ -187713,7 +187713,7 @@ msgstr "你的左臂冷的发抖。" #: src/player_hardcoded_effects.cpp msgid "Your right arm is shivering." -msgstr "你的右臂正在不停地颤抖。" +msgstr "你的右臂正在不停的颤抖。" #: src/player_hardcoded_effects.cpp msgid "Your right arm trembles from the cold." @@ -187821,7 +187821,7 @@ msgstr "你的面部感到麻木。" #: src/player_hardcoded_effects.cpp msgid "Your flesh crawls; insects tear through the flesh and begin to emerge!" -msgstr "你的皮下有东西在不停地蠕动;有昆虫撕裂血肉从里面爬了出来!" +msgstr "你的皮下有东西在不停的蠕动;有昆虫撕裂血肉从里面爬了出来!" #: src/player_hardcoded_effects.cpp msgid "Insects begin to emerge from 's skin!" @@ -190252,7 +190252,7 @@ msgstr "耐久" #: src/veh_interact.cpp msgid "Dmg" -msgstr "伤害" +msgstr "碰撞伤害" #: src/veh_interact.cpp msgid "Weight" diff --git a/lang/po/zh_TW.po b/lang/po/zh_TW.po index 2b7c031bf0a89..f38141fac7c30 100644 --- a/lang/po/zh_TW.po +++ b/lang/po/zh_TW.po @@ -2024,7 +2024,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "reloaded .270 Winchester JSP" -msgstr ".270 溫徹斯特子彈 JSP(重填彈)" +msgstr "" #: lang/json/AMMO_from_json.py msgid ".300 Winchester Magnum" @@ -2165,7 +2165,7 @@ msgstr ".32 ACP (重填彈)" #: lang/json/AMMO_from_json.py msgid ".357 magnum FMJ" -msgstr ".357 麥格農全金屬彈" +msgstr "" #. ~ Description for .357 magnum FMJ #: lang/json/AMMO_from_json.py @@ -13969,7 +13969,7 @@ msgstr "植入小型的輻射感測器在你的身體裡, 讓你能夠分析身 #: lang/json/BIONIC_ITEM_from_json.py msgid "Respirator CBM" msgid_plural "Respirator CBMs" -msgstr[0] "CBM:呼吸器" +msgstr[0] "" #. ~ Description for Respirator CBM #: lang/json/BIONIC_ITEM_from_json.py @@ -42838,7 +42838,7 @@ msgstr[0] "超輕型電池" msgid "" "This is a light battery cell designed for small size over everything else. " "It retains its universal compatibility, though." -msgstr "這是一個適用於所有小型裝置的小型電池,不過它仍保持其共通的相容性。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light plutonium fuel battery" @@ -42856,7 +42856,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light disposable battery" msgid_plural "ultra-light disposable batteries" -msgstr[0] "超輕型即棄電池" +msgstr[0] "" #. ~ Description for ultra-light disposable battery #: lang/json/MAGAZINE_from_json.py @@ -42864,7 +42864,7 @@ msgid "" "This is a light battery cell designed for small size over everything else. " "It retains its universal compatibility, though. The battery's chemistry " "means that it has a very high capacity, but cannot be recharged." -msgstr "這是一個適用於所有小型裝置的小型電池,不過它仍保持其共通的相容性。電池的化學性質代表著它有非常高的容量,但無法充電。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light battery" @@ -42877,7 +42877,7 @@ msgstr[0] "輕型電池" msgid "" "This is a light battery cell, universally compatible with all kinds of small" " devices." -msgstr "這是一個輕型電池,適用於所有類型的小型裝置。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light battery (high-capacity)" @@ -42889,7 +42889,7 @@ msgstr[0] "輕型高容量電池" msgid "" "This is a high-capacity light battery cell, universally compatible with all " "kinds of small devices." -msgstr "這是一個高容量的輕型電池,適用於所有類型的小型裝置。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light plutonium fuel battery" @@ -42908,7 +42908,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "light disposable battery" msgid_plural "light disposable batteries" -msgstr[0] "輕型即棄電池" +msgstr[0] "" #. ~ Description for light disposable battery #: lang/json/MAGAZINE_from_json.py @@ -42916,7 +42916,7 @@ msgid "" "This is a light battery cell, universally compatible with all kinds of small" " devices. The battery's chemistry means that it has a very high capacity, " "but cannot be recharged." -msgstr "這是一個輕型電池,適用於所有類型的小型裝置,電池的化學性質代表著它有非常高的容量,但無法充電。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "medium battery" @@ -42929,7 +42929,7 @@ msgstr[0] "中型電池" msgid "" "This is a medium battery cell, universally compatible with all kinds of " "appliances and power tools." -msgstr "這是一個中型電池,適用於所有類型的器具和電動工具。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "medium battery (high-capacity)" @@ -42942,7 +42942,7 @@ msgstr[0] "中型高容量電池" msgid "" "This is a high-capacity medium battery cell, universally compatible with all" " kinds of appliances and power tools." -msgstr "這是一個高容量的中型電池,適用於所有類型的器具和電動工具。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "medium plutonium fuel battery" @@ -42961,7 +42961,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "medium disposable battery" msgid_plural "medium disposable batteries" -msgstr[0] "中型即棄電池" +msgstr[0] "" #. ~ Description for medium disposable battery #: lang/json/MAGAZINE_from_json.py @@ -42969,7 +42969,7 @@ msgid "" "This is a medium battery cell, universally compatible with all kinds of " "appliances and power tools. The battery's chemistry means that it has a " "very high capacity, but cannot be recharged." -msgstr "這是一個中型電池,適用於所有類型的器具和電動工具,電池的化學性質代表著它有非常高的容量,但無法充電。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "heavy battery" @@ -42982,7 +42982,7 @@ msgstr[0] "重型電池" msgid "" "This is a heavy battery cell, universally compatible with all kinds of " "industrial-grade equipment and large tools." -msgstr "這是一個重型的電池,適用於所有類型的工業級設備和大型工具。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "heavy battery (high-capacity)" @@ -42995,7 +42995,7 @@ msgstr[0] "重型高容量電池" msgid "" "This is a high-capacity heavy battery cell, universally compatible with all " "kinds of industrial-grade equipment and large tools." -msgstr "這是一個高容量的重型的電池,適用於所有類型的工業級設備和大型工具。" +msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "heavy plutonium fuel battery" @@ -43014,7 +43014,7 @@ msgstr "" #: lang/json/MAGAZINE_from_json.py msgid "heavy disposable battery" msgid_plural "heavy disposable batteries" -msgstr[0] "重型即棄電池" +msgstr[0] "" #. ~ Description for heavy disposable battery #: lang/json/MAGAZINE_from_json.py @@ -43022,7 +43022,7 @@ msgid "" "This is a heavy battery cell, universally compatible with all kinds of " "industrial-grade equipment and large tools. The battery's chemistry means " "that it has a very high capacity, but cannot be recharged." -msgstr "這是一個重型的電池,適用於所有類型的工業級設備和大型工具。電池的化學性質代表著它有非常高的容量,但無法充電。" +msgstr "" #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" @@ -45766,12 +45766,12 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "Stats Through Kills" -msgstr "擊殺獲得能力值" +msgstr "" #. ~ 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 "在擊殺時獲得經驗值,可以用在提升你的能力值。" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "chicken" @@ -46971,7 +46971,7 @@ msgid "" "The American black bear. A large omnivorous scavenger, it has powerful " "claws and jaws, and is an effective ambush hunter. Most individuals are shy" " around humans, but they're fiercely protective of their cubs." -msgstr "美國黑熊。大型的雜食性動物,擁有強力的爪子與下顎,是個有效率的伏擊狩獵者。大部分的個體都不太會主動靠近人類,但會在保護幼熊時變得兇猛。" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "beaver" @@ -59499,14 +59499,14 @@ msgstr "攜帶型熱塑封口機, 配有空氣幫浦, 可將食物真空密封 #: lang/json/TOOL_from_json.py msgid "hand-crank charger" msgid_plural "hand-crank chargers" -msgstr[0] "手搖充電器" +msgstr[0] "" #. ~ Description for hand-crank charger #: lang/json/TOOL_from_json.py msgid "" "This is a hand-powered battery charger. It has an adjustable receptacle " "designed to accept a wide variety of rechargeable battery cells." -msgstr "這是一個手動充電器,它有一個可調整的插座,設計成可對應多種充電電池。" +msgstr "" #: lang/json/TOOL_from_json.py msgid "vibrator" @@ -59796,7 +59796,7 @@ msgstr "餘燼熄滅了。" #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" -msgstr[0] "餘火裝載器" +msgstr[0] "" #. ~ Use action msg for ember carrier. #: lang/json/TOOL_from_json.py @@ -59814,12 +59814,12 @@ msgid "" "This is a small container for holding tinder, with holes punched in it to " "provide a controlled airflow. It can nurture a smoldering ember for a long " "time, to start fires without modern tools." -msgstr "這是一個裝載火種的小型容器,鑽了用作提供穩定空氣流動的洞,它可以燒起一個悶燒的餘火一段長時間,能在不使用現代工具下生火。" +msgstr "" #: lang/json/TOOL_from_json.py msgid "ember carrier (lit)" msgid_plural "ember carriers (lit)" -msgstr[0] "餘火裝載器 (點燃)" +msgstr[0] "" #. ~ Description for ember carrier (lit) #: lang/json/TOOL_from_json.py @@ -72620,7 +72620,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "target" -msgstr "目標" +msgstr "" #. ~ Description for target #: lang/json/furniture_from_json.py @@ -72678,7 +72678,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "spurge flower" -msgstr "大戟花" +msgstr "" #. ~ Description for spurge flower #: lang/json/furniture_from_json.py @@ -86238,7 +86238,7 @@ msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py msgid "Moving away sale!" -msgstr "搬家出售!" +msgstr "" #. ~ Sign #: lang/json/mapgen_from_json.py @@ -89809,9 +89809,6 @@ msgid "" "bother us again. We can't pay much, besides some of our own internal money " "which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"如果你真的想幫我們, 可以去把後灣區的殭屍清掉。大災變發生的第一天我們都慌慘了, " -"只好把充滿殭屍的後灣區封鎖起來。我們原本抱持著希望的領導者最後也放棄了… 甚至變得我們都認不出來。 去把它們清光, " -"讓我們不再受到威脅。我們沒辦法給你什麼,除了一些還不太好用的自家貨幣, 但至少這能幫我們奪回後灣區。" #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -89978,7 +89975,7 @@ msgid "" "We don't have the equipment for real analysis here so it'll need to be done " "in the field. I need you to get a fresh sample of zombie blood, take it to " "a hospital, and perform a centrifuge analysis of it." -msgstr "我們沒有設備去做正式的分析,所以需要在外面解決,我需要你去採集殭屍的血液, 拿到醫院去, 並作離心分析。" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -101433,7 +101430,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "craft shop" -msgstr "手工商店" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "craft shop roof" @@ -101445,7 +101442,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "craft shop 2nd floor" -msgstr "手工商店 2/F" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small market" @@ -101485,7 +101482,7 @@ msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "tire shop" -msgstr "輪胎商店" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "tire shop roof" @@ -101757,7 +101754,7 @@ msgstr "伐木場" #: lang/json/overmap_terrain_from_json.py msgid "lumbermill" -msgstr "伐木廠" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "lumbermill roof" @@ -102670,7 +102667,7 @@ msgstr "垃圾場" #: lang/json/overmap_terrain_from_json.py msgid "regional dump" -msgstr "地區垃圾場" +msgstr "" #: lang/json/overmap_terrain_from_json.py msgid "small scrap yard" @@ -129999,7 +129996,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." -msgstr "來,我應該有一些食物給你,讓我看看。" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Get away from me." @@ -131044,7 +131041,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's your story?" -msgstr "你有過甚麼經歷?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What's your take on the situation here?" @@ -133694,7 +133691,7 @@ 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 "Heard anything about the outside world?" @@ -160165,7 +160162,7 @@ msgstr "" #: src/game.cpp #, c-format msgid "Your best tool has %d butchering." -msgstr "你的最適合工具有 %d級 屠宰。" +msgstr "" #: src/game.cpp msgid "You have no butchering tool." @@ -160174,7 +160171,7 @@ msgstr "" #: src/game.cpp #, c-format msgid "Your best tool has %d fine cutting." -msgstr "你的最適合工具有 %d級 精密切割。" +msgstr "" #: src/game.cpp msgid "You have no fine cutting tool." @@ -161596,7 +161593,7 @@ msgstr "" #: src/game_inventory.cpp #, c-format msgid "Available anesthetic: %i mL" -msgstr "可用麻醉藥: %i mL" +msgstr "" #: src/game_inventory.cpp #, c-format @@ -161614,15 +161611,15 @@ msgstr "" #: src/game_inventory.cpp msgid "FAILURE CHANCE" -msgstr "失敗機率" +msgstr "" #: src/game_inventory.cpp msgid "OPERATION DURATION" -msgstr "手術時間" +msgstr "" #: src/game_inventory.cpp msgid "ANESTHETIC REQUIRED" -msgstr "所需麻醉藥" +msgstr "" #: src/game_inventory.cpp msgid "CBM already installed" @@ -163904,11 +163901,11 @@ msgstr "" #: src/iexamine.cpp msgid "Choose Compact Bionic Module to install" -msgstr "選取要安裝的生化插件" +msgstr "" #: src/iexamine.cpp msgid "Choose installed bionic to uninstall" -msgstr "選取要移除的已安裝生化插件" +msgstr "" #: src/iexamine.cpp msgid "Splint broken limbs" @@ -172584,15 +172581,6 @@ msgid "" "\n" "Continue?" msgstr "" -"學習這個法術會使你成為\n" -"\n" -"%s%s\n" -"\n" -"你將無法學習以下派系的法術\n" -"\n" -"%s\n" -"\n" -"是否要繼續?" #: src/magic.cpp #, c-format @@ -172658,11 +172646,11 @@ msgstr "" #: src/magic.cpp msgid "Max Level" -msgstr "最大等級" +msgstr "" #: src/magic.cpp msgid "Difficulty" -msgstr "困難度" +msgstr "" #: src/magic.cpp msgid "to Next Level" @@ -172686,7 +172674,7 @@ msgstr "" #: src/magic.cpp msgid "Valid Targets" -msgstr "有效對象" +msgstr "" #: src/magic.cpp src/veh_interact.cpp msgid "Damage" @@ -172722,7 +172710,7 @@ msgstr "" #: src/magic.cpp msgid "Duration" -msgstr "持續時間" +msgstr "" #: src/magic.cpp msgid "Choose a Spell" @@ -172746,27 +172734,27 @@ msgstr "" #: src/magic.cpp msgid "Stat Gain" -msgstr "效果加成" +msgstr "" #: src/magic.cpp msgid "lvl 0" -msgstr "等級0" +msgstr "" #: src/magic.cpp msgid "per lvl" -msgstr "每一等級" +msgstr "" #: src/magic.cpp msgid "max lvl" -msgstr "最大等級" +msgstr "" #: src/magic.cpp msgid "Cast Cost" -msgstr "法力消耗" +msgstr "" #: src/magic.cpp msgid "Cast Time" -msgstr "施法時間" +msgstr "" #: src/magic_spell_effect.cpp msgid "Unable to find a valid target for teleport." @@ -179786,7 +179774,7 @@ msgstr "" #: src/npctalk.cpp #, c-format msgid "%1$s gives you a %2$s." -msgstr "%1$s 給了你 %2$s 。" +msgstr "" #. ~ %1%s is the NPC name, %2$d is a number of items, %3$s are items #: src/npctalk.cpp @@ -185316,7 +185304,7 @@ msgstr "" #: src/player.cpp msgid "Peckish" -msgstr "空腹" +msgstr "" #: src/player_activity.cpp msgid "You pause for a second to catch your breath." diff --git a/src/action.cpp b/src/action.cpp index 0ac548dc4fdf1..c3e842c911e35 100644 --- a/src/action.cpp +++ b/src/action.cpp @@ -312,8 +312,6 @@ std::string action_ident( action_id act ) return "debug_temp"; case ACTION_DISPLAY_VISIBILITY: return "debug_visibility"; - case ACTION_DISPLAY_RADIATION: - return "debug_radiation"; case ACTION_TOGGLE_DEBUG_MODE: return "debug_mode"; case ACTION_ZOOM_OUT: @@ -417,7 +415,6 @@ bool can_action_change_worldstate( const action_id act ) case ACTION_DISPLAY_SCENT: case ACTION_DISPLAY_TEMPERATURE: case ACTION_DISPLAY_VISIBILITY: - case ACTION_DISPLAY_RADIATION: case ACTION_ZOOM_OUT: case ACTION_ZOOM_IN: case ACTION_TOGGLE_PIXEL_MINIMAP: @@ -816,7 +813,6 @@ action_id handle_action_menu() REGISTER_ACTION( ACTION_DISPLAY_SCENT ); REGISTER_ACTION( ACTION_DISPLAY_TEMPERATURE ); REGISTER_ACTION( ACTION_DISPLAY_VISIBILITY ); - REGISTER_ACTION( ACTION_DISPLAY_RADIATION ); REGISTER_ACTION( ACTION_TOGGLE_DEBUG_MODE ); } else if( category == _( "Interact" ) ) { REGISTER_ACTION( ACTION_EXAMINE ); @@ -1010,9 +1006,9 @@ cata::optional choose_direction( const std::string &message, const boo } else if( action == "pause" ) { return tripoint_zero; } else if( action == "LEVEL_UP" ) { - return tripoint_above; + return tripoint( 0, 0, 1 ); } else if( action == "LEVEL_DOWN" ) { - return tripoint_below; + return tripoint( 0, 0, -1 ); } add_msg( _( "Invalid direction." ) ); diff --git a/src/action.h b/src/action.h index 1dcc61877fb99..f5ee6e1776080 100644 --- a/src/action.h +++ b/src/action.h @@ -301,8 +301,6 @@ enum action_id : int { ACTION_DISPLAY_TEMPERATURE, /** Toggle visibility map */ ACTION_DISPLAY_VISIBILITY, - /** Toggle radiation map */ - ACTION_DISPLAY_RADIATION, /** Not an action, serves as count of enumerated actions */ NUM_ACTIONS /**@}*/ diff --git a/src/active_item_cache.cpp b/src/active_item_cache.cpp index dd8c115e6f681..1889e7c85caae 100644 --- a/src/active_item_cache.cpp +++ b/src/active_item_cache.cpp @@ -13,14 +13,13 @@ void active_item_cache::remove( const item *it ) return !target || target == it; } ); if( it->can_revive() ) { - special_items[ special_item_type::corpse ].remove_if( [it]( const item_reference & active_item ) { + special_items[ "corpse" ].remove_if( [it]( const item_reference & active_item ) { item *const target = active_item.item_ref.get(); return !target || target == it; } ); } if( it->get_use( "explosion" ) ) { - special_items[ special_item_type::explosive ].remove_if( [it]( const item_reference & - active_item ) { + special_items[ "explosives" ].remove_if( [it]( const item_reference & active_item ) { item *const target = active_item.item_ref.get(); return !target || target == it; } ); @@ -38,10 +37,10 @@ void active_item_cache::add( item &it, point location ) return; } if( it.can_revive() ) { - special_items[ special_item_type::corpse ].push_back( item_reference{ location, it.get_safe_reference() } ); + special_items[ "corpse" ].push_back( item_reference{ location, it.get_safe_reference() } ); } if( it.get_use( "explosion" ) ) { - special_items[ special_item_type::explosive ].push_back( item_reference{ location, it.get_safe_reference() } ); + special_items[ "explosives" ].push_back( item_reference{ location, it.get_safe_reference() } ); } target_list.push_back( item_reference{ location, it.get_safe_reference() } ); } @@ -91,7 +90,7 @@ std::vector active_item_cache::get_for_processing() return items_to_process; } -std::vector active_item_cache::get_special( special_item_type type ) +std::vector active_item_cache::get_special( std::string type ) { std::vector matching_items; for( const item_reference &it : special_items[type] ) { diff --git a/src/active_item_cache.h b/src/active_item_cache.h index 3b93d04470e76..a2b2c21bdf99f 100644 --- a/src/active_item_cache.h +++ b/src/active_item_cache.h @@ -17,27 +17,11 @@ struct item_reference { safe_reference item_ref; }; -enum class special_item_type : int { - none, - corpse, - explosive -}; - -namespace std -{ -template <> -struct hash { - std::size_t operator()( const special_item_type &k ) const { - return static_cast( k ); - } -}; -} // namespace std - class active_item_cache { private: std::unordered_map> active_items; - std::unordered_map> special_items; + std::unordered_map> special_items; public: /** @@ -77,7 +61,7 @@ class active_item_cache /** * Returns the currently tracked list of special active items. */ - std::vector get_special( special_item_type type ); + std::vector get_special( std::string type ); /** Subtract delta from every item_reference's location */ void subtract_locations( const point &delta ); void rotate_locations( int turns, const point &dim ); diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index 5fb08172a1286..0d2ecef65f9fc 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -84,7 +84,7 @@ #include "string_id.h" #include "units.h" #include "type_id.h" -#include "timed_event.h" +#include "event.h" #include "options.h" #include "colony.h" #include "color.h" @@ -108,7 +108,6 @@ const efftype_id effect_narcosis( "narcosis" ); const efftype_id effect_milked( "milked" ); const efftype_id effect_sleep( "sleep" ); const efftype_id effect_under_op( "under_operation" ); -const efftype_id effect_pet( "pet" ); using namespace activity_handlers; @@ -156,7 +155,6 @@ activity_handlers::do_turn_functions = { { activity_id( "ACT_HACKSAW" ), hacksaw_do_turn }, { activity_id( "ACT_CHOP_TREE" ), chop_tree_do_turn }, { activity_id( "ACT_CHOP_LOGS" ), chop_tree_do_turn }, - { activity_id( "ACT_CHOP_PLANKS" ), chop_tree_do_turn }, { activity_id( "ACT_JACKHAMMER" ), jackhammer_do_turn }, { activity_id( "ACT_DIG" ), dig_do_turn }, { activity_id( "ACT_DIG_CHANNEL" ), dig_channel_do_turn }, @@ -225,7 +223,6 @@ activity_handlers::finish_functions = { { activity_id( "ACT_HACKSAW" ), hacksaw_finish }, { activity_id( "ACT_CHOP_TREE" ), chop_tree_finish }, { activity_id( "ACT_CHOP_LOGS" ), chop_logs_finish }, - { activity_id( "ACT_CHOP_PLANKS" ), chop_planks_finish }, { activity_id( "ACT_JACKHAMMER" ), jackhammer_finish }, { activity_id( "ACT_DIG" ), dig_finish }, { activity_id( "ACT_DIG_CHANNEL" ), dig_channel_finish }, @@ -622,6 +619,94 @@ int butcher_time_to_cut( const player &u, const item &corpse_item, const butcher return time_to_cut; } +// The below function exists to allow mods to migrate their content fully to the new harvest system. This function should be removed eventually. +static harvest_id butchery_flags_deprecate( const mtype &mt ) +{ + std::string harvest_id_name = "null"; + if( mt.has_flag( MF_CBM_CIV ) ) { + harvest_id_name = "CBM_CIV"; + } else if( mt.has_flag( MF_CBM_SCI ) ) { + harvest_id_name = "CBM_SCI"; + } else if( mt.has_flag( MF_CBM_TECH ) ) { + harvest_id_name = "CBM_TECH"; + } else if( mt.has_flag( MF_CBM_SUBS ) ) { + harvest_id_name = "CBM_SUBS"; + } else if( mt.has_flag( MF_CBM_OP ) ) { + harvest_id_name = "CBM_OP"; + } else if( mt.has_flag( MF_POISON ) ) { // POISON tag means tainted meat + if( mt.made_of( material_id( "veggy" ) ) ) { + harvest_id_name = "fungaloid"; + } else if( mt.made_of( material_id( "bone" ) ) ) { + harvest_id_name = "mr_bones"; + } else if( mt.has_flag( MF_CHITIN ) ) { // only arachnids drop chitin + harvest_id_name = "arachnid_tainted"; + // acid ants have ACIDPROOF and do not have the CHITIN flag + } else if( mt.has_flag( MF_ACIDPROOF ) ) { + harvest_id_name = "arachnid_acid"; + } else if( mt.has_flag( MF_LEATHER ) ) { + harvest_id_name = "zombie_leather"; + } else if( mt.has_flag( MF_FUR ) ) { + harvest_id_name = "zombie_fur"; + } else if( mt.has_flag( MF_BONES ) ) { + harvest_id_name = "zombie"; + } else { + harvest_id_name = "zombie_meatslug"; + } + } else { // drops regular edible meat + if( mt.made_of( material_id( "veggy" ) ) ) { + harvest_id_name = "triffid_small"; + } else if( mt.size == MS_TINY ) { + if( mt.has_flag( MF_FEATHER ) ) { + harvest_id_name = "bird_tiny"; + } else if( mt.has_flag( MF_AQUATIC ) ) { + harvest_id_name = "fish_small"; + } else { + harvest_id_name = "mammal_tiny"; + } + } else if( mt.has_flag( MF_HUMAN ) ) { + harvest_id_name = "human"; + } else if( mt.size >= MS_SMALL && mt.size <= MS_MEDIUM ) { + if( mt.has_flag( MF_LEATHER ) ) { + harvest_id_name = "mammal_leather"; + } else if( mt.has_flag( MF_FUR ) ) { + harvest_id_name = "mammal_fur"; + } else if( mt.has_flag( MF_WOOL ) ) { + harvest_id_name = "mammal_wool"; + } else if( mt.has_flag( MF_FEATHER ) ) { + harvest_id_name = "bird_small"; + } else if( mt.has_flag( MF_AQUATIC ) ) { + harvest_id_name = "fish_large"; + } else if( mt.has_flag( MF_CHITIN ) ) { + harvest_id_name = "arachnid"; + } else if( mt.has_flag( MF_BONES ) ) { + harvest_id_name = "animal_noskin"; + } else { + harvest_id_name = "meatslug"; + } + } else if( mt.size >= MS_LARGE ) { + if( mt.has_flag( MF_LEATHER ) ) { + harvest_id_name = "mammal_large_leather"; + } else if( mt.has_flag( MF_FUR ) ) { + harvest_id_name = "mammal_large_fur"; + } else if( mt.has_flag( MF_WOOL ) ) { + harvest_id_name = "mammal_large_wool"; + } else if( mt.has_flag( MF_FEATHER ) ) { + harvest_id_name = "bird_large"; + } else if( mt.has_flag( MF_AQUATIC ) ) { + harvest_id_name = "fish_large"; + } else if( mt.has_flag( MF_CHITIN ) ) { + harvest_id_name = "arachnid"; + } else if( mt.has_flag( MF_BONES ) ) { + harvest_id_name = "animal_large_noskin"; + } else { + harvest_id_name = "meatslug"; + } + } + } + + return harvest_id( harvest_id_name ); +} + // this function modifies the input weight by its damage level, depending on the bodypart static int corpse_damage_effect( int weight, const std::string &entry_type, int damage_level ) { @@ -699,12 +784,10 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & int monster_weight_remaining = monster_weight; int practice = 4 + roll_butchery(); - if( mt.harvest.is_null() ) { - debugmsg( "ERROR: %s has no harvest entry.", mt.id.c_str() ); - return; - } + const harvest_id hid = mt.harvest.is_null() ? butchery_flags_deprecate( mt ) : mt.harvest; + const harvest_list &harvest = *hid; - for( const harvest_entry &entry : *mt.harvest ) { + for( const auto &entry : harvest ) { const int butchery = roll_butchery(); const float min_num = entry.base_num.first + butchery * entry.scale_num.first; const float max_num = entry.base_num.second + butchery * entry.scale_num.second; @@ -867,8 +950,7 @@ static void butchery_drops_harvest( item *corpse_item, const mtype &mt, player & // apply skill before converting to items, but only if mass_ratio is defined roll *= roll_drops(); monster_weight_remaining -= roll; - roll = ceil( static_cast( roll ) / - to_gram( ( item::find_type( entry.drop ) )->weight ) ); + roll = ceil( roll / to_gram( ( item::find_type( entry.drop ) )->weight ) ); } else { monster_weight_remaining -= roll * to_gram( ( item::find_type( entry.drop ) )->weight ); } @@ -1192,7 +1274,6 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) } } - act->targets.pop_back(); break; case SKIN: switch( rng( 1, 4 ) ) { @@ -1214,7 +1295,6 @@ void activity_handlers::butcher_finish( player_activity *act, player *p ) break; } corpse_item.set_flag( "SKINNED" ); - act->targets.pop_back(); break; case DISMEMBER: switch( rng( 1, 3 ) ) { @@ -1348,9 +1428,6 @@ void activity_handlers::fill_liquid_do_turn( player_activity *act, player *p ) if( !liquid.charges ) { act_ref.set_to_null(); } else { - if( act_ref.str_values.empty() ) { - act_ref.str_values.push_back( std::string() ); - } act_ref.str_values.at( 0 ) = serialize( liquid ); } } else { @@ -1739,7 +1816,7 @@ void activity_handlers::pulp_do_turn( player_activity *act, player *p ) units::legacy_volume_factor ) ) { // Splatter some blood around // Splatter a bit more randomly, so that it looks cooler const int radius = mess_radius + x_in_y( pulp_power, 500 ) + x_in_y( pulp_power, 1000 ); - const tripoint dest( pos + point( rng( -radius, radius ), rng( -radius, radius ) ) ); + const tripoint dest( pos.x + rng( -radius, radius ), pos.y + rng( -radius, radius ), pos.z ); const field_type_id type_blood = ( mess_radius > 1 && x_in_y( pulp_power, 10000 ) ) ? corpse.get_mtype()->gibType() : corpse.get_mtype()->bloodType(); @@ -1858,7 +1935,7 @@ void activity_handlers::start_fire_finish( player_activity *act, player *p ) p->consume_charges( it, it.type->charges_to_use() ); p->practice( skill_survival, act->index, 5 ); - firestarter_actor::resolve_firestarter_use( *p, act->placement ); + actor->resolve_firestarter_use( *p, act->placement ); act->set_to_null(); } @@ -1990,9 +2067,6 @@ void activity_handlers::hand_crank_do_turn( player_activity *act, player *p ) 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 ); - } else { - act->moves_left = 0; - add_msg( m_info, _( "You've charged the battery completely." ) ); } } if( p->get_fatigue() >= DEAD_TIRED ) { @@ -2162,9 +2236,9 @@ void activity_handlers::oxytorch_finish( player_activity *act, player *p ) g->m.spawn_item( pos, "spike", rng( 1, 19 ) ); g->m.spawn_item( pos, "scrap", rng( 1, 8 ) ); } else if( ter == t_bars ) { - if( g->m.ter( pos + point_east ) == t_sewage || g->m.ter( pos + point_south ) == + if( g->m.ter( {pos.x + 1, pos.y, pos.z} ) == t_sewage || g->m.ter( {pos.x, pos.y + 1, pos.z} ) == t_sewage || - g->m.ter( pos + point_west ) == t_sewage || g->m.ter( pos + point_north ) == + g->m.ter( {pos.x - 1, pos.y, pos.z} ) == t_sewage || g->m.ter( {pos.x, pos.y - 1, pos.z} ) == t_sewage ) { g->m.ter_set( pos, t_sewage ); g->m.spawn_item( p->pos(), "pipe", rng( 1, 2 ) ); @@ -2329,7 +2403,7 @@ void activity_handlers::repair_item_finish( player_activity *act, player *p ) // TODO: Allow setting this in the actor // TODO: Don't use charges_to_use: welder has 50 charges per use, soldering iron has 1 - if( !used_tool->units_sufficient( *p ) ) { + if( !used_tool->ammo_sufficient() ) { p->add_msg_if_player( _( "Your %s ran out of charges" ), used_tool->tname() ); act->set_to_null(); return; @@ -2450,8 +2524,8 @@ void activity_handlers::mend_item_finish( player_activity *act, player *p ) return; } - const inventory inv = p->crafting_inventory(); - const requirement_data &reqs = f->obj().requirements(); + const auto inv = p->crafting_inventory(); + const auto &reqs = f->obj().requirements(); if( !reqs.can_make_with_inventory( inv, is_crafting_component ) ) { add_msg( m_info, _( "You are currently unable to mend the %s." ), target->tname() ); } @@ -2652,7 +2726,7 @@ void activity_handlers::travel_do_turn( player_activity *act, player *p ) return; } tripoint sm_tri = g->m.getlocal( sm_to_ms_copy( omt_to_sm_copy( p->omt_path.back() ) ) ); - tripoint centre_sub = sm_tri + point( SEEX, SEEY ); + tripoint centre_sub = tripoint( sm_tri.x + SEEX, sm_tri.y + SEEY, sm_tri.z ); if( !g->m.passable( centre_sub ) ) { auto candidates = g->m.points_in_radius( centre_sub, 2 ); for( const auto &elem : candidates ) { @@ -2911,7 +2985,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) const time_duration half_op_duration = difficulty * 10_minutes; time_duration time_left = time_duration::from_turns( act->moves_left / 100 ) ; - if( autodoc && g->m.inbounds( p->pos() ) ) { + if( autodoc ) { const std::list autodocs = g->m.find_furnitures_in_radius( p->pos(), 1, furn_str_id( "f_autodoc" ) ); @@ -2926,6 +3000,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) _( "The Autodoc's failure damages you greatly." ), _( "The Autodoc's failure damages greatly." ) ); } + if( act->values.size() > 4 ) { for( size_t i = 4; i < act->values.size(); i++ ) { p->add_effect( effect_bleed, 1_turns, body_part( act->values[i] ), true, difficulty ); @@ -2940,6 +3015,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) if( body_part( act->values[i] ) == bp_eyes ) { p->add_effect( effect_blind, 1_hours, num_bp ); } + p->remove_effect( effect_under_op, body_part( act->values[i] ) ); } } else { p->add_effect( effect_bleed, 1_turns, num_bp, true, difficulty ); @@ -2995,7 +3071,7 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) p->perform_install( bionic_id( act->str_values[cbm_id] ), bionic_id( act->str_values[upgraded_cbm_id] ), act->values[0], act->values[1], act->values[3], act->str_values[cbm_name], act->str_values[upgraded_cbm_name], act->str_values[installer_name], - trait_to_rem, p->pos() ); + trait_to_rem ); } else { debugmsg( _( "%s is no a valid bionic_id" ), act->str_values[cbm_id] ); p->remove_effect( effect_under_op ); @@ -3026,19 +3102,6 @@ void activity_handlers::operation_do_turn( player_activity *act, player *p ) _( "The Autodoc is moving erratically through the rest of its program, not actually stitching 's wounds." ) ); } } - - // Makes sure NPC is still under anesthesia - if( p->has_effect( effect_narcosis ) ) { - const time_duration remaining_time = p->get_effect_dur( effect_narcosis ); - if( remaining_time <= time_left ) { - const time_duration top_off_time = time_left - remaining_time; - p->add_effect( effect_narcosis, top_off_time ); - p->add_effect( effect_sleep, top_off_time ); - } - } else { - p->add_effect( effect_narcosis, time_left ); - p->add_effect( effect_sleep, time_left ); - } p->set_moves( 0 ); } @@ -3052,36 +3115,25 @@ void activity_handlers::try_sleep_finish( player_activity *act, player *p ) void activity_handlers::operation_finish( player_activity *act, player *p ) { - if( act->str_values[6] == "true" ) { - if( act->values[1] > 0 ) { - add_msg( m_good, - _( "The Autodoc returns to its resting position after successfully performing the operation." ) ); - const std::list autodocs = g->m.find_furnitures_in_radius( p->pos(), 1, - furn_str_id( "f_autodoc" ) ); - sounds::sound( autodocs.front(), 10, sounds::sound_t::music, - _( "a short upbeat jingle: \"Operation successful\"" ), true, - "Autodoc", - "success" ); - } else { - add_msg( m_bad, - _( "The Autodoc jerks back to its resting position after failing the operation." ) ); - const std::list autodocs = g->m.find_furnitures_in_radius( p->pos(), 1, - furn_str_id( "f_autodoc" ) ); - sounds::sound( autodocs.front(), 10, sounds::sound_t::music, - _( "a sad beeping noise: \"Operation failed\"" ), true, - "Autodoc", - "failure" ); - } + if( act->values[1] > 0 ) { + add_msg( m_good, + _( "The Autodoc retuns to its resting position after succesfully performing the operation." ) ); + const std::list autodocs = g->m.find_furnitures_in_radius( p->pos(), 1, + furn_str_id( "f_autodoc" ) ); + sounds::sound( autodocs.front(), 10, sounds::sound_t::music, + _( "a short upbeat jingle: \"Operation successful\"" ), true, + "Autodoc", + "success" ); } else { - if( act->values[1] > 0 ) { - add_msg( m_good, - _( "The operation is a success." ) ); - } else { - add_msg( m_bad, - _( "The operation is a failure." ) ); - } + add_msg( m_bad, + _( "The Autodoc jerks back to its resting position after failing the operation." ) ); + const std::list autodocs = g->m.find_furnitures_in_radius( p->pos(), 1, + furn_str_id( "f_autodoc" ) ); + sounds::sound( autodocs.front(), 10, sounds::sound_t::music, + _( "a sad beeping noise: \"Operation failed\"" ), true, + "Autodoc", + "failure" ); } - p->remove_effect( effect_under_op ); act->set_to_null(); } @@ -3417,9 +3469,9 @@ void activity_handlers::hacksaw_finish( player_activity *act, player *p ) g->m.spawn_item( p->pos(), "spike", 19 ); g->m.spawn_item( p->pos(), "scrap", 8 ); } else if( ter == t_bars ) { - if( g->m.ter( pos + point_east ) == t_sewage || g->m.ter( pos + point_south ) + if( g->m.ter( { pos.x + 1, pos.y, pos.z } ) == t_sewage || g->m.ter( { pos.x, pos.y + 1, pos.z } ) == t_sewage || - g->m.ter( pos + point_west ) == t_sewage || g->m.ter( pos + point_north ) == + g->m.ter( { pos.x - 1, pos.y, pos.z } ) == t_sewage || g->m.ter( { pos.x, pos.y - 1, pos.z } ) == t_sewage ) { g->m.ter_set( pos, t_sewage ); g->m.spawn_item( p->pos(), "pipe", 3 ); @@ -3464,7 +3516,7 @@ void activity_handlers::chop_tree_finish( player_activity *act, player *p ) // try again } - const tripoint to = pos + 3 * direction.xy() + point( rng( -1, 1 ), rng( -1, 1 ) ); + const tripoint to = pos + point( 3 * direction.x + rng( -1, 1 ), 3 * direction.y + rng( -1, 1 ) ); std::vector tree = line_to( pos, to, rng( 1, 8 ) ); for( auto &elem : tree ) { g->m.destroy( elem ); @@ -3504,29 +3556,6 @@ void activity_handlers::chop_logs_finish( player_activity *act, player *p ) act->set_to_null(); } -void activity_handlers::chop_planks_finish( player_activity *act, player *p ) -{ - const int max_planks = 10; - /** @EFFECT_FABRICATION increases number of planks cut from a log */ - int planks = normal_roll( 2 + p->get_skill_level( skill_id( "fabrication" ) ), 1 ); - int wasted_planks = max_planks - planks; - int scraps = rng( wasted_planks, wasted_planks * 3 ) ; - planks = std::min( planks, max_planks ); - - if( planks > 0 ) { - g->m.spawn_item( act->placement, "2x4", planks, 0, calendar::turn ); - p->add_msg_if_player( m_good, _( "You produce %d planks." ), planks ); - } - if( scraps > 0 ) { - g->m.spawn_item( act->placement, "splinter", scraps, 0, calendar::turn ); - p->add_msg_if_player( m_good, _( "You produce %d splinters." ), scraps ); - } - if( planks < max_planks / 2 ) { - p->add_msg_if_player( m_bad, _( "You waste a lot of the wood." ) ); - } - act->set_to_null(); -} - void activity_handlers::jackhammer_do_turn( player_activity *act, player *p ) { sfx::play_activity_sound( "tool", "jackhammer", sfx::get_heard_volume( act->placement ) ); @@ -3993,20 +4022,12 @@ void activity_handlers::robot_control_finish( player_activity *act, player *p ) /** @EFFECT_INT increases chance of successful robot reprogramming, vs difficulty */ /** @EFFECT_COMPUTER increases chance of successful robot reprogramming, vs difficulty */ - const int computer_skill = p->get_skill_level( skill_id( "computer" ) ); - const float randomized_skill = rng( 2, p->int_cur ) + computer_skill; - float success = computer_skill - 3 * z->type->difficulty / randomized_skill; - if( z->has_flag( MF_RIDEABLE_MECH ) ) { - success = randomized_skill - rng( 1, 11 ); - } - // rideable mechs are not hostile, they have no AI, they do not resist control as much. + const float success = p->get_skill_level( skill_id( "computer" ) ) - 1.5 * ( z->type->difficulty ) / + ( ( rng( 2, p->int_cur ) / 2 ) + ( p->get_skill_level( skill_id( "computer" ) ) / 2 ) ); if( success >= 0 ) { p->add_msg_if_player( _( "You successfully override the %s's IFF protocols!" ), z->name() ); z->friendly = -1; - if( z->has_flag( MF_RIDEABLE_MECH ) ) { - z->add_effect( effect_pet, 1_turns, num_bp, true ); - } } else if( success >= -2 ) { //A near success p->add_msg_if_player( _( "The %s short circuits as you attempt to reprogram it!" ), z->name() ); @@ -4071,7 +4092,7 @@ void activity_handlers::tree_communion_do_turn( player_activity *act, player *p } for( int dx = -1; dx <= 1; dx++ ) { for( int dy = -1; dy <= 1; dy++ ) { - tripoint neighbor = tpt + point( dx, dy ); + tripoint neighbor = tripoint( tpt.x + dx, tpt.y + dy, tpt.z ); if( seen.find( neighbor ) != seen.end() ) { continue; } @@ -4176,9 +4197,8 @@ void activity_handlers::hack_safe_finish( player_activity *act, player *p ) pgettext( "memorial_female", "Set off an alarm." ) ); sounds::sound( p->pos(), 60, sounds::sound_t::music, _( "an alarm sound!" ), true, "environment", "alarm" ); - if( act->placement.z > 0 && !g->timed_events.queued( TIMED_EVENT_WANTED ) ) { - g->timed_events.add( TIMED_EVENT_WANTED, calendar::turn + 30_minutes, 0, - p->global_sm_location() ); + if( act->placement.z > 0 && !g->events.queued( EVENT_WANTED ) ) { + g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p->global_sm_location() ); } } else if( result == HACK_SUCCESS ) { add_msg( m_good, _( "The door on the safe swings open." ) ); diff --git a/src/activity_handlers.h b/src/activity_handlers.h index 315a7e31f4d94..377b5ca6bbbb1 100644 --- a/src/activity_handlers.h +++ b/src/activity_handlers.h @@ -153,7 +153,6 @@ void washing_finish( player_activity *act, player *p ); void hacksaw_finish( player_activity *act, player *p ); void chop_tree_finish( player_activity *act, player *p ); void chop_logs_finish( player_activity *act, player *p ); -void chop_planks_finish( player_activity *act, player *p ); void jackhammer_finish( player_activity *act, player *p ); void dig_finish( player_activity *act, player *p ); void dig_channel_finish( player_activity *act, player *p ); diff --git a/src/activity_item_handling.cpp b/src/activity_item_handling.cpp index c7ecc791f17c0..5af5077e8e1e8 100644 --- a/src/activity_item_handling.cpp +++ b/src/activity_item_handling.cpp @@ -674,10 +674,7 @@ void activity_on_turn_pickup() // Otherwise, we are done. if( !keep_going || g->u.activity.targets.empty() ) { g->u.cancel_activity(); - } - - // TODO: Move this to advanced inventory instead of hacking it in here - if( !keep_going ) { + // TODO: Move this to advanced inventory instead of hacking it in here cancel_aim_processing(); } } @@ -1141,9 +1138,7 @@ void activity_on_turn_blueprint_move( player_activity &, player &p ) 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 ); - } + g->m.trap_set( src_loc, tr_unfinished_construction ); // Use up the components for( const std::vector &it : built_chosen.requirements->get_components() ) { std::list tmp = p.consume_items( it, 1, is_crafting_component ); @@ -1271,7 +1266,7 @@ void activity_on_turn_move_loot( player_activity &, player &p ) // if it is, we can skip such item, if not we move the item to correct pile // think empty bag on food pile, after you ate the content if( !mgr.has( id, src ) ) { - const auto &dest_set = mgr.get_near( id, abspos, 60, thisitem ); + const auto &dest_set = mgr.get_near( id, abspos ); for( auto &dest : dest_set ) { const auto &dest_loc = g->m.getlocal( dest ); diff --git a/src/advanced_inv.cpp b/src/advanced_inv.cpp index 69795f1dee23b..663e542b659ce 100644 --- a/src/advanced_inv.cpp +++ b/src/advanced_inv.cpp @@ -7,7 +7,6 @@ #include "debug.h" #include "field.h" #include "game.h" -#include "ime.h" #include "input.h" #include "item_category.h" #include "item_search.h" @@ -83,35 +82,35 @@ advanced_inventory::advanced_inventory() // panes don't need initialization, they are recalculated immediately , squares( { { - // hx hy - { AIM_INVENTORY, 25, 2, tripoint_zero, _( "Inventory" ), _( "IN" ) }, - { AIM_SOUTHWEST, 30, 3, tripoint_south_west, _( "South West" ), _( "SW" ) }, - { AIM_SOUTH, 33, 3, tripoint_south, _( "South" ), _( "S" ) }, - { AIM_SOUTHEAST, 36, 3, tripoint_south_east, _( "South East" ), _( "SE" ) }, - { AIM_WEST, 30, 2, tripoint_west, _( "West" ), _( "W" ) }, - { AIM_CENTER, 33, 2, tripoint_zero, _( "Directly below you" ), _( "DN" ) }, - { AIM_EAST, 36, 2, tripoint_east, _( "East" ), _( "E" ) }, - { AIM_NORTHWEST, 30, 1, tripoint_north_west, _( "North West" ), _( "NW" ) }, - { AIM_NORTH, 33, 1, tripoint_north, _( "North" ), _( "N" ) }, - { AIM_NORTHEAST, 36, 1, tripoint_north_east, _( "North East" ), _( "NE" ) }, - { AIM_DRAGGED, 25, 1, tripoint_zero, _( "Grabbed Vehicle" ), _( "GR" ) }, - { AIM_ALL, 22, 3, tripoint_zero, _( "Surrounding area" ), _( "AL" ) }, - { AIM_CONTAINER, 22, 1, tripoint_zero, _( "Container" ), _( "CN" ) }, - { AIM_WORN, 25, 3, tripoint_zero, _( "Worn Items" ), _( "WR" ) } + // hx hy x y z + { AIM_INVENTORY, 25, 2, {0, 0, 0}, _( "Inventory" ), _( "IN" ) }, + { AIM_SOUTHWEST, 30, 3, { -1, 1, 0}, _( "South West" ), _( "SW" ) }, + { AIM_SOUTH, 33, 3, {0, 1, 0}, _( "South" ), _( "S" ) }, + { AIM_SOUTHEAST, 36, 3, {1, 1, 0}, _( "South East" ), _( "SE" ) }, + { AIM_WEST, 30, 2, { -1, 0, 0}, _( "West" ), _( "W" ) }, + { AIM_CENTER, 33, 2, {0, 0, 0}, _( "Directly below you" ), _( "DN" ) }, + { AIM_EAST, 36, 2, {1, 0, 0}, _( "East" ), _( "E" ) }, + { AIM_NORTHWEST, 30, 1, { -1, -1, 0}, _( "North West" ), _( "NW" ) }, + { AIM_NORTH, 33, 1, {0, -1, 0}, _( "North" ), _( "N" ) }, + { AIM_NORTHEAST, 36, 1, {1, -1, 0}, _( "North East" ), _( "NE" ) }, + { AIM_DRAGGED, 25, 1, {0, 0, 0}, _( "Grabbed Vehicle" ), _( "GR" ) }, + { AIM_ALL, 22, 3, {0, 0, 0}, _( "Surrounding area" ), _( "AL" ) }, + { AIM_CONTAINER, 22, 1, {0, 0, 0}, _( "Container" ), _( "CN" ) }, + { AIM_WORN, 25, 3, {0, 0, 0}, _( "Worn Items" ), _( "WR" ) } } } ) { // initialize screen coordinates for small overview 3x3 grid, depending on control scheme if( tile_iso && use_tiles ) { // Rotate the coordinates. - squares[1].hscreen.x = 33; - squares[2].hscreen.x = 36; - squares[3].hscreen.y = 2; - squares[4].hscreen.y = 3; - squares[6].hscreen.y = 1; - squares[7].hscreen.y = 2; - squares[8].hscreen.x = 30; - squares[9].hscreen.x = 33; + squares[1].hscreenx = 33; + squares[2].hscreenx = 36; + squares[3].hscreeny = 2; + squares[4].hscreeny = 3; + squares[6].hscreeny = 1; + squares[7].hscreeny = 2; + squares[8].hscreenx = 30; + squares[9].hscreenx = 33; } } // *INDENT-ON* @@ -161,13 +160,13 @@ void advanced_inventory::load_settings() } auto square = squares[location]; // determine the square's vehicle/map item presence - bool has_veh_items = square.can_store_in_vehicle() ? + bool has_veh_items = ( square.can_store_in_vehicle() ) ? !square.veh->get_items( square.vstor ).empty() : false; bool has_map_items = !g->m.i_at( square.pos ).empty(); // determine based on map items and settings to show cargo - bool show_vehicle = aim_code == exit_re_entry ? - uistate.adv_inv_in_vehicle[i] : has_veh_items ? true : - has_map_items ? false : square.can_store_in_vehicle(); + bool show_vehicle = ( aim_code == exit_re_entry ) ? + uistate.adv_inv_in_vehicle[i] : ( has_veh_items ) ? + true : ( has_map_items ) ? false : square.can_store_in_vehicle(); panes[i].set_area( square, show_vehicle ); panes[i].sortby = static_cast( uistate.adv_inv_sort[i] ); panes[i].index = uistate.adv_inv_index[i]; @@ -243,7 +242,7 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active const catacurses::window &window = pane.window; const auto index = pane.index; const int page = index / itemsPerPage; - bool compact = TERMX <= 100; + bool compact = ( TERMX <= 100 ); int columns = getmaxx( window ); std::string spaces( columns - 4, ' ' ); @@ -299,7 +298,7 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active //print header row and determine max item name length const int lastcol = columns - 2; // Last printable column - const size_t name_startpos = compact ? 1 : 4; + const size_t name_startpos = ( compact ? 1 : 4 ); const size_t src_startpos = lastcol - 18; const size_t amt_startpos = lastcol - 15; const size_t weight_startpos = lastcol - 10; @@ -311,7 +310,7 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active //~ Items list header. Table fields length without spaces: src - 2, amt - 4, weight - 5, vol - 4. const int table_hdr_len2 = utf8_width( _( "src amt weight vol" ) ); // Header length type 2 - mvwprintz( window, 5, compact ? 1 : 4, c_light_gray, _( "Name (charges)" ) ); + mvwprintz( window, 5, ( compact ? 1 : 4 ), c_light_gray, _( "Name (charges)" ) ); if( pane.get_area() == AIM_ALL && !compact ) { mvwprintz( window, 5, lastcol - table_hdr_len2 + 1, c_light_gray, _( "src amt weight vol" ) ); max_name_length = src_startpos - name_startpos - 1; // 1 for space @@ -339,7 +338,8 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active nc_color print_color; if( selected ) { - thiscolor = inCategoryMode && pane.sortby == SORTBY_CATEGORY ? c_white_red : hilite( c_white ); + thiscolor = ( inCategoryMode && + pane.sortby == SORTBY_CATEGORY ) ? c_white_red : hilite( c_white ); thiscolordark = hilite( thiscolordark ); if( compact ) { mvwprintz( window, 6 + x, 1, thiscolor, " %s", spaces ); @@ -405,7 +405,7 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active //print weight column double it_weight = convert_weight( sitem.weight ); size_t w_precision; - print_color = it_weight > 0 ? thiscolor : thiscolordark; + print_color = ( it_weight > 0 ) ? thiscolor : thiscolordark; if( it_weight >= 1000.0 ) { if( it_weight >= 10000.0 ) { @@ -427,7 +427,7 @@ void advanced_inventory::print_items( advanced_inventory_pane &pane, bool active if( it_vol_truncated && it_vol_value > 0.0 ) { print_color = selected ? hilite( c_red ) : c_red; } else { - print_color = sitem.volume.value() > 0 ? thiscolor : thiscolordark; + print_color = ( sitem.volume.value() > 0 ) ? thiscolor : thiscolordark; } mvwprintz( window, 6 + x, vol_startpos, print_color, it_vol ); @@ -556,13 +556,13 @@ void advanced_inventory::menu_square( uilist &menu ) aim_location loc = screen_relative_location( static_cast ( i ) ); char key = get_location_key( loc ); bool in_vehicle = squares[loc].can_store_in_vehicle(); - const char *bracket = in_vehicle ? "<>" : "[]"; + const char *bracket = ( in_vehicle ) ? "<>" : "[]"; // always show storage option for vehicle storage, if applicable - bool canputitems = menu.entries[i - 1].enabled && squares[loc].canputitems(); - nc_color bcolor = canputitems ? sel == loc ? h_white : c_light_gray : c_dark_gray; - nc_color kcolor = canputitems ? sel == loc ? h_white : c_light_gray : c_dark_gray; - const int x = squares[loc].hscreen.x + ofs; - const int y = squares[loc].hscreen.y + 5; + bool canputitems = ( menu.entries[i - 1].enabled && squares[loc].canputitems() ); + nc_color bcolor = ( canputitems ? ( sel == loc ? h_white : c_light_gray ) : c_dark_gray ); + nc_color kcolor = ( canputitems ? ( sel == loc ? h_white : c_light_gray ) : c_dark_gray ); + const int x = squares[loc].hscreenx + ofs; + const int y = squares[loc].hscreeny + 5; mvwprintz( menu.window, y, x, bcolor, "%c", bracket[0] ); wprintz( menu.window, kcolor, "%c", key ); wprintz( menu.window, bcolor, "%c", bracket[1] ); @@ -638,23 +638,23 @@ int advanced_inventory::print_header( advanced_inventory_pane &pane, aim_locatio int ofs = wwidth - 25 - 2 - 14; for( int i = 0; i < NUM_AIM_LOCATIONS; ++i ) { const char key = get_location_key( static_cast( i ) ); - const char *bracket = squares[i].can_store_in_vehicle() ? "<>" : "[]"; - bool in_vehicle = pane.in_vehicle() && squares[i].id == area && sel == area && area != AIM_ALL; - bool all_brackets = area == AIM_ALL && ( i >= AIM_SOUTHWEST && i <= AIM_NORTHEAST ); + const char *bracket = ( squares[i].can_store_in_vehicle() ) ? "<>" : "[]"; + bool in_vehicle = ( pane.in_vehicle() && squares[i].id == area && sel == area && area != AIM_ALL ); + bool all_brackets = ( area == AIM_ALL && ( i >= AIM_SOUTHWEST && i <= AIM_NORTHEAST ) ); nc_color bcolor = c_red; nc_color kcolor = c_red; if( squares[i].canputitems( pane.get_cur_item_ptr() ) ) { - bcolor = in_vehicle ? c_light_blue : - area == i || all_brackets ? c_light_gray : c_dark_gray; - kcolor = area == i ? c_white : sel == i ? c_light_gray : c_dark_gray; + bcolor = ( in_vehicle ) ? c_light_blue : + ( area == i || all_brackets ) ? c_light_gray : c_dark_gray; + kcolor = ( area == i ) ? c_white : ( sel == i ) ? c_light_gray : c_dark_gray; } - const int x = squares[i].hscreen.x + ofs; - const int y = squares[i].hscreen.y; + const int x = squares[i].hscreenx + ofs; + const int y = squares[i].hscreeny; mvwprintz( window, y, x, bcolor, "%c", bracket[0] ); - wprintz( window, kcolor, "%c", in_vehicle && sel != AIM_DRAGGED ? 'V' : key ); + wprintz( window, kcolor, "%c", ( in_vehicle && sel != AIM_DRAGGED ) ? 'V' : key ); wprintz( window, bcolor, "%c", bracket[1] ); } - return squares[AIM_INVENTORY].hscreen.y + ofs; + return squares[AIM_INVENTORY].hscreeny + ofs; } int advanced_inv_area::get_item_count() const @@ -808,22 +808,21 @@ void advanced_inventory::init() src = static_cast( uistate.adv_inv_src ); dest = static_cast( uistate.adv_inv_dest ); - 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 : + 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 ); headstart = 0; //(TERMY>w_height)?(TERMY-w_height)/2: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 ) ); - left_window = catacurses::newwin( w_height, w_width / 2, point( colstart, - headstart + head_height ) ); - right_window = catacurses::newwin( w_height, w_width / 2, point( colstart + w_width / 2, - headstart + head_height ) ); + colstart = ( TERMX > w_width ) ? ( TERMX - w_width ) / 2 : 0; + + head = catacurses::newwin( head_height, w_width - minimap_width, headstart, colstart ); + mm_border = catacurses::newwin( minimap_height + 2, minimap_width + 2, headstart, + colstart + ( w_width - ( minimap_width + 2 ) ) ); + minimap = catacurses::newwin( minimap_height, minimap_width, headstart + 1, + colstart + ( w_width - ( minimap_width + 1 ) ) ); + left_window = catacurses::newwin( w_height, w_width / 2, headstart + head_height, colstart ); + right_window = catacurses::newwin( w_height, w_width / 2, headstart + head_height, + colstart + w_width / 2 ); itemsPerPage = w_height - 2 - 5; // 2 for the borders, 5 for the header stuff @@ -942,7 +941,7 @@ static itemstack i_stacked( T items ) // check to see if it stacks with each item in a stack, not just front() for( auto &idx : iter->second ) { for( auto &it : stacks[idx] ) { - if( ( got_stacked = it->display_stacked_with( elem ) ) ) { + if( ( got_stacked = it->stacks_with( elem ) ) ) { stacks[idx].push_back( &elem ); break; } @@ -1004,7 +1003,7 @@ void advanced_inventory_pane::add_items_from_area( advanced_inv_area &square, if( cont != nullptr ) { if( !cont->is_container_empty() ) { // filtering does not make sense for liquid in container - item *it = &square.get_container( in_vehicle() )->contents.front(); + item *it = &( square.get_container( in_vehicle() )->contents.front() ); advanced_inv_listitem ait( it, 0, 1, square.id, in_vehicle() ); square.volume += ait.volume; square.weight += ait.weight; @@ -1014,7 +1013,7 @@ void advanced_inventory_pane::add_items_from_area( advanced_inv_area &square, } } else { bool is_in_vehicle = square.can_store_in_vehicle() && ( in_vehicle() || vehicle_override ); - const itemstack &stacks = is_in_vehicle ? + const itemstack &stacks = ( is_in_vehicle ) ? i_stacked( square.veh->get_items( square.vstor ) ) : i_stacked( m.i_at( square.pos ) ); @@ -1082,7 +1081,7 @@ void advanced_inventory::recalc_pane( side p ) // Also handle the case when the other tile covers vehicle // or the ground below the vehicle. if( s.can_store_in_vehicle() && !( same && there.in_vehicle() ) ) { - bool do_vehicle = there.get_area() == s.id ? !there.in_vehicle() : true; + bool do_vehicle = ( there.get_area() == s.id ) ? !there.in_vehicle() : true; pane.add_items_from_area( s, do_vehicle ); alls.volume += s.volume; alls.weight += s.weight; @@ -1150,12 +1149,12 @@ void advanced_inventory::redraw_pane( side p ) print_items( pane, active ); auto itm = pane.get_cur_item_ptr(); - int width = print_header( pane, itm != nullptr ? itm->area : pane.get_area() ); + int width = print_header( pane, ( itm != nullptr ) ? itm->area : pane.get_area() ); bool same_as_dragged = ( square.id >= AIM_SOUTHWEST && square.id <= AIM_NORTHEAST ) && // only cardinals square.id != AIM_CENTER && panes[p].in_vehicle() && // not where you stand, and pane is in vehicle square.off == squares[AIM_DRAGGED].off; // make sure the offsets are the same as the grab point - const advanced_inv_area &sq = same_as_dragged ? squares[AIM_DRAGGED] : square; + const advanced_inv_area &sq = ( same_as_dragged ) ? squares[AIM_DRAGGED] : square; bool car = square.can_store_in_vehicle() && panes[p].in_vehicle() && sq.id != AIM_DRAGGED; auto name = utf8_truncate( car ? sq.veh->name : sq.name, width ); auto desc = utf8_truncate( sq.desc[car], width ); @@ -1175,22 +1174,22 @@ void advanced_inventory::redraw_pane( side p ) } // draw a darker border around the inactive pane draw_border( w, active ? BORDER_COLOR : c_dark_gray ); - mvwprintw( w, point( 3, 0 ), _( "< [s]ort: %s >" ), get_sortname( pane.sortby ) ); + mvwprintw( w, 0, 3, _( "< [s]ort: %s >" ), get_sortname( pane.sortby ) ); int max = square.max_size; if( max > 0 ) { int itemcount = square.get_item_count(); int fmtw = 7 + ( itemcount > 99 ? 3 : itemcount > 9 ? 2 : 1 ) + ( max > 99 ? 3 : max > 9 ? 2 : 1 ); - mvwprintw( w, point( w_width / 2 - fmtw, 0 ), "< %d/%d >", itemcount, max ); + mvwprintw( w, 0, ( w_width / 2 ) - fmtw, "< %d/%d >", itemcount, max ); } const char *fprefix = _( "[F]ilter" ); const char *fsuffix = _( "[R]eset" ); if( ! filter_edit ) { if( !pane.filter.empty() ) { - mvwprintw( w, point( 2, getmaxy( w ) - 1 ), "< %s: %s >", fprefix, pane.filter ); + mvwprintw( w, getmaxy( w ) - 1, 2, "< %s: %s >", fprefix, pane.filter ); } else { - mvwprintw( w, point( 2, getmaxy( w ) - 1 ), "< %s >", fprefix ); + mvwprintw( w, getmaxy( w ) - 1, 2, "< %s >", fprefix ); } } if( active ) { @@ -1258,7 +1257,7 @@ bool advanced_inventory::move_all_items( bool nested_call ) if( squares[loc].can_store_in_vehicle() ) { // either do the inverse of the pane (if it is the one we are transferring to), // or just transfer the contents (if it is not the one we are transferring to) - spane.set_area( squares[loc], dpane.get_area() == loc ? !dpane.in_vehicle() : true ); + spane.set_area( squares[loc], ( dpane.get_area() == loc ) ? !dpane.in_vehicle() : true ); // add items, calculate weights and volumes... the fun stuff recalc_pane( src ); // then move the items to the destination area @@ -1311,6 +1310,10 @@ bool advanced_inventory::move_all_items( bool nested_call ) popup( _( "You can't put items there!" ) ); return false; } + if( spane.get_area() == AIM_WORN && + !query_yn( _( "Really remove all your clothes? (woo hoo)" ) ) ) { + return false; + } auto &sarea = squares[spane.get_area()]; auto &darea = squares[dpane.get_area()]; @@ -1339,10 +1342,10 @@ bool advanced_inventory::move_all_items( bool nested_call ) if( spane.get_area() == AIM_INVENTORY || spane.get_area() == AIM_WORN ) { std::list> dropped; - // keep a list of favorites separated, only drop non-fav first if they exist - std::list> dropped_favorite; if( spane.get_area() == AIM_INVENTORY ) { + // keep a list of favorites separated, only drop non-fav first if they exist + std::list> dropped_favorite; for( size_t index = 0; index < g->u.inv.size(); ++index ) { const auto &stack = g->u.inv.const_stack( index ); const auto &it = stack.front(); @@ -1352,26 +1355,25 @@ bool advanced_inventory::move_all_items( bool nested_call ) it.count_by_charges() ? static_cast( it.charges ) : static_cast( stack.size() ) ); } } + if( dropped.empty() ) { + if( !query_yn( _( "Really drop all your favorite items?" ) ) ) { + return false; + } + dropped = dropped_favorite; + } } else if( spane.get_area() == AIM_WORN ) { // do this in reverse, to account for vector item removal messing with future indices auto iter = g->u.worn.rbegin(); for( size_t idx = 0; idx < g->u.worn.size(); ++idx, ++iter ) { - const size_t index = g->u.worn.size() - idx - 1; + const size_t index = ( g->u.worn.size() - idx - 1 ); const auto &it = *iter; if( !spane.is_filtered( it ) ) { - ( it.is_favorite ? dropped_favorite : dropped ).emplace_back( player::worn_position_to_index( - index ), - it.count() ); + dropped.emplace_back( player::worn_position_to_index( index ), + it.count() ); } } } - if( dropped.empty() ) { - if( !query_yn( _( "Really drop all your favorite items?" ) ) ) { - return false; - } - dropped = dropped_favorite; - } g->u.drop( dropped, g->u.pos() + darea.off ); } else { @@ -1467,21 +1469,21 @@ static tripoint aim_vector( aim_location id ) { switch( id ) { case AIM_SOUTHWEST: - return tripoint_south_west; + return tripoint( -1, 1, 0 ); case AIM_SOUTH: - return tripoint_south; + return tripoint( 0, 1, 0 ); case AIM_SOUTHEAST: - return tripoint_south_east; + return tripoint( 1, 1, 0 ); case AIM_WEST: - return tripoint_west; + return tripoint( -1, 0, 0 ); case AIM_EAST: - return tripoint_east; + return tripoint( 1, 0, 0 ); case AIM_NORTHWEST: - return tripoint_north_west; + return tripoint( -1, -1, 0 ); case AIM_NORTH: - return tripoint_north; + return tripoint( 0, -1, 0 ); case AIM_NORTHEAST: - return tripoint_north_east; + return tripoint( 1, -1, 0 ); default: return tripoint_zero; } @@ -1542,8 +1544,8 @@ void advanced_inventory::display() do_return_entry(); return; } - dest = src == advanced_inventory::side::left ? advanced_inventory::side::right : - advanced_inventory::side::left; + 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 ); @@ -1575,7 +1577,7 @@ void advanced_inventory::display() advanced_inv_listitem *sitem = spane.get_cur_item_ptr(); aim_location changeSquare = NUM_AIM_LOCATIONS; - const std::string action = is_processing() ? "MOVE_ALL_ITEMS" : ctxt.handle_input(); + const std::string action = ( is_processing() ) ? "MOVE_ALL_ITEMS" : ctxt.handle_input(); if( action == "CATEGORY_SELECTION" ) { inCategoryMode = !inCategoryMode; spane.redraw = true; // We redraw to force the color change of the highlighted line and header text. @@ -1665,7 +1667,7 @@ void advanced_inventory::display() } aim_location destarea = dpane.get_area(); aim_location srcarea = sitem->area; - bool restore_area = destarea == AIM_ALL; + bool restore_area = ( destarea == AIM_ALL ); if( !query_destination( destarea ) ) { continue; } @@ -1720,7 +1722,7 @@ void advanced_inventory::display() do_return_entry(); // if worn, we need to fix with the worn index number (starts at -2, as -1 is weapon) - int idx = srcarea == AIM_INVENTORY ? sitem->idx : player::worn_position_to_index( sitem->idx ); + int idx = ( srcarea == AIM_INVENTORY ) ? sitem->idx : player::worn_position_to_index( sitem->idx ); if( srcarea == AIM_WORN && destarea == AIM_INVENTORY ) { // this is ok because worn items are never stacked (can't move more than 1). @@ -1807,17 +1809,21 @@ void advanced_inventory::display() string_input_popup spopup; std::string filter = spane.filter; filter_edit = true; - spopup.window( spane.window, 4, w_height - 1, w_width / 2 - 4 ) + spopup.window( spane.window, 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 ); - ime_sentry sentry; +#if defined(__ANDROID__) + if( get_option( "ANDROID_AUTO_KEYBOARD" ) ) { + SDL_StartTextInput(); + } +#endif do { mvwprintz( spane.window, getmaxy( spane.window ) - 1, 2, c_cyan, "< " ); - mvwprintz( spane.window, getmaxy( spane.window ) - 1, w_width / 2 - 4, c_cyan, " >" ); + mvwprintz( spane.window, getmaxy( spane.window ) - 1, ( w_width / 2 ) - 4, c_cyan, " >" ); std::string new_filter = spopup.query_string( false ); if( spopup.context().get_raw_input().get_first_input() == KEY_ESCAPE ) { // restore original filter @@ -1853,8 +1859,8 @@ void advanced_inventory::display() const int info_width = w_width / 2; const int info_startx = colstart + ( src == advanced_inventory::side::left ? info_width : 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 ); + int idx = ( spane.get_area() == AIM_INVENTORY ) ? + sitem->idx : player::worn_position_to_index( sitem->idx ); // 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 @@ -2056,7 +2062,7 @@ bool advanced_inventory::query_destination( aim_location &def ) prefix += _( " (FULL)" ); } menu.addentry( ordered_loc, - s.canputitems() && s.id != panes[src].get_area(), + ( s.canputitems() && s.id != panes[src].get_area() ), get_location_key( ordered_loc ), prefix + " " + s.name + " " + ( s.veh != nullptr ? s.veh->name : "" ) ); } @@ -2128,9 +2134,9 @@ units::volume advanced_inv_area::free_volume( bool in_vehicle ) const { assert( id != AIM_ALL ); // should be a specific location instead if( id == AIM_INVENTORY || id == AIM_WORN ) { - return g->u.volume_capacity() - g->u.volume_carried(); + return ( g->u.volume_capacity() - g->u.volume_carried() ); } - return in_vehicle ? veh->free_volume( vstor ) : g->m.free_volume( pos ); + return ( in_vehicle ) ? veh->free_volume( vstor ) : g->m.free_volume( pos ); } bool advanced_inventory::query_charges( aim_location destarea, const advanced_inv_listitem &sitem, @@ -2143,7 +2149,8 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in const bool by_charges = it.count_by_charges(); const units::volume free_volume = p.free_volume( panes[dest].in_vehicle() ); // default to move all, unless if being equipped - const int input_amount = by_charges ? it.charges : action == "MOVE_SINGLE_ITEM" ? 1 : sitem.stacks; + const int input_amount = by_charges ? it.charges : + ( action == "MOVE_SINGLE_ITEM" ) ? 1 : sitem.stacks; assert( input_amount > 0 ); // there has to be something to begin with amount = input_amount; @@ -2190,7 +2197,7 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in const units::mass unitweight = it.weight() / ( by_charges ? it.charges : 1 ); const units::mass max_weight = g->u.has_trait( trait_id( "DEBUG_STORAGE" ) ) ? units::mass_max : g->u.weight_capacity() * 4 - g->u.weight_carried(); - if( unitweight > 0_gram && unitweight * amount > max_weight ) { + if( unitweight > 0_gram && ( unitweight * amount > max_weight ) ) { const int weightmax = max_weight / unitweight; if( weightmax <= 0 ) { popup( _( "This is too heavy!" ) ); @@ -2210,7 +2217,7 @@ bool advanced_inventory::query_charges( aim_location destarea, const advanced_in } // Now we have the final amount. Query if requested or limited room left. if( action == "MOVE_VARIABLE_ITEM" || amount < input_amount ) { - const int count = by_charges ? it.charges : sitem.stacks; + const int count = ( by_charges ) ? it.charges : sitem.stacks; const char *msg = nullptr; std::string popupmsg; if( amount >= input_amount ) { @@ -2250,7 +2257,7 @@ bool advanced_inv_area::is_same( const advanced_inv_area &other ) const id != AIM_WORN && other.id != AIM_WORN && id != AIM_CONTAINER && other.id != AIM_CONTAINER ) { // have a vehicle?... ...do the cargo index and pos match?... ...at least pos? - return veh == other.veh ? pos == other.pos && vstor == other.vstor : pos == other.pos; + return ( veh == other.veh ) ? ( pos == other.pos && vstor == other.vstor ) : pos == other.pos; } // ...is the id? return id == other.id; @@ -2334,9 +2341,10 @@ item *advanced_inv_area::get_container( bool in_vehicle ) } else { map &m = g->m; bool is_in_vehicle = veh && - ( uistate.adv_inv_container_in_vehicle || ( can_store_in_vehicle() && in_vehicle ) ); + ( uistate.adv_inv_container_in_vehicle || + ( can_store_in_vehicle() && in_vehicle ) ); - const itemstack &stacks = is_in_vehicle ? + const itemstack &stacks = ( is_in_vehicle ) ? i_stacked( veh->get_items( vstor ) ) : i_stacked( m.i_at( pos ) ); @@ -2379,7 +2387,7 @@ void advanced_inv_area::set_container( const advanced_inv_listitem *advitem ) uistate.adv_inv_container_in_vehicle = advitem->from_vehicle; uistate.adv_inv_container_index = advitem->idx; uistate.adv_inv_container_type = it->typeId(); - uistate.adv_inv_container_content_type = !it->is_container_empty() ? + uistate.adv_inv_container_content_type = ( !it->is_container_empty() ) ? it->contents.front().typeId() : "null"; set_container_position(); } else { @@ -2473,7 +2481,7 @@ void advanced_inventory::draw_minimap() auto sq = squares[panes[s].get_area()]; auto pt = pc + sq.off; // invert the color if pointing to the player's position - auto cl = sq.id == AIM_INVENTORY || sq.id == AIM_WORN ? + auto cl = ( sq.id == AIM_INVENTORY || sq.id == AIM_WORN ) ? invert_color( c_light_cyan ) : c_light_cyan.blink(); mvwputch( minimap, pt.y, pt.x, cl, sym ); } @@ -2509,7 +2517,7 @@ char advanced_inventory::get_minimap_sym( side p ) const ch = d_side[panes[-p + 1].get_area() == AIM_CENTER]; break; case '#': // 'L' or 'R' - ch = panes[p].in_vehicle() ? 'V' : c_side[p]; + ch = ( panes[p].in_vehicle() ) ? 'V' : c_side[p]; break; case '^': // do not show anything ch ^= ch; @@ -2549,7 +2557,7 @@ void advanced_inventory::do_return_entry() bool advanced_inventory::is_processing() const { - return uistate.adv_inv_re_enter_move_all != ENTRY_START; + return ( uistate.adv_inv_re_enter_move_all != ENTRY_START ); } aim_location advanced_inventory::screen_relative_location( aim_location area ) diff --git a/src/advanced_inv.h b/src/advanced_inv.h index 042270323f0c8..247321e686ec7 100644 --- a/src/advanced_inv.h +++ b/src/advanced_inv.h @@ -74,7 +74,8 @@ struct advanced_inv_listitem; struct advanced_inv_area { const aim_location id; // Used for the small overview 3x3 grid - point hscreen = point_zero; + int hscreenx = 0; + int hscreeny = 0; // relative (to the player) position of the map point tripoint off; /** Long name, displayed, translated */ @@ -102,8 +103,8 @@ struct advanced_inv_area { advanced_inv_area( aim_location id ) : id( id ) {} advanced_inv_area( aim_location id, int hscreenx, int hscreeny, tripoint off, const std::string &name, const std::string &shortname ) : id( id ), - hscreen( hscreenx, hscreeny ), off( off ), name( name ), shortname( shortname ), - canputitemsloc( false ), veh( nullptr ), vstor( -1 ), volume( 0_ml ), + hscreenx( hscreenx ), hscreeny( hscreeny ), off( off ), name( name ), shortname( shortname ), + pos( 0, 0, 0 ), canputitemsloc( false ), veh( nullptr ), vstor( -1 ), volume( 0_ml ), weight( 0_gram ), max_size( 0 ) { } diff --git a/src/animation.cpp b/src/animation.cpp index 0699c60b1553e..bceaa1fb3653d 100644 --- a/src/animation.cpp +++ b/src/animation.cpp @@ -103,7 +103,9 @@ bool is_layer_visible( const std::map &layer ) //! Get (x, y) relative to u's current position and view tripoint relative_view_pos( const player &u, const int x, const int y, const int z ) noexcept { - return -u.view_offset + tripoint( POSX + x - u.posx(), POSY + y - u.posy(), z - u.posz() ); + return tripoint { POSX + x - u.posx() - u.view_offset.x, + POSY + y - u.posy() - u.view_offset.y, + z - u.posz() - u.view_offset.z }; } tripoint relative_view_pos( const player &u, const tripoint &p ) noexcept @@ -114,7 +116,9 @@ tripoint relative_view_pos( const player &u, const tripoint &p ) noexcept // Convert p to screen position relative to the current terrain view tripoint relative_view_pos( const game &g, const tripoint &p ) noexcept { - return p - g.ter_view_p + point( POSX, POSY ); + return { POSX + p.x - g.ter_view_x, + POSY + p.y - g.ter_view_y, + p.z - g.ter_view_z }; } void draw_explosion_curses( game &g, const tripoint ¢er, const int r, const nc_color &col ) @@ -337,10 +341,10 @@ void explosion_handler::draw_custom_explosion( const tripoint &, const tripoint &pt = pr.first; explosion_neighbors &ngh = pr.second.neighborhood; - set_neighbors( pt + point_west, ngh, N_WEST, N_EAST ); - set_neighbors( pt + point_east, ngh, N_EAST, N_WEST ); - set_neighbors( pt + point_north, ngh, N_NORTH, N_SOUTH ); - set_neighbors( pt + point_south, ngh, N_SOUTH, N_NORTH ); + set_neighbors( tripoint( pt.x - 1, pt.y, pt.z ), ngh, N_WEST, N_EAST ); + set_neighbors( tripoint( pt.x + 1, pt.y, pt.z ), ngh, N_EAST, N_WEST ); + set_neighbors( tripoint( pt.x, pt.y - 1, pt.z ), ngh, N_NORTH, N_SOUTH ); + set_neighbors( tripoint( pt.x, pt.y + 1, pt.z ), ngh, N_SOUTH, N_NORTH ); } // We need to save the layers because we will draw them in reverse order @@ -364,10 +368,10 @@ void explosion_handler::draw_custom_explosion( const tripoint &, const tripoint &pt = pr.first; const explosion_neighbors ngh = pr.second.neighborhood; - unset_neighbor( pt + point_west, ngh, N_WEST, N_EAST ); - unset_neighbor( pt + point_east, ngh, N_EAST, N_WEST ); - unset_neighbor( pt + point_north, ngh, N_NORTH, N_SOUTH ); - unset_neighbor( pt + point_south, ngh, N_SOUTH, N_NORTH ); + unset_neighbor( tripoint( pt.x - 1, pt.y, pt.z ), ngh, N_WEST, N_EAST ); + unset_neighbor( tripoint( pt.x + 1, pt.y, pt.z ), ngh, N_EAST, N_WEST ); + unset_neighbor( tripoint( pt.x, pt.y - 1, pt.z ), ngh, N_NORTH, N_SOUTH ); + unset_neighbor( tripoint( pt.x, pt.y + 1, pt.z ), ngh, N_SOUTH, N_NORTH ); neighbors.erase( pr.first ); } @@ -702,7 +706,7 @@ namespace { void draw_sct_curses( game &g ) { - const tripoint off = relative_view_pos( g.u, tripoint_zero ); + const tripoint off = relative_view_pos( g.u, 0, 0, 0 ); for( const auto &text : SCT.vSCT ) { const int dy = off.y + text.getPosY(); diff --git a/src/armor_layers.cpp b/src/armor_layers.cpp index 6d1e5ed6d1ad5..66569201873ac 100644 --- a/src/armor_layers.cpp +++ b/src/armor_layers.cpp @@ -71,7 +71,7 @@ item_penalties get_item_penalties( std::list::const_iterator worn_item_it, } const int num_items = std::count_if( c.worn.begin(), c.worn.end(), [layer, bp]( const item & i ) { - return i.get_layer() == layer && i.covers( bp ) && !i.has_flag( "SEMITANGIBLE" ); + return i.get_layer() == layer && i.covers( bp ); } ); if( num_items > 1 ) { body_parts_with_stacking_penalty.push_back( bp ); @@ -179,9 +179,7 @@ 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: - return _( "in your personal aura" ); - case UNDERWEAR_LAYER: + case UNDERWEAR: return _( "close to your skin" ); case REGULAR_LAYER: return _( "of normal clothing" ); @@ -191,8 +189,6 @@ void draw_mid_pane( const catacurses::window &w_sort_middle, return _( "of outer clothing" ); case BELTED_LAYER: return _( "strapped to you" ); - case AURA_LAYER: - return _( "an aura around you" ); default: debugmsg( "Unexpected layer" ); return ""; @@ -247,9 +243,7 @@ std::string clothing_layer( const item &worn_item ) { std::string layer; - if( worn_item.has_flag( "PERSONAL" ) ) { - layer = _( "This is in your personal aura." ); - } else if( worn_item.has_flag( "SKINTIGHT" ) ) { + if( worn_item.has_flag( "SKINTIGHT" ) ) { layer = _( "This is worn next to the skin." ); } else if( worn_item.has_flag( "WAIST" ) ) { layer = _( "This is worn on or around your waist." ); @@ -257,8 +251,6 @@ std::string clothing_layer( const item &worn_item ) layer = _( "This is worn over your other clothes." ); } else if( worn_item.has_flag( "BELTED" ) ) { layer = _( "This is strapped onto you." ); - } else if( worn_item.has_flag( "AURA" ) ) { - layer = _( "This is an aura around you." ); } return layer; @@ -337,9 +329,6 @@ std::vector clothing_flags_description( const item &worn_item ) if( worn_item.has_flag( "SWIM_GOGGLES" ) ) { description_stack.push_back( _( "It helps you to see clearly underwater." ) ); } - if( worn_item.has_flag( "SEMITANGIBLE" ) ) { - description_stack.push_back( _( "It can occupy the same space as other things." ) ); - } return description_stack; } @@ -384,9 +373,9 @@ static void draw_grid( const catacurses::window &w, int left_pane_w, int mid_pan const int win_h = getmaxy( w ); draw_border( w ); - mvwhline( w, point( 1, 2 ), 0, win_w - 2 ); - mvwvline( w, point( left_pane_w + 1, 3 ), 0, win_h - 4 ); - mvwvline( w, point( left_pane_w + mid_pane_w + 2, 3 ), 0, win_h - 4 ); + mvwhline( w, 2, 1, 0, win_w - 2 ); + mvwvline( w, 3, left_pane_w + 1, 0, win_h - 4 ); + mvwvline( w, 3, left_pane_w + mid_pane_w + 2, 0, win_h - 4 ); // intersections mvwputch( w, 2, 0, BORDER_COLOR, LINE_XXXO ); @@ -458,18 +447,17 @@ void player::sort_armor() }; // Layout window - catacurses::window w_sort_armor = catacurses::newwin( win_h, win_w, point( win_x, win_y ) ); + catacurses::window w_sort_armor = catacurses::newwin( win_h, win_w, win_y, win_x ); draw_grid( w_sort_armor, left_w, middle_w ); // Subwindows (between lines) - catacurses::window w_sort_cat = catacurses::newwin( 1, win_w - 4, point( win_x + 2, win_y + 1 ) ); - catacurses::window w_sort_left = catacurses::newwin( cont_h, left_w, point( win_x + 1, - win_y + 3 ) ); - catacurses::window w_sort_middle = catacurses::newwin( cont_h - num_bp - 1, middle_w, - point( win_x + left_w + 2, win_y + 3 ) ); - catacurses::window w_sort_right = catacurses::newwin( cont_h, right_w, - point( win_x + left_w + middle_w + 3, win_y + 3 ) ); + catacurses::window w_sort_cat = catacurses::newwin( 1, win_w - 4, win_y + 1, win_x + 2 ); + catacurses::window w_sort_left = catacurses::newwin( cont_h, left_w, win_y + 3, win_x + 1 ); + catacurses::window w_sort_middle = catacurses::newwin( cont_h - num_bp - 1, middle_w, win_y + 3, + win_x + left_w + 2 ); + catacurses::window w_sort_right = catacurses::newwin( cont_h, right_w, win_y + 3, + win_x + left_w + middle_w + 3 ); catacurses::window w_encumb = catacurses::newwin( num_bp + 1, middle_w, - point( win_x + left_w + 2, win_y + 3 + cont_h - num_bp - 1 ) ); + win_y + 3 + cont_h - num_bp - 1, win_x + left_w + 2 ); input_context ctxt( "SORT_ARMOR" ); ctxt.register_cardinal(); diff --git a/src/artifact.cpp b/src/artifact.cpp index d5726fa786d33..d8637786d7765 100644 --- a/src/artifact.cpp +++ b/src/artifact.cpp @@ -609,7 +609,7 @@ static const std::array artifact_dream_data = { }; // Constructors for artifact itypes. -it_artifact_tool::it_artifact_tool() +it_artifact_tool::it_artifact_tool() : itype() { tool.emplace(); artifact.emplace(); @@ -625,7 +625,7 @@ it_artifact_tool::it_artifact_tool() use_methods.emplace( "ARTIFACT", use_function( "ARTIFACT", &iuse::artifact ) ); } -it_artifact_tool::it_artifact_tool( JsonObject &jo ) +it_artifact_tool::it_artifact_tool( JsonObject &jo ) : itype() { tool.emplace(); artifact.emplace(); @@ -633,7 +633,7 @@ it_artifact_tool::it_artifact_tool( JsonObject &jo ) deserialize( jo ); } -it_artifact_armor::it_artifact_armor() +it_artifact_armor::it_artifact_armor() : itype() { armor.emplace(); artifact.emplace(); @@ -641,7 +641,7 @@ it_artifact_armor::it_artifact_armor() price = 0; } -it_artifact_armor::it_artifact_armor( JsonObject &jo ) +it_artifact_armor::it_artifact_armor( JsonObject &jo ) : itype() { armor.emplace(); artifact.emplace(); diff --git a/src/assign.h b/src/assign.h index 8e3bd0245b908..ad209d41a0909 100644 --- a/src/assign.h +++ b/src/assign.h @@ -337,7 +337,7 @@ inline typename std::enable_if::type, time_duration>::value, bool>::type assign( JsonObject &jo, const std::string &name, T &val, bool strict, const T &factor ) { - T out{}; + T out = 0; double scalar; // Object via which to report errors which differs for proportional/relative values diff --git a/src/auto_pickup.cpp b/src/auto_pickup.cpp index 626e8382a3195..5088d37c0407f 100644 --- a/src/auto_pickup.cpp +++ b/src/auto_pickup.cpp @@ -46,21 +46,23 @@ void auto_pickup::show( const std::string &custom_name, bool is_autopickup ) const int iHeaderHeight = 4; const int iContentHeight = FULL_SCREEN_HEIGHT - 2 - iHeaderHeight; - 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; + 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; const int iTotalCols = 2; - catacurses::window w_help = catacurses::newwin( FULL_SCREEN_HEIGHT / 2 + 2, + catacurses::window w_help = catacurses::newwin( ( FULL_SCREEN_HEIGHT / 2 ) + 2, FULL_SCREEN_WIDTH * 3 / 4, - point( iOffsetX + 19 / 2, 7 + iOffsetY + FULL_SCREEN_HEIGHT / 2 / 2 ) ); + 7 + iOffsetY + ( FULL_SCREEN_HEIGHT / 2 ) / 2, iOffsetX + 19 / 2 ); - catacurses::window w_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iOffsetX, iOffsetY ) ); + catacurses::window w_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, + iOffsetX ); catacurses::window w_header = catacurses::newwin( iHeaderHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, 1 + iOffsetY ) ); + 1 + iOffsetY, + 1 + iOffsetX ); catacurses::window w = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, iHeaderHeight + 1 + iOffsetY ) ); + iHeaderHeight + 1 + iOffsetY, + 1 + iOffsetX ); /** * All of the stuff in this lambda needs to be drawn (1) initially, and @@ -139,15 +141,15 @@ void auto_pickup::show( const std::string &custom_name, bool is_autopickup ) while( true ) { int locx = 17; locx += shortcut_print( w_header, 2, locx, c_white, - iTab == GLOBAL_TAB ? hilite( c_white ) : c_white, _( "[]" ) ) + 1; + ( iTab == GLOBAL_TAB ) ? hilite( c_white ) : c_white, _( "[]" ) ) + 1; shortcut_print( w_header, 2, locx, c_white, - iTab == CHARACTER_TAB ? hilite( c_white ) : c_white, _( "[]" ) ); + ( iTab == CHARACTER_TAB ) ? hilite( c_white ) : c_white, _( "[]" ) ); locx = 55; mvwprintz( w_header, 0, locx, c_white, _( "Auto pickup enabled:" ) ); locx += shortcut_print( w_header, 1, locx, - get_option( "AUTO_PICKUP" ) ? c_light_green : c_light_red, c_white, - get_option( "AUTO_PICKUP" ) ? _( "True" ) : _( "False" ) ); + ( get_option( "AUTO_PICKUP" ) ? c_light_green : c_light_red ), c_white, + ( get_option( "AUTO_PICKUP" ) ? _( "True" ) : _( "False" ) ) ); locx += shortcut_print( w_header, 1, locx, c_white, c_light_green, " " ); locx += shortcut_print( w_header, 1, locx, c_white, c_light_green, _( "witch" ) ); shortcut_print( w_header, 1, locx, c_white, c_light_green, " " ); @@ -183,9 +185,10 @@ void auto_pickup::show( const std::string &custom_name, bool is_autopickup ) // display auto pickup for( int i = iStartPos; i < static_cast( vRules[iTab].size() ); i++ ) { if( i >= iStartPos && - i < iStartPos + ( iContentHeight > static_cast( vRules[iTab].size() ) ? + i < iStartPos + ( ( iContentHeight > static_cast( vRules[iTab].size() ) ) ? static_cast( vRules[iTab].size() ) : iContentHeight ) ) { - nc_color cLineColor = vRules[iTab][i].bActive ? c_white : c_light_gray; + nc_color cLineColor = ( vRules[iTab][i].bActive ) ? + c_white : c_light_gray; sTemp.str( "" ); sTemp << i + 1; @@ -198,12 +201,14 @@ void auto_pickup::show( const std::string &custom_name, bool is_autopickup ) wprintz( w, c_yellow, " " ); } - wprintz( w, iLine == i && iColumn == 1 ? hilite( cLineColor ) : cLineColor, "%s", - vRules[iTab][i].sRule.empty() ? _( "" ) : vRules[iTab][i].sRule ); + wprintz( w, ( iLine == i && + iColumn == 1 ) ? hilite( cLineColor ) : cLineColor, "%s", + ( ( vRules[iTab][i].sRule.empty() ) ? _( "" ) : + vRules[iTab][i].sRule ) ); - mvwprintz( w, i - iStartPos, 52, iLine == i && iColumn == 2 ? - hilite( cLineColor ) : cLineColor, "%s", - vRules[iTab][i].bExclude ? _( "Exclude" ) : _( "Include" ) ); + mvwprintz( w, i - iStartPos, 52, ( iLine == i && + iColumn == 2 ) ? hilite( cLineColor ) : cLineColor, "%s", + ( ( vRules[iTab][i].bExclude ) ? _( "Exclude" ) : _( "Include" ) ) ); } } @@ -259,17 +264,17 @@ void auto_pickup::show( const std::string &custom_name, bool is_autopickup ) if( ( iTab == GLOBAL_TAB && !g->u.name.empty() ) || iTab == CHARACTER_TAB ) { bStuffChanged = true; //copy over - vRules[iTab == GLOBAL_TAB ? CHARACTER_TAB : GLOBAL_TAB].push_back( cRules( + vRules[( iTab == GLOBAL_TAB ) ? CHARACTER_TAB : GLOBAL_TAB].push_back( cRules( vRules[iTab][iLine].sRule, vRules[iTab][iLine].bActive, vRules[iTab][iLine].bExclude ) ); //remove old vRules[iTab].erase( vRules[iTab].begin() + iLine ); - iLine = vRules[iTab == GLOBAL_TAB ? CHARACTER_TAB : GLOBAL_TAB].size() - 1; - iTab = iTab == GLOBAL_TAB ? CHARACTER_TAB : GLOBAL_TAB; + iLine = vRules[( iTab == GLOBAL_TAB ) ? CHARACTER_TAB : GLOBAL_TAB].size() - 1; + iTab = ( iTab == GLOBAL_TAB ) ? CHARACTER_TAB : GLOBAL_TAB; } - } else if( action == "ADD_RULE" || ( action == "CONFIRM" && currentPageNonEmpty ) ) { + } else if( ( action == "ADD_RULE" ) || ( action == "CONFIRM" && currentPageNonEmpty ) ) { const int old_iLine = iLine; if( action == "ADD_RULE" ) { vRules[iTab].push_back( cRules( "", true, false ) ); @@ -396,8 +401,8 @@ void auto_pickup::test_pattern( const int iTab, const int iRow ) vMatchingItems.push_back( sItemName ); } - const int iOffsetX = 15 + ( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); - const int iOffsetY = 5 + ( TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : + const int iOffsetX = 15 + ( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); + const int iOffsetY = 5 + ( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ); int iStartPos = 0; @@ -406,10 +411,10 @@ void auto_pickup::test_pattern( const int iTab, const int iRow ) std::ostringstream sTemp; const catacurses::window w_test_rule_border = catacurses::newwin( iContentHeight + 2, iContentWidth, - point( iOffsetX, iOffsetY ) ); + iOffsetY, iOffsetX ); const catacurses::window w_test_rule_content = catacurses::newwin( iContentHeight, iContentWidth - 2, - point( 1 + iOffsetX, 1 + iOffsetY ) ); + 1 + iOffsetY, 1 + iOffsetX ); int nmatch = vMatchingItems.size(); const std::string buf = string_format( ngettext( "%1$d item matches: %2$s", @@ -439,8 +444,9 @@ void auto_pickup::test_pattern( const int iTab, const int iRow ) // display auto pickup for( int i = iStartPos; i < static_cast( vMatchingItems.size() ); i++ ) { if( i >= iStartPos && - i < iStartPos + ( iContentHeight > static_cast( vMatchingItems.size() ) ? - static_cast( vMatchingItems.size() ) : iContentHeight ) ) { + i < iStartPos + ( ( iContentHeight > static_cast( vMatchingItems.size() ) ) ? static_cast + ( vMatchingItems.size() ) : + iContentHeight ) ) { nc_color cLineColor = c_white; sTemp.str( "" ); @@ -454,7 +460,8 @@ void auto_pickup::test_pattern( const int iTab, const int iRow ) wprintz( w_test_rule_content, c_yellow, " " ); } - wprintz( w_test_rule_content, iLine == i ? hilite( cLineColor ) : cLineColor, vMatchingItems[i] ); + wprintz( w_test_rule_content, ( iLine == i ) ? hilite( cLineColor ) : cLineColor, + vMatchingItems[i] ); } } @@ -719,7 +726,7 @@ void auto_pickup::serialize( JsonOut &json ) const { json.start_array(); - for( auto &elem : vRules[bChar ? CHARACTER_TAB : GLOBAL_TAB] ) { + for( auto &elem : vRules[( bChar ) ? CHARACTER_TAB : GLOBAL_TAB] ) { json.start_object(); json.member( "rule", elem.sRule ); @@ -734,7 +741,7 @@ void auto_pickup::serialize( JsonOut &json ) const void auto_pickup::deserialize( JsonIn &jsin ) { - vRules[bChar ? CHARACTER_TAB : GLOBAL_TAB].clear(); + vRules[( bChar ) ? CHARACTER_TAB : GLOBAL_TAB].clear(); ready = false; jsin.start_array(); @@ -745,7 +752,7 @@ void auto_pickup::deserialize( JsonIn &jsin ) const bool bActive = jo.get_bool( "active" ); const bool bExclude = jo.get_bool( "exclude" ); - vRules[bChar ? CHARACTER_TAB : GLOBAL_TAB].push_back( cRules( sRule, bActive, bExclude ) ); + vRules[( bChar ) ? CHARACTER_TAB : GLOBAL_TAB].push_back( cRules( sRule, bActive, bExclude ) ); } } @@ -757,7 +764,7 @@ bool auto_pickup::load_legacy( const bool bCharacter ) sFile = g->get_player_base_save_path() + ".apu.txt"; } - auto &rules = vRules[bCharacter ? CHARACTER_TAB : GLOBAL_TAB]; + auto &rules = vRules[( bCharacter ) ? CHARACTER_TAB : GLOBAL_TAB]; using namespace std::placeholders; const auto &reader = std::bind( &auto_pickup::load_legacy_rules, this, std::ref( rules ), _1 ); @@ -796,7 +803,7 @@ void auto_pickup::load_legacy_rules( std::vector &rules, std::istream &f do { iPos = sLine.find( ';' ); - std::string sTemp = iPos == std::string::npos ? sLine : sLine.substr( 0, iPos ); + std::string sTemp = ( iPos == std::string::npos ) ? sLine : sLine.substr( 0, iPos ); if( iCol == 1 ) { sRule = sTemp; diff --git a/src/avatar.cpp b/src/avatar.cpp index 22bd1e4934986..cde4bc302dfab 100644 --- a/src/avatar.cpp +++ b/src/avatar.cpp @@ -71,7 +71,6 @@ const efftype_id effect_depressants( "depressants" ); const efftype_id effect_happy( "happy" ); const efftype_id effect_irradiated( "irradiated" ); const efftype_id effect_pkill( "pkill" ); -const efftype_id effect_riding( "riding" ); const efftype_id effect_sad( "sad" ); const efftype_id effect_sleep( "sleep" ); const efftype_id effect_sleep_deprived( "sleep_deprived" ); @@ -103,7 +102,7 @@ static const trait_id trait_WHISKERS_RAT( "WHISKERS_RAT" ); const skill_id skill_unarmed( "unarmed" ); -avatar::avatar() +avatar::avatar() : player() { show_map_memory = true; active_mission = nullptr; @@ -121,7 +120,7 @@ void avatar::memorial( std::ostream &memorial_file, const std::string &epitaph ) //Avoid saying "a male unemployed" or similar std::string profession_name; - if( prof == profession::generic() ) { + if( prof == prof->generic( ) ) { if( male ) { profession_name = _( "an unemployed male" ); } else { @@ -263,7 +262,7 @@ void avatar::memorial( std::ostream &memorial_file, const std::string &epitaph ) memorial_file << _( "Bionics:" ) << eol; int total_bionics = 0; for( size_t i = 0; i < my_bionics->size(); ++i ) { - memorial_file << indent << i + 1 << ": " << ( *my_bionics )[i].id->name << eol; + memorial_file << indent << ( i + 1 ) << ": " << ( *my_bionics )[i].id->name << eol; total_bionics++; } if( total_bionics == 0 ) { @@ -693,7 +692,8 @@ bool avatar::read( int inventory_position, const bool continuous ) const int lvl = elem.first->get_skill_level( skill ); const std::string lvl_text = skill ? string_format( _( " | current level: %d" ), lvl ) : ""; const std::string name_text = elem.first->disp_name() + elem.second; - return string_format( "%-*s%s", static_cast( max_length( m ) ), name_text, lvl_text ); + return string_format( ( "%-*s%s" ), static_cast( max_length( m ) ), + name_text, lvl_text ); }; auto add_header = [&menu]( const std::string & str ) { @@ -1163,22 +1163,14 @@ void avatar::vomit() void avatar::disp_morale() { - int equilibrium = calc_focus_equilibrium(); - if( get_fatigue() >= MASSIVE_FATIGUE && ( focus_pool > 20 || equilibrium > 20 ) ) { - equilibrium = 20; - } else if( get_fatigue() >= EXHAUSTED && ( focus_pool > 40 || equilibrium > 40 ) ) { - equilibrium = 40; - } else if( get_fatigue() >= DEAD_TIRED && ( focus_pool > 60 || equilibrium > 60 ) ) { - equilibrium = 60; - } else if( get_fatigue() >= TIRED && ( focus_pool > 80 || equilibrium > 80 ) ) { - equilibrium = 80; - } - morale->display( equilibrium ); + morale->display( ( calc_focus_equilibrium() - focus_pool ) / 100.0 ); } +// written mostly by FunnyMan3595 in Github issue #613 (DarklingWolf's repo), +// with some small edits/corrections by Soron int avatar::calc_focus_equilibrium() const { - int focus_equilibrium = 100; + int focus_gain_rate = 100; if( activity.id() == activity_id( "ACT_READ" ) ) { const item &book = *activity.targets[0].get_item(); @@ -1187,7 +1179,7 @@ int avatar::calc_focus_equilibrium() const // apply a penalty when we're actually learning something const SkillLevel &skill_level = get_skill_level_object( bt.skill ); if( skill_level.can_train() && skill_level < bt.level ) { - focus_equilibrium -= 50; + focus_gain_rate -= 50; } } } @@ -1200,85 +1192,73 @@ int avatar::calc_focus_equilibrium() const } if( eff_morale < -99 ) { - // At very low morale, focus is at it's minimum - focus_equilibrium = 1; + // At very low morale, focus goes up at 1% of the normal rate. + focus_gain_rate = 1; } else if( eff_morale <= 50 ) { - // At -99 to +50 morale, each point of morale gives or takes 1 point of focus - focus_equilibrium += eff_morale; + // At -99 to +50 morale, each point of morale gives 1% of the normal rate. + focus_gain_rate += eff_morale; } else { /* Above 50 morale, we apply strong diminishing returns. - * Each block of 50 takes twice as many morale points as the previous one: - * 50 focus at 50 morale (as before) - * 200 focus at 150 morale (100 more morale) - * 250 focus at 350 morale (200 more morale) + * Each block of 50% takes twice as many morale points as the previous one: + * 150% focus gain at 50 morale (as before) + * 200% focus gain at 150 morale (100 more morale) + * 250% focus gain at 350 morale (200 more morale) * ... * Cap out at 400% focus gain with 3,150+ morale, mostly as a sanity check. */ int block_multiplier = 1; int morale_left = eff_morale; - while( focus_equilibrium < 400 ) { + while( focus_gain_rate < 400 ) { if( morale_left > 50 * block_multiplier ) { // We can afford the entire block. Get it and continue. morale_left -= 50 * block_multiplier; - focus_equilibrium += 50; + focus_gain_rate += 50; block_multiplier *= 2; } else { // We can't afford the entire block. Each block_multiplier morale - // points give 1 focus, and then we're done. - focus_equilibrium += morale_left / block_multiplier; + // points give 1% focus gain, and then we're done. + focus_gain_rate += morale_left / block_multiplier; break; } } } // This should be redundant, but just in case... - if( focus_equilibrium < 1 ) { - focus_equilibrium = 1; - } else if( focus_equilibrium > 400 ) { - focus_equilibrium = 400; + if( focus_gain_rate < 1 ) { + focus_gain_rate = 1; + } else if( focus_gain_rate > 400 ) { + focus_gain_rate = 400; } - return focus_equilibrium; + + return focus_gain_rate; } -int avatar::calc_focus_change() const +void avatar::update_mental_focus() { - int focus_gap = calc_focus_equilibrium() - focus_pool; + int focus_gain_rate = calc_focus_equilibrium() - focus_pool; // handle negative gain rates in a symmetric manner int base_change = 1; - if( focus_gap < 0 ) { + if( focus_gain_rate < 0 ) { base_change = -1; - focus_gap = -focus_gap; + focus_gain_rate = -focus_gain_rate; } // for every 100 points, we have a flat gain of 1 focus. // for every n points left over, we have an n% chance of 1 focus - int gain = focus_gap / 100; - if( rng( 1, 100 ) <= focus_gap % 100 ) { + int gain = focus_gain_rate / 100; + if( rng( 1, 100 ) <= ( focus_gain_rate % 100 ) ) { gain++; } - 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 ) ) { + focus_pool += ( gain * base_change ); - //it can fall faster then 1 - if( gain > -1 ) { - gain = -1; - } + // Fatigue should at least prevent high focus + // This caps focus gain at 60(arbitrary value) if you're Dead Tired + if( get_fatigue() >= DEAD_TIRED && focus_pool > 60 ) { + focus_pool = 60; } - return gain; -} - -void avatar::update_mental_focus() -{ - - focus_pool += calc_focus_change(); // Moved from calc_focus_equilibrium, because it is now const if( activity.id() == activity_id( "ACT_READ" ) ) { @@ -1374,7 +1354,7 @@ void avatar::reset_stats() // Starvation const float bmi = get_bmi(); if( bmi < character_weight_category::underweight ) { - const int str_penalty = floor( ( 1.0f - ( bmi - 13.0f ) / 3.0f ) * get_str_base() ); + const int str_penalty = floor( ( 1.0f - ( bmi - 13.0f ) / 3.0f ) * get_str_base() ) + 0.5f; add_miss_reason( _( "You're weak from hunger." ), static_cast( ( get_starvation() + 300 ) / 1000 ) ); mod_str_bonus( -str_penalty ); @@ -1399,7 +1379,8 @@ void avatar::reset_stats() // Dodge-related effects mod_dodge_bonus( mabuff_dodge_bonus() - - ( encumb( bp_leg_l ) + encumb( bp_leg_r ) ) / 20.0f - encumb( bp_torso ) / 10.0f ); + ( encumb( bp_leg_l ) + encumb( bp_leg_r ) ) / 20.0f - + ( encumb( bp_torso ) / 10.0f ) ); // Whiskers don't work so well if they're covered if( has_trait( trait_WHISKERS ) && !wearing_something_on( bp_mouth ) ) { mod_dodge_bonus( 1 ); @@ -1407,11 +1388,6 @@ void avatar::reset_stats() if( has_trait( trait_WHISKERS_RAT ) && !wearing_something_on( bp_mouth ) ) { mod_dodge_bonus( 2 ); } - // depending on mounts size, attacks will hit the mount and use their dodge rating. - // if they hit the player, the player cannot dodge as effectively. - if( is_mounted() ) { - mod_dodge_bonus( -4 ); - } // Spider hair is basically a full-body set of whiskers, once you get the brain for it if( has_trait( trait_CHITIN_FUR3 ) ) { static const std::array parts{ { bp_head, bp_arm_r, bp_arm_l, bp_leg_r, bp_leg_l } }; diff --git a/src/avatar.h b/src/avatar.h index 7a0d307464614..8dc4c4cfbe1a1 100644 --- a/src/avatar.h +++ b/src/avatar.h @@ -45,13 +45,6 @@ class avatar : public player void randomize( bool random_scenario, points_left &points, bool play_now = false ); bool load_template( const std::string &template_name, points_left &points ); - avatar *as_avatar() override { - return this; - } - const avatar *as_avatar() const override { - return this; - } - /** Prints out the player's memorial file */ void memorial( std::ostream &memorial_file, const std::string &epitaph ); @@ -72,11 +65,9 @@ class avatar : public player /** Provides the window and detailed morale data */ void disp_morale(); - /** Uses morale and other factors to return the player's focus target goto value */ + /** Uses morale and other factors to return the player's focus gain rate */ int calc_focus_equilibrium() const; - /** Calculates actual focus gain/loss value from focus equilibrium*/ - int calc_focus_change() const; - /** Uses calc_focus_change to update the player's current focus */ + /** Uses calc_focus_equilibrium to update the player's current focus */ void update_mental_focus(); /** Resets stats, and applies effects in an idempotent manner */ void reset_stats() override; diff --git a/src/avatar_action.cpp b/src/avatar_action.cpp index 0cd8245417009..e7b89759b20ce 100644 --- a/src/avatar_action.cpp +++ b/src/avatar_action.cpp @@ -58,6 +58,7 @@ static const efftype_id effect_onfire( "onfire" ); static const efftype_id effect_pet( "pet" ); static const efftype_id effect_relax_gas( "relax_gas" ); static const efftype_id effect_stunned( "stunned" ); +static const efftype_id effect_riding( "riding" ); static const efftype_id effect_harnessed( "harnessed" ); static const fault_id fault_gun_clogged( "fault_gun_clogged" ); @@ -93,7 +94,7 @@ bool avatar_action::move( avatar &you, map &m, int dx, int dy, int dz ) if( m.has_flag( TFLAG_MINEABLE, dest_loc ) && g->mostseen == 0 && get_option( "AUTO_FEATURES" ) && get_option( "AUTO_MINING" ) && !m.veh_at( dest_loc ) && !you.is_underwater() && !you.has_effect( effect_stunned ) && - !you.is_mounted() ) { + !you.has_effect( effect_riding ) ) { if( you.weapon.has_flag( "DIG_TOOL" ) ) { if( you.weapon.type->can_use( "JACKHAMMER" ) && you.weapon.ammo_sufficient() ) { you.invoke_item( &you.weapon, "JACKHAMMER", dest_loc ); @@ -129,13 +130,15 @@ bool avatar_action::move( avatar &you, map &m, int dx, int dy, int dz ) if( ! tile_iso ) { if( new_dx > 0 ) { you.facing = FD_RIGHT; - if( you.is_mounted() ) { - you.mounted_creature->facing = FD_RIGHT; + if( you.has_effect( effect_riding ) && you.mounted_creature ) { + auto mons = you.mounted_creature.get(); + mons->facing = FD_RIGHT; } } else if( new_dx < 0 ) { you.facing = FD_LEFT; - if( you.is_mounted() ) { - you.mounted_creature->facing = FD_LEFT; + if( you.has_effect( effect_riding ) && you.mounted_creature ) { + auto mons = you.mounted_creature.get(); + mons->facing = FD_LEFT; } } } else { @@ -171,14 +174,14 @@ bool avatar_action::move( avatar &you, map &m, int dx, int dy, int dz ) // if( new_dx >= 0 && new_dy >= 0 ) { you.facing = FD_RIGHT; - if( you.is_mounted() ) { + if( you.has_effect( effect_riding ) && you.mounted_creature ) { auto mons = you.mounted_creature.get(); mons->facing = FD_RIGHT; } } if( new_dy <= 0 && new_dx <= 0 ) { you.facing = FD_LEFT; - if( you.is_mounted() ) { + if( you.has_effect( effect_riding ) && you.mounted_creature ) { auto mons = you.mounted_creature.get(); mons->facing = FD_LEFT; } @@ -328,10 +331,10 @@ bool avatar_action::move( avatar &you, map &m, int dx, int dy, int dz ) if( toSwimmable && toDeepWater && !toBoat ) { // Dive into water! // Requires confirmation if we were on dry land previously - if( you.is_mounted() ) { + if( you.has_effect( effect_riding ) && you.mounted_creature != nullptr ) { auto mon = you.mounted_creature.get(); if( !mon->has_flag( MF_SWIMS ) || mon->get_size() < you.get_size() + 2 ) { - add_msg( m_warning, _( "The %s cannot swim while it is carrying you!" ), mon->get_name() ); + add_msg( m_warning, _( "Your mount shies away from the water!" ) ); return false; } } @@ -423,11 +426,11 @@ bool avatar_action::ramp_move( avatar &you, map &m, const tripoint &dest_loc ) // We're moving onto a tile with no support, check if it has a ramp below if( !m.has_floor_or_support( dest_loc ) ) { - tripoint below( dest_loc.xy(), dest_loc.z - 1 ); + tripoint below( dest_loc.x, dest_loc.y, dest_loc.z - 1 ); if( m.has_flag( TFLAG_RAMP, below ) ) { // But we're moving onto one from above const tripoint dp = dest_loc - you.pos(); - move( you, m, tripoint( dp.xy(), -1 ) ); + move( you, m, dp.x, dp.y, -1 ); // No penalty for misaligned stairs here // Also cheaper than climbing up return true; @@ -459,7 +462,7 @@ bool avatar_action::ramp_move( avatar &you, map &m, const tripoint &dest_loc ) const tripoint dp = dest_loc - you.pos(); const tripoint old_pos = you.pos(); - move( you, m, tripoint( dp.xy(), 1 ) ); + move( you, m, dp.x, dp.y, 1 ); // We can't just take the result of the above function here if( you.pos() != old_pos ) { you.moves -= 50 + ( aligned_ramps ? 0 : 50 ); @@ -479,7 +482,7 @@ void avatar_action::swim( map &m, avatar &you, const tripoint &p ) if( you.has_effect( effect_onfire ) ) { add_msg( _( "The water puts out the flames!" ) ); you.remove_effect( effect_onfire ); - if( you.is_mounted() ) { + if( you.has_effect( effect_riding ) && you.mounted_creature != nullptr ) { monster *mon = you.mounted_creature.get(); if( mon->has_effect( effect_onfire ) ) { mon->remove_effect( effect_onfire ); @@ -512,7 +515,8 @@ void avatar_action::swim( map &m, avatar &you, const tripoint &p ) if( you.in_vehicle ) { m.unboard_vehicle( you.pos() ); } - if( you.is_mounted() && m.veh_at( you.pos() ).part_with_feature( VPFLAG_BOARDABLE, true ) ) { + if( you.has_effect( effect_riding ) && + m.veh_at( you.pos() ).part_with_feature( VPFLAG_BOARDABLE, true ) ) { add_msg( m_warning, _( "You cannot board a vehicle while mounted." ) ); return; } @@ -529,7 +533,7 @@ void avatar_action::swim( map &m, avatar &you, const tripoint &p ) you.moves -= ( movecost > 200 ? 200 : movecost ) * ( trigdist && diagonal ? 1.41 : 1 ); you.inv.rust_iron_items(); - if( !you.is_mounted() ) { + if( !you.has_effect( effect_riding ) ) { you.burn_move_stamina( movecost ); } @@ -575,7 +579,7 @@ void avatar_action::autoattack( avatar &you, map &m ) const tripoint diff = best.pos() - you.pos(); if( abs( diff.x ) <= 1 && abs( diff.y ) <= 1 && diff.z == 0 ) { - move( you, m, tripoint( diff.xy(), 0 ) ); + move( you, m, diff.x, diff.y ); return; } @@ -658,27 +662,14 @@ bool avatar_action::fire_check( avatar &you, const map &m, const targeting_data if( gun->get_gun_ups_drain() > 0 ) { const int ups_drain = gun->get_gun_ups_drain(); const int adv_ups_drain = std::max( 1, ups_drain * 3 / 5 ); - bool is_mech_weapon = false; - if( you.is_mounted() ) { - auto mons = g->u.mounted_creature.get(); - if( !mons->type->mech_weapon.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 ) || - ( you.has_active_bionic( bionic_id( "bio_ups" ) ) && you.power_level >= ups_drain ) ) ) { - add_msg( m_info, - _( "You need a UPS with at least %d charges or an advanced UPS with at least %d charges to fire that!" ), - ups_drain, adv_ups_drain ); - return false; - } - } else { - if( !you.has_charges( "UPS", ups_drain ) ) { - add_msg( m_info, _( "Your mech has an empty battery, its weapon will not fire." ) ); - return false; - } + + if( !( you.has_charges( "UPS_off", ups_drain ) || + you.has_charges( "adv_UPS_off", adv_ups_drain ) || + ( you.has_active_bionic( bionic_id( "bio_ups" ) ) && you.power_level >= ups_drain ) ) ) { + add_msg( m_info, + _( "You need a UPS with at least %d charges or an advanced UPS with at least %d charges to fire that!" ), + ups_drain, adv_ups_drain ); + return false; } } @@ -824,16 +815,6 @@ void avatar_action::plthrow( avatar &you, int pos, add_msg( m_info, _( "You can't effectively throw while you're in your shell." ) ); return; } - if( you.is_mounted() ) { - auto mons = g->u.mounted_creature.get(); - if( mons->has_flag( MF_RIDEABLE_MECH ) ) { - if( !mons->check_mech_powered() ) { - add_msg( m_bad, _( "Your %s refuses to move as its batteries have been drained." ), - mons->get_name() ); - return; - } - } - } if( pos == INT_MIN ) { pos = g->inv_for_all( _( "Throw item" ), _( "You don't have any items to throw." ) ); diff --git a/src/avatar_action.h b/src/avatar_action.h index a7331177b4cbe..eb1f42d4daa14 100644 --- a/src/avatar_action.h +++ b/src/avatar_action.h @@ -23,7 +23,7 @@ inline bool move( avatar &you, map &m, const tripoint &d ) } inline bool move( avatar &you, map &m, const point &d ) { - return move( you, m, tripoint( d, 0 ) ); + return move( you, m, d.x, d.y ); } // Handle moving from a ramp diff --git a/src/basecamp.cpp b/src/basecamp.cpp index fa380edf1716d..81cfc6f1af443 100644 --- a/src/basecamp.cpp +++ b/src/basecamp.cpp @@ -34,17 +34,17 @@ #include "flat_set.h" #include "line.h" -std::string base_camps::faction_encode_short( const std::string &type ) +const std::string base_camps::faction_encode_short( const std::string &type ) { return prefix + type + "_"; } -std::string base_camps::faction_encode_abs( const expansion_data &e, int number ) +const std::string base_camps::faction_encode_abs( const expansion_data &e, int number ) { return faction_encode_short( e.type ) + to_string( number ); } -std::string base_camps::faction_decode( const std::string &full_type ) +const std::string base_camps::faction_decode( const std::string &full_type ) { if( full_type.size() < ( prefix_len + 2 ) ) { return "camp"; @@ -54,7 +54,7 @@ std::string base_camps::faction_decode( const std::string &full_type ) return full_type.substr( prefix_len, last_bar - prefix_len ); } -time_duration base_camps::to_workdays( const time_duration &work_time ) +const time_duration base_camps::to_workdays( const time_duration &work_time ) { if( work_time < 11_hours ) { return work_time; @@ -79,7 +79,7 @@ int base_camps::max_upgrade_by_type( const std::string &type ) return max_upgrade_cache[type]; } -basecamp::basecamp() +basecamp::basecamp(): bb_pos( tripoint_zero ) { } @@ -197,7 +197,7 @@ std::string basecamp::om_upgrade_description( const std::string &bldg, bool trun // upgrade levels // legacy next upgrade -std::string basecamp::next_upgrade( const std::string &dir, const int offset ) const +const std::string basecamp::next_upgrade( const std::string &dir, const int offset ) const { const auto &e = expansions.find( dir ); if( e == expansions.end() ) { @@ -252,7 +252,7 @@ bool basecamp::can_expand() return has_provides( "bed", base_camps::base_dir, directions.size() * 2 ); } -std::vector basecamp::available_upgrades( const std::string &dir ) +const std::vector basecamp::available_upgrades( const std::string &dir ) { std::vector ret_data; auto e = expansions.find( dir ); @@ -331,7 +331,7 @@ std::map basecamp::recipe_deck( const std::string &dir return recipes; } -std::string basecamp::get_gatherlist() const +const std::string basecamp::get_gatherlist() const { const auto &e = expansions.find( base_camps::base_dir ); if( e != expansions.end() ) { @@ -556,7 +556,7 @@ void basecamp::consume_components( const recipe &making, int batch_size, bool by { if( by_radio ) { tinymap target_map; - target_map.load( tripoint( omt_pos.x * 2, omt_pos.y * 2, omt_pos.z ), false ); + target_map.load( omt_pos.x * 2, omt_pos.y * 2, omt_pos.z, false ); consume_components( target_map, making, batch_size, by_radio ); target_map.save(); } else { @@ -620,7 +620,7 @@ void basecamp::form_crafting_inventory( const bool by_radio ) { if( by_radio ) { tinymap target_map; - target_map.load( tripoint( omt_pos.x * 2, omt_pos.y * 2, omt_pos.z ), false ); + target_map.load( omt_pos.x * 2, omt_pos.y * 2, omt_pos.z, false ); form_crafting_inventory( target_map ); } else { form_crafting_inventory( g->m ); diff --git a/src/basecamp.h b/src/basecamp.h index 31fc09840c86c..cccc20950a86b 100644 --- a/src/basecamp.h +++ b/src/basecamp.h @@ -50,10 +50,10 @@ const std::string base_dir = "[B]"; const std::string prefix = "faction_base_"; const std::string id = "FACTION_CAMP"; const int prefix_len = 13; -std::string faction_encode_short( const std::string &type ); -std::string faction_encode_abs( const expansion_data &e, int number ); -std::string faction_decode( const std::string &full_type ); -time_duration to_workdays( const time_duration &work_time ); +const std::string faction_encode_short( const std::string &type ); +const std::string faction_encode_abs( const expansion_data &e, int number ); +const std::string faction_decode( const std::string &full_type ); +const time_duration to_workdays( const time_duration &work_time ); int max_upgrade_by_type( const std::string &type ); } // namespace base_camps @@ -127,8 +127,8 @@ class basecamp bool can_expand(); /// Returns the name of the building the current building @ref dir upgrades into, /// "null" if there isn't one - std::string next_upgrade( const std::string &dir, const int offset = 1 ) const; - std::vector available_upgrades( const std::string &dir ); + const std::string next_upgrade( const std::string &dir, const int offset = 1 ) const; + const std::vector available_upgrades( const std::string &dir ); // camp utility functions int recruit_evaluation() const; @@ -156,7 +156,7 @@ class basecamp void consume_components( const recipe &making, int batch_size, bool by_radio = false ); void consume_components( map &target_map, const recipe &making, int batch_size, bool by_radio = false ); - std::string get_gatherlist() const; + const std::string get_gatherlist() const; /** * spawn items or corpses based on search attempts * @param skill skill level of the search diff --git a/src/bionics.cpp b/src/bionics.cpp index 3c094ef58f073..a4752377c7eeb 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -227,7 +227,7 @@ void npc::check_or_use_weapon_cbm( const bionic_id &cbm_id ) stow_item( weapon ); } if( g->u.sees( pos() ) ) { - add_msg( m_info, _( "%s activates their %s." ), disp_name(), bionics[bio.id].name ); + add_msg( m_info, "%s activates their %s", disp_name(), bionics[bio.id].name ); } weapon = item( bionics[bio.id].fake_item ); @@ -439,8 +439,8 @@ bool player::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 ) ); + catacurses::window w = catacurses::newwin( win_h, win_w, ( TERMY - win_h ) / 2, + ( TERMX - win_w ) / 2 ); draw_border( w, c_red, string_format( " %s ", _( "Blood Test Results" ) ) ); if( good.empty() && bad.empty() ) { trim_and_print( w, 1, 2, win_w - 3, c_white, _( "No effects." ) ); @@ -948,7 +948,8 @@ void player::process_bionic( int b ) } } -void player::bionics_uninstall_failure( int difficulty, int success, float adjusted_skill ) +void player::bionics_uninstall_failure( int difficulty, int success, + float adjusted_skill ) { // "success" should be passed in as a negative integer representing how far off we // were for a successful removal. We use this to determine consequences for failing. @@ -967,6 +968,7 @@ void player::bionics_uninstall_failure( int difficulty, int success, float adjus } add_msg( m_neutral, _( "The removal is a failure." ) ); + switch( fail_type ) { case 1: if( !has_trait( trait_id( "NOPAIN" ) ) ) { @@ -977,25 +979,14 @@ void player::bionics_uninstall_failure( int difficulty, int success, float adjus case 2: case 3: - for( const body_part &bp : all_body_parts ) { - if( has_effect( effect_under_op, bp ) ) { - apply_damage( this, bp, rng( failure_level, failure_level * 2 ), true ); - add_msg_player_or_npc( m_bad, _( "Your %s is damaged." ), _( "'s %s is damaged." ), - body_part_name_accusative( bp ) ); - } - } + add_msg( m_bad, _( "%s body is damaged!" ), disp_name( true ) ); + hurtall( rng( failure_level, failure_level * 2 ), this ); // you hurt yourself break; case 4: case 5: - for( const body_part &bp : all_body_parts ) { - if( has_effect( effect_under_op, bp ) ) { - apply_damage( this, bp, rng( 30, 80 ), true ); - add_msg_player_or_npc( m_bad, _( "Your %s is severely damaged." ), - _( "'s %s is severely damaged." ), - body_part_name_accusative( bp ) ); - } - } + add_msg( m_bad, _( "%s body is severely damaged!" ), disp_name( true ) ); + hurtall( rng( 30, 80 ), this ); // stop hurting yourself! break; } @@ -1042,6 +1033,7 @@ void player::bionics_uninstall_failure( monster &installer, player &patient, int break; } } + switch( fail_type ) { case 1: if( !has_trait( trait_id( "NOPAIN" ) ) ) { @@ -1052,37 +1044,27 @@ void player::bionics_uninstall_failure( monster &installer, player &patient, int case 2: case 3: - for( const body_part &bp : all_body_parts ) { - if( has_effect( effect_under_op, bp ) ) { - 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( bp ) ); - } - } + if( u_see ) { + add_msg( m_bad, _( "%s body is damaged!" ), patient.disp_name( true ) ); } + patient.hurtall( rng( failure_level, failure_level * 2 ), this ); break; case 4: case 5: - for( const body_part &bp : all_body_parts ) { - if( has_effect( effect_under_op, bp ) ) { - patient.apply_damage( this, bp, rng( 30, 80 ), true ); - 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( bp ) ); - } - } + if( u_see ) { + add_msg( m_bad, _( "%s body is severely damaged!" ), patient.disp_name( true ) ); } + patient.hurtall( rng( 30, 80 ), this ); break; } + } -bool player::has_enough_anesth( const itype *cbm, player &patient ) +bool player::has_enough_anesth( const itype *cbm ) { 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 ): cbm is not a bionic" ); return false; } @@ -1091,16 +1073,27 @@ bool player::has_enough_anesth( const itype *cbm, player &patient ) return true; } - const int weight = units::to_kilogram( patient.bodyweight() ) / 10; - const requirement_data req_anesth = *requirement_id( "anesthetic" ) * - cbm->bionic->difficulty * 2 * weight; + const int difficulty = cbm->bionic->difficulty; + int amount = difficulty * 40; + int anesth_count = 0; + std::vector a_filter = crafting_inventory().items_with( []( const item & it ) { + return it.has_quality( quality_id( "ANESTHESIA" ) ); + } ); std::vector b_filter = crafting_inventory().items_with( []( const item & it ) { return it.has_flag( "ANESTHESIA" ); // legacy } ); + for( const item *anesthesia_item : a_filter ) { + if( anesthesia_item->ammo_remaining() >= 1 ) { + anesth_count += anesthesia_item->ammo_remaining(); + } + } + + if( amount <= anesth_count || b_filter.size() > 0 ) { + return true; + } - return req_anesth.can_make_with_inventory( crafting_inventory(), is_crafting_component ) || - b_filter.size() > 0; + return false; } // bionic manipulation adjusted skill @@ -1323,7 +1316,7 @@ bool player::uninstall_bionic( const bionic_id &b_id, player &installer, bool au } for( const auto &elem : bionics[b_id].occupied_bodyparts ) { activity.values.push_back( elem.first ); - add_effect( effect_under_op, difficulty * 20_minutes, elem.first, true, difficulty ); + add_effect( effect_under_op, difficulty * 20_minutes, elem.first, false, difficulty ); } return true; } @@ -1382,7 +1375,7 @@ bool player::uninstall_bionic( const bionic &target_cbm, monster &installer, pla if( installer.ammo[ammo_type] <= 0 ) { if( g->u.sees( installer ) ) { - add_msg( _( "The %s's anesthesia kit looks empty." ), installer.name() ); + add_msg( "The %s's anesthesia kit looks empty", installer.name() ); } return false; } @@ -1413,9 +1406,9 @@ bool player::uninstall_bionic( const bionic &target_cbm, monster &installer, pla patient.add_effect( effect_sleep, duration ); if( patient.is_player() ) { - add_msg( _( "You fall asleep and %1$s starts operating." ), installer.disp_name() ); + add_msg( "You fall asleep and %1$s starts operating.", installer.disp_name() ); } else if( g->u.sees( patient ) ) { - add_msg( _( "%1$s falls asleep and %2$s starts operating." ), patient.disp_name(), + add_msg( "%1$s falls asleep and %2$s starts operating.", patient.disp_name(), installer.disp_name() ); } @@ -1584,7 +1577,7 @@ bool player::install_bionics( const itype &type, player &installer, bool autodoc } for( const auto &elem : bionics[bioid].occupied_bodyparts ) { activity.values.push_back( elem.first ); - add_effect( effect_under_op, difficulty * 20_minutes, elem.first, true, difficulty ); + add_effect( effect_under_op, difficulty * 20_minutes, elem.first, false, difficulty ); } for( const trait_id &mid : bioid->canceled_mutations ) { if( has_trait( mid ) ) { @@ -1596,7 +1589,7 @@ bool player::install_bionics( const itype &type, player &installer, bool autodoc void player::perform_install( bionic_id bid, bionic_id upbid, int difficulty, int success, int pl_skill, std::string cbm_name, std::string upcbm_name, std::string installer_name, - std::vector trait_to_rem, tripoint patient_pos ) + std::vector trait_to_rem ) { if( success > 0 ) { @@ -1634,14 +1627,14 @@ void player::perform_install( bionic_id bid, bionic_id upbid, int difficulty, in float adjusted_skill = static_cast( pl_skill ) - std::min( static_cast( 40 ), static_cast( pl_skill ) - static_cast( pl_skill ) / static_cast ( 10.0 ) ); - bionics_install_failure( bid, installer_name, difficulty, success, adjusted_skill, patient_pos ); + bionics_install_failure( installer_name, difficulty, success, adjusted_skill ); } g->m.invalidate_map_cache( g->get_levz() ); g->refresh_all(); } -void player::bionics_install_failure( bionic_id bid, std::string installer, int difficulty, - int success, float adjusted_skill, tripoint patient_pos ) +void player::bionics_install_failure( std::string installer, int difficulty, int success, + float adjusted_skill ) { // "success" should be passed in as a negative integer representing how far off we // were for a successful install. We use this to determine consequences for failing. @@ -1653,10 +1646,13 @@ void player::bionics_install_failure( bionic_id bid, std::string installer, int // are more likely. int failure_level = static_cast( sqrt( success * 4.0 * difficulty / adjusted_skill ) ); int fail_type = ( failure_level > 5 ? 5 : failure_level ); - bool drop_cbm = false; - add_msg( m_neutral, _( "The installation is a failure." ) ); + add_msg( m_neutral, _( "The installation is a failure." ) ); + if( fail_type <= 0 ) { + add_msg( m_neutral, _( "The installation fails without incident." ) ); + return; + } if( installer != "NOT_MED" ) { //~"Complications" is USian medical-speak for "unintended damage from a medical procedure". @@ -1668,72 +1664,58 @@ void player::bionics_install_failure( bionic_id bid, std::string installer, int fail_type = rng( 1, 3 ); } } - if( fail_type <= 0 ) { - add_msg( m_neutral, _( "The installation fails without incident." ) ); - drop_cbm = true; - } else { - switch( fail_type ) { - case 1: - if( !( has_trait( trait_id( "NOPAIN" ) ) ) ) { - add_msg_if_player( m_bad, _( "It really hurts!" ) ); - mod_pain( rng( failure_level * 3, failure_level * 6 ) ); - } - drop_cbm = true; - break; + if( fail_type == 3 && num_bionics() == 0 ) { + fail_type = 2; // If we have no bionics, take damage instead of losing some + } - case 2: - case 3: - for( const body_part &bp : all_body_parts ) { - if( has_effect( effect_under_op, 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( bp ) ); - } - } - drop_cbm = true; - break; + switch( fail_type ) { - case 4: - case 5: { - add_msg( m_bad, _( "The installation is faulty!" ) ); - std::vector valid; - std::copy_if( begin( faulty_bionics ), end( faulty_bionics ), std::back_inserter( valid ), - [&]( const bionic_id & id ) { - return !has_bionic( id ); - } ); - - if( valid.empty() ) { // We've got all the bad bionics! - if( max_power_level > 0 ) { - int old_power = max_power_level; - add_msg( m_bad, _( "%s lose power capacity!" ), disp_name() ); - max_power_level = rng( 0, max_power_level - 25 ); - if( is_player() ) { - add_memorial_log( pgettext( "memorial_male", "Lost %d units of power capacity." ), - pgettext( "memorial_female", "Lost %d units of power capacity." ), - old_power - max_power_level ); - } - } - // TODO: What if we can't lose power capacity? No penalty? - } else { - const bionic_id &id = random_entry( valid ); - add_bionic( id ); + case 1: + if( !( has_trait( trait_id( "NOPAIN" ) ) ) ) { + add_msg_if_player( m_bad, _( "It really hurts!" ) ); + mod_pain( rng( failure_level * 3, failure_level * 6 ) ); + } + break; + + case 2: + case 3: + add_msg( m_bad, _( "%s body is damaged!" ), disp_name( true ) ); + hurtall( rng( failure_level, failure_level * 2 ), this ); // you hurt yourself + break; + + case 4: + case 5: { + add_msg( m_bad, _( "The installation is faulty!" ) ); + std::vector valid; + std::copy_if( begin( faulty_bionics ), end( faulty_bionics ), std::back_inserter( valid ), + [&]( const bionic_id & id ) { + return !has_bionic( id ); + } ); + + if( valid.empty() ) { // We've got all the bad bionics! + if( max_power_level > 0 ) { + int old_power = max_power_level; + add_msg( m_bad, _( "%s lose power capacity!" ), disp_name() ); + max_power_level = rng( 0, max_power_level - 25 ); if( is_player() ) { - add_memorial_log( pgettext( "memorial_male", "Installed bad bionic: %s." ), - pgettext( "memorial_female", "Installed bad bionic: %s." ), - bionics[ id ].name ); + add_memorial_log( pgettext( "memorial_male", "Lost %d units of power capacity." ), + pgettext( "memorial_female", "Lost %d units of power capacity." ), + old_power - max_power_level ); } } + // TODO: What if we can't lose power capacity? No penalty? + } else { + const bionic_id &id = random_entry( valid ); + add_bionic( id ); + if( is_player() ) { + add_memorial_log( pgettext( "memorial_male", "Installed bad bionic: %s." ), + pgettext( "memorial_female", "Installed bad bionic: %s." ), + bionics[ id ].name ); + } } - break; } - } - if( drop_cbm ) { - item cbm( bid.c_str() ); - cbm.set_flag( "NO_STERILE" ); - cbm.set_flag( "NO_PACKED" ); - cbm.faults.emplace( fault_id( "fault_bionic_salvaged" ) ); - g->m.add_item( patient_pos, cbm ); + break; } } @@ -1999,15 +1981,6 @@ void load_bionic( JsonObject &jsobj ) jsobj.read( "included", new_bionic.included ); jsobj.read( "upgraded_bionic", new_bionic.upgraded_bionic ); - JsonArray jsar = jsobj.get_array( "encumbrance" ); - if( !jsar.empty() ) { - while( jsar.has_more() ) { - JsonArray ja = jsar.next_array(); - new_bionic.encumbrance.emplace( get_body_part_token( ja.get_string( 0 ) ), - ja.get_int( 1 ) ); - } - } - JsonArray jsarr = jsobj.get_array( "occupied_bodyparts" ); if( !jsarr.empty() ) { while( jsarr.has_more() ) { @@ -2017,15 +1990,6 @@ void load_bionic( JsonObject &jsobj ) } } - JsonArray json_arr = jsobj.get_array( "env_protec" ); - if( !json_arr.empty() ) { - while( json_arr.has_more() ) { - JsonArray ja = json_arr.next_array(); - new_bionic.env_protec.emplace( get_body_part_token( ja.get_string( 0 ) ), - ja.get_int( 1 ) ); - } - } - new_bionic.activated = new_bionic.toggled || new_bionic.power_activate > 0 || new_bionic.charge_time > 0; diff --git a/src/bionics.h b/src/bionics.h index 78e5c8198fbdf..2cb0019f213de 100644 --- a/src/bionics.h +++ b/src/bionics.h @@ -74,16 +74,10 @@ struct bionic_data { * If true, this bionic is included with another. */ bool included = false; - /**Amount of environemental protection offered by this bionic*/ - std::map env_protec; /** * Body part slots used to install this bionic, mapped to the amount of space required. */ std::map occupied_bodyparts; - /** - * Body part encumbered by this bionic, mapped to the amount of encumbrance caused. - */ - std::map encumbrance; /** * Fake item created for crafting with this bionic available. * Also the item used for gun bionics. diff --git a/src/bionics_ui.cpp b/src/bionics_ui.cpp index 97fe9d8c20c5a..14df76da60469 100644 --- a/src/bionics_ui.cpp +++ b/src/bionics_ui.cpp @@ -122,7 +122,7 @@ static void draw_bionics_tabs( const catacurses::window &win, const size_t activ werase( win ); const int width = getmaxx( win ); - mvwhline( win, point( 0, 2 ), LINE_OXOX, width ); + mvwhline( win, 2, 0, LINE_OXOX, width ); const std::string active_tab_name = string_format( _( "ACTIVE (%i)" ), active_num ); const std::string passive_tab_name = string_format( _( "PASSIVE (%i)" ), passive_num ); @@ -174,7 +174,7 @@ static void draw_connectors( const catacurses::window &win, const int start_y, c // draw horizontal line from selected bionic const int turn_x = start_x + ( last_x - start_x ) * 2 / 3; mvwputch( win, start_y, start_x, BORDER_COLOR, '>' ); - mvwhline( win, point( start_x + 1, start_y ), LINE_OXOX, turn_x - start_x - 1 ); + mvwhline( win, start_y, start_x + 1, LINE_OXOX, turn_x - start_x - 1 ); int min_y = start_y; int max_y = start_y; @@ -183,7 +183,7 @@ static void draw_connectors( const catacurses::window &win, const int start_y, c max_y = std::max( max_y, elem.first ); } if( max_y - min_y > 1 ) { - mvwvline( win, point( turn_x, min_y + 1 ), LINE_XOXO, max_y - min_y - 1 ); + mvwvline( win, min_y + 1, turn_x, LINE_XOXO, max_y - min_y - 1 ); } bool move_up = false; @@ -211,7 +211,7 @@ static void draw_connectors( const catacurses::window &win, const int start_y, c mvwputch( win, y, turn_x, BORDER_COLOR, bp_chr ); // draw horizontal line to bodypart title - mvwhline( win, point( turn_x + 1, y ), LINE_OXOX, last_x - turn_x - 1 ); + mvwhline( win, y, turn_x + 1, LINE_OXOX, last_x - turn_x - 1 ); mvwputch( win, y, last_x, BORDER_COLOR, '<' ); // draw amount of consumed slots by this CBM @@ -322,7 +322,7 @@ void player::power_bionics() const int START_X = ( TERMX - WIDTH ) / 2; const int START_Y = ( TERMY - HEIGHT ) / 2; //wBio is the entire bionic window - catacurses::window wBio = catacurses::newwin( HEIGHT, WIDTH, point( START_X, START_Y ) ); + catacurses::window wBio = catacurses::newwin( HEIGHT, WIDTH, START_Y, START_X ); const int LIST_HEIGHT = HEIGHT - TITLE_HEIGHT - TITLE_TAB_HEIGHT - 2; @@ -331,18 +331,18 @@ void player::power_bionics() const int DESCRIPTION_START_X = START_X + 1 + 40; //w_description is the description panel that is controlled with ! key catacurses::window w_description = catacurses::newwin( LIST_HEIGHT, DESCRIPTION_WIDTH, - point( DESCRIPTION_START_X, DESCRIPTION_START_Y ) ); + DESCRIPTION_START_Y, DESCRIPTION_START_X ); // Title window const int TITLE_START_Y = START_Y + 1; const int HEADER_LINE_Y = TITLE_HEIGHT + TITLE_TAB_HEIGHT + 1; - catacurses::window w_title = catacurses::newwin( TITLE_HEIGHT, WIDTH - 2, point( START_X + 1, - TITLE_START_Y ) ); + catacurses::window w_title = catacurses::newwin( TITLE_HEIGHT, WIDTH - 2, TITLE_START_Y, + START_X + 1 ); const int TAB_START_Y = TITLE_START_Y + 2; //w_tabs is the tab bar for passive and active bionic groups - catacurses::window w_tabs = catacurses::newwin( TITLE_TAB_HEIGHT, WIDTH - 2, point( START_X + 1, - TAB_START_Y ) ); + catacurses::window w_tabs = catacurses::newwin( TITLE_TAB_HEIGHT, WIDTH - 2, TAB_START_Y, + START_X + 1 ); int scroll_position = 0; int cursor = 0; diff --git a/src/calendar.cpp b/src/calendar.cpp index 0c2675c750c1c..afb20ce9598c3 100644 --- a/src/calendar.cpp +++ b/src/calendar.cpp @@ -14,15 +14,15 @@ const int calendar::INDEFINITELY_LONG( std::numeric_limits::max() / 100 ); const time_duration calendar::INDEFINITELY_LONG_DURATION( time_duration::from_turns( std::numeric_limits::max() ) ); -static bool is_eternal_season = false; -static int cur_season_length = 1; +bool calendar::is_eternal_season = false; +int calendar::cur_season_length = 1; -const time_point calendar::before_time_starts = time_point::from_turn( -1 ); -const time_point calendar::turn_zero = time_point::from_turn( 0 ); +calendar calendar::start; +calendar calendar::turn; +season_type calendar::initial_season; -time_point calendar::start_of_cataclysm = calendar::turn_zero; -time_point calendar::turn = calendar::turn_zero; -season_type calendar::initial_season = SPRING; +const time_point calendar::before_time_starts = time_point::from_turn( -1 ); +const time_point calendar::time_of_cataclysm = time_point::from_turn( 0 ); // Internal constants, not part of the calendar interface. // Times for sunrise, sunset at equinoxes @@ -48,92 +48,223 @@ season_type calendar::initial_season = SPRING; // How long, does sunrise/sunset last? static const time_duration twilight_duration = 1_hours; +calendar::calendar() +{ + turn_number = 0; + second = 0; + minute = 0; + hour = 0; + day = 0; + season = SPRING; + year = 0; +} + +calendar::calendar( int Minute, int Hour, int Day, season_type Season, int Year ) +{ + turn_number = MINUTES( Minute ) + HOURS( Hour ) + DAYS( Day ) + Season * to_days + ( season_length() ) + Year * to_turns( year_length() ); + sync(); +} + +calendar::calendar( int turn ) +{ + turn_number = turn; + sync(); +} + +calendar::operator int() const +{ + return turn_number; +} + +calendar &calendar::operator =( int rhs ) +{ + turn_number = rhs; + sync(); + return *this; +} + +calendar &calendar::operator -=( const calendar &rhs ) +{ + turn_number -= rhs.turn_number; + sync(); + return *this; +} + +calendar &calendar::operator -=( int rhs ) +{ + turn_number -= rhs; + sync(); + return *this; +} + +calendar &calendar::operator +=( const calendar &rhs ) +{ + turn_number += rhs.turn_number; + sync(); + return *this; +} + +calendar &calendar::operator +=( int rhs ) +{ + turn_number += rhs; + sync(); + return *this; +} + +bool calendar::operator ==( int rhs ) const +{ + return static_cast( *this ) == rhs; +} +bool calendar::operator ==( const calendar &rhs ) const +{ + return turn_number == rhs.turn_number; +} + +calendar calendar::operator -( const calendar &rhs ) const +{ + return calendar( *this ) -= rhs; +} + +calendar calendar::operator -( int rhs ) const +{ + return calendar( *this ) -= rhs; +} + +calendar calendar::operator +( const calendar &rhs ) const +{ + return calendar( *this ) += rhs; +} + +calendar calendar::operator +( int rhs ) const +{ + return calendar( *this ) += rhs; +} + +void calendar::increment() +{ + turn_number++; + sync(); +} + moon_phase get_moon_phase( const time_point &p ) { //One full phase every 2 rl months = 2/3 season length const time_duration moon_phase_duration = calendar::season_length() * 2.0 / 3.0; //Switch moon phase at noon so it stays the same all night - const time_duration current_day = ( p - calendar::turn_zero ) + 1_days / 2; + const time_duration current_day = ( p - calendar::time_of_cataclysm ) + 1_days / 2; const double phase_change = current_day / moon_phase_duration; const int current_phase = static_cast( round( phase_change * MOON_PHASE_MAX ) ) % static_cast( MOON_PHASE_MAX ); return static_cast( current_phase ); } -time_point sunrise( const time_point &p ) +calendar calendar::sunrise() const { - static_assert( static_cast( SPRING ) == 0, - "Expected spring to be the first season. If not, code below will use wrong index into array" ); - - static const std::array start_hours = { { SUNRISE_EQUINOX, SUNRISE_SUMMER, SUNRISE_EQUINOX, SUNRISE_WINTER, } }; - const size_t season = static_cast( season_of_year( p ) ); - assert( season < start_hours.size() ); - - const double start_hour = start_hours[season]; - const double end_hour = start_hours[( season + 1 ) % 4]; + int start_hour = 0; + int end_hour = 0; + int newhour = 0; + int newminute = 0; + switch( season ) { + case SPRING: + start_hour = SUNRISE_EQUINOX; + end_hour = SUNRISE_SUMMER; + break; + case SUMMER: + start_hour = SUNRISE_SUMMER; + end_hour = SUNRISE_EQUINOX; + break; + case AUTUMN: + start_hour = SUNRISE_EQUINOX; + end_hour = SUNRISE_WINTER; + break; + case WINTER: + start_hour = SUNRISE_WINTER; + end_hour = SUNRISE_EQUINOX; + break; + } + const double percent = static_cast( static_cast( day ) / to_days + ( season_length() ) ); + double time = static_cast( start_hour ) * ( 1. - percent ) + static_cast + ( end_hour ) * percent; - const double into_month = static_cast( day_of_season( p ) ) / to_days - ( calendar::season_length() ); - const double time = start_hour * ( 1.0 - into_month ) + end_hour * into_month; + newhour = static_cast( time ); + time -= static_cast( time ); + newminute = static_cast( time * 60 ); - const time_point midnight = p - time_past_midnight( p ); - return midnight + time_duration::from_minutes( static_cast( time * 60 ) ); + return calendar( newminute, newhour, day, season, year ); } -time_point sunset( const time_point &p ) +calendar calendar::sunset() const { - static_assert( static_cast( SPRING ) == 0, - "Expected spring to be the first season. If not, code below will use wrong index into array" ); - - static const std::array start_hours = { { SUNSET_EQUINOX, SUNSET_SUMMER, SUNSET_EQUINOX, SUNSET_WINTER } }; - const size_t season = static_cast( season_of_year( p ) ); - assert( season < start_hours.size() ); - - const double start_hour = start_hours[season]; - const double end_hour = start_hours[( season + 1 ) % 4]; + int start_hour = 0; + int end_hour = 0; + int newhour = 0; + int newminute = 0; + switch( season ) { + case SPRING: + start_hour = SUNSET_EQUINOX; + end_hour = SUNSET_SUMMER; + break; + case SUMMER: + start_hour = SUNSET_SUMMER; + end_hour = SUNSET_EQUINOX; + break; + case AUTUMN: + start_hour = SUNSET_EQUINOX; + end_hour = SUNSET_WINTER; + break; + case WINTER: + start_hour = SUNSET_WINTER; + end_hour = SUNSET_EQUINOX; + break; + } + const double percent = static_cast( static_cast( day ) / to_days + ( season_length() ) ); + double time = static_cast( start_hour ) * ( 1. - percent ) + static_cast + ( end_hour ) * percent; - const double into_month = static_cast( day_of_season( p ) ) / to_days - ( calendar::season_length() ); - const double time = start_hour * ( 1.0 - into_month ) + end_hour * into_month; + newhour = static_cast( time ); + time -= static_cast( time ); + newminute = static_cast( time * 60 ); - const time_point midnight = p - time_past_midnight( p ); - return midnight + time_duration::from_minutes( static_cast( time * 60 ) ); + return calendar( newminute, newhour, day, season, year ); } -bool is_night( const time_point &p ) +bool calendar::is_night() const { - 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 time_duration now = time_past_midnight( *this ); + const time_duration sunrise = time_past_midnight( this->sunrise() ); + const time_duration sunset = time_past_midnight( this->sunset() ); return now > sunset + twilight_duration || now < sunrise; } -bool is_sunset_now( const time_point &p ) +bool calendar::is_sunset_now() const { - const time_duration now = time_past_midnight( p ); - const time_duration sunset = time_past_midnight( ::sunset( p ) ); + const time_duration now = time_past_midnight( *this ); + const time_duration sunset = time_past_midnight( this->sunset() ); return now > sunset && now < sunset + twilight_duration; } -bool is_sunrise_now( const time_point &p ) +bool calendar::is_sunrise_now() const { - const time_duration now = time_past_midnight( p ); - const time_duration sunrise = time_past_midnight( ::sunrise( p ) ); + const time_duration now = time_past_midnight( *this ); + const time_duration sunrise = time_past_midnight( this->sunrise() ); return now > sunrise && now < sunrise + twilight_duration; } -double current_daylight_level( const time_point &p ) +double calendar::current_daylight_level() const { - const double percent = static_cast( day_of_season( p ) ) / to_days - ( calendar::season_length() ); + const double percent = static_cast( static_cast( day ) / to_days + ( season_length() ) ); double modifier = 1.0; // For ~Boston: solstices are +/- 25% sunlight intensity from equinoxes static double deviation = 0.25; - switch( season_of_year( p ) ) { + switch( season ) { case SPRING: modifier = 1. + ( percent * deviation ); break; @@ -151,15 +282,15 @@ double current_daylight_level( const time_point &p ) return double( modifier * DAYLIGHT_LEVEL ); } -float sunlight( const time_point &p ) +float calendar::sunlight() const { - 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 time_duration now = time_past_midnight( *this ); + const time_duration sunrise = time_past_midnight( this->sunrise() ); + const time_duration sunset = time_past_midnight( this->sunset() ); - const double daylight_level = current_daylight_level( p ); + const double daylight_level = current_daylight_level(); - int current_phase = static_cast( get_moon_phase( p ) ); + int current_phase = static_cast( get_moon_phase( *this ) ); if( current_phase > static_cast( MOON_PHASE_MAX ) / 2 ) { current_phase = static_cast( MOON_PHASE_MAX ) - current_phase; } @@ -394,7 +525,7 @@ weekdays day_of_week( const time_point &p ) * kevingranade: add four for thursday. ;) * sounds like consensus to me * Thursday it is */ - const int day_since_cataclysm = to_days( p - calendar::turn_zero ); + const int day_since_cataclysm = to_days( p - calendar::time_of_cataclysm ); static const weekdays start_day = weekdays::THURSDAY; const int result = day_since_cataclysm + static_cast( start_day ); return static_cast( result % 7 ); @@ -435,12 +566,36 @@ float calendar::season_from_default_ratio() return to_days( season_length() ) / default_season_length; } +int calendar::day_of_year() const +{ + return day + to_days( season_length() ) * season; +} + +void calendar::sync() +{ + const int sl = to_days( season_length() ); + year = turn_number / DAYS( sl * 4 ); + + if( eternal_season() ) { + // If we use calendar::start to determine the initial season, and the user shortens the season length + // mid-game, the result could be the wrong season! + season = initial_season; + } else { + season = static_cast( turn_number / DAYS( sl ) % 4 ); + } + + day = turn_number / DAYS( 1 ) % sl; + hour = turn_number / HOURS( 1 ) % 24; + minute = turn_number / MINUTES( 1 ) % 60; + second = turn_number % 60; +} + bool calendar::once_every( const time_duration &event_frequency ) { - return ( calendar::turn - calendar::turn_zero ) % event_frequency == 0_turns; + return ( calendar::turn % to_turns( event_frequency ) ) == 0; } -std::string calendar::name_season( season_type s ) +const std::string calendar::name_season( season_type s ) { static const std::array season_names_untranslated = {{ //~First letter is supposed to be uppercase @@ -514,7 +669,7 @@ season_type season_of_year( const time_point &p ) std::string to_string( const time_point &p ) { - const int year = to_turns( p - calendar::turn_zero ) / to_turns + const int year = to_turns( p - calendar::time_of_cataclysm ) / to_turns ( calendar::year_length() ) + 1; const std::string time = to_string_time_of_day( p ); if( calendar::eternal_season() ) { diff --git a/src/calendar.h b/src/calendar.h index a1608f965b74d..81fa2d7c09e5d 100644 --- a/src/calendar.h +++ b/src/calendar.h @@ -99,73 +99,172 @@ enum moon_phase { * Encapsulates the current time of day, date, and year. Also tracks seasonal variation in day * length, the passing of the seasons themselves, and the phases of the moon. */ -namespace calendar +class calendar { -/** - * Predicate to handle rate-limiting. Returns `true` after every @p event_frequency duration. - */ -bool once_every( const time_duration &event_frequency ); + private: + /** + * This is the basic "quantum" unit of world time. It is a one second interval. + */ + int turn_number; -/** - * A number that represents the longest possible action. - * - * This number should be regarded as a number of turns, and can safely be converted to a - * number of seconds or moves (movement points) without integer overflow. If used to - * represent a larger unit (hours/days/years), then this will result in integer overflow. - */ -extern const int INDEFINITELY_LONG; + /** Seconds portion of time */ + int second; -/** - * The expected duration of the cataclysm - * - * Large duration that can be used to approximate infinite amounts of time. - * - * This number can't be safely converted to a number of moves without causing - * an integer overflow. - */ -extern const time_duration INDEFINITELY_LONG_DURATION; + /** Minutes portion of time */ + int minute; -/// @returns Whether the eternal season is enabled. -bool eternal_season(); -void set_eternal_season( bool is_eternal_season ); + /** Hours portion of time (using a 24-hour clock) */ + int hour; -/** @returns Time in a year, (configured in current world settings) */ -time_duration year_length(); + /** Day of season */ + int day; -/** @returns Time of a season (configured in current world settings) */ -time_duration season_length(); -void set_season_length( const int dur ); + /** Current season */ + season_type season; -/// @returns relative length of game season to real life season. -float season_ratio(); + /** Current year, starts counting from 0 in default scenarios */ + int year; -/** - * @returns ratio of actual season length (a world option) to default season length. This - * should be used to convert JSON values (that assume the default for the season length - * option) to actual in-game length. - */ -float season_from_default_ratio(); + /** + * Synchronize all variables to the turn_number + * + * Time is actually counted as a running total of turns since start of game. This function + * calculates the current seconds/minutes/hour/day/season based on that counter value. + */ + void sync(); + static bool is_eternal_season; + static int cur_season_length; -/** Returns the translated name of the season (with first letter being uppercase). */ -std::string name_season( season_type s ); + public: + /** Initializers */ + /** + * Starts at turn count zero, (midnight of first day, year zero, spring time) + */ + calendar(); + calendar( const calendar © ) = default; -extern time_point start_of_cataclysm; -extern time_point turn; -extern season_type initial_season; + /** Construct calendar with specific starting time and day. */ + calendar( int Minute, int Hour, int Day, season_type Season, int Year ); -/** - * A time point that is always before the current turn, even when the game has - * just started. This implies `before_time_starts < calendar::turn` is always - * true. It can be used to initialize `time_point` values that denote that last - * time a cache was update. - */ -extern const time_point before_time_starts; -/** - * Represents time point 0. - * TODO: flesh out the documentation - */ -extern const time_point turn_zero; -} // namespace calendar + /** + * Construct calendar with specific elapsed turns count. + * @param turn Turn count value for constructed calendar + */ + calendar( int turn ); + + /** + * Accessor for current turn_number. + * + * @returns Current turn number. + */ + operator int() const; + + // Basic calendar operators. Usually modifies or checks the turn_number of the calendar + calendar &operator = ( const calendar &rhs ) = default; + calendar &operator = ( int rhs ); + calendar &operator -=( const calendar &rhs ); + calendar &operator -=( int rhs ); + calendar &operator +=( const calendar &rhs ); + calendar &operator +=( int rhs ); + calendar operator - ( const calendar &rhs ) const; + calendar operator - ( int rhs ) const; + calendar operator + ( const calendar &rhs ) const; + calendar operator + ( int rhs ) const; + bool operator ==( int rhs ) const; + bool operator ==( const calendar &rhs ) const; + + /** Increases turn_number by 1. (1 second) */ + void increment(); + + // Sunlight and day/night calculations + /** Returns the current sunrise time based on the time of year. */ + calendar sunrise() const; + /** Returns the current sunset time based on the time of year. */ + calendar sunset() const; + /** Returns true if it's currently after sunset + TWILIGHT_SECONDS or before sunrise - TWILIGHT_SECONDS. */ + bool is_night() const; + /** Returns true if it's currently after sunset and before sunset + TWILIGHT_SECONDS. */ + bool is_sunset_now() const; + /** Returns true if it's currently after sunrise and before sunrise + TWILIGHT_SECONDS. */ + bool is_sunrise_now() const; + /** Returns the current seasonally-adjusted maximum daylight level */ + double current_daylight_level() const; + /** Returns the current sunlight or moonlight level through the preceding functions. */ + float sunlight() const; + + /** Current year, with default game start as year 0 */ + int years() const { + return year; + } + + /** + * Predicate to handle rate-limiting. Returns `true` after every @p event_frequency duration. + */ + static bool once_every( const time_duration &event_frequency ); + + public: + /** + * A number that represents the longest possible action. + * + * This number should be regarded as a number of turns, and can safely be converted to a + * number of seconds or moves (movement points) without integer overflow. If used to + * represent a larger unit (hours/days/years), then this will result in integer overflow. + */ + static const int INDEFINITELY_LONG; + + /** + * The expected duration of the cataclysm + * + * Large duration that can be used to approximate infinite amounts of time. + * + * This number can't be safely converted to a number of moves without causing + * an integer overflow. + */ + static const time_duration INDEFINITELY_LONG_DURATION; + + /// @returns Whether the eternal season is enabled. + static bool eternal_season(); + static void set_eternal_season( bool is_eternal_season ); + + /** @returns Time in a year, (configured in current world settings) */ + static time_duration year_length(); + + /** @returns Time of a season (configured in current world settings) */ + static time_duration season_length(); + static void set_season_length( const int dur ); + + /// @returns relative length of game season to real life season. + static float season_ratio(); + + /** @returns Number of days elapsed in current year */ + int day_of_year() const; + /** + * @returns ratio of actual season length (a world option) to default season length. This + * should be used to convert JSON values (that assume the default for the season length + * option) to actual in-game length. + */ + static float season_from_default_ratio(); + + /** Returns the translated name of the season (with first letter being uppercase). */ + static const std::string name_season( season_type s ); + + static calendar start; + static calendar turn; + static season_type initial_season; + + /** + * A time point that is always before the current turn, even when the game has + * just started. This implies `before_time_starts < calendar::turn` is always + * true. It can be used to initialize `time_point` values that denote that last + * time a cache was update. + */ + static const time_point before_time_starts; + /** + * Represents time point 0. + */ + // TODO: flesh out the documentation + static const time_point time_of_cataclysm; +}; template constexpr T to_turns( const time_duration &duration ); @@ -227,7 +326,10 @@ class time_duration explicit constexpr time_duration( const int t ) : turns_( t ) { } public: - time_duration() : turns_( 0 ) {} + time_duration() = default; + + /// Allows writing `time_duration d = 0;` + time_duration( const std::nullptr_t ) : turns_( 0 ) { } void serialize( JsonOut &jsout ) const; void deserialize( JsonIn &jsin ); @@ -474,6 +576,10 @@ class time_point constexpr time_point( const int t ) : turn_( t ) { } public: + // TODO: replace usage of `calendar` with `time_point`, remove this constructor + time_point( const calendar &c ) : turn_( c ) { } + /// Allows writing `time_point p = 0;` + constexpr time_point( const std::nullptr_t ) : turn_( 0 ) { } // TODO: remove this, nobody should need it, one should use a constant `time_point` // (representing turn 0) and a `time_duration` instead. static constexpr time_point from_turn( const int t ) { @@ -540,31 +646,31 @@ time_point inline &operator-=( time_point &lhs, const time_duration &rhs ) inline time_duration time_past_midnight( const time_point &p ) { - return ( p - calendar::turn_zero ) % 1_days; + return ( p - calendar::time_of_cataclysm ) % 1_days; } inline time_duration time_past_new_year( const time_point &p ) { - return ( p - calendar::turn_zero ) % calendar::year_length(); + return ( p - calendar::time_of_cataclysm ) % calendar::year_length(); } template inline T minute_of_hour( const time_point &p ) { - return to_minutes( ( p - calendar::turn_zero ) % 1_hours ); + return to_minutes( ( p - calendar::time_of_cataclysm ) % 1_hours ); } template inline T hour_of_day( const time_point &p ) { - return to_hours( ( p - calendar::turn_zero ) % 1_days ); + return to_hours( ( p - calendar::time_of_cataclysm ) % 1_days ); } /// This uses the current season length. template inline T day_of_season( const time_point &p ) { - return to_days( ( p - calendar::turn_zero ) % calendar::season_length() ); + return to_days( ( p - calendar::time_of_cataclysm ) % calendar::season_length() ); } /// @returns The season of the of the given time point. Returns the same season for @@ -576,20 +682,6 @@ std::string to_string( const time_point &p ); std::string to_string_time_of_day( const time_point &p ); /** Returns the current light level 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 ); -/** Returns the current sunset time based on the time of year. */ -time_point sunset( const time_point &p ); -/** Returns whether it's currently after sunset + TWILIGHT_SECONDS or before sunrise - TWILIGHT_SECONDS. */ -bool is_night( const time_point &p ); -/** Returns true if it's currently after sunset and before sunset + TWILIGHT_SECONDS. */ -bool is_sunset_now( const time_point &p ); -/** Returns true if it's currently after sunrise and before sunrise + TWILIGHT_SECONDS. */ -bool is_sunrise_now( const time_point &p ); -/** Returns the current seasonally-adjusted maximum daylight level */ -double current_daylight_level( const time_point &p ); -/** Returns the current sunlight or moonlight level through the preceding functions. */ -float sunlight( const time_point &p ); enum class weekdays : int { SUNDAY = 0, diff --git a/src/cata_tiles.cpp b/src/cata_tiles.cpp index 2fd5b5b44ce85..a3dc0dc529d0b 100644 --- a/src/cata_tiles.cpp +++ b/src/cata_tiles.cpp @@ -199,6 +199,9 @@ cata_tiles::cata_tiles( const SDL_Renderer_Ptr &renderer ) : nv_goggles_activated = false; + last_pos_x = 0; + last_pos_y = 0; + on_options_changed(); } @@ -206,16 +209,12 @@ cata_tiles::~cata_tiles() = default; void cata_tiles::on_options_changed() { - memory_map_mode = get_option ( "MEMORY_MAP_MODE" ); - pixel_minimap_settings settings; settings.mode = pixel_minimap_mode_from_string( get_option( "PIXEL_MINIMAP_MODE" ) ); settings.brightness = get_option( "PIXEL_MINIMAP_BRIGHTNESS" ); - settings.beacon_size = get_option( "PIXEL_MINIMAP_BEACON_SIZE" ); - settings.beacon_blink_interval = get_option( "PIXEL_MINIMAP_BLINK" ); + settings.blink_interval = get_option( "PIXEL_MINIMAP_BLINK" ); settings.square_pixels = get_option( "PIXEL_MINIMAP_RATIO" ); - settings.scale_to_fit = get_option( "PIXEL_MINIMAP_SCALE_TO_FIT" ); minimap->set_settings( settings ); } @@ -251,8 +250,6 @@ void cata_tiles::load_tileset( const std::string &tileset_id, const bool prechec tileset_ptr = std::move( new_tileset_ptr ); set_draw_scale( 16 ); - - minimap->set_type( tile_iso ? pixel_minimap_type::iso : pixel_minimap_type::ortho ); } void cata_tiles::reinit() @@ -311,7 +308,7 @@ static SDL_Surface_Ptr apply_color_filter( const SDL_Surface_Ptr &original, assert( original ); SDL_Surface_Ptr surf = create_surface_32( original->w, original->h ); assert( surf ); - throwErrorIf( SDL_BlitSurface( original.get(), nullptr, surf.get(), nullptr ) != 0, + throwErrorIf( SDL_BlitSurface( original.get(), NULL, surf.get(), NULL ) != 0, "SDL_BlitSurface failed" ); auto pix = reinterpret_cast( surf->pixels ); @@ -351,7 +348,7 @@ void tileset_loader::copy_surface_to_texture( const SDL_Surface_Ptr &surf, const for( const SDL_Rect rect : input_range ) { assert( offset.x % sprite_width == 0 ); assert( offset.y % sprite_height == 0 ); - const point pos( offset + point( rect.x, rect.y ) ); + const point pos( offset.x + rect.x, offset.y + rect.y ); assert( pos.x % sprite_width == 0 ); assert( pos.y % sprite_height == 0 ); const size_t index = this->offset + ( pos.x / sprite_width ) + ( pos.y / sprite_height ) * @@ -366,29 +363,17 @@ void tileset_loader::create_textures_from_tile_atlas( const SDL_Surface_Ptr &til const point &offset ) { assert( tile_atlas ); + copy_surface_to_texture( tile_atlas, offset, ts.tile_values ); /** perform color filter conversion here */ - using tiles_pixel_color_entry = std::tuple*, std::string>; - std::array tile_values_data = {{ - { std::make_tuple( &ts.tile_values, "color_pixel_none" ) }, - { std::make_tuple( &ts.shadow_tile_values, "color_pixel_grayscale" ) }, - { std::make_tuple( &ts.night_tile_values, "color_pixel_nightvision" ) }, - { std::make_tuple( &ts.overexposed_tile_values, "color_pixel_overexposed" ) }, - { std::make_tuple( &ts.memory_tile_values, tilecontext->memory_map_mode ) } - } - }; - for( tiles_pixel_color_entry &entry : tile_values_data ) { - std::vector *tile_values = std::get<0>( entry ); - color_pixel_function_pointer color_pixel_function = get_color_pixel_function( std::get<1> - ( entry ) ); - if( !color_pixel_function ) { - // TODO: Move it inside apply_color_filter. - copy_surface_to_texture( tile_atlas, offset, *tile_values ); - } else { - copy_surface_to_texture( apply_color_filter( tile_atlas, color_pixel_function ), offset, - *tile_values ); - } - } + copy_surface_to_texture( apply_color_filter( tile_atlas, color_pixel_grayscale ), offset, + ts.shadow_tile_values ); + copy_surface_to_texture( apply_color_filter( tile_atlas, color_pixel_nightvision ), offset, + ts.night_tile_values ); + copy_surface_to_texture( apply_color_filter( tile_atlas, color_pixel_overexposed ), offset, + ts.overexposed_tile_values ); + copy_surface_to_texture( apply_color_filter( tile_atlas, color_pixel_memorized ), offset, + ts.memory_tile_values ); } template @@ -484,7 +469,7 @@ void tileset_loader::load_tileset( const std::string &img_path ) smaller_surf = ::create_surface_32( w, h ); assert( smaller_surf ); const SDL_Rect inp{ sub_rect.x, sub_rect.y, w, h }; - throwErrorIf( SDL_BlitSurface( tile_atlas.get(), &inp, smaller_surf.get(), nullptr ) != 0, + throwErrorIf( SDL_BlitSurface( tile_atlas.get(), &inp, smaller_surf.get(), NULL ) != 0, "SDL_BlitSurface failed" ); } const SDL_Surface_Ptr &surf_to_use = smaller_surf ? smaller_surf : tile_atlas; @@ -644,8 +629,8 @@ void tileset_loader::load_internal( JsonObject &config, const std::string &tiles sprite_width = tile_part_def.get_int( "sprite_width", ts.tile_width ); sprite_height = tile_part_def.get_int( "sprite_height", ts.tile_height ); // Now load the tile definitions for the loaded tileset image. - sprite_offset.x = tile_part_def.get_int( "sprite_offset_x", 0 ); - sprite_offset.y = tile_part_def.get_int( "sprite_offset_y", 0 ); + sprite_offset_x = tile_part_def.get_int( "sprite_offset_x", 0 ); + sprite_offset_y = tile_part_def.get_int( "sprite_offset_y", 0 ); // First load the tileset image to get the number of available tiles. dbg( D_INFO ) << "Attempting to Load Tileset file " << tileset_image_path; load_tileset( tileset_image_path ); @@ -660,7 +645,8 @@ void tileset_loader::load_internal( JsonObject &config, const std::string &tiles } else { sprite_width = ts.tile_width; sprite_height = ts.tile_height; - sprite_offset = point_zero; + sprite_offset_x = 0; + sprite_offset_y = 0; R = -1; G = -1; B = -1; @@ -782,7 +768,8 @@ void tileset_loader::load_ascii_set( JsonObject &entry ) } const std::string id = get_ascii_tile_id( ascii_char, FG, -1 ); tile_type curr_tile; - curr_tile.offset = sprite_offset; + curr_tile.offset.x = sprite_offset_x; + curr_tile.offset.y = sprite_offset_y; auto &sprites = *( curr_tile.fg.add( std::vector( {index_in_image + offset} ), 1 ) ); switch( ascii_char ) { // box bottom/top side (horizontal line) @@ -862,7 +849,8 @@ void tileset_loader::load_tilejson_from_file( JsonObject &config ) } for( const std::string &t_id : ids ) { tile_type &curr_tile = load_tile( entry, t_id ); - curr_tile.offset = sprite_offset; + curr_tile.offset.x = sprite_offset_x; + curr_tile.offset.y = sprite_offset_y; bool t_multi = entry.get_bool( "multitile", false ); bool t_rota = entry.get_bool( "rotates", t_multi ); int t_h3d = entry.get_int( "height_3d", 0 ); @@ -874,7 +862,8 @@ void tileset_loader::load_tilejson_from_file( JsonObject &config ) const std::string s_id = subentry.get_string( "id" ); const std::string m_id = t_id + "_" + s_id; tile_type &curr_subtile = load_tile( subentry, m_id ); - curr_subtile.offset = sprite_offset; + curr_subtile.offset.x = sprite_offset_x; + curr_subtile.offset.y = sprite_offset_y; curr_subtile.rotates = true; curr_subtile.height_3d = t_h3d; curr_tile.available_subtiles.push_back( s_id ); @@ -1006,7 +995,8 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, render_fill_rect( renderer, clipRect, 0, 0, 0 ); } - const point pos = center.xy(); + int posx = center.x; + int posy = center.y; int sx = 0; int sy = 0; @@ -1018,9 +1008,11 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, const bool iso_mode = tile_iso; - o = iso_mode ? pos : pos - point( POSX, POSY ); + o_x = iso_mode ? posx : posx - POSX; + o_y = iso_mode ? posy : posy - POSY; - op = point( destx, desty ); + op_x = destx; + op_y = desty; // Rounding up to include incomplete tiles at the bottom/right edges screentile_width = divide_round_up( width, tile_width ); screentile_height = divide_round_up( height, tile_height ); @@ -1070,14 +1062,14 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, if( iso_mode ) { //in isometric, rows and columns represent a checkerboard screen space, and we place //the appropriate tile in valid squares by getting position relative to the screen center. - if( ( row + o.y ) % 2 != ( col + o.x ) % 2 ) { + if( ( row + o_y ) % 2 != ( col + o_x ) % 2 ) { continue; } - x = ( col - row - sx / 2 + sy / 2 ) / 2 + o.x; - y = ( row + col - sy / 2 - sx / 2 ) / 2 + o.y; + x = ( col - row - sx / 2 + sy / 2 ) / 2 + o_x; + y = ( row + col - sy / 2 - sx / 2 ) / 2 + o_y; } else { - x = col + o.x; - y = row + o.y; + x = col + o_x; + y = row + o_y; } if( y < min_visible_y || y > max_visible_y || x < min_visible_x || x > max_visible_x ) { int height_3d = 0; @@ -1097,18 +1089,6 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, } } - if( g->displaying_radiation ) { - const int rad_value = g->m.get_radiation( {x, y, center.z} ); - catacurses::base_color col; - if( rad_value > 0 ) { - col = catacurses::green; - } else { - col = catacurses::cyan; - } - overlay_strings.emplace( player_to_screen( x, y ) + point( tile_width / 2, 0 ), - formatted_text( std::to_string( rad_value ), 8 + col, NORTH ) ); - } - // Add temperature value to the overlay_strings list for every visible tile when displaying temperature if( g->displaying_temperature ) { int temp_value = g->weather.get_temperature( {x, y, center.z} ); @@ -1196,12 +1176,12 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, //Memorize everything the character just saw even if it wasn't displayed. for( int mem_y = 0; mem_y < MAPSIZE_Y; mem_y++ ) { for( int mem_x = 0; mem_x < MAPSIZE_X; mem_x++ ) { - tripoint p( mem_x, mem_y, center.z ); - //just finished o through s+o so skip them - rectangle skip_region( o, o + point( sx, sy ) ); - if( skip_region.contains_half_open( p.xy() ) ) { + //just finished o_x,o_y through sx+o_x,sy+o_y so skip them + if( mem_x >= o_x && mem_x < sx + o_x && + mem_y >= o_y && mem_y < sy + o_y ) { continue; } + tripoint p( mem_x, mem_y, center.z ); int height_3d = 0; if( iso_mode ) { //Iso_mode skips in a checkerboard @@ -1213,8 +1193,8 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, p.x = ( mem_x - mem_y - MAPSIZE_X / 2 + MAPSIZE_Y / 2 ) / 2 + MAPSIZE_X / 2; p.y = ( mem_y + mem_x - MAPSIZE_Y / 2 - MAPSIZE_X / 2 ) / 2 + MAPSIZE_Y / 2; //Check if we're in previously done iso_mode space - if( p.x >= ( 0 - sy - sx / 2 + sy / 2 ) / 2 + o.x && p.x < ( sx - 0 - sx / 2 + sy / 2 ) / 2 + o.x && - p.y >= ( 0 + 0 - sy / 2 - sx / 2 ) / 2 + o.y && p.y < ( sy + sx - sy / 2 - sx / 2 ) / 2 + o.y ) { + if( p.x >= ( 0 - sy - sx / 2 + sy / 2 ) / 2 + o_x && p.x < ( sx - 0 - sx / 2 + sy / 2 ) / 2 + o_x && + p.y >= ( 0 + 0 - sy / 2 - sx / 2 ) / 2 + o_y && p.y < ( sy + sx - sy / 2 - sx / 2 ) / 2 + o_y ) { continue; } } @@ -1277,14 +1257,16 @@ void cata_tiles::draw( int destx, int desty, const tripoint ¢er, int width, } 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, - false ); + {g->ter_view_x, g->ter_view_y, center.z}, 0, 0, LL_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 ); + draw_from_id_string( "cursor", C_NONE, empty_string, { + indicator_offset->x + g->u.posx(), + indicator_offset->y + g->u.posy(), center.z + }, + 0, 0, LL_LIT, false ); } } @@ -1300,13 +1282,10 @@ void cata_tiles::draw_minimap( int destx, int desty, const tripoint ¢er, int void cata_tiles::get_window_tile_counts( const int width, const int height, int &columns, int &rows ) const { - if( tile_iso ) { - columns = ceil( static_cast( width ) / tile_width ) * 2 + 4; - rows = ceil( static_cast( height ) / ( tile_width / 2.0 - 1 ) ) * 2 + 4; - } else { - columns = ceil( static_cast( width ) / tile_width ); - rows = ceil( static_cast( height ) / tile_height ); - } + columns = tile_iso ? ceil( static_cast( width ) / tile_width ) * 2 + 4 : ceil( + static_cast( width ) / tile_width ); + rows = tile_iso ? ceil( static_cast( height ) / ( tile_width / 2 - 1 ) ) * 2 + 4 : ceil( + static_cast( height ) / tile_height ); } bool cata_tiles::draw_from_id_string( std::string id, const tripoint &pos, int subtile, int rota, @@ -1461,9 +1440,9 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, // check to make sure that we are drawing within a valid area // [0->width|height / tile_width|height] - rectangle screen_bounds( o, o + point( screentile_width, screentile_height ) ); if( !tile_iso && - !screen_bounds.contains_half_open( pos.xy() ) ) { + ( pos.x - o_x < 0 || pos.x - o_x >= screentile_width || + pos.y - o_y < 0 || pos.y - o_y >= screentile_height ) ) { return false; } @@ -1818,24 +1797,24 @@ bool cata_tiles::draw_sprite_at( const tile_type &tile, switch( rota ) { default: case 0: // unrotated (and 180, with just two sprites) - ret = sprite_tex->render_copy_ex( renderer, &destination, 0, nullptr, SDL_FLIP_NONE ); + ret = sprite_tex->render_copy_ex( renderer, &destination, 0, NULL, SDL_FLIP_NONE ); break; case 1: // 90 degrees (and 270, with just two sprites) #if defined(_WIN32) destination.y -= 1; #endif if( ! tile_iso ) { // never rotate isometric tiles - ret = sprite_tex->render_copy_ex( renderer, &destination, -90, nullptr, SDL_FLIP_NONE ); + ret = sprite_tex->render_copy_ex( renderer, &destination, -90, NULL, SDL_FLIP_NONE ); } else { - ret = sprite_tex->render_copy_ex( renderer, &destination, 0, nullptr, SDL_FLIP_NONE ); + ret = sprite_tex->render_copy_ex( renderer, &destination, 0, NULL, SDL_FLIP_NONE ); } break; case 2: // 180 degrees, implemented with flips instead of rotation if( ! tile_iso ) { // never flip isometric tiles vertically - ret = sprite_tex->render_copy_ex( renderer, &destination, 0, nullptr, + ret = sprite_tex->render_copy_ex( renderer, &destination, 0, NULL, static_cast( SDL_FLIP_HORIZONTAL | SDL_FLIP_VERTICAL ) ); } else { - ret = sprite_tex->render_copy_ex( renderer, &destination, 0, nullptr, SDL_FLIP_NONE ); + ret = sprite_tex->render_copy_ex( renderer, &destination, 0, NULL, SDL_FLIP_NONE ); } break; case 3: // 270 degrees @@ -1843,17 +1822,17 @@ bool cata_tiles::draw_sprite_at( const tile_type &tile, destination.x -= 1; #endif if( ! tile_iso ) { // never rotate isometric tiles - ret = sprite_tex->render_copy_ex( renderer, &destination, 90, nullptr, SDL_FLIP_NONE ); + ret = sprite_tex->render_copy_ex( renderer, &destination, 90, NULL, SDL_FLIP_NONE ); } else { - ret = sprite_tex->render_copy_ex( renderer, &destination, 0, nullptr, SDL_FLIP_NONE ); + ret = sprite_tex->render_copy_ex( renderer, &destination, 0, NULL, SDL_FLIP_NONE ); } break; case 4: // flip horizontally - ret = sprite_tex->render_copy_ex( renderer, &destination, 0, nullptr, + ret = sprite_tex->render_copy_ex( renderer, &destination, 0, NULL, static_cast( SDL_FLIP_HORIZONTAL ) ); } } else { // don't rotate, same as case 0 above - ret = sprite_tex->render_copy_ex( renderer, &destination, 0, nullptr, SDL_FLIP_NONE ); + ret = sprite_tex->render_copy_ex( renderer, &destination, 0, NULL, SDL_FLIP_NONE ); } printErrorIf( ret != 0, "SDL_RenderCopyEx() failed" ); @@ -1911,7 +1890,7 @@ bool cata_tiles::draw_terrain_below( const tripoint &p, lit_level /*ll*/, int &/ return false; } - tripoint pbelow = tripoint( p.xy(), p.z - 1 ); + tripoint pbelow = tripoint( p.x, p.y, p.z - 1 ); SDL_Color tercol = curses_color_to_SDL( c_dark_gray ); const ter_t &curr_ter = g->m.ter( pbelow ).obj(); @@ -1950,16 +1929,16 @@ bool cata_tiles::draw_terrain_below( const tripoint &p, lit_level /*ll*/, int &/ int screen_x = 0; int screen_y = 0; if( tile_iso ) { - screen_x = ( ( pbelow.x - o.x ) - ( o.y - pbelow.y ) + screentile_width - 2 ) * tile_width / 2 + - op.x; + screen_x = ( ( pbelow.x - o_x ) - ( o_y - pbelow.y ) + screentile_width - 2 ) * tile_width / 2 + + op_x; // y uses tile_width because width is definitive for iso tiles // tile footprints are half as tall as wide, arbitrarily tall - screen_y = ( ( pbelow.y - o.y ) - ( pbelow.x - o.x ) - 4 ) * tile_width / 4 + + screen_y = ( ( pbelow.y - o_y ) - ( pbelow.x - o_x ) - 4 ) * tile_width / 4 + screentile_height * tile_height / 2 + // TODO: more obvious centering math - op.y; + op_y; } else { - screen_x = ( pbelow.x - o.x ) * tile_width + op.x; - screen_y = ( pbelow.y - o.y ) * tile_height + op.y; + screen_x = ( pbelow.x - o_x ) * tile_width + op_x; + screen_y = ( pbelow.y - o_y ) * tile_height + op_y; } belowRect.x = screen_x + ( tile_width - belowRect.w ) / 2; belowRect.y = screen_y + ( tile_height - belowRect.h ) / 2; @@ -2043,10 +2022,10 @@ bool cata_tiles::draw_furniture( const tripoint &p, lit_level ll, int &height_3d // for rotation information const int neighborhood[4] = { - static_cast( g->m.furn( p + point_south ) ), - static_cast( g->m.furn( p + point_east ) ), - static_cast( g->m.furn( p + point_west ) ), - static_cast( g->m.furn( p + point_north ) ) + static_cast( g->m.furn( tripoint( p.x, p.y + 1, p.z ) ) ), // south + static_cast( g->m.furn( tripoint( p.x + 1, p.y, p.z ) ) ), // east + static_cast( g->m.furn( tripoint( p.x - 1, p.y, p.z ) ) ), // west + static_cast( g->m.furn( tripoint( p.x, p.y - 1, p.z ) ) ) // north }; int subtile = 0; @@ -2072,10 +2051,10 @@ bool cata_tiles::draw_trap( const tripoint &p, lit_level ll, int &height_3d ) } const int neighborhood[4] = { - static_cast( g->m.tr_at( p + point_south ).loadid ), - static_cast( g->m.tr_at( p + point_east ).loadid ), - static_cast( g->m.tr_at( p + point_west ).loadid ), - static_cast( g->m.tr_at( p + point_north ).loadid ) + static_cast( g->m.tr_at( tripoint( p.x, p.y + 1, p.z ) ).loadid ), // south + static_cast( g->m.tr_at( tripoint( p.x + 1, p.y, p.z ) ).loadid ), // east + static_cast( g->m.tr_at( tripoint( p.x - 1, p.y, p.z ) ).loadid ), // west + static_cast( g->m.tr_at( tripoint( p.x, p.y - 1, p.z ) ).loadid ) // north }; int subtile = 0; @@ -2108,10 +2087,10 @@ bool cata_tiles::draw_field_or_item( const tripoint &p, lit_level ll, int &heigh if( fld_type.display_field ) { // for rotation information const int neighborhood[4] = { - static_cast( g->m.field_at( p + point_south ).displayed_field_type() ), - static_cast( g->m.field_at( p + point_east ).displayed_field_type() ), - static_cast( g->m.field_at( p + point_west ).displayed_field_type() ), - static_cast( g->m.field_at( p + point_north ).displayed_field_type() ) + static_cast( g->m.field_at( tripoint( p.x, p.y + 1, p.z ) ).displayed_field_type() ), // south + static_cast( g->m.field_at( tripoint( p.x + 1, p.y, p.z ) ).displayed_field_type() ), // east + static_cast( g->m.field_at( tripoint( p.x - 1, p.y, p.z ) ).displayed_field_type() ), // west + static_cast( g->m.field_at( tripoint( p.x, p.y - 1, p.z ) ).displayed_field_type() ) // north }; int subtile = 0; @@ -2147,7 +2126,7 @@ bool cata_tiles::draw_vpart_below( const tripoint &p, lit_level /*ll*/, int &/*h if( !g->m.need_draw_lower_floor( p ) ) { return false; } - tripoint pbelow( p.xy(), p.z - 1 ); + tripoint pbelow( p.x, p.y, p.z - 1 ); int height_3d_below = 0; return draw_vpart( pbelow, LL_LOW, height_3d_below ); } @@ -2206,7 +2185,7 @@ bool cata_tiles::draw_critter_at_below( const tripoint &p, lit_level, int & ) return false; } - tripoint pbelow( p.xy(), p.z - 1 ); + tripoint pbelow( p.x, p.y, p.z - 1 ); // Get the critter at the location below. If there isn't one, // we can bail. @@ -2310,19 +2289,11 @@ bool cata_tiles::draw_entity( const Creature &critter, const tripoint &p, lit_le } if( rot_facing >= 0 ) { const auto ent_name = m->type->id; - std::string chosen_id = ent_name.str(); if( m->has_effect( effect_ridden ) ) { int pl_under_height = 6; draw_entity_with_overlays( g->u, p, ll, pl_under_height ); - const std::string prefix = "rid_"; - std::string copy_id = chosen_id; - const std::string ridden_id = copy_id.insert( 0, prefix ); - const tile_type *tt = tileset_ptr->find_tile_type( ridden_id ); - if( tt ) { - chosen_id = ridden_id; - } } - result = draw_from_id_string( chosen_id, ent_category, ent_subcategory, p, subtile, rot_facing, + result = draw_from_id_string( ent_name.str(), ent_category, ent_subcategory, p, subtile, rot_facing, ll, false, height_3d ); sees_player = m->sees( g->u ); attitude = m->attitude_to( g-> u ); @@ -2408,7 +2379,7 @@ void tileset_loader::ensure_default_item_highlight() const SDL_Surface_Ptr surface = create_surface_32( ts.tile_width, ts.tile_height ); assert( surface ); - throwErrorIf( SDL_FillRect( surface.get(), nullptr, SDL_MapRGBA( surface->format, 0, 0, 127, + throwErrorIf( SDL_FillRect( surface.get(), NULL, SDL_MapRGBA( surface->format, 0, 0, 127, highlight_alpha ) ) != 0, "SDL_FillRect failed" ); ts.tile_values.emplace_back( CreateTextureFromSurface( renderer, surface ), SDL_Rect{ 0, 0, ts.tile_width, ts.tile_height } ); ts.tile_ids[ITEM_HIGHLIGHT].fg.add( std::vector( {index} ), 1 ); @@ -2543,27 +2514,27 @@ void cata_tiles::draw_explosion_frame() subtile = corner; rotation = 0; - draw_from_id_string( exp_name, exp_pos + point( -i, -i ), + draw_from_id_string( exp_name, { exp_pos.x - i, exp_pos.y - i, exp_pos.z }, subtile, rotation++, LL_LIT, nv_goggles_activated ); - draw_from_id_string( exp_name, exp_pos + point( -i, i ), + draw_from_id_string( exp_name, { exp_pos.x - i, exp_pos.y + i, exp_pos.z }, subtile, rotation++, LL_LIT, nv_goggles_activated ); - draw_from_id_string( exp_name, exp_pos + point( i, i ), + draw_from_id_string( exp_name, { exp_pos.x + i, exp_pos.y + i, exp_pos.z }, subtile, rotation++, LL_LIT, nv_goggles_activated ); - draw_from_id_string( exp_name, exp_pos + point( i, -i ), + draw_from_id_string( exp_name, { exp_pos.x + i, exp_pos.y - i, exp_pos.z }, subtile, rotation++, LL_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 ), + draw_from_id_string( exp_name, { exp_pos.x + j, exp_pos.y - i, exp_pos.z }, subtile, rotation, LL_LIT, nv_goggles_activated ); - draw_from_id_string( exp_name, exp_pos + point( j, i ), + draw_from_id_string( exp_name, { exp_pos.x + j, exp_pos.y + i, exp_pos.z }, subtile, rotation, LL_LIT, nv_goggles_activated ); rotation = 1; - draw_from_id_string( exp_name, exp_pos + point( -i, j ), + draw_from_id_string( exp_name, { exp_pos.x - i, exp_pos.y + j, exp_pos.z }, subtile, rotation, LL_LIT, nv_goggles_activated ); - draw_from_id_string( exp_name, exp_pos + point( i, j ), + draw_from_id_string( exp_name, { exp_pos.x + i, exp_pos.y + j, exp_pos.z }, subtile, rotation, LL_LIT, nv_goggles_activated ); } } @@ -2683,12 +2654,17 @@ void cata_tiles::draw_weather_frame() for( auto &vdrop : anim_weather.vdrops ) { // TODO: Z-level awareness if weather ever happens on anything but z-level 0. - tripoint p( vdrop.first, vdrop.second, 0 ); - if( !tile_iso ) { + int x = 0; + int y = 0; + if( tile_iso ) { + x = vdrop.first; + y = vdrop.second; + } else { // currently in ASCII screen coordinates - p += o; + x = vdrop.first + o_x; + y = vdrop.second + o_y; } - draw_from_id_string( weather_name, C_WEATHER, empty_string, p, 0, 0, + draw_from_id_string( weather_name, C_WEATHER, empty_string, {x, y, 0}, 0, 0, LL_LIT, nv_goggles_activated ); } } @@ -2743,8 +2719,8 @@ void cata_tiles::draw_zones_frame() for( int iY = zone_start.y; iY <= zone_end.y; ++ iY ) { 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 ); + { iX + zone_offset.x, iY + zone_offset.y, g->u.pos().z }, + 0, 0, LL_LIT, false ); } } @@ -2775,10 +2751,10 @@ void cata_tiles::get_terrain_orientation( const tripoint &p, int &rota, int &sub // get terrain neighborhood const ter_id neighborhood[4] = { - g->m.ter( p + point_south ), - g->m.ter( p + point_east ), - g->m.ter( p + point_west ), - g->m.ter( p + point_north ) + g->m.ter( tripoint( p.x, p.y + 1, p.z ) ), // south + g->m.ter( tripoint( p.x + 1, p.y, p.z ) ), // east + g->m.ter( tripoint( p.x - 1, p.y, p.z ) ), // west + g->m.ter( tripoint( p.x, p.y - 1, p.z ) ) // north }; bool connects[4]; @@ -2926,16 +2902,16 @@ point cata_tiles::player_to_screen( const int x, const int y ) const int screen_x = 0; int screen_y = 0; if( tile_iso ) { - screen_x = ( ( x - o.x ) - ( o.y - y ) + screentile_width - 2 ) * tile_width / 2 + - op.x; + screen_x = ( ( x - o_x ) - ( o_y - y ) + screentile_width - 2 ) * tile_width / 2 + + op_x; // y uses tile_width because width is definitive for iso tiles // tile footprints are half as tall as wide, arbitrarily tall - screen_y = ( ( y - o.y ) - ( x - o.x ) - 4 ) * tile_width / 4 + + screen_y = ( ( y - o_y ) - ( x - o_x ) - 4 ) * tile_width / 4 + screentile_height * tile_height / 2 + // TODO: more obvious centering math - op.y; + op_y; } else { - screen_x = ( x - o.x ) * tile_width + op.x; - screen_y = ( y - o.y ) * tile_height + op.y; + screen_x = ( x - o_x ) * tile_width + op_x; + screen_y = ( y - o_y ) * tile_height + op_y; } return {screen_x, screen_y}; } diff --git a/src/cata_tiles.h b/src/cata_tiles.h index 95d4f35b5ef3e..0f2a2878f4e8d 100644 --- a/src/cata_tiles.h +++ b/src/cata_tiles.h @@ -159,7 +159,8 @@ class tileset_loader tileset &ts; const SDL_Renderer_Ptr &renderer; - point sprite_offset; + int sprite_offset_x; + int sprite_offset_y; int sprite_width; int sprite_height; @@ -480,11 +481,15 @@ class cata_tiles tripoint zone_offset; // offset values, in tile coordinates, not pixels - point o; + int o_x = 0; + int o_y = 0; // offset for drawing, in pixels. - point op; + int op_x = 0; + int op_y = 0; private: + int last_pos_x = 0; + int last_pos_y = 0; /** * Tracks active night vision goggle status for each draw call. * Allows usage of night vision tilesets during sprite rendering. @@ -492,9 +497,6 @@ class cata_tiles bool nv_goggles_activated; std::unique_ptr minimap; - - public: - std::string memory_map_mode = "color_pixel_sepia"; }; #endif diff --git a/src/cata_utility.cpp b/src/cata_utility.cpp index f85cec7109e4f..eb51f57541a0e 100644 --- a/src/cata_utility.cpp +++ b/src/cata_utility.cpp @@ -51,16 +51,6 @@ bool isBetween( int test, int down, int up ) bool lcmatch( const std::string &str, const std::string &qry ) { - if( std::locale().name() != "en_US.UTF-8" ) { - auto &f = std::use_facet>( std::locale() ); - std::wstring wneedle = utf8_to_wstr( qry ); - std::wstring whaystack = utf8_to_wstr( str ); - - f.tolower( &whaystack[0], &whaystack[0] + whaystack.size() ); - f.tolower( &wneedle[0], &wneedle[0] + wneedle.size() ); - - return whaystack.find( wneedle ) != std::wstring::npos; - } std::string needle; needle.reserve( qry.size() ); std::transform( qry.begin(), qry.end(), std::back_inserter( needle ), tolower ); @@ -360,8 +350,9 @@ bool write_to_file( const std::string &path, const std::function(), hp_cur( {{ 0 }} ), hp_max( {{ 0 }} ), @@ -376,11 +376,6 @@ double Character::aim_per_move( const item &gun, double recoil ) const return std::min( aim_speed, recoil - limit ); } -bool Character::is_mounted() const -{ - return has_effect( effect_riding ) && mounted_creature; -} - bool Character::move_effects( bool attacking ) { if( has_effect( effect_downed ) ) { @@ -397,8 +392,8 @@ bool Character::move_effects( bool attacking ) return false; } if( has_effect( effect_webbed ) ) { - if( is_mounted() ) { - auto mon = mounted_creature.get(); + if( has_effect( effect_riding ) && g->u.mounted_creature ) { + auto mon = g->u.mounted_creature.get(); if( x_in_y( mon->type->melee_dice * mon->type->melee_sides, 6 * get_effect_int( effect_webbed ) ) ) { add_msg( _( "The %s breaks free of the webs!" ), mon->get_name() ); @@ -416,8 +411,8 @@ bool Character::move_effects( bool attacking ) return false; } if( has_effect( effect_lightsnare ) ) { - if( is_mounted() ) { - auto mon = mounted_creature.get(); + if( has_effect( effect_riding ) && g->u.mounted_creature ) { + auto mon = g->u.mounted_creature.get(); if( x_in_y( mon->type->melee_dice * mon->type->melee_sides, 12 ) ) { mon->remove_effect( effect_lightsnare ); remove_effect( effect_lightsnare ); @@ -445,8 +440,8 @@ bool Character::move_effects( bool attacking ) } } if( has_effect( effect_heavysnare ) ) { - if( is_mounted() ) { - auto mon = mounted_creature.get(); + if( has_effect( effect_riding ) && g->u.mounted_creature ) { + auto mon = g->u.mounted_creature.get(); if( mon->type->melee_dice * mon->type->melee_sides >= 7 ) { if( x_in_y( mon->type->melee_dice * mon->type->melee_sides, 32 ) ) { mon->remove_effect( effect_heavysnare ); @@ -483,8 +478,8 @@ bool Character::move_effects( bool attacking ) */ /** @EFFECT_STR increases chance to escape bear trap */ // If is riding, then despite the character having the effect, it is the mounted creature that escapes. - if( is_player() && is_mounted() ) { - auto mon = mounted_creature.get(); + if( has_effect( effect_riding ) && is_player() && g->u.mounted_creature ) { + auto mon = g->u.mounted_creature.get(); if( mon->type->melee_dice * mon->type->melee_sides >= 18 ) { if( x_in_y( mon->type->melee_dice * mon->type->melee_sides, 200 ) ) { mon->remove_effect( effect_beartrap ); @@ -514,7 +509,7 @@ bool Character::move_effects( bool attacking ) /** @EFFECT_STR increases chance to escape crushing rubble */ /** @EFFECT_DEX increases chance to escape crushing rubble, slightly */ - if( x_in_y( get_str() + get_dex() / 4.0, 100 ) ) { + if( x_in_y( get_str() + get_dex() / 4, 100 ) ) { remove_effect( effect_crushed ); add_msg_player_or_npc( m_good, _( "You free yourself from the rubble!" ), _( " frees themselves from the rubble!" ) ); @@ -542,8 +537,8 @@ bool Character::move_effects( bool attacking ) } if( has_effect( effect_grabbed ) && !attacking ) { int zed_number = 0; - if( is_mounted() ) { - auto mon = mounted_creature.get(); + if( has_effect( effect_riding ) && g->u.mounted_creature ) { + auto mon = g->u.mounted_creature.get(); if( mon->has_effect( effect_grabbed ) ) { if( ( dice( mon->type->melee_dice + mon->type->melee_sides, 3 ) < get_effect_int( effect_grabbed ) ) || @@ -559,7 +554,7 @@ bool Character::move_effects( bool attacking ) if( one_in( 4 ) ) { add_msg( m_bad, _( "You are pulled from your %s!" ), mon->get_name() ); remove_effect( effect_grabbed ); - dynamic_cast( *this ).forced_dismount(); + g->u.forced_dismount(); } } } else { @@ -697,8 +692,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" ) || - ( is_mounted() && mounted_creature->has_flag( MF_MECH_RECON_VISION ) ) ) { + if( has_active_mutation( trait_NIGHTVISION3 ) || is_wearing( "rm13_armor_on" ) ) { vision_mode_cache.set( NIGHTVISION_3 ); } if( has_active_mutation( trait_ELFA_FNV ) ) { @@ -730,8 +724,7 @@ void Character::recalc_sight_limits() if( has_active_bionic( bionic_id( "bio_infrared" ) ) || has_trait( trait_id( "INFRARED" ) ) || has_trait( trait_id( "LIZ_IR" ) ) || - worn_with_flag( "IR_EFFECT" ) || ( is_mounted() && - mounted_creature->has_flag( MF_MECH_RECON_VISION ) ) ) { + worn_with_flag( "IR_EFFECT" ) ) { vision_mode_cache.set( IR_VISION ); } @@ -808,7 +801,11 @@ bool Character::has_active_bionic( const bionic_id &b ) const bool Character::has_any_bionic() const { - return !my_bionics->empty(); + bionic_collection tmp_collec = *my_bionics; + if( !tmp_collec.empty() ) { + return true; + } + return false; } std::vector Character::nearby( const @@ -1203,14 +1200,7 @@ int Character::best_nearby_lifting_assist() const int Character::best_nearby_lifting_assist( const tripoint &world_pos ) const { const quality_id LIFT( "LIFT" ); - int mech_lift = 0; - if( is_mounted() ) { - auto mons = mounted_creature.get(); - if( mons->has_flag( MF_RIDEABLE_MECH ) ) { - mech_lift = mons->mech_str_addition() + 10; - } - } - return std::max( { this->max_quality( LIFT ), mech_lift, + return std::max( { this->max_quality( LIFT ), map_selector( this->pos(), PICKUP_RANGE ).max_quality( LIFT ), vehicle_selector( world_pos, 4, true, true ).max_quality( LIFT ) } ); @@ -1275,13 +1265,6 @@ units::mass Character::weight_capacity() const if( ret < 0_gram ) { ret = 0_gram; } - if( is_mounted() ) { - auto *mons = mounted_creature.get(); - // the mech has an effective strength for other purposes, like hitting. - // but for lifting, its effective strength is even higher, due to its sturdy construction, leverage, - // and being built entirely for that purpose with hydraulics etc. - ret = mons->mech_str_addition() == 0 ? ret : ( mons->mech_str_addition() + 10 ) * 4_kilogram; - } return ret; } @@ -1708,16 +1691,6 @@ static void layer_item( std::array &vals, // For the purposes of layering penalty, set a min of 2 and a max of 10 per item. int layering_encumbrance = std::min( 10, std::max( 2, encumber_val ) ); - /* - * Setting layering_encumbrance to 0 at this point makes the item cease to exist - * for the purposes of the layer penalty system. (normally an item has a minimum - * layering_encumbrance of 2 ) - */ - if( it.has_flag( "SEMITANGIBLE" ) ) { - encumber_val = 0; - layering_encumbrance = 0; - } - const int armorenc = !power_armor || !it.is_power_armor() ? encumber_val : std::max( 0, encumber_val - 40 ); @@ -1740,27 +1713,6 @@ static void layer_item( std::array &vals, } } -bool Character::is_wearing_power_armor( bool *hasHelmet ) const -{ - bool result = false; - for( auto &elem : worn ) { - if( !elem.is_power_armor() ) { - continue; - } - if( hasHelmet == nullptr ) { - // found power armor, helmet not requested, cancel loop - return true; - } - // found power armor, continue search for helmet - result = true; - if( elem.covers( bp_head ) ) { - *hasHelmet = true; - return true; - } - } - return result; -} - bool Character::is_wearing_active_power_armor() const { for( const auto &w : worn ) { @@ -1781,16 +1733,6 @@ void layer_details::reset() // So we add them together and then subtract out the highest. int layer_details::layer( const int encumbrance ) { - /* - * We should only get to this point with an encumbrance value of 0 - * if the item is 'semitangible'. A normal item has a minimum of - * 2 encumbrance for layer penalty purposes. - * ( even if normally its encumbrance is 0 ) - */ - if( encumbrance == 0 ) { - return total; // skip over the other logic because this item doesn't count - } - pieces.push_back( encumbrance ); int current = total; @@ -1852,7 +1794,7 @@ void Character::item_encumb( std::array &vals, // items std::array highest_layer_so_far; std::fill( highest_layer_so_far.begin(), highest_layer_so_far.end(), - PERSONAL_LAYER ); + UNDERWEAR ); const bool power_armored = is_wearing_active_power_armor(); for( auto w_it = worn.begin(); w_it != worn.end(); ++w_it ) { @@ -1899,13 +1841,30 @@ static void apply_mut_encumbrance( std::array &vals, void Character::mut_cbm_encumb( std::array &vals ) const { - - for( const bionic &bio : *my_bionics ) { - for( const auto &element : bio.info().encumbrance ) { - vals[element.first].encumbrance += element.second; + if( has_bionic( bionic_id( "bio_stiff" ) ) ) { + // All but head, mouth and eyes + for( auto &val : vals ) { + val.encumbrance += 10; } + + vals[bp_head].encumbrance -= 10; + vals[bp_mouth].encumbrance -= 10; + vals[bp_eyes].encumbrance -= 10; } + if( has_bionic( bionic_id( "bio_nostril" ) ) ) { + vals[bp_mouth].encumbrance += 10; + } + if( has_bionic( bionic_id( "bio_shotgun" ) ) ) { + vals[bp_arm_l].encumbrance += 5; + } + if( has_bionic( bionic_id( "bio_thumbs" ) ) ) { + vals[bp_hand_l].encumbrance += 10; + vals[bp_hand_r].encumbrance += 10; + } + if( has_bionic( bionic_id( "bio_pokedeye" ) ) ) { + vals[bp_eyes].encumbrance += 10; + } if( has_active_bionic( bionic_id( "bio_shock_absorber" ) ) ) { for( auto &val : vals ) { val.encumbrance += 3; // Slight encumbrance to all parts except eyes @@ -2731,7 +2690,7 @@ bool Character::is_immune_field( const field_type_id fid ) const return true; } // Check to see if we are immune - const field_type &ft = fid.obj(); + const field_type ft = fid.obj(); for( const trait_id &t : ft.immunity_data_traits ) { if( has_trait( t ) ) { return true; @@ -2783,14 +2742,9 @@ int Character::throw_range( const item &it ) const } // Increases as weight decreases until 150 g, then decreases again /** @EFFECT_STR increases throwing range, vs item weight (high or low) */ - int str_override = str_cur; - if( is_mounted() ) { - auto mons = mounted_creature.get(); - str_override = mons->mech_str_addition() != 0 ? mons->mech_str_addition() : str_cur; - } - int ret = ( str_override * 10 ) / ( tmp.weight() >= 150_gram ? tmp.weight() / 113_gram : 10 - - static_cast( - tmp.weight() / 15_gram ) ); + int ret = ( str_cur * 10 ) / ( tmp.weight() >= 150_gram ? tmp.weight() / 113_gram : 10 - + static_cast( + tmp.weight() / 15_gram ) ); ret -= tmp.volume() / 1000_ml; static const std::set affected_materials = { material_id( "iron" ), material_id( "steel" ) }; if( has_active_bionic( bionic_id( "bio_railgun" ) ) && tmp.made_of_any( affected_materials ) ) { @@ -2803,8 +2757,8 @@ int Character::throw_range( const item &it ) const /** @EFFECT_STR caps throwing range */ /** @EFFECT_THROW caps throwing range */ - if( ret > str_override * 3 + get_skill_level( skill_throw ) ) { - return str_override * 3 + get_skill_level( skill_throw ); + if( ret > str_cur * 3 + get_skill_level( skill_throw ) ) { + return str_cur * 3 + get_skill_level( skill_throw ); } return ret; @@ -3093,7 +3047,7 @@ std::string Character::extended_description() const return replace_colors( ss.str() ); } -social_modifiers Character::get_mutation_social_mods() const +const social_modifiers Character::get_mutation_social_mods() const { social_modifiers mods; for( const mutation_branch *mut : cached_mutations ) { @@ -3524,7 +3478,7 @@ int Character::get_shout_volume() const void Character::shout( std::string msg, bool order ) { int base = 10; - std::string shout; + std::string shout = ""; // You can't shout without your face if( has_trait( trait_PROF_FOODP ) && !( is_wearing( itype_id( "foodperson_mask" ) ) || diff --git a/src/character.h b/src/character.h index 26bd238d42e17..151cb5597d40a 100644 --- a/src/character.h +++ b/src/character.h @@ -118,8 +118,8 @@ struct encumbrance_data { std::array( layer_level::MAX_CLOTHING_LAYER )> layer_penalty_details; - void layer( const layer_level level, const int encumbrance ) { - layer_penalty += layer_penalty_details[static_cast( level )].layer( encumbrance ); + void layer( const layer_level level, const int emcumbrance ) { + layer_penalty += layer_penalty_details[static_cast( level )].layer( emcumbrance ); } void reset() { @@ -321,8 +321,6 @@ class Character : public Creature, public visitable /** Get encumbrance penalty per layer & body part */ int extraEncumbrance( const layer_level level, const int bp ) const; - /** Returns true if the character is wearing power armor */ - bool is_wearing_power_armor( bool *hasHelmet = nullptr ) const; /** Returns true if the character is wearing active power */ bool is_wearing_active_power_armor() const; @@ -390,7 +388,6 @@ class Character : public Creature, public visitable /** Converts an hp_part to a body_part */ static body_part hp_to_bp( hp_part hpart ); - bool is_mounted() const; /** * Displays menu with body part hp, optionally with hp estimation after healing. * Returns selected part. @@ -771,7 +768,7 @@ class Character : public Creature, public visitable /** * Goes over all mutations, returning the sum of the social modifiers */ - social_modifiers get_mutation_social_mods() const; + const social_modifiers get_mutation_social_mods() const; /** Color's character's tile's background */ nc_color symbol_color() const override; @@ -821,8 +818,6 @@ class Character : public Creature, public visitable int stamina; int radiation; - std::shared_ptr mounted_creature; - void initialize_stomach_contents(); /** Stable base metabolic rate due to traits */ diff --git a/src/clothing_mod.cpp b/src/clothing_mod.cpp index 1d5001ecaf116..d3be94c44ba13 100644 --- a/src/clothing_mod.cpp +++ b/src/clothing_mod.cpp @@ -59,7 +59,7 @@ clothing_mod_type string_to_enum( const std::string &data ) } template<> -std::string enum_to_string( clothing_mod_type data ) +const std::string enum_to_string( clothing_mod_type data ) { const auto iter = std::find_if( clothing_mod_type_map.begin(), clothing_mod_type_map.end(), [data]( const std::pair &pr ) { @@ -100,7 +100,7 @@ void clothing_mod::load( JsonObject &jo, const std::string & ) } else if( str == "coverage" ) { mv.coverage_propotion = true; } else { - jarr_prop.throw_error( R"(Invalid value, valid are: "coverage" and "thickness")" ); + jarr_prop.throw_error( "Invalid value, valid are: \"coverage\" and \"thickness\"" ); } } mod_values.push_back( mv ); diff --git a/src/clzones.cpp b/src/clzones.cpp index 1f7280f187f31..77b6c581efd75 100644 --- a/src/clzones.cpp +++ b/src/clzones.cpp @@ -14,7 +14,6 @@ #include "game.h" #include "iexamine.h" #include "item_category.h" -#include "item_search.h" #include "itype.h" #include "json.h" #include "line.h" @@ -23,7 +22,6 @@ #include "string_input_popup.h" #include "translations.h" #include "ui.h" -#include "uistate.h" #include "vehicle.h" #include "item.h" #include "player.h" @@ -128,9 +126,6 @@ zone_manager::zone_manager() types.emplace( zone_type_id( "LOOT_WOOD" ), zone_type( translate_marker( "Loot: Wood" ), translate_marker( "Destination for firewood and items that can be used as such." ) ) ); - types.emplace( zone_type_id( "LOOT_CUSTOM" ), - zone_type( translate_marker( "Loot: Custom" ), - translate_marker( "Destination for loot with a custom filter that you can modify." ) ) ); types.emplace( zone_type_id( "LOOT_IGNORE" ), zone_type( translate_marker( "Loot: Ignore" ), translate_marker( "Items inside of this zone are ignored by \"sort out loot\" zone-action." ) ) ); @@ -162,8 +157,6 @@ std::shared_ptr zone_options::create( const zone_type_id &type ) return std::make_shared(); } else if( type == zone_type_id( "CONSTRUCTION_BLUEPRINT" ) ) { return std::make_shared(); - } else if( type == zone_type_id( "LOOT_CUSTOM" ) ) { - return std::make_shared(); } return std::make_shared(); @@ -175,8 +168,6 @@ bool zone_options::is_valid( const zone_type_id &type, const zone_options &optio return dynamic_cast( &options ) != nullptr ; } else if( type == zone_type_id( "CONSTRUCTION_BLUEPRINT" ) ) { return dynamic_cast( &options ) != nullptr ; - } else if( type == zone_type_id( "LOOT_CUSTOM" ) ) { - return dynamic_cast( &options ) != nullptr ; } // ensure options is not derived class for the rest of zone types @@ -208,25 +199,6 @@ blueprint_options::query_con_result blueprint_options::query_con() } } -loot_options::query_loot_result loot_options::query_loot() -{ - int w_height = TERMY / 2; - - const int w_width = TERMX / 2; - const int w_y0 = ( TERMY > w_height ) ? ( TERMY - w_height ) / 4 : 0; - const int w_x0 = ( TERMX > w_width ) ? ( TERMX - w_width ) / 2 : 0; - - catacurses::window w_con = catacurses::newwin( w_height, w_width, point( w_x0, w_y0 ) ); - draw_item_filter_rules( w_con, 1, w_height - 1, item_filter_type::FILTER ); - string_input_popup() - .title( _( "Filter:" ) ) - .width( 55 ) - .identifier( "item_filter" ) - .max_length( 256 ) - .edit( mark ); - return changed; -} - plot_options::query_seed_result plot_options::query_seed() { player &p = g->u; @@ -272,43 +244,6 @@ plot_options::query_seed_result plot_options::query_seed() } } -bool loot_options::query_at_creation() -{ - return query_loot() != canceled; -} - -bool loot_options::query() -{ - return query_loot() == changed; -} - -std::string loot_options::get_zone_name_suggestion() const -{ - if( !mark.empty() ) { - return string_format( _( "Loot: Custom : %s" ), mark ); - } - return _( "Loot: Custom : No Filter" ); -} - -std::vector> loot_options::get_descriptions() const -{ - std::vector> options; - options.emplace_back( std::make_pair( _( "Loot: Custom: " ), - !mark.empty() ? mark : _( "No filter" ) ) ); - - return options; -} - -void loot_options::serialize( JsonOut &json ) const -{ - json.member( "mark", mark ); -} - -void loot_options::deserialize( JsonObject &jo_zone ) -{ - jo_zone.read( "mark", mark ); -} - bool blueprint_options::query_at_creation() { return query_con() != canceled; @@ -647,41 +582,8 @@ bool zone_manager::has_loot_dest_near( const tripoint &where ) const return false; } -const zone_data *zone_manager::get_zone_at( const tripoint &where, const zone_type_id &type ) const -{ - for( auto it = zones.rbegin(); it != zones.rend(); ++it ) { - const auto &zone = *it; - - if( zone.has_inside( where ) && zone.get_type() == type ) { - return &zone; - } - } - auto vzones = g->m.get_vehicle_zones( g->get_levz() ); - for( auto it = vzones.rbegin(); it != vzones.rend(); ++it ) { - const auto &zone = *it; - - if( zone->has_inside( where ) && zone->get_type() == type ) { - return zone; - } - } - return nullptr; -} - -bool zone_manager::custom_loot_has( const tripoint &where, const item *it ) const -{ - auto zone = get_zone_at( where, zone_type_id( "LOOT_CUSTOM" ) ); - if( !zone || !it ) { - return false; - } - const loot_options options = dynamic_cast( zone->get_options() ); - std::string filter_string = options.get_mark(); - auto z = item_filter_from_string( filter_string ); - - return z( *it ); -} - std::unordered_set zone_manager::get_near( const zone_type_id &type, - const tripoint &where, int range, const item *it, const faction_id &fac ) const + const tripoint &where, int range, const faction_id &fac ) const { const auto &point_set = get_point_set( type, fac ); auto near_point_set = std::unordered_set(); @@ -689,13 +591,7 @@ std::unordered_set zone_manager::get_near( const zone_type_id &type, for( auto &point : point_set ) { if( point.z == where.z ) { if( square_dist( point, where ) <= range ) { - if( it && has( zone_type_id( "LOOT_CUSTOM" ), point ) ) { - if( custom_loot_has( point, it ) ) { - near_point_set.insert( point ); - } - } else { - near_point_set.insert( point ); - } + near_point_set.insert( point ); } } } @@ -704,13 +600,7 @@ std::unordered_set zone_manager::get_near( const zone_type_id &type, for( auto &point : vzone_set ) { if( point.z == where.z ) { if( square_dist( point, where ) <= range ) { - if( it && has( zone_type_id( "LOOT_CUSTOM" ), point ) ) { - if( custom_loot_has( point, it ) ) { - near_point_set.insert( point ); - } - } else { - near_point_set.insert( point ); - } + near_point_set.insert( point ); } } } @@ -760,12 +650,7 @@ zone_type_id zone_manager::get_near_zone_type_for_item( const item &it, const tripoint &where ) const { auto cat = it.get_category(); - if( has_near( zone_type_id( "LOOT_CUSTOM" ), where ) ) { - for( const auto elem : get_near( zone_type_id( "LOOT_CUSTOM" ), where, 60, &it ) ) { - ( void )elem; - return zone_type_id( "LOOT_CUSTOM" ); - } - } + if( it.has_flag( "FIREWOOD" ) ) { if( has_near( zone_type_id( "LOOT_WOOD" ), where ) ) { return zone_type_id( "LOOT_WOOD" ); @@ -967,7 +852,7 @@ bool zone_manager::remove( zone_data &zone ) //If the zone was added this session //remove from added, and don't add to removed for( auto it = added_vzones.begin(); it != added_vzones.end(); ++it ) { - if( *it == &zone ) { + if( ( *it ) == &zone ) { added = true; added_vzones.erase( it ); break; @@ -1001,7 +886,7 @@ void zone_manager::rotate_zones( map &target_map, const int turns ) if( turns == 0 ) { return; } - const tripoint a_start = target_map.getabs( tripoint_zero ); + const tripoint a_start = target_map.getabs( tripoint( 0, 0, 0 ) ); const tripoint a_end = target_map.getabs( tripoint( 23, 23, 0 ) ); const point dim( 24, 24 ); for( zone_data &zone : zones ) { @@ -1014,11 +899,12 @@ void zone_manager::rotate_zones( map &target_map, const int turns ) tripoint z_l_start3 = target_map.getlocal( z_start ); tripoint z_l_end3 = target_map.getlocal( z_end ); // don't rotate centered squares - if( z_l_start3.x == z_l_start3.y && z_l_end3.x == z_l_end3.y && z_l_start3.x + z_l_end3.x == 23 ) { + if( z_l_start3.x == z_l_start3.y && z_l_end3.x == z_l_end3.y && + ( z_l_start3.x + z_l_end3.x ) == 23 ) { continue; } - point z_l_start = z_l_start3.xy().rotate( turns, dim ); - point z_l_end = z_l_end3.xy().rotate( turns, dim ); + point z_l_start = point( z_l_start3.x, z_l_start3.y ).rotate( turns, dim ); + point z_l_end = point( z_l_end3.x, z_l_end3.y ).rotate( turns, dim ); point new_z_start = target_map.getabs( z_l_start ); point new_z_end = target_map.getabs( z_l_end ); tripoint first = tripoint( std::min( new_z_start.x, new_z_end.x ), diff --git a/src/clzones.h b/src/clzones.h index a0e533b5ba542..d37ff956e3d9e 100644 --- a/src/clzones.h +++ b/src/clzones.h @@ -169,39 +169,6 @@ class blueprint_options : public zone_options, public mark_option void deserialize( JsonObject &jo_zone ) override; }; -class loot_options : public zone_options, public mark_option -{ - private: - std::string mark; // basic item filter. - - enum query_loot_result { - canceled, - successful, - changed, - }; - - query_loot_result query_loot(); - - public: - std::string get_mark() const override { - return mark; - } - - bool has_options() const override { - return true; - } - - bool query_at_creation() override; - bool query() override; - - std::string get_zone_name_suggestion() const override; - - std::vector> get_descriptions() const override; - - void serialize( JsonOut &json ) const override; - void deserialize( JsonObject &jo_zone ) override; -}; - /** * These are zones the player can designate. */ @@ -224,8 +191,8 @@ class zone_data invert = false; enabled = false; is_vehicle = false; - start = tripoint_zero; - end = tripoint_zero; + start = tripoint( 0, 0, 0 ); + end = tripoint( 0, 0, 0 ); options = nullptr; } @@ -357,7 +324,7 @@ class zone_manager const bool invert, const bool enabled, const tripoint &start, const tripoint &end, std::shared_ptr 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 ); @@ -379,9 +346,8 @@ class zone_manager bool has_near( const zone_type_id &type, const tripoint &where, int range = MAX_DISTANCE, const faction_id &fac = your_fac ) const; bool has_loot_dest_near( const tripoint &where ) const; - bool custom_loot_has( const tripoint &where, const item *it ) const; std::unordered_set get_near( const zone_type_id &type, const tripoint &where, - int range = MAX_DISTANCE, const item *it = nullptr, + int range = MAX_DISTANCE, const faction_id &fac = your_fac ) const; cata::optional get_nearest( const zone_type_id &type, const tripoint &where, int range = MAX_DISTANCE, diff --git a/src/colony.h b/src/colony.h index b41e413e30686..0bda1bc23e8c0 100644 --- a/src/colony.h +++ b/src/colony.h @@ -145,21 +145,21 @@ class colony : private element_allocator_type size_type group_number; // Used for comparison (> < >= <=) iterator operators (used by distance function and user) - group( const skipfield_type elements_per_group, group_pointer_type const previous = nullptr ): + group( const skipfield_type elements_per_group, group_pointer_type const previous = NULL ): last_endpoint( reinterpret_cast( COLONY_ALLOCATE_INITIALIZATION( uchar_allocator_type, ( ( elements_per_group * ( sizeof( aligned_element_type ) ) ) + ( ( elements_per_group + 1u ) * sizeof( skipfield_type ) ) ), - ( previous == nullptr ) ? nullptr : + ( previous == NULL ) ? 0 : previous->elements ) ) ), /* allocating to here purely because it is first in the struct sequence - actual pointer is elements, last_endpoint is only initialised to element's base value initially, then incremented by one below */ - next_group( nullptr ), + next_group( NULL ), elements( last_endpoint++ ), skipfield( reinterpret_cast( elements + elements_per_group ) ), previous_group( previous ), free_list_head( std::numeric_limits::max() ), capacity( elements_per_group ), number_of_elements( 1 ), - erasures_list_next_group( nullptr ), - group_number( ( previous == nullptr ) ? 0 : previous->group_number + 1u ) { + erasures_list_next_group( NULL ), + group_number( ( previous == NULL ) ? 0 : previous->group_number + 1u ) { // Static casts to unsigned int from short not necessary as C++ automatically promotes lesser types for arithmetic purposes. std::memset( &*skipfield, 0, sizeof( skipfield_type ) * ( elements_per_group + 1u ) ); // &* to avoid problems with non-trivial pointers @@ -268,16 +268,15 @@ class colony : private element_allocator_type colony_iterator &operator++() { // covers uninitialised colony_iterator - assert( group_pointer != nullptr ); + assert( group_pointer != NULL ); // Assert that iterator is not already at end() - assert( !( element_pointer == group_pointer->last_endpoint && - group_pointer->next_group != nullptr ) ); + assert( !( element_pointer == group_pointer->last_endpoint && group_pointer->next_group != NULL ) ); skipfield_type skip = *( ++skipfield_pointer ); // ie. beyond end of available data if( ( element_pointer += skip + 1 ) == group_pointer->last_endpoint && - group_pointer->next_group != nullptr ) { + group_pointer->next_group != NULL ) { group_pointer = group_pointer->next_group; skip = *( group_pointer->skipfield ); element_pointer = group_pointer->elements + skip; @@ -296,7 +295,7 @@ class colony : private element_allocator_type private: inline COLONY_FORCE_INLINE void check_for_end_of_group_and_progress() { // used by erase - if( element_pointer == group_pointer->last_endpoint && group_pointer->next_group != nullptr ) { + if( element_pointer == group_pointer->last_endpoint && group_pointer->next_group != NULL ) { group_pointer = group_pointer->next_group; skipfield_pointer = group_pointer->skipfield; element_pointer = group_pointer->elements + *skipfield_pointer; @@ -307,10 +306,10 @@ class colony : private element_allocator_type public: colony_iterator &operator--() { - assert( group_pointer != nullptr ); + assert( group_pointer != NULL ); assert( !( element_pointer == group_pointer->elements && group_pointer->previous_group == - nullptr ) ); // Assert that we are not already at begin() - this is not required to be tested in the code below as we don't need a special condition to progress to begin(), like we do with end() in operator ++ + NULL ) ); // Assert that we are not already at begin() - this is not required to be tested in the code below as we don't need a special condition to progress to begin(), like we do with end() in operator ++ if( element_pointer != group_pointer->elements ) { // ie. not already at beginning of group const skipfield_type skip = *( --skipfield_pointer ); @@ -373,8 +372,8 @@ class colony : private element_allocator_type return !( *this > rh ); } - colony_iterator() noexcept: group_pointer( nullptr ), element_pointer( nullptr ), - skipfield_pointer( nullptr ) {} + colony_iterator() noexcept: group_pointer( NULL ), element_pointer( NULL ), + skipfield_pointer( NULL ) {} private: // Used by cend(), erase() etc: @@ -456,21 +455,21 @@ class colony : private element_allocator_type colony::aligned_pointer_type &element_pointer = it.element_pointer; colony::skipfield_pointer_type &skipfield_pointer = it.skipfield_pointer; - assert( group_pointer != nullptr ); + assert( group_pointer != NULL ); assert( !( element_pointer == group_pointer->elements - 1 && - group_pointer->previous_group == nullptr ) ); // Assert that we are not already at rend() + group_pointer->previous_group == NULL ) ); // Assert that we are not already at rend() if( element_pointer != group_pointer->elements ) { // ie. not already at beginning of group element_pointer -= *( --skipfield_pointer ) + 1; skipfield_pointer -= *skipfield_pointer; if( !( element_pointer == group_pointer->elements - 1 && - group_pointer->previous_group == nullptr ) ) { // ie. iterator is not == rend() + group_pointer->previous_group == NULL ) ) { // ie. iterator is not == rend() return *this; } } - if( group_pointer->previous_group != nullptr ) { // ie. not first group in colony + if( group_pointer->previous_group != NULL ) { // ie. not first group in colony group_pointer = group_pointer->previous_group; skipfield_pointer = group_pointer->skipfield + group_pointer->capacity - 1; element_pointer = ( reinterpret_cast( group_pointer->skipfield ) - 1 ) @@ -493,7 +492,7 @@ class colony : private element_allocator_type inline COLONY_FORCE_INLINE colony_reverse_iterator &operator--() { // ie. Check that we are not already at rbegin() assert( !( it.element_pointer == it.group_pointer->last_endpoint - 1 && - it.group_pointer->next_group == nullptr ) ); + it.group_pointer->next_group == NULL ) ); ++it; return *this; } @@ -617,7 +616,7 @@ class colony : private element_allocator_type */ colony() noexcept: element_allocator_type( element_allocator_type() ), - groups_with_erasures_list_head( nullptr ), + groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), total_capacity( 0 ), pointer_allocator_pair( ( sizeof( aligned_element_type ) * 8 > ( sizeof( *this ) + sizeof( @@ -654,7 +653,7 @@ class colony : private element_allocator_type */ colony( const colony &source ): element_allocator_type( source ), - groups_with_erasures_list_head( nullptr ), + groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), total_capacity( 0 ), // Make the first colony group capacity the greater of min_elements_per_group or total_number_of_elements, so long as total_number_of_elements isn't larger than max_elements_per_group @@ -674,7 +673,7 @@ class colony : private element_allocator_type // Copy constructor (allocator-extended): colony( const colony &source, const allocator_type &alloc ): element_allocator_type( alloc ), - groups_with_erasures_list_head( nullptr ), + groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), total_capacity( 0 ), pointer_allocator_pair( static_cast( ( @@ -697,13 +696,13 @@ class colony : private element_allocator_type std::is_trivial::value ) { std::memset( static_cast( this ), 0, offsetof( colony, pointer_allocator_pair ) ); } else { - end_iterator.group_pointer = nullptr; - end_iterator.element_pointer = nullptr; - end_iterator.skipfield_pointer = nullptr; - begin_iterator.group_pointer = nullptr; - begin_iterator.element_pointer = nullptr; - begin_iterator.skipfield_pointer = nullptr; - groups_with_erasures_list_head = nullptr; + end_iterator.group_pointer = NULL; + end_iterator.element_pointer = NULL; + end_iterator.skipfield_pointer = NULL; + begin_iterator.group_pointer = NULL; + begin_iterator.element_pointer = NULL; + begin_iterator.skipfield_pointer = NULL; + groups_with_erasures_list_head = NULL; total_number_of_elements = 0; total_capacity = 0; } @@ -759,7 +758,7 @@ class colony : private element_allocator_type const skipfield_type max_allocation_amount = std::numeric_limits::max(), const element_allocator_type &alloc = element_allocator_type() ): element_allocator_type( alloc ), - groups_with_erasures_list_head( nullptr ), + groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), total_capacity( 0 ), pointer_allocator_pair( ( min_allocation_amount != 0 ) ? min_allocation_amount : @@ -782,7 +781,7 @@ class colony : private element_allocator_type const skipfield_type max_allocation_amount = std::numeric_limits::max(), const element_allocator_type &alloc = element_allocator_type() ): element_allocator_type( alloc ), - groups_with_erasures_list_head( nullptr ), + groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), total_capacity( 0 ), pointer_allocator_pair( min_allocation_amount ), @@ -801,7 +800,7 @@ class colony : private element_allocator_type const skipfield_type max_allocation_amount = std::numeric_limits::max(), const element_allocator_type &alloc = element_allocator_type() ): element_allocator_type( alloc ), - groups_with_erasures_list_head( nullptr ), + groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), total_capacity( 0 ), pointer_allocator_pair( ( min_allocation_amount != 0 ) ? min_allocation_amount : @@ -890,7 +889,7 @@ class colony : private element_allocator_type begin_iterator.group_pointer = next_group; // required to be before if statement in order for first_group to be NULL and avoid potential double-destruction in future - if( next_group == nullptr ) { + if( next_group == NULL ) { return; } @@ -899,7 +898,7 @@ class colony : private element_allocator_type } } else { // Avoid iteration for both empty groups and trivially-destructible types eg. POD, structs, classes with empty destructors // Technically under a type-traits-supporting compiler total_number_of_elements could be non-zero at this point, but since begin_iterator.group_pointer would already be NULL in the case of double-destruction, it's unnecessary to zero total_number_of_elements - while( begin_iterator.group_pointer != nullptr ) { + while( begin_iterator.group_pointer != NULL ) { const group_pointer_type next_group = begin_iterator.group_pointer->next_group; COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); @@ -909,15 +908,14 @@ class colony : private element_allocator_type } void initialize( const skipfield_type first_group_size ) { - begin_iterator.group_pointer = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, - nullptr ); + begin_iterator.group_pointer = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, 0 ); try { COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, first_group_size ); } catch( ... ) { COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); - begin_iterator.group_pointer = nullptr; + begin_iterator.group_pointer = NULL; throw; } @@ -937,8 +935,8 @@ class colony : private element_allocator_type * insert to back of colony. Returns iterator to location of inserted element. */ iterator insert( const element_type &element ) { - if( end_iterator.element_pointer != nullptr ) { - switch( ( ( groups_with_erasures_list_head != nullptr ) << 1 ) | ( end_iterator.element_pointer == + if( end_iterator.element_pointer != NULL ) { + switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { case 0: { // ie. there are no erased elements and end_iterator is not at end of current final group // Make copy for return before modifying end_iterator @@ -975,7 +973,7 @@ class colony : private element_allocator_type end_iterator.group_pointer ); } catch( ... ) { COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); - end_iterator.group_pointer->next_group = nullptr; + end_iterator.group_pointer->next_group = NULL; throw; } @@ -989,7 +987,7 @@ class colony : private element_allocator_type } catch( ... ) { COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); - end_iterator.group_pointer->next_group = nullptr; + end_iterator.group_pointer->next_group = NULL; throw; } } @@ -1096,8 +1094,8 @@ class colony : private element_allocator_type * exception of the element construction method and is_nothrow tests. */ iterator insert( element_type &&element ) { - if( end_iterator.element_pointer != nullptr ) { - switch( ( ( groups_with_erasures_list_head != nullptr ) << 1 ) | ( end_iterator.element_pointer == + if( end_iterator.element_pointer != NULL ) { + switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { case 0: { const iterator return_iterator = end_iterator; @@ -1131,7 +1129,7 @@ class colony : private element_allocator_type end_iterator.group_pointer ); } catch( ... ) { COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); - end_iterator.group_pointer->next_group = nullptr; + end_iterator.group_pointer->next_group = NULL; throw; } @@ -1145,7 +1143,7 @@ class colony : private element_allocator_type } catch( ... ) { COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); - end_iterator.group_pointer->next_group = nullptr; + end_iterator.group_pointer->next_group = NULL; throw; } } @@ -1244,8 +1242,8 @@ class colony : private element_allocator_type */ template iterator emplace( arguments &&... parameters ) { - if( end_iterator.element_pointer != nullptr ) { - switch( ( ( groups_with_erasures_list_head != nullptr ) << 1 ) | ( end_iterator.element_pointer == + if( end_iterator.element_pointer != NULL ) { + switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { case 0: { const iterator return_iterator = end_iterator; @@ -1281,7 +1279,7 @@ class colony : private element_allocator_type end_iterator.group_pointer ); } catch( ... ) { COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); - end_iterator.group_pointer->next_group = nullptr; + end_iterator.group_pointer->next_group = NULL; throw; } @@ -1295,7 +1293,7 @@ class colony : private element_allocator_type } catch( ... ) { COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); - end_iterator.group_pointer->next_group = nullptr; + end_iterator.group_pointer->next_group = NULL; throw; } } @@ -1398,7 +1396,7 @@ class colony : private element_allocator_type } catch( ... ) { COLONY_DESTROY( group_allocator_type, group_allocator_pair, next_group ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, next_group, 1 ); - end_iterator.group_pointer->next_group = nullptr; + end_iterator.group_pointer->next_group = NULL; throw; } @@ -1523,7 +1521,7 @@ class colony : private element_allocator_type return; } - if( begin_iterator.group_pointer == nullptr ) { // Empty colony, no groups created yet + if( begin_iterator.group_pointer == NULL ) { // Empty colony, no groups created yet initialize( ( number_of_elements > group_allocator_pair.max_elements_per_group ) ? group_allocator_pair.max_elements_per_group : ( number_of_elements < pointer_allocator_pair.min_elements_per_group ) ? pointer_allocator_pair.min_elements_per_group : @@ -1534,7 +1532,7 @@ class colony : private element_allocator_type // ie. not an uninitialized colony or a situation where reserve has been called if( total_number_of_elements != 0 ) { // Use up erased locations if available: - if( groups_with_erasures_list_head != nullptr ) { + if( groups_with_erasures_list_head != NULL ) { do { // skipblock loop: breaks when group is exhausted of reusable skipblocks, or returns if number_of_elements == 0 aligned_pointer_type const element_pointer = groups_with_erasures_list_head->elements + groups_with_erasures_list_head->free_list_head; @@ -1563,7 +1561,7 @@ class colony : private element_allocator_type // change groups groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; - if( groups_with_erasures_list_head == nullptr ) { + if( groups_with_erasures_list_head == NULL ) { break; } } @@ -1679,7 +1677,7 @@ class colony : private element_allocator_type do { --( current_group->group_number ); current_group = current_group->next_group; - } while( current_group != nullptr ); + } while( current_group != NULL ); } // get all elements contiguous in memory and shrink to fit, remove erasures and erasure free lists @@ -1743,7 +1741,7 @@ class colony : private element_allocator_type assert( !empty() ); const group_pointer_type group_pointer = it.group_pointer; // not uninitialized iterator - assert( group_pointer != nullptr ); + assert( group_pointer != NULL ); // != end() assert( it.element_pointer != group_pointer->last_endpoint ); // element pointed to by iterator has not been erased previously @@ -1879,8 +1877,7 @@ class colony : private element_allocator_type } // else: group is empty, consolidate groups - switch( ( group_pointer->next_group != nullptr ) | ( ( group_pointer != - begin_iterator.group_pointer ) + switch( ( group_pointer->next_group != NULL ) | ( ( group_pointer != begin_iterator.group_pointer ) << 1 ) ) { case 0: { // ie. group_pointer == begin_iterator.group_pointer && group_pointer->next_group == NULL; only group in colony // Reset skipfield and free list rather than clearing - leads to fewer allocations/deallocations: @@ -1888,7 +1885,7 @@ class colony : private element_allocator_type std::memset( &*( group_pointer->skipfield ), 0, sizeof( skipfield_type ) * group_pointer->capacity ); group_pointer->free_list_head = std::numeric_limits::max(); - groups_with_erasures_list_head = nullptr; + groups_with_erasures_list_head = NULL; // Reset begin and end iterators: end_iterator.element_pointer = begin_iterator.element_pointer = group_pointer->last_endpoint = @@ -1898,7 +1895,7 @@ class colony : private element_allocator_type return end_iterator; } case 1: { // ie. group_pointer == begin_iterator.group_pointer && group_pointer->next_group != NULL. Remove first group, change first group to next group - group_pointer->next_group->previous_group = nullptr; // Cut off this group from the chain + group_pointer->next_group->previous_group = NULL; // Cut off this group from the chain begin_iterator.group_pointer = group_pointer->next_group; // Make the next group the first group update_subsequent_group_numbers( begin_iterator.group_pointer ); @@ -1946,7 +1943,7 @@ class colony : private element_allocator_type remove_from_groups_with_erasures_list( group_pointer ); } - group_pointer->previous_group->next_group = nullptr; + group_pointer->previous_group->next_group = NULL; // end iterator needs to be changed as element supplied was the back element of the colony end_iterator.group_pointer = group_pointer->previous_group; end_iterator.element_pointer = reinterpret_cast @@ -2124,7 +2121,7 @@ class colony : private element_allocator_type ( current.group_pointer->skipfield ); current.group_pointer->previous_group = previous_group; - if( previous_group != nullptr ) { + if( previous_group != NULL ) { previous_group->next_group = current.group_pointer; } else { // This line is included here primarily to avoid a secondary if statement within the if block below - it will not be needed in any other situation @@ -2332,7 +2329,7 @@ class colony : private element_allocator_type pointer_allocator_pair.min_elements_per_group = min_allocation_amount; group_allocator_pair.max_elements_per_group = max_allocation_amount; - if( begin_iterator.group_pointer != nullptr && + if( begin_iterator.group_pointer != NULL && ( begin_iterator.group_pointer->capacity < min_allocation_amount || end_iterator.group_pointer->capacity > max_allocation_amount ) ) { consolidate(); @@ -2516,7 +2513,7 @@ class colony : private element_allocator_type } if( total_number_of_elements == 0 ) { // Most common scenario - empty colony - if( begin_iterator.group_pointer != nullptr ) { + if( begin_iterator.group_pointer != NULL ) { // Edge case - empty colony but first group is initialized ie. had some insertions but all elements got subsequently erased COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); @@ -2552,7 +2549,7 @@ class colony : private element_allocator_type skipfield_pointer_type &skipfield_pointer = it.skipfield_pointer; // covers uninitialized colony_iterator && empty group - assert( group_pointer != nullptr ); + assert( group_pointer != NULL ); // Now, run code based on the nature of the distance type - negative, positive or zero: if( distance > 0 ) { // ie. += @@ -2571,8 +2568,7 @@ class colony : private element_allocator_type // Note: incrementing element_pointer is avoided until necessary to avoid needless calculations // Check that we're not already at end() - assert( !( element_pointer == group_pointer->last_endpoint && - group_pointer->next_group == nullptr ) ); + assert( !( element_pointer == group_pointer->last_endpoint && group_pointer->next_group == NULL ) ); // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) if( element_pointer != group_pointer->elements + * ( group_pointer->skipfield ) ) { @@ -2586,7 +2582,7 @@ class colony : private element_allocator_type element_pointer += distance; skipfield_pointer += distance; return; - } else if( group_pointer->next_group == nullptr ) { + } else if( group_pointer->next_group == NULL ) { // either we've reached end() or gone beyond it, so bound to end() element_pointer = group_pointer->last_endpoint; skipfield_pointer += distance_from_end; @@ -2610,7 +2606,7 @@ class colony : private element_allocator_type } } - if( group_pointer->next_group == nullptr ) { + if( group_pointer->next_group == NULL ) { // either we've reached end() or gone beyond it, so bound to end() element_pointer = group_pointer->last_endpoint; return; @@ -2628,7 +2624,7 @@ class colony : private element_allocator_type // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the current group: while( static_cast( group_pointer->number_of_elements ) <= distance ) { - if( group_pointer->next_group == nullptr ) { + if( group_pointer->next_group == NULL ) { // either we've reached end() or gone beyond it, so bound to end() element_pointer = group_pointer->last_endpoint; skipfield_pointer = group_pointer->skipfield + ( group_pointer->last_endpoint - @@ -2668,7 +2664,7 @@ class colony : private element_allocator_type // check that we're not already at begin() assert( !( ( element_pointer == group_pointer->elements + * ( group_pointer->skipfield ) ) && - group_pointer->previous_group == nullptr ) ); + group_pointer->previous_group == NULL ) ); distance = -distance; // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) @@ -2682,7 +2678,7 @@ class colony : private element_allocator_type element_pointer -= distance; skipfield_pointer -= distance; return; - } else if( group_pointer->previous_group == nullptr ) { + } else if( group_pointer->previous_group == NULL ) { // ie. we've gone before begin(), so bound to begin() element_pointer = group_pointer->elements; skipfield_pointer = group_pointer->skipfield; @@ -2704,7 +2700,7 @@ class colony : private element_allocator_type } } - if( group_pointer->previous_group == nullptr ) { + if( group_pointer->previous_group == NULL ) { // This is first group, so bound to begin() (just in case final decrement took us before begin()) element_pointer = group_pointer->elements + *( group_pointer->skipfield ); skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); @@ -2717,7 +2713,7 @@ class colony : private element_allocator_type // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be either the first non-erased element in the next group over, or end(): while( static_cast( group_pointer->number_of_elements ) < distance ) { - if( group_pointer->previous_group == nullptr ) { + if( group_pointer->previous_group == NULL ) { // we've gone beyond begin(), so bound to it element_pointer = group_pointer->elements + *( group_pointer->skipfield ); skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); @@ -2761,12 +2757,12 @@ class colony : private element_allocator_type aligned_pointer_type &element_pointer = reverse_it.it.element_pointer; skipfield_pointer_type &skipfield_pointer = reverse_it.it.skipfield_pointer; - assert( element_pointer != nullptr ); + assert( element_pointer != NULL ); if( distance > 0 ) { // Check that we're not already at rend() assert( !( element_pointer == group_pointer->elements - 1 && - group_pointer->previous_group == nullptr ) ); + group_pointer->previous_group == NULL ) ); // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) // Since a reverse_iterator cannot == last_endpoint (ie. before rbegin()) we don't need to check for that like with iterator if( group_pointer->free_list_head == std::numeric_limits::max() ) { @@ -2777,7 +2773,7 @@ class colony : private element_allocator_type element_pointer -= distance; skipfield_pointer -= distance; return; - } else if( group_pointer->previous_group == nullptr ) { + } else if( group_pointer->previous_group == NULL ) { // Either we've reached rend() or gone beyond it, so bound to rend() element_pointer = group_pointer->elements - 1; skipfield_pointer = group_pointer->skipfield - 1; @@ -2799,7 +2795,7 @@ class colony : private element_allocator_type } } - if( group_pointer->previous_group == nullptr ) { + if( group_pointer->previous_group == NULL ) { // If we've reached rend(), bound to that element_pointer = group_pointer->elements - 1; skipfield_pointer = group_pointer->skipfield - 1; @@ -2811,7 +2807,7 @@ class colony : private element_allocator_type // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the next group: while( static_cast( group_pointer->number_of_elements ) < distance ) { - if( group_pointer->previous_group == nullptr ) { // bound to rend() + if( group_pointer->previous_group == NULL ) { // bound to rend() element_pointer = group_pointer->elements - 1; skipfield_pointer = group_pointer->skipfield - 1; return; @@ -2845,7 +2841,7 @@ class colony : private element_allocator_type // Check that we're not already at rbegin() assert( !( ( element_pointer == ( group_pointer->last_endpoint - 1 ) - * ( group_pointer->skipfield + ( group_pointer->last_endpoint - group_pointer->elements ) - 1 ) ) && - group_pointer->next_group == nullptr ) ); + group_pointer->next_group == NULL ) ); if( element_pointer != group_pointer->elements + * ( group_pointer->skipfield ) ) { // ie. != first non-erased element in group @@ -2858,7 +2854,7 @@ class colony : private element_allocator_type element_pointer += distance; skipfield_pointer += distance; return; - } else if( group_pointer->next_group == nullptr ) { // bound to rbegin() + } else if( group_pointer->next_group == NULL ) { // bound to rbegin() // no erasures so we don't have to subtract skipfield value as we do below element_pointer = group_pointer->last_endpoint - 1; skipfield_pointer += distance_from_end - 1; @@ -2883,7 +2879,7 @@ class colony : private element_allocator_type } } - if( group_pointer->next_group == nullptr ) { // bound to rbegin() + if( group_pointer->next_group == NULL ) { // bound to rbegin() --skipfield_pointer; element_pointer = ( group_pointer->last_endpoint - 1 ) - *skipfield_pointer; skipfield_pointer -= *skipfield_pointer; @@ -2902,7 +2898,7 @@ class colony : private element_allocator_type // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the current group, as a result of the previous code blocks: while( static_cast( group_pointer->number_of_elements ) <= distance ) { - if( group_pointer->next_group == nullptr ) { // bound to rbegin() + if( group_pointer->next_group == NULL ) { // bound to rbegin() skipfield_pointer = group_pointer->skipfield + ( group_pointer->last_endpoint - group_pointer->elements ) - 1; --skipfield_pointer; @@ -3005,8 +3001,8 @@ class colony : private element_allocator_type // In the initial and final groups, manual incrementation must be used to calculate distance, if there have been no prior erasures in those groups. // If there are no prior erasures in either of those groups, we can use pointer arithmetic to calculate the distances for those groups. - assert( !( first.group_pointer == nullptr ) && - !( last.group_pointer == nullptr ) ); // Check that they are initialized + assert( !( first.group_pointer == NULL ) && + !( last.group_pointer == NULL ) ); // Check that they are initialized if( last.element_pointer == first.element_pointer ) { return 0; @@ -3104,12 +3100,12 @@ class colony : private element_allocator_type */ iterator get_iterator_from_pointer( const pointer element_pointer ) const { assert( !empty() ); - assert( element_pointer != nullptr ); + assert( element_pointer != NULL ); // Start with last group first, as will be the largest group group_pointer_type current_group = end_iterator.group_pointer; - while( current_group != nullptr ) { + while( current_group != NULL ) { if( reinterpret_cast( element_pointer ) >= current_group->elements && reinterpret_cast( element_pointer ) < reinterpret_cast ( current_group->skipfield ) ) { @@ -3138,7 +3134,7 @@ class colony : private element_allocator_type template size_type get_index_from_iterator( const colony_iterator &it ) const { assert( !empty() ); - assert( it.group_pointer != nullptr ); + assert( it.group_pointer != NULL ); // This is essentially a simplified version of distance() optimized for counting from begin() size_type index = 0; @@ -3241,7 +3237,7 @@ class colony : private element_allocator_type } pointer *const element_pointers = COLONY_ALLOCATE( pointer_allocator_type, pointer_allocator_pair, - total_number_of_elements, nullptr ); + total_number_of_elements, NULL ); pointer *element_pointer = element_pointers; // Construct pointers to all elements in the colony in sequence: @@ -3355,11 +3351,11 @@ class colony : private element_allocator_type } // Add source list of groups-with-erasures to destination list of groups-with-erasures: - if( source.groups_with_erasures_list_head != nullptr ) { - if( groups_with_erasures_list_head != nullptr ) { + if( source.groups_with_erasures_list_head != NULL ) { + if( groups_with_erasures_list_head != NULL ) { group_pointer_type tail_group = groups_with_erasures_list_head; - while( tail_group->erasures_list_next_group != nullptr ) { + while( tail_group->erasures_list_next_group != NULL ) { tail_group = tail_group->erasures_list_next_group; } @@ -3418,7 +3414,7 @@ class colony : private element_allocator_type do { current_group->group_number = ++current_group_number; current_group = current_group->next_group; - } while( current_group != nullptr ); + } while( current_group != NULL ); // Join the destination and source group chains: end_iterator.group_pointer->next_group = source.begin_iterator.group_pointer; diff --git a/src/color.cpp b/src/color.cpp index b6ea9ddfc8bf1..02873a1fe1fa9 100644 --- a/src/color.cpp +++ b/src/color.cpp @@ -487,49 +487,49 @@ void init_colors() nc_color invert_color( const nc_color &c ) { const nc_color color = all_colors.get_invert( c ); - return static_cast( color ) > 0 ? color : c_pink; + return ( static_cast( color ) > 0 ) ? color : c_pink; } nc_color hilite( const nc_color &c ) { const nc_color color = all_colors.get_highlight( c, HL_BLUE ); - return static_cast( color ) > 0 ? color : h_white; + return ( static_cast( color ) > 0 ) ? color : h_white; } nc_color red_background( const nc_color &c ) { const nc_color color = all_colors.get_highlight( c, HL_RED ); - return static_cast( color ) > 0 ? color : c_white_red; + return ( static_cast( color ) > 0 ) ? color : c_white_red; } nc_color white_background( const nc_color &c ) { const nc_color color = all_colors.get_highlight( c, HL_WHITE ); - return static_cast( color ) > 0 ? color : c_black_white; + return ( static_cast( color ) > 0 ) ? color : c_black_white; } nc_color green_background( const nc_color &c ) { const nc_color color = all_colors.get_highlight( c, HL_GREEN ); - return static_cast( color ) > 0 ? color : c_black_green; + return ( static_cast( color ) > 0 ) ? color : c_black_green; } nc_color yellow_background( const nc_color &c ) { const nc_color color = all_colors.get_highlight( c, HL_YELLOW ); - return static_cast( color ) > 0 ? color : c_black_yellow; + return ( static_cast( color ) > 0 ) ? color : c_black_yellow; } nc_color magenta_background( const nc_color &c ) { const nc_color color = all_colors.get_highlight( c, HL_MAGENTA ); - return static_cast( color ) > 0 ? color : c_black_magenta; + return ( static_cast( color ) > 0 ) ? color : c_black_magenta; } nc_color cyan_background( const nc_color &c ) { const nc_color color = all_colors.get_highlight( c, HL_CYAN ); - return static_cast( color ) > 0 ? color : c_black_cyan; + return ( static_cast( color ) > 0 ) ? color : c_black_cyan; } /** @@ -699,7 +699,7 @@ static void draw_header( const catacurses::window &w ) mvwprintz( w, 1, 0, c_white, _( "Some color changes may require a restart." ) ); - mvwhline( w, point( 0, 2 ), LINE_OXOX, getmaxx( w ) ); // Draw line under header + mvwhline( w, 2, 0, LINE_OXOX, getmaxx( w ) ); // Draw line under header mvwputch( w, 2, 48, BORDER_COLOR, LINE_OXXX ); //^|^ mvwprintz( w, 3, 3, c_white, _( "Colorname" ) ); @@ -714,8 +714,8 @@ void color_manager::show_gui() const int iHeaderHeight = 4; const int iContentHeight = FULL_SCREEN_HEIGHT - 2 - iHeaderHeight; - 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; + 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; std::vector vLines; vLines.push_back( -1 ); @@ -724,11 +724,11 @@ void color_manager::show_gui() const int iTotalCols = vLines.size(); catacurses::window w_colors_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iOffsetX, iOffsetY ) ); + iOffsetY, iOffsetX ); catacurses::window w_colors_header = catacurses::newwin( iHeaderHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, 1 + iOffsetY ) ); + 1 + iOffsetY, 1 + iOffsetX ); catacurses::window w_colors = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, iHeaderHeight + 1 + iOffsetY ) ); + iHeaderHeight + 1 + iOffsetY, 1 + iOffsetX ); draw_border( w_colors_border, BORDER_COLOR, _( " COLOR MANAGER " ) ); mvwputch( w_colors_border, 3, 0, BORDER_COLOR, LINE_XXXO ); // |- @@ -790,7 +790,7 @@ void color_manager::show_gui() // display color manager for( int i = iStartPos; iter != name_color_map.end(); ++iter, ++i ) { if( i >= iStartPos && - i < iStartPos + ( iContentHeight > iMaxColors ? iMaxColors : iContentHeight ) ) { + i < iStartPos + ( ( iContentHeight > iMaxColors ) ? iMaxColors : iContentHeight ) ) { auto &entry = iter->second; if( iCurrentLine == i ) { @@ -979,7 +979,7 @@ bool color_manager::save_custom() void color_manager::load_custom( const std::string &sPath ) { - const auto file = sPath.empty() ? FILENAMES["custom_colors"] : sPath; + const auto file = ( sPath.empty() ) ? FILENAMES["custom_colors"] : sPath; read_from_file_optional_json( file, [this]( JsonIn & jsonin ) { deserialize( jsonin ); diff --git a/src/compatibility.h b/src/compatibility.h index 29d33a0fa61cd..65d5f29ae7b34 100644 --- a/src/compatibility.h +++ b/src/compatibility.h @@ -12,7 +12,7 @@ //-------------------------------------------------------------------------------------------------- #include -#define CATA_GCC_VER ((__GNUC__ * 10000) + (__GNUC_MINOR__ * 100) + (__GNUC_PATCHLEVEL__)) +#define CATA_GCC_VER (__GNUC__ * 10000) + (__GNUC_MINOR__ * 100) + (__GNUC_PATCHLEVEL__) #if defined(__MINGW32__) && !defined(__MINGW64__) # define CATA_NO_CPP11_STRING_CONVERSIONS diff --git a/src/computer.cpp b/src/computer.cpp index df75f2a7763a9..4a69fedc84e31 100644 --- a/src/computer.cpp +++ b/src/computer.cpp @@ -15,7 +15,7 @@ #include "coordinate_conversions.h" #include "debug.h" #include "explosion.h" -#include "timed_event.h" +#include "event.h" #include "field.h" #include "game.h" #include "input.h" @@ -144,12 +144,12 @@ void computer::use() { if( !w_border ) { w_border = 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 ) ); + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); } if( !w_terminal ) { w_terminal = catacurses::newwin( getmaxy( w_border ) - 2, getmaxx( w_border ) - 2, - point( getbegx( w_border ) + 1, getbegy( w_border ) + 1 ) ); + getbegy( w_border ) + 1, getbegx( w_border ) + 1 ); } draw_border( w_border ); wrefresh( w_border ); @@ -580,7 +580,7 @@ void computer::activate_function( computer_action action ) case COMPACT_MAPS: { g->u.moves -= 30; const tripoint center = g->u.global_omt_location(); - overmap_buffer.reveal( center.xy(), 40, 0 ); + overmap_buffer.reveal( point( center.x, center.y ), 40, 0 ); query_any( _( "Surface map data downloaded. Local anomalous-access error logged. Press any key..." ) ); remove_option( COMPACT_MAPS ); @@ -663,7 +663,7 @@ void computer::activate_function( computer_action action ) // For each level between here and the surface, remove the missile for( int level = g->get_levz(); level <= 0; level++ ) { map tmpmap; - tmpmap.load( tripoint( g->get_levx(), g->get_levy(), level ), false ); + tmpmap.load( g->get_levx(), g->get_levy(), level, false ); if( level < 0 ) { tmpmap.translate( t_missile, t_hole ); @@ -750,7 +750,7 @@ void computer::activate_function( computer_action action ) for( int x = 0; x < MAPSIZE_X; x++ ) { for( int y = 0; y < MAPSIZE_Y; y++ ) { if( g->m.ter( x, y ) == t_elevator_control_off ) { - g->m.ter_set( point( x, y ), t_elevator_control ); + g->m.ter_set( x, y, t_elevator_control ); } } } @@ -812,7 +812,7 @@ PERTINENT FOREMAN LOGS WILL BE PREPENDED TO NOTES" ), } case COMPACT_AMIGARA_START: - g->timed_events.add( TIMED_EVENT_AMIGARA, calendar::turn + 1_minutes ); + g->events.add( EVENT_AMIGARA, calendar::turn + 1_minutes ); if( !g->u.has_artifact_with( AEP_PSYSHIELD ) ) { g->u.add_effect( effect_amigara, 2_minutes ); } @@ -1227,7 +1227,7 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ for( int x = 0; x < MAPSIZE_X; x++ ) { for( int y = 0; y < MAPSIZE_Y; y++ ) { if( g->m.ter( x, y ) == t_elevator_control_off ) { - g->m.ter_set( point( x, y ), t_elevator_control ); + g->m.ter_set( x, y, t_elevator_control ); } } @@ -1274,9 +1274,9 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ dest ) > 0 ? rl_dist( radorigin, dest ) : 1 ) ); } if( g->m.pl_sees( dest, 10 ) ) { - g->u.irradiate( rng_float( 50, 250 ) / rl_dist( g->u.pos(), dest ) ); + g->u.irradiate( rng( 50, 250 ) / rl_dist( g->u.pos(), dest ) ); } else { - g->u.irradiate( rng_float( 20, 100 ) / rl_dist( g->u.pos(), dest ) ); + g->u.irradiate( rng( 20, 100 ) / rl_dist( g->u.pos(), dest ) ); } query_any( _( "EMERGENCY SHUTDOWN! Press any key..." ) ); error = true; @@ -1291,7 +1291,7 @@ SHORTLY. TO ENSURE YOUR SAFETY PLEASE FOLLOW THE STEPS BELOW. \n\ } // if unshielded, rad source irradiates player directly, reduced by distance to source if( g->m.pl_sees( dest, 10 ) ) { - g->u.irradiate( rng_float( 5, 25 ) / rl_dist( g->u.pos(), dest ) ); + g->u.irradiate( rng( 5, 25 ) / rl_dist( g->u.pos(), dest ) ); } } if( !error && platform_exists ) { @@ -1499,7 +1499,7 @@ void computer::activate_failure( computer_failure_type fail ) for( int x = 0; x < MAPSIZE_X; x++ ) { for( int y = 0; y < MAPSIZE_Y; y++ ) { if( g->m.has_flag( "CONSOLE", x, y ) ) { - g->m.ter_set( point( x, y ), t_console_broken ); + g->m.ter_set( x, y, t_console_broken ); add_msg( m_bad, _( "The console shuts down." ) ); } } @@ -1511,9 +1511,8 @@ void computer::activate_failure( computer_failure_type fail ) pgettext( "memorial_female", "Set off an alarm." ) ); sounds::sound( g->u.pos(), 60, sounds::sound_t::alarm, _( "an alarm sound!" ), false, "environment", "alarm" ); - if( g->get_levz() > 0 && !g->timed_events.queued( TIMED_EVENT_WANTED ) ) { - g->timed_events.add( TIMED_EVENT_WANTED, calendar::turn + 30_minutes, 0, - g->u.global_sm_location() ); + if( g->get_levz() > 0 && !g->events.queued( EVENT_WANTED ) ) { + g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, g->u.global_sm_location() ); } break; @@ -1586,23 +1585,23 @@ void computer::activate_failure( computer_failure_type fail ) for( int i = 0; i < leak_size; i++ ) { std::vector next_move; if( g->m.passable( p.x, p.y - 1 ) ) { - next_move.push_back( p + point_north ); + next_move.push_back( point( p.x, p.y - 1 ) ); } if( g->m.passable( p.x + 1, p.y ) ) { - next_move.push_back( p + point_east ); + next_move.push_back( point( p.x + 1, p.y ) ); } if( g->m.passable( p.x, p.y + 1 ) ) { - next_move.push_back( p + point_south ); + next_move.push_back( point( p.x, p.y + 1 ) ); } if( g->m.passable( p.x - 1, p.y ) ) { - next_move.push_back( p + point_west ); + next_move.push_back( point( p.x - 1, p.y ) ); } if( next_move.empty() ) { i = leak_size; } else { p = random_entry( next_move ); - g->m.ter_set( p, t_sewage ); + g->m.ter_set( p.x, p.y, t_sewage ); } } } @@ -1611,7 +1610,7 @@ void computer::activate_failure( computer_failure_type fail ) break; case COMPFAIL_AMIGARA: - g->timed_events.add( TIMED_EVENT_AMIGARA, calendar::turn + 30_seconds ); + g->events.add( EVENT_AMIGARA, calendar::turn + 30_seconds ); g->u.add_effect( effect_amigara, 2_minutes ); explosion_handler::explosion( tripoint( rng( 0, MAPSIZE_X ), rng( 0, MAPSIZE_Y ), g->get_levz() ), 10, @@ -1809,15 +1808,15 @@ void computer::print_gibberish_line() for( int i = 0; i < length; i++ ) { switch( rng( 0, 4 ) ) { case 0: - gibberish += static_cast( '0' + rng( 0, 9 ) ); + gibberish += '0' + rng( 0, 9 ); break; case 1: case 2: - gibberish += static_cast( 'a' + rng( 0, 25 ) ); + gibberish += 'a' + rng( 0, 25 ); break; case 3: case 4: - gibberish += static_cast( 'A' + rng( 0, 25 ) ); + gibberish += 'A' + rng( 0, 25 ); break; } } @@ -1829,7 +1828,7 @@ void computer::print_gibberish_line() void computer::reset_terminal() { werase( w_terminal ); - wmove( w_terminal, point_zero ); + wmove( w_terminal, 0, 0 ); wrefresh( w_terminal ); } diff --git a/src/condition.cpp b/src/condition.cpp deleted file mode 100644 index fadfebba30598..0000000000000 --- a/src/condition.cpp +++ /dev/null @@ -1,1068 +0,0 @@ -#include "condition.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "avatar.h" -#include "calendar.h" -#include "dialogue.h" -#include "faction_camp.h" -#include "game.h" -#include "item_category.h" -#include "item.h" -#include "json.h" -#include "map.h" -#include "mission.h" -#include "npc.h" -#include "overmapbuffer.h" -#include "string_id.h" -#include "type_id.h" -#include "vehicle.h" -#include "vpart_position.h" - -const efftype_id effect_currently_busy( "currently_busy" ); - -// throws an error on failure, so no need to return -std::string get_talk_varname( JsonObject jo, const std::string &member, bool check_value ) -{ - if( !jo.has_string( "type" ) || !jo.has_string( "context" ) || - ( check_value && !jo.has_string( "value" ) ) ) { - jo.throw_error( "invalid " + member + " condition in " + jo.str() ); - } - const std::string &var_basename = jo.get_string( member ); - const std::string &type_var = jo.get_string( "type" ); - const std::string &var_context = jo.get_string( "context" ); - return "npctalk_var_" + type_var + "_" + var_context + "_" + var_basename; -} - -template -void read_condition( JsonObject &jo, const std::string &member_name, - std::function &condition, bool default_val ) -{ - const auto null_function = [default_val]( const T & ) { - return default_val; - }; - - if( !jo.has_member( member_name ) ) { - condition = null_function; - } else if( jo.has_string( member_name ) ) { - const std::string type = jo.get_string( member_name ); - conditional_t sub_condition( type ); - condition = [sub_condition]( const T & d ) { - return sub_condition( d ); - }; - } else if( jo.has_object( member_name ) ) { - const JsonObject con_obj = jo.get_object( member_name ); - conditional_t sub_condition( con_obj ); - condition = [sub_condition]( const T & d ) { - return sub_condition( d ); - }; - } else { - jo.throw_error( "invalid condition syntax", member_name ); - } -} - -template -void conditional_t::set_has_any_trait( JsonObject &jo, const std::string &member, bool is_npc ) -{ - std::vector traits_to_check; - for( auto&& f : jo.get_string_array( member ) ) { // *NOPAD* - traits_to_check.emplace_back( f ); - } - condition = [traits_to_check, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - for( const auto &trait : traits_to_check ) { - if( actor->has_trait( trait ) ) { - return true; - } - } - return false; - }; -} - -template -void conditional_t::set_has_trait( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string &trait_to_check = jo.get_string( member ); - condition = [trait_to_check, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->has_trait( trait_id( trait_to_check ) ); - }; -} - -template -void conditional_t::set_has_trait_flag( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string &trait_flag_to_check = jo.get_string( member ); - condition = [trait_flag_to_check, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - if( trait_flag_to_check == "MUTATION_THRESHOLD" ) { - return actor->crossed_threshold(); - } - return actor->has_trait_flag( trait_flag_to_check ); - }; -} - -template -void conditional_t::set_has_activity( bool is_npc ) -{ - condition = [is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - return d.beta->has_activity(); - } else { - if( !actor->activity.is_null() ) { - return true; - } - } - return false; - }; -} - -template -void conditional_t::set_npc_has_class( JsonObject &jo ) -{ - const std::string &class_to_check = jo.get_string( "npc_has_class" ); - condition = [class_to_check]( const T & d ) { - return d.beta->myclass == npc_class_id( class_to_check ); - }; -} - -template -void conditional_t::set_u_has_mission( JsonObject &jo ) -{ - const std::string &mission = jo.get_string( "u_has_mission" ); - condition = [mission]( const T & ) { - for( auto miss_it : g->u.get_active_missions() ) { - if( miss_it->mission_id() == mission_type_id( mission ) ) { - return true; - } - } - return false; - }; -} - -template -void conditional_t::set_has_strength( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const int min_strength = jo.get_int( member ); - condition = [min_strength, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->str_cur >= min_strength; - }; -} - -template -void conditional_t::set_has_dexterity( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const int min_dexterity = jo.get_int( member ); - condition = [min_dexterity, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->dex_cur >= min_dexterity; - }; -} - -template -void conditional_t::set_has_intelligence( JsonObject &jo, const std::string &member, - bool is_npc ) -{ - const int min_intelligence = jo.get_int( member ); - condition = [min_intelligence, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->int_cur >= min_intelligence; - }; -} - -template -void conditional_t::set_has_perception( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const int min_perception = jo.get_int( member ); - condition = [min_perception, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->per_cur >= min_perception; - }; -} - -template -void conditional_t::set_is_wearing( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string &item_id = jo.get_string( member ); - condition = [item_id, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->is_wearing( item_id ); - }; -} - -template -void conditional_t::set_has_item( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string &item_id = jo.get_string( member ); - condition = [item_id, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->charges_of( item_id ) > 0 || actor->has_amount( item_id, 1 ); - }; -} - -template -void conditional_t::set_has_items( JsonObject &jo, const std::string &member, bool is_npc ) -{ - JsonObject has_items = jo.get_object( member ); - if( !has_items.has_string( "item" ) || !has_items.has_int( "count" ) ) { - condition = []( const T & ) { - return false; - }; - } else { - const std::string 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; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->has_charges( item_id, count ) || actor->has_amount( item_id, count ); - }; - } -} - -template -void conditional_t::set_has_item_category( JsonObject &jo, const std::string &member, - bool is_npc ) -{ - const std::string category_id = jo.get_string( member ); - - size_t count = 1; - if( jo.has_int( "count" ) ) { - int tcount = jo.get_int( "count" ); - if( tcount > 1 && tcount < INT_MAX ) { - count = static_cast( tcount ); - } - } - - condition = [category_id, count, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - const auto items_with = actor->items_with( [category_id]( const item & it ) { - return it.get_category().id() == category_id; - } ); - return items_with.size() >= count; - }; -} - -template -void conditional_t::set_has_bionics( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string bionics_id = jo.get_string( member ); - condition = [bionics_id, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - if( bionics_id == "ANY" ) { - return actor->num_bionics() > 0 || actor->max_power_level > 0; - } - return actor->has_bionic( bionic_id( bionics_id ) ); - }; -} - - -template -void conditional_t::set_has_effect( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string &effect_id = jo.get_string( member ); - condition = [effect_id, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->has_effect( efftype_id( effect_id ) ); - }; -} - -template -void conditional_t::set_need( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string &need = jo.get_string( member ); - int amount = 0; - if( jo.has_int( "amount" ) ) { - amount = jo.get_int( "amount" ); - } else if( jo.has_string( "level" ) ) { - const std::string &level = jo.get_string( "level" ); - auto flevel = fatigue_level_strs.find( level ); - if( flevel != fatigue_level_strs.end() ) { - amount = static_cast( flevel->second ); - } - } - condition = [need, amount, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return ( actor->get_fatigue() > amount && need == "fatigue" ) || - ( actor->get_hunger() > amount && need == "hunger" ) || - ( actor->get_thirst() > amount && need == "thirst" ); - }; -} - -template -void conditional_t::set_at_om_location( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string &location = jo.get_string( member ); - condition = [location, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - const tripoint omt_pos = actor->global_omt_location(); - oter_id &omt_ref = overmap_buffer.ter( omt_pos ); - - if( location == "FACTION_CAMP_ANY" ) { - cata::optional bcp = overmap_buffer.find_camp( omt_pos.xy() ); - if( bcp ) { - return true; - } - // legacy check - const std::string &omt_str = omt_ref.id().c_str(); - return omt_str.find( "faction_base_camp" ) != std::string::npos; - } else { - return omt_ref == oter_id( location ); - } - }; -} - -template -void conditional_t::set_has_var( JsonObject &jo, const std::string &member, bool is_npc ) -{ - const std::string var_name = get_talk_varname( jo, member, false ); - const std::string &value = jo.get_string( "value" ); - condition = [var_name, value, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->get_value( var_name ) == value; - }; -} - -template -void conditional_t::set_npc_role_nearby( JsonObject &jo ) -{ - const std::string &role = jo.get_string( "npc_role_nearby" ); - condition = [role]( const T & d ) { - const std::vector available = g->get_npcs_if( [&]( const npc & guy ) { - return d.alpha->posz() == guy.posz() && guy.companion_mission_role_id == role && - ( rl_dist( d.alpha->pos(), guy.pos() ) <= 48 ); - } ); - return !available.empty(); - }; -} - -template -void conditional_t::set_npc_allies( JsonObject &jo ) -{ - const unsigned int min_allies = jo.get_int( "npc_allies" ); - condition = [min_allies]( const T & ) { - return g->allies().size() >= min_allies; - }; -} - -template -void conditional_t::set_u_has_cash( JsonObject &jo ) -{ - const int min_cash = jo.get_int( "u_has_cash" ); - condition = [min_cash]( const T & d ) { - return d.alpha->cash >= min_cash; - }; -} - -template -void conditional_t::set_u_are_owed( JsonObject &jo ) -{ - const int min_debt = jo.get_int( "u_are_owed" ); - condition = [min_debt]( const T & d ) { - return d.beta->op_of_u.owed >= min_debt; - }; -} - -template -void conditional_t::set_npc_aim_rule( JsonObject &jo ) -{ - const std::string &setting = jo.get_string( "npc_aim_rule" ); - condition = [setting]( const T & d ) { - auto rule = aim_rule_strs.find( setting ); - if( rule != aim_rule_strs.end() ) { - return d.beta->rules.aim == rule->second; - } - return false; - }; -} - -template -void conditional_t::set_npc_engagement_rule( JsonObject &jo ) -{ - const std::string &setting = jo.get_string( "npc_engagement_rule" ); - condition = [setting]( const T & d ) { - auto rule = combat_engagement_strs.find( setting ); - if( rule != combat_engagement_strs.end() ) { - return d.beta->rules.engagement == rule->second; - } - return false; - }; -} - -template -void conditional_t::set_npc_cbm_reserve_rule( JsonObject &jo ) -{ - const std::string &setting = jo.get_string( "npc_cbm_reserve_rule" ); - condition = [setting]( const T & d ) { - auto rule = cbm_reserve_strs.find( setting ); - if( rule != cbm_reserve_strs.end() ) { - return d.beta->rules.cbm_reserve == rule->second; - } - return false; - }; -} - -template -void conditional_t::set_npc_cbm_recharge_rule( JsonObject &jo ) -{ - const std::string &setting = jo.get_string( "npc_cbm_recharge_rule" ); - condition = [setting]( const T & d ) { - auto rule = cbm_recharge_strs.find( setting ); - if( rule != cbm_recharge_strs.end() ) { - return d.beta->rules.cbm_recharge == rule->second; - } - return false; - }; -} - -template -void conditional_t::set_npc_rule( JsonObject &jo ) -{ - std::string rule = jo.get_string( "npc_rule" ); - condition = [rule]( const T & d ) { - auto flag = ally_rule_strs.find( rule ); - if( flag != ally_rule_strs.end() ) { - return d.beta->rules.has_flag( flag->second.rule ); - } - return false; - }; -} - -template -void conditional_t::set_npc_override( JsonObject &jo ) -{ - std::string rule = jo.get_string( "npc_override" ); - condition = [rule]( const T & d ) { - auto flag = ally_rule_strs.find( rule ); - if( flag != ally_rule_strs.end() ) { - return d.beta->rules.has_override_enable( flag->second.rule ); - } - return false; - }; -} - -template -void conditional_t::set_days_since( JsonObject &jo ) -{ - const unsigned int days = jo.get_int( "days_since_cataclysm" ); - condition = [days]( const T & ) { - return to_turn( calendar::turn ) >= calendar::start_of_cataclysm + 1_days * days; - }; -} - -template -void conditional_t::set_is_season( JsonObject &jo ) -{ - std::string season_name = jo.get_string( "is_season" ); - condition = [season_name]( const T & ) { - const auto season = season_of_year( calendar::turn ); - return ( season == SPRING && season_name == "spring" ) || - ( season == SUMMER && season_name == "summer" ) || - ( season == AUTUMN && season_name == "autumn" ) || - ( season == WINTER && season_name == "winter" ); - }; -} - -template -void conditional_t::set_mission_goal( JsonObject &jo ) -{ - std::string mission_goal_str = jo.get_string( "mission_goal" ); - condition = [mission_goal_str]( const T & d ) { - mission *miss = d.beta->chatbin.mission_selected; - const auto mgoal = mission_goal_strs.find( mission_goal_str ); - if( !miss || mgoal == mission_goal_strs.end() ) { - return false; - } - return miss->get_type().goal == mgoal->second; - }; -} - -template -void conditional_t::set_is_gender( bool is_male, bool is_npc ) -{ - condition = [is_male, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->male == is_male; - }; -} - -template -void conditional_t::set_no_assigned_mission() -{ - condition = []( const T & d ) { - return d.missions_assigned.empty(); - }; -} - -template -void conditional_t::set_has_assigned_mission() -{ - condition = []( const T & d ) { - return d.missions_assigned.size() == 1; - }; -} - -template -void conditional_t::set_has_many_assigned_missions() -{ - condition = []( const T & d ) { - return d.missions_assigned.size() >= 2; - }; -} - -template -void conditional_t::set_no_available_mission() -{ - condition = []( const T & d ) { - return d.beta->chatbin.missions.empty(); - }; -} - -template -void conditional_t::set_has_available_mission() -{ - condition = []( const T & d ) { - return d.beta->chatbin.missions.size() == 1; - }; -} - -template -void conditional_t::set_has_many_available_missions() -{ - condition = []( const T & d ) { - return d.beta->chatbin.missions.size() >= 2; - }; -} - -template -void conditional_t::set_mission_complete() -{ - condition = []( const T & d ) { - mission *miss = d.beta->chatbin.mission_selected; - if( !miss ) { - return false; - } - return miss->is_complete( d.beta->getID() ); - }; -} - -template -void conditional_t::set_mission_incomplete() -{ - condition = []( const T & d ) { - mission *miss = d.beta->chatbin.mission_selected; - if( !miss ) { - return false; - } - return !miss->is_complete( d.beta->getID() ); - }; -} - -template -void conditional_t::set_npc_available() -{ - condition = []( const T & d ) { - return !d.beta->has_effect( effect_currently_busy ); - }; -} - -template -void conditional_t::set_npc_following() -{ - condition = []( const T & d ) { - return d.beta->is_following(); - }; -} - -template -void conditional_t::set_npc_friend() -{ - condition = []( const T & d ) { - return d.beta->is_friendly( g->u ); - }; -} - -template -void conditional_t::set_npc_hostile() -{ - condition = []( const T & d ) { - return d.beta->is_enemy(); - }; -} - -template -void conditional_t::set_npc_train_skills() -{ - condition = []( const T & d ) { - return !d.beta->skills_offered_to( *d.alpha ).empty(); - }; -} - -template -void conditional_t::set_npc_train_styles() -{ - condition = []( const T & d ) { - return !d.beta->styles_offered_to( *d.alpha ).empty(); - }; -} - -template -void conditional_t::set_at_safe_space() -{ - condition = []( const T & d ) { - return overmap_buffer.is_safe( d.beta->global_omt_location() ); - }; -} - -template -void conditional_t::set_can_stow_weapon( bool is_npc ) -{ - condition = [is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return !actor->unarmed_attack() && actor->can_pickVolume( actor->weapon ); - }; -} - -template -void conditional_t::set_has_weapon( bool is_npc ) -{ - condition = [is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return !actor->unarmed_attack(); - }; -} - -template -void conditional_t::set_is_driving( bool is_npc ) -{ - condition = [is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - if( const optional_vpart_position vp = g->m.veh_at( actor->pos() ) ) { - return vp->vehicle().is_moving() && vp->vehicle().player_in_control( *actor ); - } - return false; - }; -} - -template -void conditional_t::set_has_stolen_item( bool is_npc ) -{ - ( void )is_npc; - condition = []( const T & d ) { - player *actor = d.alpha; - npc &p = *d.beta; - bool found_in_inv = false; - for( auto &elem : actor->inv_dump() ) { - if( elem->get_old_owner() ) { - if( elem->get_old_owner()->id.str() == p.my_fac->id.str() ) { - found_in_inv = true; - } - } - } - return found_in_inv; - }; -} - -template -void conditional_t::set_is_day() -{ - condition = []( const T & ) { - return !is_night( calendar::turn ); - }; -} - -template -void conditional_t::set_is_outside() -{ - condition = []( const T & d ) { - const tripoint pos = g->m.getabs( d.beta->pos() ); - return !g->m.has_flag( TFLAG_INDOORS, pos ); - }; -} - -template -void conditional_t::set_u_has_camp() -{ - condition = []( const T & ) { - return !g->u.camps.empty(); - }; -} - -template -void conditional_t::set_has_pickup_list() -{ - condition = []( const T & d ) { - return !d.beta->rules.pickup_whitelist->empty(); - }; -} - -template -void conditional_t::set_is_by_radio() -{ - condition = []( const T & d ) { - return d.by_radio; - }; -} - -template -void conditional_t::set_has_reason() -{ - condition = []( const T & d ) { - return !d.reason.empty(); - }; -} - -template -void conditional_t::set_has_skill( JsonObject &jo, const std::string &member, bool is_npc ) -{ - JsonObject has_skill = jo.get_object( member ); - if( !has_skill.has_string( "skill" ) || !has_skill.has_int( "level" ) ) { - condition = []( const T & ) { - return false; - }; - } else { - const skill_id skill( has_skill.get_string( "skill" ) ); - int level = has_skill.get_int( "level" ); - condition = [skill, level, is_npc]( const T & d ) { - player *actor = d.alpha; - if( is_npc ) { - actor = dynamic_cast( d.beta ); - } - return actor->get_skill_level( skill ) >= level; - }; - } -} - -template -conditional_t::conditional_t( JsonObject jo ) -{ - // improve the clarity of NPC setter functions - const bool is_npc = true; - bool found_sub_member = false; - const auto parse_array = []( JsonObject jo, const std::string & type ) { - std::vector conditionals; - JsonArray ja = jo.get_array( type ); - while( ja.has_more() ) { - if( ja.test_string() ) { - conditional_t type_condition( ja.next_string() ); - conditionals.emplace_back( type_condition ); - } else if( ja.test_object() ) { - conditional_t type_condition( ja.next_object() ); - conditionals.emplace_back( type_condition ); - } else { - ja.skip_value(); - } - } - return conditionals; - }; - if( jo.has_array( "and" ) ) { - std::vector and_conditionals = parse_array( jo, "and" ); - found_sub_member = true; - condition = [and_conditionals]( const T & d ) { - for( const auto &cond : and_conditionals ) { - if( !cond( d ) ) { - return false; - } - } - return true; - }; - } else if( jo.has_array( "or" ) ) { - std::vector or_conditionals = parse_array( jo, "or" ); - found_sub_member = true; - condition = [or_conditionals]( const T & d ) { - for( const auto &cond : or_conditionals ) { - if( cond( d ) ) { - return true; - } - } - return false; - }; - } else if( jo.has_object( "not" ) ) { - const conditional_t sub_condition = conditional_t( jo.get_object( "not" ) ); - found_sub_member = true; - condition = [sub_condition]( const T & d ) { - return !sub_condition( d ); - }; - } else if( jo.has_string( "not" ) ) { - const conditional_t sub_condition = conditional_t( jo.get_string( "not" ) ); - found_sub_member = true; - condition = [sub_condition]( const T & d ) { - return !sub_condition( d ); - }; - } - if( !found_sub_member ) { - for( const std::string &sub_member : dialogue_data::complex_conds ) { - if( jo.has_member( sub_member ) ) { - found_sub_member = true; - break; - } - } - } - if( jo.has_member( "u_has_any_trait" ) ) { - set_has_any_trait( jo, "u_has_any_trait" ); - } else if( jo.has_member( "npc_has_any_trait" ) ) { - set_has_any_trait( jo, "npc_has_any_trait", true ); - } else if( jo.has_member( "u_has_trait" ) ) { - set_has_trait( jo, "u_has_trait" ); - } else if( jo.has_member( "npc_has_trait" ) ) { - set_has_trait( jo, "npc_has_trait", true ); - } else if( jo.has_member( "u_has_trait_flag" ) ) { - set_has_trait_flag( jo, "u_has_trait_flag" ); - } else if( jo.has_member( "npc_has_trait_flag" ) ) { - set_has_trait_flag( jo, "npc_has_trait_flag", true ); - } else if( jo.has_member( "npc_has_class" ) ) { - set_npc_has_class( jo ); - } else if( jo.has_string( "npc_has_activity" ) ) { - set_has_activity( is_npc ); - } else if( jo.has_string( "u_has_mission" ) ) { - set_u_has_mission( jo ); - } else if( jo.has_int( "u_has_strength" ) ) { - set_has_strength( jo, "u_has_strength" ); - } else if( jo.has_int( "npc_has_strength" ) ) { - set_has_strength( jo, "npc_has_strength", is_npc ); - } else if( jo.has_int( "u_has_dexterity" ) ) { - set_has_dexterity( jo, "u_has_dexterity" ); - } else if( jo.has_int( "npc_has_dexterity" ) ) { - set_has_dexterity( jo, "npc_has_dexterity", is_npc ); - } else if( jo.has_int( "u_has_intelligence" ) ) { - set_has_intelligence( jo, "u_has_intelligence" ); - } else if( jo.has_int( "npc_has_intelligence" ) ) { - set_has_intelligence( jo, "npc_has_intelligence", is_npc ); - } else if( jo.has_int( "u_has_perception" ) ) { - set_has_perception( jo, "u_has_perception" ); - } else if( jo.has_int( "npc_has_perception" ) ) { - set_has_perception( jo, "npc_has_perception", is_npc ); - } else if( jo.has_string( "u_is_wearing" ) ) { - set_is_wearing( jo, "u_is_wearing" ); - } else if( jo.has_string( "npc_is_wearing" ) ) { - set_is_wearing( jo, "npc_is_wearing", is_npc ); - } else if( jo.has_string( "u_has_item" ) ) { - set_has_item( jo, "u_has_item" ); - } else if( jo.has_string( "npc_has_item" ) ) { - set_has_item( jo, "npc_has_item", is_npc ); - } else if( jo.has_member( "u_has_items" ) ) { - set_has_items( jo, "u_has_items" ); - } else if( jo.has_member( "npc_has_items" ) ) { - set_has_items( jo, "npc_has_items", is_npc ); - } else if( jo.has_string( "u_has_item_category" ) ) { - set_has_item_category( jo, "u_has_item_category" ); - } else if( jo.has_string( "npc_has_item_category" ) ) { - set_has_item_category( jo, "npc_has_item_category", is_npc ); - } else if( jo.has_string( "u_has_bionics" ) ) { - set_has_bionics( jo, "u_has_bionics" ); - } else if( jo.has_string( "npc_has_bionics" ) ) { - set_has_bionics( jo, "npc_has_bionics", is_npc ); - } else if( jo.has_string( "u_has_effect" ) ) { - set_has_effect( jo, "u_has_effect" ); - } else if( jo.has_string( "npc_has_effect" ) ) { - set_has_effect( jo, "npc_has_effect", is_npc ); - } else if( jo.has_string( "u_need" ) ) { - set_need( jo, "u_need" ); - } else if( jo.has_string( "npc_need" ) ) { - set_need( jo, "npc_need", is_npc ); - } else if( jo.has_string( "u_at_om_location" ) ) { - set_at_om_location( jo, "u_at_om_location" ); - } else if( jo.has_string( "npc_at_om_location" ) ) { - set_at_om_location( jo, "npc_at_om_location", is_npc ); - } else if( jo.has_string( "u_has_var" ) ) { - set_has_var( jo, "u_has_var" ); - } else if( jo.has_string( "npc_has_var" ) ) { - set_has_var( jo, "npc_has_var", is_npc ); - } else if( jo.has_string( "npc_role_nearby" ) ) { - set_npc_role_nearby( jo ); - } else if( jo.has_int( "npc_allies" ) ) { - set_npc_allies( jo ); - } else if( jo.has_int( "npc_service" ) ) { - set_npc_available(); - } else if( jo.has_int( "u_has_cash" ) ) { - set_u_has_cash( jo ); - } else if( jo.has_int( "u_are_owed" ) ) { - set_u_are_owed( jo ); - } else if( jo.has_string( "npc_aim_rule" ) ) { - set_npc_aim_rule( jo ); - } else if( jo.has_string( "npc_engagement_rule" ) ) { - set_npc_engagement_rule( jo ); - } else if( jo.has_string( "npc_cbm_reserve_rule" ) ) { - set_npc_cbm_reserve_rule( jo ); - } else if( jo.has_string( "npc_cbm_recharge_rule" ) ) { - set_npc_cbm_recharge_rule( jo ); - } else if( jo.has_string( "npc_rule" ) ) { - set_npc_rule( jo ); - } else if( jo.has_string( "npc_override" ) ) { - set_npc_override( jo ); - } else if( jo.has_int( "days_since_cataclysm" ) ) { - set_days_since( jo ); - } else if( jo.has_string( "is_season" ) ) { - set_is_season( jo ); - } else if( jo.has_string( "mission_goal" ) ) { - set_mission_goal( jo ); - } else if( jo.has_member( "u_has_skill" ) ) { - set_has_skill( jo, "u_has_skill" ); - } else if( jo.has_member( "npc_has_skill" ) ) { - set_has_skill( jo, "npc_has_skill", is_npc ); - } else { - for( const std::string &sub_member : dialogue_data::simple_string_conds ) { - if( jo.has_string( sub_member ) ) { - const conditional_t sub_condition( jo.get_string( sub_member ) ); - condition = [sub_condition]( const T & d ) { - return sub_condition( d ); - }; - found_sub_member = true; - break; - } - } - } - if( !found_sub_member ) { - jo.throw_error( "unrecognized condition in " + jo.str() ); - } -} - -template -conditional_t::conditional_t( const std::string &type ) -{ - const bool is_npc = true; - if( type == "u_male" ) { - set_is_gender( true ); - } else if( type == "npc_male" ) { - set_is_gender( true, is_npc ); - } else if( type == "u_female" ) { - set_is_gender( false ); - } else if( type == "npc_female" ) { - set_is_gender( false, is_npc ); - } else if( type == "has_no_assigned_mission" ) { - set_no_assigned_mission(); - } else if( type == "has_assigned_mission" ) { - set_has_assigned_mission(); - } else if( type == "has_many_assigned_missions" ) { - set_has_many_assigned_missions(); - } else if( type == "has_no_available_mission" ) { - set_no_available_mission(); - } else if( type == "has_available_mission" ) { - set_has_available_mission(); - } else if( type == "has_many_available_missions" ) { - set_has_many_available_missions(); - } else if( type == "mission_complete" ) { - set_mission_complete(); - } else if( type == "mission_incomplete" ) { - set_mission_incomplete(); - } else if( type == "npc_available" ) { - set_npc_available(); - } else if( type == "npc_following" ) { - set_npc_following(); - } else if( type == "npc_friend" ) { - set_npc_friend(); - } else if( type == "npc_hostile" ) { - set_npc_hostile(); - } else if( type == "npc_train_skills" ) { - set_npc_train_skills(); - } else if( type == "npc_train_styles" ) { - set_npc_train_styles(); - } else if( type == "at_safe_space" ) { - set_at_safe_space(); - } else if( type == "u_can_stow_weapon" ) { - set_can_stow_weapon(); - } else if( type == "npc_can_stow_weapon" ) { - set_can_stow_weapon( is_npc ); - } else if( type == "u_has_weapon" ) { - set_has_weapon(); - } else if( type == "npc_has_weapon" ) { - set_has_weapon( is_npc ); - } else if( type == "u_driving" ) { - set_is_driving(); - } else if( type == "npc_driving" ) { - set_is_driving( is_npc ); - } else if( type == "npc_has_activity" ) { - set_has_activity( is_npc ); - } else if( type == "is_day" ) { - set_is_day(); - } else if( type == "u_has_stolen_item" ) { - set_has_stolen_item( is_npc ); - } else if( type == "is_outside" ) { - set_is_outside(); - } else if( type == "u_has_camp" ) { - set_u_has_camp(); - } else if( type == "has_pickup_list" ) { - set_has_pickup_list(); - } else if( type == "is_by_radio" ) { - set_is_by_radio(); - } else if( type == "has_reason" ) { - set_has_reason(); - } else { - condition = []( const T & ) { - return false; - }; - } -} - -template struct conditional_t; -template void read_condition( JsonObject &jo, const std::string &member_name, - std::function &condition, bool default_val ); -template void read_condition( JsonObject &jo, - const std::string &member_name, - std::function &condition, bool default_val ); diff --git a/src/condition.h b/src/condition.h deleted file mode 100644 index 04c81d05073ad..0000000000000 --- a/src/condition.h +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once -#ifndef CONDITION_H -#define CONDITION_H - -#include -#include -#include -#include - -#include "json.h" - -class player; -class npc; -class mission; - -namespace dialogue_data -{ -const std::unordered_set simple_string_conds = { { - "u_male", "u_female", "npc_male", "npc_female", - "has_no_assigned_mission", "has_assigned_mission", "has_many_assigned_missions", - "has_no_available_mission", "has_available_mission", "has_many_available_missions", - "mission_complete", "mission_incomplete", - "npc_available", "npc_following", "npc_friend", "npc_hostile", - "npc_train_skills", "npc_train_styles", - "at_safe_space", "is_day", "npc_has_activity", "is_outside", "u_has_camp", - "u_can_stow_weapon", "npc_can_stow_weapon", "u_has_weapon", "npc_has_weapon", - "u_driving", "npc_driving", - "has_pickup_list", "is_by_radio", "has_reason" - } -}; -const std::unordered_set complex_conds = { { - "u_has_any_trait", "npc_has_any_trait", "u_has_trait", "npc_has_trait", - "u_has_trait_flag", "npc_has_trait_flag", "npc_has_class", "u_has_mission", - "u_has_strength", "npc_has_strength", "u_has_dexterity", "npc_has_dexterity", - "u_has_intelligence", "npc_has_intelligence", "u_has_perception", "npc_has_perception", - "u_is_wearing", "npc_is_wearing", "u_has_item", "npc_has_item", - "u_has_items", "npc_has_items", "u_has_item_category", "npc_has_item_category", - "u_has_bionics", "npc_has_bionics", "u_has_effect", "npc_has_effect", "u_need", "npc_need", - "u_at_om_location", "npc_at_om_location", "npc_role_nearby", "npc_allies", "npc_service", - "u_has_cash", "u_are_owed", - "npc_aim_rule", "npc_engagement_rule", "npc_rule", "npc_override", - "npc_cbm_reserve_rule", "npc_cbm_recharge_rule", - "days_since_cataclysm", "is_season", "mission_goal", "u_has_var", "npc_has_var", - "u_has_skill", "npc_has_skill" - } -}; -} // namespace dialogue_data - -std::string get_talk_varname( JsonObject jo, const std::string &member, bool check_value = true ); - -// the truly awful declaration for the conditional_t loading helper_function -template -void read_condition( JsonObject &jo, const std::string &member_name, - std::function &condition, bool default_val ); - -/** - * A condition for a response spoken by the player. - * This struct only adds the constructors which will load the data from json - * into a lambda, stored in the std::function object. - * Invoking the function operator with a dialog reference (so the function can access the NPC) - * returns whether the response is allowed. - */ -template -struct conditional_t { - private: - std::function condition; - - public: - conditional_t() = default; - conditional_t( const std::string &type ); - conditional_t( JsonObject jo ); - - void set_has_any_trait( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_trait( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_trait_flag( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_var( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_activity( bool is_npc = false ); - void set_npc_has_class( JsonObject &jo ); - void set_u_has_mission( JsonObject &jo ); - void set_has_strength( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_dexterity( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_intelligence( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_perception( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_is_wearing( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_item( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_items( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_item_category( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_bionics( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_has_effect( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_need( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_at_om_location( JsonObject &jo, const std::string &member, bool is_npc = false ); - void set_npc_role_nearby( JsonObject &jo ); - void set_npc_allies( JsonObject &jo ); - void set_u_has_cash( JsonObject &jo ); - void set_u_are_owed( JsonObject &jo ); - void set_npc_aim_rule( JsonObject &jo ); - void set_npc_engagement_rule( JsonObject &jo ); - void set_npc_cbm_reserve_rule( JsonObject &jo ); - void set_npc_cbm_recharge_rule( JsonObject &jo ); - void set_npc_rule( JsonObject &jo ); - void set_npc_override( JsonObject &jo ); - void set_days_since( JsonObject &jo ); - void set_is_season( JsonObject &jo ); - void set_mission_goal( JsonObject &jo ); - void set_no_assigned_mission(); - void set_has_assigned_mission(); - void set_has_many_assigned_missions(); - void set_no_available_mission(); - void set_has_available_mission(); - void set_has_many_available_missions(); - void set_mission_complete(); - void set_mission_incomplete(); - void set_npc_available(); - void set_npc_following(); - void set_npc_friend(); - void set_npc_hostile(); - void set_npc_train_skills(); - void set_npc_train_styles(); - void set_at_safe_space(); - void set_can_stow_weapon( bool is_npc = false ); - void set_has_weapon( bool is_npc = false ); - void set_is_driving( bool is_npc = false ); - void set_is_day(); - void set_has_stolen_item( bool is_npc = false ); - void set_is_outside(); - void set_is_by_radio(); - void set_u_has_camp(); - void set_has_pickup_list(); - void set_has_reason(); - void set_is_gender( bool is_male, bool is_npc = false ); - void set_has_skill( JsonObject &jo, const std::string &member, bool is_npc = false ); - - bool operator()( const T &d ) const { - if( !condition ) { - return false; - } - return condition( d ); - } -}; - -#endif diff --git a/src/construction.cpp b/src/construction.cpp index b1e02c613785a..79b449da60559 100644 --- a/src/construction.cpp +++ b/src/construction.cpp @@ -161,8 +161,8 @@ static void draw_grid( const catacurses::window &w, const int list_width ) draw_border( w ); mvwprintz( w, 0, 2, c_light_red, _( " Construction " ) ); // draw internal lines - mvwvline( w, point( list_width, 1 ), LINE_XOXO, getmaxy( w ) - 2 ); - mvwhline( w, point( 1, 2 ), LINE_OXOX, list_width ); + mvwvline( w, 1, list_width, LINE_XOXO, getmaxy( w ) - 2 ); + mvwhline( w, 2, 1, LINE_OXOX, list_width ); // draw intersections mvwputch( w, 0, list_width, c_light_gray, LINE_OXXX ); mvwputch( w, getmaxy( w ) - 1, list_width, c_light_gray, LINE_XXOX ); @@ -231,13 +231,13 @@ int construction_menu( bool blueprint ) const int w_width = std::max( FULL_SCREEN_WIDTH, TERMX * 2 / 3 ); const int w_y0 = ( TERMY > w_height ) ? ( TERMY - w_height ) / 2 : 0; const int w_x0 = ( TERMX > w_width ) ? ( TERMX - w_width ) / 2 : 0; - catacurses::window w_con = catacurses::newwin( w_height, w_width, point( w_x0, w_y0 ) ); + catacurses::window w_con = catacurses::newwin( w_height, w_width, w_y0, w_x0 ); const int w_list_width = static_cast( .375 * w_width ); const int w_list_height = w_height - 4; const int w_list_x0 = 1; catacurses::window w_list = catacurses::newwin( w_list_height, w_list_width, - point( w_x0 + w_list_x0, w_y0 + 3 ) ); + w_y0 + 3, w_x0 + w_list_x0 ); draw_grid( w_con, w_list_width + w_list_x0 ); @@ -315,7 +315,7 @@ int construction_menu( bool blueprint ) } isnew = false; // Erase existing tab selection & list of constructions - mvwhline( w_con, point_south_east, ' ', w_list_width ); + mvwhline( w_con, 1, 1, ' ', w_list_width ); werase( w_list ); // Print new tab listing mvwprintz( w_con, 1, 1, c_yellow, "<< %s >>", _( construct_cat[tabindex].name ) ); @@ -338,7 +338,7 @@ int construction_menu( bool blueprint ) const int pos_x = w_list_width + w_list_x0 + 2; const int available_window_width = w_width - pos_x - 1; for( int i = 1; i < w_height - 1; i++ ) { - mvwhline( w_con, point( pos_x, i ), ' ', available_window_width ); + mvwhline( w_con, i, pos_x, ' ', available_window_width ); } std::vector notes; @@ -947,10 +947,10 @@ bool construct::check_empty( const tripoint &p ) inline std::array get_orthogonal_neighbors( const tripoint &p ) { return {{ - p + point_north, - p + point_south, - p + point_west, - p + point_east + tripoint( p.x, p.y - 1, p.z ), + tripoint( p.x, p.y + 1, p.z ), + tripoint( p.x - 1, p.y, p.z ), + tripoint( p.x + 1, p.y, p.z ) }}; } @@ -1130,7 +1130,7 @@ void construct::done_deconstruct( const tripoint &p ) return; } if( t.deconstruct.deconstruct_above ) { - const tripoint top = p + tripoint_above; + const tripoint top = p + tripoint( 0, 0, 1 ); if( g->m.has_furn( top ) ) { add_msg( _( "That %s can not be dissasembled, since there is furniture above it." ), t.name() ); return; @@ -1167,7 +1167,7 @@ void construct::done_digormine_stair( const tripoint &p, bool dig ) const tripoint abs_pos = g->m.getabs( p ); const tripoint pos_sm = ms_to_sm_copy( abs_pos ); tinymap tmpmap; - tmpmap.load( tripoint( pos_sm.xy(), pos_sm.z - 1 ), false ); + tmpmap.load( pos_sm.x, pos_sm.y, pos_sm.z - 1, false ); const tripoint local_tmp = tmpmap.getlocal( abs_pos ); bool dig_muts = g->u.has_trait( trait_PAINRESIST_TROGLO ) || g->u.has_trait( trait_STOCKY_TROGLO ); @@ -1222,11 +1222,11 @@ void construct::done_mine_upstair( const tripoint &p ) const tripoint abs_pos = g->m.getabs( p ); const tripoint pos_sm = ms_to_sm_copy( abs_pos ); tinymap tmpmap; - tmpmap.load( tripoint( pos_sm.xy(), pos_sm.z + 1 ), false ); + tmpmap.load( pos_sm.x, pos_sm.y, pos_sm.z + 1, false ); const tripoint local_tmp = tmpmap.getlocal( abs_pos ); if( tmpmap.ter( local_tmp ) == t_lava ) { - g->m.ter_set( p.xy(), t_rock_floor ); // You dug a bit before discovering the problem + g->m.ter_set( p.x, p.y, t_rock_floor ); // You dug a bit before discovering the problem add_msg( m_warning, _( "The rock overhead feels hot. You decide *not* to mine magma." ) ); unroll_digging( 12 ); return; @@ -1238,7 +1238,7 @@ void construct::done_mine_upstair( const tripoint &p ) }; if( liquids.count( tmpmap.ter( local_tmp ) ) > 0 ) { - g->m.ter_set( p.xy(), t_rock_floor ); // You dug a bit before discovering the problem + g->m.ter_set( p.x, p.y, t_rock_floor ); // You dug a bit before discovering the problem add_msg( m_warning, _( "The rock above is rather damp. You decide *not* to mine water." ) ); unroll_digging( 12 ); return; @@ -1252,7 +1252,7 @@ void construct::done_mine_upstair( const tripoint &p ) g->u.mod_fatigue( 25 + no_mut_penalty ); add_msg( _( "You drill out a passage, heading for the surface." ) ); - g->m.ter_set( p.xy(), t_stairs_up ); // There's the bottom half + g->m.ter_set( p.x, p.y, t_stairs_up ); // There's the bottom half // We need to write to submap-local coordinates. tmpmap.ter_set( local_tmp, t_stairs_down ); // and there's the top half. tmpmap.save(); @@ -1260,7 +1260,7 @@ void construct::done_mine_upstair( const tripoint &p ) void construct::done_wood_stairs( const tripoint &p ) { - const tripoint top = p + tripoint_above; + const tripoint top = p + tripoint( 0, 0, 1 ); g->m.ter_set( top, ter_id( "t_wood_stairs_down" ) ); } diff --git a/src/coordinate_conversions.cpp b/src/coordinate_conversions.cpp index 2d772d5d41c74..33d5842e56ad1 100644 --- a/src/coordinate_conversions.cpp +++ b/src/coordinate_conversions.cpp @@ -85,11 +85,6 @@ point sm_to_om_remain( int &x, int &y ) return point( divide( x, 2 * OMAPX, x ), divide( y, 2 * OMAPY, y ) ); } -point omt_to_ms_copy( const point &p ) -{ - return point( p.x * 2 * SEEX, p.x * 2 * SEEY ); -} - point omt_to_sm_copy( int x, int y ) { return point( x * 2, y * 2 ); diff --git a/src/coordinate_conversions.h b/src/coordinate_conversions.h index d1de308e567c8..d30aab81ed704 100644 --- a/src/coordinate_conversions.h +++ b/src/coordinate_conversions.h @@ -140,8 +140,6 @@ inline void omt_to_sm( tripoint &p ) { omt_to_sm( p.x, p.y ); } -// overmap terrain to map square -point omt_to_ms_copy( const point &p ); // overmap to submap, basically: x *= 2 * OMAPX point om_to_sm_copy( int x, int y ); inline point om_to_sm_copy( const point &p ) @@ -179,10 +177,6 @@ inline point ms_to_sm_remain( point &p ) { return ms_to_sm_remain( p.x, p.y ); } -inline tripoint ms_to_sm_remain( tripoint &p ) -{ - return tripoint( ms_to_sm_remain( p.x, p.y ), p.z ); -} // submap back to map squares, basically: x *= SEEX // Note: this gives you the map square coordinates of the top-left corner // of the given submap. diff --git a/src/craft_command.cpp b/src/craft_command.cpp index fbc944dfa2273..5a30c55702c8d 100644 --- a/src/craft_command.cpp +++ b/src/craft_command.cpp @@ -58,7 +58,7 @@ usage string_to_enum( const std::string &data ) } template<> -std::string enum_to_string( usage data ) +const std::string enum_to_string( usage data ) { const auto iter = std::find_if( usage_map.begin(), usage_map.end(), [data]( const std::pair &kv ) { diff --git a/src/crafting.cpp b/src/crafting.cpp index 5343c992fe966..d5419b7f64656 100644 --- a/src/crafting.cpp +++ b/src/crafting.cpp @@ -497,7 +497,8 @@ bool player::can_start_craft( const recipe *rec, int batch_size ) if( adjusted_alternative.count > 0 ) { adjusted_alternative.count *= batch_size; // Only for the first 5% progress - adjusted_alternative.count = std::max( adjusted_alternative.count / 20, 1 ); + adjusted_alternative.count = adjusted_alternative.count / 20 + + adjusted_alternative.count % 20; } adjusted_alternatives.push_back( adjusted_alternative ); } @@ -1091,11 +1092,9 @@ void player::complete_craft( item &craft, const tripoint &loc ) // 10^4/10 (1,000) minutes, or about 16 hours of crafting it to learn. int difficulty = has_recipe( &making, crafting_inventory(), get_crafting_helpers() ); ///\EFFECT_INT increases chance to learn recipe when crafting from a book - const double learning_speed = - std::max( get_skill_level( making.skill_used ), 1 ) * - std::max( get_int(), 1 ); - const double time_to_learn = 1000 * 8 * pow( difficulty, 4 ) / learning_speed; - if( x_in_y( making.time, time_to_learn ) ) { + if( x_in_y( making.time, ( 1000 * 8 * + ( difficulty * difficulty * difficulty * difficulty ) ) / + ( std::max( get_skill_level( making.skill_used ), 1 ) * std::max( get_int(), 1 ) ) ) ) { learn_recipe( &making ); add_msg( m_good, _( "You memorized the recipe for %s!" ), making.result_name() ); @@ -1274,7 +1273,7 @@ bool player::can_continue_craft( item &craft ) if( adjusted_alternative.count > 0 ) { adjusted_alternative.count *= batch_size; // Only for the next 5% progress - adjusted_alternative.count = std::max( adjusted_alternative.count / 20, 1 ); + adjusted_alternative.count /= 20; } adjusted_alternatives.push_back( adjusted_alternative ); } diff --git a/src/crafting_gui.cpp b/src/crafting_gui.cpp index afc9ff6dc6bd8..48624f4c4e793 100644 --- a/src/crafting_gui.cpp +++ b/src/crafting_gui.cpp @@ -171,10 +171,10 @@ const recipe *select_crafting_recipe( int &batch_size ) const recipe *last_recipe = nullptr; - catacurses::window w_head = catacurses::newwin( headHeight, width, point( wStart, 0 ) ); - catacurses::window w_subhead = catacurses::newwin( subHeadHeight, width, point( wStart, 3 ) ); - catacurses::window w_data = catacurses::newwin( dataHeight, width, point( wStart, - headHeight + subHeadHeight ) ); + catacurses::window w_head = catacurses::newwin( headHeight, width, 0, wStart ); + catacurses::window w_subhead = catacurses::newwin( subHeadHeight, width, 3, wStart ); + catacurses::window w_data = catacurses::newwin( dataHeight, width, headHeight + subHeadHeight, + wStart ); int item_info_x = infoWidth; int item_info_y = dataHeight - 3; @@ -188,8 +188,8 @@ const recipe *select_crafting_recipe( int &batch_size ) item_info_height = 1; } - catacurses::window w_iteminfo = catacurses::newwin( item_info_y, item_info_x, - point( item_info_width, item_info_height ) ); + catacurses::window w_iteminfo = catacurses::newwin( item_info_y, item_info_x, item_info_height, + item_info_width ); list_circularizer tab( craft_cat_list ); list_circularizer subtab( craft_subcat_list[tab.cur()] ); @@ -330,6 +330,14 @@ const recipe *select_crafting_recipe( int &batch_size ) break; } + case 'h': { + filtered_recipes = filtered_recipes.intersection( available_recipes ); + if( query_is_yes( qry_filter_str ) ) { + show_hidden = true; + } + break; + } + default: current.clear(); } @@ -733,7 +741,8 @@ const recipe *select_crafting_recipe( int &batch_size ) { 's', _( "cooking" ), _( "any skill used to craft" ) }, { 'Q', _( "fine bolt turning" ), _( "quality required to craft" ) }, { 't', _( "soldering iron" ), _( "tool required to craft" ) }, - { 'm', _( "yes" ), _( "recipes which are memorized or not" ) }, + { 'h', _( "yes" ), _( "recipes which are hidden or not" ) }, + { 'm', _( "no" ), _( "recipes which are memorized or not" ) }, }; int max_example_length = 0; for( const auto &prefix : prefixes ) { @@ -892,7 +901,8 @@ std::string peek_related_recipe( const recipe *current, const recipe_subset &ava rel_menu.settext( _( "Related recipes:" ) ); rel_menu.query(); if( rel_menu.ret != UILIST_CANCEL ) { - return rel_menu.entries[rel_menu.ret].txt.substr( strlen( "─ " ) ); + std::wstring wstr_recipe_name = utf8_to_wstr( rel_menu.entries[ rel_menu.ret ].txt ); + return wstr_to_utf8( wstr_recipe_name.substr( 2 ) ); // 2 = prefix length } return ""; diff --git a/src/crash.cpp b/src/crash.cpp index 3f0c3544e7677..bdef8ae81ed60 100644 --- a/src/crash.cpp +++ b/src/crash.cpp @@ -254,7 +254,7 @@ extern "C" { << "\nMESSAGE: " << msg; #if defined(TILES) if( SDL_ShowSimpleMessageBox( SDL_MESSAGEBOX_ERROR, "Error", - log_text.str().c_str(), nullptr ) != 0 ) { + log_text.str().c_str(), NULL ) != 0 ) { log_text << "Error creating SDL message box: " << SDL_GetError() << '\n'; } #endif diff --git a/src/creature.cpp b/src/creature.cpp index 87e1d137d5ceb..df28429b40e42 100644 --- a/src/creature.cpp +++ b/src/creature.cpp @@ -174,10 +174,6 @@ bool Creature::is_dangerous_field( const field_entry &entry ) const bool Creature::sees( const Creature &critter ) const { - if( &critter == this ) { - return true; // Can always see ourselves. - } - if( critter.is_hallucination() ) { // hallucinations are imaginations of the player character, npcs or monsters don't hallucinate. // Invisible hallucinations would be pretty useless (nobody would see them at all), therefor @@ -1539,9 +1535,9 @@ units::mass Creature::weight_capacity() const /* * Drawing-related functions */ -void Creature::draw( const catacurses::window &w, const point &origin, bool inverted ) const +void Creature::draw( const catacurses::window &w, int origin_x, int origin_y, bool inverted ) const { - draw( w, tripoint( origin, posz() ), inverted ); + draw( w, tripoint( origin_x, origin_y, posz() ), inverted ); } void Creature::draw( const catacurses::window &w, const tripoint &origin, bool inverted ) const @@ -1585,7 +1581,7 @@ void Creature::check_dead_state() } } -std::string Creature::attitude_raw_string( Attitude att ) +const std::string Creature::attitude_raw_string( Attitude att ) { switch( att ) { case Creature::A_HOSTILE: diff --git a/src/creature.h b/src/creature.h index 45edc38ac5032..7171eadaf2550 100644 --- a/src/creature.h +++ b/src/creature.h @@ -27,7 +27,6 @@ namespace catacurses { class window; } // namespace catacurses -class avatar; class field; class field_entry; class JsonObject; @@ -35,7 +34,6 @@ class JsonOut; struct tripoint; class time_duration; class player; -struct point; enum damage_type : int; enum m_flag : int; @@ -90,12 +88,6 @@ class Creature virtual const player *as_player() const { return nullptr; } - virtual avatar *as_avatar() { - return nullptr; - } - virtual const avatar *as_avatar() const { - return nullptr; - } /** return the direction the creature is facing, for sdl horizontal flip **/ FacingDirection facing = FD_RIGHT; /** Returns true for non-real Creatures used temporarily; i.e. fake NPC's used for turret fire. */ @@ -140,7 +132,7 @@ class Creature /** * Simplified attitude string for unlocalized needs. */ - static std::string attitude_raw_string( Attitude att ); + static const std::string attitude_raw_string( Attitude att ); /** * Creature Attitude as String and color @@ -492,7 +484,7 @@ class Creature int moves; bool underwater; - void draw( const catacurses::window &w, const point &origin, bool inverted ) const; + void draw( const catacurses::window &w, int origin_x, int origin_y, bool inverted ) const; void draw( const catacurses::window &w, const tripoint &origin, bool inverted ) const; /** * Write information about this creature. diff --git a/src/cursesdef.h b/src/cursesdef.h index 47cff82879ae7..a389b15eaeea7 100644 --- a/src/cursesdef.h +++ b/src/cursesdef.h @@ -6,7 +6,6 @@ #include #include -#include "point.h" #include "string_formatter.h" class nc_color; @@ -91,20 +90,20 @@ using attr_t = unsigned short; extern window stdscr; -window newwin( int nlines, int ncols, const point &begin ); +window newwin( int nlines, int ncols, int begin_y, int begin_x ); void wborder( const window &win, chtype ls, chtype rs, chtype ts, chtype bs, chtype tl, chtype tr, 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 mvwhline( const window &win, int y, int x, chtype ch, int n ); +void mvwvline( const window &win, int y, int x, chtype ch, int n ); void wrefresh( const window &win ); void refresh(); void wredrawln( const window &win, int beg_line, int num_lines ); -void mvwprintw( const window &win, const point &p, const std::string &text ); +void mvwprintw( const window &win, int y, int x, const std::string &text ); template -inline void mvwprintw( const window &win, const point &p, const char *const fmt, +inline void mvwprintw( const window &win, const int y, const int x, const char *const fmt, Args &&... args ) { - return mvwprintw( win, p, string_format( fmt, std::forward( args )... ) ); + return mvwprintw( win, y, x, string_format( fmt, std::forward( args )... ) ); } void wprintw( const window &win, const std::string &text ); @@ -117,11 +116,11 @@ inline void wprintw( const window &win, const char *const fmt, Args &&... args ) void resizeterm(); void werase( const window &win ); void init_pair( short pair, base_color f, base_color b ); -void wmove( const window &win, const point &p ); +void wmove( const window &win, int y, int x ); void clear(); void erase(); void endwin(); -void mvwaddch( const window &win, const point &p, const chtype ch ); +void mvwaddch( const window &win, int y, int x, const chtype ch ); void wclear( const window &win ); void curs_set( int visibility ); void wattron( const window &win, const nc_color &attrs ); diff --git a/src/cursesport.cpp b/src/cursesport.cpp index d93075f21c0cc..5dc3f79788bc7 100644 --- a/src/cursesport.cpp +++ b/src/cursesport.cpp @@ -9,7 +9,6 @@ #include "cursesdef.h" #include "game_ui.h" #include "output.h" -#include "wcwidth.h" /** * Whoever cares, btw. not my base design, but this is how it works: @@ -36,25 +35,26 @@ catacurses::window catacurses::stdscr; std::array cata_cursesport::colorpairs; //storage for pair'ed colored -static bool wmove_internal( const catacurses::window &win_, const point &p ) +static bool wmove_internal( const catacurses::window &win_, const int y, const int x ) { if( !win_ ) { return false; } cata_cursesport::WINDOW &win = *win_.get(); - if( p.x >= win.width ) { + if( x >= win.width ) { return false; } - if( p.y >= win.height ) { + if( y >= win.height ) { return false; } - if( p.y < 0 ) { + if( y < 0 ) { return false; } - if( p.x < 0 ) { + if( x < 0 ) { return false; } - win.cursor = p; + win.cursorx = x; + win.cursory = y; return true; } @@ -62,29 +62,31 @@ static bool wmove_internal( const catacurses::window &win_, const point &p ) //Pseudo-Curses Functions * //*********************************** -catacurses::window catacurses::newwin( int nlines, int ncols, const point &begin ) +catacurses::window catacurses::newwin( int nlines, int ncols, int begin_y, int begin_x ) { - if( begin.y < 0 || begin.x < 0 ) { + if( begin_y < 0 || begin_x < 0 ) { return window(); //it's the caller's problem now (since they have logging functions declared) } // default values if( ncols == 0 ) { - ncols = TERMX - begin.x; + ncols = TERMX - begin_x; } if( nlines == 0 ) { - nlines = TERMY - begin.y; + nlines = TERMY - begin_y; } cata_cursesport::WINDOW *newwindow = new cata_cursesport::WINDOW(); - newwindow->pos = begin; + newwindow->x = begin_x; + newwindow->y = begin_y; newwindow->width = ncols; newwindow->height = nlines; newwindow->inuse = true; newwindow->draw = false; newwindow->BG = black; newwindow->FG = static_cast( 8 ); - newwindow->cursor = point_zero; + newwindow->cursorx = 0; + newwindow->cursory = 0; newwindow->line.resize( nlines ); for( int j = 0; j < nlines; j++ ) { @@ -98,9 +100,9 @@ catacurses::window catacurses::newwin( int nlines, int ncols, const point &begin inline int newline( cata_cursesport::WINDOW *win ) { - if( win->cursor.y < win->height - 1 ) { - win->cursor.y++; - win->cursor.x = 0; + if( win->cursory < win->height - 1 ) { + win->cursory++; + win->cursorx = 0; return 1; } return 0; @@ -110,9 +112,9 @@ inline int newline( cata_cursesport::WINDOW *win ) // end of a line has been reached, also sets the touched flag. inline void addedchar( cata_cursesport::WINDOW *win ) { - win->cursor.x++; - win->line[win->cursor.y].touched = true; - if( win->cursor.x >= win->width ) { + win->cursorx++; + win->line[win->cursory].touched = true; + if( win->cursorx >= win->width ) { newline( win ); } } @@ -129,102 +131,103 @@ void catacurses::wborder( const window &win_, chtype ls, chtype rs, chtype ts, c } int i = 0; int j = 0; - point old = win->cursor; //methods below move the cursor, save the value! + int oldx = win->cursorx; //methods below move the cursor, save the value! + int oldy = win->cursory; //methods below move the cursor, save the value! if( ls ) { for( j = 1; j < win->height - 1; j++ ) { - mvwaddch( win_, point( 0, j ), ls ); + mvwaddch( win_, j, 0, ls ); } } else { for( j = 1; j < win->height - 1; j++ ) { - mvwaddch( win_, point( 0, j ), LINE_XOXO ); + mvwaddch( win_, j, 0, LINE_XOXO ); } } if( rs ) { for( j = 1; j < win->height - 1; j++ ) { - mvwaddch( win_, point( win->width - 1, j ), rs ); + mvwaddch( win_, j, win->width - 1, rs ); } } else { for( j = 1; j < win->height - 1; j++ ) { - mvwaddch( win_, point( win->width - 1, j ), LINE_XOXO ); + mvwaddch( win_, j, win->width - 1, LINE_XOXO ); } } if( ts ) { for( i = 1; i < win->width - 1; i++ ) { - mvwaddch( win_, point( i, 0 ), ts ); + mvwaddch( win_, 0, i, ts ); } } else { for( i = 1; i < win->width - 1; i++ ) { - mvwaddch( win_, point( i, 0 ), LINE_OXOX ); + mvwaddch( win_, 0, i, LINE_OXOX ); } } if( bs ) { for( i = 1; i < win->width - 1; i++ ) { - mvwaddch( win_, point( i, win->height - 1 ), bs ); + mvwaddch( win_, win->height - 1, i, bs ); } } else { for( i = 1; i < win->width - 1; i++ ) { - mvwaddch( win_, point( i, win->height - 1 ), LINE_OXOX ); + mvwaddch( win_, win->height - 1, i, LINE_OXOX ); } } if( tl ) { - mvwaddch( win_, point_zero, tl ); + mvwaddch( win_, 0, 0, tl ); } else { - mvwaddch( win_, point_zero, LINE_OXXO ); + mvwaddch( win_, 0, 0, LINE_OXXO ); } if( tr ) { - mvwaddch( win_, point( win->width - 1, 0 ), tr ); + mvwaddch( win_, 0, win->width - 1, tr ); } else { - mvwaddch( win_, point( win->width - 1, 0 ), LINE_OOXX ); + mvwaddch( win_, 0, win->width - 1, LINE_OOXX ); } if( bl ) { - mvwaddch( win_, point( 0, win->height - 1 ), bl ); + mvwaddch( win_, win->height - 1, 0, bl ); } else { - mvwaddch( win_, point( 0, win->height - 1 ), LINE_XXOO ); + mvwaddch( win_, win->height - 1, 0, LINE_XXOO ); } if( br ) { - mvwaddch( win_, point( win->width - 1, win->height - 1 ), br ); + mvwaddch( win_, win->height - 1, win->width - 1, br ); } else { - mvwaddch( win_, point( win->width - 1, win->height - 1 ), LINE_XOOX ); + mvwaddch( win_, win->height - 1, win->width - 1, LINE_XOOX ); } //methods above move the cursor, put it back - wmove( win_, old ); + wmove( win_, oldy, oldx ); wattroff( win_, c_white ); } -void catacurses::mvwhline( const window &win, const point &p, chtype ch, int n ) +void catacurses::mvwhline( const window &win, int y, int x, chtype ch, int n ) { wattron( win, BORDER_COLOR ); if( ch ) { for( int i = 0; i < n; i++ ) { - mvwaddch( win, p + point( i, 0 ), ch ); + mvwaddch( win, y, x + i, ch ); } } else { for( int i = 0; i < n; i++ ) { - mvwaddch( win, p + point( i, 0 ), LINE_OXOX ); + mvwaddch( win, y, x + i, LINE_OXOX ); } } wattroff( win, BORDER_COLOR ); } -void catacurses::mvwvline( const window &win, const point &p, chtype ch, int n ) +void catacurses::mvwvline( const window &win, int y, int x, chtype ch, int n ) { wattron( win, BORDER_COLOR ); if( ch ) { for( int j = 0; j < n; j++ ) { - mvwaddch( win, p + point( 0, j ), ch ); + mvwaddch( win, y + j, x, ch ); } } else { for( int j = 0; j < n; j++ ) { - mvwaddch( win, p + point( 0, j ), LINE_XOXO ); + mvwaddch( win, y + j, x, LINE_XOXO ); } } wattroff( win, BORDER_COLOR ); @@ -267,7 +270,7 @@ inline int fill( const char *&fmt, int &len, std::string &target ) while( tmplen > 0 ) { const uint32_t ch = UTF8_getch( &tmpptr, &tmplen ); // UNKNOWN_UNICODE is most likely a (vertical/horizontal) line or similar - const int cw = ch == UNKNOWN_UNICODE ? 1 : mk_wcwidth( ch ); + const int cw = ( ch == UNKNOWN_UNICODE ) ? 1 : mk_wcwidth( ch ); if( cw > 0 && dlen > 0 ) { // Stop at the *second* non-zero-width character break; @@ -298,10 +301,10 @@ inline int fill( const char *&fmt, int &len, std::string &target ) // Returns nullptr if the cursor is invalid (outside the window). inline cata_cursesport::cursecell *cur_cell( cata_cursesport::WINDOW *win ) { - if( win->cursor.y >= win->height || win->cursor.x >= win->width ) { + if( win->cursory >= win->height || win->cursorx >= win->width ) { return nullptr; } - return &win->line[win->cursor.y].chars[win->cursor.x]; + return &( win->line[win->cursory].chars[win->cursorx] ); } //The core printing function, prints characters to the array, and sets colors @@ -316,17 +319,17 @@ inline void printstring( cata_cursesport::WINDOW *win, const std::string &text ) const char *fmt = text.c_str(); // avoid having an invalid cursorx, so that cur_cell will only return nullptr // when the bottom of the window has been reached. - if( win->cursor.x >= win->width ) { + if( win->cursorx >= win->width ) { if( newline( win ) == 0 ) { return; } } - if( win->cursor.y >= win->height || win->cursor.x >= win->width ) { + if( win->cursory >= win->height || win->cursorx >= win->width ) { return; } - if( win->cursor.x > 0 && win->line[win->cursor.y].chars[win->cursor.x].ch.empty() ) { + if( win->cursorx > 0 && win->line[win->cursory].chars[win->cursorx].ch.empty() ) { // start inside a wide character, erase it for good - win->line[win->cursor.y].chars[win->cursor.x - 1].ch.assign( " " ); + win->line[win->cursory].chars[win->cursorx - 1].ch.assign( " " ); } while( len > 0 ) { if( *fmt == '\n' ) { @@ -370,7 +373,7 @@ inline void printstring( cata_cursesport::WINDOW *win, const std::string &text ) addedchar( win ); // Have just written a wide-character into the last cell, it would not // display correctly if it was the last *cell* of a line - if( win->cursor.x == 1 ) { + if( win->cursorx == 1 ) { // So make that last cell a space, move the width // character in the first cell of the line seccell->ch = curcell->ch; @@ -383,7 +386,7 @@ inline void printstring( cata_cursesport::WINDOW *win, const std::string &text ) } } } - if( win->cursor.y >= win->height ) { + if( win->cursory >= win->height ) { return; } } @@ -401,9 +404,9 @@ void catacurses::wprintw( const window &win, const std::string &printbuf ) } //Prints a formatted string to a window, moves the cursor -void catacurses::mvwprintw( const window &win, const point &p, const std::string &printbuf ) +void catacurses::mvwprintw( const window &win, int y, int x, const std::string &printbuf ) { - if( !wmove_internal( win, p ) ) { + if( !wmove_internal( win, y, x ) ) { return; } return printstring( win.get(), printbuf ); @@ -429,7 +432,7 @@ void catacurses::werase( const window &win_ ) win->line[j].touched = true; } win->draw = true; - wmove( win_, point_zero ); + wmove( win_, 0, 0 ); // wrefresh(win); handle_additional_window_clear( win ); } @@ -448,13 +451,14 @@ void catacurses::init_pair( const short pair, const base_color f, const base_col } //moves the cursor in a window -void catacurses::wmove( const window &win_, const point &p ) +void catacurses::wmove( const window &win_, int y, int x ) { - if( !wmove_internal( win_, p ) ) { + if( !wmove_internal( win_, y, x ) ) { return; } cata_cursesport::WINDOW *const win = win_.get(); - win->cursor = p; + win->cursorx = x; + win->cursory = y; } //Clears the main window I'm not sure if its suppose to do this? @@ -464,9 +468,9 @@ void catacurses::clear() } //adds a character to the window -void catacurses::mvwaddch( const window &win, const point &p, const chtype ch ) +void catacurses::mvwaddch( const window &win, int y, int x, const chtype ch ) { - if( !wmove_internal( win, p ) ) { + if( !wmove_internal( win, y, x ) ) { return; } return waddch( win, ch ); @@ -482,7 +486,7 @@ void catacurses::wclear( const window &win_ ) return; } - for( int i = 0; i < win->pos.y && i < stdscr.get()->height; i++ ) { + for( int i = 0; i < win->y && i < stdscr.get()->height; i++ ) { stdscr.get()->line[i].touched = true; } } @@ -502,25 +506,25 @@ int catacurses::getmaxy( const window &win ) //gets the beginning x of a window (the x pos) int catacurses::getbegx( const window &win ) { - return win ? win.get()->pos.x : 0; + return win ? win.get()->x : 0; } //gets the beginning y of a window (the y pos) int catacurses::getbegy( const window &win ) { - return win ? win.get()->pos.y : 0; + return win ? win.get()->y : 0; } //gets the current cursor x position in a window int catacurses::getcurx( const window &win ) { - return win ? win.get()->cursor.x : 0; + return win ? win.get()->cursorx : 0; } //gets the current cursor y position in a window int catacurses::getcury( const window &win ) { - return win ? win.get()->cursor.y : 0; + return win ? win.get()->cursory : 0; } void catacurses::curs_set( int ) @@ -569,7 +573,7 @@ static constexpr int A_COLOR = 0x03fe0000; /* Color bits */ nc_color nc_color::from_color_pair_index( const int index ) { - return nc_color( index << 17 & A_COLOR ); + return nc_color( ( index << 17 ) & A_COLOR ); } int nc_color::to_color_pair_index() const diff --git a/src/cursesport.h b/src/cursesport.h index 9b1cd1c13cf4c..5d4ca571bca96 100644 --- a/src/cursesport.h +++ b/src/cursesport.h @@ -9,8 +9,6 @@ #include #include -#include "point.h" - namespace catacurses { class window; @@ -54,8 +52,10 @@ struct curseline { // The curses window struct struct WINDOW { - // Top-left corner of window - point pos; + // Left side of window + int x; + // Top side of window + int y; int width; int height; // Current foreground color from attron @@ -66,7 +66,8 @@ struct WINDOW { bool inuse; // Tracks if the window text has been changed bool draw; - point cursor; + int cursorx; + int cursory; std::vector line; }; diff --git a/src/damage.cpp b/src/damage.cpp index 44eab79f3c6aa..74e2eda4da19c 100644 --- a/src/damage.cpp +++ b/src/damage.cpp @@ -240,7 +240,7 @@ damage_type dt_by_name( const std::string &name ) return iter->second; } -std::string name_by_dt( const damage_type &dt ) +const std::string name_by_dt( const damage_type &dt ) { auto iter = dt_map.cbegin(); while( iter != dt_map.cend() ) { diff --git a/src/damage.h b/src/damage.h index cfdbd15d829f3..05dd0aab24ff3 100644 --- a/src/damage.h +++ b/src/damage.h @@ -104,7 +104,7 @@ struct resistances { }; damage_type dt_by_name( const std::string &name ); -std::string name_by_dt( const damage_type &dt ); +const std::string name_by_dt( const damage_type &dt ); const skill_id &skill_by_dt( damage_type dt ); diff --git a/src/debug.cpp b/src/debug.cpp index e038431483c87..1d1771488b414 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -291,7 +291,7 @@ static time_info get_time() noexcept const auto current = localtime( &tt ); return time_info { current->tm_hour, current->tm_min, current->tm_sec, - static_cast( lround( tv.tv_usec / 1000.0 ) ) + static_cast( tv.tv_usec / 1000.0 + 0.5 ) }; } #endif @@ -538,7 +538,7 @@ static cata::optional debug_compute_load_offset( // things (e.g. dladdr1 in GNU libdl) but this approach might // perhaps be more portable and adds no link-time dependencies. - uintptr_t offset_within_symbol = std::stoull( offset_within_symbol_s, nullptr, 0 ); + uintptr_t offset_within_symbol = std::stoull( offset_within_symbol_s, 0, 0 ); std::string string_sought = " " + symbol; // We need to try calling nm in two different ways, because one @@ -549,7 +549,7 @@ static cata::optional debug_compute_load_offset( cmd << nm_variant << ' ' << binary << " 2>&1"; FILE *nm = popen( cmd.str().c_str(), "re" ); if( !nm ) { - out << "\tbacktrace: popen(nm) failed: " << strerror( errno ) << "\n"; + out << "\tbacktrace: popen(nm) failed\n"; return cata::nullopt; } @@ -765,7 +765,7 @@ std::ostream &DebugLog( DebugLevel lev, DebugClass cl ) // Error are always logged, they are important, // Messages from D_MAIN come from debugmsg and are equally important. - if( ( lev & debugLevel && cl & debugClass ) || lev & D_ERROR || cl & D_MAIN ) { + if( ( ( lev & debugLevel ) && ( cl & debugClass ) ) || lev & D_ERROR || cl & D_MAIN ) { std::ostream &out = *debugFile.file; out << std::endl; out << get_time() << " "; diff --git a/src/debug_menu.cpp b/src/debug_menu.cpp index ab131867c4b9d..9e3364a3f54e4 100644 --- a/src/debug_menu.cpp +++ b/src/debug_menu.cpp @@ -139,7 +139,6 @@ enum debug_menu_index { DEBUG_DISPLAY_SCENTS_LOCAL, DEBUG_DISPLAY_TEMP, DEBUG_DISPLAY_VISIBILITY, - DEBUG_DISPLAY_RADIATION, DEBUG_LEARN_SPELLS, DEBUG_LEVEL_SPELLS }; @@ -197,7 +196,6 @@ static int info_uilist( bool display_all_entries = true ) { uilist_entry( DEBUG_DISPLAY_SCENTS_LOCAL, true, 's', _( "Toggle display local scents" ) ) }, { uilist_entry( DEBUG_DISPLAY_TEMP, true, 'T', _( "Toggle display temperature" ) ) }, { uilist_entry( DEBUG_DISPLAY_VISIBILITY, true, 'v', _( "Toggle display visibility" ) ) }, - { uilist_entry( DEBUG_DISPLAY_RADIATION, true, 'R', _( "Toggle display radiation" ) ) }, { uilist_entry( DEBUG_SHOW_MUT_CAT, true, 'm', _( "Show mutation category levels" ) ) }, { uilist_entry( DEBUG_BENCHMARK, true, 'b', _( "Draw benchmark (X seconds)" ) ) }, { uilist_entry( DEBUG_TRAIT_GROUP, true, 't', _( "Test trait group" ) ) }, @@ -746,7 +744,7 @@ void character_edit_menu() const auto all_missions = mission_type::get_all(); std::vector mts; for( size_t i = 0; i < all_missions.size(); i++ ) { - types.addentry( i, true, -1, all_missions[i].tname() ); + types.addentry( i, true, -1, all_missions[i].name ); mts.push_back( &all_missions[i] ); } @@ -763,8 +761,8 @@ void character_edit_menu() if( const cata::optional newpos = g->look_around() ) { p.setpos( *newpos ); if( p.is_player() ) { - if( p.is_mounted() ) { - p.mounted_creature->setpos( *newpos ); + if( p.has_effect( effect_riding ) && p.mounted_creature ) { + p.mounted_creature.get()->setpos( *newpos ); } g->update_map( g->u ); } @@ -1080,7 +1078,7 @@ void debug() s.c_str(), u.posx(), g->u.posy(), g->get_levx(), g->get_levy(), overmap_buffer.ter( g->u.global_omt_location() )->get_name(), - to_turns( calendar::turn - calendar::turn_zero ), + static_cast( calendar::turn ), get_option( "RANDOM_NPC" ) ? _( "NPCs are going to spawn." ) : _( "NPCs are NOT going to spawn." ), g->num_creatures() ); @@ -1292,7 +1290,8 @@ void debug() #if defined(TILES) // *INDENT-OFF* const point offset{ - u.view_offset.xy() + point( POSX - u.posx(), POSY - u.posy() ) + POSX - u.posx() + u.view_offset.x, + POSY - u.posy() + u.view_offset.y }; // *INDENT-ON* g->draw_ter(); auto sounds_to_draw = sounds::get_monster_sounds(); @@ -1320,19 +1319,16 @@ void debug() case DEBUG_DISPLAY_SCENTS_LOCAL: g->displaying_temperature = false; g->displaying_visibility = false; - g->displaying_radiation = false; g->displaying_scent = !g->displaying_scent; break; case DEBUG_DISPLAY_TEMP: g->displaying_scent = false; g->displaying_visibility = false; - g->displaying_radiation = false; g->displaying_temperature = !g->displaying_temperature; break; case DEBUG_DISPLAY_VISIBILITY: { g->displaying_scent = false; g->displaying_temperature = false; - g->displaying_radiation = false; g->displaying_visibility = !g->displaying_visibility; if( g->displaying_visibility ) { std::vector< tripoint > locations; @@ -1352,7 +1348,8 @@ void debug() creature_menu.callback = &callback; creature_menu.w_y = 0; creature_menu.query(); - if( creature_menu.ret >= 0 && static_cast( creature_menu.ret ) < locations.size() ) { + if( ( creature_menu.ret >= 0 ) && + ( static_cast( creature_menu.ret ) < locations.size() ) ) { Creature *creature = g->critter_at( locations[creature_menu.ret] ); g->displaying_visibility_creature = creature; } @@ -1361,15 +1358,8 @@ void debug() } } break; - case DEBUG_DISPLAY_RADIATION: { - g->displaying_scent = false; - g->displaying_temperature = false; - g->displaying_visibility = false; - g->displaying_radiation = !g->displaying_radiation; - } - break; case DEBUG_CHANGE_TIME: { - auto set_turn = [&]( const int initial, const time_duration factor, const char *const msg ) { + auto set_turn = [&]( const int initial, const int factor, const char *const msg ) { const auto text = string_input_popup() .title( msg ) .width( 20 ) @@ -1379,47 +1369,46 @@ void debug() if( text.empty() ) { return; } - const int new_value = std::atoi( text.c_str() ); - const time_duration offset = ( new_value - initial ) * factor; - // Arbitrary maximal value. - const time_point max = calendar::turn_zero + time_duration::from_turns( std::numeric_limits::max() / 2 ); - calendar::turn = std::max( std::min( max, calendar::turn + offset ), calendar::turn_zero ); + const int new_value = ( std::atoi( text.c_str() ) - initial ) * factor; + calendar::turn += std::max( std::min( INT_MAX / 2 - calendar::turn, new_value ), + -calendar::turn ); }; uilist smenu; - static const auto years = [](const time_point &p) { return static_cast( ( p - calendar::turn_zero ) / calendar::year_length() ); }; do { const int iSel = smenu.ret; smenu.reset(); - smenu.addentry( 0, true, 'y', "%s: %d", _( "year" ), years( calendar::turn ) ); + smenu.addentry( 0, true, 'y', "%s: %d", _( "year" ), calendar::turn.years() ); smenu.addentry( 1, !calendar::eternal_season(), 's', "%s: %d", _( "season" ), static_cast( season_of_year( calendar::turn ) ) ); smenu.addentry( 2, true, 'd', "%s: %d", _( "day" ), day_of_season( calendar::turn ) ); smenu.addentry( 3, true, 'h', "%s: %d", _( "hour" ), hour_of_day( calendar::turn ) ); smenu.addentry( 4, true, 'm', "%s: %d", _( "minute" ), minute_of_hour( calendar::turn ) ); - smenu.addentry( 5, true, 't', "%s: %d", _( "turn" ), to_turns( calendar::turn - calendar::turn_zero ) ); + smenu.addentry( 5, true, 't', "%s: %d", _( "turn" ), static_cast( calendar::turn ) ); smenu.selected = iSel; smenu.query(); switch( smenu.ret ) { case 0: - set_turn( years( calendar::turn ), calendar::year_length(), _( "Set year to?" ) ); + set_turn( calendar::turn.years(), to_turns( calendar::year_length() ), _( "Set year to?" ) ); break; case 1: - set_turn( static_cast( season_of_year( calendar::turn ) ), calendar::season_length(), _( "Set season to? (0 = spring)" ) ); + set_turn( static_cast( season_of_year( calendar::turn ) ), + to_turns( calendar::turn.season_length() ), + _( "Set season to? (0 = spring)" ) ); break; case 2: - set_turn( day_of_season( calendar::turn ), 1_days, _( "Set days to?" ) ); + set_turn( day_of_season( calendar::turn ), DAYS( 1 ), _( "Set days to?" ) ); break; case 3: - set_turn( hour_of_day( calendar::turn ), 1_hours, _( "Set hour to?" ) ); + set_turn( hour_of_day( calendar::turn ), HOURS( 1 ), _( "Set hour to?" ) ); break; case 4: - set_turn( minute_of_hour( calendar::turn ), 1_minutes, _( "Set minute to?" ) ); + set_turn( minute_of_hour( calendar::turn ), MINUTES( 1 ), _( "Set minute to?" ) ); break; case 5: - set_turn( to_turns( calendar::turn - calendar::turn_zero ), 1_turns, - string_format( _( "Set turn to? (One day is %i turns)" ), to_turns( 1_days ) ).c_str() ); + set_turn( calendar::turn, 1, + string_format( _( "Set turn to? (One day is %i turns)" ), static_cast( DAYS( 1 ) ) ).c_str() ); break; default: break; @@ -1487,7 +1476,7 @@ void debug() const tripoint where( ui::omap::choose_point() ); if( where != overmap::invalid_tripoint ) { tinymap mx_map; - mx_map.load( tripoint( where.x * 2, where.y * 2, where.z ), false ); + mx_map.load( where.x * 2, where.y * 2, where.z, false ); MapExtras::apply_function( mx_str[mx_choice], mx_map, where ); } } diff --git a/src/defense.cpp b/src/defense.cpp index 97147a6315e2f..b59c15fbba600 100644 --- a/src/defense.cpp +++ b/src/defense.cpp @@ -38,8 +38,8 @@ #define SPECIAL_WAVE_MIN 5 // Don't use a special wave with < X monsters #define SELCOL(n) (selection == (n) ? c_yellow : c_blue) -#define TOGCOL(n, b) (selection == (n) ? ((b) ? c_light_green : c_yellow) :\ - ((b) ? c_green : c_dark_gray)) +#define TOGCOL(n, b) (selection == (n) ? (b ? c_light_green : c_yellow) :\ + (b ? c_green : c_dark_gray)) #define NUMALIGN(n) ((n) >= 10000 ? 20 : ((n) >= 1000 ? 21 :\ ((n) >= 100 ? 22 : ((n) >= 10 ? 23 : 24)))) @@ -310,7 +310,7 @@ void defense_game::init_map() mx -= mx % 2; my -= my % 2; tinymap tm; - tm.generate( tripoint( mx, my, 0 ), calendar::turn ); + tm.generate( mx, my, 0, calendar::turn ); tm.clear_spawns(); tm.clear_traps(); tm.save(); @@ -495,8 +495,8 @@ 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 ) ); + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); int selection = 1; refresh_setup( w, selection ); @@ -915,7 +915,7 @@ void defense_game::caravan() signed total_price = 0; - catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, point_zero ); + catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, 0, 0 ); int offset = 0; int item_selected = 0; @@ -1023,7 +1023,7 @@ Press %s to buy everything in your cart, %s to buy nothing." ), total_price += caravan_price( g->u, item( tmp_itm, 0 ).price( false ) ); if( category_selected == CARAVAN_CART ) { // Find the item in its category for( int i = 1; i < NUM_CARAVAN_CATEGORIES; i++ ) { - for( size_t j = 0; j < items[i].size(); j++ ) { + for( unsigned j = 0; j < items[i].size(); j++ ) { if( items[i][j] == tmp_itm ) { item_count[i][j]++; } @@ -1055,7 +1055,7 @@ Press %s to buy everything in your cart, %s to buy nothing." ), total_price -= caravan_price( g->u, item( tmp_itm, 0 ).price( false ) ); if( category_selected == CARAVAN_CART ) { // Find the item in its category for( int i = 1; i < NUM_CARAVAN_CATEGORIES; i++ ) { - for( size_t j = 0; j < items[i].size(); j++ ) { + for( unsigned j = 0; j < items[i].size(); j++ ) { if( items[i][j] == tmp_itm ) { item_count[i][j]--; } @@ -1117,7 +1117,7 @@ Press %s to buy everything in your cart, %s to buy nothing." ), if( !cancel ) { g->u.cash -= total_price; bool dropped_some = false; - for( size_t i = 0; i < items[0].size(); i++ ) { + for( unsigned i = 0; i < items[0].size(); i++ ) { item tmp( items[0][i] ); tmp = tmp.in_its_container(); @@ -1424,15 +1424,15 @@ void defense_game::spawn_wave_monster( const mtype_id &type ) } else if( one_in( 2 ) ) { pnt = point( rng( HALF_MAPSIZE_X, HALF_MAPSIZE_X + SEEX ), rng( 1, SEEY ) ); if( one_in( 2 ) ) { - pnt = point( pnt.x, -pnt.y ) + point( 0, MAPSIZE_Y - 1 ); + pnt = point( pnt.x, MAPSIZE_Y - 1 - pnt.y ); } } else { pnt = point( rng( 1, SEEX ), rng( HALF_MAPSIZE_Y, HALF_MAPSIZE_Y + SEEY ) ); if( one_in( 2 ) ) { - pnt = point( -pnt.x, pnt.y ) + point( MAPSIZE_X - 1, 0 ); + pnt = point( MAPSIZE_X - 1 - pnt.x, pnt.y ); } } - if( g->is_empty( { pnt, g->get_levz() } ) ) { + if( g->is_empty( { pnt.x, pnt.y, g->get_levz() } ) ) { break; } if( tries++ == 1000 ) { @@ -1456,7 +1456,7 @@ std::string defense_game::special_wave_message( std::string name ) // Capitalize capitalize_letter( name ); - for( size_t i = 2; i < name.size(); i++ ) { + for( unsigned i = 2; i < name.size(); i++ ) { if( name[i - 1] == ' ' ) { capitalize_letter( name, i ); } diff --git a/src/descriptions.cpp b/src/descriptions.cpp index ba20fa1990b1a..e5baa2cd0cc37 100644 --- a/src/descriptions.cpp +++ b/src/descriptions.cpp @@ -44,8 +44,8 @@ void game::extended_description( const tripoint &p ) const int bottom = TERMY; const int width = right - left; const int height = bottom - top; - catacurses::window w_head = catacurses::newwin( top, TERMX, point_zero ); - catacurses::window w_main = catacurses::newwin( height, width, point( left, top ) ); + catacurses::window w_head = catacurses::newwin( top, TERMX, 0, 0 ); + catacurses::window w_main = catacurses::newwin( height, width, top, left ); // TODO: De-hardcode std::string header_message = _( "\ c to describe creatures, f to describe furniture, t to describe terrain, Esc/Enter to close." ); diff --git a/src/dialogue.h b/src/dialogue.h index 5e8ab7203fd93..b40c4e3cc1f75 100644 --- a/src/dialogue.h +++ b/src/dialogue.h @@ -14,7 +14,6 @@ #include "npc.h" #include "json.h" #include "string_id.h" -#include "translations.h" #include "material.h" #include "type_id.h" @@ -120,7 +119,6 @@ struct talk_effect_fun_t { void set_mapgen_update( JsonObject jo, const std::string &member ); 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 ); void operator()( const dialogue &d ) const { if( !function ) { @@ -191,8 +189,8 @@ struct talk_response { /* * Optional responses from a true/false test that defaults to true. */ - translation truetext; - translation falsetext; + std::string truetext; + std::string falsetext; std::function truefalse_condition; talk_trial trial; @@ -335,6 +333,125 @@ struct dynamic_line_t { } }; +namespace dialogue_data +{ +const std::unordered_set simple_string_conds = { { + "u_male", "u_female", "npc_male", "npc_female", + "has_no_assigned_mission", "has_assigned_mission", "has_many_assigned_missions", + "has_no_available_mission", "has_available_mission", "has_many_available_missions", + "mission_complete", "mission_incomplete", + "npc_available", "npc_following", "npc_friend", "npc_hostile", + "npc_train_skills", "npc_train_styles", + "at_safe_space", "is_day", "npc_has_activity", "is_outside", "u_has_camp", + "u_can_stow_weapon", "npc_can_stow_weapon", "u_has_weapon", "npc_has_weapon", + "u_driving", "npc_driving", + "has_pickup_list", "is_by_radio", "has_reason" + } +}; +const std::unordered_set complex_conds = { { + "u_has_any_trait", "npc_has_any_trait", "u_has_trait", "npc_has_trait", + "u_has_trait_flag", "npc_has_trait_flag", "npc_has_class", "u_has_mission", + "u_has_strength", "npc_has_strength", "u_has_dexterity", "npc_has_dexterity", + "u_has_intelligence", "npc_has_intelligence", "u_has_perception", "npc_has_perception", + "u_is_wearing", "npc_is_wearing", "u_has_item", "npc_has_item", + "u_has_items", "npc_has_items", "u_has_item_category", "npc_has_item_category", + "u_has_bionics", "npc_has_bionics", "u_has_effect", "npc_has_effect", "u_need", "npc_need", + "u_at_om_location", "npc_at_om_location", "npc_role_nearby", "npc_allies", "npc_service", + "u_has_cash", "u_are_owed", + "npc_aim_rule", "npc_engagement_rule", "npc_rule", "npc_override", + "npc_cbm_reserve_rule", "npc_cbm_recharge_rule", + "days_since_cataclysm", "is_season", "mission_goal", "u_has_var", "npc_has_var" + } +}; +} // namespace dialogue_data + +// the truly awful declaration for the conditional_t loading helper_function +void read_dialogue_condition( JsonObject &jo, std::function &condition, + bool default_val ); +/** + * A condition for a response spoken by the player. + * This struct only adds the constructors which will load the data from json + * into a lambda, stored in the std::function object. + * Invoking the function operator with a dialog reference (so the function can access the NPC) + * returns whether the response is allowed. + */ +struct conditional_t { + private: + std::function condition; + + public: + conditional_t() = default; + conditional_t( const std::string &type ); + conditional_t( JsonObject jo ); + + void set_has_any_trait( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_trait( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_trait_flag( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_var( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_activity( bool is_npc = false ); + void set_npc_has_class( JsonObject &jo ); + void set_u_has_mission( JsonObject &jo ); + void set_has_strength( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_dexterity( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_intelligence( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_perception( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_is_wearing( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_item( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_items( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_item_category( JsonObject &jo, const std::string &member, + bool is_npc = false ); + void set_has_bionics( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_has_effect( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_need( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_at_om_location( JsonObject &jo, const std::string &member, bool is_npc = false ); + void set_npc_role_nearby( JsonObject &jo ); + void set_npc_allies( JsonObject &jo ); + void set_u_has_cash( JsonObject &jo ); + void set_u_are_owed( JsonObject &jo ); + void set_npc_aim_rule( JsonObject &jo ); + void set_npc_engagement_rule( JsonObject &jo ); + void set_npc_cbm_reserve_rule( JsonObject &jo ); + void set_npc_cbm_recharge_rule( JsonObject &jo ); + void set_npc_rule( JsonObject &jo ); + void set_npc_override( JsonObject &jo ); + void set_days_since( JsonObject &jo ); + void set_is_season( JsonObject &jo ); + void set_mission_goal( JsonObject &jo ); + void set_no_assigned_mission(); + void set_has_assigned_mission(); + void set_has_many_assigned_missions(); + void set_no_available_mission(); + void set_has_available_mission(); + void set_has_many_available_missions(); + void set_mission_complete(); + void set_mission_incomplete(); + void set_npc_available(); + void set_npc_following(); + void set_npc_friend(); + void set_npc_hostile(); + void set_npc_train_skills(); + void set_npc_train_styles(); + void set_at_safe_space(); + void set_can_stow_weapon( bool is_npc = false ); + void set_has_weapon( bool is_npc = false ); + void set_is_driving( bool is_npc = false ); + void set_is_day(); + void set_has_stolen_item( bool is_npc = false ); + void set_is_outside(); + void set_is_by_radio(); + void set_u_has_camp(); + void set_has_pickup_list(); + void set_has_reason(); + void set_is_gender( bool is_male, bool is_npc = false ); + + bool operator()( const dialogue &d ) const { + if( !condition ) { + return false; + } + return condition( d ); + } +}; + /** * An extended response. It contains the response itself and a condition, so we can include the * response if, and only if the condition is met. diff --git a/src/dialogue_win.cpp b/src/dialogue_win.cpp index 6b1aa14267411..6932326913ed8 100644 --- a/src/dialogue_win.cpp +++ b/src/dialogue_win.cpp @@ -15,11 +15,11 @@ 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 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 ) ); + d_win = catacurses::newwin( maxy, maxx, win_beginy, win_beginx ); } void dialogue_window::print_header( const std::string &name ) @@ -30,7 +30,7 @@ void dialogue_window::print_header( const std::string &name ) draw_border( d_win ); int win_midx = getmaxx( d_win ) / 2; int winy = getmaxy( d_win ); - mvwvline( d_win, point( win_midx + 1, 1 ), LINE_XOXO, winy - 1 ); + mvwvline( d_win, 1, win_midx + 1, LINE_XOXO, winy - 1 ); mvwputch( d_win, 0, win_midx + 1, BORDER_COLOR, LINE_OXXX ); mvwputch( d_win, winy - 1, win_midx + 1, BORDER_COLOR, LINE_XXOX ); mvwprintz( d_win, 1, 1, c_white, _( "Dialogue: %s" ), name ); diff --git a/src/editmap.cpp b/src/editmap.cpp index c6b5738494e21..7ebeea038e9d2 100644 --- a/src/editmap.cpp +++ b/src/editmap.cpp @@ -182,7 +182,7 @@ editmap::editmap() sel_frn = undefined_furn_id; target_frn = undefined_furn_id; ter_frn_mode = 0; - cur_field = nullptr; + cur_field = 0; cur_trap = tr_null; sel_field = -1; sel_field_intensity = -1; @@ -201,7 +201,8 @@ editmap::editmap() editshape = editmap_rect; refresh_mplans = true; - tmax = point( getmaxx( g->w_terrain ), getmaxy( g->w_terrain ) ); + tmaxx = getmaxx( g->w_terrain ); + tmaxy = getmaxy( g->w_terrain ); fids[fd_null] = "-clear-"; fids[fd_fire_vent] = "fire_vent"; fids[fd_push_items] = "push_items"; @@ -270,7 +271,7 @@ void editmap_hilight::draw( editmap &em, bool update ) */ tripoint editmap::pos2screen( const tripoint &p ) { - return p + tmax / 2 - target.xy(); + return tripoint( tmaxx / 2 + p.x - target.x, tmaxy / 2 + p.y - target.y, p.z ); } /* @@ -278,7 +279,7 @@ tripoint editmap::pos2screen( const tripoint &p ) */ tripoint editmap::screen2pos( const tripoint &p ) { - return p + target.xy() + point( -POSX, -POSY ); + return tripoint( p.x + target.x - POSX, p.y + target.y - POSY, p.z ); } /* @@ -288,15 +289,15 @@ bool editmap::eget_direction( tripoint &p, const std::string &action ) const { p = tripoint_zero; if( action == "CENTER" ) { - p = g->u.pos() - target; + p = ( g->u.pos() - target ); } else if( action == "LEFT_WIDE" ) { - p.x = -tmax.x / 2; + p.x = 0 - ( tmaxx / 2 ); } else if( action == "DOWN_WIDE" ) { - p.y = tmax.y / 2; + p.y = ( tmaxy / 2 ); } else if( action == "UP_WIDE" ) { - p.y = -tmax.y / 2; + p.y = 0 - ( tmaxy / 2 ); } else if( action == "RIGHT_WIDE" ) { - p.x = tmax.x / 2; + p.x = ( tmaxx / 2 ); } else if( action == "LEVEL_DOWN" ) { p.z = -1; } else if( action == "LEVEL_UP" ) { @@ -320,18 +321,18 @@ void editmap::uphelp( const std::string &txt1, const std::string &txt2, const st { if( !txt1.empty() ) { - mvwprintw( w_help, point_zero, padding ); - mvwprintw( w_help, point_south, padding ); - mvwprintw( w_help, point( 0, !txt2.empty() ? 0 : 1 ), txt1 ); + mvwprintw( w_help, 0, 0, padding ); + mvwprintw( w_help, 1, 0, padding ); + mvwprintw( w_help, ( !txt2.empty() ? 0 : 1 ), 0, txt1 ); if( !txt2.empty() ) { - mvwprintw( w_help, point_south, txt2 ); + mvwprintw( w_help, 1, 0, txt2 ); } } if( !title.empty() ) { int hwidth = getmaxx( w_help ); - mvwhline( w_help, point( 0, 2 ), LINE_OXOX, hwidth ); + mvwhline( w_help, 2, 0, LINE_OXOX, hwidth ); int starttxt = static_cast( ( hwidth - title.size() - 4 ) / 2 ); - mvwprintw( w_help, point( starttxt, 2 ), "< " ); + mvwprintw( w_help, 2, starttxt, "< " ); wprintz( w_help, c_cyan, title ); wprintw( w_help, " >" ); } @@ -366,10 +367,10 @@ cata::optional editmap::edit() uberdraw = uistate.editmap_nsa_viewmode; infoHeight = 20; - w_info = catacurses::newwin( infoHeight, width, point( offsetX, TERMY - infoHeight ) ); - w_help = catacurses::newwin( 3, width, point( offsetX + 1, TERMY - 3 ) ); + w_info = catacurses::newwin( infoHeight, width, TERMY - infoHeight, offsetX ); + w_help = catacurses::newwin( 3, width, TERMY - 3, offsetX + 1 ); for( int i = 0; i < getmaxx( w_help ); i++ ) { - mvwaddch( w_help, point( i, 2 ), LINE_OXOX ); + mvwaddch( w_help, 2, i, LINE_OXOX ); } do { if( target_list.empty() ) { @@ -436,8 +437,8 @@ enum edit_drawmode { void editmap::uber_draw_ter( const catacurses::window &w, map *m ) { tripoint center = target; - tripoint start = center.xy() + tripoint( -getmaxx( w ) / 2, -getmaxy( w ) / 2, target.z ); - tripoint end = center.xy() + tripoint( getmaxx( w ) / 2, getmaxy( w ) / 2, target.z ); + tripoint start = tripoint( center.x - getmaxx( w ) / 2, center.y - getmaxy( w ) / 2, target.z ); + tripoint end = tripoint( center.x + getmaxx( w ) / 2, center.y + getmaxy( w ) / 2, target.z ); /* // pending filter options bool draw_furn=true; @@ -447,7 +448,7 @@ void editmap::uber_draw_ter( const catacurses::window &w, map *m ) bool draw_veh=true; */ bool draw_itm = true; - bool game_map = m == &g->m || w == g->w_terrain; + bool game_map = ( m == &g->m || w == g->w_terrain ); const int msize = MAPSIZE_X; if( refresh_mplans ) { hilights["mplan"].points.clear(); @@ -455,12 +456,12 @@ void editmap::uber_draw_ter( const catacurses::window &w, map *m ) for( int x = start.x, sx = 0; x <= end.x; x++, sx++ ) { for( int y = start.y, sy = 0; y <= end.y; y++, sy++ ) { tripoint p{ x, y, target.z }; - int sym = game_map ? '%' : ' '; + int sym = ( game_map ? '%' : ' ' ); if( x >= 0 && x < msize && y >= 0 && y < msize ) { if( game_map ) { Creature *critter = g->critter_at( p ); if( critter != nullptr ) { - critter->draw( w, center.xy(), false ); + critter->draw( w, center.x, center.y, false ); } else { m->drawsq( w, g->u, p, false, draw_itm, center, false, true ); } @@ -563,11 +564,12 @@ void editmap::update_view( bool update_info ) // draw arrows if altblink is set (ie, [m]oving a large selection if( blink && altblink ) { - const point mp = tmax / 2 + point_south_east; - mvwputch( g->w_terrain, mp.y, 1, c_yellow, '<' ); - mvwputch( g->w_terrain, mp.y, tmax.x - 1, c_yellow, '>' ); - mvwputch( g->w_terrain, 1, mp.x, c_yellow, '^' ); - mvwputch( g->w_terrain, tmax.y - 1, mp.x, c_yellow, 'v' ); + int mpx = ( tmaxx / 2 ) + 1; + int mpy = ( tmaxy / 2 ) + 1; + mvwputch( g->w_terrain, mpy, 1, c_yellow, '<' ); + mvwputch( g->w_terrain, mpy, tmaxx - 1, c_yellow, '>' ); + mvwputch( g->w_terrain, 1, mpx, c_yellow, '^' ); + mvwputch( g->w_terrain, tmaxy - 1, mpx, c_yellow, 'v' ); } wrefresh( g->w_terrain ); @@ -583,15 +585,14 @@ void editmap::update_view( bool update_info ) } mvwputch( w_info, off, 2, terrain_type.color(), terrain_type.symbol() ); - mvwprintw( w_info, point( 4, off ), _( "%d: %s; movecost %d" ), g->m.ter( target ).to_i(), + mvwprintw( w_info, off, 4, _( "%d: %s; movecost %d" ), g->m.ter( target ).to_i(), terrain_type.name(), terrain_type.movecost ); off++; // 2 if( g->m.furn( target ) > 0 ) { mvwputch( w_info, off, 2, furniture_type.color(), furniture_type.symbol() ); - mvwprintw( w_info, point( 4, off ), _( "%d: %s; movecost %d movestr %d" ), - g->m.furn( target ).to_i(), + mvwprintw( w_info, off, 4, _( "%d: %s; movecost %d movestr %d" ), g->m.furn( target ).to_i(), furniture_type.name(), furniture_type.movecost, furniture_type.move_str_req @@ -600,23 +601,23 @@ void editmap::update_view( bool update_info ) } const auto &map_cache = g->m.get_cache( target.z ); - mvwprintw( w_info, point( 1, off++ ), _( "dist: %d u_see: %d v_in: %d scent: %d" ), + mvwprintw( w_info, off++, 1, _( "dist: %d u_see: %d v_in: %d scent: %d" ), rl_dist( g->u.pos(), target ), static_cast( g->u.sees( target ) ), veh_in, g->scent.get( target ) ); - mvwprintw( w_info, point( 1, off++ ), _( "sight_range: %d, daylight_sight_range: %d," ), + mvwprintw( w_info, off++, 1, _( "sight_range: %d, daylight_sight_range: %d," ), g->u.sight_range( g->light_level( g->u.posz() ) ), g->u.sight_range( DAYLIGHT_LEVEL ) ); - mvwprintw( w_info, point( 1, off++ ), _( "transparency: %.5f, visibility: %.5f," ), + mvwprintw( w_info, off++, 1, _( "transparency: %.5f, visibility: %.5f," ), map_cache.transparency_cache[target.x][target.y], map_cache.seen_cache[target.x][target.y] ); map::apparent_light_info al = map::apparent_light_helper( map_cache, target ); int apparent_light = static_cast( g->m.apparent_light_at( target, g->m.get_visibility_variables_cache() ) ); - mvwprintw( w_info, point( 1, off++ ), _( "outside: %d obstructed: %d" ), + mvwprintw( w_info, off++, 1, _( "outside: %d obstructed: %d" ), static_cast( g->m.is_outside( target ) ), static_cast( al.obstructed ) ); - mvwprintw( w_info, point( 1, off++ ), _( "light_at: %s" ), + mvwprintw( w_info, off++, 1, _( "light_at: %s" ), map_cache.lm[target.x][target.y].to_string() ); - mvwprintw( w_info, point( 1, off++ ), _( "apparent light: %.5f (%d)" ), + mvwprintw( w_info, off++, 1, _( "apparent light: %.5f (%d)" ), al.apparent_light, apparent_light ); std::string extras; if( veh_in >= 0 ) { @@ -629,7 +630,7 @@ void editmap::update_view( bool update_info ) extras += _( " [roof]" ); } - mvwprintw( w_info, point( 1, off ), "%s %s", g->m.features( target ).c_str(), extras ); + mvwprintw( w_info, off, 1, "%s %s", g->m.features( target ).c_str(), extras ); // 9 off++; for( auto &fld : *cur_field ) { @@ -653,7 +654,7 @@ void editmap::update_view( bool update_info ) if( critter != nullptr ) { off = critter->print_info( w_info, off, 5, 1 ); } else if( vp ) { - mvwprintw( w_info, point( 1, off ), _( "There is a %s there. Parts:" ), vp->vehicle().name ); + mvwprintw( w_info, off, 1, _( "There is a %s there. Parts:" ), vp->vehicle().name ); off++; vp->vehicle().print_part_list( w_info, off, getmaxy( w_info ) - 1, width, vp->part_index() ); off += 6; @@ -665,16 +666,16 @@ void editmap::update_view( bool update_info ) target_stack.begin()->tname() ); off++; if( target_stack_size > 1 ) { - mvwprintw( w_info, point( 1, off ), ngettext( "There is %d other item there as well.", - "There are %d other items there as well.", - target_stack_size - 1 ), + mvwprintw( w_info, off, 1, ngettext( "There is %d other item there as well.", + "There are %d other items there as well.", + target_stack_size - 1 ), target_stack_size - 1 ); off++; } } if( g->m.has_graffiti_at( target ) ) { - mvwprintw( w_info, point( 1, off ), + mvwprintw( w_info, off, 1, g->m.ter( target ) == t_grave_new ? _( "Graffiti: %s" ) : _( "Inscription: %s" ), g->m.graffiti_at( target ) ); } @@ -696,10 +697,10 @@ static ter_id get_alt_ter( bool isvert, ter_id sel_ter ) 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; + 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 ); @@ -745,7 +746,7 @@ int editmap::edit_ter() int ret = 0; int pwh = TERMY - 4; - catacurses::window w_pickter = catacurses::newwin( pwh, width, point( offsetX, VIEW_OFFSET_Y ) ); + catacurses::window w_pickter = catacurses::newwin( pwh, width, VIEW_OFFSET_Y, offsetX ); draw_border( w_pickter ); wrefresh( w_pickter ); @@ -800,8 +801,8 @@ int editmap::edit_ter() } // cursor is green for terrain or furniture, depending on selection - nc_color c_tercurs = ter_frn_mode == 0 ? c_light_green : c_dark_gray; - nc_color c_frncurs = ter_frn_mode == 1 ? c_light_green : c_dark_gray; + nc_color c_tercurs = ( ter_frn_mode == 0 ? c_light_green : c_dark_gray ); + nc_color c_frncurs = ( ter_frn_mode == 1 ? c_light_green : c_dark_gray ); int cur_t = 0; int tstart = 2; @@ -810,7 +811,7 @@ int editmap::edit_ter() for( int x = xmin; x < pickw && cur_t < static_cast( ter_t::count() ); x++, cur_t++ ) { const ter_id tid( cur_t ); const ter_t &ttype = tid.obj(); - mvwputch( w_pickter, y, x, ter_frn_mode == 0 ? ttype.color() : c_dark_gray, ttype.symbol() ); + mvwputch( w_pickter, y, x, ( ter_frn_mode == 0 ? ttype.color() : c_dark_gray ), ttype.symbol() ); if( tid == sel_ter ) { sel_terp = tripoint( x, y, target.z ); } else if( tid == lastsel_ter ) { @@ -838,15 +839,15 @@ int editmap::edit_ter() // calculate offset, print terrain selection info int tlen = tymax * 2; int off = tstart + tlen; - mvwprintw( w_pickter, point( 1, off ), padding ); + mvwprintw( w_pickter, off, 1, padding ); if( ter_frn_mode == 0 ) { // unless furniture is selected const ter_t &pttype = sel_ter.obj(); for( int i = 1; i < width - 2; i++ ) { - mvwaddch( w_pickter, point( i, 0 ), LINE_OXOX ); + mvwaddch( w_pickter, 0, i, LINE_OXOX ); } - mvwprintw( w_pickter, point( 2, 0 ), "< %s[%d]: %s >", pttype.id.c_str(), pttype.id.id().to_i(), + mvwprintw( w_pickter, 0, 2, "< %s[%d]: %s >", pttype.id.c_str(), pttype.id.id().to_i(), pttype.name() ); mvwprintz( w_pickter, off, 2, c_white, _( "movecost %d" ), pttype.movecost ); std::string extras; @@ -866,7 +867,7 @@ int editmap::edit_ter() for( int x = xmin; x < pickw && cur_f < static_cast( furn_t::count() ); x++, cur_f++ ) { const furn_id fid( cur_f ); const furn_t &ftype = fid.obj(); - mvwputch( w_pickter, y, x, ter_frn_mode == 1 ? ftype.color() : c_dark_gray, ftype.symbol() ); + mvwputch( w_pickter, y, x, ( ter_frn_mode == 1 ? ftype.color() : c_dark_gray ), ftype.symbol() ); if( fid == sel_frn ) { sel_frnp = tripoint( x, y, target.z ); @@ -893,15 +894,15 @@ int editmap::edit_ter() int flen = fymax * 2; off += flen; - mvwprintw( w_pickter, point( 1, off ), padding ); + mvwprintw( w_pickter, off, 1, padding ); if( ter_frn_mode == 1 ) { const furn_t &pftype = sel_frn.obj(); for( int i = 1; i < width - 2; i++ ) { - mvwaddch( w_pickter, point( i, 0 ), LINE_OXOX ); + mvwaddch( w_pickter, 0, i, LINE_OXOX ); } - mvwprintw( w_pickter, point( 2, 0 ), "< %s[%d]: %s >", pftype.id.c_str(), pftype.id.id().to_i(), + mvwprintw( w_pickter, 0, 2, "< %s[%d]: %s >", pftype.id.c_str(), pftype.id.id().to_i(), pftype.name() ); mvwprintz( w_pickter, off, 2, c_white, _( "movecost %d" ), pftype.movecost ); std::string fextras; @@ -916,12 +917,12 @@ int editmap::edit_ter() // draw green |'s around terrain or furniture tilesets depending on selection for( int y = tstart - 1; y < tstart + tlen + 1; y++ ) { - mvwputch( w_pickter, y, 1, c_light_green, ter_frn_mode == 0 ? '|' : ' ' ); - mvwputch( w_pickter, y, width - 2, c_light_green, ter_frn_mode == 0 ? '|' : ' ' ); + mvwputch( w_pickter, y, 1, c_light_green, ( ter_frn_mode == 0 ? '|' : ' ' ) ); + mvwputch( w_pickter, y, width - 2, c_light_green, ( ter_frn_mode == 0 ? '|' : ' ' ) ); } for( int y = fstart - 1; y < fstart + flen + 1; y++ ) { - mvwputch( w_pickter, y, 1, c_light_green, ter_frn_mode == 1 ? '|' : ' ' ); - mvwputch( w_pickter, y, width - 2, c_light_green, ter_frn_mode == 1 ? '|' : ' ' ); + mvwputch( w_pickter, y, 1, c_light_green, ( ter_frn_mode == 1 ? '|' : ' ' ) ); + mvwputch( w_pickter, y, width - 2, c_light_green, ( ter_frn_mode == 1 ? '|' : ' ' ) ); } uphelp( pgettext( "Map editor: terrain/furniture shortkeys", @@ -942,13 +943,13 @@ int editmap::edit_ter() increment( sel_ter, +1, ter_t::count() ); } else if( action == "UP" ) { if( would_overflow( sel_ter, -xmax, ter_t::count() ) ) { - ter_frn_mode = ter_frn_mode == 0 ? 1 : 0; + ter_frn_mode = ( ter_frn_mode == 0 ? 1 : 0 ); } else { increment( sel_ter, -xmax, ter_t::count() ); } } else if( action == "DOWN" ) { if( would_overflow( sel_ter, +xmax, ter_t::count() ) ) { - ter_frn_mode = ter_frn_mode == 0 ? 1 : 0; + ter_frn_mode = ( ter_frn_mode == 0 ? 1 : 0 ); } else { increment( sel_ter, +xmax, ter_t::count() ); } @@ -997,7 +998,7 @@ int editmap::edit_ter() update_view( false ); } else if( action == "EDITMAP_TAB" || action == "EDITMAP_MOVE" ) { ter_id sel_tmp = sel_ter; - select_shape( editshape, action == "EDITMAP_MOVE" ? 1 : 0 ); + select_shape( editshape, ( action == "EDITMAP_MOVE" ? 1 : 0 ) ); sel_ter = sel_tmp; } else if( action == "EDITMAP_SHOW_ALL" ) { uberdraw = !uberdraw; @@ -1010,13 +1011,13 @@ int editmap::edit_ter() increment( sel_frn, +1, furn_t::count() ); } else if( action == "UP" ) { if( would_overflow( sel_frn, -xmax, furn_t::count() ) ) { - ter_frn_mode = ter_frn_mode == 0 ? 1 : 0; + ter_frn_mode = ( ter_frn_mode == 0 ? 1 : 0 ); } else { increment( sel_frn, -xmax, furn_t::count() ); } } else if( action == "DOWN" ) { if( would_overflow( sel_frn, +xmax, furn_t::count() ) ) { - ter_frn_mode = ter_frn_mode == 0 ? 1 : 0; + ter_frn_mode = ( ter_frn_mode == 0 ? 1 : 0 ); } else { increment( sel_frn, +xmax, furn_t::count() ); } @@ -1031,7 +1032,7 @@ int editmap::edit_ter() } else if( action == "EDITMAP_TAB" || action == "EDITMAP_MOVE" ) { furn_id sel_frn_tmp = sel_frn; ter_id sel_ter_tmp = sel_ter; - select_shape( editshape, action == "EDITMAP_MOVE" ? 1 : 0 ); + select_shape( editshape, ( action == "EDITMAP_MOVE" ? 1 : 0 ) ); sel_frn = sel_frn_tmp; sel_ter = sel_ter_tmp; } else if( action == "EDITMAP_SHOW_ALL" ) { @@ -1060,7 +1061,6 @@ void editmap::update_fmenu_entry( uilist &fmenu, field &field, const field_type_ } fmenu.entries[idx].text_color = fld != nullptr ? c_cyan : fmenu.text_color; fmenu.entries[idx].extratxt.color = ftype.get_color( field_intensity - 1 ); - fmenu.entries[idx].extratxt.txt = ftype.get_symbol( field_intensity - 1 ); } void editmap::setup_fmenu( uilist &fmenu ) @@ -1068,8 +1068,12 @@ void editmap::setup_fmenu( uilist &fmenu ) fmenu.entries.clear(); for( int i = 0; i < static_cast( field_type::count() ); i++ ) { const field_type_id fid = static_cast( i ); - fmenu.addentry( fid, true, -2, "" ); + const field_type &ftype = fid.obj(); + const int field_intensity = 1; + std::string fname = ftype.get_name( field_intensity - 1 ); + fmenu.addentry( fid, true, -2, fname ); fmenu.entries[fid].extratxt.left = 1; + fmenu.entries[fid].extratxt.txt = string_format( "%s", ftype.get_symbol( field_intensity - 1 ) ); update_fmenu_entry( fmenu, *cur_field, fid ); } if( sel_field >= 0 ) { @@ -1120,10 +1124,10 @@ int editmap::edit_fld() int i = 0; for( const auto &intensity_level : ftype.intensity_levels ) { i++; - femenu.addentry( string_format( "%d: %s", i, _( intensity_level.name ) ) ); + femenu.addentry( string_format( "%d: %s", i, intensity_level.name ) ); } femenu.entries[field_intensity].text_color = c_cyan; - femenu.selected = sel_field_intensity > 0 ? sel_field_intensity : field_intensity; + femenu.selected = ( sel_field_intensity > 0 ? sel_field_intensity : field_intensity ); femenu.query(); if( femenu.ret >= 0 ) { @@ -1177,7 +1181,7 @@ int editmap::edit_fld() sel_field_intensity = 0; } else if( fmenu.keypress == 's' || fmenu.keypress == '\t' || fmenu.keypress == 'm' ) { int sel_tmp = fmenu.selected; - int ret = select_shape( editshape, fmenu.keypress == 'm' ? 1 : 0 ); + int ret = select_shape( editshape, ( fmenu.keypress == 'm' ? 1 : 0 ) ); if( ret > 0 ) { setup_fmenu( fmenu ); } @@ -1195,7 +1199,7 @@ int editmap::edit_trp() int ret = 0; int pwh = TERMY - infoHeight; - catacurses::window w_picktrap = catacurses::newwin( pwh, width, point( offsetX, VIEW_OFFSET_Y ) ); + catacurses::window w_picktrap = catacurses::newwin( pwh, width, VIEW_OFFSET_Y, offsetX ); draw_border( w_picktrap ); int tmax = pwh - 3; int tshift = 0; @@ -1240,9 +1244,8 @@ int editmap::edit_trp() } mvwputch( w_picktrap, t + 1 - tshift, 2, tr.color, tr.sym ); mvwprintz( w_picktrap, t + 1 - tshift, 4, - trsel == tr.loadid ? h_white : - cur_trap == tr.loadid ? c_green : c_light_gray, - "%d %s", t, tnam.c_str() ); + ( trsel == tr.loadid ? h_white : ( cur_trap == tr.loadid ? c_green : c_light_gray ) ), "%d %s", t, + tnam.c_str() ); } } wrefresh( w_picktrap ); @@ -1263,7 +1266,7 @@ int editmap::edit_trp() update_view( false ); } else if( action == "EDITMAP_TAB" || action == "EDITMAP_MOVE" ) { trap_id sel_tmp = trsel; - select_shape( editshape, action == "EDITMAP_MOVE" ? 1 : 0 ); + select_shape( editshape, ( action == "EDITMAP_MOVE" ? 1 : 0 ) ); trsel = sel_tmp; } else if( action == "EDITMAP_SHOW_ALL" ) { uberdraw = !uberdraw; @@ -1490,8 +1493,7 @@ static int limited_shift( int var, int &shift, int min, int max ) bool editmap::move_target( const std::string &action, int moveorigin ) { tripoint mp; - bool move_origin = moveorigin == 1 ? true : - moveorigin == 0 ? false : moveall; + bool move_origin = ( moveorigin == 1 ? true : ( moveorigin == 0 ? false : moveall ) ); if( eget_direction( mp, action ) ) { target.x = limited_shift( target.x, mp.x, 0, MAPSIZE_X ); target.y = limited_shift( target.y, mp.y, 0, MAPSIZE_Y ); @@ -1534,7 +1536,7 @@ int editmap::select_shape( shapetype shape, int mode ) bool update = false; blink = true; if( mode >= 0 ) { - moveall = mode != 0; + moveall = ( mode != 0 ); } altblink = moveall; update_view( false ); @@ -1630,10 +1632,10 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) int ret = 0; hilights["mapgentgt"].points.clear(); - hilights["mapgentgt"].points[target + point( -SEEX, -SEEY )] = 1; - hilights["mapgentgt"].points[target + point( 1 + SEEX, 1 + SEEY )] = 1; - hilights["mapgentgt"].points[target + point( -SEEX, 1 + SEEY )] = 1; - hilights["mapgentgt"].points[target + point( 1 + SEEX, -SEEY )] = 1; + hilights["mapgentgt"].points[tripoint( target.x - SEEX, target.y - SEEY, target.z )] = 1; + hilights["mapgentgt"].points[tripoint( target.x + SEEX + 1, target.y + SEEY + 1, target.z )] = 1; + hilights["mapgentgt"].points[tripoint( target.x - SEEX, target.y + SEEY + 1, target.z )] = 1; + hilights["mapgentgt"].points[tripoint( target.x + SEEX + 1, target.y - SEEY, target.z )] = 1; update_view( true ); @@ -1646,10 +1648,10 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) tinymap tmpmap; // TODO: add a do-not-save-generated-submaps parameter // TODO: keep track of generated submaps to delete them properly and to avoid memory leaks - tmpmap.generate( tripoint( omt_pos.x * 2, omt_pos.y * 2, target.z ), calendar::turn ); + tmpmap.generate( omt_pos.x * 2, omt_pos.y * 2, target.z, calendar::turn ); - tripoint pofs = pos2screen( target + point( 1 - SEEX, 1 - SEEY ) ); - catacurses::window w_preview = catacurses::newwin( SEEX * 2, SEEY * 2, pofs.xy() ); + tripoint pofs = pos2screen( { target.x - SEEX + 1, target.y - SEEY + 1, target.z } ); + catacurses::window w_preview = catacurses::newwin( SEEX * 2, SEEY * 2, pofs.y, pofs.x ); gmenu.border_color = c_light_gray; gmenu.hilight_color = c_black_white; @@ -1679,7 +1681,7 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) lastsel = gmenu.selected; omt_ref = oter_id( gmenu.selected ); cleartmpmap( tmpmap ); - tmpmap.generate( tripoint( omt_pos.x * 2, omt_pos.y * 2, target.z ), calendar::turn ); + tmpmap.generate( omt_pos.x * 2, omt_pos.y * 2, target.z, calendar::turn ); showpreview = true; } if( showpreview ) { @@ -1706,7 +1708,7 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) if( gpmenu.ret == 0 ) { cleartmpmap( tmpmap ); - tmpmap.generate( tripoint( omt_pos.x * 2, omt_pos.y * 2, target.z ), calendar::turn ); + tmpmap.generate( omt_pos.x * 2, omt_pos.y * 2, target.z, calendar::turn ); showpreview = true; } else if( gpmenu.ret == 1 ) { tmpmap.rotate( 1 ); @@ -1727,7 +1729,7 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) for( int y = 0; y < 2; y++ ) { // Apply previewed mapgen to map. Since this is a function for testing, we try avoid triggering // functions that would alter the results - const auto dest_pos = target_sub + tripoint( x, y, target.z ); + const auto dest_pos = tripoint{ target_sub.x + x, target_sub.y + y, target.z }; const auto src_pos = tripoint{ x, y, target.z }; submap *destsm = g->m.get_submap_at_grid( dest_pos ); @@ -1736,7 +1738,9 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) std::swap( *destsm, *srcsm ); for( auto &veh : destsm->vehicles ) { - veh->sm_pos = dest_pos; + veh->smx = dest_pos.x; + veh->smy = dest_pos.y; + veh->smz = dest_pos.z; } g->m.update_vehicle_list( destsm, target.z ); // update real map's vcaches @@ -1758,7 +1762,7 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) } else if( gpmenu.keypress == KEY_NPAGE || gpmenu.keypress == KEY_PPAGE || gpmenu.keypress == KEY_LEFT || gpmenu.keypress == KEY_RIGHT ) { - int dir = gpmenu.keypress == KEY_NPAGE || gpmenu.keypress == KEY_RIGHT ? 1 : -1; + int dir = ( gpmenu.keypress == KEY_NPAGE || gpmenu.keypress == KEY_RIGHT ? 1 : -1 ); gmenu.scrollby( dir ); gpmenu.selected = gpmenupos; gmenu.show(); @@ -1782,7 +1786,7 @@ int editmap::mapgen_preview( const real_coords &tc, uilist &gmenu ) vehicle *editmap::mapgen_veh_query( const tripoint &omt_tgt ) { tinymap target_bay; - target_bay.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); + target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); std::vector possible_vehicles; for( int x = 0; x < 2; x++ ) { @@ -1816,7 +1820,7 @@ vehicle *editmap::mapgen_veh_query( const tripoint &omt_tgt ) bool editmap::mapgen_veh_destroy( const tripoint &omt_tgt, vehicle *car_target ) { tinymap target_bay; - target_bay.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); + target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); for( int x = 0; x < 2; x++ ) { for( int y = 0; y < 2; y++ ) { submap *destsm = target_bay.get_submap_at_grid( { x, y, target.z } ); @@ -1859,8 +1863,8 @@ int editmap::mapgen_retarget() action = ctxt.handle_input( BLINK_SPEED ); blink = !blink; if( const cata::optional vec = ctxt.get_direction( action ) ) { - point vec_ms = omt_to_ms_copy( vec->xy() ); - tripoint ptarget = target + vec_ms; + tripoint ptarget = tripoint( target.x + ( vec->x * SEEX * 2 ), target.y + ( vec->y * SEEY * 2 ), + target.z ); if( editmap_boundaries.contains_half_open( ptarget ) && editmap_boundaries.contains_half_open( ptarget + point( SEEX, SEEY ) ) ) { target = ptarget; @@ -1929,13 +1933,13 @@ int editmap::edit_mapgen() uphelp( pgettext( "map generator", "[m]ove" ), pgettext( "map generator", "[enter] change, [q]uit" ), pgettext( "map generator", "Mapgen stamp" ) ); - tc.fromabs( g->m.getabs( target.xy() ) ); + tc.fromabs( g->m.getabs( target.x, target.y ) ); point omt_lpos = g->m.getlocal( tc.begin_om_pos() ); - tripoint om_ltarget = omt_lpos + tripoint( -1 + SEEX, -1 + SEEY, target.z ); + tripoint om_ltarget = tripoint( omt_lpos.x + SEEX - 1, omt_lpos.y + SEEY - 1, target.z ); if( target.x != om_ltarget.x || target.y != om_ltarget.y ) { target = om_ltarget; - tc.fromabs( g->m.getabs( target.xy() ) ); + tc.fromabs( g->m.getabs( target.x, target.y ) ); } target_list.clear(); for( int x = target.x - SEEX + 1; x < target.x + SEEX + 1; x++ ) { diff --git a/src/editmap.h b/src/editmap.h index 521819ba15224..9a21bb8eb2edd 100644 --- a/src/editmap.h +++ b/src/editmap.h @@ -33,10 +33,13 @@ struct editmap_hilight { std::map points; nc_color( *getbg )( const nc_color & ); void setup() { - getbg = color == c_red ? &red_background : - color == c_magenta ? &magenta_background : - color == c_cyan ? &cyan_background : - color == c_yellow ? &yellow_background : &green_background; + getbg = ( color == c_red ? &red_background : + ( color == c_magenta ? &magenta_background : + ( color == c_cyan ? &cyan_background : + ( color == c_yellow ? &yellow_background : &green_background ) + ) + ) + ); } void draw( editmap &em, bool update = false ); }; @@ -112,7 +115,8 @@ class editmap std::map hilights; bool blink; bool altblink; - point tmax; + int tmaxx; + int tmaxy; bool uberdraw; editmap(); diff --git a/src/effect.cpp b/src/effect.cpp index 893f9a3a4ba91..2acb3f6df8907 100644 --- a/src/effect.cpp +++ b/src/effect.cpp @@ -176,11 +176,9 @@ void weed_msg( player &p ) } } -static void extract_effect( - 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 ) +static void extract_effect( JsonObject &j, + std::unordered_map, double> &data, + const std::string &mod_type, std::string data_key, std::string type_key, std::string arg_key ) { double val = 0; double reduced_val = 0; @@ -364,9 +362,9 @@ bool effect_type::use_name_ints() const bool effect_type::use_desc_ints( bool reduced ) const { if( reduced ) { - return static_cast( max_intensity ) <= reduced_desc.size(); + return ( static_cast( max_intensity ) <= reduced_desc.size() ); } else { - return static_cast( max_intensity ) <= desc.size(); + return ( static_cast( max_intensity ) <= desc.size() ); } } @@ -827,7 +825,7 @@ const std::vector &effect::get_removes_effects() const { return eff_type->removes_effects; } -std::vector effect::get_blocks_effects() const +const std::vector effect::get_blocks_effects() const { std::vector ret = eff_type->removes_effects; ret.insert( ret.end(), eff_type->blocks_effects.begin(), eff_type->blocks_effects.end() ); @@ -900,8 +898,8 @@ int effect::get_avg_mod( std::string arg, bool reduced ) const int effect::get_amount( std::string arg, bool reduced ) const { - int intensity_capped = eff_type->max_effective_intensity > 0 ? std::min( - eff_type->max_effective_intensity, intensity ) : intensity; + int intensity_capped = ( ( eff_type->max_effective_intensity > 0 ) ? std::min( + eff_type->max_effective_intensity, intensity ) : intensity ); auto &mod_data = eff_type->mod_data; double ret = 0; auto found = mod_data.find( std::make_tuple( "base_mods", reduced, arg, "amount" ) ); @@ -1093,14 +1091,14 @@ bool effect::activated( const time_point &when, std::string arg, int val, bool r // has to be an && here to avoid undefined behavior of turn % 0 if( tick > 0 && - ( when - calendar::turn_zero ) % time_duration::from_turns( tick ) == 0_turns ) { + ( when - calendar::time_of_cataclysm ) % time_duration::from_turns( tick ) == 0_turns ) { if( bot_base != 0 && bot_scale != 0 ) { if( bot_base + bot_scale == 0 ) { // Special crash avoidance case, in most effect fields 0 = "nothing happens" // so assume false here for consistency return false; } else { - return x_in_y( ( top_base + top_scale ) * mod, bot_base + bot_scale ); + return x_in_y( ( top_base + top_scale ) * mod, ( bot_base + bot_scale ) ); } } else { return x_in_y( mod, top_base + top_scale ); @@ -1333,7 +1331,7 @@ void effect::deserialize( JsonIn &jsin ) bp = static_cast( jo.get_int( "bp" ) ); permanent = jo.get_bool( "permanent" ); intensity = jo.get_int( "intensity" ); - start_time = calendar::turn_zero; + start_time = calendar::time_of_cataclysm; jo.read( "start_turn", start_time ); } diff --git a/src/effect.h b/src/effect.h index cba6aa4620764..e744095652bc0 100644 --- a/src/effect.h +++ b/src/effect.h @@ -131,16 +131,14 @@ class effect_type std::string remove_memorial_log; /** Key tuple order is:("base_mods"/"scaling_mods", reduced: bool, type of mod: "STR", desired argument: "tick") */ - std::unordered_map < - std::tuple, double, cata::tuple_hash - > mod_data; + std::unordered_map, double> mod_data; }; class effect { public: - effect() : eff_type( nullptr ), duration( 0_turns ), bp( num_bp ), - permanent( false ), intensity( 1 ), start_time( calendar::turn_zero ) { + effect() : eff_type( NULL ), duration( 0_turns ), bp( num_bp ), + permanent( false ), intensity( 1 ), start_time( calendar::time_of_cataclysm ) { } effect( const effect_type *peff_type, const time_duration &dur, body_part part, bool perm, int nintensity, const time_point &nstart_time ) : @@ -228,7 +226,7 @@ class effect /** Returns the string ids of the effects removed by this effect to be used in remove_effect("id"). */ const std::vector &get_removes_effects() const; /** Returns the string ids of the effects blocked by this effect to be used in add_effect("id"). */ - std::vector get_blocks_effects() const; + const 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; diff --git a/src/enums.h b/src/enums.h index 66417bc8d01fb..7625e115b135a 100644 --- a/src/enums.h +++ b/src/enums.h @@ -165,10 +165,8 @@ enum liquid_target_type { LTT_CONTAINER = 1, LTT_VEHICLE = 2, LTT_MAP = 3, LTT_M * when starting the game. */ enum layer_level { - /* "Personal effects" layer, corresponds to PERSONAL flag */ - PERSONAL_LAYER = 0, /* "Close to skin" layer, corresponds to SKINTIGHT flag. */ - UNDERWEAR_LAYER, + UNDERWEAR = 0, /* "Normal" layer, default if no flags set */ REGULAR_LAYER, /* "Waist" layer, corresponds to WAIST flag. */ @@ -177,8 +175,6 @@ enum layer_level { OUTER_LAYER, /* "Strapped" layer, corresponds to BELTED flag */ BELTED_LAYER, - /* "Aura" layer, corresponds to AURA flag */ - AURA_LAYER, /* Not a valid layer; used for C-style iteration through this enum */ MAX_CLOTHING_LAYER }; diff --git a/src/timed_event.cpp b/src/event.cpp similarity index 86% rename from src/timed_event.cpp rename to src/event.cpp index 4115b44e76aa5..87dd8e175e934 100644 --- a/src/timed_event.cpp +++ b/src/event.cpp @@ -1,4 +1,4 @@ -#include "timed_event.h" +#include "event.h" #include #include @@ -31,7 +31,7 @@ const mtype_id mon_sewer_snake( "mon_sewer_snake" ); const mtype_id mon_spider_widow_giant( "mon_spider_widow_giant" ); const mtype_id mon_spider_cellar_giant( "mon_spider_cellar_giant" ); -timed_event::timed_event( timed_event_type e_t, const time_point &w, int f_id, tripoint p ) +event::event( event_type e_t, const time_point &w, int f_id, tripoint p ) : type( e_t ) , when( w ) , faction_id( f_id ) @@ -39,14 +39,14 @@ timed_event::timed_event( timed_event_type e_t, const time_point &w, int f_id, t { } -void timed_event::actualize() +void event::actualize() { switch( type ) { - case TIMED_EVENT_HELP: + case EVENT_HELP: debugmsg( "Currently disabled while NPC and monster factions are being rewritten." ); break; - case TIMED_EVENT_ROBOT_ATTACK: { + case EVENT_ROBOT_ATTACK: { const auto u_pos = g->u.global_sm_location(); if( rl_dist( u_pos, map_point ) <= 4 ) { const mtype_id &robot_type = one_in( 2 ) ? mon_copbot : mon_riotbot; @@ -60,7 +60,7 @@ void timed_event::actualize() } break; - case TIMED_EVENT_SPAWN_WYRMS: { + case EVENT_SPAWN_WYRMS: { if( g->get_levz() >= 0 ) { return; } @@ -91,13 +91,12 @@ void timed_event::actualize() } } if( !one_in( 25 ) ) { // They just keep coming! - g->timed_events.add( TIMED_EVENT_SPAWN_WYRMS, - calendar::turn + rng( 1_minutes, 3_minutes ) ); + g->events.add( EVENT_SPAWN_WYRMS, calendar::turn + rng( 1_minutes, 3_minutes ) ); } } break; - case TIMED_EVENT_AMIGARA: { + case EVENT_AMIGARA: { g->u.add_memorial_log( pgettext( "memorial_male", "Angered a group of amigara horrors!" ), pgettext( "memorial_female", "Angered a group of amigara horrors!" ) ); int num_horrors = rng( 3, 5 ); @@ -109,7 +108,7 @@ void timed_event::actualize() if( g->m.ter( x, y ) == t_fault ) { faultx = x; faulty = y; - horizontal = g->m.ter( x - 1, y ) == t_fault || g->m.ter( x + 1, y ) == t_fault; + horizontal = ( g->m.ter( x - 1, y ) == t_fault || g->m.ter( x + 1, y ) == t_fault ); } } } @@ -143,26 +142,26 @@ void timed_event::actualize() } break; - case TIMED_EVENT_ROOTS_DIE: + case EVENT_ROOTS_DIE: g->u.add_memorial_log( pgettext( "memorial_male", "Destroyed a triffid grove." ), pgettext( "memorial_female", "Destroyed a triffid grove." ) ); for( int x = 0; x < MAPSIZE_X; x++ ) { for( int y = 0; y < MAPSIZE_Y; y++ ) { if( g->m.ter( x, y ) == t_root_wall && one_in( 3 ) ) { - g->m.ter_set( point( x, y ), t_underbrush ); + g->m.ter_set( x, y, t_underbrush ); } } } break; - case TIMED_EVENT_TEMPLE_OPEN: { + case EVENT_TEMPLE_OPEN: { g->u.add_memorial_log( pgettext( "memorial_male", "Opened a strange temple." ), pgettext( "memorial_female", "Opened a strange temple." ) ); bool saw_grate = false; for( int x = 0; x < MAPSIZE_X; x++ ) { for( int y = 0; y < MAPSIZE_Y; y++ ) { if( g->m.ter( x, y ) == t_grate ) { - g->m.ter_set( point( x, y ), t_stairs_down ); + g->m.ter_set( x, y, t_stairs_down ); if( !saw_grate && g->u.sees( tripoint( x, y, g->get_levz() ) ) ) { saw_grate = true; } @@ -175,7 +174,7 @@ void timed_event::actualize() } break; - case TIMED_EVENT_TEMPLE_FLOOD: { + case EVENT_TEMPLE_FLOOD: { bool flooded = false; ter_id flood_buf[MAPSIZE_X][MAPSIZE_Y]; @@ -234,15 +233,14 @@ void timed_event::actualize() // flood_buf is filled with correct tiles; now copy them back to g->m for( int x = 0; x < MAPSIZE_X; x++ ) { for( int y = 0; y < MAPSIZE_Y; y++ ) { - g->m.ter_set( point( x, y ), flood_buf[x][y] ); + g->m.ter_set( x, y, flood_buf[x][y] ); } } - g->timed_events.add( TIMED_EVENT_TEMPLE_FLOOD, - calendar::turn + rng( 2_turns, 3_turns ) ); + g->events.add( EVENT_TEMPLE_FLOOD, calendar::turn + rng( 2_turns, 3_turns ) ); } break; - case TIMED_EVENT_TEMPLE_SPAWN: { + case EVENT_TEMPLE_SPAWN: { static const std::array temple_monsters = { { mon_sewer_snake, mon_dermatik, mon_spider_widow_giant, mon_spider_cellar_giant } @@ -268,18 +266,18 @@ void timed_event::actualize() } } -void timed_event::per_turn() +void event::per_turn() { switch( type ) { - case TIMED_EVENT_WANTED: { + case EVENT_WANTED: { // About once every 5 minutes. Suppress in classic zombie mode. if( g->get_levz() >= 0 && one_in( 50 ) && !get_option( "DISABLE_ROBOT_RESPONSE" ) ) { point place = g->m.random_outdoor_tile(); if( place.x == -1 && place.y == -1 ) { return; // We're safely indoors! } - g->summon_mon( mon_eyebot, tripoint( place, g->u.posz() ) ); - if( g->u.sees( tripoint( place, g->u.posz() ) ) ) { + g->summon_mon( mon_eyebot, tripoint( place.x, place.y, g->u.posz() ) ); + if( g->u.sees( tripoint( place.x, place.y, g->u.posz() ) ) ) { add_msg( m_warning, _( "An eyebot swoops down nearby!" ) ); } // One eyebot per trigger is enough, really @@ -288,7 +286,7 @@ void timed_event::per_turn() } break; - case TIMED_EVENT_SPAWN_WYRMS: + case EVENT_SPAWN_WYRMS: if( g->get_levz() >= 0 ) { when -= 1_turns; return; @@ -298,11 +296,11 @@ void timed_event::per_turn() } break; - case TIMED_EVENT_AMIGARA: + case EVENT_AMIGARA: add_msg( m_warning, _( "The entire cavern shakes!" ) ); break; - case TIMED_EVENT_TEMPLE_OPEN: + case EVENT_TEMPLE_OPEN: add_msg( m_warning, _( "The earth rumbles." ) ); break; @@ -311,7 +309,7 @@ void timed_event::per_turn() } } -void timed_event_manager::process() +void event_manager::process() { for( auto it = events.begin(); it != events.end(); ) { it->per_turn(); @@ -324,25 +322,23 @@ void timed_event_manager::process() } } -void timed_event_manager::add( const timed_event_type type, const time_point &when, - const int faction_id ) +void event_manager::add( const event_type type, const time_point &when, const int faction_id ) { add( type, when, faction_id, g->u.global_sm_location() ); } -void timed_event_manager::add( const timed_event_type type, const time_point &when, - const int faction_id, - const tripoint &where ) +void event_manager::add( const event_type type, const time_point &when, const int faction_id, + const tripoint &where ) { events.emplace_back( type, when, faction_id, where ); } -bool timed_event_manager::queued( const timed_event_type type ) const +bool event_manager::queued( const event_type type ) const { - return const_cast( *this ).get( type ) != nullptr; + return const_cast( *this ).get( type ) != nullptr; } -timed_event *timed_event_manager::get( const timed_event_type type ) +event *event_manager::get( const event_type type ) { for( auto &e : events ) { if( e.type == type ) { diff --git a/src/event.h b/src/event.h new file mode 100644 index 0000000000000..9af4a6fd6061f --- /dev/null +++ b/src/event.h @@ -0,0 +1,69 @@ +#pragma once +#ifndef EVENT_H +#define EVENT_H + +#include + +#include "calendar.h" +#include "point.h" + +enum event_type : int { + EVENT_NULL, + EVENT_HELP, + EVENT_WANTED, + EVENT_ROBOT_ATTACK, + EVENT_SPAWN_WYRMS, + EVENT_AMIGARA, + EVENT_ROOTS_DIE, + EVENT_TEMPLE_OPEN, + EVENT_TEMPLE_FLOOD, + EVENT_TEMPLE_SPAWN, + EVENT_DIM, + EVENT_ARTIFACT_LIGHT, + NUM_EVENT_TYPES +}; + +struct event { + event_type type = EVENT_NULL; + /** On which turn event should be happening. */ + time_point when = calendar::time_of_cataclysm; + /** Which faction is responsible for handling this event. */ + int faction_id = -1; + /** Where the event happens, in global submap coordinates */ + tripoint map_point = tripoint_min; + + event( event_type e_t, const time_point &w, int f_id, tripoint p ); + + // When the time runs out + void actualize(); + // Every turn + void per_turn(); +}; + +class event_manager +{ + private: + std::list events; + + public: + /** + * Add an entry to the event queue. Parameters are basically passed + * through to @ref event::event. + */ + void add( event_type type, const time_point &when, int faction_id = -1 ); + /** + * Add an entry to the event queue. Parameters are basically passed + * through to @ref event::event. + */ + void add( event_type type, const time_point &when, int faction_id, const tripoint &where ); + /// @returns Whether at least one element of the given type is queued. + bool queued( event_type type ) const; + /// @returns One of the queued events of the given type, or `nullptr` + /// if no event of that type is queued. + event *get( event_type type ); + /// Process all queued events, potentially altering the game state and + /// modifying the event queue. + void process(); +}; + +#endif diff --git a/src/explosion.cpp b/src/explosion.cpp index e58ebcb2d8320..4b756c9a7b1b7 100644 --- a/src/explosion.cpp +++ b/src/explosion.cpp @@ -181,7 +181,7 @@ static void do_blast( const tripoint &p, const float power, // Don't check up/down (for now) - this will make 2D/3D balancing easier int empty_neighbors = 0; for( size_t i = 0; i < 8; i++ ) { - tripoint dest( pt + tripoint( x_offset[i], y_offset[i], z_offset[i] ) ); + tripoint dest( pt.x + x_offset[i], pt.y + y_offset[i], pt.z + z_offset[i] ); if( closed.count( dest ) == 0 && g->m.valid_move( pt, dest, false, true ) ) { empty_neighbors++; } @@ -190,7 +190,7 @@ static void do_blast( const tripoint &p, const float power, empty_neighbors = std::max( 1, empty_neighbors ); // Iterate over all neighbors. Bash all of them, propagate to some for( size_t i = 0; i < max_index; i++ ) { - tripoint dest( pt + tripoint( x_offset[i], y_offset[i], z_offset[i] ) ); + tripoint dest( pt.x + x_offset[i], pt.y + y_offset[i], pt.z + z_offset[i] ); if( closed.count( dest ) != 0 || !g->m.inbounds( dest ) ) { continue; } @@ -288,8 +288,8 @@ static void do_blast( const tripoint &p, const float power, player *pl = dynamic_cast( critter ); if( pl == nullptr ) { // TODO: player's fault? - const double dmg = force - critter->get_armor_bash( bp_torso ) / 2.0; - const int actual_dmg = rng_float( dmg * 2, dmg * 3 ); + const int dmg = force - ( critter->get_armor_bash( bp_torso ) / 2 ); + const int actual_dmg = rng( dmg * 2, dmg * 3 ); critter->apply_damage( nullptr, bp_torso, actual_dmg ); critter->check_dead_state(); add_msg( m_debug, "Blast hits %s for %d damage", critter->disp_name(), actual_dmg ); @@ -622,7 +622,7 @@ void emp_blast( const tripoint &p ) if( sight ) { add_msg( _( "The %s is rendered non-functional!" ), g->m.tername( x, y ) ); } - g->m.ter_set( point( x, y ), t_console_broken ); + g->m.ter_set( x, y, t_console_broken ); return; } // TODO: More terrain effects. @@ -633,7 +633,7 @@ void emp_blast( const tripoint &p ) if( sight ) { add_msg( _( "The card reader is rendered non-functional." ) ); } - g->m.ter_set( point( x, y ), t_card_reader_broken ); + g->m.ter_set( x, y, t_card_reader_broken ); } if( rn > 80 ) { if( sight ) { @@ -642,7 +642,7 @@ void emp_blast( const tripoint &p ) for( int i = -3; i <= 3; i++ ) { for( int j = -3; j <= 3; j++ ) { if( g->m.ter( x + i, y + j ) == t_door_metal_locked ) { - g->m.ter_set( point( x + i, y + j ), t_floor ); + g->m.ter_set( x + i, y + j, t_floor ); } } } diff --git a/src/faction.cpp b/src/faction.cpp index 907fbc607a51a..e4a4e67b134e3 100644 --- a/src/faction.cpp +++ b/src/faction.cpp @@ -559,11 +559,11 @@ int npc::faction_display( const catacurses::window &fac_w, const int width ) con void new_faction_manager::display() const { - int term_x = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; - int term_y = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; + int term_x = ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; + int term_y = ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; catacurses::window w_missions = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( term_y, term_x ) ); + term_x, term_y ); enum class tab_mode : int { TAB_MYFACTION = 0, diff --git a/src/faction_camp.cpp b/src/faction_camp.cpp index f0cc17f01af75..a86b32e97aaae 100644 --- a/src/faction_camp.cpp +++ b/src/faction_camp.cpp @@ -1639,7 +1639,7 @@ void basecamp::start_relay_hide_site() } //Check items in improvised shelters at hide site tinymap target_bay; - target_bay.load( tripoint( forest.x * 2, forest.y * 2, forest.z ), false ); + target_bay.load( forest.x * 2, forest.y * 2, forest.z, false ); std::vector hide_inv; for( item &i : target_bay.i_at( 11, 10 ) ) { hide_inv.push_back( &i ); @@ -1866,10 +1866,10 @@ static std::pair farm_action( const tripoint &omt_tgt, farm //farm_json is what the area should look like according to jsons tinymap farm_json; - farm_json.generate( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), calendar::turn ); + farm_json.generate( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, calendar::turn ); //farm_map is what the area actually looks like tinymap farm_map; - farm_map.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); + farm_map.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); tripoint mapmin = tripoint( 0, 0, omt_tgt.z ); tripoint mapmax = tripoint( 2 * SEEX - 1, 2 * SEEY - 1, omt_tgt.z ); bool done_planting = false; @@ -2222,7 +2222,7 @@ bool basecamp::gathering_return( const std::string &task, time_duration min_time danger = 10; favor = 0; skill_group = "hunting"; - skill = 1.5 * comp->get_skill_level( skill_gun ) + comp->per_cur / 2.0; + skill = 1.5 * comp->get_skill_level( skill_gun ) + comp->per_cur / 2; threat = 12; checks_per_cycle = 2; } @@ -2539,7 +2539,7 @@ void talk_function::draw_camp_tabs( const catacurses::window &win, const camp_ta { werase( win ); const int width = getmaxx( win ); - mvwhline( win, point( 0, 2 ), LINE_OXOX, width ); + mvwhline( win, 2, 0, LINE_OXOX, width ); std::vector tabs; tabs.push_back( _( "MAIN" ) ); @@ -2708,7 +2708,7 @@ int om_harvest_furn( npc &comp, const tripoint &omt_tgt, const furn_id &f, int c { const furn_t &furn_tgt = f.obj(); tinymap target_bay; - target_bay.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); + target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); int harvested = 0; int total = 0; tripoint mapmin = tripoint( 0, 0, omt_tgt.z ); @@ -2751,7 +2751,7 @@ int om_harvest_ter( npc &comp, const tripoint &omt_tgt, const ter_id &t, int cha { const ter_t &ter_tgt = t.obj(); tinymap target_bay; - target_bay.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); + target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); int harvested = 0; int total = 0; tripoint mapmin = tripoint( 0, 0, omt_tgt.z ); @@ -2794,7 +2794,7 @@ int om_cutdown_trees_trunks( const tripoint &omt_tgt, int chance ) int om_cutdown_trees( const tripoint &omt_tgt, int chance, bool estimate, bool force_cut_trunk ) { tinymap target_bay; - target_bay.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); + target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); int harvested = 0; int total = 0; tripoint mapmin = tripoint( 0, 0, omt_tgt.z ); @@ -2840,7 +2840,7 @@ int om_cutdown_trees( const tripoint &omt_tgt, int chance, bool estimate, bool f mass_volume om_harvest_itm( 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 ); + target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); units::mass harvested_m = 0_gram; units::volume harvested_v = 0_ml; units::mass total_m = 0_gram; @@ -3005,8 +3005,8 @@ bool om_set_hide_site( npc &comp, const tripoint &omt_tgt, oter_id &omt_ref = overmap_buffer.ter( omt_tgt ); omt_ref = oter_id( omt_ref.id().c_str() ); tinymap target_bay; - target_bay.load( tripoint( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z ), false ); - target_bay.ter_set( point( 11, 10 ), t_improvised_shelter ); + target_bay.load( omt_tgt.x * 2, omt_tgt.y * 2, omt_tgt.z, false ); + target_bay.ter_set( 11, 10, t_improvised_shelter ); for( auto i : itms_rem ) { comp.companion_mission_inv.add_item( *i ); target_bay.i_rem( 11, 10, i ); @@ -3019,7 +3019,7 @@ bool om_set_hide_site( npc &comp, const tripoint &omt_tgt, omt_ref = oter_id( "faction_hide_site_0" ); - overmap_buffer.reveal( omt_tgt.xy(), 3, 0 ); + overmap_buffer.reveal( point( omt_tgt.x, omt_tgt.y ), 3, 0 ); return true; } @@ -3150,7 +3150,7 @@ bool basecamp::validate_sort_points() if( g->m.check_vehicle_zones( g->get_levz() ) ) { mgr.cache_vzones(); } - tripoint src_loc = bb_pos + point_north; + tripoint src_loc = bb_pos + point( 0, -1 ); const auto abspos = g->m.getabs( g->u.pos() ); if( !mgr.has_near( z_loot_unsorted, abspos ) || !mgr.has_near( z_camp_food, abspos ) || !mgr.has_loot_dest_near( abspos ) ) { @@ -3204,10 +3204,10 @@ point talk_function::om_dir_to_offset( const std::string &dir ) { std::map dir2pt = { { { "[B]", point_zero }, - { "[N]", point_north }, { "[S]", point_south }, - { "[E]", point_east }, { "[W]", point_west }, - { "[NE]", point_north_east }, { "[SE]", point_south_east }, - { "[NW]", point_north_west }, { "[SW]", point_south_west } + { "[N]", point( 0, -1 ) }, { "[S]", point( 0, 1 ) }, + { "[E]", point( 1, 0 ) }, { "[W]", point( -1, 0 ) }, + { "[NE]", point( 1, -1 ) }, { "[SE]", point( 1, 1 ) }, + { "[NW]", point( -1, -1 ) }, { "[SW]", point( -1, 1 ) } } }; return dir2pt[ dir ]; @@ -3570,7 +3570,7 @@ void basecamp::place_results( item result, bool by_radio ) { if( by_radio ) { tinymap target_bay; - target_bay.load( tripoint( omt_pos.x * 2, omt_pos.y * 2, omt_pos.z ), false ); + target_bay.load( omt_pos.x * 2, omt_pos.y * 2, omt_pos.z, false ); const tripoint &new_spot = target_bay.getlocal( get_dumping_spot() ); target_bay.add_item_or_charges( new_spot, result, true ); apply_camp_ownership( new_spot, 10 ); @@ -3601,8 +3601,9 @@ void basecamp::place_results( item result, bool by_radio ) void apply_camp_ownership( const tripoint &camp_pos, int radius ) { - for( const tripoint &p : g->m.points_in_rectangle( camp_pos + point( -radius, -radius ), - camp_pos + point( radius, radius ) ) ) { + for( const tripoint &p : g->m.points_in_rectangle( tripoint( camp_pos.x - radius, + camp_pos.y - radius, camp_pos.z ), tripoint( camp_pos.x + radius, camp_pos.y + radius, + camp_pos.z ) ) ) { auto items = g->m.i_at( p.x, p.y ); for( item &elem : items ) { elem.set_owner( g->faction_manager_ptr->get( faction_id( "your_followers" ) ) ); diff --git a/src/fault.cpp b/src/fault.cpp index 81b851431ee26..42c86f99f6f88 100644 --- a/src/fault.cpp +++ b/src/fault.cpp @@ -2,12 +2,10 @@ #include -#include "calendar.h" #include "debug.h" #include "json.h" #include "requirements.h" #include "translations.h" -#include "units.h" static std::map faults_all; @@ -39,13 +37,7 @@ void fault::load_fault( JsonObject &jo ) f.name_ = _( jo.get_string( "name" ) ); f.description_ = _( jo.get_string( "description" ) ); - if( jo.has_int( "time" ) ) { - // TODO: better have a from_moves function - f.time_ = to_moves( time_duration::from_turns( jo.get_int( "time" ) / 100 ) ); - } else if( jo.has_string( "time" ) ) { - f.time_ = to_moves( read_from_json_string( *jo.get_raw( "time" ), - time_duration::units ) ); - } + f.time_ = jo.get_int( "time" ); auto sk = jo.get_array( "skills" ); while( sk.has_more() ) { diff --git a/src/field.cpp b/src/field.cpp index 0592c8c04ece3..f4098e940c056 100644 --- a/src/field.cpp +++ b/src/field.cpp @@ -20,51 +20,6 @@ int field_entry::extra_radiation_max() const return type.obj().get_extra_radiation_max( intensity - 1 ); } -int field_entry::radiation_hurt_damage_min() const -{ - return type.obj().get_radiation_hurt_damage_min( intensity - 1 ); -} - -int field_entry::radiation_hurt_damage_max() const -{ - return type.obj().get_radiation_hurt_damage_max( intensity - 1 ); -} - -std::string field_entry::radiation_hurt_message() const -{ - return type.obj().get_radiation_hurt_message( intensity - 1 ); -} - -int field_entry::intensity_upgrade_chance() const -{ - return type.obj().get_intensity_upgrade_chance( intensity - 1 ); -} - -time_duration field_entry::intensity_upgrade_duration() const -{ - return type.obj().get_intensity_upgrade_duration( intensity - 1 ); -} - -int field_entry::monster_spawn_chance() const -{ - return type.obj().get_monster_spawn_chance( intensity - 1 ); -} - -int field_entry::monster_spawn_count() const -{ - return type.obj().get_monster_spawn_count( intensity - 1 ); -} - -int field_entry::monster_spawn_radius() const -{ - return type.obj().get_monster_spawn_radius( intensity - 1 ); -} - -mongroup_id field_entry::monster_spawn_group() const -{ - return type.obj().get_monster_spawn_group( intensity - 1 ); -} - float field_entry::light_emitted() const { return type.obj().get_light_emitted( intensity - 1 ); diff --git a/src/field.h b/src/field.h index 43909baa47ba3..94e81ba36c3e4 100644 --- a/src/field.h +++ b/src/field.h @@ -29,15 +29,6 @@ class field_entry int extra_radiation_min() const; int extra_radiation_max() const; - int radiation_hurt_damage_min() const; - int radiation_hurt_damage_max() const; - std::string radiation_hurt_message() const; - int intensity_upgrade_chance() const; - time_duration intensity_upgrade_duration() const; - int monster_spawn_chance() const; - int monster_spawn_count() const; - int monster_spawn_radius() const; - mongroup_id monster_spawn_group() const; float light_emitted() const; float translucency() const; diff --git a/src/field_type.cpp b/src/field_type.cpp index a88ff5023c788..b7c8b1788483f 100644 --- a/src/field_type.cpp +++ b/src/field_type.cpp @@ -63,23 +63,10 @@ int_id::int_id( const string_id &id ) : _id( id.id() ) { } -const field_intensity_level &field_type::get_intensity_level( int level ) const -{ - if( level < 0 || static_cast( level ) >= intensity_levels.size() ) { - // level + 1 for the original intensity number - debugmsg( "Unknown intensity level %d for field type %s.", level + 1, id.str() ); - return intensity_levels.back(); - } - return intensity_levels[level]; -} - void field_type::load( JsonObject &jo, const std::string & ) { optional( jo, was_loaded, "legacy_enum_id", legacy_enum_id, -1 ); JsonArray ja = jo.get_array( "intensity_levels" ); - if( !jo.has_array( "intensity_levels" ) || ja.empty() ) { - jo.throw_error( "No intensity levels defined for field type", "id" ); - } for( size_t i = 0; i < ja.size(); ++i ) { field_intensity_level intensity_level; field_intensity_level fallback_intensity_level = i > 0 ? intensity_levels[i - 1] : intensity_level; @@ -99,24 +86,6 @@ void field_type::load( JsonObject &jo, const std::string & ) fallback_intensity_level.extra_radiation_min ); optional( jao, was_loaded, "extra_radiation_max", intensity_level.extra_radiation_max, fallback_intensity_level.extra_radiation_max ); - optional( jao, was_loaded, "radiation_hurt_damage_min", intensity_level.radiation_hurt_damage_min, - fallback_intensity_level.radiation_hurt_damage_min ); - optional( jao, was_loaded, "radiation_hurt_damage_max", intensity_level.radiation_hurt_damage_max, - fallback_intensity_level.radiation_hurt_damage_max ); - optional( jao, was_loaded, "radiation_hurt_message", intensity_level.radiation_hurt_message, - fallback_intensity_level.radiation_hurt_message ); - optional( jao, was_loaded, "intensity_upgrade_chance", intensity_level.intensity_upgrade_chance, - fallback_intensity_level.intensity_upgrade_chance ); - optional( jao, was_loaded, "intensity_upgrade_duration", intensity_level.intensity_upgrade_duration, - fallback_intensity_level.intensity_upgrade_duration ); - optional( jao, was_loaded, "monster_spawn_chance", intensity_level.monster_spawn_chance, - fallback_intensity_level.monster_spawn_chance ); - optional( jao, was_loaded, "monster_spawn_count", intensity_level.monster_spawn_count, - fallback_intensity_level.monster_spawn_count ); - optional( jao, was_loaded, "monster_spawn_radius", intensity_level.monster_spawn_radius, - fallback_intensity_level.monster_spawn_radius ); - optional( jao, was_loaded, "monster_spawn_group", intensity_level.monster_spawn_group, - 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, "translucency", intensity_level.translucency, @@ -170,17 +139,20 @@ void field_type::load( JsonObject &jo, const std::string & ) optional( jo, was_loaded, "accelerated_decay", accelerated_decay, false ); optional( jo, was_loaded, "display_items", display_items, true ); optional( jo, was_loaded, "display_field", display_field, false ); - optional( jo, was_loaded, "wandering_field", wandering_field_id, "fd_null" ); + optional( jo, was_loaded, "wandering_field_id", wandering_field_id, "fd_null" ); } void field_type::finalize() { wandering_field = field_type_id( wandering_field_id ); - wandering_field_id.clear(); + wandering_field_id.empty(); } void field_type::check() const { + if( intensity_levels.empty() ) { + debugmsg( "No intensity levels defined for field type \"%s\".", id.c_str() ); + } int i = 0; for( auto &intensity_level : intensity_levels ) { i++; @@ -204,9 +176,6 @@ void field_types::finalize_all() { set_field_type_ids(); all_field_types.finalize(); - for( const field_type &fd : all_field_types.get_all() ) { - const_cast( fd ).finalize(); - } } void field_types::check_consistency() @@ -274,7 +243,6 @@ field_type_id fd_null, fd_hot_air3, fd_hot_air4, fd_fungicidal_gas, - fd_insecticidal_gas, fd_smoke_vent ; @@ -330,7 +298,6 @@ void field_types::set_field_type_ids() fd_hot_air3 = field_type_id( "fd_hot_air3" ); fd_hot_air4 = field_type_id( "fd_hot_air4" ); fd_fungicidal_gas = field_type_id( "fd_fungicidal_gas" ); - fd_insecticidal_gas = field_type_id( "fd_insecticidal_gas" ); fd_smoke_vent = field_type_id( "fd_smoke_vent" ); } diff --git a/src/field_type.h b/src/field_type.h index cca864aed38fa..3a38913c70a8e 100644 --- a/src/field_type.h +++ b/src/field_type.h @@ -16,7 +16,6 @@ #include "enums.h" #include "type_id.h" #include "string_id.h" -#include "translations.h" class JsonObject; @@ -32,18 +31,9 @@ struct field_intensity_level { int move_cost = 0; int extra_radiation_min = 0; int extra_radiation_max = 0; - int radiation_hurt_damage_min = 0; - int radiation_hurt_damage_max = 0; - std::string radiation_hurt_message; - int intensity_upgrade_chance = 0; - time_duration intensity_upgrade_duration = 0_turns; - int monster_spawn_chance = 0; - int monster_spawn_count = 0; - int monster_spawn_radius = 0; - mongroup_id monster_spawn_group; float light_emitted = 0.0f; float translucency = 0.0f; - int convection_temperature_mod = 0; + int convection_temperature_mod = 0.0f; }; struct field_type { @@ -93,69 +83,41 @@ struct field_type { field_type_id wandering_field; public: - const field_intensity_level &get_intensity_level( int level = 0 ) const; std::string get_name( int level = 0 ) const { - return _( get_intensity_level( level ).name ); + return intensity_levels[level].name; } uint32_t get_codepoint( int level = 0 ) const { - return get_intensity_level( level ).symbol; + return intensity_levels[level].symbol; } std::string get_symbol( int level = 0 ) const { - return utf32_to_utf8( get_intensity_level( level ).symbol ); + return utf32_to_utf8( intensity_levels[level].symbol ); } nc_color get_color( int level = 0 ) const { - return get_intensity_level( level ).color; + return intensity_levels[level].color; } bool get_dangerous( int level = 0 ) const { - return get_intensity_level( level ).dangerous; + return intensity_levels[level].dangerous; } bool get_transparent( int level = 0 ) const { - return get_intensity_level( level ).transparent; + return intensity_levels[level].transparent; } int get_move_cost( int level = 0 ) const { - return get_intensity_level( level ).move_cost; + return intensity_levels[level].move_cost; } int get_extra_radiation_min( int level = 0 ) const { - return get_intensity_level( level ).extra_radiation_min; + return intensity_levels[level].extra_radiation_min; } int get_extra_radiation_max( int level = 0 ) const { - return get_intensity_level( level ).extra_radiation_max; - } - int get_radiation_hurt_damage_min( int level = 0 ) const { - return intensity_levels[level].radiation_hurt_damage_min; - } - int get_radiation_hurt_damage_max( int level = 0 ) const { - return intensity_levels[level].radiation_hurt_damage_max; - } - std::string get_radiation_hurt_message( int level = 0 ) const { - return _( intensity_levels[level].radiation_hurt_message ); - } - int get_intensity_upgrade_chance( int level = 0 ) const { - return intensity_levels[level].intensity_upgrade_chance; - } - time_duration get_intensity_upgrade_duration( int level = 0 ) const { - return intensity_levels[level].intensity_upgrade_duration; - } - int get_monster_spawn_chance( int level = 0 ) const { - return intensity_levels[level].monster_spawn_chance; - } - int get_monster_spawn_count( int level = 0 ) const { - return intensity_levels[level].monster_spawn_count; - } - int get_monster_spawn_radius( int level = 0 ) const { - return intensity_levels[level].monster_spawn_radius; - } - mongroup_id get_monster_spawn_group( int level = 0 ) const { - return intensity_levels[level].monster_spawn_group; + return intensity_levels[level].extra_radiation_max; } float get_light_emitted( int level = 0 ) const { - return get_intensity_level( level ).light_emitted; + return intensity_levels[level].light_emitted; } float get_translucency( int level = 0 ) const { - return get_intensity_level( level ).translucency; + return intensity_levels[level].translucency; } int get_convection_temperature_mod( int level = 0 ) const { - return get_intensity_level( level ).convection_temperature_mod; + return intensity_levels[level].convection_temperature_mod; } bool is_dangerous() const { @@ -241,7 +203,6 @@ extern field_type_id fd_null, fd_hot_air3, fd_hot_air4, fd_fungicidal_gas, - fd_insecticidal_gas, fd_smoke_vent ; diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 253a2012d8832..436af83c3e18e 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -269,7 +269,7 @@ bool name_contains( const dirent &entry, const std::string &match, const bool at } const auto offset = at_end ? ( len_fname - len_match ) : 0; - return strstr( entry.d_name + offset, match.c_str() ) != nullptr; + return strstr( entry.d_name + offset, match.c_str() ) != 0; } //-------------------------------------------------------------------------------------------------- diff --git a/src/flood_fill.h b/src/flood_fill.h index 35b133a9e1093..f58eb4ef7d0fc 100644 --- a/src/flood_fill.h +++ b/src/flood_fill.h @@ -40,10 +40,10 @@ std::vector point_flood_fill_4_connected( const point &starting_point, if( predicate( current_point ) ) { filled_points.emplace_back( current_point ); - to_check.push( current_point + point_south ); - to_check.push( current_point + point_north ); - to_check.push( current_point + point_east ); - to_check.push( current_point + point_west ); + to_check.push( point( current_point.x, current_point.y + 1 ) ); + to_check.push( point( current_point.x, current_point.y - 1 ) ); + to_check.push( point( current_point.x + 1, current_point.y ) ); + to_check.push( point( current_point.x - 1, current_point.y ) ); } } diff --git a/src/game.cpp b/src/game.cpp index 69a49d6e5e65c..17ca01f23fb9f 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -47,7 +46,7 @@ #include "dependency_tree.h" #include "editmap.h" #include "enums.h" -#include "timed_event.h" +#include "event.h" #include "faction.h" #include "filesystem.h" #include "game_constants.h" @@ -204,6 +203,7 @@ const efftype_id effect_sleep( "sleep" ); const efftype_id effect_stunned( "stunned" ); const efftype_id effect_teleglow( "teleglow" ); const efftype_id effect_tetanus( "tetanus" ); +const efftype_id effect_under_op( "under_operation" ); const efftype_id effect_visuals( "visuals" ); const efftype_id effect_winded( "winded" ); const efftype_id effect_ridden( "ridden" ); @@ -255,13 +255,12 @@ game::game() : m( *map_ptr ), u( *u_ptr ), scent( *scent_ptr ), - timed_events( *timed_event_manager_ptr ), + events( *event_manager_ptr ), uquit( QUIT_NO ), new_game( false ), displaying_scent( false ), displaying_temperature( false ), displaying_visibility( false ), - displaying_radiation( false ), safe_mode( SAFE_MODE_ON ), pixel_minimap_option( 0 ), mostseen( 0 ), @@ -275,7 +274,7 @@ game::game() : { player_was_sleeping = false; reset_light_level(); - world_generator = std::make_unique(); + world_generator.reset( new worldfactory() ); // do nothing, everything that was in here is moved to init_data() which is called immediately after g = new game; in main.cpp // The reason for this move is so that g is not uninitialized when it gets to installing the parts into vehicles. } @@ -319,12 +318,6 @@ bool game::check_mod_data( const std::vector &opts, loading_ui &ui ) } if( check.empty() ) { - world_generator->set_active_world( nullptr ); - world_generator->init(); - const std::vector mods_empty; - WORLDPTR test_world = world_generator->make_new_world( mods_empty ); - world_generator->set_active_world( test_world ); - // if no loadable mods then test core data only try { load_core_data( ui ); @@ -332,21 +325,9 @@ bool game::check_mod_data( const std::vector &opts, loading_ui &ui ) } catch( const std::exception &err ) { std::cerr << "Error loading data from json: " << err.what() << std::endl; } - - std::string world_name = world_generator->active_world->world_name; - world_generator->delete_world( world_name, true ); - - MAPBUFFER.reset(); - overmap_buffer.clear(); } for( const auto &e : check ) { - world_generator->set_active_world( nullptr ); - world_generator->init(); - const std::vector mods_empty; - WORLDPTR test_world = world_generator->make_new_world( mods_empty ); - world_generator->set_active_world( test_world ); - if( !e.is_valid() ) { std::cerr << "Unknown mod: " << e.str() << std::endl; return false; @@ -376,13 +357,8 @@ bool game::check_mod_data( const std::vector &opts, loading_ui &ui ) } catch( const std::exception &err ) { std::cerr << "Error loading data: " << err.what() << std::endl; } - - std::string world_name = world_generator->active_world->world_name; - world_generator->delete_world( world_name, true ); - - MAPBUFFER.reset(); - overmap_buffer.clear(); } + return true; } @@ -513,7 +489,7 @@ void game::init_ui( const bool resized ) POSY = TERRAIN_WINDOW_HEIGHT / 2; w_terrain = w_terrain_ptr = catacurses::newwin( TERRAIN_WINDOW_HEIGHT, TERRAIN_WINDOW_WIDTH, - point( VIEW_OFFSET_X + sidebar_left, VIEW_OFFSET_Y ) ); + VIEW_OFFSET_Y, VIEW_OFFSET_X + sidebar_left ); werase( w_terrain ); /** @@ -532,14 +508,13 @@ void game::init_ui( const bool resized ) int _y = VIEW_OFFSET_Y; int _x = VIEW_OFFSET_X; - w_minimap = w_minimap_ptr = catacurses::newwin( MINIMAP_HEIGHT, MINIMAP_WIDTH, point( _x, _y ) ); + w_minimap = w_minimap_ptr = catacurses::newwin( MINIMAP_HEIGHT, MINIMAP_WIDTH, _y, _x ); werase( w_minimap ); - w_panel_adm = w_panel_adm_ptr = catacurses::newwin( 20, 75, point( ( TERMX / 2 ) - 38, - ( TERMY / 2 ) - 10 ) ); + w_panel_adm = w_panel_adm_ptr = catacurses::newwin( 15, 65, ( TERMY / 2 ) - 8, ( TERMX / 2 ) - 33 ); werase( w_panel_adm ); // need to init in order to avoid crash. gets updated by the panel code. - w_pixel_minimap = catacurses::newwin( 1, 1, point_zero ); + w_pixel_minimap = catacurses::newwin( 1, 1, 0, 0 ); liveview.init(); // Only refresh if we are in-game, otherwise all resources are not initialized @@ -633,14 +608,10 @@ void game::setup() uquit = QUIT_NO; // We haven't quit the game bVMonsterLookFire = true; - // invalidate calendar caches in case we were previously playing - // a different world - calendar::set_eternal_season( ::get_option( "ETERNAL_SEASON" ) ); - calendar::set_season_length( ::get_option( "SEASON_LENGTH" ) ); - weather.weather = WEATHER_CLEAR; // Start with some nice weather... // Weather shift in 30 - weather.nextweather = calendar::start_of_cataclysm + time_duration::from_hours( + // TODO: shouldn't that use calendar::start instead of INITIAL_TIME? + weather.nextweather = calendar::time_of_cataclysm + time_duration::from_hours( get_option( "INITIAL_TIME" ) ) + 30_minutes; turnssincelastmon = 0; //Auto safe mode init @@ -652,7 +623,7 @@ void game::setup() faction_manager_ptr->clear(); mission::clear_all(); Messages::clear_messages(); - timed_events = timed_event_manager(); + events = event_manager(); SCT.vSCT.clear(); //Delete pending messages @@ -680,14 +651,14 @@ special_game_id game::gametype() const void game::load_map( const tripoint &pos_sm ) { - m.load( pos_sm, true ); + m.load( pos_sm.x, pos_sm.y, pos_sm.z, true ); } // Set up all default values for a new game bool game::start_game() { if( !gamemode ) { - gamemode = std::make_unique(); + gamemode.reset( new special_game() ); } seed = rng_bits(); @@ -736,7 +707,7 @@ bool game::start_game() m.invalidate_map_cache( get_levz() ); m.build_map_cache( get_levz() ); // Start the overmap with out immediate neighborhood visible, this needs to be after place_player - overmap_buffer.reveal( u.global_omt_location().xy(), + overmap_buffer.reveal( point( u.global_omt_location().x, u.global_omt_location().y ), get_option( "DISTANCE_INITIAL_VISIBILITY" ), 0 ); u.moves = 0; @@ -951,7 +922,7 @@ void game::create_starting_npcs() std::shared_ptr tmp = std::make_shared(); tmp->normalize(); tmp->randomize( one_in( 2 ) ? NC_DOCTOR : NC_NONE ); - tmp->spawn_at_precise( { get_levx(), get_levy() }, u.pos() - point_south_east ); + tmp->spawn_at_precise( { get_levx(), get_levy() }, u.pos() - point( 1, 1 ) ); overmap_buffer.insert_npc( tmp ); tmp->form_opinion( u ); tmp->set_attitude( NPCATT_NULL ); @@ -1047,37 +1018,37 @@ bool game::cleanup_at_end() vRip.emplace_back( " _.%%%%%%@@@@@@%%%__/\\%@@%%@@@@@@@%%%%%%" ); } } else { - vRip.emplace_back( R"( _________ ____ )" ); - vRip.emplace_back( R"( _/ `/ \_ )" ); - vRip.emplace_back( R"( _/ _ _ \_. )" ); - vRip.emplace_back( R"( _%\ |_) | |_) \_ )" ); - vRip.emplace_back( R"( _/ \/ | \ | | \_ )" ); - vRip.emplace_back( R"( _/ \_ )" ); - vRip.emplace_back( R"(| |)" ); + vRip.emplace_back( " _________ ____ " ); + vRip.emplace_back( " _/ `/ \\_ " ); + vRip.emplace_back( " _/ _ _ \\_. " ); + vRip.emplace_back( " _%\\ |_) | |_) \\_ " ); + vRip.emplace_back( " _/ \\/ | \\ | | \\_ " ); + vRip.emplace_back( " _/ \\_ " ); + vRip.emplace_back( "| |" ); iNameLine = vRip.size(); - vRip.emplace_back( R"( ) < )" ); - vRip.emplace_back( R"(| |)" ); - vRip.emplace_back( R"(| |)" ); - vRip.emplace_back( R"(| _ |)" ); - vRip.emplace_back( R"(|__/ |)" ); + vRip.emplace_back( " ) < " ); + vRip.emplace_back( "| |" ); + vRip.emplace_back( "| |" ); + vRip.emplace_back( "| _ |" ); + vRip.emplace_back( "|__/ |" ); iMaxWidth = vRip[vRip.size() - 1].length(); - vRip.emplace_back( R"( / `--. |)" ); - vRip.emplace_back( R"(| ( )" ); + vRip.emplace_back( " / `--. |" ); + vRip.emplace_back( "| ( " ); iInfoLine = vRip.size(); - vRip.emplace_back( R"(| |)" ); - vRip.emplace_back( R"(| |)" ); - vRip.emplace_back( R"(| % . |)" ); - vRip.emplace_back( R"(| @` %% |)" ); - vRip.emplace_back( R"(| %@%@%\ * %`%@%|)" ); - vRip.emplace_back( R"(%%@@@.%@%\%% `\ %%.%%@@%@)" ); - vRip.emplace_back( R"(@%@@%%%%%@@@@@@%%%%%%%%@@%%@@@%%%@%%@)" ); + vRip.emplace_back( "| |" ); + vRip.emplace_back( "| |" ); + vRip.emplace_back( "| % . |" ); + vRip.emplace_back( "| @` %% |" ); + vRip.emplace_back( "| %@%@%\\ * %`%@%|" ); + vRip.emplace_back( "%%@@@.%@%\\%% `\\ %%.%%@@%@" ); + vRip.emplace_back( "@%@@%%%%%@@@@@@%%%%%%%%@@%%@@@%%%@%%@" ); } - 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; + 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_rip = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iOffsetX, iOffsetY ) ); + catacurses::window w_rip = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, + iOffsetX ); draw_border( w_rip ); sfx::do_player_death_hurt( g->u, true ); @@ -1086,8 +1057,8 @@ bool game::cleanup_at_end() sfx::fade_audio_group( 3, 2000 ); sfx::fade_audio_group( 4, 2000 ); - for( size_t iY = 0; iY < vRip.size(); ++iY ) { - for( size_t iX = 0; iX < vRip[iY].length(); ++iX ) { + for( unsigned int iY = 0; iY < vRip.size(); ++iY ) { + for( unsigned int iX = 0; iX < vRip[iY].length(); ++iX ) { char cTemp = vRip[iY][iX]; if( cTemp != ' ' ) { nc_color ncColor = c_light_gray; @@ -1105,7 +1076,7 @@ bool game::cleanup_at_end() ncColor = c_red; } - mvwputch( w_rip, iY + 1, iX + FULL_SCREEN_WIDTH / 2 - ( iMaxWidth / 2 ), ncColor, + mvwputch( w_rip, iY + 1, iX + ( FULL_SCREEN_WIDTH / 2 ) - ( iMaxWidth / 2 ), ncColor, vRip[iY][iX] ); } } @@ -1116,10 +1087,10 @@ bool game::cleanup_at_end() center_print( w_rip, iInfoLine++, c_white, _( "Survived:" ) ); - const time_duration survived = calendar::turn - calendar::start_of_cataclysm; - const int minutes = to_minutes( survived ) % 60; - const int hours = to_hours( survived ) % 24; - const int days = to_days( survived ); + int turns = calendar::turn - calendar::start; + int minutes = ( turns / MINUTES( 1 ) ) % 60; + int hours = ( turns / HOURS( 1 ) ) % 24; + int days = turns / DAYS( 1 ); if( days > 0 ) { sTemp = string_format( "%dd %dh %dm", days, hours, minutes ); @@ -1142,22 +1113,22 @@ bool game::cleanup_at_end() ssTemp << iTotalKills; sTemp = _( "Kills:" ); - mvwprintz( w_rip, 1 + iInfoLine++, FULL_SCREEN_WIDTH / 2 - 5, c_light_gray, + mvwprintz( w_rip, 1 + iInfoLine++, ( FULL_SCREEN_WIDTH / 2 ) - 5, c_light_gray, ( sTemp + " " ) ); wprintz( w_rip, c_magenta, ssTemp.str() ); sTemp = _( "In memory of:" ); - mvwprintz( w_rip, iNameLine++, FULL_SCREEN_WIDTH / 2 - utf8_width( sTemp ) / 2, c_light_gray, + mvwprintz( w_rip, iNameLine++, ( FULL_SCREEN_WIDTH / 2 ) - ( sTemp.length() / 2 ), c_light_gray, sTemp ); sTemp = u.name; - mvwprintz( w_rip, iNameLine++, FULL_SCREEN_WIDTH / 2 - utf8_width( sTemp ) / 2, c_white, sTemp ); + mvwprintz( w_rip, iNameLine++, ( FULL_SCREEN_WIDTH / 2 ) - ( sTemp.length() / 2 ), c_white, sTemp ); sTemp = _( "Last Words:" ); - mvwprintz( w_rip, iNameLine++, FULL_SCREEN_WIDTH / 2 - utf8_width( sTemp ) / 2, c_light_gray, + mvwprintz( w_rip, iNameLine++, ( FULL_SCREEN_WIDTH / 2 ) - ( sTemp.length() / 2 ), c_light_gray, sTemp ); - int iStartX = FULL_SCREEN_WIDTH / 2 - ( ( iMaxWidth - 4 ) / 2 ); + int iStartX = ( FULL_SCREEN_WIDTH / 2 ) - ( ( iMaxWidth - 4 ) / 2 ); std::string sLastWords = string_input_popup() .window( w_rip, iStartX, iNameLine, iStartX + iMaxWidth - 4 - 1 ) .max_length( iMaxWidth - 4 - 1 ) @@ -1230,7 +1201,7 @@ bool game::cleanup_at_end() popup( message.str(), PF_NONE ); } if( gamemode ) { - gamemode = std::make_unique(); // null gamemode or something.. + gamemode.reset( new special_game() ); // null gamemode or something.. } } @@ -1354,7 +1325,8 @@ void game::calc_driving_offset( vehicle *veh ) // Turn the offset into a vector that increments the offset toward the desired position // instead of setting it there instantly, should smooth out jerkiness. - const point offset_difference( -driving_view_offset + point( offset.x, offset.y ) ); + const point offset_difference( offset.x - driving_view_offset.x, + offset.y - driving_view_offset.y ); const point offset_sign( ( offset_difference.x < 0 ) ? -1 : 1, ( offset_difference.y < 0 ) ? -1 : 1 ); @@ -1380,7 +1352,7 @@ bool game::do_turn() new_game = false; } else { gamemode->per_turn(); - calendar::turn += 1_turns; + calendar::turn.increment(); } // starting a new turn, clear out temperature cache @@ -1390,7 +1362,7 @@ bool game::do_turn() load_npcs(); } - timed_events.process(); + events.process(); mission::process_all(); // If controlling a vehicle that is owned by someone else if( u.in_vehicle && u.controlling_vehicle ) { @@ -1527,7 +1499,7 @@ bool game::do_turn() // m.vehmove used to do this, but now it only give them moves instead. for( auto &elem : MAPBUFFER ) { tripoint sm_loc = elem.first; - point sm_topleft = sm_to_ms_copy( sm_loc.xy() ); + point sm_topleft = sm_to_ms_copy( sm_loc.x, sm_loc.y ); point in_reality = m.getlocal( sm_topleft ); submap *sm = elem.second; @@ -1824,7 +1796,7 @@ int get_convection_temperature( const tripoint &location ) // Nullify lava modifier when there is open fire if( fd.first.obj().has_fire ) { lava_mod = 0; - } + }; temp_mod += fd.second.convection_temperature_mod(); } return temp_mod + lava_mod; @@ -2209,7 +2181,7 @@ bool game::handle_mouseview( input_context &ctxt, std::string &action ) tripoint game::mouse_edge_scrolling( input_context ctxt, const int speed ) { const int rate = get_option( "EDGE_SCROLL" ); - tripoint ret; + tripoint ret = tripoint_zero; if( rate == -1 ) { // Fast return when the option is disabled. return ret; @@ -2228,14 +2200,14 @@ tripoint game::mouse_edge_scrolling( input_context ctxt, const int speed ) if( event.type == CATA_INPUT_MOUSE ) { const int threshold_x = projected_window_width() / 100; const int threshold_y = projected_window_height() / 100; - if( event.mouse_pos.x <= threshold_x ) { + if( event.mouse_x <= threshold_x ) { ret.x -= speed; - } else if( event.mouse_pos.x >= projected_window_width() - threshold_x ) { + } else if( event.mouse_x >= projected_window_width() - threshold_x ) { ret.x += speed; } - if( event.mouse_pos.y <= threshold_y ) { + if( event.mouse_y <= threshold_y ) { ret.y -= speed; - } else if( event.mouse_pos.y >= projected_window_height() - threshold_y ) { + } else if( event.mouse_y >= projected_window_height() - threshold_y ) { ret.y += speed; } last_mouse_edge_scroll_vector = ret; @@ -2367,7 +2339,6 @@ input_context get_default_mode_input_context() ctxt.register_action( "debug_scent" ); ctxt.register_action( "debug_temp" ); ctxt.register_action( "debug_visibility" ); - ctxt.register_action( "debug_radiation" ); ctxt.register_action( "debug_mode" ); ctxt.register_action( "zoom_out" ); ctxt.register_action( "zoom_in" ); @@ -2495,7 +2466,7 @@ bool game::try_get_right_click_action( action_id &act, const tripoint &mouse_tar act = ACTION_FIRE; } else if( is_adjacent && - m.close_door( tripoint( mouse_target.xy(), u.posz() ), !m.is_outside( u.pos() ), + m.close_door( tripoint( mouse_target.x, mouse_target.y, u.posz() ), !m.is_outside( u.pos() ), true ) ) { act = ACTION_CLOSE; } else if( is_self ) { @@ -2669,7 +2640,7 @@ void game::load( const save_t &name ) u.recalc_sight_limits(); if( !gamemode ) { - gamemode = std::make_unique(); + gamemode.reset( new special_game() ); } safe_mode = get_option( "SAFEMODE" ) ? SAFE_MODE_ON : SAFE_MODE_OFF; @@ -2704,12 +2675,6 @@ void game::load( const save_t &name ) } } - // populate calendar caches now, after active world is set, but before we do - // anything else, to ensure they pick up the correct value from the save's - // worldoptions - calendar::set_eternal_season( ::get_option( "ETERNAL_SEASON" ) ); - calendar::set_season_length( ::get_option( "SEASON_LENGTH" ) ); - u.reset(); draw(); } @@ -2983,8 +2948,8 @@ void game::write_memorial_file( std::string sLastWords ) void game::disp_kills() { 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 ) ) ); + std::max( 0, ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ), + std::max( 0, ( TERMX - FULL_SCREEN_WIDTH ) / 2 ) ); std::vector data; int totalkills = 0; @@ -3045,8 +3010,8 @@ void game::disp_kills() 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 ) ) ); + std::max( 0, ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ), + std::max( 0, ( TERMX - FULL_SCREEN_WIDTH ) / 2 ) ); epilogue epi; // TODO: This search needs to be expanded to all NPCs for( auto elem : follower_ids ) { @@ -3068,8 +3033,8 @@ void game::disp_NPC_epilogues() void game::disp_faction_ends() { 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 ) ) ); + std::max( 0, ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ), + std::max( 0, ( TERMX - FULL_SCREEN_WIDTH ) / 2 ) ); std::vector data; for( const faction &elem : faction_manager_ptr->all() ) { @@ -3179,8 +3144,8 @@ 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 ) ); + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); const tripoint ppos = u.global_omt_location(); const tripoint &lpos = u.pos(); @@ -3223,9 +3188,9 @@ void game::draw() } //temporary fix for updating visibility for minimap - ter_view_p.z = ( u.pos() + u.view_offset ).z; - m.build_map_cache( ter_view_p.z ); - m.update_visibility_cache( ter_view_p.z ); + ter_view_z = ( u.pos() + u.view_offset ).z; + m.build_map_cache( ter_view_z ); + m.update_visibility_cache( ter_view_z ); werase( w_terrain ); draw_ter(); @@ -3242,7 +3207,7 @@ void game::draw_panels( bool force_draw ) void game::draw_panels( size_t column, size_t index, bool force_draw ) { static int previous_turn = -1; - const int current_turn = to_turns( calendar::turn - calendar::turn_zero ); + const int current_turn = calendar::turn; const bool draw_this_turn = current_turn > previous_turn || force_draw; auto &mgr = panel_manager::get_manager(); int y = 0; @@ -3265,19 +3230,17 @@ void game::draw_panels( size_t column, size_t index, bool force_draw ) h += spacer; if( panel.toggle && panel.render() && h > 0 ) { if( panel.always_draw || draw_this_turn ) { - panel.draw( u, catacurses::newwin( h, panel.get_width(), - point( sidebar_right ? TERMX - panel.get_width() : 0, y ) ) ); + panel.draw( u, catacurses::newwin( h, panel.get_width(), y, + sidebar_right ? TERMX - panel.get_width() : 0 ) ); } if( show_panel_adm ) { - const std::string panel_name = _( panel.get_name() ); - const int panel_name_width = utf8_width( panel_name ); - auto label = catacurses::newwin( 1, panel_name_width, point( sidebar_right ? - TERMX - panel.get_width() - panel_name_width - 1 : panel.get_width() + 1, y ) ); + auto label = catacurses::newwin( 1, panel.get_name().length(), y, sidebar_right ? + TERMX - panel.get_width() - panel.get_name().length() - 1 : panel.get_width() + 1 ); werase( label ); - mvwprintz( label, 0, 0, c_light_red, panel_name ); + mvwprintz( label, 0, 0, c_light_red, _( panel.get_name() ) ); wrefresh( label ); - label = catacurses::newwin( h, 1, - point( sidebar_right ? TERMX - panel.get_width() - 1 : panel.get_width(), y ) ); + label = catacurses::newwin( h, 1, y, + sidebar_right ? TERMX - panel.get_width() - 1 : panel.get_width() ); werase( label ); if( h == 1 ) { mvwputch( label, 0, 0, c_light_red, LINE_OXOX ); @@ -3313,7 +3276,7 @@ void game::draw_critter( const Creature &critter, const tripoint ¢er ) return; } if( critter.posz() != center.z && m.has_zlevels() ) { - static constexpr tripoint up_tripoint( tripoint_above ); + static constexpr tripoint up_tripoint( 0, 0, 1 ); if( critter.posz() == center.z - 1 && ( debug_mode || u.sees( critter ) ) && m.valid_move( critter.pos(), critter.pos() + up_tripoint, false, true ) ) { @@ -3326,7 +3289,7 @@ void game::draw_critter( const Creature &critter, const tripoint ¢er ) return; } if( u.sees( critter ) || &critter == &u ) { - critter.draw( w_terrain, center.xy(), false ); + critter.draw( w_terrain, center.x, center.y, false ); return; } @@ -3351,7 +3314,9 @@ void game::draw_ter( const bool draw_sounds ) void game::draw_ter( const tripoint ¢er, const bool looking, const bool draw_sounds ) { - ter_view_p = center; + ter_view_x = center.x; + ter_view_y = center.y; + ter_view_z = center.z; const int posx = center.x; const int posy = center.y; @@ -3364,7 +3329,7 @@ void game::draw_ter( const tripoint ¢er, const bool looking, const bool draw m.draw( w_terrain, center ); if( draw_sounds ) { - draw_footsteps( w_terrain, tripoint( -center.x, -center.y, center.z ) + point( POSX, POSY ) ); + draw_footsteps( w_terrain, {POSX - center.x, POSY - center.y, center.z} ); } for( Creature &critter : all_creatures() ) { @@ -3409,7 +3374,7 @@ void game::draw_ter( const tripoint ¢er, const bool looking, const bool draw draw_veh_dir_indicator( true ); } // Place the cursor over the player as is expected by screen readers. - wmove( w_terrain, -center.xy() + g->u.pos().xy() + point( POSX, POSY ) ); + wmove( w_terrain, POSY + g->u.pos().y - center.y, POSX + g->u.pos().x - center.x ); } cata::optional game::get_veh_dir_indicator_location( bool next ) const @@ -3675,7 +3640,7 @@ float game::natural_light_level( const int zlev ) const // Sunlight/moonlight related stuff if( !weather.lightning_active ) { - ret = sunlight( calendar::turn ); + ret = calendar::turn.sunlight(); } else { // Recent lightning strike has lit the area ret = DAYLIGHT_LEVEL; @@ -3689,10 +3654,10 @@ float game::natural_light_level( const int zlev ) const float mod_ret = -1; // Each artifact change does std::max(mod_ret, new val) since a brighter end value // will trump a lower one. - if( const timed_event *e = timed_events.get( TIMED_EVENT_DIM ) ) { - // TIMED_EVENT_DIM slowly dims the natural sky level, then relights it. + if( const event *e = events.get( EVENT_DIM ) ) { + // EVENT_DIM slowly dims the natural sky level, then relights it. const time_duration left = e->when - calendar::turn; - // TIMED_EVENT_DIM has an occurrence date of turn + 50, so the first 25 dim it, + // EVENT_DIM has an occurrence date of turn + 50, so the first 25 dim it, if( left > 25_turns ) { mod_ret = std::max( static_cast( mod_ret ), ( ret * ( left - 25_turns ) ) / 25_turns ); // and the last 25 scale back towards normal. @@ -3700,8 +3665,8 @@ float game::natural_light_level( const int zlev ) const mod_ret = std::max( static_cast( mod_ret ), ( ret * ( 25_turns - left ) ) / 25_turns ); } } - if( timed_events.queued( TIMED_EVENT_ARTIFACT_LIGHT ) ) { - // TIMED_EVENT_ARTIFACT_LIGHT causes everywhere to become as bright as day. + if( events.queued( EVENT_ARTIFACT_LIGHT ) ) { + // EVENT_ARTIFACT_LIGHT causes everywhere to become as bright as day. mod_ret = std::max( ret, DAYLIGHT_LEVEL ); } // If we had a changed light level due to an artifact event then it overwrites @@ -3773,8 +3738,8 @@ std::unordered_set game::get_fishable_locations( int distance, const t std::unordered_set visited; - const tripoint fishing_boundary_min( fish_pos + point( -distance, -distance ) ); - const tripoint fishing_boundary_max( fish_pos + point( distance, distance ) ); + const tripoint fishing_boundary_min( fish_pos.x - distance, fish_pos.y - distance, fish_pos.z ); + const tripoint fishing_boundary_max( fish_pos.x + distance, fish_pos.y + distance, fish_pos.z ); const box fishing_boundaries( fishing_boundary_min, fishing_boundary_max ); @@ -3801,10 +3766,10 @@ std::unordered_set game::get_fishable_locations( int distance, const t if( m.has_flag( "FISHABLE", current_point ) ) { fishable_terrain.emplace( current_point ); - to_check.push( current_point + point_south ); - to_check.push( current_point + point_north ); - to_check.push( current_point + point_east ); - to_check.push( current_point + point_west ); + to_check.push( tripoint( current_point.x, current_point.y + 1, current_point.z ) ); + to_check.push( tripoint( current_point.x, current_point.y - 1, current_point.z ) ); + to_check.push( tripoint( current_point.x + 1, current_point.y, current_point.z ) ); + to_check.push( tripoint( current_point.x - 1, current_point.y, current_point.z ) ); } } return; @@ -3863,8 +3828,7 @@ void game::mon_info( const catacurses::window &w, int hor_padding ) new_seen_mon.clear(); static int previous_turn = 0; - // @todo change current_turn to time_point - const int current_turn = to_turns( calendar::turn - calendar::turn_zero ); + const int current_turn = calendar::turn; const int sm_ignored_turns = get_option( "SAFEMODEIGNORETURNS" ); for( auto &c : u.get_visible_creatures( MAPSIZE_X ) ) { @@ -4189,7 +4153,7 @@ void game::monmove() cleanup_dead(); // Make sure these don't match the first time around. - tripoint cached_lev = m.get_abs_sub() + tripoint_east; + tripoint cached_lev = m.get_abs_sub() + tripoint( 1, 0, 0 ); // used to force update of the monster factions if a monster has changed its z-level. bool force_mfactions_update = false; @@ -4298,7 +4262,7 @@ void game::monmove() int turns = 0; m.creature_in_field( guy ); 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.has_effect( effect_under_op ) ) && guy.moves > 0 && turns < 10 ) { int moves = guy.moves; guy.move(); @@ -4736,10 +4700,8 @@ bool game::add_zombie( monster &critter, bool pin_upgrade ) } critter.last_updated = calendar::turn; - // @todo change last_baby to time_point - critter.last_baby = to_turn( calendar::turn ); - // @todo change last_biosig to time_point - critter.last_biosig = to_turn( calendar::turn ); + critter.last_baby = calendar::turn; + critter.last_biosig = calendar::turn; return critter_tracker->add( critter ); } @@ -5082,7 +5044,7 @@ void game::use_item( int pos ) void game::exam_vehicle( vehicle &veh, int cx, int cy ) { - auto act = veh_interact::run( veh, point( cx, cy ) ); + auto act = veh_interact::run( veh, cx, cy ); if( act ) { u.moves = 0; u.assign_activity( act ); @@ -5186,7 +5148,7 @@ bool game::forced_door_closing( const tripoint &p, const ter_id &door_type, int } } - m.ter_set( point( x, y ), door_type ); + m.ter_set( x, y, door_type ); if( m.has_flag( "NOITEM", x, y ) ) { map_stack items = m.i_at( x, y ); for( map_stack::iterator it = items.begin(); it != items.end(); ) { @@ -5274,49 +5236,23 @@ void game::control_vehicle() } veh->start_engines( true ); } - } else { // Start looking for nearby vehicle controls. - int num_valid_controls = 0; - cata::optional vehicle_position; - cata::optional vehicle_controls; - for( const tripoint elem : m.points_in_radius( g->u.pos(), 1 ) ) { - if( const optional_vpart_position vp = m.veh_at( elem ) ) { - const cata::optional controls = vp.value().part_with_feature( "CONTROLS", true ); - if( controls ) { - num_valid_controls++; - vehicle_position = elem; - vehicle_controls = controls; - } - } + } else { + const cata::optional examp_ = choose_adjacent( _( "Control vehicle where?" ) ); + if( !examp_ ) { + return; } - if( num_valid_controls < 1 ) { - add_msg( _( "No vehicle controls found." ) ); + const optional_vpart_position vp = m.veh_at( *examp_ ); + if( !vp ) { + add_msg( _( "No vehicle there." ) ); return; - } else if( num_valid_controls > 1 ) { - vehicle_position = choose_adjacent( _( "Control vehicle where?" ) ); - if( !vehicle_position ) { - return; - } - const optional_vpart_position vp = m.veh_at( *vehicle_position ); - if( vp ) { - vehicle_controls = vp.value().part_with_feature( "CONTROLS", true ); - if( !vehicle_controls ) { - add_msg( _( "The vehicle doesn't have controls there." ) ); - return; - } - } else { - add_msg( _( "No vehicle there." ) ); - return; - } } - // If we hit neither of those, there's only one set of vehicle controls, which should already have been found. - if( vehicle_controls ) { - veh = &vehicle_controls->vehicle(); + veh = &vp->vehicle(); + veh_part = vp->part_index(); + if( veh->avail_part_with_feature( veh_part, "CONTROLS", true ) >= 0 ) { if( !veh->handle_potential_theft( dynamic_cast( u ) ) ) { return; } - veh->use_controls( *vehicle_position ); - //May be folded up (destroyed), so need to re-get it - veh = g->remoteveh(); + veh->use_controls( *examp_ ); } } if( veh ) { @@ -5462,7 +5398,7 @@ void game::examine() u.manual_examine = false; } -static std::string get_fire_fuel_string( const tripoint &examp ) +static const std::string get_fire_fuel_string( const tripoint &examp ) { if( g->m.has_flag( TFLAG_FIRE_CONTAINER, examp ) ) { field_entry *fire = g->m.get_field( examp, fd_fire ); @@ -5535,44 +5471,35 @@ void game::examine( const tripoint &examp ) Creature *c = critter_at( examp ); if( c != nullptr ) { monster *mon = dynamic_cast( c ); - if( mon != nullptr && mon->has_effect( effect_pet ) && !u.is_mounted() ) { + if( mon != nullptr && mon->has_effect( effect_pet ) && !u.has_effect( effect_riding ) ) { if( monexamine::pet_menu( *mon ) ) { return; } - } else if( mon && mon->has_flag( MF_RIDEABLE_MECH ) && !mon->has_effect( effect_pet ) ) { - if( monexamine::mech_hack( *mon ) ) { - return; - } - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_warning, _( "You cannot do that while mounted." ) ); } npc *np = dynamic_cast( c ); - if( np != nullptr && !u.is_mounted() ) { + if( np != nullptr && !u.has_effect( effect_riding ) ) { if( npc_menu( *np ) ) { return; } - } else if( np != nullptr && u.is_mounted() ) { + } else if( np != nullptr && u.has_effect( effect_riding ) ) { add_msg( m_warning, _( "You cannot do that while mounted." ) ); } } const optional_vpart_position vp = m.veh_at( examp ); - if( vp && u.is_mounted() ) { - if( !u.mounted_creature->has_flag( MF_RIDEABLE_MECH ) ) { - add_msg( m_warning, _( "You cannot interact with a vehicle while mounted." ) ); - } else { - vp->vehicle().interact_with( examp, vp->part_index() ); - return; - } - } else if( vp && !u.is_mounted() ) { + if( vp && !u.has_effect( effect_riding ) ) { vp->vehicle().interact_with( examp, vp->part_index() ); return; + } else if( vp && u.has_effect( effect_riding ) ) { + add_msg( m_warning, _( "You cannot interact with a vehicle while mounted." ) ); } - if( m.has_flag( "CONSOLE", examp ) && !u.is_mounted() ) { + if( m.has_flag( "CONSOLE", examp ) && !u.has_effect( effect_riding ) ) { use_computer( examp ); return; - } else if( m.has_flag( "CONSOLE", examp ) && u.is_mounted() ) { + } else if( m.has_flag( "CONSOLE", examp ) && u.has_effect( effect_riding ) ) { add_msg( m_warning, _( "You cannot use a console while mounted." ) ); } const furn_t &xfurn_t = m.furn( examp ).obj(); @@ -5580,14 +5507,14 @@ void game::examine( const tripoint &examp ) const tripoint player_pos = u.pos(); - if( m.has_furn( examp ) && !u.is_mounted() ) { + if( m.has_furn( examp ) && !u.has_effect( effect_riding ) ) { xfurn_t.examine( u, examp ); - } else if( m.has_furn( examp ) && u.is_mounted() ) { + } else if( m.has_furn( examp ) && u.has_effect( effect_riding ) ) { add_msg( m_warning, _( "You cannot do that while mounted." ) ); } else { - if( !u.is_mounted() ) { + if( !u.has_effect( effect_riding ) ) { xter_t.examine( u, examp ); - } else if( u.is_mounted() && xter_t.examine == &iexamine::none ) { + } else if( u.has_effect( effect_riding ) && xter_t.examine == &iexamine::none ) { xter_t.examine( u, examp ); } else { add_msg( m_warning, _( "You cannot do that while mounted." ) ); @@ -5605,12 +5532,12 @@ void game::examine( const tripoint &examp ) none = false; } - if( !m.tr_at( examp ).is_null() && !u.is_mounted() ) { + if( !m.tr_at( examp ).is_null() && !u.has_effect( effect_riding ) ) { iexamine::trap( u, examp ); draw_ter(); wrefresh( w_terrain ); draw_panels(); - } else if( !m.tr_at( examp ).is_null() && u.is_mounted() ) { + } else if( !m.tr_at( examp ).is_null() && u.has_effect( effect_riding ) ) { add_msg( m_warning, _( "You cannot do that while mounted." ) ); } @@ -5807,7 +5734,7 @@ void game::print_all_tile_info( const tripoint &lp, const catacurses::window &w_ } auto this_sound = sounds::sound_at( lp ); if( !this_sound.empty() ) { - mvwprintw( w_look, point( 1, ++line ), _( "You heard %s from here." ), this_sound ); + mvwprintw( w_look, ++line, 1, _( "You heard %s from here." ), this_sound ); } else { // Check other z-levels tripoint tmp = lp; @@ -5818,7 +5745,7 @@ void game::print_all_tile_info( const tripoint &lp, const catacurses::window &w_ auto zlev_sound = sounds::sound_at( tmp ); if( !zlev_sound.empty() ) { - mvwprintw( w_look, point( 1, ++line ), tmp.z > lp.z ? + mvwprintw( w_look, ++line, 1, tmp.z > lp.z ? _( "You heard %s from above." ) : _( "You heard %s from below." ), zlev_sound ); } } @@ -5850,7 +5777,7 @@ void game::print_visibility_info( const catacurses::window &w_look, int column, break; } - mvwprintw( w_look, point( line, column ), visibility_message ); + mvwprintw( w_look, column, line, visibility_message ); line += 2; } @@ -5875,7 +5802,7 @@ void game::print_terrain_info( const tripoint &lp, const catacurses::window &w_l 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: " ) ); + mvwprintw( w_look, ++lines, column, _( "Lighting: " ) ); wprintz( w_look, ll.second, ll.first ); } @@ -5887,7 +5814,7 @@ void game::print_terrain_info( const tripoint &lp, const catacurses::window &w_l if( m.has_zlevels() && lp.z > -OVERMAP_DEPTH && !m.has_floor( lp ) ) { // Print info about stuff below - tripoint below( lp.xy(), lp.z - 1 ); + tripoint below( lp.x, lp.y, lp.z - 1 ); std::string tile_below = m.tername( below ); if( m.has_furn( below ) ) { tile_below += "; " + m.furnname( below ); @@ -5962,7 +5889,7 @@ 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 ); + mvwprintw( w_look, ++line, column, _( "There is a %s there. Parts:" ), veh->name ); line = veh->print_part_list( w_look, ++line, last_line, getmaxx( w_look ), veh_part ); } } @@ -6004,7 +5931,7 @@ void game::print_items_info( const tripoint &lp, const catacurses::window &w_loo if( !m.sees_some_items( lp, u ) ) { return; } else if( m.has_flag( "CONTAINER", lp ) && !m.could_see_items( lp, u ) ) { - mvwprintw( w_look, point( column, ++line ), _( "You cannot see what is inside of it." ) ); + mvwprintw( w_look, ++line, column, _( "You cannot see what is inside of it." ) ); } else if( u.has_effect( effect_blind ) || u.worn_with_flag( "BLIND" ) ) { mvwprintz( w_look, ++line, column, c_yellow, _( "There's something there, but you can't see what it is." ) ); @@ -6152,15 +6079,15 @@ void game::zones_manager() TERMX + VIEW_OFFSET_X - width : VIEW_OFFSET_X; int w_zone_height = TERMY - zone_ui_height - VIEW_OFFSET_Y * 2; catacurses::window w_zones = catacurses::newwin( w_zone_height - 2, width - 2, - point( offsetX + 1, VIEW_OFFSET_Y + 1 ) ); + VIEW_OFFSET_Y + 1, offsetX + 1 ); catacurses::window w_zones_border = catacurses::newwin( w_zone_height, width, - point( offsetX, VIEW_OFFSET_Y ) ); + VIEW_OFFSET_Y, offsetX ); catacurses::window w_zones_info = catacurses::newwin( zone_ui_height - zone_options_height - 1, - width - 2, point( offsetX + 1, w_zone_height + VIEW_OFFSET_Y ) ); + width - 2, w_zone_height + VIEW_OFFSET_Y, offsetX + 1 ); catacurses::window w_zones_info_border = catacurses::newwin( zone_ui_height, width, - point( offsetX, w_zone_height + VIEW_OFFSET_Y ) ); + w_zone_height + VIEW_OFFSET_Y, offsetX ); catacurses::window w_zones_options = catacurses::newwin( zone_options_height - 1, width - 2, - point( offsetX + 1, TERMY - zone_options_height - VIEW_OFFSET_Y ) ); + TERMY - zone_options_height - VIEW_OFFSET_Y, offsetX + 1 ); zones_manager_draw_borders( w_zones_border, w_zones_info_border, zone_ui_height, width ); zones_manager_shortcuts( w_zones_info ); @@ -6368,7 +6295,7 @@ void game::zones_manager() as_m.entries.emplace_back( 1, true, '1', _( "Edit name" ) ); as_m.entries.emplace_back( 2, true, '2', _( "Edit type" ) ); as_m.entries.emplace_back( 3, zone.get_options().has_options(), '3', - zone.get_type() == zone_type_id( "LOOT_CUSTOM" ) ? _( "Edit filter" ) : _( "Edit options" ) ); + _( "Edit options" ) ); as_m.entries.emplace_back( 4, !zone.get_is_vehicle(), '4', _( "Edit position" ) ); as_m.query(); @@ -6659,7 +6586,7 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e int la_x = TERMX - panel_width; int la_h = height; int la_w = panel_width; - w_info = catacurses::newwin( la_h, la_w, point( la_x, la_y ) ); + w_info = catacurses::newwin( la_h, la_w, la_y, la_x ); bNewWindow = true; } @@ -6688,7 +6615,6 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e ctxt.register_action( "debug_scent" ); ctxt.register_action( "debug_temp" ); ctxt.register_action( "debug_visibility" ); - ctxt.register_action( "debug_radiation" ); ctxt.register_action( "CONFIRM" ); ctxt.register_action( "QUIT" ); ctxt.register_action( "HELP_KEYBINDINGS" ); @@ -6739,7 +6665,7 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e const tripoint start = tripoint( std::min( dx, POSX ), std::min( dy, POSY ), lz ); const tripoint end = tripoint( std::max( dx, POSX ), std::max( dy, POSY ), lz ); - tripoint offset; //ASCII/SDL + tripoint offset = tripoint_zero; //ASCII/SDL #if defined(TILES) if( use_tiles ) { offset = tripoint( offset_x + lx - u.posx(), offset_y + ly - u.posy(), 0 ); //TILES @@ -6818,10 +6744,6 @@ look_around_result game::look_around( catacurses::window w_info, tripoint ¢e if( !MAP_SHARING::isCompetitive() || MAP_SHARING::isDebugger() ) { display_temperature(); } - } else if( action == "debug_radiation" ) { - if( !MAP_SHARING::isCompetitive() || MAP_SHARING::isDebugger() ) { - display_radiation(); - } } else if( action == "EXTENDED_DESCRIPTION" ) { extended_description( lp ); } else if( action == "CENTER" ) { @@ -7205,11 +7127,11 @@ game::vmenu_ret game::list_items( const std::vector &item_list ) const int offsetX = TERMX - VIEW_OFFSET_X - width; catacurses::window w_items = catacurses::newwin( TERMY - 2 - iInfoHeight - VIEW_OFFSET_Y * 2, - width - 2, point( offsetX + 1, VIEW_OFFSET_Y + 1 ) ); + width - 2, VIEW_OFFSET_Y + 1, offsetX + 1 ); catacurses::window w_items_border = catacurses::newwin( TERMY - iInfoHeight - VIEW_OFFSET_Y * 2, - width, point( offsetX, VIEW_OFFSET_Y ) ); + width, VIEW_OFFSET_Y, offsetX ); catacurses::window w_item_info = catacurses::newwin( iInfoHeight, width, - point( offsetX, TERMY - iInfoHeight - VIEW_OFFSET_Y ) ); + TERMY - iInfoHeight - VIEW_OFFSET_Y, offsetX ); // use previously selected sorting method bool sort_radius = uistate.list_item_sort != 2; @@ -7569,13 +7491,13 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list const int width = 45; const int offsetX = TERMX - VIEW_OFFSET_X - width; //VIEW_OFFSET_X; catacurses::window w_monsters = catacurses::newwin( TERMY - iInfoHeight - VIEW_OFFSET_Y * 2, - width - 2, point( offsetX + 1, VIEW_OFFSET_Y + 1 ) ); + width - 2, VIEW_OFFSET_Y + 1, offsetX + 1 ); catacurses::window w_monsters_border = catacurses::newwin( TERMY - iInfoHeight - VIEW_OFFSET_Y * 2, - width, point( offsetX, VIEW_OFFSET_Y ) ); + width, VIEW_OFFSET_Y, offsetX ); catacurses::window w_monster_info = catacurses::newwin( iInfoHeight - 1, width - 2, - point( offsetX + 1, TERMY - iInfoHeight - VIEW_OFFSET_Y ) ); + TERMY - iInfoHeight - VIEW_OFFSET_Y, offsetX + 1 ); catacurses::window w_monster_info_border = catacurses::newwin( iInfoHeight, width + 1, - point( offsetX, TERMY - iInfoHeight - VIEW_OFFSET_Y ) ); + TERMY - iInfoHeight - VIEW_OFFSET_Y, offsetX ); const int max_gun_range = u.weapon.gun_range( &u ); @@ -7830,7 +7752,7 @@ game::vmenu_ret game::list_monsters( const std::vector &monster_list mvwputch( w_monster_info_border, iInfoHeight - 1, j, c_light_gray, LINE_OXOX ); } - mvwhline( w_monsters, point( 0, getmaxy( w_monsters ) - 2 ), 0, 45 ); + mvwhline( w_monsters, getmaxy( w_monsters ) - 2, 0, 0, 45 ); for( int i = 1; i < getmaxy( w_monsters ) - 1; i++ ) { mvwputch( w_monsters_border, i, 0, BORDER_COLOR, LINE_XOXO ); // | @@ -8822,7 +8744,7 @@ bool game::disable_robot( const tripoint &p ) return false; } monster &critter = *mon_ptr; - if( critter.friendly == 0 || critter.has_flag( MF_RIDEABLE_MECH ) ) { + if( critter.friendly == 0 ) { // Can only disable / reprogram friendly monsters return false; } @@ -8923,10 +8845,10 @@ bool game::prompt_dangerous_tile( const tripoint &dest_loc ) const !query_yn( _( "Really step into %s?" ), enumerate_as_string( harmful_stuff ) ) ) { return false; } - if( !harmful_stuff.empty() && u.is_mounted() && - m.tr_at( dest_loc ).loadid == tr_ledge ) { + if( !harmful_stuff.empty() && u.has_effect( effect_riding ) && + m.tr_at( dest_loc ).loadid == tr_ledge && u.mounted_creature ) { add_msg( m_warning, _( "Your %s refuses to move over that ledge!" ), - u.mounted_creature->get_name() ); + u.mounted_creature.get()->get_name() ); return false; } return true; @@ -8934,16 +8856,6 @@ bool game::prompt_dangerous_tile( const tripoint &dest_loc ) const bool game::walk_move( const tripoint &dest_loc ) { - if( u.is_mounted() ) { - auto mons = u.mounted_creature.get(); - if( mons->has_flag( MF_RIDEABLE_MECH ) ) { - if( !mons->check_mech_powered() ) { - add_msg( m_bad, _( "Your %s refuses to move as its batteries have been drained." ), - mons->get_name() ); - return false; - } - } - } const optional_vpart_position vp_here = m.veh_at( u.pos() ); const optional_vpart_position vp_there = m.veh_at( dest_loc ); @@ -8992,29 +8904,13 @@ bool game::walk_move( const tripoint &dest_loc ) } if( m.impassable( dest_loc ) && !pushing && !shifting_furniture ) { - if( vp_there && u.mounted_creature && u.mounted_creature->has_flag( MF_RIDEABLE_MECH ) && - vp_there->vehicle().handle_potential_theft( dynamic_cast( u ) ) ) { - tripoint diff = dest_loc - u.pos(); - if( diff.x < 0 ) { - diff.x -= 2; - } else if( diff.x > 0 ) { - diff.x += 2; - } - if( diff.y < 0 ) { - diff.y -= 2; - } else if( diff.y > 0 ) { - diff.y += 2; - } - u.mounted_creature->shove_vehicle( dest_loc + diff.xy(), - dest_loc ); - } return false; } if( vp_there && !vp_there->vehicle().handle_potential_theft( dynamic_cast( u ) ) ) { return false; } - if( u.is_mounted() && !pushing && vp_there ) { - add_msg( m_warning, _( "You cannot board a vehicle whilst riding." ) ); + if( u.has_effect( effect_riding ) && vp_there ) { + add_msg( m_warning, _( "You cannot board a vehicle whilst mounted." ) ); return false; } u.set_underwater( false ); @@ -9038,28 +8934,18 @@ bool game::walk_move( const tripoint &dest_loc ) } bool diag = trigdist && u.posx() != dest_loc.x && u.posy() != dest_loc.y; const int previous_moves = u.moves; - if( u.is_mounted() ) { - auto crit = u.mounted_creature.get(); - if( !crit->has_flag( MF_RIDEABLE_MECH ) && - ( m.has_flag_ter_or_furn( "MOUNTABLE", dest_loc ) || - m.has_flag_ter_or_furn( "BARRICADABLE_DOOR", dest_loc ) || - m.has_flag_ter_or_furn( "OPENCLOSE_INSIDE", dest_loc ) || - m.has_flag_ter_or_furn( "BARRICADABLE_DOOR_DAMAGED", dest_loc ) || - m.has_flag_ter_or_furn( "BARRICADABLE_DOOR_REINFORCED", dest_loc ) ) ) { + if( u.has_effect( effect_riding ) && u.mounted_creature != nullptr ) { + if( m.has_flag_ter_or_furn( "MOUNTABLE", dest_loc ) || + m.has_flag_ter_or_furn( "BARRICADABLE_DOOR", dest_loc ) || + m.has_flag_ter_or_furn( "OPENCLOSE_INSIDE", dest_loc ) || + m.has_flag_ter_or_furn( "BARRICADABLE_DOOR_DAMAGED", dest_loc ) || + m.has_flag_ter_or_furn( "BARRICADABLE_DOOR_REINFORCED", dest_loc ) ) { add_msg( m_warning, _( "You cannot pass obstacles whilst mounted." ) ); return false; } - const double base_moves = - u.run_cost( mcost, diag ) * 100.0 / crit->get_speed(); - const double encumb_moves = u.get_weight() * 1.0 / 480_gram; - u.moves -= static_cast( ceil( base_moves + encumb_moves ) ); - if( u.movement_mode_is( PMM_WALK ) ) { - crit->use_mech_power( -2 ); - } else if( u.movement_mode_is( PMM_CROUCH ) ) { - crit->use_mech_power( -1 ); - } else if( u.movement_mode_is( PMM_RUN ) ) { - crit->use_mech_power( -3 ); - } + monster *crit = u.mounted_creature.get(); + u.moves -= static_cast( ceil( ( u.run_cost( mcost, + diag ) * 100.0 / crit->get_speed() ) + ( ( u.get_weight() / 120_gram ) / 40 ) ) ); } else { u.moves -= u.run_cost( mcost, diag ); /** @@ -9081,7 +8967,7 @@ bool game::walk_move( const tripoint &dest_loc ) const bool slowed = ( ( !u.has_trait( trait_PARKOUR ) && ( mcost_to > 2 || mcost_from > 2 ) ) || mcost_to > 4 || mcost_from > 4 ) && !( u.has_trait( trait_M_IMMUNE ) && fungus ); - if( slowed && !u.is_mounted() ) { + if( slowed && !u.has_effect( effect_riding ) ) { // Unless u.pos() has a higher movecost than dest_loc, state that dest_loc is the cause if( mcost_to >= mcost_from ) { if( auto displayed_part = vp_there.part_displayed() ) { @@ -9103,7 +8989,7 @@ bool game::walk_move( const tripoint &dest_loc ) } } } - if( !u.is_mounted() && u.has_trait( trait_id( "LEG_TENT_BRACE" ) ) && + if( !u.has_effect( effect_riding ) && u.has_trait( trait_id( "LEG_TENT_BRACE" ) ) && ( !u.footwear_factor() || ( u.footwear_factor() == .5 && one_in( 2 ) ) ) ) { // DX and IN are long suits for Cephalopods, @@ -9132,35 +9018,8 @@ bool game::walk_move( const tripoint &dest_loc ) } else if( u.movement_mode_is( PMM_CROUCH ) ) { volume /= 2; } - if( u.is_mounted() ) { - auto mons = u.mounted_creature.get(); - switch( mons->get_size() ) { - case MS_TINY: - volume = 0; // No sound for the tinies - break; - case MS_SMALL: - volume /= 3; - break; - case MS_MEDIUM: - break; - case MS_LARGE: - volume *= 1.5; - break; - case MS_HUGE: - volume *= 2; - break; - default: - break; - } - if( mons->has_flag( MF_LOUDMOVES ) ) { - volume += 6; - } - sounds::sound( dest_loc, volume, sounds::sound_t::movement, mons->type->get_footsteps(), false, - "none", "none" ); - } else { - sounds::sound( dest_loc, volume, sounds::sound_t::movement, _( "footsteps" ), true, - "none", "none" ); // Sound of footsteps may awaken nearby monsters - } + sounds::sound( dest_loc, volume, sounds::sound_t::movement, _( "footsteps" ), true, + "none", "none" ); // Sound of footsteps may awaken nearby monsters sfx::do_footstep(); } @@ -9174,18 +9033,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() && !u.is_mounted() ) { + if( dest_loc != u.pos() && !u.has_effect( effect_riding ) ) { u.lifetime_stats.squares_walked++; } tripoint oldpos = u.pos(); point submap_shift = place_player( dest_loc ); - point ms_shift = sm_to_ms_copy( submap_shift ); - oldpos = oldpos - ms_shift; + oldpos = tripoint( oldpos.x - submap_shift.x * SEEX, oldpos.y - submap_shift.y * SEEX, oldpos.z ); if( pulling ) { - const tripoint shifted_furn_pos = furn_pos - ms_shift; - const tripoint shifted_furn_dest = furn_dest - ms_shift; + const tripoint shifted_furn_pos = tripoint( furn_pos.x - submap_shift.x * SEEX, + furn_pos.y - submap_shift.y * SEEY, furn_pos.z ); + const tripoint shifted_furn_dest = tripoint( furn_dest.x - submap_shift.x * SEEX, + furn_dest.y - submap_shift.y * SEEY, furn_dest.z ); const time_duration fire_age = m.get_field_age( shifted_furn_pos, fd_fire ); const int fire_intensity = m.get_field_intensity( shifted_furn_pos, fd_fire ); m.remove_field( shifted_furn_pos, fd_fire ); @@ -9237,7 +9097,7 @@ point game::place_player( const tripoint &dest_loc ) } } // TODO: Move the stuff below to a Character method so that NPCs can reuse it - if( m.has_flag( "ROUGH", dest_loc ) && ( !u.in_vehicle ) && ( !u.is_mounted() ) ) { + if( m.has_flag( "ROUGH", dest_loc ) && ( !u.in_vehicle ) && ( !u.has_effect( effect_riding ) ) ) { if( one_in( 5 ) && u.get_armor_bash( bp_foot_l ) < rng( 2, 5 ) ) { add_msg( m_bad, _( "You hurt your left foot on the %s!" ), m.has_flag_ter( "ROUGH", dest_loc ) ? m.tername( dest_loc ) : m.furnname( @@ -9252,11 +9112,12 @@ point game::place_player( const tripoint &dest_loc ) } } ///\EFFECT_DEX increases chance of avoiding cuts on sharp terrain - if( m.has_flag( "SHARP", dest_loc ) && !one_in( 3 ) && !x_in_y( 1 + u.dex_cur / 2.0, 40 ) && + if( m.has_flag( "SHARP", dest_loc ) && !one_in( 3 ) && !x_in_y( 1 + u.dex_cur / 2, 40 ) && ( !u.in_vehicle ) && ( !u.has_trait( trait_PARKOUR ) || one_in( 4 ) ) ) { - if( u.is_mounted() ) { - add_msg( _( "Your %s gets cut!" ), u.mounted_creature->get_name() ); - u.mounted_creature->apply_damage( nullptr, bp_torso, rng( 1, 10 ) ); + if( u.has_effect( effect_riding ) && u.mounted_creature ) { + monster *mon = u.mounted_creature.get(); + add_msg( _( "Your %s gets cut!" ), mon->get_name() ); + mon->apply_damage( nullptr, bp_torso, rng( 1, 10 ) ); } else { body_part bp = random_body_part(); if( u.deal_damage( nullptr, bp, damage_instance( DT_CUT, rng( 1, 10 ) ) ).total_damage() > 0 ) { @@ -9274,7 +9135,7 @@ point game::place_player( const tripoint &dest_loc ) } } } - if( m.has_flag( "UNSTABLE", dest_loc ) && !u.is_mounted() ) { + if( m.has_flag( "UNSTABLE", dest_loc ) && !u.has_effect( effect_riding ) ) { u.add_effect( effect_bouldering, 1_turns, num_bp, true ); } else if( u.has_effect( effect_bouldering ) ) { u.remove_effect( effect_bouldering ); @@ -9289,7 +9150,7 @@ point game::place_player( const tripoint &dest_loc ) if( m.has_flag( "SWIMMABLE", dest_loc ) && u.has_effect( effect_onfire ) ) { add_msg( _( "The water puts out the flames!" ) ); u.remove_effect( effect_onfire ); - if( u.is_mounted() ) { + if( u.has_effect( effect_riding ) && u.mounted_creature ) { monster *mon = u.mounted_creature.get(); if( mon->has_effect( effect_onfire ) ) { mon->remove_effect( effect_onfire ); @@ -9303,7 +9164,7 @@ point game::place_player( const tripoint &dest_loc ) monster &critter = *mon_ptr; // TODO handling for ridden creatures other than players mount. if( !critter.has_effect( effect_ridden ) ) { - if( u.is_mounted() ) { + if( u.has_effect( effect_riding ) && u.mounted_creature ) { std::vector valid; for( const tripoint &jk : g->m.points_in_radius( critter.pos(), 1 ) ) { if( is_empty( jk ) ) { @@ -9315,7 +9176,7 @@ point game::place_player( const tripoint &dest_loc ) add_msg( _( "You push the %s out of the way." ), critter.name() ); } else { add_msg( _( "There is no room to push the %s out of the way." ), critter.name() ); - return u.pos().xy(); + return point( u.pos().x, u.pos().y ); } } else { critter.move_to( u.pos(), true ); // Force the movement even though the player is there right now. @@ -9340,7 +9201,7 @@ point game::place_player( const tripoint &dest_loc ) u.stop_hauling(); } u.setpos( dest_loc ); - if( u.is_mounted() ) { + if( u.has_effect( effect_riding ) && u.mounted_creature ) { monster *mon = u.mounted_creature.get(); mon->setpos( dest_loc ); mon->process_triggers(); @@ -9353,7 +9214,7 @@ point game::place_player( const tripoint &dest_loc ) // adjusted_pos = ( old_pos.x - submap_shift.x * SEEX, old_pos.y - submap_shift.y * SEEY, old_pos.z ) //Auto pulp or butcher and Auto foraging - if( get_option( "AUTO_FEATURES" ) && mostseen == 0 && !u.is_mounted() ) { + if( get_option( "AUTO_FEATURES" ) && mostseen == 0 && !u.has_effect( effect_riding ) ) { static const direction adjacentDir[8] = { NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST }; const std::string forage_type = get_option( "AUTO_FORAGING" ); @@ -9425,27 +9286,27 @@ point game::place_player( const tripoint &dest_loc ) } //Autopickup - if( !u.is_mounted() && get_option( "AUTO_PICKUP" ) && !u.is_hauling() && + if( !u.has_effect( effect_riding ) && get_option( "AUTO_PICKUP" ) && !u.is_hauling() && ( !get_option( "AUTO_PICKUP_SAFEMODE" ) || mostseen == 0 ) && ( m.has_items( u.pos() ) || get_option( "AUTO_PICKUP_ADJACENT" ) ) ) { Pickup::pick_up( u.pos(), -1 ); } // If the new tile is a boardable part, board it - if( vp1.part_with_feature( "BOARDABLE", true ) && !u.is_mounted() ) { + if( vp1.part_with_feature( "BOARDABLE", true ) && !u.has_effect( effect_riding ) ) { m.board_vehicle( u.pos(), &u ); } // Traps! // Try to detect. u.search_surroundings(); - if( u.is_mounted() ) { + if( u.has_effect( effect_riding ) && u.mounted_creature ) { m.creature_on_trap( *u.mounted_creature ); } else { m.creature_on_trap( u ); } // Drench the player if swimmable - if( m.has_flag( "SWIMMABLE", u.pos() ) && !u.is_mounted() ) { + if( m.has_flag( "SWIMMABLE", u.pos() ) && !u.has_effect( effect_riding ) ) { u.drench( 40, { { bp_foot_l, bp_foot_r, bp_leg_l, bp_leg_r } }, false ); } @@ -9455,6 +9316,8 @@ point game::place_player( const tripoint &dest_loc ) !g->check_zone( zone_type_id( "NO_AUTO_PICKUP" ), u.pos() ) ) { if( u.is_blind() && !m.i_at( u.pos() ).empty() ) { add_msg( _( "There's something here, but you can't see what it is." ) ); + } else if( u.has_effect( effect_riding ) && !m.i_at( u.pos() ).empty() ) { + add_msg( _( "There's something here, but you can't reach it whilst mounted." ) ); } else if( m.has_items( u.pos() ) ) { std::vector names; std::vector counts; @@ -9525,11 +9388,11 @@ point game::place_player( const tripoint &dest_loc ) } } - if( vp1.part_with_feature( "CONTROLS", true ) && u.in_vehicle && !u.is_mounted() ) { + if( vp1.part_with_feature( "CONTROLS", true ) && u.in_vehicle && !u.has_effect( effect_riding ) ) { add_msg( _( "There are vehicle controls here." ) ); add_msg( m_info, _( "%s to drive." ), press_x( ACTION_CONTROL_VEHICLE ) ); } else if( vp1.part_with_feature( "CONTROLS", true ) && u.in_vehicle && - u.is_mounted() ) { + u.has_effect( effect_riding ) ) { add_msg( _( "There are vehicle controls here but you cannot reach them whilst mounted." ) ); } return submap_shift; @@ -9538,9 +9401,10 @@ point game::place_player( const tripoint &dest_loc ) void game::place_player_overmap( const tripoint &om_dest ) { // if player is teleporting around, they dont bring their horse with them - if( u.is_mounted() ) { + if( u.has_effect( effect_riding ) && u.mounted_creature ) { u.remove_effect( effect_riding ); - u.mounted_creature->remove_effect( effect_ridden ); + monster *critter = u.mounted_creature.get(); + critter->remove_effect( effect_ridden ); u.mounted_creature = nullptr; } // offload the active npcs. @@ -9559,9 +9423,8 @@ void game::place_player_overmap( const tripoint &om_dest ) } // offset because load_map expects the coordinates of the top left corner, but the // player will be centered in the middle of the map. - const tripoint map_om_pos( tripoint( 2 * om_dest.x, 2 * om_dest.y, - om_dest.z ) + point( -HALF_MAPSIZE, -HALF_MAPSIZE ) ); - const tripoint player_pos( u.pos().xy(), map_om_pos.z ); + const tripoint map_om_pos( om_dest.x * 2 - HALF_MAPSIZE, om_dest.y * 2 - HALF_MAPSIZE, om_dest.z ); + const tripoint player_pos( u.pos().x, u.pos().y, map_om_pos.z ); load_map( map_om_pos ); load_npcs(); m.spawn_monsters( true ); // Static monsters @@ -9824,23 +9687,21 @@ bool game::grabbed_move( const tripoint &dp ) void game::on_move_effects() { // TODO: Move this to a character method - if( !u.is_mounted() ) { - if( u.lifetime_stats.squares_walked % 8 == 0 ) { - if( u.has_active_bionic( bionic_id( "bio_torsionratchet" ) ) ) { - u.charge_power( 1 ); - } + if( u.lifetime_stats.squares_walked % 8 == 0 ) { + if( u.has_active_bionic( bionic_id( "bio_torsionratchet" ) ) ) { + u.charge_power( 1 ); } - if( u.lifetime_stats.squares_walked % 160 == 0 ) { - if( u.has_bionic( bionic_id( "bio_torsionratchet" ) ) ) { - u.charge_power( 1 ); - } + } + if( u.lifetime_stats.squares_walked % 160 == 0 ) { + if( u.has_bionic( bionic_id( "bio_torsionratchet" ) ) ) { + u.charge_power( 1 ); } - if( u.has_active_bionic( bionic_id( "bio_jointservo" ) ) ) { - if( u.movement_mode_is( PMM_RUN ) ) { - u.charge_power( -20 ); - } else { - u.charge_power( -10 ); - } + } + if( u.has_active_bionic( bionic_id( "bio_jointservo" ) ) ) { + if( u.movement_mode_is( PMM_RUN ) ) { + u.charge_power( -20 ); + } else { + u.charge_power( -10 ); } } @@ -10039,16 +9900,6 @@ static cata::optional point_selection_menu( const std::vectorhas_flag( MF_RIDEABLE_MECH ) ) { - if( !mons->check_mech_powered() ) { - add_msg( m_bad, _( "Your %s refuses to move as its batteries have been drained." ), - mons->get_name() ); - return; - } - } - } // Check if there are monsters are using the stairs. bool slippedpast = false; if( !m.has_zlevels() && !coming_to_stairs.empty() && !force ) { @@ -10187,14 +10038,14 @@ void game::vertical_move( int movez, bool force ) std::unique_ptr tmp_map_ptr; if( !m.has_zlevels() ) { - tmp_map_ptr = std::make_unique(); + tmp_map_ptr.reset( new map() ); } map &maybetmp = m.has_zlevels() ? m : *( tmp_map_ptr.get() ); if( m.has_zlevels() ) { // We no longer need to shift the map here! What joy } else { - maybetmp.load( tripoint( get_levx(), get_levy(), z_after ), false ); + maybetmp.load( get_levx(), get_levy(), z_after, false ); } // Find the corresponding staircase @@ -10214,15 +10065,12 @@ void game::vertical_move( int movez, bool force ) // Save all monsters that can reach the stairs, remove them from the tracker, // then despawn the remaining monsters. Because it's a vertical shift, all // monsters are out of the bounds of the map and will despawn. - monster stored_mount; - if( u.is_mounted() ) { - stored_mount = *u.mounted_creature.get(); - } if( !m.has_zlevels() ) { - const tripoint to = u.pos(); + const int to_x = u.posx(); + const int to_y = u.posy(); for( monster &critter : all_monsters() ) { - int turns = critter.turns_to_reach( to.xy() ); - if( turns < 10 && coming_to_stairs.size() < 8 && critter.will_reach( to.xy() ) + int turns = critter.turns_to_reach( to_x, to_y ); + if( turns < 10 && coming_to_stairs.size() < 8 && critter.will_reach( to_x, to_y ) && !slippedpast ) { critter.staircount = 10 + turns; critter.on_unload(); @@ -10230,10 +10078,7 @@ void game::vertical_move( int movez, bool force ) remove_zombie( critter ); } } - auto mons = critter_tracker->find( g->u.pos() ); - if( mons != nullptr ) { - critter_tracker->remove( *mons ); - } + shift_monsters( 0, 0, movez ); } @@ -10255,41 +10100,14 @@ 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( PMM_WALK ) ) { - crit->use_mech_power( -2 ); - } else if( u.movement_mode_is( PMM_CROUCH ) ) { - crit->use_mech_power( -1 ); - } else if( u.movement_mode_is( PMM_RUN ) ) { - crit->use_mech_power( -3 ); - } - } - } else { - u.moves -= move_cost; - } + u.moves -= move_cost; + const tripoint old_pos = g->u.pos(); - point submap_shift; + point submap_shift = point_zero; vertical_shift( z_after ); if( !force ) { submap_shift = update_map( stairs.x, stairs.y ); } - if( u.is_mounted() ) { - if( !m.has_zlevels() ) { - stored_mount.spawn( g->u.pos() ); - if( add_zombie( stored_mount ) ) { - auto mons = critter_tracker->find( g->u.pos() ); - if( mons ) { - u.mounted_creature = mons; - } - stored_mount.setpos( g->u.pos() ); - } - } else { - u.mounted_creature->setpos( g->u.pos() ); - } - } if( !npcs_to_bring.empty() ) { // Would look nicer randomly scrambled @@ -10344,7 +10162,8 @@ void game::vertical_move( int movez, bool force ) } if( u.is_hauling() ) { - const tripoint adjusted_pos = old_pos - sm_to_ms_copy( submap_shift ); + const tripoint adjusted_pos( old_pos.x - submap_shift.x * SEEX, old_pos.y - submap_shift.y * SEEY, + old_pos.z ); u.assign_activity( activity_id( "ACT_MOVE_ITEMS" ) ); // Whether the destination is inside a vehicle (not supported) u.activity.values.push_back( 0 ); @@ -10370,9 +10189,10 @@ void game::vertical_move( int movez, bool force ) cata::optional game::find_or_make_stairs( map &mp, const int z_after, bool &rope_ladder ) { const int omtilesz = SEEX * 2; - real_coords rc( m.getabs( point( u.posx(), u.posy() ) ) ); + real_coords rc( m.getabs( u.posx(), u.posy() ) ); tripoint omtile_align_start( m.getlocal( rc.begin_om_pos() ), z_after ); - tripoint omtile_align_end( omtile_align_start + point( -1 + omtilesz, -1 + omtilesz ) ); + tripoint omtile_align_end( omtile_align_start.x + omtilesz - 1, omtile_align_start.y + omtilesz - 1, + omtile_align_start.z ); // Try to find the stairs. cata::optional stairs; @@ -10513,7 +10333,7 @@ void game::vertical_shift( const int z_after ) m.access_cache( z_before ).zone_vehicles.clear(); m.set_transparency_cache_dirty( z_before ); m.set_outside_cache_dirty( z_before ); - m.load( tripoint( get_levx(), get_levy(), z_after ), true ); + m.load( get_levx(), get_levy(), z_after, true ); shift_monsters( 0, 0, z_after - z_before ); reload_npcs(); } else { @@ -10580,26 +10400,27 @@ point game::update_map( player &p ) point game::update_map( int &x, int &y ) { - point shift; + int shiftx = 0; + int shifty = 0; while( x < HALF_MAPSIZE_X ) { x += SEEX; - shift.x--; + shiftx--; } while( x >= HALF_MAPSIZE_X + SEEX ) { x -= SEEX; - shift.x++; + shiftx++; } while( y < HALF_MAPSIZE_Y ) { y += SEEY; - shift.y--; + shifty--; } while( y >= HALF_MAPSIZE_Y + SEEY ) { y -= SEEY; - shift.y++; + shifty++; } - if( shift == point_zero ) { + if( shiftx == 0 && shifty == 0 ) { // adjust player position u.setpos( tripoint( x, y, get_levz() ) ); // Not actually shifting the submaps, all the stuff below would do nothing @@ -10607,16 +10428,15 @@ point game::update_map( int &x, int &y ) } // this handles loading/unloading submaps that have scrolled on or off the viewport - m.shift( shift.x, shift.y ); + m.shift( shiftx, shifty ); // Shift monsters - shift_monsters( shift.x, shift.y, 0 ); - const point shift_ms = sm_to_ms_copy( shift ); - u.shift_destination( -shift_ms ); + shift_monsters( shiftx, shifty, 0 ); + u.shift_destination( -shiftx * SEEX, -shifty * SEEY ); // Shift NPCs for( auto it = active_npc.begin(); it != active_npc.end(); ) { - ( *it )->shift( shift.x, shift.y ); + ( *it )->shift( shiftx, shifty ); if( ( *it )->posx() < 0 - SEEX * 2 || ( *it )->posy() < 0 - SEEX * 2 || ( *it )->posx() > SEEX * ( MAPSIZE + 2 ) || ( *it )->posy() > SEEY * ( MAPSIZE + 2 ) ) { //Remove the npc from the active list. It remains in the overmap list. @@ -10627,7 +10447,7 @@ point game::update_map( int &x, int &y ) } } - scent.shift( shift_ms.x, shift_ms.y ); + scent.shift( shiftx * SEEX, shifty * SEEY ); // Also ensure the player is on current z-level // get_levz() should later be removed, when there is no longer such a thing @@ -10641,13 +10461,7 @@ point game::update_map( int &x, int &y ) load_npcs(); // Make sure map cache is consistent since it may have shifted. - if( m.has_zlevels() ) { - for( int zlev = -OVERMAP_DEPTH; zlev <= OVERMAP_HEIGHT; ++zlev ) { - m.invalidate_map_cache( zlev ); - } - } else { - m.invalidate_map_cache( get_levz() ); - } + m.invalidate_map_cache( get_levz() ); m.build_map_cache( get_levz() ); // Spawn monsters if appropriate @@ -10657,7 +10471,7 @@ point game::update_map( int &x, int &y ) // Update what parts of the world map we can see update_overmap_seen(); - return shift; + return point( shiftx, shifty ); } void game::update_overmap_seen() @@ -10955,7 +10769,7 @@ void game::shift_monsters( const int shiftx, const int shifty, const int shiftz } for( monster &critter : all_monsters() ) { if( shiftx != 0 || shifty != 0 ) { - critter.shift( point( shiftx, shifty ) ); + critter.shift( shiftx, shifty ); } if( m.inbounds( critter.pos() ) && ( shiftz == 0 || m.has_zlevels() ) ) { @@ -11104,9 +10918,12 @@ void game::teleport( player *p, bool add_teleglow ) void game::display_scent() { if( use_tiles ) { - displaying_temperature = false; - displaying_visibility = false; - displaying_radiation = false; + if( displaying_temperature ) { + displaying_temperature = false; + } + if( displaying_visibility ) { + displaying_visibility = false; + } displaying_scent = !displaying_scent; } else { int div; @@ -11126,9 +10943,12 @@ void game::display_scent() void game::display_temperature() { if( use_tiles ) { - displaying_scent = false; - displaying_visibility = false; - displaying_radiation = false; + if( displaying_scent ) { + displaying_scent = false; + } + if( displaying_visibility ) { + displaying_visibility = false; + } displaying_temperature = !displaying_temperature; } } @@ -11136,23 +10956,16 @@ void game::display_temperature() void game::display_visibility() { if( use_tiles ) { - displaying_scent = false; - displaying_temperature = false; - displaying_radiation = false; + if( displaying_scent ) { + displaying_scent = false; + } + if( displaying_temperature ) { + displaying_temperature = false; + } displaying_visibility = !displaying_visibility; } } -void game::display_radiation() -{ - if( use_tiles ) { - displaying_scent = false; - displaying_visibility = false; - displaying_temperature = false; - displaying_radiation = !displaying_radiation; - } -} - void game::init_autosave() { moves_since_last_save = 0; @@ -11215,7 +11028,7 @@ void intro() int maxx = getmaxx( catacurses::stdscr ); const int minHeight = FULL_SCREEN_HEIGHT; const int minWidth = FULL_SCREEN_WIDTH; - catacurses::window tmp = catacurses::newwin( minHeight, minWidth, point_zero ); + catacurses::window tmp = catacurses::newwin( minHeight, minWidth, 0, 0 ); while( maxy < minHeight || maxx < minWidth ) { werase( tmp ); @@ -11531,30 +11344,30 @@ void game::start_calendar() scen->has_flag( "SUM_ADV_START" ); if( scen_season ) { - // Configured starting date overridden by scenario, calendar::start_of_cataclysm is left as Spring 1 - calendar::start_of_cataclysm = HOURS( get_option( "INITIAL_TIME" ) ); + // Configured starting date overridden by scenario, calendar::start is left as Spring 1 + calendar::start = HOURS( get_option( "INITIAL_TIME" ) ); calendar::turn = HOURS( get_option( "INITIAL_TIME" ) ); if( scen->has_flag( "SPR_START" ) ) { calendar::initial_season = SPRING; } else if( scen->has_flag( "SUM_START" ) ) { calendar::initial_season = SUMMER; - calendar::turn += calendar::season_length(); + calendar::turn += to_turns( calendar::season_length() ); } else if( scen->has_flag( "AUT_START" ) ) { calendar::initial_season = AUTUMN; - calendar::turn += calendar::season_length() * 2; + calendar::turn += to_turns( calendar::season_length() * 2 ); } else if( scen->has_flag( "WIN_START" ) ) { calendar::initial_season = WINTER; - calendar::turn += calendar::season_length() * 3; + calendar::turn += to_turns( calendar::season_length() * 3 ); } else if( scen->has_flag( "SUM_ADV_START" ) ) { calendar::initial_season = SUMMER; - calendar::turn += calendar::season_length() * 5; + calendar::turn += to_turns( calendar::season_length() * 5 ); } else { debugmsg( "The Unicorn" ); } } else { // No scenario, so use the starting date+time configured in world options const int initial_days = get_option( "INITIAL_DAY" ); - calendar::start_of_cataclysm = calendar::turn_zero + 1_days * initial_days; + calendar::start = DAYS( initial_days ); // Determine the season based off how long the seasons are set to be // First mod by length of season to get number of seasons elapsed, then mod by 4 to force a 0-3 range of values @@ -11569,9 +11382,9 @@ void game::start_calendar() calendar::initial_season = WINTER; } - calendar::turn = calendar::start_of_cataclysm - + 1_hours * get_option( "INITIAL_TIME" ) - + 1_days * get_option( "SPAWN_DELAY" ); + calendar::turn = calendar::start + + HOURS( get_option( "INITIAL_TIME" ) ) + + DAYS( get_option( "SPAWN_DELAY" ) ); } } @@ -11940,8 +11753,5 @@ std::string game::get_player_base_save_path() const std::string game::get_world_base_save_path() const { - if( world_generator->active_world == nullptr ) { - return FILENAMES["savedir"]; - } return world_generator->active_world->folder_path(); } diff --git a/src/game.h b/src/game.h index 8a49074b856d3..9da528d0cd25b 100644 --- a/src/game.h +++ b/src/game.h @@ -97,7 +97,7 @@ class save_t; using WORLDPTR = WORLD *; class overmap; -class timed_event_manager; +class event_manager; enum event_type : int; class live_view; @@ -861,7 +861,6 @@ class game tripoint mouse_edge_scrolling_terrain( input_context &ctxt ); /** This variant is suitable for the overmap. */ tripoint mouse_edge_scrolling_overmap( input_context &ctxt ); - void list_missions(); // Listed current, completed and failed missions (mission_ui.cpp) private: void quickload(); // Loads the previously saved game if it exists @@ -873,12 +872,12 @@ class game void disp_kills(); // Display the player's kill counts void disp_faction_ends(); // Display the faction endings void disp_NPC_epilogues(); // Display NPC endings + void list_missions(); // Listed current, completed and failed missions (mission_ui.cpp) // Debug functions void display_scent(); // Displays the scent map void display_temperature(); // Displays temperature map void display_visibility(); // Displays visibility map - void display_radiation(); // Displays radiation map Creature *is_hostile_within( int distance ); @@ -892,14 +891,14 @@ class game pimpl liveview_ptr; live_view &liveview; pimpl scent_ptr; - pimpl timed_event_manager_ptr; + pimpl event_manager_ptr; public: /** Make map a reference here, to avoid map.h in game.h */ map &m; avatar &u; scent_map &scent; - timed_event_manager &timed_events; + event_manager &events; pimpl critter_tracker; pimpl faction_manager_ptr; @@ -914,7 +913,9 @@ class game std::vector coming_to_stairs; int monstairz; - tripoint ter_view_p; + int ter_view_x; + int ter_view_y; + int ter_view_z; catacurses::window w_terrain; catacurses::window w_overmap; catacurses::window w_omlegend; @@ -938,7 +939,6 @@ class game bool displaying_visibility; /** Creature for which to display the visibility map */ Creature *displaying_visibility_creature; - bool displaying_radiation; bool show_panel_adm; bool right_sidebar; diff --git a/src/game_inventory.cpp b/src/game_inventory.cpp index 3c548a51fb1b1..009bb6e0dbb3a 100644 --- a/src/game_inventory.cpp +++ b/src/game_inventory.cpp @@ -453,7 +453,7 @@ item_location game_menus::inv::disassemble( player &p ) class comestible_inventory_preset : public inventory_selector_preset { public: - comestible_inventory_preset( const player &p ) : p( p ) { + comestible_inventory_preset( const player &p ) : inventory_selector_preset(), p( p ) { append_cell( [ &p, this ]( const item_location & loc ) { return good_bad_none( p.kcal_for( get_consumable_item( loc ) ) ); @@ -1194,7 +1194,7 @@ class salvage_inventory_preset: public inventory_selector_preset { public: salvage_inventory_preset( const salvage_actor *actor ) : - actor( actor ) { + inventory_selector_preset(), actor( actor ) { append_cell( [ actor ]( const item_location & loc ) { return to_string_clipped( time_duration::from_turns( actor->time_to_cut_up( @@ -1221,7 +1221,7 @@ class repair_inventory_preset: public inventory_selector_preset { public: repair_inventory_preset( const repair_item_actor *actor, const item *main_tool ) : - actor( actor ), main_tool( main_tool ) { + inventory_selector_preset(), actor( actor ), main_tool( main_tool ) { } bool is_shown( const item_location &loc ) const override { @@ -1553,12 +1553,8 @@ class bionic_install_preset: public inventory_selector_preset return _( "Superior version installed" ); } else if( pa.is_npc() && !bid->npc_usable ) { return _( "CBM not compatible with patient" ); - } else if( !p.has_enough_anesth( itemtype, pa ) ) { - const int weight = units::to_kilogram( pa.bodyweight() ) / 10; - const int duration = loc.get_item()->type->bionic->difficulty * 2; - const requirement_data req_anesth = *requirement_id( "anesthetic" ) * - duration * weight; - return string_format( _( "%i mL" ), req_anesth.get_tools().front().front().count ); + } else if( !p.has_enough_anesth( itemtype ) ) { + return string_format( _( "%i mL" ), itemtype->bionic->difficulty * 40 ); } return std::string(); @@ -1604,19 +1600,16 @@ class bionic_install_preset: public inventory_selector_preset std::string get_anesth_amount( const item_location &loc ) { - const int weight = units::to_kilogram( pa.bodyweight() ) / 10; - const int duration = loc.get_item()->type->bionic->difficulty * 2; - const requirement_data req_anesth = *requirement_id( "anesthetic" ) * - duration * weight; + const int amount = loc.get_item()->type->bionic->difficulty * 40; std::vector b_filter = p.crafting_inventory().items_with( []( const item & it ) { return it.has_flag( "ANESTHESIA" ); // legacy } ); if( b_filter.size() > 0 ) { - return _( "kit available" );// legacy + return string_format( _( "kit available" ) );// legacy } else { - return string_format( _( "%i mL" ), req_anesth.get_tools().front().front().count ); + return string_format( _( "%i mL" ), amount ); } } }; @@ -1754,12 +1747,8 @@ class bionic_uninstall_preset : public inventory_selector_preset std::string get_denial( const item_location &loc ) const override { const itype *itemtype = loc.get_item()->type; - if( !p.has_enough_anesth( itemtype, pa ) ) { - const int weight = units::to_kilogram( pa.bodyweight() ) / 10; - const int duration = loc.get_item()->type->bionic->difficulty * 2; - const requirement_data req_anesth = *requirement_id( "anesthetic" ) * - duration * weight; - return string_format( _( "%i mL" ), req_anesth.get_tools().front().front().count ); + if( !p.has_enough_anesth( itemtype ) ) { + return string_format( _( "%i mL" ), itemtype->bionic->difficulty * 40 ); } return std::string(); @@ -1806,19 +1795,16 @@ class bionic_uninstall_preset : public inventory_selector_preset std::string get_anesth_amount( const item_location &loc ) { - const int weight = units::to_kilogram( pa.bodyweight() ) / 10; - const int duration = loc.get_item()->type->bionic->difficulty * 2; - const requirement_data req_anesth = *requirement_id( "anesthetic" ) * - duration * weight; + const int amount = loc.get_item()->type->bionic->difficulty * 40; std::vector b_filter = p.crafting_inventory().items_with( []( const item & it ) { return it.has_flag( "ANESTHESIA" ); // legacy } ); if( b_filter.size() > 0 ) { - return _( "kit available" ); // legacy + return string_format( _( "kit available" ) ); // legacy } else { - return string_format( _( "%i mL" ), req_anesth.get_tools().front().front().count ); + return string_format( _( "%i mL" ), amount ); } } }; @@ -1828,6 +1814,7 @@ item_location game_menus::inv::uninstall_bionic( player &p, player &patient ) return autodoc_internal( p, patient, bionic_uninstall_preset( p, patient ), 0, true ); } + // Menu used by autoclave when sterilizing a bionic class bionic_sterilize_preset : public inventory_selector_preset { @@ -1848,16 +1835,13 @@ class bionic_sterilize_preset : public inventory_selector_preset return loc->has_flag( "NO_STERILE" ) && loc->is_bionic(); } - std::string get_denial( const item_location &loc ) const override { + std::string get_denial( const item_location & ) const override { auto reqs = *requirement_id( "autoclave_item" ); if( !reqs.can_make_with_inventory( p.crafting_inventory(), is_crafting_component ) ) { return pgettext( "volume of water", "2 L" ); } - if( loc.get_item()->has_flag( "FILTHY" ) ) { - return _( "CBM is filthy. Wash it first." ); - } return std::string(); } diff --git a/src/gamemode.cpp b/src/gamemode.cpp index bca76308b095a..0e34af481e012 100644 --- a/src/gamemode.cpp +++ b/src/gamemode.cpp @@ -1,7 +1,5 @@ #include "gamemode.h" -#include - #include "debug.h" #include "translations.h" @@ -25,17 +23,17 @@ std::unique_ptr get_special_game( special_game_id id ) std::unique_ptr ret; switch( id ) { case SGAME_NULL: - ret = std::make_unique(); + ret.reset( new special_game ); break; case SGAME_TUTORIAL: - ret = std::make_unique(); + ret.reset( new tutorial_game ); break; case SGAME_DEFENSE: - ret = std::make_unique(); + ret.reset( new defense_game ); break; default: debugmsg( "Missing something in gamemode.cpp:get_special_game()?" ); - ret = std::make_unique(); + ret.reset( new special_game ); break; } diff --git a/src/gates.cpp b/src/gates.cpp index 9c75ee1a77af8..d652e146ce789 100644 --- a/src/gates.cpp +++ b/src/gates.cpp @@ -178,7 +178,7 @@ void gates::open_gate( const tripoint &pos ) for( int i = 0; i < 4; ++i ) { static constexpr tripoint dir[4] = { - { tripoint_east }, { tripoint_south }, { tripoint_west }, { tripoint_north } + { 1, 0, 0 }, { 0, 1, 0 }, { -1, 0, 0 }, { 0, -1, 0 } }; const tripoint wall_pos = pos + dir[i]; diff --git a/src/generic_factory.h b/src/generic_factory.h index 1f9d92c70df86..eb9a4d4df8f48 100644 --- a/src/generic_factory.h +++ b/src/generic_factory.h @@ -19,7 +19,6 @@ #include "string_id.h" #include "translations.h" #include "units.h" -#include "wcwidth.h" /** A generic class to store objects identified by a `string_id`. diff --git a/src/grab.cpp b/src/grab.cpp index af018d6d0ebb7..00ab4a19149ae 100644 --- a/src/grab.cpp +++ b/src/grab.cpp @@ -77,7 +77,7 @@ bool game::grabbed_veh_move( const tripoint &dp ) //vehicle movement: strength check int mc = 0; - int str_req = grabbed_vehicle->total_mass() / 25_kilogram; //strength required to move vehicle. + int str_req = ( grabbed_vehicle->total_mass() / 25_kilogram ); //strength required to move vehicle. //if vehicle is rollable we modify str_req based on a function of movecost per wheel. @@ -96,7 +96,7 @@ bool game::grabbed_veh_move( const tripoint &dp ) for( int p : wheel_indices ) { const tripoint wheel_pos = vehpos + grabbed_vehicle->parts[p].precalc[0]; const int mapcost = m.move_cost( wheel_pos, grabbed_vehicle ); - mc += str_req / wheel_indices.size() * mapcost; + mc += ( str_req / wheel_indices.size() ) * mapcost; } //set strength check threshold //if vehicle has many or only one wheel (shopping cart), it is as if it had four. diff --git a/src/handle_action.cpp b/src/handle_action.cpp index f2f64b41e357f..4ac3e01a1b9a5 100644 --- a/src/handle_action.cpp +++ b/src/handle_action.cpp @@ -178,6 +178,10 @@ input_context game::get_player_input( std::string &action ) wPrint.cGlyph = weather_info.glyph; wPrint.wtype = weather.weather; wPrint.vdrops.clear(); + wPrint.startx = iStartX; + wPrint.starty = iStartY; + wPrint.endx = iEndX; + wPrint.endy = iEndY; ctxt.set_timeout( 125 ); bool initial_draw = true; @@ -203,7 +207,7 @@ input_context game::get_player_input( std::string &action ) 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 ) ); + wmove( w_terrain, location.y - offset_y, location.x - offset_x ); 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, @@ -243,7 +247,7 @@ input_context game::get_player_input( std::string &action ) for( size_t i = 0; i < elem.getText().length(); ++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 ) ); + wmove( w_terrain, location.y - offset_y, location.x - offset_x ); 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, @@ -613,29 +617,11 @@ static void smash() { player &u = g->u; map &m = g->m; - if( u.is_mounted() ) { - auto mons = u.mounted_creature.get(); - if( mons->has_flag( MF_RIDEABLE_MECH ) ) { - if( !mons->check_mech_powered() ) { - add_msg( m_bad, _( "Your %s refuses to move as its batteries have been drained." ), - mons->get_name() ); - return; - } - } - } + const int move_cost = !u.is_armed() ? 80 : u.weapon.attack_time() * 0.8; bool didit = false; - bool mech_smash = false; - int smashskill; ///\EFFECT_STR increases smashing capability - if( u.is_mounted() ) { - auto mon = u.mounted_creature.get(); - smashskill = u.str_cur + mon->mech_str_addition() + mon->type->melee_dice * - mon->type->melee_sides; - mech_smash = true; - } else { - smashskill = u.str_cur + u.weapon.damage_melee( DT_BASH ); - } + int smashskill = u.str_cur + u.weapon.damage_melee( DT_BASH ); const bool allow_floor_bash = debug_mode; // Should later become "true" const cata::optional smashp_ = choose_adjacent( _( "Smash where?" ), allow_floor_bash ); @@ -654,12 +640,7 @@ static void smash() smashp.z = u.posz(); smash_floor = true; } - if( u.is_mounted() ) { - monster *crit = u.mounted_creature.get(); - if( crit->has_flag( MF_RIDEABLE_MECH ) ) { - crit->use_mech_power( -3 ); - } - } + if( m.get_field( smashp, fd_web ) != nullptr ) { m.remove_field( smashp, fd_web ); sounds::sound( smashp, 2, sounds::sound_t::combat, "hsh!", true, "smash", "web" ); @@ -685,35 +666,33 @@ static void smash() } 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 mod_sta = ( ( u.weapon.weight() / 10_gram ) + 200 + static_cast - ( get_option( "PLAYER_BASE_STAMINA_REGEN_RATE" ) ) ) * -1; - u.mod_stat( "stamina", mod_sta ); - if( u.get_skill_level( skill_melee ) == 0 ) { - u.practice( skill_melee, rng( 0, 1 ) * rng( 0, 1 ) ); + u.increase_activity_level( MODERATE_EXERCISE ); + u.handle_melee_wear( u.weapon ); + u.moves -= move_cost; + const int mod_sta = ( ( u.weapon.weight() / 10_gram ) + 200 + static_cast + ( get_option( "PLAYER_BASE_STAMINA_REGEN_RATE" ) ) ) * -1; + u.mod_stat( "stamina", mod_sta ); + + if( u.get_skill_level( skill_melee ) == 0 ) { + u.practice( skill_melee, rng( 0, 1 ) * rng( 0, 1 ) ); + } + const int vol = u.weapon.volume() / units::legacy_volume_factor; + if( u.weapon.made_of( material_id( "glass" ) ) && + rng( 0, vol + 3 ) < vol ) { + add_msg( m_bad, _( "Your %s shatters!" ), u.weapon.tname() ); + for( auto &elem : u.weapon.contents ) { + m.add_item_or_charges( u.pos(), elem ); } - const int vol = u.weapon.volume() / units::legacy_volume_factor; - if( u.weapon.made_of( material_id( "glass" ) ) && - rng( 0, vol + 3 ) < vol ) { - add_msg( m_bad, _( "Your %s shatters!" ), u.weapon.tname() ); - for( auto &elem : u.weapon.contents ) { - m.add_item_or_charges( u.pos(), elem ); - } - sounds::sound( u.pos(), 24, sounds::sound_t::combat, "CRACK!", true, "smash", "glass" ); - u.deal_damage( nullptr, bp_hand_r, damage_instance( DT_CUT, rng( 0, vol ) ) ); - if( vol > 20 ) { - // Hurt left arm too, if it was big - u.deal_damage( nullptr, bp_hand_l, damage_instance( DT_CUT, rng( 0, - static_cast( vol * .5 ) ) ) ); - } - u.remove_weapon(); - u.check_dead_state(); + sounds::sound( u.pos(), 24, sounds::sound_t::combat, "CRACK!", true, "smash", "glass" ); + u.deal_damage( nullptr, bp_hand_r, damage_instance( DT_CUT, rng( 0, vol ) ) ); + if( vol > 20 ) { + // Hurt left arm too, if it was big + u.deal_damage( nullptr, bp_hand_l, damage_instance( DT_CUT, rng( 0, + static_cast( vol * .5 ) ) ) ); } + u.remove_weapon(); + u.check_dead_state(); } - u.moves -= move_cost; - if( smashskill < m.bash_resistance( smashp ) && one_in( 10 ) ) { if( m.has_furn( smashp ) && m.furn( smashp ).obj().bash.str_min != -1 ) { // %s is the smashed furniture @@ -728,7 +707,7 @@ static void smash() } } -static int try_set_alarm() +static bool try_set_alarm() { uilist as_m; const bool already_set = g->u.has_effect( effect_alarm_clock ); @@ -745,12 +724,12 @@ static int try_set_alarm() _( "Set an alarm for later" ) ); as_m.query(); - return as_m.ret; + return as_m.ret == 1; } static void wait() { - std::map durations; + std::map durations; uilist as_m; player &u = g->u; bool setting_alarm = false; @@ -762,79 +741,70 @@ static void wait() } if( u.has_alarm_clock() ) { - int alarm_query = try_set_alarm(); - if( alarm_query == UILIST_CANCEL ) { - return; - } - setting_alarm = alarm_query == 1; + setting_alarm = try_set_alarm(); } const bool has_watch = u.has_watch() || setting_alarm; const auto add_menu_item = [ &as_m, &durations, has_watch ] ( int retval, int hotkey, const std::string &caption = "", - const time_duration &duration = time_duration::from_turns( calendar::INDEFINITELY_LONG ) ) { + int duration = calendar::INDEFINITELY_LONG ) { std::string text( caption ); - if( has_watch && duration != time_duration::from_turns( calendar::INDEFINITELY_LONG ) ) { - const std::string dur_str( to_string( duration ) ); + if( has_watch && duration != calendar::INDEFINITELY_LONG ) { + const std::string dur_str( to_string( time_duration::from_turns( duration ) ) ); text += ( text.empty() ? dur_str : string_format( " (%s)", dur_str ) ); } as_m.addentry( retval, true, hotkey, text ); - durations.emplace( retval, duration ); + durations[retval] = duration; }; if( setting_alarm ) { - add_menu_item( 0, '0', "", 30_minutes ); + add_menu_item( 0, '0', "", MINUTES( 30 ) ); for( int i = 1; i <= 9; ++i ) { - add_menu_item( i, '0' + i, "", i * 1_hours ); + add_menu_item( i, '0' + i, "", HOURS( i ) ); } } else { if( g->u.stamina < g->u.get_stamina_max() ) { as_m.addentry( 12, true, 'w', _( "Wait until you catch your breath" ) ); - durations.emplace( 12, 15_minutes ); // to hide it from showing + durations[12] = MINUTES( 15 ); // to hide it from showing } - add_menu_item( 1, '1', !has_watch ? _( "Wait 300 heartbeats" ) : "", 5_minutes ); - add_menu_item( 2, '2', !has_watch ? _( "Wait 1800 heartbeats" ) : "", 30_minutes ); + add_menu_item( 1, '1', !has_watch ? _( "Wait 300 heartbeats" ) : "", MINUTES( 5 ) ); + add_menu_item( 2, '2', !has_watch ? _( "Wait 1800 heartbeats" ) : "", MINUTES( 30 ) ); if( has_watch ) { - add_menu_item( 3, '3', "", 1_hours ); - add_menu_item( 4, '4', "", 2_hours ); - add_menu_item( 5, '5', "", 3_hours ); - add_menu_item( 6, '6', "", 6_hours ); + add_menu_item( 3, '3', "", HOURS( 1 ) ); + add_menu_item( 4, '4', "", HOURS( 2 ) ); + add_menu_item( 5, '5', "", HOURS( 3 ) ); + add_menu_item( 6, '6', "", HOURS( 6 ) ); } } if( g->get_levz() >= 0 || has_watch ) { - const time_point last_midnight = calendar::turn - time_past_midnight( calendar::turn ); - const auto diurnal_time_before = []( const time_point & p ) { - // Either the given time is in the future (e.g. waiting for sunset while it's early morning), - // than use it directly. Otherwise (in the past), add a single day to get the same time tomorrow - // (e.g. waiting for sunrise while it's noon). - const time_point target_time = p > calendar::turn ? p : p + 1_days; - return target_time - calendar::turn; + const auto diurnal_time_before = []( const int turn ) { + const int remainder = turn % DAYS( 1 ) - calendar::turn % DAYS( 1 ); + return ( remainder > 0 ) ? remainder : DAYS( 1 ) + remainder; }; add_menu_item( 7, 'd', setting_alarm ? _( "Set alarm for dawn" ) : _( "Wait till dawn" ), - diurnal_time_before( to_turns( sunrise( calendar::turn ) - calendar::turn_zero ) ) ); + diurnal_time_before( calendar::turn.sunrise() ) ); add_menu_item( 8, 'n', setting_alarm ? _( "Set alarm for noon" ) : _( "Wait till noon" ), - diurnal_time_before( last_midnight + 12_hours ) ); + diurnal_time_before( HOURS( 12 ) ) ); add_menu_item( 9, 'k', setting_alarm ? _( "Set alarm for dusk" ) : _( "Wait till dusk" ), - diurnal_time_before( to_turns( sunset( calendar::turn ) - calendar::turn_zero ) ) ); + diurnal_time_before( calendar::turn.sunset() ) ); add_menu_item( 10, 'm', setting_alarm ? _( "Set alarm for midnight" ) : _( "Wait till midnight" ), - diurnal_time_before( last_midnight + 0_hours ) ); + diurnal_time_before( HOURS( 0 ) ) ); if( setting_alarm ) { if( u.has_effect( effect_alarm_clock ) ) { - add_menu_item( 11, 'x', _( "Cancel the currently set alarm." ), - 0_turns ); + add_menu_item( 11, 'x', _( "Cancel the currently set alarm." ), 0 ); } } else { add_menu_item( 11, 'W', _( "Wait till weather changes" ) ); @@ -846,11 +816,9 @@ static void wait() as_m.text += setting_alarm ? _( "Set alarm for when?" ) : _( "Wait for how long?" ); as_m.query(); /* calculate key and window variables, generate window, and loop until we get a valid answer */ - const auto dur_iter = durations.find( as_m.ret ); - if( dur_iter == durations.end() ) { + if( durations.count( as_m.ret ) == 0 ) { return; } - const time_duration time_to_wait = dur_iter->second; if( setting_alarm ) { // Setting alarm @@ -858,7 +826,7 @@ static void wait() if( as_m.ret == 11 ) { add_msg( _( "You cancel your alarm." ) ); } else { - u.add_effect( effect_alarm_clock, time_to_wait ); + u.add_effect( effect_alarm_clock, time_duration::from_turns( durations[as_m.ret] ) ); add_msg( _( "You set your alarm." ) ); } @@ -873,7 +841,7 @@ static void wait() actType = activity_id( "ACT_WAIT" ); } - player_activity new_act( actType, 100 * ( to_turns( time_to_wait ) - 1 ), 0 ); + player_activity new_act( actType, 100 * ( durations[as_m.ret] - 1 ), 0 ); u.assign_activity( new_act, false ); } @@ -1685,35 +1653,25 @@ bool game::handle_action() dest_delta = get_delta_from_movement_direction( act ); break; case ACTION_MOVE_DOWN: - if( u.is_mounted() ) { - auto mon = u.mounted_creature.get(); - if( !mon->has_flag( MF_RIDEABLE_MECH ) ) { - add_msg( m_info, _( "You can't go down stairs while you're riding." ) ); - break; - } - } - if( !u.in_vehicle ) { + if( !u.in_vehicle && !u.has_effect( effect_riding ) ) { vertical_move( -1, false ); + } else if( u.has_effect( effect_riding ) ) { + add_msg( m_info, _( "You can't go down stairs while you're riding." ) ); } break; case ACTION_MOVE_UP: - if( u.is_mounted() ) { - auto mon = u.mounted_creature.get(); - if( !mon->has_flag( MF_RIDEABLE_MECH ) ) { - add_msg( m_info, _( "You can't go down stairs while you're riding." ) ); - break; - } - } - if( !u.in_vehicle ) { + if( !u.in_vehicle && !u.has_effect( effect_riding ) ) { vertical_move( 1, false ); + } else if( u.has_effect( effect_riding ) ) { + add_msg( m_info, _( "You can't go up stairs while you're riding." ) ); } break; case ACTION_OPEN: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't open things while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't open things while you're riding." ) ); } else { open(); @@ -1723,11 +1681,8 @@ bool game::handle_action() case ACTION_CLOSE: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't close things while you're in your shell." ) ); - } else if( u.is_mounted() ) { - auto mon = u.mounted_creature.get(); - if( !mon->has_flag( MF_RIDEABLE_MECH ) ) { - add_msg( m_info, _( "You can't close things while you're riding." ) ); - } + } else if( u.has_effect( effect_riding ) ) { + add_msg( m_info, _( "You can't close things while you're riding." ) ); } else if( mouse_target ) { doors::close_door( m, u, *mouse_target ); } else { @@ -1758,7 +1713,7 @@ bool game::handle_action() case ACTION_ADVANCEDINV: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't move mass quantities while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't move mass quantities while you're riding." ) ); } else { advanced_inv(); @@ -1768,7 +1723,7 @@ bool game::handle_action() case ACTION_PICKUP: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't pick anything up while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't pick anything up while you're riding." ) ); } else if( mouse_target ) { pickup( *mouse_target ); @@ -1788,7 +1743,7 @@ bool game::handle_action() case ACTION_GRAB: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't grab things while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't grab things while you're riding." ) ); } else { grab(); @@ -1798,7 +1753,7 @@ bool game::handle_action() case ACTION_HAUL: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't haul things while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't haul things while you're riding." ) ); } else { haul(); @@ -1808,7 +1763,7 @@ bool game::handle_action() case ACTION_BUTCHER: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't butcher while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't butcher while you're riding." ) ); } else { butcher(); @@ -1822,7 +1777,7 @@ bool game::handle_action() case ACTION_PEEK: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't peek around corners while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't peek around corners while you're riding." ) ); } else { peek(); @@ -1979,7 +1934,7 @@ bool game::handle_action() case ACTION_CRAFT: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't craft while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't craft while you're riding." ) ); } else { u.craft(); @@ -1989,7 +1944,7 @@ bool game::handle_action() case ACTION_RECRAFT: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't craft while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't craft while you're riding." ) ); } else { u.recraft(); @@ -1999,7 +1954,7 @@ bool game::handle_action() case ACTION_LONGCRAFT: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't craft while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't craft while you're riding." ) ); } else { u.long_craft(); @@ -2009,7 +1964,7 @@ bool game::handle_action() case ACTION_DISASSEMBLE: if( u.controlling_vehicle ) { add_msg( m_info, _( "You can't disassemble items while driving." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't disassemble items while you're riding." ) ); } else { u.disassemble(); @@ -2022,7 +1977,7 @@ bool game::handle_action() add_msg( m_info, _( "You can't construct while in a vehicle." ) ); } else if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't construct while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { add_msg( m_info, _( "You can't construct while you're riding." ) ); } else { construction_menu( false ); @@ -2042,7 +1997,7 @@ bool game::handle_action() case ACTION_CONTROL_VEHICLE: if( u.has_active_mutation( trait_SHELL2 ) ) { add_msg( m_info, _( "You can't operate a vehicle while you're in your shell." ) ); - } else if( u.is_mounted() ) { + } else if( u.has_effect( effect_riding ) ) { u.dismount(); } else { control_vehicle(); @@ -2302,13 +2257,6 @@ bool game::handle_action() display_visibility(); break; - case ACTION_DISPLAY_RADIATION: - if( MAP_SHARING::isCompetitive() && !MAP_SHARING::isDebugger() ) { - break; //don't do anything when sharing and not debugger - } - display_radiation(); - break; - case ACTION_TOGGLE_DEBUG_MODE: if( MAP_SHARING::isCompetitive() && !MAP_SHARING::isDebugger() ) { break; //don't do anything when sharing and not debugger @@ -2382,6 +2330,6 @@ bool game::handle_action() u.movecounter = ( !u.is_dead_state() ? ( before_action_moves - u.moves ) : 0 ); dbg( D_INFO ) << string_format( "%s: [%d] %d - %d = %d", action_ident( act ), - to_turn( calendar::turn ), before_action_moves, u.movecounter, u.moves ); + static_cast( calendar::turn ), before_action_moves, u.movecounter, u.moves ); return ( !u.is_dead_state() ); } diff --git a/src/help.cpp b/src/help.cpp index 06e8d3f1af129..c9b9cbc6688b0 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -99,8 +99,8 @@ void help::draw_menu( const catacurses::window &win ) Please press one of the following for help on that topic:\n\ Press ESC to return to the game." ) ) + 1; - size_t half_size = help_texts.size() / 2 + 1; - int second_column = divide_round_up( getmaxx( win ), 2 ); + size_t half_size = help_texts.size() / 2; + int second_column = getmaxx( win ) / 2; for( size_t i = 0; i < help_texts.size(); i++ ) { std::string cat_name = _( help_texts[i].first ); if( i < half_size ) { @@ -130,11 +130,11 @@ std::string help::get_note_colors() void help::display_help() { catacurses::window w_help_border = 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 ) ); + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); catacurses::window w_help = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, - point( 1 + static_cast( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ), - 1 + static_cast( TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ) ) ); + 1 + static_cast( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), + 1 + static_cast( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); ctxt.register_cardinal(); ctxt.register_action( "QUIT" ); diff --git a/src/iexamine.cpp b/src/iexamine.cpp index 9935a4a1837d1..55fd0bfb335fa 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -25,7 +25,7 @@ #include "craft_command.h" #include "debug.h" #include "effect.h" -#include "timed_event.h" +#include "event.h" #include "field.h" #include "fungal_effects.h" #include "game.h" @@ -107,6 +107,7 @@ const efftype_id effect_mending( "mending" ); const efftype_id effect_pkill2( "pkill2" ); const efftype_id effect_teleglow( "teleglow" ); const efftype_id effect_sleep( "sleep" ); +const efftype_id effect_under_op( "under_operation" ); static const trait_id trait_AMORPHOUS( "AMORPHOUS" ); static const trait_id trait_ARACHNID_ARMS_OK( "ARACHNID_ARMS_OK" ); @@ -576,10 +577,9 @@ void iexamine::vending( player &p, const tripoint &examp ) constexpr int first_item_offset = 3; // header size - catacurses::window const w = catacurses::newwin( window_h, w_items_w, point( padding_x, - padding_y ) ); - catacurses::window const w_item_info = catacurses::newwin( window_h, w_info_w, - point( padding_x + w_items_w, padding_y ) ); + catacurses::window const w = catacurses::newwin( window_h, w_items_w, padding_y, padding_x ); + catacurses::window const w_item_info = catacurses::newwin( window_h, w_info_w, padding_y, + padding_x + w_items_w ); bool used_machine = false; input_context ctxt( "VENDING_MACHINE" ); @@ -617,9 +617,9 @@ void iexamine::vending( player &p, const tripoint &examp ) werase( w ); wborder( w, LINE_XOXO, LINE_XOXO, LINE_OXOX, LINE_OXOX, LINE_OXXO, LINE_OOXX, LINE_XXOO, LINE_XOOX ); - mvwhline( w, point( 1, first_item_offset - 1 ), LINE_OXOX, w_items_w - 2 ); - mvwaddch( w, point( 0, first_item_offset - 1 ), LINE_XXXO ); // |- - mvwaddch( w, point( w_items_w - 1, first_item_offset - 1 ), LINE_XOXX ); // -| + mvwhline( w, first_item_offset - 1, 1, LINE_OXOX, w_items_w - 2 ); + mvwaddch( w, first_item_offset - 1, 0, LINE_XXXO ); // |- + mvwaddch( w, first_item_offset - 1, w_items_w - 1, LINE_XOXX ); // -| trim_and_print( w, 1, 2, w_items_w - 3, c_light_gray, _( "Money left: %s" ), format_money( money ) ); @@ -661,7 +661,7 @@ void iexamine::vending( player &p, const tripoint &examp ) //12 34 const std::string name = utf8_truncate( cur_item->display_name(), static_cast( w_info_w - 4 ) ); - mvwprintw( w_item_info, point_east, "<%s>", name ); + mvwprintw( w_item_info, 0, 1, "<%s>", name ); wrefresh( w_item_info ); const std::string &action = ctxt.handle_input(); @@ -895,9 +895,9 @@ void iexamine::rubble( player &p, const tripoint &examp ) { int moves; if( p.has_quality( quality_id( "DIG" ), 3 ) || p.has_trait( trait_BURROW ) ) { - moves = to_moves( 1_minutes ); + moves = to_turns( 1_minutes ); } else if( p.has_quality( quality_id( "DIG" ), 2 ) ) { - moves = to_moves( 2_minutes ); + moves = to_turns( 2_minutes ); } else { add_msg( m_info, _( "If only you had a shovel..." ) ); return; @@ -1286,7 +1286,7 @@ void iexamine::locked_object( player &p, const tripoint &examp ) void iexamine::bulletin_board( player &p, const tripoint &examp ) { g->validate_camps(); - point omt = ms_to_omt_copy( g->m.getabs( examp.xy() ) ); + point omt = ms_to_omt_copy( g->m.getabs( examp.x, examp.y ) ); cata::optional bcp = overmap_buffer.find_camp( omt ); if( bcp ) { basecamp *temp_camp = *bcp; @@ -1347,7 +1347,7 @@ void iexamine::pedestal_wyrm( player &p, const tripoint &examp ) sounds::sound( examp, 80, sounds::sound_t::combat, _( "an ominous grinding noise..." ), true, "misc", "stones_grinding" ); g->m.ter_set( examp, t_rock_floor ); - g->timed_events.add( TIMED_EVENT_SPAWN_WYRMS, calendar::turn + rng( 30_seconds, 60_seconds ) ); + g->events.add( EVENT_SPAWN_WYRMS, calendar::turn + rng( 30_seconds, 60_seconds ) ); } /** @@ -1360,13 +1360,13 @@ void iexamine::pedestal_temple( player &p, const tripoint &examp ) 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 ); + g->events.add( EVENT_TEMPLE_OPEN, calendar::turn + 10_seconds ); } else if( p.has_amount( "petrified_eye", 1 ) && query_yn( _( "Place your petrified eye on the pedestal?" ) ) ) { p.use_amount( "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 ); + g->events.add( EVENT_TEMPLE_OPEN, calendar::turn + 10_seconds ); } else { add_msg( _( "This pedestal is engraved in eye-shaped diagrams, and has a \ large semi-spherical indentation at the top." ) ); @@ -1468,7 +1468,7 @@ void iexamine::fswitch( player &p, const tripoint &examp ) } } add_msg( m_warning, _( "You hear the rumble of rock shifting." ) ); - g->timed_events.add( TIMED_EVENT_TEMPLE_SPAWN, calendar::turn + 3_turns ); + g->events.add( EVENT_TEMPLE_SPAWN, calendar::turn + 3_turns ); } /** @@ -1809,7 +1809,7 @@ void iexamine::egg_sack_generic( player &p, const tripoint &examp, } } int roll = rng( 1, 5 ); - bool drop_eggs = monster_count >= 1; + bool drop_eggs = ( monster_count >= 1 ? true : false ); for( int i = 0; i < roll; i++ ) { handle_harvest( p, "spider_egg", drop_eggs ); } @@ -2122,7 +2122,7 @@ void iexamine::fertilize_plant( player &p, const tripoint &tile, const itype_id } // TODO: item should probably clamp the value on its own - seed->set_birthday( seed->birthday() - fertilizerEpoch ); + seed->set_birthday( std::max( calendar::time_of_cataclysm, seed->birthday() - fertilizerEpoch ) ); // The plant furniture has the NOITEM token which prevents adding items on that square, // spawned items are moved to an adjacent field instead, but the fertilizer token // must be on the square of the plant, therefore this hack: @@ -2332,136 +2332,6 @@ void iexamine::kiln_full( player &, const tripoint &examp ) g->m.furn_set( examp, next_kiln_type ); add_msg( _( "It has finished burning, yielding %d charcoal." ), result.charges ); } -//arc furnance start -void iexamine::arcfurnace_empty( player &p, const tripoint &examp ) -{ - furn_id cur_arcfurnace_type = g->m.furn( examp ); - furn_id next_arcfurnace_type = f_null; - if( cur_arcfurnace_type == f_arcfurnace_empty ) { - next_arcfurnace_type = f_arcfurnace_full; - } else { - debugmsg( "Examined furniture has action arcfurnace_empty, but is of type %s", - g->m.furn( examp ).id().c_str() ); - return; - } - - static const std::set arcfurnaceable{ material_id( "cac2powder" ) }; - bool fuel_present = false; - auto items = g->m.i_at( examp ); - for( const item &i : items ) { - if( i.typeId() == "chem_carbide" ) { - add_msg( _( "This furnace already contains calcium carbide." ) ); - add_msg( _( "Remove it before activating the arc furnace again." ) ); - return; - } else if( i.made_of_any( arcfurnaceable ) ) { - fuel_present = true; - } else { - add_msg( m_bad, _( "This furnace contains %s, which can't be made into calcium carbide!" ), - i.tname( 1, false ) ); - return; - } - } - - if( !fuel_present ) { - add_msg( _( "This furance is empty. Fill it with powdered coke and lime mix, and try again." ) ); - return; - } - - ///\EFFECT_FABRICATION decreases loss when firing a furnace - const int skill = p.get_skill_level( skill_fabrication ); - int loss = 60 - 2 * - skill; // Inefficency is still fine, coal and limestone is abundant - - // Burn stuff that should get charred, leave out the rest - units::volume total_volume = 0_ml; - for( const item &i : items ) { - total_volume += i.volume(); - } - - auto char_type = item::find_type( "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 ) ) { - add_msg( _( "This furnace is ready to be turned on, but you lack a UPS with sufficient power." ) ); - return; - } else { - add_msg( _( "This furnace contains %s %s of material, and is ready to be turned on." ), - format_volume( total_volume ), volume_units_abbr() ); - if( !query_yn( _( "Turn on the furnace?" ) ) ) { - return; - } - } - - p.use_charges( "UPS", 1250 ); - g->m.i_clear( examp ); - g->m.furn_set( examp, next_arcfurnace_type ); - item result( "unfinished_cac2", calendar::turn ); - result.charges = char_charges; - g->m.add_item( examp, result ); - add_msg( _( "You turn on the furnace." ) ); -} - -void iexamine::arcfurnace_full( player &, const tripoint &examp ) -{ - furn_id cur_arcfurnace_type = g->m.furn( examp ); - furn_id next_arcfurnace_type = f_null; - if( cur_arcfurnace_type == f_arcfurnace_full ) { - next_arcfurnace_type = f_arcfurnace_empty; - } else { - debugmsg( "Examined furniture has action arcfurnace_full, but is of type %s", - g->m.furn( examp ).id().c_str() ); - return; - } - - map_stack items = g->m.i_at( examp ); - if( items.empty() ) { - add_msg( _( "This furnace is empty..." ) ); - g->m.furn_set( examp, next_arcfurnace_type ); - return; - } - auto char_type = item::find_type( "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(); - if( time_left > 0_turns ) { - int hours = to_hours( time_left ); - int minutes = to_minutes( time_left ) + 1; - if( minutes > 60 ) { - add_msg( ngettext( "It will finish burning in about %d hour.", - "It will finish burning in about %d hours.", - hours ), hours ); - } else if( minutes > 30 ) { - add_msg( _( "It will finish burning in less than an hour." ) ); - } else { - add_msg( _( "It should take about %d minutes to finish burning." ), minutes ); - } - return; - } - - 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" ) { - total_volume += item_it->volume(); - item_it = items.erase( item_it ); - } else { - item_it++; - } - } - - item result( "chem_carbide", calendar::turn ); - result.charges = char_type->charges_per_volume( total_volume ); - g->m.add_item( examp, result ); - g->m.furn_set( examp, next_arcfurnace_type ); - add_msg( _( "It has finished burning, yielding %d calcium carbide." ), result.charges ); -} -//arc furnace end - -void iexamine::fireplace( player &p, const tripoint &examp ); void iexamine::autoclave_empty( player &p, const tripoint &examp ) { @@ -2600,23 +2470,19 @@ void iexamine::fireplace( player &p, const tripoint &examp ) const bool has_bionic_firestarter = p.has_bionic( bionic_id( "bio_lighter" ) ) && p.power_level >= bionic_id( "bio_lighter" )->power_activate; - auto firequenchers = p.items_with( []( const item & it ) { - return it.damage_melee( DT_BASH ); - } ); - uilist selection_menu; selection_menu.text = _( "Select an action" ); - selection_menu.addentry( 0, true, 'g', _( "Get items" ) ); + selection_menu.addentry( 0, true, 'e', _( "Examine" ) ); if( !already_on_fire ) { selection_menu.addentry( 1, has_firestarter, 'f', has_firestarter ? _( "Start a fire" ) : _( "Start a fire... you'll need a fire source." ) ); if( has_bionic_firestarter ) { selection_menu.addentry( 2, true, 'b', _( "Use a CBM to start a fire" ) ); } - } else if( !firequenchers.empty() ) { - selection_menu.addentry( 4, true, 'e', _( "Extinguish fire" ) ); + } else if( p.weapon.damage_melee( DT_BASH ) ) { + selection_menu.addentry( 4, true, 's', _( "Put out fire" ) ); } else { - selection_menu.addentry( 4, false, 'e', _( "Extinguish fire (bashing item required)" ) ); + selection_menu.addentry( 4, false, 's', _( "Put out fire - wield bashing item" ) ); } if( furn_is_deployed ) { selection_menu.addentry( 3, true, 't', string_format( _( "Take down the %s" ), @@ -3580,6 +3446,9 @@ void iexamine::reload_furniture( player &p, const tripoint &examp ) return; } } + //~ %1$s - furniture, %2$d - number, %3$s items. + add_msg( _( "The %1$s contains %2$d %3$s." ), f.name(), amount_in_furn, + ammo->nname( amount_in_furn ) ); const int max_amount_in_furn = ammo->charges_per_volume( f.max_volume ); const int max_reload_amount = max_amount_in_furn - amount_in_furn; @@ -3618,12 +3487,6 @@ void iexamine::reload_furniture( player &p, const tripoint &examp ) item it( ammo, calendar::turn, amount ); g->m.add_item( examp, it ); } - - const int amount_in_furn_after_placing = count_charges_in_list( ammo, items ); - //~ %1$s - furniture, %2$d - number, %3$s items. - add_msg( _( "The %1$s contains %2$d %3$s." ), f.name(), amount_in_furn_after_placing, - ammo->nname( amount_in_furn_after_placing ) ); - add_msg( _( "You reload the %s." ), g->m.furnname( examp ) ); p.moves -= to_moves( 5_seconds ); } @@ -4070,9 +3933,8 @@ void iexamine::pay_gas( player &p, const tripoint &examp ) pgettext( "memorial_female", "Set off an alarm." ) ); sounds::sound( p.pos(), 60, sounds::sound_t::music, _( "an alarm sound!" ), true, "environment", "alarm" ); - if( examp.z > 0 && !g->timed_events.queued( TIMED_EVENT_WANTED ) ) { - g->timed_events.add( TIMED_EVENT_WANTED, calendar::turn + 30_minutes, 0, - p.global_sm_location() ); + if( examp.z > 0 && !g->events.queued( EVENT_WANTED ) ) { + g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p.global_sm_location() ); } break; case HACK_NOTHING: @@ -4366,9 +4228,9 @@ 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.has_effect( effect_under_op ) ) { 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 ) ) ); + to_string( patient.get_effect_dur( effect_under_op ) ) ); p.add_msg_if_player( m_info, _( "The autodoc is working on %s." ), patient.disp_name() ); return; } @@ -4424,10 +4286,7 @@ void iexamine::autodoc( player &p, const tripoint &examp ) return; } - const int weight = units::to_kilogram( patient.bodyweight() ) / 10; - const int surgery_duration = itemtype->bionic->difficulty * 2; - const requirement_data req_anesth = *requirement_id( "anesthetic" ) * - surgery_duration * weight; + const float volume_anesth = itemtype->bionic->difficulty * 20 * 2; // 2ml/min if( patient.can_install_bionics( ( *itemtype ), installer, true ) ) { const time_duration duration = itemtype->bionic->difficulty * 20_minutes; @@ -4436,13 +4295,7 @@ void iexamine::autodoc( player &p, const tripoint &examp ) if( needs_anesthesia ) { // Consume obsolete anesthesia first if( acomps.empty() ) { - for( const auto &e : req_anesth.get_components() ) { - p.consume_items( e, 1, is_crafting_component ); - } - for( const auto &e : req_anesth.get_tools() ) { - p.consume_tools( e ); - } - p.invalidate_crafting_inventory(); + p.consume_tools( anesth_kit, volume_anesth ); } else { // Legacy p.consume_items( acomps, 1, is_crafting_component ); @@ -4450,6 +4303,7 @@ void iexamine::autodoc( player &p, const tripoint &examp ) } installer.mod_moves( -to_moves( 1_minutes ) ); + patient.add_effect( effect_under_op, duration, num_bp ); patient.install_bionics( ( *itemtype ), installer, true ); } break; @@ -4514,6 +4368,7 @@ void iexamine::autodoc( player &p, const tripoint &examp ) } installer.mod_moves( -to_moves( 1_minutes ) ); + patient.add_effect( effect_under_op, duration, num_bp ); patient.uninstall_bionic( bid, installer, true ); } break; @@ -4523,7 +4378,7 @@ 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.get_hp( static_cast( i ) ) <= 0; - body_part part = player::hp_to_bp( static_cast( i ) ); + body_part part = patient.hp_to_bp( static_cast( i ) ); effect &existing_effect = patient.get_effect( effect_mending, part ); // Skip part if not broken or already healed 50% if( !broken || ( !existing_effect.is_null() && @@ -4934,8 +4789,8 @@ static void smoker_load_food( player &p, const tripoint &examp, for( const item &m : moved ) { g->m.add_item( examp, m ); p.mod_moves( -p.item_handling_cost( m ) ); - add_msg( m_info, _( "You carefully place %s %s in the rack." ), amount, - item::nname( m.typeId(), amount ) ); + add_msg( m_info, _( "You carefully place %s %s in the rack." ), amount, m.nname( m.typeId(), + amount ) ); } p.invalidate_crafting_inventory(); } @@ -5042,7 +4897,8 @@ static void mill_load_food( player &p, const tripoint &examp, g->m.add_item( examp, m ); p.mod_moves( -p.item_handling_cost( m ) ); add_msg( m_info, pgettext( "item amount and name", "You carefully place %s %s in the mill." ), - amount, item::nname( m.typeId(), amount ) ); + amount, m.nname( m.typeId(), + amount ) ); } p.invalidate_crafting_inventory(); } @@ -5178,7 +5034,7 @@ void iexamine::quern_examine( player &p, const tripoint &examp ) "\n "; continue; } - pop << "-> " << item::nname( it.typeId(), it.charges ); + pop << "-> " << it.nname( it.typeId(), it.charges ); pop << " (" << std::to_string( it.charges ) << ") \n "; } } @@ -5382,7 +5238,7 @@ void iexamine::smoker_options( player &p, const tripoint &examp ) "\n "; continue; } - pop << "-> " << item::nname( it.typeId(), it.charges ); + pop << "-> " << it.nname( it.typeId(), it.charges ); pop << " (" << std::to_string( it.charges ) << ") \n "; } } @@ -5467,7 +5323,6 @@ void iexamine::workbench_internal( player &p, const tripoint &examp, { std::vector crafts; std::string name; - bool is_undeployable = false; bool items_at_loc = false; @@ -5482,9 +5337,6 @@ void iexamine::workbench_internal( player &p, const tripoint &examp, } } else { name = g->m.furn( examp ).obj().name(); - if( item::type_is_defined( g->m.furn( examp ).obj().deployed_item ) ) { - is_undeployable = true; - } auto items_at_furn = g->m.i_at( examp ); items_at_loc = !items_at_furn.empty(); @@ -5503,8 +5355,7 @@ void iexamine::workbench_internal( player &p, const tripoint &examp, repeat_craft, start_long_craft, work_on_craft, - get_items, - undeploy + get_items }; amenu.text = string_format( pgettext( "furniture", "What to do at the %s?" ), name ); @@ -5515,9 +5366,6 @@ void iexamine::workbench_internal( player &p, const tripoint &examp, if( !part ) { amenu.addentry( get_items, items_at_loc, 'g', _( "Get items" ) ); } - if( is_undeployable ) { - amenu.addentry( undeploy, true, 't', _( "Take down the %s" ), name ); - } amenu.query(); @@ -5589,10 +5437,6 @@ void iexamine::workbench_internal( player &p, const tripoint &examp, Pickup::pick_up( examp, 0 ); break; } - case undeploy: { - deployed_furniture( p, examp ); - break; - } } } @@ -5672,8 +5516,6 @@ iexamine_function iexamine_function_from_string( const std::string &function_nam { "locked_object", &iexamine::locked_object }, { "kiln_empty", &iexamine::kiln_empty }, { "kiln_full", &iexamine::kiln_full }, - { "arcfurnace_empty", &iexamine::arcfurnace_empty }, - { "arcfurnace_full", &iexamine::arcfurnace_full }, { "autoclave_empty", &iexamine::autoclave_empty }, { "autoclave_full", &iexamine::autoclave_full }, { "fireplace", &iexamine::fireplace }, diff --git a/src/iexamine.h b/src/iexamine.h index 89545f7b343b0..a1493f8bf8d00 100644 --- a/src/iexamine.h +++ b/src/iexamine.h @@ -94,8 +94,6 @@ void water_source( player &p, const tripoint &examp ); void clean_water_source( player &, const tripoint &examp ); void kiln_empty( player &p, const tripoint &examp ); void kiln_full( player &p, const tripoint &examp ); -void arcfurnace_empty( player &p, const tripoint &examp ); -void arcfurnace_full( player &p, const tripoint &examp ); void autoclave_empty( player &p, const tripoint &examp ); void autoclave_full( player &, const tripoint &examp ); void fireplace( player &p, const tripoint &examp ); diff --git a/src/ime.cpp b/src/ime.cpp deleted file mode 100644 index 84b2456dfacc0..0000000000000 --- a/src/ime.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include "ime.h" - -#include "options.h" -#include "platform_win.h" -#include "sdltiles.h" - -#ifdef _WIN32 -class imm_wrapper -{ - private: - HMODULE hImm; - typedef HIMC( WINAPI *pImmGetContext_t )( HWND ); - typedef BOOL( WINAPI *pImmGetOpenStatus_t )( HIMC ); - typedef BOOL( WINAPI *pImmSetOpenStatus_t )( HIMC, BOOL ); - typedef BOOL( WINAPI *pImmReleaseContext_t )( HWND, HIMC ); - pImmGetContext_t pImmGetContext; - pImmGetOpenStatus_t pImmGetOpenStatus; - pImmSetOpenStatus_t pImmSetOpenStatus; - pImmReleaseContext_t pImmReleaseContext; - - template - static T fun_ptr_cast( FARPROC p ) { - // workaround function cast warning - return reinterpret_cast( reinterpret_cast( p ) ); - } - public: - imm_wrapper() { - // Check if East Asian support is available - hImm = LoadLibrary( "imm32.dll" ); - if( hImm ) { - pImmGetContext = fun_ptr_cast( - GetProcAddress( hImm, "ImmGetContext" ) ); - pImmGetOpenStatus = fun_ptr_cast( - GetProcAddress( hImm, "ImmGetOpenStatus" ) ); - pImmSetOpenStatus = fun_ptr_cast( - GetProcAddress( hImm, "ImmSetOpenStatus" ) ); - pImmReleaseContext = fun_ptr_cast( - GetProcAddress( hImm, "ImmReleaseContext" ) ); - if( !pImmGetContext || !pImmGetOpenStatus || - !pImmSetOpenStatus || !pImmReleaseContext ) { - - FreeLibrary( hImm ); - hImm = nullptr; - pImmGetContext = nullptr; - pImmGetOpenStatus = nullptr; - pImmSetOpenStatus = nullptr; - pImmReleaseContext = nullptr; - } - } - } - - ~imm_wrapper() { - if( hImm ) { - FreeLibrary( hImm ); - } - } - - bool ime_enabled() { - if( hImm ) { - const HWND hwnd = getWindowHandle(); - const HIMC himc = pImmGetContext( hwnd ); - bool enabled = pImmGetOpenStatus( himc ); - pImmReleaseContext( hwnd, himc ); - return enabled; - } - return false; - } - - void enable_ime() { - if( hImm ) { - const HWND hwnd = getWindowHandle(); - const HIMC himc = pImmGetContext( hwnd ); - pImmSetOpenStatus( himc, TRUE ); - pImmReleaseContext( hwnd, himc ); - } - } - - void disable_ime() { - if( hImm ) { - const HWND hwnd = getWindowHandle(); - const HIMC himc = pImmGetContext( hwnd ); - pImmSetOpenStatus( himc, FALSE ); - pImmReleaseContext( hwnd, himc ); - } - } -}; - -static imm_wrapper imm; -#endif - -static bool ime_enabled() -{ -#if defined( __ANDROID__ ) - return false; // always call disable_ime() (i.e. do nothing) on return -#elif defined( _WIN32 ) - return imm.ime_enabled(); -#endif - return false; - // TODO: other platforms? -} - -void enable_ime() -{ -#if defined( __ANDROID__ ) - if( get_option( "ANDROID_AUTO_KEYBOARD" ) ) { - SDL_StartTextInput(); - } -#elif defined( _WIN32 ) - imm.enable_ime(); -#endif - // TODO: other platforms? -} - -void disable_ime() -{ -#if defined( __ANDROID__ ) - // the original android code did nothing, so don't change it -#elif defined( _WIN32 ) - imm.disable_ime(); -#endif - // TODO: other platforms? -} - -ime_sentry::ime_sentry( ime_sentry::mode m ) : previously_enabled( ime_enabled() ) -{ - switch( m ) { - case enable: - enable_ime(); - break; - case disable: - disable_ime(); - break; - case keep: - // do nothing - break; - } -} - -ime_sentry::~ime_sentry() -{ - if( previously_enabled ) { - enable_ime(); - } else { - disable_ime(); - } -} diff --git a/src/ime.h b/src/ime.h deleted file mode 100644 index 9e6325886c051..0000000000000 --- a/src/ime.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#ifndef IME_H -#define IME_H - -/** - * Enable or disable IME for text/keyboard input - */ -void enable_ime(); -void disable_ime(); - -/** - * used before text input to change IME mode and auto-restore IME mode when leaving the scope - */ -class ime_sentry -{ - public: - enum mode { - enable = 0, - disable = 1, - keep = 2, - }; - - ime_sentry( mode m = enable ); - ~ime_sentry(); - private: - bool previously_enabled; -}; - -#endif diff --git a/src/init.cpp b/src/init.cpp index 8831ec5f2e12d..6896a7072f1e0 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -39,7 +39,6 @@ #include "material.h" #include "mission.h" #include "magic.h" -#include "magic_ter_furn_transform.h" #include "mod_tileset.h" #include "monfaction.h" #include "mongroup.h" @@ -372,7 +371,6 @@ void DynamicDataLoader::initialize() add( "morale_type", &morale_type_data::load_type ); add( "SPELL", &spell_type::load_spell ); add( "clothing_mod", &clothing_mods::load ); - add( "ter_furn_transform", &ter_furn_transform::load_transform ); #if defined(TILES) add( "mod_tileset", &load_mod_tileset ); #else @@ -644,7 +642,6 @@ void DynamicDataLoader::check_consistency( loading_ui &ui ) { _( "Overmap terrain" ), &overmap_terrains::check_consistency }, { _( "Overmap locations" ), &overmap_locations::check_consistency }, { _( "Overmap specials" ), &overmap_specials::check_consistency }, - { _( "Map extras" ), &MapExtras::check_consistency }, { _( "Ammunition types" ), &ammunition_type::check_consistency }, { _( "Traps" ), &trap::check_consistency }, { _( "Bionics" ), &check_bionics }, diff --git a/src/input.cpp b/src/input.cpp index cf279d0b9cdc1..c45335af0af23 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -20,7 +20,6 @@ #include "filesystem.h" #include "game.h" #include "help.h" -#include "ime.h" #include "json.h" #include "optional.h" #include "options.h" @@ -712,9 +711,9 @@ std::string input_context::get_available_single_char_hotkeys( std::string reques return requested_keys; } -std::string input_context::get_desc( const std::string &action_descriptor, - const unsigned int max_limit, - const std::function evt_filter ) const +const std::string input_context::get_desc( const std::string &action_descriptor, + const unsigned int max_limit, + const std::function evt_filter ) const { if( action_descriptor == "ANY_INPUT" ) { return "(*)"; // * for wildcard @@ -764,9 +763,9 @@ std::string input_context::get_desc( const std::string &action_descriptor, return rval.str(); } -std::string input_context::get_desc( const std::string &action_descriptor, - const std::string &text, - const std::function evt_filter ) const +const std::string input_context::get_desc( const std::string &action_descriptor, + const std::string &text, + const std::function evt_filter ) const { if( action_descriptor == "ANY_INPUT" ) { //~ keybinding description for anykey @@ -840,7 +839,8 @@ const std::string &input_context::handle_input( const int timeout ) } coordinate_input_received = true; - coordinate = next_action.mouse_pos; + coordinate_x = next_action.mouse_x; + coordinate_y = next_action.mouse_y; } else { coordinate_input_received = false; } @@ -906,8 +906,8 @@ void rotate_direction_cw( int &dx, int &dy ) static const std::array rotate_direction_vec = {{ 1, 2, 5, 0, 4, 8, 3, 6, 7 }}; dir_num = rotate_direction_vec[dir_num]; // convert back to -1,0,+1 - dx = dir_num % 3 - 1; - dy = dir_num / 3 - 1; + dx = ( dir_num % 3 ) - 1; + dy = ( dir_num / 3 ) - 1; } cata::optional input_context::get_direction( const std::string &action ) const @@ -922,21 +922,21 @@ cata::optional input_context::get_direction( const std::string &action const auto transform = iso_mode && tile_iso && use_tiles ? rotate : noop; if( action == "UP" ) { - return transform( tripoint_north ); + return transform( tripoint( 0, -1, 0 ) ); } else if( action == "DOWN" ) { - return transform( tripoint_south ); + return transform( tripoint( 0, +1, 0 ) ); } else if( action == "LEFT" ) { - return transform( tripoint_west ); + return transform( tripoint( -1, 0, 0 ) ); } else if( action == "RIGHT" ) { - return transform( tripoint_east ); + return transform( tripoint( +1, 0, 0 ) ); } else if( action == "LEFTUP" ) { - return transform( tripoint_north_west ); + return transform( tripoint( -1, -1, 0 ) ); } else if( action == "RIGHTUP" ) { - return transform( tripoint_north_east ); + return transform( tripoint( +1, -1, 0 ) ); } else if( action == "LEFTDOWN" ) { - return transform( tripoint_south_west ); + return transform( tripoint( -1, +1, 0 ) ); } else if( action == "RIGHTDOWN" ) { - return transform( tripoint_south_east ); + return transform( tripoint( +1, +1, 0 ) ); } else { return cata::nullopt; } @@ -975,8 +975,8 @@ void input_context::display_menu() int maxheight = max( FULL_SCREEN_HEIGHT, TERMY ); int height = min( maxheight, static_cast( hotkeys.size() ) + LEGEND_HEIGHT + BORDER_SPACE ); - catacurses::window w_help = catacurses::newwin( height - 2, width - 2, - point( maxwidth / 2 - width / 2, maxheight / 2 - height / 2 ) ); + catacurses::window w_help = catacurses::newwin( height - 2, width - 2, maxheight / 2 - height / 2, + maxwidth / 2 - width / 2 ); // has the user changed something? bool changed = false; @@ -1022,8 +1022,6 @@ void input_context::display_menu() .max_length( legwidth ) .context( ctxt ); - // do not switch IME mode now, but restore previous mode on return - ime_sentry sentry( ime_sentry::keep ); while( true ) { werase( w_help ); draw_border( w_help, BORDER_COLOR, _( "Keybindings" ), c_light_red ); @@ -1264,25 +1262,32 @@ cata::optional input_context::get_coordinates( const catacurses::windo if( !coordinate_input_received ) { return cata::nullopt; } - const point view_size( getmaxx( capture_win ), getmaxy( capture_win ) ); - const point win_min( getbegx( capture_win ) - VIEW_OFFSET_X, - getbegy( capture_win ) - VIEW_OFFSET_Y ); - const rectangle win_bounds( win_min, win_min + view_size ); - if( !win_bounds.contains_half_open( coordinate ) ) { + int view_columns = getmaxx( capture_win ); + int view_rows = getmaxy( capture_win ); + int win_left = getbegx( capture_win ) - VIEW_OFFSET_X; + int win_right = win_left + view_columns - 1; + int win_top = getbegy( capture_win ) - VIEW_OFFSET_Y; + int win_bottom = win_top + view_rows - 1; + if( coordinate_x < win_left || coordinate_x > win_right || coordinate_y < win_top || + coordinate_y > win_bottom ) { return cata::nullopt; } - point view_offset; + int view_offset_x = 0; + int view_offset_y = 0; if( capture_win == g->w_terrain ) { - view_offset = g->ter_view_p.xy(); + view_offset_x = g->ter_view_x; + view_offset_y = g->ter_view_y; } - const point p = view_offset - ( view_size / 2 - coordinate ); - return tripoint( p, g->get_levz() ); + const int x = view_offset_x - ( ( view_columns / 2 ) - coordinate_x ); + const int y = view_offset_y - ( ( view_rows / 2 ) - coordinate_y ); + + return tripoint( x, y, g->get_levz() ); } #endif -std::string input_context::get_action_name( const std::string &action_id ) const +const std::string input_context::get_action_name( const std::string &action_id ) const { // 1) Check action name overrides specific to this input_context const input_manager::t_string_string_map::const_iterator action_name_override = diff --git a/src/input.h b/src/input.h index 00e32f5d10d23..0846cf83098cf 100644 --- a/src/input.h +++ b/src/input.h @@ -13,7 +13,7 @@ #include #endif -#include "point.h" +struct tripoint; namespace cata { @@ -87,7 +87,7 @@ struct input_event { // triggers this event. For single-key // events, simply make this of size 1. - point mouse_pos; // Mouse click co-ordinates, if applicable + int mouse_x, mouse_y; // Mouse click co-ordinates, if applicable // Actually entered text (if any), UTF-8 encoded, might be empty if // the input is not UTF-8 or not even text. @@ -101,6 +101,7 @@ struct input_event { #endif input_event() { + mouse_x = mouse_y = 0; type = CATA_INPUT_ERROR; #if defined(__ANDROID__) shortcut_last_used_action_counter = 0; @@ -108,6 +109,7 @@ struct input_event { } input_event( int s, input_event_t t ) : type( t ) { + mouse_x = mouse_y = 0; sequence.push_back( s ); #if defined(__ANDROID__) shortcut_last_used_action_counter = 0; @@ -125,7 +127,8 @@ struct input_event { type = other.type; modifiers = other.modifiers; sequence = other.sequence; - mouse_pos = other.mouse_pos; + mouse_x = other.mouse_x; + mouse_y = other.mouse_y; text = other.text; shortcut_last_used_action_counter = other.shortcut_last_used_action_counter; return *this; @@ -183,14 +186,14 @@ struct action_attributes { #define JOY_6 6 #define JOY_7 7 -#define JOY_LEFT (256 + 1) -#define JOY_RIGHT (256 + 2) -#define JOY_UP (256 + 3) -#define JOY_DOWN (256 + 4) -#define JOY_RIGHTUP (256 + 5) -#define JOY_RIGHTDOWN (256 + 6) -#define JOY_LEFTUP (256 + 7) -#define JOY_LEFTDOWN (256 + 8) +#define JOY_LEFT 256 + 1 +#define JOY_RIGHT 256 + 2 +#define JOY_UP 256 + 3 +#define JOY_DOWN 256 + 4 +#define JOY_RIGHTUP 256 + 5 +#define JOY_RIGHTDOWN 256 + 6 +#define JOY_LEFTUP 256 + 7 +#define JOY_LEFTDOWN 256 + 8 /** * Manages the translation from action IDs to associated input. @@ -442,7 +445,8 @@ class input_context allow_text_entry = other.allow_text_entry; registered_any_input = other.registered_any_input; category = other.category; - coordinate = other.coordinate; + coordinate_x = other.coordinate_x; + coordinate_y = other.coordinate_y; coordinate_input_received = other.coordinate_input_received; handling_coordinate_input = other.handling_coordinate_input; next_action = other.next_action; @@ -458,7 +462,8 @@ class input_context registered_manual_keys == other.registered_manual_keys && allow_text_entry == other.allow_text_entry && registered_any_input == other.registered_any_input && - coordinate == other.coordinate && + coordinate_x == other.coordinate_x && + coordinate_y == other.coordinate_y && coordinate_input_received == other.coordinate_input_received && handling_coordinate_input == other.handling_coordinate_input && next_action == other.next_action && @@ -534,9 +539,9 @@ class input_context * @param evt_filter Only keys satisfying this function will be * described. */ - std::string get_desc( const std::string &action_descriptor, - const unsigned int max_limit = 0, - const std::function evt_filter = + const std::string get_desc( const std::string &action_descriptor, + const unsigned int max_limit = 0, + const std::function evt_filter = []( const input_event & ) { return true; } ) const; @@ -555,9 +560,9 @@ class input_context * * @param evt_filter Only keys satisfying this function will be considered */ - std::string get_desc( const std::string &action_descriptor, - const std::string &text, - const std::function evt_filter = + const std::string get_desc( const std::string &action_descriptor, + const std::string &text, + const std::function evt_filter = []( const input_event & ) { return true; } ) const; @@ -617,7 +622,7 @@ class input_context /** * Get the human-readable name for an action. */ - std::string get_action_name( const std::string &action_id ) const; + const std::string get_action_name( const std::string &action_id ) const; /* For the future, something like this might be nice: * const std::string register_action(const std::string& action_descriptor, x, y, width, height); @@ -669,7 +674,8 @@ class input_context private: bool registered_any_input; std::string category; // The input category this context uses. - point coordinate; + int coordinate_x; + int coordinate_y; bool coordinate_input_received; bool handling_coordinate_input; input_event next_action; diff --git a/src/inventory.cpp b/src/inventory.cpp index a442167159a48..85583b2179a52 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -665,7 +665,7 @@ void inventory::dump( std::vector &dest ) { for( auto &elem : items ) { for( auto &elem_stack_iter : elem ) { - dest.push_back( &elem_stack_iter ); + dest.push_back( &( elem_stack_iter ) ); } } } @@ -833,7 +833,7 @@ item *inventory::most_appropriate_painkiller( int pain ) if( diff < difference ) { difference = diff; - ret = &elem.front(); + ret = &( elem.front() ); } } return ret; diff --git a/src/inventory_ui.cpp b/src/inventory_ui.cpp index 45359fc9c1b67..e515b70d1f776 100644 --- a/src/inventory_ui.cpp +++ b/src/inventory_ui.cpp @@ -4,7 +4,6 @@ #include "cata_utility.h" #include "catacharset.h" #include "game.h" -#include "ime.h" #include "item.h" #include "item_category.h" #include "item_search.h" @@ -433,7 +432,7 @@ void inventory_column::set_filter( const std::string &filter ) prepare_paging( filter ); } -inventory_column::entry_cell_cache_t inventory_column::make_entry_cell_cache( +const inventory_column::entry_cell_cache_t inventory_column::make_entry_cell_cache( const inventory_entry &entry ) const { entry_cell_cache_t result; @@ -953,7 +952,7 @@ void inventory_column::draw( const catacurses::window &win, size_t x, size_t y ) } if( pages_count() > 1 ) { - mvwprintw( win, point( x, y + height - 1 ), _( "Page %d/%d" ), page_index() + 1, pages_count() ); + mvwprintw( win, y + height - 1, x, _( "Page %d/%d" ), page_index() + 1, pages_count() ); } } @@ -1024,7 +1023,7 @@ static std::vector> restack_items( const std::list::cons for( auto it = from; it != to; ++it ) { auto match = std::find_if( res.begin(), res.end(), [ &it, check_components ]( const std::list &e ) { - return it->display_stacked_with( *const_cast( e.back() ), check_components ); + return it->stacks_with( *const_cast( e.back() ), check_components ); } ); if( match != res.end() ) { @@ -1046,7 +1045,7 @@ static std::vector> restack_items( const item_stack::const_ite for( auto it = from; it != to; ++it ) { auto match = std::find_if( res.begin(), res.end(), [ &it, check_components ]( const std::list &e ) { - return it->display_stacked_with( *const_cast( e.back() ), check_components ); + return it->stacks_with( *const_cast( e.back() ), check_components ); } ); if( match != res.end() ) { @@ -1382,7 +1381,7 @@ void inventory_selector::draw_header( const catacurses::window &w ) const trim_and_print( w, border, border + 1, getmaxx( w ) - 2 * ( border + 1 ), c_white, title ); trim_and_print( w, border + 1, border + 1, getmaxx( w ) - 2 * ( border + 1 ), c_dark_gray, hint ); - mvwhline( w, point( border, border + get_header_height() ), LINE_OXOX, getmaxx( w ) - 2 * border ); + mvwhline( w, border + get_header_height(), border, LINE_OXOX, getmaxx( w ) - 2 * border ); if( display_stats ) { size_t y = border; @@ -1474,7 +1473,8 @@ void inventory_selector::resize_window( int width, int height ) { if( !w_inv || width != getmaxx( w_inv ) || height != getmaxy( w_inv ) ) { w_inv = catacurses::newwin( height, width, - point( VIEW_OFFSET_X + ( TERMX - width ) / 2, VIEW_OFFSET_Y + ( TERMY - height ) / 2 ) ); + VIEW_OFFSET_Y + ( TERMY - height ) / 2, + VIEW_OFFSET_X + ( TERMX - width ) / 2 ); } } @@ -1499,7 +1499,11 @@ void inventory_selector::set_filter() .max_length( 256 ) .text( filter ); - ime_sentry sentry; +#if defined(__ANDROID__) + if( get_option( "ANDROID_AUTO_KEYBOARD" ) ) { + SDL_StartTextInput(); + } +#endif do { mvwprintz( w_inv, getmaxy( w_inv ) - 1, 2, c_cyan, "< " ); @@ -1572,8 +1576,8 @@ void inventory_selector::draw_frame( const catacurses::window &w ) const draw_border( w ); const int y = border + get_header_height(); - mvwhline( w, point( 0, y ), LINE_XXXO, 1 ); - mvwhline( w, point( getmaxx( w ) - border, y ), LINE_XOXX, 1 ); + mvwhline( w, y, 0, LINE_XXXO, 1 ); + mvwhline( w, y, getmaxx( w ) - border, LINE_XOXX, 1 ); } std::pair inventory_selector::get_footer( navigation_mode m ) const diff --git a/src/inventory_ui.h b/src/inventory_ui.h index 2faa88ef67bca..8869e3d440af5 100644 --- a/src/inventory_ui.h +++ b/src/inventory_ui.h @@ -351,7 +351,7 @@ class inventory_column /** Sum of the cell widths */ size_t get_cells_width() const; - entry_cell_cache_t make_entry_cell_cache( const inventory_entry &entry ) const; + const entry_cell_cache_t make_entry_cell_cache( const inventory_entry &entry ) const; const entry_cell_cache_t &get_entry_cell_cache( size_t index ) const; const inventory_selector_preset &preset; diff --git a/src/item.cpp b/src/item.cpp index 14b6f6a8b1167..8b99f07a8d34d 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -136,7 +136,7 @@ const std::string &rad_badge_color( const int rad ) } }; - for( const std::pair &i : values ) { + for( const auto &i : values ) { if( rad <= i.first ) { return i.second; } @@ -188,7 +188,7 @@ inline bool goes_bad_cache_is_set() const int item::INFINITE_CHARGES = INT_MAX; -item::item() : bday( calendar::start_of_cataclysm ) +item::item() : bday( calendar::start ) { type = nullitem(); } @@ -202,7 +202,7 @@ item::item( const itype *type, time_point turn, int qty ) : type( type ), bday( charges = qty; } else { if( type->tool && type->tool->rand_charges.size() > 1 ) { - const int charge_roll = rng( 1, type->tool->rand_charges.size() - 1 ); + const auto charge_roll = rng( 1, type->tool->rand_charges.size() - 1 ); charges = rng( type->tool->rand_charges[charge_roll - 1], type->tool->rand_charges[charge_roll] ); } else { charges = type->charges_default(); @@ -215,10 +215,10 @@ item::item( const itype *type, time_point turn, int qty ) : type( type ), bday( } if( type->gun ) { - for( const std::string &mod : type->gun->built_in_mods ) { + for( const auto &mod : type->gun->built_in_mods ) { emplace_back( mod, turn, qty ).item_tags.insert( "IRREMOVABLE" ); } - for( const std::string &mod : type->gun->default_mods ) { + for( const auto &mod : type->gun->default_mods ) { emplace_back( mod, turn, qty ); } @@ -379,18 +379,18 @@ units::energy item::set_energy( const units::energy &qty ) { if( !is_battery() ) { debugmsg( "Tried to set energy of non-battery item" ); - return 0_J; + return 0; } units::energy val = energy_remaining() + qty; - if( val < 0_J ) { + if( val < 0 ) { return val; } else if( val > type->battery->max_capacity ) { energy = type->battery->max_capacity; } else { energy = val; } - return 0_J; + return 0; } item &item::ammo_set( const itype_id &ammo, int qty ) @@ -467,7 +467,7 @@ 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 auto &e : opts ) { if( find_type( e )->magazine->capacity >= qty ) { mag = find_type( e ); break; @@ -565,7 +565,7 @@ body_part_set item::get_covered_body_parts( const side s ) const res.set( bp_torso ); } - const islot_armor *armor = find_armor_data(); + const auto armor = find_armor_data(); if( armor == nullptr ) { return res; } @@ -600,7 +600,7 @@ body_part_set item::get_covered_body_parts( const side s ) const bool item::is_sided() const { - const islot_armor *t = find_armor_data(); + auto t = find_armor_data(); return t ? t->sided : false; } @@ -679,11 +679,6 @@ int item::charges_per_volume( const units::volume &vol ) const } } -bool item::display_stacked_with( const item &rhs, bool check_components ) const -{ - return !count_by_charges() && stacks_with( rhs, check_components ); -} - bool item::stacks_with( const item &rhs, bool check_components ) const { if( type != rhs.type ) { @@ -1017,7 +1012,7 @@ item::sizing item::get_sizing( const Character &p, bool wearable ) const static int get_base_env_resist( const item &it ) { - const islot_armor *t = it.find_armor_data(); + const auto t = it.find_armor_data(); if( t == nullptr ) { return 0; } @@ -1141,7 +1136,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( type->min_per > 0 ) { req.push_back( string_format( "%s %d", _( "perception" ), type->min_per ) ); } - for( const std::pair &sk : type->min_skills ) { + for( const auto &sk : type->min_skills ) { req.push_back( string_format( "%s %d", skill_id( sk.first )->name(), sk.second ) ); } if( !req.empty() ) { @@ -1160,7 +1155,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts info.push_back( iteminfo( "BASE", string_format( _( "Material: %s" ), material_list ) ) ); } if( has_owner() ) { - info.push_back( iteminfo( "BASE", string_format( _( "Owner: %s" ), _( get_owner()->name ) ) ) ); + info.push_back( iteminfo( "BASE", string_format( _( "Owner: %s" ), get_owner()->name ) ) ); } if( has_var( "contained_name" ) && parts->test( iteminfo_parts::BASE_CONTENTS ) ) { info.push_back( iteminfo( "BASE", string_format( _( "Contains: %s" ), @@ -1221,7 +1216,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts med_item = &contents.front(); } if( med_item != nullptr ) { - const cata::optional &med_com = med_item->get_comestible(); + const auto &med_com = med_item->get_comestible(); if( med_com->quench != 0 && parts->test( iteminfo_parts::MED_QUENCH ) ) { info.push_back( iteminfo( "MED", _( "Quench: " ), med_com->quench ) ); } @@ -1232,8 +1227,8 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( med_com->stim != 0 && parts->test( iteminfo_parts::MED_STIMULATION ) ) { - std::string name = string_format( "%s %s", _( "Stimulation:" ), - med_com->stim > 0 ? _( "Upper" ) : _( "Downer" ) ); + auto name = string_format( "%s %s", _( "Stimulation:" ), + med_com->stim > 0 ? _( "Upper" ) : _( "Downer" ) ); info.push_back( iteminfo( "MED", name ) ); } @@ -1256,7 +1251,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( food_item != nullptr ) { if( g->u.kcal_for( *food_item ) != 0 || food_item->get_comestible()->quench != 0 ) { if( parts->test( iteminfo_parts::FOOD_NUTRITION ) ) { - const int value = g->u.kcal_for( *food_item ); + auto value = g->u.kcal_for( *food_item ); info.push_back( iteminfo( "FOOD", _( "Calories (kcal): " ), "", iteminfo::no_newline, value ) ); } @@ -1282,7 +1277,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts info.push_back( iteminfo( "FOOD", _( "Smells like: " ) + food_item->corpse->nname() ) ); } - const std::map vits = g->u.vitamins_from( *food_item ); + const auto vits = g->u.vitamins_from( *food_item ); const std::string required_vits = enumerate_as_string( vits.begin(), vits.end(), []( const std::pair &v ) { return ( g->u.vitamin_rate( v.first ) > 0_turns && @@ -1369,9 +1364,9 @@ std::string item::info( std::vector &info, const iteminfo_query *parts 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() ), - at->name() ); + auto fmt = string_format( + ngettext( " round of %s", " rounds of %s", ammo_capacity() ), + at->name() ); info.emplace_back( "MAGAZINE", _( "Capacity: " ), fmt, iteminfo::no_flags, ammo_capacity() ); } @@ -1391,7 +1386,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts info.emplace_back( "AMMO", _( "Type: " ), ammo_type()->name() ); } - const islot_ammo &ammo = *ammo_data()->ammo; + const auto &ammo = *ammo_data()->ammo; if( !ammo.damage.empty() || ammo.prop_damage || ammo.force_stat_display ) { if( !ammo.damage.empty() ) { if( parts->test( iteminfo_parts::AMMO_DAMAGE_VALUE ) ) { @@ -1445,7 +1440,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( !fx.empty() ) { insert_separation_line(); - for( const std::string &e : fx ) { + for( const auto &e : fx ) { info.emplace_back( "AMMO", e ); } } @@ -1453,7 +1448,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } else { const item *mod = this; - const gun_mode aux = gun_current_mode(); + const auto aux = gun_current_mode(); // if we have an active auxiliary gunmod display stats for this instead if( aux && aux->is_gunmod() && aux->is_gun() && parts->test( iteminfo_parts::DESCRIPTION_AUX_GUNMOD_HEADER ) ) { @@ -1474,7 +1469,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } const islot_gun &gun = *mod->type->gun; - const itype *curammo = mod->ammo_data(); + const auto curammo = mod->ammo_data(); bool has_ammo = curammo && mod->ammo_remaining(); @@ -1669,7 +1664,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } info.back().bNewLine = true; - std::map fire_modes = mod->gun_all_modes(); + auto fire_modes = mod->gun_all_modes(); if( std::any_of( fire_modes.begin(), fire_modes.end(), []( const std::pair &e ) { return e.second.qty > 1 && !e.second.melee(); @@ -1688,7 +1683,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::GUN_FIRE_MODES ) ) { std::vector fm; - for( const std::pair &e : fire_modes ) { + for( const auto &e : fire_modes ) { if( e.second.target == this && !e.second.melee() ) { fm.emplace_back( string_format( "%s (%i)", e.second.tname(), e.second.qty ) ); } @@ -1701,7 +1696,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( !magazine_integral() && parts->test( iteminfo_parts::GUN_ALLOWED_MAGAZINES ) ) { insert_separation_line(); - const std::set compat = magazine_compatible(); + const auto compat = magazine_compatible(); info.emplace_back( "DESCRIPTION", _( "Compatible magazines: " ) + enumerate_as_string( compat.begin(), compat.end(), []( const itype_id & id ) { return item::nname( id ); @@ -1717,14 +1712,14 @@ std::string item::info( std::vector &info, const iteminfo_query *parts std::map mod_locations = get_mod_locations(); int iternum = 0; - for( std::pair &elem : mod_locations ) { + for( auto &elem : mod_locations ) { if( iternum != 0 ) { temp1 << "; "; } const int free_slots = ( elem ).second - get_free_mod_locations( ( elem ).first ); temp1 << "" << free_slots << "/" << ( elem ).second << " " << elem.first.name(); bool first_mods = true; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { if( mod->type->gunmod->location == ( elem ).first ) { // if mod for this location if( first_mods ) { temp1 << ": "; @@ -1750,7 +1745,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( is_gunmod() ) { - const islot_gunmod &mod = *type->gunmod; + const auto &mod = *type->gunmod; if( is_gun() && parts->test( iteminfo_parts::DESCRIPTION_GUNMOD ) ) { info.push_back( iteminfo( "DESCRIPTION", @@ -1810,7 +1805,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts std::map mod_locations = mod.add_mod; int iternum = 0; - for( std::pair &elem : mod_locations ) { + for( auto &elem : mod_locations ) { if( iternum != 0 ) { temp1 << "; "; } @@ -1842,7 +1837,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts temp1.str( "" ); temp1 << _( "Incompatible with mod location: " ); int iternum = 0; - for( const gunmod_location &black : mod.blacklist_mod ) { + for( const auto &black : mod.blacklist_mod ) { if( iternum != 0 ) { temp1 << ", "; } @@ -1925,9 +1920,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::ARMOR_LAYER ) && covers_anything ) { temp1.str( "" ); temp1 << _( "Layer: " ); - if( has_flag( "PERSONAL" ) ) { - temp1 << _( "Personal aura. " ); - } else if( has_flag( "SKINTIGHT" ) ) { + if( has_flag( "SKINTIGHT" ) ) { temp1 << _( "Close to skin. " ); } else if( has_flag( "BELTED" ) ) { temp1 << _( "Strapped. " ); @@ -1935,8 +1928,6 @@ std::string item::info( std::vector &info, const iteminfo_query *parts temp1 << _( "Outer. " ); } else if( has_flag( "WAIST" ) ) { temp1 << _( "Waist. " ); - } else if( has_flag( "AURA" ) ) { - temp1 << _( "Outer aura. " ); } else { temp1 << _( "Normal. " ); } @@ -1978,7 +1969,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts iteminfo::no_newline | iteminfo::lower_is_better, encumbrance ) ); if( !type->rigid ) { - const int encumbrance_when_full = + const auto encumbrance_when_full = get_encumber_when_containing( g->u, get_total_capacity() ); info.push_back( iteminfo( "ARMOR", space + _( "Encumbrance when full: " ), "", iteminfo::no_newline | iteminfo::lower_is_better, @@ -1990,7 +1981,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts const double converted_storage = round_up( convert_volume( get_storage().value(), &converted_storage_scale ), 2 ); if( parts->test( iteminfo_parts::ARMOR_STORAGE ) && converted_storage > 0 ) { - const iteminfo::flags f = converted_storage_scale == 0 ? iteminfo::no_flags : iteminfo::is_decimal; + auto f = converted_storage_scale == 0 ? iteminfo::no_flags : iteminfo::is_decimal; info.push_back( iteminfo( "ARMOR", space + _( "Storage: " ), string_format( " %s", volume_units_abbr() ), f, converted_storage ) ); @@ -2035,7 +2026,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( is_book() ) { insert_separation_line(); - const islot_book &book = *type->book; + const auto &book = *type->book; // Some things about a book you CAN tell by it's cover. if( !book.skill && !type->can_use( "MA_MANUAL" ) && parts->test( iteminfo_parts::BOOK_SUMMARY ) ) { info.push_back( iteminfo( "BOOK", _( "Just for fun." ) ) ); @@ -2063,17 +2054,16 @@ std::string item::info( std::vector &info, const iteminfo_query *parts const SkillLevel &skill = g->u.get_skill_level_object( book.skill ); if( skill.can_train() && parts->test( iteminfo_parts::BOOK_SKILLRANGE_MAX ) ) { const std::string skill_name = book.skill->name(); - std::string fmt = string_format( _( "Can bring your %s skill to ." ), - skill_name ); + auto fmt = string_format( _( "Can bring your %s skill to ." ), skill_name ); info.push_back( iteminfo( "BOOK", "", fmt, iteminfo::no_flags, book.level ) ); fmt = string_format( _( "Your current %s skill is ." ), skill_name ); info.push_back( iteminfo( "BOOK", "", fmt, iteminfo::no_flags, skill.level() ) ); } if( book.req != 0 && parts->test( iteminfo_parts::BOOK_SKILLRANGE_MIN ) ) { - const std::string fmt = string_format( - _( "Requires %s level to understand." ), - book.skill.obj().name() ); + auto fmt = string_format( + _( "Requires %s level to understand." ), + book.skill.obj().name() ); info.push_back( iteminfo( "BOOK", "", fmt, iteminfo::lower_is_better, book.req ) ); } @@ -2090,10 +2080,10 @@ std::string item::info( std::vector &info, const iteminfo_query *parts iteminfo::show_plus, g->u.book_fun_for( *this, g->u ) ) ); } if( parts->test( iteminfo_parts::BOOK_TIMEPERCHAPTER ) ) { - std::string fmt = ngettext( - "A chapter of this book takes minute to read.", - "A chapter of this book takes minutes to read.", - book.time ); + auto fmt = ngettext( + "A chapter of this book takes minute to read.", + "A chapter of this book takes minutes to read.", + book.time ); if( type->use_methods.count( "MA_MANUAL" ) ) { fmt = ngettext( "A training session with this book takes minute.", @@ -2106,14 +2096,14 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( book.chapters > 0 && parts->test( iteminfo_parts::BOOK_NUMUNREADCHAPTERS ) ) { const int unread = get_remaining_chapters( g->u ); - std::string fmt = ngettext( "This book has unread chapter.", - "This book has unread chapters.", - unread ); + auto fmt = ngettext( "This book has unread chapter.", + "This book has unread chapters.", + unread ); 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 ) { + for( const auto &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. @@ -2161,7 +2151,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( is_container() && parts->test( iteminfo_parts::CONTAINER_DETAILS ) ) { insert_separation_line(); - const islot_container &c = *type->container; + const auto &c = *type->container; temp1.str( "" ); temp1 << _( "This container " ); @@ -2213,7 +2203,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::TOOL_MAGAZINE_COMPATIBLE ) ) { insert_separation_line(); - const std::set compat = magazine_compatible(); + const auto compat = magazine_compatible(); info.emplace_back( "TOOL", _( "Compatible magazines: " ), enumerate_as_string( compat.begin(), compat.end(), []( const itype_id & id ) { return item::nname( id ); @@ -2249,10 +2239,10 @@ std::string item::info( std::vector &info, const iteminfo_query *parts _( components_to_string() ) ) ) ); } } else { - const recipe &dis = recipe_dictionary::get_uncraft( typeId() ); - const requirement_data &req = dis.disassembly_requirements(); + const auto &dis = recipe_dictionary::get_uncraft( typeId() ); + const auto &req = dis.disassembly_requirements(); if( !req.is_empty() && parts->test( iteminfo_parts::DESCRIPTION_COMPONENTS_DISASSEMBLE ) ) { - const requirement_data::alter_item_comp_vector &components = req.get_components(); + const auto &components = req.get_components(); const std::string components_list = enumerate_as_string( components.begin(), components.end(), []( const std::vector &comps ) { return comps.front().to_string(); @@ -2281,7 +2271,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts }; if( parts->test( iteminfo_parts::QUALITIES ) ) { - for( const std::pair &q : type->qualities ) { + for( const auto &q : type->qualities ) { name_quality( q ); } } @@ -2293,15 +2283,15 @@ std::string item::info( std::vector &info, const iteminfo_query *parts info.emplace_back( "QUALITIES", "", _( "Contains items with qualities:" ) ); std::map most_quality; - for( const item &e : contents ) { - for( const std::pair &q : e.type->qualities ) { + for( const auto &e : contents ) { + for( const auto &q : e.type->qualities ) { auto emplace_result = most_quality.emplace( q ); if( !emplace_result.second && most_quality.at( emplace_result.first->first ) < q.second ) { most_quality[ q.first ] = q.second; } } } - for( const std::pair &q : most_quality ) { + for( const auto &q : most_quality ) { name_quality( q ); } } @@ -2332,7 +2322,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } } } - std::set all_techniques = type->techniques; + auto all_techniques = type->techniques; all_techniques.insert( techniques.begin(), techniques.end() ); if( !all_techniques.empty() && parts->test( iteminfo_parts::DESCRIPTION_TECHNIQUES ) ) { insert_separation_line(); @@ -2402,7 +2392,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts //lets display which martial arts styles character can use with this weapon if( parts->test( iteminfo_parts::DESCRIPTION_APPLICABLEMARTIALARTS ) ) { - const std::vector &styles = g->u.ma_styles; + const auto &styles = g->u.ma_styles; const std::string valid_styles = enumerate_as_string( styles.begin(), styles.end(), [this]( const matype_id & mid ) { return mid.obj().has_weapon( typeId() ) ? _( mid.obj().name ) : std::string(); @@ -2416,7 +2406,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( parts->test( iteminfo_parts::DESCRIPTION_USE_METHODS ) ) { - for( const std::pair &method : type->use_methods ) { + for( const auto &method : type->use_methods ) { insert_separation_line(); method.second.dump_info( *this, info ); } @@ -2425,7 +2415,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::DESCRIPTION_REPAIREDWITH ) ) { insert_separation_line(); - const std::set &rep = repaired_with(); + const auto &rep = repaired_with(); if( !rep.empty() ) { info.emplace_back( "DESCRIPTION", _( "Repaired with: " ) + @@ -2475,8 +2465,8 @@ std::string item::info( std::vector &info, const iteminfo_query *parts std::back_inserter( flags ) ); // ...and display those which have an info description - for( const std::string &e : flags ) { - const json_flag &f = json_flag::get( e ); + for( const auto &e : flags ) { + auto &f = json_flag::get( e ); if( !f.info().empty() ) { info.emplace_back( "DESCRIPTION", string_format( "* %s", _( f.info() ) ) ); } @@ -2695,7 +2685,7 @@ std::string item::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 auto &res : brewed.brewing_results() ) { info.push_back( iteminfo( "DESCRIPTION", string_format( _( "* Fermenting this will produce %s." ), nname( res, brewed.charges ) ) ) ); @@ -2704,7 +2694,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } if( parts->test( iteminfo_parts::DESCRIPTION_FAULTS ) ) { - for( const fault_id &e : faults ) { + for( const auto &e : faults ) { //~ %1$s is the name of a fault and %2$s is the description of the fault info.emplace_back( "DESCRIPTION", string_format( _( "* Faulty %1$s. %2$s" ), e.obj().name(), e.obj().description() ) ); @@ -2712,12 +2702,11 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } // does the item fit in any holsters? - std::vector holsters = Item_factory::find( [this]( const itype & e ) { + auto holsters = Item_factory::find( [this]( const itype & e ) { if( !e.can_use( "holster" ) ) { return false; } - const holster_actor *ptr = dynamic_cast - ( e.get_use( "holster" )->get_actor_ptr() ); + auto ptr = dynamic_cast( e.get_use( "holster" )->get_actor_ptr() ); return ptr->can_holster( *this ); } ); @@ -2732,8 +2721,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( parts->test( iteminfo_parts::DESCRIPTION_ACTIVATABLE_TRANSFORMATION ) ) { for( auto &u : type->use_methods ) { - const delayed_transform_iuse *tt = dynamic_cast - ( u.second.get_actor_ptr() ); + const auto tt = dynamic_cast( u.second.get_actor_ptr() ); if( tt == nullptr ) { continue; } @@ -2741,7 +2729,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( time_to_do <= 0 ) { info.push_back( iteminfo( "DESCRIPTION", _( "It's done and can be activated." ) ) ); } else { - const std::string time = to_string_clipped( time_duration::from_turns( time_to_do ) ); + const auto time = to_string_clipped( time_duration::from_turns( time_to_do ) ); info.push_back( iteminfo( "DESCRIPTION", string_format( _( "It will be done in %s." ), time.c_str() ) ) ); } @@ -2766,7 +2754,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts // describe contents if( !contents.empty() && parts->test( iteminfo_parts::DESCRIPTION_CONTENTS ) ) { - for( const item *mod : is_gun() ? gunmods() : toolmods() ) { + for( const auto mod : is_gun() ? gunmods() : toolmods() ) { if( mod->type->gunmod ) { temp1.str( "" ); if( mod->is_irremovable() ) { @@ -2781,7 +2769,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts info.emplace_back( "DESCRIPTION", _( mod->type->description ) ); } bool contents_header = false; - for( const item &contents_item : contents ) { + for( const auto &contents_item : contents ) { if( !contents_item.type->mod ) { if( !contents_header ) { insert_separation_line(); @@ -2792,16 +2780,16 @@ std::string item::info( std::vector &info, const iteminfo_query *parts info.emplace_back( "DESCRIPTION", space ); } - const std::string description = _( contents_item.type->description ); + const auto description = _( contents_item.type->description ); if( contents_item.made_of_from_type( LIQUID ) ) { - units::volume contents_volume = contents_item.volume() * batch; + auto 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; + auto f = iteminfo::no_newline; if( converted_volume_scale != 0 ) { f |= iteminfo::is_decimal; } @@ -2828,7 +2816,7 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } else { // use the contained item tid = contents.front().typeId(); } - const std::set &known_recipes = g->u.get_learned_recipes().of_component( tid ); + const auto &known_recipes = g->u.get_learned_recipes().of_component( tid ); if( !known_recipes.empty() && parts->test( iteminfo_parts::DESCRIPTION_APPLICABLE_RECIPES ) ) { temp1.str( "" ); const inventory &inv = g->u.crafting_inventory(); @@ -2869,11 +2857,11 @@ std::map item::get_mod_locations() const { std::map mod_locations = type->gun->valid_mod_locations; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { if( !mod->type->gunmod->add_mod.empty() ) { std::map add_locations = mod->type->gunmod->add_mod; - for( const std::pair &add_location : add_locations ) { + for( auto &add_location : add_locations ) { mod_locations[add_location.first] += add_location.second; } } @@ -2895,8 +2883,8 @@ int item::get_free_mod_locations( const gunmod_location &location ) const return 0; } int result = loc->second; - for( const item &elem : contents ) { - const cata::optional &mod = elem.type->gunmod; + for( const auto &elem : contents ) { + const auto &mod = elem.type->gunmod; if( mod && mod->location == location ) { result--; } @@ -2971,7 +2959,7 @@ nc_color item::color_in_inventory() const // Red: morale penalty // Yellow: will rot soon // Cyan: will rot eventually - const ret_val rating = u.will_eat( to_color ); + const auto rating = u.will_eat( to_color ); // TODO: More colors switch( rating.value() ) { case EDIBLE: @@ -3048,7 +3036,7 @@ nc_color item::color_in_inventory() const } } else if( is_book() ) { if( u.has_identified( typeId() ) ) { - const islot_book &tmp = *type->book; + auto &tmp = *type->book; if( tmp.skill && // Book can improve skill: blue u.get_skill_level_object( tmp.skill ).can_train() && u.get_skill_level( tmp.skill ) >= tmp.req && @@ -3202,7 +3190,7 @@ void item::handle_pickup_ownership( Character &c ) if( !witnesses.empty() ) { set_old_owner( get_owner() ); bool guard_chosen = false; - for( npc *elem : witnesses ) { + for( auto &elem : witnesses ) { if( elem->myclass == npc_class_id( "NC_BOUNTY_HUNTER" ) ) { guard_chosen = true; elem->witness_thievery( &*this ); @@ -3234,7 +3222,7 @@ void item::on_pickup( Character &p ) handle_pickup_ownership( p ); } if( is_bucket_nonempty() ) { - for( const item &it : contents ) { + for( const auto &it : contents ) { g->m.add_item_or_charges( p.pos(), it ); } @@ -3300,7 +3288,7 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t int amt = 0; ret.str( "" ); ret << label( quantity ); - for( const item *mod : is_gun() ? gunmods() : toolmods() ) { + for( const auto mod : is_gun() ? gunmods() : toolmods() ) { if( !type->gun || !type->gun->built_in_mods.count( mod->typeId() ) ) { amt++; } @@ -3543,7 +3531,7 @@ std::string item::display_name( unsigned int quantity ) const } // This is a hack to prevent possible crashing when displaying maps as items during character creation - if( is_map() && calendar::turn != calendar::turn_zero ) { + if( is_map() && calendar::turn != calendar::time_of_cataclysm ) { const city *c = overmap_buffer.closest_city( omt_to_sm_copy( get_var( "reveal_map_center_omt", g->u.global_omt_location() ) ) ).city; if( c != nullptr ) { @@ -3615,7 +3603,7 @@ units::mass item::weight( bool include_contents, bool integral ) const if( is_craft() ) { units::mass ret = 0_gram; - for( const item &it : components ) { + for( auto it : components ) { ret += it.weight(); } return ret; @@ -3677,11 +3665,11 @@ units::mass item::weight( bool include_contents, bool integral ) const } if( is_gun() ) { - for( const item *elem : gunmods() ) { + for( const auto elem : gunmods() ) { ret += elem->weight( true, true ); } } else if( include_contents ) { - for( const item &elem : contents ) { + for( auto &elem : contents ) { ret += elem.weight(); } } @@ -3722,7 +3710,7 @@ units::volume item::base_volume() const if( is_craft() ) { units::volume ret = 0_ml; - for( const item &it : components ) { + for( auto it : components ) { ret += it.base_volume(); } return ret; @@ -3751,7 +3739,7 @@ units::volume item::volume( bool integral ) const if( is_craft() ) { units::volume ret = 0_ml; - for( const item &it : components ) { + for( auto it : components ) { ret += it.volume(); } return ret; @@ -3768,8 +3756,7 @@ units::volume item::volume( bool integral ) const } if( count_by_charges() || made_of( LIQUID ) ) { - units::quantity num = ret * static_cast - ( charges ); + auto num = ret * static_cast( charges ); if( type->stack_size <= 0 ) { debugmsg( "Item type %s has invalid stack_size %d", typeId(), type->stack_size ); ret = num; @@ -3783,7 +3770,7 @@ units::volume item::volume( bool integral ) const // Non-rigid items add the volume of the content if( !type->rigid ) { - for( const item &elem : contents ) { + for( auto &elem : contents ) { ret += elem.volume(); } } @@ -3794,7 +3781,7 @@ units::volume item::volume( bool integral ) const } if( is_gun() ) { - for( const item *elem : gunmods() ) { + for( const auto elem : gunmods() ) { ret += elem->volume( true ); } @@ -3872,7 +3859,7 @@ int item::damage_melee( damage_type dt ) const // consider any melee gunmods if( is_gun() ) { std::vector opts = { res }; - for( const std::pair &e : gun_all_modes() ) { + for( const auto &e : gun_all_modes() ) { if( e.second.target != this && e.second.melee() ) { opts.push_back( e.second.target->damage_melee( dt ) ); } @@ -3915,7 +3902,7 @@ int item::reach_range( const player &p ) const // for guns consider any attached gunmods if( is_gun() && !is_gunmod() ) { - for( const std::pair &m : gun_all_modes() ) { + for( const auto &m : gun_all_modes() ) { if( p.is_npc() && m.second.flags.count( "NPC_AVOID" ) ) { continue; } @@ -3943,7 +3930,7 @@ bool item::has_flag( const std::string &f ) const bool ret = false; if( json_flag::get( f ).inherit() ) { - for( const item *e : is_gun() ? gunmods() : toolmods() ) { + for( const auto e : is_gun() ? gunmods() : toolmods() ) { // gunmods fired separately do not contribute to base gun flags if( !e->is_gun() && e->has_flag( f ) ) { return true; @@ -3964,7 +3951,7 @@ bool item::has_flag( const std::string &f ) const bool item::has_any_flag( const std::vector &flags ) const { - for( const std::string &flag : flags ) { + for( auto &flag : flags ) { if( has_flag( flag ) ) { return true; } @@ -4022,7 +4009,11 @@ int item::get_quality( const quality_id &id ) const ( is_tool() && std::all_of( contents.begin(), contents.end(), [this]( const item & itm ) { if( itm.is_ammo() ) { - return ammo_types().count( itm.ammo_type() ) != 0; + if( ammo_types().count( itm.ammo_type() ) ) { + return true; + } else { + return false; + } } else if( itm.is_magazine() ) { for( const ammotype &at : ammo_types() ) { for( const ammotype &mag_at : itm.ammo_types() ) { @@ -4040,12 +4031,12 @@ int item::get_quality( const quality_id &id ) const return INT_MIN; } - for( const std::pair &quality : type->qualities ) { + for( const auto &quality : type->qualities ) { if( quality.first == id ) { return_quality = quality.second; } } - for( const item &itm : contents ) { + for( auto &itm : contents ) { return_quality = std::max( return_quality, itm.get_quality( id ) ); } @@ -4067,7 +4058,7 @@ std::vector item::toolmods() std::vector res; if( is_tool() ) { res.reserve( contents.size() ); - for( item &e : contents ) { + for( auto &e : contents ) { if( e.is_toolmod() ) { res.push_back( &e ); } @@ -4081,7 +4072,7 @@ std::vector item::toolmods() const std::vector res; if( is_tool() ) { res.reserve( contents.size() ); - for( const item &e : contents ) { + for( auto &e : contents ) { if( e.is_toolmod() ) { res.push_back( &e ); } @@ -4136,7 +4127,7 @@ void item::set_relative_rot( double val ) { if( goes_bad() ) { rot = get_shelf_life() * val; - // calc_rot uses last_rot_check (when it's not turn_zero) instead of bday. + // calc_rot uses last_rot_check (when it's not time_of_cataclysm) instead of bday. // this makes sure the rotting starts from now, not from bday. // if this item is the result of smoking or milling don't do this, we want to start from bday. if( !has_flag( "PROCESSING_RESULT" ) ) { @@ -4272,14 +4263,14 @@ void item::calc_rot( time_point time, int temp ) temp = temperatures::fridge; } - // last_rot_check might be zero, if both are then we want calendar::start_of_cataclysm - const time_point since = std::max( {last_rot_check, time_point( calendar::start_of_cataclysm )} ); + // bday and/or last_rot_check might be zero, if both are then we want calendar::start + const time_point since = std::max( {last_rot_check, time_point( calendar::start )} ); // simulation of different age of food at the start of the game and good/bad storage // conditions by applying starting variation bonus/penalty of +/- 20% of base shelf-life // positive = food was produced some time before calendar::start and/or bad storage // negative = food was stored in good conditions before calendar::start - if( since <= calendar::start_of_cataclysm ) { + if( since <= calendar::start ) { time_duration spoil_variation = get_shelf_life() * 0.2f; rot += factor * rng( -spoil_variation, spoil_variation ); } @@ -4303,7 +4294,7 @@ void item::calc_rot_while_processing( time_duration processing_duration ) units::volume item::get_storage() const { - const islot_armor *t = find_armor_data(); + auto t = find_armor_data(); if( t == nullptr ) { return is_pet_armor() ? type->pet_armor->storage : 0_ml; } @@ -4316,7 +4307,7 @@ units::volume item::get_storage() const int item::get_env_resist( int override_base_resist ) const { - const islot_armor *t = find_armor_data(); + const auto t = find_armor_data(); if( t == nullptr ) { return is_pet_armor() ? type->pet_armor->env_resist : 0; } @@ -4330,7 +4321,7 @@ int item::get_env_resist( int override_base_resist ) const int item::get_base_env_resist_w_filter() const { - const islot_armor *t = find_armor_data(); + const auto t = find_armor_data(); if( t == nullptr ) { return is_pet_armor() ? type->pet_armor->env_resist_w_filter : 0; } @@ -4339,7 +4330,7 @@ int item::get_base_env_resist_w_filter() const bool item::is_power_armor() const { - const islot_armor *t = find_armor_data(); + const auto t = find_armor_data(); if( t == nullptr ) { return is_pet_armor() ? type->pet_armor->power_armor : false; } @@ -4349,7 +4340,7 @@ bool item::is_power_armor() const int item::get_encumber( const Character &p ) const { units::volume contents_volume( 0_ml ); - for( const item &e : contents ) { + for( const auto &e : contents ) { contents_volume += e.volume(); } return get_encumber_when_containing( p, contents_volume ); @@ -4358,7 +4349,7 @@ int item::get_encumber( const Character &p ) const int item::get_encumber_when_containing( const Character &p, const units::volume &contents_volume ) const { - const islot_armor *t = find_armor_data(); + const auto t = find_armor_data(); if( t == nullptr ) { // handle wearable guns (e.g. shoulder strap) as special case return is_gun() ? volume() / 750_ml : 0; @@ -4405,18 +4396,14 @@ layer_level item::get_layer() const return type->layer; } - if( has_flag( "PERSONAL" ) ) { - return PERSONAL_LAYER; - } else if( has_flag( "SKINTIGHT" ) ) { - return UNDERWEAR_LAYER; + if( has_flag( "SKINTIGHT" ) ) { + return UNDERWEAR; } else if( has_flag( "WAIST" ) ) { return WAIST_LAYER; } else if( has_flag( "OUTER" ) ) { return OUTER_LAYER; } else if( has_flag( "BELTED" ) ) { return BELTED_LAYER; - } else if( has_flag( "AURA" ) ) { - return AURA_LAYER; } else { return REGULAR_LAYER; } @@ -4424,7 +4411,7 @@ layer_level item::get_layer() const int item::get_coverage() const { - const islot_armor *t = find_armor_data(); + const auto t = find_armor_data(); if( t == nullptr ) { return 0; } @@ -4433,7 +4420,7 @@ int item::get_coverage() const int item::get_thickness() const { - const islot_armor *t = find_armor_data(); + const auto t = find_armor_data(); if( t == nullptr ) { return is_pet_armor() ? type->pet_armor->thickness : 0; } @@ -4442,7 +4429,7 @@ int item::get_thickness() const int item::get_warmth() const { - const islot_armor *t = find_armor_data(); + const auto t = find_armor_data(); if( t == nullptr ) { return 0; } @@ -4481,9 +4468,13 @@ const std::vector &item::brewing_results() const bool item::can_revive() const { - return is_corpse() && corpse->has_flag( MF_REVIVES ) && damage() < max_damage() && - !( has_flag( "FIELD_DRESS" ) || has_flag( "FIELD_DRESS_FAILED" ) || has_flag( "QUARTERED" ) || - has_flag( "SKINNED" ) ); + if( is_corpse() && corpse->has_flag( MF_REVIVES ) && damage() < max_damage() && + !( has_flag( "FIELD_DRESS" ) || has_flag( "FIELD_DRESS_FAILED" ) || has_flag( "QUARTERED" ) || + has_flag( "SKINNED" ) ) ) { + + return true; + } + return false; } bool item::ready_to_revive( const tripoint &pos ) const @@ -4573,7 +4564,7 @@ int item::bash_resist( bool to_self ) const const std::vector mat_types = made_of_types(); if( !mat_types.empty() ) { - for( const material_type *mat : mat_types ) { + for( auto mat : mat_types ) { resist += mat->bash_resist(); } // Average based on number of materials. @@ -4605,7 +4596,7 @@ int item::cut_resist( bool to_self ) const const std::vector mat_types = made_of_types(); if( !mat_types.empty() ) { - for( const material_type *mat : mat_types ) { + for( auto mat : mat_types ) { resist += mat->cut_resist(); } // Average based on number of materials. @@ -4643,7 +4634,7 @@ int item::acid_resist( bool to_self, int base_env_resist ) const // Not sure why cut and bash get an armor thickness bonus but acid doesn't, // but such is the way of the code. - for( const material_type *mat : mat_types ) { + for( auto mat : mat_types ) { resist += mat->acid_resist(); } // Average based on number of materials. @@ -4674,7 +4665,7 @@ int item::fire_resist( bool to_self, int base_env_resist ) const const std::vector mat_types = made_of_types(); if( !mat_types.empty() ) { - for( const material_type *mat : mat_types ) { + for( auto mat : mat_types ) { resist += mat->fire_resist(); } // Average based on number of materials. @@ -4693,7 +4684,7 @@ int item::fire_resist( bool to_self, int base_env_resist ) const int item::chip_resistance( bool worst ) const { int res = worst ? INT_MAX : INT_MIN; - for( const material_type *mat : made_of_types() ) { + for( const auto &mat : made_of_types() ) { const int val = mat->chip_resist(); res = worst ? std::min( res, val ) : std::max( res, val ); } @@ -4932,7 +4923,7 @@ std::vector item::made_of_types() const bool item::made_of_any( const std::set &mat_idents ) const { - const std::vector &mats = made_of(); + const auto mats = made_of(); if( mats.empty() ) { return false; } @@ -4944,7 +4935,7 @@ bool item::made_of_any( const std::set &mat_idents ) const bool item::only_made_of( const std::set &mat_idents ) const { - const std::vector &mats = made_of(); + const auto mats = made_of(); if( mats.empty() ) { return false; } @@ -4956,7 +4947,7 @@ bool item::only_made_of( const std::set &mat_idents ) const bool item::made_of( const material_id &mat_ident ) const { - const std::vector &materials = made_of(); + const auto &materials = made_of(); return std::find( materials.begin(), materials.end(), mat_ident ) != materials.end(); } @@ -4996,7 +4987,7 @@ bool item::conductive() const } // If any material has electricity resistance equal to or lower than flesh (1) we are conductive. - const std::vector &mats = made_of_types(); + const auto mats = made_of_types(); return std::any_of( mats.begin(), mats.end(), []( const material_type * mt ) { return mt->elec_resist() <= 1; } ); @@ -5009,9 +5000,9 @@ bool item::reinforceable() const } // If a material is reinforceable, so are we - const std::vector &mats = made_of_types(); + const auto mats = made_of_types(); return std::any_of( mats.begin(), mats.end(), []( const material_type * mt ) { - return mt->reinforces(); + return mt->reinforces() == true; } ); } @@ -5038,7 +5029,7 @@ int item::get_reload_time() const } int reload_time = is_gun() ? type->gun->reload_time : type->magazine->reload_time; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { reload_time = static_cast( reload_time * ( 100 + mod->type->gunmod->reload_modifier ) / 100 ); } @@ -5190,7 +5181,7 @@ bool item::is_ammo_container() const bool item::is_melee() const { - for( int idx = DT_NULL + 1; idx != NUM_DT; ++idx ) { + for( auto idx = DT_NULL + 1; idx != NUM_DT; ++idx ) { if( is_melee( static_cast( idx ) ) ) { return true; } @@ -5211,7 +5202,7 @@ const islot_armor *item::find_armor_data() const // Currently the only way to make a non-armor item into armor is to install a gun mod. // The gunmods are stored in the items contents, as are the contents of a container, and the // tools in a tool belt (a container actually), or the ammo in a quiver (container again). - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { if( mod->type->armor ) { return &*mod->type->armor; } @@ -5354,8 +5345,11 @@ bool item::can_unload_liquid() const } const item &cts = contents.front(); - bool cts_is_frozen_liquid = cts.made_of_from_type( LIQUID ) && cts.made_of( SOLID ); - return is_bucket() || !cts_is_frozen_liquid; + if( !is_bucket() && cts.made_of_from_type( LIQUID ) && cts.made_of( SOLID ) ) { + return false; + } + + return true; } bool item::can_reload_with( const itype_id &ammo ) const @@ -5384,7 +5378,7 @@ bool item::is_reloadable_helper( const itype_id &ammo, bool now ) const return false; } } else { - const itype *at = find_type( ammo ); + auto at = find_type( ammo ); if( ( !at->ammo || !ammo_types().count( at->ammo->type ) ) && !magazine_compatible().count( ammo ) ) { return false; @@ -5402,7 +5396,7 @@ bool item::is_salvageable() const if( is_null() ) { return false; } - const std::vector &mats = made_of(); + const auto mats = made_of(); if( std::none_of( mats.begin(), mats.end(), []( const material_id & m ) { return m->salvaged_into().has_value(); } ) ) { @@ -5539,13 +5533,13 @@ int item::get_chapters() const int item::get_remaining_chapters( const player &u ) const { - const std::string var = string_format( "remaining-chapters-%d", u.getID() ); + const auto var = string_format( "remaining-chapters-%d", u.getID() ); return get_var( var, get_chapters() ); } void item::mark_chapter_as_read( const player &u ) { - const std::string var = string_format( "remaining-chapters-%d", u.getID() ); + const auto var = string_format( "remaining-chapters-%d", u.getID() ); if( type->book && type->book->chapters == 0 ) { // books without chapters will always have remaining chapters == 0, so we don't need to store them erase_var( var ); @@ -5567,7 +5561,7 @@ std::vector> item::get_available_recipes( const p } } - for( const islot_book::recipe_with_description_t &elem : type->book->recipes ) { + for( const auto &elem : type->book->recipes ) { if( u.get_skill_level( elem.recipe->skill_used ) >= elem.skill_level ) { recipe_entries.push_back( std::make_pair( elem.recipe, elem.skill_level ) ); } @@ -5601,7 +5595,7 @@ const material_type &item::get_random_material() const const material_type &item::get_base_material() const { - const std::vector &mats = made_of(); + const auto mats = made_of(); return mats.empty() ? material_id::NULL_ID().obj() : mats.front().obj(); } @@ -5670,8 +5664,8 @@ skill_id item::melee_skill() const int hi = 0; skill_id res = skill_id::NULL_ID(); - for( int idx = DT_NULL + 1; idx != NUM_DT; ++idx ) { - const int val = damage_melee( static_cast( idx ) ); + for( auto idx = DT_NULL + 1; idx != NUM_DT; ++idx ) { + auto val = damage_melee( static_cast( idx ) ); const skill_id &sk = skill_by_dt( static_cast( idx ) ); if( val > hi && sk ) { hi = val; @@ -5688,7 +5682,7 @@ int item::gun_dispersion( bool with_ammo, bool with_scaling ) const return 0; } int dispersion_sum = type->gun->dispersion; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { dispersion_sum += mod->type->gunmod->dispersion; } int dispPerDamage = get_option< int >( "DISPERSION_PER_GUN_DAMAGE" ); @@ -5718,8 +5712,8 @@ int item::sight_dispersion() const int res = has_flag( "DISABLE_SIGHTS" ) ? 90 : type->gun->sight_dispersion; - for( const item *e : gunmods() ) { - const islot_gunmod &mod = *e->type->gunmod; + for( const auto e : gunmods() ) { + const auto &mod = *e->type->gunmod; if( mod.sight_dispersion < 0 || mod.aim_speed < 0 ) { continue; // skip gunmods which don't provide a sight } @@ -5736,13 +5730,13 @@ damage_instance item::gun_damage( bool with_ammo ) const } damage_instance ret = type->gun->damage; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { ret.add( mod->type->gunmod->damage ); } if( with_ammo && ammo_data() ) { if( ammo_data()->ammo->prop_damage ) { - for( damage_unit &elem : ret.damage_units ) { + for( auto &elem : ret.damage_units ) { if( elem.type == DT_STAB ) { elem.amount *= *ammo_data()->ammo->prop_damage; elem.res_pen = ammo_data()->ammo->legacy_pierce; @@ -5754,7 +5748,7 @@ damage_instance item::gun_damage( bool with_ammo ) const } int item_damage = damage_level( 4 ); - if( item_damage > 0 ) { + if( item_damage != 0 ) { // TODO: This isn't a good solution for multi-damage guns/ammos for( damage_unit &du : ret ) { du.amount -= item_damage * 2; @@ -5775,7 +5769,7 @@ int item::gun_recoil( const player &p, bool bipod ) const double wt = std::min( type->weight, p.str_cur * 333_gram ) / 333.0_gram; double handling = type->gun->handling; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { if( bipod || !mod->has_flag( "BIPOD" ) ) { handling += mod->type->gunmod->handling; } @@ -5806,7 +5800,7 @@ int item::gun_range( bool with_ammo ) const return 0; } int ret = type->gun->range; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { ret += mod->type->gunmod->range; } if( with_ammo && ammo_data() ) { @@ -5839,7 +5833,7 @@ units::energy item::energy_remaining() const return energy; } - return 0_J; + return 0; } int item::ammo_remaining() const @@ -5860,7 +5854,7 @@ int item::ammo_remaining() const if( is_magazine() || is_bandolier() ) { int res = 0; - for( const item &e : contents ) { + for( const auto &e : contents ) { res += e.charges; } return res; @@ -5885,17 +5879,17 @@ int item::ammo_capacity( bool potential_capacity ) const if( is_tool() ) { res = type->tool->max_charges; - if( res == 0 && magazine_default() != "null" && potential_capacity ) { + if( res == 0 && magazine_default() != "null" && potential_capacity == true ) { res = find_type( magazine_default() )->magazine->capacity; } - for( const item *e : toolmods() ) { + for( const auto e : toolmods() ) { res *= e->type->mod->capacity_multiplier; } } if( is_gun() ) { res = type->gun->clip; - for( const item *e : gunmods() ) { + for( const auto e : gunmods() ) { res *= e->type->mod->capacity_multiplier; } } @@ -5949,7 +5943,7 @@ int item::ammo_consume( int qty, const tripoint &pos ) item *mag = magazine_current(); if( mag ) { - const int res = mag->ammo_consume( qty, pos ); + auto res = mag->ammo_consume( qty, pos ); if( res && ammo_remaining() == 0 ) { if( mag->has_flag( "MAG_DESTROY" ) ) { contents.remove_if( [&mag]( const item & e ) { @@ -5966,9 +5960,9 @@ int item::ammo_consume( int qty, const tripoint &pos ) } if( is_magazine() ) { - int need = qty; + auto need = qty; while( !contents.empty() ) { - item &e = *contents.rbegin(); + auto &e = *contents.rbegin(); if( need >= e.charges ) { need -= e.charges; contents.pop_back(); @@ -6012,7 +6006,7 @@ const itype *item::ammo_data() const } auto mods = is_gun() ? gunmods() : toolmods(); - for( const item *e : mods ) { + for( const auto e : mods ) { if( !e->type->mod->ammo_modifier.empty() && e->ammo_current() != "null" && item_controller->has_template( e->ammo_current() ) ) { return item_controller->find_template( e->ammo_current() ); @@ -6024,15 +6018,15 @@ const itype *item::ammo_data() const itype_id item::ammo_current() const { - const itype *ammo = ammo_data(); + const auto ammo = ammo_data(); return ammo ? ammo->get_id() : "null"; } const std::set &item::ammo_types( bool conversion ) const { if( conversion ) { - const std::vector &mods = is_gun() ? gunmods() : toolmods(); - for( const item *e : mods ) { + auto mods = is_gun() ? gunmods() : toolmods(); + for( const auto e : mods ) { if( !e->type->mod->ammo_modifier.empty() ) { return e->type->mod->ammo_modifier; } @@ -6097,7 +6091,7 @@ std::set item::ammo_effects( bool with_ammo ) const res.insert( ammo_data()->ammo->ammo_effects.begin(), ammo_data()->ammo->ammo_effects.end() ); } - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { res.insert( mod->type->gunmod->ammo_effects.begin(), mod->type->gunmod->ammo_effects.end() ); } @@ -6107,10 +6101,7 @@ std::set item::ammo_effects( bool with_ammo ) const std::string item::ammo_sort_name() const { if( is_magazine() || is_gun() || is_tool() ) { - const std::set &types = ammo_types(); - if( !types.empty() ) { - return ammotype( *types.begin() )->name(); - } + return ammotype( *ammo_types().begin() )->name(); } if( is_ammo() ) { return ammo_type()->name(); @@ -6121,7 +6112,7 @@ std::string item::ammo_sort_name() const bool item::magazine_integral() const { // If a mod sets a magazine type, we're not integral. - for( const item *m : is_gun() ? gunmods() : toolmods() ) { + for( const auto m : is_gun() ? gunmods() : toolmods() ) { if( !m->type->mod->magazine_adaptor.empty() ) { return false; } @@ -6146,8 +6137,8 @@ std::set item::magazine_compatible( bool conversion ) const { std::set mags = {}; // mods that define magazine_adaptor may override the items usual magazines - const std::vector &mods = is_gun() ? gunmods() : toolmods(); - for( const item *m : mods ) { + auto mods = is_gun() ? gunmods() : toolmods(); + for( const auto m : mods ) { if( !m->type->mod->magazine_adaptor.empty() ) { for( const ammotype &atype : ammo_types( conversion ) ) { if( m->type->mod->magazine_adaptor.count( atype ) ) { @@ -6186,7 +6177,7 @@ std::vector item::gunmods() std::vector res; if( is_gun() ) { res.reserve( contents.size() ); - for( item &e : contents ) { + for( auto &e : contents ) { if( e.is_gunmod() ) { res.push_back( &e ); } @@ -6200,7 +6191,7 @@ std::vector item::gunmods() const std::vector res; if( is_gun() ) { res.reserve( contents.size() ); - for( const item &e : contents ) { + for( auto &e : contents ) { if( e.is_gunmod() ) { res.push_back( &e ); } @@ -6211,7 +6202,7 @@ std::vector item::gunmods() const item *item::gunmod_find( const itype_id &mod ) { - std::vector mods = gunmods(); + auto mods = gunmods(); auto it = std::find_if( mods.begin(), mods.end(), [&mod]( item * e ) { return e->typeId() == mod; } ); @@ -6283,7 +6274,7 @@ ret_val item::is_gunmod_compatible( const item &mod ) const return ret_val::make_failure( _( "must be unloaded before installing this mod" ) ); } - for( const gunmod_location &slot : mod.type->gunmod->blacklist_mod ) { + for( const auto &slot : mod.type->gunmod->blacklist_mod ) { if( get_mod_locations().count( slot ) ) { return ret_val::make_failure( _( "cannot be installed on a weapon with \"%s\"" ), slot.name() ); @@ -6301,20 +6292,20 @@ std::map item::gun_all_modes() const return res; } - std::vector opts = gunmods(); + auto opts = gunmods(); opts.push_back( this ); - for( const item *e : opts ) { + for( const auto e : opts ) { // handle base item plus any auxiliary gunmods if( e->is_gun() ) { - for( const std::pair &m : e->type->gun->modes ) { + for( const auto &m : e->type->gun->modes ) { // prefix attached gunmods, e.g. M203_DEFAULT to avoid index key collisions std::string prefix = e->is_gunmod() ? ( std::string( e->typeId() ) += "_" ) : ""; std::transform( prefix.begin(), prefix.end(), prefix.begin(), static_cast( toupper ) ); - const int qty = m.second.qty(); + auto qty = m.second.qty(); res.emplace( gun_mode_id( prefix + m.first.str() ), gun_mode( m.second.name(), const_cast( e ), @@ -6323,7 +6314,7 @@ std::map item::gun_all_modes() const // non-auxiliary gunmods may provide additional modes for the base item } else if( e->is_gunmod() ) { - for( const std::pair &m : e->type->gunmod->mode_modifier ) { + for( const auto &m : e->type->gunmod->mode_modifier ) { //checks for melee gunmod, points to gunmod if( m.first == "REACH" ) { res.emplace( m.first, gun_mode { m.second.name(), const_cast( e ), @@ -6343,7 +6334,7 @@ std::map item::gun_all_modes() const gun_mode item::gun_get_mode( const gun_mode_id &mode ) const { if( is_gun() ) { - for( const std::pair &e : gun_all_modes() ) { + for( const auto &e : gun_all_modes() ) { if( e.first == mode ) { return e.second; } @@ -6380,8 +6371,8 @@ void item::gun_cycle_mode() return; } - const gun_mode_id cur = gun_get_mode_id(); - const std::map modes = gun_all_modes(); + auto cur = gun_get_mode_id(); + auto modes = gun_all_modes(); for( auto iter = modes.begin(); iter != modes.end(); ++iter ) { if( iter->first == cur ) { @@ -6403,8 +6394,8 @@ const use_function *item::get_use( const std::string &use_name ) const return type->get_use( use_name ); } - for( const item &elem : contents ) { - const use_function *fun = elem.get_use( use_name ); + for( const auto &elem : contents ) { + const auto fun = elem.get_use( use_name ); if( fun != nullptr ) { return fun; } @@ -6419,8 +6410,8 @@ item *item::get_usable_item( const std::string &use_name ) return this; } - for( item &elem : contents ) { - const use_function *fun = elem.get_use( use_name ); + for( auto &elem : contents ) { + const auto fun = elem.get_use( use_name ); if( fun != nullptr ) { return &elem; } @@ -6435,7 +6426,7 @@ int item::units_remaining( const Character &ch, int limit ) const return std::min( static_cast( charges ), limit ); } - int res = ammo_remaining(); + auto res = ammo_remaining(); if( res < limit && has_flag( "USE_UPS" ) ) { res += ch.charges_of( "UPS", limit - res ); } @@ -6608,19 +6599,10 @@ bool item::reload( player &u, item_location loc, int qty ) } } - item to_reload = *ammo; - to_reload.charges = qty; + contents.emplace_back( *ammo ); + contents.back().charges = qty; ammo->charges -= qty; - bool merged = false; - for( item &it : contents ) { - if( it.merge_charges( to_reload ) ) { - merged = true; - break; - } - } - if( !merged ) { - contents.emplace_back( to_reload ); - } + } else if( is_watertight_container() ) { if( !ammo->made_of_from_type( LIQUID ) ) { debugmsg( "Tried to reload liquid container with non-liquid." ); @@ -6688,14 +6670,14 @@ bool item::reload( player &u, item_location loc, int qty ) float item::simulate_burn( fire_data &frd ) const { - const std::vector &mats = made_of(); + const auto &mats = made_of(); float smoke_added = 0.0f; float time_added = 0.0f; float burn_added = 0.0f; const units::volume vol = base_volume(); const int effective_intensity = frd.contained ? 3 : frd.fire_intensity; - for( const material_id &m : mats ) { - const mat_burn_data &bd = m.obj().burn_data( effective_intensity ); + for( const auto &m : mats ) { + const auto &bd = m.obj().burn_data( effective_intensity ); if( bd.immune ) { // Made to protect from fire return 0.0f; @@ -6772,7 +6754,7 @@ bool item::burn( fire_data &frd ) bool item::flammable( int threshold ) const { - const std::vector &mats = made_of_types(); + const auto &mats = made_of_types(); if( mats.empty() ) { // Don't know how to burn down something made of nothing. return false; @@ -6780,8 +6762,8 @@ bool item::flammable( int threshold ) const int flammability = 0; units::volume volume_per_turn = 0_ml; - for( const material_type *m : mats ) { - const mat_burn_data &bd = m->burn_data( 1 ); + for( const auto &m : mats ) { + const auto &bd = m->burn_data( 1 ); if( bd.immune ) { // Made to protect from fire return false; @@ -6860,7 +6842,7 @@ units::volume item::get_container_capacity() const units::volume item::get_total_capacity() const { - units::volume result = get_container_capacity(); + auto result = get_container_capacity(); // Consider various iuse_actors which add containing capability // Treating these two as special cases for now; if more appear in the @@ -7054,8 +7036,9 @@ void item::set_item_specific_energy( const float new_specific_energy ) } else if( new_item_temperature < temp_to_kelvin( temperatures::cold ) ) { item_tags.insert( "COLD" ); } - temperature = lround( 100000 * new_item_temperature ); - specific_energy = lround( 100000 * new_specific_energy ); + //The extra 0.5 are there to make rounding go better + temperature = static_cast( 100000 * new_item_temperature + 0.5 ); + specific_energy = static_cast( 100000 * new_specific_energy + 0.5 ); reset_temp_check(); } @@ -7089,8 +7072,8 @@ void item::set_item_temperature( float new_temperature ) float new_specific_energy = get_specific_energy_from_temperature( new_temperature ); float freeze_percentage = 0; - temperature = lround( 100000 * new_temperature ); - specific_energy = lround( 100000 * new_specific_energy ); + temperature = static_cast( 100000 * new_temperature + 0.5 ); + specific_energy = static_cast( 100000 * new_specific_energy + 0.5 ); const float completely_frozen_specific_energy = specific_heat_solid * freezing_temperature; // Energy that the item would have if it was completely solid at freezing temperature @@ -7242,7 +7225,7 @@ bool item::use_charges( const itype_id &what, int &qty, std::list &used, } ); bool destroy = false; - for( item *e : del ) { + for( auto e : del ) { if( e == this ) { destroy = true; // cannot remove ourselves... } else { @@ -7420,8 +7403,7 @@ bool item::can_holster( const item &obj, bool ignore ) const return false; // item is not a holster } - const holster_actor *ptr = dynamic_cast - ( type->get_use( "holster" )->get_actor_ptr() ); + auto ptr = dynamic_cast( type->get_use( "holster" )->get_actor_ptr() ); if( !ptr->can_holster( obj ) ) { return false; // item is not a suitable holster for obj } @@ -7437,7 +7419,7 @@ std::string item::components_to_string() const { using t_count_map = std::map; t_count_map counts; - for( const item &elem : components ) { + for( const auto &elem : components ) { if( !elem.has_flag( "BYPRODUCT" ) ) { const std::string name = elem.display_name(); counts[name]++; @@ -7544,10 +7526,10 @@ void item::process_temperature_rot( float insulation, const tripoint &pos, if( now - time > 1_hours ) { // This code is for items that were left out of reality bubble for long time - const weather_generator &wgen = g->weather.get_cur_weather_gen(); - const unsigned int seed = g->get_seed(); - const tripoint &local = g->m.getlocal( pos ); - int local_mod = g->new_game ? 0 : g->m.get_temperature( local ); + const auto &wgen = g->weather.get_cur_weather_gen(); + const auto seed = g->get_seed(); + const auto local = g->m.getlocal( pos ); + auto local_mod = g->new_game ? 0 : g->m.get_temperature( local ); int enviroment_mod; // Toilets and vending machines will try to get the heat radiation and convection during mapgen and segfault. @@ -7811,8 +7793,9 @@ void item::calc_temp( const int temp, const float insulation, const time_point & } else if( new_item_temperature < temp_to_kelvin( temperatures::cold ) ) { item_tags.insert( "COLD" ); } - temperature = lround( 100000 * new_item_temperature ); - specific_energy = lround( 100000 * new_specific_energy ); + //The extra 0.5 are there to make rounding go better + temperature = static_cast( 100000 * new_item_temperature + 0.5 ); + specific_energy = static_cast( 100000 * new_specific_energy + 0.5 ); last_temp_check = time; } @@ -7832,7 +7815,7 @@ void item::heat_up() // Set item temperature to 60 C (333.15 K, 122 F) // Also set the energy to match temperature = 333.15 * 100000; - specific_energy = lround( 100000 * get_specific_energy_from_temperature( 333.15 ) ); + specific_energy = static_cast( 100000 * get_specific_energy_from_temperature( 333.15 ) + 0.5 ); reset_temp_check(); } @@ -7846,7 +7829,7 @@ void item::cold_up() // Set item temperature to 3 C (276.15 K, 37.4 F) // Also set the energy to match temperature = 276.15 * 100000; - specific_energy = lround( 100000 * get_specific_energy_from_temperature( 276.15 ) ); + specific_energy = static_cast( 100000 * get_specific_energy_from_temperature( 276.15 ) + 0.5 ); reset_temp_check(); } @@ -7975,21 +7958,21 @@ bool item::process_litcig( player *carrier, const tripoint &pos ) ( carrier->has_trait( trait_id( "JITTERY" ) ) && one_in( 200 ) ) ) { carrier->add_msg_if_player( m_bad, _( "Your shaking hand causes you to drop your %s." ), tname() ); - g->m.add_item_or_charges( pos + point( rng( -1, 1 ), rng( -1, 1 ) ), *this ); + g->m.add_item_or_charges( tripoint( pos.x + rng( -1, 1 ), pos.y + rng( -1, 1 ), pos.z ), *this ); return true; // removes the item that has just been added to the map } if( carrier->has_effect( effect_sleep ) ) { carrier->add_msg_if_player( m_bad, _( "You fall asleep and drop your %s." ), tname() ); - g->m.add_item_or_charges( pos + point( rng( -1, 1 ), rng( -1, 1 ) ), *this ); + g->m.add_item_or_charges( tripoint( pos.x + rng( -1, 1 ), pos.y + rng( -1, 1 ), pos.z ), *this ); return true; // removes the item that has just been added to the map } } else { // If not carried by someone, but laying on the ground: // release some smoke every five ticks if( item_counter % 5 == 0 ) { - g->m.add_field( pos + point( rng( -2, 2 ), rng( -2, 2 ) ), smoke_type, 1 ); + g->m.add_field( tripoint( pos.x + rng( -2, 2 ), pos.y + rng( -2, 2 ), pos.z ), smoke_type, 1 ); // lit cigarette can start fires if( g->m.flammable_items_at( pos ) || g->m.has_flag( "FLAMMABLE", pos ) || @@ -8012,7 +7995,7 @@ bool item::process_litcig( player *carrier, const tripoint &pos ) convert( "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 ); + g->m.add_field( tripoint( pos.x + rng( -1, 1 ), pos.y + rng( -1, 1 ), pos.z ), fd_weedsmoke, 2 ); weed_msg( *carrier ); } } @@ -8185,14 +8168,17 @@ bool item::process_tool( player *carrier, const tripoint &pos ) { int energy = 0; if( type->tool->turns_per_charge > 0 && - to_turn( calendar::turn ) % type->tool->turns_per_charge == 0 ) { + static_cast( calendar::turn ) % type->tool->turns_per_charge == 0 ) { energy = std::max( ammo_required(), 1 ); } else if( type->tool->power_draw > 0 ) { - // power_draw in mW / 1000000 to give kJ (battery unit) per second - energy = type->tool->power_draw / 1000000; + // power_draw in mW / 1000 to give J per second + int energy_j = type->tool->power_draw / 1000; + // J / 1000 for kJ battery units + int energy_bat = energy_j / 1000; // energy_bat remainder results in chance at additional charge/discharge - energy += x_in_y( type->tool->power_draw % 1000000, 1000000 ) ? 1 : 0; + energy_bat += x_in_y( energy_j % 1000, 1000 ) ? 1 : 0; + energy = energy_bat; } energy -= ammo_consume( energy, pos ); @@ -8308,7 +8294,7 @@ bool item::process( player *carrier, const tripoint &pos, bool activate, } } - for( const emit_id &e : type->emits ) { + for( const auto &e : type->emits ) { g->m.emit_field( pos, e ); } @@ -8370,8 +8356,11 @@ bool item::has_effect_when_wielded( art_effect_passive effect ) const if( !type->artifact ) { return false; } - const std::vector &ew = type->artifact->effects_wielded; - return std::find( ew.begin(), ew.end(), effect ) != ew.end(); + auto &ew = type->artifact->effects_wielded; + if( std::find( ew.begin(), ew.end(), effect ) != ew.end() ) { + return true; + } + return false; } bool item::has_effect_when_worn( art_effect_passive effect ) const @@ -8379,8 +8368,11 @@ bool item::has_effect_when_worn( art_effect_passive effect ) const if( !type->artifact ) { return false; } - const std::vector &ew = type->artifact->effects_worn; - return std::find( ew.begin(), ew.end(), effect ) != ew.end(); + auto &ew = type->artifact->effects_worn; + if( std::find( ew.begin(), ew.end(), effect ) != ew.end() ) { + return true; + } + return false; } bool item::has_effect_when_carried( art_effect_passive effect ) const @@ -8388,11 +8380,11 @@ bool item::has_effect_when_carried( art_effect_passive effect ) const if( !type->artifact ) { return false; } - const std::vector &ec = type->artifact->effects_carried; + auto &ec = type->artifact->effects_carried; if( std::find( ec.begin(), ec.end(), effect ) != ec.end() ) { return true; } - for( const item &i : contents ) { + for( auto &i : contents ) { if( i.has_effect_when_carried( effect ) ) { return true; } @@ -8447,7 +8439,7 @@ bool item::is_tainted() const bool item::is_soft() const { - const std::vector mats = made_of(); + const auto mats = made_of(); return std::any_of( mats.begin(), mats.end(), []( const material_id & mid ) { return mid.obj().soft(); } ); @@ -8546,13 +8538,13 @@ std::string item::get_corpse_name() std::string item::nname( const itype_id &id, unsigned int quantity ) { - const itype *t = find_type( id ); + const auto t = find_type( id ); return t->nname( quantity ); } bool item::count_by_charges( const itype_id &id ) { - const itype *t = find_type( id ); + const auto t = find_type( id ); return t->count_by_charges(); } @@ -8571,7 +8563,7 @@ int item::get_gun_ups_drain() const int draincount = 0; if( type->gun ) { draincount += type->gun->ups_charges; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { draincount += mod->type->gunmod->ups_charges; } } @@ -8653,7 +8645,7 @@ time_point item::birthday() const void item::set_birthday( const time_point &bday ) { - this->bday = std::max( calendar::turn_zero, bday ); + this->bday = bday; } bool item::is_upgrade() const @@ -8668,7 +8660,7 @@ int item::get_min_str() const { if( type->gun ) { int min_str = type->min_str; - for( const item *mod : gunmods() ) { + for( const auto mod : gunmods() ) { min_str += mod->type->gunmod->min_str_required_mod; } return min_str > 0 ? min_str : 0; @@ -8682,14 +8674,14 @@ std::vector item::get_uncraft_components() const std::vector ret; if( components.empty() ) { //If item wasn't crafted with specific components use default recipe - std::vector> recipe = recipe_dictionary::get_uncraft( - typeId() ).disassembly_requirements().get_components(); - for( std::vector &component : recipe ) { + auto recipe = recipe_dictionary::get_uncraft( + typeId() ).disassembly_requirements().get_components(); + for( auto &component : recipe ) { ret.push_back( component.front() ); } } else { //Make a new vector of components from the registered components - for( const item &component : components ) { + for( auto &component : components ) { ret.push_back( item_comp( component.typeId(), component.count() ) ); } } @@ -8741,7 +8733,7 @@ const cata::optional &item::get_comestible() const bool item::has_clothing_mod() const { - for( const clothing_mod &cm : clothing_mods::get_all() ) { + for( auto &cm : clothing_mods::get_all() ) { if( item_tags.count( cm.flag ) > 0 ) { return true; } @@ -8758,11 +8750,11 @@ float item::get_clothing_mod_val( clothing_mod_type type ) const void item::update_clothing_mod_val() { - for( const clothing_mod_type &type : clothing_mods::all_clothing_mod_types ) { + for( auto type : clothing_mods::all_clothing_mod_types ) { const std::string key = CLOTHING_MOD_VAR_PREFIX + clothing_mods::string_from_clothing_mod_type( type ); float tmp = 0.0; - for( const clothing_mod &cm : clothing_mods::get_all_with( type ) ) { + for( auto cm : clothing_mods::get_all_with( type ) ) { if( item_tags.count( cm.flag ) > 0 ) { tmp += cm.get_mod_val( type, *this ); } diff --git a/src/item.h b/src/item.h index f41aee934643e..517235332c62b 100644 --- a/src/item.h +++ b/src/item.h @@ -436,6 +436,8 @@ class item : public visitable void serialize( JsonOut &jsout ) const; void deserialize( JsonIn &jsin ); + // Legacy function, don't use. + void load_info( const std::string &data ); const std::string &symbol() const; /** * Returns the monetary value of an item. @@ -444,14 +446,6 @@ class item : public visitable */ int price( bool practical ) const; - /** - * Whether two items should stack when displayed in a inventory menu. - * This is different from stacks_with, when two previously non-stackable - * items are now stackable and mergeable because, for example, they - * reaches the same temperature. This is necessary to avoid misleading - * stacks like "3 items-count-by-charge (5)". - */ - bool display_stacked_with( const item &rhs, bool check_components = false ) const; bool stacks_with( const item &rhs, bool check_components = false ) const; /** * Merge charges of the other item into this item. @@ -2060,9 +2054,9 @@ class item : public visitable */ time_duration rot = 0_turns; /** Time when the rot calculation was last performed. */ - time_point last_rot_check = calendar::turn_zero; + time_point last_rot_check = calendar::time_of_cataclysm; /** the last time the temperature was updated for this item */ - time_point last_temp_check = calendar::turn_zero; + time_point last_temp_check = calendar::time_of_cataclysm; /// The time the item was created. time_point bday; /** diff --git a/src/item_factory.cpp b/src/item_factory.cpp index d0e575fa149b6..b9c4ffc7ddc79 100644 --- a/src/item_factory.cpp +++ b/src/item_factory.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include @@ -59,7 +58,7 @@ static DynamicDataLoader::deferred_json deferred; std::unique_ptr item_controller = std::make_unique(); -static std::string calc_category( const itype &obj ); +static const std::string 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 ); @@ -105,8 +104,8 @@ static bool assign_coverage_from_json( JsonObject &jo, const std::string &key, } else { parts.set( get_body_part_token( val ) ); } - sided |= val == "ARM_EITHER" || val == "HAND_EITHER" || - val == "LEG_EITHER" || val == "FOOT_EITHER"; + sided |= ( val == "ARM_EITHER" || val == "HAND_EITHER" || + val == "LEG_EITHER" || val == "FOOT_EITHER" ); }; if( jo.has_array( key ) ) { @@ -354,18 +353,14 @@ void Item_factory::finalize_pre( itype &obj ) obj.drop_action.get_actor_ptr()->finalize( obj.id ); } - if( obj.item_tags.count( "PERSONAL" ) ) { - obj.layer = PERSONAL_LAYER; - } else if( obj.item_tags.count( "SKINTIGHT" ) ) { - obj.layer = UNDERWEAR_LAYER; + if( obj.item_tags.count( "SKINTIGHT" ) ) { + obj.layer = UNDERWEAR; } else if( obj.item_tags.count( "WAIST" ) ) { obj.layer = WAIST_LAYER; } else if( obj.item_tags.count( "OUTER" ) ) { obj.layer = OUTER_LAYER; } else if( obj.item_tags.count( "BELTED" ) ) { obj.layer = BELTED_LAYER; - } else if( obj.item_tags.count( "AURA" ) ) { - obj.layer = AURA_LAYER; } else { obj.layer = REGULAR_LAYER; } @@ -579,7 +574,7 @@ void Item_factory::add_item_type( const itype &def ) } auto &new_item_ptr = m_runtimes[ def.id ]; - new_item_ptr = std::make_unique( def ); + new_item_ptr.reset( new itype( def ) ); if( frozen ) { finalize_pre( *new_item_ptr ); finalize_post( *new_item_ptr ); @@ -817,8 +812,7 @@ void Item_factory::init() add_actor( new sew_advanced_actor() ); // An empty dummy group, it will not spawn anything. However, it makes that item group // id valid, so it can be used all over the place without need to explicitly check for it. - m_template_groups["EMPTY_GROUP"] = std::make_unique( Item_group::G_COLLECTION, 100, 0, - 0 ); + m_template_groups["EMPTY_GROUP"].reset( new Item_group( Item_group::G_COLLECTION, 100, 0, 0 ) ); } bool Item_factory::check_ammo_type( std::ostream &msg, const ammotype &ammo ) const @@ -2464,12 +2458,12 @@ void Item_factory::add_entry( Item_group &ig, JsonObject &obj ) int probability = obj.get_int( "prob", 100 ); JsonArray jarr; if( obj.has_member( "collection" ) ) { - gptr = std::make_unique( Item_group::G_COLLECTION, probability, ig.with_ammo, - ig.with_magazine ); + gptr.reset( new Item_group( Item_group::G_COLLECTION, probability, ig.with_ammo, + ig.with_magazine ) ); jarr = obj.get_array( "collection" ); } else if( obj.has_member( "distribution" ) ) { - gptr = std::make_unique( Item_group::G_DISTRIBUTION, probability, ig.with_ammo, - ig.with_magazine ); + gptr.reset( new Item_group( Item_group::G_DISTRIBUTION, probability, ig.with_ammo, + ig.with_magazine ) ); jarr = obj.get_array( "distribution" ); } if( gptr ) { @@ -2483,11 +2477,11 @@ void Item_factory::add_entry( Item_group &ig, JsonObject &obj ) std::unique_ptr sptr; if( obj.has_member( "item" ) ) { - sptr = std::make_unique( - obj.get_string( "item" ), Single_item_creator::S_ITEM, probability ); + sptr.reset( new Single_item_creator( obj.get_string( "item" ), Single_item_creator::S_ITEM, + probability ) ); } else if( obj.has_member( "group" ) ) { - sptr = std::make_unique( - obj.get_string( "group" ), Single_item_creator::S_ITEM_GROUP, probability ); + sptr.reset( new Single_item_creator( obj.get_string( "group" ), Single_item_creator::S_ITEM_GROUP, + probability ) ); } if( !sptr ) { return; @@ -2683,7 +2677,7 @@ phase_id string_to_enum( const std::string &data ) } } // namespace io -std::string calc_category( const itype &obj ) +const std::string calc_category( const itype &obj ) { if( obj.artifact ) { return "artifacts"; diff --git a/src/iuse.cpp b/src/iuse.cpp index c63a0963fc60c..46210fa3aeede 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -26,7 +26,7 @@ #include "debug.h" #include "effect.h" // for weed_msg #include "explosion.h" -#include "timed_event.h" +#include "event.h" #include "field.h" #include "fungal_effects.h" #include "game.h" @@ -279,8 +279,8 @@ static std::string colorized_feature_description_at( const tripoint ¢er_poin static std::string colorized_item_name( const item &item ); static std::string colorized_item_description( const item &item ); -static item get_top_item_at_point( const tripoint &point, - const units::volume min_visible_volume ); +static const item get_top_item_at_point( const tripoint &point, + const units::volume min_visible_volume ); static std::string effects_description_for_creature( Creature *const creature, std::string &pose, const std::string &pronoun_sex ); @@ -413,6 +413,9 @@ static int alcohol( player &p, const item &it, const int strength ) } else if( p.has_trait( trait_LIGHTWEIGHT ) ) { duration += alc_strength( strength, 12_minutes, 30_minutes, 45_minutes ); } + if( !( p.has_trait( trait_ALCMET ) ) ) { + p.mod_painkiller( to_turns( alc_strength( strength, 24_seconds, 48_seconds, 72_seconds ) ) ); + } p.add_effect( effect_drunk, duration ); return it.type->charges_to_use(); } @@ -842,8 +845,7 @@ int iuse::meditate( player *p, item *it, bool t, const tripoint & ) } if( p->has_trait( trait_SPIRITUAL ) ) { - const int moves = to_moves( 20_minutes ); - p->assign_activity( activity_id( "ACT_MEDITATE" ), moves ); + p->assign_activity( activity_id( "ACT_MEDITATE" ), 2000 ); } else { p->add_msg_if_player( _( "This %s probably meant a lot to someone at one time." ), it->tname() ); @@ -1807,7 +1809,7 @@ int iuse::fish_trap( player *p, item *it, bool t, const tripoint &pos ) if( chosen_fish->fish_population <= 0 ) { g->catch_a_monster( chosen_fish, pos, p, 300_hours ); //catch the fish! } else { - g->m.add_item_or_charges( pos, item::make_corpse( chosen_fish->type->id, + g->m.add_item_or_charges( p->pos(), item::make_corpse( chosen_fish->type->id, calendar::turn + rng( 0_turns, 3_hours ) ) ); } @@ -2123,7 +2125,7 @@ int iuse::radio_on( player *p, item *it, bool t, const tripoint &pos ) } ); std::vector segments = foldstring( message, RADIO_PER_TURN ); - int index = to_turn( calendar::turn ) % segments.size(); + int index = calendar::turn % segments.size(); std::stringstream messtream; messtream << string_format( _( "radio: %s" ), segments[index] ); message = messtream.str(); @@ -2419,9 +2421,8 @@ int iuse::crowbar( player *p, item *it, bool, const tripoint &pos ) pgettext( "memorial_female", "Set off an alarm." ) ); 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( !g->events.queued( EVENT_WANTED ) ) { + g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p->global_sm_location() ); } } } else { @@ -2705,10 +2706,10 @@ int iuse::dig_channel( player *p, item *it, bool t, const tripoint & ) const tripoint dig_point = p->pos(); - tripoint north = dig_point + point_north; - tripoint south = dig_point + point_south; - tripoint west = dig_point + point_west; - tripoint east = dig_point + point_east; + tripoint north = dig_point + point( 0, -1 ); + tripoint south = dig_point + point( 0, 1 ); + tripoint west = dig_point + point( -1, 0 ); + tripoint east = dig_point + point( 1, 0 ); const bool can_dig_here = g->m.has_flag( "DIGGABLE", dig_point ) && !g->m.has_furn( dig_point ) && g->m.tr_at( dig_point ).is_null() && g->m.i_at( dig_point ).empty() && !g->m.veh_at( dig_point ) && @@ -2780,11 +2781,11 @@ int iuse::fill_pit( player *p, item *it, bool t, const tripoint & ) if( g->m.ter( pnt ) == t_pit || g->m.ter( pnt ) == t_pit_spiked || g->m.ter( pnt ) == t_pit_glass || g->m.ter( pnt ) == t_pit_corpsed ) { - moves = to_moves( time_duration::from_minutes( 15 ) ); + moves = to_turns( time_duration::from_minutes( 15 ) ); } else if( g->m.ter( pnt ) == t_pit_shallow ) { - moves = to_moves( time_duration::from_minutes( 10 ) ); + moves = to_turns( time_duration::from_minutes( 10 ) ); } else if( g->m.ter( pnt ) == t_dirtmound ) { - moves = to_moves( time_duration::from_minutes( 5 ) ); + moves = to_turns( time_duration::from_minutes( 5 ) ); } else { p->add_msg_if_player( _( "There is nothing to fill." ) ); return 0; @@ -3083,21 +3084,21 @@ int iuse::jackhammer( player *p, item *it, bool, const tripoint &pos ) return 0; } - int moves = to_moves( 30_minutes ); + int turns = to_moves( 30_minutes ); if( g->m.move_cost( pnt ) == 2 ) { // We're breaking up some flat surface like pavement, which is much easier - moves /= 2; + turns /= 2; } const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); - moves *= ( 1 - ( helpersize / 10 ) ); + turns *= ( 1 - ( helpersize / 10 ) ); for( const npc *np : helpers ) { add_msg( m_info, _( "%s helps with this task..." ), np->name ); break; } - p->assign_activity( activity_id( "ACT_JACKHAMMER" ), moves, -1, p->get_item_position( it ) ); + p->assign_activity( activity_id( "ACT_JACKHAMMER" ), turns, -1, p->get_item_position( it ) ); p->activity.placement = pnt; p->add_msg_if_player( _( "You start drilling into the %1$s with your %2$s." ), g->m.tername( pnt ), it->tname() ); @@ -3539,7 +3540,7 @@ int iuse::grenade_inc_act( player *p, item *it, bool t, const tripoint &pos ) } else { // blow up int num_flames = rng( 3, 5 ); for( int current_flame = 0; current_flame < num_flames; current_flame++ ) { - tripoint dest( pos + point( rng( -5, 5 ), rng( -5, 5 ) ) ); + tripoint dest( pos.x + rng( -5, 5 ), pos.y + rng( -5, 5 ), pos.z ); std::vector flames = line_to( pos, dest, 0, 0 ); for( auto &flame : flames ) { g->m.add_field( flame, fd_fire, rng( 0, 2 ) ); @@ -4189,10 +4190,10 @@ int iuse::portable_game( player *p, item *it, bool, const tripoint & ) } //Play in 15-minute chunks - const int moves = to_moves( 15_minutes ); + int time = to_turns( 15_minutes ); p->add_msg_if_player( _( "You play on your %s for a while." ), it->tname() ); - p->assign_activity( activity_id( "ACT_GAME" ), moves, -1, p->get_item_position( it ), "gaming" ); + p->assign_activity( activity_id( "ACT_GAME" ), time, -1, p->get_item_position( it ), "gaming" ); std::map game_data; game_data.clear(); @@ -4237,11 +4238,11 @@ int iuse::hand_crank( player *p, item *it, bool, const tripoint & ) if( magazine && magazine->has_flag( "RECHARGE" ) ) { // 1600 minutes. It shouldn't ever run this long, but it's an upper bound. // expectation is it runs until the player is too tired. - int moves = to_moves( 1600_minutes ); + int time = to_moves( 1600_minutes ); if( it->ammo_capacity() > it->ammo_remaining() ) { p->add_msg_if_player( string_format( _( "You start cranking the %s to charge its %s." ), it->tname(), it->magazine_current()->tname() ) ) ; - p->assign_activity( activity_id( "ACT_HAND_CRANK" ), moves, -1, p->get_item_position( it ), + p->assign_activity( activity_id( "ACT_HAND_CRANK" ), time, -1, p->get_item_position( it ), "hand-cranking" ); } else { p->add_msg_if_player( string_format( @@ -4276,7 +4277,7 @@ int iuse::vibe( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( m_info, _( "*Your* batteries are dead." ) ); return 0; } else { - int moves = to_moves( 20_minutes ); + int time = to_turns( 20_minutes ); if( it->ammo_remaining() > 0 ) { p->add_msg_if_player( _( "You fire up your %s and start getting the tension out." ), it->tname() ); @@ -4284,7 +4285,7 @@ int iuse::vibe( player *p, item *it, bool, const tripoint & ) p->add_msg_if_player( _( "You whip out your %s and start getting the tension out." ), it->tname() ); } - p->assign_activity( activity_id( "ACT_VIBE" ), moves, -1, p->get_item_position( it ), + p->assign_activity( activity_id( "ACT_VIBE" ), time, -1, p->get_item_position( it ), "de-stressing" ); } return it->type->charges_to_use(); @@ -4438,11 +4439,27 @@ int iuse::mind_splicer( player *p, item *it, bool, const tripoint & ) void iuse::cut_log_into_planks( player &p ) { - const int moves = to_moves( 20_minutes ); + p.moves -= to_moves( 20_minutes ); p.add_msg_if_player( _( "You cut the log into planks." ) ); - - p.assign_activity( activity_id( "ACT_CHOP_PLANKS" ), moves, -1 ); - p.activity.placement = p.pos(); + const int max_planks = 10; + /** @EFFECT_FABRICATION increases number of planks cut from a log */ + int planks = normal_roll( 2 + p.get_skill_level( skill_fabrication ), 1 ); + int wasted_planks = max_planks - planks; + int scraps = rng( wasted_planks, wasted_planks * 3 ); + planks = std::min( planks, max_planks ); + if( planks > 0 ) { + item plank( "2x4", calendar::turn ); + p.i_add_or_drop( plank, planks ); + p.add_msg_if_player( m_good, _( "You produce %d planks." ), planks ); + } + if( scraps > 0 ) { + item scrap( "splinter", calendar::turn ); + p.i_add_or_drop( scrap, scraps ); + p.add_msg_if_player( m_good, _( "You produce %d splinters." ), scraps ); + } + if( planks < max_planks / 2 ) { + add_msg( m_bad, _( "You waste a lot of the wood." ) ); + } } int iuse::lumber( player *p, item *it, bool t, const tripoint & ) @@ -4601,7 +4618,6 @@ int iuse::oxytorch( player *p, item *it, bool, const tripoint & ) } const int charges = turns * it->ammo_required(); - int moves = to_moves( time_duration::from_turns( turns ) ); if( charges > it->ammo_remaining() ) { add_msg( m_info, _( "Your torch doesn't have enough acetylene to cut that." ) ); @@ -4609,7 +4625,7 @@ int iuse::oxytorch( player *p, item *it, bool, const tripoint & ) } // placing ter here makes resuming tasks work better - p->assign_activity( activity_id( "ACT_OXYTORCH" ), moves, static_cast( ter ), + p->assign_activity( activity_id( "ACT_OXYTORCH" ), turns, static_cast( ter ), p->get_item_position( it ) ); p->activity.placement = pnt; p->activity.values.push_back( charges ); @@ -4805,7 +4821,7 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) case AEA_MAP: { const tripoint center = p->global_omt_location(); const bool new_map = overmap_buffer.reveal( - center.xy(), 20, center.z ); + point( center.x, center.y ), 20, center.z ); if( new_map ) { p->add_msg_if_player( m_warning, _( "You have a vision of the surrounding area..." ) ); p->moves -= to_moves( 1_seconds ); @@ -4921,7 +4937,7 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) case AEA_LIGHT: p->add_msg_if_player( _( "The %s glows brightly!" ), it->tname() ); - g->timed_events.add( TIMED_EVENT_ARTIFACT_LIGHT, calendar::turn + 3_minutes ); + g->events.add( EVENT_ARTIFACT_LIGHT, calendar::turn + 3_minutes ); break; case AEA_GROWTH: { @@ -5000,7 +5016,7 @@ int iuse::artifact( player *p, item *it, bool, const tripoint & ) case AEA_DIM: p->add_msg_if_player( _( "The sky starts to dim." ) ); - g->timed_events.add( TIMED_EVENT_DIM, calendar::turn + 5_minutes ); + g->events.add( EVENT_DIM, calendar::turn + 5_minutes ); break; case AEA_FLASH: @@ -5211,11 +5227,6 @@ int iuse::hotplate( player *p, item *it, bool, const tripoint & ) } int iuse::towel( player *p, item *it, bool t, const tripoint & ) -{ - return towel_common( p, it, t ); -} - -int iuse::towel_common( player *p, item *it, bool t ) { if( t ) { // Continuous usage, do nothing as not initiated by the player, this is for @@ -5227,10 +5238,9 @@ int iuse::towel_common( player *p, item *it, bool t ) bool glow = p->has_effect( effect_glowing ); int mult = slime + boom + glow; // cleaning off more than one at once makes it take longer bool towelUsed = false; - const std::string name = it ? it->tname() : _( "towel" ); // can't use an already wet towel! - if( it && it->has_flag( "WET" ) ) { + if( it->has_flag( "WET" ) ) { p->add_msg_if_player( m_info, _( "That %s is too wet to soak up any more liquid!" ), it->tname() ); // clean off the messes first, more important @@ -5239,10 +5249,10 @@ int iuse::towel_common( player *p, item *it, bool t ) p->remove_effect( effect_boomered ); p->remove_effect( effect_glowing ); p->add_msg_if_player( _( "You use the %s to clean yourself off, saturating it with slime!" ), - name ); + it->tname() ); towelUsed = true; - if( it && it->typeId() == "towel" ) { + if( it->typeId() == "towel" ) { it->convert( "towel_soiled" ); } @@ -5251,16 +5261,14 @@ int iuse::towel_common( player *p, item *it, bool t ) p->rem_morale( MORALE_WET ); p->body_wetness.fill( 0 ); p->add_msg_if_player( _( "You use the %s to dry off, saturating it with water!" ), - name ); + it->tname() ); towelUsed = true; - if( it ) { - it->item_counter = to_turns( 30_minutes ); - } + it->item_counter = to_turns( 30_minutes ); // default message } else { - p->add_msg_if_player( _( "You are already dry, the %s does nothing." ), name ); + p->add_msg_if_player( _( "You are already dry, the %s does nothing." ), it->tname() ); } // towel was used @@ -5269,18 +5277,16 @@ int iuse::towel_common( player *p, item *it, bool t ) mult = 1; } p->moves -= 50 * mult; - if( it ) { - // change "towel" to a "towel_wet" (different flavor text/color) - if( it->typeId() == "towel" ) { - it->convert( "towel_wet" ); - } - - // WET, active items have their timer decremented every turn - it->item_tags.insert( "WET" ); - it->active = true; + // change "towel" to a "towel_wet" (different flavor text/color) + if( it->typeId() == "towel" ) { + it->convert( "towel_wet" ); } + + // WET, active items have their timer decremented every turn + it->item_tags.insert( "WET" ); + it->active = true; } - return it ? it->type->charges_to_use() : 0; + return it->type->charges_to_use(); } int iuse::unfold_generic( player *p, item *it, bool, const tripoint & ) @@ -5481,7 +5487,7 @@ int iuse::talking_doll( player *p, item *it, bool, const tripoint & ) int iuse::gun_repair( player *p, item *it, bool, const tripoint & ) { - if( !it->units_sufficient( *p ) ) { + if( !it->ammo_sufficient() ) { return 0; } if( p->is_underwater() ) { @@ -6485,8 +6491,8 @@ static std::string colorized_item_description( const item &item ) return item.info( dummy, &query, 1 ); } -static item get_top_item_at_point( const tripoint &point, - const units::volume min_visible_volume ) +static const item get_top_item_at_point( const tripoint &point, + const units::volume min_visible_volume ) { map_stack items = g->m.i_at( point ); // iterate from topmost item down to ground @@ -6588,9 +6594,9 @@ static std::string effects_description_for_creature( Creature *const creature, s ef_con( std::string status, std::string pose ) : status( status ), pose( pose ), intensity_lower_limit( 0 ) {} ef_con( std::string status, int intensity_lower_limit ) : - status( status ), intensity_lower_limit( intensity_lower_limit ) {} + status( status ), pose(), intensity_lower_limit( intensity_lower_limit ) {} ef_con( std::string status ) : - status( status ), intensity_lower_limit( 0 ) {} + status( status ), pose(), intensity_lower_limit( 0 ) {} }; static const std::unordered_map vec_effect_status = { { effect_onfire, ef_con( _( " is on fire. " ) ) }, @@ -7041,11 +7047,11 @@ static extended_photo_def photo_def_for_camera_point( const tripoint &aim_point, if( g->get_levz() >= 0 && need_store_weather ) { photo_text += "\n\n"; - if( is_sunrise_now( calendar::turn ) ) { + if( calendar::turn.is_sunrise_now() ) { photo_text += _( "It is sunrise. " ); - } else if( is_sunset_now( calendar::turn ) ) { + } else if( calendar::turn.is_sunset_now() ) { photo_text += _( "It is sunset. " ); - } else if( is_night( calendar::turn ) ) { + } else if( calendar::turn.is_night() ) { photo_text += _( "It is night. " ); } else { photo_text += _( "It is day. " ); @@ -8029,7 +8035,16 @@ int iuse::autoclave( player *p, item *it, bool t, const tripoint &pos ) if( !it->units_sufficient( *p ) ) { add_msg( m_bad, _( "The autoclave ran out of battery and stopped before completing its cycle." ) ); it->active = false; - it->erase_var( "CYCLETIME" ); + item *clean_cbm = nullptr; + for( item &bio : it->contents ) { + if( bio.is_bionic() ) { + clean_cbm = &bio; + } + } + if( clean_cbm ) { + g->m.add_item( pos, *clean_cbm ); + it->remove_item( *clean_cbm ); + } return 0; } @@ -8038,12 +8053,18 @@ int iuse::autoclave( player *p, item *it, bool t, const tripoint &pos ) if( Cycle_time <= 0 ) { it->active = false; it->erase_var( "CYCLETIME" ); + item *clean_cbm = nullptr; for( item &bio : it->contents ) { if( bio.is_bionic() ) { bio.unset_flag( "NO_STERILE" ); bio.set_var( "sterile", 1 ); // sterile for 1s if not (packed); + clean_cbm = &bio; } } + if( clean_cbm ) { + g->m.add_item( pos, *clean_cbm ); + it->remove_item( *clean_cbm ); + } } else { it->set_var( "CYCLETIME", Cycle_time ); } @@ -8053,45 +8074,16 @@ int iuse::autoclave( player *p, item *it, bool t, const tripoint &pos ) return 0; } - bool empty = true; - item *clean_cbm = nullptr; - for( item &bio : it->contents ) { - if( bio.is_bionic() ) { - clean_cbm = &bio; - } - } - if( clean_cbm ) { - empty = false; - if( query_yn( _( "Autoclave already contains a CBM. Do you want to remove it?" ) ) ) { - g->m.add_item( pos, *clean_cbm ); - it->remove_item( *clean_cbm ); - if( !query_yn( _( "Do you want to use the autoclave?" ) ) ) { - return 0; - } - empty = true; - } - } + auto reqs = *requirement_id( "autoclave_item" ); - //Using power_draw seem to consume random amount of battery so +100 to be safe - static const int power_need = ( ( it->type->tool->power_draw / 1000 ) * to_seconds - ( 90_minutes ) ) / 1000 + 100; - if( power_need > it->ammo_remaining() ) { - popup( string_format( - _( "The autoclave doesn't have enough battery for one cycle. You need at least %s charges." ), - power_need ) ); - return 0; - } + item_location to_sterile = game_menus::inv::sterilize_cbm( *p ); - item_location to_sterile; - if( empty ) { - to_sterile = game_menus::inv::sterilize_cbm( *p ); - if( !to_sterile ) { - return 0; - } + if( !to_sterile ) { + return 0; } if( query_yn( _( "Start the autoclave?" ) ) ) { - auto reqs = *requirement_id( "autoclave_item" ); + for( const auto &e : reqs.get_components() ) { p->consume_items( e, 1, is_crafting_component ); } @@ -8099,12 +8091,10 @@ int iuse::autoclave( player *p, item *it, bool t, const tripoint &pos ) p->consume_tools( e ); } p->invalidate_crafting_inventory(); + const item *cbm = to_sterile.get_item(); - if( empty ) { - const item *cbm = to_sterile.get_item(); - it->put_in( *cbm ); - to_sterile.remove_item(); - } + it->put_in( *cbm ); + to_sterile.remove_item(); it->activate(); it->set_var( "CYCLETIME", to_seconds( 90_minutes ) ); // one cycle @@ -8607,16 +8597,14 @@ int iuse::shavekit( player *p, item *it, bool, const tripoint & ) if( !it->ammo_sufficient() ) { p->add_msg_if_player( _( "You need soap to use this." ) ); } else { - const int moves = to_moves( 5_minutes ); - p->assign_activity( activity_id( "ACT_SHAVE" ), moves ); + p->assign_activity( activity_id( "ACT_SHAVE" ), 3000 ); } return it->type->charges_to_use(); } int iuse::hairkit( player *p, item *it, bool, const tripoint & ) { - const int moves = to_moves( 30_minutes ); - p->assign_activity( activity_id( "ACT_HAIRCUT" ), moves ); + p->assign_activity( activity_id( "ACT_HAIRCUT" ), 3000 ); return it->type->charges_to_use(); } @@ -8897,7 +8885,7 @@ washing_requirements washing_requirements_for_volume( const units::volume vol ) { int water = divide_round_up( vol, 125_ml ); int cleanser = divide_round_up( vol, 1000_ml ); - int time = to_moves( 10_seconds * ( vol / 250_ml ) ); + int time = to_turns( 10_seconds * ( vol / 250_ml ) ); return { water, cleanser, time }; } @@ -9264,8 +9252,7 @@ use_function::use_function( const use_function &other ) use_function &use_function::operator=( iuse_actor *const f ) { - *this = use_function( f ); - return *this; + return operator=( use_function( f ) ); } use_function &use_function::operator=( const use_function &other ) diff --git a/src/iuse.h b/src/iuse.h index 156c43b7aa634..5b58d8441a18b 100644 --- a/src/iuse.h +++ b/src/iuse.h @@ -229,7 +229,6 @@ class iuse // 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, diff --git a/src/iuse_actor.cpp b/src/iuse_actor.cpp index 4e7f4be14b435..dfea692376c71 100644 --- a/src/iuse_actor.cpp +++ b/src/iuse_actor.cpp @@ -25,7 +25,7 @@ #include "debug.h" #include "vpart_position.h" #include "effect.h" -#include "timed_event.h" +#include "event.h" #include "explosion.h" #include "field.h" #include "game.h" @@ -1006,9 +1006,8 @@ int pick_lock_actor::use( player &p, item &it, bool, const tripoint & ) const if( type == t_door_locked_alarm && ( door_roll + dice( 1, 30 ) ) > pick_roll ) { sounds::sound( p.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), 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( !g->events.queued( EVENT_WANTED ) ) { + g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, p.global_sm_location() ); } } if( destroy ) { @@ -1023,49 +1022,6 @@ iuse_actor *deploy_furn_actor::clone() const return new deploy_furn_actor( *this ); } -void deploy_furn_actor::info( const item &, std::vector &dump ) const -{ - std::vector can_function_as; - const furn_t &the_furn = furn_type.obj(); - const std::string furn_name = the_furn.name(); - - if( the_furn.workbench.has_value() ) { - can_function_as.emplace_back( _( "a crafting station" ) ); - } - if( the_furn.has_flag( "BUTCHER_EQ" ) ) { - can_function_as.emplace_back( - _( "a place to hang corpses for butchering" ) ); - } - if( the_furn.has_flag( "FLAT_SURF" ) ) { - can_function_as.emplace_back( - _( "a flat surface to butcher onto or eat meals from" ) ); - } - if( the_furn.has_flag( "CAN_SIT" ) ) { - can_function_as.emplace_back( _( "a place to sit" ) ); - } - if( the_furn.has_flag( "HIDE_PLACE" ) ) { - can_function_as.emplace_back( _( "a place to hide" ) ); - } - 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" ) { - can_function_as.emplace_back( _( "a place to smoke or dry food for preservation" ) ); - } - - if( can_function_as.empty() ) { - dump.emplace_back( "DESCRIPTION", - string_format( _( "Can be activated to deploy as furniture (%s)." ), - furn_name ) ); - } else { - std::string furn_usages = enumerate_as_string( can_function_as, enumeration_conjunction::or_ ); - dump.emplace_back( "DESCRIPTION", - string_format( - _( "Can be activated to deploy as furniture (%s), which can then be used as %s." ), - furn_name, furn_usages ) ); - } -} - void deploy_furn_actor::load( JsonObject &obj ) { furn_type = furn_str_id( obj.get_string( "furn_type" ) ); @@ -1167,7 +1123,7 @@ int reveal_map_actor::use( player &p, item &it, bool, const tripoint & ) const p.global_omt_location() ); for( auto &omt : omt_types ) { for( int z = -OVERMAP_DEPTH; z <= OVERMAP_HEIGHT; z++ ) { - reveal_targets( tripoint( center.xy(), z ), omt, 0 ); + reveal_targets( tripoint( center.x, center.y, z ), omt, 0 ); } } if( !message.empty() ) { @@ -1217,9 +1173,12 @@ bool firestarter_actor::prep_firestarter_use( const player &p, tripoint &pos ) has_unactivated_brazier = true; } } - return !has_unactivated_brazier || - query_yn( - _( "There's a brazier there but you haven't set it up to contain the fire. Continue?" ) ); + if( has_unactivated_brazier && + !query_yn( + _( "There's a brazier there but you haven't set it up to contain the fire. Continue?" ) ) ) { + return false; + } + return true; } void firestarter_actor::resolve_firestarter_use( player &p, const tripoint &pos ) @@ -1302,9 +1261,8 @@ int firestarter_actor::use( player &p, item &it, bool t, const tripoint &spos ) /** @EFFECT_SURVIVAL speeds up fire starting */ float moves_modifier = std::pow( 0.8, std::min( 5.0, skill_level ) ); const int moves_base = moves_cost_by_fuel( pos ); - const double moves_per_turn = to_moves( 1_turns ); - const int min_moves = std::min( - moves_base, sqrt( 1 + moves_base / moves_per_turn ) * moves_per_turn ); + const int min_moves = std::min( moves_base, + sqrt( 1 + moves_base / to_moves( 1_turns ) ) * to_moves( 1_turns ) ); const int moves = std::max( min_moves, moves_base * moves_modifier ) / light; if( moves > to_moves( 1_minutes ) ) { // If more than 1 minute, inform the player @@ -1322,8 +1280,7 @@ int firestarter_actor::use( player &p, item &it, bool t, const tripoint &spos ) } // skill gains are handled by the activity, but stored here in the index field - const int potential_skill_gain = - moves_modifier + moves_cost_fast / 100.0 + 2; + const int potential_skill_gain = moves_modifier + moves_cost_fast / 100 + 2; p.assign_activity( activity_id( "ACT_START_FIRE" ), moves, potential_skill_gain, p.get_item_position( &it ), it.tname() ); @@ -1562,8 +1519,7 @@ void inscribe_actor::load( JsonObject &obj ) assign( obj, "gerund", gerund ); if( !on_items && !on_terrain ) { - obj.throw_error( - R"(Tried to create an useless inscribe_actor, at least on of "on_items" or "on_terrain" should be true)" ); + obj.throw_error( "Tried to create an useless inscribe_actor, at least on of \"on_items\" or \"on_terrain\" should be true" ); } } @@ -1906,7 +1862,7 @@ int enzlave_actor::use( player &p, item &it, bool t, const tripoint & ) const int success = rng( 0, skills ) - rng( 0, difficulty ); /** @EFFECT_FIRSTAID speeds up enzlavement */ - const int moves = difficulty * to_moves( 12_seconds ) / p.get_skill_level( skill_firstaid ); + const int moves = difficulty * to_turns( 12_seconds ) / p.get_skill_level( skill_firstaid ); p.assign_activity( activity_id( "ACT_MAKE_ZLAVE" ), moves ); p.activity.values.push_back( success ); @@ -2637,7 +2593,7 @@ bool bandolier_actor::reload( player &p, item &obj ) const std::vector opts; std::transform( std::make_move_iterator( found.begin() ), std::make_move_iterator( found.end() ), std::back_inserter( opts ), [&]( item_location && e ) { - return item::reload_option( &p, &obj, &obj, e ); + return item::reload_option( &p, &obj, &obj, std::move( e ) ); } ); item::reload_option sel = p.select_ammo( obj, std::move( opts ) ); @@ -2713,16 +2669,18 @@ int bandolier_actor::use( player &p, item &it, bool, const tripoint & ) const units::volume bandolier_actor::max_stored_volume() const { - // This is relevant only for bandoliers with the non-rigid flag + // This is relevant only for bandoliers with the non-rigid flag. There are + // no such items in the base game at time of writing, but I created some to + // test this and it does seem to work as expected. // Find all valid ammo auto ammo_types = Item_factory::find( [&]( const itype & t ) { return is_valid_ammo_type( t ); } ); - // Figure out which has the greatest volume and calculate on that basis + // Figure out which has the greateset volume and calculate on that basis units::volume max_ammo_volume{}; for( const auto *ammo_type : ammo_types ) { - max_ammo_volume = std::max( max_ammo_volume, ammo_type->volume / ammo_type->stack_size ); + max_ammo_volume = std::max( max_ammo_volume, ammo_type->volume ); } return max_ammo_volume * capacity; } @@ -3973,11 +3931,7 @@ iuse_actor *saw_barrel_actor::clone() const int install_bionic_actor::use( player &p, item &it, bool, const tripoint & ) const { - if( p.can_install_bionics( *it.type, p, false ) ) { - return p.install_bionics( *it.type, p, false ) ? it.type->charges_to_use() : 0; - } else { - return 0; - } + return p.install_bionics( *it.type, p, false ) ? it.type->charges_to_use() : 0; } ret_val install_bionic_actor::can_use( const player &p, const item &it, bool, diff --git a/src/iuse_actor.h b/src/iuse_actor.h index a0aec8ea950fc..387ef3f4a18ec 100644 --- a/src/iuse_actor.h +++ b/src/iuse_actor.h @@ -364,7 +364,6 @@ class deploy_furn_actor : public iuse_actor void load( JsonObject &jo ) override; int use( player &, item &, bool, const tripoint & ) const override; iuse_actor *clone() const override; - void info( const item &, std::vector & ) const override; }; /** diff --git a/src/iuse_software.cpp b/src/iuse_software.cpp index 8904930e86821..e3ea74e49d712 100644 --- a/src/iuse_software.cpp +++ b/src/iuse_software.cpp @@ -23,12 +23,10 @@ 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 ) ); + catacurses::window bkatwin = catacurses::newwin( 22, 62, ( TERMY - 22 ) / 2, ( TERMX - 62 ) / 2 ); draw_border( bkatwin ); wrefresh( bkatwin ); - catacurses::window katwin = catacurses::newwin( 20, 60, point( ( TERMX - 60 ) / 2, - ( TERMY - 20 ) / 2 ) ); + catacurses::window katwin = catacurses::newwin( 20, 60, ( TERMY - 20 ) / 2, ( TERMX - 60 ) / 2 ); robot_finds_kitten findkitten( katwin ); bool foundkitten = findkitten.ret; if( foundkitten ) { diff --git a/src/iuse_software_kitten.cpp b/src/iuse_software_kitten.cpp index f847c8c707300..8948b3eaaf23c 100644 --- a/src/iuse_software_kitten.cpp +++ b/src/iuse_software_kitten.cpp @@ -10,7 +10,7 @@ #include "rng.h" #include "translations.h" -#define EMPTY (-1) +#define EMPTY -1 #define ROBOT 0 #define KITTEN 1 std::string robot_finds_kitten::getmessage( int idx ) @@ -237,15 +237,18 @@ robot_finds_kitten::robot_finds_kitten( const catacurses::window &w ) "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#&()*+./:;=?![]{|}y"; int used_messages[MAXMESSAGES]; + rfkLINES = 20; + rfkCOLS = 60; + const int numbogus = 20; nummessages = 201; - // NOLINTNEXTLINE(cata-use-named-point-constants) - empty.pos = point( -1, -1 ); + empty.x = -1; + empty.y = -1; empty.color = nc_color(); empty.character = ' '; - for( int ( &col )[rfkLINES] : rfkscreen ) { - for( int &i : col ) { - i = EMPTY; + for( int c = 0; c < rfkCOLS; c++ ) { + for( int c2 = 0; c2 < rfkLINES; c2++ ) { + rfkscreen[c][c2] = EMPTY; } } /* Create an array to ensure we don't get duplicate messages. */ @@ -256,17 +259,17 @@ robot_finds_kitten::robot_finds_kitten( const catacurses::window &w ) } /* Now we initialize the various game OBJECTs. * Assign a position to the player. */ - robot.pos.x = rng( 0, rfkCOLS - 1 ); - robot.pos.y = rng( 0, rfkLINES - 3 - 1 ) + 3; + robot.x = rng( 0, rfkCOLS - 1 ); + robot.y = rng( 0, rfkLINES - 3 - 1 ) + 3; robot.character = '#'; robot.color = c_white; - rfkscreen[robot.pos.x][robot.pos.y] = ROBOT; + rfkscreen[robot.x][robot.y] = ROBOT; /* Assign the kitten a unique position. */ do { - kitten.pos.x = rng( 0, rfkCOLS - 1 ); - kitten.pos.y = rng( 0, rfkLINES - 3 - 1 ) + 3; - } while( rfkscreen[kitten.pos.x][kitten.pos.y] != EMPTY ); + kitten.x = rng( 0, rfkCOLS - 1 ); + kitten.y = rng( 0, rfkLINES - 3 - 1 ) + 3; + } while( rfkscreen[kitten.x][kitten.y] != EMPTY ); /* Assign the kitten a character and a color. */ do { @@ -277,16 +280,16 @@ robot_finds_kitten::robot_finds_kitten( const catacurses::window &w ) kitten.color = all_colors.get_random(); } while( kitten.color == c_black ); - rfkscreen[kitten.pos.x][kitten.pos.y] = KITTEN; + rfkscreen[kitten.x][kitten.y] = KITTEN; /* Now, initialize non-kitten OBJECTs. */ for( int c = 0; c < numbogus; c++ ) { /* Assign a unique position. */ do { - bogus[c].pos.x = rng( 0, rfkCOLS - 1 ); - bogus[c].pos.y = rng( 0, rfkLINES - 3 - 1 ) + 3; - } while( rfkscreen[bogus[c].pos.x][bogus[c].pos.y] != EMPTY ); - rfkscreen[bogus[c].pos.x][bogus[c].pos.y] = c + 2; + bogus[c].x = rng( 0, rfkCOLS - 1 ); + bogus[c].y = rng( 0, rfkLINES - 3 - 1 ) + 3; + } while( rfkscreen[bogus[c].x][bogus[c].y] != EMPTY ); + rfkscreen[bogus[c].x][bogus[c].y] = c + 2; /* Assign a character. */ do { @@ -313,16 +316,17 @@ robot_finds_kitten::robot_finds_kitten( const catacurses::window &w ) for( int c = 0; c < rfkCOLS; c++ ) { mvwputch( w, 2, c, BORDER_COLOR, '_' ); } - wmove( w, kitten.pos ); + wmove( w, kitten.y, kitten.x ); draw_kitten( w ); for( int c = 0; c < numbogus; c++ ) { - mvwputch( w, bogus[c].pos.y, bogus[c].pos.x, bogus[c].color, bogus[c].character ); + mvwputch( w, bogus[c].y, bogus[c].x, bogus[c].color, bogus[c].character ); } - wmove( w, robot.pos ); + wmove( w, robot.y, robot.x ); draw_robot( w ); - point old_pos = robot.pos; + int old_x = robot.x; + int old_y = robot.y; wrefresh( w ); /* Now the fun begins. */ @@ -334,14 +338,15 @@ robot_finds_kitten::robot_finds_kitten( const catacurses::window &w ) break; } /* Redraw robot, where available */ - if( old_pos != robot.pos ) { - wmove( w, old_pos ); + if( !( old_x == robot.x && old_y == robot.y ) ) { + wmove( w, old_y, old_x ); wputch( w, c_white, ' ' ); - wmove( w, robot.pos ); + wmove( w, robot.y, robot.x ); draw_robot( w ); - rfkscreen[old_pos.x][old_pos.y] = EMPTY; - rfkscreen[robot.pos.x][robot.pos.y] = ROBOT; - old_pos = robot.pos; + rfkscreen[old_x][old_y] = EMPTY; + rfkscreen[robot.x][robot.y] = ROBOT; + old_x = robot.x; + old_y = robot.y; } wrefresh( w ); // TODO: use input context / rewrite loop so this is only called at one place @@ -379,20 +384,21 @@ void robot_finds_kitten::process_input( int input, const catacurses::window &w ) ts.tv_sec = 1; ts.tv_nsec = 0; - point check = robot.pos; + int check_x = robot.x; + int check_y = robot.y; switch( input ) { case KEY_UP: /* up */ - check.y--; + check_y--; break; case KEY_DOWN: /* down */ - check.y++; + check_y++; break; case KEY_LEFT: /* left */ - check.x--; + check_x--; break; case KEY_RIGHT: /* right */ - check.x++; + check_x++; break; case 0: break; @@ -406,13 +412,12 @@ void robot_finds_kitten::process_input( int input, const catacurses::window &w ) } } - constexpr rectangle bounds( point( 0, 3 ), point( rfkCOLS, rfkLINES ) ); - if( !bounds.contains_half_open( check ) ) { + if( check_y < 3 || check_y > rfkLINES - 1 || check_x < 0 || check_x > rfkCOLS - 1 ) { return; } - if( rfkscreen[check.x][check.y] != EMPTY ) { - switch( rfkscreen[check.x][check.y] ) { + if( rfkscreen[check_x][check_y] != EMPTY ) { + switch( rfkscreen[check_x][check_y] ) { case ROBOT: /* We didn't move. */ break; @@ -424,17 +429,17 @@ void robot_finds_kitten::process_input( int input, const catacurses::window &w ) /* The grand cinema scene. */ for( int c = 0; c <= 3; c++ ) { - wmove( w, point( rfkCOLS / 2 - 5 + c, 1 ) ); + wmove( w, 1, ( rfkCOLS / 2 ) - 5 + c ); wputch( w, c_white, ' ' ); - wmove( w, point( rfkCOLS / 2 + 4 - c, 1 ) ); + wmove( w, 1, ( rfkCOLS / 2 ) + 4 - c ); wputch( w, c_white, ' ' ); - wmove( w, point( rfkCOLS / 2 - 4 + c, 1 ) ); + wmove( w, 1, ( rfkCOLS / 2 ) - 4 + c ); if( input == KEY_LEFT || input == KEY_UP ) { draw_kitten( w ); } else { draw_robot( w ); } - wmove( w, point( rfkCOLS / 2 + 3 - c, 1 ) ); + wmove( w, 1, ( rfkCOLS / 2 ) + 3 - c ); if( input == KEY_LEFT || input == KEY_UP ) { draw_robot( w ); } else { @@ -446,7 +451,7 @@ void robot_finds_kitten::process_input( int input, const catacurses::window &w ) } /* They're in love! */ - mvwprintz( w, 0, ( rfkCOLS - 6 ) / 2 - 1, c_light_red, "<3<3<3" ); + mvwprintz( w, 0, ( ( rfkCOLS - 6 ) / 2 ) - 1, c_light_red, "<3<3<3" ); wrefresh( w ); refresh_display(); nanosleep( &ts, nullptr ); @@ -468,19 +473,20 @@ void robot_finds_kitten::process_input( int input, const catacurses::window &w ) mvwputch( w, 1, c, c_white, ' ' ); } std::vector bogusvstr = foldstring( getmessage( - bogus_messages[rfkscreen[check.x][check.y] - 2] ), rfkCOLS ); + 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] ); + mvwprintw( w, c, 0, bogusvstr[c] ); } wrefresh( w ); } break; } - wmove( w, point( 0, 2 ) ); + wmove( w, 2, 0 ); return; } /* Otherwise, move the robot. */ - robot.pos = check; + robot.x = check_x; + robot.y = check_y; } void robot_finds_kitten::draw_robot( const catacurses::window diff --git a/src/iuse_software_kitten.h b/src/iuse_software_kitten.h index 2052f542b3dbb..c38a990b3a677 100644 --- a/src/iuse_software_kitten.h +++ b/src/iuse_software_kitten.h @@ -5,7 +5,6 @@ #include #include "color.h" -#include "point.h" namespace catacurses { @@ -13,7 +12,8 @@ class window; } // namespace catacurses struct kobject { - point pos; + int x; + int y; nc_color color; int character; }; @@ -34,11 +34,11 @@ class robot_finds_kitten kobject kitten; kobject empty; kobject bogus[MAXMESSAGES]; - static constexpr int rfkLINES = 20; - static constexpr int rfkCOLS = 60; - int rfkscreen[rfkCOLS][rfkLINES]; + int rfkscreen[60][20]; int nummessages; int bogus_messages[MAXMESSAGES]; + int rfkLINES; + int rfkCOLS; }; #endif diff --git a/src/iuse_software_lightson.cpp b/src/iuse_software_lightson.cpp index 12d581396bff7..4d9a30ee36fb5 100644 --- a/src/iuse_software_lightson.cpp +++ b/src/iuse_software_lightson.cpp @@ -52,7 +52,7 @@ void lightson_game::draw_level() { for( int i = 0; i < level_size.first; i++ ) { for( int j = 0; j < level_size.second; j++ ) { - bool selected = position.first == i && position.second == j; + bool selected = ( position.first == i && position.second == j ); bool on = level[i * level_size.second + j]; const nc_color fg = on ? c_white : c_dark_gray; const char symbol = on ? '#' : '-'; @@ -115,10 +115,10 @@ void lightson_game::toggle_lights() 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 ) ); + 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, iOffsetY, iOffsetX ); + w = catacurses::newwin( w_height - 6, FULL_SCREEN_WIDTH - 2, iOffsetY + 1, iOffsetX + 1 ); draw_border( w_border ); input_context ctxt( "LIGHTSON" ); diff --git a/src/iuse_software_minesweeper.cpp b/src/iuse_software_minesweeper.cpp index 06ea479f3407d..802f8a5704a6d 100644 --- a/src/iuse_software_minesweeper.cpp +++ b/src/iuse_software_minesweeper.cpp @@ -99,8 +99,8 @@ void minesweeper_game::new_level( const catacurses::window &w_minesweeper ) break; } - iOffsetX = ( iMaxX - iLevelX ) / 2 + 1; - iOffsetY = ( iMaxY - iLevelY ) / 2 + 1; + iOffsetX = ( ( iMaxX - iLevelX ) / 2 ) + 1; + iOffsetY = ( ( iMaxY - iLevelY ) / 2 ) + 1; int iRandX; int iRandY; @@ -155,13 +155,13 @@ 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; + 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 ) ); + iCenterY, iCenterX ); catacurses::window w_minesweeper = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, - FULL_SCREEN_WIDTH - 2, point( iCenterX + 1, iCenterY + 1 ) ); + FULL_SCREEN_WIDTH - 2, iCenterY + 1, iCenterX + 1 ); draw_border( w_minesweeper_border ); @@ -233,7 +233,7 @@ int minesweeper_game::start_game() } else { mvwputch( w_minesweeper, iOffsetY + y, iOffsetX + x, - x == iPlayerX && y == iPlayerY ? hilite( aColors[mLevel[y][x]] ) : aColors[mLevel[y][x]], + ( x == iPlayerX && y == iPlayerY ) ? hilite( aColors[mLevel[y][x]] ) : aColors[mLevel[y][x]], to_string( mLevel[y][x] ) ); } } @@ -285,7 +285,7 @@ int minesweeper_game::start_game() } mvwputch( w_minesweeper, iOffsetY + iPlayerY, iOffsetX + iPlayerX, - i == 0 ? cColor : hilite( cColor ), sGlyph ); + ( i == 0 ) ? cColor : hilite( cColor ), sGlyph ); if( i == 0 ) { iPlayerX += vec->x; @@ -309,7 +309,7 @@ int minesweeper_game::start_game() for( int x = 0; x < iLevelX; x++ ) { if( mLevel[y][x] == static_cast( bomb ) ) { mvwputch( w_minesweeper, iOffsetY + y, iOffsetX + x, hilite( c_red ), - mLevelReveal[y][x] == flag ? "!" : "*" ); + ( mLevelReveal[y][x] == flag ) ? "!" : "*" ); } } } diff --git a/src/iuse_software_snake.cpp b/src/iuse_software_snake.cpp index fd2db0ccf2ef2..bb74998b71a5d 100644 --- a/src/iuse_software_snake.cpp +++ b/src/iuse_software_snake.cpp @@ -58,18 +58,18 @@ void snake_game::snake_over( const catacurses::window &w_snake, int iScore ) mvwputch( w_snake, body_length + 2, 71, c_green, 'v' ); std::vector game_over_text; - game_over_text.push_back( R"( ________ _____ _____ ___________)" ); - game_over_text.push_back( R"( / _____/ / _ \ / \ \_ _____/)" ); - game_over_text.push_back( R"(/ \ ___ / /_\ \ / \ / \ | __)_ )" ); - game_over_text.push_back( R"(\ \_\ \/ | \/ Y \ | \)" ); - game_over_text.push_back( R"( \______ /\____|__ /\____|__ //_______ /)" ); - game_over_text.push_back( R"( \/ \/ \/ \/ )" ); - game_over_text.push_back( R"( ________ ____ _________________________ )" ); - game_over_text.push_back( R"( \_____ \\ \ / /\_ _____/\______ \ )" ); - game_over_text.push_back( R"( / | \\ Y / | __)_ | _/ )" ); - game_over_text.push_back( R"( / | \\ / | \ | | \ )" ); - game_over_text.push_back( R"( \_______ / \___/ /_______ / |____|_ / )" ); - game_over_text.push_back( R"( \/ \/ \/ )" ); + game_over_text.push_back( " ________ _____ _____ ___________ " ); + game_over_text.push_back( " / _____/ / _ \\ / \\ \\_ _____/ " ); + game_over_text.push_back( "/ \\ ___ / /_\\ \\ / \\ / \\ | __)_ " ); + game_over_text.push_back( "\\ \\_\\ \\/ | \\/ Y \\ | \\" ); + game_over_text.push_back( " \\______ /\\____|__ /\\____|__ //_______ / " ); + game_over_text.push_back( " \\/ \\/ \\/ \\/ " ); + game_over_text.push_back( " ________ ____ _________________________ " ); + game_over_text.push_back( " \\_____ \\\\ \\ / /\\_ _____/\\______ \\ " ); + game_over_text.push_back( " / | \\\\ Y / | __)_ | _/ " ); + game_over_text.push_back( " / | \\\\ / | \\ | | \\ " ); + game_over_text.push_back( " \\_______ / \\___/ /_______ / |____|_ / " ); + game_over_text.push_back( " \\/ \\/ \\/ " ); for( size_t i = 0; i < game_over_text.size(); i++ ) { mvwprintz( w_snake, i + 3, 17, c_light_red, game_over_text[i] ); @@ -90,7 +90,7 @@ int snake_game::start_game() 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 ) ); + iOffsetY, iOffsetX ); print_header( w_snake ); //Snake start position diff --git a/src/iuse_software_sokoban.cpp b/src/iuse_software_sokoban.cpp index 2b0917f68bb51..3cd20acd3f305 100644 --- a/src/iuse_software_sokoban.cpp +++ b/src/iuse_software_sokoban.cpp @@ -186,12 +186,12 @@ void sokoban_game::draw_level( const catacurses::window &w_sokoban ) const int iOffsetY = ( FULL_SCREEN_HEIGHT - 2 - mLevelInfo[iCurrentLevel]["MaxLevelY"] ) / 2; for( auto &elem : mLevel ) { - for( std::map::iterator iterX = elem.second.begin(); - iterX != elem.second.end(); ++iterX ) { + for( std::map::iterator iterX = ( elem.second ).begin(); + iterX != ( elem.second ).end(); ++iterX ) { std::string sTile = iterX->second; if( sTile == "#" ) { - mvwputch( w_sokoban, iOffsetY + elem.first, iOffsetX + iterX->first, + mvwputch( w_sokoban, iOffsetY + ( elem.first ), iOffsetX + ( iterX->first ), c_white, get_wall_connection( elem.first, iterX->first ) ); } else { @@ -213,7 +213,7 @@ void sokoban_game::draw_level( const catacurses::window &w_sokoban ) sTile = "@"; } - mvwprintz( w_sokoban, iOffsetY + elem.first, iOffsetX + iterX->first, cCol, sTile ); + mvwprintz( w_sokoban, iOffsetY + ( elem.first ), iOffsetX + ( iterX->first ), cCol, sTile ); } } } @@ -238,14 +238,14 @@ 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; + 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( FILENAMES["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 ) ); + iOffsetY, iOffsetX ); draw_border( w_sokoban, BORDER_COLOR, _( "Sokoban" ), hilite( c_white ) ); input_context ctxt( "SOKOBAN" ); ctxt.register_cardinal(); @@ -324,7 +324,7 @@ int sokoban_game::start_game() //undo move if( !vUndo.empty() ) { //reset last player pos - mLevel[iPlayerY][iPlayerX] = mLevel[iPlayerY][iPlayerX] == "+" ? "." : " "; + mLevel[iPlayerY][iPlayerX] = ( mLevel[iPlayerY][iPlayerX] == "+" ) ? "." : " "; iPlayerYNew = vUndo[vUndo.size() - 1].iOldY; iPlayerXNew = vUndo[vUndo.size() - 1].iOldX; mLevel[iPlayerYNew][iPlayerXNew] = vUndo[vUndo.size() - 1].sTileOld; @@ -340,8 +340,8 @@ int sokoban_game::start_game() if( vUndo[vUndo.size() - 1].sTileOld == "$" || vUndo[vUndo.size() - 1].sTileOld == "*" ) { - mLevel[iPlayerY][iPlayerX] = mLevel[iPlayerY][iPlayerX] == "." ? "*" : "$"; - mLevel[iPlayerY + iDirY][iPlayerX + iDirX] = mLevel[iPlayerY + iDirY][iPlayerX + iDirX] == "*" ? + mLevel[iPlayerY][iPlayerX] = ( mLevel[iPlayerY][iPlayerX] == "." ) ? "*" : "$"; + mLevel[iPlayerY + iDirY][iPlayerX + iDirX] = ( mLevel[iPlayerY + iDirY][iPlayerX + iDirX] == "*" ) ? "." : " "; vUndo.pop_back(); @@ -381,11 +381,11 @@ int sokoban_game::start_game() if( sMoveTo != "#" ) { if( sMoveTo == "$" || sMoveTo == "*" ) { //Check if we can move the package - std::string sMovePackTo = mLevel[iPlayerY + iDirY * 2][iPlayerX + iDirX * 2]; + std::string sMovePackTo = mLevel[iPlayerY + ( iDirY * 2 )][iPlayerX + ( iDirX * 2 )]; if( sMovePackTo == "." || sMovePackTo == " " ) { //move both bMovePlayer = true; - mLevel[iPlayerY + iDirY * 2][iPlayerX + iDirX * 2] = sMovePackTo == "." ? "*" : "$"; + mLevel[iPlayerY + ( iDirY * 2 )][iPlayerX + ( iDirX * 2 )] = ( sMovePackTo == "." ) ? "*" : "$"; vUndo.push_back( cUndo( iDirY, iDirX, sMoveTo ) ); @@ -399,8 +399,8 @@ int sokoban_game::start_game() //move player vUndo.push_back( cUndo( iPlayerY, iPlayerX, mLevel[iPlayerY][iPlayerX] ) ); - mLevel[iPlayerY][iPlayerX] = mLevel[iPlayerY][iPlayerX] == "+" ? "." : " "; - mLevel[iPlayerY + iDirY][iPlayerX + iDirX] = sMoveTo == "." || sMoveTo == "*" ? "+" : "@"; + mLevel[iPlayerY][iPlayerX] = ( mLevel[iPlayerY][iPlayerX] == "+" ) ? "." : " "; + mLevel[iPlayerY + iDirY][iPlayerX + iDirX] = ( sMoveTo == "." || sMoveTo == "*" ) ? "+" : "@"; iPlayerY += iDirY; iPlayerX += iDirX; diff --git a/src/json.cpp b/src/json.cpp index cdf65e13b1782..698078d565b86 100644 --- a/src/json.cpp +++ b/src/json.cpp @@ -329,7 +329,10 @@ bool JsonObject::has_null( const std::string &name ) return false; } jsin->seek( pos ); - return jsin->test_null(); + if( jsin->test_null() ) { + return true; + } + return false; } bool JsonObject::has_bool( const std::string &name ) @@ -339,7 +342,10 @@ bool JsonObject::has_bool( const std::string &name ) return false; } jsin->seek( pos ); - return jsin->test_bool(); + if( jsin->test_bool() ) { + return true; + } + return false; } bool JsonObject::has_number( const std::string &name ) @@ -349,7 +355,10 @@ bool JsonObject::has_number( const std::string &name ) return false; } jsin->seek( pos ); - return jsin->test_number(); + if( jsin->test_number() ) { + return true; + } + return false; } bool JsonObject::has_string( const std::string &name ) @@ -359,7 +368,10 @@ bool JsonObject::has_string( const std::string &name ) return false; } jsin->seek( pos ); - return jsin->test_string(); + if( jsin->test_string() ) { + return true; + } + return false; } bool JsonObject::has_array( const std::string &name ) @@ -369,7 +381,10 @@ bool JsonObject::has_array( const std::string &name ) return false; } jsin->seek( pos ); - return jsin->test_array(); + if( jsin->test_array() ) { + return true; + } + return false; } bool JsonObject::has_object( const std::string &name ) @@ -379,7 +394,10 @@ bool JsonObject::has_object( const std::string &name ) return false; } jsin->seek( pos ); - return jsin->test_object(); + if( jsin->test_object() ) { + return true; + } + return false; } /* class JsonArray @@ -855,7 +873,7 @@ void JsonIn::skip_true() stream->get( text, 5 ); if( strcmp( text, "true" ) != 0 ) { std::stringstream err; - err << R"(expected "true", but found ")" << text << "\""; + err << "expected \"true\", but found \"" << text << "\""; error( err.str(), -4 ); } end_value(); @@ -868,7 +886,7 @@ void JsonIn::skip_false() stream->get( text, 6 ); if( strcmp( text, "false" ) != 0 ) { std::stringstream err; - err << R"(expected "false", but found ")" << text << "\""; + err << "expected \"false\", but found \"" << text << "\""; error( err.str(), -5 ); } end_value(); @@ -881,7 +899,7 @@ void JsonIn::skip_null() stream->get( text, 5 ); if( strcmp( text, "null" ) != 0 ) { std::stringstream err; - err << R"(expected "null", but found ")" << text << "\""; + err << "expected \"null\", but found \"" << text << "\""; error( err.str(), -4 ); } end_value(); @@ -1080,7 +1098,7 @@ bool JsonIn::get_bool() end_value(); return true; } else { - err << R"(not a boolean. expected "true", but got ")"; + err << "not a boolean. expected \"true\", but got \""; err << ch << text << "\""; error( err.str(), -4 ); } @@ -1090,7 +1108,7 @@ bool JsonIn::get_bool() end_value(); return false; } else { - err << R"(not a boolean. expected "false", but got ")"; + err << "not a boolean. expected \"false\", but got \""; err << ch << text << "\""; error( err.str(), -5 ); } @@ -1178,45 +1196,66 @@ bool JsonIn::end_object() bool JsonIn::test_null() { eat_whitespace(); - return peek() == 'n'; + if( peek() == 'n' ) { + return true; + } + return false; } bool JsonIn::test_bool() { eat_whitespace(); const char ch = peek(); - return ch == 't' || ch == 'f'; + if( ch == 't' || ch == 'f' ) { + return true; + } + return false; } bool JsonIn::test_number() { eat_whitespace(); const char ch = peek(); - return ch == '-' || ch == '+' || ch == '.' || ( ch >= '0' && ch <= '9' ); + if( ch != '-' && ch != '+' && ch != '.' && ( ch < '0' || ch > '9' ) ) { + return false; + } + return true; } bool JsonIn::test_string() { eat_whitespace(); - return peek() == '"'; + if( peek() == '"' ) { + return true; + } + return false; } bool JsonIn::test_bitset() { eat_whitespace(); - return peek() == '"'; + if( peek() == '"' ) { + return true; + } + return false; } bool JsonIn::test_array() { eat_whitespace(); - return peek() == '['; + if( peek() == '[' ) { + return true; + } + return false; } bool JsonIn::test_object() { eat_whitespace(); - return peek() == '{'; + if( peek() == '{' ) { + return true; + } + return false; } /* non-fatal value setting by reference */ diff --git a/src/json.h b/src/json.h index 3d5846b655e6e..67d37d478a4d4 100644 --- a/src/json.h +++ b/src/json.h @@ -70,7 +70,7 @@ class InvalidEnumString : public std::runtime_error template E string_to_enum( const std::string &data ); template -std::string enum_to_string( E data ); +const std::string enum_to_string( E data ); // Helper function to do the lookup in a container (map or unordered_map) template @@ -691,7 +691,7 @@ class JsonObject public: JsonObject( JsonIn &jsin ); JsonObject( const JsonObject &jsobj ); - JsonObject() : start( 0 ), end( 0 ), jsin( nullptr ) {} + JsonObject() : start( 0 ), end( 0 ), jsin( NULL ) {} ~JsonObject() { finish(); } @@ -863,7 +863,7 @@ class JsonArray public: JsonArray( JsonIn &jsin ); JsonArray( const JsonArray &jsarr ); - JsonArray() : start( 0 ), index( 0 ), end( 0 ), jsin( nullptr ) {} + JsonArray() : start( 0 ), index( 0 ), end( 0 ), jsin( NULL ) {} ~JsonArray() { finish(); } diff --git a/src/lightmap.cpp b/src/lightmap.cpp index 2440b2bb2b2f0..cea2d08ca1f69 100644 --- a/src/lightmap.cpp +++ b/src/lightmap.cpp @@ -204,7 +204,7 @@ void map::build_sunlight_cache( int zlev ) // Replace this with a calculated shift based on time of day and date. // At first compress the angle such that it takes no more than one tile of shift per level. // To exceed that, we'll have to handle casting light from the side instead of the top. - point offset; + point offset( 0, 0 ); const level_cache &prev_map_cache = get_cache_ref( zlev + 1 ); const auto &prev_lm = prev_map_cache.lm; const auto &prev_transparency_cache = prev_map_cache.transparency_cache; @@ -212,9 +212,9 @@ void map::build_sunlight_cache( int zlev ) const auto &outside_cache = map_cache.outside_cache; const float sight_penalty = weather::sight_penalty( g->weather.weather ); for( int x = 0, prev_x = offset.x; x < MAPSIZE_X; x++, prev_x++ ) { - bool x_inbounds = prev_x >= 0 && prev_x < MAPSIZE_X; + bool x_inbounds = ( prev_x < 0 || prev_x >= MAPSIZE_X ) ? false : true; for( int y = 0, prev_y = offset.y; y < MAPSIZE_Y; y++, prev_y++ ) { - bool inbounds = x_inbounds && prev_y >= 0 && prev_y < MAPSIZE_Y; + bool inbounds = ( !x_inbounds || prev_y < 0 || prev_y >= MAPSIZE_Y ) ? false : true; four_quadrants prev_light( outside_light_level ); float prev_transparency = static_cast( LIGHT_TRANSPARENCY_OPEN_AIR ); if( inbounds ) { @@ -528,14 +528,14 @@ map::apparent_light_info map::apparent_light_helper( const level_cache &map_cach std::array quadrants; }; static constexpr std::array adjacent_offsets = {{ - { point_south, {{ quadrant::SE, quadrant::SW }} }, - { point_north, {{ quadrant::NE, quadrant::NW }} }, - { point_east, {{ quadrant::SE, quadrant::NE }} }, - { point_south_east, {{ quadrant::SE, quadrant::SE }} }, - { point_north_east, {{ quadrant::NE, quadrant::NE }} }, - { point_west, {{ quadrant::SW, quadrant::NW }} }, - { point_south_west, {{ quadrant::SW, quadrant::SW }} }, - { point_north_west, {{ quadrant::NW, quadrant::NW }} }, + { { 0, 1 }, {{ quadrant::SE, quadrant::SW }} }, + { { 0, -1 }, {{ quadrant::NE, quadrant::NW }} }, + { { 1, 0 }, {{ quadrant::SE, quadrant::NE }} }, + { { 1, 1 }, {{ quadrant::SE, quadrant::SE }} }, + { { 1, -1 }, {{ quadrant::NE, quadrant::NE }} }, + { {-1, 0 }, {{ quadrant::SW, quadrant::NW }} }, + { {-1, 1 }, {{ quadrant::SW, quadrant::SW }} }, + { {-1, -1 }, {{ quadrant::NW, quadrant::NW }} }, } }; @@ -700,8 +700,9 @@ void cast_zlight_segment( float new_start_minor = 1.0f; T last_intensity = 0.0; - tripoint delta; - tripoint current; + static constexpr tripoint origin( 0, 0, 0 ); + tripoint delta( 0, 0, 0 ); + tripoint current( 0, 0, 0 ); for( int distance = row; distance <= radius; distance++ ) { delta.y = distance; bool started_block = false; @@ -758,7 +759,7 @@ void cast_zlight_segment( current_transparency = new_transparency; } - const int dist = rl_dist( tripoint_zero, delta ) + offset_distance; + const int dist = rl_dist( origin, delta ) + offset_distance; last_intensity = calc( numerator, cumulative_transparency, dist ); if( !floor_block ) { @@ -964,7 +965,8 @@ void castLight( Out( &output_cache )[MAPSIZE_X][MAPSIZE_Y], return; } T last_intensity = 0.0; - tripoint delta; + static constexpr tripoint origin( 0, 0, 0 ); + tripoint delta( 0, 0, 0 ); for( int distance = row; distance <= radius; distance++ ) { delta.y = -distance; bool started_row = false; @@ -993,7 +995,7 @@ void castLight( Out( &output_cache )[MAPSIZE_X][MAPSIZE_Y], current_transparency = input_array[ currentX ][ currentY ]; } - const int dist = rl_dist( tripoint_zero, delta ) + offsetDistance; + const int dist = rl_dist( origin, delta ) + offsetDistance; last_intensity = calc( numerator, cumulative_transparency, dist ); T new_transparency = input_array[ currentX ][ currentY ]; diff --git a/src/line.cpp b/src/line.cpp index 86b820c643d67..a011fbbe2c583 100644 --- a/src/line.cpp +++ b/src/line.cpp @@ -242,11 +242,6 @@ float trig_dist( const int x1, const int y1, const int x2, const int y2 ) return trig_dist( tripoint( x1, y1, 0 ), tripoint( x2, y2, 0 ) ); } -float trig_dist( const point &loc1, const point &loc2 ) -{ - return trig_dist( tripoint( loc1, 0 ), tripoint( loc2, 0 ) ); -} - float trig_dist( const tripoint &loc1, const tripoint &loc2 ) { return sqrt( static_cast( ( loc1.x - loc2.x ) * ( loc1.x - loc2.x ) ) + @@ -282,7 +277,7 @@ int rl_dist( const int x1, const int y1, const int x2, const int y2 ) int rl_dist( const point &a, const point &b ) { - return rl_dist( tripoint( a, 0 ), tripoint( b, 0 ) ); + return rl_dist( tripoint( a.x, a.y, 0 ), tripoint( b.x, b.y, 0 ) ); } int rl_dist( const tripoint &loc1, const tripoint &loc2 ) @@ -295,18 +290,9 @@ int rl_dist( const tripoint &loc1, const tripoint &loc2 ) int manhattan_dist( const point &loc1, const point &loc2 ) { - const point d = abs( loc1 - loc2 ); - return d.x + d.y; -} - -double atan2( const point &p ) -{ - return atan2( static_cast( p.y ), static_cast( p.x ) ); -} - -double atan2_degrees( const point &p ) -{ - return atan2( p ) * 180.0 / M_PI; + const int dx = abs( loc1.x - loc2.x ); + const int dy = abs( loc1.y - loc2.y ); + return dx + dy; } // This more general version of this function gives correct values for larger values. @@ -414,23 +400,23 @@ point direction_XY( const direction dir ) { switch( dir % 9 ) { case NORTHWEST: - return point_north_west; + return point( -1, -1 ); case NORTH: - return point_north; + return point( 0, -1 ); case NORTHEAST: - return point_north_east; + return point( 1, -1 ); case WEST: - return point_west; + return point( -1, 0 ); case CENTER: - return point_zero; + return point( 0, 0 ); case EAST: - return point_east; + return point( 1, 0 ); case SOUTHWEST: - return point_south_west; + return point( -1, 1 ); case SOUTH: - return point_south; + return point( 0, 1 ); case SOUTHEAST: - return point_south_east; + return point( 1, 1 ); } return point_zero; @@ -438,7 +424,7 @@ point direction_XY( const direction dir ) namespace { -std::string direction_name_impl( const direction dir, const bool short_name ) +const std::string direction_name_impl( const direction dir, const bool short_name ) { enum : int { size = 3 * 3 * 3 }; static const auto names = [] { @@ -487,12 +473,12 @@ std::string direction_name_impl( const direction dir, const bool short_name ) } } //namespace -std::string direction_name( const direction dir ) +const std::string direction_name( const direction dir ) { return direction_name_impl( dir, false ); } -std::string direction_name_short( const direction dir ) +const std::string direction_name_short( const direction dir ) { return direction_name_impl( dir, true ); } @@ -520,29 +506,29 @@ std::vector squares_closer_to( const tripoint &from, const tripoint &t const int ax = std::abs( dx ); const int ay = std::abs( dy ); if( dz != 0 ) { - adjacent_closer_squares.push_back( from + tripoint( sgn( dx ), sgn( dy ), sgn( dz ) ) ); + adjacent_closer_squares.push_back( { from.x + sgn( dx ), from.y + sgn( dy ), from.z + sgn( dz ) } ); } if( ax > ay ) { // X dominant. - adjacent_closer_squares.push_back( from + point( sgn( dx ), 0 ) ); - adjacent_closer_squares.push_back( from + point( sgn( dx ), 1 ) ); - adjacent_closer_squares.push_back( from + point( sgn( dx ), -1 ) ); + adjacent_closer_squares.push_back( { from.x + sgn( dx ), from.y, from.z } ); + adjacent_closer_squares.push_back( { from.x + sgn( dx ), from.y + 1, from.z } ); + adjacent_closer_squares.push_back( { from.x + sgn( dx ), from.y - 1, from.z } ); if( dy != 0 ) { - adjacent_closer_squares.push_back( from + point( 0, sgn( dy ) ) ); + adjacent_closer_squares.push_back( { from.x, from.y + sgn( dy ), from.z } ); } } else if( ax < ay ) { // Y dominant. - adjacent_closer_squares.push_back( from + point( 0, sgn( dy ) ) ); - adjacent_closer_squares.push_back( from + point( 1, sgn( dy ) ) ); - adjacent_closer_squares.push_back( from + point( -1, sgn( dy ) ) ); + adjacent_closer_squares.push_back( { from.x, from.y + sgn( dy ), from.z } ); + adjacent_closer_squares.push_back( { from.x + 1, from.y + sgn( dy ), from.z } ); + adjacent_closer_squares.push_back( { from.x - 1, from.y + sgn( dy ), from.z } ); if( dx != 0 ) { - adjacent_closer_squares.push_back( from + point( sgn( dx ), 0 ) ); + adjacent_closer_squares.push_back( { from.x + sgn( dx ), from.y, from.z } ); } } else if( dx != 0 ) { // Pure diagonal. - adjacent_closer_squares.push_back( from + point( sgn( dx ), sgn( dy ) ) ); - adjacent_closer_squares.push_back( from + point( sgn( dx ), 0 ) ); - adjacent_closer_squares.push_back( from + point( 0, sgn( dy ) ) ); + adjacent_closer_squares.push_back( { from.x + sgn( dx ), from.y + sgn( dy ), from.z } ); + adjacent_closer_squares.push_back( { from.x + sgn( dx ), from.y, from.z } ); + adjacent_closer_squares.push_back( { from.x, from.y + sgn( dy ), from.z } ); } return adjacent_closer_squares; diff --git a/src/line.h b/src/line.h index 7cd64ff01f706..146ca980c63b5 100644 --- a/src/line.h +++ b/src/line.h @@ -86,8 +86,8 @@ direction direction_from( int x1, int y1, int x2, int y2 ) noexcept; direction direction_from( const tripoint &p, const tripoint &q ); point direction_XY( direction dir ); -std::string direction_name( direction dir ); -std::string direction_name_short( direction dir ); +const std::string direction_name( direction dir ); +const std::string direction_name_short( direction dir ); /* Get suffix describing vector from p to q (e.g. 1NW, 2SE) or empty string if p == q */ std::string direction_suffix( const tripoint &p, const tripoint &q ); @@ -110,7 +110,6 @@ std::vector line_to( const point &p1, const point &p2, int t = 0 ); std::vector line_to( const tripoint &loc1, const tripoint &loc2, int t = 0, int t2 = 0 ); // sqrt(dX^2 + dY^2) float trig_dist( int x1, int y1, int x2, int y2 ); -float trig_dist( const point &loc1, const point &loc2 ); float trig_dist( const tripoint &loc1, const tripoint &loc2 ); // Roguelike distance; minimum of dX and dY int square_dist( int x1, int y1, int x2, int y2 ); @@ -121,11 +120,6 @@ int rl_dist( const tripoint &loc1, const tripoint &loc2 ); int rl_dist( const point &a, const point &b ); // Sum of distance in both axes int manhattan_dist( const point &loc1, const point &loc2 ); - -// get angle of direction represented by point (in radians or degrees) -double atan2( const point & ); -double atan2_degrees( const point & ); - // Get the magnitude of the slope ranging from 0.0 to 1.0 float get_normalized_angle( const point &start, const point &end ); std::vector continue_line( const std::vector &line, int distance ); diff --git a/src/list.h b/src/list.h index 451578914fc9a..3672bd1ce5010 100644 --- a/src/list.h +++ b/src/list.h @@ -116,6 +116,7 @@ template ::value ) { std::memset( static_cast( this ), 0, sizeof( group_vector ) ); } else { - last_endpoint_group = nullptr; - block_pointer = nullptr; - last_searched_group = nullptr; + last_endpoint_group = NULL; + block_pointer = NULL; + last_searched_group = NULL; size = 0; element_allocator_pair.capacity = 0; group_allocator_pair.capacity = 0; @@ -268,7 +269,7 @@ template nodes; current_node != end; ++current_node ) { if LIST_CONSTEXPR( !std::is_trivially_destructible::value ) { - if( current_node->next != nullptr ) { // ie. is not part of free list + if( current_node->next != NULL ) { // ie. is not part of free list LIST_DESTROY( element_allocator_type, element_allocator_pair, &( current_node->element ) ); } } @@ -323,7 +324,7 @@ template free_list_head = nullptr; + current_group->free_list_head = NULL; current_group->number_of_elements = 0; } @@ -335,7 +336,7 @@ template nodes; current_node != last_endpoint_node; ++current_node ) { if LIST_CONSTEXPR( !std::is_trivially_destructible::value ) { - if( current_node->next != nullptr ) { + if( current_node->next != NULL ) { // is not part of free list ie. element has not already had it's destructor called LIST_DESTROY( element_allocator_type, element_allocator_pair, &( current_node->element ) ); } @@ -361,14 +362,14 @@ template free_list_head = nullptr; + last_endpoint_group->free_list_head = NULL; last_endpoint_group->number_of_elements = 0; last_searched_group = last_endpoint_group = block_pointer; } void expand_capacity( const size_type new_capacity ) { // used by add_new and append group_pointer_type const old_block = block_pointer; - block_pointer = LIST_ALLOCATE( group_allocator_type, group_allocator_pair, new_capacity, nullptr ); + block_pointer = LIST_ALLOCATE( group_allocator_type, group_allocator_pair, new_capacity, 0 ); if LIST_CONSTEXPR( std::is_trivially_copyable::value && std::is_trivially_destructible::value ) { @@ -387,8 +388,8 @@ template nodes = nullptr; - current_group->beyond_end = nullptr; + current_group->nodes = NULL; + current_group->beyond_end = NULL; LIST_DESTROY( group_allocator_type, group_allocator_pair, current_group ); } } @@ -418,7 +419,7 @@ template nodes = nullptr; - back->beyond_end = nullptr; + back->nodes = NULL; + back->beyond_end = NULL; LIST_DESTROY( group_allocator_type, group_allocator_pair, back ); } } @@ -459,7 +460,7 @@ template ::value && std::is_trivially_destructible::value ) { @@ -485,7 +486,7 @@ template nodes = nullptr; + temp_group->nodes = NULL; LIST_DESTROY( group_allocator_type, group_allocator_pair, temp_group ); } @@ -496,36 +497,36 @@ template = block_pointer ); + // ie. location is within last_search_group if( location_node >= last_searched_group->nodes && location_node < last_searched_group->beyond_end ) { // if last_searched_group has previously-erased nodes - if( last_searched_group->free_list_head != nullptr ) { + if( last_searched_group->free_list_head != NULL ) { return last_searched_group; } } else { // search for the node group which location_node is located within, using last_searched_group as a starting point and searching left and right. Try and find the closest node group with reusable erased-element locations along the way: - group_pointer_type closest_freelist_left = ( last_searched_group->free_list_head == nullptr ) ? - nullptr : - last_searched_group, closest_freelist_right = ( last_searched_group->free_list_head == nullptr ) ? - nullptr : last_searched_group; + group_pointer_type closest_freelist_left = ( last_searched_group->free_list_head == NULL ) ? NULL : + last_searched_group, closest_freelist_right = ( last_searched_group->free_list_head == NULL ) ? + NULL : last_searched_group; while( true ) { if( right_not_beyond_back ) { // location_node's group is found if( ( location_node < right->beyond_end ) && ( location_node >= right->nodes ) ) { // group has erased nodes, reuse them: - if( right->free_list_head != nullptr ) { + if( right->free_list_head != NULL ) { last_searched_group = right; return right; } difference_type left_distance; - if( closest_freelist_right != nullptr ) { + if( closest_freelist_right != NULL ) { last_searched_group = right; left_distance = right - closest_freelist_right; @@ -539,17 +540,18 @@ template beyond_end_group ) ? beyond_end_group : ( right + left_distance - 1 ) ); while( ++right != end_group ) { - if( right->free_list_head != nullptr ) { + if( right->free_list_head != NULL ) { return right; } } - if( freelist_group != nullptr ) { + if( freelist_group != NULL ) { return freelist_group; } @@ -558,8 +560,8 @@ template free_list_head != nullptr ) { - if( ( closest_freelist_right == nullptr ) & ( closest_freelist_left == nullptr ) ) { + if( right->free_list_head != NULL ) { + if( ( closest_freelist_right == NULL ) & ( closest_freelist_left == NULL ) ) { closest_freelist_left = right; } @@ -571,14 +573,14 @@ template = left->nodes ) && ( location_node < left->beyond_end ) ) { - if( left->free_list_head != nullptr ) { + if( left->free_list_head != NULL ) { last_searched_group = left; return left; } difference_type right_distance; - if( closest_freelist_left != nullptr ) { + if( closest_freelist_left != NULL ) { last_searched_group = left; right_distance = closest_freelist_left - left; @@ -597,12 +599,12 @@ template free_list_head != nullptr ) { + if( left->free_list_head != NULL ) { return left; } } - if( freelist_group != nullptr ) { + if( freelist_group != NULL ) { return freelist_group; } @@ -610,8 +612,8 @@ template free_list_head != nullptr ) { - if( ( closest_freelist_left == nullptr ) & ( closest_freelist_right == nullptr ) ) { + if( left->free_list_head != NULL ) { + if( ( closest_freelist_left == NULL ) & ( closest_freelist_right == NULL ) ) { closest_freelist_right = left; } @@ -626,7 +628,7 @@ template free_list_head != nullptr ) { + if( right->free_list_head != NULL ) { return right; } @@ -634,7 +636,7 @@ template free_list_head != nullptr ) { + if( left->free_list_head != NULL ) { return left; } @@ -711,8 +713,8 @@ template nodes = nullptr; - current_group->beyond_end = nullptr; + current_group->nodes = NULL; + current_group->beyond_end = NULL; LIST_DESTROY( group_allocator_type, source.group_allocator_pair, current_group ); } } @@ -782,7 +784,7 @@ template next; return *this; } @@ -794,7 +796,7 @@ template previous; return *this; } @@ -815,7 +817,7 @@ template previous; return *this; } @@ -898,7 +900,7 @@ template next; return *this; } @@ -920,7 +922,7 @@ template ( &end_node ), reinterpret_cast( &end_node ) ), - last_endpoint( nullptr ), + last_endpoint( NULL ), end_iterator( reinterpret_cast( &end_node ) ), begin_iterator( reinterpret_cast( &end_node ) ), node_pointer_allocator_pair( 0 ), @@ -1011,7 +1013,7 @@ template ( &end_node ), reinterpret_cast( &end_node ) ), - last_endpoint( nullptr ), + last_endpoint( NULL ), end_iterator( reinterpret_cast( &end_node ) ), begin_iterator( reinterpret_cast( &end_node ) ), node_pointer_allocator_pair( 0 ), @@ -1025,7 +1027,7 @@ template ( &end_node ), reinterpret_cast( &end_node ) ), - last_endpoint( nullptr ), + last_endpoint( NULL ), end_iterator( reinterpret_cast( &end_node ) ), begin_iterator( reinterpret_cast( &end_node ) ), node_pointer_allocator_pair( 0 ), @@ -1072,7 +1074,7 @@ template ( &end_node ), reinterpret_cast( &end_node ) ), - last_endpoint( nullptr ), + last_endpoint( NULL ), end_iterator( reinterpret_cast( &end_node ) ), begin_iterator( reinterpret_cast( &end_node ) ), node_pointer_allocator_pair( 0 ), @@ -1089,7 +1091,7 @@ template ( &end_node ), reinterpret_cast( &end_node ) ), - last_endpoint( nullptr ), + last_endpoint( NULL ), end_iterator( reinterpret_cast( &end_node ) ), begin_iterator( reinterpret_cast( &end_node ) ), node_pointer_allocator_pair( 0 ), @@ -1103,7 +1105,7 @@ template ( &end_node ), reinterpret_cast( &end_node ) ), - last_endpoint( nullptr ), + last_endpoint( NULL ), end_iterator( reinterpret_cast( &end_node ) ), begin_iterator( reinterpret_cast( &end_node ) ), node_pointer_allocator_pair( 0 ), @@ -1177,7 +1179,7 @@ template ( &end_node ); end_node.previous = reinterpret_cast( &end_node ); begin_iterator.node_pointer = end_iterator.node_pointer; @@ -1209,7 +1211,7 @@ template beyond_end ) { if( static_cast( groups.last_endpoint_group - groups.block_pointer ) == groups.size - @@ -1356,7 +1358,7 @@ template iterator emplace( const iterator it, arguments &&... parameters ) { - if( last_endpoint != nullptr ) { + if( last_endpoint != NULL ) { if( node_allocator_pair.number_of_erased_nodes == 0 ) { if( last_endpoint == groups.last_endpoint_group->beyond_end ) { if( static_cast( groups.last_endpoint_group - groups.block_pointer ) == groups.size - @@ -1447,7 +1449,7 @@ template ( groups.block_pointer->beyond_end - groups.block_pointer->nodes ) < number_of_elements ) && ( static_cast( groups.block_pointer->beyond_end - groups.block_pointer->nodes ) < @@ -1535,7 +1537,7 @@ template LIST_BLOCK_MAX ) { size_type multiples = number_of_elements / LIST_BLOCK_MAX; const group_size_type remainder = static_cast( number_of_elements - @@ -1696,7 +1698,7 @@ template ::value ) ) { @@ -1753,7 +1755,7 @@ template number_of_elements ) != 0 ) { // next == NULL so that destructor can detect the free list item as opposed to non-free-list item - it.node_pointer->next = nullptr; + it.node_pointer->next = NULL; it.node_pointer->previous = node_group->free_list_head; node_group->free_list_head = it.node_pointer; return return_iterator; @@ -1767,7 +1769,7 @@ template beyond_end ); } - node_group->free_list_head = nullptr; + node_group->free_list_head = NULL; // Preserve only last (active) group or second/third-to-last group - seems to be best for performance under high-modification benchmarks if( ( group_size == LIST_BLOCK_MAX ) | ( node_group >= groups.last_endpoint_group - 1 ) ) { @@ -1782,7 +1784,7 @@ template free_list_head = nullptr; + node_group->free_list_head = NULL; if( node_pointer_allocator_pair.total_number_of_elements != 0 ) { node_allocator_pair.number_of_erased_nodes -= static_cast @@ -1926,7 +1928,7 @@ template nodes ) != current_group->number_of_elements ) { // If there are erased nodes present in the group for( node_pointer_type current_node = current_group->nodes; current_node != end; ++current_node ) { - if( current_node->next != nullptr ) { // is not free list node + if( current_node->next != NULL ) { // is not free list node LIST_CONSTRUCT( node_pointer_allocator_type, node_pointer_allocator_pair, node_pointer++, current_node ); } @@ -1954,7 +1956,7 @@ template number_of_elements ) { // If there are erased nodes present in the group for( node_pointer_type current_node = groups.last_endpoint_group->nodes; current_node != last_endpoint; ++current_node ) { - if( current_node->next != nullptr ) { + if( current_node->next != NULL ) { LIST_CONSTRUCT( node_pointer_allocator_type, node_pointer_allocator_pair, node_pointer++, current_node ); } @@ -2032,7 +2034,7 @@ template ( ( groups.block_pointer + groups.size - 1 )->beyond_end - ( groups.block_pointer + groups.size - 1 )->nodes ); @@ -2076,7 +2078,7 @@ template ( ( ( reserve_amount < LIST_BLOCK_MIN ) ? LIST_BLOCK_MIN : reserve_amount ) ) ); @@ -2104,8 +2106,8 @@ template beyond_end - 1; current_node != back_node; --current_node ) { - current_node->next = nullptr; + current_node->next = NULL; current_node->previous = groups.last_endpoint_group->free_list_head; groups.last_endpoint_group->free_list_head = current_node; } @@ -2208,6 +2210,7 @@ template next = source.begin_iterator.node_pointer; source.begin_iterator.node_pointer->previous = begin_iterator.node_pointer; + while( ( current1 != this_end ) & ( current2 != source_end ) ) { previous->next = current1; current1->previous = previous; @@ -2238,7 +2241,7 @@ template beyond_end; for( node_pointer_type current_node = current_group->nodes; current_node != end; ++current_node ) { - if( current_node->next != nullptr ) { // is not free list node + if( current_node->next != NULL ) { // is not free list node // swap the pointers: const node_pointer_type temp = current_node->next; current_node->next = current_node->previous; @@ -2249,7 +2252,7 @@ template nodes; current_node != last_endpoint; ++current_node ) { - if( current_node->next != nullptr ) { + if( current_node->next != NULL ) { const node_pointer_type temp = current_node->next; current_node->next = current_node->previous; current_node->previous = temp; @@ -2329,7 +2332,7 @@ template nodes != num_elements ) { for( node_pointer_type current_node = current_group->nodes; current_node != end; ++current_node ) { // is not free list node and validates predicate - if( current_node->next != nullptr && predicate( current_node->element ) ) { + if( current_node->next != NULL && predicate( current_node->element ) ) { erase( current_node ); // ie. group will be empty (and removed) now - nothing left to iterate over @@ -2360,7 +2363,7 @@ template nodes != num_elements ) { for( node_pointer_type current_node = groups.last_endpoint_group->nodes; current_node != last_endpoint; ++current_node ) { - if( current_node->next != nullptr && predicate( current_node->element ) ) { + if( current_node->next != NULL && predicate( current_node->element ) ) { erase( current_node ); if( --num_elements == 0 ) { diff --git a/src/loading_ui.cpp b/src/loading_ui.cpp index c3d9336515ccd..b8e5d79a39aed 100644 --- a/src/loading_ui.cpp +++ b/src/loading_ui.cpp @@ -1,7 +1,5 @@ #include "loading_ui.h" -#include - #include "color.h" #include "output.h" #include "ui.h" @@ -21,7 +19,7 @@ extern bool test_mode; loading_ui::loading_ui( bool display ) { if( display && !test_mode ) { - menu = std::make_unique(); + menu.reset( new uilist ); menu->settext( _( "Loading" ) ); } } diff --git a/src/magic.cpp b/src/magic.cpp index 58e62a21bf8f0..ab28db7719ca8 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -172,36 +172,10 @@ static damage_type damage_type_from_string( const std::string &str ) void spell_type::load( JsonObject &jo, const std::string & ) { - static const - std::map> - effect_map{ - { "pain_split", spell_effect::pain_split }, - { "target_attack", spell_effect::target_attack }, - { "projectile_attack", spell_effect::projectile_attack }, - { "cone_attack", spell_effect::cone_attack }, - { "line_attack", spell_effect::line_attack }, - { "teleport_random", spell_effect::teleport_random }, - { "spawn_item", spell_effect::spawn_ethereal_item }, - { "recover_energy", spell_effect::recover_energy }, - { "summon", spell_effect::spawn_summoned_monster }, - { "translocate", spell_effect::translocate }, - { "area_pull", spell_effect::area_pull }, - { "area_push", spell_effect::area_push }, - { "ter_transform", spell_effect::transform_blast }, - { "none", spell_effect::none } - }; - mandatory( jo, was_loaded, "id", id ); mandatory( jo, was_loaded, "name", name, translated_string_reader ); mandatory( jo, was_loaded, "description", description, translated_string_reader ); - mandatory( jo, was_loaded, "effect", effect_name ); - const auto found_effect = effect_map.find( effect_name ); - if( found_effect == effect_map.cend() ) { - effect = spell_effect::none; - debugmsg( "ERROR: spell %s has invalid effect %s", id.c_str(), effect_name ); - } else { - effect = found_effect->second; - } + mandatory( jo, was_loaded, "effect", effect ); const auto effect_targets_reader = enum_flags_reader { "effect_targets" }; optional( jo, was_loaded, "effect_filter", effect_targets, effect_targets_reader ); @@ -501,6 +475,11 @@ bool spell::is_spell_class( const trait_id &mid ) const bool spell::can_cast( const player &p ) const { + if( !p.magic.knows_spell( type->id ) ) { + // how in the world can this happen? + debugmsg( "ERROR: owner of spell does not know spell" ); + return false; + } switch( type->energy_source ) { case mana_energy: return p.magic.available_mana() >= energy_cost( p ); @@ -743,7 +722,7 @@ void spell::make_sound( const tripoint &target ) const std::string spell::effect() const { - return type->effect_name; + return type->effect; } energy_type spell::energy_source() const @@ -959,15 +938,53 @@ int spell::heal( const tripoint &target ) const return -1; } -void spell::cast_spell_effect( Creature &source, const tripoint &target ) const -{ - type->effect( *this, source, target ); +bool spell::cast_spell_effect( const Creature &source, const tripoint &target ) const +{ + // figure out which function is the effect (maybe change this into how iuse or activity_handlers does it) + // TODO: refactor these so make_sound can be called inside each of these functions + const std::string fx = effect(); + if( fx == "pain_split" ) { + spell_effect::pain_split(); + make_sound( source.pos() ); + } else if( fx == "move_earth" ) { + spell_effect::move_earth( target ); + make_sound( target ); + } else if( fx == "target_attack" ) { + spell_effect::target_attack( *this, source, target ); + } else if( fx == "projectile_attack" ) { + spell_effect::projectile_attack( *this, source, target ); + } else if( fx == "cone_attack" ) { + spell_effect::cone_attack( *this, source, target ); + } else if( fx == "line_attack" ) { + spell_effect::line_attack( *this, source, target ); + } else if( fx == "teleport_random" ) { + spell_effect::teleport( range(), range() + aoe() ); + make_sound( source.pos() ); + } else if( fx == "spawn_item" ) { + spell_effect::spawn_ethereal_item( *this ); + make_sound( source.pos() ); + } else if( fx == "recover_energy" ) { + spell_effect::recover_energy( *this, target ); + make_sound( target ); + } else if( fx == "summon" ) { + spell_effect::spawn_summoned_monster( *this, source, target ); + } else if( fx == "translocate" ) { + spell_effect::translocate( *this, source, target, g->u.translocators ); + } else if( fx == "area_pull" ) { + spell_effect::area_pull( *this, source, target ); + } else if( fx == "area_push" ) { + spell_effect::area_push( *this, source, target ); + } else { + debugmsg( "ERROR: Spell effect not defined properly." ); + return false; + } + return true; } -void spell::cast_all_effects( Creature &source, const tripoint &target ) const +bool spell::cast_all_effects( const Creature &source, const tripoint &target ) const { // first call the effect of the main spell - cast_spell_effect( source, target ); + bool success = cast_spell_effect( source, target ); for( const fake_spell &extra_spell : type->additional_spells ) { spell sp( extra_spell.id ); int level = sp.get_max_level(); @@ -979,11 +996,12 @@ void spell::cast_all_effects( Creature &source, const tripoint &target ) const sp.gain_level(); } if( extra_spell.self ) { - sp.cast_all_effects( source, source.pos() ); + success = success && sp.cast_all_effects( source, source.pos() ); } else { - sp.cast_all_effects( source, target ); + success = success && sp.cast_all_effects( source, target ); } } + return success; } // player @@ -1119,7 +1137,7 @@ void known_magic::forget_spell( const spell_id &sp ) bool known_magic::can_learn_spell( const player &p, const spell_id &sp ) const { - const spell_type &sp_t = sp.obj(); + const spell_type sp_t = sp.obj(); if( sp_t.spell_class == trait_id( "NONE" ) ) { return true; } @@ -1290,7 +1308,10 @@ static bool casting_time_encumbered( const spell &sp, const player &p ) // the first 20 points of encumbrance combined is ignored encumb += std::max( 0, p.encumb( bp_arm_l ) + p.encumb( bp_arm_r ) - 20 ); } - return encumb > 0; + if( encumb > 0 ) { + return true; + } + return false; } static bool energy_cost_encumbered( const spell &sp, const player &p ) @@ -1388,7 +1409,7 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu line++; - std::string targets; + std::string targets = ""; if( sp.is_valid_target( target_none ) ) { targets = "self"; } else { @@ -1415,7 +1436,7 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu } if( sp.aoe() > 0 ) { std::string aoe_string_temp = "Spell Radius"; - std::string degree_string; + std::string degree_string = ""; if( fx == "cone_attack" ) { aoe_string_temp = "Cone Arc"; degree_string = "degrees"; @@ -1590,7 +1611,7 @@ static void draw_spellbook_info( const spell_type &sp, uilist *menu ) mvwprintz( w, line++, start_x + width / 2, c_light_gray, string_format( "%s: %d", _( "Max Level" ), sp.max_level ) ); - const std::string fx = sp.effect_name; + const std::string fx = sp.effect; std::string damage_string; std::string aoe_string; bool has_damage_type = false; diff --git a/src/magic.h b/src/magic.h index 2425aa2b1c4aa..2e2c1213c8388 100644 --- a/src/magic.h +++ b/src/magic.h @@ -22,7 +22,6 @@ class player; class JsonObject; class JsonOut; class JsonIn; -class spell; class teleporter_list; class time_duration; class nc_color; @@ -100,8 +99,7 @@ class spell_type // spell description std::string description; // spell effect string. used to look up spell function - std::string effect_name; - std::function effect; + std::string effect; // extra information about spell effect. allows for combinations for effects std::string effect_str; // list of additional "spell effects" @@ -331,9 +329,9 @@ class spell int heal( const tripoint &target ) const; // casts the spell effect. returns true if successful - void cast_spell_effect( Creature &source, const tripoint &target ) const; + bool cast_spell_effect( const Creature &source, const tripoint &target ) const; // goes through the spell effect and all of its internal spells - void cast_all_effects( Creature &source, const tripoint &target ) const; + bool cast_all_effects( const Creature &source, const tripoint &target ) const; // is the target valid for this spell? bool is_valid_target( const Creature &caster, const tripoint &p ) const; @@ -406,19 +404,21 @@ class known_magic namespace spell_effect { -void teleport_random( const spell &sp, Creature &caster, const tripoint & ); -void pain_split( const spell &, Creature &, const tripoint & ); -void target_attack( const spell &sp, Creature &caster, +void teleport( int min_distance, int max_distance ); +void pain_split(); // only does g->u +void move_earth( const tripoint &target ); +void target_attack( const spell &sp, const Creature &caster, const tripoint &target ); -void projectile_attack( const spell &sp, Creature &caster, +void projectile_attack( const spell &sp, const Creature &caster, const tripoint &target ); -void cone_attack( const spell &sp, Creature &caster, +void cone_attack( const spell &sp, const Creature &caster, const tripoint &target ); -void line_attack( const spell &sp, Creature &caster, +void line_attack( const spell &sp, const Creature &caster, const tripoint &target ); -void area_pull( const spell &sp, Creature &caster, const tripoint &target ); -void area_push( const spell &sp, Creature &caster, const tripoint &target ); +void area_pull( const spell &sp, const Creature &caster, const tripoint &target ); +void area_push( const spell &sp, const Creature &caster, const tripoint &target ); + std::set spell_effect_blast( const spell &, const tripoint &, const tripoint &target, const int aoe_radius, const bool ignore_walls ); @@ -429,12 +429,11 @@ std::set spell_effect_line( const spell &, const tripoint &source, const tripoint &target, const int aoe_radius, const bool ignore_walls ); -void spawn_ethereal_item( const spell &sp, Creature &, const tripoint & ); -void recover_energy( const spell &sp, Creature &, const tripoint &target ); -void spawn_summoned_monster( const spell &sp, Creature &caster, const tripoint &target ); -void translocate( const spell &sp, Creature &caster, const tripoint &target ); -void transform_blast( const spell &sp, Creature &caster, const tripoint &target ); -void none( const spell &sp, Creature &, const tripoint &target ); +void spawn_ethereal_item( const spell &sp ); +void recover_energy( const spell &sp, const tripoint &target ); +void spawn_summoned_monster( const spell &sp, const Creature &caster, const tripoint &target ); +void translocate( const spell &sp, const Creature &caster, const tripoint &target, + teleporter_list &tp_list ); } // namespace spell_effect class spellbook_callback : public uilist_callback diff --git a/src/magic_spell_effect.cpp b/src/magic_spell_effect.cpp index f55ebe09847f3..a9a5ede268866 100644 --- a/src/magic_spell_effect.cpp +++ b/src/magic_spell_effect.cpp @@ -35,7 +35,6 @@ #include "debug.h" #include "explosion.h" #include "magic_teleporter_list.h" -#include "magic_ter_furn_transform.h" #include "point.h" #include "ret_val.h" #include "rng.h" @@ -47,18 +46,16 @@ static tripoint random_point( int min_distance, int max_distance, const tripoint const int dist = rng( min_distance, max_distance ); const int x = round( dist * cos( angle ) ); const int y = round( dist * sin( angle ) ); - return player_pos + point( x, y ); + return tripoint( x + player_pos.x, y + player_pos.y, player_pos.z ); } -void spell_effect::teleport_random( const spell &sp, Creature &caster, const tripoint & ) +void spell_effect::teleport( int min_distance, int max_distance ) { - const int min_distance = sp.range(); - const int max_distance = sp.range() + sp.aoe(); if( min_distance > max_distance || min_distance < 0 || max_distance < 0 ) { debugmsg( "ERROR: Teleport argument(s) invalid" ); return; } - const tripoint player_pos = caster.pos(); + const tripoint player_pos = g->u.pos(); tripoint target; // limit the loop just in case it's impossble to find a valid point in the range int tries = 0; @@ -70,31 +67,23 @@ void spell_effect::teleport_random( const spell &sp, Creature &caster, const tri add_msg( m_bad, _( "Unable to find a valid target for teleport." ) ); return; } - // TODO: make this spell work for non players - if( caster.is_player() ) { - sp.make_sound( caster.pos() ); - g->place_player( target ); - } + g->place_player( target ); } -void spell_effect::pain_split( const spell &sp, Creature &caster, const tripoint & ) +void spell_effect::pain_split() { - player *p = caster.as_player(); - if( p == nullptr ) { - return; - } - sp.make_sound( caster.pos() ); + player &p = g->u; add_msg( m_info, _( "Your injuries even out." ) ); int num_limbs = 0; // number of limbs effected (broken don't count) int total_hp = 0; // total hp among limbs - for( const int &part : p->hp_cur ) { + for( const int &part : p.hp_cur ) { if( part != 0 ) { num_limbs++; total_hp += part; } } - for( int &part : p->hp_cur ) { + for( int &part : p.hp_cur ) { const int hp_each = total_hp / num_limbs; if( part != 0 ) { part = hp_each; @@ -102,6 +91,36 @@ void spell_effect::pain_split( const spell &sp, Creature &caster, const tripoint } } +void spell_effect::move_earth( const tripoint &target ) +{ + ter_id ter_here = g->m.ter( target ); + + std::set empty_air = { t_hole }; + std::set deep_pit = { t_pit, t_slope_down }; + std::set shallow_pit = { t_pit_corpsed, t_pit_covered, t_pit_glass, t_pit_glass_covered, t_pit_shallow, t_pit_spiked, t_pit_spiked_covered, t_rootcellar }; + std::set soft_dirt = { t_grave, t_dirt, t_sand, t_clay, t_dirtmound, t_grass, t_grass_long, t_grass_tall, t_grass_golf, t_grass_dead, t_grass_white, t_dirtfloor, t_fungus_floor_in, t_fungus_floor_sup, t_fungus_floor_out, t_sandbox }; + // rock: can still be dug through with patience, converts to sand upon completion + std::set hard_dirt = { t_pavement, t_pavement_y, t_sidewalk, t_concrete, t_thconc_floor, t_thconc_floor_olight, t_strconc_floor, t_floor, t_floor_waxed, t_carpet_red, t_carpet_yellow, t_carpet_purple, t_carpet_green, t_linoleum_white, t_linoleum_gray, t_slope_up, t_rock_red, t_rock_green, t_rock_blue, t_floor_red, t_floor_green, t_floor_blue, t_pavement_bg_dp, t_pavement_y_bg_dp, t_sidewalk_bg_dp }; + + if( empty_air.count( ter_here ) == 1 ) { + add_msg( m_bad, _( "All the dust in the air here falls to the ground." ) ); + } else if( deep_pit.count( ter_here ) == 1 ) { + g->m.ter_set( target, t_hole ); + add_msg( _( "The pit has deepened further." ) ); + } else if( shallow_pit.count( ter_here ) == 1 ) { + g->m.ter_set( target, t_pit ); + add_msg( _( "More debris shifts out of the pit." ) ); + } else if( soft_dirt.count( ter_here ) == 1 ) { + g->m.ter_set( target, t_pit_shallow ); + add_msg( _( "The earth moves out of the way for you." ) ); + } else if( hard_dirt.count( ter_here ) == 1 ) { + g->m.ter_set( target, t_sand ); + add_msg( _( "The rocks here are ground into sand." ) ); + } else { + add_msg( m_bad, _( "The earth here does not listen to your command to move." ) ); + } +} + static bool in_spell_aoe( const tripoint &start, const tripoint &end, const int &radius, const bool ignore_walls ) { @@ -329,7 +348,7 @@ static void damage_targets( const spell &sp, const Creature &caster, } } -void spell_effect::projectile_attack( const spell &sp, Creature &caster, +void spell_effect::projectile_attack( const spell &sp, const Creature &caster, const tripoint &target ) { std::vector trajectory = line_to( caster.pos(), target ); @@ -346,21 +365,21 @@ void spell_effect::projectile_attack( const spell &sp, Creature &caster, target_attack( sp, caster, trajectory.back() ); } -void spell_effect::target_attack( const spell &sp, Creature &caster, +void spell_effect::target_attack( const spell &sp, const Creature &caster, const tripoint &epicenter ) { damage_targets( sp, caster, spell_effect_area( sp, epicenter, spell_effect_blast, caster, sp.has_flag( spell_flag::IGNORE_WALLS ) ) ); } -void spell_effect::cone_attack( const spell &sp, Creature &caster, +void spell_effect::cone_attack( const spell &sp, const Creature &caster, const tripoint &target ) { damage_targets( sp, caster, spell_effect_area( sp, target, spell_effect_cone, caster, sp.has_flag( spell_flag::IGNORE_WALLS ) ) ); } -void spell_effect::line_attack( const spell &sp, Creature &caster, +void spell_effect::line_attack( const spell &sp, const Creature &caster, const tripoint &target ) { damage_targets( sp, caster, spell_effect_area( sp, target, spell_effect_line, caster, @@ -476,9 +495,9 @@ static void spell_move( const spell &sp, const Creature &caster, 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( 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 ) ); if( valid ) { victim->knock_back_to( to ); } @@ -513,7 +532,7 @@ static void spell_move( const spell &sp, const Creature &caster, move_field( target_fd_blood, fd_gibs_flesh ); } -void spell_effect::area_pull( const spell &sp, Creature &caster, const tripoint ¢er ) +void spell_effect::area_pull( const spell &sp, const Creature &caster, const tripoint ¢er ) { area_expander expander; @@ -528,10 +547,9 @@ void spell_effect::area_pull( const spell &sp, Creature &caster, const tripoint spell_move( sp, caster, node.position, node.from ); } - sp.make_sound( caster.pos() ); } -void spell_effect::area_push( const spell &sp, Creature &caster, const tripoint ¢er ) +void spell_effect::area_push( const spell &sp, const Creature &caster, const tripoint ¢er ) { area_expander expander; @@ -546,10 +564,9 @@ void spell_effect::area_push( const spell &sp, Creature &caster, const tripoint spell_move( sp, caster, node.from, node.position ); } - sp.make_sound( caster.pos() ); } -void spell_effect::spawn_ethereal_item( const spell &sp, Creature &caster, const tripoint & ) +void spell_effect::spawn_ethereal_item( const spell &sp ) { item granted( sp.effect_data(), calendar::turn ); if( !granted.is_comestible() && !( sp.has_flag( spell_flag::PERMANENT ) && sp.is_max_level() ) ) { @@ -572,10 +589,9 @@ void spell_effect::spawn_ethereal_item( const spell &sp, Creature &caster, const g->u.i_add( granted ); } } - sp.make_sound( caster.pos() ); } -void spell_effect::recover_energy( const spell &sp, Creature &caster, const tripoint &target ) +void spell_effect::recover_energy( const spell &sp, const tripoint &target ) { // this spell is not appropriate for healing const int healing = sp.damage(); @@ -608,7 +624,6 @@ void spell_effect::recover_energy( const spell &sp, Creature &caster, const trip } else { debugmsg( "Invalid effect_str %s for spell %s", energy_source, sp.name() ); } - sp.make_sound( caster.pos() ); } static bool is_summon_friendly( const spell &sp ) @@ -642,7 +657,7 @@ static bool add_summoned_mon( const mtype_id &id, const tripoint &pos, const tim return g->add_zombie( spawned_mon ); } -void spell_effect::spawn_summoned_monster( const spell &sp, Creature &caster, +void spell_effect::spawn_summoned_monster( const spell &sp, const Creature &caster, const tripoint &target ) { const mtype_id mon_id( sp.effect_data() ); @@ -665,29 +680,8 @@ void spell_effect::spawn_summoned_monster( const spell &sp, Creature &caster, } } -void spell_effect::translocate( const spell &sp, Creature &caster, const tripoint &target ) -{ - avatar *you = caster.as_avatar(); - if( you == nullptr ) { - return; - } - you->translocators.translocate( spell_effect_area( sp, target, spell_effect_blast, caster, true ) ); -} - -void spell_effect::none( const spell &sp, Creature &, const tripoint & ) +void spell_effect::translocate( const spell &sp, const Creature &caster, + const tripoint &target, teleporter_list &tp_list ) { - debugmsg( "ERROR: %s has invalid spell effect.", sp.name() ); -} - -void spell_effect::transform_blast( const spell &sp, Creature &caster, - const tripoint &target ) -{ - ter_furn_transform_id transform( sp.effect_data() ); - const std::set area = spell_effect_blast( sp, caster.pos(), target, sp.aoe(), true ); - for( const tripoint &location : area ) { - if( one_in( sp.damage() ) ) { - transform->transform( location ); - transform->add_all_messages( caster, location ); - } - } + tp_list.translocate( spell_effect_area( sp, target, spell_effect_blast, caster, true ) ); } diff --git a/src/magic_teleporter_list.cpp b/src/magic_teleporter_list.cpp index 90a56cee462dc..5571cbff4d80e 100644 --- a/src/magic_teleporter_list.cpp +++ b/src/magic_teleporter_list.cpp @@ -59,12 +59,12 @@ static cata::optional find_valid_teleporters_omt( const tripoint &omt_ const tripoint sm_pt = omt_to_sm_copy( omt_pt ); tinymap checker; const int z_level = omt_pt.z; - checker.load( sm_pt, true ); + checker.load( sm_pt.x, sm_pt.y, sm_pt.z, true ); for( int x = 0; x < SEEX * 2; x++ ) { for( int y = 0; y < SEEY * 2; y++ ) { if( checker.has_flag_furn( "TRANSLOCATOR", tripoint( x, y, z_level ) ) ) { - return tripoint( checker.getabs( point( x, y ) ), z_level ); + return tripoint( checker.getabs( x, y ), z_level ); } } } @@ -75,7 +75,7 @@ bool teleporter_list::place_avatar_overmap( avatar &, const tripoint &omt_pt ) c { tinymap omt_dest( 2, true ); tripoint sm_dest = omt_to_sm_copy( omt_pt ); - omt_dest.load( sm_dest, true ); + omt_dest.load( sm_dest.x, sm_dest.y, sm_dest.z, true ); cata::optional global_dest = find_valid_teleporters_omt( omt_pt ); if( !global_dest ) { return false; diff --git a/src/magic_ter_fur_transform.cpp b/src/magic_ter_fur_transform.cpp deleted file mode 100644 index e44bff623b9c7..0000000000000 --- a/src/magic_ter_fur_transform.cpp +++ /dev/null @@ -1,278 +0,0 @@ -#include "magic_ter_furn_transform.h" - -#include "creature.h" -#include "point.h" -#include "game.h" -#include "generic_factory.h" -#include "magic.h" -#include "map.h" -#include "mapdata.h" -#include "messages.h" -#include "type_id.h" - -namespace -{ -generic_factory ter_furn_transform_factory( "ter_furn_transform" ); -} // namespace - -template<> -const ter_furn_transform &string_id::obj() const -{ - return ter_furn_transform_factory.obj( *this ); -} - -template<> -bool string_id::is_valid() const -{ - return ter_furn_transform_factory.is_valid( *this ); -} - -void ter_furn_transform::load_transform( JsonObject &jo, const std::string &src ) -{ - ter_furn_transform_factory.load( jo, src ); -} - -void ter_furn_transform::reset_all() -{ - ter_furn_transform_factory.reset(); -} - -bool ter_furn_transform::is_valid() const -{ - return ter_furn_transform_factory.is_valid( this->id ); -} - -const std::vector &ter_furn_transform::get_all() -{ - return ter_furn_transform_factory.get_all(); -} - -template -static void load_transform_results( JsonObject &jsi, const std::string &json_key, - weighted_int_list &list ) -{ - if( jsi.has_string( json_key ) ) { - list.add( T( jsi.get_string( json_key ) ), 1 ); - return; - } - JsonArray jarr = jsi.get_array( json_key ); - while( jarr.has_more() ) { - if( jarr.test_array() ) { - JsonArray inner = jarr.next_array(); - list.add( T( inner.get_string( 0 ) ), inner.get_int( 1 ) ); - } else { - list.add( T( jarr.next_string() ), 1 ); - } - } -} - -template -void ter_furn_data::load( JsonObject &jo ) -{ - load_transform_results( jo, "result", list ); - message = jo.get_string( "message", "" ); - message_good = jo.get_bool( "message_good", true ); -} - -void ter_furn_transform::load( JsonObject &jo, const std::string & ) -{ - std::string input; - mandatory( jo, was_loaded, "id", input ); - id = ter_furn_transform_id( input ); - optional( jo, was_loaded, "fail_message", fail_message, "" ); - - if( jo.has_member( "terrain" ) ) { - JsonArray obj_array = jo.get_array( "terrain" ); - while( obj_array.has_more() ) { - JsonObject ter_obj = obj_array.next_object(); - JsonArray target_array = ter_obj.get_array( "valid_terrain" ); - ter_furn_data cur_results = ter_furn_data(); - cur_results.load( ter_obj ); - - while( target_array.has_more() ) { - const std::string valid_terrain = target_array.next_string(); - ter_transform.emplace( ter_str_id( valid_terrain ), cur_results ); - } - - target_array = ter_obj.get_array( "valid_flags" ); - - while( target_array.has_more() ) { - const std::string valid_terrain = target_array.next_string(); - ter_flag_transform.emplace( valid_terrain, cur_results ); - } - } - } - - if( jo.has_member( "furniture" ) ) { - JsonArray obj_array = jo.get_array( "furniture" ); - while( obj_array.has_more() ) { - JsonObject furn_obj = obj_array.next_object(); - JsonArray target_array = furn_obj.get_array( "valid_furniture" ); - ter_furn_data cur_results = ter_furn_data(); - cur_results.load( furn_obj ); - - while( target_array.has_more() ) { - const std::string valid_furn = target_array.next_string(); - furn_transform.emplace( furn_str_id( valid_furn ), cur_results ); - } - - target_array = furn_obj.get_array( "valid_flags" ); - - while( target_array.has_more() ) { - const std::string valid_terrain = target_array.next_string(); - furn_flag_transform.emplace( valid_terrain, cur_results ); - } - } - } -} - -template -cata::optional> ter_furn_transform::find_transform( const - std::map> &list, const K &key ) const -{ - const auto result_iter = list.find( key ); - if( result_iter == list.cend() ) { - return cata::nullopt; - } - return result_iter->second; -} - -template -cata::optional ter_furn_transform::next( const std::map> &list, - const K &key ) const -{ - const cata::optional> result = find_transform( list, key ); - if( result ) { - return result->pick(); - } - return cata::nullopt; -} - -cata::optional ter_furn_transform::next_ter( const ter_str_id &ter ) const -{ - return next( ter_transform, ter ); -} - -cata::optional ter_furn_transform::next_ter( const std::string &flag ) const -{ - return next( ter_flag_transform, flag ); -} - -cata::optional ter_furn_transform::next_furn( const furn_str_id &furn ) const -{ - return next( furn_transform, furn ); -} - -cata::optional ter_furn_transform::next_furn( const std::string &flag ) const -{ - return next( furn_flag_transform, flag ); -} - -template -bool ter_furn_transform::add_message( const std::map> &list, const K &key, - const Creature &critter, const tripoint &location ) const -{ - const cata::optional> result = find_transform( list, key ); - if( result && !result->has_msg() ) { - if( critter.sees( location ) ) { - result->add_msg( critter ); - } - return true; - } - return false; -} - -void ter_furn_transform::add_all_messages( const Creature &critter, const tripoint &location ) const -{ - add_all_messages( g->m, critter, location ); -} - -void ter_furn_transform::add_all_messages( const map &m, const Creature &critter, - const tripoint &location ) const -{ - const ter_id ter_at_loc = m.ter( location ); - if( !add_message( ter_transform, ter_at_loc->id, critter, location ) ) { - for( const std::pair> &data : ter_flag_transform ) { - if( data.second.has_msg() && ter_at_loc->has_flag( data.first ) ) { - data.second.add_msg( critter ); - break; - } - } - } - - const furn_id furn_at_loc = m.furn( location ); - if( !add_message( furn_transform, furn_at_loc->id, critter, location ) ) { - for( const std::pair> &data : furn_flag_transform ) { - if( data.second.has_msg() && furn_at_loc->has_flag( data.first ) ) { - data.second.add_msg( critter ); - break; - } - } - } -} - -void ter_furn_transform::transform( const tripoint &location ) const -{ - transform( g->m, location ); -} - -void ter_furn_transform::transform( map &m, const tripoint &location ) const -{ - const ter_id ter_at_loc = m.ter( location ); - cata::optional ter_potential = next_ter( ter_at_loc->id ); - const furn_id furn_at_loc = m.furn( location ); - cata::optional furn_potential = next_furn( furn_at_loc->id ); - - if( !ter_potential ) { - for( const std::pair> &flag_result : - ter_flag_transform ) { - if( ter_at_loc->has_flag( flag_result.first ) ) { - ter_potential = next_ter( flag_result.first ); - if( ter_potential ) { - break; - } - } - } - } - - if( !furn_potential ) { - for( const std::pair> &flag_result : - furn_flag_transform ) { - if( furn_at_loc->has_flag( flag_result.first ) ) { - furn_potential = next_furn( flag_result.first ); - if( furn_potential ) { - break; - } - } - } - } - - if( ter_potential ) { - m.ter_set( location, *ter_potential ); - } - if( furn_potential ) { - m.furn_set( location, *furn_potential ); - } -} - -template -cata::optional ter_furn_data::pick() const -{ - const T *picked = list.pick(); - if( picked == nullptr ) { - return cata::nullopt; - } - return *picked; -} - -template -bool ter_furn_data::has_msg() const -{ - return !message.empty(); -} - -template -void ter_furn_data::add_msg( const Creature &critter ) const -{ - critter.add_msg_if_player( message_good ? m_good : m_bad, message ); -} diff --git a/src/magic_ter_furn_transform.h b/src/magic_ter_furn_transform.h deleted file mode 100644 index 842242504cdb2..0000000000000 --- a/src/magic_ter_furn_transform.h +++ /dev/null @@ -1,87 +0,0 @@ -#pragma once -#ifndef MAGIC_TER_FURN_TRANSFORM_H -#define MAGIC_TER_FURN_TRANSFORM_H - -#include -#include - -#include "optional.h" -#include "type_id.h" -#include "weighted_list.h" - -class Creature; -class JsonObject; -struct tripoint; - -// this is a small class that contains the "results" of a terrain transform. -// T can be either ter_str_id or furn_str_id -template -class ter_furn_data -{ - private: - weighted_int_list list; - std::string message; - bool message_good; - public: - ter_furn_data() = default; - ter_furn_data( const weighted_int_list &list, const std::string &message, - const bool message_good ) : - list( list ), message( message ), message_good( message_good ) {} - - bool has_msg() const; - void add_msg( const Creature &critter ) const; - cata::optional pick() const; - void load( JsonObject &jo ); -}; - -class ter_furn_transform -{ - - private: - - std::string fail_message; - - std::map> ter_transform; - std::map> ter_flag_transform; - - std::map> furn_transform; - std::map> furn_flag_transform; - - cata::optional next_ter( const ter_str_id &ter ) const; - cata::optional next_ter( const std::string &flag ) const; - cata::optional next_furn( const furn_str_id &furn ) const; - cata::optional next_furn( const std::string &flag ) const; - - template - cata::optional> find_transform( const std::map> &list, - const K &key ) const; - - template - cata::optional next( const std::map> &list, const K &key ) const; - - // return value is success of message found - template - bool add_message( const std::map> &list, const K &key, const Creature &critter, - const tripoint &location ) const; - - public: - - ter_furn_transform_id id; - bool was_loaded; - - void add_all_messages( const Creature &critter, const tripoint &location ) const; - void add_all_messages( const map &m, const Creature &critter, const tripoint &location ) const; - - void transform( const tripoint &pos ) const; - void transform( map &m, const tripoint &pos ) const; - - static void load_transform( JsonObject &jo, const std::string &src ); - void load( JsonObject &jo, const std::string & ); - - static const std::vector &get_all(); - static void check_consistency(); - static void reset_all(); - bool is_valid() const; -}; - -#endif diff --git a/src/main.cpp b/src/main.cpp index 23afd7a9304fe..1ae5f1b83ffff 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -613,7 +613,7 @@ int main( int argc, char *argv[] ) rng_set_engine_seed( seed ); - g = std::make_unique(); + g.reset( new game ); // First load and initialize everything that does not // depend on the mods. try { @@ -647,7 +647,7 @@ int main( int argc, char *argv[] ) sigIntHandler.sa_handler = exit_handler; sigemptyset( &sigIntHandler.sa_mask ); sigIntHandler.sa_flags = 0; - sigaction( SIGINT, &sigIntHandler, nullptr ); + sigaction( SIGINT, &sigIntHandler, NULL ); #endif #if defined(LOCALIZE) @@ -655,8 +655,8 @@ int main( int argc, char *argv[] ) #if defined(_WIN32) lang = getLangFromLCID( GetUserDefaultLCID() ); #else - const char *v = setlocale( LC_ALL, nullptr ); - if( v != nullptr ) { + const char *v = setlocale( LC_ALL, NULL ); + if( v != NULL ) { lang = v; if( lang == "C" ) { diff --git a/src/main_menu.cpp b/src/main_menu.cpp index 6426c3b01d408..f85834f4b688c 100644 --- a/src/main_menu.cpp +++ b/src/main_menu.cpp @@ -19,7 +19,6 @@ #include "gamemode.h" #include "get_version.h" #include "help.h" -#include "ime.h" #include "loading_ui.h" #include "mapbuffer.h" #include "mapsharing.h" @@ -204,7 +203,7 @@ void main_menu::init_windows() return; } - w_background = catacurses::newwin( TERMY, TERMX, point_zero ); + w_background = catacurses::newwin( TERMY, TERMX, 0, 0 ); werase( w_background ); wrefresh( w_background ); @@ -221,7 +220,7 @@ void main_menu::init_windows() const int x0 = ( TERMX - total_w ) / 2; const int y0 = ( TERMY - total_h ) / 2; - w_open = catacurses::newwin( total_h, total_w, point( x0, y0 ) ); + w_open = catacurses::newwin( total_h, total_w, y0, x0 ); iMenuOffsetY = total_h - 3; // note: if iMenuOffset is changed, @@ -318,12 +317,12 @@ void main_menu::init_strings() void main_menu::display_text( const std::string &text, const std::string &title, int &selected ) { catacurses::window w_border = 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 ) ); + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); catacurses::window w_text = catacurses::newwin( FULL_SCREEN_HEIGHT - 2, FULL_SCREEN_WIDTH - 2, - point( 1 + static_cast( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ), - 1 + static_cast( TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ) ) ); + 1 + static_cast( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ), + 1 + static_cast( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ) ); draw_border( w_border, BORDER_COLOR, title ); @@ -417,10 +416,6 @@ bool main_menu::opening_screen() } while( !start ) { - // disable ime at program start - // somehow this need to be here to actually work - disable_ime(); - print_menu( w_open, sel1, iMenuOffsetX, iMenuOffsetY ); if( layer == 1 ) { @@ -1022,7 +1017,7 @@ void main_menu::world_tab() text_color = c_light_gray; key_color = c_white; } - wmove( w_open, point( xoffset, yoffset - i ) ); + wmove( w_open, yoffset - i, xoffset ); wprintz( w_open, c_light_gray, "[" ); shortcut_print( w_open, text_color, key_color, vWorldSubItems[i] ); wprintz( w_open, c_light_gray, "]" ); diff --git a/src/map.cpp b/src/map.cpp index 33ef1ae1f5cce..efba4e1096ceb 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -22,7 +22,7 @@ #include "drawing_primitives.h" #include "emit.h" #include "explosion.h" -#include "timed_event.h" +#include "event.h" #include "fragment_cloud.h" #include "fungal_effects.h" #include "game.h" @@ -94,7 +94,6 @@ const species_id ZOMBIE( "ZOMBIE" ); const efftype_id effect_boomered( "boomered" ); const efftype_id effect_crushed( "crushed" ); const efftype_id effect_stunned( "stunned" ); -const efftype_id effect_riding( "riding" ); #define dbg(x) DebugLog((x),D_MAP) << __FILE__ << ":" << __LINE__ << ": " @@ -151,7 +150,7 @@ map::~map() = default; static submap null_submap; -maptile map::maptile_at( const tripoint &p ) const +const maptile map::maptile_at( const tripoint &p ) const { if( !inbounds( p ) ) { return maptile( &null_submap, 0, 0 ); @@ -169,7 +168,7 @@ maptile map::maptile_at( const tripoint &p ) return maptile_at_internal( p ); } -maptile map::maptile_at_internal( const tripoint &p ) const +const maptile map::maptile_at_internal( const tripoint &p ) const { point l; submap *const sm = get_submap_at( p, l ); @@ -216,7 +215,7 @@ void map::add_vehicle_to_cache( vehicle *veh ) return; } - auto &ch = get_cache( veh->sm_pos.z ); + auto &ch = get_cache( veh->smz ); ch.veh_in_active_range = true; // Get parts std::vector &parts = veh->parts; @@ -254,7 +253,7 @@ void map::update_vehicle_cache( vehicle *veh, const int old_zlevel ) } ch.veh_cached_parts.erase( it++ ); // If something was resting on vehicle, drop it - support_dirty( tripoint( p.xy(), old_zlevel + 1 ) ); + support_dirty( tripoint( p.x, p.y, old_zlevel + 1 ) ); } else { ++it; } @@ -302,12 +301,11 @@ std::unique_ptr map::detach_vehicle( vehicle *veh ) return std::unique_ptr(); } - int z = veh->sm_pos.z; - if( z < -OVERMAP_DEPTH || z > OVERMAP_HEIGHT ) { + if( veh->smz < -OVERMAP_DEPTH || veh->smz > OVERMAP_HEIGHT ) { debugmsg( "detach_vehicle got a vehicle outside allowed z-level range! name=%s, submap:%d,%d,%d", - veh->name, veh->sm_pos.x, veh->sm_pos.y, veh->sm_pos.z ); + veh->name, veh->smx, veh->smy, veh->smz ); // Try to fix by moving the vehicle here - z = veh->sm_pos.z = abs_sub.z; + veh->smz = abs_sub.z; } // Unboard all passengers before detaching @@ -318,13 +316,14 @@ std::unique_ptr map::detach_vehicle( vehicle *veh ) } } - submap *const current_submap = get_submap_at_grid( veh->sm_pos ); - auto &ch = get_cache( z ); + submap *const current_submap = get_submap_at_grid( {veh->smx, veh->smy, veh->smz} ); + auto &ch = get_cache( veh->smz ); for( size_t i = 0; i < current_submap->vehicles.size(); i++ ) { if( current_submap->vehicles[i].get() == veh ) { + const int zlev = veh->smz; ch.vehicle_list.erase( veh ); ch.zone_vehicles.erase( veh ); - reset_vehicle_cache( z ); + reset_vehicle_cache( zlev ); std::unique_ptr result = std::move( current_submap->vehicles[i] ); current_submap->vehicles.erase( current_submap->vehicles.begin() + i ); if( veh->tracking_on ) { @@ -334,8 +333,8 @@ std::unique_ptr map::detach_vehicle( vehicle *veh ) return result; } } - debugmsg( "detach_vehicle can't find it! name=%s, submap:%d,%d,%d", veh->name, veh->sm_pos.x, - veh->sm_pos.y, veh->sm_pos.z ); + debugmsg( "detach_vehicle can't find it! name=%s, submap:%d,%d,%d", veh->name, veh->smx, + veh->smy, veh->smz ); return std::unique_ptr(); } @@ -385,7 +384,7 @@ void map::vehmove() }; if( std::find_if( vehicle_list.begin(), vehicle_list.end(), same_ptr ) != vehicle_list.end() ) { - elem->part_removal_cleanup(); + ( elem )->part_removal_cleanup(); } } dirty_vehicle_list.clear(); @@ -442,8 +441,7 @@ vehicle *map::move_vehicle( vehicle &veh, const tripoint &dp, const tileray &fac return &veh; } - const int target_z = dp.z + veh.sm_pos.z; - if( target_z < -OVERMAP_DEPTH || target_z > OVERMAP_HEIGHT ) { + if( dp.z + veh.smz < -OVERMAP_DEPTH || dp.z + veh.smz > OVERMAP_HEIGHT ) { return &veh; } @@ -632,11 +630,11 @@ float map::vehicle_vehicle_collision( vehicle &veh, vehicle &veh2, veh.name, veh.part_info( c.part ).name(), veh2.name, veh2.part_info( c.target_part ).name() ); - const bool vertical = veh.sm_pos.z != veh2.sm_pos.z; + const bool vertical = veh.smz != veh2.smz; // Used to calculate the epicenter of the collision. - point epicenter1; - point epicenter2; + point epicenter1( 0, 0 ); + point epicenter2( 0, 0 ); float dmg; // Vertical collisions will be simpler for a while (1D) @@ -690,21 +688,10 @@ float map::vehicle_vehicle_collision( vehicle &veh, vehicle &veh2, rl_vec2d final2 = collision_axis_y * vel2_y_a + collision_axis_x * vel2_x_a; veh.move.init( final1.x, final1.y ); - if( final1.dot_product( veh.face_vec() ) < 0 ) { - // Car is being pushed backwards. Make it move backwards - veh.velocity = -final1.magnitude(); - } else { - veh.velocity = final1.magnitude(); - } + veh.velocity = final1.magnitude(); veh2.move.init( final2.x, final2.y ); - if( final2.dot_product( veh2.face_vec() ) < 0 ) { - // Car is being pushed backwards. Make it move backwards - veh2.velocity = -final2.magnitude(); - } else { - veh2.velocity = final2.magnitude(); - } - + veh2.velocity = final2.magnitude(); //give veh2 the initiative to proceed next before veh1 float avg_of_turn = ( veh2.of_turn + veh.of_turn ) / 2; if( avg_of_turn < .1f ) { @@ -851,10 +838,14 @@ VehicleList map::get_vehicles( const tripoint &start, const tripoint &end ) submap *current_submap = get_submap_at_grid( { cx, cy, cz } ); for( const auto &elem : current_submap->vehicles ) { // Ensure the vehicle z-position is correct - elem->sm_pos.z = cz; + elem->smz = cz; wrapped_vehicle w; w.v = elem.get(); - w.pos = w.v->global_pos3(); + w.x = w.v->posx + cx * SEEX; + w.y = w.v->posy + cy * SEEY; + w.z = cz; + w.i = cx; + w.j = cy; vehs.push_back( w ); } } @@ -994,7 +985,8 @@ vehicle *map::displace_vehicle( tripoint &p, const tripoint &dp ) // first, let's find our position in current vehicles vector int our_i = -1; for( size_t i = 0; i < src_submap->vehicles.size(); i++ ) { - if( src_submap->vehicles[i]->pos == src_offset ) { + if( src_submap->vehicles[i]->posx == src_offset.x && + src_submap->vehicles[i]->posy == src_offset.y ) { our_i = i; break; } @@ -1063,8 +1055,9 @@ vehicle *map::displace_vehicle( tripoint &p, const tripoint &dp ) // Place passenger on the new part location const vehicle_part &veh_part = veh->parts[prt]; - tripoint psgp( dp + part_pos.xy() - veh_part.precalc[0] + veh_part.precalc[1] + tripoint( 0, 0, - psg->posz() ) ); + tripoint psgp( part_pos.x + dp.x + veh_part.precalc[1].x - veh_part.precalc[0].x, + part_pos.y + dp.y + veh_part.precalc[1].y - veh_part.precalc[0].y, + psg->posz() + dp.z ); // someone is in the way so try again if( g->critter_at( psgp ) ) { complete = false; @@ -1087,8 +1080,9 @@ vehicle *map::displace_vehicle( tripoint &p, const tripoint &dp ) veh->pivot_anchor[0] = veh->pivot_anchor[1]; veh->pivot_rotation[0] = veh->pivot_rotation[1]; - veh->pos = dst_offset; - veh->sm_pos.z = p2.z; + veh->posx = dst_offset.x; + veh->posy = dst_offset.y; + veh->smz = p2.z; // Invalidate vehicle's point cache veh->occupied_cache_time = calendar::before_time_starts; if( src_submap != dst_submap ) { @@ -1121,7 +1115,7 @@ vehicle *map::displace_vehicle( tripoint &p, const tripoint &dp ) //global positions of vehicle loot zones have changed. veh->zones_dirty = true; - on_vehicle_moved( veh->sm_pos.z ); + on_vehicle_moved( veh->smz ); return veh; } @@ -1169,8 +1163,8 @@ bool map::displace_water( const tripoint &p ) // To be removed once not needed void map::set( const int x, const int y, const ter_id &new_terrain, const furn_id &new_furniture ) { - furn_set( point( x, y ), new_furniture ); - ter_set( point( x, y ), new_terrain ); + furn_set( x, y, new_furniture ); + ter_set( x, y, new_terrain ); } std::string map::name( const int x, const int y ) @@ -1294,16 +1288,13 @@ void map::furn_set( const tripoint &p, const furn_id &new_furniture ) // Make sure the furniture falls if it needs to support_dirty( p ); - tripoint above( p.xy(), p.z + 1 ); + tripoint above( p.x, p.y, p.z + 1 ); // Make sure that if we supported something and no longer do so, it falls down support_dirty( above ); } bool map::can_move_furniture( const tripoint &pos, player *p ) { - if( !p ) { - return false; - } const furn_t &furniture_type = furn( pos ).obj(); int required_str = furniture_type.move_str_req; @@ -1313,14 +1304,11 @@ bool map::can_move_furniture( const tripoint &pos, player *p ) } ///\EFFECT_STR determines what furniture the player can move - int adjusted_str = p->str_cur; - if( p->is_mounted() ) { - auto mons = p->mounted_creature.get(); - if( mons->has_flag( MF_RIDEABLE_MECH ) && mons->mech_str_addition() != 0 ) { - adjusted_str = mons->mech_str_addition(); - } + if( p != nullptr && p->str_cur < required_str ) { + return false; } - return adjusted_str >= required_str; + + return true; } std::string map::furnname( const tripoint &p ) @@ -1393,7 +1381,7 @@ ter_id map::ter( const tripoint &p ) const uint8_t map::get_known_connections( const tripoint &p, int connect_group ) const { constexpr std::array offsets = {{ - point_south, point_east, point_west, point_north + { 0, 1 }, { 1, 0 }, { -1, 0 }, { 0, -1 } } }; auto &ch = access_cache( p.z ); @@ -1560,7 +1548,7 @@ bool map::ter_set( const tripoint &p, const ter_id &new_terrain ) // TODO: Limit to changes that affect move cost, traps and stairs set_pathfinding_cache_dirty( p.z ); - tripoint above( p.xy(), p.z + 1 ); + tripoint above( p.x, p.y, p.z + 1 ); // Make sure that if we supported something and no longer do so, it falls down support_dirty( above ); @@ -1816,7 +1804,7 @@ bool map::valid_move( const tripoint &from, const tripoint &to, // Can't move from up to down if( abs( from.x - to.x ) == 1 || abs( from.y - to.y ) == 1 ) { // Break the move into two - vertical then horizontal - tripoint midpoint( down_p.xy(), up_p.z ); + tripoint midpoint( down_p.x, down_p.y, up_p.z ); return valid_move( down_p, midpoint, bash, flying ) && valid_move( midpoint, up_p, bash, flying ); } @@ -1934,12 +1922,16 @@ bool map::supports_above( const tripoint &p ) const } } - return veh_at( p ).has_value(); + if( veh_at( p ) ) { + return true; + } + + return false; } bool map::has_floor_or_support( const tripoint &p ) const { - const tripoint below( p.xy(), p.z - 1 ); + const tripoint below( p.x, p.y, p.z - 1 ); return !valid_move( p, below, false, true ); } @@ -1980,7 +1972,7 @@ void map::drop_furniture( const tripoint &p ) return SS_FLOOR; } - tripoint below_dest( pt.xy(), pt.z - 1 ); + tripoint below_dest( pt.x, pt.y, pt.z - 1 ); if( supports_above( below_dest ) ) { return SS_GOOD_SUPPORT; } @@ -2002,7 +1994,7 @@ void map::drop_furniture( const tripoint &p ) return SS_NO_SUPPORT; }; - tripoint current( p.xy(), p.z + 1 ); + tripoint current( p.x, p.y, p.z + 1 ); support_state last_state = SS_NO_SUPPORT; while( last_state == SS_NO_SUPPORT ) { current.z--; @@ -2055,12 +2047,12 @@ void map::drop_furniture( const tripoint &p ) bash( current, dmg, false, false, true ); } else if( last_state == SS_BAD_SUPPORT || last_state == SS_GOOD_SUPPORT ) { bash( current, dmg, false, false, false ); - tripoint below( current.xy(), current.z - 1 ); + tripoint below( current.x, current.y, current.z - 1 ); bash( below, dmg, false, false, false ); } else if( last_state == SS_CREATURE ) { const std::string &furn_name = frn_obj.name(); bash( current, dmg, false, false, false ); - tripoint below( current.xy(), current.z - 1 ); + tripoint below( current.x, current.y, current.z - 1 ); Creature *critter = g->critter_at( below ); if( critter == nullptr ) { debugmsg( "drop_furniture couldn't find creature at %d,%d,%d", @@ -2139,7 +2131,7 @@ void map::drop_fields( const tripoint &p ) } std::list dropped; - const tripoint below = p + tripoint_below; + const tripoint below = p - tripoint( 0, 0, 1 ); for( const auto &iter : fld ) { const field_entry &entry = iter.second; // For now only drop cosmetic fields, which don't warrant per-turn check @@ -2773,7 +2765,7 @@ point map::random_outdoor_tile() } } } - return random_entry( options, point_north_west ); + return random_entry( options, point( -1, -1 ) ); } bool map::has_adjacent_furniture_with( const tripoint &p, @@ -3072,7 +3064,7 @@ void map::bash_ter_furn( const tripoint &p, bash_params ¶ms ) } else if( !bash->ter_set && zlevels ) { // A hack for destroy && !bash_floor // We have to check what would we create and cancel if it is what we have now - tripoint below( p.xy(), p.z - 1 ); + tripoint below( p.x, p.y, p.z - 1 ); const auto roof = get_roof( below, false ); if( roof == ter( p ) ) { smash_ter = false; @@ -3086,16 +3078,15 @@ void map::bash_ter_furn( const tripoint &p, bash_params ¶ms ) } // TODO: what if silent is true? - if( has_flag( "ALARMED", p ) && !g->timed_events.queued( TIMED_EVENT_WANTED ) ) { + if( has_flag( "ALARMED", p ) && !g->events.queued( EVENT_WANTED ) ) { sounds::sound( p, 40, sounds::sound_t::alarm, _( "an alarm go off!" ), false, "environment", "alarm" ); // Blame nearby player if( rl_dist( g->u.pos(), p ) <= 3 ) { g->u.add_memorial_log( pgettext( "memorial_male", "Set off an alarm." ), pgettext( "memorial_female", "Set off an alarm." ) ); - const point abs = ms_to_sm_copy( getabs( p.xy() ) ); - g->timed_events.add( TIMED_EVENT_WANTED, calendar::turn + 30_minutes, 0, - tripoint( abs, p.z ) ); + const point abs = ms_to_sm_copy( getabs( p.x, p.y ) ); + g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, tripoint( abs.x, abs.y, p.z ) ); } } @@ -3131,7 +3122,7 @@ void map::bash_ter_furn( const tripoint &p, bash_params ¶ms ) } if( bash->str_min_supported != -1 || bash->str_max_supported != -1 ) { - tripoint below( p.xy(), p.z - 1 ); + tripoint below( p.x, p.y, p.z - 1 ); if( !zlevels || has_flag( "SUPPORTS_ROOF", below ) ) { if( bash->str_min_supported != -1 ) { smin = bash->str_min_supported; @@ -3273,7 +3264,7 @@ void map::bash_ter_furn( const tripoint &p, bash_params ¶ms ) // If the terrain has a valid post-destroy terrain, set it ter_set( p, bash->ter_set ); } else { - tripoint below( p.xy(), p.z - 1 ); + tripoint below( p.x, p.y, p.z - 1 ); const auto &ter_below = ter( below ).obj(); if( bash->bash_below && ter_below.has_flag( "SUPPORTS_ROOF" ) ) { // When bashing the tile below, don't allow bashing the floor @@ -3294,7 +3285,7 @@ void map::bash_ter_furn( const tripoint &p, bash_params ¶ms ) // We destroyed something, so we aren't just "plugging" air with dirt here ter_set( p, t_dirt ); } else { - tripoint below( p.xy(), p.z - 1 ); + tripoint below( p.x, p.y, p.z - 1 ); const auto roof = get_roof( below, params.bash_floor && ter( below ).obj().movecost != 0 ); ter_set( p, roof ); } @@ -3507,11 +3498,11 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) float dam = initial_damage; const auto &ammo_effects = proj.proj_effects; - if( has_flag( "ALARMED", p ) && !g->timed_events.queued( TIMED_EVENT_WANTED ) ) { + if( has_flag( "ALARMED", p ) && !g->events.queued( EVENT_WANTED ) ) { sounds::sound( p, 30, sounds::sound_t::alarm, _( "an alarm sound!" ), true, "environment", "alarm" ); const tripoint abs = ms_to_sm_copy( getabs( p ) ); - g->timed_events.add( TIMED_EVENT_WANTED, calendar::turn + 30_minutes, 0, abs ); + g->events.add( EVENT_WANTED, calendar::turn + 30_minutes, 0, abs ); } const bool inc = ( ammo_effects.count( "INCENDIARY" ) || ammo_effects.count( "FLAME" ) ); @@ -3695,10 +3686,6 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) add_field( p, fd_fungicidal_gas, rng( 1, 2 ) ); } - if( ammo_effects.count( "STREAM_GAS_INSCENTICIDAL" ) && !one_in( 3 ) ) { - add_field( p, fd_insecticidal_gas, rng( 1, 2 ) ); - } - if( ammo_effects.count( "STREAM_BIG" ) && !one_in( 4 ) ) { add_field( p, fd_fire, 2 ); } @@ -3812,7 +3799,7 @@ bool map::open_door( const tripoint &p, const bool inside, const bool check_only if( ( g->u.has_trait( trait_id( "SCHIZOPHRENIC" ) ) || g->u.has_artifact_with( AEP_SCHIZO ) ) && one_in( 50 ) && !ter.has_flag( "TRANSPARENT" ) ) { - tripoint mp = p + -2 * g->u.pos().xy() + tripoint( 2 * p.x, 2 * p.y, p.z ); + tripoint mp = p + tripoint( ( p.x - g->u.pos().x ) * 2, ( p.y - g->u.pos().y ) * 2, p.z ); g->spawn_hallucination( mp ); } } @@ -3890,12 +3877,12 @@ void map::translate_radius( const ter_id &from, const ter_id &to, float radi, co if( ter( t ) == from ) { // within distance, and either no submap limitation or same overmap coords. if( radiX <= radi && ( !same_submap || - ms_to_omt_copy( getabs( point( x, y ) ) ) == ms_to_omt_copy( getabs( point( uX, uY ) ) ) ) ) { + ms_to_omt_copy( getabs( x, y ) ) == ms_to_omt_copy( getabs( uX, uY ) ) ) ) { ter_set( t, to ); } } else if( toggle_between && ter( t ) == to ) { if( radiX <= radi && ( !same_submap || - ms_to_omt_copy( getabs( point( x, y ) ) ) == ms_to_omt_copy( getabs( point( uX, uY ) ) ) ) ) { + ms_to_omt_copy( getabs( x, y ) ) == ms_to_omt_copy( getabs( uX, uY ) ) ) ) { ter_set( t, from ); } } @@ -3929,7 +3916,7 @@ bool map::close_door( const tripoint &p, const bool inside, const bool check_onl return false; } -std::string map::get_signage( const tripoint &p ) const +const std::string map::get_signage( const tripoint &p ) const { if( !inbounds( p ) ) { return ""; @@ -4478,9 +4465,7 @@ static void process_vehicle_items( vehicle &cur_veh, int part ) const bool washmachine_here = cur_veh.part_flag( part, VPFLAG_WASHING_MACHINE ) && cur_veh.is_part_on( part ); bool washing_machine_finished = false; - const bool dishwasher_here = cur_veh.part_flag( part, VPFLAG_DISHWASHER ) && - cur_veh.is_part_on( part ); - if( washmachine_here || dishwasher_here ) { + if( washmachine_here ) { for( auto &n : cur_veh.get_items( part ) ) { const time_duration washing_time = 90_minutes; const time_duration time_left = washing_time - n.age(); @@ -4496,34 +4481,7 @@ static void process_vehicle_items( vehicle &cur_veh, int part ) } } if( washing_machine_finished ) { - if( washmachine_here ) { - add_msg( _( "The washing machine in the %s has finished washing." ), cur_veh.name ); - } else if( dishwasher_here ) { - add_msg( _( "The dishwasher in the %s has finished washing." ), cur_veh.name ); - } - } - } - - const bool autoclave_here = cur_veh.part_flag( part, VPFLAG_AUTOCLAVE ) && - cur_veh.is_part_on( part ); - bool autoclave_finished = false; - if( autoclave_here ) { - for( auto &n : cur_veh.get_items( part ) ) { - const time_duration cycle_time = 90_minutes; - const time_duration time_left = cycle_time - n.age(); - static const std::string no_sterile( "NO_STERILE" ); - if( time_left <= 0_turns ) { - n.item_tags.erase( no_sterile ); - autoclave_finished = true; - cur_veh.parts[part].enabled = false; - } else if( calendar::once_every( 15_minutes ) ) { - add_msg( _( "It should take %d minutes to finish sterilising items in the %s." ), - to_minutes( time_left ) + 1, cur_veh.name ); - break; - } - } - if( autoclave_finished ) { - add_msg( _( "The autoclave in the %s has finished washing." ), cur_veh.name ); + add_msg( _( "The washing machine in the %s has finished washing." ), cur_veh.name ); } } @@ -4581,7 +4539,7 @@ void map::process_items( const bool active, map::map_process_func processor, } } for( const tripoint &abs_pos : submaps_with_active_items ) { - const tripoint local_pos = abs_pos - abs_sub.xy(); + const tripoint local_pos = tripoint( abs_pos.xy() - abs_sub.xy(), abs_pos.z ); submap *const current_submap = get_submap_at_grid( local_pos ); if( !active || !current_submap->active_items.empty() ) { process_items_in_submap( *current_submap, local_pos, processor, signal ); @@ -4879,13 +4837,14 @@ std::list map::use_charges( const tripoint &origin, const int range, { std::list ret; - // populate a grid of spots that can be reached - std::vector reachable_pts; - reachable_flood_steps( reachable_pts, origin, range, 1, 100 ); - // We prefer infinite map sources where available, so search for those // first - for( const tripoint &p : reachable_pts ) { + for( const tripoint &p : closest_tripoints_first( range, origin ) ) { + // can not reach this -> can not access its contents + if( origin != p && !clear_path( origin, p, range, 1, 100 ) ) { + continue; + } + // Handle infinite map sources. item water = water_from( p ); if( water.typeId() == type ) { @@ -4903,7 +4862,12 @@ std::list map::use_charges( const tripoint &origin, const int range, } } - for( const tripoint &p : reachable_pts ) { + for( const tripoint &p : closest_tripoints_first( range, origin ) ) { + // can not reach this -> can not access its contents + if( origin != p && !clear_path( origin, p, range, 1, 100 ) ) { + continue; + } + if( has_furn( p ) ) { use_charges_from_furn( furn( p ).obj(), type, quantity, this, p, ret, filter ); if( quantity <= 0 ) { @@ -5079,7 +5043,7 @@ std::list > map::get_rc_items( int x, int y, int z ) auto items = i_at( pos ); for( auto &elem : items ) { if( elem.has_flag( "RADIO_ACTIVATION" ) || elem.has_flag( "RADIO_CONTAINER" ) ) { - rc_pairs.push_back( std::make_pair( pos, &elem ) ); + rc_pairs.push_back( std::make_pair( pos, &( elem ) ) ); } } } @@ -5158,7 +5122,7 @@ partial_con *map::partial_con_at( const tripoint &p ) } point l; submap *const current_submap = get_submap_at( p, l ); - auto it = current_submap->partial_constructions.find( tripoint( l, p.z ) ); + auto it = current_submap->partial_constructions.find( tripoint( l.x, l.y, p.z ) ); if( it != current_submap->partial_constructions.end() ) { return &it->second; } @@ -5172,7 +5136,7 @@ void map::partial_con_remove( const tripoint &p ) } point l; submap *const current_submap = get_submap_at( p, l ); - current_submap->partial_constructions.erase( tripoint( l, p.z ) ); + current_submap->partial_constructions.erase( tripoint( l.x, l.y, p.z ) ); } void map::partial_con_set( const tripoint &p, const partial_con &con ) @@ -5182,7 +5146,7 @@ void map::partial_con_set( const tripoint &p, const partial_con &con ) } point l; submap *const current_submap = get_submap_at( p, l ); - if( !current_submap->partial_constructions.emplace( tripoint( l, p.z ), con ).second ) { + if( !current_submap->partial_constructions.emplace( tripoint( l.x, l.y, p.z ), con ).second ) { debugmsg( "set partial con on top of terrain which already has a partial con" ); } } @@ -5525,9 +5489,7 @@ computer *map::computer_at( const tripoint &p ) return nullptr; } - point l; - submap *const sm = get_submap_at( p, l ); - return sm->get_computer( l ); + return get_submap_at( p )->comp.get(); } void map::remove_submap_camp( const tripoint &p ) @@ -5706,7 +5668,7 @@ void map::draw( const catacurses::window &w, const tripoint ¢er ) continue; } - wmove( w, point( 0, y - center.y + getmaxy( w ) / 2 ) ); + wmove( w, y - center.y + getmaxy( w ) / 2, 0 ); const int maxxrender = center.x - getmaxx( w ) / 2 + getmaxx( w ); x = center.x - getmaxx( w ) / 2; @@ -5731,7 +5693,7 @@ void map::draw( const catacurses::window &w, const tripoint ¢er ) while( x < maxx ) { submap *cur_submap = get_submap_at( p, l ); submap *sm_below = p.z > -OVERMAP_DEPTH ? - get_submap_at( {p.xy(), p.z - 1}, l ) : cur_submap; + get_submap_at( {p.x, p.y, p.z - 1}, l ) : cur_submap; while( l.x < SEEX && x < maxx ) { const lit_level lighting = visibility_cache[x][y]; const visibility_type vis = get_visibility( lighting, cache ); @@ -5792,7 +5754,7 @@ void map::drawsq( const catacurses::window &w, player &u, const tripoint &p, con const bool done = draw_maptile( w, u, p, tile, invert_arg, show_items_arg, view_center, low_light, bright_light, inorder ); if( !done ) { - tripoint below( p.xy(), p.z - 1 ); + tripoint below( p.x, p.y, p.z - 1 ); const maptile tile_below = maptile_at( below ); draw_from_above( w, u, below, tile_below, invert_arg, view_center, @@ -6132,10 +6094,10 @@ bool map::sees( const tripoint &F, const tripoint &T, const int range, int &bres } } else { const int max_z = std::max( new_point.z, last_point.z ); - if( ( has_floor_or_support( {new_point.xy(), max_z} ) || - !trans( {new_point.xy(), last_point.z} ) ) && - ( has_floor_or_support( {last_point.xy(), max_z} ) || - !trans( {last_point.xy(), new_point.z} ) ) ) { + if( ( has_floor_or_support( {new_point.x, new_point.y, max_z} ) || + !trans( {new_point.x, new_point.y, last_point.z} ) ) && + ( has_floor_or_support( {last_point.x, last_point.y, max_z} ) || + !trans( {last_point.x, last_point.y, new_point.z} ) ) ) { visible = false; return false; } @@ -6203,7 +6165,7 @@ std::vector map::find_clear_path( const tripoint &source, const int dominant = std::max( ax, ay ); const int minor = std::min( ax, ay ); // This seems to be the method for finding the ideal start value for the error value. - const int ideal_start_offset = minor - dominant / 2; + const int ideal_start_offset = minor - ( dominant / 2 ); const int start_sign = ( ideal_start_offset > 0 ) - ( ideal_start_offset < 0 ); // Not totally sure of the derivation. const int max_start_offset = std::abs( ideal_start_offset ) * 2 + 1; @@ -6239,7 +6201,7 @@ void map::reachable_flood_steps( std::vector &reachable_pts, const tri // Fill positions that are visitable with initial_visit_distance for( const tripoint &p : points_in_radius( f, range ) ) { - const tripoint tp = { p.xy(), f.z }; + const tripoint tp = { p.x, p.y, f.z }; const int tp_cost = move_cost( tp ); // rejection conditions if( tp_cost < cost_min || tp_cost > cost_max || !has_floor_or_support( tp ) ) { @@ -6266,7 +6228,7 @@ void map::reachable_flood_steps( std::vector &reachable_pts, const tri 0, 0, 1, 1, 1 }; - // *INDENT-ON* + // *INDENT-OFF* int ex = elem.ndx % grid_dim; int ey = elem.ndx / grid_dim; @@ -6292,7 +6254,7 @@ void map::reachable_flood_steps( std::vector &reachable_pts, const tri t_grid[ item.ndx ] = item.dist; if( item.dist + 1 < range ) { gen_neighbors( item, grid_dim, neighbor_elems ); - for( pq_item neighbor_elem : neighbor_elems ) { + for( pq_item neighbor_elem : neighbor_elems) { pq.push( neighbor_elem ); } } @@ -6382,15 +6344,15 @@ bool map::clear_path( const tripoint &f, const tripoint &t, const int range, } else { bool this_clear = false; const int max_z = std::max( new_point.z, last_point.z ); - if( !has_floor_or_support( {new_point.xy(), max_z} ) ) { - const int cost = move_cost( {new_point.xy(), last_point.z} ); + if( !has_floor_or_support( {new_point.x, new_point.y, max_z} ) ) { + const int cost = move_cost( {new_point.x, new_point.y, last_point.z} ); if( cost > cost_min && cost < cost_max ) { this_clear = true; } } - if( !this_clear && has_floor_or_support( {last_point.xy(), max_z} ) ) { - const int cost = move_cost( {last_point.xy(), new_point.z} ); + if( !this_clear && has_floor_or_support( {last_point.x, last_point.y, max_z} ) ) { + const int cost = move_cost( {last_point.x, last_point.y, new_point.z} ); if( cost > cost_min && cost < cost_max ) { this_clear = true; } @@ -6429,14 +6391,14 @@ std::vector map::get_dir_circle( const tripoint &f, const tripoint &t // 642 864 786 578 357 135 213 421 size_t pos_offset = 0; - for( size_t i = 1; i < spiral.size(); i++ ) { + for( unsigned int i = 1; i < spiral.size(); i++ ) { if( spiral[i] == line[0] ) { pos_offset = i - 1; break; } } - for( size_t i = 1; i < spiral.size(); i++ ) { + for( unsigned int i = 1; i < spiral.size(); i++ ) { if( pos_offset >= pos_index.size() ) { pos_offset = 0; } @@ -6481,7 +6443,7 @@ void map::shift_traps( const tripoint &shift ) { // Offset needs to have sign opposite to shift direction const tripoint offset( -shift.x * SEEX, -shift.y * SEEY, -shift.z ); - for( auto iter = field_furn_locs.begin(); iter != field_furn_locs.end(); ) { + for( auto iter = field_furn_locs.begin(); iter != field_furn_locs.end(); ){ tripoint &pos = *iter; pos += offset; if( inbounds( pos ) ) { @@ -6510,7 +6472,7 @@ template void shift_bitset_cache( std::bitset &cache, const int sx, const int sy ) { // sx shifts by MULTIPLIER rows, sy shifts by MULTIPLIER columns. - int shift_amount = sx * MULTIPLIER + sy * SIZE * MULTIPLIER; + int shift_amount = ( sx * MULTIPLIER ) + ( sy * SIZE * MULTIPLIER ); if( shift_amount > 0 ) { cache >>= static_cast( shift_amount ); } else if( shift_amount < 0 ) { @@ -6521,7 +6483,7 @@ void shift_bitset_cache( std::bitset &cache, const int sx, const int if( sx == 0 ) { return; } - const size_t x_offset = sx > 0 ? SIZE - MULTIPLIER : 0; + const size_t x_offset = ( sx > 0 ) ? SIZE - MULTIPLIER : 0; for( size_t y = 0; y < SIZE; ++y ) { size_t y_offset = y * SIZE; for( size_t x = 0; x < MULTIPLIER; ++x ) { @@ -6532,7 +6494,7 @@ void shift_bitset_cache( std::bitset &cache, const int sx, const int template void shift_bitset_cache( std::bitset &cache, - const int sx, const int sy ); + const int sx, const int sy ); template void shift_bitset_cache( std::bitset &cache, const int sx, const int sy ); @@ -6646,7 +6608,7 @@ void map::shift( const int sx, const int sy ) std::set old_cache = std::move( support_cache_dirty ); support_cache_dirty.clear(); for( const auto &pt : old_cache ) { - support_cache_dirty.insert( pt + point( -sx * SEEX, -sy * SEEY ) ); + support_cache_dirty.insert( tripoint( pt.x - sx * SEEX, pt.y - sy * SEEY, pt.z ) ); } } } @@ -6705,7 +6667,7 @@ void map::saven( const int gridx, const int gridy, const int gridz ) dbg( D_INFO ) << "map::saven abs_x: " << abs_x << " abs_y: " << abs_y << " abs_z: " << abs_z << " gridn: " << gridn; submap_to_save->last_touched = calendar::turn; - MAPBUFFER.add_submap( tripoint( abs_x, abs_y, abs_z ), submap_to_save ); + MAPBUFFER.add_submap( abs_x, abs_y, abs_z, submap_to_save ); } // worldx & worldy specify where in the world this is; @@ -6746,7 +6708,7 @@ static void generate_uniform( const tripoint &p, const ter_id &terrain_type ) sm->is_uniform = true; std::uninitialized_fill_n( &sm->ter[0][0], block_size, terrain_type ); sm->last_touched = calendar::turn; - MAPBUFFER.add_submap( p + point( xd, yd ), sm ); + MAPBUFFER.add_submap( p + point(xd, yd), sm ); } } } @@ -6761,7 +6723,7 @@ void map::loadn( const int gridx, const int gridy, const int gridz, const bool u << "], worldy[" << abs_sub.y << "], gridx[" << gridx << "], gridy[" << gridy << "], gridz[" << gridz << "])"; - const tripoint grid_abs_sub( abs_sub.x + gridx, abs_sub.y + gridy, gridz ); + const tripoint grid_abs_sub(abs_sub.x + gridx, abs_sub.y + gridy, gridz ); const size_t gridn = get_nonant( { gridx, gridy, gridz } ); dbg( D_INFO ) << "map::loadn grid_abs_sub: " << grid_abs_sub << " gridn: " << gridn; @@ -6811,7 +6773,7 @@ void map::loadn( const int gridx, const int gridy, const int gridz, const bool u submaps_with_active_items.emplace( grid_abs_sub ); } if( tmpsub->field_count > 0 ) { - get_cache( gridz ).field_cache.set( gridx + gridy * MAPSIZE ); + get_cache( gridz ).field_cache.set( gridx + ( gridy * MAPSIZE ) ); } // Destroy bugged no-part vehicles auto &veh_vec = tmpsub->vehicles; @@ -6819,7 +6781,9 @@ void map::loadn( const int gridx, const int gridy, const int gridz, const bool u vehicle *veh = iter->get(); if( !veh->parts.empty() ) { // Always fix submap coordinates for easier Z-level-related operations - veh->sm_pos = tripoint( gridx, gridy, gridz ); + veh->smx = gridx; + veh->smy = gridy; + veh->smz = gridz; iter++; } else { reset_vehicle_cache( gridz ); @@ -6955,7 +6919,7 @@ void map::grow_plant( const tripoint &p ) } // Can't use item_stack::only_item() since there might be fertilizer map_stack items = i_at( p ); - map_stack::iterator seed = std::find_if( items.begin(), items.end(), []( const item & it ) { + map_stack::iterator seed = std::find_if( items.begin(), items.end(), []( const item &it ) { return it.is_seed(); } ); @@ -6975,7 +6939,7 @@ void map::grow_plant( const tripoint &p ) } // Remove fertilizer if any - map_stack::iterator fertilizer = std::find_if( items.begin(), items.end(), []( const item & it ) { + map_stack::iterator fertilizer = std::find_if( items.begin(), items.end(), []( const item &it ) { return it.has_flag( "FERTILIZER" ); } ); if( fertilizer != items.end() ) { @@ -6990,7 +6954,7 @@ void map::grow_plant( const tripoint &p ) } // Remove fertilizer if any - map_stack::iterator fertilizer = std::find_if( items.begin(), items.end(), []( const item & it ) { + map_stack::iterator fertilizer = std::find_if( items.begin(), items.end(), []( const item &it ) { return it.has_flag( "FERTILIZER" ); } ); if( fertilizer != items.end() ) { @@ -7215,7 +7179,7 @@ void map::actualize( const int gridx, const int gridy, const int gridz ) const tripoint pnt( gridx * SEEX + x, gridy * SEEY + y, gridz ); const point p( x, y ); const auto &furn = this->furn( pnt ).obj(); - if( furn.has_flag( "EMITTER" ) ) { + if( furn.has_flag( "EMITTER" ) ){ field_furn_locs.push_back( pnt ); } // plants contain a seed item which must not be removed under any circumstances @@ -7304,7 +7268,8 @@ void map::copy_grid( const tripoint &to, const tripoint &from ) const auto smap = get_submap_at_grid( from ); setsubmap( get_nonant( to ), smap ); for( auto &it : smap->vehicles ) { - it->sm_pos = to; + it->smx = to.x; + it->smy = to.y; } } @@ -7407,7 +7372,8 @@ void map::spawn_monsters_submap_group( const tripoint &gp, mongroup &group, bool } // Find horde's target submap - tripoint horde_target( tripoint( -abs_sub.x, -abs_sub.y, abs_sub.z ) + group.target.xy() ); + tripoint horde_target( group.target.x - abs_sub.x, + group.target.y - abs_sub.y, abs_sub.z ); sm_to_ms( horde_target ); for( auto &tmp : group.monsters ) { for( int tries = 0; tries < 10 && !locations.empty(); tries++ ) { @@ -7583,8 +7549,8 @@ bool tinymap::fake_load( const furn_id &fur_type, const ter_id &ter_type, const } } - for( const tripoint &pos : points_in_rectangle( tripoint_zero, - tripoint( MAPSIZE * SEEX, MAPSIZE * SEEY, 0 ) ) ) { + for( const tripoint &pos : points_in_rectangle( { 0, 0, 0 }, + tripoint( MAPSIZE * SEEX, MAPSIZE * SEEY, 0 ) ) ) { if( do_terset ) { ter_set( pos, ter_type ); } @@ -7637,7 +7603,7 @@ bool map::has_graffiti_at( const tripoint &p ) const int map::determine_wall_corner( const tripoint &p ) const { - int test_connect_group = ter( p ).obj().connect_group; + int test_connect_group = ter( tripoint( p.x, p.y, p.z ) ).obj().connect_group; uint8_t connections = get_known_connections( p, test_connect_group ); // The bits in connections are SEWN, whereas the characters in LINE_ // constants are NESW, so we want values in 8 | 2 | 1 | 4 order. @@ -7718,8 +7684,8 @@ void map::build_outside_cache( const int zlev ) point sp( sx, sy ); if( cur_submap->get_ter( sp ).obj().has_flag( TFLAG_INDOORS ) || cur_submap->get_furn( sp ).obj().has_flag( TFLAG_INDOORS ) ) { - const int x = sx + smx * SEEX; - const int y = sy + smy * SEEY; + const int x = sx + ( smx * SEEX ); + const int y = sy + ( smy * SEEY ); // Add 1 to both coordinates, because we're operating on the padded cache for( int dx = 0; dx <= 2; dx++ ) { for( int dy = 0; dy <= 2; dy++ ) { @@ -7761,8 +7727,8 @@ void map::build_obstacle_cache( const tripoint &start, const tripoint &end, const point sp( sx, sy ); int ter_move = cur_submap->get_ter( sp ).obj().movecost; int furn_move = cur_submap->get_furn( sp ).obj().movecost; - const int x = sx + smx * SEEX; - const int y = sy + smy * SEEY; + const int x = sx + ( smx * SEEX ); + const int y = sy + ( smy * SEEY ); if( ter_move == 0 || furn_move < 0 || ter_move + furn_move == 0 ) { obstacle_cache[x][y].velocity = 1000.0f; obstacle_cache[x][y].density = 0.0f; @@ -7779,21 +7745,22 @@ void map::build_obstacle_cache( const tripoint &start, const tripoint &end, } } VehicleList vehs = get_vehicles( start, end ); - const box bounds( start, end ); // Cache all the vehicle stuff in one loop for( auto &v : vehs ) { for( const vpart_reference &vp : v.v->get_all_parts() ) { - tripoint p = v.pos + vp.part().precalc[0]; - if( p.z != start.z ) { + int px = v.x + vp.part().precalc[0].x; + int py = v.y + vp.part().precalc[0].y; + if( v.z != start.z ) { break; } - if( !bounds.contains_inclusive( p ) ) { + if( px < start.x || py < start.y || v.z < start.z || + px > end.x || py > end.y || v.z > end.z ) { continue; } if( vp.obstacle_at_part() ) { - obstacle_cache[p.x][p.y].velocity = 1000.0f; - obstacle_cache[p.x][p.y].density = 0.0f; + obstacle_cache[px][py].velocity = 1000.0f; + obstacle_cache[px][py].density = 0.0f; } } } @@ -7831,8 +7798,8 @@ bool map::build_floor_cache( const int zlev ) // Note: furniture currently can't affect existence of floor const ter_t &terrain = cur_submap->get_ter( { sx, sy } ).obj(); if( terrain.has_flag( TFLAG_NO_FLOOR ) ) { - const int x = sx + smx * SEEX; - const int y = sy + smy * SEEY; + const int x = sx + ( smx * SEEX ); + const int y = sy + ( smy * SEEY ); floor_cache[x][y] = false; } } @@ -7911,7 +7878,7 @@ void map::build_map_cache( const int zlev, bool skip_lightmap ) } // Initial value is illegal player position. - static tripoint player_prev_pos; + static tripoint player_prev_pos = tripoint_zero; if( seen_cache_dirty || player_prev_pos != p ) { build_seen_cache( g->u.pos(), zlev ); player_prev_pos = p; @@ -7931,8 +7898,8 @@ std::vector closest_points_first( int radius, point p ) std::vector closest_points_first( int radius, int center_x, int center_y ) { std::vector points; - int X = radius * 2 + 1; - int Y = radius * 2 + 1; + int X = ( radius * 2 ) + 1; + int Y = ( radius * 2 ) + 1; int x = 0; int y = 0; int dx = 0; @@ -7940,10 +7907,10 @@ std::vector closest_points_first( int radius, int center_x, int center_y int t = std::max( X, Y ); int maxI = t * t; for( int i = 0; i < maxI; i++ ) { - if( -X / 2 <= x && x <= X / 2 && -Y / 2 <= y && y <= Y / 2 ) { + if( ( -X / 2 <= x ) && ( x <= X / 2 ) && ( -Y / 2 <= y ) && ( y <= Y / 2 ) ) { points.push_back( point( x + center_x, y + center_y ) ); } - if( x == y || ( x < 0 && x == -y ) || ( x > 0 && x == 1 - y ) ) { + if( ( x == y ) || ( ( x < 0 ) && ( x == -y ) ) || ( ( x > 0 ) && ( x == 1 - y ) ) ) { t = dx; dx = -dy; dy = t; @@ -7957,8 +7924,8 @@ std::vector closest_points_first( int radius, int center_x, int center_y std::vector closest_tripoints_first( int radius, const tripoint ¢er ) { std::vector points; - int X = radius * 2 + 1; - int Y = radius * 2 + 1; + int X = ( radius * 2 ) + 1; + int Y = ( radius * 2 ) + 1; int x = 0; int y = 0; int dx = 0; @@ -7966,10 +7933,10 @@ std::vector closest_tripoints_first( int radius, const tripoint ¢e int t = std::max( X, Y ); int maxI = t * t; for( int i = 0; i < maxI; i++ ) { - if( -X / 2 <= x && x <= X / 2 && -Y / 2 <= y && y <= Y / 2 ) { - points.push_back( center + point( x, y ) ); + if( ( -X / 2 <= x ) && ( x <= X / 2 ) && ( -Y / 2 <= y ) && ( y <= Y / 2 ) ) { + points.push_back( tripoint( x + center.x, y + center.y, center.z ) ); } - if( x == y || ( x < 0 && x == -y ) || ( x > 0 && x == 1 - y ) ) { + if( ( x == y ) || ( ( x < 0 ) && ( x == -y ) ) || ( ( x > 0 ) && ( x == 1 - y ) ) ) { t = dx; dx = -dy; dy = t; @@ -7984,22 +7951,22 @@ std::vector closest_tripoints_first( int radius, const tripoint ¢e point map::getabs( const int x, const int y ) const { - return sm_to_ms_copy( abs_sub.xy() ) + point( x, y ); + return point( x + abs_sub.x * SEEX, y + abs_sub.y * SEEY ); } tripoint map::getabs( const tripoint &p ) const { - return sm_to_ms_copy( abs_sub.xy() ) + p; + return tripoint( p.x + abs_sub.x * SEEX, p.y + abs_sub.y * SEEY, p.z ); } point map::getlocal( const int x, const int y ) const { - return point( x, y ) - sm_to_ms_copy( abs_sub.xy() ); + return point( x - abs_sub.x * SEEX, y - abs_sub.y * SEEY ); } tripoint map::getlocal( const tripoint &p ) const { - return p - sm_to_ms_copy( abs_sub.xy() ); + return tripoint( p.x - abs_sub.x * SEEX, p.y - abs_sub.y * SEEY, p.z ); } void map::set_abs_sub( const int x, const int y, const int z ) @@ -8053,7 +8020,7 @@ submap *map::get_submap_at( const tripoint &p ) const submap *map::get_submap_at( const point &p, point &offset_p ) const { - return get_submap_at( { p, abs_sub.z }, offset_p ); + return get_submap_at( { p.x, p.y, abs_sub.z }, offset_p ); } submap *map::get_submap_at( const tripoint &p, point &offset_p ) const @@ -8075,7 +8042,7 @@ submap *map::get_submap_at_grid( const tripoint &gridp ) const size_t map::get_nonant( const point &gridp ) const { - return get_nonant( { gridp, abs_sub.z } ); + return get_nonant( { gridp.x, gridp.y, abs_sub.z } ); } size_t map::get_nonant( const tripoint &gridp ) const @@ -8103,14 +8070,14 @@ tinymap::tinymap( int mapsize, bool zlevels ) void map::draw_line_ter( const ter_id type, int x1, int y1, int x2, int y2 ) { draw_line( [this, type]( int x, int y ) { - this->ter_set( point( x, y ), type ); + this->ter_set( x, y, type ); }, x1, y1, x2, y2 ); } void map::draw_line_furn( const furn_id type, int x1, int y1, int x2, int y2 ) { draw_line( [this, type]( int x, int y ) { - this->furn_set( point( x, y ), type ); + this->furn_set( x, y, type ); }, x1, y1, x2, y2 ); } @@ -8144,21 +8111,21 @@ void map::draw_fill_background( const weighted_int_list &f ) void map::draw_square_ter( const ter_id type, int x1, int y1, int x2, int y2 ) { draw_square( [this, type]( int x, int y ) { - this->ter_set( point( x, y ), type ); + this->ter_set( x, y, type ); }, x1, y1, x2, y2 ); } void map::draw_square_furn( const furn_id type, int x1, int y1, int x2, int y2 ) { draw_square( [this, type]( int x, int y ) { - this->furn_set( point( x, y ), type ); + this->furn_set( x, y, type ); }, x1, y1, x2, y2 ); } void map::draw_square_ter( ter_id( *f )(), int x1, int y1, int x2, int y2 ) { draw_square( [this, f]( int x, int y ) { - this->ter_set( point( x, y ), f() ); + this->ter_set( x, y, f() ); }, x1, y1, x2, y2 ); } @@ -8166,42 +8133,42 @@ void map::draw_square_ter( const weighted_int_list &f, int x1, int y1, i { draw_square( [this, f]( int x, int y ) { const ter_id *tid = f.pick(); - this->ter_set( point( x, y ), tid != nullptr ? *tid : t_null ); + this->ter_set( x, y, tid != nullptr ? *tid : t_null ); }, x1, y1, x2, y2 ); } void map::draw_rough_circle_ter( const ter_id type, int x, int y, int rad ) { draw_rough_circle( [this, type]( int x, int y ) { - this->ter_set( point( x, y ), type ); + this->ter_set( x, y, type ); }, x, y, rad ); } void map::draw_rough_circle_furn( const furn_id type, int x, int y, int rad ) { draw_rough_circle( [this, type]( int x, int y ) { - this->furn_set( point( x, y ), type ); + this->furn_set( x, y, type ); }, x, y, rad ); } void map::draw_circle_ter( const ter_id type, double x, double y, double rad ) { draw_circle( [this, type]( int x, int y ) { - this->ter_set( point( x, y ), type ); + this->ter_set( x, y, type ); }, x, y, rad ); } void map::draw_circle_ter( const ter_id type, int x, int y, int rad ) { draw_circle( [this, type]( int x, int y ) { - this->ter_set( point( x, y ), type ); + this->ter_set( x, y, type ); }, x, y, rad ); } void map::draw_circle_furn( const furn_id type, int x, int y, int rad ) { draw_circle( [this, type]( int x, int y ) { - this->furn_set( point( x, y ), type ); + this->furn_set( x, y, type ); }, x, y, rad ); } @@ -8283,8 +8250,8 @@ void map::function_over( const int stx, const int sty, const int stz, // Bounds on the submap coordinates const int sm_minx = smx > min_smx ? 0 : minx % SEEX; const int sm_miny = smy > min_smy ? 0 : miny % SEEY; - const int sm_maxx = smx < max_smx ? SEEX - 1 : maxx % SEEX; - const int sm_maxy = smy < max_smy ? SEEY - 1 : maxy % SEEY; + const int sm_maxx = smx < max_smx ? ( SEEX - 1 ) : maxx % SEEX; + const int sm_maxy = smy < max_smy ? ( SEEY - 1 ) : maxy % SEEY; point lp; int &sx = lp.x; @@ -8393,18 +8360,12 @@ tripoint_range map::points_in_radius( const tripoint ¢er, size_t radius, siz return tripoint_range( tripoint( minx, miny, minz ), tripoint( maxx, maxy, maxz ) ); } -std::list map::get_active_items_in_radius( const tripoint ¢er, int radius ) const -{ - return get_active_items_in_radius( center, radius, special_item_type::none ); -} - -std::list map::get_active_items_in_radius( const tripoint ¢er, int radius, - special_item_type type ) const +std::list map::get_active_items_in_radius( const tripoint ¢er, int radius, std::string type ) const { std::list result; - const point minp( center.xy() + point( -radius, -radius ) ); - const point maxp( center.xy() + point( radius, radius ) ); + const point minp( center.x - radius, center.y - radius ); + const point maxp( center.x + radius, center.y + radius ); const point ming( std::max( minp.x / SEEX, 0 ), std::max( minp.y / SEEY, 0 ) ); @@ -8412,7 +8373,7 @@ std::list map::get_active_items_in_radius( const tripoint ¢er std::min( maxp.y / SEEY, my_MAPSIZE - 1 ) ); for( const tripoint &abs_submap_loc : submaps_with_active_items ) { - const tripoint submap_loc{ -abs_sub.xy() + abs_submap_loc }; + const tripoint submap_loc{ abs_submap_loc.xy() - abs_sub.xy(), abs_submap_loc.z }; if( submap_loc.x < ming.x || submap_loc.y < ming.y || submap_loc.x > maxg.x || submap_loc.y > maxg.y ) { continue; @@ -8420,8 +8381,7 @@ std::list map::get_active_items_in_radius( const tripoint ¢er const point sm_offset( submap_loc.x * SEEX, submap_loc.y * SEEY ); submap *sm = get_submap_at_grid( submap_loc ); - std::vector items = type == special_item_type::none ? sm->active_items.get() : - sm->active_items.get_special( type ); + std::vector items = type.empty() ? sm->active_items.get() : sm->active_items.get_special( type ); for( const auto &elem : items ) { const tripoint pos( sm_offset + elem.location, submap_loc.z ); @@ -8429,9 +8389,7 @@ std::list map::get_active_items_in_radius( const tripoint ¢er continue; } - if( elem.item_ref ) { - result.emplace_back( map_cursor( pos ), elem.item_ref.get() ); - } + result.emplace_back( map_cursor( pos ), elem.item_ref.get() ); } } diff --git a/src/map.h b/src/map.h index 2f6197ae64668..82c6c8a1421f3 100644 --- a/src/map.h +++ b/src/map.h @@ -64,7 +64,6 @@ class zone_data; struct trap; enum direction : unsigned; -enum class special_item_type : int; using itype_id = std::string; template class visitable; @@ -76,8 +75,13 @@ class tileray; class npc_template; class vpart_reference; +// TODO: This should be const& but almost no functions are const struct wrapped_vehicle { - tripoint pos; + int x; + int y; + int z; + int i; // submap col + int j; // submap row vehicle *v; }; @@ -236,7 +240,7 @@ class map /*@}*/ void set_memory_seen_cache_dirty( const tripoint &p ) { - const int offset = p.x + p.y * MAPSIZE_Y; + const int offset = p.x + ( p.y * MAPSIZE_Y ); if( offset >= 0 && offset < MAPSIZE_X * MAPSIZE_Y ) { get_cache( p.z ).map_memory_seen_cache.reset( offset ); } @@ -254,8 +258,8 @@ class map bool check_and_set_seen_cache( const tripoint &p ) const { std::bitset &memory_seen_cache = get_cache( p.z ).map_memory_seen_cache; - if( !memory_seen_cache[ static_cast( p.x + p.y * MAPSIZE_Y ) ] ) { - memory_seen_cache.set( static_cast( p.x + p.y * MAPSIZE_Y ) ); + if( !memory_seen_cache[ static_cast( p.x + ( p.y * MAPSIZE_Y ) ) ] ) { + memory_seen_cache.set( static_cast( p.x + ( p.y * MAPSIZE_Y ) ) ); return true; } return false; @@ -365,11 +369,11 @@ class map void clear_spawns(); void clear_traps(); - maptile maptile_at( const tripoint &p ) const; + const maptile maptile_at( const tripoint &p ) const; maptile maptile_at( const tripoint &p ); private: // Versions of the above that don't do bounds checks - maptile maptile_at_internal( const tripoint &p ) const; + const maptile maptile_at_internal( const tripoint &p ) const; maptile maptile_at_internal( const tripoint &p ); maptile maptile_has_bounds( const tripoint &p, const bool bounds_checked ); std::array get_neighbors( const tripoint &p ); @@ -589,9 +593,6 @@ class map // Furniture: 2D overloads void set( const int x, const int y, const ter_id &new_terrain, const furn_id &new_furniture ); - void set( const point &p, const ter_id &new_terrain, const furn_id &new_furniture ) { - set( p.x, p.y, new_terrain, new_furniture ); - } std::string name( const int x, const int y ); bool has_furn( const int x, const int y ) const; @@ -601,10 +602,6 @@ class map void furn_set( const int x, const int y, const furn_id &new_furniture ); - void furn_set( const point &p, const furn_id &new_furniture ) { - furn_set( p.x, p.y, new_furniture ); - } - std::string furnname( const int x, const int y ); // Furniture: 3D void set( const tripoint &p, const ter_id &new_terrain, const furn_id &new_furniture ); @@ -630,10 +627,6 @@ class map bool ter_set( const int x, const int y, const ter_id &new_terrain ); - bool ter_set( const point &p, const ter_id &new_terrain ) { - return ter_set( p.x, p.y, new_terrain ); - } - std::string tername( const int x, const int y ) const; // Name of terrain at (x, y) // Terrain: 3D ter_id ter( const tripoint &p ) const; @@ -887,7 +880,7 @@ class map void decay_fields_and_scent( const time_duration &amount ); // Signs - std::string get_signage( const tripoint &p ) const; + const std::string get_signage( const tripoint &p ) const; void set_signage( const tripoint &p, const std::string &message ) const; void delete_signage( const tripoint &p ) const; @@ -923,7 +916,7 @@ class map void i_rem( const int x, const int y, item *it ); void spawn_item( const int x, const int y, const std::string &itype_id, const unsigned quantity = 1, const int charges = 0, - const time_point &birthday = calendar::turn_zero, const int damlevel = 0 ); + const time_point &birthday = calendar::time_of_cataclysm, const int damlevel = 0 ); item &add_item_or_charges( const int x, const int y, item obj, bool overflow = true ); @@ -949,7 +942,7 @@ class map void spawn_natural_artifact( const tripoint &p, const artifact_natural_property prop ); void spawn_item( const tripoint &p, const std::string &itype_id, const unsigned quantity = 1, const int charges = 0, - const time_point &birthday = calendar::turn_zero, const int damlevel = 0 ); + const time_point &birthday = calendar::time_of_cataclysm, const int damlevel = 0 ); units::volume max_volume( const tripoint &p ); units::volume free_volume( const tripoint &p ); units::volume stored_volume( const tripoint &p ); @@ -1038,7 +1031,7 @@ class map * @return Vector of pointers to placed items (can be empty, but no nulls). */ std::vector put_items_from_loc( const items_location &loc, const tripoint &p, - const time_point &turn = calendar::turn_zero ); + const time_point &turn = calendar::time_of_cataclysm ); // Similar to spawn_an_item, but spawns a list of items, or nothing if the list is empty. std::vector spawn_items( const tripoint &p, const std::vector &new_items ); @@ -1452,14 +1445,14 @@ class map const float density ); void draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_point &when, const float density ); - void draw_sewer( const oter_id &terrain_type, mapgendata &dat, const time_point &when, - const float density ); void draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_point &when, const float density ); void draw_spiral( const oter_id &terrain_type, mapgendata &dat, const time_point &when, const float density ); void draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, const time_point &when, const float density ); + void draw_toxic_dump( const oter_id &terrain_type, mapgendata &dat, const time_point &when, + const float density ); void draw_megastore( const oter_id &terrain_type, mapgendata &dat, const time_point &when, const float density ); void draw_fema( const oter_id &terrain_type, mapgendata &dat, const time_point &when, @@ -1708,9 +1701,8 @@ class map tripoint_range points_in_rectangle( const tripoint &from, const tripoint &to ) const; tripoint_range points_in_radius( const tripoint ¢er, size_t radius, size_t radiusz = 0 ) const; - std::list get_active_items_in_radius( const tripoint ¢er, int radius ) const; std::list get_active_items_in_radius( const tripoint ¢er, int radius, - special_item_type type ) const; + std::string type = "" ) const; /**returns positions of furnitures matching target in the specified radius*/ std::list find_furnitures_in_radius( const tripoint ¢er, size_t radius, diff --git a/src/map_extras.cpp b/src/map_extras.cpp index e312061f378a7..b8aab0e720b77 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -50,25 +50,6 @@ class npc_template; -namespace io -{ - -static const std::map map_extra_method_map = {{ - { "null", map_extra_method::null }, - { "map_extra_function", map_extra_method::map_extra_function }, - { "mapgen", map_extra_method::mapgen }, - { "update_mapgen", map_extra_method::update_mapgen }, - } -}; - -template<> -map_extra_method string_to_enum( const std::string &data ) -{ - return string_to_enum_look_up( map_extra_method_map, data ); -} - -} // namespace io - namespace { @@ -90,8 +71,6 @@ static const mongroup_id GROUP_NETHER_CAPTURED( "GROUP_NETHER_CAPTURED" ); static const mongroup_id GROUP_NETHER_PORTAL( "GROUP_NETHER_PORTAL" ); static const mongroup_id GROUP_MAYBE_MIL( "GROUP_MAYBE_MIL" ); static const mongroup_id GROUP_FISH( "GROUP_FISH" ); -static const mongroup_id GROUP_FUNGI_FUNGALOID( "GROUP_FUNGI_FUNGALOID" ); -static const mongroup_id GROUP_MI_GO_CAMP_OM( "GROUP_MI-GO_CAMP_OM" ); static const mtype_id mon_zombie_tough( "mon_zombie_tough" ); static const mtype_id mon_marloss_zealot_f( "mon_marloss_zealot_f" ); @@ -121,70 +100,18 @@ static void mx_null( map &, const tripoint & ) debugmsg( "Tried to generate null map extra." ); } -static void dead_vegetation_parser( map &m, const tripoint &loc ) -{ - // furniture plants die to withered plants - const furn_t &fid = m.furn( loc ).obj(); - if( fid.has_flag( "PLANT" ) || fid.has_flag( "FLOWER" ) || fid.has_flag( "ORGANIC" ) ) { - m.i_clear( loc ); - m.furn_set( loc, f_null ); - m.spawn_item( loc, "withered" ); - } - // terrain specific conversions - const ter_id tid = m.ter( loc ); - static const std::map dies_into {{ - {t_grass, ter_str_id( "t_grass_dead" )}, - {t_grass_long, ter_str_id( "t_grass_dead" )}, - {t_grass_tall, ter_str_id( "t_grass_dead" )}, - {t_moss, ter_str_id( "t_grass_dead" )}, - {t_tree_pine, ter_str_id( "t_tree_deadpine" )}, - {t_tree_birch, ter_str_id( "t_tree_birch_harvested" )}, - {t_tree_willow, ter_str_id( "t_tree_dead" )}, - {t_tree_hickory, ter_str_id( "t_tree_hickory_dead" )}, - {t_tree_hickory_harvested, ter_str_id( "t_tree_hickory_dead" )}, - {t_grass_golf, ter_str_id( "t_grass_dead" )}, - {t_grass_white, ter_str_id( "t_grass_dead" )}, - }}; - - const auto iter = dies_into.find( tid ); - if( iter != dies_into.end() ) { - m.ter_set( loc, iter->second ); - } - // non-specific small vegetation falls into sticks, large dies and randomly falls - const ter_t &tr = tid.obj(); - if( tr.has_flag( "SHRUB" ) ) { - m.ter_set( loc, t_dirt ); - if( one_in( 2 ) ) { - m.spawn_item( loc, "stick" ); - } - } else if( tr.has_flag( "TREE" ) ) { - if( one_in( 4 ) ) { - m.ter_set( loc, ter_str_id( "t_trunk" ) ); - } else if( one_in( 4 ) ) { - m.ter_set( loc, ter_str_id( "t_stump" ) ); - } else { - m.ter_set( loc, ter_str_id( "t_tree_dead" ) ); - } - } else if( tr.has_flag( "YOUNG" ) ) { - m.ter_set( loc, ter_str_id( "t_dirt" ) ); - if( one_in( 2 ) ) { - m.spawn_item( loc, "stick_long" ); - } - } -} - static void mx_house_wasp( map &m, const tripoint & ) { for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( m.ter( i, j ) == t_door_c || m.ter( i, j ) == t_door_locked ) { - m.ter_set( point( i, j ), t_door_frame ); + m.ter_set( i, j, t_door_frame ); } if( m.ter( i, j ) == t_window_domestic && !one_in( 3 ) ) { - m.ter_set( point( i, j ), t_window_frame ); + m.ter_set( i, j, t_window_frame ); } if( m.ter( i, j ) == t_wall && one_in( 8 ) ) { - m.ter_set( point( i, j ), t_paper ); + m.ter_set( i, j, t_paper ); } } } @@ -201,7 +128,7 @@ static void mx_house_wasp( map &m, const tripoint & ) for( int x = -1; x <= 1; x++ ) { for( int y = -1; y <= 1; y++ ) { if( ( x != nonx || y != nony ) && ( x != 0 || y != 0 ) ) { - m.ter_set( point( podx + x, pody + y ), t_paper ); + m.ter_set( podx + x, pody + y, t_paper ); } } } @@ -228,7 +155,7 @@ static void mx_house_spider( map &m, const tripoint & ) if( m.ter( x, y ) == t_floor ) { madd_field( &m, x, y, fd_web, rng( 2, 3 ) ); if( one_in( 4 ) ) { - m.furn_set( point( i, j ), egg_type ); + m.furn_set( i, j, egg_type ); m.remove_field( {i, j, m.get_abs_sub().z}, fd_web ); } } @@ -297,25 +224,24 @@ static void mx_helicopter( map &m, const tripoint &abs_sub ) veh->turn( dir1 ); - // Get the bounding box, centered on mount(0,0) - bounding_box bbox = veh->get_bounding_box(); - // Move the wreckage forward/backward half it's length so that it spawns more over the center of the debris area - int x_length = std::abs( bbox.p2.x - bbox.p1.x ); - int y_length = std::abs( bbox.p2.y - bbox.p1.y ); + bounding_box bbox = veh->get_bounding_box(); // Get the bounding box, centered on mount(0,0) + int x_length = std::abs( bbox.p2.x - + bbox.p1.x ); // Move the wreckage forward/backward half it's length so + int y_length = std::abs( bbox.p2.y - // that it spawns more over the center of the debris area + bbox.p1.y ); - // cont. - int x_offset = veh->dir_vec().x * x_length / 2; - int y_offset = veh->dir_vec().y * y_length / 2; + int x_offset = veh->dir_vec().x * ( x_length / 2 ); // cont. + int y_offset = veh->dir_vec().y * ( y_length / 2 ); int x_min = abs( bbox.p1.x ) + 0; int y_min = abs( bbox.p1.y ) + 0; - int x_max = SEEX * 2 - bbox.p2.x - 1; - int y_max = SEEY * 2 - bbox.p2.y - 1; + int x_max = ( SEEX * 2 ) - ( bbox.p2.x + 1 ); + int y_max = ( SEEY * 2 ) - ( bbox.p2.y + 1 ); - // Clamp x1 & y1 such that no parts of the vehicle extend over the border of the submap. - int x1 = clamp( cx + x_offset, x_min, x_max ); - int y1 = clamp( cy + y_offset, y_min, y_max ); + int x1 = clamp( cx + x_offset, x_min, + x_max ); // Clamp x1 & y1 such that no parts of the vehicle extend + int y1 = clamp( cy + y_offset, y_min, y_max ); // over the border of the submap. vehicle *wreckage = m.add_vehicle( crashed_hull, tripoint( x1, y1, abs_sub.z ), dir1, rng( 1, 33 ), 1 ); @@ -495,10 +421,10 @@ static void mx_collegekids( map &m, const tripoint & ) static void mx_roadblock( map &m, const tripoint &abs_sub ) { const tripoint abs_omt = sm_to_omt_copy( abs_sub ); - const oter_id &north = overmap_buffer.ter( abs_omt + point_north ); - const oter_id &south = overmap_buffer.ter( abs_omt + point_south ); - const oter_id &west = overmap_buffer.ter( abs_omt + point_west ); - const oter_id &east = overmap_buffer.ter( abs_omt + point_east ); + const oter_id &north = overmap_buffer.ter( abs_omt + point( 0, -1 ) ); + const oter_id &south = overmap_buffer.ter( abs_omt + point( 0, 1 ) ); + const oter_id &west = overmap_buffer.ter( abs_omt + point( -1, 0 ) ); + const oter_id &east = overmap_buffer.ter( abs_omt + point( 1, 0 ) ); const bool road_at_north = is_ot_match( "road", north, ot_match_type::type ); const bool road_at_south = is_ot_match( "road", south, ot_match_type::type ); @@ -588,7 +514,7 @@ static void mx_roadblock( map &m, const tripoint &abs_sub ) int splatter_range = rng( 1, 3 ); for( int j = 0; j <= splatter_range; j++ ) { - m.add_field( *p + point( -j * 1, j * 1 ), fd_blood, 1, 0_turns ); + m.add_field( {p->x - ( j * 1 ), p->y + ( j * 1 ), p->z}, fd_blood, 1, 0_turns ); } } } @@ -626,7 +552,7 @@ static void mx_roadblock( map &m, const tripoint &abs_sub ) int splatter_range = rng( 1, 3 ); for( int j = 0; j <= splatter_range; j++ ) { - m.add_field( *p + point( j * 1, -j * 1 ), fd_blood, 1, 0_turns ); + m.add_field( {p->x + ( j * 1 ), p->y - ( j * 1 ), p->z}, fd_blood, 1, 0_turns ); } } } @@ -653,10 +579,10 @@ static void mx_marloss_pilgrimage( map &m, const tripoint &abs_sub ) static void mx_bandits_block( map &m, const tripoint &abs_sub ) { const tripoint abs_omt = sm_to_omt_copy( abs_sub ); - const oter_id &north = overmap_buffer.ter( abs_omt + point_north ); - const oter_id &south = overmap_buffer.ter( abs_omt + point_south ); - const oter_id &west = overmap_buffer.ter( abs_omt + point_west ); - const oter_id &east = overmap_buffer.ter( abs_omt + point_east ); + const oter_id &north = overmap_buffer.ter( abs_omt + point( 0, -1 ) ); + const oter_id &south = overmap_buffer.ter( abs_omt + point( 0, 1 ) ); + const oter_id &west = overmap_buffer.ter( abs_omt + point( -1, 0 ) ); + const oter_id &east = overmap_buffer.ter( abs_omt + point( 1, 0 ) ); const bool forest_at_north = is_ot_match( "forest", north, ot_match_type::prefix ); const bool forest_at_south = is_ot_match( "forest", south, ot_match_type::prefix ); @@ -674,9 +600,9 @@ static void mx_bandits_block( map &m, const tripoint &abs_sub ) line( &m, t_trunk, 1, 8, 1, 13 ); line( &m, t_trunk, 2, 14, 2, 17 ); line( &m, t_trunk, 1, 18, 2, 22 ); - m.ter_set( point( 1, 2 ), t_stump ); - m.ter_set( point( 1, 20 ), t_stump ); - m.ter_set( point_south_east, t_improvised_shelter ); + m.ter_set( 1, 2, t_stump ); + m.ter_set( 1, 20, t_stump ); + m.ter_set( 1, 1, t_improvised_shelter ); m.place_npc( 2, 19, string_id( "bandit" ) ); if( one_in( 2 ) ) { m.place_npc( 1, 1, string_id( "bandit" ) ); @@ -687,8 +613,8 @@ static void mx_bandits_block( map &m, const tripoint &abs_sub ) line( &m, t_trunk, 5, 1, 10, 1 ); line( &m, t_trunk, 11, 3, 16, 3 ); line( &m, t_trunk, 17, 2, 21, 2 ); - m.ter_set( point( 22, 2 ), t_stump ); - m.ter_set( point_south, t_improvised_shelter ); + m.ter_set( 22, 2, t_stump ); + m.ter_set( 0, 1, t_improvised_shelter ); m.place_npc( 20, 3, string_id( "bandit" ) ); if( one_in( 2 ) ) { m.place_npc( 0, 1, string_id( "bandit" ) ); @@ -766,7 +692,8 @@ static void mx_drugdeal( map &m, const tripoint &abs_sub ) m.place_items( "map_extra_drugdeal", 100, x, y, x, y, true, 0 ); int splatter_range = rng( 1, 3 ); for( int j = 0; j <= splatter_range; j++ ) { - m.add_field( {x + j * x_offset, y + j * y_offset, abs_sub.z}, fd_blood, 1, 0_turns ); + m.add_field( {x + ( j * x_offset ), y + ( j * y_offset ), abs_sub.z}, + fd_blood, 1, 0_turns ); } } } @@ -799,7 +726,8 @@ static void mx_drugdeal( map &m, const tripoint &abs_sub ) m.place_items( "map_extra_drugdeal", 100, x, y, x, y, true, 0 ); int splatter_range = rng( 1, 3 ); for( int j = 0; j <= splatter_range; j++ ) { - m.add_field( {x + j * x_offset, y + j * y_offset, abs_sub.z}, fd_blood, 1, 0_turns ); + m.add_field( {x + ( j * x_offset ), y + ( j * y_offset ), abs_sub.z}, + fd_blood, 1, 0_turns ); } if( !a_has_drugs && num_drugs > 0 ) { int drugs_placed = rng( 2, 6 ); @@ -829,7 +757,7 @@ static void mx_supplydrop( map &m, const tripoint &/*abs_sub*/ ) if( !p ) { break; } - m.furn_set( point( p->x, p->y ), f_crate_c ); + m.furn_set( p->x, p->y, f_crate_c ); std::string item_group; switch( rng( 1, 10 ) ) { case 1: @@ -882,10 +810,10 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) { const tripoint abs_omt = sm_to_omt_copy( abs_sub ); const oter_id ¢er = overmap_buffer.ter( abs_omt ); - const oter_id &north = overmap_buffer.ter( abs_omt + point_north ); - const oter_id &south = overmap_buffer.ter( abs_omt + point_south ); - const oter_id &west = overmap_buffer.ter( abs_omt + point_west ); - const oter_id &east = overmap_buffer.ter( abs_omt + point_east ); + const oter_id &north = overmap_buffer.ter( abs_omt + point( 0, -1 ) ); + const oter_id &south = overmap_buffer.ter( abs_omt + point( 0, 1 ) ); + const oter_id &west = overmap_buffer.ter( abs_omt + point( -1, 0 ) ); + const oter_id &east = overmap_buffer.ter( abs_omt + point( 1, 0 ) ); const bool bridge_at_center = is_ot_match( "bridge", center, ot_match_type::type ); const bool bridge_at_north = is_ot_match( "bridge", north, ot_match_type::type ); @@ -944,7 +872,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( 15, 5, 20, 5 ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i.x, i.y, abs_sub.z }, "stanag30" ); } } @@ -955,8 +883,8 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( auto &i : barbed_wire ) { //10% chance to spawn corpses of bloody people/zombies on every tile of barbed wire fence if( one_in( 10 ) ) { - m.add_corpse( { i, abs_sub.z } ); - m.add_field( { i, abs_sub.z }, fd_blood, rng( 1, 3 ) ); + m.add_corpse( { i.x, i.y, abs_sub.z } ); + m.add_field( { i.x, i.y, abs_sub.z }, fd_blood, rng( 1, 3 ) ); } } @@ -982,7 +910,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( const auto &loc : m.points_in_radius( { x, y, abs_sub.z }, 1 ) ) { //50% chance to spawn gibs in every tile around corpse in 1-tile radius if( one_in( 2 ) ) { - m.add_field( { loc.xy(), abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); + m.add_field( { loc.x, loc.y, abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); } } } @@ -992,9 +920,9 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) //Set two warning signs on the last horizontal line of the submap x = rng( 1, SEEX ); x1 = rng( SEEX + 1, SEEX * 2 ); - m.furn_set( point( x, SEEY * 2 - 1 ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( x, SEEY * 2 - 1, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( x, SEEY * 2 - 1, abs_sub.z ), text ); - m.furn_set( point( x1, SEEY * 2 - 1 ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( x1, SEEY * 2 - 1, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( x1, SEEY * 2 - 1, abs_sub.z ), text ); } @@ -1012,8 +940,8 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( auto &i : barbed_wire ) { //10% chance to spawn corpses of bloody people/zombies on every tile of barbed wire fence if( one_in( 10 ) ) { - m.add_corpse( { i, abs_sub.z } ); - m.add_field( { i, abs_sub.z }, fd_blood, rng( 1, 3 ) ); + m.add_corpse( { i.x, i.y, abs_sub.z } ); + m.add_field( { i.x, i.y, abs_sub.z }, fd_blood, rng( 1, 3 ) ); } } @@ -1025,7 +953,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( const auto &loc : g->m.points_in_radius( { 11, 21, abs_sub.z }, 1 ) ) { //50% chance to spawn gibs in every tile around corpse in 1-tile radius if( one_in( 2 ) ) { - m.add_field( { loc.xy(), abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); + m.add_field( { loc.x, loc.y, abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); } } item body = item::make_corpse(); @@ -1051,7 +979,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( 5, 16, 18, 16 ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i.x, i.y, abs_sub.z }, "stanag30" ); } } @@ -1083,7 +1011,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( const auto &loc : g->m.points_in_radius( { x, y, abs_sub.z }, 1 ) ) { //50% chance to spawn gibs in every tile around corpse in 1-tile radius if( one_in( 2 ) ) { - m.add_field( { loc.xy(), abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); + m.add_field( { loc.x, loc.y, abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); } } } @@ -1093,9 +1021,9 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) //Set two warning signs on the first horizontal line of the submap x = rng( 1, SEEX ); x1 = rng( SEEX + 1, SEEX * 2 ); - m.furn_set( point( x, 0 ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( x, 0, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( x, 0, abs_sub.z ), text ); - m.furn_set( point( x1, 0 ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( x1, 0, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( x1, 0, abs_sub.z ), text ); } @@ -1125,7 +1053,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) //Blood and gore std::vector blood_track = line_to( 1, 6, 8, 6 ); for( auto &i : blood_track ) { - m.add_field( { i, abs_sub.z }, fd_blood, 1 ); + m.add_field( { i.x, i.y, abs_sub.z }, fd_blood, 1 ); } m.add_field( { 1, 6, abs_sub.z }, fd_gibs_flesh, 1 ); @@ -1142,8 +1070,8 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) //Spill sand from damaged sandbags std::vector sandbag_positions = squares_in_direction( 10, 7, 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.x, i.y, abs_sub.z }, "bag_canvas", rng( 5, 13 ) ); + m.spawn_item( { i.x, i.y, abs_sub.z }, "material_sand", rng( 3, 8 ) ); } } else { m.put_items_from_loc( "army_bed", { 1, 6, abs_sub.z } ); @@ -1160,7 +1088,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( 9, 3, 9, 13 ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i.x, i.y, abs_sub.z }, "stanag30" ); } } //Intact sandbag barricade @@ -1192,7 +1120,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( 9, 16, 9, 20 ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i.x, i.y, abs_sub.z }, "stanag30" ); } } @@ -1200,8 +1128,8 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( auto &i : barbed_wire ) { //10% chance to spawn corpses of bloody people/zombies on every tile of barbed wire fence if( one_in( 10 ) ) { - m.add_corpse( { i, abs_sub.z } ); - m.add_field( { i, abs_sub.z }, fd_blood, rng( 1, 3 ) ); + m.add_corpse( { i.x, i.y, abs_sub.z } ); + m.add_field( { i.x, i.y, abs_sub.z }, fd_blood, rng( 1, 3 ) ); } } @@ -1227,7 +1155,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( const auto &loc : g->m.points_in_radius( { x, y, abs_sub.z }, 1 ) ) { //50% chance to spawn gibs in every tile around corpse in 1-tile radius if( one_in( 2 ) ) { - m.add_field( { loc.xy(), abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); + m.add_field( { loc.x, loc.y, abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); } } } @@ -1237,9 +1165,9 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) //Set two warning signs on the last vertical line of the submap y = rng( 1, SEEY ); y1 = rng( SEEY + 1, SEEY * 2 ); - m.furn_set( point( SEEX * 2 - 1, y ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( SEEX * 2 - 1, y, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( SEEX * 2 - 1, y, abs_sub.z ), text ); - m.furn_set( point( SEEX * 2 - 1, y1 ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( SEEX * 2 - 1, y1, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( SEEX * 2 - 1, y1, abs_sub.z ), text ); } @@ -1272,7 +1200,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) std::vector empty_magazines_locations = line_to( 15, 2, 15, 8 ); for( auto &i : empty_magazines_locations ) { if( one_in( 3 ) ) { - m.spawn_item( { i, abs_sub.z }, "stanag30" ); + m.spawn_item( { i.x, i.y, abs_sub.z }, "stanag30" ); } } @@ -1312,7 +1240,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) //Spawn blood for( const auto &loc : m.points_in_radius( { 23, 12, abs_sub.z }, 1, 0 ) ) { if( one_in( 2 ) ) { - m.add_field( { loc.xy(), abs_sub.z }, fd_blood, rng( 1, 3 ) ); + m.add_field( { loc.x, loc.y, abs_sub.z }, fd_blood, rng( 1, 3 ) ); } } //Spawn trash in a crate and its surroundings @@ -1359,7 +1287,7 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) for( const auto &loc : g->m.points_in_radius( { x, y, abs_sub.z }, 1 ) ) { //50% chance to spawn gibs in every tile around corpse in 1-tile radius if( one_in( 2 ) ) { - m.add_field( { loc.xy(), abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); + m.add_field( { loc.x, loc.y, abs_sub.z }, fd_gibs_flesh, rng( 1, 3 ) ); } } } @@ -1369,9 +1297,9 @@ static void mx_minefield( map &m, const tripoint &abs_sub ) //Set two warning signs on the first vertical line of the submap y = rng( 1, SEEY ); y1 = rng( SEEY + 1, SEEY * 2 ); - m.furn_set( point( 0, y ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( 0, y, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( 0, y, abs_sub.z ), text ); - m.furn_set( point( 0, y1 ), furn_str_id( "f_sign_warning" ) ); + m.furn_set( 0, y1, furn_str_id( "f_sign_warning" ) ); m.set_signage( tripoint( 0, y1, abs_sub.z ), text ); } } @@ -1385,7 +1313,7 @@ static void mx_crater( map &m, const tripoint &abs_sub ) for( int j = y - size; j <= y + size; j++ ) { //If we're using circular distances, make circular craters //Pythagoras to the rescue, x^2 + y^2 = hypotenuse^2 - if( !trigdist || ( i - x ) * ( i - x ) + ( j - y ) * ( j - y ) <= size_squared ) { + if( !trigdist || ( ( ( i - x ) * ( i - x ) + ( j - y ) * ( j - y ) ) <= size_squared ) ) { m.destroy( tripoint( i, j, abs_sub.z ), true ); m.adjust_radiation( i, j, rng( 20, 40 ) ); } @@ -1400,18 +1328,18 @@ static void place_fumarole( map &m, int x1, int y1, int x2, int y2, std::set fumarole = line_to( x1, y1, x2, y2, 0 ); for( auto &i : fumarole ) { - m.ter_set( i, t_lava ); + m.ter_set( i.x, i.y, t_lava ); // Add all adjacent tiles (even on diagonals) for possible ignition // Since they're being added to a set, duplicates won't occur - ignited.insert( i + point_north_west ); - ignited.insert( i + point_north ); - ignited.insert( i + point_north_east ); - ignited.insert( i + point_west ); - ignited.insert( i + point_east ); - ignited.insert( i + point_south_west ); - ignited.insert( i + point_south ); - ignited.insert( i + point_south_east ); + ignited.insert( point( i.x - 1, i.y - 1 ) ); + ignited.insert( point( i.x, i.y - 1 ) ); + ignited.insert( point( i.x + 1, i.y - 1 ) ); + ignited.insert( point( i.x - 1, i.y ) ); + ignited.insert( point( i.x + 1, i.y ) ); + ignited.insert( point( i.x - 1, i.y + 1 ) ); + ignited.insert( point( i.x, i.y + 1 ) ); + ignited.insert( point( i.x + 1, i.y + 1 ) ); if( one_in( 6 ) ) { m.spawn_item( i.x - 1, i.y - 1, "chunk_sulfur" ); @@ -1420,7 +1348,6 @@ static void place_fumarole( map &m, int x1, int y1, int x2, int y2, std::setm.points_in_radius( portal_location, 5 ) ) { - if( one_in( 3 ) ) { - fe.marlossify( loc ); - } - } - //50% chance to spawn pouf-maker - m.place_spawns( GROUP_FUNGI_FUNGALOID, 2, x - 1, y - 1, x + 1, y + 1, 1, true ); - break; - } - //Netherworld monsters spawning around the portal - case 2: { - m.add_field( portal_location, fd_fatigue, 3 ); - for( const auto &loc : g->m.points_in_radius( portal_location, 5 ) ) { - m.place_spawns( GROUP_NETHER_PORTAL, 15, loc.x - 5, loc.y - 5, loc.x + 5, loc.y + 5, 1, true ); - } - break; - } - //Several cracks in the ground originating from the portal - case 3: { - m.add_field( portal_location, fd_fatigue, 3 ); - for( int i = 0; i < rng( 1, 10 ); i++ ) { - tripoint end_location = { rng( 0, SEEX * 2 - 1 ), rng( 0, SEEY * 2 - 1 ), abs_sub.z }; - std::vector failure = line_to( portal_location, end_location ); - for( auto &i : failure ) { - m.ter_set( { i.xy(), abs_sub.z }, t_pit ); - } - } - break; - } - //Radiation from the portal killed the vegetation - case 4: { - m.add_field( portal_location, fd_fatigue, 3 ); - const int rad = 10; - for( int i = x - rad; i <= x + rad; i++ ) { - for( int j = y - rad; j <= y + rad; j++ ) { - if( trig_dist( x, y, i, j ) + rng( 0, 3 ) <= rad ) { - const tripoint loc( i, j, abs_sub.z ); - dead_vegetation_parser( m, loc ); - m.adjust_radiation( loc.x, loc.y, rng( 20, 40 ) ); - } - } - } - break; - } - //Lava seams originating from the portal - case 5: { - if( abs_sub.z <= 0 ) { - int x1 = rng( 0, SEEX - 3 ), y1 = rng( 0, SEEY - 3 ), - x2 = rng( SEEX, SEEX * 2 - 3 ), y2 = rng( SEEY, SEEY * 2 - 3 ); - // Pick a random cardinal direction to also spawn lava in - // This will make the lava a single connected line, not just on diagonals - static const std::array possibilities = { { EAST, WEST, NORTH, SOUTH } }; - const direction extra_lava_dir = random_entry( possibilities ); - int x_extra = 0; - int y_extra = 0; - switch( extra_lava_dir ) { - case NORTH: - y_extra = -1; - break; - case EAST: - x_extra = 1; - break; - case SOUTH: - y_extra = 1; - break; - case WEST: - x_extra = -1; - break; - default: - break; - } - - const tripoint portal_location = { x1 + x_extra, y1 + y_extra, abs_sub.z }; - m.add_field( portal_location, fd_fatigue, 3 ); - - std::set ignited; - place_fumarole( m, x1, y1, x2, y2, ignited ); - place_fumarole( m, x1 + x_extra, y1 + y_extra, x2 + x_extra, y2 + y_extra, ignited ); - - for( auto &i : ignited ) { - // Don't need to do anything to tiles that already have lava on them - if( m.ter( i.x, i.y ) != t_lava ) { - // Spawn an intense but short-lived fire - // Any furniture or buildings will catch fire, otherwise it will burn out quickly - m.add_field( tripoint( i, abs_sub.z ), fd_fire, 15, 1_minutes ); - } + int x = rng( 5, SEEX * 2 - 6 ), y = rng( 5, SEEY * 2 - 6 ); + m.add_field( {x, y, abs_sub.z}, fd_fatigue, 3, 0_turns ); + fungal_effects fe( *g, m ); + for( int i = x - 5; i <= x + 5; i++ ) { + for( int j = y - 5; j <= y + 5; j++ ) { + if( rng( 1, 9 ) >= trig_dist( x, y, i, j ) ) { + fe.marlossify( tripoint( i, j, abs_sub.z ) ); + if( one_in( 15 ) ) { + m.place_spawns( GROUP_NETHER_PORTAL, 1, i, j, i, j, 1, true ); } } - break; - } - case 6: { - //Mi-go went through the portal and began constructing their base of operations - m.add_field( portal_location, fd_fatigue, 3 ); - for( const auto &loc : g->m.points_in_radius( portal_location, 5 ) ) { - m.place_spawns( GROUP_MI_GO_CAMP_OM, 30, loc.x - 5, loc.y - 5, loc.x + 5, loc.y + 5, 1, true ); - } - const int x_pos = x + rng( -5, 5 ); - const int y_pos = y + rng( -5, 5 ); - circle( &m, ter_id( "t_wall_resin" ), x_pos, y_pos, 6 ); - rough_circle( &m, ter_id( "t_floor_resin" ), x_pos, y_pos, 5 ); - break; - } - //Anomaly caused by the portal and spawned an artifact - case 7: { - m.add_field( portal_location, fd_fatigue, 3 ); - artifact_natural_property prop = - static_cast( rng( ARTPROP_NULL + 1, ARTPROP_MAX - 1 ) ); - m.create_anomaly( portal_location, prop ); - m.spawn_natural_artifact( { x + rng( -1, 1 ), y + rng( -1, 1 ), abs_sub.z }, prop ); - break; } } } -//Obsolete, remove after 0.E. static void mx_anomaly( map &m, const tripoint &abs_sub ) { tripoint center( rng( 6, SEEX * 2 - 7 ), rng( 6, SEEY * 2 - 7 ), abs_sub.z ); @@ -1635,8 +1453,8 @@ static void mx_spider( map &m, const tripoint &abs_sub ) } } - m.ter_set( point( 12, 12 ), t_dirt ); - m.furn_set( point( 12, 12 ), f_egg_sackws ); + m.ter_set( 12, 12, t_dirt ); + m.furn_set( 12, 12, f_egg_sackws ); m.remove_field( { 12, 12, m.get_abs_sub().z }, fd_web ); m.add_spawn( mon_spider_web, rng( 1, 2 ), SEEX, SEEY ); } @@ -1828,6 +1646,58 @@ static void mx_clay_deposit( map &m, const tripoint &abs_sub ) } } +static void dead_vegetation_parser( map &m, const tripoint &loc ) +{ + // furniture plants die to withered plants + const furn_t &fid = m.furn( loc ).obj(); + if( fid.has_flag( "PLANT" ) || fid.has_flag( "FLOWER" ) || fid.has_flag( "ORGANIC" ) ) { + m.i_clear( loc ); + m.furn_set( loc, f_null ); + m.spawn_item( loc, "withered" ); + } + // terrain specific conversions + const ter_id tid = m.ter( loc ); + static const std::map dies_into {{ + {t_grass, ter_str_id( "t_grass_dead" )}, + {t_grass_long, ter_str_id( "t_grass_dead" )}, + {t_grass_tall, ter_str_id( "t_grass_dead" )}, + {t_moss, ter_str_id( "t_grass_dead" )}, + {t_tree_pine, ter_str_id( "t_tree_deadpine" )}, + {t_tree_birch, ter_str_id( "t_tree_birch_harvested" )}, + {t_tree_willow, ter_str_id( "t_tree_dead" )}, + {t_tree_hickory, ter_str_id( "t_tree_hickory_dead" )}, + {t_tree_hickory_harvested, ter_str_id( "t_tree_hickory_dead" )}, + {t_grass_golf, ter_str_id( "t_grass_dead" )}, + {t_grass_white, ter_str_id( "t_grass_dead" )}, + }}; + + const auto iter = dies_into.find( tid ); + if( iter != dies_into.end() ) { + m.ter_set( loc, iter->second ); + } + // non-specific small vegetation falls into sticks, large dies and randomly falls + const ter_t &tr = tid.obj(); + if( tr.has_flag( "SHRUB" ) ) { + m.ter_set( loc, t_dirt ); + if( one_in( 2 ) ) { + m.spawn_item( loc, "stick" ); + } + } else if( tr.has_flag( "TREE" ) ) { + if( one_in( 4 ) ) { + m.ter_set( loc, ter_str_id( "t_trunk" ) ); + } else if( one_in( 4 ) ) { + m.ter_set( loc, ter_str_id( "t_stump" ) ); + } else { + m.ter_set( loc, ter_str_id( "t_tree_dead" ) ); + } + } else if( tr.has_flag( "YOUNG" ) ) { + m.ter_set( loc, ter_str_id( "t_dirt" ) ); + if( one_in( 2 ) ) { + m.spawn_item( loc, "stick_long" ); + } + } +} + static void mx_dead_vegetation( map &m, const tripoint &abs_sub ) { // This map extra kills all plant life, creating area of desolation. @@ -2030,10 +1900,10 @@ static void mx_roadworks( map &m, const tripoint &abs_sub ) // (curved roads & intersections excluded, perhaps TODO) const tripoint abs_omt = sm_to_omt_copy( abs_sub ); - const oter_id &north = overmap_buffer.ter( abs_omt + point_north ); - const oter_id &south = overmap_buffer.ter( abs_omt + point_south ); - const oter_id &west = overmap_buffer.ter( abs_omt + point_west ); - const oter_id &east = overmap_buffer.ter( abs_omt + point_east ); + const oter_id &north = overmap_buffer.ter( abs_omt + point( 0, -1 ) ); + const oter_id &south = overmap_buffer.ter( abs_omt + point( 0, 1 ) ); + const oter_id &west = overmap_buffer.ter( abs_omt + point( -1, 0 ) ); + const oter_id &east = overmap_buffer.ter( abs_omt + point( 1, 0 ) ); const bool road_at_north = is_ot_match( "road", north, ot_match_type::type ); const bool road_at_south = is_ot_match( "road", south, ot_match_type::type ); @@ -2140,7 +2010,7 @@ static void mx_roadworks( map &m, const tripoint &abs_sub ) equipment.y = rng( 20, 24 ); } } - } else if( road_at_north && road_at_east && !road_at_west && !road_at_south ) { + } else if( ( road_at_north && road_at_east && !road_at_west && !road_at_south ) ) { // SW side of the N-E road curve // road barricade line_furn( &m, f_barricade_road, 1, 0, 11, 0 ); @@ -2173,7 +2043,7 @@ static void mx_roadworks( map &m, const tripoint &abs_sub ) equipment.x = rng( 0, 22 ); equipment.y = rng( 22, 23 ); } - } else if( road_at_south && road_at_west && !road_at_east && !road_at_north ) { + } else if( ( road_at_south && road_at_west && !road_at_east && !road_at_north ) ) { // NE side of the S-W road curve // road barricade line_furn( &m, f_barricade_road, 0, 4, 0, 12 ); @@ -2206,7 +2076,7 @@ static void mx_roadworks( map &m, const tripoint &abs_sub ) equipment.x = rng( 20, 23 ); equipment.y = rng( 0, 23 ); } - } else if( road_at_north && road_at_west && !road_at_east && !road_at_south ) { + } else if( ( road_at_north && road_at_west && !road_at_east && !road_at_south ) ) { // SE side of the W-N road curve // road barricade line_furn( &m, f_barricade_road, 0, 12, 0, 19 ); @@ -2240,7 +2110,7 @@ static void mx_roadworks( map &m, const tripoint &abs_sub ) equipment.x = rng( 0, 23 ); equipment.y = rng( 20, 23 ); } - } else if( road_at_south && road_at_east && !road_at_west && !road_at_north ) { + } else if( ( road_at_south && road_at_east && !road_at_west && !road_at_north ) ) { // NW side of the S-E road curve // road barricade line_furn( &m, f_barricade_road, 4, 23, 12, 23 ); @@ -2318,9 +2188,9 @@ static void mx_roadworks( map &m, const tripoint &abs_sub ) } // equipment placer if( one_in( 3 ) ) { - m.furn_set( equipment, f_crate_c ); - m.place_items( "mine_equipment", 100, tripoint( equipment, 0 ), - tripoint( equipment, 0 ), true, 0, 100 ); + m.furn_set( equipment.x, equipment.y, f_crate_c ); + m.place_items( "mine_equipment", 100, tripoint( equipment.x, equipment.y, 0 ), + tripoint( equipment.x, equipment.y, 0 ), true, 0, 100 ); } } @@ -2369,7 +2239,7 @@ static void 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 }, "wheel", 1, 0, calendar::time_of_cataclysm, 4 ); m.spawn_item( { 16, 16, abs_sub.z }, "wrench" ); if( one_in( 2 ) ) { //Unknown people killed and robbed the poor guy @@ -2482,9 +2352,9 @@ static void mx_casings( map &m, const tripoint &abs_sub ) std::vector casings = line_to( from, to ); for( auto &i : casings ) { if( one_in( 2 ) ) { - m.spawn_items( { i.xy(), abs_sub.z }, items ); + m.spawn_items( { i.x, i.y, abs_sub.z }, items ); if( one_in( 2 ) ) { - m.add_field( { i.xy(), abs_sub.z }, fd_blood, rng( 1, 3 ) ); + m.add_field( { i.x, i.y, abs_sub.z }, fd_blood, rng( 1, 3 ) ); } } } @@ -2605,57 +2475,22 @@ map_extra_pointer get_function( const std::string &name ) void apply_function( const string_id &id, map &m, const tripoint &abs_sub ) { const map_extra &extra = id.obj(); - switch( extra.generator_method ) { - case map_extra_method::map_extra_function: { - const map_extra_pointer mx_func = get_function( extra.generator_id ); - if( mx_func != nullptr ) { - mx_func( m, abs_sub ); - } - break; - } - case map_extra_method::mapgen: { - tripoint over( abs_sub ); - sm_to_omt( over ); - const regional_settings *rsettings = &overmap_buffer.get_settings( over ); - const oter_id terrain_type = overmap_buffer.ter( over ); - const oter_id t_above = overmap_buffer.ter( over + tripoint_above ); - const oter_id t_below = overmap_buffer.ter( over + tripoint_below ); - const oter_id t_north = overmap_buffer.ter( over + tripoint_north ); - const oter_id t_north_east = overmap_buffer.ter( over + tripoint_north_east ); - const oter_id t_east = overmap_buffer.ter( over + tripoint_east ); - const oter_id t_south_east = overmap_buffer.ter( over + tripoint_south_east ); - const oter_id t_south = overmap_buffer.ter( over + tripoint_south ); - const oter_id t_south_west = overmap_buffer.ter( over + tripoint_south_west ); - const oter_id t_west = overmap_buffer.ter( over + tripoint_west ); - const oter_id t_north_west = overmap_buffer.ter( over + tripoint_north_west ); - const mapgendata dat( t_north, t_east, t_south, t_west, - t_north_east, t_south_east, t_south_west, t_north_west, - t_above, t_below, over.z, *rsettings, m ); - run_mapgen_func( extra.generator_id, &m, terrain_type, dat, calendar::turn, 0 ); - break; - } - case map_extra_method::update_mapgen: { - run_mapgen_update_func( extra.generator_id, sm_to_omt_copy( abs_sub ) ); - break; - } - case map_extra_method::null: - default: - break; - } - overmap_buffer.add_extra( sm_to_omt_copy( abs_sub ), id ); - if( get_option( "AUTO_NOTES" ) && get_option( "AUTO_NOTES_MAP_EXTRAS" ) ) { - const std::string mx_note = - string_format( "%s:%s;%s: %s", - extra.get_symbol(), - get_note_string_from_color( extra.color ), - extra.name, - extra.description ); - if( !mx_note.empty() ) { + const map_extra_pointer mx_func = extra.function_pointer; + const std::string mx_note = + string_format( "%s:%s;%s: %s", + extra.get_symbol(), + get_note_string_from_color( extra.color ), + extra.name, + extra.description ); + if( mx_func != nullptr ) { + mx_func( m, abs_sub ); + overmap_buffer.add_extra( sm_to_omt_copy( abs_sub ), id ); + if( get_option( "AUTO_NOTES" ) && get_option( "AUTO_NOTES_MAP_EXTRAS" ) && + !mx_note.empty() ) { overmap_buffer.add_note( sm_to_omt_copy( abs_sub ), mx_note ); } } } - void apply_function( const std::string &id, map &m, const tripoint &abs_sub ) { apply_function( string_id( id ), m, abs_sub ); @@ -2671,66 +2506,18 @@ void load( JsonObject &jo, const std::string &src ) extras.load( jo, src ); } -void check_consistency() -{ - extras.check(); -} - } // namespace MapExtras void map_extra::load( JsonObject &jo, const std::string & ) { mandatory( jo, was_loaded, "name", name ); mandatory( jo, was_loaded, "description", description ); - if( jo.has_object( "generator" ) ) { - JsonObject jg = jo.get_object( "generator" ); - generator_method = jg.get_enum_value( "generator_method", - map_extra_method::null ); - mandatory( jg, was_loaded, "generator_id", generator_id ); + mandatory( jo, was_loaded, "function", function ); + function_pointer = MapExtras::get_function( function ); + if( function_pointer == nullptr ) { + debugmsg( "invalid map extra function (%s) defined for map extra (%s)", function, id.str() ); } optional( jo, was_loaded, "sym", symbol, unicode_codepoint_from_symbol_reader, NULL_UNICODE ); color = jo.has_member( "color" ) ? color_from_string( jo.get_string( "color" ) ) : c_white; optional( jo, was_loaded, "autonote", autonote, false ); } - -extern std::map> > oter_mapgen; -extern std::map> > - nested_mapgen; -extern std::map> > - update_mapgen; - -void map_extra::check() const -{ - switch( generator_method ) { - case map_extra_method::map_extra_function: { - const map_extra_pointer mx_func = MapExtras::get_function( generator_id ); - if( mx_func == nullptr ) { - debugmsg( "invalid map extra function (%s) defined for map extra (%s)", generator_id, id.str() ); - break; - } - break; - } - case map_extra_method::mapgen: { - /* - const auto fmapit = oter_mapgen.find( generator_id ); - const oter_id extra_oter( generator_id ); - if( ( fmapit == oter_mapgen.end() || !fmapit->second.empty() ) && !extra_oter.is_valid() ) { - debugmsg( "invalid mapgen function (%s) defined for map extra (%s)", generator_id, id.str() ); - } - */ - break; - } - case map_extra_method::update_mapgen: { - const auto update_mapgen_func = update_mapgen.find( generator_id ); - if( update_mapgen_func == update_mapgen.end() || update_mapgen_func->second.empty() ) { - debugmsg( "invalid update mapgen function (%s) defined for map extra (%s)", generator_id, - id.str() ); - break; - } - break; - } - case map_extra_method::null: - default: - break; - } -} diff --git a/src/map_extras.h b/src/map_extras.h index 9b5a89a026ca3..8874271dda39f 100644 --- a/src/map_extras.h +++ b/src/map_extras.h @@ -14,13 +14,6 @@ class JsonObject; class map; struct tripoint; -enum class map_extra_method : int { - null = 0, - map_extra_function, - mapgen, - update_mapgen, -}; - using map_extra_pointer = void( * )( map &, const tripoint & ); class map_extra @@ -29,8 +22,8 @@ class map_extra string_id id = string_id::NULL_ID(); std::string name; std::string description; - std::string generator_id; - map_extra_method generator_method; + std::string function; + map_extra_pointer function_pointer; bool autonote = false; uint32_t symbol = UTF8_getch( "X" ); nc_color color = c_red; @@ -42,7 +35,6 @@ class map_extra // Used by generic_factory bool was_loaded = false; void load( JsonObject &jo, const std::string &src ); - void check() const; }; namespace MapExtras @@ -56,7 +48,6 @@ void apply_function( const string_id &id, map &m, const tripoint &abs void apply_function( const std::string &id, map &m, const tripoint &abs_sub ); void load( JsonObject &jo, const std::string &src ); -void check_consistency(); } // namespace MapExtras diff --git a/src/map_field.cpp b/src/map_field.cpp index 0eaf7145dde41..82a6c7dae427f 100644 --- a/src/map_field.cpp +++ b/src/map_field.cpp @@ -56,11 +56,8 @@ #include "game_constants.h" #include "point.h" #include "scent_block.h" -#include "mongroup.h" const species_id FUNGUS( "FUNGUS" ); -const species_id INSECT( "INSECT" ); -const species_id SPIDER( "SPIDER" ); const efftype_id effect_badpoison( "badpoison" ); const efftype_id effect_blind( "blind" ); @@ -266,7 +263,7 @@ void map::spread_gas( field_entry &cur, const tripoint &p, int percent_spread, // First check if we can fall // TODO: Make fall and rise chances parameters to enable heavy/light gas if( zlevels && p.z > -OVERMAP_DEPTH ) { - const tripoint down{ p.xy(), p.z - 1 }; + const tripoint down{ p.x, p.y, p.z - 1 }; maptile down_tile = maptile_at_internal( down ); if( gas_can_spread_to( cur, down_tile ) && valid_move( p, down, true, true ) ) { gas_spread_to( cur, down_tile ); @@ -320,7 +317,7 @@ void map::spread_gas( field_entry &cur, const tripoint &p, int percent_spread, } } } else if( zlevels && p.z < OVERMAP_HEIGHT ) { - const tripoint up{ p.xy(), p.z + 1 }; + const tripoint up{ p.x, p.y, p.z + 1 }; maptile up_tile = maptile_at_internal( up ); if( gas_can_spread_to( cur, up_tile ) && valid_move( p, up, true, true ) ) { gas_spread_to( cur, up_tile ); @@ -353,7 +350,7 @@ void map::create_hot_air( const tripoint &p, int intensity ) } for( int counter = 0; counter < 5; counter++ ) { - tripoint dst( p + point( rng( -1, 1 ), rng( -1, 1 ) ) ); + tripoint dst( p.x + rng( -1, 1 ), p.y + rng( -1, 1 ), p.z ); add_field( dst, hot_air, 1 ); } } @@ -413,7 +410,6 @@ bool map::process_fields_in_submap( submap *const current_submap, field_type_id curtype = cur.get_field_type(); // Again, legacy support in the event someone Mods set_field_intensity to allow more values. if( cur.get_field_intensity() > 3 || cur.get_field_intensity() < 1 ) { - // TODO: Remove this eventually as we would suppoort more than 3 field intensity levels debugmsg( "Whoooooa intensity of %d", cur.get_field_intensity() ); } @@ -424,14 +420,6 @@ bool map::process_fields_in_submap( submap *const current_submap, curtype = fd_null; } - // Upgrade field intensity - if( cur.intensity_upgrade_chance() > 0 && - one_in( cur.intensity_upgrade_chance() ) && - cur.intensity_upgrade_duration() > 0_turns && - calendar::once_every( cur.intensity_upgrade_duration() ) ) { - cur.set_field_intensity( cur.get_field_intensity() + 1 ); - } - int part; const ter_t &ter = map_tile.get_ter_t(); // Dissipate faster in water @@ -441,7 +429,7 @@ bool map::process_fields_in_submap( submap *const current_submap, if( curtype == fd_acid ) { // Try to fall by a z-level if( zlevels && p.z > -OVERMAP_DEPTH ) { - tripoint dst{ p.xy(), p.z - 1 }; + tripoint dst{ p.x, p.y, p.z - 1 }; if( valid_move( p, dst, true, true ) ) { maptile dst_tile = maptile_at_internal( dst ); field_entry *acid_there = dst_tile.find_field( fd_acid ); @@ -612,7 +600,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } else if( ter.has_flag( TFLAG_NO_FLOOR ) && zlevels && p.z > -OVERMAP_DEPTH ) { // We're hanging in the air - let's fall down - tripoint dst{ p.xy(), p.z - 1 }; + tripoint dst{ p.x, p.y, p.z - 1 }; if( valid_move( p, dst, true, true ) ) { maptile dst_tile = maptile_at_internal( dst ); field_entry *fire_there = dst_tile.find_field( fd_fire ); @@ -776,7 +764,7 @@ bool map::process_fields_in_submap( submap *const current_submap, // Spreading down is achieved by wrecking the walls/floor and then falling if( zlevels && cur.get_field_intensity() == 3 && p.z < OVERMAP_HEIGHT ) { // Let it burn through the floor - maptile dst = maptile_at_internal( {p.xy(), p.z + 1} ); + maptile dst = maptile_at_internal( {p.x, p.y, p.z + 1} ); const auto &dst_ter = dst.get_ter_t(); if( dst_ter.has_flag( TFLAG_NO_FLOOR ) || dst_ter.has_flag( TFLAG_FLAMMABLE ) || @@ -920,7 +908,7 @@ bool map::process_fields_in_submap( submap *const current_submap, rng( 3, 35 ) < cur.get_field_intensity() * 10 ) { bool smoke_up = zlevels && p.z < OVERMAP_HEIGHT; if( smoke_up ) { - tripoint up{p.xy(), p.z + 1}; + tripoint up{p.x, p.y, p.z + 1}; maptile dst = maptile_at_internal( up ); const ter_t &dst_ter = dst.get_ter_t(); if( dst_ter.has_flag( TFLAG_NO_FLOOR ) ) { @@ -977,7 +965,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } } - // Apply radiation + // Apply radition if( cur.extra_radiation_max() > 0 ) { int extra_radiation = rng( cur.extra_radiation_min(), cur.extra_radiation_max() ); adjust_radiation( p, extra_radiation ); @@ -1049,7 +1037,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } // Spread to adjacent space, then if( valid.empty() ) { - tripoint dst( p + point( rng( -1, 1 ), rng( -1, 1 ) ) ); + tripoint dst( p.x + rng( -1, 1 ), p.y + rng( -1, 1 ), p.z ); field_entry *elec = get_field( dst ).find_field( fd_electricity ); if( passable( dst ) && elec != nullptr && elec->get_field_intensity() < 3 ) { @@ -1068,22 +1056,19 @@ bool map::process_fields_in_submap( submap *const current_submap, } } } - - int monster_spawn_chance = cur.monster_spawn_chance(); - int monster_spawn_count = cur.monster_spawn_count(); - if( monster_spawn_count > 0 && monster_spawn_chance > 0 && one_in( monster_spawn_chance ) ) { - for( ; monster_spawn_count > 0; monster_spawn_count-- ) { - MonsterGroupResult spawn_details = MonsterGroupManager::GetResultFromGroup( - cur.monster_spawn_group(), &monster_spawn_count ); - if( !spawn_details.name ) { - continue; - } - if( const auto spawn_point = random_point( points_in_radius( p, - cur.monster_spawn_radius() ), [this]( const tripoint & n ) { - return passable( n ); - } ) ) { - add_spawn( spawn_details.name, spawn_details.pack_size, spawn_point->x, spawn_point->y ); + if( curtype == fd_fatigue ) { + static const std::array monids = { { + mtype_id( "mon_flying_polyp" ), mtype_id( "mon_hunting_horror" ), + mtype_id( "mon_mi_go" ), mtype_id( "mon_yugg" ), mtype_id( "mon_gelatin" ), + mtype_id( "mon_flaming_eye" ), mtype_id( "mon_kreck" ), mtype_id( "mon_gracke" ), + mtype_id( "mon_blank" ), } + }; + if( cur.get_field_intensity() < 3 && calendar::once_every( 6_hours ) && one_in( 10 ) ) { + cur.set_field_intensity( cur.get_field_intensity() + 1 ); + // Spawn nether creature! + } else if( cur.get_field_intensity() == 3 && one_in( 600 ) ) { + g->summon_mon( random_entry( monids ), p ); } } @@ -1208,7 +1193,6 @@ bool map::process_fields_in_submap( submap *const current_submap, curfield.find_field( fd_gas_vent ) || curfield.find_field( fd_smoke_vent ) || curfield.find_field( fd_fungicidal_gas ) || - curfield.find_field( fd_insecticidal_gas ) || curfield.find_field( fd_fire_vent ) || curfield.find_field( fd_flame_burst ) || curfield.find_field( fd_electricity ) || @@ -1250,7 +1234,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } if( curtype == fd_incendiary ) { // Needed for variable scope - tripoint dst( p + point( rng( -1, 1 ), rng( -1, 1 ) ) ); + tripoint dst( p.x + rng( -1, 1 ), p.y + rng( -1, 1 ), p.z ); if( has_flag( TFLAG_FLAMMABLE, dst ) || has_flag( TFLAG_FLAMMABLE_ASH, dst ) || has_flag( TFLAG_FLAMMABLE_HARD, dst ) ) { @@ -1574,16 +1558,16 @@ void map::player_in_field( player &u ) } } } - - if( cur.extra_radiation_min() > 0 ) { + if( ft == fd_nuke_gas ) { // Get irradiated by the nuclear fallout. - const float rads = rng( cur.extra_radiation_min() + 1, - cur.extra_radiation_max() * ( cur.extra_radiation_max() + 1 ) ); + // Changed to min of intensity, not 0. + const float rads = rng( cur.get_field_intensity(), + cur.get_field_intensity() * ( cur.get_field_intensity() + 1 ) ); const bool rad_proof = !u.irradiate( rads ); // TODO: Reduce damage for rad resistant? - if( cur.radiation_hurt_damage_min() > 0 && !rad_proof ) { - u.add_msg_if_player( m_bad, cur.radiation_hurt_message() ); - u.hurtall( rng( cur.radiation_hurt_damage_min(), cur.radiation_hurt_damage_max() ), nullptr ); + if( cur.get_field_intensity() == 3 && !rad_proof ) { + u.add_msg_if_player( m_bad, _( "This radioactive gas burns!" ) ); + u.hurtall( rng( 1, 3 ), nullptr ); } } if( ft == fd_flame_burst ) { @@ -1705,8 +1689,8 @@ void map::player_in_field( player &u ) u.hurtall( rng( 2, 6 ), nullptr ); } } - // Both gases are unhealthy and become deadly if you cross a related threshold. - if( ft == fd_fungicidal_gas || ft == fd_insecticidal_gas ) { + // Fungicidal gas is unhealthy and becomes deadly if you cross a related threshold. + if( ft == fd_fungicidal_gas ) { // The gas won't harm you inside a vehicle. if( !inside ) { // Full body suits protect you from the effects of the gas. @@ -1714,9 +1698,7 @@ void map::player_in_field( player &u ) u.get_env_resist( bp_eyes ) >= 15 ) ) { const int intensity = cur.get_field_intensity(); bool inhaled = u.add_env_effect( effect_poison, bp_mouth, 5, intensity * 1_minutes ); - if( u.has_trait( trait_id( "THRESH_MYCUS" ) ) || u.has_trait( trait_id( "THRESH_MARLOSS" ) ) || - ( ft == fd_insecticidal_gas && ( u.get_highest_category() == "INSECT" || - u.get_highest_category() == "SPIDER" ) ) ) { + if( u.has_trait( trait_id( "THRESH_MYCUS" ) ) || u.has_trait( trait_id( "THRESH_MARLOSS" ) ) ) { inhaled |= u.add_env_effect( effect_badpoison, bp_mouth, 5, intensity * 1_minutes ); u.hurtall( rng( intensity, intensity * 2 ), nullptr ); u.add_msg_if_player( m_bad, _( "The %s burns your skin." ), cur.name() ); @@ -1999,13 +1981,6 @@ void map::monster_in_field( monster &z ) dam += rng( 4, 7 * intensity ); } } - if( cur_field_type == fd_insecticidal_gas ) { - if( z.type->in_species( INSECT ) || z.type->in_species( SPIDER ) ) { - const int intensity = cur.get_field_intensity(); - z.moves -= rng( 10 * intensity, 30 * intensity ); - dam += rng( 4, 7 * intensity ); - } - } } if( dam > 0 ) { @@ -2018,15 +1993,15 @@ std::tuple map::get_wind_blockers( const int &winddir const tripoint &pos ) { static const std::array>, 9> outputs = {{ - { 330, std::make_tuple( point_east, point_north_east, point_south_east ) }, - { 301, std::make_tuple( point_south_east, point_east, point_south ) }, - { 240, std::make_tuple( point_south, point_south_west, point_south_east ) }, - { 211, std::make_tuple( point_south_west, point_west, point_south ) }, - { 150, std::make_tuple( point_west, point_north_west, point_south_west ) }, - { 121, std::make_tuple( point_north_west, point_north, point_west ) }, - { 60, std::make_tuple( point_north, point_north_west, point_north_east ) }, - { 31, std::make_tuple( point_north_east, point_east, point_north ) }, - { 0, std::make_tuple( point_east, point_north_east, point_south_east ) } + { 330, std::make_tuple( point( 1, 0 ), point( 1, -1 ), point( 1, 1 ) ) }, + { 301, std::make_tuple( point( 1, 1 ), point( 1, 0 ), point( 0, 1 ) ) }, + { 240, std::make_tuple( point( 0, 1 ), point( -1, 1 ), point( 1, 1 ) ) }, + { 211, std::make_tuple( point( -1, 1 ), point( -1, 0 ), point( 0, 1 ) ) }, + { 150, std::make_tuple( point( -1, 0 ), point( -1, -1 ), point( -1, 1 ) ) }, + { 121, std::make_tuple( point( -1, -1 ), point( 0, -1 ), point( -1, 0 ) ) }, + { 60, std::make_tuple( point( 0, -1 ), point( -1, -1 ), point( 1, -1 ) ) }, + { 31, std::make_tuple( point( 1, -1 ), point( 1, 0 ), point( 0, -1 ) ) }, + { 0, std::make_tuple( point( 1, 0 ), point( 1, -1 ), point( 1, 1 ) ) } } }; diff --git a/src/map_item_stack.cpp b/src/map_item_stack.cpp index dcb55ca26382f..5b768a76d5f45 100644 --- a/src/map_item_stack.cpp +++ b/src/map_item_stack.cpp @@ -10,7 +10,7 @@ #include "item_search.h" #include "line.h" -map_item_stack::item_group::item_group() : count( 0 ) +map_item_stack::item_group::item_group() : pos( 0, 0, 0 ), count( 0 ) { } diff --git a/src/map_iterator.h b/src/map_iterator.h index 917c82ac10b51..61b3cad2fa422 100644 --- a/src/map_iterator.h +++ b/src/map_iterator.h @@ -89,7 +89,7 @@ class tripoint_range point_generator end() const { // Return the point AFTER the last one // That is, point under (in z-levels) the first one, but one z-level below the last one - return point_generator( tripoint( minp.xy(), maxp.z + 1 ), *this ); + return point_generator( tripoint( minp.x, minp.y, maxp.z + 1 ), *this ); } size_t size() const { diff --git a/src/mapbuffer.cpp b/src/mapbuffer.cpp index ba6daa2be8583..9d2ec9a999997 100644 --- a/src/mapbuffer.cpp +++ b/src/mapbuffer.cpp @@ -170,9 +170,9 @@ void mapbuffer::save_quad( const std::string &dirname, const std::string &filena std::vector offsets; std::vector submap_addrs; offsets.push_back( point_zero ); - offsets.push_back( point_south ); - offsets.push_back( point_east ); - offsets.push_back( point_south_east ); + offsets.push_back( point( 0, 1 ) ); + offsets.push_back( point( 1, 0 ) ); + offsets.push_back( point( 1, 1 ) ); bool all_uniform = true; for( auto &offsets_offset : offsets ) { diff --git a/src/mapdata.cpp b/src/mapdata.cpp index 517c1a3d7b8b6..ac01549dc134f 100644 --- a/src/mapdata.cpp +++ b/src/mapdata.cpp @@ -397,7 +397,7 @@ void map_data_common_t::load_symbol( JsonObject &jo ) } else if( has_bgcolor ) { load_season_array( jo, "bgcolor", color_, bgcolor_from_string ); } else { - jo.throw_error( R"(Missing member: one of: "color", "bgcolor" must exist.)" ); + jo.throw_error( "Missing member: one of: \"color\", \"bgcolor\" must exist." ); } } @@ -941,7 +941,6 @@ furn_id f_null, f_floor_canvas, f_tatami, f_kiln_empty, f_kiln_full, f_kiln_metal_empty, f_kiln_metal_full, - f_arcfurnace_empty, f_arcfurnace_full, f_smoking_rack, f_smoking_rack_active, f_metal_smoking_rack, f_metal_smoking_rack_active, f_water_mill, f_water_mill_active, f_wind_mill, f_wind_mill_active, @@ -1050,8 +1049,6 @@ void set_furn_ids() f_kiln_full = furn_id( "f_kiln_full" ); f_kiln_metal_empty = furn_id( "f_kiln_metal_empty" ); f_kiln_metal_full = furn_id( "f_kiln_metal_full" ); - f_arcfurnace_empty = furn_id( "f_arcfurnace_empty" ); - f_arcfurnace_full = furn_id( "f_arcfurnace_full" ); f_smoking_rack = furn_id( "f_smoking_rack" ); f_smoking_rack_active = furn_id( "f_smoking_rack_active" ); f_metal_smoking_rack = furn_id( "f_metal_smoking_rack" ); @@ -1118,7 +1115,7 @@ void map_data_common_t::load( JsonObject &jo, const std::string &src ) } else if( harvest_jo.has_string( "id" ) ) { hl = harvest_id( harvest_jo.get_string( "id" ) ); } else { - jo.throw_error( R"(Each harvest entry must specify either "entries" or "id")", + jo.throw_error( "Each harvest entry must specify either \"entries\" or \"id\"", "harvest_by_season" ); } diff --git a/src/mapdata.h b/src/mapdata.h index 2ff0bcc2440b2..732212d01e89e 100644 --- a/src/mapdata.h +++ b/src/mapdata.h @@ -281,7 +281,7 @@ struct map_data_common_t { bool connects( int &ret ) const; bool connects_to( int test_connect_group ) const { - return connect_group != TERCONN_NONE && connect_group == test_connect_group; + return ( connect_group != TERCONN_NONE ) && ( connect_group == test_connect_group ); } int symbol() const; @@ -536,7 +536,6 @@ extern furn_id f_null, f_flower_marloss, f_tatami, f_kiln_empty, f_kiln_full, f_kiln_metal_empty, f_kiln_metal_full, - f_arcfurnace_empty, f_arcfurnace_full, f_smoking_rack, f_smoking_rack_active, f_metal_smoking_rack, f_metal_smoking_rack_active, f_water_mill, f_water_mill_active, f_wind_mill, f_wind_mill_active, diff --git a/src/mapgen.cpp b/src/mapgen.cpp index 959764f33f600..f082b4c003817 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include @@ -27,7 +26,6 @@ #include "itype.h" #include "json.h" #include "line.h" -#include "magic_ter_furn_transform.h" #include "map.h" #include "map_extras.h" #include "map_iterator.h" @@ -125,16 +123,16 @@ void map::generate( const int x, const int y, const int z, const time_point &whe tripoint abs_omt = sm_to_omt_copy( tripoint( x, y, z ) ); const regional_settings *rsettings = &overmap_buffer.get_settings( abs_omt ); oter_id terrain_type = overmap_buffer.ter( abs_omt ); - oter_id t_above = overmap_buffer.ter( abs_omt + tripoint_above ); - oter_id t_below = overmap_buffer.ter( abs_omt + tripoint_below ); - oter_id t_north = overmap_buffer.ter( abs_omt + tripoint_north ); - oter_id t_neast = overmap_buffer.ter( abs_omt + tripoint_north_east ); - oter_id t_east = overmap_buffer.ter( abs_omt + tripoint_east ); - oter_id t_seast = overmap_buffer.ter( abs_omt + tripoint_south_east ); - oter_id t_south = overmap_buffer.ter( abs_omt + tripoint_south ); - oter_id t_swest = overmap_buffer.ter( abs_omt + tripoint_south_west ); - oter_id t_west = overmap_buffer.ter( abs_omt + tripoint_west ); - oter_id t_nwest = overmap_buffer.ter( abs_omt + tripoint_north_west ); + oter_id t_above = overmap_buffer.ter( abs_omt + tripoint( 0, 0, 1 ) ); + oter_id t_below = overmap_buffer.ter( abs_omt + tripoint( 0, 0, -1 ) ); + oter_id t_north = overmap_buffer.ter( abs_omt + tripoint( 0, -1, 0 ) ); + oter_id t_neast = overmap_buffer.ter( abs_omt + tripoint( 1, -1, 0 ) ); + oter_id t_east = overmap_buffer.ter( abs_omt + tripoint( 1, 0, 0 ) ); + oter_id t_seast = overmap_buffer.ter( abs_omt + tripoint( 1, 1, 0 ) ); + oter_id t_south = overmap_buffer.ter( abs_omt + tripoint( 0, 1, 0 ) ); + oter_id t_swest = overmap_buffer.ter( abs_omt + tripoint( -1, 1, 0 ) ); + oter_id t_west = overmap_buffer.ter( abs_omt + tripoint( -1, 0, 0 ) ); + oter_id t_nwest = overmap_buffer.ter( abs_omt + tripoint( -1, -1, 0 ) ); // This attempts to scale density of zombies inversely with distance from the nearest city. // In other words, make city centers dense and perimeters sparse. @@ -171,7 +169,7 @@ void map::generate( const int x, const int y, const int z, const time_point &whe // Apply a multiplier to the number of monsters for really high densities. float odds_after_density = spawns.chance * spawn_density; - const float max_odds = 100 - ( 100 - spawns.chance ) / 2.0; + const float max_odds = 100 - ( 100 - spawns.chance ) / 2; float density_multiplier = 1.0f; if( odds_after_density > max_odds ) { density_multiplier = 1.0f * odds_after_density / max_odds; @@ -320,7 +318,7 @@ static void set_mapgen_defer( const JsonObject &jsi, const std::string &member, */ std::shared_ptr load_mapgen_function( JsonObject &jio, const std::string &id_base, - int default_idx, const point &offset ) + int default_idx, const int x_offset, const int y_offset ) { int mgweight = jio.get_int( "weight", 1000 ); std::shared_ptr ret; @@ -354,7 +352,7 @@ load_mapgen_function( JsonObject &jio, const std::string &id_base, if( jio.has_object( "object" ) ) { JsonObject jo = jio.get_object( "object" ); std::string jstr = jo.str(); - ret = std::make_shared( jstr, mgweight, offset ); + ret = std::make_shared( jstr, mgweight, x_offset, y_offset ); oter_mapgen[id_base].push_back( ret ); } else { debugmsg( "oter_t[%s]: Invalid mapgen function (missing \"object\" object)", id_base.c_str() ); @@ -414,19 +412,20 @@ void load_mapgen( JsonObject &jo ) if( jo.has_array( "om_terrain" ) ) { JsonArray ja = jo.get_array( "om_terrain" ); if( ja.test_array() ) { - point offset; + int x_offset = 0; + int y_offset = 0; while( ja.has_more() ) { JsonArray row_items = ja.next_array(); while( row_items.has_more() ) { const std::string mapgenid = row_items.next_string(); - const auto mgfunc = load_mapgen_function( jo, mapgenid, -1, offset ); + const auto mgfunc = load_mapgen_function( jo, mapgenid, -1, x_offset, y_offset ); if( mgfunc ) { oter_mapgen[ mapgenid ].push_back( mgfunc ); } - offset.x++; + x_offset++; } - offset.y++; - offset.x = 0; + y_offset++; + x_offset = 0; } } else { std::vector mapgenid_list; @@ -466,31 +465,31 @@ void reset_mapgens() ///// 2 - right after init() finishes parsing all game json and terrain info/etc is set.. ///// ...parse more json! (mapgen_function_json) -size_t mapgen_function_json_base::calc_index( const point &p ) const +size_t mapgen_function_json_base::calc_index( const size_t x, const size_t y ) const { - if( p.x >= mapgensize.x ) { - debugmsg( "invalid value %zu for x in calc_index", p.x ); + if( x >= mapgensize_x ) { + debugmsg( "invalid value %zu for x in calc_index", x ); } - if( p.y >= mapgensize.y ) { - debugmsg( "invalid value %zu for y in calc_index", p.y ); + if( y >= mapgensize_y ) { + debugmsg( "invalid value %zu for y in calc_index", y ); } - return p.y * mapgensize.y + p.x; + return y * mapgensize_y + x; } static bool common_check_bounds( const jmapgen_int &x, const jmapgen_int &y, - const point &mapgensize, JsonObject &jso ) + const int mapgensize_x, const int mapgensize_y, + JsonObject &jso ) { - rectangle bounds( point_zero, mapgensize ); - if( !bounds.contains_half_open( point( x.val, y.val ) ) ) { + if( x.val < 0 || x.val > mapgensize_x - 1 || y.val < 0 || y.val > mapgensize_y - 1 ) { return false; } - if( x.valmax > mapgensize.x - 1 ) { + if( x.valmax > mapgensize_x - 1 ) { jso.throw_error( "coordinate range cannot cross grid boundaries", "x" ); return false; } - if( y.valmax > mapgensize.y - 1 ) { + if( y.valmax > mapgensize_y - 1 ) { jso.throw_error( "coordinate range cannot cross grid boundaries", "y" ); return false; } @@ -501,30 +500,33 @@ static bool common_check_bounds( const jmapgen_int &x, const jmapgen_int &y, bool mapgen_function_json_base::check_inbounds( const jmapgen_int &x, const jmapgen_int &y, JsonObject &jso ) const { - return common_check_bounds( x, y, mapgensize, jso ); + return common_check_bounds( x, y, mapgensize_x, mapgensize_y, jso ); } mapgen_function_json_base::mapgen_function_json_base( const std::string &s ) - : jdata( s ) + : jdata( std::move( s ) ) , do_format( false ) , is_ready( false ) - , mapgensize( SEEX * 2, SEEY * 2 ) - , objects( m_offset, mapgensize ) + , mapgensize_x( SEEX * 2 ) + , mapgensize_y( SEEY * 2 ) + , x_offset( 0 ) + , y_offset( 0 ) + , objects( 0, 0, mapgensize_x, mapgensize_y ) { } mapgen_function_json_base::~mapgen_function_json_base() = default; mapgen_function_json::mapgen_function_json( const std::string &s, const int w, - const point &grid_offset ) + const int x_grid_offset, const int y_grid_offset ) : mapgen_function( w ) , mapgen_function_json_base( s ) , fill_ter( t_null ) , rotation( 0 ) { - m_offset.x = grid_offset.x * mapgensize.x; - m_offset.y = grid_offset.y * mapgensize.y; - objects = jmapgen_objects( m_offset, mapgensize ); + x_offset = x_grid_offset * mapgensize_x; + y_offset = y_grid_offset * mapgensize_y; + objects = jmapgen_objects( x_offset, y_offset, mapgensize_x, mapgensize_y ); } mapgen_function_json_nested::mapgen_function_json_nested( const std::string &s ) @@ -608,7 +610,7 @@ void mapgen_function_json_base::setup_setmap( JsonArray &parray ) } else if( pjo.read( "square", tmpval ) ) { setmap_optype = JMAPGEN_SETMAP_OPTYPE_SQUARE; } else { - pjo.throw_error( R"(invalid data: must contain "point", "set", "line" or "square" member)" ); + pjo.throw_error( "invalid data: must contain \"point\", \"set\", \"line\" or \"square\" member" ); } sm_it = setmap_opmap.find( tmpval ); @@ -702,12 +704,12 @@ jmapgen_place::jmapgen_place( JsonObject &jsi ) { } -void jmapgen_place::offset( const point &offset ) +void jmapgen_place::offset( const int x_offset, const int y_offset ) { - x.val -= offset.x; - x.valmax -= offset.x; - y.val -= offset.y; - y.valmax -= offset.y; + x.val -= x_offset; + x.valmax -= x_offset; + y.val -= y_offset; + y.valmax -= y_offset; } /** @@ -743,8 +745,8 @@ class jmapgen_field : public jmapgen_piece field_type_id ftype; int intensity; time_duration age; - jmapgen_field( JsonObject &jsi ) : - ftype( field_type_id( jsi.get_string( "field" ) ) ) + jmapgen_field( JsonObject &jsi ) : jmapgen_piece() + , ftype( field_type_id( jsi.get_string( "field" ) ) ) , intensity( jsi.get_int( "intensity", 1 ) ) , age( time_duration::from_turns( jsi.get_int( "age", 0 ) ) ) { if( !ftype.id() ) { @@ -766,8 +768,8 @@ class jmapgen_npc : public jmapgen_piece string_id npc_class; bool target; std::vector traits; - jmapgen_npc( JsonObject &jsi ) : - npc_class( jsi.get_string( "class" ) ) + jmapgen_npc( JsonObject &jsi ) : jmapgen_piece() + , npc_class( jsi.get_string( "class" ) ) , target( jsi.get_bool( "target", false ) ) { if( !npc_class.is_valid() ) { set_mapgen_defer( jsi, "class", "unknown npc class" ); @@ -804,7 +806,7 @@ class jmapgen_faction : public jmapgen_piece { public: faction_id id; - jmapgen_faction( JsonObject &jsi ) { + jmapgen_faction( JsonObject &jsi ) : jmapgen_piece() { if( jsi.has_string( "id" ) ) { id = faction_id( jsi.get_string( "id" ) ); } @@ -823,8 +825,8 @@ class jmapgen_sign : public jmapgen_piece public: std::string signage; std::string snippet; - jmapgen_sign( JsonObject &jsi ) : - signage( jsi.get_string( "signage", "" ) ) + jmapgen_sign( JsonObject &jsi ) : jmapgen_piece() + , signage( jsi.get_string( "signage", "" ) ) , snippet( jsi.get_string( "snippet", "" ) ) { if( signage.empty() && snippet.empty() ) { jsi.throw_error( "jmapgen_sign: needs either signage or snippet" ); @@ -834,8 +836,8 @@ class jmapgen_sign : public jmapgen_piece const float /*mon_density*/, mission * /*miss*/ ) const override { const int rx = x.get(); const int ry = y.get(); - dat.m.furn_set( point( rx, ry ), f_null ); - dat.m.furn_set( point( rx, ry ), furn_str_id( "f_sign" ) ); + dat.m.furn_set( rx, ry, f_null ); + dat.m.furn_set( rx, ry, furn_str_id( "f_sign" ) ); std::string signtext; @@ -865,7 +867,10 @@ class jmapgen_sign : public jmapgen_piece return signtext; } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -878,8 +883,8 @@ class jmapgen_graffiti : public jmapgen_piece public: std::string text; std::string snippet; - jmapgen_graffiti( JsonObject &jsi ) : - text( jsi.get_string( "text", "" ) ) + jmapgen_graffiti( JsonObject &jsi ) : jmapgen_piece() + , text( jsi.get_string( "text", "" ) ) , snippet( jsi.get_string( "snippet", "" ) ) { if( text.empty() && snippet.empty() ) { jsi.throw_error( "jmapgen_graffiti: needs either text or snippet" ); @@ -927,8 +932,8 @@ class jmapgen_vending_machine : public jmapgen_piece public: bool reinforced; std::string item_group_id; - jmapgen_vending_machine( JsonObject &jsi ) : - reinforced( jsi.get_bool( "reinforced", false ) ) + jmapgen_vending_machine( JsonObject &jsi ) : jmapgen_piece() + , reinforced( jsi.get_bool( "reinforced", false ) ) , item_group_id( jsi.get_string( "item_group", "default_vending_machine" ) ) { if( !item_group::group_is_defined( item_group_id ) ) { set_mapgen_defer( jsi, "item_group", "no such item group" ); @@ -938,11 +943,14 @@ class jmapgen_vending_machine : public jmapgen_piece const float /*mon_density*/, mission * /*miss*/ ) const override { const int rx = x.get(); const int ry = y.get(); - dat.m.furn_set( point( rx, ry ), f_null ); + dat.m.furn_set( rx, ry, f_null ); dat.m.place_vending( rx, ry, item_group_id, reinforced ); } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -953,15 +961,15 @@ class jmapgen_toilet : public jmapgen_piece { public: jmapgen_int amount; - jmapgen_toilet( JsonObject &jsi ) : - amount( jsi, "amount", 0, 0 ) { + jmapgen_toilet( JsonObject &jsi ) : jmapgen_piece() + , amount( jsi, "amount", 0, 0 ) { } void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, const float /*mon_density*/, mission * /*miss*/ ) const override { const int rx = x.get(); const int ry = y.get(); const int charges = amount.get(); - dat.m.furn_set( point( rx, ry ), f_null ); + dat.m.furn_set( rx, ry, f_null ); if( charges == 0 ) { dat.m.place_toilet( rx, ry ); // Use the default charges supplied as default values } else { @@ -969,7 +977,10 @@ class jmapgen_toilet : public jmapgen_piece } } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -981,8 +992,8 @@ class jmapgen_gaspump : public jmapgen_piece public: jmapgen_int amount; std::string fuel; - jmapgen_gaspump( JsonObject &jsi ) : - amount( jsi, "amount", 0, 0 ) { + jmapgen_gaspump( JsonObject &jsi ) : jmapgen_piece() + , amount( jsi, "amount", 0, 0 ) { if( jsi.has_string( "fuel" ) ) { fuel = jsi.get_string( "fuel" ); @@ -997,7 +1008,7 @@ class jmapgen_gaspump : public jmapgen_piece const int rx = x.get(); const int ry = y.get(); int charges = amount.get(); - dat.m.furn_set( point( rx, ry ), f_null ); + dat.m.furn_set( rx, ry, f_null ); if( charges == 0 ) { charges = rng( 10000, 50000 ); } @@ -1008,7 +1019,10 @@ class jmapgen_gaspump : public jmapgen_piece } } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; @@ -1024,8 +1038,8 @@ class jmapgen_liquid_item : public jmapgen_piece jmapgen_int amount; std::string liquid; jmapgen_int chance; - jmapgen_liquid_item( JsonObject &jsi ) : - amount( jsi, "amount", 0, 0 ) + jmapgen_liquid_item( JsonObject &jsi ) : jmapgen_piece() + , amount( jsi, "amount", 0, 0 ) , liquid( jsi.get_string( "liquid" ) ) , chance( jsi, "chance", 1, 1 ) { if( !item::type_is_defined( itype_id( liquid ) ) ) { @@ -1035,7 +1049,7 @@ class jmapgen_liquid_item : public jmapgen_piece void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, const float /*mon_density*/, mission * /*miss*/ ) const override { if( one_in( chance.get() ) ) { - item newliquid( liquid, calendar::turn_zero ); + item newliquid( liquid, calendar::time_of_cataclysm ); if( amount.valmax > 0 ) { newliquid.charges = amount.get(); } @@ -1055,8 +1069,8 @@ class jmapgen_item_group : public jmapgen_piece public: std::string group_id; jmapgen_int chance; - jmapgen_item_group( JsonObject &jsi ) : - group_id( jsi.get_string( "item" ) ) + jmapgen_item_group( JsonObject &jsi ) : jmapgen_piece() + , group_id( jsi.get_string( "item" ) ) , chance( jsi, "chance", 1, 1 ) { if( !item_group::group_is_defined( group_id ) ) { set_mapgen_defer( jsi, "item", "no such item type" ); @@ -1075,9 +1089,9 @@ class jmapgen_loot : public jmapgen_piece friend jmapgen_objects; public: - jmapgen_loot( JsonObject &jsi ) : - result_group( Item_group::Type::G_COLLECTION, 100, jsi.get_int( "ammo", 0 ), - jsi.get_int( "magazine", 0 ) ) + jmapgen_loot( JsonObject &jsi ) : jmapgen_piece() + , result_group( Item_group::Type::G_COLLECTION, 100, jsi.get_int( "ammo", 0 ), + 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() ); @@ -1104,7 +1118,7 @@ class jmapgen_loot : public jmapgen_piece const float /*mon_density*/, mission * ) const override { if( rng( 0, 99 ) < chance ) { const Item_spawn_data *const isd = &result_group; - const std::vector spawn = isd->create( calendar::turn_zero ); + const std::vector spawn = isd->create( calendar::time_of_cataclysm ); dat.m.spawn_items( tripoint( rng( x.val, x.valmax ), rng( y.val, y.valmax ), dat.m.get_abs_sub().z ), spawn ); } @@ -1127,8 +1141,8 @@ class jmapgen_monster_group : public jmapgen_piece mongroup_id id; float density; jmapgen_int chance; - jmapgen_monster_group( JsonObject &jsi ) : - id( jsi.get_string( "monster" ) ) + jmapgen_monster_group( JsonObject &jsi ) : jmapgen_piece() + , id( jsi.get_string( "monster" ) ) , density( jsi.get_float( "density", -1.0f ) ) , chance( jsi, "chance", 1, 1 ) { if( !id.is_valid() ) { @@ -1163,8 +1177,8 @@ class jmapgen_monster : public jmapgen_piece bool friendly; std::string name; bool target; - jmapgen_monster( JsonObject &jsi ) : - chance( jsi, "chance", 100, 100 ) + jmapgen_monster( JsonObject &jsi ) : jmapgen_piece() + , chance( jsi, "chance", 100, 100 ) , pack_size( jsi, "pack_size", 1, 1 ) , one_or_none( jsi.get_bool( "one_or_none", !( jsi.has_member( "repeat" ) || jsi.has_member( "pack_size" ) ) ) ) @@ -1250,8 +1264,8 @@ class jmapgen_vehicle : public jmapgen_piece std::vector rotation; int fuel; int status; - jmapgen_vehicle( JsonObject &jsi ) : - type( jsi.get_string( "vehicle" ) ) + jmapgen_vehicle( JsonObject &jsi ) : jmapgen_piece() + , type( jsi.get_string( "vehicle" ) ) , chance( jsi, "chance", 1, 1 ) //, rotation( jsi.get_int( "rotation", 0 ) ) // unless there is a way for the json parser to // return a single int as a list, we have to manually check this in the constructor below @@ -1275,7 +1289,10 @@ class jmapgen_vehicle : public jmapgen_piece dat.m.add_vehicle( type, point( x.get(), y.get() ), random_entry( rotation ), fuel, status ); } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -1291,8 +1308,8 @@ class jmapgen_spawn_item : public jmapgen_piece itype_id type; jmapgen_int amount; jmapgen_int chance; - jmapgen_spawn_item( JsonObject &jsi ) : - type( jsi.get_string( "item" ) ) + jmapgen_spawn_item( JsonObject &jsi ) : jmapgen_piece() + , type( jsi.get_string( "item" ) ) , amount( jsi, "amount", 1, 1 ) , chance( jsi, "chance", 100, 100 ) { if( !item::type_is_defined( type ) ) { @@ -1320,8 +1337,8 @@ class jmapgen_trap : public jmapgen_piece { public: trap_id id; - jmapgen_trap( JsonObject &jsi ) : - id( 0 ) { + jmapgen_trap( JsonObject &jsi ) : jmapgen_piece() + , id( 0 ) { const trap_str_id sid( jsi.get_string( "trap" ) ); if( !sid.is_valid() ) { set_mapgen_defer( jsi, "trap", "no such trap" ); @@ -1329,8 +1346,8 @@ class jmapgen_trap : public jmapgen_piece id = sid.id(); } - jmapgen_trap( const std::string &tid ) : - id( 0 ) { + jmapgen_trap( const std::string &tid ) : jmapgen_piece() + , id( 0 ) { const trap_str_id sid( tid ); if( !sid.is_valid() ) { throw std::runtime_error( "unknown trap type" ); @@ -1343,7 +1360,10 @@ class jmapgen_trap : public jmapgen_piece dat.m.trap_set( actual_loc, id ); } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -1355,13 +1375,16 @@ class jmapgen_furniture : public jmapgen_piece public: furn_id id; jmapgen_furniture( JsonObject &jsi ) : jmapgen_furniture( jsi.get_string( "furn" ) ) {} - jmapgen_furniture( const std::string &fid ) : id( furn_id( fid ) ) {} + jmapgen_furniture( const std::string &fid ) : jmapgen_piece(), id( furn_id( fid ) ) {} void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, const float /*mdensity*/, mission * ) const override { - dat.m.furn_set( point( x.get(), y.get() ), id ); + dat.m.furn_set( x.get(), y.get(), id ); } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -1373,13 +1396,13 @@ class jmapgen_terrain : public jmapgen_piece public: ter_id id; jmapgen_terrain( JsonObject &jsi ) : jmapgen_terrain( jsi.get_string( "ter" ) ) {} - jmapgen_terrain( const std::string &tid ) : id( ter_id( tid ) ) {} + jmapgen_terrain( const std::string &tid ) : jmapgen_piece(), id( ter_id( tid ) ) {} void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, const float /*mdensity*/, mission * ) const override { - dat.m.ter_set( point( x.get(), y.get() ), id ); + dat.m.ter_set( x.get(), y.get(), id ); // Delete furniture if a wall was just placed over it. TODO: need to do anything for fluid, monsters? if( dat.m.has_flag_ter( "WALL", x.get(), y.get() ) ) { - dat.m.furn_set( point( x.get(), y.get() ), f_null ); + dat.m.furn_set( x.get(), y.get(), f_null ); // and items, unless the wall has PLACE_ITEM flag indicating it stores things. if( !dat.m.has_flag_ter( "PLACE_ITEM", x.get(), y.get() ) ) { dat.m.i_clear( tripoint( x.get(), y.get(), dat.m.get_abs_sub().z ) ); @@ -1387,23 +1410,10 @@ class jmapgen_terrain : public jmapgen_piece } } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); - } -}; -/** - * Run a transformation. - * "transform": id of the ter_furn_transform to run. - */ -class jmapgen_ter_furn_transform: public jmapgen_piece -{ - public: - ter_furn_transform_id id; - jmapgen_ter_furn_transform( JsonObject &jsi ) : jmapgen_ter_furn_transform( - jsi.get_string( "transform" ) ) {} - jmapgen_ter_furn_transform( const std::string &rid ) : id( ter_furn_transform_id( rid ) ) {} - void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, - const float /*mdensity*/, mission * ) const override { - id->transform( dat.m, tripoint( x.get(), y.get(), dat.m.get_abs_sub().z ) ); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -1417,7 +1427,7 @@ class jmapgen_make_rubble : public jmapgen_piece bool items = false; ter_id floor_type = t_dirt; bool overwrite = false; - jmapgen_make_rubble( JsonObject &jsi ) { + jmapgen_make_rubble( JsonObject &jsi ) : jmapgen_piece() { if( jsi.has_string( "rubble_type" ) ) { rubble_type = furn_id( jsi.get_string( "rubble_type" ) ); } @@ -1447,7 +1457,7 @@ class jmapgen_computer : public jmapgen_piece std::vector options; std::vector failures; bool target; - jmapgen_computer( JsonObject &jsi ) { + jmapgen_computer( JsonObject &jsi ) : jmapgen_piece() { name = jsi.get_string( "name" ); security = jsi.get_int( "security", 0 ); target = jsi.get_bool( "target", false ); @@ -1470,8 +1480,8 @@ class jmapgen_computer : public jmapgen_piece const float /*mon_density*/, mission *miss = nullptr ) const override { const int rx = x.get(); const int ry = y.get(); - dat.m.ter_set( point( rx, ry ), t_console ); - dat.m.furn_set( point( rx, ry ), f_null ); + dat.m.ter_set( rx, ry, t_console ); + dat.m.furn_set( rx, ry, f_null ); computer *cpu = dat.m.add_computer( tripoint( rx, ry, dat.m.get_abs_sub().z ), name, security ); for( const auto &opt : options ) { cpu->add_option( opt ); @@ -1484,7 +1494,10 @@ class jmapgen_computer : public jmapgen_piece } } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; @@ -1500,8 +1513,8 @@ class jmapgen_sealed_item : public jmapgen_piece furn_id furniture; cata::optional item_spawner; cata::optional item_group_spawner; - jmapgen_sealed_item( JsonObject &jsi ) : - furniture( jsi.get_string( "furniture" ) ) { + jmapgen_sealed_item( JsonObject &jsi ) : jmapgen_piece() + , furniture( jsi.get_string( "furniture" ) ) { if( jsi.has_object( "item" ) ) { JsonObject item_obj = jsi.get_object( "item" ); item_spawner = jmapgen_spawn_item( item_obj ); @@ -1578,17 +1591,20 @@ class jmapgen_sealed_item : public jmapgen_piece void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y, const float mon_density, mission *miss ) const override { - dat.m.furn_set( point( x.get(), y.get() ), f_null ); + dat.m.furn_set( x.get(), y.get(), f_null ); if( item_spawner ) { item_spawner->apply( dat, x, y, mon_density, miss ); } if( item_group_spawner ) { item_group_spawner->apply( dat, x, y, mon_density, miss ); } - dat.m.furn_set( point( x.get(), y.get() ), furniture ); + dat.m.furn_set( x.get(), y.get(), furniture ); } bool has_vehicle_collision( const mapgendata &dat, int x, int y ) const override { - return dat.m.veh_at( tripoint( x, y, dat.zlevel ) ).has_value(); + if( dat.m.veh_at( tripoint( x, y, dat.zlevel ) ) ) { + return true; + } + return false; } }; /** @@ -1602,7 +1618,7 @@ class jmapgen_translate : public jmapgen_piece public: ter_id from; ter_id to; - jmapgen_translate( JsonObject &jsi ) { + jmapgen_translate( JsonObject &jsi ) : jmapgen_piece() { if( jsi.has_string( "from" ) && jsi.has_string( "to" ) ) { const std::string from_id = jsi.get_string( "from" ); const std::string to_id = jsi.get_string( "to" ); @@ -1624,7 +1640,7 @@ class jmapgen_zone : public jmapgen_piece zone_type_id zone_type; faction_id faction; std::string name = ""; - jmapgen_zone( JsonObject &jsi ) { + jmapgen_zone( JsonObject &jsi ) : jmapgen_piece() { if( jsi.has_string( "faction" ) && jsi.has_string( "type" ) ) { std::string fac_id = jsi.get_string( "faction" ); faction = faction_id( fac_id ); @@ -1723,7 +1739,7 @@ class jmapgen_nested : public jmapgen_piece weighted_int_list entries; weighted_int_list else_entries; neighborhood_check neighbors; - jmapgen_nested( JsonObject &jsi ) : neighbors( jsi.get_object( "neighbors" ) ) { + jmapgen_nested( JsonObject &jsi ) : jmapgen_piece(), neighbors( jsi.get_object( "neighbors" ) ) { load_weighted_entries( jsi, "chunks", entries ); load_weighted_entries( jsi, "else_chunks", else_entries ); } @@ -1747,18 +1763,20 @@ class jmapgen_nested : public jmapgen_piece return; } - ptr->nest( dat, point( x.get(), y.get() ), d ); + ptr->nest( dat, x.get(), y.get(), d ); } }; -jmapgen_objects::jmapgen_objects( const point &offset, const point &mapsize ) - : m_offset( offset ) - , mapgensize( mapsize ) +jmapgen_objects::jmapgen_objects( int offset_x, int offset_y, size_t mapsize_x, size_t mapsize_y ) + : offset_x( offset_x ) + , offset_y( offset_y ) + , mapgensize_x( mapsize_x ) + , mapgensize_y( mapsize_y ) {} bool jmapgen_objects::check_bounds( const jmapgen_place place, JsonObject &jso ) { - return common_check_bounds( place.x, place.y, mapgensize, jso ); + return common_check_bounds( place.x, place.y, mapgensize_x, mapgensize_y, jso ); } void jmapgen_objects::add( const jmapgen_place &place, std::shared_ptr piece ) @@ -1773,7 +1791,7 @@ void jmapgen_objects::load_objects( JsonArray parray ) auto jsi = parray.next_object(); jmapgen_place where( jsi ); - where.offset( m_offset ); + where.offset( offset_x, offset_y ); if( check_bounds( where, jsi ) ) { add( where, std::make_shared( jsi ) ); @@ -1787,7 +1805,7 @@ void jmapgen_objects::load_objects( JsonArray parray ) while( parray.has_more() ) { auto jsi = parray.next_object(); jmapgen_place where( jsi ); - where.offset( m_offset ); + where.offset( offset_x, offset_y ); if( !check_bounds( where, jsi ) ) { continue; @@ -2130,8 +2148,6 @@ mapgen_palette mapgen_palette::load_internal( JsonObject &jo, const std::string new_pal.load_place_mapings( jo, "graffiti", format_placings ); new_pal.load_place_mapings( jo, "translate", format_placings ); new_pal.load_place_mapings( jo, "zones", format_placings ); - new_pal.load_place_mapings( jo, "ter_furn_transforms", - format_placings ); new_pal.load_place_mapings( jo, "faction_owner_character", format_placings ); return new_pal; } @@ -2166,8 +2182,9 @@ bool mapgen_function_json_nested::setup_internal( JsonObject &jo ) // Mandatory - nested mapgen must be explicitly sized if( jo.has_array( "mapgensize" ) ) { JsonArray jarr = jo.get_array( "mapgensize" ); - mapgensize = point( jarr.get_int( 0 ), jarr.get_int( 1 ) ); - if( mapgensize.x == 0 || mapgensize.x != mapgensize.y ) { + mapgensize_x = jarr.get_int( 0 ); + mapgensize_y = jarr.get_int( 1 ); + if( mapgensize_x == 0 || mapgensize_x != mapgensize_y ) { // Non-square sizes not implemented yet jo.throw_error( "\"mapgensize\" must be an array of two identical, positive numbers" ); } @@ -2227,7 +2244,7 @@ bool mapgen_function_json_base::setup_common( JsonObject jo ) JsonArray sparray; JsonObject pjo; - format.resize( mapgensize.x * mapgensize.y ); + format.resize( mapgensize_x * mapgensize_y ); // just like mapf::basic_bind("stuff",blargle("foo", etc) ), only json input and faster when applying if( jo.has_array( "rows" ) ) { mapgen_palette palette = mapgen_palette::load_temp( jo, "dda" ); @@ -2242,24 +2259,22 @@ bool mapgen_function_json_base::setup_common( JsonObject jo ) // mandatory: mapgensize rows of mapgensize character lines, each of which must have a matching key in "terrain", // unless fill_ter is set // "rows:" [ "aaaajustlikeinmapgen.cpp", "this.must!be!exactly.24!", "and_must_match_terrain_", .... ] - point expected_dim = mapgensize + m_offset; parray = jo.get_array( "rows" ); - if( static_cast( parray.size() ) < expected_dim.y ) { + if( parray.size() < mapgensize_y + y_offset ) { parray.throw_error( string_format( " format: rows: must have at least %d rows, not %d", - expected_dim.y, parray.size() ) ); + mapgensize_y + y_offset, parray.size() ) ); } - for( int c = m_offset.y; c < expected_dim.y; c++ ) { + for( size_t c = y_offset; c < mapgensize_y + y_offset; c++ ) { const auto tmpval = parray.get_string( c ); - if( static_cast( tmpval.size() ) < expected_dim.x ) { + if( tmpval.size() < mapgensize_x + x_offset ) { parray.throw_error( string_format( " format: row %d must have at least %d columns, not %d", - c + 1, expected_dim.x, tmpval.size() ) ); + c + 1, mapgensize_x + x_offset, tmpval.size() ) ); } - for( int i = m_offset.x; i < expected_dim.x; i++ ) { - const point p = point( i, c ) - m_offset; + for( size_t i = x_offset; i < mapgensize_x + x_offset; i++ ) { const int tmpkey = tmpval[i]; auto iter_ter = format_terrain.find( tmpkey ); if( iter_ter != format_terrain.end() ) { - format[ calc_index( p ) ].ter = iter_ter->second; + format[ calc_index( i - x_offset, c - y_offset ) ].ter = iter_ter->second; } else if( ! qualifies ) { // fill_ter should make this kosher parray.throw_error( string_format( " format: rows: row %d column %d: '%c' is not in 'terrain', and no 'fill_ter' is set!", @@ -2267,11 +2282,11 @@ bool mapgen_function_json_base::setup_common( JsonObject jo ) } auto iter_furn = format_furniture.find( tmpkey ); if( iter_furn != format_furniture.end() ) { - format[ calc_index( p ) ].furn = iter_furn->second; + format[ calc_index( i - x_offset, c - y_offset ) ].furn = iter_furn->second; } const auto fpi = format_placings.find( tmpkey ); if( fpi != format_placings.end() ) { - jmapgen_place where( p ); + jmapgen_place where( i - x_offset, c - y_offset ); for( auto &what : fpi->second ) { objects.add( where, what ); } @@ -2318,7 +2333,6 @@ bool mapgen_function_json_base::setup_common( JsonObject jo ) objects.load_objects( jo, "place_graffiti" ); objects.load_objects( jo, "translate_ter" ); objects.load_objects( jo, "place_zones" ); - objects.load_objects( jo, "place_ter_furn_transforms" ); // Needs to be last as it affects other placed items objects.load_objects( jo, "faction_owner" ); if( !mapgen_defer::defer ) { @@ -2388,7 +2402,7 @@ void jmapgen_objects::check( const std::string &oter_name ) const * (set|line|square)_(ter|furn|trap|radiation); simple (x, y, int) or (x1,y1,x2,y2, int) functions * TODO: optimize, though gcc -O2 optimizes enough that splitting the switch has no effect */ -bool jmapgen_setmap::apply( const mapgendata &dat, const point &offset, mission * ) const +bool jmapgen_setmap::apply( const mapgendata &dat, int offset_x, int offset_y, mission * ) const { if( chance != 1 && !one_in( chance ) ) { return true; @@ -2397,10 +2411,10 @@ bool jmapgen_setmap::apply( const mapgendata &dat, const point &offset, mission const auto get = []( const jmapgen_int & v, int offset ) { return v.get() + offset; }; - const auto x_get = std::bind( get, x, offset.x ); - const auto y_get = std::bind( get, y, offset.y ); - const auto x2_get = std::bind( get, x2, offset.x ); - const auto y2_get = std::bind( get, y2, offset.y ); + const auto x_get = std::bind( get, x, offset_x ); + const auto y_get = std::bind( get, y, offset_y ); + const auto x2_get = std::bind( get, x2, offset_x ); + const auto y2_get = std::bind( get, y2, offset_y ); map &m = dat.m; const int trepeat = repeat.get(); @@ -2408,12 +2422,12 @@ bool jmapgen_setmap::apply( const mapgendata &dat, const point &offset, mission switch( op ) { case JMAPGEN_SETMAP_TER: { // TODO: the ter_id should be stored separately and not be wrapped in an jmapgen_int - m.ter_set( point( x_get(), y_get() ), ter_id( val.get() ) ); + m.ter_set( x_get(), y_get(), ter_id( val.get() ) ); } break; case JMAPGEN_SETMAP_FURN: { // TODO: the furn_id should be stored separately and not be wrapped in an jmapgen_int - m.furn_set( point( x_get(), y_get() ), furn_id( val.get() ) ); + m.furn_set( x_get(), y_get(), furn_id( val.get() ) ); } break; case JMAPGEN_SETMAP_TRAP: { @@ -2499,15 +2513,16 @@ bool jmapgen_setmap::apply( const mapgendata &dat, const point &offset, mission return true; } -bool jmapgen_setmap::has_vehicle_collision( const mapgendata &dat, const point &offset ) const +bool jmapgen_setmap::has_vehicle_collision( const mapgendata &dat, int offset_x, + int offset_y ) const { - const auto get = []( const jmapgen_int & v, int v_offset ) { - return v.get() + v_offset; + const auto get = []( const jmapgen_int & v, int offset ) { + return v.get() + offset; }; - const auto x_get = std::bind( get, x, offset.x ); - const auto y_get = std::bind( get, y, offset.y ); - const auto x2_get = std::bind( get, x2, offset.x ); - const auto y2_get = std::bind( get, y2, offset.y ); + const auto x_get = std::bind( get, x, offset_x ); + const auto y_get = std::bind( get, y, offset_y ); + const auto x2_get = std::bind( get, x2, offset_x ); + const auto y2_get = std::bind( get, y2, offset_y ); const tripoint start = tripoint( x_get(), y_get(), 0 ); tripoint end = start; switch( op ) { @@ -2537,22 +2552,23 @@ bool jmapgen_setmap::has_vehicle_collision( const mapgendata &dat, const point & return false; } -void mapgen_function_json_base::formatted_set_incredibly_simple( map &m, const point &offset ) const +void mapgen_function_json_base::formatted_set_incredibly_simple( map &m, int offset_x, + int offset_y ) const { - for( int y = 0; y < mapgensize.y; y++ ) { - for( int x = 0; x < mapgensize.x; x++ ) { - point p( x, y ); - const size_t index = calc_index( p ); + for( size_t y = 0; y < mapgensize_y; y++ ) { + for( size_t x = 0; x < mapgensize_x; x++ ) { + const size_t index = calc_index( x, y ); const ter_furn_id &tdata = format[index]; - const point map_pos = p + offset; + int map_x = x + offset_x; + int map_y = y + offset_y; if( tdata.furn != f_null ) { if( tdata.ter != t_null ) { - m.set( map_pos, tdata.ter, tdata.furn ); + m.set( map_x, map_y, tdata.ter, tdata.furn ); } else { - m.furn_set( map_pos, tdata.furn ); + m.furn_set( map_x, map_y, tdata.furn ); } } else if( tdata.ter != t_null ) { - m.ter_set( map_pos, tdata.ter ); + m.ter_set( map_x, map_y, tdata.ter ); } } } @@ -2585,15 +2601,15 @@ void mapgen_function_json::generate( map *m, const oter_id &terrain_type, const } } if( do_format ) { - formatted_set_incredibly_simple( *m, point_zero ); + formatted_set_incredibly_simple( *m, 0, 0 ); } for( auto &elem : setmap_points ) { - elem.apply( md, point_zero ); + elem.apply( md, 0, 0 ); } place_stairs( m, terrain_type, md ); - objects.apply( md, point_zero, d ); + objects.apply( md, 0, 0, d ); m->rotate( rotation.get() ); @@ -2602,21 +2618,21 @@ void mapgen_function_json::generate( map *m, const oter_id &terrain_type, const } } -void mapgen_function_json_nested::nest( const mapgendata &dat, const point &offset, +void mapgen_function_json_nested::nest( const mapgendata &dat, int offset_x, int offset_y, float density ) const { // TODO: Make rotation work for submaps, then pass this value into elem & objects apply. //int chosen_rotation = rotation.get() % 4; if( do_format ) { - formatted_set_incredibly_simple( dat.m, offset ); + formatted_set_incredibly_simple( dat.m, offset_x, offset_y ); } for( auto &elem : setmap_points ) { - elem.apply( dat, offset ); + elem.apply( dat, offset_x, offset_y ); } - objects.apply( dat, offset, density ); + objects.apply( dat, offset_x, offset_y, density ); } /* @@ -2636,10 +2652,10 @@ void jmapgen_objects::apply( const mapgendata &dat, float density, mission *miss } } -void jmapgen_objects::apply( const mapgendata &dat, const point &offset, +void jmapgen_objects::apply( const mapgendata &dat, int offset_x, int offset_y, float density, mission *miss ) const { - if( offset == point_zero ) { + if( offset_x == 0 && offset_y == 0 ) { // It's a bit faster apply( dat, density, miss ); return; @@ -2647,7 +2663,7 @@ void jmapgen_objects::apply( const mapgendata &dat, const point &offset, for( auto &obj : objects ) { auto where = obj.first; - where.offset( -offset ); + where.offset( -offset_x, -offset_y ); const auto &what = *obj.second; // The user will only specify repeat once in JSON, but it may get loaded both @@ -2659,11 +2675,12 @@ void jmapgen_objects::apply( const mapgendata &dat, const point &offset, } } -bool jmapgen_objects::has_vehicle_collision( const mapgendata &dat, const point &offset ) const +bool jmapgen_objects::has_vehicle_collision( const mapgendata &dat, int offset_x, + int offset_y ) const { for( auto &obj : objects ) { auto where = obj.first; - where.offset( -offset ); + where.offset( -offset_x, -offset_y ); const auto &what = *obj.second; if( what.has_vehicle_collision( dat, where.x.get(), where.y.get() ) ) { return true; @@ -2699,14 +2716,14 @@ void map::draw_map( const oter_id &terrain_type, const oter_id &t_north, const o draw_triffid( terrain_type, dat, when, density ); } else if( is_ot_match( "office", terrain_type, ot_match_type::prefix ) ) { draw_office_tower( terrain_type, dat, when, density ); - } else if( is_ot_match( "sewage", terrain_type, ot_match_type::prefix ) ) { - draw_sewer( terrain_type, dat, when, density ); } else if( is_ot_match( "spider", terrain_type, ot_match_type::prefix ) ) { draw_spider_pit( terrain_type, dat, when, density ); } else if( is_ot_match( "spiral", terrain_type, ot_match_type::prefix ) ) { draw_spiral( terrain_type, dat, when, density ); } else if( is_ot_match( "temple", terrain_type, ot_match_type::prefix ) ) { draw_temple( terrain_type, dat, when, density ); + } else if( is_ot_match( "toxic", terrain_type, ot_match_type::prefix ) ) { + draw_toxic_dump( terrain_type, dat, when, density ); } else if( is_ot_match( "fema", terrain_type, ot_match_type::prefix ) ) { draw_fema( terrain_type, dat, when, density ); } else if( is_ot_match( "mine", terrain_type, ot_match_type::prefix ) ) { @@ -3354,29 +3371,29 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int j = 0; j < SEEY * 2; j++ ) { if( i <= 1 || i >= SEEX * 2 - 2 || ( j > 1 && j < SEEY * 2 - 2 && ( i == SEEX - 2 || i == SEEX + 1 ) ) ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else if( j <= 1 || j >= SEEY * 2 - 2 ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else { - ter_set( point( i, j ), t_floor ); + ter_set( i, j, t_floor ); } } } - ter_set( point( SEEX - 1, 0 ), t_door_metal_locked ); - ter_set( point( SEEX - 1, 1 ), t_floor ); - ter_set( point( SEEX, 0 ), t_door_metal_locked ); - ter_set( point( SEEX, 1 ), t_floor ); - ter_set( point( SEEX - 2 + rng( 0, 1 ) * 3, 0 ), t_card_science ); - ter_set( point( SEEX - 2, SEEY ), t_door_metal_c ); - ter_set( point( SEEX + 1, SEEY ), t_door_metal_c ); - ter_set( point( SEEX - 2, SEEY - 1 ), t_door_metal_c ); - ter_set( point( SEEX + 1, SEEY - 1 ), t_door_metal_c ); - ter_set( point( SEEX - 1, SEEY * 2 - 3 ), t_stairs_down ); - ter_set( point( SEEX, SEEY * 2 - 3 ), t_stairs_down ); + ter_set( SEEX - 1, 0, t_door_metal_locked ); + ter_set( SEEX - 1, 1, t_floor ); + ter_set( SEEX, 0, t_door_metal_locked ); + ter_set( SEEX, 1, t_floor ); + ter_set( SEEX - 2 + rng( 0, 1 ) * 3, 0, t_card_science ); + ter_set( SEEX - 2, SEEY, t_door_metal_c ); + ter_set( SEEX + 1, SEEY, t_door_metal_c ); + ter_set( SEEX - 2, SEEY - 1, t_door_metal_c ); + ter_set( SEEX + 1, SEEY - 1, t_door_metal_c ); + ter_set( SEEX - 1, SEEY * 2 - 3, t_stairs_down ); + ter_set( SEEX, SEEY * 2 - 3, t_stairs_down ); science_room( this, 2, 2, SEEX - 3, SEEY * 2 - 3, dat.zlevel, 1 ); science_room( this, SEEX + 2, 2, SEEX * 2 - 3, SEEY * 2 - 3, dat.zlevel, 3 ); - place_spawns( GROUP_TURRET_SMG, 1, SEEX, 5, SEEX, 5, 1, true ); + place_spawns( GROUP_TURRET_SMG, 1, SEEX, 5, SEEY, 5, 1, true ); if( is_ot_match( "road", dat.east(), ot_match_type::type ) ) { rotate( 1 ); @@ -3388,27 +3405,27 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi } else if( tw != 0 || rw != 0 || lw != 0 || bw != 0 ) { // Sewers! for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - ter_set( point( i, j ), t_thconc_floor ); + ter_set( i, j, t_thconc_floor ); if( ( ( i < lw || i > EAST_EDGE - rw ) && j > SEEY - 3 && j < SEEY + 2 ) || ( ( j < tw || j > SOUTH_EDGE - bw ) && i > SEEX - 3 && i < SEEX + 2 ) ) { - ter_set( point( i, j ), t_sewage ); + ter_set( i, j, t_sewage ); } if( ( i == 0 && is_ot_match( "lab", dat.east(), ot_match_type::contains ) ) || i == EAST_EDGE ) { if( ter( i, j ) == t_sewage ) { - ter_set( point( i, j ), t_bars ); + ter_set( i, j, t_bars ); } else if( j == SEEY - 1 || j == SEEY ) { - ter_set( point( i, j ), t_door_metal_c ); + ter_set( i, j, t_door_metal_c ); } else { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } } else if( ( j == 0 && is_ot_match( "lab", dat.north(), ot_match_type::contains ) ) || j == SOUTH_EDGE ) { if( ter( i, j ) == t_sewage ) { - ter_set( point( i, j ), t_bars ); + ter_set( i, j, t_bars ); } else if( i == SEEX - 1 || i == SEEX ) { - ter_set( point( i, j ), t_door_metal_c ); + ter_set( i, j, t_door_metal_c ); } else { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } } } @@ -3507,32 +3524,32 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi ter_id bw_type = tower_lab && bw == 2 ? t_reinforced_glass : t_concrete_wall; for( int i = 0; i < SEEX * 2; i++ ) { - ter_set( point( 23, i ), rw_type ); - furn_set( point( 23, i ), f_null ); + ter_set( 23, i, rw_type ); + furn_set( 23, i, f_null ); i_clear( tripoint( 23, i, get_abs_sub().z ) ); - ter_set( point( i, 23 ), bw_type ); - furn_set( point( i, 23 ), f_null ); + ter_set( i, 23, bw_type ); + furn_set( i, 23, f_null ); i_clear( tripoint( i, 23, get_abs_sub().z ) ); if( lw == 2 ) { - ter_set( point( 0, i ), lw_type ); - furn_set( point( 0, i ), f_null ); + ter_set( 0, i, lw_type ); + furn_set( 0, i, f_null ); i_clear( tripoint( 0, i, get_abs_sub().z ) ); } if( tw == 2 ) { - ter_set( point( i, 0 ), tw_type ); - furn_set( point( i, 0 ), f_null ); + ter_set( i, 0, tw_type ); + furn_set( i, 0, f_null ); i_clear( tripoint( i, 0, get_abs_sub().z ) ); } } if( rw != 2 ) { - ter_set( point( 23, 11 ), t_door_metal_c ); - ter_set( point( 23, 12 ), t_door_metal_c ); + ter_set( 23, 11, t_door_metal_c ); + ter_set( 23, 12, t_door_metal_c ); } if( bw != 2 ) { - ter_set( point( 11, 23 ), t_door_metal_c ); - ter_set( point( 12, 23 ), t_door_metal_c ); + ter_set( 11, 23, t_door_metal_c ); + ter_set( 12, 23, t_door_metal_c ); } } @@ -3552,65 +3569,65 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi if( ( i < lw || i > EAST_EDGE - rw ) || ( ( j < SEEY - 1 || j > SEEY ) && ( i == SEEX - 2 || i == SEEX + 1 ) ) ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else if( ( j < tw || j > SOUTH_EDGE - bw ) || ( ( i < SEEX - 1 || i > SEEX ) && ( j == SEEY - 2 || j == SEEY + 1 ) ) ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else { - ter_set( point( i, j ), t_thconc_floor ); + ter_set( i, j, t_thconc_floor ); } } } if( is_ot_match( "stairs", dat.above(), ot_match_type::contains ) ) { - ter_set( point( rng( SEEX - 1, SEEX ), rng( SEEY - 1, SEEY ) ), + ter_set( rng( SEEX - 1, SEEX ), rng( SEEY - 1, SEEY ), t_stairs_up ); } // Top left if( one_in( 2 ) ) { - ter_set( point( SEEX - 2, int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( SEEX - 2, int( SEEY / 2 ), t_door_glass_frosted_c ); science_room( this, lw, tw, SEEX - 3, SEEY - 3, dat.zlevel, 1 ); } else { - ter_set( point( SEEX / 2, SEEY - 2 ), t_door_glass_frosted_c ); + ter_set( int( SEEX / 2 ), SEEY - 2, t_door_glass_frosted_c ); science_room( this, lw, tw, SEEX - 3, SEEY - 3, dat.zlevel, 2 ); } // Top right if( one_in( 2 ) ) { - ter_set( point( SEEX + 1, int( SEEY / 2 ) ), t_door_glass_frosted_c ); + ter_set( SEEX + 1, int( SEEY / 2 ), t_door_glass_frosted_c ); science_room( this, SEEX + 2, tw, 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( SEEX + int( SEEX / 2 ), SEEY - 2, t_door_glass_frosted_c ); science_room( this, SEEX + 2, tw, EAST_EDGE - rw, SEEY - 3, dat.zlevel, 2 ); } // Bottom left if( one_in( 2 ) ) { - ter_set( point( SEEX / 2, SEEY + 1 ), t_door_glass_frosted_c ); + ter_set( int( SEEX / 2 ), SEEY + 1, t_door_glass_frosted_c ); science_room( this, lw, SEEY + 2, 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( SEEX - 2, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); science_room( this, lw, SEEY + 2, 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( SEEX + int( SEEX / 2 ), SEEY + 1, t_door_glass_frosted_c ); science_room( this, SEEX + 2, SEEY + 2, 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( SEEX + 1, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); science_room( this, SEEX + 2, SEEY + 2, EAST_EDGE - rw, SOUTH_EDGE - bw, dat.zlevel, 3 ); } if( rw == 1 ) { - ter_set( point( EAST_EDGE, SEEY - 1 ), t_door_metal_c ); - ter_set( point( EAST_EDGE, SEEY ), t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( point( SEEX - 1, SOUTH_EDGE ), t_door_metal_c ); - ter_set( point( SEEX, SOUTH_EDGE ), t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } if( is_ot_match( "stairs", terrain_type, ot_match_type::contains ) ) { // Stairs going down std::vector stair_points; @@ -3647,7 +3664,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi stair_points.push_back( point( SEEX, int( SEEY / 2 ) + SEEY ) ); stair_points.push_back( point( SEEX + 2, int( SEEY / 2 ) + SEEY ) ); const point p = random_entry( stair_points ); - ter_set( p, t_stairs_down ); + ter_set( p.x, p.y, t_stairs_down ); } break; @@ -3657,33 +3674,33 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int j = 0; j < SEEY * 2; j++ ) { if( i < lw || i > EAST_EDGE - rw || i == SEEX - 4 || i == SEEX + 3 ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else if( j < tw || j > SOUTH_EDGE - bw || j == SEEY - 4 || j == SEEY + 3 ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else { - ter_set( point( i, j ), t_thconc_floor ); + ter_set( i, j, t_thconc_floor ); } } } if( is_ot_match( "stairs", dat.above(), ot_match_type::contains ) ) { - ter_set( point( SEEX - 1, SEEY - 1 ), t_stairs_up ); - ter_set( point( SEEX, SEEY - 1 ), t_stairs_up ); - ter_set( point( SEEX - 1, SEEY ), t_stairs_up ); - ter_set( point( SEEX, SEEY ), t_stairs_up ); + ter_set( SEEX - 1, SEEY - 1, t_stairs_up ); + ter_set( SEEX, SEEY - 1, t_stairs_up ); + ter_set( SEEX - 1, SEEY, t_stairs_up ); + ter_set( SEEX, SEEY, t_stairs_up ); } - ter_set( point( SEEX - rng( 0, 1 ), SEEY - 4 ), t_door_glass_frosted_c ); - 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 / 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( SEEX - rng( 0, 1 ), SEEY - 4, t_door_glass_frosted_c ); + ter_set( SEEX - rng( 0, 1 ), SEEY + 3, t_door_glass_frosted_c ); + ter_set( SEEX - 4, SEEY + rng( 0, 1 ), t_door_glass_frosted_c ); + ter_set( SEEX + 3, SEEY + rng( 0, 1 ), t_door_glass_frosted_c ); + ter_set( SEEX - 4, int( SEEY / 2 ), t_door_glass_frosted_c ); + ter_set( SEEX + 3, int( SEEY / 2 ), t_door_glass_frosted_c ); + ter_set( int( SEEX / 2 ), SEEY - 4, t_door_glass_frosted_c ); + ter_set( int( SEEX / 2 ), SEEY + 3, t_door_glass_frosted_c ); + ter_set( SEEX + int( SEEX / 2 ), SEEY - 4, t_door_glass_frosted_c ); + ter_set( SEEX + int( SEEX / 2 ), SEEY + 3, t_door_glass_frosted_c ); + ter_set( SEEX - 4, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); + ter_set( SEEX + 3, SEEY + int( SEEY / 2 ), t_door_glass_frosted_c ); science_room( this, lw, tw, SEEX - 5, SEEY - 5, dat.zlevel, rng( 1, 2 ) ); science_room( this, SEEX - 3, tw, SEEX + 2, SEEY - 5, dat.zlevel, 2 ); @@ -3699,15 +3716,15 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi science_room( this, SEEX + 4, SEEX + 4, EAST_EDGE - rw, SOUTH_EDGE - bw, dat.zlevel, 3 * rng( 0, 1 ) ); if( rw == 1 ) { - ter_set( point( EAST_EDGE, SEEY - 1 ), t_door_metal_c ); - ter_set( point( EAST_EDGE, SEEY ), t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( point( SEEX - 1, SOUTH_EDGE ), t_door_metal_c ); - ter_set( point( SEEX, SOUTH_EDGE ), t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } if( is_ot_match( "stairs", terrain_type, ot_match_type::contains ) ) { - ter_set( point( SEEX - 3 + 5 * rng( 0, 1 ), SEEY - 3 + 5 * rng( 0, 1 ) ), + ter_set( SEEX - 3 + 5 * rng( 0, 1 ), SEEY - 3 + 5 * rng( 0, 1 ), t_stairs_down ); } break; @@ -3716,11 +3733,11 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < lw || i >= EAST_EDGE - rw ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else if( j < tw || j >= SOUTH_EDGE - bw ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else { - ter_set( point( i, j ), t_thconc_floor ); + ter_set( i, j, t_thconc_floor ); } } } @@ -3728,12 +3745,12 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi dat.zlevel, rng( 0, 3 ) ); if( rw == 1 ) { - ter_set( point( EAST_EDGE, SEEY - 1 ), t_door_metal_c ); - ter_set( point( EAST_EDGE, SEEY ), t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( point( SEEX - 1, SOUTH_EDGE ), t_door_metal_c ); - ter_set( point( SEEX, SOUTH_EDGE ), t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } maybe_insert_stairs( dat.above(), t_stairs_up ); maybe_insert_stairs( terrain_type, t_stairs_down ); @@ -3757,9 +3774,9 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi one_in( 4 ) ) { // bash and usually remove the rubble. make_rubble( { i, j, abs_sub.z } ); - ter_set( point( i, j ), t_rock_floor ); + ter_set( i, j, t_rock_floor ); if( !one_in( 3 ) ) { - furn_set( point( i, j ), f_null ); + furn_set( i, j, f_null ); } } // and then randomly destroy 5% of the remaining nonstairs. @@ -3769,7 +3786,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi destroy( { i, j, abs_sub.z } ); // bashed squares can create dirt & floors, but we want rock floors. if( t_dirt == ter( i, j ) || t_floor == ter( i, j ) ) { - ter_set( point( i, j ), t_rock_floor ); + ter_set( i, j, t_rock_floor ); } } } @@ -3791,7 +3808,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi make_rubble( tripoint( i, j, abs_sub.z ), f_rubble_rock, true, t_slime ); } else if( !one_in( 5 ) ) { - ter_set( point( i, j ), t_slime ); + ter_set( i, j, t_slime ); } } } @@ -3812,7 +3829,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int j = 0; j < SEEY * 2; j++ ) { if( !( ( i * j ) % 2 || ( i + j ) % 4 ) && one_in( light_odds ) ) { if( t_thconc_floor == ter( i, j ) || t_strconc_floor == ter( i, j ) ) { - ter_set( point( i, j ), t_thconc_floor_olight ); + ter_set( i, j, t_thconc_floor_olight ); } } } @@ -3842,12 +3859,12 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi if( !one_in( 10 ) && ( t_thconc_floor == ter( i, j ) || t_strconc_floor == ter( i, j ) || t_thconc_floor_olight == ter( i, j ) ) ) { - ter_set( point( i, j ), fluid_type ); + ter_set( i, j, fluid_type ); } else if( has_flag_ter( "DOOR", i, j ) && !one_in( 3 ) ) { // We want the actual debris, but not the rubble marker or dirt. make_rubble( { i, j, abs_sub.z } ); - ter_set( point( i, j ), fluid_type ); - furn_set( point( i, j ), f_null ); + ter_set( i, j, fluid_type ); + furn_set( i, j, f_null ); } } } @@ -3867,12 +3884,12 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi draw_rough_circle( [this, fluid_type]( int x, int y ) { if( t_thconc_floor == ter( x, y ) || t_strconc_floor == ter( x, y ) || t_thconc_floor_olight == ter( x, y ) ) { - ter_set( point( x, y ), fluid_type ); + ter_set( x, y, fluid_type ); } else if( has_flag_ter( "DOOR", x, y ) ) { // We want the actual debris, but not the rubble marker or dirt. make_rubble( { x, y, abs_sub.z } ); - ter_set( point( x, y ), fluid_type ); - furn_set( point( x, y ), f_null ); + ter_set( x, y, fluid_type ); + furn_set( x, y, f_null ); } }, rng( 1, SEEX * 2 - 2 ), rng( 1, SEEY * 2 - 2 ), rng( 3, 6 ) ); } @@ -3914,9 +3931,9 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi return; // spare stairs and consoles. } make_rubble( {x, y, abs_sub.z } ); - ter_set( point( x, y ), t_thconc_floor ); + ter_set( x, y, t_thconc_floor ); }, center.x, center.y, 4 ); - furn_set( center.xy(), f_null ); + furn_set( center.x, center.y, f_null ); trap_set( center, tr_portal ); create_anomaly( center, random_entry( valid_props ), false ); break; @@ -3947,7 +3964,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi return; // spare stairs and consoles. } make_rubble( {x, y, abs_sub.z } ); - ter_set( point( x, y ), t_thconc_floor ); + ter_set( x, y, t_thconc_floor ); }, center.x, center.y, 1 ); place_spawns( GROUP_HAZMATBOT, 1, center.x - 1, center.y, @@ -3962,7 +3979,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi spawn_item( marker_x, marker_y, "mininuke", 1, 1, 0, rng( 2, 4 ) ); } else { - item newliquid( "plut_slurry_dense", calendar::start_of_cataclysm ); + item newliquid( "plut_slurry_dense", calendar::time_of_cataclysm ); newliquid.charges = 1; add_item_or_charges( tripoint( marker_x, marker_y, get_abs_sub().z ), newliquid ); @@ -3975,14 +3992,14 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int j = 0; j < SOUTH_EDGE; j++ ) { // Create a mostly spread fungal area throughout entire lab. if( !one_in( 5 ) && ( has_flag( "FLAT", i, j ) ) ) { - ter_set( point( i, j ), t_fungus_floor_in ); + ter_set( i, j, t_fungus_floor_in ); if( has_flag_furn( "ORGANIC", i, j ) ) { - furn_set( point( i, j ), f_fungal_clump ); + furn_set( i, j, f_fungal_clump ); } } else if( has_flag_ter( "DOOR", i, j ) && !one_in( 5 ) ) { - ter_set( point( i, j ), t_fungus_floor_in ); + ter_set( i, j, t_fungus_floor_in ); } else if( has_flag_ter( "WALL", i, j ) && one_in( 3 ) ) { - ter_set( point( i, j ), t_fungus_wall ); + ter_set( i, j, t_fungus_wall ); } } } @@ -3996,18 +4013,18 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi return; // spare stairs and consoles. } if( has_flag_ter( "WALL", x, y ) ) { - ter_set( point( x, y ), t_fungus_wall ); + ter_set( x, y, t_fungus_wall ); } else { - ter_set( point( x, y ), t_fungus_floor_in ); + ter_set( x, y, t_fungus_floor_in ); if( one_in( 3 ) ) { - furn_set( point( x, y ), f_flower_fungal ); + furn_set( x, y, f_flower_fungal ); } else if( one_in( 10 ) ) { - ter_set( point( x, y ), t_marloss ); + ter_set( x, y, t_marloss ); } } }, center.x, center.y, 3 ); - ter_set( center.xy(), t_fungus_floor_in ); - furn_set( center.xy(), f_null ); + ter_set( center.x, center.y, t_fungus_floor_in ); + furn_set( center.x, center.y, f_null ); trap_set( center, tr_portal ); place_spawns( GROUP_FUNGI_FUNGALOID, 1, center.x - 2, center.y - 2, center.x + 2, center.y + 2, 1, true ); @@ -4063,32 +4080,32 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi ter_id rw_type = tower_lab && rw == 2 ? t_reinforced_glass : t_concrete_wall; ter_id bw_type = tower_lab && bw == 2 ? t_reinforced_glass : t_concrete_wall; for( int i = 0; i < SEEX * 2; i++ ) { - ter_set( point( 23, i ), rw_type ); - furn_set( point( 23, i ), f_null ); + ter_set( 23, i, rw_type ); + furn_set( 23, i, f_null ); i_clear( tripoint( 23, i, get_abs_sub().z ) ); - ter_set( point( i, 23 ), bw_type ); - furn_set( point( i, 23 ), f_null ); + ter_set( i, 23, bw_type ); + furn_set( i, 23, f_null ); i_clear( tripoint( i, 23, get_abs_sub().z ) ); if( lw == 2 ) { - ter_set( point( 0, i ), lw_type ); - furn_set( point( 0, i ), f_null ); + ter_set( 0, i, lw_type ); + furn_set( 0, i, f_null ); i_clear( tripoint( 0, i, get_abs_sub().z ) ); } if( tw == 2 ) { - ter_set( point( i, 0 ), tw_type ); - furn_set( point( i, 0 ), f_null ); + ter_set( i, 0, tw_type ); + furn_set( i, 0, f_null ); i_clear( tripoint( i, 0, get_abs_sub().z ) ); } } if( rw != 2 ) { - ter_set( point( 23, 11 ), t_door_metal_c ); - ter_set( point( 23, 12 ), t_door_metal_c ); + ter_set( 23, 11, t_door_metal_c ); + ter_set( 23, 12, t_door_metal_c ); } if( bw != 2 ) { - ter_set( point( 11, 23 ), t_door_metal_c ); - ter_set( point( 12, 23 ), t_door_metal_c ); + ter_set( 11, 23, t_door_metal_c ); + ter_set( 12, 23, t_door_metal_c ); } } } else { // then weighted roll was in the hardcoded section @@ -4103,21 +4120,21 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < lw || i > EAST_EDGE - rw ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else if( j < tw || j > SOUTH_EDGE - bw ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else { - ter_set( point( i, j ), t_thconc_floor ); + ter_set( i, j, t_thconc_floor ); } } } if( rw == 1 ) { - ter_set( point( EAST_EDGE, SEEY - 1 ), t_door_metal_c ); - ter_set( point( EAST_EDGE, SEEY ), t_door_metal_c ); + ter_set( EAST_EDGE, SEEY - 1, t_door_metal_c ); + ter_set( EAST_EDGE, SEEY, t_door_metal_c ); } if( bw == 1 ) { - ter_set( point( SEEX - 1, SOUTH_EDGE ), t_door_metal_c ); - ter_set( point( SEEX, SOUTH_EDGE ), t_door_metal_c ); + ter_set( SEEX - 1, SOUTH_EDGE, t_door_metal_c ); + ter_set( SEEX, SOUTH_EDGE, t_door_metal_c ); } int loot_variant; //only used for weapons testing variant. @@ -4143,12 +4160,12 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi line( this, t_reinforced_glass, SEEX + 1, SEEY + 1, SEEX - 2, SEEY + 1 ); line( this, t_reinforced_glass, SEEX - 2, SEEY, SEEX - 2, SEEY - 2 ); line( this, t_reinforced_glass, SEEX - 1, SEEY - 2, SEEX + 1, SEEY - 2 ); - ter_set( point( SEEX + 1, SEEY - 1 ), t_reinforced_glass ); - ter_set( point( SEEX + 1, SEEY ), t_reinforced_door_glass_c ); - furn_set( point( SEEX - 1, SEEY - 1 ), f_table ); - furn_set( point( SEEX, SEEY - 1 ), f_table ); - furn_set( point( SEEX - 1, SEEY ), f_table ); - furn_set( point( SEEX, SEEY ), f_table ); + ter_set( SEEX + 1, SEEY - 1, t_reinforced_glass ); + ter_set( SEEX + 1, SEEY, t_reinforced_door_glass_c ); + furn_set( SEEX - 1, SEEY - 1, f_table ); + furn_set( SEEX, SEEY - 1, f_table ); + furn_set( SEEX - 1, SEEY, f_table ); + furn_set( SEEX, SEEY, f_table ); if( loot_variant <= 67 ) { spawn_item( SEEX, SEEY - 1, "UPS_off" ); spawn_item( SEEX, SEEY - 1, "battery", dice( 4, 3 ) ); @@ -4177,14 +4194,14 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi mtrap_set( this, SEEX - 4, SEEY + 2, tr_dissector ); mtrap_set( this, SEEX + 3, SEEY + 2, tr_dissector ); - furn_set( point( SEEX - 2, SEEY - 1 ), f_rack ); - furn_set( point( SEEX - 1, SEEY - 1 ), f_rack ); - furn_set( point( SEEX, SEEY - 1 ), f_rack ); - furn_set( point( SEEX + 1, SEEY - 1 ), f_rack ); - furn_set( point( SEEX - 2, SEEY ), f_rack ); - furn_set( point( SEEX - 1, SEEY ), f_rack ); - furn_set( point( SEEX, SEEY ), f_rack ); - furn_set( point( SEEX + 1, SEEY ), f_rack ); + furn_set( SEEX - 2, SEEY - 1, f_rack ); + furn_set( SEEX - 1, SEEY - 1, f_rack ); + furn_set( SEEX, SEEY - 1, f_rack ); + furn_set( SEEX + 1, SEEY - 1, f_rack ); + furn_set( SEEX - 2, SEEY, f_rack ); + furn_set( SEEX - 1, SEEY, f_rack ); + furn_set( SEEX, SEEY, f_rack ); + furn_set( SEEX + 1, SEEY, f_rack ); line( this, t_reinforced_door_glass_c, SEEX - 2, SEEY - 2, SEEX + 1, SEEY - 2 ); line( this, t_reinforced_door_glass_c, SEEX - 2, SEEY + 1, @@ -4210,14 +4227,14 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int j = tw; j <= bw; j++ ) { if( j == tw || j == bw ) { if( ( i - lw ) % 2 == 0 ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else { - ter_set( point( i, j ), t_reinforced_glass ); + ter_set( i, j, t_reinforced_glass ); } } else if( ( i - lw ) % 2 == 0 ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else if( j == tw + 2 ) { - ter_set( point( i, j ), t_concrete_wall ); + ter_set( i, j, t_concrete_wall ); } else { // Empty space holds monsters! place_spawns( GROUP_NETHER, 1, i, j, i, j, 1, true ); } @@ -4236,10 +4253,10 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi tmpcomp->add_option( _( "Activate Resonance Cascade" ), COMPACT_CASCADE, 10 ); tmpcomp->add_failure( COMPFAIL_MANHACKS ); tmpcomp->add_failure( COMPFAIL_SECUBOTS ); - ter_set( point( SEEX - 2, 4 ), t_radio_tower ); - ter_set( point( SEEX + 1, 4 ), t_radio_tower ); - ter_set( point( SEEX - 2, 7 ), t_radio_tower ); - ter_set( point( SEEX + 1, 7 ), t_radio_tower ); + ter_set( SEEX - 2, 4, t_radio_tower ); + ter_set( SEEX + 1, 4, t_radio_tower ); + ter_set( SEEX - 2, 7, t_radio_tower ); + ter_set( SEEX + 1, 7, t_radio_tower ); } break; @@ -4267,7 +4284,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi line( this, t_reinforced_glass, SEEX - 2, SEEY - 1, SEEX - 2, SEEY ); line( this, t_reinforced_glass, SEEX + 1, SEEY - 1, SEEX + 1, SEEY ); spawn_item( SEEX - 4, SEEY - 3, "id_science" ); - ter_set( point( SEEX - 3, SEEY - 3 ), t_console ); + ter_set( SEEX - 3, SEEY - 3, t_console ); tmpcomp = add_computer( tripoint( SEEX - 3, SEEY - 3, abs_sub.z ), _( "Bionic access" ), 3 ); tmpcomp->add_option( _( "Manifest" ), COMPACT_LIST_BIONICS, 0 ); @@ -4290,7 +4307,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi line( this, t_cvdbody, SEEX - 1, SEEY - 2, SEEX - 1, SEEY + 1 ); line( this, t_cvdbody, SEEX, SEEY - 1, SEEX, SEEY + 1 ); line( this, t_cvdbody, SEEX + 1, SEEY - 2, SEEX + 1, SEEY + 1 ); - ter_set( point( SEEX, SEEY - 2 ), t_cvdmachine ); + ter_set( SEEX, SEEY - 2, t_cvdmachine ); spawn_item( SEEX, SEEY - 3, "id_science" ); break; } @@ -4326,7 +4343,7 @@ void map::draw_lab( const oter_id &terrain_type, mapgendata &dat, const time_poi for( int j = 0; j < SEEY * 2; j++ ) { if( !( ( i * j ) % 2 || ( i + j ) % 4 ) && one_in( light_odds ) ) { if( t_thconc_floor == ter( i, j ) || t_strconc_floor == ter( i, j ) ) { - ter_set( point( i, j ), t_thconc_floor_olight ); + ter_set( i, j, t_thconc_floor_olight ); } } } @@ -4348,9 +4365,9 @@ void map::draw_silo( const oter_id &terrain_type, mapgendata &dat, const time_po for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( trig_dist( i, j, SEEX, SEEY ) <= 6 ) { - ter_set( point( i, j ), t_metal_floor ); + ter_set( i, j, t_metal_floor ); } else { - ter_set( point( i, j ), dat.groundcover() ); + ter_set( i, j, dat.groundcover() ); } } } @@ -4377,28 +4394,28 @@ void map::draw_silo( const oter_id &terrain_type, mapgendata &dat, const time_po break; } for( int i = lw; i <= lw + 2; i++ ) { - ter_set( point( i, tw ), t_wall_metal ); - ter_set( point( i, tw + 2 ), t_wall_metal ); - } - ter_set( point( lw, tw + 1 ), t_wall_metal ); - ter_set( point( lw + 1, tw + 1 ), t_stairs_down ); - ter_set( point( lw + 2, tw + 1 ), t_wall_metal ); - ter_set( point( mw, tw + 1 ), t_door_metal_locked ); - ter_set( point( mw, tw + 2 ), t_card_military ); + ter_set( i, tw, t_wall_metal ); + ter_set( i, tw + 2, t_wall_metal ); + } + ter_set( lw, tw + 1, t_wall_metal ); + ter_set( lw + 1, tw + 1, t_stairs_down ); + ter_set( lw + 2, tw + 1, t_wall_metal ); + ter_set( mw, tw + 1, t_door_metal_locked ); + ter_set( mw, tw + 2, t_card_military ); } else { // We are NOT above ground. for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( trig_dist( i, j, SEEX, SEEY ) > 7 ) { - ter_set( point( i, j ), t_rock ); + ter_set( i, j, t_rock ); } else if( trig_dist( i, j, SEEX, SEEY ) > 5 ) { - ter_set( point( i, j ), t_metal_floor ); + ter_set( i, j, t_metal_floor ); if( one_in( 30 ) ) { add_field( {i, j, abs_sub.z}, fd_nuke_gas, 2 ); } } else if( trig_dist( i, j, SEEX, SEEY ) == 5 ) { - ter_set( point( i, j ), t_hole ); + ter_set( i, j, t_hole ); } else { - ter_set( point( i, j ), t_missile ); + ter_set( i, j, t_missile ); } } } @@ -4409,18 +4426,18 @@ void map::draw_silo( const oter_id &terrain_type, mapgendata &dat, const time_po for( int j = 0; j < SEEY * 2; j++ ) { if( i == 5 ) { if( j > 4 && j < SEEY ) { - ter_set( point( i, j ), t_reinforced_glass ); + ter_set( i, j, t_reinforced_glass ); } else if( j == SEEY * 2 - 4 ) { - ter_set( point( i, j ), t_door_metal_c ); + ter_set( i, j, t_door_metal_c ); } else { - ter_set( point( i, j ), t_rock ); + ter_set( i, j, t_rock ); } } else { - ter_set( point( i, j ), t_rock_floor ); + ter_set( i, j, t_rock_floor ); } } } - ter_set( point_zero, t_stairs_up ); + ter_set( 0, 0, t_stairs_up ); tmpcomp = add_computer( tripoint( 4, 5, abs_sub.z ), _( "Missile Controls" ), 8 ); tmpcomp->add_option( _( "Launch Missile" ), COMPACT_MISS_LAUNCH, 10 ); tmpcomp->add_option( _( "Disarm Missile" ), COMPACT_MISS_DISARM, 8 ); @@ -4438,7 +4455,7 @@ void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_ // TODO: More varieties? fill_background( this, t_dirt ); square( this, t_grate, SEEX - 1, SEEY - 1, SEEX, SEEX ); - ter_set( point( SEEX + 1, SEEY + 1 ), t_pedestal_temple ); + ter_set( SEEX + 1, SEEY + 1, t_pedestal_temple ); } else { // Underground! Shit's about to get interesting! // Start with all rock floor square( this, t_rock_floor, 0, 0, EAST_EDGE, SOUTH_EDGE ); @@ -4488,10 +4505,10 @@ void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_ line( this, t_rock, SEEX + 2, 0, EAST_EDGE, 0 ); line( this, t_rock, SEEX - 1, 1, SEEX - 1, 6 ); line( this, t_bars, SEEX + 2, 1, SEEX + 2, 6 ); - ter_set( point( 14, 1 ), t_switch_rg ); - ter_set( point( 15, 1 ), t_switch_gb ); - ter_set( point( 16, 1 ), t_switch_rb ); - ter_set( point( 17, 1 ), t_switch_even ); + ter_set( 14, 1, t_switch_rg ); + ter_set( 15, 1, t_switch_gb ); + ter_set( 16, 1, t_switch_rb ); + ter_set( 17, 1, t_switch_even ); // Start with clear floors--then work backwards to the starting state line( this, t_floor_red, SEEX, 1, SEEX + 1, 1 ); line( this, t_floor_green, SEEX, 2, SEEX + 1, 2 ); @@ -4514,51 +4531,51 @@ void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_ switch( action ) { case 1: // Toggle RG if( ter( x, y ) == t_floor_red ) { - ter_set( point( x, y ), t_rock_red ); + ter_set( x, y, t_rock_red ); } else if( ter( x, y ) == t_rock_red ) { - ter_set( point( x, y ), t_floor_red ); + ter_set( x, y, t_floor_red ); } else if( ter( x, y ) == t_floor_green ) { - ter_set( point( x, y ), t_rock_green ); + ter_set( x, y, t_rock_green ); } else if( ter( x, y ) == t_rock_green ) { - ter_set( point( x, y ), t_floor_green ); + ter_set( x, y, t_floor_green ); } break; case 2: // Toggle GB if( ter( x, y ) == t_floor_blue ) { - ter_set( point( x, y ), t_rock_blue ); + ter_set( x, y, t_rock_blue ); } else if( ter( x, y ) == t_rock_blue ) { - ter_set( point( x, y ), t_floor_blue ); + ter_set( x, y, t_floor_blue ); } else if( ter( x, y ) == t_floor_green ) { - ter_set( point( x, y ), t_rock_green ); + ter_set( x, y, t_rock_green ); } else if( ter( x, y ) == t_rock_green ) { - ter_set( point( x, y ), t_floor_green ); + ter_set( x, y, t_floor_green ); } break; case 3: // Toggle RB if( ter( x, y ) == t_floor_blue ) { - ter_set( point( x, y ), t_rock_blue ); + ter_set( x, y, t_rock_blue ); } else if( ter( x, y ) == t_rock_blue ) { - ter_set( point( x, y ), t_floor_blue ); + ter_set( x, y, t_floor_blue ); } else if( ter( x, y ) == t_floor_red ) { - ter_set( point( x, y ), t_rock_red ); + ter_set( x, y, t_rock_red ); } else if( ter( x, y ) == t_rock_red ) { - ter_set( point( x, y ), t_floor_red ); + ter_set( x, y, t_floor_red ); } break; case 4: // Toggle Even if( y % 2 == 0 ) { if( ter( x, y ) == t_floor_blue ) { - ter_set( point( x, y ), t_rock_blue ); + ter_set( x, y, t_rock_blue ); } else if( ter( x, y ) == t_rock_blue ) { - ter_set( point( x, y ), t_floor_blue ); + ter_set( x, y, t_floor_blue ); } else if( ter( x, y ) == t_floor_red ) { - ter_set( point( x, y ), t_rock_red ); + ter_set( x, y, t_rock_red ); } else if( ter( x, y ) == t_rock_red ) { - ter_set( point( x, y ), t_floor_red ); + ter_set( x, y, t_floor_red ); } else if( ter( x, y ) == t_floor_green ) { - ter_set( point( x, y ), t_rock_green ); + ter_set( x, y, t_rock_green ); } else if( ter( x, y ) == t_rock_green ) { - ter_set( point( x, y ), t_floor_green ); + ter_set( x, y, t_floor_green ); } } break; @@ -4580,7 +4597,7 @@ void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_ std::vector path; // Path, from end to start while( x < SEEX - 1 || x > SEEX + 2 || y < SEEY * 2 - 2 ) { path.push_back( point( x, y ) ); - ter_set( point( x, y ), ter_id( rng( t_floor_red, t_floor_blue ) ) ); + ter_set( x, y, ter_id( rng( t_floor_red, t_floor_blue ) ) ); if( y == SEEY * 2 - 2 ) { if( x < SEEX - 1 ) { x++; @@ -4613,17 +4630,17 @@ void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_ if( ter( path[i].x, path[i].y ) == t_floor_red ) { toggle_green = !toggle_green; if( toggle_red ) { - ter_set( point( path[i].x, path[i].y ), t_rock_red ); + ter_set( path[i].x, path[i].y, t_rock_red ); } } else if( ter( path[i].x, path[i].y ) == t_floor_green ) { toggle_blue = !toggle_blue; if( toggle_green ) { - ter_set( point( path[i].x, path[i].y ), t_rock_green ); + ter_set( path[i].x, path[i].y, t_rock_green ); } } else if( ter( path[i].x, path[i].y ) == t_floor_blue ) { toggle_red = !toggle_red; if( toggle_blue ) { - ter_set( point( path[i].x, path[i].y ), t_rock_blue ); + ter_set( path[i].x, path[i].y, t_rock_blue ); } } } @@ -4632,7 +4649,7 @@ void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_ for( int j = 2; j <= SEEY * 2 - 2; j++ ) { mtrap_set( this, i, j, tr_temple_toggle ); if( ter( i, j ) == t_rock_floor ) { - ter_set( point( i, j ), ter_id( rng( t_rock_red, t_floor_blue ) ) ); + ter_set( i, j, ter_id( rng( t_rock_red, t_floor_blue ) ) ); } } } @@ -4661,268 +4678,6 @@ void map::draw_temple( const oter_id &terrain_type, mapgendata &dat, const time_ } } -void map::draw_sewer( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, - const float /*density*/ ) -{ - computer *tmpcomp = nullptr; - - if( terrain_type == "sewage_treatment" ) { - fill_background( this, t_floor ); // Set all to floor - line( this, t_wall, 0, 0, 23, 0 ); // Top wall - line( this, t_window, 1, 0, 6, 0 ); // Its windows - line( this, t_wall, 0, 23, 23, 23 ); // Bottom wall - line( this, t_wall, 1, 5, 6, 5 ); // Interior wall (front office) - line( this, t_wall, 1, 14, 6, 14 ); // Interior wall (equipment) - line( this, t_wall, 1, 20, 7, 20 ); // Interior wall (stairs) - line( this, t_wall, 14, 15, 22, 15 ); // Interior wall (tank) - line( this, t_wall, 0, 1, 0, 22 ); // Left wall - line( this, t_wall, 23, 1, 23, 22 ); // Right wall - line( this, t_wall, 7, 1, 7, 5 ); // Interior wall (front office) - line( this, t_wall, 7, 14, 7, 19 ); // Interior wall (stairs) - line( this, t_wall, 4, 15, 4, 19 ); // Interior wall (mid-stairs) - line( this, t_wall, 14, 15, 14, 20 ); // Interior wall (tank) - line( this, t_wall_glass, 7, 6, 7, 13 ); // Interior glass (equipment) - line( this, t_wall_glass, 8, 20, 13, 20 ); // Interior glass (flow) - line_furn( this, f_counter, 1, 3, 3, 3 ); // Desk (front office); - line_furn( this, f_counter, 1, 6, 1, 13 ); // Counter (equipment); - // Central tanks: - square( this, t_sewage, 10, 3, 13, 6 ); - square( this, t_sewage, 17, 3, 20, 6 ); - square( this, t_sewage, 10, 10, 13, 13 ); - square( this, t_sewage, 17, 10, 20, 13 ); - // Drainage tank - square( this, t_sewage, 16, 16, 21, 18 ); - square( this, t_grate, 18, 16, 19, 17 ); - line( this, t_sewage, 17, 19, 20, 19 ); - line( this, t_sewage, 18, 20, 19, 20 ); - line( this, t_sewage, 2, 21, 19, 21 ); - line( this, t_sewage, 2, 22, 19, 22 ); - // Pipes and pumps - line( this, t_sewage_pipe, 1, 15, 1, 19 ); - line( this, t_sewage_pump, 1, 21, 1, 22 ); - // Stairs down - ter_set( point( 2, 15 ), t_stairs_down ); - // Now place doors - ter_set( point( rng( 2, 5 ), 0 ), t_door_c ); - ter_set( point( rng( 3, 5 ), 5 ), t_door_c ); - ter_set( point( 5, 14 ), t_door_c ); - ter_set( point( 7, rng( 15, 17 ) ), t_door_c ); - ter_set( point( 14, rng( 17, 19 ) ), t_door_c ); - if( one_in( 3 ) ) { // back door - ter_set( point( 23, rng( 19, 22 ) ), t_door_locked ); - } - ter_set( point( 4, 19 ), t_door_metal_locked ); - ter_set( point( 2, 19 ), t_console ); - ter_set( point( 6, 19 ), t_console ); - // Computers to unlock stair room, and items - tmpcomp = add_computer( tripoint( 2, 19, abs_sub.z ), _( "EnviroCom OS v2.03" ), 1 ); - tmpcomp->add_option( _( "Unlock stairs" ), COMPACT_OPEN, 0 ); - tmpcomp->add_failure( COMPFAIL_SHUTDOWN ); - - tmpcomp = add_computer( tripoint( 6, 19, abs_sub.z ), _( "EnviroCom OS v2.03" ), 1 ); - tmpcomp->add_option( _( "Unlock stairs" ), COMPACT_OPEN, 0 ); - tmpcomp->add_failure( COMPFAIL_SHUTDOWN ); - place_items( "sewage_plant", 80, 1, 6, 1, 13, false, 0 ); - - } else if( terrain_type == "sewage_treatment_hub" ) { - // Stairs up, center of 3x3 of treatment_below - - fill_background( this, t_rock_floor ); - // Top & left walls; right & bottom are handled by adjacent terrain - line( this, t_wall, 0, 0, 23, 0 ); - line( this, t_wall, 0, 1, 0, 23 ); - // Top-left room - line( this, t_wall, 8, 1, 8, 8 ); - line( this, t_wall, 1, 9, 9, 9 ); - line( this, t_wall_glass, rng( 1, 3 ), 9, rng( 4, 7 ), 9 ); - ter_set( point( 2, 15 ), t_stairs_up ); - ter_set( point( 8, 8 ), t_door_c ); - ter_set( point( 3, 0 ), t_door_c ); - - // Bottom-left room - stairs and equipment - line( this, t_wall, 1, 14, 8, 14 ); - line( this, t_wall_glass, rng( 1, 3 ), 14, rng( 5, 8 ), 14 ); - line( this, t_wall, 9, 14, 9, 23 ); - line( this, t_wall_glass, 9, 16, 9, 19 ); - square_furn( this, f_counter, 5, 16, 6, 20 ); - place_items( "sewage_plant", 80, 5, 16, 6, 20, false, 0 ); - ter_set( point( 0, 20 ), t_door_c ); - ter_set( point( 9, 20 ), t_door_c ); - - // Bottom-right room - line( this, t_wall, 14, 19, 14, 23 ); - line( this, t_wall, 14, 18, 19, 18 ); - line( this, t_wall, 21, 14, 23, 14 ); - ter_set( point( 14, 18 ), t_wall ); - ter_set( point( 14, 20 ), t_door_c ); - ter_set( point( 15, 18 ), t_door_c ); - line( this, t_wall, 20, 15, 20, 18 ); - - // Tanks and their content - for( int i = 9; i <= 16; i += 7 ) { - for( int j = 2; j <= 9; j += 7 ) { - square( this, t_rock, i, j, i + 5, j + 5 ); - square( this, t_sewage, i + 1, j + 1, i + 4, j + 4 ); - } - } - square( this, t_rock, 16, 15, 19, 17 ); // Wall around sewage from above - square( this, t_rock, 10, 15, 14, 17 ); // Extra walls for southward flow - // Flow in from north, east, and west always connects to the corresponding tank - square( this, t_sewage, 10, 0, 13, 2 ); // North -> NE tank - square( this, t_sewage, 21, 10, 23, 13 ); // East -> SE tank - square( this, t_sewage, 0, 10, 9, 13 ); // West -> SW tank - // Flow from south may go to SW tank or SE tank - square( this, t_sewage, 10, 16, 13, 23 ); - if( one_in( 2 ) ) { // To SW tank - square( this, t_sewage, 10, 14, 13, 17 ); - // Then, flow from above may be either to flow from south, to SE tank, or both - switch( rng( 1, 5 ) ) { - case 1: - case 2: // To flow from south - square( this, t_sewage, 14, 16, 19, 17 ); - line( this, t_bridge, 15, 16, 15, 17 ); - if( !one_in( 4 ) ) { - line( this, t_wall_glass, 16, 18, 19, 18 ); // Viewing window - } - break; - case 3: - case 4: // To SE tank - square( this, t_sewage, 18, 14, 19, 17 ); - if( !one_in( 4 ) ) { - line( this, t_wall_glass, 20, 15, 20, 17 ); // Viewing window - } - break; - case 5: // Both! - square( this, t_sewage, 14, 16, 19, 17 ); - square( this, t_sewage, 18, 14, 19, 17 ); - line( this, t_bridge, 15, 16, 15, 17 ); - if( !one_in( 4 ) ) { - line( this, t_wall_glass, 16, 18, 19, 18 ); // Viewing window - } - if( !one_in( 4 ) ) { - line( this, t_wall_glass, 20, 15, 20, 17 ); // Viewing window - } - break; - } - } else { // To SE tank, via flow from above - square( this, t_sewage, 14, 16, 19, 17 ); - square( this, t_sewage, 18, 14, 19, 17 ); - line( this, t_bridge, 15, 16, 15, 17 ); - if( !one_in( 4 ) ) { - line( this, t_wall_glass, 16, 18, 19, 18 ); // Viewing window - } - if( !one_in( 4 ) ) { - line( this, t_wall_glass, 20, 15, 20, 17 ); // Viewing window - } - } - - // Next, determine how the tanks interconnect. - int rn = rng( 1, 4 ); // Which of the 4 possible connections is missing? - if( rn != 1 ) { - line( this, t_sewage, 14, 4, 14, 5 ); - line( this, t_bridge, 15, 4, 15, 5 ); - line( this, t_sewage, 16, 4, 16, 5 ); - } - if( rn != 2 ) { - line( this, t_sewage, 18, 7, 19, 7 ); - line( this, t_bridge, 18, 8, 19, 8 ); - line( this, t_sewage, 18, 9, 19, 9 ); - } - if( rn != 3 ) { - line( this, t_sewage, 14, 11, 14, 12 ); - line( this, t_bridge, 15, 11, 15, 12 ); - line( this, t_sewage, 16, 11, 16, 12 ); - } - if( rn != 4 ) { - line( this, t_sewage, 11, 7, 12, 7 ); - line( this, t_bridge, 11, 8, 12, 8 ); - line( this, t_sewage, 11, 9, 12, 9 ); - } - // Bridge connecting bottom two rooms - line( this, t_bridge, 10, 20, 13, 20 ); - // Possibility of extra equipment shelves - if( !one_in( 3 ) ) { - line_furn( this, f_rack, 23, 1, 23, 4 ); - place_items( "sewage_plant", 60, 23, 1, 23, 4, false, 0 ); - } - - // Finally, choose what the top-left and bottom-right rooms do. - if( one_in( 2 ) ) { // Upper left is sampling, lower right valuable finds - // Upper left... - line( this, t_wall, 1, 3, 2, 3 ); - line( this, t_wall, 1, 5, 2, 5 ); - line( this, t_wall, 1, 7, 2, 7 ); - ter_set( point( 1, 4 ), t_sewage_pump ); - furn_set( point( 2, 4 ), f_counter ); - ter_set( point( 1, 6 ), t_sewage_pump ); - furn_set( point( 2, 6 ), f_counter ); - ter_set( point( 1, 2 ), t_console ); - tmpcomp = add_computer( tripoint( 1, 2, abs_sub.z ), _( "EnviroCom OS v2.03" ), 0 ); - tmpcomp->add_option( _( "Download Sewer Maps" ), COMPACT_MAP_SEWER, 0 ); - tmpcomp->add_option( _( "Divert sample" ), COMPACT_SAMPLE, 3 ); - tmpcomp->add_failure( COMPFAIL_PUMP_EXPLODE ); - tmpcomp->add_failure( COMPFAIL_PUMP_LEAK ); - // Lower right... - line_furn( this, f_counter, 15, 23, 22, 23 ); - place_items( "sewer", 65, 15, 23, 22, 23, false, 0 ); - line_furn( this, f_counter, 23, 15, 23, 19 ); - place_items( "sewer", 65, 23, 15, 23, 19, false, 0 ); - } else { // Upper left is valuable finds, lower right is sampling - // Upper left... - line_furn( this, f_counter, 1, 1, 1, 7 ); - place_items( "sewer", 65, 1, 1, 1, 7, false, 0 ); - line_furn( this, f_counter, 7, 1, 7, 7 ); - place_items( "sewer", 65, 7, 1, 7, 7, false, 0 ); - // Lower right... - line( this, t_wall, 17, 22, 17, 23 ); - line( this, t_wall, 19, 22, 19, 23 ); - line( this, t_wall, 21, 22, 21, 23 ); - ter_set( point( 18, 23 ), t_sewage_pump ); - furn_set( point( 18, 22 ), f_counter ); - ter_set( point( 20, 23 ), t_sewage_pump ); - furn_set( point( 20, 22 ), f_counter ); - ter_set( point( 16, 23 ), t_console ); - tmpcomp = add_computer( tripoint( 16, 23, abs_sub.z ), _( "EnviroCom OS v2.03" ), 0 ); - tmpcomp->add_option( _( "Download Sewer Maps" ), COMPACT_MAP_SEWER, 0 ); - tmpcomp->add_option( _( "Divert sample" ), COMPACT_SAMPLE, 3 ); - tmpcomp->add_failure( COMPFAIL_PUMP_EXPLODE ); - tmpcomp->add_failure( COMPFAIL_PUMP_LEAK ); - } - - } else if( terrain_type == "sewage_treatment_under" ) { - fill_background( this, t_floor ); - if( dat.north() == "sewage_treatment_under" || dat.north() == "sewage_treatment_hub" || - ( is_ot_match( "sewer", dat.north(), ot_match_type::type ) && connects_to( dat.north(), 2 ) ) ) { - if( dat.north() == "sewage_treatment_under" || dat.north() == "sewage_treatment_hub" ) { - line( this, t_wall, 0, 0, 23, 0 ); - ter_set( point( 3, 0 ), t_door_c ); - } - dat.n_fac = 1; - square( this, t_sewage, 10, 0, 13, 13 ); - } - if( dat.east() == "sewage_treatment_under" || dat.east() == "sewage_treatment_hub" || - ( is_ot_match( "sewer", dat.east(), ot_match_type::type ) && connects_to( dat.east(), 3 ) ) ) { - dat.e_fac = 1; - square( this, t_sewage, 10, 10, 23, 13 ); - } - if( dat.south() == "sewage_treatment_under" || dat.south() == "sewage_treatment_hub" || - ( is_ot_match( "sewer", dat.south(), ot_match_type::type ) && connects_to( dat.south(), 0 ) ) ) { - dat.s_fac = 1; - square( this, t_sewage, 10, 10, 13, 23 ); - } - if( dat.west() == "sewage_treatment_under" || dat.west() == "sewage_treatment_hub" || - ( is_ot_match( "sewer", dat.west(), ot_match_type::type ) && connects_to( dat.west(), 1 ) ) ) { - if( dat.west() == "sewage_treatment_under" || - dat.west() == "sewage_treatment_hub" ) { - line( this, t_wall, 0, 1, 0, 23 ); - ter_set( point( 0, 20 ), t_door_c ); - } - dat.w_fac = 1; - square( this, t_sewage, 0, 10, 13, 13 ); - } - } -} - void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, const float /*density*/ ) { @@ -4959,14 +4714,14 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po ladderx = rng( 0, EAST_EDGE ); laddery = rng( 0, SOUTH_EDGE ); } - ter_set( point( ladderx, laddery ), t_manhole_cover ); + ter_set( ladderx, laddery, t_manhole_cover ); } else if( terrain_type == "mine_shaft" ) { // Not intended to actually be inhabited! fill_background( this, t_rock ); square( this, t_hole, SEEX - 3, SEEY - 3, SEEX + 2, SEEY + 2 ); line( this, t_grate, SEEX - 3, SEEY - 4, SEEX + 2, SEEY - 4 ); - ter_set( point( SEEX - 3, SEEY - 5 ), t_ladder_up ); - ter_set( point( SEEX + 2, SEEY - 5 ), t_ladder_down ); + ter_set( SEEX - 3, SEEY - 5, t_ladder_up ); + ter_set( SEEX + 2, SEEY - 5, t_ladder_down ); rotate( rng( 0, 3 ) ); } else if( terrain_type == "mine" || terrain_type == "mine_down" ) { @@ -4996,9 +4751,9 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po if( i >= dat.w_fac + rng( 0, 2 ) && i <= EAST_EDGE - dat.e_fac - rng( 0, 2 ) && j >= dat.n_fac + rng( 0, 2 ) && j <= SOUTH_EDGE - dat.s_fac - rng( 0, 2 ) && i + j >= 4 && ( SEEX * 2 - i ) + ( SEEY * 2 - j ) >= 6 ) { - ter_set( point( i, j ), t_rock_floor ); + ter_set( i, j, t_rock_floor ); } else { - ter_set( point( i, j ), t_rock ); + ter_set( i, j, t_rock ); } } } @@ -5010,15 +4765,15 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po line( this, t_wall, 9, 10, 9, 15 ); line( this, t_wall, 16, 10, 16, 15 ); line( this, t_wall, 10, 11, 12, 11 ); - ter_set( point( 10, 10 ), t_elevator_control ); - ter_set( point( 11, 10 ), t_elevator ); - ter_set( point( 10, 12 ), t_ladder_up ); + ter_set( 10, 10, t_elevator_control ); + ter_set( 11, 10, t_elevator ); + ter_set( 10, 12, t_ladder_up ); line_furn( this, f_counter, 10, 15, 15, 15 ); place_items( "mine_equipment", 86, 10, 15, 15, 15, false, 0 ); if( one_in( 2 ) ) { - ter_set( point( 9, 12 ), t_door_c ); + ter_set( 9, 12, t_door_c ); } else { - ter_set( point( 16, 12 ), t_door_c ); + ter_set( 16, 12, t_door_c ); } } else { // Not an entrance; maybe some hazards! @@ -5029,7 +4784,7 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po case 1: { // Toxic gas int cx = rng( 9, 14 ); int cy = rng( 9, 14 ); - ter_set( point( cx, cy ), t_rock ); + ter_set( cx, cy, t_rock ); add_field( {cx, cy, abs_sub.z}, fd_gas_vent, 2 ); } break; @@ -5113,7 +4868,7 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po default: break; } - ter_set( p, t_rock_floor ); + ter_set( p.x, p.y, t_rock_floor ); place_spawns( GROUP_DARK_WYRM, 1, p.x, p.y, p.x, p.y, 1, true ); } } @@ -5127,7 +4882,7 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po line( this, t_rock, orx + 1, ory + 5, orx + 5, ory + 5 ); line( this, t_rock, orx + 1, ory + 2, orx + 1, ory + 4 ); line( this, t_rock, orx + 1, ory + 2, orx + 3, ory + 2 ); - ter_set( point( orx + 3, ory + 3 ), t_rock ); + ter_set( orx + 3, ory + 3, t_rock ); add_item( orx + 2, ory + 3, item::make_corpse() ); place_items( "mine_equipment", 60, orx + 2, ory + 3, orx + 2, ory + 3, false, 0 ); @@ -5261,9 +5016,9 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po for( int j = 0; j < SEEY * 2; j++ ) { if( i > rng( 1, 3 ) && i < SEEX * 2 - rng( 2, 4 ) && j > rng( 1, 3 ) && j < SEEY * 2 - rng( 2, 4 ) ) { - ter_set( point( i, j ), t_rock_floor ); + ter_set( i, j, t_rock_floor ); } else { - ter_set( point( i, j ), t_rock ); + ter_set( i, j, t_rock ); } } } @@ -5305,7 +5060,7 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po switch( rn ) { case 1: { // Wyrms int x = rng( SEEX, SEEX + 1 ), y = rng( SEEY, SEEY + 1 ); - ter_set( point( x, y ), t_pedestal_wyrm ); + ter_set( x, y, t_pedestal_wyrm ); spawn_item( x, y, "petrified_eye" ); } break; // That's it! game::examine handles the pedestal/wyrm spawns @@ -5335,9 +5090,9 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po line( this, t_rock, 10, 10, 10, 15 ); line( this, t_rock, 10, 10, 13, 10 ); line( this, t_rock, 13, 10, 13, 13 ); - ter_set( point( 12, 13 ), t_rock ); - ter_set( point( 12, 12 ), t_slope_down ); - ter_set( point( 12, 11 ), t_slope_down ); + ter_set( 12, 13, t_rock ); + ter_set( 12, 12, t_slope_down ); + ter_set( 12, 11, t_slope_down ); } break; @@ -5364,7 +5119,7 @@ void map::draw_mine( const oter_id &terrain_type, mapgendata &dat, const time_po break; } - ter_set( point( SEEX, SEEY ), t_console ); + ter_set( SEEX, SEEY, t_console ); tmpcomp = add_computer( tripoint( SEEX, SEEY, abs_sub.z ), _( "NEPowerOS" ), 0 ); tmpcomp->add_option( _( "Read Logs" ), COMPACT_AMIGARA_LOG, 0 ); tmpcomp->add_option( _( "Initiate Tremors" ), COMPACT_AMIGARA_START, 4 ); @@ -5425,13 +5180,45 @@ void map::draw_spiral( const oter_id &terrain_type, mapgendata &/*dat*/, const t line( this, t_rock, orx + 1, ory + 5, orx + 5, ory + 5 ); line( this, t_rock, orx + 1, ory + 2, orx + 1, ory + 4 ); line( this, t_rock, orx + 1, ory + 2, orx + 3, ory + 2 ); - ter_set( point( orx + 3, ory + 3 ), t_rock ); - ter_set( point( orx + 2, ory + 3 ), t_rock_floor ); + ter_set( orx + 3, ory + 3, t_rock ); + ter_set( orx + 2, ory + 3, t_rock_floor ); place_items( "spiral", 60, orx + 2, ory + 3, orx + 2, ory + 3, false, 0 ); } } } +void map::draw_toxic_dump( const oter_id &terrain_type, mapgendata &/*dat*/, + const time_point &/*when*/, const float /*density*/ ) +{ + if( is_ot_match( "toxic_dump", terrain_type, ot_match_type::type ) ) { + fill_background( this, t_dirt ); + for( int n = 0; n < 6; n++ ) { + int poolx = rng( 4, SEEX * 2 - 5 ), pooly = rng( 4, SEEY * 2 - 5 ); + for( int i = poolx - 3; i <= poolx + 3; i++ ) { + for( int j = pooly - 3; j <= pooly + 3; j++ ) { + if( rng( 2, 5 ) > rl_dist( poolx, pooly, i, j ) ) { + ter_set( i, j, t_sewage ); + adjust_radiation( i, j, rng( 20, 60 ) ); + } + } + } + } + int buildx = rng( 6, SEEX * 2 - 7 ), buildy = rng( 6, SEEY * 2 - 7 ); + square( this, t_floor, buildx - 3, buildy - 3, buildx + 3, buildy + 3 ); + line( this, t_wall, buildx - 4, buildy - 4, buildx + 4, buildy - 4 ); + line( this, t_wall, buildx - 4, buildy + 4, buildx + 4, buildy + 4 ); + line( this, t_wall, buildx - 4, buildy - 4, buildx - 4, buildy + 4 ); + line( this, t_wall, buildx + 4, buildy - 4, buildx + 4, buildy + 4 ); + line_furn( this, f_counter, buildx - 3, buildy - 3, buildx + 3, buildy - 3 ); + place_items( "toxic_dump_equipment", 80, + buildx - 3, buildy - 3, buildx + 3, buildy - 3, false, 0 ); + spawn_item( buildx, buildy, "id_military" ); + ter_set( buildx, buildy + 4, t_door_locked ); + + rotate( rng( 0, 3 ) ); + } +} + void map::draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, const time_point &/*when*/, const float /*density*/ ) { @@ -5476,6 +5263,7 @@ void map::draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, return is_ot_match( oterstr, oterid, ot_match_type::type ); }; + if( match( terrain_type, "haz_sar_entrance" ) ) { // Init to grass & dirt; dat.fill_groundcover(); @@ -5738,10 +5526,10 @@ void map::draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { - ter_set( point( i, j ), t_dirtfloor ); + ter_set( i, j, t_dirtfloor ); } if( one_in( 4 ) ) { - ter_set( point( i, j ), t_dirtmound ); + ter_set( i, j, t_dirtmound ); } if( one_in( 2 ) ) { make_rubble( tripoint( i, j, abs_sub.z ), f_wreckage, true ); @@ -5813,10 +5601,10 @@ void map::draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { - ter_set( point( i, j ), t_dirtfloor ); + ter_set( i, j, t_dirtfloor ); } if( one_in( 4 ) ) { - ter_set( point( i, j ), t_dirtmound ); + ter_set( i, j, t_dirtmound ); } if( one_in( 2 ) ) { make_rubble( tripoint( i, j, abs_sub.z ), f_wreckage, true ); @@ -5880,10 +5668,10 @@ void map::draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { - ter_set( point( i, j ), t_dirtfloor ); + ter_set( i, j, t_dirtfloor ); } if( one_in( 4 ) ) { - ter_set( point( i, j ), t_dirtmound ); + ter_set( i, j, t_dirtmound ); } if( one_in( 2 ) ) { make_rubble( tripoint( i, j, abs_sub.z ), f_wreckage, true ); @@ -5956,10 +5744,10 @@ void map::draw_sarcophagus( const oter_id &terrain_type, mapgendata &dat, } if( this->ter( i, j ) == t_sewage ) { if( one_in( 2 ) ) { - ter_set( point( i, j ), t_dirtfloor ); + ter_set( i, j, t_dirtfloor ); } if( one_in( 4 ) ) { - ter_set( point( i, j ), t_dirtmound ); + ter_set( i, j, t_dirtmound ); } if( one_in( 2 ) ) { make_rubble( tripoint( i, j, abs_sub.z ), f_wreckage, true ); @@ -6008,8 +5796,8 @@ void map::draw_megastore( const oter_id &terrain_type, mapgendata &dat, const ti fill_background( this, t_floor ); // Construct facing north; below, we'll rotate to face road line( this, t_wall_glass, 0, 0, EAST_EDGE, 0 ); - ter_set( point( SEEX, 0 ), t_door_glass_c ); - ter_set( point( SEEX + 1, 0 ), t_door_glass_c ); + ter_set( SEEX, 0, t_door_glass_c ); + ter_set( SEEX + 1, 0, t_door_glass_c ); //Vending std::vector vset; vset.reserve( 21 ); @@ -6272,7 +6060,7 @@ void map::draw_fema( const oter_id &terrain_type, mapgendata &dat, const time_po line_furn( this, f_chair, 15, 12, 16, 12 ); line( this, t_reinforced_glass, 13, 14, 18, 14 ); line( this, t_reinforced_glass, 13, 14, 13, 18 ); - ter_set( point( 15, 14 ), t_door_metal_locked ); + ter_set( 15, 14, t_door_metal_locked ); place_items( "dissection", 90, 10, 8, 10, 17, false, 0 ); place_items( "hospital_lab", 70, 5, 5, 18, 18, false, 0 ); place_items( "harddrugs", 50, 6, 5, 9, 5, false, 0 ); @@ -6300,12 +6088,12 @@ void map::draw_fema( const oter_id &terrain_type, mapgendata &dat, const time_po square_furn( this, f_crate_c, 5, 16, 7, 17 ); line( this, t_chainfence, 9, 6, 14, 6 ); line( this, t_chainfence, 9, 17, 14, 17 ); - ter_set( point( 9, 5 ), t_chaingate_c ); - ter_set( point( 14, 18 ), t_chaingate_c ); - ter_set( point( 14, 5 ), t_chainfence ); - ter_set( point( 9, 18 ), t_chainfence ); - furn_set( point( 12, 17 ), f_counter ); - furn_set( point( 11, 6 ), f_counter ); + ter_set( 9, 5, t_chaingate_c ); + ter_set( 14, 18, t_chaingate_c ); + ter_set( 14, 5, t_chainfence ); + ter_set( 9, 18, t_chainfence ); + furn_set( 12, 17, f_counter ); + furn_set( 11, 6, f_counter ); line_furn( this, f_chair, 10, 10, 13, 10 ); square_furn( this, f_desk, 10, 11, 13, 12 ); line_furn( this, f_chair, 10, 13, 13, 13 ); @@ -6363,7 +6151,7 @@ void map::draw_fema( const oter_id &terrain_type, mapgendata &dat, const time_po line_furn( this, f_crate_c, 5, 5, 5, 6 ); square_furn( this, f_counter, 6, 6, 10, 8 ); square( this, t_rock_floor, 6, 5, 9, 7 ); - furn_set( point( 7, 6 ), f_woodstove ); + furn_set( 7, 6, f_woodstove ); line_furn( this, f_bench, 13, 6, 17, 6 ); line_furn( this, f_table, 13, 7, 17, 7 ); line_furn( this, f_bench, 13, 8, 17, 8 ); @@ -6414,16 +6202,16 @@ void map::draw_spider_pit( const oter_id &terrain_type, mapgendata &/*dat*/, for( int j = 0; j < SEEY * 2; j++ ) { if( ( i >= 3 && i <= SEEX * 2 - 4 && j >= 3 && j <= SEEY * 2 - 4 ) || one_in( 4 ) ) { - ter_set( point( i, j ), t_rock_floor ); + ter_set( i, j, t_rock_floor ); if( !one_in( 3 ) ) { add_field( {i, j, abs_sub.z}, fd_web, rng( 1, 3 ) ); } } else { - ter_set( point( i, j ), t_rock ); + ter_set( i, j, t_rock ); } } } - ter_set( point( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ) ), t_slope_up ); + ter_set( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ), t_slope_up ); place_items( "spider", 85, 0, 0, EAST_EDGE, SOUTH_EDGE, false, 0 ); } } @@ -6435,11 +6223,11 @@ void map::draw_anthill( const oter_id &terrain_type, mapgendata &dat, const time for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < 8 || j < 8 || i > SEEX * 2 - 9 || j > SEEY * 2 - 9 ) { - ter_set( point( i, j ), dat.groundcover() ); + ter_set( i, j, dat.groundcover() ); } else if( ( i == 11 || i == 12 ) && ( j == 11 || j == 12 ) ) { - ter_set( point( i, j ), t_slope_down ); + ter_set( i, j, t_slope_down ); } else { - ter_set( point( i, j ), t_dirtmound ); + ter_set( i, j, t_dirtmound ); } } } @@ -6456,32 +6244,32 @@ void map::draw_slimepit( const oter_id &terrain_type, mapgendata &dat, const tim i < dat.w_fac * SEEX || j > SEEY * 2 - dat.s_fac * SEEY || i > SEEX * 2 - dat.e_fac * SEEX ) ) { - ter_set( point( i, j ), ( !one_in( 10 ) ? t_slime : t_rock_floor ) ); + ter_set( i, j, ( !one_in( 10 ) ? t_slime : t_rock_floor ) ); } else if( rng( 0, SEEX ) > abs( i - SEEX ) && rng( 0, SEEY ) > abs( j - SEEY ) ) { - ter_set( point( i, j ), t_slime ); + ter_set( i, j, t_slime ); } else if( dat.zlevel == 0 ) { - ter_set( point( i, j ), t_dirt ); + ter_set( i, j, t_dirt ); } else { - ter_set( point( i, j ), t_rock_floor ); + ter_set( i, j, t_rock_floor ); } } } if( terrain_type == "slimepit_down" ) { - ter_set( point( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ) ), t_slope_down ); + ter_set( rng( 3, SEEX * 2 - 4 ), rng( 3, SEEY * 2 - 4 ), t_slope_down ); } if( dat.above() == "slimepit_down" ) { switch( rng( 1, 4 ) ) { case 1: - ter_set( point( rng( 0, 2 ), rng( 0, 2 ) ), t_slope_up ); + ter_set( rng( 0, 2 ), rng( 0, 2 ), t_slope_up ); break; case 2: - ter_set( point( rng( 0, 2 ), SEEY * 2 - rng( 1, 3 ) ), t_slope_up ); + ter_set( rng( 0, 2 ), SEEY * 2 - rng( 1, 3 ), t_slope_up ); break; case 3: - ter_set( point( SEEX * 2 - rng( 1, 3 ), rng( 0, 2 ) ), t_slope_up ); + ter_set( SEEX * 2 - rng( 1, 3 ), rng( 0, 2 ), t_slope_up ); break; case 4: - ter_set( point( SEEX * 2 - rng( 1, 3 ), SEEY * 2 - rng( 1, 3 ) ), t_slope_up ); + ter_set( SEEX * 2 - rng( 1, 3 ), SEEY * 2 - rng( 1, 3 ), t_slope_up ); } } place_spawns( GROUP_BLOB, 1, SEEX, SEEY, SEEX, SEEY, 0.15 ); @@ -6578,7 +6366,7 @@ void map::draw_triffid( const oter_id &terrain_type, mapgendata &/*dat*/, int x = 4; int y = 4; do { - ter_set( point( x, y ), t_dirt ); + ter_set( x, y, t_dirt ); if( chance >= 10 && one_in( 10 ) ) { // Add a spawn place_spawns( GROUP_TRIFFID, 1, x, y, x, y, 1, true ); @@ -6645,16 +6433,16 @@ void map::draw_connections( const oter_id &terrain_type, mapgendata &dat, if( connects_to( dat.north(), 2 ) ) { for( int i = SEEX - 2; i < SEEX + 2; i++ ) { for( int j = 0; j < SEEY; j++ ) { - ter_set( point( i, j ), t_sewage ); + ter_set( i, j, t_sewage ); } } } else { for( int j = 0; j < 3; j++ ) { - ter_set( point( SEEX, j ), t_rock_floor ); - ter_set( point( SEEX - 1, j ), t_rock_floor ); + ter_set( SEEX, j, t_rock_floor ); + ter_set( SEEX - 1, j, t_rock_floor ); } - ter_set( point( SEEX, 3 ), t_door_metal_c ); - ter_set( point( SEEX - 1, 3 ), t_door_metal_c ); + ter_set( SEEX, 3, t_door_metal_c ); + ter_set( SEEX - 1, 3, t_door_metal_c ); } } if( is_ot_match( "sewer", dat.east(), ot_match_type::type ) && @@ -6662,16 +6450,16 @@ void map::draw_connections( const oter_id &terrain_type, mapgendata &dat, if( connects_to( dat.east(), 3 ) ) { for( int i = SEEX; i < SEEX * 2; i++ ) { for( int j = SEEY - 2; j < SEEY + 2; j++ ) { - ter_set( point( i, j ), t_sewage ); + ter_set( i, j, t_sewage ); } } } else { for( int i = SEEX * 2 - 3; i < SEEX * 2; i++ ) { - ter_set( point( i, SEEY ), t_rock_floor ); - ter_set( point( i, SEEY - 1 ), t_rock_floor ); + ter_set( i, SEEY, t_rock_floor ); + ter_set( i, SEEY - 1, t_rock_floor ); } - ter_set( point( SEEX * 2 - 4, SEEY ), t_door_metal_c ); - ter_set( point( SEEX * 2 - 4, SEEY - 1 ), t_door_metal_c ); + ter_set( SEEX * 2 - 4, SEEY, t_door_metal_c ); + ter_set( SEEX * 2 - 4, SEEY - 1, t_door_metal_c ); } } if( is_ot_match( "sewer", dat.south(), ot_match_type::type ) && @@ -6679,16 +6467,16 @@ void map::draw_connections( const oter_id &terrain_type, mapgendata &dat, if( connects_to( dat.south(), 0 ) ) { for( int i = SEEX - 2; i < SEEX + 2; i++ ) { for( int j = SEEY; j < SEEY * 2; j++ ) { - ter_set( point( i, j ), t_sewage ); + ter_set( i, j, t_sewage ); } } } else { for( int j = SEEY * 2 - 3; j < SEEY * 2; j++ ) { - ter_set( point( SEEX, j ), t_rock_floor ); - ter_set( point( SEEX - 1, j ), t_rock_floor ); + ter_set( SEEX, j, t_rock_floor ); + ter_set( SEEX - 1, j, t_rock_floor ); } - ter_set( point( SEEX, SEEY * 2 - 4 ), t_door_metal_c ); - ter_set( point( SEEX - 1, SEEY * 2 - 4 ), t_door_metal_c ); + ter_set( SEEX, SEEY * 2 - 4, t_door_metal_c ); + ter_set( SEEX - 1, SEEY * 2 - 4, t_door_metal_c ); } } if( is_ot_match( "sewer", dat.west(), ot_match_type::type ) && @@ -6696,57 +6484,57 @@ void map::draw_connections( const oter_id &terrain_type, mapgendata &dat, if( connects_to( dat.west(), 1 ) ) { for( int i = 0; i < SEEX; i++ ) { for( int j = SEEY - 2; j < SEEY + 2; j++ ) { - ter_set( point( i, j ), t_sewage ); + ter_set( i, j, t_sewage ); } } } else { for( int i = 0; i < 3; i++ ) { - ter_set( point( i, SEEY ), t_rock_floor ); - ter_set( point( i, SEEY - 1 ), t_rock_floor ); + ter_set( i, SEEY, t_rock_floor ); + ter_set( i, SEEY - 1, t_rock_floor ); } - ter_set( point( 3, SEEY ), t_door_metal_c ); - ter_set( point( 3, SEEY - 1 ), t_door_metal_c ); + ter_set( 3, SEEY, t_door_metal_c ); + ter_set( 3, SEEY - 1, t_door_metal_c ); } } } else if( is_ot_match( "sewer", terrain_type, ot_match_type::type ) ) { if( dat.above() == "road_nesw_manhole" ) { - ter_set( point( rng( SEEX - 2, SEEX + 1 ), rng( SEEY - 2, SEEY + 1 ) ), t_ladder_up ); + ter_set( rng( SEEX - 2, SEEX + 1 ), rng( SEEY - 2, SEEY + 1 ), t_ladder_up ); } if( is_ot_match( "subway", dat.north(), ot_match_type::type ) && !connects_to( terrain_type, 0 ) ) { for( int j = 0; j < SEEY - 3; j++ ) { - ter_set( point( SEEX, j ), t_rock_floor ); - ter_set( point( SEEX - 1, j ), t_rock_floor ); + ter_set( SEEX, j, t_rock_floor ); + ter_set( SEEX - 1, j, t_rock_floor ); } - ter_set( point( SEEX, SEEY - 3 ), t_door_metal_c ); - ter_set( point( SEEX - 1, SEEY - 3 ), t_door_metal_c ); + ter_set( SEEX, SEEY - 3, t_door_metal_c ); + ter_set( SEEX - 1, SEEY - 3, t_door_metal_c ); } if( is_ot_match( "subway", dat.east(), ot_match_type::type ) && !connects_to( terrain_type, 1 ) ) { for( int i = SEEX + 3; i < SEEX * 2; i++ ) { - ter_set( point( i, SEEY ), t_rock_floor ); - ter_set( point( i, SEEY - 1 ), t_rock_floor ); + ter_set( i, SEEY, t_rock_floor ); + ter_set( i, SEEY - 1, t_rock_floor ); } - ter_set( point( SEEX + 2, SEEY ), t_door_metal_c ); - ter_set( point( SEEX + 2, SEEY - 1 ), t_door_metal_c ); + ter_set( SEEX + 2, SEEY, t_door_metal_c ); + ter_set( SEEX + 2, SEEY - 1, t_door_metal_c ); } if( is_ot_match( "subway", dat.south(), ot_match_type::type ) && !connects_to( terrain_type, 2 ) ) { for( int j = SEEY + 3; j < SEEY * 2; j++ ) { - ter_set( point( SEEX, j ), t_rock_floor ); - ter_set( point( SEEX - 1, j ), t_rock_floor ); + ter_set( SEEX, j, t_rock_floor ); + ter_set( SEEX - 1, j, t_rock_floor ); } - ter_set( point( SEEX, SEEY + 2 ), t_door_metal_c ); - ter_set( point( SEEX - 1, SEEY + 2 ), t_door_metal_c ); + ter_set( SEEX, SEEY + 2, t_door_metal_c ); + ter_set( SEEX - 1, SEEY + 2, t_door_metal_c ); } if( is_ot_match( "subway", dat.west(), ot_match_type::type ) && !connects_to( terrain_type, 3 ) ) { for( int i = 0; i < SEEX - 3; i++ ) { - ter_set( point( i, SEEY ), t_rock_floor ); - ter_set( point( i, SEEY - 1 ), t_rock_floor ); + ter_set( i, SEEY, t_rock_floor ); + ter_set( i, SEEY - 1, t_rock_floor ); } - ter_set( point( SEEX - 3, SEEY ), t_door_metal_c ); - ter_set( point( SEEX - 3, SEEY - 1 ), t_door_metal_c ); + ter_set( SEEX - 3, SEEY, t_door_metal_c ); + ter_set( SEEX - 3, SEEY - 1, t_door_metal_c ); } } else if( is_ot_match( "ants", terrain_type, ot_match_type::type ) ) { if( dat.above() == "anthill" ) { @@ -6776,7 +6564,7 @@ void map::draw_connections( const oter_id &terrain_type, mapgendata &dat, // TODO: more discriminating conditions if( ter( x, y ) == t_grass || ter( x, y ) == t_dirt || ter( x, y ) == t_shrub ) { - ter_set( point( x, y ), t_sidewalk ); + ter_set( x, y, t_sidewalk ); } } } @@ -6852,7 +6640,7 @@ void map::place_gas_pump( int x, int y, int charges, const std::string &fuel_typ item fuel( fuel_type, 0 ); fuel.charges = charges; add_item( x, y, fuel ); - ter_set( point( x, y ), ter_id( fuel.fuel_pump_terrain() ) ); + ter_set( x, y, ter_id( fuel.fuel_pump_terrain() ) ); } void map::place_toilet( int x, int y, int charges ) @@ -6860,20 +6648,20 @@ void map::place_toilet( int x, int y, int charges ) item water( "water", 0 ); water.charges = charges; add_item( x, y, water ); - furn_set( point( x, y ), f_toilet ); + furn_set( x, y, f_toilet ); } void map::place_vending( int x, int y, const std::string &type, bool reinforced ) { if( reinforced ) { - furn_set( point( x, y ), f_vending_reinforced ); + furn_set( x, y, f_vending_reinforced ); place_items( type, 100, x, y, x, y, false, 0 ); } else { const bool broken = one_in( 5 ); if( broken ) { - furn_set( point( x, y ), f_vending_o ); + furn_set( x, y, f_vending_o ); } else { - furn_set( point( x, y ), f_vending_c ); + furn_set( x, y, f_vending_c ); place_items( type, 100, x, y, x, y, false, 0 ); } } @@ -6887,7 +6675,7 @@ int map::place_npc( int x, int y, const string_id &type, bool forc std::shared_ptr temp = std::make_shared(); temp->normalize(); temp->load_npc_template( type ); - temp->spawn_at_precise( { abs_sub.xy() }, { x, y, abs_sub.z } ); + temp->spawn_at_precise( { abs_sub.x, abs_sub.y }, { x, y, abs_sub.z } ); temp->toggle_trait( trait_id( "NPC_STATIC_NPC" ) ); overmap_buffer.insert_npc( temp ); return temp->getID(); @@ -7018,7 +6806,7 @@ vehicle *map::add_vehicle( const vproto_id &type, const int x, const int y, cons vehicle *map::add_vehicle( const vgroup_id &type, const point &p, const int dir, const int veh_fuel, const int veh_status, const bool merge_wrecks ) { - return add_vehicle( type.obj().pick(), tripoint( p, abs_sub.z ), + return add_vehicle( type.obj().pick(), tripoint( p.x, p.y, abs_sub.z ), dir, veh_fuel, veh_status, merge_wrecks ); } @@ -7042,11 +6830,15 @@ vehicle *map::add_vehicle( const vproto_id &type, const tripoint &p, const int d return nullptr; } + const int smx = p.x / SEEX; + const int smy = p.y / SEEY; // debugmsg("n=%d x=%d y=%d MAPSIZE=%d ^2=%d", nonant, x, y, MAPSIZE, MAPSIZE*MAPSIZE); auto veh = std::make_unique( type, veh_fuel, veh_status ); - tripoint p_ms = p; - veh->sm_pos = ms_to_sm_remain( p_ms ); - veh->pos = p_ms.xy(); + veh->posx = p.x % SEEX; + veh->posy = p.y % SEEY; + veh->smx = smx; + veh->smy = smy; + veh->smz = p.z; veh->place_spawn_items(); veh->face.init( dir ); veh->turn_dir = dir; @@ -7059,11 +6851,11 @@ vehicle *map::add_vehicle( const vproto_id &type, const tripoint &p, const int d vehicle *placed_vehicle = placed_vehicle_up.get(); if( placed_vehicle != nullptr ) { - submap *place_on_submap = get_submap_at_grid( placed_vehicle->sm_pos ); + submap *place_on_submap = get_submap_at_grid( { placed_vehicle->smx, placed_vehicle->smy, placed_vehicle->smz} ); place_on_submap->vehicles.push_back( std::move( placed_vehicle_up ) ); place_on_submap->is_uniform = false; - auto &ch = get_cache( placed_vehicle->sm_pos.z ); + auto &ch = get_cache( placed_vehicle->smz ); ch.vehicle_list.insert( placed_vehicle ); add_vehicle_to_cache( placed_vehicle ); @@ -7131,8 +6923,11 @@ std::unique_ptr map::add_vehicle_to_map( * p and then install them that way. * Create a vehicle with type "null" so it starts out empty. */ auto wreckage = std::make_unique(); - wreckage->pos = other_veh->pos; - wreckage->sm_pos = other_veh->sm_pos; + wreckage->posx = other_veh->posx; + wreckage->posy = other_veh->posy; + wreckage->smx = other_veh->smx; + wreckage->smy = other_veh->smy; + wreckage->smz = other_veh->smz; //Where are we on the global scale? const tripoint global_pos = wreckage->global_pos3(); @@ -7140,12 +6935,12 @@ std::unique_ptr map::add_vehicle_to_map( for( auto &part : veh->parts ) { const tripoint part_pos = veh->global_part_pos3( part ) - global_pos; // TODO: change mount points to be tripoint - wreckage->install_part( part_pos.xy(), part ); + wreckage->install_part( point( part_pos.x, part_pos.y ), part ); } for( auto &part : other_veh->parts ) { const tripoint part_pos = other_veh->global_part_pos3( part ) - global_pos; - wreckage->install_part( part_pos.xy(), part ); + wreckage->install_part( point( part_pos.x, part_pos.y ), part ); } @@ -7195,10 +6990,9 @@ std::unique_ptr map::add_vehicle_to_map( computer *map::add_computer( const tripoint &p, const std::string &name, int security ) { ter_set( p, t_console ); // TODO: Turn this off? - point l; - submap *const place_on_submap = get_submap_at( p, l ); - place_on_submap->set_computer( l, computer( name, security ) ); - return place_on_submap->get_computer( l ); + submap *place_on_submap = get_submap_at( p ); + place_on_submap->comp.reset( new computer( name, security ) ); + return place_on_submap->comp.get(); } /** @@ -7249,36 +7043,36 @@ void map::rotate( int turns ) const auto new_pos = point{ old_x, old_y } .rotate( turns, { SEEX * 2, SEEY * 2 } ); - np.spawn_at_precise( { abs_sub.xy() }, { new_pos, abs_sub.z } ); + np.spawn_at_precise( { abs_sub.x, abs_sub.y }, { new_pos.x, new_pos.y, abs_sub.z } ); overmap_buffer.insert_npc( npc_ptr ); } // Move the submaps around. if( turns == 2 ) { - std::swap( *get_submap_at_grid( point_zero ), *get_submap_at_grid( point_south_east ) ); - std::swap( *get_submap_at_grid( point_east ), *get_submap_at_grid( point_south ) ); + std::swap( *get_submap_at_grid( { 0, 0 } ), *get_submap_at_grid( { 1, 1 } ) ); + std::swap( *get_submap_at_grid( { 1, 0 } ), *get_submap_at_grid( { 0, 1 } ) ); } else { - point p; + auto p = point{ 0, 0 }; submap tmp; - std::swap( *get_submap_at_grid( point_south_east - p ), tmp ); + std::swap( *get_submap_at_grid( point{ 1, 1 } - p ), tmp ); for( int k = 0; k < 4; ++k ) { p = p.rotate( turns, { 2, 2 } ); - std::swap( *get_submap_at_grid( point_south_east - p ), tmp ); + std::swap( *get_submap_at_grid( point{ 1, 1 } - p ), tmp ); } } // Then rotate them and recalculate vehicle positions. for( int j = 0; j < 2; ++j ) { for( int i = 0; i < 2; ++i ) { - point p( i, j ); - auto sm = get_submap_at_grid( p ); + auto sm = get_submap_at_grid( { i, j } ); sm->rotate( turns ); for( auto &veh : sm->vehicles ) { - veh->sm_pos = abs_sub + p; + veh->smx = abs_sub.x + i; + veh->smy = abs_sub.y + j; } } } @@ -7345,7 +7139,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) } for( int i = x1; i <= x2; i++ ) { for( int j = y1; j <= y2; j++ ) { - m->ter_set( point( i, j ), t_thconc_floor ); + m->ter_set( i, j, t_thconc_floor ); } } int area = height * width; @@ -7390,7 +7184,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) int desk = y1 + rng( static_cast( height / 2 ) - static_cast( height / 4 ), static_cast( height / 2 ) + 1 ); for( int x = x1 + static_cast( width / 4 ); x < x2 - static_cast( width / 4 ); x++ ) { - m->furn_set( point( x, desk ), f_counter ); + m->furn_set( x, desk, f_counter ); } computer *tmpcomp = m->add_computer( tripoint( x2 - static_cast( width / 4 ), desk, z ), _( "Log Console" ), 3 ); @@ -7405,7 +7199,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) int desk = x1 + rng( static_cast( height / 2 ) - static_cast( height / 4 ), static_cast( height / 2 ) + 1 ); for( int y = y1 + static_cast( width / 4 ); y < y2 - static_cast( width / 4 ); y++ ) { - m->furn_set( point( desk, y ), f_counter ); + m->furn_set( desk, y, f_counter ); } computer *tmpcomp = m->add_computer( tripoint( desk, y2 - static_cast( width / 4 ), z ), _( "Log Console" ), 3 ); @@ -7415,7 +7209,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) tmpcomp->add_failure( COMPFAIL_ALARM ); tmpcomp->add_failure( COMPFAIL_DAMAGE ); m->place_spawns( GROUP_TURRET_SMG, 1, desk, static_cast( ( y1 + y2 ) / 2 ), - desk, static_cast( ( y1 + y2 ) / 2 ), 1, true ); + desk, static_cast( ( x1 + x2 ) / 2 ), 1, true ); } break; case room_chemistry: @@ -7423,7 +7217,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) for( int x = x1; x <= x2; x++ ) { if( x % 3 == 0 ) { for( int y = y1 + 1; y <= y2 - 1; y++ ) { - m->furn_set( point( x, y ), f_counter ); + m->furn_set( x, y, f_counter ); } if( one_in( 3 ) ) { m->place_items( "mut_lab", 35, x, y1 + 1, x, y2 - 1, false, 0 ); @@ -7436,7 +7230,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) for( int y = y1; y <= y2; y++ ) { if( y % 3 == 0 ) { for( int x = x1 + 1; x <= x2 - 1; x++ ) { - m->furn_set( point( x, y ), f_counter ); + m->furn_set( x, y, f_counter ); } if( one_in( 3 ) ) { m->place_items( "mut_lab", 35, x1 + 1, y, x2 - 1, y, false, 0 ); @@ -7448,13 +7242,12 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) } break; case room_teleport: - m->furn_set( point( ( x1 + x2 ) / 2, static_cast( ( y1 + y2 ) / 2 ) ), f_counter ); - m->furn_set( point( static_cast( ( x1 + x2 ) / 2 ) + 1, static_cast( ( y1 + y2 ) / 2 ) ), + m->furn_set( static_cast( ( x1 + x2 ) / 2 ), static_cast( ( y1 + y2 ) / 2 ), f_counter ); + m->furn_set( static_cast( ( x1 + x2 ) / 2 ) + 1, static_cast( ( y1 + y2 ) / 2 ), f_counter ); - m->furn_set( point( ( x1 + x2 ) / 2, static_cast( ( y1 + y2 ) / 2 ) + 1 ), + m->furn_set( static_cast( ( x1 + x2 ) / 2 ), static_cast( ( y1 + y2 ) / 2 ) + 1, f_counter ); - m->furn_set( point( static_cast( ( x1 + x2 ) / 2 ) + 1, - static_cast( ( y1 + y2 ) / 2 ) + 1 ), + m->furn_set( static_cast( ( x1 + x2 ) / 2 ) + 1, static_cast( ( y1 + y2 ) / 2 ) + 1, f_counter ); mtrap_set( m, trapx, trapy, tr_telepad ); m->place_items( "teleport", 70, static_cast( ( x1 + x2 ) / 2 ), @@ -7469,19 +7262,19 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) } while( !one_in( 5 ) ); if( rotate == 0 ) { mremove_trap( m, x1, y2 ); - m->furn_set( point( x1, y2 ), f_fridge ); + m->furn_set( x1, y2, f_fridge ); m->place_items( "goo", 60, x1, y2, x1, y2, false, 0 ); } else if( rotate == 1 ) { mremove_trap( m, x1, y1 ); - m->furn_set( point( x1, y1 ), f_fridge ); + m->furn_set( x1, y1, f_fridge ); m->place_items( "goo", 60, x1, y1, x1, y1, false, 0 ); } else if( rotate == 2 ) { mremove_trap( m, x2, y1 ); - m->furn_set( point( x2, y1 ), f_fridge ); + m->furn_set( x2, y1, f_fridge ); m->place_items( "goo", 60, x2, y1, x2, y1, false, 0 ); } else { mremove_trap( m, x2, y2 ); - m->furn_set( point( x2, y2 ), f_fridge ); + m->furn_set( x2, y2, f_fridge ); m->place_items( "goo", 60, x2, y2, x2, y2, false, 0 ); } break; @@ -7489,7 +7282,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) for( int x = x1 + 1; x <= x2 - 1; x++ ) { for( int y = y1 + 1; y <= y2 - 1; y++ ) { if( x % 3 == 0 && y % 3 == 0 ) { - m->ter_set( point( x, y ), t_vat ); + m->ter_set( x, y, t_vat ); m->place_items( "cloning_vat", 20, x, y, x, y, false, 0 ); } } @@ -7498,22 +7291,22 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) case room_vivisect: if( rotate == 0 ) { for( int x = x1; x <= x2; x++ ) { - m->furn_set( point( x, y2 - 1 ), f_counter ); + m->furn_set( x, y2 - 1, f_counter ); } m->place_items( "dissection", 80, x1, y2 - 1, x2, y2 - 1, false, 0 ); } else if( rotate == 1 ) { for( int y = y1; y <= y2; y++ ) { - m->furn_set( point( x1 + 1, y ), f_counter ); + m->furn_set( x1 + 1, y, f_counter ); } m->place_items( "dissection", 80, x1 + 1, y1, x1 + 1, y2, false, 0 ); } else if( rotate == 2 ) { for( int x = x1; x <= x2; x++ ) { - m->furn_set( point( x, y1 + 1 ), f_counter ); + m->furn_set( x, y1 + 1, f_counter ); } m->place_items( "dissection", 80, x1, y1 + 1, x2, y1 + 1, false, 0 ); } else if( rotate == 3 ) { for( int y = y1; y <= y2; y++ ) { - m->furn_set( point( x2 - 1, y ), f_counter ); + m->furn_set( x2 - 1, y, f_counter ); } m->place_items( "dissection", 80, x2 - 1, y1, x2 - 1, y2, false, 0 ); } @@ -7537,7 +7330,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) mapf::furn_bind( "c", f_counter ) ); m->place_items( "bionics_common", 70, biox, bioy, biox, bioy, false, 0 ); - m->ter_set( point( biox, bioy + 2 ), t_console ); + m->ter_set( biox, bioy + 2, t_console ); computer *tmpcomp = m->add_computer( tripoint( biox, bioy + 2, z ), _( "Bionic access" ), 2 ); tmpcomp->add_option( _( "Manifest" ), COMPACT_LIST_BIONICS, 0 ); tmpcomp->add_option( _( "Open Chambers" ), COMPACT_RELEASE_BIONICS, 3 ); @@ -7554,7 +7347,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) mapf::furn_bind( "c", f_counter ) ); m->place_items( "bionics_common", 70, biox, bioy, biox, bioy, false, 0 ); - m->ter_set( point( biox, bioy - 2 ), t_console ); + m->ter_set( biox, bioy - 2, t_console ); computer *tmpcomp2 = m->add_computer( tripoint( biox, bioy - 2, z ), _( "Bionic access" ), 2 ); tmpcomp2->add_option( _( "Manifest" ), COMPACT_LIST_BIONICS, 0 ); tmpcomp2->add_option( _( "Open Chambers" ), COMPACT_RELEASE_BIONICS, 3 ); @@ -7572,7 +7365,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) mapf::furn_bind( "c", f_counter ) ); m->place_items( "bionics_common", 70, biox, bioy, biox, bioy, false, 0 ); - m->ter_set( point( biox + 2, bioy ), t_console ); + m->ter_set( biox + 2, bioy, t_console ); computer *tmpcomp = m->add_computer( tripoint( biox + 2, bioy, z ), _( "Bionic access" ), 2 ); tmpcomp->add_option( _( "Manifest" ), COMPACT_LIST_BIONICS, 0 ); tmpcomp->add_option( _( "Open Chambers" ), COMPACT_RELEASE_BIONICS, 3 ); @@ -7589,7 +7382,7 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) mapf::furn_bind( "c", f_counter ) ); m->place_items( "bionics_common", 70, biox, bioy, biox, bioy, false, 0 ); - m->ter_set( point( biox - 2, bioy ), t_console ); + m->ter_set( biox - 2, bioy, t_console ); computer *tmpcomp2 = m->add_computer( tripoint( biox - 2, bioy, z ), _( "Bionic access" ), 2 ); tmpcomp2->add_option( _( "Manifest" ), COMPACT_LIST_BIONICS, 0 ); tmpcomp2->add_option( _( "Open Chambers" ), COMPACT_RELEASE_BIONICS, 3 ); @@ -7600,31 +7393,31 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) case room_dorm: if( rotate % 2 == 0 ) { for( int y = y1 + 1; y <= y2 - 1; y += 3 ) { - m->furn_set( point( x1, y ), f_bed ); + m->furn_set( x1, y, f_bed ); m->place_items( "bed", 60, x1, y, x1, y, false, 0 ); - m->furn_set( point( x1 + 1, y ), f_bed ); + m->furn_set( x1 + 1, y, f_bed ); m->place_items( "bed", 60, x1 + 1, y, x1 + 1, y, false, 0 ); - m->furn_set( point( x2, y ), f_bed ); + m->furn_set( x2, y, f_bed ); m->place_items( "bed", 60, x2, y, x2, y, false, 0 ); - m->furn_set( point( x2 - 1, y ), f_bed ); + m->furn_set( x2 - 1, y, f_bed ); m->place_items( "bed", 60, x2 - 1, y, x2 - 1, y, false, 0 ); - m->furn_set( point( x1, y + 1 ), f_dresser ); - m->furn_set( point( x2, y + 1 ), f_dresser ); + m->furn_set( x1, y + 1, f_dresser ); + m->furn_set( x2, y + 1, f_dresser ); m->place_items( "dresser", 70, x1, y + 1, x1, y + 1, false, 0 ); m->place_items( "dresser", 70, x2, y + 1, x2, y + 1, false, 0 ); } } else if( rotate % 2 == 1 ) { for( int x = x1 + 1; x <= x2 - 1; x += 3 ) { - m->furn_set( point( x, y1 ), f_bed ); + m->furn_set( x, y1, f_bed ); m->place_items( "bed", 60, x, y1, x, y1, false, 0 ); - m->furn_set( point( x, y1 + 1 ), f_bed ); + m->furn_set( x, y1 + 1, f_bed ); m->place_items( "bed", 60, x, y1 + 1, x, y1 + 1, false, 0 ); - m->furn_set( point( x, y2 ), f_bed ); + m->furn_set( x, y2, f_bed ); m->place_items( "bed", 60, x, y2, x, y2, false, 0 ); - m->furn_set( point( x, y2 - 1 ), f_bed ); + m->furn_set( x, y2 - 1, f_bed ); m->place_items( "bed", 60, x, y2 - 1, x, y2 - 1, false, 0 ); - m->furn_set( point( x + 1, y1 ), f_dresser ); - m->furn_set( point( x + 1, y2 ), f_dresser ); + m->furn_set( x + 1, y1, f_dresser ); + m->furn_set( x + 1, y2, f_dresser ); m->place_items( "dresser", 70, x + 1, y1, x + 1, y1, false, 0 ); m->place_items( "dresser", 70, x + 1, y2, x + 1, y2, false, 0 ); } @@ -7636,22 +7429,22 @@ void science_room( map *m, int x1, int y1, int x2, int y2, int z, int rotate ) int w1 = static_cast( ( x1 + x2 ) / 2 ) - 2; int w2 = static_cast( ( x1 + x2 ) / 2 ) + 2; for( int y = y1; y <= y2; y++ ) { - m->ter_set( point( w1, y ), t_concrete_wall ); - m->ter_set( point( w2, y ), t_concrete_wall ); + m->ter_set( w1, y, t_concrete_wall ); + m->ter_set( w2, y, t_concrete_wall ); } - m->ter_set( point( w1, static_cast( ( y1 + y2 ) / 2 ) ), t_door_glass_frosted_c ); - m->ter_set( point( w2, static_cast( ( y1 + y2 ) / 2 ) ), t_door_glass_frosted_c ); + m->ter_set( w1, static_cast( ( y1 + y2 ) / 2 ), t_door_glass_frosted_c ); + m->ter_set( w2, static_cast( ( y1 + y2 ) / 2 ), t_door_glass_frosted_c ); science_room( m, x1, y1, w1 - 1, y2, z, 1 ); science_room( m, w2 + 1, y1, x2, y2, z, 3 ); } else { int w1 = static_cast( ( y1 + y2 ) / 2 ) - 2; int w2 = static_cast( ( y1 + y2 ) / 2 ) + 2; for( int x = x1; x <= x2; x++ ) { - m->ter_set( point( x, w1 ), t_concrete_wall ); - m->ter_set( point( x, w2 ), t_concrete_wall ); + m->ter_set( x, w1, t_concrete_wall ); + m->ter_set( x, w2, t_concrete_wall ); } - m->ter_set( point( ( x1 + x2 ) / 2, w1 ), t_door_glass_frosted_c ); - m->ter_set( point( ( x1 + x2 ) / 2, w2 ), t_door_glass_frosted_c ); + m->ter_set( static_cast( ( x1 + x2 ) / 2 ), w1, t_door_glass_frosted_c ); + m->ter_set( static_cast( ( x1 + x2 ) / 2 ), w2, t_door_glass_frosted_c ); science_room( m, x1, y1, x2, w1 - 1, z, 2 ); science_room( m, x1, w2 + 1, x2, y2, z, 0 ); } @@ -7679,7 +7472,7 @@ void set_science_room( map *m, int x1, int y1, bool faces_right, const time_poin for( int i = x1; i <= x2; i++ ) { for( int j = y1; j <= y2; j++ ) { if( ( i == x1 || j == y1 || j == y2 ) && i != x1 ) { - m->set( point( i, j ), t_floor, f_counter ); + m->set( i, j, t_floor, f_counter ); } } } @@ -7697,9 +7490,9 @@ void set_science_room( map *m, int x1, int y1, bool faces_right, const time_poin for( int i = x1; i <= x2; i++ ) { for( int j = y1; j <= y2; j++ ) { if( i == x1 ) { - m->set( point( i, j ), t_floor, f_counter ); + m->set( i, j, t_floor, f_counter ); } else if( i > x1 + 1 && i < x2 && ( j == y1 + 1 || j == y2 - 1 ) ) { - m->ter_set( point( i, j ), t_water_sh ); + m->ter_set( i, j, t_water_sh ); } } } @@ -7717,7 +7510,7 @@ void set_science_room( map *m, int x1, int y1, bool faces_right, const time_poin for( int i = x1; i <= x2; i++ ) { for( int j = y1; j <= y2; j++ ) { if( ( i == x1 || j == y1 || j == y2 ) && i != x1 ) { - m->set( point( i, j ), t_floor, f_counter ); + m->set( i, j, t_floor, f_counter ); } } } @@ -7735,11 +7528,11 @@ void set_science_room( map *m, int x1, int y1, bool faces_right, const time_poin for( int i = x1; i <= x2; i++ ) { for( int j = y1; j <= y2; j++ ) { if( i == x1 + 1 ) { - m->ter_set( point( i, j ), t_wall_glass ); + m->ter_set( i, j, t_wall_glass ); } else if( i == x1 && ( j == y1 + 1 || j == y2 - 1 ) ) { - m->ter_set( point( i, j ), t_wall_glass ); + m->ter_set( i, j, t_wall_glass ); } else if( ( j == y1 || j == y2 ) && i >= x1 + 3 && i <= x2 - 1 ) { - m->set( point( i, j ), t_floor, f_counter ); + m->set( i, j, t_floor, f_counter ); } } } @@ -7763,7 +7556,7 @@ void set_science_room( map *m, int x1, int y1, bool faces_right, const time_poin } for( int i = x1; i <= x2; i++ ) { for( int j = y1; j <= y2; j++ ) { - m->ter_set( point( i, j ), rotated[x2 - ( i - x1 )][j] ); + m->ter_set( i, j, rotated[x2 - ( i - x1 )][j] ); m->spawn_items( i, j, itrot[x2 - ( i - x1 )][j] ); } } @@ -7811,7 +7604,7 @@ void silo_rooms( map *m ) for( int i = x; i <= x + width; i++ ) { for( int j = y; j <= y + height; j++ ) { if( m->ter( i, j ) == t_rock ) { - m->ter_set( point( i, j ), t_floor ); + m->ter_set( i, j, t_floor ); } } } @@ -7860,9 +7653,9 @@ void silo_rooms( map *m ) } while( okay ); const point &first_room_position = rooms[0].first; - m->ter_set( first_room_position, t_stairs_up ); + m->ter_set( first_room_position.x, first_room_position.y, t_stairs_up ); const auto &room = random_entry( rooms ); - m->ter_set( room.first + room.second, t_stairs_down ); + m->ter_set( room.first.x + room.second.x, room.first.y + room.second.y, t_stairs_down ); rooms.emplace_back( point( SEEX, SEEY ), point( 5, 5 ) ); // So the center circle gets connected while( rooms.size() > 1 ) { @@ -7885,7 +7678,7 @@ void silo_rooms( map *m ) bool x_first = ( abs( origin.x - dest.x ) > abs( origin.y - dest.y ) ); while( x != dest.x || y != dest.y ) { if( m->ter( x, y ) == t_rock ) { - m->ter_set( point( x, y ), t_floor ); + m->ter_set( x, y, t_floor ); } if( ( x_first && x != dest.x ) || ( !x_first && y == dest.y ) ) { if( dest.x < x ) { @@ -7966,10 +7759,10 @@ void build_mine_room( map *m, room_type type, int x1, int y1, int x2, int y2, ma // Main build switch! switch( type ) { case room_mine_shaft: { - m->ter_set( point( x1 + 1, y1 + 1 ), t_console ); + m->ter_set( x1 + 1, y1 + 1, t_console ); line( m, t_wall, x2 - 2, y1 + 2, x2 - 1, y1 + 2 ); - m->ter_set( point( x2 - 2, y1 + 1 ), t_elevator ); - m->ter_set( point( x2 - 1, y1 + 1 ), t_elevator_control_off ); + m->ter_set( x2 - 2, y1 + 1, t_elevator ); + m->ter_set( x2 - 1, y1 + 1, t_elevator_control_off ); computer *tmpcomp = m->add_computer( tripoint( x1 + 1, y1 + 1, m->get_abs_sub().z ), _( "NEPowerOS" ), 2 ); tmpcomp->add_option( _( "Divert power to elevator" ), COMPACT_ELEVATOR_ON, 0 ); @@ -8009,36 +7802,36 @@ void build_mine_room( map *m, room_type type, int x1, int y1, int x2, int y2, ma case room_mine_housing: if( door_side == NORTH || door_side == SOUTH ) { for( int y = y1 + 2; y <= y2 - 2; y += 2 ) { - m->ter_set( point( x1, y ), t_window ); - m->furn_set( point( x1 + 1, y ), f_bed ); + m->ter_set( x1, y, t_window ); + m->furn_set( x1 + 1, y, f_bed ); m->place_items( "bed", 60, x1 + 1, y, x1 + 1, y, false, 0 ); - m->furn_set( point( x1 + 2, y ), f_bed ); + m->furn_set( x1 + 2, y, f_bed ); m->place_items( "bed", 60, x1 + 2, y, x1 + 2, y, false, 0 ); - m->ter_set( point( x2, y ), t_window ); - m->furn_set( point( x2 - 1, y ), f_bed ); + m->ter_set( x2, y, t_window ); + m->furn_set( x2 - 1, y, f_bed ); m->place_items( "bed", 60, x2 - 1, y, x2 - 1, y, false, 0 ); - m->furn_set( point( x2 - 2, y ), f_bed ); + m->furn_set( x2 - 2, y, f_bed ); m->place_items( "bed", 60, x2 - 2, y, x2 - 2, y, false, 0 ); - m->furn_set( point( x1 + 1, y + 1 ), f_dresser ); + m->furn_set( x1 + 1, y + 1, f_dresser ); m->place_items( "dresser", 78, x1 + 1, y + 1, x1 + 1, y + 1, false, 0 ); - m->furn_set( point( x2 - 1, y + 1 ), f_dresser ); + m->furn_set( x2 - 1, y + 1, f_dresser ); m->place_items( "dresser", 78, x2 - 1, y + 1, x2 - 1, y + 1, false, 0 ); } } else { for( int x = x1 + 2; x <= x2 - 2; x += 2 ) { - m->ter_set( point( x, y1 ), t_window ); - m->furn_set( point( x, y1 + 1 ), f_bed ); + m->ter_set( x, y1, t_window ); + m->furn_set( x, y1 + 1, f_bed ); m->place_items( "bed", 60, x, y1 + 1, x, y1 + 1, false, 0 ); - m->furn_set( point( x, y1 + 2 ), f_bed ); + m->furn_set( x, y1 + 2, f_bed ); m->place_items( "bed", 60, x, y1 + 2, x, y1 + 2, false, 0 ); - m->ter_set( point( x, y2 ), t_window ); - m->furn_set( point( x, y2 - 1 ), f_bed ); + m->ter_set( x, y2, t_window ); + m->furn_set( x, y2 - 1, f_bed ); m->place_items( "bed", 60, x, y2 - 1, x, y2 - 1, false, 0 ); - m->furn_set( point( x, y2 - 2 ), f_bed ); + m->furn_set( x, y2 - 2, f_bed ); m->place_items( "bed", 60, x, y2 - 2, x, y2 - 2, false, 0 ); - m->furn_set( point( x + 1, y1 + 1 ), f_dresser ); + m->furn_set( x + 1, y1 + 1, f_dresser ); m->place_items( "dresser", 78, x + 1, y1 + 1, x + 1, y1 + 1, false, 0 ); - m->furn_set( point( x + 1, y2 - 1 ), f_dresser ); + m->furn_set( x + 1, y2 - 1, f_dresser ); m->place_items( "dresser", 78, x + 1, y2 - 1, x + 1, y2 - 1, false, 0 ); } } @@ -8068,9 +7861,9 @@ void build_mine_room( map *m, room_type type, int x1, int y1, int x2, int y2, ma } } else { if( type == room_mine_storage ) { // Storage has a locked door - m->ter_set( door_point, t_door_locked ); + m->ter_set( door_point.x, door_point.y, t_door_locked ); } else { - m->ter_set( door_point, t_door_c ); + m->ter_set( door_point.x, door_point.y, t_door_c ); } } } @@ -8088,7 +7881,7 @@ void map::create_anomaly( const tripoint &cp, artifact_natural_property prop, bo if( create_rubble ) { rough_circle( this, t_dirt, cx, cy, 11 ); rough_circle_furn( this, f_rubble, cx, cy, 5 ); - furn_set( point( cx, cy ), f_null ); + furn_set( cx, cy, f_null ); } switch( prop ) { case ARTPROP_WRIGGLING: @@ -8295,7 +8088,7 @@ bool update_mapgen_function_json::setup_internal( JsonObject &/*jo*/ ) return true; } -bool update_mapgen_function_json::update_map( const tripoint &omt_pos, const point &offset, +bool update_mapgen_function_json::update_map( const tripoint &omt_pos, int offset_x, int offset_y, mission *miss, bool verify ) const { tinymap update_tmap; @@ -8303,69 +8096,61 @@ bool update_mapgen_function_json::update_map( const tripoint &omt_pos, const poi const tripoint sm_pos = omt_to_sm_copy( omt_pos ); update_tmap.load( sm_pos, false ); const std::string map_id = overmap_buffer.ter( omt_pos ).id().c_str(); - oter_id north = overmap_buffer.ter( omt_pos + tripoint_north ); - oter_id south = overmap_buffer.ter( omt_pos + tripoint_south ); - oter_id east = overmap_buffer.ter( omt_pos + tripoint_east ); - oter_id west = overmap_buffer.ter( omt_pos + tripoint_west ); - oter_id northeast = overmap_buffer.ter( omt_pos + tripoint_north_east ); - oter_id southeast = overmap_buffer.ter( omt_pos + tripoint_south_east ); - oter_id northwest = overmap_buffer.ter( omt_pos + tripoint_north_west ); - oter_id southwest = overmap_buffer.ter( omt_pos + tripoint_south_west ); - oter_id above = overmap_buffer.ter( omt_pos + tripoint_above ); - oter_id below = overmap_buffer.ter( omt_pos + tripoint_below ); + oter_id north = overmap_buffer.ter( omt_pos + tripoint( 0, -1, 0 ) ); + oter_id south = overmap_buffer.ter( omt_pos + tripoint( 0, 1, 0 ) ); + oter_id east = overmap_buffer.ter( omt_pos + tripoint( 1, 0, 0 ) ); + oter_id west = overmap_buffer.ter( omt_pos + tripoint( -1, 0, 0 ) ); + oter_id northeast = overmap_buffer.ter( omt_pos + tripoint( 1, -1, 0 ) ); + oter_id southeast = overmap_buffer.ter( omt_pos + tripoint( 1, 1, 0 ) ); + oter_id northwest = overmap_buffer.ter( omt_pos + tripoint( -1, -1, 0 ) ); + oter_id southwest = overmap_buffer.ter( omt_pos + tripoint( -1, 1, 0 ) ); + oter_id above = overmap_buffer.ter( omt_pos + tripoint( 0, 0, 1 ) ); + oter_id below = overmap_buffer.ter( omt_pos + tripoint( 0, 0, -1 ) ); mapgendata md( north, south, east, west, northeast, southeast, northwest, southwest, above, below, omt_pos.z, rsettings, update_tmap ); - // If the existing map is rotated, we need to rotate it back to the north - // orientation before applying our updates. int rotation = 0; if( map_id.size() > 7 ) { if( map_id.substr( map_id.size() - 6, 6 ) == "_south" ) { rotation = 2; md.m.rotate( rotation ); } else if( map_id.substr( map_id.size() - 5, 5 ) == "_east" ) { - rotation = 3; + rotation = 1; md.m.rotate( rotation ); } else if( map_id.substr( map_id.size() - 5, 5 ) == "_west" ) { - rotation = 1; + rotation = 3; md.m.rotate( rotation ); } } - - const bool applied = update_map( md, offset, miss, verify ); - - // If we rotated the map before applying updates, we now need to rotate - // it back to where we found it. - if( rotation ) { - md.m.rotate( 4 - rotation ); - } - - if( applied ) { + if( update_map( md, offset_x, offset_y, miss, verify, rotation ) ) { md.m.save(); + g->load_npcs(); + g->m.invalidate_map_cache( md.zlevel ); + g->refresh_all(); + return true; } - - g->load_npcs(); - g->m.invalidate_map_cache( md.zlevel ); - g->refresh_all(); - - return applied; + return false; } -bool update_mapgen_function_json::update_map( mapgendata &md, const point &offset, - mission *miss, bool verify ) const +bool update_mapgen_function_json::update_map( mapgendata &md, int offset_x, int offset_y, + mission *miss, bool verify, int rotation ) const { for( auto &elem : setmap_points ) { - if( verify && elem.has_vehicle_collision( md, offset ) ) { + if( verify && elem.has_vehicle_collision( md, offset_x, offset_y ) ) { return false; } - elem.apply( md, offset ); + elem.apply( md, offset_x, offset_y ); } - if( verify && objects.has_vehicle_collision( md, offset ) ) { + if( verify && objects.has_vehicle_collision( md, offset_x, offset_y ) ) { return false; } - objects.apply( md, offset, 0, miss ); + objects.apply( md, offset_x, offset_y, 0, miss ); + + if( rotation ) { + md.m.rotate( 4 - rotation ); + } return true; } @@ -8389,7 +8174,7 @@ mapgen_update_func add_mapgen_update_func( JsonObject &jo, bool &defer ) return null_function; } const auto update_function = [json_data]( const tripoint & omt_pos, mission * miss ) { - json_data.update_map( omt_pos, point_zero, miss ); + json_data.update_map( omt_pos, 0, 0, miss ); }; defer = mapgen_defer::defer; mapgen_defer::jsi = JsonObject(); @@ -8404,7 +8189,7 @@ bool run_mapgen_update_func( const std::string &update_mapgen_id, const tripoint if( update_function == update_mapgen.end() || update_function->second.empty() ) { return false; } - return update_function->second[0]->update_map( omt_pos, point_zero, miss, cancel_on_collision ); + return update_function->second[0]->update_map( omt_pos, 0, 0, miss, cancel_on_collision ); } std::pair, std::map> get_changed_ids_from_update( @@ -8431,7 +8216,7 @@ std::pair, std::map> get_changed_ids_from_up any, any, 0, dummy_settings, fake_map ); if( update_function->second[0]->update_map( fake_md ) ) { - for( const tripoint &pos : fake_map.points_in_rectangle( tripoint_zero, { 23, 23, 0 } ) ) { + for( const tripoint &pos : fake_map.points_in_rectangle( { 0, 0, 0 }, { 23, 23, 0 } ) ) { ter_id ter_at_pos = fake_map.ter( pos ); if( ter_at_pos != t_dirt ) { if( terrains.find( ter_at_pos ) == terrains.end() ) { diff --git a/src/mapgen.h b/src/mapgen.h index aac5e54e268d0..38624e25b737d 100644 --- a/src/mapgen.h +++ b/src/mapgen.h @@ -119,12 +119,12 @@ struct jmapgen_setmap { x( ix ), y( iy ), x2( ix2 ), y2( iy2 ), op( iop ), val( ival ), chance( ione_in ), repeat( irepeat ), rotation( irotation ), fuel( ifuel ), status( istatus ) {} - bool apply( const mapgendata &dat, const point &offset, mission *miss = nullptr ) const; + bool apply( const mapgendata &dat, int offset_x, int offset_y, mission *miss = nullptr ) const; /** * checks if applying these objects to data would cause cause a collision with vehicles * on the same map **/ - bool has_vehicle_collision( const mapgendata &dat, const point &offset ) const; + bool has_vehicle_collision( const mapgendata &dat, int offset_x, int offset_y ) const; }; /** @@ -173,9 +173,9 @@ class jmapgen_place { public: jmapgen_place() : x( 0, 0 ), y( 0, 0 ), repeat( 1, 1 ) { } - jmapgen_place( const point &p ) : x( p.x ), y( p.y ), repeat( 1, 1 ) { } + jmapgen_place( const int a, const int b ) : x( a ), y( b ), repeat( 1, 1 ) { } jmapgen_place( JsonObject &jsi ); - void offset( const point & ); + void offset( const int x_offset, const int y_offset ); jmapgen_int x; jmapgen_int y; jmapgen_int repeat; @@ -234,7 +234,7 @@ class mapgen_palette struct jmapgen_objects { - jmapgen_objects( const point &offset, const point &mapsize ); + jmapgen_objects( int offset_x, int offset_y, size_t mapsize_x, size_t mapsize_y ); bool check_bounds( const jmapgen_place place, JsonObject &jso ); @@ -258,14 +258,14 @@ struct jmapgen_objects { void check( const std::string &oter_name ) const; void apply( const mapgendata &dat, float density, mission *miss = nullptr ) const; - void apply( const mapgendata &dat, const point &offset, float density, + void apply( const mapgendata &dat, int offset_x, int offset_y, float density, mission *miss = nullptr ) const; /** * checks if applying these objects to data would cause cause a collision with vehicles * on the same map **/ - bool has_vehicle_collision( const mapgendata &dat, const point &offset ) const; + bool has_vehicle_collision( const mapgendata &dat, int offset_x, int offset_y ) const; private: /** @@ -273,15 +273,17 @@ struct jmapgen_objects { */ using jmapgen_obj = std::pair >; std::vector objects; - point m_offset; - point mapgensize; + int offset_x; + int offset_y; + size_t mapgensize_x; + size_t mapgensize_y; }; class mapgen_function_json_base { public: bool check_inbounds( const jmapgen_int &x, const jmapgen_int &y, JsonObject &jso ) const; - size_t calc_index( const point &p ) const; + size_t calc_index( size_t x, size_t y ) const; private: std::string jdata; @@ -299,13 +301,15 @@ class mapgen_function_json_base void check_common( const std::string &oter_name ) const; - void formatted_set_incredibly_simple( map &m, const point &offset ) const; + void formatted_set_incredibly_simple( map &m, int offset_x, int offset_y ) const; bool do_format; bool is_ready; - point mapgensize; - point m_offset; + size_t mapgensize_x; + size_t mapgensize_y; + int x_offset; + int y_offset; std::vector format; std::vector setmap_points; @@ -319,7 +323,7 @@ class mapgen_function_json : public mapgen_function_json_base, public virtual ma void check( const std::string &oter_name ) const override; void generate( map *, const oter_id &, const mapgendata &, const time_point &, float ) override; mapgen_function_json( const std::string &s, int w, - const point &grid_offset = point_zero ); + const int x_grid_offset = 0, const int y_grid_offset = 0 ); ~mapgen_function_json() override = default; ter_id fill_ter; @@ -341,10 +345,10 @@ class update_mapgen_function_json : public mapgen_function_json_base void setup(); bool setup_update( JsonObject &jo ); void check( const std::string &oter_name ) const; - bool update_map( const tripoint &omt_pos, const point &offset, + bool update_map( const tripoint &omt_pos, int offset_x, int offset_y, mission *miss, bool verify = false ) const; - bool update_map( mapgendata &md, const point &offset = point_zero, - mission *miss = nullptr, bool verify = false ) const; + bool update_map( mapgendata &md, int offset_x = 0, int offset_y = 0, + mission *miss = nullptr, bool verify = false, int rotation = 0 ) const; protected: bool setup_internal( JsonObject &/*jo*/ ) override; @@ -359,7 +363,7 @@ class mapgen_function_json_nested : public mapgen_function_json_base mapgen_function_json_nested( const std::string &s ); ~mapgen_function_json_nested() override = default; - void nest( const mapgendata &dat, const point &offset, float density ) const; + void nest( const mapgendata &dat, int offset_x, int offset_y, float density ) const; protected: bool setup_internal( JsonObject &jo ) override; @@ -373,7 +377,7 @@ class mapgen_function_json_nested : public mapgen_function_json_base * Load mapgen function of any type from a json object */ std::shared_ptr load_mapgen_function( JsonObject &jio, const std::string &id_base, - int default_idx, const point &offset = point_zero ); + int default_idx, int x_offset = 0, int y_offset = 0 ); /* * Load the above directly from a file via init, as opposed to riders attached to overmap_terrain. Added check * for oter_mapgen / oter_mapgen_weights key, multiple possible ( ie, [ "house", "house_base" ] ) diff --git a/src/mapgen_functions.cpp b/src/mapgen_functions.cpp index 35a770eb7123d..b09d5db2d2cbe 100644 --- a/src/mapgen_functions.cpp +++ b/src/mapgen_functions.cpp @@ -342,7 +342,7 @@ void mapgen_null( map *m, oter_id, mapgendata, const time_point &, float ) debugmsg( "Generating null terrain, please report this as a bug" ); for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - m->ter_set( point( i, j ), t_null ); + m->ter_set( i, j, t_null ); m->set_radiation( i, j, 0 ); } } @@ -360,11 +360,11 @@ void mapgen_crater( map *m, oter_id, mapgendata dat, const time_point &turn, flo for( int j = 0; j < SEEY * 2; j++ ) { if( rng( 0, dat.w_fac ) <= i && rng( 0, dat.e_fac ) <= SEEX * 2 - 1 - i && rng( 0, dat.n_fac ) <= j && rng( 0, dat.s_fac ) <= SEEX * 2 - 1 - j ) { - m->ter_set( point( i, j ), t_dirt ); + m->ter_set( i, j, t_dirt ); m->make_rubble( tripoint( i, j, m->get_abs_sub().z ), f_rubble_rock, true ); m->set_radiation( i, j, rng( 0, 4 ) * rng( 0, 2 ) ); } else { - m->ter_set( point( i, j ), dat.groundcover() ); + m->ter_set( i, j, dat.groundcover() ); m->set_radiation( i, j, rng( 0, 2 ) * rng( 0, 2 ) * rng( 0, 2 ) ); } } @@ -376,9 +376,9 @@ void mapgen_crater( map *m, oter_id, mapgendata dat, const time_point &turn, flo static void ter_or_furn_set( map *m, const int x, const int y, const ter_furn_id &tfid ) { if( tfid.ter != t_null ) { - m->ter_set( point( x, y ), tfid.ter ); + m->ter_set( x, y, tfid.ter ); } else if( tfid.furn != f_null ) { - m->furn_set( point( x, y ), tfid.furn ); + m->furn_set( x, y, tfid.furn ); } } @@ -400,7 +400,7 @@ void mapgen_field( map *m, oter_id, mapgendata dat, const time_point &turn, floa for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { - m->ter_set( point( i, j ), dat.groundcover() ); // default is + m->ter_set( i, j, dat.groundcover() ); // default is if( mpercent_bush > rng( 0, 1000000 ) ) { // yay, a shrub ( or tombstone ) if( boosted_vegetation && dat.region.field_coverage.boosted_other_mpercent > rng( 0, 1000000 ) ) { // already chose the lucky terrain/furniture/plant/rock/etc @@ -424,13 +424,13 @@ void mapgen_hive( map *m, oter_id, mapgendata dat, const time_point &turn, float for( int j = 0; j < SEEY * 2; j++ ) { int rn = rng( 0, 14 ); if( rn > 13 ) { - m->ter_set( point( i, j ), t_tree ); + m->ter_set( i, j, t_tree ); } else if( rn > 11 ) { - m->ter_set( point( i, j ), t_tree_young ); + m->ter_set( i, j, t_tree_young ); } else if( rn > 10 ) { - m->ter_set( point( i, j ), t_underbrush ); + m->ter_set( i, j, t_underbrush ); } else { - m->ter_set( point( i, j ), dat.groundcover() ); + m->ter_set( i, j, dat.groundcover() ); } } } @@ -442,124 +442,124 @@ void mapgen_hive( map *m, oter_id, mapgendata dat, const time_point &turn, float for( int i = ( j == 5 || j == 17 ? 3 : 6 ); i < SEEX * 2 - 5; i += 6 ) { if( !one_in( 8 ) ) { // Caps are always there - m->ter_set( point( i, j - 5 ), t_wax ); - m->ter_set( point( i, j + 5 ), t_wax ); + m->ter_set( i, j - 5, t_wax ); + m->ter_set( i, j + 5, t_wax ); for( int k = -2; k <= 2; k++ ) { for( int l = -1; l <= 1; l++ ) { - m->ter_set( point( i + k, j + l ), t_floor_wax ); + m->ter_set( i + k, j + l, t_floor_wax ); } } m->add_spawn( mon_bee, 2, i, j ); m->add_spawn( mon_beekeeper, 1, i, j ); - m->ter_set( point( i, j - 3 ), t_floor_wax ); - m->ter_set( point( i, j + 3 ), t_floor_wax ); - m->ter_set( point( i - 1, j - 2 ), t_floor_wax ); - m->ter_set( point( i, j - 2 ), t_floor_wax ); - m->ter_set( point( i + 1, j - 2 ), t_floor_wax ); - m->ter_set( point( i - 1, j + 2 ), t_floor_wax ); - m->ter_set( point( i, j + 2 ), t_floor_wax ); - m->ter_set( point( i + 1, j + 2 ), t_floor_wax ); + m->ter_set( i, j - 3, t_floor_wax ); + m->ter_set( i, j + 3, t_floor_wax ); + m->ter_set( i - 1, j - 2, t_floor_wax ); + m->ter_set( i, j - 2, t_floor_wax ); + m->ter_set( i + 1, j - 2, t_floor_wax ); + m->ter_set( i - 1, j + 2, t_floor_wax ); + m->ter_set( i, j + 2, t_floor_wax ); + m->ter_set( i + 1, j + 2, t_floor_wax ); // Up to two of these get skipped; an entrance to the cell int skip1 = rng( 0, SEEX * 2 - 1 ); int skip2 = rng( 0, SEEY * 2 - 1 ); - m->ter_set( point( i - 1, j - 4 ), t_wax ); - m->ter_set( point( i, j - 4 ), t_wax ); - m->ter_set( point( i + 1, j - 4 ), t_wax ); - m->ter_set( point( i - 2, j - 3 ), t_wax ); - m->ter_set( point( i - 1, j - 3 ), t_wax ); - m->ter_set( point( i + 1, j - 3 ), t_wax ); - m->ter_set( point( i + 2, j - 3 ), t_wax ); - m->ter_set( point( i - 3, j - 2 ), t_wax ); - m->ter_set( point( i - 2, j - 2 ), t_wax ); - m->ter_set( point( i + 2, j - 2 ), t_wax ); - m->ter_set( point( i + 3, j - 2 ), t_wax ); - m->ter_set( point( i - 3, j - 1 ), t_wax ); - m->ter_set( point( i - 3, j ), t_wax ); - m->ter_set( point( i - 3, j - 1 ), t_wax ); - m->ter_set( point( i - 3, j + 1 ), t_wax ); - m->ter_set( point( i - 3, j ), t_wax ); - m->ter_set( point( i - 3, j + 1 ), t_wax ); - m->ter_set( point( i - 2, j + 3 ), t_wax ); - m->ter_set( point( i - 1, j + 3 ), t_wax ); - m->ter_set( point( i + 1, j + 3 ), t_wax ); - m->ter_set( point( i + 2, j + 3 ), t_wax ); - m->ter_set( point( i - 1, j + 4 ), t_wax ); - m->ter_set( point( i, j + 4 ), t_wax ); - m->ter_set( point( i + 1, j + 4 ), t_wax ); + m->ter_set( i - 1, j - 4, t_wax ); + m->ter_set( i, j - 4, t_wax ); + m->ter_set( i + 1, j - 4, t_wax ); + m->ter_set( i - 2, j - 3, t_wax ); + m->ter_set( i - 1, j - 3, t_wax ); + m->ter_set( i + 1, j - 3, t_wax ); + m->ter_set( i + 2, j - 3, t_wax ); + m->ter_set( i - 3, j - 2, t_wax ); + m->ter_set( i - 2, j - 2, t_wax ); + m->ter_set( i + 2, j - 2, t_wax ); + m->ter_set( i + 3, j - 2, t_wax ); + m->ter_set( i - 3, j - 1, t_wax ); + m->ter_set( i - 3, j, t_wax ); + m->ter_set( i - 3, j - 1, t_wax ); + m->ter_set( i - 3, j + 1, t_wax ); + m->ter_set( i - 3, j, t_wax ); + m->ter_set( i - 3, j + 1, t_wax ); + m->ter_set( i - 2, j + 3, t_wax ); + m->ter_set( i - 1, j + 3, t_wax ); + m->ter_set( i + 1, j + 3, t_wax ); + m->ter_set( i + 2, j + 3, t_wax ); + m->ter_set( i - 1, j + 4, t_wax ); + m->ter_set( i, j + 4, t_wax ); + m->ter_set( i + 1, j + 4, t_wax ); if( skip1 == 0 || skip2 == 0 ) { - m->ter_set( point( i - 1, j - 4 ), t_floor_wax ); + m->ter_set( i - 1, j - 4, t_floor_wax ); } if( skip1 == 1 || skip2 == 1 ) { - m->ter_set( point( i, j - 4 ), t_floor_wax ); + m->ter_set( i, j - 4, t_floor_wax ); } if( skip1 == 2 || skip2 == 2 ) { - m->ter_set( point( i + 1, j - 4 ), t_floor_wax ); + m->ter_set( i + 1, j - 4, t_floor_wax ); } if( skip1 == 3 || skip2 == 3 ) { - m->ter_set( point( i - 2, j - 3 ), t_floor_wax ); + m->ter_set( i - 2, j - 3, t_floor_wax ); } if( skip1 == 4 || skip2 == 4 ) { - m->ter_set( point( i - 1, j - 3 ), t_floor_wax ); + m->ter_set( i - 1, j - 3, t_floor_wax ); } if( skip1 == 5 || skip2 == 5 ) { - m->ter_set( point( i + 1, j - 3 ), t_floor_wax ); + m->ter_set( i + 1, j - 3, t_floor_wax ); } if( skip1 == 6 || skip2 == 6 ) { - m->ter_set( point( i + 2, j - 3 ), t_floor_wax ); + m->ter_set( i + 2, j - 3, t_floor_wax ); } if( skip1 == 7 || skip2 == 7 ) { - m->ter_set( point( i - 3, j - 2 ), t_floor_wax ); + m->ter_set( i - 3, j - 2, t_floor_wax ); } if( skip1 == 8 || skip2 == 8 ) { - m->ter_set( point( i - 2, j - 2 ), t_floor_wax ); + m->ter_set( i - 2, j - 2, t_floor_wax ); } if( skip1 == 9 || skip2 == 9 ) { - m->ter_set( point( i + 2, j - 2 ), t_floor_wax ); + m->ter_set( i + 2, j - 2, t_floor_wax ); } if( skip1 == 10 || skip2 == 10 ) { - m->ter_set( point( i + 3, j - 2 ), t_floor_wax ); + m->ter_set( i + 3, j - 2, t_floor_wax ); } if( skip1 == 11 || skip2 == 11 ) { - m->ter_set( point( i - 3, j - 1 ), t_floor_wax ); + m->ter_set( i - 3, j - 1, t_floor_wax ); } if( skip1 == 12 || skip2 == 12 ) { - m->ter_set( point( i - 3, j ), t_floor_wax ); + m->ter_set( i - 3, j, t_floor_wax ); } if( skip1 == 13 || skip2 == 13 ) { - m->ter_set( point( i - 3, j - 1 ), t_floor_wax ); + m->ter_set( i - 3, j - 1, t_floor_wax ); } if( skip1 == 14 || skip2 == 14 ) { - m->ter_set( point( i - 3, j + 1 ), t_floor_wax ); + m->ter_set( i - 3, j + 1, t_floor_wax ); } if( skip1 == 15 || skip2 == 15 ) { - m->ter_set( point( i - 3, j ), t_floor_wax ); + m->ter_set( i - 3, j, t_floor_wax ); } if( skip1 == 16 || skip2 == 16 ) { - m->ter_set( point( i - 3, j + 1 ), t_floor_wax ); + m->ter_set( i - 3, j + 1, t_floor_wax ); } if( skip1 == 17 || skip2 == 17 ) { - m->ter_set( point( i - 2, j + 3 ), t_floor_wax ); + m->ter_set( i - 2, j + 3, t_floor_wax ); } if( skip1 == 18 || skip2 == 18 ) { - m->ter_set( point( i - 1, j + 3 ), t_floor_wax ); + m->ter_set( i - 1, j + 3, t_floor_wax ); } if( skip1 == 19 || skip2 == 19 ) { - m->ter_set( point( i + 1, j + 3 ), t_floor_wax ); + m->ter_set( i + 1, j + 3, t_floor_wax ); } if( skip1 == 20 || skip2 == 20 ) { - m->ter_set( point( i + 2, j + 3 ), t_floor_wax ); + m->ter_set( i + 2, j + 3, t_floor_wax ); } if( skip1 == 21 || skip2 == 21 ) { - m->ter_set( point( i - 1, j + 4 ), t_floor_wax ); + m->ter_set( i - 1, j + 4, t_floor_wax ); } if( skip1 == 22 || skip2 == 22 ) { - m->ter_set( point( i, j + 4 ), t_floor_wax ); + m->ter_set( i, j + 4, t_floor_wax ); } if( skip1 == 23 || skip2 == 23 ) { - m->ter_set( point( i + 1, j + 4 ), t_floor_wax ); + m->ter_set( i + 1, j + 4, t_floor_wax ); } if( is_center ) { @@ -612,13 +612,13 @@ void mapgen_spider_pit( map *m, oter_id, mapgendata dat, const time_point &turn, } int rn = rng( 0, forest_chance ); if( ( forest_chance > 0 && rn > 13 ) || one_in( 100 - forest_chance ) ) { - m->ter_set( point( i, j ), t_tree ); + m->ter_set( i, j, t_tree ); } else if( ( forest_chance > 0 && rn > 10 ) || one_in( 100 - forest_chance ) ) { - m->ter_set( point( i, j ), t_tree_young ); + m->ter_set( i, j, t_tree_young ); } else if( ( forest_chance > 0 && rn > 9 ) || one_in( 100 - forest_chance ) ) { - m->ter_set( point( i, j ), t_underbrush ); + m->ter_set( i, j, t_underbrush ); } else { - m->ter_set( point( i, j ), dat.groundcover() ); + m->ter_set( i, j, dat.groundcover() ); } } } @@ -627,16 +627,16 @@ void mapgen_spider_pit( map *m, oter_id, mapgendata dat, const time_point &turn, for( int i = 0; i < 4; i++ ) { int x = rng( 3, SEEX * 2 - 4 ), y = rng( 3, SEEY * 2 - 4 ); if( i == 0 ) { - m->ter_set( point( x, y ), t_slope_down ); + m->ter_set( x, y, t_slope_down ); } else { - m->ter_set( point( x, y ), dat.groundcover() ); + m->ter_set( x, y, dat.groundcover() ); mtrap_set( m, x, y, tr_sinkhole ); } for( int x1 = x - 3; x1 <= x + 3; x1++ ) { for( int y1 = y - 3; y1 <= y + 3; y1++ ) { madd_field( m, x1, y1, fd_web, rng( 2, 3 ) ); if( m->ter( x1, y1 ) != t_slope_down ) { - m->ter_set( point( x1, y1 ), t_dirt ); + m->ter_set( x1, y1, t_dirt ); } } } @@ -649,20 +649,20 @@ void mapgen_fungal_bloom( map *m, oter_id, mapgendata dat, const time_point &, f for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( one_in( rl_dist( i, j, 12, 12 ) * 4 ) ) { - m->ter_set( point( i, j ), t_marloss ); + m->ter_set( i, j, t_marloss ); } else if( one_in( 10 ) ) { if( one_in( 3 ) ) { - m->ter_set( point( i, j ), t_tree_fungal ); + m->ter_set( i, j, t_tree_fungal ); } else { - m->ter_set( point( i, j ), t_tree_fungal_young ); + m->ter_set( i, j, t_tree_fungal_young ); } } else if( one_in( 5 ) ) { - m->ter_set( point( i, j ), t_shrub_fungal ); + m->ter_set( i, j, t_shrub_fungal ); } else if( one_in( 10 ) ) { - m->ter_set( point( i, j ), t_fungus_mound ); + m->ter_set( i, j, t_fungus_mound ); } else { - m->ter_set( point( i, j ), t_fungus ); + m->ter_set( i, j, t_fungus ); } } } @@ -677,15 +677,15 @@ void mapgen_fungal_tower( map *m, oter_id, mapgendata dat, const time_point &, f for( int j = 0; j < SEEY * 2; j++ ) { if( one_in( 8 ) ) { if( one_in( 3 ) ) { - m->ter_set( point( i, j ), t_tree_fungal ); + m->ter_set( i, j, t_tree_fungal ); } else { - m->ter_set( point( i, j ), t_tree_fungal_young ); + m->ter_set( i, j, t_tree_fungal_young ); } } else if( one_in( 10 ) ) { - m->ter_set( point( i, j ), t_fungus_mound ); + m->ter_set( i, j, t_fungus_mound ); } else { - m->ter_set( point( i, j ), t_fungus ); + m->ter_set( i, j, t_fungus ); } } } @@ -699,22 +699,22 @@ void mapgen_fungal_flowers( map *m, oter_id, mapgendata dat, const time_point &, for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( one_in( rl_dist( i, j, 12, 12 ) * 6 ) ) { - m->ter_set( point( i, j ), t_fungus ); - m->furn_set( point( i, j ), f_flower_marloss ); + m->ter_set( i, j, t_fungus ); + m->furn_set( i, j, f_flower_marloss ); } else if( one_in( 10 ) ) { if( one_in( 3 ) ) { - m->ter_set( point( i, j ), t_fungus_mound ); + m->ter_set( i, j, t_fungus_mound ); } else { - m->ter_set( point( i, j ), t_tree_fungal_young ); + m->ter_set( i, j, t_tree_fungal_young ); } } else if( one_in( 5 ) ) { - m->ter_set( point( i, j ), t_fungus ); - m->furn_set( point( i, j ), f_flower_fungal ); + m->ter_set( i, j, t_fungus ); + m->furn_set( i, j, f_flower_fungal ); } else if( one_in( 10 ) ) { - m->ter_set( point( i, j ), t_shrub_fungal ); + m->ter_set( i, j, t_shrub_fungal ); } else { - m->ter_set( point( i, j ), t_fungus ); + m->ter_set( i, j, t_fungus ); } } } @@ -920,7 +920,7 @@ void mapgen_road( map *m, oter_id terrain_type, mapgendata dat, const time_point for( int y = 0; y < SEEY * 2; y++ ) { for( int x = 0; x < SEEX * 2; x++ ) { if( x > y - 4 && ( x < 4 || y > SEEY * 2 - 5 || y >= x ) ) { - m->ter_set( point( x, y ), t_sidewalk ); + m->ter_set( x, y, t_sidewalk ); } } } @@ -934,9 +934,9 @@ void mapgen_road( map *m, oter_id terrain_type, mapgendata dat, const time_point ( y > ( SEEY * 2 - 5 ) && curvedir_nesw[1] > 0 ) ) ) { // diagonal heading southeast if( ( x + rot / 2 ) % 4 && ( x - y == SEEX - 1 + ( 1 - ( rot / 2 ) ) || x - y == SEEX + ( 1 - ( rot / 2 ) ) ) ) { - m->ter_set( point( x, y ), t_pavement_y ); + m->ter_set( x, y, t_pavement_y ); } else { - m->ter_set( point( x, y ), t_pavement ); + m->ter_set( x, y, t_pavement ); } } } @@ -1000,7 +1000,7 @@ void mapgen_road( map *m, oter_id terrain_type, mapgendata dat, const time_point for( int y = 0; y < x; y++ ) { int ty = y, tx = ( curvedir_nesw[dir] == -1 ? x : SEEX * 2 - 1 - x ); coord_rotate_cw( tx, ty, dir ); - m->ter_set( point( tx, ty ), t_pavement ); + m->ter_set( tx, ty, t_pavement ); } } } @@ -1020,7 +1020,7 @@ void mapgen_road( map *m, oter_id terrain_type, mapgendata dat, const time_point int xn = x; int yn = y; coord_rotate_cw( xn, yn, dir ); - m->ter_set( point( xn, yn ), t_pavement_y ); + m->ter_set( xn, yn, t_pavement_y ); } } } @@ -1089,7 +1089,7 @@ void mapgen_road( map *m, oter_id terrain_type, mapgendata dat, const time_point // add a manhole if appropriate if( terrain_type == "road_nesw_manhole" ) { - m->ter_set( point( rng( 6, SEEX * 2 - 6 ), rng( 6, SEEX * 2 - 6 ) ), t_manhole_cover ); + m->ter_set( rng( 6, SEEX * 2 - 6 ), rng( 6, SEEX * 2 - 6 ), t_manhole_cover ); } // finally, unrotate the map @@ -1443,9 +1443,9 @@ void mapgen_sewer_straight( map *m, oter_id terrain_type, mapgendata dat, const for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < SEEX - 2 || i > SEEX + 1 ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } else { - m->ter_set( point( i, j ), t_sewage ); + m->ter_set( i, j, t_sewage ); } } } @@ -1462,9 +1462,9 @@ void mapgen_sewer_curved( map *m, oter_id terrain_type, mapgendata dat, const ti for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( ( i > SEEX + 1 && j < SEEY - 2 ) || i < SEEX - 2 || j > SEEY + 1 ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } else { - m->ter_set( point( i, j ), t_sewage ); + m->ter_set( i, j, t_sewage ); } } } @@ -1486,9 +1486,9 @@ void mapgen_sewer_tee( map *m, oter_id terrain_type, mapgendata dat, const time_ for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < SEEX - 2 || ( i > SEEX + 1 && ( j < SEEY - 2 || j > SEEY + 1 ) ) ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } else { - m->ter_set( point( i, j ), t_sewage ); + m->ter_set( i, j, t_sewage ); } } } @@ -1511,18 +1511,18 @@ void mapgen_sewer_four_way( map *m, oter_id, mapgendata dat, const time_point &t for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( ( i < SEEX - 2 || i > SEEX + 1 ) && ( j < SEEY - 2 || j > SEEY + 1 ) ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } else { - m->ter_set( point( i, j ), t_sewage ); + m->ter_set( i, j, t_sewage ); } if( rn == 0 && ( trig_dist( i, j, SEEX - 1, SEEY - 1 ) <= 6 || trig_dist( i, j, SEEX - 1, SEEY ) <= 6 || trig_dist( i, j, SEEX, SEEY - 1 ) <= 6 || trig_dist( i, j, SEEX, SEEY ) <= 6 ) ) { - m->ter_set( point( i, j ), t_sewage ); + m->ter_set( i, j, t_sewage ); } if( rn == 0 && ( i == SEEX - 1 || i == SEEX ) && ( j == SEEY - 1 || j == SEEY ) ) { - m->ter_set( point( i, j ), t_grate ); + m->ter_set( i, j, t_grate ); } } } @@ -1543,18 +1543,18 @@ void mapgen_bridge( map *m, oter_id terrain_type, mapgendata dat, const time_poi for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < 2 ) { - m->ter_set( point( i, j ), river_west ? t_water_moving_dp : grass_or_dirt() ); + m->ter_set( i, j, river_west ? t_water_moving_dp : grass_or_dirt() ); } else if( i >= SEEX * 2 - 2 ) { - m->ter_set( point( i, j ), river_east ? t_water_moving_dp : grass_or_dirt() ); + m->ter_set( i, j, river_east ? t_water_moving_dp : grass_or_dirt() ); } else if( i == 2 || i == SEEX * 2 - 3 ) { - m->ter_set( point( i, j ), t_guardrail_bg_dp ); + m->ter_set( i, j, t_guardrail_bg_dp ); } else if( i == 3 || i == SEEX * 2 - 4 ) { - m->ter_set( point( i, j ), t_sidewalk_bg_dp ); + m->ter_set( i, j, t_sidewalk_bg_dp ); } else { if( ( i == SEEX - 1 || i == SEEX ) && j % 4 != 0 ) { - m->ter_set( point( i, j ), t_pavement_y_bg_dp ); + m->ter_set( i, j, t_pavement_y_bg_dp ); } else { - m->ter_set( point( i, j ), t_pavement_bg_dp ); + m->ter_set( i, j, t_pavement_bg_dp ); } } } @@ -1572,14 +1572,14 @@ void mapgen_highway( map *m, oter_id terrain_type, mapgendata dat, const time_po for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < 3 || i >= SEEX * 2 - 3 ) { - m->ter_set( point( i, j ), dat.groundcover() ); + m->ter_set( i, j, dat.groundcover() ); } else if( i == 3 || i == SEEX * 2 - 4 ) { - m->ter_set( point( i, j ), t_railing ); + m->ter_set( i, j, t_railing ); } else { if( ( i == SEEX - 1 || i == SEEX ) && j % 4 != 0 ) { - m->ter_set( point( i, j ), t_pavement_y ); + m->ter_set( i, j, t_pavement_y ); } else { - m->ter_set( point( i, j ), t_pavement ); + m->ter_set( i, j, t_pavement ); } } } @@ -1944,12 +1944,12 @@ void mapgen_river_curved_not( map *m, oter_id terrain_type, mapgendata dat, cons for( int y = 0; y < east_edge; y++ ) { int circle_edge = ( ( SEEX * 2 - x ) * ( SEEX * 2 - x ) ) + ( y * y ); if( circle_edge <= 8 ) { - m->ter_set( point( x, y ), grass_or_dirt() ); + m->ter_set( x, y, grass_or_dirt() ); } if( circle_edge == 9 && one_in( 25 ) ) { - m->ter_set( point( x, y ), clay_or_sand() ); + m->ter_set( x, y, clay_or_sand() ); } else if( circle_edge <= 36 ) { - m->ter_set( point( x, y ), t_water_moving_sh ); + m->ter_set( x, y, t_water_moving_sh ); } } } @@ -1976,7 +1976,7 @@ void mapgen_river_straight( map *m, oter_id terrain_type, mapgendata dat, const int shallow_edge = rng( 4, 6 ); line( m, grass_or_dirt(), x, 0, x, ground_edge ); if( one_in( 25 ) ) { - m->ter_set( point( x, ++ground_edge ), clay_or_sand() ); + m->ter_set( x, ++ground_edge, clay_or_sand() ); } line( m, t_water_moving_sh, x, ++ground_edge, x, shallow_edge ); } @@ -2002,7 +2002,7 @@ void mapgen_river_curved( map *m, oter_id terrain_type, mapgendata dat, const ti int shallow_edge = rng( 4, 6 ); line( m, grass_or_dirt(), x, 0, x, ground_edge ); if( one_in( 25 ) ) { - m->ter_set( point( x, ++ground_edge ), clay_or_sand() ); + m->ter_set( x, ++ground_edge, clay_or_sand() ); } line( m, t_water_moving_sh, x, ++ground_edge, x, shallow_edge ); } @@ -2011,7 +2011,7 @@ void mapgen_river_curved( map *m, oter_id terrain_type, mapgendata dat, const ti int shallow_edge = rng( 16, 18 ); line( m, grass_or_dirt(), ground_edge, y, SEEX * 2 - 1, y ); if( one_in( 25 ) ) { - m->ter_set( point( --ground_edge, y ), clay_or_sand() ); + m->ter_set( --ground_edge, y, clay_or_sand() ); } line( m, t_water_moving_sh, shallow_edge, y, --ground_edge, y ); } @@ -2033,12 +2033,12 @@ void mapgen_parking_lot( map *m, oter_id, mapgendata dat, const time_point &turn for( int j = 0; j < SEEY * 2; j++ ) { if( ( j == 5 || j == 9 || j == 13 || j == 17 || j == 21 ) && ( ( i > 1 && i < 8 ) || ( i > 14 && i < SEEX * 2 - 2 ) ) ) { - m->ter_set( point( i, j ), t_pavement_y ); + m->ter_set( i, j, t_pavement_y ); } else if( ( j < 2 && i > 7 && i < 17 ) || ( j >= 2 && j < SEEY * 2 - 2 && i > 1 && i < SEEX * 2 - 2 ) ) { - m->ter_set( point( i, j ), t_pavement ); + m->ter_set( i, j, t_pavement ); } else { - m->ter_set( point( i, j ), dat.groundcover() ); + m->ter_set( i, j, dat.groundcover() ); } } } @@ -2057,30 +2057,30 @@ void mapgen_parking_lot( map *m, oter_id, mapgendata dat, const time_point &turn void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgendata &dat ) { // TODO: change this into a parameter - const time_point turn = calendar::turn_zero; + const time_point turn = calendar::time_of_cataclysm; int pos_x1 = 0; int pos_y1 = 0; if( type == room_backyard ) { //processing it separately - m->furn_set( point( x1 + 2, y1 ), f_chair ); - m->furn_set( point( x1 + 2, y1 + 1 ), f_table ); + m->furn_set( x1 + 2, y1, f_chair ); + m->furn_set( x1 + 2, y1 + 1, f_table ); for( int i = x1; i <= x2; i++ ) { for( int j = y1; j <= y2; j++ ) { if( ( i == x1 ) || ( i == x2 || ( j == y2 ) ) ) { - m->ter_set( point( i, j ), t_fence ); + m->ter_set( i, j, t_fence ); } else { - m->ter_set( point( i, j ), t_grass ); + m->ter_set( i, j, t_grass ); if( one_in( 35 ) && !m->has_furn( i, j ) ) { - m->ter_set( point( i, j ), t_tree_young ); + m->ter_set( i, j, t_tree_young ); } else if( one_in( 35 ) && !m->has_furn( i, j ) ) { - m->ter_set( point( i, j ), t_tree ); + m->ter_set( i, j, t_tree ); } else if( one_in( 25 ) ) { - m->ter_set( point( i, j ), t_dirt ); + m->ter_set( i, j, t_dirt ); } } } } - m->ter_set( point( ( x1 + x2 ) / 2, y2 ), t_fencegate_c ); + m->ter_set( ( x1 + x2 ) / 2, y2, t_fencegate_c ); return; } @@ -2090,18 +2090,18 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend //m->ter(i, j) == t_grass || m->ter(i, j) == t_dirt || m->ter( i, j ) == t_floor ) { if( j == y1 || j == y2 ) { - m->ter_set( point( i, j ), t_wall ); + m->ter_set( i, j, t_wall ); } else if( i == x1 || i == x2 ) { - m->ter_set( point( i, j ), t_wall ); + m->ter_set( i, j, t_wall ); } else { - m->ter_set( point( i, j ), t_floor ); + m->ter_set( i, j, t_floor ); } } } } for( int i = y1 + 1; i <= y2 - 1; i++ ) { - m->ter_set( point( x1, i ), t_wall ); - m->ter_set( point( x2, i ), t_wall ); + m->ter_set( x1, i, t_wall ); + m->ter_set( x2, i, t_wall ); } items_location placed = "none"; @@ -2120,72 +2120,72 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend case 1: pos_x1 = x1 + 2; pos_y1 = y1 + 1; - m->furn_set( point( x1 + 2, y2 - 1 ), f_desk ); + m->furn_set( x1 + 2, y2 - 1, f_desk ); while( pos_x1 < x2 ) { pos_x1 += 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 += 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 += 2; } break; case 2: pos_x1 = x2 - 2; pos_y1 = y1 + 1; - m->furn_set( point( x1 + 2, y2 - 1 ), f_desk ); + m->furn_set( x1 + 2, y2 - 1, f_desk ); while( pos_x1 > x1 ) { pos_x1 -= 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 -= 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 -= 2; } break; case 3: pos_x1 = x1 + 2; pos_y1 = y2 - 1; - m->furn_set( point( x1 + 2, y2 - 1 ), f_desk ); + m->furn_set( x1 + 2, y2 - 1, f_desk ); while( pos_x1 < x2 ) { pos_x1 += 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 += 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 += 2; } break; case 4: pos_x1 = x2 - 2; pos_y1 = y2 - 1; - m->furn_set( point( x1 + 2, y2 - 1 ), f_desk ); + m->furn_set( x1 + 2, y2 - 1, f_desk ); while( pos_x1 > x1 ) { pos_x1 -= 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 -= 1; if( m->ter( pos_x1, pos_y1 ) == t_wall ) { break; } - m->furn_set( point( pos_x1, pos_y1 ), f_bookcase ); + m->furn_set( pos_x1, pos_y1, f_bookcase ); pos_x1 -= 2; } break; @@ -2204,9 +2204,9 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend switch( rng( 1, 4 ) ) { //fridge, sink, oven and some cupboards near them case 1: - m->furn_set( point( x1 + 2, y1 + 1 ), f_fridge ); + m->furn_set( x1 + 2, y1 + 1, f_fridge ); m->place_items( "fridge", 82, x1 + 2, y1 + 1, x1 + 2, y1 + 1, false, turn ); - m->furn_set( point( x1 + 1, y1 + 1 ), f_sink ); + m->furn_set( x1 + 1, y1 + 1, f_sink ); if( x1 + 4 < x2 ) { oven_x = x1 + 3; cupboard_x = x1 + 4; @@ -2215,9 +2215,9 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend break; case 2: - m->furn_set( point( x2 - 2, y1 + 1 ), f_fridge ); + m->furn_set( x2 - 2, y1 + 1, f_fridge ); m->place_items( "fridge", 82, x2 - 2, y1 + 1, x2 - 2, y1 + 1, false, turn ); - m->furn_set( point( x2 - 1, y1 + 1 ), f_sink ); + m->furn_set( x2 - 1, y1 + 1, f_sink ); if( x2 - 4 > x1 ) { oven_x = x2 - 3; cupboard_x = x2 - 4; @@ -2225,9 +2225,9 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend } break; case 3: - m->furn_set( point( x1 + 2, y2 - 1 ), f_fridge ); + m->furn_set( x1 + 2, y2 - 1, f_fridge ); m->place_items( "fridge", 82, x1 + 2, y2 - 1, x1 + 2, y2 - 1, false, turn ); - m->furn_set( point( x1 + 1, y2 - 1 ), f_sink ); + m->furn_set( x1 + 1, y2 - 1, f_sink ); if( x1 + 4 < x2 ) { oven_x = x1 + 3; cupboard_x = x1 + 4; @@ -2235,9 +2235,9 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend } break; case 4: - m->furn_set( point( x2 - 2, y2 - 1 ), f_fridge ); + m->furn_set( x2 - 2, y2 - 1, f_fridge ); m->place_items( "fridge", 82, x2 - 2, y2 - 1, x2 - 2, y2 - 1, false, turn ); - m->furn_set( point( x2 - 1, y2 - 1 ), f_sink ); + m->furn_set( x2 - 1, y2 - 1, f_sink ); if( x2 - 4 > x1 ) { oven_x = x2 - 3; cupboard_x = x2 - 4; @@ -2248,13 +2248,13 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend // oven and it's contents if( oven_x != -1 && oven_y != -1 ) { - m->furn_set( point( oven_x, oven_y ), f_oven ); + m->furn_set( oven_x, oven_y, f_oven ); m->place_items( "oven", 70, oven_x, oven_y, oven_x, oven_y, false, turn ); } // cupboard and it's contents if( cupboard_x != -1 && cupboard_y != -1 ) { - m->furn_set( point( cupboard_x, cupboard_y ), f_cupboard ); + m->furn_set( cupboard_x, cupboard_y, f_cupboard ); m->place_items( "cleaning", 30, cupboard_x, cupboard_y, cupboard_x, cupboard_y, false, turn ); m->place_items( "home_hw", 30, cupboard_x, cupboard_y, cupboard_x, cupboard_y, false, turn ); m->place_items( "cannedfood", 30, cupboard_x, cupboard_y, cupboard_x, cupboard_y, false, turn ); @@ -2277,7 +2277,7 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend if( m->ter( pos_x1, pos_y1 ) == t_floor && !( m->furn( pos_x1, pos_y1 ) == f_cupboard || m->furn( pos_x1, pos_y1 ) == f_oven || m->furn( pos_x1, pos_y1 ) == f_sink || m->furn( pos_x1, pos_y1 ) == f_fridge ) ) { - m->furn_set( point( pos_x1, pos_y1 ), f_chair ); + m->furn_set( pos_x1, pos_y1, f_chair ); } } } @@ -2295,34 +2295,34 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend } switch( rng( 1, 5 ) ) { case 1: - m->furn_set( point( x1 + 1, y1 + 2 ), f_bed ); - m->furn_set( point( x1 + 1, y1 + 3 ), f_bed ); + m->furn_set( x1 + 1, y1 + 2, f_bed ); + m->furn_set( x1 + 1, y1 + 3, f_bed ); m->place_items( "bed", 60, x1 + 1, y1 + 2, x1 + 1, y1 + 2, false, turn ); m->place_items( "bed", 60, x1 + 1, y1 + 3, x1 + 1, y1 + 3, false, turn ); break; case 2: - m->furn_set( point( x1 + 2, y2 - 1 ), f_bed ); - m->furn_set( point( x1 + 3, y2 - 1 ), f_bed ); + m->furn_set( x1 + 2, y2 - 1, f_bed ); + m->furn_set( x1 + 3, y2 - 1, f_bed ); m->place_items( "bed", 60, x1 + 2, y2 - 1, x1 + 2, y2 - 1, false, turn ); m->place_items( "bed", 60, x1 + 2, y2 - 1, x1 + 2, y2 - 1, false, turn ); break; case 3: - m->furn_set( point( x2 - 1, y2 - 3 ), f_bed ); - m->furn_set( point( x2 - 1, y2 - 2 ), f_bed ); + m->furn_set( x2 - 1, y2 - 3, f_bed ); + m->furn_set( x2 - 1, y2 - 2, f_bed ); m->place_items( "bed", 60, x2 - 1, y2 - 3, x2 - 1, y2 - 3, false, turn ); m->place_items( "bed", 60, x2 - 1, y2 - 2, x2 - 1, y2 - 2, false, turn ); break; case 4: - m->furn_set( point( x2 - 3, y1 + 1 ), f_bed ); - m->furn_set( point( x2 - 2, y1 + 1 ), f_bed ); + m->furn_set( x2 - 3, y1 + 1, f_bed ); + m->furn_set( x2 - 2, y1 + 1, f_bed ); m->place_items( "bed", 60, x2 - 3, y1 + 1, x2 - 3, y1 + 1, false, turn ); m->place_items( "bed", 60, x2 - 2, y1 + 1, x2 - 2, y1 + 1, false, turn ); break; case 5: - m->furn_set( point( ( x1 + x2 ) / 2, y2 - 1 ), f_bed ); - m->furn_set( point( static_cast( ( x1 + x2 ) / 2 ) + 1, y2 - 1 ), f_bed ); - m->furn_set( point( ( x1 + x2 ) / 2, y2 - 2 ), f_bed ); - m->furn_set( point( static_cast( ( x1 + x2 ) / 2 ) + 1, y2 - 2 ), f_bed ); + m->furn_set( static_cast( ( x1 + x2 ) / 2 ), y2 - 1, f_bed ); + m->furn_set( static_cast( ( x1 + x2 ) / 2 ) + 1, y2 - 1, f_bed ); + m->furn_set( static_cast( ( x1 + x2 ) / 2 ), y2 - 2, f_bed ); + m->furn_set( static_cast( ( x1 + x2 ) / 2 ) + 1, y2 - 2, f_bed ); m->place_items( "bed", 60, static_cast( ( x1 + x2 ) / 2 ), y2 - 1, static_cast( ( x1 + x2 ) / 2 ), y2 - 1, false, turn ); @@ -2339,21 +2339,21 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend } switch( rng( 1, 4 ) ) { case 1: - m->furn_set( point( x1 + 2, y1 + 1 ), f_dresser ); + m->furn_set( x1 + 2, y1 + 1, f_dresser ); m->place_items( "dresser", 80, x1 + 2, y1 + 1, x1 + 2, y1 + 1, false, turn ); break; case 2: - m->furn_set( point( x2 - 2, y2 - 1 ), f_dresser ); + m->furn_set( x2 - 2, y2 - 1, f_dresser ); m->place_items( "dresser", 80, x2 - 2, y2 - 1, x2 - 2, y2 - 1, false, turn ); break; case 3: rn = static_cast( ( x1 + x2 ) / 2 ); - m->furn_set( point( rn, y1 + 1 ), f_dresser ); + m->furn_set( rn, y1 + 1, f_dresser ); m->place_items( "dresser", 80, rn, y1 + 1, rn, y1 + 1, false, turn ); break; case 4: rn = static_cast( ( y1 + y2 ) / 2 ); - m->furn_set( point( x1 + 1, rn ), f_dresser ); + m->furn_set( x1 + 1, rn, f_dresser ); m->place_items( "dresser", 80, x1 + 1, rn, x1 + 1, rn, false, turn ); break; } @@ -2364,23 +2364,23 @@ void house_room( map *m, room_type type, int x1, int y1, int x2, int y2, mapgend m->place_items( "cleaning", 48, x1 + 1, y1 + 1, x2 - 1, y2 - 2, false, turn ); placed = "softdrugs"; chance = 72; - m->furn_set( point( x2 - 1, y2 - 2 ), f_bathtub ); + m->furn_set( x2 - 1, y2 - 2, f_bathtub ); if( one_in( 3 ) && !( m->ter( x2 - 1, y2 - 3 ) == t_wall ) ) { - m->furn_set( point( x2 - 1, y2 - 3 ), f_bathtub ); + m->furn_set( x2 - 1, y2 - 3, f_bathtub ); } if( !( ( m->furn( x1 + 1, y2 - 2 ) == f_toilet ) || ( m->furn( x1 + 1, y2 - 2 ) == f_bathtub ) ) ) { - m->furn_set( point( x1 + 1, y2 - 2 ), f_sink ); + m->furn_set( x1 + 1, y2 - 2, f_sink ); } if( one_in( 4 ) ) { for( int x = x1 + 1; x <= x2 - 1; x++ ) { for( int y = y1 + 1; y <= y2 - 1; y++ ) { - m->ter_set( point( x, y ), t_linoleum_white ); + m->ter_set( x, y, t_linoleum_white ); } } } else if( one_in( 4 ) ) { for( int x = x1 + 1; x <= x2 - 1; x++ ) { for( int y = y1 + 1; y <= y2 - 1; y++ ) { - m->ter_set( point( x, y ), t_linoleum_gray ); + m->ter_set( x, y, t_linoleum_gray ); } } } @@ -2437,16 +2437,16 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i > lw && i < rw && j > tw && j < bw ) { - m->ter_set( point( i, j ), t_floor ); + m->ter_set( i, j, t_floor ); } else { - m->ter_set( point( i, j ), dat.groundcover() ); + m->ter_set( i, j, dat.groundcover() ); } if( i >= lw && i <= rw && ( j == tw || j == bw ) ) { //placing north and south walls - m->ter_set( point( i, j ), t_wall ); + m->ter_set( i, j, t_wall ); } if( ( i == lw || i == rw ) && j > tw && j < bw /*actual_house_height*/ ) { //placing west (lw) and east walls - m->ter_set( point( i, j ), t_wall ); + m->ter_set( i, j, t_wall ); } } } @@ -2456,20 +2456,20 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t cw = tw + rng( 4, 7 ); house_room( m, room_living, mw, tw, rw, cw, dat ); house_room( m, room_kitchen, lw, tw, mw, cw, dat ); - m->ter_set( point( mw, rng( tw + 2, cw - 2 ) ), ( one_in( 3 ) ? t_door_c : t_floor ) ); + m->ter_set( mw, rng( tw + 2, cw - 2 ), ( one_in( 3 ) ? t_door_c : t_floor ) ); rn = rng( lw + 1, mw - 2 ); - m->ter_set( point( rn, tw ), t_window_domestic ); - m->ter_set( point( rn + 1, tw ), t_window_domestic ); + m->ter_set( rn, tw, t_window_domestic ); + m->ter_set( rn + 1, tw, t_window_domestic ); rn = rng( mw + 1, rw - 2 ); - m->ter_set( point( rn, tw ), t_window_domestic ); - m->ter_set( point( rn + 1, tw ), t_window_domestic ); + m->ter_set( rn, tw, t_window_domestic ); + m->ter_set( rn + 1, tw, t_window_domestic ); rn = rng( lw + 3, rw - 3 ); // Bottom part mw if( rn <= lw + 5 ) { // Bedroom on right, bathroom on left house_room( m, room_bedroom, rn, cw, rw, bw, dat ); // Put door between bedroom and living - m->ter_set( point( rng( rw - 1, rn > mw ? rn + 1 : mw + 1 ), cw ), t_door_c ); + m->ter_set( rng( rw - 1, rn > mw ? rn + 1 : mw + 1 ), cw, t_door_c ); if( bw - cw >= 10 && rn - lw >= 6 ) { // All fits, placing bathroom and 2nd bedroom @@ -2477,14 +2477,14 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t house_room( m, room_bedroom, lw, cw, rn, bw - 5, dat ); // Put door between bathroom and bedroom - m->ter_set( point( rn, rng( bw - 4, bw - 1 ) ), t_door_c ); + m->ter_set( rn, rng( bw - 4, bw - 1 ), t_door_c ); if( one_in( 3 ) ) { // Put door between 2nd bedroom and 1st bedroom - m->ter_set( point( rn, rng( cw + 1, bw - 6 ) ), t_door_c ); + m->ter_set( rn, rng( cw + 1, bw - 6 ), t_door_c ); } else { // ...Otherwise, between 2nd bedroom and kitchen - m->ter_set( point( rng( lw + 1, rn > mw ? mw - 1 : rn - 1 ), cw ), t_door_c ); + m->ter_set( rng( lw + 1, rn > mw ? mw - 1 : rn - 1 ), cw, t_door_c ); } } else if( bw - cw > 4 ) { // Too big for a bathroom, not big enough for 2nd bedroom @@ -2492,24 +2492,24 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t // the kitchen. house_room( m, room_bathroom, lw, bw - 4, rn, bw, dat ); for( int i = lw + 1; i < mw && i < rn; i++ ) { - m->ter_set( point( i, cw ), t_floor ); + m->ter_set( i, cw, t_floor ); } // Put door between excess space and bathroom - m->ter_set( point( rng( lw + 1, rn - 1 ), bw - 4 ), t_door_c ); + m->ter_set( rng( lw + 1, rn - 1 ), bw - 4, t_door_c ); // Put door between excess space and bedroom - m->ter_set( point( rn, rng( cw + 1, bw - 5 ) ), t_door_c ); + m->ter_set( rn, rng( cw + 1, bw - 5 ), t_door_c ); } else { // Small enough to be a bathroom; make it one. house_room( m, room_bathroom, lw, cw, rn, bw, dat ); if( one_in( 5 ) ) { // Put door between bathroom and kitchen with low chance - m->ter_set( point( rng( lw + 1, rn > mw ? mw - 1 : rn - 1 ), cw ), t_door_c ); + m->ter_set( rng( lw + 1, rn > mw ? mw - 1 : rn - 1 ), cw, t_door_c ); } else { // ...Otherwise, between bathroom and bedroom - m->ter_set( point( rn, rng( cw + 1, bw - 1 ) ), t_door_c ); + m->ter_set( rn, rng( cw + 1, bw - 1 ), t_door_c ); } } // Point on bedroom wall, for window @@ -2519,7 +2519,7 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t house_room( m, room_bedroom, lw, cw, rn, bw, dat ); // Put door between bedroom and kitchen - m->ter_set( point( rng( lw + 1, rn > mw ? mw - 1 : rn - 1 ), cw ), t_door_c ); + m->ter_set( rng( lw + 1, rn > mw ? mw - 1 : rn - 1 ), cw, t_door_c ); if( bw - cw >= 10 && rw - rn >= 6 ) { // All fits, placing bathroom and 2nd bedroom @@ -2527,14 +2527,14 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t house_room( m, room_bedroom, rn, cw, rw, bw - 5, dat ); // Put door between bathroom and bedroom - m->ter_set( point( rn, rng( bw - 4, bw - 1 ) ), t_door_c ); + m->ter_set( rn, rng( bw - 4, bw - 1 ), t_door_c ); if( one_in( 3 ) ) { // Put door between 2nd bedroom and 1st bedroom - m->ter_set( point( rn, rng( cw + 1, bw - 6 ) ), t_door_c ); + m->ter_set( rn, rng( cw + 1, bw - 6 ), t_door_c ); } else { // ...Otherwise, between 2nd bedroom and living - m->ter_set( point( rng( rw - 1, rn > mw ? rn + 1 : mw + 1 ), cw ), t_door_c ); + m->ter_set( rng( rw - 1, rn > mw ? rn + 1 : mw + 1 ), cw, t_door_c ); } } else if( bw - cw > 4 ) { // Too big for a bathroom, not big enough for 2nd bedroom @@ -2542,54 +2542,54 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t // the living. house_room( m, room_bathroom, rn, bw - 4, rw, bw, dat ); for( int i = rw - 1; i > rn && i > mw; i-- ) { - m->ter_set( point( i, cw ), t_floor ); + m->ter_set( i, cw, t_floor ); } // Put door between excess space and bathroom - m->ter_set( point( rng( rw - 1, rn + 1 ), bw - 4 ), t_door_c ); + m->ter_set( rng( rw - 1, rn + 1 ), bw - 4, t_door_c ); // Put door between excess space and bedroom - m->ter_set( point( rn, rng( cw + 1, bw - 5 ) ), t_door_c ); + m->ter_set( rn, rng( cw + 1, bw - 5 ), t_door_c ); } else { // Small enough to be a bathroom; make it one. house_room( m, room_bathroom, rn, cw, rw, bw, dat ); if( one_in( 5 ) ) { // Put door between bathroom and living with low chance - m->ter_set( point( rng( rw - 1, rn > mw ? rn + 1 : mw + 1 ), cw ), t_door_c ); + m->ter_set( rng( rw - 1, rn > mw ? rn + 1 : mw + 1 ), cw, t_door_c ); } else { // ...Otherwise, between bathroom and bedroom - m->ter_set( point( rn, rng( cw + 1, bw - 1 ) ), t_door_c ); + m->ter_set( rn, rng( cw + 1, bw - 1 ), t_door_c ); } } // Point on bedroom wall, for window rn = rng( lw + 2, rn - 2 ); } - m->ter_set( point( rn, bw ), t_window_domestic ); - m->ter_set( point( rn + 1, bw ), t_window_domestic ); + m->ter_set( rn, bw, t_window_domestic ); + m->ter_set( rn + 1, bw, t_window_domestic ); if( !one_in( 3 ) && rw < SEEX * 2 - 1 ) { // Potential side windows rn = rng( tw + 2, bw - 6 ); - m->ter_set( point( rw, rn ), t_window_domestic ); - m->ter_set( point( rw, rn + 4 ), t_window_domestic ); + m->ter_set( rw, rn, t_window_domestic ); + m->ter_set( rw, rn + 4, t_window_domestic ); } if( !one_in( 3 ) && lw > 0 ) { // Potential side windows rn = rng( tw + 2, bw - 6 ); - m->ter_set( point( lw, rn ), t_window_domestic ); - m->ter_set( point( lw, rn + 4 ), t_window_domestic ); + m->ter_set( lw, rn, t_window_domestic ); + m->ter_set( lw, rn + 4, t_window_domestic ); } if( one_in( 2 ) ) { // Placement of the main door - m->ter_set( point( rng( lw + 2, mw - 1 ), tw ), + m->ter_set( rng( lw + 2, mw - 1 ), tw, ( one_in( 6 ) ? ( one_in( 6 ) ? t_door_c : t_door_c_peep ) : ( one_in( 6 ) ? t_door_locked : t_door_locked_peep ) ) ); if( one_in( 5 ) ) { // Placement of side door - m->ter_set( point( rw, rng( tw + 2, cw - 2 ) ), ( one_in( 6 ) ? t_door_c : t_door_locked ) ); + m->ter_set( rw, rng( tw + 2, cw - 2 ), ( one_in( 6 ) ? t_door_c : t_door_locked ) ); } } else { - m->ter_set( point( rng( mw + 1, rw - 2 ), tw ), + m->ter_set( rng( mw + 1, rw - 2 ), tw, ( one_in( 6 ) ? ( one_in( 6 ) ? t_door_c : t_door_c_peep ) : ( one_in( 6 ) ? t_door_locked : t_door_locked_peep ) ) ); if( one_in( 5 ) ) { - m->ter_set( point( lw, rng( tw + 2, cw - 2 ) ), ( one_in( 6 ) ? t_door_c : t_door_locked ) ); + m->ter_set( lw, rng( tw + 2, cw - 2 ), ( one_in( 6 ) ? t_door_c : t_door_locked ) ); } } break; @@ -2606,7 +2606,7 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t //everything is fine house_room( m, room_backyard, lw, actual_house_height + 1, rw, bw, dat ); //door from bedroom to backyard - m->ter_set( point( ( lw + mw ) / 2, actual_house_height ), t_door_c ); + m->ter_set( ( lw + mw ) / 2, actual_house_height, t_door_c ); } else { //using old layout actual_house_height = bw_old; } @@ -2618,58 +2618,58 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t // Space between kitchen & living room: rn = rng( mw + 1, rw - 3 ); - m->ter_set( point( rn, cw ), t_floor ); - m->ter_set( point( rn + 1, cw ), t_floor ); + m->ter_set( rn, cw, t_floor ); + m->ter_set( rn + 1, cw, t_floor ); // Front windows rn = rng( 2, 5 ); - m->ter_set( point( lw + rn, tw ), t_window_domestic ); - m->ter_set( point( lw + rn + 1, tw ), t_window_domestic ); - m->ter_set( point( rw - rn, tw ), t_window_domestic ); - m->ter_set( point( rw - rn + 1, tw ), t_window_domestic ); + m->ter_set( lw + rn, tw, t_window_domestic ); + m->ter_set( lw + rn + 1, tw, t_window_domestic ); + m->ter_set( rw - rn, tw, t_window_domestic ); + m->ter_set( rw - rn + 1, tw, t_window_domestic ); // Front door - m->ter_set( point( rng( lw + 4, rw - 4 ), tw ), ( one_in( 6 ) ? t_door_c : t_door_locked ) ); + m->ter_set( rng( lw + 4, rw - 4 ), tw, ( one_in( 6 ) ? t_door_c : t_door_locked ) ); if( one_in( 3 ) ) { // Kitchen windows rn = rng( cw + 1, actual_house_height - 5 ); - m->ter_set( point( rw, rn ), t_window_domestic ); - m->ter_set( point( rw, rn + 1 ), t_window_domestic ); + m->ter_set( rw, rn, t_window_domestic ); + m->ter_set( rw, rn + 1, t_window_domestic ); } if( one_in( 3 ) ) { // Bedroom windows rn = rng( cw + 1, actual_house_height - 2 ); - m->ter_set( point( lw, rn ), t_window_domestic ); - m->ter_set( point( lw, rn + 1 ), t_window_domestic ); + m->ter_set( lw, rn, t_window_domestic ); + m->ter_set( lw, rn + 1, t_window_domestic ); } // Door to bedroom if( one_in( 4 ) ) { - m->ter_set( point( rng( lw + 1, mw - 1 ), cw ), t_door_c ); + m->ter_set( rng( lw + 1, mw - 1 ), cw, t_door_c ); } else { - m->ter_set( point( mw, rng( cw + 3, actual_house_height - 4 ) ), t_door_c ); + m->ter_set( mw, rng( cw + 3, actual_house_height - 4 ), t_door_c ); } // Door to bathroom if( one_in( 4 ) ) { - m->ter_set( point( mw, actual_house_height - 1 ), t_door_c ); + m->ter_set( mw, actual_house_height - 1, t_door_c ); } else { - m->ter_set( point( rng( mw + 2, rw - 2 ), actual_house_height - 3 ), t_door_c ); + m->ter_set( rng( mw + 2, rw - 2 ), actual_house_height - 3, t_door_c ); } // Back windows rn = rng( lw + 1, mw - 2 ); - m->ter_set( point( rn, actual_house_height ), t_window_domestic ); - m->ter_set( point( rn + 1, actual_house_height ), t_window_domestic ); + m->ter_set( rn, actual_house_height, t_window_domestic ); + m->ter_set( rn + 1, actual_house_height, t_window_domestic ); rn = rng( mw + 1, rw - 1 ); - m->ter_set( point( rn, actual_house_height ), t_window_domestic ); + m->ter_set( rn, actual_house_height, t_window_domestic ); break; case 3: // Long center hallway, kitchen, living room and office mw = static_cast( ( lw + rw ) / 2 ); cw = bw - rng( 5, 7 ); // Hallway doors and windows - m->ter_set( point( mw, tw ), ( one_in( 6 ) ? t_door_c : t_door_locked ) ); + m->ter_set( mw, tw, ( one_in( 6 ) ? t_door_c : t_door_locked ) ); if( one_in( 4 ) ) { - m->ter_set( point( mw - 1, tw ), t_window_domestic ); - m->ter_set( point( mw + 1, tw ), t_window_domestic ); + m->ter_set( mw - 1, tw, t_window_domestic ); + m->ter_set( mw + 1, tw, t_window_domestic ); } for( int i = tw + 1; i < cw; i++ ) { // Hallway walls - m->ter_set( point( mw - 2, i ), t_wall ); - m->ter_set( point( mw + 2, i ), t_wall ); + m->ter_set( mw - 2, i, t_wall ); + m->ter_set( mw + 2, i, t_wall ); } if( one_in( 2 ) ) { // Front rooms are kitchen or living room house_room( m, room_living, lw, tw, mw - 2, cw, dat ); @@ -2680,20 +2680,20 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t } // Front windows rn = rng( lw + 1, mw - 4 ); - m->ter_set( point( rn, tw ), t_window_domestic ); - m->ter_set( point( rn + 1, tw ), t_window_domestic ); + m->ter_set( rn, tw, t_window_domestic ); + m->ter_set( rn + 1, tw, t_window_domestic ); rn = rng( mw + 3, rw - 2 ); - m->ter_set( point( rn, tw ), t_window_domestic ); - m->ter_set( point( rn + 1, tw ), t_window_domestic ); + m->ter_set( rn, tw, t_window_domestic ); + m->ter_set( rn + 1, tw, t_window_domestic ); if( one_in( 3 ) && lw > 0 ) { // Side windows? rn = rng( tw + 1, cw - 2 ); - m->ter_set( point( lw, rn ), t_window_domestic ); - m->ter_set( point( lw, rn + 1 ), t_window_domestic ); + m->ter_set( lw, rn, t_window_domestic ); + m->ter_set( lw, rn + 1, t_window_domestic ); } if( one_in( 3 ) && rw < SEEX * 2 - 1 ) { // Side windows? rn = rng( tw + 1, cw - 2 ); - m->ter_set( point( rw, rn ), t_window_domestic ); - m->ter_set( point( rw, rn + 1 ), t_window_domestic ); + m->ter_set( rw, rn, t_window_domestic ); + m->ter_set( rw, rn + 1, t_window_domestic ); } if( one_in( 2 ) ) { // Bottom rooms are bedroom or bathroom //bathroom to the left (eastern wall), study to the right @@ -2702,29 +2702,29 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t house_room( m, room_bathroom, rw - 3, cw, rw, bw, dat ); house_room( m, room_study, lw, cw, mw - 2, bw, dat ); //===Study Room Furniture== - m->ter_set( point( mw - 2, ( bw + cw ) / 2 ), t_door_o ); - m->furn_set( point( lw + 1, cw + 1 ), f_chair ); - m->furn_set( point( lw + 1, cw + 2 ), f_table ); - m->ter_set( point( lw + 1, cw + 3 ), t_console_broken ); - m->furn_set( point( lw + 3, bw - 1 ), f_bookcase ); + m->ter_set( mw - 2, ( bw + cw ) / 2, t_door_o ); + m->furn_set( lw + 1, cw + 1, f_chair ); + m->furn_set( lw + 1, cw + 2, f_table ); + m->ter_set( lw + 1, cw + 3, t_console_broken ); + m->furn_set( lw + 3, bw - 1, f_bookcase ); m->place_items( "magazines", 30, lw + 3, bw - 1, lw + 3, bw - 1, false, turn ); m->place_items( "novels", 40, lw + 3, bw - 1, lw + 3, bw - 1, false, turn ); m->place_items( "alcohol", 20, lw + 3, bw - 1, lw + 3, bw - 1, false, turn ); m->place_items( "manuals", 30, lw + 3, bw - 1, lw + 3, bw - 1, false, turn ); //========================= - m->ter_set( point( rng( lw + 2, mw - 3 ), cw ), t_door_c ); + m->ter_set( rng( lw + 2, mw - 3 ), cw, t_door_c ); if( one_in( 4 ) ) { - m->ter_set( point( rng( rw - 2, rw - 1 ), cw ), t_door_c ); + m->ter_set( rng( rw - 2, rw - 1 ), cw, t_door_c ); } else { - m->ter_set( point( rw - 3, rng( cw + 2, bw - 2 ) ), t_door_c ); + m->ter_set( rw - 3, rng( cw + 2, bw - 2 ), t_door_c ); } rn = rng( mw, rw - 5 ); //bedroom windows - m->ter_set( point( rn, bw ), t_window_domestic ); - m->ter_set( point( rn + 1, bw ), t_window_domestic ); - m->ter_set( point( rng( lw + 2, mw - 3 ), bw ), t_window_domestic ); //study window + m->ter_set( rn, bw, t_window_domestic ); + m->ter_set( rn + 1, bw, t_window_domestic ); + m->ter_set( rng( lw + 2, mw - 3 ), bw, t_window_domestic ); //study window if( one_in( 4 ) ) { - m->ter_set( point( rng( rw - 2, rw - 1 ), bw ), t_window_domestic ); + m->ter_set( rng( rw - 2, rw - 1 ), bw, t_window_domestic ); } else { m->ter( rw, rng( cw + 1, bw - 1 ) ); } @@ -2734,11 +2734,11 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t house_room( m, room_bedroom, lw + 3, cw, mw + 2, bw, dat ); house_room( m, room_study, mw + 2, cw, rw, bw, dat ); //===Study Room Furniture== - m->ter_set( point( mw + 2, ( bw + cw ) / 2 ), t_door_c ); - m->furn_set( point( rw - 1, cw + 1 ), f_chair ); - m->furn_set( point( rw - 1, cw + 2 ), f_table ); - m->ter_set( point( rw - 1, cw + 3 ), t_console_broken ); - m->furn_set( point( rw - 3, bw - 1 ), f_bookcase ); + m->ter_set( mw + 2, ( bw + cw ) / 2, t_door_c ); + m->furn_set( rw - 1, cw + 1, f_chair ); + m->furn_set( rw - 1, cw + 2, f_table ); + m->ter_set( rw - 1, cw + 3, t_console_broken ); + m->furn_set( rw - 3, bw - 1, f_bookcase ); m->place_items( "magazines", 40, rw - 3, bw - 1, rw - 3, bw - 1, false, turn ); m->place_items( "novels", 40, rw - 3, bw - 1, rw - 3, bw - 1, false, turn ); m->place_items( "alcohol", 20, rw - 3, bw - 1, rw - 3, bw - 1, false, turn ); @@ -2746,40 +2746,40 @@ void mapgen_generic_house( map *m, oter_id terrain_type, mapgendata dat, const t //========================= if( one_in( 4 ) ) { - m->ter_set( point( rng( lw + 1, lw + 2 ), cw ), t_door_c ); + m->ter_set( rng( lw + 1, lw + 2 ), cw, t_door_c ); } else { - m->ter_set( point( lw + 3, rng( cw + 2, bw - 2 ) ), t_door_c ); + m->ter_set( lw + 3, rng( cw + 2, bw - 2 ), t_door_c ); } rn = rng( lw + 4, mw ); //bedroom windows - m->ter_set( point( rn, bw ), t_window_domestic ); - m->ter_set( point( rn + 1, bw ), t_window_domestic ); - m->ter_set( point( rng( mw + 3, rw - 1 ), bw ), t_window_domestic ); //study window + m->ter_set( rn, bw, t_window_domestic ); + m->ter_set( rn + 1, bw, t_window_domestic ); + m->ter_set( rng( mw + 3, rw - 1 ), bw, t_window_domestic ); //study window if( one_in( 4 ) ) { - m->ter_set( point( rng( lw + 1, lw + 2 ), bw ), t_window_domestic ); + m->ter_set( rng( lw + 1, lw + 2 ), bw, t_window_domestic ); } else { m->ter( lw, rng( cw + 1, bw - 1 ) ); } } // Doors off the sides of the hallway - m->ter_set( point( mw - 2, rng( tw + 3, cw - 3 ) ), t_door_c ); - m->ter_set( point( mw + 2, rng( tw + 3, cw - 3 ) ), t_door_c ); - m->ter_set( point( mw, cw ), t_door_c ); + m->ter_set( mw - 2, rng( tw + 3, cw - 3 ), t_door_c ); + m->ter_set( mw + 2, rng( tw + 3, cw - 3 ), t_door_c ); + m->ter_set( mw, cw, t_door_c ); break; } // Done with the various house structures ////// if( rng( 2, 7 ) < tw ) { // Big front yard has a chance for a fence for( int i = lw; i <= rw; i++ ) { - m->ter_set( point( i, 0 ), t_fence ); + m->ter_set( i, 0, t_fence ); } for( int i = 1; i < tw; i++ ) { - m->ter_set( point( lw, i ), t_fence ); + m->ter_set( lw, i, t_fence ); } int hole = rng( SEEX - 3, SEEX + 2 ); - m->ter_set( point( hole, 0 ), t_dirt ); - m->ter_set( point( hole + 1, 0 ), t_dirt ); + m->ter_set( hole, 0, t_dirt ); + m->ter_set( hole + 1, 0, t_dirt ); if( one_in( tw ) ) { - m->ter_set( point( hole - 1, 1 ), t_tree_young ); - m->ter_set( point( hole + 2, 1 ), t_tree_young ); + m->ter_set( hole - 1, 1, t_tree_young ); + m->ter_set( hole + 2, 1, t_tree_young ); } } @@ -2805,8 +2805,8 @@ void mapgen_basement_generic_layout( map *m, oter_id, mapgendata, const time_poi line( m, t_rock_smooth, left, down, right, down ); line( m, t_rock_smooth, left, up, left, down ); line( m, t_rock_smooth, right, up, right, down ); - m->ter_set( point( SEEX - 1, down - 1 ), t_stairs_up ); - m->ter_set( point( SEEX, down - 1 ), t_stairs_up ); + m->ter_set( SEEX - 1, down - 1, t_stairs_up ); + m->ter_set( SEEX, down - 1, t_stairs_up ); line( m, t_rock_smooth, SEEX - 2, down - 1, SEEX - 2, down - 3 ); line( m, t_rock_smooth, SEEX + 1, down - 1, SEEX + 1, down - 3 ); line( m, t_door_locked, SEEX - 1, down - 3, SEEX, down - 3 ); @@ -2942,7 +2942,7 @@ void mapgen_basement_spiders( map *m, oter_id terrain_type, mapgendata dat, cons madd_field( m, i, j, fd_web, rng( 1, 3 ) ); } if( one_in( 30 ) && m->passable( i, j ) ) { - m->furn_set( point( i, j ), egg_type ); + m->furn_set( i, j, egg_type ); m->add_spawn( spider_type, rng( 1, 2 ), i, j ); //hope you like'em spiders m->remove_field( { i, j, m->get_abs_sub().z }, fd_web ); } @@ -2960,9 +2960,9 @@ void mapgen_cave( map *m, oter_id, mapgendata dat, const time_point &turn, float bool floorHere = ( rng( 0, 6 ) < i || SEEX * 2 - rng( 1, 7 ) > i || rng( 0, 6 ) < j || SEEY * 2 - rng( 1, 7 ) > j ); if( floorHere ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } else { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } } } @@ -3041,7 +3041,7 @@ void mapgen_cave( map *m, oter_id, mapgendata dat, const time_point &turn, float ii.x + 1, ii.y + 1 ); } while( !one_in( 8 ) ) { - m->ter_set( point( rng( SEEX - 6, SEEX + 5 ), rng( SEEY - 6, SEEY + 5 ) ), t_dirt ); + m->ter_set( rng( SEEX - 6, SEEX + 5 ), rng( SEEY - 6, SEEY + 5 ), t_dirt ); } square( m, t_slope_down, SEEX - 1, SEEY - 1, SEEX, SEEY ); } @@ -3076,7 +3076,7 @@ void mapgen_cave_rat( map *m, oter_id, mapgendata dat, const time_point &turn, f cavey -= rng( 0, 1 ); for( int cx = cavex - 1; cx <= cavex + 1; cx++ ) { for( int cy = cavey - 1; cy <= cavey + 1; cy++ ) { - m->ter_set( point( cx, cy ), t_rock_floor ); + m->ter_set( cx, cy, t_rock_floor ); if( one_in( 10 ) ) { madd_field( m, cx, cy, fd_blood, rng( 1, 3 ) ); } @@ -3096,7 +3096,7 @@ void mapgen_cave_rat( map *m, oter_id, mapgendata dat, const time_point &turn, f for( auto &i : path ) { for( int cx = i.x - 1; cx <= i.x + 1; cx++ ) { for( int cy = i.y - 1; cy <= i.y + 1; cy++ ) { - m->ter_set( point( cx, cy ), t_rock_floor ); + m->ter_set( cx, cy, t_rock_floor ); if( one_in( 10 ) ) { madd_field( m, cx, cy, fd_blood, rng( 1, 3 ) ); } @@ -3112,9 +3112,9 @@ void mapgen_cave_rat( map *m, oter_id, mapgendata dat, const time_point &turn, f } } while( one_in( 2 ) ); // Finally, draw the stairs up and down. - m->ter_set( point( SEEX - 1, SEEX * 2 - 2 ), t_slope_up ); - m->ter_set( point( SEEX, SEEX * 2 - 2 ), t_slope_up ); - m->ter_set( point( stairsx, stairsy ), t_slope_down ); + m->ter_set( SEEX - 1, SEEX * 2 - 2, t_slope_up ); + m->ter_set( SEEX, SEEX * 2 - 2, t_slope_up ); + m->ter_set( stairsx, stairsy, t_slope_down ); } } @@ -3135,9 +3135,9 @@ void mapgen_cavern( map *m, oter_id, mapgendata dat, const time_point &turn, flo for( int j = 0; j < SEEY * 2; j++ ) { if( ( j < dat.n_fac || j > dat.s_fac || i < dat.w_fac || i > dat.e_fac ) && ( !one_in( 3 ) || j == 0 || j == SEEY * 2 - 1 || i == 0 || i == SEEX * 2 - 1 ) ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } else { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3148,7 +3148,7 @@ void mapgen_cavern( map *m, oter_id, mapgendata dat, const time_point &turn, flo int py = rng( 5, SEEY * 2 - 6 ); for( int i = px - 1; i <= px + 1; i++ ) { for( int j = py - 1; j <= py + 1; j++ ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } } } @@ -3156,28 +3156,28 @@ void mapgen_cavern( map *m, oter_id, mapgendata dat, const time_point &turn, flo if( connects_to( dat.north(), 2 ) ) { for( int i = SEEX - 2; i <= SEEX + 3; i++ ) { for( int j = 0; j <= SEEY; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } if( connects_to( dat.east(), 3 ) ) { for( int i = SEEX; i <= SEEX * 2 - 1; i++ ) { for( int j = SEEY - 2; j <= SEEY + 3; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } if( connects_to( dat.south(), 0 ) ) { for( int i = SEEX - 2; i <= SEEX + 3; i++ ) { for( int j = SEEY; j <= SEEY * 2 - 1; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } if( connects_to( dat.west(), 1 ) ) { for( int i = 0; i <= SEEX; i++ ) { for( int j = SEEY - 2; j <= SEEY + 3; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3223,7 +3223,7 @@ void mapgen_rock_partial( map *m, oter_id, mapgendata dat, const time_point &, f for( int j = 0; j < SEEY * 2; j++ ) { if( rng( 0, dat.n_fac ) > j || rng( 0, dat.s_fac ) > SEEY * 2 - 1 - j || rng( 0, dat.w_fac ) > i || rng( 0, dat.e_fac ) > SEEX * 2 - 1 - i ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3277,12 +3277,12 @@ void mapgen_rift( map *m, oter_id, mapgendata dat, const time_point &, float ) for( int j = 0; j < SEEY * 2; j++ ) { if( ( dat.n_fac < 0 && j < dat.n_fac * -1 ) || ( dat.s_fac < 0 && j >= SEEY * 2 - dat.s_fac ) || ( dat.w_fac < 0 && i < dat.w_fac * -1 ) || ( dat.e_fac < 0 && i >= SEEX * 2 - dat.e_fac ) ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } else if( j < dat.n_fac || j >= SEEY * 2 - dat.s_fac || i < dat.w_fac || i >= SEEX * 2 - dat.e_fac ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } else { - m->ter_set( point( i, j ), t_lava ); + m->ter_set( i, j, t_lava ); } } } @@ -3303,90 +3303,90 @@ void mapgen_hellmouth( map *m, oter_id, mapgendata dat, const time_point &, floa for( int j = 0; j < SEEY * 2; j++ ) { if( j < dat.n_fac || j >= SEEY * 2 - dat.s_fac || i < dat.w_fac || i >= SEEX * 2 - dat.e_fac || ( i >= 6 && i < SEEX * 2 - 6 && j >= 6 && j < SEEY * 2 - 6 ) ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } else { - m->ter_set( point( i, j ), t_lava ); + m->ter_set( i, j, t_lava ); } if( i >= SEEX - 1 && i <= SEEX && j >= SEEY - 1 && j <= SEEY ) { - m->ter_set( point( i, j ), t_slope_down ); + m->ter_set( i, j, t_slope_down ); } } } switch( rng( 0, 4 ) ) { // Randomly chosen "altar" design case 0: for( int i = 7; i <= 16; i += 3 ) { - m->ter_set( point( i, 6 ), t_rock ); - m->ter_set( point( i, 17 ), t_rock ); - m->ter_set( point( 6, i ), t_rock ); - m->ter_set( point( 17, i ), t_rock ); + m->ter_set( i, 6, t_rock ); + m->ter_set( i, 17, t_rock ); + m->ter_set( 6, i, t_rock ); + m->ter_set( 17, i, t_rock ); if( i > 7 && i < 16 ) { - m->ter_set( point( i, 10 ), t_rock ); - m->ter_set( point( i, 13 ), t_rock ); + m->ter_set( i, 10, t_rock ); + m->ter_set( i, 13, t_rock ); } else { - m->ter_set( point( i - 1, 6 ), t_rock ); - m->ter_set( point( i - 1, 10 ), t_rock ); - m->ter_set( point( i - 1, 13 ), t_rock ); - m->ter_set( point( i - 1, 17 ), t_rock ); + m->ter_set( i - 1, 6, t_rock ); + m->ter_set( i - 1, 10, t_rock ); + m->ter_set( i - 1, 13, t_rock ); + m->ter_set( i - 1, 17, t_rock ); } } break; case 1: for( int i = 6; i < 11; i++ ) { - m->ter_set( point( i, i ), t_lava ); - m->ter_set( point( SEEX * 2 - 1 - i, i ), t_lava ); - m->ter_set( point( i, SEEY * 2 - 1 - i ), t_lava ); - m->ter_set( point( SEEX * 2 - 1 - i, SEEY * 2 - 1 - i ), t_lava ); + m->ter_set( i, i, t_lava ); + m->ter_set( SEEX * 2 - 1 - i, i, t_lava ); + m->ter_set( i, SEEY * 2 - 1 - i, t_lava ); + m->ter_set( SEEX * 2 - 1 - i, SEEY * 2 - 1 - i, t_lava ); if( i < 10 ) { - m->ter_set( point( i + 1, i ), t_lava ); - m->ter_set( point( SEEX * 2 - i, i ), t_lava ); - m->ter_set( point( i + 1, SEEY * 2 - 1 - i ), t_lava ); - m->ter_set( point( SEEX * 2 - i, SEEY * 2 - 1 - i ), t_lava ); - - m->ter_set( point( i, i + 1 ), t_lava ); - m->ter_set( point( SEEX * 2 - 1 - i, i + 1 ), t_lava ); - m->ter_set( point( i, SEEY * 2 - i ), t_lava ); - m->ter_set( point( SEEX * 2 - 1 - i, SEEY * 2 - i ), t_lava ); + m->ter_set( i + 1, i, t_lava ); + m->ter_set( SEEX * 2 - i, i, t_lava ); + m->ter_set( i + 1, SEEY * 2 - 1 - i, t_lava ); + m->ter_set( SEEX * 2 - i, SEEY * 2 - 1 - i, t_lava ); + + m->ter_set( i, i + 1, t_lava ); + m->ter_set( SEEX * 2 - 1 - i, i + 1, t_lava ); + m->ter_set( i, SEEY * 2 - i, t_lava ); + m->ter_set( SEEX * 2 - 1 - i, SEEY * 2 - i, t_lava ); } if( i < 9 ) { - m->ter_set( point( i + 2, i ), t_rock ); - m->ter_set( point( SEEX * 2 - i + 1, i ), t_rock ); - m->ter_set( point( i + 2, SEEY * 2 - 1 - i ), t_rock ); - m->ter_set( point( SEEX * 2 - i + 1, SEEY * 2 - 1 - i ), t_rock ); - - m->ter_set( point( i, i + 2 ), t_rock ); - m->ter_set( point( SEEX * 2 - 1 - i, i + 2 ), t_rock ); - m->ter_set( point( i, SEEY * 2 - i + 1 ), t_rock ); - m->ter_set( point( SEEX * 2 - 1 - i, SEEY * 2 - i + 1 ), t_rock ); + m->ter_set( i + 2, i, t_rock ); + m->ter_set( SEEX * 2 - i + 1, i, t_rock ); + m->ter_set( i + 2, SEEY * 2 - 1 - i, t_rock ); + m->ter_set( SEEX * 2 - i + 1, SEEY * 2 - 1 - i, t_rock ); + + m->ter_set( i, i + 2, t_rock ); + m->ter_set( SEEX * 2 - 1 - i, i + 2, t_rock ); + m->ter_set( i, SEEY * 2 - i + 1, t_rock ); + m->ter_set( SEEX * 2 - 1 - i, SEEY * 2 - i + 1, t_rock ); } } break; case 2: for( int i = 7; i < 17; i++ ) { - m->ter_set( point( i, 6 ), t_rock ); - m->ter_set( point( 6, i ), t_rock ); - m->ter_set( point( i, 17 ), t_rock ); - m->ter_set( point( 17, i ), t_rock ); + m->ter_set( i, 6, t_rock ); + m->ter_set( 6, i, t_rock ); + m->ter_set( i, 17, t_rock ); + m->ter_set( 17, i, t_rock ); if( i != 7 && i != 16 && i != 11 && i != 12 ) { - m->ter_set( point( i, 8 ), t_rock ); - m->ter_set( point( 8, i ), t_rock ); - m->ter_set( point( i, 15 ), t_rock ); - m->ter_set( point( 15, i ), t_rock ); + m->ter_set( i, 8, t_rock ); + m->ter_set( 8, i, t_rock ); + m->ter_set( i, 15, t_rock ); + m->ter_set( 15, i, t_rock ); } if( i == 11 || i == 12 ) { - m->ter_set( point( i, 10 ), t_rock ); - m->ter_set( point( 10, i ), t_rock ); - m->ter_set( point( i, 13 ), t_rock ); - m->ter_set( point( 13, i ), t_rock ); + m->ter_set( i, 10, t_rock ); + m->ter_set( 10, i, t_rock ); + m->ter_set( i, 13, t_rock ); + m->ter_set( 13, i, t_rock ); } } break; case 3: for( int i = 6; i < 11; i++ ) { for( int j = 6; j < 11; j++ ) { - m->ter_set( point( i, j ), t_lava ); - m->ter_set( point( SEEX * 2 - 1 - i, j ), t_lava ); - m->ter_set( point( i, SEEY * 2 - 1 - j ), t_lava ); - m->ter_set( point( SEEX * 2 - 1 - i, SEEY * 2 - 1 - j ), t_lava ); + m->ter_set( i, j, t_lava ); + m->ter_set( SEEX * 2 - 1 - i, j, t_lava ); + m->ter_set( i, SEEY * 2 - 1 - j, t_lava ); + m->ter_set( SEEX * 2 - 1 - i, SEEY * 2 - 1 - j, t_lava ); } } break; @@ -3404,18 +3404,18 @@ void mapgen_ants_curved( map *m, oter_id terrain_type, mapgendata dat, const tim fill_background( m, t_rock ); for( int i = SEEX - 2; i <= SEEX + 3; i++ ) { - m->ter_set( point( i, 0 ), t_rock_floor ); - m->ter_set( point( i, 1 ), t_rock_floor ); - m->ter_set( point( i, 2 ), t_rock_floor ); - m->ter_set( point( SEEX * 2 - 1, i ), t_rock_floor ); - m->ter_set( point( SEEX * 2 - 2, i ), t_rock_floor ); - m->ter_set( point( SEEX * 2 - 3, i ), t_rock_floor ); + m->ter_set( i, 0, t_rock_floor ); + m->ter_set( i, 1, t_rock_floor ); + m->ter_set( i, 2, t_rock_floor ); + m->ter_set( SEEX * 2 - 1, i, t_rock_floor ); + m->ter_set( SEEX * 2 - 2, i, t_rock_floor ); + m->ter_set( SEEX * 2 - 3, i, t_rock_floor ); } do { for( int i = x - 2; i <= x + 3; i++ ) { for( int j = y - 2; j <= y + 3; j++ ) { if( i > 0 && i < SEEX * 2 - 1 && j > 0 && j < SEEY * 2 - 1 ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3437,7 +3437,7 @@ void mapgen_ants_curved( map *m, oter_id terrain_type, mapgendata dat, const tim for( int i = x - 2; i <= x + 3; i++ ) { for( int j = y - 2; j <= y + 3; j++ ) { if( i > 0 && i < SEEX * 2 - 1 && j > 0 && j < SEEY * 2 - 1 ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3461,7 +3461,7 @@ void mapgen_ants_four_way( map *m, oter_id, mapgendata dat, const time_point &, for( int j = 0; j < SEEY * 2; j++ ) { for( int i = x - 2; i <= x + 3; i++ ) { if( i >= 1 && i < SEEX * 2 - 1 ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } x += rng( -1, 1 ); @@ -3479,7 +3479,7 @@ void mapgen_ants_four_way( map *m, oter_id, mapgendata dat, const time_point &, for( int i = 0; i < SEEX * 2; i++ ) { for( int j = y - 2; j <= y + 3; j++ ) { if( j >= 1 && j < SEEY * 2 - 1 ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } y += rng( -1, 1 ); @@ -3503,7 +3503,7 @@ void mapgen_ants_straight( map *m, oter_id terrain_type, mapgendata dat, const t for( int j = 0; j < SEEY * 2; j++ ) { for( int i = x - 2; i <= x + 3; i++ ) { if( i >= 1 && i < SEEX * 2 - 1 ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } x += rng( -1, 1 ); @@ -3530,7 +3530,7 @@ void mapgen_ants_tee( map *m, oter_id terrain_type, mapgendata dat, const time_p for( int j = 0; j < SEEY * 2; j++ ) { for( int i = x - 2; i <= x + 3; i++ ) { if( i >= 1 && i < SEEX * 2 - 1 ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } x += rng( -1, 1 ); @@ -3547,7 +3547,7 @@ void mapgen_ants_tee( map *m, oter_id terrain_type, mapgendata dat, const time_p for( int i = SEEX; i < SEEX * 2; i++ ) { for( int j = y - 2; j <= y + 3; j++ ) { if( j >= 1 && j < SEEY * 2 - 1 ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } y += rng( -1, 1 ); @@ -3579,9 +3579,9 @@ static void mapgen_ants_generic( map *m, oter_id terrain_type, mapgendata dat, for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i < SEEX - 4 || i > SEEX + 5 || j < SEEY - 4 || j > SEEY + 5 ) { - m->ter_set( point( i, j ), t_rock ); + m->ter_set( i, j, t_rock ); } else { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3597,7 +3597,7 @@ static void mapgen_ants_generic( map *m, oter_id terrain_type, mapgendata dat, for( int i = x - cw; i <= x + cw; i++ ) { for( int j = y - cw; j <= y + cw; j++ ) { if( trig_dist( x, y, i, j ) <= cw ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3606,7 +3606,7 @@ static void mapgen_ants_generic( map *m, oter_id terrain_type, mapgendata dat, is_ot_match( "ants_lab", dat.north(), ot_match_type::contains ) ) { for( int i = SEEX - 2; i <= SEEX + 3; i++ ) { for( int j = 0; j <= SEEY; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3614,7 +3614,7 @@ static void mapgen_ants_generic( map *m, oter_id terrain_type, mapgendata dat, is_ot_match( "ants_lab", dat.east(), ot_match_type::contains ) ) { for( int i = SEEX; i <= SEEX * 2 - 1; i++ ) { for( int j = SEEY - 2; j <= SEEY + 3; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3622,7 +3622,7 @@ static void mapgen_ants_generic( map *m, oter_id terrain_type, mapgendata dat, is_ot_match( "ants_lab", dat.south(), ot_match_type::contains ) ) { for( int i = SEEX - 2; i <= SEEX + 3; i++ ) { for( int j = SEEY; j <= SEEY * 2 - 1; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3630,7 +3630,7 @@ static void mapgen_ants_generic( map *m, oter_id terrain_type, mapgendata dat, is_ot_match( "ants_lab", dat.west(), ot_match_type::contains ) ) { for( int i = 0; i <= SEEX; i++ ) { for( int j = SEEY - 2; j <= SEEY + 3; j++ ) { - m->ter_set( point( i, j ), t_rock_floor ); + m->ter_set( i, j, t_rock_floor ); } } } @@ -3680,30 +3680,30 @@ void mapgen_tutorial( map *m, oter_id terrain_type, mapgendata dat, const time_p for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( j == 0 || j == SEEY * 2 - 1 ) { - m->ter_set( point( i, j ), t_wall ); + m->ter_set( i, j, t_wall ); } else if( i == 0 || i == SEEX * 2 - 1 ) { - m->ter_set( point( i, j ), t_wall ); + m->ter_set( i, j, t_wall ); } else if( j == SEEY ) { if( i % 4 == 2 ) { - m->ter_set( point( i, j ), t_door_c ); + m->ter_set( i, j, t_door_c ); } else if( i % 5 == 3 ) { - m->ter_set( point( i, j ), t_window_domestic ); + m->ter_set( i, j, t_window_domestic ); } else { - m->ter_set( point( i, j ), t_wall ); + m->ter_set( i, j, t_wall ); } } else { - m->ter_set( point( i, j ), t_floor ); + m->ter_set( i, j, t_floor ); } } } - m->furn_set( point( 7, SEEY * 2 - 4 ), f_rack ); + m->furn_set( 7, SEEY * 2 - 4, f_rack ); m->place_gas_pump( SEEX * 2 - 2, SEEY * 2 - 4, rng( 500, 1000 ) ); if( dat.zlevel < 0 ) { - m->ter_set( point( SEEX - 2, SEEY + 2 ), t_stairs_up ); - m->ter_set( point( 2, 2 ), t_water_sh ); - m->ter_set( point( 2, 3 ), t_water_sh ); - m->ter_set( point( 3, 2 ), t_water_sh ); - m->ter_set( point( 3, 3 ), t_water_sh ); + m->ter_set( SEEX - 2, SEEY + 2, t_stairs_up ); + m->ter_set( 2, 2, t_water_sh ); + m->ter_set( 2, 3, t_water_sh ); + m->ter_set( 3, 2, t_water_sh ); + m->ter_set( 3, 3, t_water_sh ); } else { m->spawn_item( 5, SEEY + 1, "helmet_bike" ); m->spawn_item( 4, SEEY + 1, "backpack" ); @@ -3719,7 +3719,7 @@ void mapgen_tutorial( map *m, oter_id terrain_type, mapgendata dat, const time_p m->spawn_item( SEEX * 2 - 2, SEEY + 7, "cig" ); m->spawn_item( SEEX * 2 - 2, SEEY + 7, "codeine" ); m->spawn_item( SEEX * 2 - 3, SEEY + 7, "water" ); - m->ter_set( point( SEEX - 2, SEEY + 2 ), t_stairs_down ); + m->ter_set( SEEX - 2, SEEY + 2, t_stairs_down ); } } @@ -3952,7 +3952,7 @@ void mapgen_forest( map *m, oter_id terrain_type, mapgendata dat, const time_poi if( one_in( tdf.chance ) ) { // Pick a furniture and set it on the map right now. const auto fid = tdf.furniture.pick(); - m->furn_set( point( x, y ), *fid ); + m->furn_set( x, y, *fid ); } }; @@ -3995,8 +3995,8 @@ void mapgen_forest_trail_straight( map *m, oter_id terrain_type, mapgendata dat, for( int i = 0; i < SEEX * 2; i++ ) { for( int j = 0; j < SEEY * 2; j++ ) { if( i > center_x - width_offset() && i < center_x + width_offset() ) { - m->furn_set( point( i, j ), f_null ); - m->ter_set( point( i, j ), *dat.region.forest_trail.trail_terrain.pick() ); + m->furn_set( i, j, f_null ); + m->ter_set( i, j, *dat.region.forest_trail.trail_terrain.pick() ); } } } @@ -4035,8 +4035,8 @@ void mapgen_forest_trail_curved( map *m, oter_id terrain_type, mapgendata dat, j < center_y + width_offset() ) || ( j > center_y - width_offset() && j < center_y + width_offset() && i > center_x - width_offset() ) ) { - m->furn_set( point( i, j ), f_null ); - m->ter_set( point( i, j ), *dat.region.forest_trail.trail_terrain.pick() ); + m->furn_set( i, j, f_null ); + m->ter_set( i, j, *dat.region.forest_trail.trail_terrain.pick() ); } } } @@ -4078,8 +4078,8 @@ void mapgen_forest_trail_tee( map *m, oter_id terrain_type, mapgendata dat, cons if( ( i > center_x - width_offset() && i < center_x + width_offset() ) || ( j > center_y - width_offset() && j < center_y + width_offset() && i > center_x - width_offset() ) ) { - m->furn_set( point( i, j ), f_null ); - m->ter_set( point( i, j ), *dat.region.forest_trail.trail_terrain.pick() ); + m->furn_set( i, j, f_null ); + m->ter_set( i, j, *dat.region.forest_trail.trail_terrain.pick() ); } } } @@ -4121,8 +4121,8 @@ void mapgen_forest_trail_four_way( map *m, oter_id, mapgendata dat, const time_p if( ( i > center_x - width_offset() && i < center_x + width_offset() ) || ( j > center_y - width_offset() && j < center_y + width_offset() ) ) { - m->furn_set( point( i, j ), f_null ); - m->ter_set( point( i, j ), *dat.region.forest_trail.trail_terrain.pick() ); + m->furn_set( i, j, f_null ); + m->ter_set( i, j, *dat.region.forest_trail.trail_terrain.pick() ); } } } @@ -4146,22 +4146,11 @@ void mapgen_lake_shore( map *m, oter_id, mapgendata dat, const time_point &turn, bool did_extend_adjacent_terrain = false; if( !dat.region.overmap_lake.shore_extendable_overmap_terrain.empty() ) { std::map adjacent_type_count; - for( oter_id &adjacent : dat.t_nesw ) { - // Define the terrain we'll look for a match on. - oter_id match = adjacent; - - // Check if this terrain has an alias to something we actually will extend, and if so, use it. - for( auto &alias : dat.region.overmap_lake.shore_extendable_overmap_terrain_aliases ) { - if( is_ot_match( alias.overmap_terrain, adjacent, alias.match_type ) ) { - match = alias.alias; - break; - } - } - + for( auto &adjacent : dat.t_nesw ) { if( std::find( dat.region.overmap_lake.shore_extendable_overmap_terrain.begin(), dat.region.overmap_lake.shore_extendable_overmap_terrain.end(), - match ) != dat.region.overmap_lake.shore_extendable_overmap_terrain.end() ) { - adjacent_type_count[match] += 1; + adjacent ) != dat.region.overmap_lake.shore_extendable_overmap_terrain.end() ) { + adjacent_type_count[adjacent] += 1; } } @@ -4294,7 +4283,7 @@ void mapgen_lake_shore( map *m, oter_id, mapgendata dat, const time_point &turn, const int sector_length = SEEX * 2 / 3; // Define the corners of the map. These won't change. - static constexpr point nw_corner( point_zero ); + static constexpr point nw_corner( 0, 0 ); static constexpr point ne_corner( SEEX * 2 - 1, 0 ); static constexpr point se_corner( SEEX * 2 - 1, SEEY * 2 - 1 ); static constexpr point sw_corner( 0, SEEY * 2 - 1 ); @@ -4470,8 +4459,8 @@ void mapgen_lake_shore( map *m, oter_id, mapgendata dat, const time_point &turn, } // Use t_null for now instead of t_water_sh, because sometimes our extended terrain // has put down a t_water_sh, and we need to be able to flood-fill over that. - m->ter_set( bp, t_null ); - m->furn_set( bp, f_null ); + m->ter_set( bp.x, bp.y, t_null ); + m->furn_set( bp.x, bp.y, f_null ); } } }; @@ -4515,8 +4504,8 @@ void mapgen_lake_shore( map *m, oter_id, mapgendata dat, const time_point &turn, std::vector water_points = ff::point_flood_fill_4_connected( starting_point, visited, should_fill ); for( auto &wp : water_points ) { - m->ter_set( wp, t_water_dp ); - m->furn_set( wp, f_null ); + m->ter_set( wp.x, wp.y, t_water_dp ); + m->furn_set( wp.x, wp.y, f_null ); } }; @@ -4598,8 +4587,9 @@ void place_stairs( map *m, oter_id terrain_type, mapgendata dat ) const tripoint abs_sub_here = m->get_abs_sub(); tinymap basement; - basement.load( tripoint( abs_sub_here.xy(), abs_sub_here.z - 1 ), false ); + basement.load( abs_sub_here.x, abs_sub_here.y, abs_sub_here.z - 1, false ); + const tripoint down( 0, 0, -1 ); const tripoint from( 0, 0, abs_sub_here.z ); const tripoint to( SEEX * 2, SEEY * 2, abs_sub_here.z ); tripoint_range tr = m->points_in_rectangle( from, to ); @@ -4608,7 +4598,7 @@ void place_stairs( map *m, oter_id terrain_type, mapgendata dat ) // Find the basement's stairs first. for( auto &&p : tr ) { // *NOPAD* - if( basement.has_flag( TFLAG_GOES_UP, p + tripoint_below ) ) { + if( basement.has_flag( TFLAG_GOES_UP, p + down ) ) { const tripoint rotated = om_direction::rotate( p, terrain_type->get_dir() ); stairs.emplace_back( rotated ); stairs_debug_log( m, "basement stairs:", rotated ); @@ -4628,7 +4618,7 @@ void place_stairs( map *m, oter_id terrain_type, mapgendata dat ) std::shuffle( std::begin( tripoints ), std::end( tripoints ), rng_get_engine() ); bool all_can_be_placed = false; - tripoint shift; + tripoint shift( 0, 0, 0 ); int match_count = 0; // Find a tripoint where all the underground tripoints for stairs are on diff --git a/src/mapgenformat.cpp b/src/mapgenformat.cpp index 0492a136088fd..c1e307267e325 100644 --- a/src/mapgenformat.cpp +++ b/src/mapgenformat.cpp @@ -24,13 +24,13 @@ void formatted_set_simple( map *m, const int startx, const int starty, const cha const ter_id ter = ter_b.translate( *p ); const furn_id furn = furn_b.translate( *p ); if( ter != t_null ) { - m->ter_set( point( x, y ), ter ); + m->ter_set( x, y, ter ); } if( furn != f_null ) { if( furn == f_toilet ) { m->place_toilet( x, y ); } else { - m->furn_set( point( x, y ), furn ); + m->furn_set( x, y, furn ); } } x++; diff --git a/src/martialarts.cpp b/src/martialarts.cpp index c912e1ed9107e..83b26b52303c1 100644 --- a/src/martialarts.cpp +++ b/src/martialarts.cpp @@ -106,9 +106,6 @@ void ma_technique::load( JsonObject &jo, const std::string &src ) optional( jo, was_loaded, "crit_tec", crit_tec, false ); optional( jo, was_loaded, "crit_ok", crit_ok, false ); - optional( jo, was_loaded, "downed_target", downed_target, false ); - optional( jo, was_loaded, "stunned_target", stunned_target, false ); - optional( jo, was_loaded, "defensive", defensive, false ); optional( jo, was_loaded, "disarms", disarms, false ); optional( jo, was_loaded, "dummy", dummy, false ); @@ -340,7 +337,7 @@ class ma_buff_effect_type : public effect_type int_decay_step = -1; int_decay_tick = 1; int_dur_factor = 0_turns; - name.push_back( translation( buff.name ) ); + name.push_back( buff.name ); desc.push_back( buff.description ); rating = e_good; } @@ -358,7 +355,7 @@ void finialize_martial_arts() } } -std::string martialart_difficulty( matype_id mstyle ) +const std::string martialart_difficulty( matype_id mstyle ) { std::string diff; if( mstyle->learn_difficulty <= 2 ) { @@ -491,10 +488,6 @@ ma_technique::ma_technique() dodge_counter = false; // like tec_grab block_counter = false; // like tec_counter - // conditional - downed_target = false; // only works on downed enemies - stunned_target = false; // only works on stunned enemies - miss_recovery = false; // allows free recovery from misses, like tec_feint grab_break = false; // allows grab_breaks, like tec_break } @@ -1058,6 +1051,7 @@ bool player::can_autolearn( const matype_id &ma_id ) const return false; } + for( const std::pair &elem : ma_id.obj().autolearn_skills ) { const skill_id skill_req( elem.first ); const int required_level = elem.second; @@ -1131,14 +1125,6 @@ std::string ma_technique::get_description() const dump << _( "* Will only activate on a crit" ) << std::endl; } - if( downed_target ) { - dump << _( "* Only works on a downed target" ) << std::endl; - } - - if( stunned_target ) { - dump << _( "* Only works on a stunned target" ) << std::endl; - } - if( dodge_counter ) { dump << _( "* Will counterattack when you dodge" ) << std::endl; } @@ -1272,8 +1258,8 @@ bool ma_style_callback::key( const input_context &ctxt, const input_event &event } 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 ) ); + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); std::string text = replace_colors( buffer.str() ); int width = FULL_SCREEN_WIDTH - 4; diff --git a/src/martialarts.h b/src/martialarts.h index 5663e7f79c508..0b2ab40e3bcff 100644 --- a/src/martialarts.h +++ b/src/martialarts.h @@ -105,10 +105,6 @@ class ma_technique int weighting; //how often this technique is used - // conditional - bool downed_target; // only works on downed enemies - bool stunned_target; // only works on stunned enemies - /** All kinds of bonuses by types to damage, hit etc. */ bonus_container bonuses; @@ -278,7 +274,7 @@ void load_martial_art( JsonObject &jo, const std::string &src ); void check_martialarts(); void clear_techniques_and_martial_arts(); void finialize_martial_arts(); -std::string martialart_difficulty( matype_id mstyle ); +const std::string martialart_difficulty( matype_id mstyle ); std::vector all_martialart_types(); std::vector autolearn_martialart_types(); diff --git a/src/mattack_common.h b/src/mattack_common.h index 3ebe4fe6526b7..7dfa5d0d7769b 100644 --- a/src/mattack_common.h +++ b/src/mattack_common.h @@ -45,9 +45,8 @@ struct mtype_special_attack { ~mtype_special_attack() = default; - mtype_special_attack &operator=( const mtype_special_attack &other ) { + void operator=( const mtype_special_attack &other ) { actor.reset( other.actor->clone() ); - return *this; } const mattack_actor &operator*() const { diff --git a/src/melee.cpp b/src/melee.cpp index ab608cbfd622f..71f9d85bf4432 100644 --- a/src/melee.cpp +++ b/src/melee.cpp @@ -26,7 +26,6 @@ #include "map_iterator.h" #include "martialarts.h" #include "messages.h" -#include "monattack.h" #include "monster.h" #include "mutation.h" #include "npc.h" @@ -80,7 +79,6 @@ const efftype_id effect_hit_by_player( "hit_by_player" ); const efftype_id effect_lightsnare( "lightsnare" ); const efftype_id effect_narcosis( "narcosis" ); const efftype_id effect_poison( "poison" ); -const efftype_id effect_riding( "riding" ); const efftype_id effect_stunned( "stunned" ); static const trait_id trait_CLAWS( "CLAWS" ); @@ -389,24 +387,7 @@ void player::melee_attack( Creature &t, bool allow_special, const matec_id &forc // TODO: Per-NPC tracking? Right now monster hit by either npc or player will draw aggro... t.add_effect( effect_hit_by_player, 10_minutes ); // Flag as attacked by us for AI } - if( is_mounted() ) { - auto mons = mounted_creature.get(); - if( mons->has_flag( MF_RIDEABLE_MECH ) ) { - if( !mons->check_mech_powered() ) { - add_msg( m_bad, _( "The %s has dead batteries and will not move its arms." ), mons->get_name() ); - return; - } - if( mons->type->has_special_attack( "SMASH" ) && one_in( 3 ) ) { - add_msg( m_info, _( "The %s hisses as its hydraulic arm pumps forward!" ), mons->get_name() ); - mattack::smash_specific( mons, &t ); - } else { - mons->use_mech_power( -2 ); - mons->melee_attack( t ); - } - mod_moves( -mons->type->attack_cost ); - return; - } - } + item &cur_weapon = allow_unarmed ? used_weapon() : weapon; const bool critical_hit = scored_crit( t.dodge_roll(), cur_weapon ); int move_cost = attack_speed( cur_weapon ); @@ -719,8 +700,7 @@ float player::get_dodge_base() const float player::get_dodge() const { //If we're asleep or busy we can't dodge - if( in_sleep_state() || has_effect( effect_narcosis ) || - has_effect( efftype_id( "winded" ) ) ) { + if( in_sleep_state() || has_effect( effect_narcosis ) ) { return 0.0f; } @@ -966,7 +946,7 @@ void player::roll_stab_damage( bool crit, damage_instance &di, bool average, if( has_trait( trait_CLAWS_ST ) ) { /** @EFFECT_UNARMED increases stabbing damage with CLAWS_ST */ - per_hand += 3 + unarmed_skill / 2.0; + per_hand += 3 + ( unarmed_skill / 2 ); } cut_dam += per_hand; // First hand @@ -1012,7 +992,6 @@ matec_id player::pick_technique( Creature &t, const item &weap, std::vector possible; bool downed = t.has_effect( effect_downed ); - bool stunned = t.has_effect( effect_stunned ); // first add non-aoe tecs for( auto &tec_id : all ) { @@ -1049,16 +1028,6 @@ matec_id player::pick_technique( Creature &t, const item &weap, continue; } - // don't apply "downed only" techniques to someone who's not downed - if( !downed && tec.downed_target ) { - continue; - } - - // don't apply "stunned only" techniques to someone who's not stunned - if( !stunned && tec.stunned_target ) { - continue; - } - // don't apply disarming techniques to someone without a weapon // TODO: these are the stat requirements for tec_disarm // dice( dex_cur + get_skill_level("unarmed"), 8) > @@ -1388,11 +1357,10 @@ item &player::best_shield() bool player::block_hit( Creature *source, body_part &bp_hit, damage_instance &dam ) { - // Shouldn't block if player is asleep or winded ; this only seems to be used by player. + // Shouldn't block if player is asleep; this only seems to be used by player. // TODO: It should probably be moved to the section that regenerates blocks // and to effects that disallow blocking - if( blocks_left < 1 || in_sleep_state() || has_effect( effect_narcosis ) || - has_effect( efftype_id( "winded" ) ) ) { + if( blocks_left < 1 || in_sleep_state() ) { return false; } blocks_left--; diff --git a/src/messages.cpp b/src/messages.cpp index 940485d47b590..02bcf95715737 100644 --- a/src/messages.cpp +++ b/src/messages.cpp @@ -5,10 +5,8 @@ #include "compatibility.h" // IWYU pragma: keep #include "debug.h" #include "game.h" -#include "ime.h" #include "input.h" #include "json.h" -#include "optional.h" #include "output.h" #include "string_formatter.h" #include "string_input_popup.h" @@ -400,7 +398,6 @@ static bool msg_type_from_name( game_message_type &type, const std::string &name namespace Messages { -// NOLINTNEXTLINE(cata-xy) class dialog { public: @@ -455,8 +452,6 @@ class dialog bool canceled; bool errored; - - cata::optional filter_sentry; }; } // namespace Messages @@ -475,7 +470,7 @@ void Messages::dialog::init() w_x = ( TERMX - w_width ) / 2; w_y = ( TERMY - w_height ) / 2; - w = catacurses::newwin( w_height, w_width, point( w_x, w_y ) ); + w = catacurses::newwin( w_height, w_width, w_y, w_x ); ctxt = input_context( "MESSAGE_LOG" ); ctxt.register_action( "UP", translate_marker( "Scroll up" ) ); @@ -507,7 +502,7 @@ void Messages::dialog::init() help_text = filter_help_text( w_fh_width - border_width * 2 ); w_fh_height = help_text.size() + border_width * 2; w_fh_y = w_y + w_height - w_fh_height; - w_filter_help = catacurses::newwin( w_fh_height, w_fh_width, point( w_fh_x, w_fh_y ) ); + w_filter_help = catacurses::newwin( w_fh_height, w_fh_width, w_fh_y, w_fh_x ); // Initialize filter input filter.window( w_filter_help, border_width + 2, w_fh_height - 1, w_fh_width - border_width - 2 ); @@ -596,11 +591,11 @@ void Messages::dialog::show() if( printing_range ) { const size_t last_line = log_from_top ? line - 1 : line + 1; wattron( w, bracket_color ); - mvwaddch( w, point( border_width + time_width - 1, border_width + last_line ), LINE_XOXO ); + mvwaddch( w, border_width + last_line, border_width + time_width - 1, LINE_XOXO ); wattroff( w, bracket_color ); } wattron( w, bracket_color ); - mvwaddch( w, point( border_width + time_width - 1, border_width + line ), + mvwaddch( w, border_width + line, border_width + time_width - 1, log_from_top ? LINE_XXOO : LINE_OXXO ); wattroff( w, bracket_color ); printing_range = true; @@ -685,9 +680,6 @@ void Messages::dialog::input() filter.query( false ); if( filter.confirmed() || filter.canceled() ) { filtering = false; - if( filter_sentry ) { - disable_ime(); - } } if( !filter.canceled() ) { const std::string &new_filter_str = filter.text(); @@ -721,13 +713,11 @@ void Messages::dialog::input() } } else if( action == "FILTER" ) { filtering = true; - if( filter_sentry ) { - enable_ime(); - } else { - // this implies enable_ime() and ensures that the ime mode is always - // restored when closing the dialog if at least filtered once - filter_sentry.emplace(); +#if defined(__ANDROID__) + if( get_option( "ANDROID_AUTO_KEYBOARD" ) ) { + SDL_StartTextInput(); } +#endif } else if( action == "RESET_FILTER" ) { filter_str.clear(); filter.text( filter_str ); diff --git a/src/mission.cpp b/src/mission.cpp index e468bf5695a6f..e0173e3bc846b 100644 --- a/src/mission.cpp +++ b/src/mission.cpp @@ -54,11 +54,6 @@ mission mission_type::create( const int npc_id ) const return ret; } -std::string mission_type::tname() const -{ - return _( name ); -} - static std::unordered_map world_missions; mission *mission::reserve_new( const mission_type_id &type, const int npc_id ) @@ -183,21 +178,6 @@ void mission::on_creature_death( Creature &poor_dead_dude ) } } -void mission::on_talk_with_npc( const int npc_id ) -{ - switch( type->goal ) { - case MGOAL_TALK_TO_NPC: - // If our goal is to talk to this npc, and we haven't yet completed a step for this - // mission, then complete a step. - if( npc_id == target_npc_id && step == 0 ) { - step_complete( 1 ); - } - break; - default: - break; - } -} - mission *mission::reserve_random( const mission_origin origin, const tripoint &p, const int npc_id ) { const auto type = mission_type::get_random_id( origin, p ); @@ -261,7 +241,6 @@ void mission::step_complete( const int _step ) case MGOAL_ASSASSINATE: case MGOAL_KILL_MONSTER: case MGOAL_COMPUTER_TOGGLE: - case MGOAL_TALK_TO_NPC: // Go back and report. set_target_to_mission_giver(); break; @@ -421,7 +400,6 @@ bool mission::is_complete( const int _npc_id ) const case MGOAL_FIND_NPC: return npc_id == _npc_id; - case MGOAL_TALK_TO_NPC: case MGOAL_ASSASSINATE: case MGOAL_KILL_MONSTER: case MGOAL_COMPUTER_TOGGLE: @@ -433,30 +411,6 @@ bool mission::is_complete( const int _npc_id ) const case MGOAL_KILL_MONSTER_SPEC: return g->kill_count( monster_species ) >= kill_count_to_reach; - case MGOAL_CONDITION: { - // For now, we only allow completing when talking to the mission originator. - if( npc_id != _npc_id ) { - return false; - } - - npc *n = g->find_npc( _npc_id ); - if( n == nullptr ) { - return false; - } - - mission_goal_condition_context cc; - cc.alpha = &u; - cc.beta = n; - - for( auto &mission : n->chatbin.missions_assigned ) { - if( mission->get_assigned_player_id() == g->u.getID() ) { - cc.missions_assigned.push_back( mission ); - } - } - - return type->test_goal_condition( cc ); - } - default: return false; } @@ -516,7 +470,7 @@ time_point mission::get_deadline() const std::string mission::get_description() const { - return _( type->description ); + return description; } bool mission::has_target() const @@ -627,7 +581,7 @@ std::string mission::name() if( type == nullptr ) { return "NULL"; } - return type->tname(); + return _( type->name ); } mission_type_id mission::mission_id() @@ -638,6 +592,42 @@ mission_type_id mission::mission_id() return type->id; } +void mission::load_info( std::istream &data ) +{ + int type_id = 0; + int rewtype = 0; + int reward_id = 0; + int rew_skill = 0; + int tmpfollow = 0; + int item_num = 0; + int target_npc_id = 0; + int deadline_ = 0; + std::string rew_item; + std::string itemid; + data >> type_id; + type = mission_type::get( mission_type::from_legacy( type_id ) ); + std::string tmpdesc; + do { + data >> tmpdesc; + if( tmpdesc != "<>" ) { + description += tmpdesc + " "; + } + } while( tmpdesc != "<>" ); + description = description.substr( 0, description.size() - 1 ); // Ending ' ' + bool failed; // Dummy, no one has saves this old + data >> failed >> value >> rewtype >> reward_id >> rew_item >> rew_skill >> + uid >> target.x >> target.y >> itemid >> item_num >> deadline_ >> npc_id >> + good_fac_id >> bad_fac_id >> step >> tmpfollow >> target_npc_id; + deadline = time_point::from_turn( deadline_ ); + target.z = 0; + follow_up = mission_type::from_legacy( tmpfollow ); + reward.type = static_cast( reward_id ); + reward.item_id = itype_id( rew_item ); + reward.skill = Skill::from_legacy_int( rew_skill ); + item_id = itype_id( itemid ); + item_count = static_cast( item_num ); +} + std::string mission::dialogue_for_topic( const std::string &in_topic ) const { // The internal keys are pretty ugly, it's better to translate them here than globally @@ -717,7 +707,7 @@ mission::mission_status string_to_enum( const std::stri } template<> -std::string enum_to_string( mission::mission_status data ) +const std::string enum_to_string( mission::mission_status data ) { const auto iter = std::find_if( status_map.begin(), status_map.end(), [data]( const std::pair &pr ) { @@ -737,7 +727,7 @@ mission::mission_status mission::status_from_string( const std::string &s ) return io::string_to_enum( s ); } -std::string mission::status_to_string( mission::mission_status st ) +const std::string mission::status_to_string( mission::mission_status st ) { return io::enum_to_string( st ); } diff --git a/src/mission.h b/src/mission.h index 8ef9d6b72f47d..1f8ee27149158 100644 --- a/src/mission.h +++ b/src/mission.h @@ -66,8 +66,6 @@ enum mission_goal { MGOAL_RECRUIT_NPC_CLASS, // Recruit an NPC class MGOAL_COMPUTER_TOGGLE, // Activating the correct terminal will complete the mission MGOAL_KILL_MONSTER_SPEC, // Kill a number of monsters from a given species - MGOAL_TALK_TO_NPC, // Talk to a given NPC - MGOAL_CONDITION, // Satisfy the dynamically created condition and talk to the mission giver NUM_MGOAL }; const std::unordered_map mission_goal_strs = { { @@ -85,9 +83,7 @@ const std::unordered_map mission_goal_strs = { { { "MGOAL_RECRUIT_NPC", MGOAL_RECRUIT_NPC }, { "MGOAL_RECRUIT_NPC_CLASS", MGOAL_RECRUIT_NPC_CLASS }, { "MGOAL_COMPUTER_TOGGLE", MGOAL_COMPUTER_TOGGLE }, - { "MGOAL_KILL_MONSTER_SPEC", MGOAL_KILL_MONSTER_SPEC }, - { "MGOAL_TALK_TO_NPC", MGOAL_TALK_TO_NPC }, - { "MGOAL_CONDITION", MGOAL_CONDITION } + { "MGOAL_KILL_MONSTER_SPEC", MGOAL_KILL_MONSTER_SPEC } } }; @@ -190,106 +186,83 @@ bool set_update_mapgen( JsonObject &jo, std::vector> &funcs ); } // namespace mission_util -struct mission_goal_condition_context { - mission_goal_condition_context() = default; - player *alpha = nullptr; - npc *beta = nullptr; - std::vector missions_assigned; - mutable std::string reason; - bool by_radio = false; -}; - struct mission_type { - public: - // Matches it to a mission_type_id above - mission_type_id id = mission_type_id( "MISSION_NULL" ); - bool was_loaded = false; - private: - // The untranslated name of the mission - std::string name = translate_marker( "Bugged mission type" ); - public: - std::string description = ""; - // The basic goal type - mission_goal goal; - // Difficulty; TODO: come up with a scale - int difficulty = 0; - // Value; determines rewards and such - int value = 0; - // Low and high deadlines - time_duration deadline_low = 0_turns; - time_duration deadline_high = 0_turns; - // If true, the NPC will press this mission! - bool urgent = false; - - // Points of origin - std::vector origins; - itype_id item_id = "null"; - Group_tag group_id = "null"; - itype_id container_id = "null"; - bool remove_container = false; - itype_id empty_container = "null"; - int item_count = 1; - npc_class_id recruit_class = npc_class_id( "NC_NONE" ); // The type of NPC you are to recruit - int target_npc_id = -1; - mtype_id monster_type = mtype_id::NULL_ID(); - species_id monster_species; - int monster_kill_goal = -1; - string_id target_id; - mission_type_id follow_up = mission_type_id( "MISSION_NULL" ); - - std::function place = mission_place::always; - std::function start = mission_start::standard; - std::function end = mission_end::standard; - std::function fail = mission_fail::standard; - - std::map dialogue; - - // A dynamic goal condition invoked by MGOAL_CONDITION. - std::function goal_condition; - - mission_type() = default; - mission_type( mission_type_id ID, const std::string &NAME, mission_goal GOAL, int DIF, int VAL, - bool URGENT, - std::function PLACE, - std::function START, - std::function END, - std::function FAIL ); - - mission create( int npc_id ) const; - - /** - * Get the mission_type object of the given id. Returns null if the input is invalid! - */ - static const mission_type *get( const mission_type_id &id ); - /** - * Converts the legacy int id to a string_id. - */ - static mission_type_id from_legacy( int old_id ); - /** - * Returns a random id of a mission type that can be started at the defined origin - * around tripoint p, see @ref mission_start. - * Returns @ref MISSION_NULL if no suitable type could be found. - */ - static mission_type_id get_random_id( mission_origin origin, const tripoint &p ); - /** - * Get all mission types at once. - */ - static const std::vector &get_all(); - - bool test_goal_condition( const mission_goal_condition_context &d ) const; - - static void reset(); - static void load_mission_type( JsonObject &jo, const std::string &src ); - static void finalize(); - static void check_consistency(); - - bool parse_funcs( JsonObject &jo, std::function &phase_func ); - void load( JsonObject &jo, const std::string &src ); - - /** - * Returns the translated name - */ - std::string tname() const; + // Matches it to a mission_type_id above + mission_type_id id = mission_type_id( "MISSION_NULL" ); + bool was_loaded = false; + // The name the mission is given in menus + std::string name = "Bugged mission type"; + // The basic goal type + mission_goal goal; + // Difficulty; TODO: come up with a scale + int difficulty = 0; + // Value; determines rewards and such + int value = 0; + // Low and high deadlines + time_duration deadline_low = 0_turns; + time_duration deadline_high = 0_turns; + // If true, the NPC will press this mission! + bool urgent = false; + + // Points of origin + std::vector origins; + itype_id item_id = "null"; + Group_tag group_id = "null"; + itype_id container_id = "null"; + bool remove_container = false; + itype_id empty_container = "null"; + int item_count = 1; + npc_class_id recruit_class = npc_class_id( "NC_NONE" ); // The type of NPC you are to recruit + int target_npc_id = -1; + mtype_id monster_type = mtype_id::NULL_ID(); + species_id monster_species; + int monster_kill_goal = -1; + string_id target_id; + mission_type_id follow_up = mission_type_id( "MISSION_NULL" ); + + std::function place = mission_place::always; + std::function start = mission_start::standard; + std::function end = mission_end::standard; + std::function fail = mission_fail::standard; + + std::map dialogue; + + mission_type() = default; + mission_type( mission_type_id ID, const std::string &NAME, mission_goal GOAL, int DIF, int VAL, + bool URGENT, + std::function PLACE, + std::function START, + std::function END, + std::function FAIL ); + + mission create( int npc_id ) const; + + /** + * Get the mission_type object of the given id. Returns null if the input is invalid! + */ + static const mission_type *get( const mission_type_id &id ); + /** + * Converts the legacy int id to a string_id. + */ + static mission_type_id from_legacy( int old_id ); + /** + * Returns a random id of a mission type that can be started at the defined origin + * around tripoint p, see @ref mission_start. + * Returns @ref MISSION_NULL if no suitable type could be found. + */ + static mission_type_id get_random_id( mission_origin origin, const tripoint &p ); + /** + * Get all mission types at once. + */ + static const std::vector &get_all(); + + static void reset(); + static void load_mission_type( JsonObject &jo, const std::string &src ); + static void finalize(); + static void check_consistency(); + + bool parse_funcs( JsonObject &jo, std::function &phase_func ); + void load( JsonObject &jo, const std::string &src ); }; class mission @@ -309,6 +282,8 @@ class mission friend class debug_menu::mission_debug; const mission_type *type; + // Basic descriptive text + std::string description; mission_status status; // Cash/Favor value of completing this unsigned int value; @@ -406,8 +381,6 @@ class mission bool in_progress() const; /** Processes this mission. */ void process(); - /** Called when the player talks with an NPC. May resolve mission goals, e.g. MGOAL_TALK_TO_NPC. */ - void on_talk_with_npc( const int npc_id ); // TODO: Give topics a string_id std::string dialogue_for_topic( const std::string &topic ) const; @@ -451,13 +424,15 @@ class mission static void add_existing( const mission &m ); static mission_status status_from_string( const std::string &s ); - static std::string status_to_string( mission_status st ); + static const std::string status_to_string( mission_status st ); /** Used to handle saves from before player_id was a member of mission */ void set_player_id_legacy_0c( int id ); private: bool legacy_no_player_id = false; + // Don't use this, it's only for loading legacy saves. + void load_info( std::istream &info ); void set_target_to_mission_giver(); diff --git a/src/mission_companion.cpp b/src/mission_companion.cpp index 651affc025a73..d6a9a6adde8b9 100644 --- a/src/mission_companion.cpp +++ b/src/mission_companion.cpp @@ -378,14 +378,13 @@ bool talk_function::display_and_choose_opts( mission_data &mission_key, const tr camp_tab_mode tab_mode = TAB_MAIN; - size_t part_y = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 4 : 0; - size_t part_x = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 4 : 0; + size_t part_y = ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 4 : 0; + size_t part_x = ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 4 : 0; size_t maxy = part_y ? TERMY - 2 * part_y : FULL_SCREEN_HEIGHT; size_t maxx = part_x ? TERMX - 2 * part_x : FULL_SCREEN_WIDTH; - catacurses::window w_list = catacurses::newwin( maxy, maxx, point( part_x, - part_y + TITLE_TAB_HEIGHT ) ); - catacurses::window w_tabs = catacurses::newwin( TITLE_TAB_HEIGHT, maxx, point( part_x, part_y ) ); + catacurses::window w_list = catacurses::newwin( maxy, maxx, part_y + TITLE_TAB_HEIGHT, part_x ); + catacurses::window w_tabs = catacurses::newwin( TITLE_TAB_HEIGHT, maxx, part_y, part_x ); size_t sel = 0; int offset = 0; @@ -400,7 +399,7 @@ bool talk_function::display_and_choose_opts( mission_data &mission_key, const tr std::vector mission_text; catacurses::window w_info = catacurses::newwin( info_height, info_width, - point( part_x + MAX_FAC_NAME_SIZE, part_y + TITLE_TAB_HEIGHT + 1 ) ); + part_y + TITLE_TAB_HEIGHT + 1, part_x + MAX_FAC_NAME_SIZE ); input_context ctxt( "FACTIONS" ); ctxt.register_action( "UP", translate_marker( "Move cursor up" ) ); @@ -895,7 +894,7 @@ void talk_function::field_build_1( npc &p ) const tripoint site = overmap_buffer.find_closest( g->u.global_omt_location(), "ranch_camp_63", 20, false ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_ter( t_dirt, 5, 4, 15, 14 ); bay.draw_square_ter( t_dirtmound, 6, 5, 6, 13 ); bay.draw_square_ter( t_dirtmound, 8, 5, 8, 13 ); @@ -919,7 +918,7 @@ void talk_function::field_build_2( npc &p ) const tripoint site = overmap_buffer.find_closest( g->u.global_omt_location(), "ranch_camp_63", 20, false ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_ter( t_fence, 4, 3, 16, 3 ); bay.draw_square_ter( t_fence, 4, 15, 16, 15 ); bay.draw_square_ter( t_fence, 4, 3, 4, 15 ); @@ -976,7 +975,7 @@ void talk_function::field_plant( npc &p, const std::string &place ) const tripoint site = overmap_buffer.find_closest( g->u.global_omt_location(), place, 20, false ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); for( int x = 0; x < SEEX * 2 - 1; x++ ) { for( int y = 0; y < SEEY * 2 - 1; y++ ) { if( bay.ter( x, y ) == t_dirtmound ) { @@ -1017,7 +1016,7 @@ void talk_function::field_plant( npc &p, const std::string &place ) } used_seed.front().set_age( 0_turns ); bay.add_item_or_charges( x, y, used_seed.front() ); - bay.set( point( x, y ), t_dirt, f_plant_seed ); + bay.set( x, y, t_dirt, f_plant_seed ); limiting_number--; } } @@ -1038,7 +1037,7 @@ void talk_function::field_harvest( npc &p, const std::string &place ) std::vector seed_types; std::vector plant_types; std::vector plant_names; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); for( int x = 0; x < SEEX * 2 - 1; x++ ) { for( int y = 0; y < SEEY * 2 - 1; y++ ) { if( bay.furn( x, y ) == furn_str_id( "f_plant_harvest" ) && !bay.i_at( x, y ).empty() ) { @@ -1102,8 +1101,8 @@ void talk_function::field_harvest( npc &p, const std::string &place ) if( tmp.typeId() == plant_types[plant_index] ) { number_plots++; bay.i_clear( x, y ); - bay.furn_set( point( x, y ), f_null ); - bay.ter_set( point( x, y ), t_dirtmound ); + bay.furn_set( x, y, f_null ); + bay.ter_set( x, y, t_dirtmound ); int plantCount = rng( skillLevel / 2, skillLevel ); if( plantCount >= 9 ) { plantCount = 9; @@ -1477,7 +1476,7 @@ bool talk_function::companion_om_combat_check( const std::vector &group } tinymap target_bay; - target_bay.load( tripoint( om_tgt.x * 2, om_tgt.y * 2, om_tgt.z ), false ); + target_bay.load( om_tgt.x * 2, om_tgt.y * 2, om_tgt.z, false ); std::vector< monster * > monsters_around; for( int x = 0; x < 2; x++ ) { for( int y = 0; y < 2; y++ ) { @@ -1485,8 +1484,7 @@ bool talk_function::companion_om_combat_check( const std::vector &group const point omp = sm_to_om_remain( sm ); overmap &omi = overmap_buffer.get( omp ); - const tripoint current_submap_loc( tripoint( 2 * om_tgt.x, 2 * om_tgt.y, om_tgt.z ) + point( x, - y ) ); + const tripoint current_submap_loc( om_tgt.x * 2 + x, om_tgt.y * 2 + y, om_tgt.z ); auto monster_bucket = omi.monster_map.equal_range( current_submap_loc ); std::for_each( monster_bucket.first, monster_bucket.second, [&]( std::pair &monster_entry ) { @@ -2022,7 +2020,7 @@ void talk_function::loot_building( const tripoint &site ) { tinymap bay; tripoint p; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); for( int x = 0; x < SEEX * 2 - 1; x++ ) { for( int y = 0; y < SEEY * 2 - 1; y++ ) { p.x = x; @@ -2034,20 +2032,20 @@ void talk_function::loot_building( const tripoint &site ) || t == t_door_boarded || t == t_door_boarded_damaged || t == t_rdoor_boarded || t == t_rdoor_boarded_damaged || t == t_door_boarded_peep || t == t_door_boarded_damaged_peep ) { - bay.ter_set( point( x, y ), t_door_o ); + bay.ter_set( x, y, t_door_o ); } else if( t == t_door_locked || t == t_door_locked_peep || t == t_door_locked_alarm ) { const map_bash_info &bash = bay.ter( x, y ).obj().bash; - bay.ter_set( point( x, y ), bash.ter_set ); + bay.ter_set( x, y, bash.ter_set ); bay.spawn_items( p, item_group::items_from( bash.drop_group, calendar::turn ) ); } else if( t == t_door_metal_c || t == t_door_metal_locked || t == t_door_metal_pickable ) { - bay.ter_set( point( x, y ), t_door_metal_o ); + bay.ter_set( x, y, t_door_metal_o ); } else if( t == t_door_glass_c ) { - bay.ter_set( point( x, y ), t_door_glass_o ); + bay.ter_set( x, y, t_door_glass_o ); } else if( t == t_wall && one_in( 25 ) ) { const map_bash_info &bash = bay.ter( x, y ).obj().bash; - bay.ter_set( point( x, y ), bash.ter_set ); + bay.ter_set( x, y, bash.ter_set ); bay.spawn_items( p, item_group::items_from( bash.drop_group, calendar::turn ) ); bay.collapse_at( p, false ); } @@ -2059,16 +2057,16 @@ void talk_function::loot_building( const tripoint &site ) t == t_window_no_curtains || t == t_window_no_curtains_taped ) && one_in( 4 ) ) { const map_bash_info &bash = bay.ter( x, y ).obj().bash; - bay.ter_set( point( x, y ), bash.ter_set ); + bay.ter_set( x, y, bash.ter_set ); bay.spawn_items( p, item_group::items_from( bash.drop_group, calendar::turn ) ); } else if( ( t == t_wall_glass || t == t_wall_glass_alarm ) && one_in( 3 ) ) { const map_bash_info &bash = bay.ter( x, y ).obj().bash; - bay.ter_set( point( x, y ), bash.ter_set ); + bay.ter_set( x, y, bash.ter_set ); bay.spawn_items( p, item_group::items_from( bash.drop_group, calendar::turn ) ); } else if( bay.has_furn( x, y ) && bay.furn( x, y ).obj().bash.str_max != -1 && one_in( 10 ) ) { const map_bash_info &bash = bay.furn( x, y ).obj().bash; - bay.furn_set( point( x, y ), bash.furn_set ); + bay.furn_set( x, y, bash.furn_set ); bay.delete_signage( p ); bay.spawn_items( p, item_group::items_from( bash.drop_group, calendar::turn ) ); } diff --git a/src/mission_start.cpp b/src/mission_start.cpp index 21df804ab6ad5..50b1b69c1bd8e 100644 --- a/src/mission_start.cpp +++ b/src/mission_start.cpp @@ -63,7 +63,7 @@ void mission_start::place_dog( mission *miss ) overmap_buffer.reveal( house, 6 ); tinymap doghouse; - doghouse.load( tripoint( house.x * 2, house.y * 2, house.z ), false ); + doghouse.load( house.x * 2, house.y * 2, house.z, false ); doghouse.add_spawn( mon_dog, 1, SEEX, SEEY, true, -1, miss->uid ); doghouse.save(); } @@ -76,7 +76,7 @@ void mission_start::place_zombie_mom( mission *miss ) overmap_buffer.reveal( house, 6 ); tinymap zomhouse; - zomhouse.load( tripoint( house.x * 2, house.y * 2, house.z ), false ); + zomhouse.load( house.x * 2, house.y * 2, house.z, false ); zomhouse.add_spawn( mon_zombie, 1, SEEX, SEEY, false, -1, miss->uid, Name::get( nameIsFemaleName | nameIsGivenName ) ); zomhouse.save(); @@ -106,7 +106,7 @@ void mission_start::kill_horde_master( mission *miss ) miss->target = site; overmap_buffer.reveal( site, 6 ); tinymap tile; - tile.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + tile.load( site.x * 2, site.y * 2, site.z, false ); tile.add_spawn( mon_zombie_master, 1, SEEX, SEEY, false, -1, miss->uid, _( "Demonic Soul" ) ); tile.add_spawn( mon_zombie_brute, 3, SEEX, SEEY ); tile.add_spawn( mon_zombie_dog, 3, SEEX, SEEY ); @@ -128,31 +128,24 @@ void mission_start::kill_horde_master( mission *miss ) * Find a location to place a computer. In order, prefer: * 1) Broken consoles. * 2) Corners or coords adjacent to a bed/dresser? (this logic may be flawed, dates from Whales in 2011) - * 3) A spot near the center of the tile that is not a console - * 4) A random spot near the center of the tile. + * 3) A random spot near the center of the tile. */ static tripoint find_potential_computer_point( const tinymap &compmap, int z ) { - constexpr int rng_x_min = 10; - constexpr int rng_x_max = SEEX * 2 - 11; - constexpr int rng_y_min = 10; - constexpr int rng_y_max = SEEY * 2 - 11; - static_assert( rng_x_min <= rng_x_max && rng_y_min <= rng_y_max, "invalid randomization range" ); std::vector broken; std::vector potential; - std::vector last_resort; for( int x = 0; x < SEEX * 2; x++ ) { for( int y = 0; y < SEEY * 2; y++ ) { if( compmap.ter( x, y ) == t_console_broken ) { - broken.emplace_back( x, y, z ); - } else if( broken.empty() && compmap.ter( x, y ) == t_floor && compmap.furn( x, y ) == f_null ) { + broken.push_back( tripoint( x, y, z ) ); + } else if( compmap.ter( x, y ) == t_floor && compmap.furn( x, y ) == f_null ) { bool okay = false; int wall = 0; for( int x2 = x - 1; x2 <= x + 1 && !okay; x2++ ) { for( int y2 = y - 1; y2 <= y + 1 && !okay; y2++ ) { if( compmap.furn( x2, y2 ) == f_bed || compmap.furn( x2, y2 ) == f_dresser ) { okay = true; - potential.emplace_back( x, y, z ); + potential.push_back( tripoint( x, y, z ) ); } if( compmap.has_flag_ter( "WALL", x2, y2 ) ) { wall++; @@ -164,25 +157,14 @@ static tripoint find_potential_computer_point( const tinymap &compmap, int z ) compmap.is_last_ter_wall( true, x, y, SEEX * 2, SEEY * 2, SOUTH ) && compmap.is_last_ter_wall( true, x, y, SEEX * 2, SEEY * 2, WEST ) && compmap.is_last_ter_wall( true, x, y, SEEX * 2, SEEY * 2, EAST ) ) { - potential.emplace_back( x, y, z ); + potential.push_back( tripoint( x, y, z ) ); } } - } else if( broken.empty() && potential.empty() && x >= rng_x_min && x <= rng_x_max - && y >= rng_y_min && y <= rng_y_max && compmap.ter( x, y ) != t_console ) { - last_resort.emplace_back( x, y, z ); } } } - std::vector *used = &broken; - if( used->empty() ) { - used = &potential; - } - if( used->empty() ) { - used = &last_resort; - } - // if there's no possible location, then we have to overwrite an existing console... - const tripoint fallback( rng( rng_x_min, rng_x_max ), rng( rng_y_min, rng_y_max ), z ); - return random_entry( *used, fallback ); + const tripoint fallback( rng( 10, SEEX * 2 - 11 ), rng( 10, SEEY * 2 - 11 ), z ); + return random_entry( !broken.empty() ? broken : potential, fallback ); } void mission_start::place_npc_software( mission *miss ) @@ -219,7 +201,7 @@ void mission_start::place_npc_software( mission *miss ) overmap_buffer.reveal( place, 6 ); tinymap compmap; - compmap.load( tripoint( place.x * 2, place.y * 2, place.z ), false ); + compmap.load( place.x * 2, place.y * 2, place.z, false ); tripoint comppoint; oter_id oter = overmap_buffer.ter( place ); @@ -242,7 +224,7 @@ void mission_start::place_priest_diary( mission *miss ) miss->target = place; overmap_buffer.reveal( place, 2 ); tinymap compmap; - compmap.load( tripoint( place.x * 2, place.y * 2, place.z ), false ); + compmap.load( place.x * 2, place.y * 2, place.z, false ); std::vector valid; for( int x = 0; x < SEEX * 2; x++ ) { @@ -282,7 +264,7 @@ void mission_start::place_deposit_box( mission *miss ) overmap_buffer.reveal( site, 2 ); tinymap compmap; - compmap.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + compmap.load( site.x * 2, site.y * 2, site.z, false ); std::vector valid; for( int x = 0; x < SEEX * 2; x++ ) { for( int y = 0; y < SEEY * 2; y++ ) { @@ -341,16 +323,16 @@ void mission_start::find_safety( mission *miss ) // Couldn't find safety; so just set the target to far away switch( rng( 0, 3 ) ) { case 0: - miss->target = place + point( -20, -20 ); + miss->target = tripoint( place.x - 20, place.y - 20, place.z ); break; case 1: - miss->target = place + point( -20, 20 ); + miss->target = tripoint( place.x - 20, place.y + 20, place.z ); break; case 2: - miss->target = place + point( 20, -20 ); + miss->target = tripoint( place.x + 20, place.y - 20, place.z ); break; case 3: - miss->target = place + point( 20, 20 ); + miss->target = tripoint( place.x + 20, place.y + 20, place.z ); break; } } @@ -362,7 +344,7 @@ void mission_start::ranch_nurse_1( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_furn( f_rack, 16, 9, 17, 9 ); bay.spawn_item( 16, 9, "bandages", rng( 1, 3 ) ); bay.spawn_item( 17, 9, "aspirin", rng( 1, 2 ) ); @@ -374,7 +356,7 @@ void mission_start::ranch_nurse_2( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_furn( f_counter, 3, 7, 5, 7 ); bay.draw_square_furn( f_rack, 8, 4, 8, 5 ); bay.spawn_item( 8, 4, "manual_first_aid" ); @@ -386,14 +368,14 @@ void mission_start::ranch_nurse_3( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_50", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_ter( t_dirt, 2, 16, 9, 23 ); bay.draw_square_ter( t_dirt, 13, 16, 20, 23 ); bay.draw_square_ter( t_dirt, 10, 17, 12, 23 ); bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_ter( t_dirt, 2, 0, 20, 2 ); bay.draw_square_ter( t_dirt, 10, 3, 12, 4 ); bay.save(); @@ -404,26 +386,26 @@ void mission_start::ranch_nurse_4( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_50", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_ter( t_wall_half, 2, 16, 9, 23 ); bay.draw_square_ter( t_dirt, 3, 17, 8, 22 ); bay.draw_square_ter( t_wall_half, 13, 16, 20, 23 ); bay.draw_square_ter( t_dirt, 14, 17, 19, 22 ); bay.draw_square_ter( t_wall_half, 10, 17, 12, 23 ); bay.draw_square_ter( t_dirt, 10, 18, 12, 23 ); - bay.ter_set( point( 9, 19 ), t_door_frame ); - bay.ter_set( point( 13, 19 ), t_door_frame ); + bay.ter_set( 9, 19, t_door_frame ); + bay.ter_set( 13, 19, t_door_frame ); bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_ter( t_wall_half, 4, 0, 18, 2 ); bay.draw_square_ter( t_wall_half, 10, 3, 12, 4 ); bay.draw_square_ter( t_dirt, 5, 0, 8, 2 ); bay.draw_square_ter( t_dirt, 10, 0, 12, 4 ); bay.draw_square_ter( t_dirt, 14, 0, 17, 2 ); - bay.ter_set( point( 9, 1 ), t_door_frame ); - bay.ter_set( point( 13, 1 ), t_door_frame ); + bay.ter_set( 9, 1, t_door_frame ); + bay.ter_set( 13, 1, t_door_frame ); bay.save(); } @@ -432,17 +414,17 @@ void mission_start::ranch_nurse_5( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_50", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_wall_half, t_wall_wood ); - bay.ter_set( point( 2, 21 ), t_window_frame ); - bay.ter_set( point( 2, 18 ), t_window_frame ); - bay.ter_set( point( 20, 18 ), t_window_frame ); - bay.ter_set( point( 20, 21 ), t_window_frame ); - bay.ter_set( point( 11, 17 ), t_window_frame ); + bay.ter_set( 2, 21, t_window_frame ); + bay.ter_set( 2, 18, t_window_frame ); + bay.ter_set( 20, 18, t_window_frame ); + bay.ter_set( 20, 21, t_window_frame ); + bay.ter_set( 11, 17, t_window_frame ); bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_wall_half, t_wall_wood ); bay.draw_square_ter( t_dirt, 10, 0, 12, 4 ); bay.save(); @@ -453,7 +435,7 @@ void mission_start::ranch_nurse_6( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_50", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_window_frame, t_window_boarded_noglass ); bay.translate( t_door_frame, t_door_c ); bay.draw_square_ter( t_dirtfloor, 3, 17, 8, 22 ); @@ -462,7 +444,7 @@ void mission_start::ranch_nurse_6( mission *miss ) bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_door_frame, t_door_c ); bay.draw_square_ter( t_dirtfloor, 5, 0, 8, 2 ); bay.draw_square_ter( t_dirtfloor, 10, 0, 12, 4 ); @@ -475,12 +457,12 @@ void mission_start::ranch_nurse_7( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_50", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_dirtfloor, t_floor ); bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_dirtfloor, t_floor ); bay.draw_square_ter( t_floor, 10, 5, 12, 5 ); bay.draw_square_furn( f_rack, 17, 0, 17, 2 ); @@ -492,7 +474,7 @@ void mission_start::ranch_nurse_8( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_50", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_furn( f_makeshift_bed, 4, 21, 4, 22 ); bay.draw_square_furn( f_makeshift_bed, 7, 21, 7, 22 ); bay.draw_square_furn( f_makeshift_bed, 15, 21, 15, 22 ); @@ -504,7 +486,7 @@ void mission_start::ranch_nurse_8( mission *miss ) bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_59", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_dirtfloor, t_floor ); bay.place_items( "cleaning", 75, 17, 0, 17, 2, true, 0 ); bay.place_items( "surgery", 75, 15, 4, 18, 4, true, 0 ); @@ -516,15 +498,15 @@ void mission_start::ranch_nurse_9( mission *miss ) //Improvements to clinic... tripoint site = mission_util::target_om_ter_random( "ranch_camp_50", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); - bay.furn_set( point( 3, 22 ), f_dresser ); - bay.furn_set( point( 8, 22 ), f_dresser ); - bay.furn_set( point( 14, 22 ), f_dresser ); - bay.furn_set( point( 19, 22 ), f_dresser ); - bay.furn_set( point( 3, 17 ), f_dresser ); - bay.furn_set( point( 8, 17 ), f_dresser ); - bay.furn_set( point( 14, 17 ), f_dresser ); - bay.furn_set( point( 19, 17 ), f_dresser ); + bay.load( site.x * 2, site.y * 2, site.z, false ); + bay.furn_set( 3, 22, f_dresser ); + bay.furn_set( 8, 22, f_dresser ); + bay.furn_set( 14, 22, f_dresser ); + bay.furn_set( 19, 22, f_dresser ); + bay.furn_set( 3, 17, f_dresser ); + bay.furn_set( 8, 17, f_dresser ); + bay.furn_set( 14, 17, f_dresser ); + bay.furn_set( 19, 17, f_dresser ); bay.place_npc( 16, 19, string_id( "ranch_doctor" ) ); bay.save(); @@ -535,14 +517,14 @@ void mission_start::ranch_scavenger_1( mission *miss ) { tripoint site = mission_util::target_om_ter_random( "ranch_camp_48", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.draw_square_ter( t_chainfence, 15, 13, 15, 22 ); bay.draw_square_ter( t_chainfence, 16, 13, 23, 13 ); bay.draw_square_ter( t_chainfence, 16, 22, 23, 22 ); bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_49", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.place_items( "mechanics", 65, 9, 13, 10, 16, true, 0 ); bay.draw_square_ter( t_chainfence, 0, 22, 7, 22 ); bay.draw_square_ter( t_dirt, 2, 22, 3, 22 ); @@ -554,15 +536,15 @@ void mission_start::ranch_scavenger_2( mission *miss ) { tripoint site = mission_util::target_om_ter_random( "ranch_camp_48", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.add_vehicle( vproto_id( "car_chassis" ), 20, 15, 0 ); bay.draw_square_ter( t_wall_half, 18, 19, 21, 22 ); bay.draw_square_ter( t_dirt, 19, 20, 20, 21 ); - bay.ter_set( point( 19, 19 ), t_door_frame ); + bay.ter_set( 19, 19, t_door_frame ); bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_49", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.place_items( "mischw", 65, 12, 13, 13, 16, true, 0 ); bay.draw_square_ter( t_chaingate_l, 2, 22, 3, 22 ); bay.spawn_item( 7, 20, "30gal_drum" ); @@ -573,25 +555,25 @@ void mission_start::ranch_scavenger_3( mission *miss ) { tripoint site = mission_util::target_om_ter_random( "ranch_camp_48", 1, miss, false, RANCH_SIZE ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.translate( t_door_frame, t_door_locked ); bay.translate( t_wall_half, t_wall_wood ); bay.draw_square_ter( t_dirtfloor, 19, 20, 20, 21 ); bay.spawn_item( 16, 21, "wheel_wide" ); bay.spawn_item( 17, 21, "wheel_wide" ); bay.spawn_item( 23, 18, "v8_combustion" ); - bay.furn_set( point( 23, 17 ), furn_str_id( "f_arcade_machine" ) ); - bay.ter_set( point( 23, 16 ), ter_str_id( "t_machinery_light" ) ); - bay.furn_set( point( 20, 21 ), f_woodstove ); + bay.furn_set( 23, 17, furn_str_id( "f_arcade_machine" ) ); + bay.ter_set( 23, 16, ter_str_id( "t_machinery_light" ) ); + bay.furn_set( 20, 21, f_woodstove ); bay.save(); site = mission_util::target_om_ter_random( "ranch_camp_49", 1, miss, false, RANCH_SIZE ); - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.place_items( "mischw", 65, 2, 10, 4, 10, true, 0 ); bay.place_items( "mischw", 65, 2, 13, 4, 13, true, 0 ); - bay.furn_set( point( 1, 15 ), f_fridge ); + bay.furn_set( 1, 15, f_fridge ); bay.spawn_item( 2, 15, "hdframe" ); - bay.furn_set( point( 3, 15 ), f_washer ); + bay.furn_set( 3, 15, f_washer ); bay.save(); } @@ -636,7 +618,7 @@ void static create_lab_consoles( mission *miss, const tripoint &place, const std tripoint om_place = mission_util::target_om_ter_random( otype, -1, miss, false, 4, place ); tinymap compmap; - compmap.load( tripoint( om_place.x * 2, om_place.y * 2, om_place.z ), false ); + compmap.load( om_place.x * 2, om_place.y * 2, om_place.z, false ); tripoint comppoint = find_potential_computer_point( compmap, om_place.z ); @@ -658,8 +640,7 @@ void mission_start::create_lab_console( mission *miss ) loc.z = -1; const tripoint place = overmap_buffer.find_closest( loc, "lab", 0, false ); - create_lab_consoles( miss, place, "lab", 2, translate_marker( "Workstation" ), - translate_marker( "Download Memory Contents" ) ); + create_lab_consoles( miss, place, "lab", 2, "Workstation", "Download Memory Contents" ); // Target the lab entrance. const tripoint target = mission_util::target_closest_lab_entrance( place, 2, miss ); @@ -675,8 +656,7 @@ void mission_start::create_hidden_lab_console( mission *miss ) 0, loc ); place.z = -2; // then go down 1 z-level to place consoles. - create_lab_consoles( miss, place, "lab", 3, translate_marker( "Workstation" ), - translate_marker( "Download Encryption Routines" ) ); + create_lab_consoles( miss, place, "lab", 3, "Workstation", "Download Encryption Routines" ); // Target the lab entrance. const tripoint target = mission_util::target_closest_lab_entrance( place, 2, miss ); @@ -690,8 +670,7 @@ void mission_start::create_ice_lab_console( mission *miss ) loc.z = -4; const tripoint place = overmap_buffer.find_closest( loc, "ice_lab", 0, false ); - create_lab_consoles( miss, place, "ice_lab", 3, translate_marker( "Durable Storage Archive" ), - translate_marker( "Download Archives" ) ); + create_lab_consoles( miss, place, "ice_lab", 3, "Durable Storage Archive", "Download Archives" ); // Target the lab entrance. const tripoint target = mission_util::target_closest_lab_entrance( place, 2, miss ); @@ -706,7 +685,7 @@ void mission_start::reveal_lab_train_depot( mission *miss ) const tripoint place = overmap_buffer.find_closest( loc, "lab_train_depot", 0, false ); tinymap compmap; - compmap.load( tripoint( place.x * 2, place.y * 2, place.z ), false ); + compmap.load( place.x * 2, place.y * 2, place.z, false ); tripoint comppoint; for( tripoint point : compmap.points_in_rectangle( diff --git a/src/mission_ui.cpp b/src/mission_ui.cpp index 4bb6fe480f523..a657af2d62cfa 100644 --- a/src/mission_ui.cpp +++ b/src/mission_ui.cpp @@ -21,8 +21,8 @@ void game::list_missions() { catacurses::window w_missions = 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 ) ); + ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0, + ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); enum class tab_mode : int { TAB_ACTIVE = 0, @@ -118,14 +118,12 @@ void game::list_missions() } } - int y = 3; - y += fold_and_print( w_missions, y, 31, getmaxx( w_missions ) - 33, col, - miss->name() + for_npc ); + int lines = fold_and_print( w_missions, 3, 31, getmaxx( w_missions ) - 33, col, + miss->name() + for_npc ); - y++; + int y = 3 + lines; if( !miss->get_description().empty() ) { - y += fold_and_print( w_missions, y, 31, getmaxx( w_missions ) - 33, c_white, - miss->get_description() ); + mvwprintz( w_missions, ++y, 31, c_white, miss->get_description() ); } if( miss->has_deadline() ) { const time_point deadline = miss->get_deadline(); diff --git a/src/mission_util.cpp b/src/mission_util.cpp index 7fda72f1deab1..d98e86de18518 100644 --- a/src/mission_util.cpp +++ b/src/mission_util.cpp @@ -25,7 +25,7 @@ #include "type_id.h" #include "point.h" -static tripoint reveal_destination( const std::string &type ) +static const tripoint reveal_destination( const std::string &type ) { const tripoint your_pos = g->u.global_omt_location(); const tripoint center_pos = overmap_buffer.find_random( your_pos, type, rng( 40, 80 ), false ); @@ -387,7 +387,7 @@ mission_target_params mission_util::parse_mission_om_target( JsonObject &jo ) p.min_distance = std::max( 1, jo.get_int( "min_distance" ) ); } if( jo.has_int( "offset_x" ) || jo.has_int( "offset_y" ) || jo.has_int( "offset_z" ) ) { - tripoint offset; + tripoint offset = tripoint( 0, 0, 0 ); if( jo.has_int( "offset_x" ) ) { offset.x = jo.get_int( "offset_x" ); } diff --git a/src/missiondef.cpp b/src/missiondef.cpp index ebc9714fa2fea..9d2889dbb550f 100644 --- a/src/missiondef.cpp +++ b/src/missiondef.cpp @@ -5,7 +5,6 @@ #include "assign.h" #include "calendar.h" -#include "condition.h" #include "generic_factory.h" #include "init.h" #include "item.h" @@ -169,9 +168,7 @@ static const std::map goal_map = {{ { "MGOAL_KILL_MONSTER_SPEC", MGOAL_KILL_MONSTER_SPEC }, { "MGOAL_RECRUIT_NPC", MGOAL_RECRUIT_NPC }, { "MGOAL_RECRUIT_NPC_CLASS", MGOAL_RECRUIT_NPC_CLASS }, - { "MGOAL_COMPUTER_TOGGLE", MGOAL_COMPUTER_TOGGLE }, - { "MGOAL_TALK_TO_NPC", MGOAL_TALK_TO_NPC }, - { "MGOAL_CONDITION", MGOAL_CONDITION } + { "MGOAL_COMPUTER_TOGGLE", MGOAL_COMPUTER_TOGGLE } } }; template<> @@ -255,7 +252,6 @@ void mission_type::load( JsonObject &jo, const std::string &src ) mandatory( djo, was_loaded, "failure", dialogue[ "failure" ] ); } - optional( jo, was_loaded, "description", description ); optional( jo, was_loaded, "urgent", urgent ); optional( jo, was_loaded, "item", item_id ); optional( jo, was_loaded, "item_group", group_id ); @@ -310,18 +306,6 @@ void mission_type::load( JsonObject &jo, const std::string &src ) } assign( jo, "destination", target_id, strict ); - - if( jo.has_member( "goal_condition" ) ) { - read_condition( jo, "goal_condition", goal_condition, true ); - } -} - -bool mission_type::test_goal_condition( const mission_goal_condition_context &d ) const -{ - if( goal_condition ) { - return goal_condition( d ); - } - return true; } void mission_type::finalize() diff --git a/src/mod_manager_ui.cpp b/src/mod_manager_ui.cpp index dd7c481c05ef4..a6e698c4fdfea 100644 --- a/src/mod_manager_ui.cpp +++ b/src/mod_manager_ui.cpp @@ -227,11 +227,16 @@ bool mod_ui::can_shift_up( size_t selection, const std::vector &active_l // see if the mod at selection-1 is a) a core, or b) is depended on by this mod int newsel = selection - 1; - mod_id newsel_id = active_list[newsel]; - bool newsel_is_dependency = - std::find( dependencies.begin(), dependencies.end(), newsel_id ) != dependencies.end(); + mod_id modstring = active_list[newsel]; - return !newsel_id->core && !newsel_is_dependency; + if( modstring->core || + std::find( dependencies.begin(), dependencies.end(), modstring ) != dependencies.end() ) { + // can't move up due to a blocker + return false; + } else { + // we can shift! + return true; + } } bool mod_ui::can_shift_down( size_t selection, const std::vector &active_list ) @@ -253,8 +258,13 @@ bool mod_ui::can_shift_down( size_t selection, const std::vector &active mod_id modstring = active_list[newsel]; mod_id selstring = active_list[oldsel]; - bool sel_is_dependency = - std::find( dependents.begin(), dependents.end(), selstring ) != dependents.end(); - return !modstring->core && !sel_is_dependency; + if( modstring->core || + std::find( dependents.begin(), dependents.end(), selstring ) != dependents.end() ) { + // can't move down due to a blocker + return false; + } else { + // we can shift! + return true; + } } diff --git a/src/mod_tileset.cpp b/src/mod_tileset.cpp index 2efe55fa81a78..c32067ce42016 100644 --- a/src/mod_tileset.cpp +++ b/src/mod_tileset.cpp @@ -34,7 +34,10 @@ void reset_mod_tileset() bool mod_tileset::is_compatible( const std::string &tileset_id ) const { const auto iter = std::find( compatibility.begin(), compatibility.end(), tileset_id ); - return iter != compatibility.end(); + if( iter == compatibility.end() ) { + return false; + } + return true; } void mod_tileset::add_compatible_tileset( const std::string &tileset_id ) diff --git a/src/monattack.cpp b/src/monattack.cpp index f3b2a25b33add..3238e27d602ae 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -20,7 +20,7 @@ #include "bodypart.h" #include "debug.h" #include "effect.h" -#include "timed_event.h" +#include "event.h" #include "field.h" #include "fungal_effects.h" #include "game.h" @@ -34,7 +34,6 @@ #include "martialarts.h" #include "messages.h" #include "mondefense.h" -#include "monfaction.h" #include "monster.h" #include "morale_types.h" #include "mtype.h" @@ -161,9 +160,12 @@ static bool within_visual_range( monster *z, int max_range ) static bool within_target_range( const monster *const z, const Creature *const target, int range ) { - return target != nullptr && - rl_dist( z->pos(), target->pos() ) <= range && - z->sees( *target ); + if( target == nullptr || + rl_dist( z->pos(), target->pos() ) > range || + !z->sees( *target ) ) { + return false; + } + return true; } static Creature *sting_get_target( monster *z, float range = 5.0f ) @@ -908,7 +910,7 @@ bool mattack::resurrect( monster *z ) if( corpses.empty() ) { // No nearby corpses if( found_eligible_corpse ) { // There was a corpse, but we haven't charged enough. - if( sees_necromancer && x_in_y( 1, sqrt( lowest_raise_score / 30.0 ) ) ) { + if( sees_necromancer && one_in( sqrt( lowest_raise_score / 30 ) ) ) { add_msg( m_info, _( "The %s gesticulates wildly." ), z->name() ); } while( z->moves >= 0 ) { @@ -922,9 +924,12 @@ 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 ) && - z->attitude_to( *zed ) == Creature::Attitude::A_FRIENDLY && - within_target_range( z, zed, 10 ); + if( zed && zed != z && zed->type->has_flag( MF_REVIVES ) && zed->type->in_species( ZOMBIE ) && + z->attitude_to( *zed ) == Creature::Attitude::A_FRIENDLY && + within_target_range( z, zed, 10 ) ) { + return true; + } + return false; } ); if( !allies ) { // Nobody around who we could revive, get angry @@ -978,18 +983,6 @@ bool mattack::resurrect( monster *z ) return true; } -void mattack::smash_specific( monster *z, Creature *target ) -{ - if( target == nullptr || !is_adjacent( z, target, false ) ) { - return; - } - if( z->has_flag( MF_RIDEABLE_MECH ) ) { - z->use_mech_power( -5 ); - } - z->set_goal( target->pos() ); - smash( z ); -} - bool mattack::smash( monster *z ) { if( !z->can_act() ) { @@ -2774,7 +2767,7 @@ bool mattack::fear_paralyze( monster *z ) } else if( rng( 0, 20 ) > g->u.get_int() ) { add_msg( m_bad, _( "The terrifying visage of the %s paralyzes you." ), z->name() ); g->u.add_effect( effect_fearparalyze, 5_turns ); - g->u.moves -= 4 * g->u.get_speed(); + g->u.moves -= 400; } else { add_msg( _( "You manage to avoid staring at the horrendous %s." ), z->name() ); } @@ -2786,7 +2779,7 @@ bool mattack::nurse_check_up( monster *z ) { bool found_target = false; player *target = nullptr; - tripoint tmp_pos( z->pos() + point( 12, 12 ) ); + tripoint tmp_pos( z->pos().x + 12, z->pos().y + 12, z->pos().z ); for( auto critter : g->m.get_creatures_in_radius( z->pos(), 6 ) ) { player *tmp_player = dynamic_cast( critter ); if( tmp_player != nullptr && z->sees( *tmp_player ) && @@ -2836,7 +2829,7 @@ bool mattack::nurse_assist( monster *z ) bool found_target = false; player *target = nullptr; - tripoint tmp_pos( z->pos() + point( 12, 12 ) ); + tripoint tmp_pos( z->pos().x + 12, z->pos().y + 12, z->pos().z ); for( auto critter : g->m.get_creatures_in_radius( z->pos(), 6 ) ) { player *tmp_player = dynamic_cast( critter ); if( tmp_player != nullptr && z->sees( *tmp_player ) && @@ -2891,7 +2884,7 @@ bool mattack::nurse_operate( monster *z ) bool found_target = false; player *target = nullptr; - tripoint tmp_pos( z->pos() + point( 12, 12 ) ); + tripoint tmp_pos( z->pos().x + 12, z->pos().y + 12, z->pos().z ); for( auto critter : g->m.get_creatures_in_radius( z->pos(), 6 ) ) { player *tmp_player = dynamic_cast< player *>( critter ); if( tmp_player != nullptr && z->sees( *tmp_player ) && @@ -2951,7 +2944,7 @@ bool mattack::nurse_operate( monster *z ) } else { grab( z ); if( target->has_effect( effect_grabbed ) ) { // check if we succesfully grabbed the target - z->dragged_foe_id = target->getID(); + z->dragged_foe = target; z->add_effect( effect_dragging, 1_turns, num_bp, true ); return true; } @@ -3086,8 +3079,8 @@ bool mattack::photograph( monster *z ) const SpeechBubble &speech = get_speech( z->type->id.str() ); sounds::sound( z->pos(), speech.volume, sounds::sound_t::alert, speech.text ); } - g->timed_events.add( TIMED_EVENT_ROBOT_ATTACK, calendar::turn + rng( 15_turns, 30_turns ), 0, - g->u.global_sm_location() ); + g->events.add( EVENT_ROBOT_ATTACK, calendar::turn + rng( 15_turns, 30_turns ), 0, + g->u.global_sm_location() ); return true; } @@ -3519,7 +3512,7 @@ void mattack::flame( monster *z, Creature *target ) for( auto &i : traj ) { // break out of attack if flame hits a wall // TODO: Z - if( g->m.hit_with_fire( tripoint( i.xy(), z->posz() ) ) ) { + if( g->m.hit_with_fire( tripoint( i.x, i.y, z->posz() ) ) ) { if( g->u.sees( i ) ) { add_msg( _( "The tongue of flame hits the %s!" ), g->m.tername( i.x, i.y ) ); @@ -3542,7 +3535,7 @@ void mattack::flame( monster *z, Creature *target ) for( auto &i : traj ) { // break out of attack if flame hits a wall - if( g->m.hit_with_fire( tripoint( i.xy(), z->posz() ) ) ) { + if( g->m.hit_with_fire( tripoint( i.x, i.y, z->posz() ) ) ) { if( g->u.sees( i ) ) { add_msg( _( "The tongue of flame hits the %s!" ), g->m.tername( i.x, i.y ) ); @@ -4054,7 +4047,7 @@ bool mattack::absorb_meat( monster *z ) const int monster_volume = units::to_liter( z->get_volume() ); const float average_meat_chunk_volume = 0.5; //TODO: dynamically get volume of meat - const int max_meat_absorbed = monster_volume / 10.0 * average_meat_chunk_volume; + const int max_meat_absorbed = monster_volume / 10 * average_meat_chunk_volume; //For every milliliter of meat absorbed, heal this many HP const float meat_absorption_factor = 0.01; //Search surrounding tiles for meat @@ -4274,14 +4267,6 @@ bool mattack::longswipe( monster *z ) return true; } -static void parrot_common( monster *parrot ) -{ - parrot->moves -= 100; // It takes a while - const SpeechBubble &speech = get_speech( parrot->type->id.str() ); - sounds::sound( parrot->pos(), speech.volume, sounds::sound_t::speech, speech.text, false, "speech", - parrot->type->id.str() ); -} - bool mattack::parrot( monster *z ) { if( z->has_effect( effect_shrieking ) ) { @@ -4290,27 +4275,16 @@ bool mattack::parrot( monster *z ) z->moves -= 40; return false; } else if( one_in( 20 ) ) { - parrot_common( z ); + z->moves -= 100; // It takes a while + const SpeechBubble &speech = get_speech( z->type->id.str() ); + sounds::sound( z->pos(), speech.volume, sounds::sound_t::speech, speech.text, false, "speech", + z->type->id.str() ); return true; } return false; } -bool mattack::parrot_at_danger( monster *parrot ) -{ - for( monster &monster : g->all_monsters() ) { - if( one_in( 20 ) && monster.anger > 0 && - monster.faction->attitude( parrot->faction ) == mf_attitude::MFA_BY_MOOD && - parrot->sees( monster ) ) { - parrot_common( parrot ); - return true; - } - } - - return false; -} - bool mattack::darkman( monster *z ) { if( z->friendly ) { diff --git a/src/monattack.h b/src/monattack.h index d53488ac700df..f625a156e6f68 100644 --- a/src/monattack.h +++ b/src/monattack.h @@ -26,7 +26,6 @@ bool boomer( monster *z ); bool boomer_glow( monster *z ); bool resurrect( monster *z ); bool smash( monster *z ); -void smash_specific( monster *z, Creature *target ); bool science( monster *z ); bool growplants( monster *z ); bool grow_vine( monster *z ); @@ -80,7 +79,6 @@ bool absorb_meat( monster *z ); bool lunge( monster *z ); bool longswipe( monster *z ); bool parrot( monster *z ); -bool parrot_at_danger( monster *parrot ); bool darkman( monster *z ); bool slimespring( monster *z ); bool bio_op_takedown( monster *z ); diff --git a/src/mondeath.cpp b/src/mondeath.cpp index bd3ab0ff48453..70e145669ab1b 100644 --- a/src/mondeath.cpp +++ b/src/mondeath.cpp @@ -13,7 +13,7 @@ #include "avatar.h" #include "explosion.h" -#include "timed_event.h" +#include "event.h" #include "field.h" #include "fungal_effects.h" #include "game.h" @@ -80,7 +80,6 @@ static const trait_id trait_PRED2( "PRED2" ); static const trait_id trait_PRED3( "PRED3" ); static const trait_id trait_PRED4( "PRED4" ); static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" ); -static const trait_id trait_KILLER( "KILLER" ); void mdeath::normal( monster &z ) { @@ -194,7 +193,7 @@ void mdeath::splatter( monster &z ) } } // 1% of the weight of the monster is the base, with overflow damage as a multiplier - int gibbed_weight = rng( 0, round( to_gram( z.get_weight() ) / 100.0 * + int gibbed_weight = rng( 0, round( to_gram( z.get_weight() ) / 100 * ( overflow_damage / max_hp + 1 ) ) ); // limit gibbing to 15% gibbed_weight = std::min( gibbed_weight, to_gram( z.get_weight() ) * 15 / 100 ); @@ -354,11 +353,13 @@ void mdeath::triffid_heart( monster &z ) if( g->u.sees( z ) ) { add_msg( m_warning, _( "The surrounding roots begin to crack and crumble." ) ); } - g->timed_events.add( TIMED_EVENT_ROOTS_DIE, calendar::turn + 10_minutes ); + g->events.add( EVENT_ROOTS_DIE, calendar::turn + 10_minutes ); } void mdeath::fungus( monster &z ) { + + //~ the sound of a fungus dying sounds::sound( z.pos(), 10, sounds::sound_t::combat, _( "Pouf!" ), false, "misc", "puff" ); @@ -428,7 +429,7 @@ void mdeath::guilt( monster &z ) guilt_tresholds[25] = _( "You feel remorse for killing %s." ); if( g->u.has_trait( trait_PSYCHOPATH ) || g->u.has_trait( trait_PRED3 ) || - g->u.has_trait( trait_PRED4 ) || g->u.has_trait( trait_KILLER ) ) { + g->u.has_trait( trait_PRED4 ) ) { return; } if( rl_dist( z.pos(), g->u.pos() ) > MAX_GUILT_DISTANCE ) { @@ -644,6 +645,7 @@ void mdeath::broken( monster &z ) } // make "broken_manhack", or "broken_eyebot", ... item_id.insert( 0, "broken_" ); + item broken_mon( item_id, calendar::turn ); const int max_hp = std::max( z.get_hp_max(), 1 ); const float overflow_damage = std::max( -z.get_hp(), 0 ); @@ -652,17 +654,6 @@ void mdeath::broken( monster &z ) g->m.add_item_or_charges( z.pos(), broken_mon ); - - // adds ammo drop - 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 ) { - g->m.spawn_item( z.pos(), ammo_entry.first, z.ammo[ammo_entry.first], 1, - calendar::turn ); - } - } - } - // end adds ammo drop //TODO: make mdeath::splatter work for robots if( ( broken_mon.damage() >= broken_mon.max_damage() ) && g->u.sees( z.pos() ) ) { add_msg( m_good, _( "The %s is destroyed!" ), z.name() ); diff --git a/src/monexamine.cpp b/src/monexamine.cpp index 087d85cbe3630..b965238060d73 100644 --- a/src/monexamine.cpp +++ b/src/monexamine.cpp @@ -15,7 +15,6 @@ #include "game_inventory.h" #include "handle_liquid.h" #include "item.h" -#include "itype.h" #include "iuse.h" #include "map.h" #include "messages.h" @@ -43,7 +42,6 @@ const efftype_id effect_harnessed( "harnessed" ); const efftype_id effect_has_bag( "has_bag" ); const efftype_id effect_milked( "milked" ); const efftype_id effect_monster_armor( "monster_armor" ); -const efftype_id effect_pet( "pet" ); const efftype_id effect_tied( "tied" ); const efftype_id effect_riding( "riding" ); const efftype_id effect_ridden( "ridden" ); @@ -68,10 +66,7 @@ bool monexamine::pet_menu( monster &z ) attach_saddle, remove_saddle, mount, - rope, - remove_bat, - insert_bat, - check_bat, + rope }; uilist amenu; @@ -90,7 +85,7 @@ bool monexamine::pet_menu( monster &z ) amenu.addentry( give_items, true, 'g', _( "Place items into bag" ) ); amenu.addentry( drop_all, true, 'd', _( "Drop all items except armor" ) ); } - if( !z.has_effect( effect_has_bag ) && !z.has_flag( MF_RIDEABLE_MECH ) ) { + if( !z.has_effect( effect_has_bag ) ) { amenu.addentry( attach_bag, true, 'b', _( "Attach bag" ) ); } if( z.has_effect( effect_harnessed ) ) { @@ -98,7 +93,7 @@ bool monexamine::pet_menu( monster &z ) } if( z.has_effect( effect_monster_armor ) ) { amenu.addentry( mon_armor_remove, true, 'a', _( "Remove armor from %s" ), pet_name ); - } else if( !z.has_flag( MF_RIDEABLE_MECH ) ) { + } else { amenu.addentry( mon_armor_add, true, 'a', _( "Equip %s with armor" ), pet_name ); } if( z.has_flag( MF_BIRDFOOD ) || z.has_flag( MF_CATFOOD ) || z.has_flag( MF_DOGFOOD ) || @@ -107,7 +102,7 @@ bool monexamine::pet_menu( monster &z ) } if( z.has_effect( effect_tied ) ) { amenu.addentry( rope, true, 't', _( "Untie" ) ); - } else if( !z.has_flag( MF_RIDEABLE_MECH ) ) { + } else { std::vector rope_inv = g->u.items_with( []( const item & itm ) { return itm.has_flag( "TIE_UP" ); } ); @@ -134,50 +129,23 @@ bool monexamine::pet_menu( monster &z ) g->u.has_amount( "riding_saddle", 1 ) && g->u.get_skill_level( skill_survival ) < 1 ) { amenu.addentry( remove_saddle, false, 'h', _( "You don't know how to saddle %s" ), pet_name ); } - if( !z.has_flag( MF_RIDEABLE_MECH ) ) { - if( z.has_flag( MF_PET_MOUNTABLE ) && ( ( z.has_effect( effect_saddled ) && - g->u.get_skill_level( skill_survival ) >= 1 ) || g->u.get_skill_level( skill_survival ) >= 4 ) && - z.get_size() >= ( g->u.get_size() + 1 ) && g->u.get_weight() <= z.get_weight() / 5 ) { - amenu.addentry( mount, true, 'r', _( "Mount %s" ), pet_name ); - } else if( !z.has_flag( MF_PET_MOUNTABLE ) ) { - amenu.addentry( mount, false, 'r', _( "%s cannot be mounted" ), pet_name ); - } else if( z.get_size() <= g->u.get_size() ) { - amenu.addentry( mount, false, 'r', _( "%s is too small to carry your weight" ), pet_name ); - } else if( g->u.get_skill_level( skill_survival ) < 1 ) { - amenu.addentry( mount, false, 'r', _( "You have no knowledge of riding at all" ) ); - } else if( g->u.get_weight() >= z.get_weight() / 5 ) { - 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 ) { - amenu.addentry( mount, false, 'r', _( "You are not skilled enough to ride without a saddle" ) ); - } else if( z.has_effect( effect_saddled ) && g->u.get_skill_level( skill_survival ) < 1 ) { - amenu.addentry( mount, false, 'r', _( "Despite the saddle, you still don't know how to ride %s" ), - pet_name ); - } - } else { - const itype &type = *item::find_type( z.type->mech_battery ); - int max_charge = type.magazine->capacity; - float charge_percent; - if( z.battery_item ) { - charge_percent = static_cast( z.battery_item->ammo_remaining() ) / max_charge * 100; - } else { - charge_percent = 0.0; - } - amenu.addentry( check_bat, false, 'c', _( "%s battery level is %d%%" ), z.get_name(), - static_cast( charge_percent ) ); - if( g->u.weapon.is_null() && z.battery_item ) { - amenu.addentry( mount, true, 'r', _( "Climb into the mech and take control" ) ); - } else if( !g->u.weapon.is_null() ) { - amenu.addentry( mount, false, 'r', _( "You cannot pilot the mech whilst wielding something" ) ); - } else if( !z.battery_item ) { - amenu.addentry( mount, false, 'r', _( "This mech has a dead battery and won't turn on" ) ); - } - if( z.battery_item ) { - amenu.addentry( remove_bat, true, 'x', _( "Remove the mech's battery pack" ) ); - } else if( g->u.has_amount( z.type->mech_battery, 1 ) ) { - amenu.addentry( insert_bat, true, 'x', _( "Insert a new battery pack" ) ); - } else { - amenu.addentry( insert_bat, false, 'x', _( "You need a %s to power this mech" ), type.nname( 1 ) ); - } + if( z.has_flag( MF_PET_MOUNTABLE ) && ( ( z.has_effect( effect_saddled ) && + g->u.get_skill_level( skill_survival ) >= 1 ) || g->u.get_skill_level( skill_survival ) >= 4 ) && + z.get_size() >= ( g->u.get_size() + 1 ) && g->u.get_weight() <= z.get_weight() / 5 ) { + amenu.addentry( mount, true, 'r', _( "Mount %s" ), pet_name ); + } else if( !z.has_flag( MF_PET_MOUNTABLE ) ) { + amenu.addentry( mount, false, 'r', _( "%s cannot be mounted" ), pet_name ); + } else if( z.get_size() <= g->u.get_size() ) { + amenu.addentry( mount, false, 'r', _( "%s is too small to carry your weight" ), pet_name ); + } else if( g->u.get_skill_level( skill_survival ) < 1 ) { + amenu.addentry( mount, false, 'r', _( "You have no knowledge of riding at all" ) ); + } else if( g->u.get_weight() >= z.get_weight() / 5 ) { + 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 ) { + amenu.addentry( mount, false, 'r', _( "You are not skilled enough to ride without a saddle" ) ); + } else if( z.has_effect( effect_saddled ) && g->u.get_skill_level( skill_survival ) < 1 ) { + amenu.addentry( mount, false, 'r', _( "Despite the saddle, you still don't know how to ride %s" ), + pet_name ); } amenu.query(); int choice = amenu.ret; @@ -231,13 +199,6 @@ bool monexamine::pet_menu( monster &z ) case milk: milk_source( z ); break; - case remove_bat: - remove_battery( z ); - break; - case insert_bat: - insert_battery( z ); - break; - case check_bat: default: break; } @@ -254,66 +215,6 @@ int monexamine::pet_armor_pos( monster &z ) return pos; } -void monexamine::remove_battery( monster &z ) -{ - g->m.add_item_or_charges( g->u.pos(), *z.battery_item ); - z.battery_item = cata::nullopt; -} - -void monexamine::insert_battery( monster &z ) -{ - if( z.battery_item ) { - // already has a battery, shouldnt be called with one, but just incase. - return; - } - std::vector bat_inv = g->u.items_with( []( const item & itm ) { - return itm.has_flag( "MECH_BAT" ); - } ); - if( bat_inv.empty() ) { - return; - } - int i = 0; - uilist selection_menu; - selection_menu.text = string_format( _( "Select an battery to insert into your %s." ), - z.get_name() ); - selection_menu.addentry( i++, true, MENU_AUTOASSIGN, _( "Cancel" ) ); - for( auto iter : bat_inv ) { - selection_menu.addentry( i++, true, MENU_AUTOASSIGN, _( "Use %s" ), iter->tname() ); - } - selection_menu.selected = 1; - selection_menu.query(); - auto index = selection_menu.ret; - if( index == 0 || index == UILIST_CANCEL || index < 0 || - index > static_cast( bat_inv.size() ) ) { - return; - } - auto bat_item = bat_inv[index - 1]; - int item_pos = g->u.get_item_position( bat_item ); - if( item_pos != INT_MIN ) { - z.battery_item = *bat_item; - g->u.i_rem( item_pos ); - } -} - -bool monexamine::mech_hack( monster &z ) -{ - itype_id card_type = "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 ); - z.add_effect( effect_pet, 1_turns, num_bp, true ); - z.friendly = -1; - add_msg( m_good, _( "The %s whirs into life and opens its restraints to accept a pilot." ), - z.get_name() ); - g->u.use_amount( card_type, 1 ); - return true; - } - } else { - add_msg( m_info, _( "You do not have the required ID card to activate this mech." ) ); - } - return false; -} - void monexamine::attach_or_remove_saddle( monster &z ) { if( z.has_effect( effect_saddled ) ) { @@ -357,16 +258,7 @@ void monexamine::mount_pet( monster &z ) } g->place_player( pnt ); z.facing = g->u.facing; - add_msg( m_good, _( "You climb on the %s." ), z.get_name() ); - if( z.has_flag( MF_RIDEABLE_MECH ) ) { - if( !z.type->mech_weapon.empty() ) { - item mechwep = item( z.type->mech_weapon ); - g->u.wield( mechwep ); - } - add_msg( m_good, _( "You hear your %s whir to life." ), z.get_name() ); - } - // some rideable mechs have night-vision - g->u.recalc_sight_limits(); + add_msg( m_good, _( "You mount your steed." ) ); g->u.mod_moves( -100 ); } diff --git a/src/monexamine.h b/src/monexamine.h index 95edb73416509..9b61db48a1338 100644 --- a/src/monexamine.h +++ b/src/monexamine.h @@ -7,9 +7,6 @@ class monster; namespace monexamine { bool pet_menu( monster &z ); -bool mech_hack( monster &z ); -void remove_battery( monster &z ); -void insert_battery( monster &z ); void swap( monster &z ); void push( monster &z ); void rename_pet( monster &z ); diff --git a/src/mongroup.cpp b/src/mongroup.cpp index f8057dd2515ac..ae540a3d50544 100644 --- a/src/mongroup.cpp +++ b/src/mongroup.cpp @@ -86,7 +86,7 @@ const MonsterGroup &MonsterGroupManager::GetUpgradedMonsterGroup( const mongroup const time_duration replace_time = groupptr->monster_group_time * get_option( "MONSTER_UPGRADE_FACTOR" ); while( groupptr->replace_monster_group && - calendar::turn - time_point( calendar::start_of_cataclysm ) > replace_time ) { + calendar::turn - time_point( calendar::start ) > replace_time ) { groupptr = &groupptr->new_monster_group.obj(); } } @@ -104,17 +104,17 @@ MonsterGroupResult MonsterGroupManager::GetResultFromGroup( bool monster_found = false; // Loop invariant values - const time_point sunset = ::sunset( calendar::turn ); - const time_point sunrise = ::sunrise( calendar::turn ); + const time_point sunset = calendar::turn.sunset(); + const time_point sunrise = calendar::turn.sunrise(); const season_type season = season_of_year( calendar::turn ); // Step through spawn definitions from the monster group until one is found or for( auto it = group.monsters.begin(); it != group.monsters.end() && !monster_found; ++it ) { // There's a lot of conditions to work through to see if this spawn definition is valid bool valid_entry = true; //Insure that the time is not before the spawn first appears or after it stops appearing - valid_entry = valid_entry && ( calendar::start_of_cataclysm + it->starts < calendar::turn ); + valid_entry = valid_entry && ( calendar::time_of_cataclysm + it->starts < calendar::turn ); valid_entry = valid_entry && ( it->lasts_forever() || - calendar::start_of_cataclysm + it->ends > calendar::turn ); + calendar::time_of_cataclysm + it->ends > calendar::turn ); std::vector > valid_times_of_day; bool season_limited = false; diff --git a/src/mongroup.h b/src/mongroup.h index 6bfb9bbf2dc6d..2f6fe148d3ae7 100644 --- a/src/mongroup.h +++ b/src/mongroup.h @@ -106,7 +106,8 @@ struct mongroup { : type( ptype ) , pos( ppos ) , radius( prad ) - , population( ppop ) { + , population( ppop ) + , target() { } mongroup( const mongroup_id &ptype, int pposx, int pposy, int pposz, unsigned int prad, unsigned int ppop ) @@ -164,7 +165,7 @@ class MonsterGroupManager static void LoadMonsterBlacklist( JsonObject &jo ); static void LoadMonsterWhitelist( JsonObject &jo ); static void FinalizeMonsterGroups(); - static MonsterGroupResult GetResultFromGroup( const mongroup_id &group, int *quantity = nullptr ); + static MonsterGroupResult GetResultFromGroup( const mongroup_id &group, int *quantity = 0 ); static bool IsMonsterInGroup( const mongroup_id &group, const mtype_id &id ); static bool isValidMonsterGroup( const mongroup_id &group ); static const mongroup_id &Monster2Group( const mtype_id &id ); diff --git a/src/monmove.cpp b/src/monmove.cpp index eb68801a831c3..e39d2d797bb12 100644 --- a/src/monmove.cpp +++ b/src/monmove.cpp @@ -43,8 +43,6 @@ #define MONSTER_FOLLOW_DIST 8 const species_id FUNGUS( "FUNGUS" ); -const species_id INSECT( "INSECT" ); -const species_id SPIDER( "SPIDER" ); const efftype_id effect_bouldering( "bouldering" ); const efftype_id effect_countdown( "countdown" ); @@ -78,10 +76,7 @@ bool monster::is_immune_field( const field_type_id fid ) const if( fid == fd_fungicidal_gas ) { return !type->in_species( FUNGUS ); } - if( fid == fd_insecticidal_gas ) { - return !type->in_species( INSECT ) && !type->in_species( SPIDER ); - } - const field_type &ft = fid.obj(); + const field_type ft = fid.obj(); if( ft.has_fume ) { return has_flag( MF_NO_BREATHE ); } @@ -119,53 +114,27 @@ bool monster::can_move_to( const tripoint &p ) const return false; } - // Various avoiding behaviors. - - bool avoid_fire = has_flag( MF_AVOID_FIRE ); - bool avoid_fall = has_flag( MF_AVOID_FALL ); - bool avoid_simple = has_flag( MF_AVOID_DANGER_1 ); - bool avoid_complex = has_flag( MF_AVOID_DANGER_2 ); - /* - * Because some avoidance behaviors are supersets of others, - * we can cascade through the implications. Complex implies simple, - * and simple implies fire and fall. - * unfortunately, fall does not necessarily imply fire, nor the converse. - */ - if( avoid_complex ) { - avoid_simple = true; - } - if( avoid_simple ) { - avoid_fire = true; - avoid_fall = true; - } - - // technically this will shortcut in evaluation from fire or fall - // before hitting simple or complex but this is more explicit - if( avoid_fire || avoid_fall || avoid_simple || avoid_complex ) { + // Various avoiding behaviors + if( has_flag( MF_AVOID_DANGER_1 ) || has_flag( MF_AVOID_DANGER_2 ) ) { const ter_id target = g->m.ter( p ); - - // Don't enter lava if we have any concept of heat being bad - if( avoid_fire && target == t_lava ) { + // Don't enter lava ever + if( target == t_lava ) { + return false; + } + // Don't ever throw ourselves off cliffs + if( !g->m.has_floor( p ) && !has_flag( MF_FLIES ) ) { return false; } - if( avoid_fall ) { - // Don't throw ourselves off cliffs if we have a concept of falling - if( !g->m.has_floor( p ) && !has_flag( MF_FLIES ) ) { - return false; - } - - // Don't enter open pits ever unless tiny, can fly or climb well - if( !( type->size == MS_TINY || can_climb ) && - ( target == t_pit || target == t_pit_spiked || target == t_pit_glass ) ) { - return false; - } + // Don't enter open pits ever unless tiny, can fly or climb well + if( !( type->size == MS_TINY || can_climb ) && + ( target == t_pit || target == t_pit_spiked || target == t_pit_glass ) ) { + return false; } - // Some things are only avoided if we're not attacking - if( attitude( &g->u ) != MATT_ATTACK ) { - // Sharp terrain is ignored while attacking - if( avoid_simple && g->m.has_flag( "SHARP", p ) && + // The following behaviors are overridden when attacking + if( attitude( &( g->u ) ) != MATT_ATTACK ) { + if( g->m.has_flag( "SHARP", p ) && !( type->size == MS_TINY || has_flag( MF_FLIES ) ) ) { return false; } @@ -173,8 +142,8 @@ bool monster::can_move_to( const tripoint &p ) const const field &target_field = g->m.field_at( p ); - // Higher awareness is needed for identifying these as threats. - if( avoid_complex ) { + // Differently handled behaviors + if( has_flag( MF_AVOID_DANGER_2 ) ) { const trap &target_trap = g->m.tr_at( p ); // Don't enter any dangerous fields if( is_dangerous_fields( target_field ) ) { @@ -184,14 +153,11 @@ bool monster::can_move_to( const tripoint &p ) const if( has_flag( MF_SEES ) && !target_trap.is_benign() && g->m.has_floor( p ) ) { return false; } - } - - // Without avoid_complex, only fire and electricity are checked for field avoidance. - if( avoid_fire && target_field.find_field( fd_fire ) ) { - return false; - } - if( avoid_simple && target_field.find_field( fd_electricity ) ) { - return false; + } else if( has_flag( MF_AVOID_DANGER_1 ) ) { + // Don't enter fire or electricity ever (other dangerous fields are fine though) + if( target_field.find_field( fd_fire ) || target_field.find_field( fd_electricity ) ) { + return false; + } } } @@ -447,7 +413,7 @@ void monster::plan( const mfactions &factions ) if( type->has_special_attack( "OPERATE" ) ) { bool found_path_to_couch = false; - tripoint tmp( pos() + point( 12, 12 ) ); + tripoint tmp( pos().x + 12, pos().y + 12, pos().z ); tripoint couch_loc; for( const auto &couch_pos : g->m.find_furnitures_in_radius( pos(), 10, furn_id( "f_autodoc_couch" ) ) ) { @@ -601,11 +567,49 @@ void monster::move() } } - // Check if they're dragging a foe and find their hapless victim - player *dragged_foe = find_dragged_foe(); + // defective nursebot surgery code + if( type->has_special_attack( "OPERATE" ) && has_effect( effect_dragging ) && + dragged_foe != nullptr ) { + + if( rl_dist( pos(), goal ) == 1 && g->m.furn( goal ) == furn_id( "f_autodoc_couch" ) && + !has_effect( effect_operating ) ) { + if( dragged_foe->has_effect( effect_grabbed ) && !has_effect( effect_countdown ) && + ( g->critter_at( goal ) == nullptr || g->critter_at( goal ) == dragged_foe ) ) { + add_msg( m_bad, _( "The %1$s slowly but firmly puts %2$s down onto the autodoc couch." ), name(), + dragged_foe->disp_name() ); + + dragged_foe->setpos( goal ); + + add_effect( effect_countdown, 2_turns );// there's still time to get away + add_msg( m_bad, _( "The %s produces a syringe full of some translucent liquid." ), name() ); + } else if( g->critter_at( goal ) != nullptr && has_effect( effect_dragging ) ) { + sounds::sound( pos(), 8, sounds::sound_t::speech, + string_format( + _( "a soft robotic voice say, \"Please step away from the autodoc, this patient needs immediate care.\"" ) ) ); + // TODO: Make it able to push NPC/player + push_to( goal, 4, 0 ); + } + } + if( get_effect_dur( effect_countdown ) == 1_turns && !has_effect( effect_operating ) ) { + if( dragged_foe->has_effect( effect_grabbed ) ) { + + bionic_collection collec = *dragged_foe->my_bionics; + int index = rng( 0, collec.size() - 1 ); + bionic target_cbm = collec[index]; + + //8 intelligence*4 + 8 first aid*4 + 3 computer *3 + 4 electronic*1 = 77 + float adjusted_skill = static_cast( 77 ) - std::min( static_cast( 40 ), + static_cast( 77 ) - static_cast( 77 ) / static_cast( 10.0 ) ); - // Give nursebots a chance to do surgery. - nursebot_operate( dragged_foe ); + g->u.uninstall_bionic( target_cbm, *this, *dragged_foe, adjusted_skill ); + + dragged_foe->remove_effect( effect_grabbed ); + remove_effect( effect_dragging ); + dragged_foe = nullptr; + + } + } + } // The monster can sometimes hang in air due to last fall being blocked const bool can_fly = has_flag( MF_FLIES ); @@ -634,7 +638,7 @@ void monster::move() moves = 0; return; } - if( has_flag( MF_IMMOBILE ) || has_flag( MF_RIDEABLE_MECH ) ) { + if( has_flag( MF_IMMOBILE ) ) { moves = 0; return; } @@ -666,7 +670,7 @@ void monster::move() monster_attitude current_attitude = attitude( nullptr ); if( !wander() ) { if( goal == g->u.pos() ) { - current_attitude = attitude( &g->u ); + current_attitude = attitude( &( g->u ) ); } else { for( const npc &guy : g->all_npcs() ) { if( goal == guy.pos() ) { @@ -886,81 +890,6 @@ void monster::move() } } -player *monster::find_dragged_foe() -{ - // Make sure they're actually dragging someone. - if( dragged_foe_id < 0 || !has_effect( effect_dragging ) ) { - dragged_foe_id = -1; - return nullptr; - } - - // Dragged critters may die or otherwise become invalid, which is why we look - // them up each time. Luckily, monsters dragging critters is relatively rare, - // so this check should happen infrequently. - player *dragged_foe = g->critter_by_id( dragged_foe_id ); - - if( dragged_foe == nullptr ) { - // Target no longer valid. - dragged_foe_id = -1; - remove_effect( effect_dragging ); - } - - return dragged_foe; -} - -// Nursebot surgery code -void monster::nursebot_operate( player *dragged_foe ) -{ - // No dragged foe, nothing to do. - if( dragged_foe == nullptr ) { - return; - } - - // Nothing to do if they can't operate, or they don't think they're dragging. - if( !( type->has_special_attack( "OPERATE" ) && has_effect( effect_dragging ) ) ) { - return; - } - - if( rl_dist( pos(), goal ) == 1 && g->m.furn( goal ) == furn_id( "f_autodoc_couch" ) && - !has_effect( effect_operating ) ) { - if( dragged_foe->has_effect( effect_grabbed ) && !has_effect( effect_countdown ) && - ( g->critter_at( goal ) == nullptr || g->critter_at( goal ) == dragged_foe ) ) { - add_msg( m_bad, _( "The %1$s slowly but firmly puts %2$s down onto the autodoc couch." ), name(), - dragged_foe->disp_name() ); - - dragged_foe->setpos( goal ); - - add_effect( effect_countdown, 2_turns );// there's still time to get away - add_msg( m_bad, _( "The %s produces a syringe full of some translucent liquid." ), name() ); - } else if( g->critter_at( goal ) != nullptr && has_effect( effect_dragging ) ) { - sounds::sound( pos(), 8, sounds::sound_t::speech, - string_format( - _( "a soft robotic voice say, \"Please step away from the autodoc, this patient needs immediate care.\"" ) ) ); - // TODO: Make it able to push NPC/player - push_to( goal, 4, 0 ); - } - } - if( get_effect_dur( effect_countdown ) == 1_turns && !has_effect( effect_operating ) ) { - if( dragged_foe->has_effect( effect_grabbed ) ) { - - bionic_collection collec = *dragged_foe->my_bionics; - int index = rng( 0, collec.size() - 1 ); - bionic target_cbm = collec[index]; - - //8 intelligence*4 + 8 first aid*4 + 3 computer *3 + 4 electronic*1 = 77 - float adjusted_skill = static_cast( 77 ) - std::min( static_cast( 40 ), - static_cast( 77 ) - static_cast( 77 ) / static_cast( 10.0 ) ); - - g->u.uninstall_bionic( target_cbm, *this, *dragged_foe, adjusted_skill ); - - dragged_foe->remove_effect( effect_grabbed ); - remove_effect( effect_dragging ); - dragged_foe_id = -1; - - } - } -} - // footsteps will determine how loud a monster's normal movement is // and create a sound in the monsters location when they move void monster::footsteps( const tripoint &p ) @@ -1162,13 +1091,6 @@ bool monster::bash_at( const tripoint &p ) if( is_hallucination() ) { return false; } - - // Don't bash if a friendly monster is standing there - monster *target = g->critter_at( p ); - if( target != nullptr && attitude_to( *target ) == A_FRIENDLY ) { - return false; - } - bool try_bash = !can_move_to( p ) || one_in( 3 ); bool can_bash = g->m.is_bashable( p ) && bash_skill() > 0; @@ -1470,8 +1392,7 @@ bool monster::push_to( const tripoint &p, const int boost, const size_t depth ) // TODO: Generalize this to Creature monster *const critter = g->critter_at( p ); - if( critter == nullptr || critter == this || - p == pos() || critter->movement_impaired() ) { + if( critter == nullptr || critter == this || p == pos() ) { return false; } @@ -1513,8 +1434,7 @@ bool monster::push_to( const tripoint &p, const int boost, const size_t depth ) continue; } - tripoint dest( p + point( dx, dy ) ); - const int dest_movecost_from = 50 * g->m.move_cost( dest ); + tripoint dest( p.x + dx, p.y + dy, p.z ); // Pushing into cars/windows etc. is harder const int movecost_penalty = g->m.move_cost( dest ) - 2; @@ -1529,7 +1449,7 @@ bool monster::push_to( const tripoint &p, const int boost, const size_t depth ) } Creature *critter_recur = g->critter_at( dest ); - if( !( critter_recur == nullptr || critter_recur->is_hallucination() ) ) { + if( critter_recur == nullptr || critter_recur->is_hallucination() ) { // Try to push recursively monster *mon_recur = dynamic_cast< monster * >( critter_recur ); if( mon_recur == nullptr ) { @@ -1543,13 +1463,15 @@ bool monster::push_to( const tripoint &p, const int boost, const size_t depth ) } moves -= movecost_attacker; + if( movecost_from > 100 ) { + critter->add_effect( effect_downed, time_duration::from_turns( movecost_from / 100 + 1 ) ); + } else { + critter->moves -= movecost_from; + } - // Don't knock down a creature that successfully - // pushed another creature, just reduce moves - critter->moves -= dest_movecost_from; return true; } else { - return false; + continue; } } @@ -1557,13 +1479,20 @@ bool monster::push_to( const tripoint &p, const int boost, const size_t depth ) if( critter_recur != nullptr ) { if( critter_recur->is_hallucination() ) { critter_recur->die( nullptr ); + } else { + return false; } - } else { - critter->setpos( dest ); - move_to( p ); - moves -= movecost_attacker; + } + + critter->setpos( dest ); + move_to( p ); + moves -= movecost_attacker; + if( movecost_from > 100 ) { critter->add_effect( effect_downed, time_duration::from_turns( movecost_from / 100 + 1 ) ); + } else { + critter->moves -= movecost_from; } + return true; } @@ -1722,9 +1651,9 @@ void monster::knock_back_to( const tripoint &to ) Make sure that non-smashing monsters won't "teleport" through windows Injure monsters if they're gonna be walking through pits or whatever */ -bool monster::will_reach( const point &p ) +bool monster::will_reach( int x, int y ) { - monster_attitude att = attitude( &g->u ); + monster_attitude att = attitude( &( g->u ) ); if( att != MATT_FOLLOW && att != MATT_ATTACK && att != MATT_FRIEND && att != MATT_ZLAVE ) { return false; } @@ -1733,36 +1662,36 @@ bool monster::will_reach( const point &p ) return false; } - if( ( has_flag( MF_IMMOBILE ) || has_flag( MF_RIDEABLE_MECH ) ) && ( pos().xy() != p ) ) { + if( has_flag( MF_IMMOBILE ) && ( posx() != x || posy() != y ) ) { return false; } - auto path = g->m.route( pos(), tripoint( p, posz() ), get_pathfinding_settings() ); + auto path = g->m.route( pos(), tripoint( x, y, posz() ), get_pathfinding_settings() ); if( path.empty() ) { return false; } if( has_flag( MF_SMELLS ) && g->scent.get( pos() ) > 0 && - g->scent.get( { p, posz() } ) > g->scent.get( pos() ) ) { + g->scent.get( { x, y, posz() } ) > g->scent.get( pos() ) ) { return true; } - if( can_hear() && wandf > 0 && rl_dist( wander_pos.xy(), p ) <= 2 && + if( can_hear() && wandf > 0 && rl_dist( wander_pos.x, wander_pos.y, x, y ) <= 2 && rl_dist( posx(), posy(), wander_pos.x, wander_pos.y ) <= wandf ) { return true; } - if( can_see() && sees( tripoint( p, posz() ) ) ) { + if( can_see() && sees( tripoint( x, y, posz() ) ) ) { return true; } return false; } -int monster::turns_to_reach( const point &p ) +int monster::turns_to_reach( int x, int y ) { // This function is a(n old) temporary hack that should soon be removed - auto path = g->m.route( pos(), tripoint( p, posz() ), get_pathfinding_settings() ); + auto path = g->m.route( pos(), tripoint( x, y, posz() ), get_pathfinding_settings() ); if( path.empty() ) { return 999; } @@ -1820,7 +1749,7 @@ void monster::shove_vehicle( const tripoint &remote_destination, } break; case MS_HUGE: - if( veh_mass < 2000_kilogram ) { + if( veh_mass < 1500_kilogram ) { shove_moves_minimal = 50; shove_veh_mass_moves_factor = 4; shove_velocity = 1500; diff --git a/src/monster.cpp b/src/monster.cpp index bc05a0eb2728d..fad05b3a5e655 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -16,7 +16,6 @@ #include "field.h" #include "game.h" #include "item.h" -#include "itype.h" #include "line.h" #include "map.h" #include "map_iterator.h" @@ -234,14 +233,6 @@ monster::monster( const mtype_id &id ) : monster() if( monster::has_flag( MF_AQUATIC ) ) { fish_population = dice( 1, 20 ); } - if( monster::has_flag( MF_RIDEABLE_MECH ) ) { - itype_id mech_bat = itype_id( type->mech_battery ); - const itype &type = *item::find_type( mech_bat ); - int max_charge = type.magazine->capacity; - item mech_bat_item = item( mech_bat, 0 ); - mech_bat_item.ammo_consume( rng( 0, max_charge ), tripoint_zero ); - battery_item = mech_bat_item; - } } monster::monster( const mtype_id &id, const tripoint &p ) : monster( id ) @@ -346,7 +337,7 @@ void monster::try_upgrade( bool pin_time ) return; } - const int current_day = to_days( calendar::turn - time_point( calendar::start_of_cataclysm ) ); + const int current_day = to_days( calendar::turn - time_point( calendar::start ) ); //This should only occur when a monster is created or upgraded to a new form if( upgrade_time < 0 ) { upgrade_time = next_upgrade_time(); @@ -358,8 +349,7 @@ void monster::try_upgrade( bool pin_time ) upgrade_time += current_day; } else { // offset by starting season - // @todo revisit this and make it simpler - upgrade_time += to_turn( calendar::start_of_cataclysm ); + upgrade_time += calendar::start; } } @@ -401,7 +391,7 @@ void monster::try_reproduce() return; } - const int current_day = to_days( calendar::turn - calendar::start_of_cataclysm ); + const int current_day = to_days( calendar::turn - calendar::time_of_cataclysm ); if( baby_timer < 0 ) { baby_timer = type->baby_timer; if( baby_timer < 0 ) { @@ -464,7 +454,7 @@ void monster::try_biosignature() return; } - const int current_day = to_days( calendar::turn - calendar::start_of_cataclysm ); + const int current_day = to_days( calendar::turn - calendar::time_of_cataclysm ); if( biosig_timer < 0 ) { biosig_timer = type->biosig_timer; if( biosig_timer < 0 ) { @@ -505,7 +495,8 @@ std::string monster::name( unsigned int quantity ) const return std::string(); } if( !unique_name.empty() ) { - return string_format( "%s: %s", type->nname( quantity ), unique_name ); + return string_format( "%s: %s", + ( type->nname( quantity ) ), unique_name ); } return type->nname( quantity ); } @@ -563,7 +554,7 @@ void monster::get_HP_Bar( nc_color &color, std::string &text ) const std::pair monster::get_attitude() const { - const auto att = attitude_names.at( attitude( &g->u ) ); + const auto att = attitude_names.at( attitude( &( g->u ) ) ); return { _( att.first ), all_colors.get( att.second ) @@ -754,7 +745,7 @@ nc_color monster::symbol_color() const bool monster::is_symbol_highlighted() const { - return friendly != 0; + return ( friendly != 0 ); } nc_color monster::color_with_effects() const @@ -832,7 +823,8 @@ int monster::sight_range( const int light_level ) const return 1; } - int range = light_level * type->vision_day + ( DAYLIGHT_LEVEL - light_level ) * type->vision_night; + int range = ( light_level * type->vision_day ) + + ( ( DAYLIGHT_LEVEL - light_level ) * type->vision_night ); range /= DAYLIGHT_LEVEL; return range; @@ -853,18 +845,17 @@ bool monster::made_of( phase_id p ) const return type->phase == p; } -void monster::set_goal( const tripoint &p ) -{ - goal = p; -} - -void monster::shift( const point &sm_shift ) +void monster::shift( int sx, int sy ) { - const point ms_shift = sm_to_ms_copy( sm_shift ); - position -= ms_shift; - goal -= ms_shift; + const int xshift = sx * SEEX; + const int yshift = sy * SEEY; + position.x -= xshift; + position.y -= yshift; + goal.x -= xshift; + goal.y -= yshift; if( wandf > 0 ) { - wander_pos -= ms_shift; + wander_pos.x -= xshift; + wander_pos.y -= yshift; } } @@ -897,7 +888,7 @@ bool monster::is_fleeing( player &u ) const return false; } monster_attitude att = attitude( &u ); - return att == MATT_FLEE || ( att == MATT_FOLLOW && rl_dist( pos(), u.pos() ) <= 4 ); + return ( att == MATT_FLEE || ( att == MATT_FOLLOW && rl_dist( pos(), u.pos() ) <= 4 ) ); } Creature::Attitude monster::attitude_to( const Creature &other ) const @@ -1055,7 +1046,7 @@ monster_attitude monster::attitude( const Character *u ) const int monster::hp_percentage() const { - return get_hp( hp_torso ) * 100 / get_hp_max(); + return ( get_hp( hp_torso ) * 100 ) / get_hp_max(); } void monster::process_triggers() @@ -1495,11 +1486,6 @@ void monster::die_in_explosion( Creature *source ) die( source ); } -bool monster::movement_impaired() -{ - return effect_cache[MOVEMENT_IMPAIRED]; -} - bool monster::move_effects( bool ) { // This function is relatively expensive, we want that cached @@ -1633,7 +1619,7 @@ bool monster::move_effects( bool ) } } if( has_effect( effect_grabbed ) ) { - if( dice( type->melee_dice + type->melee_sides, 3 ) < get_effect_int( effect_grabbed ) || + if( ( dice( type->melee_dice + type->melee_sides, 3 ) < get_effect_int( effect_grabbed ) ) || !one_in( 4 ) ) { return false; } else { @@ -1902,7 +1888,7 @@ void monster::normalize_ammo( const int old_ammo ) // 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 ); + ammo[ammo_entry.first] = ( old_ammo * ammo_entry.second ) / ( 100 * total_ammo ); } } @@ -2160,37 +2146,6 @@ void monster::die( Creature *nkiller ) } } -bool monster::use_mech_power( int amt ) -{ - if( is_hallucination() || !has_flag( MF_RIDEABLE_MECH ) || !battery_item ) { - return false; - } - amt = -amt; - battery_item->ammo_consume( amt, pos() ); - return battery_item->ammo_remaining() > 0; -} - -int monster::mech_str_addition() const -{ - return type->mech_str_bonus; -} - -bool monster::check_mech_powered() const -{ - if( is_hallucination() || !has_flag( MF_RIDEABLE_MECH ) || !battery_item ) { - return false; - } - if( battery_item->ammo_remaining() <= 0 ) { - return false; - } - const itype &type = *battery_item->type; - if( battery_item->ammo_remaining() <= type.magazine->capacity / 10 && one_in( 10 ) ) { - add_msg( m_bad, _( "Your %s emits a beeping noise as its batteries start to get low." ), - get_name() ); - } - return true; -} - void monster::drop_items_on_death() { if( is_hallucination() ) { @@ -2199,8 +2154,7 @@ void monster::drop_items_on_death() if( type->death_drops.empty() ) { return; } - const auto dropped = g->m.put_items_from_loc( type->death_drops, pos(), - calendar::start_of_cataclysm ); + const auto dropped = g->m.put_items_from_loc( type->death_drops, pos(), calendar::start ); if( has_flag( MF_FILTHY ) && get_option( "FILTHY_CLOTHES" ) ) { for( const auto &it : dropped ) { @@ -2647,7 +2601,7 @@ void monster::hear_sound( const tripoint &source, const int vol, const int dist } const bool goodhearing = has_flag( MF_GOODHEARING ); - const int volume = goodhearing ? 2 * vol - dist : vol - dist; + const int volume = goodhearing ? ( ( 2 * vol ) - dist ) : ( vol - dist ); // Error is based on volume, louder sound = less error if( volume <= 0 ) { return; diff --git a/src/monster.h b/src/monster.h index 2a1a6760bf546..fd5aab66137df 100644 --- a/src/monster.h +++ b/src/monster.h @@ -157,8 +157,7 @@ class monster : public Creature Creature *attack_target(); // Returns the creature at the end of plans (if hostile) // Movement - void shift( const point &sp ); // Shifts the monster to the appropriate submap - void set_goal( const tripoint &p ); + void shift( int sx, int sy ); // Shifts the monster to the appropriate submap // Updates current pos AND our plans bool wander(); // Returns true if we have no plans @@ -170,8 +169,8 @@ class monster : public Creature */ bool can_move_to( const tripoint &p ) const; - bool will_reach( const point &p ); // Do we have plans to get to (x, y)? - int turns_to_reach( const point &p ); // How long will it take? + bool will_reach( int x, int y ); // Do we have plans to get to (x, y)? + int turns_to_reach( int x, int y ); // How long will it take? // Go in a straight line to p void set_dest( const tripoint &p ); @@ -306,9 +305,6 @@ class monster : public Creature /** Processes monster-specific effects before calling Creature::process_effects(). */ void process_effects() override; - - /** Returns true if the monster has its movement impaired */ - bool movement_impaired(); /** Processes effects which may prevent the monster from moving (bear traps, crushed, etc.). * Returns false if movement is stopped. */ bool move_effects( bool attacking ) override; @@ -388,10 +384,7 @@ class monster : public Creature void make_ally( const monster &z ); // Add an item to inventory void add_item( const item &it ); - // check mech power levels and modify it. - bool use_mech_power( int amt ); - bool check_mech_powered() const; - int mech_str_addition() const; + /** * Makes monster react to heard sound * @@ -419,9 +412,8 @@ class monster : public Creature tripoint wander_pos; // Wander destination - Just try to move in that direction int wandf; // Urge to wander - Increased by sound, decrements each move std::vector inv; // Inventory - int dragged_foe_id = -1; // id of player being dragged by the monster + player *dragged_foe; // player being dragged by the monster cata::optional tied_item; // item used to tie the monster - cata::optional battery_item; // item to power mechs // DEFINING VALUES int friendly; int anger = 0; @@ -479,7 +471,7 @@ class monster : public Creature */ void init_from_item( const item &itm ); - time_point last_updated = calendar::turn_zero; + time_point last_updated = calendar::time_of_cataclysm; int last_baby; int last_biosig; @@ -524,9 +516,6 @@ class monster : public Creature std::bitset effect_cache; cata::optional summon_time_limit = cata::nullopt; - player *find_dragged_foe(); - void nursebot_operate( player *dragged_foe ); - protected: void store( JsonOut &jsout ) const; void load( JsonObject &jsin ); diff --git a/src/monstergenerator.cpp b/src/monstergenerator.cpp index 068f344c2e753..f16b9fd7b62d2 100644 --- a/src/monstergenerator.cpp +++ b/src/monstergenerator.cpp @@ -95,9 +95,6 @@ const std::map flag_map = { { "BONES", MF_BONES }, { "FAT", MF_FAT }, { "IMMOBILE", MF_IMMOBILE }, - { "RIDEABLE_MECH", MF_RIDEABLE_MECH }, - { "MILITARY_MECH", MF_MILITARY_MECH }, - { "MECH_RECON_VISION", MF_MECH_RECON_VISION }, { "HIT_AND_RUN", MF_HIT_AND_RUN }, { "GUILT", MF_GUILT }, { "HUMAN", MF_HUMAN }, @@ -136,8 +133,6 @@ const std::map flag_map = { { "PUSH_VEH", MF_PUSH_VEH }, { "PATH_AVOID_DANGER_1", MF_AVOID_DANGER_1 }, { "PATH_AVOID_DANGER_2", MF_AVOID_DANGER_2 }, - { "PATH_AVOID_FALL", MF_AVOID_FALL }, - { "PATH_AVOID_FIRE", MF_AVOID_FIRE }, { "PRIORITIZE_TARGETS", MF_PRIORITIZE_TARGETS }, { "NOT_HALLUCINATION", MF_NOT_HALLU }, { "CATFOOD", MF_CATFOOD }, @@ -153,8 +148,7 @@ const std::map flag_map = { { "DRIPS_GASOLINE", MF_DRIPS_GASOLINE }, { "ELECTRIC_FIELD", MF_ELECTRIC_FIELD }, { "STUN_IMMUNE", MF_STUN_IMMUNE }, - { "LOUDMOVES", MF_LOUDMOVES }, - { "DROPS_AMMO", MF_DROPS_AMMO } + { "LOUDMOVES", MF_LOUDMOVES } }; } // namespace @@ -522,7 +516,6 @@ void MonsterGenerator::init_attack() add_hardcoded_attack( "LUNGE", mattack::lunge ); add_hardcoded_attack( "LONGSWIPE", mattack::longswipe ); add_hardcoded_attack( "PARROT", mattack::parrot ); - add_hardcoded_attack( "PARROT_AT_DANGER", mattack::parrot_at_danger ); add_hardcoded_attack( "DARKMAN", mattack::darkman ); add_hardcoded_attack( "SLIMESPRING", mattack::slimespring ); add_hardcoded_attack( "BIO_OP_TAKEDOWN", mattack::bio_op_takedown ); @@ -658,9 +651,6 @@ void mtype::load( JsonObject &jo, const std::string &src ) optional( jo, was_loaded, "luminance", luminance, 0 ); optional( jo, was_loaded, "revert_to_itype", revert_to_itype, "" ); 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_str_bonus", mech_str_bonus, 0 ); - optional( jo, was_loaded, "mech_battery", mech_battery, "" ); // TODO: make this work with `was_loaded` if( jo.has_array( "melee_damage" ) ) { @@ -681,7 +671,7 @@ void mtype::load( JsonObject &jo, const std::string &src ) death_drops = item_group::load_item_group( stream, "distribution" ); } - assign( jo, "harvest", harvest ); + assign( jo, "harvest", harvest, strict ); const auto death_reader = make_flag_reader( gen.death_map, "monster death function" ); optional( jo, was_loaded, "death_function", dies, death_reader ); @@ -794,7 +784,7 @@ void mtype::load( JsonObject &jo, const std::string &src ) difficulty = ( melee_skill + 1 ) * melee_dice * ( bonus_cut + melee_sides ) * 0.04 + ( sk_dodge + 1 ) * ( 3 + armor_bash + armor_cut ) * 0.04 + ( difficulty_base + special_attacks.size() + 8 * emit_fields.size() ); - difficulty *= ( hp + speed - attack_cost + ( morale + agro ) * 0.1 ) * 0.01 + + difficulty *= ( hp + speed - attack_cost + ( morale + agro ) / 10 ) * 0.01 + ( vision_day + 2 * vision_night ) * 0.01; } @@ -879,9 +869,8 @@ mtype_special_attack MonsterGenerator::create_actor( JsonObject obj, const std:: const std::string attack_type = obj.get_string( "attack_type", type ); if( type != "monster_attack" && attack_type != type ) { - obj.throw_error( - R"(Specifying "attack_type" is only allowed when "type" is "monster_attack" or not specified)", - "type" ); + obj.throw_error( "Specifying \"attack_type\" is only allowed when \"type\" is \"monster_attack\" or not specified", + "type" ); } mattack_actor *new_attack = nullptr; @@ -1038,14 +1027,6 @@ void MonsterGenerator::check_monster_definitions() const 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 ) ) { - 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 ) ) { - debugmsg( "monster %s has unknown mech_battery: %s", mon.id.c_str(), - mon.mech_battery.c_str() ); - } for( auto &s : mon.starting_ammo ) { if( !item::type_is_defined( s.first ) ) { debugmsg( "starting ammo %s of monster %s is unknown", s.first.c_str(), mon.id.c_str() ); diff --git a/src/morale.cpp b/src/morale.cpp index 18a1fa3e49683..28f2ee732335a 100644 --- a/src/morale.cpp +++ b/src/morale.cpp @@ -451,22 +451,22 @@ void player_morale::decay( const time_duration ticks ) invalidate(); } -void player_morale::display( int focus_eq ) +void player_morale::display( double focus_gain ) { /*calculates the percent contributions of the morale points, * must be done before anything else in this method */ calculate_percentage(); - const char *morale_gain_caption = _( "Total morale:" ); - const char *focus_equilibrium = _( "Focus trends towards:" ); + const char *morale_gain_caption = _( "Total morale change" ); + const char *focus_gain_caption = _( "Focus gain per minute" ); const char *points_is_empty = _( "Nothing affects your morale" ); int w_extra = 16; // Figure out how wide the source column needs to be. int source_column_width = std::max( utf8_width( morale_gain_caption ), - utf8_width( focus_equilibrium ) ) + w_extra; + utf8_width( focus_gain_caption ) ) + w_extra; if( points.empty() ) { source_column_width = std::max( utf8_width( points_is_empty ), source_column_width ); } else { @@ -480,22 +480,23 @@ void player_morale::display( int focus_eq ) const int win_x = ( TERMX - win_w ) / 2; const int win_y = ( TERMY - win_h ) / 2; - catacurses::window w = catacurses::newwin( win_h, win_w, point( win_x, win_y ) ); + catacurses::window w = catacurses::newwin( win_h, win_w, win_y, win_x ); //lambda function used to print almost everything to the window - const auto print_line = [ w ]( int y, const char *label, int value, bool isPercentage = false, + const auto print_line = [ w ]( int y, const char *label, double value, bool isPercentage = false, nc_color color_override = c_unset ) -> int { nc_color color; - if( value != 0 ) + if( value != 0.0 ) { + const int decimals = ( value - static_cast( value ) != 0.0 ) ? 2 : 0; if( color_override == c_unset ) { - color = ( value > 0 ) ? c_green : c_light_red; + color = ( value > 0.0 ) ? c_green : c_light_red; } else { color = color_override; } if( isPercentage ) { - mvwprintz( w, y, getmaxx( w ) - 8, color, "%d%%", value ); + mvwprintz( w, y, getmaxx( w ) - 8, color, "%6.*f%%", decimals, value ); } else { - mvwprintz( w, y, getmaxx( w ) - 8, color, "%+d", value ); + mvwprintz( w, y, getmaxx( w ) - 8, color, "%+6.*f", decimals, value ); } } else @@ -519,13 +520,13 @@ void player_morale::display( int focus_eq ) mvwprintz( w, 1, 2, c_white, _( "Morale" ) ); - mvwhline( w, point( 0, 2 ), LINE_XXXO, 1 ); - mvwhline( w, point( 1, 2 ), 0, win_w - 2 ); - mvwhline( w, point( win_w - 1, 2 ), LINE_XOXX, 1 ); + mvwhline( w, 2, 0, LINE_XXXO, 1 ); + mvwhline( w, 2, 1, 0, win_w - 2 ); + mvwhline( w, 2, win_w - 1, LINE_XOXX, 1 ); - mvwhline( w, point( 0, win_h - 4 ), LINE_XXXO, 1 ); - mvwhline( w, point( 1, win_h - 4 ), 0, win_w - 2 ); - mvwhline( w, point( win_w - 1, win_h - 4 ), LINE_XOXX, 1 ); + mvwhline( w, win_h - 4, 0, LINE_XXXO, 1 ); + mvwhline( w, win_h - 4, 1, 0, win_w - 2 ); + mvwhline( w, win_h - 4, win_w - 1, LINE_XOXX, 1 ); if( !points.empty() ) { const char *source_column = _( "Source" ); @@ -573,9 +574,7 @@ void player_morale::display( int focus_eq ) } print_line( win_h - 3, morale_gain_caption, get_level() ); - //manual line as lambda will not do it properly here - mvwprintz( w, win_h - 2, getmaxx( w ) - 8, c_white, "%d", focus_eq ); - fold_and_print_from( w, win_h - 2, 2, getmaxx( w ) - 9, 0, c_white, focus_equilibrium ); + print_line( win_h - 2, focus_gain_caption, focus_gain ); draw_scrollbar( w, offset, rows_visible, rows_total, 4, 0 ); diff --git a/src/morale.h b/src/morale.h index 0addd24aa64cf..819ef25cf1b58 100644 --- a/src/morale.h +++ b/src/morale.h @@ -48,7 +48,7 @@ class player_morale /** Ticks down morale counters and removes them */ void decay( time_duration ticks = 1_turns ); /** Displays morale screen */ - void display( int focus_eq ); + void display( double focus_gain ); /** Returns false whether morale is inconsistent with the argument. * Only permanent morale is checked */ bool consistent_with( const player_morale &morale ) const; diff --git a/src/mtype.cpp b/src/mtype.cpp index bbdfe62beb98d..3309f8e2fe533 100644 --- a/src/mtype.cpp +++ b/src/mtype.cpp @@ -46,7 +46,7 @@ mtype::mtype() burn_into = mtype_id::NULL_ID(); dies.push_back( &mdeath::normal ); sp_defense = nullptr; - harvest = harvest_id( "human" ); + harvest = harvest_id::NULL_ID(); luminance = 0; bash_skill = 0; diff --git a/src/mtype.h b/src/mtype.h index fa3f43812e197..464f0ac91704c 100644 --- a/src/mtype.h +++ b/src/mtype.h @@ -107,9 +107,6 @@ enum m_flag : int { MF_BONES, // May produce bones and sinews when butchered; if combined with POISON flag, tainted bones, if combined with HUMAN, human bones MF_FAT, // May produce fat when butchered; if combined with POISON flag, tainted fat MF_IMMOBILE, // Doesn't move (e.g. turrets) - MF_RIDEABLE_MECH, // A rideable mech that is immobile until ridden. - MF_MILITARY_MECH, // A rideable mech that was designed for military work. - MF_MECH_RECON_VISION, // This mech gives you IR night-vision. MF_HIT_AND_RUN, // Flee for several turns after a melee attack MF_GUILT, // You feel guilty for killing it MF_HUMAN, // It's a live human, as long as it's alive @@ -151,8 +148,6 @@ enum m_flag : int { MF_NO_NECRO, // This monster can't be revived by necros. It will still rise on its own. MF_AVOID_DANGER_1, // This monster will path around some dangers instead of through them. MF_AVOID_DANGER_2, // This monster will path around most dangers instead of through them. - MF_AVOID_FIRE, // This monster will path around heat-related dangers instead of through them. - MF_AVOID_FALL, // This monster will path around cliffs instead of off of them. MF_PRIORITIZE_TARGETS, // This monster will prioritize targets depending on their danger levels MF_NOT_HALLU, // Monsters that will NOT appear when player's producing hallucinations MF_CATFOOD, // This monster will become friendly when fed cat food. @@ -170,7 +165,6 @@ 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_MAX // Sets the length of the flags - obviously must be LAST }; @@ -326,18 +320,6 @@ struct mtype { * of this type (if it's friendly). */ itype_id revert_to_itype; - /** - * If this monster is a rideable mech with built-in weapons, this is the weapons id - */ - itype_id mech_weapon; - /** - * If this monster is a rideable mech it needs a power source battery type - */ - itype_id mech_battery; - /** - * If this monster is a rideable mech with enhanced strength, this is the strength it gives to the player - */ - int mech_str_bonus = 0; /** Emission sources that cycle each turn the monster remains alive */ std::set emit_fields; diff --git a/src/mutation.cpp b/src/mutation.cpp index b50937511be41..d6ede9fec2ebe 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -409,7 +409,7 @@ void player::activate_mutation( const trait_id &mut ) bool adjacent_tree = false; for( int dx = -1; dx <= 1; dx++ ) { for( int dy = -1; dy <= 1; dy++ ) { - const tripoint p2 = p + point( dx, dy ); + const tripoint p2 = tripoint( p.x + dx, p.y + dy, p.z ); if( g->m.has_flag( "TREE", p2 ) ) { adjacent_tree = true; } diff --git a/src/mutation.h b/src/mutation.h index a62a0a96a91d5..2bdb829acaa4c 100644 --- a/src/mutation.h +++ b/src/mutation.h @@ -212,9 +212,8 @@ struct mutation_branch { std::map encumbrance_covered; // Body parts that now need OVERSIZE gear std::set restricts_gear; - // Mutation stat mods /** Key pair is */ - std::unordered_map, int, cata::tuple_hash> mods; + std::unordered_map, int> mods; // Mutation stat mods std::map armor; std::vector initial_ma_styles; // Martial art styles that can be chosen upon character generation diff --git a/src/mutation_data.cpp b/src/mutation_data.cpp index 430ae7d27890f..c87b320fda3db 100644 --- a/src/mutation_data.cpp +++ b/src/mutation_data.cpp @@ -1,7 +1,6 @@ #include "mutation.h" // IWYU pragma: associated #include -#include #include #include #include @@ -49,9 +48,8 @@ bool string_id::is_valid() const return trait_groups.count( *this ); } -static void extract_mod( - JsonObject &j, std::unordered_map, int, cata::tuple_hash> &data, - const std::string &mod_type, bool active, const std::string &type_key ) +static void extract_mod( JsonObject &j, std::unordered_map, int> &data, + const std::string &mod_type, bool active, const std::string &type_key ) { int val = j.get_int( mod_type, 0 ); if( val != 0 ) { @@ -59,9 +57,8 @@ static void extract_mod( } } -static void load_mutation_mods( - JsonObject &jsobj, const std::string &member, - std::unordered_map, int, cata::tuple_hash> &mods ) +static void load_mutation_mods( JsonObject &jsobj, const std::string &member, + std::unordered_map, int> &mods ) { if( jsobj.has_object( member ) ) { JsonObject j = jsobj.get_object( member ); @@ -621,17 +618,17 @@ static Trait_group &make_group_or_throw( const trait_group::Trait_group_tag &gid if( is_collection ) { if( dynamic_cast( found->second.get() ) ) { std::ostringstream buf; - buf << "item group \"" << gid.c_str() << R"(" already defined with type "distribution")"; + buf << "item group \"" << gid.c_str() << "\" already defined with type \"distribution\""; throw std::runtime_error( buf.str() ); } } else { if( dynamic_cast( found->second.get() ) ) { std::ostringstream buf; - buf << "item group \"" << gid.c_str() << R"(" already defined with type "collection")"; + buf << "item group \"" << gid.c_str() << "\" already defined with type \"collection\""; throw std::runtime_error( buf.str() ); } } - return *found->second; + return *( found->second ); } void mutation_branch::load_trait_group( JsonArray &entries, const trait_group::Trait_group_tag &gid, @@ -661,7 +658,7 @@ void mutation_branch::load_trait_group( JsonObject &jsobj, const trait_group::Tr jsobj.throw_error( "unknown trait group type", "subtype" ); } - Trait_group &tg = make_group_or_throw( gid, subtype == "collection" || subtype == "old" ); + Trait_group &tg = make_group_or_throw( gid, ( subtype == "collection" || subtype == "old" ) ); // TODO: (sm) Looks like this makes the new code backwards-compatible with the old format. Great if so! if( subtype == "old" ) { @@ -718,10 +715,10 @@ void mutation_branch::add_entry( Trait_group &tg, JsonObject &obj ) JsonArray jarr; if( obj.has_member( "collection" ) ) { - ptr = std::make_unique( probability ); + ptr.reset( new Trait_group_collection( probability ) ); jarr = obj.get_array( "collection" ); } else if( obj.has_member( "distribution" ) ) { - ptr = std::make_unique( probability ); + ptr.reset( new Trait_group_distribution( probability ) ); jarr = obj.get_array( "distribution" ); } @@ -737,11 +734,10 @@ void mutation_branch::add_entry( Trait_group &tg, JsonObject &obj ) if( obj.has_member( "trait" ) ) { trait_id id( obj.get_string( "trait" ) ); - ptr = std::make_unique( id, probability ); + ptr.reset( new Single_trait_creator( id, probability ) ); } else if( obj.has_member( "group" ) ) { - ptr = std::make_unique( trait_group::Trait_group_tag( - obj.get_string( "group" ) ), - probability ); + ptr.reset( new Trait_group_creator( trait_group::Trait_group_tag( obj.get_string( "group" ) ), + probability ) ); } if( !ptr ) { diff --git a/src/mutation_ui.cpp b/src/mutation_ui.cpp index 751cf3a734807..61deee6f1f59a 100644 --- a/src/mutation_ui.cpp +++ b/src/mutation_ui.cpp @@ -21,7 +21,7 @@ static void draw_exam_window( const catacurses::window &win, const int border_y { const int width = getmaxx( win ); mvwputch( win, border_y, 0, BORDER_COLOR, LINE_XXXO ); - mvwhline( win, point( 1, border_y ), LINE_OXOX, width - 2 ); + mvwhline( win, border_y, 1, LINE_OXOX, width - 2 ); mvwputch( win, border_y, width - 1, BORDER_COLOR, LINE_XOXX ); } @@ -104,19 +104,19 @@ void player::power_mutations() int WIDTH = FULL_SCREEN_WIDTH + ( TERMX - FULL_SCREEN_WIDTH ) / 2; int START_X = ( TERMX - WIDTH ) / 2; int START_Y = ( TERMY - HEIGHT ) / 2; - catacurses::window wBio = catacurses::newwin( HEIGHT, WIDTH, point( START_X, START_Y ) ); + catacurses::window wBio = catacurses::newwin( HEIGHT, WIDTH, START_Y, START_X ); // Description window @ the bottom of the bionic window int DESCRIPTION_START_Y = START_Y + HEIGHT - DESCRIPTION_HEIGHT - 1; int DESCRIPTION_LINE_Y = DESCRIPTION_START_Y - START_Y - 1; catacurses::window w_description = catacurses::newwin( DESCRIPTION_HEIGHT, WIDTH - 2, - point( START_X + 1, DESCRIPTION_START_Y ) ); + DESCRIPTION_START_Y, START_X + 1 ); // Title window int TITLE_START_Y = START_Y + 1; int HEADER_LINE_Y = TITLE_HEIGHT + 1; // + lines with text in titlebar, local - catacurses::window w_title = catacurses::newwin( TITLE_HEIGHT, WIDTH - 2, point( START_X + 1, - TITLE_START_Y ) ); + catacurses::window w_title = catacurses::newwin( TITLE_HEIGHT, WIDTH - 2, TITLE_START_Y, + START_X + 1 ); int scroll_position = 0; int second_column = 32 + ( TERMX - FULL_SCREEN_WIDTH ) / @@ -152,7 +152,7 @@ void player::power_mutations() werase( wBio ); draw_border( wBio, BORDER_COLOR, _( " MUTATIONS " ) ); // Draw line under title - mvwhline( wBio, point( 1, HEADER_LINE_Y ), LINE_OXOX, WIDTH - 2 ); + mvwhline( wBio, HEADER_LINE_Y, 1, LINE_OXOX, WIDTH - 2 ); // Draw symbols to connect additional lines to border mvwputch( wBio, HEADER_LINE_Y, 0, BORDER_COLOR, LINE_XXXO ); // |- mvwputch( wBio, HEADER_LINE_Y, WIDTH - 1, BORDER_COLOR, LINE_XOXX ); // -| diff --git a/src/ncurses_def.cpp b/src/ncurses_def.cpp index 7c4a41e5a0cae..565708111dfa6 100644 --- a/src/ncurses_def.cpp +++ b/src/ncurses_def.cpp @@ -30,9 +30,10 @@ static void curses_check_result( const int result, const int expected, const cha } } -catacurses::window catacurses::newwin( const int nlines, const int ncols, const point &begin ) +catacurses::window catacurses::newwin( const int nlines, const int ncols, const int begin_y, + const int begin_x ) { - const auto w = ::newwin( nlines, ncols, begin.y, begin.x ); // TODO: check for errors + const auto w = ::newwin( nlines, ncols, begin_y, begin_x ); // TODO: check for errors return std::shared_ptr( w, []( void *const w ) { ::curses_check_result( ::delwin( static_cast<::WINDOW *>( w ) ), OK, "delwin" ); } ); @@ -88,14 +89,14 @@ void catacurses::wattron( const window &win, const nc_color &attrs ) return curses_check_result( ::wattron( win.get<::WINDOW>(), attrs ), OK, "wattron" ); } -void catacurses::wmove( const window &win, const point &p ) +void catacurses::wmove( const window &win, const int y, const int x ) { - return curses_check_result( ::wmove( win.get<::WINDOW>(), p.y, p.x ), OK, "wmove" ); + return curses_check_result( ::wmove( win.get<::WINDOW>(), y, x ), OK, "wmove" ); } -void catacurses::mvwprintw( const window &win, const point &p, const std::string &text ) +void catacurses::mvwprintw( const window &win, const int y, const int x, const std::string &text ) { - return curses_check_result( ::mvwprintw( win.get<::WINDOW>(), p.y, p.x, "%s", text.c_str() ), + return curses_check_result( ::mvwprintw( win.get<::WINDOW>(), y, x, "%s", text.c_str() ), OK, "mvwprintw" ); } @@ -132,21 +133,21 @@ void catacurses::wborder( const window &win, const chtype ls, const chtype rs, c "wborder" ); } -void catacurses::mvwhline( const window &win, const point &p, const chtype ch, const int n ) +void catacurses::mvwhline( const window &win, const int y, const int x, const chtype ch, + const int n ) { - return curses_check_result( ::mvwhline( win.get<::WINDOW>(), p.y, p.x, ch, n ), OK, - "mvwhline" ); + return curses_check_result( ::mvwhline( win.get<::WINDOW>(), y, x, ch, n ), OK, "mvwhline" ); } -void catacurses::mvwvline( const window &win, const point &p, const chtype ch, const int n ) +void catacurses::mvwvline( const window &win, const int y, const int x, const chtype ch, + const int n ) { - return curses_check_result( ::mvwvline( win.get<::WINDOW>(), p.y, p.x, ch, n ), OK, - "mvwvline" ); + return curses_check_result( ::mvwvline( win.get<::WINDOW>(), y, x, ch, n ), OK, "mvwvline" ); } -void catacurses::mvwaddch( const window &win, const point &p, const chtype ch ) +void catacurses::mvwaddch( const window &win, const int y, const int x, const chtype ch ) { - return curses_check_result( ::mvwaddch( win.get<::WINDOW>(), p.y, p.x, ch ), OK, "mvwaddch" ); + return curses_check_result( ::mvwaddch( win.get<::WINDOW>(), y, x, ch ), OK, "mvwaddch" ); } void catacurses::waddch( const window &win, const chtype ch ) @@ -260,7 +261,8 @@ input_event input_manager::get_input_event() MEVENT event; if( getmouse( &event ) == OK ) { rval.type = CATA_INPUT_MOUSE; - rval.mouse_pos = point( event.x, event.y ) - point( VIEW_OFFSET_X, VIEW_OFFSET_Y ); + rval.mouse_x = event.x - VIEW_OFFSET_X; + rval.mouse_y = event.y - VIEW_OFFSET_Y; if( event.bstate & BUTTON1_CLICKED ) { rval.add_input( MOUSE_BUTTON_LEFT ); } else if( event.bstate & BUTTON3_CLICKED ) { diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index f65e791622b0d..fc25dac0b3a76 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -20,7 +20,6 @@ #include "cata_utility.h" #include "catacharset.h" #include "game.h" -#include "ime.h" #include "input.h" #include "json.h" #include "mapsharing.h" @@ -442,7 +441,7 @@ bool avatar::create( character_type type, const std::string &tempname ) catacurses::window w; if( type != PLTYPE_NOW && type != PLTYPE_FULL_RANDOM ) { - w = catacurses::newwin( TERMY, TERMX, point_zero ); + w = catacurses::newwin( TERMY, TERMX, 0, 0 ); } int tab = 0; @@ -743,7 +742,7 @@ tab_direction set_points( const catacurses::window &w, avatar &, points_left &po tab_direction retval = tab_direction::NONE; const int content_height = TERMY - 6; catacurses::window w_description = catacurses::newwin( content_height, TERMX - 35, - point( 31 + getbegx( w ), 5 + getbegy( w ) ) ); + 5 + getbegy( w ), 31 + getbegx( w ) ); draw_tabs( w, _( "POINTS" ) ); @@ -843,7 +842,8 @@ tab_direction set_stats( const catacurses::window &w, avatar &u, points_left &po ctxt.register_action( "QUIT" ); int read_spd; catacurses::window w_description = catacurses::newwin( 8, TERMX - iSecondColumn - 1, - point( iSecondColumn + getbegx( w ), 6 + getbegy( w ) ) ); + 6 + getbegy( w ), + iSecondColumn + getbegx( w ) ); // There is no map loaded currently, so any access to the map will // fail (player::suffer, called from player::reset_stats), might access // the map: @@ -1045,8 +1045,8 @@ tab_direction set_traits( const catacurses::window &w, avatar &u, points_left &p draw_tabs( w, _( "TRAITS" ) ); - catacurses::window w_description = - catacurses::newwin( 3, TERMX - 2, point( 1 + getbegx( w ), TERMY - 4 + getbegy( w ) ) ); + catacurses::window w_description = catacurses::newwin( 3, TERMX - 2, TERMY - 4 + getbegy( w ), + 1 + getbegx( w ) ); // Track how many good / bad POINTS we have; cap both at MAX_TRAIT_POINTS int num_good = 0; int num_bad = 0; @@ -1335,16 +1335,15 @@ tab_direction set_profession( const catacurses::window &w, avatar &u, points_lef const int iContentHeight = TERMY - 10; int iStartPos = 0; - catacurses::window w_description = - catacurses::newwin( 4, TERMX - 2, point( 1 + getbegx( w ), TERMY - 5 + getbegy( w ) ) ); + catacurses::window w_description = catacurses::newwin( 4, TERMX - 2, + TERMY - 5 + getbegy( w ), 1 + getbegx( w ) ); - catacurses::window w_sorting = - catacurses::newwin( 1, 55, point( ( TERMX / 2 ) + getbegx( w ), 5 + getbegy( w ) ) ); - catacurses::window w_genderswap = - catacurses::newwin( 1, 55, point( ( TERMX / 2 ) + getbegx( w ), 6 + getbegy( w ) ) ); - catacurses::window w_items = - catacurses::newwin( iContentHeight - 2, 55, - point( ( TERMX / 2 ) + getbegx( w ), 7 + getbegy( w ) ) ); + catacurses::window w_sorting = catacurses::newwin( 1, 55, 5 + getbegy( w ), + ( TERMX / 2 ) + getbegx( w ) ); + catacurses::window w_genderswap = catacurses::newwin( 1, 55, 6 + getbegy( w ), + ( TERMX / 2 ) + getbegx( w ) ); + catacurses::window w_items = catacurses::newwin( iContentHeight - 2, 55, 7 + getbegy( w ), + ( TERMX / 2 ) + getbegx( w ) ); input_context ctxt( "NEW_CHAR_PROFESSIONS" ); ctxt.register_cardinal(); @@ -1659,7 +1658,7 @@ tab_direction set_skills( const catacurses::window &w, avatar &u, points_left &p draw_tabs( w, _( "SKILLS" ) ); const int iContentHeight = TERMY - 6; catacurses::window w_description = catacurses::newwin( iContentHeight, TERMX - 35, - point( 31 + getbegx( w ), 5 + getbegy( w ) ) ); + 5 + getbegy( w ), 31 + getbegx( w ) ); auto sorted_skills = Skill::get_skills_sorted_by( []( const Skill & a, const Skill & b ) { return a.name() < b.name(); @@ -1877,22 +1876,18 @@ tab_direction set_scenario( const catacurses::window &w, avatar &u, points_left const int iContentHeight = TERMY - 10; int iStartPos = 0; - catacurses::window w_description = - catacurses::newwin( 4, TERMX - 2, point( 1 + getbegx( w ), TERMY - 5 + getbegy( w ) ) ); - catacurses::window w_sorting = - catacurses::newwin( 2, ( TERMX / 2 ) - 1, - point( ( TERMX / 2 ) + getbegx( w ), 5 + getbegy( w ) ) ); - catacurses::window w_profession = - catacurses::newwin( 4, ( TERMX / 2 ) - 1, - point( ( TERMX / 2 ) + getbegx( w ), 7 + getbegy( w ) ) ); - catacurses::window w_location = - catacurses::newwin( 3, ( TERMX / 2 ) - 1, - point( ( TERMX / 2 ) + getbegx( w ), 11 + getbegy( w ) ) ); + catacurses::window w_description = catacurses::newwin( 4, TERMX - 2, TERMY - 5 + getbegy( w ), + 1 + getbegx( w ) ); + catacurses::window w_sorting = catacurses::newwin( 2, ( TERMX / 2 ) - 1, 5 + getbegy( w ), + ( TERMX / 2 ) + getbegx( w ) ); + catacurses::window w_profession = catacurses::newwin( 4, ( TERMX / 2 ) - 1, 7 + getbegy( w ), + ( TERMX / 2 ) + getbegx( w ) ); + catacurses::window w_location = catacurses::newwin( 3, ( TERMX / 2 ) - 1, 11 + getbegy( w ), + ( TERMX / 2 ) + getbegx( w ) ); // 9 = 2 + 4 + 3, so we use rest of space for flags - catacurses::window w_flags = - catacurses::newwin( iContentHeight - 9, ( TERMX / 2 ) - 1, - point( ( TERMX / 2 ) + getbegx( w ), 14 + getbegy( w ) ) ); + catacurses::window w_flags = catacurses::newwin( iContentHeight - 9, ( TERMX / 2 ) - 1, + 14 + getbegy( w ), ( TERMX / 2 ) + getbegx( w ) ); input_context ctxt( "NEW_CHAR_SCENARIOS" ); ctxt.register_cardinal(); @@ -2174,25 +2169,16 @@ tab_direction set_description( const catacurses::window &w, avatar &you, const b { draw_tabs( w, _( "DESCRIPTION" ) ); - catacurses::window w_name = - catacurses::newwin( 2, 42, point( getbegx( w ) + 2, getbegy( w ) + 5 ) ); - catacurses::window w_gender = - catacurses::newwin( 2, 33, point( getbegx( w ) + 46, getbegy( w ) + 5 ) ); - catacurses::window w_location = - catacurses::newwin( 1, 76, point( getbegx( w ) + 2, getbegy( w ) + 7 ) ); - catacurses::window w_stats = - catacurses::newwin( 6, 20, point( getbegx( w ) + 2, getbegy( w ) + 9 ) ); - catacurses::window w_traits = - catacurses::newwin( 13, 24, point( getbegx( w ) + 22, getbegy( w ) + 9 ) ); - catacurses::window w_scenario = - catacurses::newwin( 1, 33, point( getbegx( w ) + 46, getbegy( w ) + 9 ) ); - catacurses::window w_profession = - catacurses::newwin( 1, 33, point( getbegx( w ) + 46, getbegy( w ) + 10 ) ); - catacurses::window w_skills = - catacurses::newwin( 9, 33, point( getbegx( w ) + 46, getbegy( w ) + 11 ) ); - catacurses::window w_guide = - catacurses::newwin( TERMY - getbegy( w ) - 19 - 1, TERMX - 3, - point( getbegx( w ) + 2, getbegy( w ) + 19 ) ); + catacurses::window w_name = catacurses::newwin( 2, 42, getbegy( w ) + 5, getbegx( w ) + 2 ); + catacurses::window w_gender = catacurses::newwin( 2, 33, getbegy( w ) + 5, getbegx( w ) + 46 ); + catacurses::window w_location = catacurses::newwin( 1, 76, getbegy( w ) + 7, getbegx( w ) + 2 ); + catacurses::window w_stats = catacurses::newwin( 6, 20, getbegy( w ) + 9, getbegx( w ) + 2 ); + catacurses::window w_traits = catacurses::newwin( 13, 24, getbegy( w ) + 9, getbegx( w ) + 22 ); + catacurses::window w_scenario = catacurses::newwin( 1, 33, getbegy( w ) + 9, getbegx( w ) + 46 ); + catacurses::window w_profession = catacurses::newwin( 1, 33, getbegy( w ) + 10, getbegx( w ) + 46 ); + catacurses::window w_skills = catacurses::newwin( 9, 33, getbegy( w ) + 11, getbegx( w ) + 46 ); + catacurses::window w_guide = catacurses::newwin( TERMY - getbegy( w ) - 19 - 1, TERMX - 3, + getbegy( w ) + 19, getbegx( w ) + 2 ); draw_points( w, points ); @@ -2232,9 +2218,6 @@ tab_direction set_description( const catacurses::window &w, avatar &you, const b } else if( !get_option( "DEF_CHAR_NAME" ).empty() ) { you.name = get_option( "DEF_CHAR_NAME" ); } - - // do not switch IME mode now, but restore previous mode on return - ime_sentry sentry( ime_sentry::keep ); do { if( redraw ) { //Draw the line between editable and non-editable stuff. diff --git a/src/npc.cpp b/src/npc.cpp index a33ddf1540769..9a151ea6d3f4e 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -106,7 +106,8 @@ void starting_clothes( npc &who, const npc_class_id &type, bool male ); void starting_inv( npc &who, const npc_class_id &type ); npc::npc() - : restock( calendar::before_time_starts ) + : player() + , restock( calendar::before_time_starts ) , companion_mission_time( calendar::before_time_starts ) , companion_mission_time_ret( calendar::before_time_starts ) , last_updated( calendar::turn ) @@ -520,16 +521,12 @@ void starting_clothes( npc &who, const npc_class_id &type, bool male ) ret.push_back( random_item_from( type, "extra" ) ); } - for( item &it : who.worn ) { - it.on_takeoff( who ); - } who.worn.clear(); for( item &it : ret ) { if( it.has_flag( "VARSIZE" ) ) { it.item_tags.insert( "FIT" ); } if( who.can_wear( it ).success() ) { - it.on_wear( who ); who.worn.push_back( it ); it.set_owner( who.my_fac ); } @@ -675,7 +672,8 @@ void npc::spawn_at_precise( const point &submap_offset, const tripoint &square ) tripoint npc::global_square_location() const { - return sm_to_ms_copy( submap_coords ) + tripoint( posx() % SEEX, posy() % SEEY, position.z ); + return tripoint( submap_coords.x * SEEX + posx() % SEEX, submap_coords.y * SEEY + posy() % SEEY, + position.z ); } void npc::place_on_map() @@ -1063,7 +1061,7 @@ float npc::vehicle_danger( int radius ) const int danger = 0; // TODO: check for most dangerous vehicle? - for( size_t i = 0; i < vehicles.size(); ++i ) { + for( unsigned int i = 0; i < vehicles.size(); ++i ) { const wrapped_vehicle &wrapped_veh = vehicles[i]; if( wrapped_veh.v->is_moving() ) { // FIXME: this can't be the right way to do this @@ -1181,11 +1179,11 @@ void npc::decide_needs() for( auto &i : slice ) { item inventory_item = i->front(); if( inventory_item.is_food( ) ) { - needrank[ need_food ] += nutrition_for( inventory_item ) / 4.0; - needrank[ need_drink ] += inventory_item.get_comestible()->quench / 4.0; + needrank[ need_food ] += nutrition_for( inventory_item ) / 4; + needrank[ need_drink ] += inventory_item.get_comestible()->quench / 4; } else if( inventory_item.is_food_container() ) { - needrank[ need_food ] += nutrition_for( inventory_item.contents.front() ) / 4.0; - needrank[ need_drink ] += inventory_item.contents.front().get_comestible()->quench / 4.0; + needrank[ need_food ] += nutrition_for( inventory_item.contents.front() ) / 4; + needrank[ need_drink ] += inventory_item.contents.front().get_comestible()->quench / 4; } } needs.clear(); @@ -1282,60 +1280,6 @@ bool npc::wants_to_buy( const item &/*it*/, int at_price, int /*market_price*/ ) return at_price >= 80; } -// Will the NPC freely exchange items with the player? -bool npc::will_exchange_items_freely() const -{ - return is_player_ally(); -} - -// What's the maximum credit the NPC is willing to extend to the player? -// This is currently very scrooge-like; NPCs are only likely to extend a few dollars -// of credit at most. -int npc::max_credit_extended() const -{ - if( is_player_ally() ) { - return INT_MAX; - } - - const int credit_trust = 50; - const int credit_value = 50; - const int credit_fear = 50; - const int credit_altruism = 100; - const int credit_anger = -200; - - return std::max( 0, - op_of_u.trust * credit_trust + - op_of_u.value * credit_value + - op_of_u.fear * credit_fear + - personality.altruism * credit_altruism + - op_of_u.anger * credit_anger - ); -} - -// How much is the NPC willing to owe the player? -// This is much more generous, as it's the essentially the player holding the risk here. -int npc::max_willing_to_owe() const -{ - if( is_player_ally() ) { - return INT_MAX; - } - - const int credit_trust = 10000; - const int credit_value = 10000; - const int credit_fear = 10000; - const int credit_altruism = 0; - const int credit_anger = -10000; - - return std::max( 0, - op_of_u.trust * credit_trust + - op_of_u.value * credit_value + - op_of_u.fear * credit_fear + - personality.altruism * credit_altruism + - op_of_u.anger * credit_anger - ); - -} - void npc::shop_restock() { if( calendar::turn - restock < 3_days ) { @@ -1695,7 +1639,10 @@ bool npc::is_assigned_to_camp() const if( !bcp ) { return false; } - return !has_companion_mission() && mission == NPC_MISSION_GUARD_ALLY; + if( !has_companion_mission() && mission == NPC_MISSION_GUARD_ALLY ) { + return true; + } + return false; } bool npc::is_enemy() const @@ -1815,7 +1762,7 @@ bool npc::emergency() const bool npc::emergency( float danger ) const { - return ( danger > ( personality.bravery * 3 * hp_percentage() ) / 100.0 ); + return ( danger > ( personality.bravery * 3 * hp_percentage() ) / 100 ); } //Check if this npc is currently in the list of active npcs. diff --git a/src/npc.h b/src/npc.h index 9d3a2cf5fc7d5..87495f2d56c5b 100644 --- a/src/npc.h +++ b/src/npc.h @@ -170,14 +170,14 @@ struct npc_opinion { int fear; int value; int anger; - int owed; // Positive when the npc owes the player. Negative if player owes them. + int owed; npc_opinion() { trust = 0; fear = 0; value = 0; anger = 0; - owed = 0; + owed = 0; } npc_opinion( int T, int F, int V, int A, int O ) : @@ -877,10 +877,6 @@ class npc : public player bool wants_to_buy( const item &it ) const; bool wants_to_buy( const item &/*it*/, int at_price, int /*market_price*/ ) const; - bool will_exchange_items_freely() const; - int max_credit_extended() const; - int max_willing_to_owe() const; - // AI helpers void regen_ai_cache(); const Creature *current_target() const; @@ -1006,7 +1002,7 @@ class npc : public player item &find_reloadable(); /** Finds ammo the NPC could use to reload a given object */ item_location find_usable_ammo( const item &weap ); - item_location find_usable_ammo( const item &weap ) const; + const item_location find_usable_ammo( const item &weap ) const; bool dispose_item( item_location &&obj, const std::string &prompt = std::string() ) override; diff --git a/src/npcmove.cpp b/src/npcmove.cpp index cf0e6e35af05c..6f9da489f7aee 100644 --- a/src/npcmove.cpp +++ b/src/npcmove.cpp @@ -314,8 +314,7 @@ std::vector npc::find_dangerous_explosives() const { std::vector result; - const auto active_items = g->m.get_active_items_in_radius( pos(), MAX_VIEW_DISTANCE, - special_item_type::explosive ); + const auto active_items = g->m.get_active_items_in_radius( pos(), MAX_VIEW_DISTANCE, "explosives" ); for( const auto &elem : active_items ) { const auto use = elem->type->get_use( "explosion" ); @@ -547,7 +546,6 @@ void npc::assess_danger() } else if( is_friendly( g->u ) ) { float min_danger = assessment >= NPC_DANGER_VERY_LOW ? NPC_DANGER_VERY_LOW : -10.0f; assessment = std::max( min_danger, assessment - player_diff * 0.5f ); - ai_cache.friends.emplace_back( g->shared_from( g->u ) ); } } assessment *= 0.1f; @@ -666,7 +664,7 @@ void npc::move() regen_ai_cache(); adjust_power_cbms(); - if( activity.id() == "ACT_OPERATION" ) { + if( has_effect( effect_under_op ) ) { execute_action( npc_player_activity ); return;// NPCs under operation should just stay still } @@ -1503,7 +1501,7 @@ item_location npc::find_usable_ammo( const item &weap ) return loc; } -item_location npc::find_usable_ammo( const item &weap ) const +const item_location npc::find_usable_ammo( const item &weap ) const { return const_cast( this )->find_usable_ammo( weap ); } @@ -1604,7 +1602,7 @@ bool npc::consume_cbm_items( const std::function &filter ) { invslice slice = inv.slice(); int index = -1; - for( size_t i = 0; i < slice.size(); i++ ) { + for( unsigned int i = 0; i < slice.size(); i++ ) { const item &it = slice[i]->front(); const item &real_item = it.is_container() ? it.contents.front() : it; if( filter( real_item ) ) { @@ -2163,7 +2161,7 @@ void npc::move_to( const tripoint &pt, bool no_bashing, std::set *nomo realnomove = nomove; } else { // create the no-move list - newnomove = std::make_unique>(); + newnomove.reset( new std::set() ); realnomove = newnomove.get(); } // other npcs should not try to move into this npc anymore, @@ -2825,7 +2823,7 @@ void npc::drop_items( int weight, int volume ) // First fill our ratio vectors, so we know which things to drop first invslice slice = inv.slice(); - for( size_t i = 0; i < slice.size(); i++ ) { + for( unsigned int i = 0; i < slice.size(); i++ ) { item &it = slice[i]->front(); double wgt_ratio = 0.0; double vol_ratio = 0.0; @@ -2833,8 +2831,8 @@ void npc::drop_items( int weight, int volume ) wgt_ratio = 99999; vol_ratio = 99999; } else { - wgt_ratio = units::to_gram( it.weight() ) / value( it ); - vol_ratio = it.volume() * 1.0 / units::legacy_volume_factor / value( it ); + wgt_ratio = it.weight() / 1_gram / value( it ); + vol_ratio = it.volume() / units::legacy_volume_factor / value( it ); } bool added_wgt = false; bool added_vol = false; @@ -2972,8 +2970,7 @@ bool npc::find_corpse_to_pulp() if( corpse == nullptr ) { // If we're following the player, don't wander off to pulp corpses const tripoint &around = is_walking_with() ? g->u.pos() : pos(); - for( const item_location &location : g->m.get_active_items_in_radius( around, range, - special_item_type::corpse ) ) { + for( const item_location &location : g->m.get_active_items_in_radius( around, range, "corpse" ) ) { corpse = check_tile( location.position() ); if( corpse != nullptr ) { @@ -3478,7 +3475,7 @@ bool npc::consume_food() int want_hunger = get_hunger(); int want_quench = get_thirst(); invslice slice = inv.slice(); - for( size_t i = 0; i < slice.size(); i++ ) { + for( unsigned int i = 0; i < slice.size(); i++ ) { const item &it = slice[i]->front(); const item &food_item = it.is_food_container() ? it.contents.front() : it; @@ -3553,7 +3550,7 @@ void npc::mug_player( player &mark ) double best_value = minimum_item_value() * value_mod; int item_index = INT_MIN; invslice slice = mark.inv.slice(); - for( size_t i = 0; i < slice.size(); i++ ) { + for( unsigned int i = 0; i < slice.size(); i++ ) { if( value( slice[i]->front() ) >= best_value && can_pickVolume( slice[i]->front(), true ) && can_pickWeight( slice[i]->front(), true ) ) { @@ -3791,7 +3788,7 @@ void npc::go_to_omt_destination() omt_path.pop_back(); } if( !omt_path.empty() ) { - point omt_diff = omt_path.back().xy() - omt_pos.xy(); + point omt_diff = point( omt_path.back().x - omt_pos.x, omt_path.back().y - omt_pos.y ); if( omt_diff.x > 3 || omt_diff.x < -3 || omt_diff.y > 3 || omt_diff.y < -3 ) { // we've gone wandering somehow, reset destination. if( !is_player_ally() ) { @@ -3803,7 +3800,7 @@ void npc::go_to_omt_destination() } } tripoint sm_tri = g->m.getlocal( sm_to_ms_copy( omt_to_sm_copy( omt_path.back() ) ) ); - tripoint centre_sub = sm_tri + point( SEEX, SEEY ); + tripoint centre_sub = tripoint( sm_tri.x + SEEX, sm_tri.y + SEEY, sm_tri.z ); if( !g->m.passable( centre_sub ) ) { auto candidates = g->m.points_in_radius( centre_sub, 2 ); for( const auto &elem : candidates ) { diff --git a/src/npctalk.cpp b/src/npctalk.cpp index 441758279cd7d..038aedc0e7399 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -19,7 +19,6 @@ // needed for the workaround for the std::to_string bug in some compilers #include "clzones.h" #include "compatibility.h" // IWYU pragma: keep -#include "condition.h" #include "debug.h" #include "faction_camp.h" #include "game.h" @@ -601,11 +600,6 @@ void npc::talk_to_u( bool text_only, bool radio_contact ) chatbin.check_missions(); - // For each active mission we have, let the mission know we talked to this NPC. - for( auto &mission : g->u.get_active_missions() ) { - mission->on_talk_with_npc( this->getID() ); - } - for( auto &mission : chatbin.missions_assigned ) { if( mission->get_assigned_player_id() == g->u.getID() ) { d.missions_assigned.push_back( mission ); @@ -972,7 +966,7 @@ talk_response &dialogue::add_response( const std::string &text, const std::strin const bool first ) { talk_response result = talk_response(); - result.truetext = no_translation( text ); + result.truetext = text; result.truefalse_condition = []( const dialogue & ) { return true; }; @@ -1072,7 +1066,7 @@ void dialogue::gen_responses( const talk_topic &the_topic ) p->chatbin.missions.front(), true ); } else { for( auto &mission : p->chatbin.missions ) { - add_response( mission->get_type().tname(), "TALK_MISSION_OFFER", mission, true ); + add_response( mission->get_type().name, "TALK_MISSION_OFFER", mission, true ); } } } else if( topic == "TALK_MISSION_LIST_ASSIGNED" ) { @@ -1080,7 +1074,7 @@ void dialogue::gen_responses( const talk_topic &the_topic ) add_response( _( "I have news." ), "TALK_MISSION_INQUIRE", missions_assigned.front() ); } else { for( auto &miss_it : missions_assigned ) { - add_response( miss_it->get_type().tname(), "TALK_MISSION_INQUIRE", miss_it ); + add_response( miss_it->get_type().name, "TALK_MISSION_INQUIRE", miss_it ); } } } else if( topic == "TALK_TRAIN" ) { @@ -1443,7 +1437,7 @@ void dialogue::add_topic( const talk_topic &topic ) talk_data talk_response::create_option_line( const dialogue &d, const char letter ) { std::string ftext; - text = ( truefalse_condition( d ) ? truetext : falsetext ).translated(); + text = truefalse_condition( d ) ? truetext : falsetext; // dialogue w/ a % chance to work if( trial.type == TALK_TRIAL_NONE || trial.type == TALK_TRIAL_CONDITION ) { // regular dialogue @@ -1633,7 +1627,7 @@ talk_trial::talk_trial( JsonObject jo ) difficulty = jo.get_int( "difficulty" ); } - read_condition( jo, "condition", condition, false ); + read_dialogue_condition( jo, condition, false ); if( jo.has_array( "mod" ) ) { JsonArray ja = jo.get_array( "mod" ); @@ -1677,6 +1671,20 @@ talk_effect_fun_t::talk_effect_fun_t( std::function f }; } +// throws an error on failure, so no need to return +static std::string get_talk_varname( JsonObject jo, const std::string &member, + bool check_value = true ) +{ + if( !jo.has_string( "type" ) || !jo.has_string( "context" ) || + ( check_value && !jo.has_string( "value" ) ) ) { + jo.throw_error( "invalid " + member + " condition in " + jo.str() ); + } + const std::string &var_basename = jo.get_string( member ); + const std::string &type_var = jo.get_string( "type" ); + const std::string &var_context = jo.get_string( "context" ); + return "npctalk_var_" + type_var + "_" + var_context + "_" + var_basename; +} + void talk_effect_fun_t::set_companion_mission( const std::string &role_id ) { function = [role_id]( const dialogue & d ) { @@ -2086,16 +2094,6 @@ void talk_effect_fun_t::set_npc_gets_item( bool to_use ) }; } -void talk_effect_fun_t::set_add_mission( const std::string mission_id ) -{ - function = [mission_id]( const dialogue & d ) { - npc &p = *d.beta; - mission *miss = mission::reserve_new( mission_type_id( mission_id ), p.getID() ); - miss->assign( g->u ); - p.chatbin.missions_assigned.push_back( miss ); - }; -} - void talk_effect_t::set_effect_consequence( const talk_effect_fun_t &fun, dialogue_consequence con ) { effects.push_back( fun ); @@ -2249,9 +2247,6 @@ void talk_effect_t::parse_sub_effect( JsonObject jo ) } else if( jo.has_string( "npc_change_class" ) ) { std::string class_name = jo.get_string( "npc_change_class" ); subeffect_fun.set_npc_change_class( class_name ); - } else if( jo.has_string( "add_mission" ) ) { - std::string mission_id = jo.get_string( "add_mission" ); - subeffect_fun.set_add_mission( mission_id ); } else if( jo.has_string( "npc_change_faction" ) ) { std::string faction_name = jo.get_string( "npc_change_faction" ); subeffect_fun.set_npc_change_faction( faction_name ); @@ -2449,11 +2444,11 @@ talk_response::talk_response( JsonObject jo ) { if( jo.has_member( "truefalsetext" ) ) { JsonObject truefalse_jo = jo.get_object( "truefalsetext" ); - read_condition( truefalse_jo, "condition", truefalse_condition, true ); - truetext = translation( truefalse_jo.get_string( "true" ) ); - falsetext = translation( truefalse_jo.get_string( "false" ) ); + read_dialogue_condition( truefalse_jo, truefalse_condition, true ); + truetext = _( truefalse_jo.get_string( "true" ) ); + falsetext = _( truefalse_jo.get_string( "false" ) ); } else { - truetext = translation( jo.get_string( "text" ) ); + truetext = _( jo.get_string( "text" ) ); truefalse_condition = []( const dialogue & ) { return true; }; @@ -2523,11 +2518,942 @@ json_talk_response::json_talk_response( JsonObject jo ) load_condition( jo ); } +void read_dialogue_condition( JsonObject &jo, std::function &condition, + bool default_val ) +{ + const auto null_function = [default_val]( const dialogue & ) { + return default_val; + }; + + static const std::string member_name( "condition" ); + if( !jo.has_member( member_name ) ) { + condition = null_function; + } else if( jo.has_string( member_name ) ) { + const std::string type = jo.get_string( member_name ); + conditional_t sub_condition( type ); + condition = [sub_condition]( const dialogue & d ) { + return sub_condition( d ); + }; + } else if( jo.has_object( member_name ) ) { + const JsonObject con_obj = jo.get_object( member_name ); + conditional_t sub_condition( con_obj ); + condition = [sub_condition]( const dialogue & d ) { + return sub_condition( d ); + }; + } else { + jo.throw_error( "invalid condition syntax", member_name ); + } +} + +void conditional_t::set_has_any_trait( JsonObject &jo, const std::string &member, bool is_npc ) +{ + std::vector traits_to_check; + for( auto &&f : jo.get_string_array( member ) ) { // *NOPAD* + traits_to_check.emplace_back( f ); + } + condition = [traits_to_check, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + for( const auto &trait : traits_to_check ) { + if( actor->has_trait( trait ) ) { + return true; + } + } + return false; + }; +} + +void conditional_t::set_has_trait( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string &trait_to_check = jo.get_string( member ); + condition = [trait_to_check, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->has_trait( trait_id( trait_to_check ) ); + }; +} + +void conditional_t::set_has_trait_flag( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string &trait_flag_to_check = jo.get_string( member ); + condition = [trait_flag_to_check, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + if( trait_flag_to_check == "MUTATION_THRESHOLD" ) { + return actor->crossed_threshold(); + } + return actor->has_trait_flag( trait_flag_to_check ); + }; +} + +void conditional_t::set_has_activity( bool is_npc ) +{ + condition = [is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + return d.beta->has_activity(); + } else { + if( !actor->activity.is_null() ) { + return true; + } + } + return false; + }; +} + +void conditional_t::set_npc_has_class( JsonObject &jo ) +{ + const std::string &class_to_check = jo.get_string( "npc_has_class" ); + condition = [class_to_check]( const dialogue & d ) { + return d.beta->myclass == npc_class_id( class_to_check ); + }; +} + +void conditional_t::set_u_has_mission( JsonObject &jo ) +{ + const std::string &mission = jo.get_string( "u_has_mission" ); + condition = [mission]( const dialogue & ) { + for( auto miss_it : g->u.get_active_missions() ) { + if( miss_it->mission_id() == mission_type_id( mission ) ) { + return true; + } + } + return false; + }; +} + +void conditional_t::set_has_strength( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const int min_strength = jo.get_int( member ); + condition = [min_strength, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->str_cur >= min_strength; + }; +} + +void conditional_t::set_has_dexterity( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const int min_dexterity = jo.get_int( member ); + condition = [min_dexterity, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->dex_cur >= min_dexterity; + }; +} + +void conditional_t::set_has_intelligence( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const int min_intelligence = jo.get_int( member ); + condition = [min_intelligence, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->int_cur >= min_intelligence; + }; +} + +void conditional_t::set_has_perception( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const int min_perception = jo.get_int( member ); + condition = [min_perception, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->per_cur >= min_perception; + }; +} + +void conditional_t::set_is_wearing( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string &item_id = jo.get_string( member ); + condition = [item_id, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->is_wearing( item_id ); + }; +} + +void conditional_t::set_has_item( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string &item_id = jo.get_string( member ); + condition = [item_id, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->charges_of( item_id ) > 0 || actor->has_amount( item_id, 1 ); + }; +} + +void conditional_t::set_has_items( JsonObject &jo, const std::string &member, bool is_npc ) +{ + JsonObject has_items = jo.get_object( member ); + if( !has_items.has_string( "item" ) || !has_items.has_int( "count" ) ) { + condition = []( const dialogue & ) { + return false; + }; + } else { + const std::string item_id = has_items.get_string( "item" ); + int count = has_items.get_int( "count" ); + condition = [item_id, count, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->has_charges( item_id, count ) || actor->has_amount( item_id, count ); + }; + } +} + +void conditional_t::set_has_item_category( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string category_id = jo.get_string( member ); + + size_t count = 1; + if( jo.has_int( "count" ) ) { + int tcount = jo.get_int( "count" ); + if( tcount > 1 && tcount < INT_MAX ) { + count = static_cast( tcount ); + } + } + + condition = [category_id, count, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + const auto items_with = actor->items_with( [category_id]( const item & it ) { + return it.get_category().id() == category_id; + } ); + return items_with.size() >= count; + }; +} + +void conditional_t::set_has_bionics( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string bionics_id = jo.get_string( member ); + condition = [bionics_id, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + if( bionics_id == "ANY" ) { + return actor->num_bionics() > 0 || actor->max_power_level > 0; + } + return actor->has_bionic( bionic_id( bionics_id ) ); + }; +} +void conditional_t::set_has_effect( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string &effect_id = jo.get_string( member ); + condition = [effect_id, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->has_effect( efftype_id( effect_id ) ); + }; +} + +void conditional_t::set_need( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string &need = jo.get_string( member ); + int amount = 0; + if( jo.has_int( "amount" ) ) { + amount = jo.get_int( "amount" ); + } else if( jo.has_string( "level" ) ) { + const std::string &level = jo.get_string( "level" ); + auto flevel = fatigue_level_strs.find( level ); + if( flevel != fatigue_level_strs.end() ) { + amount = static_cast( flevel->second ); + } + } + condition = [need, amount, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return ( actor->get_fatigue() > amount && need == "fatigue" ) || + ( actor->get_hunger() > amount && need == "hunger" ) || + ( actor->get_thirst() > amount && need == "thirst" ); + }; +} + +void conditional_t::set_at_om_location( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string &location = jo.get_string( member ); + condition = [location, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + const tripoint omt_pos = actor->global_omt_location(); + oter_id &omt_ref = overmap_buffer.ter( omt_pos ); + + if( location == "FACTION_CAMP_ANY" ) { + cata::optional bcp = overmap_buffer.find_camp( omt_pos.xy() ); + if( bcp ) { + return true; + } + // legacy check + const std::string &omt_str = omt_ref.id().c_str(); + return omt_str.find( "faction_base_camp" ) != std::string::npos; + } else { + return omt_ref == oter_id( location ); + } + }; +} + +void conditional_t::set_has_var( JsonObject &jo, const std::string &member, bool is_npc ) +{ + const std::string var_name = get_talk_varname( jo, member, false ); + const std::string &value = jo.get_string( "value" ); + condition = [var_name, value, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->get_value( var_name ) == value; + }; +} + +void conditional_t::set_npc_role_nearby( JsonObject &jo ) +{ + const std::string &role = jo.get_string( "npc_role_nearby" ); + condition = [role]( const dialogue & d ) { + const std::vector available = g->get_npcs_if( [&]( const npc & guy ) { + return d.alpha->posz() == guy.posz() && guy.companion_mission_role_id == role && + ( rl_dist( d.alpha->pos(), guy.pos() ) <= 48 ); + } ); + return !available.empty(); + }; +} + +void conditional_t::set_npc_allies( JsonObject &jo ) +{ + const unsigned int min_allies = jo.get_int( "npc_allies" ); + condition = [min_allies]( const dialogue & ) { + return g->allies().size() >= min_allies; + }; +} + +void conditional_t::set_u_has_cash( JsonObject &jo ) +{ + const int min_cash = jo.get_int( "u_has_cash" ); + condition = [min_cash]( const dialogue & d ) { + return d.alpha->cash >= min_cash; + }; +} + +void conditional_t::set_u_are_owed( JsonObject &jo ) +{ + const int min_debt = jo.get_int( "u_are_owed" ); + condition = [min_debt]( const dialogue & d ) { + return d.beta->op_of_u.owed >= min_debt; + }; +} + +void conditional_t::set_npc_aim_rule( JsonObject &jo ) +{ + const std::string &setting = jo.get_string( "npc_aim_rule" ); + condition = [setting]( const dialogue & d ) { + auto rule = aim_rule_strs.find( setting ); + if( rule != aim_rule_strs.end() ) { + return d.beta->rules.aim == rule->second; + } + return false; + }; +} + +void conditional_t::set_npc_engagement_rule( JsonObject &jo ) +{ + const std::string &setting = jo.get_string( "npc_engagement_rule" ); + condition = [setting]( const dialogue & d ) { + auto rule = combat_engagement_strs.find( setting ); + if( rule != combat_engagement_strs.end() ) { + return d.beta->rules.engagement == rule->second; + } + return false; + }; +} + +void conditional_t::set_npc_cbm_reserve_rule( JsonObject &jo ) +{ + const std::string &setting = jo.get_string( "npc_cbm_reserve_rule" ); + condition = [setting]( const dialogue & d ) { + auto rule = cbm_reserve_strs.find( setting ); + if( rule != cbm_reserve_strs.end() ) { + return d.beta->rules.cbm_reserve == rule->second; + } + return false; + }; +} + +void conditional_t::set_npc_cbm_recharge_rule( JsonObject &jo ) +{ + const std::string &setting = jo.get_string( "npc_cbm_recharge_rule" ); + condition = [setting]( const dialogue & d ) { + auto rule = cbm_recharge_strs.find( setting ); + if( rule != cbm_recharge_strs.end() ) { + return d.beta->rules.cbm_recharge == rule->second; + } + return false; + }; +} + +void conditional_t::set_npc_rule( JsonObject &jo ) +{ + std::string rule = jo.get_string( "npc_rule" ); + condition = [rule]( const dialogue & d ) { + auto flag = ally_rule_strs.find( rule ); + if( flag != ally_rule_strs.end() ) { + return d.beta->rules.has_flag( flag->second.rule ); + } + return false; + }; +} + +void conditional_t::set_npc_override( JsonObject &jo ) +{ + std::string rule = jo.get_string( "npc_override" ); + condition = [rule]( const dialogue & d ) { + auto flag = ally_rule_strs.find( rule ); + if( flag != ally_rule_strs.end() ) { + return d.beta->rules.has_override_enable( flag->second.rule ); + } + return false; + }; +} + +void conditional_t::set_days_since( JsonObject &jo ) +{ + const unsigned int days = jo.get_int( "days_since_cataclysm" ); + condition = [days]( const dialogue & ) { + return to_turn( calendar::turn ) >= DAYS( days ); + }; +} + +void conditional_t::set_is_season( JsonObject &jo ) +{ + std::string season_name = jo.get_string( "is_season" ); + condition = [season_name]( const dialogue & ) { + const auto season = season_of_year( calendar::turn ); + return ( season == SPRING && season_name == "spring" ) || + ( season == SUMMER && season_name == "summer" ) || + ( season == AUTUMN && season_name == "autumn" ) || + ( season == WINTER && season_name == "winter" ); + }; +} + +void conditional_t::set_mission_goal( JsonObject &jo ) +{ + std::string mission_goal_str = jo.get_string( "mission_goal" ); + condition = [mission_goal_str]( const dialogue & d ) { + mission *miss = d.beta->chatbin.mission_selected; + const auto mgoal = mission_goal_strs.find( mission_goal_str ); + if( !miss || mgoal == mission_goal_strs.end() ) { + return false; + } + return miss->get_type().goal == mgoal->second; + }; +} + +void conditional_t::set_is_gender( bool is_male, bool is_npc ) +{ + condition = [is_male, is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return actor->male == is_male; + }; +} + +void conditional_t::set_no_assigned_mission() +{ + condition = []( const dialogue & d ) { + return d.missions_assigned.empty(); + }; +} + +void conditional_t::set_has_assigned_mission() +{ + condition = []( const dialogue & d ) { + return d.missions_assigned.size() == 1; + }; +} + +void conditional_t::set_has_many_assigned_missions() +{ + condition = []( const dialogue & d ) { + return d.missions_assigned.size() >= 2; + }; +} + +void conditional_t::set_no_available_mission() +{ + condition = []( const dialogue & d ) { + return d.beta->chatbin.missions.empty(); + }; +} + +void conditional_t::set_has_available_mission() +{ + condition = []( const dialogue & d ) { + return d.beta->chatbin.missions.size() == 1; + }; +} + +void conditional_t::set_has_many_available_missions() +{ + condition = []( const dialogue & d ) { + return d.beta->chatbin.missions.size() >= 2; + }; +} + +void conditional_t::set_mission_complete() +{ + condition = []( const dialogue & d ) { + mission *miss = d.beta->chatbin.mission_selected; + if( !miss ) { + return false; + } + return miss->is_complete( d.beta->getID() ); + }; +} + +void conditional_t::set_mission_incomplete() +{ + condition = []( const dialogue & d ) { + mission *miss = d.beta->chatbin.mission_selected; + if( !miss ) { + return false; + } + return !miss->is_complete( d.beta->getID() ); + }; +} + +void conditional_t::set_npc_available() +{ + condition = []( const dialogue & d ) { + return !d.beta->has_effect( effect_currently_busy ); + }; +} + +void conditional_t::set_npc_following() +{ + condition = []( const dialogue & d ) { + return d.beta->is_following(); + }; +} + +void conditional_t::set_npc_friend() +{ + condition = []( const dialogue & d ) { + return d.beta->is_friendly( g->u ); + }; +} + +void conditional_t::set_npc_hostile() +{ + condition = []( const dialogue & d ) { + return d.beta->is_enemy(); + }; +} + +void conditional_t::set_npc_train_skills() +{ + condition = []( const dialogue & d ) { + return !d.beta->skills_offered_to( *d.alpha ).empty(); + }; +} + +void conditional_t::set_npc_train_styles() +{ + condition = []( const dialogue & d ) { + return !d.beta->styles_offered_to( *d.alpha ).empty(); + }; +} + +void conditional_t::set_at_safe_space() +{ + condition = []( const dialogue & d ) { + return overmap_buffer.is_safe( d.beta->global_omt_location() ); + }; +} + +void conditional_t::set_can_stow_weapon( bool is_npc ) +{ + condition = [is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return !actor->unarmed_attack() && actor->can_pickVolume( actor->weapon ); + }; +} + +void conditional_t::set_has_weapon( bool is_npc ) +{ + condition = [is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + return !actor->unarmed_attack(); + }; +} + +void conditional_t::set_is_driving( bool is_npc ) +{ + condition = [is_npc]( const dialogue & d ) { + player *actor = d.alpha; + if( is_npc ) { + actor = dynamic_cast( d.beta ); + } + if( const optional_vpart_position vp = g->m.veh_at( actor->pos() ) ) { + return vp->vehicle().is_moving() && vp->vehicle().player_in_control( *actor ); + } + return false; + }; +} + +void conditional_t::set_has_stolen_item( bool is_npc ) +{ + ( void )is_npc; + condition = []( const dialogue & d ) { + player *actor = d.alpha; + npc &p = *d.beta; + bool found_in_inv = false; + for( auto &elem : actor->inv_dump() ) { + if( elem->get_old_owner() ) { + if( elem->get_old_owner()->id.str() == p.my_fac->id.str() ) { + found_in_inv = true; + } + } + } + return found_in_inv; + }; +} + +void conditional_t::set_is_day() +{ + condition = []( const dialogue & ) { + return !calendar::turn.is_night(); + }; +} + +void conditional_t::set_is_outside() +{ + condition = []( const dialogue & d ) { + const tripoint pos = g->m.getabs( d.beta->pos() ); + return !g->m.has_flag( TFLAG_INDOORS, pos ); + }; +} + +void conditional_t::set_u_has_camp() +{ + condition = []( const dialogue & ) { + return !g->u.camps.empty(); + }; +} + +void conditional_t::set_has_pickup_list() +{ + condition = []( const dialogue & d ) { + return !d.beta->rules.pickup_whitelist->empty(); + }; +} + +void conditional_t::set_is_by_radio() +{ + condition = []( const dialogue & d ) { + return d.by_radio; + }; +} + +void conditional_t::set_has_reason() +{ + condition = []( const dialogue & d ) { + return !d.reason.empty(); + }; +} + +conditional_t::conditional_t( JsonObject jo ) +{ + // improve the clarity of NPC setter functions + const bool is_npc = true; + bool found_sub_member = false; + const auto parse_array = []( JsonObject jo, const std::string & type ) { + std::vector conditionals; + JsonArray ja = jo.get_array( type ); + while( ja.has_more() ) { + if( ja.test_string() ) { + conditional_t type_condition( ja.next_string() ); + conditionals.emplace_back( type_condition ); + } else if( ja.test_object() ) { + conditional_t type_condition( ja.next_object() ); + conditionals.emplace_back( type_condition ); + } else { + ja.skip_value(); + } + } + return conditionals; + }; + if( jo.has_array( "and" ) ) { + std::vector and_conditionals = parse_array( jo, "and" ); + found_sub_member = true; + condition = [and_conditionals]( const dialogue & d ) { + for( const auto &cond : and_conditionals ) { + if( !cond( d ) ) { + return false; + } + } + return true; + }; + } else if( jo.has_array( "or" ) ) { + std::vector or_conditionals = parse_array( jo, "or" ); + found_sub_member = true; + condition = [or_conditionals]( const dialogue & d ) { + for( const auto &cond : or_conditionals ) { + if( cond( d ) ) { + return true; + } + } + return false; + }; + } else if( jo.has_object( "not" ) ) { + const conditional_t sub_condition = conditional_t( jo.get_object( "not" ) ); + found_sub_member = true; + condition = [sub_condition]( const dialogue & d ) { + return !sub_condition( d ); + }; + } else if( jo.has_string( "not" ) ) { + const conditional_t sub_condition = conditional_t( jo.get_string( "not" ) ); + found_sub_member = true; + condition = [sub_condition]( const dialogue & d ) { + return !sub_condition( d ); + }; + } + if( !found_sub_member ) { + for( const std::string &sub_member : dialogue_data::complex_conds ) { + if( jo.has_member( sub_member ) ) { + found_sub_member = true; + break; + } + } + } + if( jo.has_member( "u_has_any_trait" ) ) { + set_has_any_trait( jo, "u_has_any_trait" ); + } else if( jo.has_member( "npc_has_any_trait" ) ) { + set_has_any_trait( jo, "npc_has_any_trait", true ); + } else if( jo.has_member( "u_has_trait" ) ) { + set_has_trait( jo, "u_has_trait" ); + } else if( jo.has_member( "npc_has_trait" ) ) { + set_has_trait( jo, "npc_has_trait", true ); + } else if( jo.has_member( "u_has_trait_flag" ) ) { + set_has_trait_flag( jo, "u_has_trait_flag" ); + } else if( jo.has_member( "npc_has_trait_flag" ) ) { + set_has_trait_flag( jo, "npc_has_trait_flag", true ); + } else if( jo.has_member( "npc_has_class" ) ) { + set_npc_has_class( jo ); + } else if( jo.has_string( "npc_has_activity" ) ) { + set_has_activity( is_npc ); + } else if( jo.has_string( "u_has_mission" ) ) { + set_u_has_mission( jo ); + } else if( jo.has_int( "u_has_strength" ) ) { + set_has_strength( jo, "u_has_strength" ); + } else if( jo.has_int( "npc_has_strength" ) ) { + set_has_strength( jo, "npc_has_strength", is_npc ); + } else if( jo.has_int( "u_has_dexterity" ) ) { + set_has_dexterity( jo, "u_has_dexterity" ); + } else if( jo.has_int( "npc_has_dexterity" ) ) { + set_has_dexterity( jo, "npc_has_dexterity", is_npc ); + } else if( jo.has_int( "u_has_intelligence" ) ) { + set_has_intelligence( jo, "u_has_intelligence" ); + } else if( jo.has_int( "npc_has_intelligence" ) ) { + set_has_intelligence( jo, "npc_has_intelligence", is_npc ); + } else if( jo.has_int( "u_has_perception" ) ) { + set_has_perception( jo, "u_has_perception" ); + } else if( jo.has_int( "npc_has_perception" ) ) { + set_has_perception( jo, "npc_has_perception", is_npc ); + } else if( jo.has_string( "u_is_wearing" ) ) { + set_is_wearing( jo, "u_is_wearing" ); + } else if( jo.has_string( "npc_is_wearing" ) ) { + set_is_wearing( jo, "npc_is_wearing", is_npc ); + } else if( jo.has_string( "u_has_item" ) ) { + set_has_item( jo, "u_has_item" ); + } else if( jo.has_string( "npc_has_item" ) ) { + set_has_item( jo, "npc_has_item", is_npc ); + } else if( jo.has_member( "u_has_items" ) ) { + set_has_items( jo, "u_has_items" ); + } else if( jo.has_member( "npc_has_items" ) ) { + set_has_items( jo, "npc_has_items", is_npc ); + } else if( jo.has_string( "u_has_item_category" ) ) { + set_has_item_category( jo, "u_has_item_category" ); + } else if( jo.has_string( "npc_has_item_category" ) ) { + set_has_item_category( jo, "npc_has_item_category", is_npc ); + } else if( jo.has_string( "u_has_bionics" ) ) { + set_has_bionics( jo, "u_has_bionics" ); + } else if( jo.has_string( "npc_has_bionics" ) ) { + set_has_bionics( jo, "npc_has_bionics", is_npc ); + } else if( jo.has_string( "u_has_effect" ) ) { + set_has_effect( jo, "u_has_effect" ); + } else if( jo.has_string( "npc_has_effect" ) ) { + set_has_effect( jo, "npc_has_effect", is_npc ); + } else if( jo.has_string( "u_need" ) ) { + set_need( jo, "u_need" ); + } else if( jo.has_string( "npc_need" ) ) { + set_need( jo, "npc_need", is_npc ); + } else if( jo.has_string( "u_at_om_location" ) ) { + set_at_om_location( jo, "u_at_om_location" ); + } else if( jo.has_string( "npc_at_om_location" ) ) { + set_at_om_location( jo, "npc_at_om_location", is_npc ); + } else if( jo.has_string( "u_has_var" ) ) { + set_has_var( jo, "u_has_var" ); + } else if( jo.has_string( "npc_has_var" ) ) { + set_has_var( jo, "npc_has_var", is_npc ); + } else if( jo.has_string( "npc_role_nearby" ) ) { + set_npc_role_nearby( jo ); + } else if( jo.has_int( "npc_allies" ) ) { + set_npc_allies( jo ); + } else if( jo.has_int( "npc_service" ) ) { + set_npc_available(); + } else if( jo.has_int( "u_has_cash" ) ) { + set_u_has_cash( jo ); + } else if( jo.has_int( "u_are_owed" ) ) { + set_u_are_owed( jo ); + } else if( jo.has_string( "npc_aim_rule" ) ) { + set_npc_aim_rule( jo ); + } else if( jo.has_string( "npc_engagement_rule" ) ) { + set_npc_engagement_rule( jo ); + } else if( jo.has_string( "npc_cbm_reserve_rule" ) ) { + set_npc_cbm_reserve_rule( jo ); + } else if( jo.has_string( "npc_cbm_recharge_rule" ) ) { + set_npc_cbm_recharge_rule( jo ); + } else if( jo.has_string( "npc_rule" ) ) { + set_npc_rule( jo ); + } else if( jo.has_string( "npc_override" ) ) { + set_npc_override( jo ); + } else if( jo.has_int( "days_since_cataclysm" ) ) { + set_days_since( jo ); + } else if( jo.has_string( "is_season" ) ) { + set_is_season( jo ); + } else if( jo.has_string( "mission_goal" ) ) { + set_mission_goal( jo ); + } else { + for( const std::string &sub_member : dialogue_data::simple_string_conds ) { + if( jo.has_string( sub_member ) ) { + const conditional_t sub_condition( jo.get_string( sub_member ) ); + condition = [sub_condition]( const dialogue & d ) { + return sub_condition( d ); + }; + found_sub_member = true; + break; + } + } + } + if( !found_sub_member ) { + jo.throw_error( "unrecognized condition in " + jo.str() ); + } +} + +conditional_t::conditional_t( const std::string &type ) +{ + const bool is_npc = true; + if( type == "u_male" ) { + set_is_gender( true ); + } else if( type == "npc_male" ) { + set_is_gender( true, is_npc ); + } else if( type == "u_female" ) { + set_is_gender( false ); + } else if( type == "npc_female" ) { + set_is_gender( false, is_npc ); + } else if( type == "has_no_assigned_mission" ) { + set_no_assigned_mission(); + } else if( type == "has_assigned_mission" ) { + set_has_assigned_mission(); + } else if( type == "has_many_assigned_missions" ) { + set_has_many_assigned_missions(); + } else if( type == "has_no_available_mission" ) { + set_no_available_mission(); + } else if( type == "has_available_mission" ) { + set_has_available_mission(); + } else if( type == "has_many_available_missions" ) { + set_has_many_available_missions(); + } else if( type == "mission_complete" ) { + set_mission_complete(); + } else if( type == "mission_incomplete" ) { + set_mission_incomplete(); + } else if( type == "npc_available" ) { + set_npc_available(); + } else if( type == "npc_following" ) { + set_npc_following(); + } else if( type == "npc_friend" ) { + set_npc_friend(); + } else if( type == "npc_hostile" ) { + set_npc_hostile(); + } else if( type == "npc_train_skills" ) { + set_npc_train_skills(); + } else if( type == "npc_train_styles" ) { + set_npc_train_styles(); + } else if( type == "at_safe_space" ) { + set_at_safe_space(); + } else if( type == "u_can_stow_weapon" ) { + set_can_stow_weapon(); + } else if( type == "npc_can_stow_weapon" ) { + set_can_stow_weapon( is_npc ); + } else if( type == "u_has_weapon" ) { + set_has_weapon(); + } else if( type == "npc_has_weapon" ) { + set_has_weapon( is_npc ); + } else if( type == "u_driving" ) { + set_is_driving(); + } else if( type == "npc_driving" ) { + set_is_driving( is_npc ); + } else if( type == "npc_has_activity" ) { + set_has_activity( is_npc ); + } else if( type == "is_day" ) { + set_is_day(); + } else if( type == "u_has_stolen_item" ) { + set_has_stolen_item( is_npc ); + } else if( type == "is_outside" ) { + set_is_outside(); + } else if( type == "u_has_camp" ) { + set_u_has_camp(); + } else if( type == "has_pickup_list" ) { + set_has_pickup_list(); + } else if( type == "is_by_radio" ) { + set_is_by_radio(); + } else if( type == "has_reason" ) { + set_has_reason(); + } else { + condition = []( const dialogue & ) { + return false; + }; + } +} + void json_talk_response::load_condition( JsonObject &jo ) { is_switch = jo.get_bool( "switch", false ); is_default = jo.get_bool( "default", false ); - read_condition( jo, "condition", condition, true ); + read_dialogue_condition( jo, condition, true ); } bool json_talk_response::test_condition( const dialogue &d ) const @@ -2641,7 +3567,7 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) const std::string line = jo.get_string( "gendered_line" ); if( !jo.has_array( "relevant_genders" ) ) { jo.throw_error( - R"(dynamic line with "gendered_line" must also have "relevant_genders")" ); + "dynamic line with \"gendered_line\" must also have \"relevant_genders\"" ); } JsonArray ja = jo.get_array( "relevant_genders" ); std::vector relevant_genders; @@ -2657,18 +3583,18 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) return translate_gendered_line( line, relevant_genders, d ); }; } else { - conditional_t dcondition; + conditional_t dcondition; const dynamic_line_t yes = from_member( jo, "yes" ); const dynamic_line_t no = from_member( jo, "no" ); for( const std::string &sub_member : dialogue_data::simple_string_conds ) { if( jo.has_bool( sub_member ) ) { - dcondition = conditional_t( sub_member ); + dcondition = conditional_t( sub_member ); function = [dcondition, yes, no]( const dialogue & d ) { return ( dcondition( d ) ? yes : no )( d ); }; return; } else if( jo.has_member( sub_member ) ) { - dcondition = conditional_t( sub_member ); + dcondition = conditional_t( sub_member ); const dynamic_line_t yes_member = from_member( jo, sub_member ); function = [dcondition, yes_member, no]( const dialogue & d ) { return ( dcondition( d ) ? yes_member : no )( d ); @@ -2678,7 +3604,7 @@ dynamic_line_t::dynamic_line_t( JsonObject jo ) } for( const std::string &sub_member : dialogue_data::complex_conds ) { if( jo.has_member( sub_member ) ) { - dcondition = conditional_t( jo ); + dcondition = conditional_t( jo ); function = [dcondition, yes, no]( const dialogue & d ) { return ( dcondition( d ) ? yes : no )( d ); }; @@ -2712,7 +3638,7 @@ dynamic_line_t::dynamic_line_t( JsonArray ja ) json_dynamic_line_effect::json_dynamic_line_effect( JsonObject jo, const std::string &id ) { std::function tmp_condition; - read_condition( jo, "condition", tmp_condition, true ); + read_dialogue_condition( jo, tmp_condition, true ); talk_effect_t tmp_effect = talk_effect_t( jo ); // if the topic has a sentinel, it means implicitly add a check for the sentinel value // and do not run the effects if it is set. if it is not set, run the effects and diff --git a/src/npctalk_funcs.cpp b/src/npctalk_funcs.cpp index 73204193c6092..dc566de613f57 100644 --- a/src/npctalk_funcs.cpp +++ b/src/npctalk_funcs.cpp @@ -472,8 +472,7 @@ void talk_function::give_aid( npc &p ) g->u.remove_effect( effect_infected, bp_healed ); } } - const int moves = to_moves( 100_minutes ); - g->u.assign_activity( activity_id( "ACT_WAIT_NPC" ), moves ); + g->u.assign_activity( activity_id( "ACT_WAIT_NPC" ), 10000 ); g->u.activity.str_values.push_back( p.name ); } @@ -547,8 +546,7 @@ void talk_function::barber_hair( npc &p ) void talk_function::buy_haircut( npc &p ) { g->u.add_morale( MORALE_HAIRCUT, 5, 5, 720_minutes, 3_minutes ); - const int moves = to_moves( 20_minutes ); - g->u.assign_activity( activity_id( "ACT_WAIT_NPC" ), moves ); + g->u.assign_activity( activity_id( "ACT_WAIT_NPC" ), 300 ); g->u.activity.str_values.push_back( p.name ); add_msg( m_good, _( "%s gives you a decent haircut..." ), p.name ); } @@ -556,8 +554,7 @@ void talk_function::buy_haircut( npc &p ) void talk_function::buy_shave( npc &p ) { g->u.add_morale( MORALE_SHAVE, 10, 10, 360_minutes, 3_minutes ); - const int moves = to_moves( 5_minutes ); - g->u.assign_activity( activity_id( "ACT_WAIT_NPC" ), moves ); + g->u.assign_activity( activity_id( "ACT_WAIT_NPC" ), 100 ); g->u.activity.str_values.push_back( p.name ); add_msg( m_good, _( "%s gives you a decent shave..." ), p.name ); } @@ -570,8 +567,7 @@ void talk_function::morale_chat( npc &p ) void talk_function::morale_chat_activity( npc &p ) { - const int moves = to_moves( 10_minutes ); - g->u.assign_activity( activity_id( "ACT_SOCIALIZE" ), moves ); + g->u.assign_activity( activity_id( "ACT_SOCIALIZE" ), 10000 ); g->u.activity.str_values.push_back( p.name ); add_msg( m_good, _( "That was a pleasant conversation with %s." ), p.disp_name() ); g->u.add_morale( MORALE_CHAT, rng( 3, 10 ), 10, 200_minutes, 5_minutes / 2 ); @@ -595,7 +591,7 @@ void talk_function::buy_10_logs( npc &p ) const tripoint site = random_entry( places_om ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.spawn_item( 7, 15, "log", 10 ); bay.save(); @@ -621,7 +617,7 @@ void talk_function::buy_100_logs( npc &p ) const tripoint site = random_entry( places_om ); tinymap bay; - bay.load( tripoint( site.x * 2, site.y * 2, site.z ), false ); + bay.load( site.x * 2, site.y * 2, site.z, false ); bay.spawn_item( 7, 15, "log", 100 ); bay.save(); diff --git a/src/npctrade.cpp b/src/npctrade.cpp index a9e1545d87c57..a127cd9276986 100644 --- a/src/npctrade.cpp +++ b/src/npctrade.cpp @@ -10,7 +10,6 @@ #include #include "avatar.h" -#include "debug.h" #include "cata_utility.h" #include "game.h" #include "input.h" @@ -42,12 +41,6 @@ void npc_trading::transfer_items( std::vector &stuff, player &give if( !ip.selected ) { continue; } - - if( ip.loc.get_item() == nullptr ) { - DebugLog( D_ERROR, D_NPC ) << "Null item being traded in npc_trading::transfer_items"; - continue; - } - item gift = *ip.loc.get_item(); gift.set_owner( fac ); int charges = npc_gives ? ip.u_charges : ip.npc_charges; @@ -79,26 +72,22 @@ void npc_trading::transfer_items( std::vector &stuff, player &give } } -std::vector npc_trading::init_selling( npc &np ) +std::vector npc_trading::init_selling( npc &p ) { std::vector result; - invslice slice = np.inv.slice(); + invslice slice = p.inv.slice(); for( auto &i : slice ) { - item &it = i->front(); + auto &it = i->front(); const int price = it.price( true ); - int val = np.value( it ); - if( np.wants_to_sell( it, val, price ) ) { - result.emplace_back( np, i->front(), val, i->size() ); + int val = p.value( it ); + if( p.wants_to_sell( it, val, price ) ) { + result.emplace_back( p, &i->front(), val, i->size() ); } } - if( - np.will_exchange_items_freely() && - ! np.weapon.is_null() && - ! np.weapon.has_flag( "NO_UNWIELD" ) - ) { - result.emplace_back( np, np.weapon, np.value( np.weapon ), false ); + if( p.is_player_ally() & !p.weapon.is_null() && !p.weapon.has_flag( "NO_UNWIELD" ) ) { + result.emplace_back( p, &p.weapon, p.value( p.weapon ), false ); } return result; @@ -168,10 +157,10 @@ std::vector npc_trading::init_buying( player &buyer, player &selle check_item( item_location( seller, &seller.weapon ), 1 ); } - for( map_cursor &cursor : map_selector( seller.pos(), 1 ) ) { + for( auto &cursor : map_selector( seller.pos(), 1 ) ) { buy_helper( cursor, check_item ); } - for( vehicle_cursor &cursor : vehicle_selector( seller.pos(), 1 ) ) { + for( auto &cursor : vehicle_selector( seller.pos(), 1 ) ) { buy_helper( cursor, check_item ); } @@ -194,8 +183,6 @@ void item_pricing::set_values( int ip_count ) } } -// Adjusts the pricing of an item, *unless* it is the currency of the -// faction we're trading with, as that should always be worth face value. void item_pricing::adjust_values( const double adjust, faction *fac ) { if( !fac || fac->currency != loc.get_item()->typeId() ) { @@ -205,9 +192,9 @@ void item_pricing::adjust_values( const double adjust, faction *fac ) void trading_window::setup_win( npc &np ) { - w_head = catacurses::newwin( 4, TERMX, point_zero ); - w_them = catacurses::newwin( TERMY - 4, win_they_w, point( 0, 4 ) ); - w_you = catacurses::newwin( TERMY - 4, TERMX - win_they_w, point( win_they_w, 4 ) ); + w_head = catacurses::newwin( 4, TERMX, 0, 0 ); + w_them = catacurses::newwin( TERMY - 4, win_they_w, 4, 0 ); + w_you = catacurses::newwin( TERMY - 4, TERMX - win_they_w, 4, win_they_w ); mvwprintz( w_head, 0, 0, c_white, header_message.c_str(), np.disp_name() ); // Set up line drawings @@ -218,7 +205,6 @@ void trading_window::setup_win( npc &np ) // End of line drawings } -// 'cost' is the cost of a service the NPC may be rendering, if any. void trading_window::setup_trade( int cost, npc &np ) { // Populate the list of what the NPC is willing to buy, and the prices they pay @@ -228,14 +214,25 @@ void trading_window::setup_trade( int cost, npc &np ) theirs = npc_trading::init_buying( g->u, np, true ); yours = npc_trading::init_buying( np, g->u, false ); - if( np.will_exchange_items_freely() ) { - your_balance = 0; + // Just exchanging items, no barter involved + exchange = np.is_player_ally(); + + if( exchange ) { + // Sometimes owed money fails to reset for friends + // NPC AI is way too weak to manage money, so let's just make them give stuff away for free + u_get = 0; + npc_requires = INT_MAX; } else { - your_balance = np.op_of_u.owed - cost; + // How much cash you get in the deal (must be less than npc_requires for the deal to happen) + u_get = cost - np.op_of_u.owed; + // the NPC doesn't require a barter to exactly match, but there's a small limit to how + // much credit they'll extend + npc_requires = 50 * std::max( 0, np.op_of_u.trust + np.op_of_u.value + np.op_of_u.fear - + np.op_of_u.anger + np.personality.altruism ); } } -void trading_window::update_win( npc &np, const std::string &deal ) +void trading_window::update_win( npc &p, const std::string &deal, const int adjusted_u_get ) { if( update ) { // Time to re-draw update = false; @@ -261,35 +258,30 @@ 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; - - mvwprintz( w_head, 3, 2, npc_out_of_space ? c_red : c_green, + bool npc_has_space = volume_left < 0_ml || weight_left < 0_gram; + mvwprintz( w_head, 3, 2, npc_has_space ? c_red : c_green, _( "Volume: %s %s, Weight: %.1f %s" ), format_volume( volume_left ), volume_units_abbr(), convert_weight( weight_left ), weight_units() ); std::string cost_str = _( "Exchange" ); - if( ! np.will_exchange_items_freely() ) { - cost_str = string_format( your_balance >= 0 ? _( "Credit %s" ) : _( "Debt %s" ), - format_money( std::abs( your_balance ) ) ); + if( !exchange ) { + cost_str = string_format( u_get < 0 ? _( "Profit %s" ) : _( "Cost %s" ), + format_money( std::abs( u_get ) ) ); } mvwprintz( w_head, 3, TERMX / 2 + ( TERMX / 2 - cost_str.length() ) / 2, - trade_color, cost_str ); + adjusted_u_get < 0 ? c_green : c_red, cost_str ); if( !deal.empty() ) { mvwprintz( w_head, 3, ( TERMX - deal.length() ) / 2, - trade_color_light, deal ); + adjusted_u_get > 0 ? c_light_red : c_light_green, deal ); } draw_border( w_them, ( focus_them ? c_yellow : BORDER_COLOR ) ); draw_border( w_you, ( !focus_them ? c_yellow : BORDER_COLOR ) ); - mvwprintz( w_them, 0, 2, trade_color, np.name ); - mvwprintz( w_you, 0, 2, trade_color, _( "You" ) ); + mvwprintz( w_them, 0, 2, adjusted_u_get < 0 ? c_green : c_red, p.name ); + mvwprintz( w_you, 0, 2, adjusted_u_get > 0 ? c_green : c_red, _( "You" ) ); #if defined(__ANDROID__) input_context ctxt( "NPC_TRADE" ); #endif @@ -298,7 +290,7 @@ void trading_window::update_win( npc &np, const std::string &deal ) const bool they = whose == 0; const std::vector &list = they ? theirs : yours; const size_t &offset = they ? them_off : you_off; - const player &person = they ? static_cast( np ) : + const player &person = they ? static_cast( p ) : static_cast( g->u ); catacurses::window &w_whose = they ? w_them : w_you; int win_w = getmaxx( w_whose ); @@ -341,16 +333,16 @@ void trading_window::update_win( npc &np, const std::string &deal ) #endif std::string price_str = format_money( ip.price ); - nc_color price_color = np.will_exchange_items_freely() ? c_dark_gray : ( ip.selected ? c_white : + nc_color price_color = exchange ? c_dark_gray : ( ip.selected ? c_white : c_light_gray ); mvwprintz( w_whose, i - offset + 1, win_w - price_str.length(), price_color, price_str ); } if( offset > 0 ) { - mvwprintw( w_whose, point( 1, entries_per_page + 2 ), _( "< Back" ) ); + mvwprintw( w_whose, entries_per_page + 2, 1, _( "< Back" ) ); } if( offset + entries_per_page < list.size() ) { - mvwprintw( w_whose, point( 9, entries_per_page + 2 ), _( "More >" ) ); + mvwprintw( w_whose, entries_per_page + 2, 9, _( "More >" ) ); } } wrefresh( w_head ); @@ -363,8 +355,8 @@ void trading_window::show_item_data( npc &np, size_t offset, std::vector &target_list ) { update = true; - catacurses::window w_tmp = catacurses::newwin( 3, 21, point( 30 + ( TERMX - FULL_SCREEN_WIDTH ) / 2, - 1 + ( TERMY - FULL_SCREEN_HEIGHT ) / 2 ) ); + catacurses::window w_tmp = catacurses::newwin( 3, 21, 1 + ( TERMY - FULL_SCREEN_HEIGHT ) / 2, + 30 + ( TERMX - FULL_SCREEN_WIDTH ) / 2 ); mvwprintz( w_tmp, 1, 1, c_red, _( "Examine which item?" ) ); draw_border( w_tmp ); wrefresh( w_tmp ); @@ -382,7 +374,7 @@ void trading_window::show_item_data( npc &np, size_t offset, wrefresh( w_head ); help += offset; if( help < target_list.size() ) { - popup( target_list[help].loc.get_item()->info( true ), PF_NONE ); + popup( target_list[help].loc.get_item()->info(), PF_NONE ); } } @@ -399,21 +391,20 @@ int trading_window::get_var_trade( const item &it, int total_count ) return std::min( total_count, how_many ); } -bool trading_window::perform_trade( npc &np, const std::string &deal ) +bool trading_window::perform_trade( npc &p, const std::string &deal ) { size_t ch; + int adjusted_u_get = u_get - npc_requires; - volume_left = np.volume_capacity() - np.volume_carried(); - weight_left = np.weight_capacity() - np.weight_carried(); - - // Shopkeeps are happy to have large inventories. - if( np.mission == NPC_MISSION_SHOPKEEP ) { + volume_left = p.volume_capacity() - p.volume_carried(); + weight_left = p.weight_capacity() - p.weight_carried(); + if( p.mission == NPC_MISSION_SHOPKEEP ) { volume_left = 5'000'000_ml; weight_left = 5'000_kilogram; } do { - update_win( np, deal ); + update_win( p, deal, adjusted_u_get ); #if defined(__ANDROID__) input_context ctxt( "NPC_TRADE" ); ctxt.register_manual_key( '\t', "Switch lists" ); @@ -444,44 +435,20 @@ bool trading_window::perform_trade( npc &np, const std::string &deal ) } break; case '?': - show_item_data( np, offset, target_list ); + show_item_data( p, offset, target_list ); ch = ' '; break; - case '\n': - if( ! npc_will_accept_trade( np ) ) { - - if( np.max_credit_extended() == 0 ) { - popup( _( "You'll need to offer me more than that." ) ); - } else { - popup( - _( "Sorry, I'm only willing to extend you %s in credit." ), - format_money( np.max_credit_extended() ) - ); - } - + case '\n': // Check if the NPC will accept the deal + // The player must give more than they get + if( adjusted_u_get > 0 ) { + popup( _( "Not enough value! You need %s." ), format_money( adjusted_u_get ) ); update = true; ch = ' '; } else if( volume_left < 0_ml || weight_left < 0_gram ) { // Make sure NPC doesn't go over allowed volume - popup( _( "%s can't carry all that." ), np.name ); + popup( _( "%s can't carry all that." ), p.name ); update = true; ch = ' '; - } else if( calc_npc_owes_you( np ) < your_balance ) { - // NPC is happy with the trade, but isn't willing to remember the whole debt. - const bool trade_ok = query_yn( - _( "I'm never going to be able to pay you back for all that. The most I'm willing to owe you is %s.\n\nContinue with trade?" ), - format_money( np.max_willing_to_owe() ) - ); - - if( ! trade_ok ) { - update = true; - ch = ' '; - } - } else { - if( ! query_yn( _( "Looks like a deal! Accept this trade?" ) ) ) { - update = true; - ch = ' '; - } } break; default: // Letters & such @@ -531,8 +498,9 @@ bool trading_window::perform_trade( npc &np, const std::string &deal ) change_amount *= -1; } int delta_price = ip.price * change_amount; - if( ! np.will_exchange_items_freely() ) { - your_balance -= delta_price; + if( !exchange ) { + u_get += delta_price; + adjusted_u_get += delta_price; volume_left -= ip.vol * change_amount; weight_left -= ip.weight * change_amount; } @@ -544,32 +512,9 @@ bool trading_window::perform_trade( npc &np, const std::string &deal ) return ch == '\n'; } -// Returns how much the NPC will owe you after this transaction. -// You must also check if they will accept the trade. -int trading_window::calc_npc_owes_you( const npc &np ) const -{ - // Friends don't hold debts against friends. - if( np.will_exchange_items_freely() ) { - return 0; - } - - // If they're going to owe you more than before, and it's more than they're willing - // to owe, then cap the amount owed at the present level or their willingness to owe - // (whichever is bigger). - // - // When could they owe you more than max_willing_to_owe? It could be from quest rewards, - // when they were less angry, or from when you were better friends. - if( your_balance > np.op_of_u.owed && your_balance > np.max_willing_to_owe() ) { - return std::max( np.op_of_u.owed, np.max_willing_to_owe() ); - } - - // Fair's fair. NPC will remember this debt (or credit they've extended) - return your_balance; -} - void trading_window::update_npc_owed( npc &np ) { - np.op_of_u.owed = calc_npc_owes_you( np ); + np.op_of_u.owed = std::min( std::max( np.op_of_u.owed, npc_requires ), - u_get ); } // Oh my aching head @@ -599,7 +544,7 @@ bool npc_trading::trade( npc &np, int cost, const std::string &deal ) } // NPCs will remember debts, to the limit that they'll extend credit or previous debts - if( ! np.will_exchange_items_freely() ) { + if( !trade_win.exchange ) { trade_win.update_npc_owed( np ); g->u.practice( skill_barter, practice / 10000 ); } @@ -607,9 +552,3 @@ bool npc_trading::trade( npc &np, int cost, const std::string &deal ) g->refresh_all(); return traded; } - -// Will the NPC accept the trade that's currently on offer? -bool trading_window::npc_will_accept_trade( const npc &np ) const -{ - return np.is_player_ally() || your_balance + np.max_credit_extended() > 0; -} diff --git a/src/npctrade.h b/src/npctrade.h index 6fda491f97300..18eafe802edb2 100644 --- a/src/npctrade.h +++ b/src/npctrade.h @@ -25,7 +25,7 @@ class player; class item_pricing { public: - item_pricing( Character &c, item &it, int v, int count ) : loc( c, &it ), price( v ) { + item_pricing( Character &c, item *it, int v, int count ) : loc( c, it ), price( v ) { set_values( count ); } @@ -56,13 +56,15 @@ class trading_window trading_window() = default; std::vector theirs; std::vector yours; - int your_balance; + bool exchange; + int u_get; + int npc_requires; void setup_win( npc &np ); void setup_trade( int cost, npc &np ); - void update_win( npc &np, const std::string &deal ); + void update_win( npc &p, const std::string &deal, const int adjusted_u_get ); void show_item_data( npc &np, size_t offset, std::vector &target_list ); - bool perform_trade( npc &np, const std::string &deal ); + bool perform_trade( npc &p, const std::string &deal ); void update_npc_owed( npc &np ); private: @@ -83,8 +85,6 @@ class trading_window units::mass weight_left; int get_var_trade( const item &it, int total_count ); - bool npc_will_accept_trade( const npc &np ) const; - int calc_npc_owes_you( const npc &np ) const; }; namespace npc_trading diff --git a/src/omdata.h b/src/omdata.h index 89ff059153b1d..6a9d268e953fa 100644 --- a/src/omdata.h +++ b/src/omdata.h @@ -238,7 +238,7 @@ struct oter_t { std::string get_mapgen_id() const; oter_id get_rotated( om_direction::type dir ) const; - std::string get_name() const { + const std::string get_name() const { return _( type->name ); } @@ -277,7 +277,7 @@ struct oter_t { return type->static_spawns; } - overmap_land_use_code_id get_land_use_code() const { + const overmap_land_use_code_id get_land_use_code() const { return type->land_use_code; } diff --git a/src/options.cpp b/src/options.cpp index 491d5147c3fcd..7be79b287e6cc 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -207,7 +207,8 @@ void options_manager::add( const std::string &sNameIn, const std::string &sPageI thisOpt.hide = opt_hide; thisOpt.iMaxLength = iMaxLengthIn; - thisOpt.sDefault = thisOpt.iMaxLength > 0 ? sDefaultIn.substr( 0, thisOpt.iMaxLength ) : sDefaultIn; + thisOpt.sDefault = ( thisOpt.iMaxLength > 0 ) ? sDefaultIn.substr( 0, + thisOpt.iMaxLength ) : sDefaultIn; thisOpt.sSet = thisOpt.sDefault; thisOpt.setSortPos( sPageIn ); @@ -520,7 +521,7 @@ std::string options_manager::cOpt::getValue( bool classis_locale ) const return sSet; } else if( sType == "bool" ) { - return bSet ? "true" : "false"; + return ( bSet ) ? "true" : "false"; } else if( sType == "int" || sType == "int_map" ) { return string_format( format, iSet ); @@ -585,7 +586,7 @@ std::string options_manager::cOpt::getValueName() const } } else if( sType == "bool" ) { - return bSet ? _( "True" ) : _( "False" ); + return ( bSet ) ? _( "True" ) : _( "False" ); } else if( sType == "int_map" ) { const std::string name = std::get<1>( *findInt( iSet ) ); @@ -607,7 +608,7 @@ std::string options_manager::cOpt::getDefaultText( const bool bTranslated ) cons return elem.first == sDefault; } ); const std::string defaultName = iter == vItems.end() ? std::string() : - bTranslated ? iter->second.translated() : iter->first; + ( bTranslated ? iter->second.translated() : iter->first ); const std::string &sItems = enumerate_as_string( vItems.begin(), vItems.end(), [bTranslated]( const id_and_option & elem ) { return bTranslated ? elem.second.translated() : elem.first; @@ -618,7 +619,7 @@ std::string options_manager::cOpt::getDefaultText( const bool bTranslated ) cons return string_format( _( "Default: %s" ), sDefault ); } else if( sType == "bool" ) { - return bDefault ? _( "Default: True" ) : _( "Default: False" ); + return ( bDefault ) ? _( "Default: True" ) : _( "Default: False" ); } else if( sType == "int" ) { return string_format( _( "Default: %d - Min: %d, Max: %d" ), iDefault, iMin, iMax ); @@ -702,7 +703,8 @@ void options_manager::cOpt::setNext() } else if( sType == "string_input" ) { int iMenuTextLength = sMenuText.length(); string_input_popup() - .width( iMaxLength > 80 ? 80 : iMaxLength < iMenuTextLength ? iMenuTextLength : iMaxLength + 1 ) + .width( ( iMaxLength > 80 ) ? 80 : ( ( iMaxLength < iMenuTextLength ) ? iMenuTextLength : iMaxLength + + 1 ) ) .description( _( sMenuText ) ) .max_length( iMaxLength ) .edit( sSet ); @@ -804,10 +806,10 @@ void options_manager::cOpt::setValue( std::string sSetIn ) } } else if( sType == "string_input" ) { - sSet = iMaxLength > 0 ? sSetIn.substr( 0, iMaxLength ) : sSetIn; + sSet = ( iMaxLength > 0 ) ? sSetIn.substr( 0, iMaxLength ) : sSetIn; } else if( sType == "bool" ) { - bSet = sSetIn == "True" || sSetIn == "true" || sSetIn == "T" || sSetIn == "t"; + bSet = ( sSetIn == "True" || sSetIn == "true" || sSetIn == "T" || sSetIn == "t" ); } else if( sType == "int" ) { iSet = atoi( sSetIn.c_str() ); @@ -986,21 +988,22 @@ void options_manager::init() add_options_world_default(); add_options_android(); - for( size_t i = 0; i < vPages.size(); ++i ) { + for( unsigned i = 0; i < vPages.size(); ++i ) { mPageItems[i].resize( mOptionsSort[vPages[i].first] ); } for( auto &elem : options ) { - for( size_t i = 0; i < vPages.size(); ++i ) { - if( vPages[i].first == elem.second.getPage() && elem.second.getSortPos() > -1 ) { - mPageItems[i][elem.second.getSortPos()] = elem.first; + for( unsigned i = 0; i < vPages.size(); ++i ) { + if( vPages[i].first == ( elem.second ).getPage() && + ( elem.second ).getSortPos() > -1 ) { + mPageItems[i][( elem.second ).getSortPos()] = elem.first; break; } } } //Sort out possible double empty lines after options are hidden - for( size_t i = 0; i < vPages.size(); ++i ) { + for( unsigned i = 0; i < vPages.size(); ++i ) { bool bLastLineEmpty = false; while( mPageItems[i][0].empty() ) { //delete empty lines at the beginning @@ -1447,12 +1450,6 @@ void options_manager::add_options_interface() false ); - add( "PICKUP_POSITION", "interface", translate_marker( "Pickup position" ), - translate_marker( "Switch between pickup panel being left, right, or overlapping the sidebar." ), - { { "left", translate_marker( "Left" ) }, { "right", translate_marker( "Right" ) }, { "overlapping", translate_marker( "Overlapping" ) } }, - "left" - ); - add( "ACCURACY_DISPLAY", "interface", translate_marker( "Aim window display style" ), translate_marker( "How should confidence and steadiness be communicated to the player." ), //~ aim bar style - bars or numbers @@ -1461,6 +1458,7 @@ void options_manager::add_options_interface() add( "MORALE_STYLE", "interface", translate_marker( "Morale style" ), translate_marker( "Morale display style in sidebar." ), + //~ aim bar style - bars or numbers { { "vertical", translate_marker( "Vertical" ) }, { "horizontal", translate_marker( "Horizontal" ) } }, "Vertical" ); @@ -1671,17 +1669,6 @@ void options_manager::add_options_graphics() get_option( "TILES" ).setPrerequisite( "USE_TILES" ); - mOptionsSort["graphics"]++; - - 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." ), { - { "color_pixel_darken", translate_marker( "Darkened" ) }, - { "color_pixel_sepia", translate_marker( "Sepia" ) } - }, "color_pixel_sepia", COPT_CURSES_HIDE - ); - - mOptionsSort["graphics"]++; - add( "PIXEL_MINIMAP", "graphics", translate_marker( "Pixel minimap" ), translate_marker( "If true, shows the pixel-detail minimap in game after the save is loaded. Use the 'Toggle Pixel Minimap' action key to change its visibility during gameplay." ), true, COPT_CURSES_HIDE @@ -1711,13 +1698,6 @@ void options_manager::add_options_graphics() get_option( "PIXEL_MINIMAP_HEIGHT" ).setPrerequisite( "PIXEL_MINIMAP" ); - add( "PIXEL_MINIMAP_SCALE_TO_FIT", "graphics", translate_marker( "Scale pixel minimap" ), - translate_marker( "Scale pixel minimap to fit its surroundings. May produce crappy results, especially in modes other than \"Solid\"." ), - false, COPT_CURSES_HIDE - ); - - get_option( "PIXEL_MINIMAP_SCALE_TO_FIT" ).setPrerequisite( "PIXEL_MINIMAP" ); - add( "PIXEL_MINIMAP_RATIO", "graphics", translate_marker( "Maintain pixel minimap aspect ratio" ), translate_marker( "Preserves the square shape of tiles shown on the pixel minimap." ), true, COPT_CURSES_HIDE @@ -1725,16 +1705,8 @@ void options_manager::add_options_graphics() get_option( "PIXEL_MINIMAP_RATIO" ).setPrerequisite( "PIXEL_MINIMAP" ); - add( "PIXEL_MINIMAP_BEACON_SIZE", "graphics", - translate_marker( "Creature beacon size" ), - translate_marker( "Controls how big the creature beacons are. Value is in minimap tiles." ), - 1, 4, 2, COPT_CURSES_HIDE - ); - - get_option( "PIXEL_MINIMAP_BEACON_SIZE" ).setPrerequisite( "PIXEL_MINIMAP" ); - - add( "PIXEL_MINIMAP_BLINK", "graphics", translate_marker( "Hostile creature beacon blink speed" ), - translate_marker( "Controls how fast the hostile creature beacons blink on the pixel minimap. Value is multiplied by 200 ms. Set to 0 to disable." ), + add( "PIXEL_MINIMAP_BLINK", "graphics", translate_marker( "Enemy beacon blink speed" ), + translate_marker( "Controls how fast the enemy beacons blink on the pixel minimap. Value is multiplied by 200 ms. Set to 0 to disable." ), 0, 50, 10, COPT_CURSES_HIDE ); @@ -1751,7 +1723,7 @@ void options_manager::add_options_graphics() add( "FULLSCREEN", "graphics", translate_marker( "Fullscreen" ), translate_marker( "Starts Cataclysm in one of the fullscreen modes. Requires restart." ), { { "no", translate_marker( "No" ) }, { "fullscreen", translate_marker( "Fullscreen" ) }, { "windowedbl", translate_marker( "Windowed borderless" ) } }, - "windowedbl", COPT_CURSES_HIDE + "no", COPT_CURSES_HIDE ); #endif @@ -1965,7 +1937,7 @@ void options_manager::add_options_world_default() add( "INITIAL_DAY", "world_default", translate_marker( "Initial day" ), translate_marker( "How many days into the year the cataclysm occurred. Day 0 is Spring 1. Can be overridden by scenarios. This does not advance food rot or monster evolution." ), - 0, 999, 30 + 0, 999, 0 ); add( "SPAWN_DELAY", "world_default", translate_marker( "Spawn delay" ), @@ -2361,7 +2333,7 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) options_container &OPTIONS = options; options_container &ACTIVE_WORLD_OPTIONS = world_generator->active_world ? world_generator->active_world->WORLD_OPTIONS : - world_options_only ? *world_options : OPTIONS; + ( world_options_only ? *world_options : OPTIONS ); auto OPTIONS_OLD = OPTIONS; auto WOPTIONS_OLD = ACTIVE_WORLD_OPTIONS; @@ -2369,7 +2341,7 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) ingame = false; } - const int iWorldOffset = world_options_only ? 2 : 0; + const int iWorldOffset = ( world_options_only ? 2 : 0 ); const int iTooltipHeight = 4; const int iContentHeight = FULL_SCREEN_HEIGHT - 3 - iTooltipHeight - iWorldOffset; @@ -2383,13 +2355,13 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) mapLines[60] = true; catacurses::window w_options_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iOffsetX, iOffsetY - iWorldOffset ) ); + iOffsetY - iWorldOffset, iOffsetX ); catacurses::window w_options_tooltip = catacurses::newwin( iTooltipHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, 1 + iOffsetY ) ); + 1 + iOffsetY, 1 + iOffsetX ); catacurses::window w_options_header = catacurses::newwin( 1, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, 1 + iTooltipHeight + iOffsetY ) ); + 1 + iTooltipHeight + iOffsetY, 1 + iOffsetX ); catacurses::window w_options = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, iTooltipHeight + 2 + iOffsetY ) ); + iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX ); if( world_options_only ) { worldfactory::draw_worldgen_tabs( w_options_border, 1 ); @@ -2415,8 +2387,8 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) std::stringstream sTemp; while( true ) { - auto &cOPTIONS = ( ingame || world_options_only ) && iCurrentPage == iWorldOptPage ? - ACTIVE_WORLD_OPTIONS : OPTIONS; + auto &cOPTIONS = ( ( ingame || world_options_only ) && iCurrentPage == iWorldOptPage ? + ACTIVE_WORLD_OPTIONS : OPTIONS ); //Clear the lines for( int i = 0; i < iContentHeight; i++ ) { @@ -2445,7 +2417,7 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) //Draw options size_t iBlankOffset = 0; // Offset when blank line is printed. for( int i = iStartPos; - i < iStartPos + ( iContentHeight > static_cast( mPageItems[iCurrentPage].size() ) ? + i < iStartPos + ( ( iContentHeight > static_cast( mPageItems[iCurrentPage].size() ) ) ? static_cast( mPageItems[iCurrentPage].size() ) : iContentHeight ); i++ ) { nc_color cLineColor = c_light_green; @@ -2477,8 +2449,8 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) } const std::string value = utf8_truncate( current_opt.getValueName(), value_width ); - mvwprintz( w_options, line_pos, value_col, iCurrentLine == i ? hilite( cLineColor ) : cLineColor, - value ); + mvwprintz( w_options, line_pos, value_col, ( iCurrentLine == i ) ? hilite( cLineColor ) : + cLineColor, value ); } draw_scrollbar( w_options_border, iCurrentLine, iContentHeight, @@ -2494,11 +2466,11 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) } wprintz( w_options_header, c_white, "[" ); if( ingame && i == iWorldOptPage ) { - wprintz( w_options_header, iCurrentPage == i ? hilite( c_light_green ) : c_light_green, - _( "Current world" ) ); + wprintz( w_options_header, + ( iCurrentPage == i ) ? hilite( c_light_green ) : c_light_green, _( "Current world" ) ); } else { - wprintz( w_options_header, iCurrentPage == i ? hilite( c_light_green ) : c_light_green, - "%s", _( vPages[i].second ) ); + wprintz( w_options_header, ( iCurrentPage == i ) ? + hilite( c_light_green ) : c_light_green, "%s", _( vPages[i].second ) ); } wprintz( w_options_header, c_white, "]" ); wputch( w_options_header, BORDER_COLOR, LINE_OXOX ); @@ -2672,8 +2644,7 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) if( iter.first == "PIXEL_MINIMAP_HEIGHT" || iter.first == "PIXEL_MINIMAP_RATIO" - || iter.first == "PIXEL_MINIMAP_MODE" - || iter.first == "PIXEL_MINIMAP_SCALE_TO_FIT" ) { + || iter.first == "PIXEL_MINIMAP_MODE" ) { pixel_minimap_changed = true; } else if( iter.first == "TILES" || iter.first == "USE_TILES" ) { @@ -2712,7 +2683,6 @@ std::string options_manager::show( bool ingame, const bool world_options_only ) } if( lang_changed ) { - update_global_locale(); set_language(); } calendar::set_eternal_season( ::get_option( "ETERNAL_SEASON" ) ); @@ -2839,8 +2809,6 @@ void options_manager::load() } } - update_global_locale(); - // cache to global due to heavy usage. trigdist = ::get_option( "CIRCLEDIST" ); use_tiles = ::get_option( "USE_TILES" ); @@ -2848,6 +2816,8 @@ void options_manager::load() message_ttl = ::get_option( "MESSAGE_TTL" ); message_cooldown = ::get_option( "MESSAGE_COOLDOWN" ); fov_3d = ::get_option( "FOV_3D" ); + calendar::set_eternal_season( ::get_option( "ETERNAL_SEASON" ) ); + calendar::set_season_length( ::get_option( "SEASON_LENGTH" ) ); #if defined(SDL_SOUND) sounds::sound_enabled = ::get_option( "SOUND_ENABLED" ); #endif @@ -2922,37 +2892,3 @@ std::vector options_manager::getWorldOptPageItems() const auto temp = mPageItems; return temp[iWorldOptPage]; } - -void options_manager::update_global_locale() -{ - std::string lang = ::get_option( "USE_LANG" ); - try { - if( lang == "en" ) { - std::locale::global( std::locale( "en_US.UTF-8" ) ); - } else if( lang == "de" ) { - std::locale::global( std::locale( "de_DE.UTF-8" ) ); - } else if( lang == "es_AR" ) { - std::locale::global( std::locale( "es_AR.UTF-8" ) ); - } else if( lang == "es_ES" ) { - std::locale::global( std::locale( "es_ES.UTF-8" ) ); - } else if( lang == "fr" ) { - std::locale::global( std::locale( "fr_FR.UTF-8" ) ); - } else if( lang == "hu" ) { - std::locale::global( std::locale( "hu_HU.UTF-8" ) ); - } else if( lang == "ja" ) { - std::locale::global( std::locale( "ja_JP.UTF-8" ) ); - } else if( lang == "ko" ) { - std::locale::global( std::locale( "ko_KR.UTF-8" ) ); - } else if( lang == "pl" ) { - std::locale::global( std::locale( "pl_PL.UTF-8" ) ); - } else if( lang == "ru" ) { - std::locale::global( std::locale( "ru_RU.UTF-8" ) ); - } else if( lang == "zh_CN" ) { - std::locale::global( std::locale( "zh_CN.UTF-8" ) ); - } else if( lang == "zh_TW" ) { - std::locale::global( std::locale( "zh_TW.UTF-8" ) ); - }; - } catch( std::runtime_error &e ) { - std::locale::global( std::locale( "en_US.UTF-8" ) ); - } -} diff --git a/src/options.h b/src/options.h index f793856f929d2..c2e8e1a250c33 100644 --- a/src/options.h +++ b/src/options.h @@ -22,7 +22,7 @@ class options_manager { public: id_and_option( const std::string &first, const std::string &second ) - : std::pair( first, translation( second ) ) { + : std::pair( first, second ) { } id_and_option( const std::string &first, const translation &second ) : std::pair( first, second ) { @@ -39,8 +39,6 @@ class options_manager void enable_json( const std::string &var ); void add_retry( const std::string &var, const std::string &val ); - void update_global_locale(); - std::map post_json_verify; std::map > > mMigrateOption; diff --git a/src/output.cpp b/src/output.cpp index 87a0c83248635..822cbe0b0ada8 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -34,7 +34,6 @@ #include "string_input_popup.h" #include "units.h" #include "point.h" -#include "wcwidth.h" #if defined(__ANDROID__) #include @@ -184,7 +183,7 @@ void print_colored_text( const catacurses::window &w, int y, int x, nc_color &co const nc_color &base_color, const std::string &text ) { if( y > -1 && x > -1 ) { - wmove( w, point( x, y ) ); + wmove( w, y, x ); } const auto color_segments = split_by_color( text ); std::stack color_stack; @@ -303,7 +302,7 @@ int fold_and_print_from( const catacurses::window &w, int begin_y, int begin_x, break; } if( line_num >= begin_line ) { - wmove( w, point( begin_x, line_num + begin_y - begin_line ) ); + wmove( w, line_num + begin_y - begin_line, begin_x ); } // split into colorable sections std::vector color_segments = split_by_color( textformatted[line_num] ); @@ -421,14 +420,14 @@ void wputch( const catacurses::window &w, nc_color FG, int ch ) void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, int ch ) { wattron( w, FG ); - mvwaddch( w, point( x, y ), ch ); + mvwaddch( w, y, x, ch ); wattroff( w, FG ); } void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, const std::string &ch ) { wattron( w, FG ); - mvwprintw( w, point( x, y ), ch ); + mvwprintw( w, y, x, ch ); wattroff( w, FG ); } @@ -436,7 +435,7 @@ void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, int c { nc_color HC = invert_color( FG ); wattron( w, HC ); - mvwaddch( w, point( x, y ), ch ); + mvwaddch( w, y, x, ch ); wattroff( w, HC ); } @@ -444,7 +443,7 @@ void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, const { nc_color HC = invert_color( FG ); wattron( w, HC ); - mvwprintw( w, point( x, y ), ch ); + mvwprintw( w, y, x, ch ); wattroff( w, HC ); } @@ -452,7 +451,7 @@ void mvwputch_hi( const catacurses::window &w, int y, int x, nc_color FG, int ch { nc_color HC = hilite( FG ); wattron( w, HC ); - mvwaddch( w, point( x, y ), ch ); + mvwaddch( w, y, x, ch ); wattroff( w, HC ); } @@ -460,7 +459,7 @@ void mvwputch_hi( const catacurses::window &w, int y, int x, nc_color FG, const { nc_color HC = hilite( FG ); wattron( w, HC ); - mvwprintw( w, point( x, y ), ch ); + mvwprintw( w, y, x, ch ); wattroff( w, HC ); } @@ -526,6 +525,74 @@ void draw_border( const catacurses::window &w, nc_color border_color, const std: } } +void draw_tabs( const catacurses::window &w, int active_tab, ... ) +{ + int win_width = getmaxx( w ); + std::vector labels; + va_list ap; + va_start( ap, active_tab ); + while( const char *const tmp = va_arg( ap, char * ) ) { + labels.push_back( tmp ); + } + va_end( ap ); + + // Draw the line under the tabs + for( int x = 0; x < win_width; x++ ) { + mvwputch( w, 2, x, c_white, LINE_OXOX ); + } + + int total_width = 0; + for( auto &i : labels ) { + total_width += i.length() + 6; // "< |four| >" + } + + if( total_width > win_width ) { + //debugmsg("draw_tabs not given enough space! %s", labels[0]); + return; + } + + // Extra "buffer" space per each side of each tab + double buffer_extra = ( win_width - total_width ) / ( labels.size() * 2 ); + int buffer = static_cast( buffer_extra ); + // Set buffer_extra to (0, 1); the "extra" whitespace that builds up + buffer_extra = buffer_extra - buffer; + int xpos = 0; + double savings = 0; + + for( size_t i = 0; i < labels.size(); i++ ) { + int length = labels[i].length(); + xpos += buffer + 2; + savings += buffer_extra; + if( savings > 1 ) { + savings--; + xpos++; + } + mvwputch( w, 0, xpos, c_white, LINE_OXXO ); + mvwputch( w, 1, xpos, c_white, LINE_XOXO ); + mvwputch( w, 0, xpos + length + 1, c_white, LINE_OOXX ); + mvwputch( w, 1, xpos + length + 1, c_white, LINE_XOXO ); + if( static_cast( i ) == active_tab ) { + mvwputch( w, 1, xpos - 2, h_white, '<' ); + mvwputch( w, 1, xpos + length + 3, h_white, '>' ); + mvwputch( w, 2, xpos, c_white, LINE_XOOX ); + mvwputch( w, 2, xpos + length + 1, c_white, LINE_XXOO ); + mvwprintz( w, 1, xpos + 1, h_white, labels[i] ); + for( int x = xpos + 1; x <= xpos + length; x++ ) { + mvwputch( w, 0, x, c_white, LINE_OXOX ); + mvwputch( w, 2, x, c_black, 'x' ); + } + } else { + mvwputch( w, 2, xpos, c_white, LINE_XXOX ); + mvwputch( w, 2, xpos + length + 1, c_white, LINE_XXOX ); + mvwprintz( w, 1, xpos + 1, c_white, labels[i] ); + for( int x = xpos + 1; x <= xpos + length; x++ ) { + mvwputch( w, 0, x, c_white, LINE_OXOX ); + } + } + xpos += length + 1 + buffer; + } +} + bool query_yn( const std::string &text ) { const bool force_uc = get_option( "FORCE_CAPITAL_YN" ); @@ -633,9 +700,8 @@ input_event draw_item_info( const int iLeft, const int iWidth, const int iTop, c const bool handle_scrolling, const bool scrollbar_left, const bool use_full_win, const unsigned int padding ) { - catacurses::window win = - catacurses::newwin( iHeight, iWidth, - point( iLeft + VIEW_OFFSET_X, iTop + VIEW_OFFSET_Y ) ); + catacurses::window win = catacurses::newwin( iHeight, iWidth, iTop + VIEW_OFFSET_Y, + iLeft + VIEW_OFFSET_X ); #if defined(TILES) clear_window_area( win ); @@ -643,9 +709,9 @@ input_event draw_item_info( const int iLeft, const int iWidth, const int iTop, c wclear( win ); wrefresh( win ); - const auto result = draw_item_info( - win, sItemName, sTypeName, vItemDisplay, vItemCompare, selected, without_getch, - without_border, handle_scrolling, scrollbar_left, use_full_win, padding ); + const auto result = draw_item_info( win, sItemName, sTypeName, vItemDisplay, vItemCompare, + selected, without_getch, without_border, handle_scrolling, scrollbar_left, use_full_win, + padding ); return result; } @@ -1286,8 +1352,7 @@ void hit_animation( int iX, int iY, nc_color cColor, const std::string &cTile ) mvwputch(w, iY + VIEW_OFFSET_Y, iX + VIEW_OFFSET_X, cColor, cTile); */ - catacurses::window w_hit = - catacurses::newwin( 1, 1, point( iX + VIEW_OFFSET_X, iY + VIEW_OFFSET_Y ) ); + catacurses::window w_hit = catacurses::newwin( 1, 1, iY + VIEW_OFFSET_Y, iX + VIEW_OFFSET_X ); if( !w_hit ) { return; //we passed in negative values (semi-expected), so let's not segfault } @@ -1427,7 +1492,6 @@ std::string rewrite_vsnprintf( const char *msg ) return rewritten_msg.str(); } -// NOLINTNEXTLINE(cert-dcl50-cpp) std::string cata::string_formatter::raw_string_format( const char *format, ... ) { va_list args; @@ -1536,7 +1600,7 @@ std::string rm_prefix( std::string str, char c1, char c2 ) size_t shortcut_print( const catacurses::window &w, int y, int x, nc_color text_color, nc_color shortcut_color, const std::string &fmt ) { - wmove( w, point( x, y ) ); + wmove( w, y, x ); return shortcut_print( w, text_color, shortcut_color, fmt ); } @@ -1570,7 +1634,7 @@ std::string shortcut_text( nc_color shortcut_color, const std::string &fmt ) return fmt; } -std::pair +const std::pair get_bar( float cur, float max, int width, bool extra_resolution, const std::vector &colors ) { @@ -1595,7 +1659,7 @@ get_bar( float cur, float max, int width, bool extra_resolution, return std::make_pair( result, col ); } -std::pair get_hp_bar( const int cur_hp, const int max_hp, +const std::pair get_hp_bar( const int cur_hp, const int max_hp, const bool is_mon ) { if( cur_hp == 0 ) { @@ -1604,7 +1668,7 @@ std::pair get_hp_bar( const int cur_hp, const int max_hp, return get_bar( cur_hp, max_hp, 5, !is_mon ); } -std::pair get_stamina_bar( int cur_stam, int max_stam ) +const std::pair get_stamina_bar( int cur_stam, int max_stam ) { if( cur_stam == 0 ) { return std::make_pair( "-----", c_light_gray ); @@ -2121,7 +2185,7 @@ void mvwprintz( const catacurses::window &w, const int y, const int x, const nc_ const std::string &text ) { wattron( w, FG ); - mvwprintw( w, point( x, y ), text ); + mvwprintw( w, y, x, text ); wattroff( w, FG ); } diff --git a/src/output.h b/src/output.h index a887f35144cfb..a6d6233abdf2e 100644 --- a/src/output.h +++ b/src/output.h @@ -367,6 +367,7 @@ void draw_custom_border( const catacurses::window &w, catacurses::chtype ls = 1, 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_tabs( const catacurses::window &w, int active_tab, ... ); std::string word_rewrap( const std::string &ins, int width, const uint32_t split = ' ' ); std::vector get_tag_positions( const std::string &s ); @@ -544,13 +545,13 @@ void hit_animation( int iX, int iY, nc_color cColor, const std::string &cTile ); */ // The last color is used for an empty bar // extra_resolution -std::pair get_bar( float cur, float max, int width = 5, +const std::pair get_bar( float cur, float max, int width = 5, bool extra_resolution = true, const std::vector &colors = { c_green, c_light_green, c_yellow, c_light_red, c_red } ); -std::pair get_hp_bar( int cur_hp, int max_hp, bool is_mon = false ); +const std::pair get_hp_bar( int cur_hp, int max_hp, bool is_mon = false ); -std::pair get_stamina_bar( int cur_stam, int max_stam ); +const std::pair get_stamina_bar( int cur_stam, int max_stam ); std::pair get_light_level( const float light ); @@ -802,7 +803,7 @@ std::string format_volume( const units::volume &volume ); std::string format_volume( const units::volume &volume, int width, bool *out_truncated, double *out_value ); -inline std::string format_money( int cents ) +inline const std::string format_money( int cents ) { return string_format( _( "$%.2f" ), cents / 100.0 ); } diff --git a/src/overmap.cpp b/src/overmap.cpp index 8b171055c5e05..4437f644eb307 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -227,7 +227,7 @@ city::city( const point &P, int const S ) int city::get_distance_from( const tripoint &p ) const { - return std::max( static_cast( trig_dist( p, { pos, 0 } ) ) - size, 0 ); + return std::max( static_cast( trig_dist( p, { pos.x, pos.y, 0 } ) ) - size, 0 ); } std::map radio_type_names = @@ -298,7 +298,7 @@ int_id::int_id( const string_id &id ) : _id( id.id() ) {} /** @relates int_id */ template<> -bool int_id::is_valid() const +inline bool int_id::is_valid() const { return terrains.is_valid( *this ); } @@ -588,7 +588,7 @@ void oter_type_t::load( JsonObject &jo, const std::string &src ) if( has_flag( line_drawing ) ) { if( has_flag( no_rotate ) ) { - jo.throw_error( R"(Mutually exclusive flags: "NO_ROTATE" and "LINEAR".)" ); + jo.throw_error( "Mutually exclusive flags: \"NO_ROTATE\" and \"LINEAR\"." ); } for( const auto &elem : om_lines::mapgen_suffixes ) { @@ -775,9 +775,6 @@ bool oter_t::is_hardcoded() const "office_tower_1_entrance", "office_tower_b", "office_tower_b_entrance", - "sewage_treatment", - "sewage_treatment_hub", - "sewage_treatment_under", "silo", "silo_finale", "slimepit", @@ -788,6 +785,7 @@ bool oter_t::is_hardcoded() const "temple", "temple_finale", "temple_stairs", + "toxic_dump", "triffid_finale", "triffid_roots" }; @@ -1164,7 +1162,7 @@ oter_id &overmap::ter( const tripoint &p ) return layer[p.z + OVERMAP_DEPTH].terrain[p.x][p.y]; } -oter_id overmap::get_ter( const tripoint &p ) const +const oter_id overmap::get_ter( const tripoint &p ) const { if( !inbounds( p ) ) { return ot_null; @@ -1379,9 +1377,9 @@ void overmap::add_extra( const tripoint &p, const string_id &id ) } ); if( it == std::end( extras ) ) { - extras.emplace_back( om_map_extra{ id, p.xy() } ); + extras.emplace_back( om_map_extra{ std::move( id ), p.xy() } ); } else if( !id.is_null() ) { - it->id = id ; + it->id = std::move( id ); } else { extras.erase( it ); } @@ -1491,7 +1489,7 @@ bool overmap::generate_sub( const int z ) for( int i = 0; i < OMAPX; i++ ) { for( int j = 0; j < OMAPY; j++ ) { tripoint p( i, j, z ); - oter_id oter_above = ter( p + tripoint_above ); + oter_id oter_above = ter( p + tripoint( 0, 0, 1 ) ); oter_id oter_ground = ter( tripoint( p.xy(), 0 ) ); //oter_id oter_sewer = ter(i, j, -1); //oter_id oter_underground = ter(i, j, -2); @@ -1574,7 +1572,6 @@ bool overmap::generate_sub( const int z ) ter( p ) = oter_id( "spiral_hub" ); add_mon_group( mongroup( mongroup_id( "GROUP_SPIRAL" ), i * 2, j * 2, z, 2, 200 ) ); } else if( oter_above == "silo" ) { - // NOLINTNEXTLINE(misc-redundant-expression) if( rng( 2, 7 ) < abs( z ) || rng( 2, 7 ) < abs( z ) ) { ter( p ) = oter_id( "silo_finale" ); } else { @@ -2175,7 +2172,7 @@ void overmap::place_forest_trailheads() bool close = false; for( const point &nearby_point : closest_points_first( settings.forest_trail.trailhead_road_distance, - trailhead.xy() ) ) { + point( trailhead.x, trailhead.y ) ) ) { if( check_ot( "road", ot_match_type::contains, tripoint( nearby_point, 0 ) ) ) { close = true; } @@ -2789,7 +2786,7 @@ void overmap::place_cities() const double omts_per_overmap = OMAPX * OMAPY; const double city_map_coverage_ratio = 1.0 / std::pow( 2.0, op_city_spacing ); - const double omts_per_city = ( op_city_size * 2 + 1 ) * ( op_city_size * 2 + 1 ) * 3 / 4.0; + const double omts_per_city = ( op_city_size * 2 + 1 ) * ( op_city_size * 2 + 1 ) * 3 / 4; // how many cities on this overmap? const int NUM_CITIES = @@ -2920,19 +2917,19 @@ void overmap::build_city_street( const overmap_connection &connection, const poi right++; } - build_city_street( connection, iter->pos, left, om_direction::turn_left( dir ), + build_city_street( connection, iter->pos(), left, om_direction::turn_left( dir ), town, new_width ); - build_city_street( connection, iter->pos, right, om_direction::turn_right( dir ), + build_city_street( connection, iter->pos(), right, om_direction::turn_right( dir ), town, new_width ); - auto &oter = ter( tripoint( iter->pos, 0 ) ); + auto &oter = ter( tripoint( iter->pos(), 0 ) ); // TODO: Get rid of the hardcoded terrain ids. if( one_in( 2 ) && oter->get_line() == 15 && oter->type_is( oter_type_id( "road" ) ) ) { oter = oter_id( "road_nesw_manhole" ); } } - const tripoint rp( iter->pos, 0 ); + const tripoint rp( iter->x, iter->y, 0 ); if( !one_in( BUILDINGCHANCE ) ) { place_building( rp, om_direction::turn_left( dir ), town ); @@ -2949,9 +2946,9 @@ void overmap::build_city_street( const overmap_connection &connection, const poi if( cs >= 2 && c == 0 ) { const auto &last_node = street_path.nodes.back(); const auto rnd_dir = om_direction::turn_random( dir ); - build_city_street( connection, last_node.pos, cs, rnd_dir, town ); + build_city_street( connection, last_node.pos(), cs, rnd_dir, town ); if( one_in( 5 ) ) { - build_city_street( connection, last_node.pos, cs, om_direction::opposite( rnd_dir ), + build_city_street( connection, last_node.pos(), cs, om_direction::opposite( rnd_dir ), town, new_width ); } } @@ -3264,7 +3261,7 @@ pf::path overmap::lay_out_connection( const overmap_connection &connection, cons const point &dest, int z, const bool must_be_unexplored ) const { const auto estimate = [&]( const pf::node & cur, const pf::node * prev ) { - const auto &id( get_ter( tripoint( cur.pos, z ) ) ); + const auto &id( get_ter( tripoint( cur.pos(), z ) ) ); const overmap_connection::subtype *subtype = connection.pick_subtype_for( id ); @@ -3277,7 +3274,7 @@ pf::path overmap::lay_out_connection( const overmap_connection &connection, cons // Only do this check if it needs to be unexplored and there isn't already a connection. if( must_be_unexplored && !existing_connection ) { // If this must be unexplored, check if we've already got a submap generated. - const bool existing_submap = is_omt_generated( tripoint( cur.pos, z ) ); + const bool existing_submap = is_omt_generated( tripoint( cur.x, cur.y, z ) ); // If there is an existing submap, this area has already been explored and this // isn't a valid placement. @@ -3292,7 +3289,7 @@ pf::path overmap::lay_out_connection( const overmap_connection &connection, cons } if( prev && prev->dir != cur.dir ) { // Direction has changed. - const auto &prev_id( get_ter( tripoint( prev->pos, z ) ) ); + const auto &prev_id( get_ter( tripoint( prev->pos(), z ) ) ); const overmap_connection::subtype *prev_subtype = connection.pick_subtype_for( prev_id ); if( !prev_subtype || !prev_subtype->allows_turns() ) { @@ -3300,9 +3297,10 @@ pf::path overmap::lay_out_connection( const overmap_connection &connection, cons } } - const int dist = subtype->is_orthogonal() ? - manhattan_dist( dest, cur.pos ) : - trig_dist( dest, cur.pos ); + const int dx = dest.x - cur.x; + const int dy = dest.y - cur.y; + const int dist = subtype->is_orthogonal() ? std::abs( dx ) + std::abs( dy ) : std::sqrt( + dx * dx + dy * dy ); const int existency_mult = existing_connection ? 1 : 5; // Prefer existing connections. return existency_mult * dist + subtype->basic_cost; @@ -3380,7 +3378,7 @@ void overmap::build_connection( const overmap_connection &connection, const pf:: om_direction::type prev_dir = initial_dir; for( const auto &node : path.nodes ) { - const tripoint pos( node.pos, z ); + const tripoint pos( node.x, node.y, z ); auto &ter_id( ter( pos ) ); // TODO: Make 'node' support 'om_direction'. const om_direction::type new_dir( static_cast( node.dir ) ); @@ -3664,7 +3662,7 @@ point om_direction::rotate( const point &p, type dir ) tripoint om_direction::rotate( const tripoint &p, type dir ) { - return tripoint( rotate( { p.xy() }, dir ), p.z ); + return tripoint( rotate( { p.x, p.y }, dir ), p.z ); } uint32_t om_direction::rotate_symbol( uint32_t sym, type dir ) @@ -3852,7 +3850,7 @@ void overmap::place_special( const overmap_special &special, const tripoint &p, initial_dir = om_direction::add( initial_dir, dir ); } - build_connection( cit.pos, rp.xy(), elem.p.z, *elem.connection, must_be_unexplored, + build_connection( cit.pos, point( rp.x, rp.y ), elem.p.z, *elem.connection, must_be_unexplored, initial_dir ); } } @@ -3867,7 +3865,7 @@ void overmap::place_special( const overmap_special &special, const tripoint &p, // Place basement for houses. if( special.id == "FakeSpecial_house" && one_in( settings.city_spec.house_basement_chance ) ) { const overmap_special_id basement_tid = settings.city_spec.pick_basement(); - const tripoint basement_p = tripoint( p.xy(), p.z - 1 ); + const tripoint basement_p = tripoint( p.x, p.y, p.z - 1 ); // This basement isn't part of the special that we asserted we could place at // the top of this function, so we need to make sure we can place the basement @@ -3964,28 +3962,7 @@ void overmap::place_specials_pass( overmap_special_batch &enabled_specials, // and when a special reaches max instances it is also removed. void overmap::place_specials( overmap_special_batch &enabled_specials ) { - // Calculate if this overmap has any lake terrain--if it doesn't, we should just - // completely skip placing any lake specials here since they'll never place and if - // they're mandatory they just end up causing us to spiral out into adjacent overmaps - // which probably don't have lakes either. - bool overmap_has_lake = false; - for( int z = -OVERMAP_DEPTH; z <= OVERMAP_HEIGHT && !overmap_has_lake; z++ ) { - for( int x = 0; x < OMAPX && !overmap_has_lake; x++ ) { - for( int y = 0; y < OMAPY && !overmap_has_lake; y++ ) { - overmap_has_lake = ter( { x, y, z } )->is_lake(); - } - } - } - for( auto iter = enabled_specials.begin(); iter != enabled_specials.end(); ) { - // If this special has the LAKE flag and the overmap doesn't have any - // lake terrain, then remove this special from the candidates for this - // overmap. - if( iter->special_details->flags.count( "LAKE" ) > 0 && !overmap_has_lake ) { - iter = enabled_specials.erase( iter ); - continue; - } - if( iter->special_details->flags.count( "UNIQUE" ) > 0 ) { const int min = iter->special_details->occurrences.min; const int max = iter->special_details->occurrences.max; @@ -4351,7 +4328,7 @@ bool overmap::is_omt_generated( const tripoint &loc ) const // Location is local to this overmap, but we need global submap coordinates // for the mapbuffer lookup. - tripoint global_sm_loc = omt_to_sm_copy( loc ) + om_to_sm_copy( tripoint( pos(), + tripoint global_sm_loc = omt_to_sm_copy( loc ) + om_to_sm_copy( tripoint( pos().x, pos().y, loc.z ) ); const bool is_generated = MAPBUFFER.lookup_submap( global_sm_loc ) != nullptr; diff --git a/src/overmap.h b/src/overmap.h index c2d8c303aa2f8..f55c313aa6ed3 100644 --- a/src/overmap.h +++ b/src/overmap.h @@ -189,7 +189,7 @@ class overmap std::vector find_terrain( const std::string &term, int zlevel ); oter_id &ter( const tripoint &p ); - oter_id get_ter( const tripoint &p ) const; + const oter_id get_ter( const tripoint &p ) const; bool &seen( const tripoint &p ); bool seen( const tripoint &p ) const; bool &explored( const tripoint &p ); diff --git a/src/overmap_ui.cpp b/src/overmap_ui.cpp index 85c59768ed0b9..0b6c76c2b32dd 100644 --- a/src/overmap_ui.cpp +++ b/src/overmap_ui.cpp @@ -22,7 +22,6 @@ #include "coordinate_conversions.h" #include "cursesdef.h" #include "game.h" -#include "ime.h" #include "input.h" #include "line.h" #include "map_iterator.h" @@ -236,8 +235,8 @@ static void draw_city_labels( const catacurses::window &w, const tripoint ¢e const point screen_center_pos( win_x_max / 2, win_y_max / 2 ); for( const auto &element : overmap_buffer.get_cities_near( omt_to_sm_copy( center ), sm_radius ) ) { - const point city_pos( sm_to_omt_copy( element.abs_sm_pos.xy() ) ); - const point screen_pos( city_pos - center.xy() + screen_center_pos ); + const point city_pos( sm_to_omt_copy( element.abs_sm_pos.x, element.abs_sm_pos.y ) ); + const point screen_pos( city_pos - point( center.x, center.y ) + screen_center_pos ); const int text_width = utf8_width( element.city->name, true ); const int text_x_min = screen_pos.x - text_width / 2; @@ -275,8 +274,8 @@ static void draw_camp_labels( const catacurses::window &w, const tripoint ¢e const point screen_center_pos( win_x_max / 2, win_y_max / 2 ); for( const auto &element : overmap_buffer.get_camps_near( omt_to_sm_copy( center ), sm_radius ) ) { - const point camp_pos( element.camp->camp_omt_pos().xy() ); - const point screen_pos( camp_pos - center.xy() + screen_center_pos ); + const point camp_pos( element.camp->camp_omt_pos().x, element.camp->camp_omt_pos().y ); + const point screen_pos( camp_pos - point( center.x, center.y ) + screen_center_pos ); const int text_width = utf8_width( element.camp->name, true ); const int text_x_min = screen_pos.x - text_width / 2; const int text_x_max = text_x_min + text_width; @@ -314,7 +313,7 @@ class map_notes_callback : public uilist_callback return _notes[_selected].first; } tripoint note_location() { - return tripoint( point_selected(), _z ); + return tripoint( point_selected().x, point_selected().y, _z ); } std::string old_note() { return overmap_buffer.note( note_location() ); @@ -327,7 +326,7 @@ class map_notes_callback : public uilist_callback bool key( const input_context &ctxt, const input_event &event, int, uilist *menu ) override { _selected = menu->selected; if( _selected >= 0 && _selected < static_cast( _notes.size() ) ) { - const std::string &action = ctxt.input_to_action( event ); + const std::string action = ctxt.input_to_action( event ); if( action == "DELETE_NOTE" ) { if( overmap_buffer.has_note( note_location() ) && query_yn( _( "Really delete note?" ) ) ) { @@ -347,13 +346,11 @@ class map_notes_callback : public uilist_callback void select( int, uilist *menu ) override { _selected = menu->selected; const auto map_around = get_overmap_neighbors( note_location() ); - catacurses::window w_preview = - catacurses::newwin( npm_height + 2, max_note_display_length - npm_width - 1, - point( npm_width + 2, 2 ) ); - catacurses::window w_preview_title = - catacurses::newwin( 2, max_note_display_length + 1, point_zero ); - catacurses::window w_preview_map = - catacurses::newwin( npm_height + 2, npm_width + 2, point( 0, 2 ) ); + catacurses::window w_preview = catacurses::newwin( npm_height + 2, + max_note_display_length - npm_width - 1, + 2, npm_width + 2 ); + catacurses::window w_preview_title = catacurses::newwin( 2, max_note_display_length + 1, 0, 0 ); + catacurses::window w_preview_map = catacurses::newwin( npm_height + 2, npm_width + 2, 2, 0 ); const std::tuple preview_windows = std::make_tuple( &w_preview, &w_preview_title, &w_preview_map ); update_note_preview( old_note(), map_around, preview_windows ); @@ -362,7 +359,7 @@ class map_notes_callback : public uilist_callback static point draw_notes( const tripoint &origin ) { - point result = point_min; + point result( -1, -1 ); bool refresh = true; uilist nmenu; @@ -395,8 +392,8 @@ static point draw_notes( const tripoint &origin ) const nc_color note_color = std::get<1>( om_symbol ); const std::string note_symbol = std::string( 1, std::get<0>( om_symbol ) ); const std::string note_text = note.substr( std::get<2>( om_symbol ), std::string::npos ); - point p_omt( p ); - const point p_player = g->u.global_omt_location().xy(); + point p_omt( p.x, p.y ); + const point p_player = point( g->u.global_omt_location().x, g->u.global_omt_location().y ); const int distance_player = rl_dist( p_player, p_omt ); const point sm_pos = omt_to_sm_copy( p_omt ); const point p_om = omt_to_om_remain( p_omt ); @@ -510,12 +507,12 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr // and record the bounds to optimize lookups below std::unordered_map> special_cache; - point s_begin; - point s_end; + point s_begin = point_zero; + point s_end = point_zero; if( blink && uistate.place_special ) { for( const auto &s_ter : uistate.place_special->terrains ) { if( s_ter.p.z == 0 ) { - const point rp = om_direction::rotate( s_ter.p.xy(), uistate.omedit_rotation ); + const point rp = om_direction::rotate( point( s_ter.p.x, s_ter.p.y ), uistate.omedit_rotation ); const oter_id oter = s_ter.terrain->get_rotated( uistate.omedit_rotation ); special_cache.insert( std::make_pair( @@ -578,7 +575,7 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr } } for( auto &elem : g->u.omt_path ) { - tripoint tri_to_add = tripoint( elem.xy(), g->u.posz() ); + tripoint tri_to_add = tripoint( elem.x, elem.y, g->u.posz() ); player_path_route.push_back( tri_to_add ); } for( const auto &np : followers ) { @@ -587,7 +584,7 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr } if( !np->omt_path.empty() ) { for( auto &elem : np->omt_path ) { - tripoint tri_to_add = tripoint( elem.xy(), np->posz() ); + tripoint tri_to_add = tripoint( elem.x, elem.y, np->posz() ); path_route.push_back( tri_to_add ); } } @@ -968,7 +965,6 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr print_hint( "CREATE_NOTE" ); print_hint( "DELETE_NOTE" ); print_hint( "LIST_NOTES" ); - print_hint( "MISSIONS" ); print_hint( "TOGGLE_MAP_NOTES", uistate.overmap_show_map_notes ? c_pink : c_magenta ); print_hint( "TOGGLE_BLINKING", uistate.overmap_blinking ? c_pink : c_magenta ); print_hint( "TOGGLE_OVERLAYS", show_overlays ? c_pink : c_magenta ); @@ -996,7 +992,7 @@ void draw( const catacurses::window &w, const catacurses::window &wbar, const tr } // Done with all drawing! wrefresh( wbar ); - wmove( w, point( om_half_width, om_half_height ) ); + wmove( w, om_half_height, om_half_width ); wrefresh( w ); } @@ -1022,16 +1018,17 @@ void create_note( const tripoint &curs ) catacurses::window w_preview = catacurses::newwin( npm_height + 2, max_note_display_length - npm_width - 1, - point( npm_width + 2, 2 ) ); - catacurses::window w_preview_title = catacurses::newwin( 2, max_note_display_length + 1, - point_zero ); - catacurses::window w_preview_map = catacurses::newwin( npm_height + 2, npm_width + 2, point( 0, - 2 ) ); + 2, npm_width + 2 ); + catacurses::window w_preview_title = catacurses::newwin( 2, max_note_display_length + 1, 0, 0 ); + catacurses::window w_preview_map = catacurses::newwin( npm_height + 2, npm_width + 2, 2, 0 ); std::tuple preview_windows = std::make_tuple( &w_preview, &w_preview_title, &w_preview_map ); - // this implies enable_ime() and ensures that ime mode is always restored on return - ime_sentry sentry; +#if defined(__ANDROID__) + if( get_option( "ANDROID_AUTO_KEYBOARD" ) ) { + SDL_StartTextInput(); + } +#endif bool esc_pressed = false; string_input_popup input_popup; @@ -1061,8 +1058,6 @@ void create_note( const tripoint &curs ) } } while( true ); - disable_ime(); - if( !esc_pressed && new_note.empty() && !old_note.empty() ) { if( query_yn( _( "Really delete note?" ) ) ) { overmap_buffer.delete_note( curs ); @@ -1124,7 +1119,7 @@ static bool search( tripoint &curs, const tripoint &orig, const bool show_explor int i = 0; //Navigate through results tripoint tmp = curs; - catacurses::window w_search = catacurses::newwin( 13, 27, point( TERMX - 27, 3 ) ); + catacurses::window w_search = catacurses::newwin( 13, 27, 3, TERMX - 27 ); input_context ctxt( "OVERMAP_SEARCH" ); ctxt.register_leftright(); @@ -1198,7 +1193,7 @@ static void place_ter_or_special( tripoint &curs, const tripoint &orig, const bo pmenu.query(); if( pmenu.ret >= 0 ) { - catacurses::window w_editor = catacurses::newwin( 15, 27, point( TERMX - 27, 3 ) ); + catacurses::window w_editor = catacurses::newwin( 15, 27, 3, TERMX - 27 ); input_context ctxt( "OVERMAP_EDITOR" ); ctxt.register_directions(); ctxt.register_action( "CONFIRM" ); @@ -1297,12 +1292,12 @@ static void place_ter_or_special( tripoint &curs, const tripoint &orig, const bo static tripoint display( const tripoint &orig, const draw_data_t &data = draw_data_t() ) { - g->w_omlegend = catacurses::newwin( TERMY, 28, point( TERMX - 28, 0 ) ); - g->w_overmap = catacurses::newwin( OVERMAP_WINDOW_HEIGHT, OVERMAP_WINDOW_WIDTH, point_zero ); + g->w_omlegend = catacurses::newwin( TERMY, 28, 0, TERMX - 28 ); + g->w_overmap = catacurses::newwin( OVERMAP_WINDOW_HEIGHT, OVERMAP_WINDOW_WIDTH, 0, 0 ); // Draw black padding space to avoid gap between map and legend // also clears the pixel minimap in TILES - g->w_blackspace = catacurses::newwin( TERMY, TERMX, point_zero ); + g->w_blackspace = catacurses::newwin( TERMY, TERMX, 0, 0 ); mvwputch( g->w_blackspace, 0, 0, c_black, ' ' ); wrefresh( g->w_blackspace ); @@ -1340,7 +1335,6 @@ static tripoint display( const tripoint &orig, const draw_data_t &data = draw_da ictxt.register_action( "TOGGLE_EXPLORED" ); ictxt.register_action( "TOGGLE_FAST_SCROLL" ); ictxt.register_action( "TOGGLE_FOREST_TRAILS" ); - ictxt.register_action( "MISSIONS" ); if( data.debug_editor ) { ictxt.register_action( "PLACE_TERRAIN" ); @@ -1395,7 +1389,7 @@ static tripoint display( const tripoint &orig, const draw_data_t &data = draw_da } else if( action == "LEVEL_UP" && curs.z < OVERMAP_HEIGHT ) { curs.z += 1; } else if( action == "CONFIRM" ) { - ret = curs; + ret = tripoint( curs.x, curs.y, curs.z ); } else if( action == "QUIT" ) { ret = overmap::invalid_tripoint; } else if( action == "CREATE_NOTE" ) { @@ -1406,7 +1400,7 @@ static tripoint display( const tripoint &orig, const draw_data_t &data = draw_da } } else if( action == "LIST_NOTES" ) { const point p = draw_notes( curs ); - if( p != point_min ) { + if( p.x != -1 && p.y != -1 ) { curs.x = p.x; curs.y = p.y; } @@ -1473,8 +1467,6 @@ static tripoint display( const tripoint &orig, const draw_data_t &data = draw_da } } else if( action == "PLACE_TERRAIN" || action == "PLACE_SPECIAL" ) { place_ter_or_special( curs, orig, show_explored, fast_scroll, action ); - } else if( action == "MISSIONS" ) { - g->list_missions(); } std::chrono::time_point now = std::chrono::steady_clock::now(); diff --git a/src/overmapbuffer.cpp b/src/overmapbuffer.cpp index 30c89d5e7b17b..2cd81b5c3054d 100644 --- a/src/overmapbuffer.cpp +++ b/src/overmapbuffer.cpp @@ -129,7 +129,8 @@ void overmapbuffer::fix_mongroups( overmap &new_overmap ) ++it; continue; } - point smabs = mg.pos.xy() + om_to_sm_copy( new_overmap.pos() ); + point smabs( mg.pos.x + new_overmap.pos().x * OMAPX * 2, + mg.pos.y + new_overmap.pos().y * OMAPY * 2 ); point omp = sm_to_om_remain( smabs ); if( !has( omp ) ) { // Don't generate new overmaps, as this can be called from the @@ -154,7 +155,7 @@ void overmapbuffer::fix_npcs( overmap &new_overmap ) for( auto it = new_overmap.npcs.begin(); it != new_overmap.npcs.end(); ) { npc &np = **it; const tripoint npc_omt_pos = np.global_omt_location(); - const point npc_om_pos = omt_to_om_copy( npc_omt_pos.xy() ); + const point npc_om_pos = omt_to_om_copy( npc_omt_pos.x, npc_omt_pos.y ); const point &loc = new_overmap.pos(); if( npc_om_pos == loc ) { // Nothing to do @@ -173,7 +174,7 @@ void overmapbuffer::fix_npcs( overmap &new_overmap ) for( auto &ptr : to_relocate ) { npc &np = *ptr; const tripoint npc_omt_pos = np.global_omt_location(); - const point npc_om_pos = omt_to_om_copy( npc_omt_pos.xy() ); + const point npc_om_pos = omt_to_om_copy( npc_omt_pos.x, npc_omt_pos.y ); const point &loc = new_overmap.pos(); if( !has( npc_om_pos ) ) { // This can't really happen without save editing @@ -182,7 +183,7 @@ void overmapbuffer::fix_npcs( overmap &new_overmap ) np.name, loc.x, loc.y ); point npc_sm = om_to_sm_copy( npc_om_pos ); point min = om_to_sm_copy( loc ); - point max = om_to_sm_copy( loc + point_south_east ) - point_south_east; + point max = om_to_sm_copy( loc + point( 1, 1 ) ) - point( 1, 1 ); npc_sm.x = clamp( npc_sm.x, min.x, max.x ); npc_sm.y = clamp( npc_sm.y, min.y, max.y ); np.spawn_at_sm( npc_sm.x, npc_sm.y, np.posz() ); @@ -465,7 +466,7 @@ void overmapbuffer::signal_hordes( const tripoint ¢er, const int sig_power ) const auto radius = sig_power; for( auto &om : get_overmaps_near( center, radius ) ) { const point abs_pos_om = om_to_sm_copy( om->pos() ); - const tripoint rel_pos( -abs_pos_om + center ); + const tripoint rel_pos( center.x - abs_pos_om.x, center.y - abs_pos_om.y, center.z ); // overmap::signal_hordes expects a coordinate relative to the overmap, this is easier // for processing as the monster group stores is location as relative coordinates, too. om->signal_hordes( rel_pos, sig_power ); @@ -498,7 +499,7 @@ std::vector overmapbuffer::monsters_at( const tripoint &p ) // but monster groups are defined with submap coordinates. tripoint p_sm = omt_to_sm_copy( p ); std::vector result; - for( point offset : std::array { { { point_zero }, { point_south }, { point_east }, { point_south_east } } } ) { + for( point offset : std::array { { { 0, 0 }, { 0, 1 }, { 1, 0 }, { 1, 1 } } } ) { std::vector tmp = groups_at( p_sm + offset ); result.insert( result.end(), tmp.begin(), tmp.end() ); } @@ -693,7 +694,7 @@ std::vector overmapbuffer::get_npc_path( const tripoint &src, const tr const auto estimate = [&]( const pf::node & cur, const pf::node * ) { int res = 0; - const oter_id oter = get_ter_at( cur.pos ); + const oter_id oter = get_ter_at( { cur.x, cur.y } ); int travel_cost = static_cast( oter->get_travel_cost() ); if( ( road_only && ( oter->get_name() != "road" && oter->get_name() != "bridge" ) ) || ( oter->get_name() == "solid rock" || @@ -709,14 +710,15 @@ std::vector overmapbuffer::get_npc_path( const tripoint &src, const tr travel_cost = 20; } res += travel_cost; - res += manhattan_dist( finish, cur.pos ); + res += std::abs( finish.x - cur.x ) + + std::abs( finish.y - cur.y ); return res; }; - pf::path route = pf::find_path( start, finish, 2 * OX, + pf::path route = pf::find_path( point( start.x, start.y ), point( finish.x, finish.y ), 2 * OX, 2 * OY, estimate ); for( auto node : route.nodes ) { - tripoint convert_result = base + tripoint( node.pos, base.z ); + tripoint convert_result = base + tripoint( node.x, node.y, base.z ); path.push_back( convert_result ); } return path; @@ -754,7 +756,7 @@ bool overmapbuffer::reveal_route( const tripoint &source, const tripoint &dest, const auto estimate = [&]( const pf::node & cur, const pf::node * ) { int res = 0; - const oter_id oter = get_ter_at( cur.pos ); + const oter_id oter = get_ter_at( { cur.x, cur.y } ); if( !connection->has( oter ) ) { if( road_only ) { @@ -769,7 +771,8 @@ bool overmapbuffer::reveal_route( const tripoint &source, const tripoint &dest, res += 250; } - res += manhattan_dist( finish, cur.pos ); + res += std::abs( finish.x - cur.x ) + + std::abs( finish.y - cur.y ); return res; }; @@ -778,7 +781,7 @@ bool overmapbuffer::reveal_route( const tripoint &source, const tripoint &dest, 2 * OY, estimate ); for( const auto &node : path.nodes ) { - reveal( base + node.pos, radius ); + reveal( base + node.pos(), radius ); } return !path.nodes.empty(); } @@ -945,7 +948,7 @@ std::vector overmapbuffer::find_all( const tripoint &origin, if( abs( x ) < min_distance && abs( y ) < min_distance ) { continue; } - const tripoint search_loc( origin + point( x, y ) ); + const tripoint search_loc( origin.x + x, origin.y + y, origin.z ); if( is_findable_location( search_loc, params ) ) { result.push_back( search_loc ); } @@ -1001,7 +1004,7 @@ void overmapbuffer::insert_npc( const std::shared_ptr &who ) { assert( who ); const tripoint npc_omt_pos = who->global_omt_location(); - const point npc_om_pos = omt_to_om_copy( npc_omt_pos.xy() ); + const point npc_om_pos = omt_to_om_copy( npc_omt_pos.x, npc_omt_pos.y ); get( npc_om_pos ).insert_npc( who ); } @@ -1031,8 +1034,8 @@ std::vector overmapbuffer::get_overmaps_near( const tripoint &locatio { // Grab the corners of a square around the target location at distance radius. // Convert to overmap coordinates and iterate from the minimum to the maximum. - const point start = sm_to_om_copy( location.xy() + point( -radius, -radius ) ); - const point end = sm_to_om_copy( location.xy() + point( radius, radius ) ); + const point start = sm_to_om_copy( location.x - radius, location.y - radius ); + const point end = sm_to_om_copy( location.x + radius, location.y + radius ); const point offset = end - start; std::vector result; @@ -1060,7 +1063,7 @@ std::vector overmapbuffer::get_overmaps_near( const tripoint &locatio std::vector overmapbuffer::get_overmaps_near( const point &p, const int radius ) { - return get_overmaps_near( tripoint( p, 0 ), radius ); + return get_overmaps_near( tripoint( p.x, p.y, 0 ), radius ); } std::vector> overmapbuffer::get_companion_mission_npcs() @@ -1161,7 +1164,7 @@ std::vector overmapbuffer::get_camps_near( const tripoint &locat result.reserve( result.size() + om->camps.size() ); std::transform( om->camps.begin(), om->camps.end(), std::back_inserter( result ), [&]( basecamp & element ) { - const point camp_pt = element.camp_omt_pos().xy(); + const point camp_pt = point( element.camp_omt_pos().x, element.camp_omt_pos().y ); const auto rel_pos_camp = omt_to_sm_copy( camp_pt ); const auto abs_pos_camp = tripoint( rel_pos_camp + abs_pos_om, 0 ); const auto distance = rl_dist( abs_pos_camp, location ); @@ -1324,7 +1327,7 @@ void overmapbuffer::spawn_monster( const tripoint &p ) assert( ms.y >= 0 && ms.y < SEEX ); ms += sm_to_ms_copy( p.xy() ); // The monster position must be local to the main map when added via game::add_zombie - const tripoint local = tripoint( g->m.getlocal( ms ), p.z ); + const tripoint local = tripoint( g->m.getlocal( ms.x, ms.y ), p.z ); assert( g->m.inbounds( local ) ); this_monster.spawn( local ); g->add_zombie( this_monster ); diff --git a/src/panels.cpp b/src/panels.cpp index b7f2ecdb155b1..ed818656f4544 100644 --- a/src/panels.cpp +++ b/src/panels.cpp @@ -91,19 +91,19 @@ static void draw_rectangle( const catacurses::window &w, nc_color, point top_lef point bottom_right ) { // corners - mvwaddch( w, top_left, LINE_OXXO ); - mvwaddch( w, point( top_left.x, bottom_right.y ), LINE_XXOO ); - mvwaddch( w, point( bottom_right.x, top_left.y ), LINE_OOXX ); - mvwaddch( w, bottom_right, LINE_XOOX ); + mvwaddch( w, top_left.y, top_left.x, LINE_OXXO ); + mvwaddch( w, bottom_right.y, top_left.x, LINE_XXOO ); + mvwaddch( w, top_left.y, bottom_right.x, LINE_OOXX ); + mvwaddch( w, bottom_right.y, bottom_right.x, LINE_XOOX ); for( int i = 1; i < bottom_right.x; i++ ) { - mvwaddch( w, point( i, top_left.y ), LINE_OXOX ); - mvwaddch( w, point( i, bottom_right.y ), LINE_OXOX ); + mvwaddch( w, top_left.y, i, LINE_OXOX ); + mvwaddch( w, bottom_right.y, i, LINE_OXOX ); } for( int i = 1; i < bottom_right.y; i++ ) { - mvwaddch( w, point( top_left.x, i ), LINE_XOXO ); - mvwaddch( w, point( bottom_right.x, i ), LINE_XOXO ); + mvwaddch( w, i, top_left.x, LINE_XOXO ); + mvwaddch( w, i, bottom_right.x, LINE_XOXO ); } } @@ -882,7 +882,7 @@ static void draw_limb_health( avatar &u, const catacurses::window &w, int limb_i std::string limb = "~~%~~"; nc_color color = c_light_red; - const auto bp = avatar::hp_to_bp( static_cast( limb_index ) ); + const auto bp = u.hp_to_bp( static_cast( limb_index ) ); if( u.worn_with_flag( "SPLINT", bp ) ) { static const efftype_id effect_mending( "mending" ); const auto &eff = u.get_effect( effect_mending, bp ); @@ -936,15 +936,15 @@ static void draw_limb2( avatar &u, const catacurses::window &w ) for( int i = 0; i < num_hp_parts; i++ ) { const std::string str = body_part_hp_bar_ui_text( part[i] ); if( i % 2 == 0 ) { - wmove( w, point( 0, i / 2 ) ); + wmove( w, i / 2, 0 ); } else { - wmove( w, point( 11, i / 2 ) ); + wmove( w, i / 2, 11 ); } wprintz( w, u.limb_color( part[i], true, true, true ), str ); if( i % 2 == 0 ) { - wmove( w, point( 5, i / 2 ) ); + wmove( w, i / 2, 5 ); } else { - wmove( w, point( 16, i / 2 ) ); + wmove( w, i / 2, 16 ); } draw_limb_health( u, w, i ); } @@ -1000,36 +1000,15 @@ static void draw_stats( avatar &u, const catacurses::window &w ) wrefresh( w ); } -static nc_color move_mode_color( avatar &u ) -{ - if( u.movement_mode_is( PMM_RUN ) ) { - return c_red; - } else if( u.movement_mode_is( PMM_CROUCH ) ) { - return c_light_blue; - } else { - return c_light_gray; - } -} - -static std::string move_mode_string( avatar &u ) -{ - if( u.movement_mode_is( PMM_RUN ) ) { - return pgettext( "movement-type", "R" ); - } else if( u.movement_mode_is( PMM_CROUCH ) ) { - return pgettext( "movement-type", "C" ); - } else { - return pgettext( "movement-type", "W" ); - } -} - static void draw_stealth( avatar &u, const catacurses::window &w ) { werase( w ); mvwprintz( w, 0, 0, c_light_gray, _( "Speed" ) ); mvwprintz( w, 0, 7, value_color( u.get_speed() ), "%s", u.get_speed() ); - nc_color move_color = move_mode_color( u ); - std::string move_string = to_string( u.movecounter ) + move_mode_string( u ); - mvwprintz( w, 0, 15 - move_string.length(), move_color, move_string ); + mvwprintz( w, 0, 15 - to_string( u.movecounter ).length(), c_light_gray, + to_string( u.movecounter ) + ( u.movement_mode_is( PMM_WALK ) ? "W" : ( u.movement_mode_is( + PMM_CROUCH ) ? "C" : "R" ) ) ); + if( u.is_deaf() ) { mvwprintz( w, 0, 22, c_red, _( "DEAF" ) ); } else { @@ -1096,7 +1075,7 @@ static void draw_time( const avatar &u, const catacurses::window &w ) if( u.has_watch() ) { mvwprintz( w, 0, 11, c_light_gray, to_string_time_of_day( calendar::turn ) ); } else if( g->get_levz() >= 0 ) { - wmove( w, point( 11, 0 ) ); + wmove( w, 0, 11 ); draw_time_graphic( w ); } else { mvwprintz( w, 0, 11, c_light_gray, _( "Time: ???" ) ); @@ -1109,7 +1088,7 @@ static void draw_time( const avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_needs_compact( const avatar &u, const catacurses::window &w ) +static void draw_needs( const avatar &u, const catacurses::window &w ) { werase( w ); @@ -1133,7 +1112,7 @@ static void draw_needs_compact( const avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_limb_narrow( avatar &u, const catacurses::window &w ) +static void draw_limb( avatar &u, const catacurses::window &w ) { werase( w ); int ny2 = 0; @@ -1147,7 +1126,7 @@ static void draw_limb_narrow( avatar &u, const catacurses::window &w ) ny = ny2++; nx = 26; } - wmove( w, point( nx, ny ) ); + wmove( w, ny, nx ); draw_limb_health( u, w, i ); } @@ -1169,7 +1148,7 @@ static void draw_limb_narrow( avatar &u, const catacurses::window &w ) } std::string str = body_part_hp_bar_ui_text( part[i] ); - wmove( w, point( nx, ny ) ); + wmove( w, ny, nx ); while( str.length() < 5 ) { str = str + " "; } @@ -1178,30 +1157,7 @@ static void draw_limb_narrow( avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_limb_wide( avatar &u, const catacurses::window &w ) -{ - const std::vector> parts = { - {bp_arm_l, 2}, - {bp_head, 0}, - {bp_arm_r, 3}, - {bp_leg_l, 4}, - {bp_torso, 1}, - {bp_leg_r, 5} - }; - werase( w ); - for( int i = 0; i < num_hp_parts; i++ ) { - int offset = i * 15; - int ny = offset / 45; - int nx = offset % 45; - std::string str = string_format( " %-5s: ", body_part_hp_bar_ui_text( parts[i].first ) ); - nc_color part_color = u.limb_color( parts[i].first, true, true, true ); - print_colored_text( w, ny, nx, part_color, c_white, str ); - draw_limb_health( u, w, parts[i].second ); - } - wrefresh( w ); -} - -static void draw_char_narrow( avatar &u, const catacurses::window &w ) +static void draw_char( avatar &u, const catacurses::window &w ) { werase( w ); std::pair morale_pair = morale_stat( u ); @@ -1212,9 +1168,12 @@ static void draw_char_narrow( avatar &u, const catacurses::window &w ) mvwprintz( w, 1, 19, c_light_gray, _( "Speed:" ) ); mvwprintz( w, 2, 19, c_light_gray, _( "Move :" ) ); - nc_color move_color = move_mode_color( u ); - std::string move_char = move_mode_string( u ); - std::string movecost = std::to_string( u.movecounter ) + "(" + move_char + ")"; + const auto str_walk = pgettext( "movement-type", "W" ); + const auto str_run = pgettext( "movement-type", "R" ); + const auto str_crouch = pgettext( "movement-type", "C" ); + const char *move = u.movement_mode_is( PMM_WALK ) ? str_walk : ( u.movement_mode_is( + PMM_CROUCH ) ? str_crouch : str_run ); + std::string movecost = std::to_string( u.movecounter ) + "(" + move + ")"; bool m_style = get_option( "MORALE_STYLE" ) == "horizontal"; std::string smiley = morale_emotion( morale_pair.second, get_face_type( u ), m_style ); mvwprintz( w, 0, 8, c_light_gray, "%s", u.volume ); @@ -1228,52 +1187,13 @@ static void draw_char_narrow( avatar &u, const catacurses::window &w ) } mvwprintz( w, 2, 8, focus_color( u.focus_pool ), "%s", u.focus_pool ); - if( u.focus_pool < u.calc_focus_equilibrium() ) { - mvwprintz( w, 2, 11, c_light_green, "↥" ); - } else if( u.focus_pool > u.calc_focus_equilibrium() ) { - mvwprintz( w, 2, 11, c_light_red, "↧" ); - } mvwprintz( w, 0, 26, morale_pair.first, "%s", smiley ); mvwprintz( w, 1, 26, focus_color( u.get_speed() ), "%s", u.get_speed() ); - mvwprintz( w, 2, 26, move_color, "%s", movecost ); + mvwprintz( w, 2, 26, c_light_gray, "%s", movecost ); wrefresh( w ); } -static void draw_char_wide( avatar &u, const catacurses::window &w ) -{ - werase( w ); - std::pair morale_pair = morale_stat( u ); - mvwprintz( w, 0, 1, c_light_gray, _( "Sound:" ) ); - mvwprintz( w, 0, 16, c_light_gray, _( "Mood :" ) ); - mvwprintz( w, 0, 31, c_light_gray, _( "Focus:" ) ); - mvwprintz( w, 1, 1, c_light_gray, _( "Stam :" ) ); - mvwprintz( w, 1, 16, c_light_gray, _( "Speed:" ) ); - mvwprintz( w, 1, 31, c_light_gray, _( "Move :" ) ); - - nc_color move_color = move_mode_color( u ); - std::string 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 ); - - mvwprintz( w, 0, 8, c_light_gray, "%s", u.volume ); - mvwprintz( w, 0, 23, morale_pair.first, "%s", smiley ); - mvwprintz( w, 0, 38, focus_color( u.focus_pool ), "%s", u.focus_pool ); - - // print stamina - auto needs_pair = std::make_pair( get_hp_bar( u.stamina, u.get_stamina_max() ).second, - get_hp_bar( u.stamina, u.get_stamina_max() ).first ); - mvwprintz( w, 1, 8, needs_pair.first, needs_pair.second ); - for( size_t i = 0; i < 5 - needs_pair.second.length(); i++ ) { - mvwprintz( w, 1, 12 - i, c_white, "." ); - } - - mvwprintz( w, 1, 23, focus_color( u.get_speed() ), "%s", u.get_speed() ); - mvwprintz( w, 1, 38, move_color, "%s", movecost ); - wrefresh( w ); -} - -static void draw_stat_narrow( avatar &u, const catacurses::window &w ) +static void draw_stat( avatar &u, const catacurses::window &w ) { werase( w ); @@ -1299,33 +1219,7 @@ static void draw_stat_narrow( avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_stat_wide( avatar &u, const catacurses::window &w ) -{ - werase( w ); - - mvwprintz( w, 0, 1, c_light_gray, _( "Str :" ) ); - mvwprintz( w, 1, 1, c_light_gray, _( "Int :" ) ); - mvwprintz( w, 0, 16, c_light_gray, _( "Dex :" ) ); - mvwprintz( w, 1, 16, c_light_gray, _( "Per :" ) ); - - nc_color stat_clr = str_string( u ).first; - mvwprintz( w, 0, 8, stat_clr, "%s", u.get_str() ); - stat_clr = int_string( u ).first; - mvwprintz( w, 1, 8, stat_clr, "%s", u.get_int() ); - stat_clr = dex_string( u ).first; - mvwprintz( w, 0, 23, stat_clr, "%s", u.get_dex() ); - stat_clr = per_string( u ).first; - mvwprintz( w, 1, 23, stat_clr, "%s", u.get_per() ); - - std::pair pwr_pair = power_stat( u ); - mvwprintz( w, 0, 31, c_light_gray, _( "Power:" ) ); - mvwprintz( w, 1, 31, c_light_gray, _( "Safe :" ) ); - mvwprintz( w, 0, 38, pwr_pair.first, "%s", pwr_pair.second ); - mvwprintz( w, 1, 38, safe_color(), g->safe_mode ? _( "On" ) : _( "Off" ) ); - wrefresh( w ); -} - -static void draw_loc_labels( const avatar &u, const catacurses::window &w, bool minimap ) +static void draw_env1( const avatar &u, const catacurses::window &w ) { werase( w ); // display location @@ -1359,30 +1253,10 @@ static void draw_loc_labels( const avatar &u, const catacurses::window &w, bool } else { mvwprintz( w, 4, 1, c_light_gray, _( "Time : ???" ) ); } - if( minimap ) { - const int offset = getmaxx( w ) - 6; - const tripoint curs = u.global_omt_location(); - overmap_ui::draw_overmap_chunk( w, u, curs, -1, offset, 5, 5 ); - } wrefresh( w ); } -static void draw_loc_narrow( const avatar &u, const catacurses::window &w ) -{ - draw_loc_labels( u, w, false ); -} - -static void draw_loc_wide( const avatar &u, const catacurses::window &w ) -{ - draw_loc_labels( u, w, false ); -} - -static void draw_loc_wide_map( const avatar &u, const catacurses::window &w ) -{ - draw_loc_labels( u, w, true ); -} - -static void draw_moon_narrow( const avatar &u, const catacurses::window &w ) +static void draw_env2( const avatar &u, const catacurses::window &w ) { werase( w ); mvwprintz( w, 0, 1, c_light_gray, _( "Moon : %s" ), get_moon() ); @@ -1390,14 +1264,6 @@ static void draw_moon_narrow( const avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_moon_wide( const avatar &u, const catacurses::window &w ) -{ - werase( w ); - mvwprintz( w, 0, 1, c_light_gray, _( "Moon : %s" ), get_moon() ); - mvwprintz( w, 0, 23, c_light_gray, _( "Temp : %s" ), get_temp( u ) ); - wrefresh( w ); -} - static void draw_weapon_labels( const avatar &u, const catacurses::window &w ) { werase( w ); @@ -1409,7 +1275,7 @@ static void draw_weapon_labels( const avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_needs_narrow( const avatar &u, const catacurses::window &w ) +static void draw_mod1( const avatar &u, const catacurses::window &w ) { werase( w ); std::pair hunger_pair = u.get_hunger_description(); @@ -1430,26 +1296,6 @@ static void draw_needs_narrow( const avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_needs_wide( const avatar &u, const catacurses::window &w ) -{ - werase( w ); - std::pair hunger_pair = u.get_hunger_description(); - std::pair thirst_pair = u.get_thirst_description(); - std::pair rest_pair = u.get_fatigue_description(); - std::pair temp_pair = temp_stat( u ); - std::pair pain_pair = pain_stat( u ); - mvwprintz( w, 0, 1, c_light_gray, _( "Rest :" ) ); - mvwprintz( w, 0, 16, c_light_gray, _( "Pain :" ) ); - mvwprintz( w, 0, 31, c_light_gray, _( "Heat :" ) ); - mvwprintz( w, 1, 1, c_light_gray, _( "Food :" ) ); - mvwprintz( w, 1, 23, c_light_gray, _( "Drink:" ) ); - mvwprintz( w, 0, 8, rest_pair.second, rest_pair.first ); - mvwprintz( w, 0, 23, pain_pair.first, pain_pair.second ); - mvwprintz( w, 0, 38, temp_pair.first, temp_pair.second ); - mvwprintz( w, 1, 8, hunger_pair.second, hunger_pair.first ); - mvwprintz( w, 1, 30, thirst_pair.second, thirst_pair.first ); - wrefresh( w ); -} static void draw_env_compact( avatar &u, const catacurses::window &w ) { werase( w ); @@ -1488,28 +1334,6 @@ static void draw_env_compact( avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void render_wind( avatar &u, const catacurses::window &w, std::string formatstr ) -{ - werase( w ); - mvwprintz( w, 0, 0, c_light_gray, string_format( formatstr, _( "Wind" ) ) ); - const oter_id &cur_om_ter = overmap_buffer.ter( u.global_omt_location() ); - double windpower = get_local_windpower( g->weather.windspeed, cur_om_ter, - u.pos(), g->weather.winddirection, g->is_sheltered( u.pos() ) ); - mvwprintz( w, 0, 8, get_wind_color( windpower ), - get_wind_desc( windpower ) + " " + get_wind_arrow( g->weather.winddirection ) ); - wrefresh( w ); -} - -static void draw_wind( avatar &u, const catacurses::window &w ) -{ - render_wind( u, w, "%-5s: " ); -} - -static void draw_wind_padding( avatar &u, const catacurses::window &w ) -{ - render_wind( u, w, " %-5s: " ); -} - static void draw_health_classic( avatar &u, const catacurses::window &w ) { static std::array part = { { @@ -1525,14 +1349,14 @@ static void draw_health_classic( avatar &u, const catacurses::window &w ) werase( w ); draw_minimap( u, w ); - draw_rectangle( w, c_light_gray, point_zero, point( 6, 6 ) ); + draw_rectangle( w, c_light_gray, point( 0, 0 ), point( 6, 6 ) ); // print limb health for( int i = 0; i < num_hp_parts; i++ ) { const std::string str = body_part_hp_bar_ui_text( part[i] ); - wmove( w, point( 8, i ) ); + wmove( w, i, 8 ); wprintz( w, u.limb_color( part[i], true, true, true ), str ); - wmove( w, point( 14, i ) ); + wmove( w, i, 14 ); draw_limb_health( u, w, i ); } @@ -1586,9 +1410,9 @@ static void draw_health_classic( avatar &u, const catacurses::window &w ) if( !u.in_vehicle ) { mvwprintz( w, 5, 21, u.get_speed() < 100 ? c_red : c_white, _( "Spd " ) + to_string( u.get_speed() ) ); - nc_color move_color = u.movement_mode_is( PMM_WALK ) ? c_white : move_mode_color( u ); - std::string move_string = to_string( u.movecounter ) + " " + move_mode_string( u ); - mvwprintz( w, 5, 26 + move_string.length(), move_color, move_string ); + mvwprintz( w, 5, 26 + to_string( u.get_speed() ).length(), c_white, + to_string( u.movecounter ) + " " + ( u.movement_mode_is( PMM_WALK ) ? "W" : ( u.movement_mode_is( + PMM_CROUCH ) ? "C" : "R" ) ) ); } // temperature @@ -1624,7 +1448,7 @@ static void draw_health_classic( avatar &u, const catacurses::window &w ) wrefresh( w ); } -static void draw_armor_padding( const avatar &u, const catacurses::window &w ) +static void draw_mod2( const avatar &u, const catacurses::window &w ) { werase( w ); nc_color color = c_light_gray; @@ -1866,7 +1690,7 @@ static void draw_time_classic( const avatar &u, const catacurses::window &w ) if( u.has_watch() ) { mvwprintz( w, 0, 15, c_light_gray, to_string_time_of_day( calendar::turn ) ); } else if( g->get_levz() >= 0 ) { - wmove( w, point( 15, 0 ) ); + wmove( w, 0, 15 ); draw_time_graphic( w ); } else { mvwprintz( w, 0, 15, c_light_gray, _( "Time: ???" ) ); @@ -1890,12 +1714,12 @@ static void draw_hint( const avatar &, const catacurses::window &w ) wrefresh( w ); } -static void print_mana( const player &u, const catacurses::window &w, std::string fmt_string ) +static void draw_mana( const player &u, const catacurses::window &w ) { werase( w ); auto mana_pair = mana_stat( u ); - const std::string mana_string = string_format( fmt_string, _( "Mana" ), + const std::string mana_string = string_format( "%6s %5s %10s %5s", _( "Mana" ), colorize( mana_pair.second, mana_pair.first ), _( "Max Mana" ), colorize( to_string( u.magic.max_mana( u ) ), c_light_blue ) ); nc_color gray = c_light_gray; @@ -1904,26 +1728,6 @@ static void print_mana( const player &u, const catacurses::window &w, std::strin wrefresh( w ); } -static void draw_mana_classic( const player &u, const catacurses::window &w ) -{ - print_mana( u, w, "%-8s: %-5s %22s: %-5s" ); -} - -static void draw_mana_compact( const player &u, const catacurses::window &w ) -{ - print_mana( u, w, "%4s %-5s %12s %-5s" ); -} - -static void draw_mana_narrow( const player &u, const catacurses::window &w ) -{ - print_mana( u, w, " %-5s: %-5s %11s : %-5s" ); -} - -static void draw_mana_wide( const player &u, const catacurses::window &w ) -{ - print_mana( u, w, " %-5s: %-5s %15s : %-5s" ); -} - // ============ // INITIALIZERS // ============ @@ -1945,15 +1749,13 @@ static std::vector initialize_default_classic_panels() ret.emplace_back( window_panel( draw_health_classic, translate_marker( "Health" ), 7, 44, true ) ); ret.emplace_back( window_panel( draw_location_classic, translate_marker( "Location" ), 1, 44, true ) ); - ret.emplace_back( window_panel( draw_mana_classic, translate_marker( "Mana" ), 1, 44, true, - spell_panel ) ); + ret.emplace_back( window_panel( draw_mana, translate_marker( "Mana" ), 1, 44, true, spell_panel ) ); ret.emplace_back( window_panel( draw_weather_classic, translate_marker( "Weather" ), 1, 44, true ) ); ret.emplace_back( window_panel( draw_lighting_classic, translate_marker( "Lighting" ), 1, 44, true ) ); ret.emplace_back( window_panel( draw_weapon_classic, translate_marker( "Weapon" ), 1, 44, true ) ); ret.emplace_back( window_panel( draw_time_classic, translate_marker( "Time" ), 1, 44, true ) ); - ret.emplace_back( window_panel( draw_wind, translate_marker( "Wind" ), 1, 44, false ) ); ret.emplace_back( window_panel( draw_armor, translate_marker( "Armor" ), 5, 44, false ) ); ret.emplace_back( window_panel( draw_compass_padding, translate_marker( "Compass" ), 8, 44, true ) ); @@ -1973,10 +1775,9 @@ static std::vector initialize_default_compact_panels() ret.emplace_back( window_panel( draw_limb2, translate_marker( "Limbs" ), 3, 32, true ) ); ret.emplace_back( window_panel( draw_stealth, translate_marker( "Sound" ), 1, 32, true ) ); ret.emplace_back( window_panel( draw_stats, translate_marker( "Stats" ), 1, 32, true ) ); - ret.emplace_back( window_panel( draw_mana_compact, translate_marker( "Mana" ), 1, 32, true, - spell_panel ) ); + ret.emplace_back( window_panel( draw_mana, translate_marker( "Mana" ), 1, 32, true, spell_panel ) ); ret.emplace_back( window_panel( draw_time, translate_marker( "Time" ), 1, 32, true ) ); - ret.emplace_back( window_panel( draw_needs_compact, translate_marker( "Needs" ), 3, 32, true ) ); + ret.emplace_back( window_panel( draw_needs, translate_marker( "Needs" ), 3, 32, true ) ); ret.emplace_back( window_panel( draw_env_compact, translate_marker( "Env" ), 6, 32, true ) ); ret.emplace_back( window_panel( draw_veh_compact, translate_marker( "Vehicle" ), 1, 32, true ) ); ret.emplace_back( window_panel( draw_armor, translate_marker( "Armor" ), 5, 32, false ) ); @@ -1991,24 +1792,22 @@ static std::vector initialize_default_compact_panels() return ret; } -static std::vector initialize_default_label_narrow_panels() +static std::vector initialize_default_label_panels() { std::vector ret; ret.emplace_back( window_panel( draw_hint, translate_marker( "Hint" ), 1, 32, true ) ); - ret.emplace_back( window_panel( draw_limb_narrow, translate_marker( "Limbs" ), 3, 32, true ) ); - ret.emplace_back( window_panel( draw_char_narrow, translate_marker( "Movement" ), 3, 32, true ) ); - ret.emplace_back( window_panel( draw_mana_narrow, translate_marker( "Mana" ), 1, 32, true, - spell_panel ) ); - ret.emplace_back( window_panel( draw_stat_narrow, translate_marker( "Stats" ), 3, 32, true ) ); + ret.emplace_back( window_panel( draw_limb, translate_marker( "Limbs" ), 3, 32, true ) ); + ret.emplace_back( window_panel( draw_char, translate_marker( "Movement" ), 3, 32, true ) ); + ret.emplace_back( window_panel( draw_mana, translate_marker( "Mana" ), 1, 32, true, spell_panel ) ); + ret.emplace_back( window_panel( draw_stat, translate_marker( "Stats" ), 3, 32, true ) ); ret.emplace_back( window_panel( draw_veh_padding, translate_marker( "Vehicle" ), 1, 32, true ) ); - ret.emplace_back( window_panel( draw_loc_narrow, translate_marker( "Location" ), 5, 32, true ) ); - ret.emplace_back( window_panel( draw_wind_padding, translate_marker( "Wind" ), 1, 32, false ) ); + ret.emplace_back( window_panel( draw_env1, translate_marker( "Location" ), 5, 32, true ) ); ret.emplace_back( window_panel( draw_weapon_labels, translate_marker( "Weapon" ), 2, 32, true ) ); - ret.emplace_back( window_panel( draw_needs_narrow, translate_marker( "Needs" ), 5, 32, true ) ); + ret.emplace_back( window_panel( draw_mod1, translate_marker( "Needs" ), 5, 32, true ) ); ret.emplace_back( window_panel( draw_messages, translate_marker( "Log" ), -2, 32, true ) ); - ret.emplace_back( window_panel( draw_moon_narrow, translate_marker( "Moon" ), 2, 32, false ) ); - ret.emplace_back( window_panel( draw_armor_padding, translate_marker( "Armor" ), 5, 32, false ) ); + ret.emplace_back( window_panel( draw_env2, translate_marker( "Moon" ), 2, 32, false ) ); + ret.emplace_back( window_panel( draw_mod2, translate_marker( "Armor" ), 5, 32, false ) ); ret.emplace_back( window_panel( draw_compass_padding, translate_marker( "Compass" ), 8, 32, true ) ); #if defined(TILES) @@ -2020,44 +1819,12 @@ static std::vector initialize_default_label_narrow_panels() return ret; } -static std::vector initialize_default_label_panels() -{ - std::vector ret; - - ret.emplace_back( window_panel( draw_hint, translate_marker( "Hint" ), 1, 44, true ) ); - ret.emplace_back( window_panel( draw_limb_wide, translate_marker( "Limbs" ), 2, 44, true ) ); - ret.emplace_back( window_panel( draw_char_wide, translate_marker( "Movement" ), 2, 44, true ) ); - ret.emplace_back( window_panel( draw_mana_wide, translate_marker( "Mana" ), 1, 44, true, - spell_panel ) ); - ret.emplace_back( window_panel( draw_stat_wide, translate_marker( "Stats" ), 2, 44, true ) ); - ret.emplace_back( window_panel( draw_veh_padding, translate_marker( "Vehicle" ), 1, 44, true ) ); - ret.emplace_back( window_panel( draw_loc_wide_map, translate_marker( "Location" ), 5, 44, true ) ); - ret.emplace_back( window_panel( draw_wind_padding, translate_marker( "Wind" ), 1, 44, false ) ); - ret.emplace_back( window_panel( draw_loc_wide, translate_marker( "Location Alt" ), 5, 44, false ) ); - ret.emplace_back( window_panel( draw_weapon_labels, translate_marker( "Weapon" ), 2, 44, true ) ); - ret.emplace_back( window_panel( draw_needs_wide, translate_marker( "Needs" ), 2, 44, true ) ); - ret.emplace_back( window_panel( draw_messages, translate_marker( "Log" ), -2, 44, true ) ); - ret.emplace_back( window_panel( draw_moon_wide, translate_marker( "Moon" ), 1, 44, false ) ); - ret.emplace_back( window_panel( draw_armor_padding, translate_marker( "Armor" ), 5, 44, false ) ); - ret.emplace_back( window_panel( draw_compass_padding, translate_marker( "Compass" ), 8, 44, - true ) ); -#if defined(TILES) - ret.emplace_back( window_panel( draw_mminimap, translate_marker( "Map" ), -1, 44, true, - default_render, true ) ); -#endif // TILES - ret.emplace_back( window_panel( draw_ai_goal, "AI Needs", 1, 44, false ) ); - - return ret; -} - static std::map> initialize_default_panel_layouts() { std::map> ret; ret.emplace( std::make_pair( translate_marker( "classic" ), initialize_default_classic_panels() ) ); ret.emplace( std::make_pair( translate_marker( "compact" ), initialize_default_compact_panels() ) ); - ret.emplace( std::make_pair( translate_marker( "labels-narrow" ), - initialize_default_label_narrow_panels() ) ); ret.emplace( std::make_pair( translate_marker( "labels" ), initialize_default_label_panels() ) ); return ret; @@ -2080,7 +1847,7 @@ std::vector &panel_manager::get_current_layout() return get_current_layout(); } -std::string panel_manager::get_current_layout_id() const +const std::string panel_manager::get_current_layout_id() const { return current_layout_id; } @@ -2216,7 +1983,7 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t ctxt.register_action( "MOVE_PANEL" ); ctxt.register_action( "TOGGLE_PANEL" ); - const std::vector column_widths = { 17, 37, 17 }; + const int column_width = 43; // how far apart the columns are size_t max_index = 0; int counter = 0; bool selected = false; @@ -2237,8 +2004,8 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t static const std::string title = _( "SIDEBAR OPTIONS" ); decorate_panel( title, w ); // clear the panel list - for( int i = 1; i <= 18; i++ ) { - for( int j = 1; j <= column_widths[0]; j++ ) { + for( int i = 1; i <= 13; i++ ) { + for( int j = 1; j <= 12; j++ ) { mvwputch( w, i, j, c_black, ' ' ); } } @@ -2267,15 +2034,15 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t if( !selected ) { mvwprintz( w, row_indx.first + 1, 4, toggle_color, name ); } else { - if( modified_index < row_indx.second ) { + if( modified_index < row_indx.first ) { vertical_offset = 2; - } else if( modified_index == row_indx.second && row_indx.second < source_index ) { + } else if( modified_index == row_indx.first && row_indx.first < source_index ) { vertical_offset = 2; } else { vertical_offset = 1; } mvwprintz( w, row_indx.first + vertical_offset, 4, toggle_color, name ); - if( source_index == row_indx.second ) { + if( source_index == row_indx.first ) { if( modified_index < source_index ) { selected_offset = 0; } else { @@ -2285,31 +2052,21 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t } } } - size_t i = 1; + int i = 1; for( const auto &layout : layouts ) { - mvwprintz( w, i, column_widths[0] + column_widths[1] + 4, - current_layout_id == layout.first ? c_light_blue : c_white, _( layout.first ) ); + mvwprintz( w, i, 47, current_layout_id == layout.first ? c_light_blue : c_white, + _( layout.first ) ); i++; } - int col_offset = 0; - for( i = 0; i < column; i++ ) { - col_offset += column_widths[i]; - } - mvwprintz( w, index + selected_offset, 1 + ( col_offset ), c_yellow, ">>" ); - mvwvline( w, point( column_widths[0], 1 ), 0, 18 ); - mvwvline( w, point( column_widths[0] + column_widths[1], 1 ), 0, 18 ); - - col_offset = column_widths[0] + 2; - int col_width = column_widths[1] - 4; - mvwprintz( w, 1, col_offset, c_light_green, trunc_ellipse( ctxt.press_x( "TOGGLE_PANEL" ), - col_width ) + ":" ); - mvwprintz( w, 2, col_offset, c_white, _( "Toggle panels on/off" ) ); - mvwprintz( w, 3, col_offset, c_light_green, trunc_ellipse( ctxt.press_x( "MOVE_PANEL" ), - col_width ) + ":" ); - mvwprintz( w, 4, col_offset, c_white, _( "Change display order" ) ); - mvwprintz( w, 5, col_offset, c_light_green, trunc_ellipse( ctxt.press_x( "QUIT" ), - col_width ) + ":" ); - mvwprintz( w, 6, col_offset, c_white, _( "Exit" ) ); + mvwprintz( w, index + selected_offset, 1 + ( column_width * column ), c_yellow, ">>" ); + mvwvline( w, 1, 13, 0, 13 ); + mvwvline( w, 1, 43, 0, 13 ); + mvwprintz( w, 1, 15, c_light_green, trunc_ellipse( ctxt.press_x( "TOGGLE_PANEL" ), 27 ) + ":" ); + mvwprintz( w, 2, 15, c_white, _( "Toggle panels on/off" ) ); + mvwprintz( w, 3, 15, c_light_green, trunc_ellipse( ctxt.press_x( "MOVE_PANEL" ), 27 ) + ":" ); + mvwprintz( w, 4, 15, c_white, _( "Change display order" ) ); + mvwprintz( w, 5, 15, c_light_green, trunc_ellipse( ctxt.press_x( "QUIT" ), 27 ) + ":" ); + mvwprintz( w, 6, 15, c_white, _( "Exit" ) ); } wrefresh( w ); @@ -2352,7 +2109,7 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t return; } redraw = true; - } else if( action == "MOVE_PANEL" && column == 2 ) { + } else if( action == "MOVE_PANEL" && column == 1 ) { auto iter = layouts.begin(); for( size_t i = 1; i < index; i++ ) { iter++; @@ -2371,7 +2128,7 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t } else if( action == "RIGHT" || action == "LEFT" ) { // there are only two columns if( column == 0 ) { - column = 2; + column = 1; if( index > layouts.size() ) { index = layouts.size(); } diff --git a/src/panels.h b/src/panels.h index 85c0f43e859d9..bd4d1caa72861 100644 --- a/src/panels.h +++ b/src/panels.h @@ -74,7 +74,7 @@ class panel_manager } std::vector &get_current_layout(); - std::string get_current_layout_id() const; + const std::string get_current_layout_id() const; int get_width_right(); int get_width_left(); diff --git a/src/pathfinding.cpp b/src/pathfinding.cpp index 4b1c6b3d3544b..fe6053c38fab4 100644 --- a/src/pathfinding.cpp +++ b/src/pathfinding.cpp @@ -44,9 +44,9 @@ struct path_data_layer { std::array< int, MAPSIZE_X *MAPSIZE_Y > gscore; std::array< tripoint, MAPSIZE_X *MAPSIZE_Y > parent; - void init( const point &min, const point &max ) { - for( int x = min.x; x <= max.x; x++ ) { - for( int y = min.y; y <= max.y; y++ ) { + void init( const int minx, const int miny, const int maxx, const int maxy ) { + for( int x = minx; x <= maxx; x++ ) { + for( int y = miny; y <= maxy; y++ ) { const int ind = flat_index( x, y ); state[ind] = ASL_NONE; // Mark as unvisited } @@ -55,10 +55,12 @@ struct path_data_layer { }; struct pathfinder { - point min; - point max; + int minx; + int miny; + int maxx; + int maxy; pathfinder( int _minx, int _miny, int _maxx, int _maxy ) : - min( _minx, _miny ), max( _maxx, _maxy ) { + minx( _minx ), miny( _miny ), maxx( _maxx ), maxy( _maxy ) { } std::priority_queue< std::pair, std::vector< std::pair >, pair_greater_cmp_first > @@ -66,13 +68,13 @@ struct pathfinder { std::array< std::unique_ptr< path_data_layer >, OVERMAP_LAYERS > path_data; path_data_layer &get_layer( const int z ) { - std::unique_ptr< path_data_layer > &ptr = path_data[z + OVERMAP_DEPTH]; + auto &ptr = path_data[z + OVERMAP_DEPTH]; if( ptr != nullptr ) { return *ptr; } ptr = std::make_unique(); - ptr->init( min, max ); + ptr->init( minx, miny, maxx, maxy ); return *ptr; } @@ -125,7 +127,7 @@ bool vertical_move_destination( const map &m, tripoint &t ) constexpr int omtileszx = SEEX * 2; constexpr int omtileszy = SEEY * 2; - real_coords rc( m.getabs( t.xy() ) ); + real_coords rc( m.getabs( t.x, t.y ) ); const point omtile_align_start( m.getlocal( rc.begin_om_pos() ) ); @@ -391,8 +393,8 @@ std::vector map::route( const tripoint &f, const tripoint &t, if( has_zlevels() && terrain.has_flag( TFLAG_NO_FLOOR ) ) { // Special case - ledge in z-levels // Warning: really expensive, needs a cache - if( valid_move( p, tripoint( p.xy(), p.z - 1 ), false, true ) ) { - tripoint below( p.xy(), p.z - 1 ); + if( valid_move( p, tripoint( p.x, p.y, p.z - 1 ), false, true ) ) { + tripoint below( p.x, p.y, p.z - 1 ); if( !has_flag( TFLAG_NO_FLOOR, below ) ) { // Otherwise this would have been a huge fall auto &layer = pf.get_layer( p.z - 1 ); @@ -429,7 +431,7 @@ std::vector map::route( const tripoint &f, const tripoint &t, const maptile &parent_tile = maptile_at_internal( cur ); const auto &parent_terrain = parent_tile.get_ter_t(); if( settings.allow_climb_stairs && cur.z > minz && parent_terrain.has_flag( TFLAG_GOES_DOWN ) ) { - tripoint dest( cur.xy(), cur.z - 1 ); + tripoint dest( cur.x, cur.y, cur.z - 1 ); if( vertical_move_destination( *this, dest ) ) { auto &layer = pf.get_layer( dest.z ); pf.add_point( layer.gscore[parent_index] + 2, @@ -438,7 +440,7 @@ std::vector map::route( const tripoint &f, const tripoint &t, } } if( settings.allow_climb_stairs && cur.z < maxz && parent_terrain.has_flag( TFLAG_GOES_UP ) ) { - tripoint dest( cur.xy(), cur.z + 1 ); + tripoint dest( cur.x, cur.y, cur.z + 1 ); if( vertical_move_destination( *this, dest ) ) { auto &layer = pf.get_layer( dest.z ); pf.add_point( layer.gscore[parent_index] + 2, @@ -447,7 +449,7 @@ std::vector map::route( const tripoint &f, const tripoint &t, } } if( cur.z < maxz && parent_terrain.has_flag( TFLAG_RAMP ) && - valid_move( cur, tripoint( cur.xy(), cur.z + 1 ), false, true ) ) { + valid_move( cur, tripoint( cur.x, cur.y, cur.z + 1 ), false, true ) ) { auto &layer = pf.get_layer( cur.z + 1 ); for( size_t it = 0; it < 8; it++ ) { const tripoint above( cur.x + x_offset[it], cur.y + y_offset[it], cur.z + 1 ); diff --git a/src/pickup.cpp b/src/pickup.cpp index 2e65b4b64983e..4cb362b4d67c1 100644 --- a/src/pickup.cpp +++ b/src/pickup.cpp @@ -24,7 +24,6 @@ #include "messages.h" #include "options.h" #include "output.h" -#include "panels.h" #include "player.h" #include "string_formatter.h" #include "string_input_popup.h" @@ -457,7 +456,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) for( item_stack::iterator it : here ) { bool found_stack = false; for( std::list &stack : stacked_here ) { - if( stack.front()->display_stacked_with( *it ) ) { + if( stack.front()->stacks_with( *it ) ) { stack.push_back( it ); found_stack = true; break; @@ -510,21 +509,9 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) int itemsW = pickupW; - int pickupX = 0; - std::string position = get_option( "PICKUP_POSITION" ); - if( position == "left" ) { - pickupX = panel_manager::get_manager().get_width_left(); - } else if( position == "right" ) { - pickupX = TERMX - panel_manager::get_manager().get_width_right() - pickupW; - } else if( position == "overlapping" ) { - if( get_option( "SIDEBAR_POSITION" ) == "right" ) { - pickupX = TERMX - pickupW; - } - } - - catacurses::window w_pickup = catacurses::newwin( pickupH, pickupW, point( pickupX, 0 ) ); - catacurses::window w_item_info = - catacurses::newwin( TERMY - pickupH, pickupW, point( pickupX, pickupH ) ); + catacurses::window w_pickup = catacurses::newwin( pickupH, pickupW, 0, 0 ); + catacurses::window w_item_info = catacurses::newwin( TERMY - pickupH, + pickupW, pickupH, 0 ); std::string action; int raw_input_char = ' '; @@ -550,7 +537,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) int start = 0; int cur_it = 0; bool update = true; - mvwprintw( w_pickup, point_zero, _( "PICK" ) ); + mvwprintw( w_pickup, 0, 0, _( "PICK" ) ); int selected = 0; int iScrollPos = 0; @@ -569,7 +556,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) ctxt.get_available_single_char_hotkeys( "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:;" ); int idx = -1; for( int i = 1; i < pickupH; i++ ) { - mvwprintw( w_pickup, point( 0, i ), + mvwprintw( w_pickup, i, 0, " " ); } if( action == "ANY_INPUT" && @@ -591,7 +578,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) start = static_cast( ( matches.size() - 1 ) / maxitems ) * maxitems; } selected = start; - mvwprintw( w_pickup, point( 0, maxitems + 2 ), " " ); + mvwprintw( w_pickup, maxitems + 2, 0, " " ); } else if( action == "NEXT_TAB" ) { if( start + maxitems < static_cast( matches.size() ) ) { start += maxitems; @@ -600,7 +587,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) } iScrollPos = 0; selected = start; - mvwprintw( w_pickup, point( pickupH, maxitems + 2 ), " " ); + mvwprintw( w_pickup, maxitems + 2, pickupH, " " ); } else if( action == "UP" ) { selected--; iScrollPos = 0; @@ -731,7 +718,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) draw_item_info( w_item_info, "", "", vThisItem, vDummy, iScrollPos, true, true ); } draw_custom_border( w_item_info, 0 ); - mvwprintw( w_item_info, point( 2, 0 ), "< " ); + mvwprintw( w_item_info, 0, 2, "< " ); trim_and_print( w_item_info, 0, 4, itemsW - 8, c_white, "%s >", selected_item.display_name() ); wrefresh( w_item_info ); @@ -752,7 +739,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) update = true; } for( cur_it = start; cur_it < start + maxitems; cur_it++ ) { - mvwprintw( w_pickup, point( 0, 1 + ( cur_it % maxitems ) ), + mvwprintw( w_pickup, 1 + ( cur_it % maxitems ), 0, " " ); if( cur_it < static_cast( matches.size() ) ) { int true_it = matches[cur_it]; @@ -853,7 +840,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) } } - mvwprintw( w_pickup, point( 0, maxitems + 1 ), _( "[%s] Unmark" ), + mvwprintw( w_pickup, maxitems + 1, 0, _( "[%s] Unmark" ), ctxt.get_desc( "LEFT", 1 ) ); center_print( w_pickup, maxitems + 1, c_light_gray, string_format( _( "[%s] Help" ), @@ -862,7 +849,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) right_print( w_pickup, maxitems + 1, 0, c_light_gray, string_format( _( "[%s] Mark" ), ctxt.get_desc( "RIGHT", 1 ) ) ); - mvwprintw( w_pickup, point( 0, maxitems + 2 ), _( "[%s] Prev" ), + mvwprintw( w_pickup, maxitems + 2, 0, _( "[%s] Prev" ), ctxt.get_desc( "PREV_TAB", 1 ) ); center_print( w_pickup, maxitems + 2, c_light_gray, string_format( _( "[%s] All" ), @@ -874,7 +861,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) if( update ) { // Update weight & volume information update = false; for( int i = 9; i < pickupW; ++i ) { - mvwaddch( w_pickup, point( i, 0 ), ' ' ); + mvwaddch( w_pickup, 0, i, ' ' ); } units::mass weight_picked_up = 0_gram; units::volume volume_picked_up = 0_ml; diff --git a/src/pixel_minimap.cpp b/src/pixel_minimap.cpp index 74b2168ecf57e..35db8efcf993d 100644 --- a/src/pixel_minimap.cpp +++ b/src/pixel_minimap.cpp @@ -2,6 +2,17 @@ #include "pixel_minimap.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "avatar.h" #include "coordinate_conversions.h" #include "game.h" @@ -21,41 +32,12 @@ #include "math_defines.h" #include "optional.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - extern void set_displaybuffer_rendertarget(); namespace { -const point total_tiles_count = { ( MAPSIZE - 2 ) *SEEX, ( MAPSIZE - 2 ) *SEEY }; - -point get_pixel_size( const point &tile_size, pixel_minimap_mode mode ) -{ - switch( mode ) { - case pixel_minimap_mode::solid: - return tile_size; - - case pixel_minimap_mode::squares: - return { std::max( tile_size.x - 1, 1 ), std::max( tile_size.y - 1, 1 ) }; - - case pixel_minimap_mode::dots: - return { point_south_east }; - } - - return {}; -} +const point tiles_range = { ( MAPSIZE - 2 ) *SEEX, ( MAPSIZE - 2 ) *SEEY }; /// Returns a number in range [0..1]. The range lasts for @param phase_length_ms (milliseconds). float get_animation_phase( int phase_length_ms ) @@ -73,11 +55,12 @@ float get_animation_phase( int phase_length_ms ) SDL_Texture_Ptr create_cache_texture( const SDL_Renderer_Ptr &renderer, int tile_width, int tile_height ) { - return CreateTexture( renderer, - SDL_PIXELFORMAT_ARGB8888, - SDL_TEXTUREACCESS_TARGET, - tile_width, - tile_height ); + const SDL_Surface_Ptr temp = create_surface_32( tile_width, tile_height ); + assert( temp ); + SDL_Texture_Ptr tex( SDL_CreateTexture( renderer.get(), temp->format->format, + SDL_TEXTUREACCESS_TARGET, tile_width, tile_height ) ); + throwErrorIf( !tex, "SDL_CreateTexture failed to create minimap texture" ); + return tex; } SDL_Color get_map_color_at( const tripoint &p ) @@ -101,7 +84,7 @@ SDL_Color get_critter_color( Creature *critter, int flicker, int mixture ) if( const auto m = dynamic_cast( critter ) ) { //faction status (attacking or tracking) determines if red highlights get applied to creature - const auto matt = m->attitude( &g->u ); + const auto matt = m->attitude( &( g->u ) ); if( MATT_ATTACK == matt || MATT_FOLLOW == matt ) { const auto red_pixel = SDL_Color{ 0xFF, 0x0, 0x0, 0xFF }; @@ -119,43 +102,42 @@ SDL_Color get_critter_color( Creature *critter, int flicker, int mixture ) // (moving from submap corner to new corner) with MAPSIZE = 11 // textures are dumped when the player moves more than one submap in one update // (teleporting, z-level change) to prevent running out of the remaining pool -class pixel_minimap::shared_texture_pool -{ - public: - shared_texture_pool( const std::function &generator ) { - const size_t pool_size = ( MAPSIZE + 1 ) * ( MAPSIZE + 1 ); - - texture_pool.reserve( pool_size ); - inactive_index.reserve( pool_size ); - - for( size_t i = 0; i < pool_size; ++i ) { - texture_pool.emplace_back( generator() ); - inactive_index.push_back( i ); - } +struct pixel_minimap::shared_texture_pool { + std::vector texture_pool; + std::set active_index; + std::vector inactive_index; + + shared_texture_pool() { + texture_pool.resize( ( MAPSIZE + 1 ) * ( MAPSIZE + 1 ) ); + for( int i = 0; i < static_cast( texture_pool.size() ); i++ ) { + inactive_index.push_back( i ); } + } - //reserves a texture from the inactive group and returns tracking info - SDL_Texture_Ptr request_tex( size_t &index ) { - if( inactive_index.empty() ) { - debugmsg( "Ran out of available textures in the pool." ); - //shouldn't be happening, but minimap will just be default color instead of crashing - return nullptr; - } - index = inactive_index.back(); - inactive_index.pop_back(); - return std::move( texture_pool[index] ); + //reserves a texture from the inactive group and returns tracking info + SDL_Texture_Ptr request_tex( int &i ) { + if( inactive_index.empty() ) { + //shouldn't be happening, but minimap will just be default color instead of crashing + return nullptr; } + const int index = inactive_index.back(); + inactive_index.pop_back(); + active_index.insert( index ); + i = index; + return std::move( texture_pool[index] ); + } - //releases the provided texture back into the inactive pool to be used again - //called automatically in the submap cache destructor - void release_tex( size_t index, SDL_Texture_Ptr &&ptr ) { - inactive_index.push_back( index ); - texture_pool[index] = std::move( ptr ); + //releases the provided texture back into the inactive pool to be used again + //called automatically in the submap cache destructor + void release_tex( int i, SDL_Texture_Ptr ptr ) { + const auto it = active_index.find( i ); + if( it == active_index.end() ) { + return; } - - private: - std::vector texture_pool; - std::vector inactive_index; + inactive_index.push_back( i ); + active_index.erase( i ); + texture_pool[i] = std::move( ptr ); + } }; struct pixel_minimap::submap_cache { @@ -164,9 +146,9 @@ struct pixel_minimap::submap_cache { //checks if the submap has been looked at by the minimap routine bool touched; //the texture updates are drawn to - SDL_Texture_Ptr chunk_tex; + SDL_Texture_Ptr minimap_tex; //the submap being handled - size_t texture_index; + int texture_index; //the list of updates to apply to the texture //reduces render target switching to once per submap std::vector update_list; @@ -175,31 +157,14 @@ struct pixel_minimap::submap_cache { shared_texture_pool &pool; //reserve the SEEX * SEEY submap tiles - submap_cache( shared_texture_pool &pool ) : - touched( false ), - ready( false ), - pool( pool ) { - chunk_tex = pool.request_tex( texture_index ); - } - + submap_cache( shared_texture_pool &pool ); + submap_cache( submap_cache && ); //handle the release of the borrowed texture - ~submap_cache() { - pool.release_tex( texture_index, std::move( chunk_tex ) ); - } - - submap_cache( submap_cache && ) = default; - - SDL_Color &color_at( const point &p ) { - assert( p.x < SEEX ); - assert( p.y < SEEY ); - - return minimap_colors[p.y * SEEX + p.x]; - } + ~submap_cache(); }; pixel_minimap::pixel_minimap( const SDL_Renderer_Ptr &renderer ) : renderer( renderer ), - type( pixel_minimap_type::ortho ), cached_center_sm( tripoint_min ), screen_rect{ 0, 0, 0, 0 } { @@ -207,16 +172,10 @@ pixel_minimap::pixel_minimap( const SDL_Renderer_Ptr &renderer ) : pixel_minimap::~pixel_minimap() = default; -void pixel_minimap::set_type( pixel_minimap_type type ) -{ - this->type = type; - reset(); -} - void pixel_minimap::set_settings( const pixel_minimap_settings &settings ) { - this->settings = settings; reset(); + this->settings = settings; } void pixel_minimap::prepare_cache_for_updates( const tripoint ¢er ) @@ -251,41 +210,52 @@ void pixel_minimap::clear_unused_cache() //the render target will be set back to display_buffer after all submaps are updated void pixel_minimap::flush_cache_updates() { + SDL_Rect rectangle; + bool draw_with_dots = false; + + switch( settings.mode ) { + case pixel_minimap_mode::solid: + rectangle.w = tile_size.x; + rectangle.h = tile_size.y; + break; + + case pixel_minimap_mode::squares: + rectangle.w = std::max( tile_size.x - 1, 1 ); + rectangle.h = std::max( tile_size.y - 1, 1 ); + draw_with_dots = rectangle.w == 1 && rectangle.h == 1; + break; + + case pixel_minimap_mode::dots: + draw_with_dots = true; + break; + } + for( auto &mcp : cache ) { if( mcp.second.update_list.empty() ) { continue; } - SetRenderTarget( renderer, mcp.second.chunk_tex ); + SetRenderTarget( renderer, mcp.second.minimap_tex ); + //draw a default dark-colored rectangle over the texture which may have been used previously if( !mcp.second.ready ) { mcp.second.ready = true; - - SetRenderDrawColor( renderer, 0x00, 0x00, 0x00, 0x00 ); + SetRenderDrawColor( renderer, 0x00, 0x00, 0x00, 0xFF ); RenderClear( renderer ); - - for( int y = 0; y < SEEY; ++y ) { - for( int x = 0; x < SEEX; ++x ) { - const auto tile_pos = projector->get_tile_pos( { x, y }, { SEEX, SEEY } ); - const auto tile_size = projector->get_tile_size(); - - const auto rect = SDL_Rect{ tile_pos.x, tile_pos.y, tile_size.x, tile_size.y }; - - render_fill_rect( renderer, rect, 0x00, 0x00, 0x00 ); - } - } } for( const point &p : mcp.second.update_list ) { - const auto tile_pos = projector->get_tile_pos( p, { SEEX, SEEY } ); - const auto tile_color = mcp.second.color_at( p ); + const SDL_Color &c = mcp.second.minimap_colors[p.y * SEEX + p.x]; - if( pixel_size.x == 1 && pixel_size.y == 1 ) { - SetRenderDrawColor( renderer, tile_color.r, tile_color.g, tile_color.b, tile_color.a ); - RenderDrawPoint( renderer, tile_pos.x, tile_pos.y ); + SetRenderDrawColor( renderer, c.r, c.g, c.b, c.a ); + + if( draw_with_dots ) { + RenderDrawPoint( renderer, p.x * tile_size.x, p.y * tile_size.y ); } else { - const auto rect = SDL_Rect{ tile_pos.x, tile_pos.y, pixel_size.x, pixel_size.y }; - render_fill_rect( renderer, rect, tile_color.r, tile_color.g, tile_color.b ); + rectangle.x = p.x * tile_size.x; + rectangle.y = p.y * tile_size.y; + + render_fill_rect( renderer, rectangle, c.r, c.g, c.b ); } } @@ -329,7 +299,7 @@ void pixel_minimap::update_cache_at( const tripoint &sm_pos ) color = adjust_color_brightness( color, settings.brightness ); } - SDL_Color ¤t_color = cache_item.color_at( { x, y } ); + SDL_Color ¤t_color = cache_item.minimap_colors[y * SEEX + x]; if( current_color != color ) { current_color = color; @@ -364,64 +334,60 @@ void pixel_minimap::process_cache( const tripoint ¢er ) clear_unused_cache(); } +pixel_minimap::submap_cache::submap_cache( shared_texture_pool &pool ) : ready( false ), + pool( pool ) +{ + minimap_tex = pool.request_tex( texture_index ); +} + +pixel_minimap::submap_cache::~submap_cache() +{ + pool.release_tex( texture_index, std::move( minimap_tex ) ); +} + +pixel_minimap::submap_cache::submap_cache( submap_cache && ) = default; + void pixel_minimap::set_screen_rect( const SDL_Rect &screen_rect ) { - if( this->screen_rect == screen_rect && main_tex && tex_pool && projector ) { + if( this->screen_rect == screen_rect && main_tex && tex_pool ) { return; } this->screen_rect = screen_rect; - projector = create_projector( screen_rect ); - pixel_size = get_pixel_size( projector->get_tile_size(), settings.mode ); - - const auto size_on_screen = projector->get_tiles_size( total_tiles_count ); - - if( settings.scale_to_fit ) { - main_tex_clip_rect = SDL_Rect{ 0, 0, size_on_screen.x, size_on_screen.y }; - screen_clip_rect = fit_rect_inside( main_tex_clip_rect, screen_rect ); - - SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "1" ); - main_tex = create_cache_texture( renderer, size_on_screen.x, size_on_screen.y ); - SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "0" ); - - } else { - const int dx = ( size_on_screen.x - screen_rect.w ) / 2; - const int dy = ( size_on_screen.y - screen_rect.h ) / 2; - - main_tex_clip_rect = SDL_Rect{ - std::max( dx, 0 ), - std::max( dy, 0 ), - size_on_screen.x - 2 * std::max( dx, 0 ), - size_on_screen.y - 2 * std::max( dy, 0 ) - }; - - screen_clip_rect = SDL_Rect{ - screen_rect.x - std::min( dx, 0 ), - screen_rect.y - std::min( dy, 0 ), - main_tex_clip_rect.w, - main_tex_clip_rect.h - }; - - main_tex = create_cache_texture( renderer, size_on_screen.x, size_on_screen.y ); + tile_size.x = std::max( screen_rect.w / tiles_range.x, 1 ); + tile_size.y = std::max( screen_rect.h / tiles_range.y, 1 ); + //maintain a square "pixel" shape + if( settings.square_pixels ) { + const int smallest_size = std::min( tile_size.x, tile_size.y ); + tile_size.x = smallest_size; + tile_size.y = smallest_size; } + tiles_limit.x = std::min( screen_rect.w / tile_size.x, tiles_range.x ); + tiles_limit.y = std::min( screen_rect.h / tile_size.y, tiles_range.y ); + // Center the drawn area within the total area. + const int border_width = std::max( ( screen_rect.w - tiles_limit.x * tile_size.x ) / 2, 0 ); + const int border_height = std::max( ( screen_rect.h - tiles_limit.y * tile_size.y ) / 2, 0 ); + //prepare the minimap clipped area + clip_rect = SDL_Rect{ + screen_rect.x + border_width, + screen_rect.y + border_height, + screen_rect.w - border_width * 2, + screen_rect.h - border_height * 2 + }; cache.clear(); - const auto chunk_size = projector->get_tiles_size( { SEEX, SEEY } ); + main_tex = create_cache_texture( renderer, clip_rect.w, clip_rect.h ); + tex_pool.reset( new shared_texture_pool() ); - const auto chunk_texture_generator = [&chunk_size, this]() { - auto result = create_cache_texture( renderer, chunk_size.x, chunk_size.y ); - SetTextureBlendMode( result, SDL_BLENDMODE_BLEND ); - return result; - }; - - tex_pool = std::make_unique( chunk_texture_generator ); + for( auto &elem : tex_pool->texture_pool ) { + elem = create_cache_texture( renderer, tile_size.x * SEEX, tile_size.y * SEEY ); + } } void pixel_minimap::reset() { - projector.reset(); cache.clear(); main_tex.reset(); tex_pool.reset(); @@ -431,27 +397,24 @@ void pixel_minimap::render( const tripoint ¢er ) { SetRenderTarget( renderer, main_tex ); - SetRenderDrawColor( renderer, 0x00, 0x00, 0x00, 0x00 ); - RenderClear( renderer ); - render_cache( center ); render_critters( center ); //set display buffer to main screen set_displaybuffer_rendertarget(); //paint intermediate texture to screen - RenderCopy( renderer, main_tex, &main_tex_clip_rect, &screen_clip_rect ); + RenderCopy( renderer, main_tex, nullptr, &clip_rect ); } void pixel_minimap::render_cache( const tripoint ¢er ) { const auto sm_center = g->m.get_abs_sub() + ms_to_sm_copy( center ); const auto sm_offset = tripoint{ - total_tiles_count.x / SEEX / 2, - total_tiles_count.y / SEEY / 2, 0 + ( tiles_limit.x / SEEX ) / 2, + ( tiles_limit.y / SEEY ) / 2, 0 }; - auto ms_offset = center.xy(); + auto ms_offset = point{ center.x, center.y }; ms_to_sm_remain( ms_offset ); ms_offset = point{ SEEX / 2, SEEY / 2 } - ms_offset; @@ -462,8 +425,8 @@ void pixel_minimap::render_cache( const tripoint ¢er ) const auto rel_pos = elem.first - sm_center; - if( std::abs( rel_pos.x ) > sm_offset.x + 1 || - std::abs( rel_pos.y ) > sm_offset.y + 1 || + if( std::abs( rel_pos.x ) > HALF_MAPSIZE || + std::abs( rel_pos.y ) > HALF_MAPSIZE || rel_pos.z != 0 ) { continue; } @@ -471,9 +434,9 @@ void pixel_minimap::render_cache( const tripoint ¢er ) const auto sm_pos = rel_pos + sm_offset; const auto ms_pos = sm_to_ms_copy( sm_pos ) + ms_offset; - const auto chunk_rect = projector->get_chunk_rect( ms_pos.xy(), { SEEX, SEEY } ); + const auto rect = get_map_chunk_rect( { ms_pos.x, ms_pos.y } ); - RenderCopy( renderer, elem.second.chunk_tex, nullptr, &chunk_rect ); + RenderCopy( renderer, elem.second.minimap_tex, nullptr, &rect ); } } @@ -481,7 +444,7 @@ void pixel_minimap::render_critters( const tripoint ¢er ) { //handles the enemy faction red highlights //this value should be divisible by 200 - const int indicator_length = settings.beacon_blink_interval * 200; //default is 2000 ms, 2 seconds + const int indicator_length = settings.blink_interval * 200; //default is 2000 ms, 2 seconds int flicker = 100; int mixture = 0; @@ -496,15 +459,11 @@ void pixel_minimap::render_critters( const tripoint ¢er ) const auto &access_cache = g->m.access_cache( center.z ); - const int start_x = center.x - total_tiles_count.x / 2; - const int start_y = center.y - total_tiles_count.y / 2; - const point beacon_size = { - std::max( projector->get_tile_size().x *settings.beacon_size / 2, 2 ), - std::max( projector->get_tile_size().y *settings.beacon_size / 2, 2 ) - }; + const int start_x = center.x - tiles_limit.x / 2; + const int start_y = center.y - tiles_limit.y / 2; - for( int y = 0; y < total_tiles_count.y; y++ ) { - for( int x = 0; x < total_tiles_count.x; x++ ) { + for( int y = 0; y < tiles_limit.y; y++ ) { + for( int x = 0; x < tiles_limit.x; x++ ) { const auto p = tripoint{ start_x + x, start_y + y, center.z }; const auto lighting = access_cache.visibility_cache[p.x][p.y]; @@ -514,19 +473,42 @@ void pixel_minimap::render_critters( const tripoint ¢er ) const auto critter = g->critter_at( p, true ); - if( critter == nullptr || !g->u.sees( *critter ) ) { + if( critter == nullptr ) { continue; } - const auto critter_pos = projector->get_tile_pos( { x, y }, total_tiles_count ); - const auto critter_rect = SDL_Rect{ critter_pos.x, critter_pos.y, beacon_size.x, beacon_size.y }; - const auto critter_color = get_critter_color( critter, flicker, mixture ); + if( critter != &( g->u ) && !g->u.sees( *critter ) ) { + continue; + } - draw_beacon( critter_rect, critter_color ); + draw_beacon( + get_critter_rect( { x, y } ), + get_critter_color( critter, flicker, mixture ) + ); } } } +SDL_Rect pixel_minimap::get_map_chunk_rect( const point &p ) const +{ + return { + p.x * tile_size.x, + p.y * tile_size.y, + SEEX * tile_size.x, + SEEY *tile_size.y + }; +} + +SDL_Rect pixel_minimap::get_critter_rect( const point &p ) const +{ + return { + p.x * tile_size.x, + p.y * tile_size.y, + tile_size.x, + tile_size.y + }; +} + //the main call for drawing the pixel minimap to the screen void pixel_minimap::draw( const SDL_Rect &screen_rect, const tripoint ¢er ) { @@ -547,7 +529,7 @@ void pixel_minimap::draw_beacon( const SDL_Rect &rect, const SDL_Color &color ) { for( int x = -rect.w, x_max = rect.w; x <= x_max; ++x ) { for( int y = -rect.h + std::abs( x ), y_max = rect.h - std::abs( x ); y <= y_max; ++y ) { - const int divisor = 2 * ( std::abs( y ) == rect.h - std::abs( x ) ? 1 : 0 ) + 1; + const int divisor = 2 * ( ( std::abs( y ) == rect.h - std::abs( x ) ) ? 1 : 0 ) + 1; SetRenderDrawColor( renderer, color.r / divisor, color.g / divisor, color.b / divisor, 0xFF ); RenderDrawPoint( renderer, rect.x + x, rect.y + y ); @@ -555,23 +537,4 @@ void pixel_minimap::draw_beacon( const SDL_Rect &rect, const SDL_Color &color ) } } -std::unique_ptr pixel_minimap::create_projector( - const SDL_Rect &max_screen_rect ) -const -{ - switch( type ) { - case pixel_minimap_type::ortho: - return std::unique_ptr { - new pixel_minimap_ortho_projector( total_tiles_count, max_screen_rect, settings.square_pixels ) - }; - - case pixel_minimap_type::iso: - return std::unique_ptr { - new pixel_minimap_iso_projector( total_tiles_count, max_screen_rect, settings.square_pixels ) - }; - } - - return nullptr; -} - #endif // SDL_TILES diff --git a/src/pixel_minimap.h b/src/pixel_minimap.h index bfd75f912e9b2..f6f930bf30aeb 100644 --- a/src/pixel_minimap.h +++ b/src/pixel_minimap.h @@ -2,20 +2,12 @@ #ifndef MINIMAP_H #define MINIMAP_H - #include #include -#include "pixel_minimap_projectors.h" #include "point.h" #include "sdl_wrappers.h" - -enum class pixel_minimap_type { - ortho, - iso -}; - enum class pixel_minimap_mode { solid, squares, @@ -25,10 +17,8 @@ enum class pixel_minimap_mode { struct pixel_minimap_settings { pixel_minimap_mode mode = pixel_minimap_mode::solid; int brightness = 100; - int beacon_size = 2; - int beacon_blink_interval = 0; + int blink_interval = 0; bool square_pixels = true; - bool scale_to_fit = false; }; class pixel_minimap @@ -37,7 +27,6 @@ class pixel_minimap pixel_minimap( const SDL_Renderer_Ptr &renderer ); ~pixel_minimap(); - void set_type( pixel_minimap_type type ); void set_settings( const pixel_minimap_settings &settings ); void draw( const SDL_Rect &screen_rect, const tripoint ¢er ); @@ -63,29 +52,27 @@ class pixel_minimap void render_cache( const tripoint ¢er ); void render_critters( const tripoint ¢er ); - std::unique_ptr create_projector( const SDL_Rect &max_screen_rect ) const; + SDL_Rect get_map_chunk_rect( const point &p ) const; + SDL_Rect get_critter_rect( const point &p ) const; private: const SDL_Renderer_Ptr &renderer; - pixel_minimap_type type; - pixel_minimap_settings settings; - - point pixel_size; + point tile_size; + point tiles_limit; //track the previous viewing area to determine if the minimap cache needs to be cleared tripoint cached_center_sm; - SDL_Rect screen_rect; - SDL_Rect main_tex_clip_rect; - SDL_Rect screen_clip_rect; + pixel_minimap_settings settings; + SDL_Rect screen_rect; + SDL_Rect clip_rect; SDL_Texture_Ptr main_tex; - std::unique_ptr projector; - //the minimap texture pool which is used to reduce new texture allocation spam - class shared_texture_pool; + struct shared_texture_pool; + std::unique_ptr tex_pool; std::map cache; diff --git a/src/pixel_minimap_projectors.cpp b/src/pixel_minimap_projectors.cpp deleted file mode 100644 index 50329794a8bae..0000000000000 --- a/src/pixel_minimap_projectors.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#if defined(TILES) - -#include "pixel_minimap_projectors.h" - -#include "game_constants.h" - - -pixel_minimap_ortho_projector::pixel_minimap_ortho_projector( - const point &total_tiles_count, - const SDL_Rect &max_screen_rect, - bool square_pixels ) -{ - tile_size.x = std::max( max_screen_rect.w / total_tiles_count.x, 1 ); - tile_size.y = std::max( max_screen_rect.h / total_tiles_count.y, 1 ); - - if( square_pixels ) { - tile_size.x = tile_size.y = std::min( tile_size.x, tile_size.y ); - } -} - -SDL_Rect pixel_minimap_ortho_projector::get_chunk_rect( - const point &p, - const point &tiles_count ) const -{ - return { - p.x * tile_size.x, - p.y * tile_size.y, - tiles_count.x * tile_size.x, - tiles_count.y *tile_size.y - }; -} - -point pixel_minimap_ortho_projector::get_tile_size() const -{ - return tile_size; -} - -point pixel_minimap_ortho_projector::get_tiles_size( const point &tiles_count ) const -{ - return { - tiles_count.x * tile_size.x, - tiles_count.y *tile_size.y - }; -} - -point pixel_minimap_ortho_projector::get_tile_pos( const point &p, - const point &/*tiles_count*/ ) const -{ - return { p.x * tile_size.x, p.y * tile_size.y }; -} - - -pixel_minimap_iso_projector::pixel_minimap_iso_projector( - const point &total_tiles_count, - const SDL_Rect &max_screen_rect, - bool square_pixels ) : - - total_tiles_count( total_tiles_count ) -{ - tile_size.x = std::max( max_screen_rect.w / ( 2 * total_tiles_count.x - 1 ), 2 ); - tile_size.y = std::max( max_screen_rect.h / total_tiles_count.y, 2 ); - - if( square_pixels ) { - tile_size.x = tile_size.y = std::min( tile_size.x, tile_size.y ); - } -} - -SDL_Rect pixel_minimap_iso_projector::get_chunk_rect( - const point &p, - const point &tiles_count ) const -{ - const auto size = get_tiles_size( tiles_count ); - const auto offset = point{ 0, tile_size.y *tiles_count.y / 2 }; - const auto pos = get_tile_pos( p, total_tiles_count ) - offset; - - return { pos.x, pos.y, size.x, size.y }; -} - -point pixel_minimap_iso_projector::get_tile_size() const -{ - return tile_size; -} - -point pixel_minimap_iso_projector::get_tiles_size( const point &tiles_count ) const -{ - return { - tile_size.x *( 2 * tiles_count.x - 1 ), - tile_size.y *tiles_count.y - }; -} - -point pixel_minimap_iso_projector::get_tile_pos( const point &p, const point &tiles_count ) const -{ - return { - tile_size.x *( p.x + p.y ), - tile_size.y *( tiles_count.y + p.y - p.x - 1 ) / 2, - }; -} - -#endif // TILES diff --git a/src/pixel_minimap_projectors.h b/src/pixel_minimap_projectors.h deleted file mode 100644 index cccdd66a4c4ac..0000000000000 --- a/src/pixel_minimap_projectors.h +++ /dev/null @@ -1,60 +0,0 @@ -#pragma once -#ifndef PIXEL_MINIMAP_PROJECTORS_H -#define PIXEL_MINIMAP_PROJECTORS_H - -#include "enums.h" -#include "point.h" -#include "sdl_wrappers.h" - - -class pixel_minimap_projector -{ - public: - pixel_minimap_projector() = default; - virtual ~pixel_minimap_projector() = default; - - virtual point get_tile_size() const = 0; - virtual point get_tiles_size( const point &tiles_count ) const = 0; - virtual point get_tile_pos( const point &p, const point &tiles_count ) const = 0; - - virtual SDL_Rect get_chunk_rect( const point &p, const point &tiles_count ) const = 0; -}; - - -class pixel_minimap_ortho_projector : public pixel_minimap_projector -{ - public: - pixel_minimap_ortho_projector( const point &total_tiles_count, - const SDL_Rect &max_screen_rect, - bool square_pixels ); - - point get_tile_size() const override; - point get_tiles_size( const point &tiles_count ) const override; - point get_tile_pos( const point &p, const point &tiles_count ) const override; - - SDL_Rect get_chunk_rect( const point &p, const point &tiles_count ) const override; - - private: - point tile_size; -}; - - -class pixel_minimap_iso_projector : public pixel_minimap_projector -{ - public: - pixel_minimap_iso_projector( const point &total_tiles_count, - const SDL_Rect &max_screen_rect, - bool square_pixels ); - - point get_tile_size() const override; - point get_tiles_size( const point &tiles_count ) const override; - point get_tile_pos( const point &p, const point &tiles_count ) const override; - - SDL_Rect get_chunk_rect( const point &p, const point &tiles_count ) const override; - - private: - point total_tiles_count; - point tile_size; -}; - -#endif // PIXEL_MINIMAP_PROJECTORS_H diff --git a/src/platform_win.h b/src/platform_win.h index b4a8d575d0cac..2f7b1dbae80f3 100644 --- a/src/platform_win.h +++ b/src/platform_win.h @@ -22,8 +22,6 @@ # endif # # include - -HWND getWindowHandle(); #endif #endif //CATA_PLATFORM_WIN_H diff --git a/src/player.cpp b/src/player.cpp index adec1c33d026a..3fe596a1960db 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -46,7 +46,6 @@ #include "martialarts.h" #include "material.h" #include "messages.h" -#include "monster.h" #include "morale.h" #include "morale_types.h" #include "mtype.h" @@ -85,6 +84,7 @@ #include "lightmap.h" #include "line.h" #include "math_defines.h" +#include "monster.h" #include "omdata.h" #include "overmap_types.h" #include "recipe.h" @@ -124,7 +124,6 @@ const efftype_id effect_cig( "cig" ); const efftype_id effect_cold( "cold" ); const efftype_id effect_common_cold( "common_cold" ); const efftype_id effect_contacts( "contacts" ); -const efftype_id effect_controlled( "controlled" ); const efftype_id effect_corroding( "corroding" ); const efftype_id effect_cough_suppress( "cough_suppress" ); const efftype_id effect_darkness( "darkness" ); @@ -230,6 +229,7 @@ static const bionic_id bio_metabolics( "bio_metabolics" ); static const bionic_id bio_noise( "bio_noise" ); static const bionic_id bio_plut_filter( "bio_plut_filter" ); static const bionic_id bio_power_weakness( "bio_power_weakness" ); +static const bionic_id bio_purifier( "bio_purifier" ); static const bionic_id bio_reactor( "bio_reactor" ); static const bionic_id bio_recycler( "bio_recycler" ); static const bionic_id bio_shakes( "bio_shakes" ); @@ -455,8 +455,8 @@ stat_mod player::get_pain_penalty() const return ret; } -player::player() : - next_climate_control_check( calendar::before_time_starts ) +player::player() : Character() + , next_climate_control_check( calendar::before_time_starts ) , cached_time( calendar::before_time_starts ) { id = -1; // -1 is invalid @@ -641,7 +641,7 @@ void player::process_turn() // player::read, player::practice, ... // Check for spontaneous discovery of martial art styles for( auto &style : autolearn_martialart_types() ) { - const matype_id &ma( style ); + const matype_id ma( style ); if( !has_martialart( ma ) && can_autolearn( ma ) ) { add_martialart( ma ); @@ -653,7 +653,7 @@ void player::process_turn() if( ( has_trait( trait_NOMAD ) || has_trait( trait_NOMAD2 ) || has_trait( trait_NOMAD3 ) ) && !has_effect( effect_sleep ) && !has_effect( effect_narcosis ) ) { const tripoint ompos = global_omt_location(); - const point pos = ompos.xy(); + const point pos = point( ompos.x, ompos.y ); if( overmap_time.find( pos ) == overmap_time.end() ) { overmap_time[pos] = 1_turns; } else { @@ -679,7 +679,7 @@ void player::process_turn() continue; } // Find the amount of time passed since the player touched any of the overmap tile's submaps. - const tripoint tpt = tripoint( it->first, 0 ); + const tripoint tpt = tripoint( it->first.x, it->first.y, 0 ); const time_point last_touched = overmap_buffer.scent_at( tpt ).creation_time; const time_duration since_visit = now - last_touched; // If the player has spent little time in this overmap tile, let it decay after just an hour instead of the usual extended decay time. @@ -744,7 +744,7 @@ void player::apply_persistent_morale() if( dist > max_dist ) { continue; } - const point pos = ompos.xy() + point( dx, dy ); + const point pos = point( ompos.x + dx, ompos.y + dy ); if( overmap_time.find( pos ) == overmap_time.end() ) { continue; } @@ -1102,9 +1102,7 @@ void player::update_bodytemp() // Morale bonus for comfiness - only if actually comfy (not too warm/cold) // Spread the morale bonus in time. if( comfortable_warmth > 0 && - // @todo make this simpler and use time_duration/time_point - to_turn( calendar::turn ) % to_turns( 1_minutes ) == ( MINUTES( bp ) / MINUTES( - num_bp ) ) && + calendar::turn % MINUTES( 1 ) == ( MINUTES( bp ) / MINUTES( num_bp ) ) && get_effect_int( effect_cold, num_bp ) == 0 && get_effect_int( effect_hot, num_bp ) == 0 && temp_cur[bp] > BODYTEMP_COLD && temp_cur[bp] <= BODYTEMP_NORM ) { @@ -1194,11 +1192,10 @@ void player::update_bodytemp() int wetness_percentage = 100 * body_wetness[bp] / drench_capacity[bp]; // 0 - 100 // Warmth gives a slight buff to temperature resistance // Wetness gives a heavy nerf to temperature resistance - double adjusted_warmth = warmth( bp ) - wetness_percentage; - int Ftemperature = static_cast( player_local_temp + 0.2 * adjusted_warmth ); + int Ftemperature = static_cast( player_local_temp + + warmth( bp ) * 0.2 - 20 * wetness_percentage / 100 ); // Windchill reduced by your armor - int FBwindPower = static_cast( - total_windpower * ( 1 - get_wind_resistance( bp ) / 100.0 ) ); + int FBwindPower = static_cast( total_windpower * ( 1 - get_wind_resistance( bp ) / 100.0 ) ); int intense = get_effect_int( effect_frostbite, bp ); @@ -1574,7 +1571,7 @@ int player::run_cost( int base_cost, bool diag ) const } } - if( !is_mounted() ) { + if( !has_effect( effect_riding ) ) { if( movecost > 100 ) { movecost *= Character::mutation_value( "movecost_obstacle_modifier" ); if( movecost < 100 ) { @@ -1692,7 +1689,7 @@ int player::run_cost( int base_cost, bool diag ) const int player::swim_speed() const { int ret; - if( is_mounted() ) { + if( has_effect( effect_riding ) && mounted_creature != nullptr ) { monster *mon = mounted_creature.get(); // no difference in swim speed by monster type yet. // TODO : difference in swim speed by monster type. @@ -2369,9 +2366,7 @@ int player::overmap_sight_range( int light_level ) const float multiplier = Character::mutation_value( "overmap_multiplier" ); // Binoculars double your sight range. - const bool has_optic = ( has_item_with_flag( "ZOOM" ) || has_bionic( bio_eye_optic ) || - ( is_mounted() && - mounted_creature->has_flag( MF_MECH_RECON_VISION ) ) ); + const bool has_optic = ( has_item_with_flag( "ZOOM" ) || has_bionic( bio_eye_optic ) ); if( has_optic ) { multiplier += 1; } @@ -2553,12 +2548,8 @@ void player::set_movement_mode( const player_movemode new_mode ) { switch( new_mode ) { case PMM_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." ) ); - } + if( has_effect( effect_riding ) ) { + add_msg( _( "You nudge your steed to a steady trot." ) ); } else { add_msg( _( "You start walking." ) ); } @@ -2569,18 +2560,13 @@ void player::set_movement_mode( const player_movemode new_mode ) 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." ) ); - } + if( has_effect( effect_riding ) ) { + add_msg( _( "You spur your steed into a gallop." ) ); } else { add_msg( _( "You start running." ) ); } } else { - if( is_mounted() ) { - // mounts dont currently have stamina, but may do in future. + if( has_effect( effect_riding ) ) { add_msg( m_bad, _( "Your steed is too tired to go faster." ) ); } else { add_msg( m_bad, _( "You're too tired to run." ) ); @@ -2589,12 +2575,8 @@ void player::set_movement_mode( const player_movemode new_mode ) break; } case PMM_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." ) ); - } + if( has_effect( effect_riding ) ) { + add_msg( _( "You slow your steed to a walk." ) ); } else { add_msg( _( "You start crouching." ) ); } @@ -3435,10 +3417,10 @@ float player::fall_damage_mod() const /** @EFFECT_DEX decreases damage from falling */ /** @EFFECT_DODGE decreases damage from falling */ - float dex_dodge = dex_cur / 2.0 + get_skill_level( skill_dodge ); + float dex_dodge = dex_cur / 2 + get_skill_level( skill_dodge ); // Penalize for wearing heavy stuff - const float average_leg_encumb = ( encumb( bp_leg_l ) + encumb( bp_leg_r ) ) / 2.0; - dex_dodge -= ( average_leg_encumb + encumb( bp_torso ) ) / 10; + dex_dodge -= ( ( ( encumb( bp_leg_l ) + encumb( bp_leg_r ) ) / 2 ) + ( encumb( + bp_torso ) / 1 ) ) / 10; // But prevent it from increasing damage dex_dodge = std::max( 0.0f, dex_dodge ); // 100% damage at 0, 75% at 10, 50% at 20 and so on @@ -3906,11 +3888,6 @@ void player::check_needs_extremes() add_memorial_log( pgettext( "memorial_male", "Died of adrenaline overdose." ), pgettext( "memorial_female", "Died of adrenaline overdose." ) ); hp_cur[hp_torso] = 0; - } else if( get_effect_int( effect_drunk ) > 4 ) { - add_msg_if_player( m_bad, _( "Your breathing slows down to a stop." ) ); - add_memorial_log( pgettext( "memorial_male", "Died of an alcohol overdose." ), - pgettext( "memorial_female", "Died of an alcohol overdose." ) ); - hp_cur[hp_torso] = 0; } // check if we've starved @@ -4132,7 +4109,7 @@ needs_rates player::calc_needs_rates() if( has_trait( trait_TRANSPIRATION ) ) { // Transpiration, the act of moving nutrients with evaporating water, can take a very heavy toll on your thirst when it's really hot. - rates.thirst *= ( ( g->weather.get_temperature( pos() ) - 32.5f ) / 40.0f ); + rates.thirst *= ( ( g->weather.get_temperature( pos() ) - 65 / 2 ) / 40.0f ); } if( is_npc() ) { @@ -4345,14 +4322,14 @@ void player::update_stamina( int turns ) mutation_value( "stamina_regen_modifier" ); // But mouth encumbrance interferes, even with mutated stamina. stamina_recovery += stamina_multiplier * std::max( 1.0f, - get_option( "PLAYER_BASE_STAMINA_REGEN_RATE" ) - ( encumb( bp_mouth ) / 5.0f ) ); + get_option( "PLAYER_BASE_STAMINA_REGEN_RATE" ) - ( encumb( bp_mouth ) / 10.0f ) ); // TODO: recovering stamina causes hunger/thirst/fatigue. // TODO: Tiredness slowing recovery // stim recovers stamina (or impairs recovery) if( stim > 0 ) { // TODO: Make stamina recovery with stims cost health - stamina_recovery += std::min( 5.0f, stim / 15.0f ); + stamina_recovery += std::min( 5.0f, stim / 20.0f ); } else if( stim < 0 ) { // Affect it less near 0 and more near full // Negative stim kill at -200 @@ -5809,12 +5786,10 @@ void player::suffer() } // Negative bionics effects - if( has_bionic( bio_dis_shock ) && power_level > 9 && one_turn_in( 2_hours ) && - !has_effect( effect_narcosis ) ) { + if( has_bionic( bio_dis_shock ) && one_turn_in( 2_hours ) && !has_effect( effect_narcosis ) ) { add_msg_if_player( m_bad, _( "You suffer a painful electrical discharge!" ) ); mod_pain( 1 ); moves -= 150; - charge_power( -10 ); if( weapon.typeId() == "e_handcuffs" && weapon.charges > 0 ) { weapon.charges -= rng( 1, 3 ) * 50; @@ -6900,14 +6875,6 @@ std::list player::use_charges( const itype_id &what, int qty, return res; } else if( what == "UPS" ) { - if( is_mounted() && mounted_creature.get()->has_flag( MF_RIDEABLE_MECH ) && - mounted_creature.get()->battery_item ) { - auto mons = mounted_creature.get(); - int power_drain = std::min( mons->battery_item->ammo_remaining(), qty ); - mons->use_mech_power( -power_drain ); - qty -= std::min( qty, power_drain ); - return res; - } if( power_level > 0 && has_active_bionic( bio_ups ) ) { int bio = std::min( power_level, qty ); charge_power( -bio ); @@ -6998,11 +6965,6 @@ bool player::has_charges( const itype_id &it, int quantity, if( it == "fire" || it == "apparatus" ) { return has_fire( quantity ); } - if( it == "UPS" && is_mounted() && - mounted_creature.get()->has_flag( MF_RIDEABLE_MECH ) ) { - auto mons = mounted_creature.get(); - return quantity <= mons->battery_item->ammo_remaining(); - } return charges_of( it, quantity, filter ) == quantity; } @@ -7472,7 +7434,7 @@ item::reload_option player::select_ammo( const item &base, uistate.lastreload[ ammotype( base.ammo_default() ) ] = sel->is_ammo_container() ? sel->contents.front().typeId() : sel->typeId(); - return opts[ menu.ret ] ; + return std::move( opts[ menu.ret ] ); } bool player::list_ammo( const item &base, std::vector &ammo_list, @@ -7560,12 +7522,12 @@ item::reload_option player::select_ammo( const item &base, bool prompt, bool emp } ); if( is_npc() ) { - return ammo_list[ 0 ] ; + return std::move( ammo_list[ 0 ] ); } if( !prompt && ammo_list.size() == 1 ) { // unconditionally suppress the prompt if there's only one option - return ammo_list[ 0 ] ; + return std::move( ammo_list[ 0 ] ); } return select_ammo( base, std::move( ammo_list ) ); @@ -7634,24 +7596,24 @@ ret_val player::can_wear( const item &it ) const if( ( ( it.covers( bp_foot_l ) && is_wearing_shoes( side::LEFT ) ) || ( it.covers( bp_foot_r ) && is_wearing_shoes( side::RIGHT ) ) ) && - ( !it.has_flag( "OVERSIZE" ) || !it.has_flag( "OUTER" ) ) && !it.has_flag( "SKINTIGHT" ) && - !it.has_flag( "BELTED" ) && !it.has_flag( "PERSONAL" ) && !it.has_flag( "AURA" ) && - !it.has_flag( "SEMITANGIBLE" ) ) { + ( !it.has_flag( "OVERSIZE" ) || !it.has_flag( "OUTER" ) ) && + !it.has_flag( "SKINTIGHT" ) && !it.has_flag( "BELTED" ) ) { // Checks to see if the player is wearing shoes return ret_val::make_failure( ( is_player() ? _( "You're already wearing footwear!" ) : string_format( _( "%s is already wearing footwear!" ), name ) ) ); } if( it.covers( bp_head ) && - !it.has_flag( "HELMET_COMPAT" ) && !it.has_flag( "SKINTIGHT" ) && !it.has_flag( "PERSONAL" ) && - !it.has_flag( "AURA" ) && !it.has_flag( "SEMITANGIBLE" ) && !it.has_flag( "OVERSIZE" ) && + !it.has_flag( "HELMET_COMPAT" ) && + !it.has_flag( "SKINTIGHT" ) && + !it.has_flag( "OVERSIZE" ) && is_wearing_helmet() ) { return ret_val::make_failure( wearing_something_on( bp_head ), ( is_player() ? _( "You can't wear that with other headgear!" ) : string_format( _( "%s can't wear that with other headgear!" ), name ) ) ); } - if( it.covers( bp_head ) && !it.has_flag( "SEMITANGIBLE" ) && + if( it.covers( bp_head ) && ( it.has_flag( "SKINTIGHT" ) || it.has_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!" ) @@ -7667,7 +7629,7 @@ ret_val player::can_wear( const item &it ) const return ret_val::make_failure( _( "Can't wear that, it's filthy!" ) ); } - if( !it.has_flag( "OVERSIZE" ) && !it.has_flag( "SEMITANGIBLE" ) ) { + if( !it.has_flag( "OVERSIZE" ) ) { for( const trait_id &mut : get_mutations() ) { const auto &branch = mut.obj(); if( branch.conflicts_with_item( it ) ) { @@ -7675,7 +7637,7 @@ ret_val player::can_wear( const item &it ) const branch.name(), it.type_name() ); } } - if( it.covers( bp_head ) && !it.has_flag( "SEMITANGIBLE" ) && + if( it.covers( bp_head ) && !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 ) || @@ -8161,10 +8123,7 @@ int player::item_wear_cost( const item &it ) const double mv = item_handling_cost( it ); switch( it.get_layer() ) { - case PERSONAL_LAYER: - break; - - case UNDERWEAR_LAYER: + case UNDERWEAR: mv *= 1.5; break; @@ -8179,10 +8138,6 @@ int player::item_wear_cost( const item &it ) const case BELTED_LAYER: mv /= 2.0; break; - - case AURA_LAYER: - break; - default: break; } @@ -9174,10 +9129,9 @@ void player::gunmod_add( item &gun, item &mod ) actions[ prompt.ret ](); } - const int turns = !has_trait( trait_DEBUG_HS ) ? mod.type->gunmod->install_time : 0; - const int moves = to_moves( time_duration::from_turns( turns ) ); + int turns = !has_trait( trait_DEBUG_HS ) ? mod.type->gunmod->install_time : 0; - assign_activity( activity_id( "ACT_GUNMOD_ADD" ), moves, -1, get_item_position( &gun ), tool ); + assign_activity( activity_id( "ACT_GUNMOD_ADD" ), turns, -1, get_item_position( &gun ), tool ); activity.values.push_back( get_item_position( &mod ) ); activity.values.push_back( roll ); // chance of success (%) activity.values.push_back( risk ); // chance of damage (%) @@ -9277,7 +9231,7 @@ const recipe_subset &player::get_learned_recipes() const return *learned_recipes; } -recipe_subset player::get_recipes_from_books( const inventory &crafting_inv ) const +const recipe_subset player::get_recipes_from_books( const inventory &crafting_inv ) const { recipe_subset res; @@ -9293,7 +9247,7 @@ recipe_subset player::get_recipes_from_books( const inventory &crafting_inv ) co return res; } -std::set player::get_books_for_recipe( const inventory &crafting_inv, +const std::set player::get_books_for_recipe( const inventory &crafting_inv, const recipe *r ) const { std::set book_ids; @@ -9313,7 +9267,7 @@ std::set player::get_books_for_recipe( const inventory &crafting_inv, return book_ids; } -recipe_subset player::get_available_recipes( const inventory &crafting_inv, +const recipe_subset player::get_available_recipes( const inventory &crafting_inv, const std::vector *helpers ) const { recipe_subset res( get_learned_recipes() ); @@ -10194,13 +10148,19 @@ int player::get_env_resist( body_part bp ) const } } - for( const bionic &bio : *my_bionics ) { - const auto EP = bio.info().env_protec.find( bp ); - if( EP != bio.info().env_protec.end() ) { - ret += EP->second; + if( bp == bp_mouth && has_bionic( bio_purifier ) && ret < 5 ) { + ret += 2; + if( ret > 5 ) { + ret = 5; } } + if( bp == bp_eyes && has_bionic( bio_armor_eyes ) && ret < 5 ) { + ret += 2; + if( ret > 5 ) { + ret = 5; + } + } if( bp == bp_eyes && has_trait( trait_SEESLEEP ) ) { ret += 8; } @@ -10220,8 +10180,7 @@ bool player::wearing_something_on( body_part bp ) const bool player::natural_attack_restricted_on( body_part bp ) const { for( auto &i : worn ) { - if( i.covers( bp ) && !i.has_flag( "ALLOWS_NATURAL_ATTACKS" ) && !i.has_flag( "SEMITANGIBLE" ) && - !i.has_flag( "PERSONAL" ) && !i.has_flag( "AURA" ) ) { + if( i.covers( bp ) && !i.has_flag( "ALLOWS_NATURAL_ATTACKS" ) ) { return true; } } @@ -10235,9 +10194,9 @@ bool player::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( "BELTED" ) && - !worn_item.has_flag( "PERSONAL" ) && !worn_item.has_flag( "AURA" ) && - !worn_item.has_flag( "SEMITANGIBLE" ) && !worn_item.has_flag( "SKINTIGHT" ) ) { + if( worn_item.covers( bp_foot_l ) && + !worn_item.has_flag( "BELTED" ) && + !worn_item.has_flag( "SKINTIGHT" ) ) { left = true; break; } @@ -10246,9 +10205,9 @@ bool player::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( "BELTED" ) && - !worn_item.has_flag( "PERSONAL" ) && !worn_item.has_flag( "AURA" ) && - !worn_item.has_flag( "SEMITANGIBLE" ) && !worn_item.has_flag( "SKINTIGHT" ) ) { + if( worn_item.covers( bp_foot_r ) && + !worn_item.has_flag( "BELTED" ) && + !worn_item.has_flag( "SKINTIGHT" ) ) { right = true; break; } @@ -10260,8 +10219,9 @@ bool player::is_wearing_shoes( const side &which_side ) const bool player::is_wearing_helmet() const { for( const item &i : worn ) { - if( i.covers( bp_head ) && !i.has_flag( "HELMET_COMPAT" ) && !i.has_flag( "SKINTIGHT" ) && - !i.has_flag( "PERSONAL" ) && !i.has_flag( "AURA" ) && !i.has_flag( "SEMITANGIBLE" ) && + if( i.covers( bp_head ) && + !i.has_flag( "HELMET_COMPAT" ) && + !i.has_flag( "SKINTIGHT" ) && !i.has_flag( "OVERSIZE" ) ) { return true; } @@ -10274,8 +10234,8 @@ int player::head_cloth_encumbrance() const int ret = 0; for( auto &i : worn ) { const item *worn_item = &i; - if( i.covers( bp_head ) && !i.has_flag( "SEMITANGIBLE" ) && - ( worn_item->has_flag( "HELMET_COMPAT" ) || worn_item->has_flag( "SKINTIGHT" ) ) ) { + if( i.covers( bp_head ) && ( worn_item->has_flag( "HELMET_COMPAT" ) || + worn_item->has_flag( "SKINTIGHT" ) ) ) { ret += worn_item->get_encumber( *this ); } } @@ -10318,6 +10278,27 @@ int player::shoe_type_count( const itype_id &it ) const return ret; } +bool player::is_wearing_power_armor( bool *hasHelmet ) const +{ + bool result = false; + for( auto &elem : worn ) { + if( !elem.is_power_armor() ) { + continue; + } + if( hasHelmet == nullptr ) { + // found power armor, helmet not requested, cancel loop + return true; + } + // found power armor, continue search for helmet + result = true; + if( elem.covers( bp_head ) ) { + *hasHelmet = true; + return true; + } + } + return result; +} + int player::adjust_for_focus( int amount ) const { int effective_focus = focus_pool; @@ -10894,14 +10875,16 @@ bool player::defer_move( const tripoint &next ) return true; } -void player::shift_destination( const point &shift ) +void player::shift_destination( int shiftx, int shifty ) { if( next_expected_position ) { - *next_expected_position += shift; + next_expected_position->x += shiftx; + next_expected_position->y += shifty; } for( auto &elem : auto_move_route ) { - elem += shift; + elem.x += shiftx; + elem.y += shifty; } } @@ -11004,7 +10987,7 @@ void player::burn_move_stamina( int moves ) if( move_mode == PMM_RUN ) { burn_ratio = burn_ratio * 7; } - mod_stat( "stamina", -( ( moves * burn_ratio ) / 100.0 ) ); + mod_stat( "stamina", -( ( moves * burn_ratio ) / 100 ) ); 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 // Starts at 1 in 25, goes down by 5 for every 50% more carried @@ -11021,13 +11004,8 @@ void player::burn_move_stamina( int moves ) void player::forced_dismount() { remove_effect( effect_riding ); - bool mech = false; if( mounted_creature ) { auto mon = mounted_creature.get(); - if( mon->has_flag( MF_RIDEABLE_MECH ) && !mon->type->mech_weapon.empty() ) { - mech = true; - remove_item( g->u.weapon ); - } mon->remove_effect( effect_ridden ); mounted_creature = nullptr; } @@ -11039,11 +11017,7 @@ void player::forced_dismount() } if( !valid.empty() ) { setpos( random_entry( valid ) ); - if( mech ) { - add_msg( m_bad, _( "You are ejected from your mech!" ) ); - } else { - add_msg( m_bad, _( "You fall off your mount!" ) ); - } + add_msg( m_bad, _( "You fall off your mount!" ) ); const int dodge = get_dodge(); const int damage = std::max( 0, rng( 1, 20 ) - rng( dodge, dodge * 2 ) ); body_part hit = num_bp; @@ -11092,10 +11066,6 @@ void player::forced_dismount() } else { add_msg( m_debug, "Forced_dismount could not find a square to deposit player" ); } - if( g->u.get_grab_type() != OBJECT_NONE ) { - add_msg( m_warning, _( "You let go of the grabbed object." ) ); - g->u.grab( OBJECT_NONE ); - } moves -= 150; set_movement_mode( PMM_WALK ); g->update_map( g->u ); @@ -11103,7 +11073,7 @@ void player::forced_dismount() void player::dismount() { - if( is_mounted() ) { + if( has_effect( effect_riding ) && mounted_creature != nullptr ) { if( const cata::optional pnt = choose_adjacent( _( "Dismount where?" ) ) ) { if( g->is_empty( *pnt ) ) { tripoint temp_pt = *pnt; @@ -11111,19 +11081,11 @@ void player::dismount() int ydiff = pos().y - temp_pt.y; remove_effect( effect_riding ); monster *critter = mounted_creature.get(); - if( critter->has_flag( MF_RIDEABLE_MECH ) && !critter->type->mech_weapon.empty() ) { - remove_item( g->u.weapon ); - } - if( g->u.get_grab_type() != OBJECT_NONE ) { - add_msg( m_warning, _( "You let go of the grabbed object." ) ); - g->u.grab( OBJECT_NONE ); - } critter->remove_effect( effect_ridden ); mounted_creature = nullptr; setpos( *pnt ); g->refresh_all(); - critter->setpos( pos() + point( xdiff, ydiff ) ); - critter->add_effect( effect_controlled, 5_turns ); + critter->setpos( tripoint( pos().x - xdiff, pos().y - ydiff, pos().z ) ); mod_moves( -100 ); set_movement_mode( PMM_WALK ); return; @@ -11393,7 +11355,7 @@ std::string player::short_description() const int player::print_info( const catacurses::window &w, int vStart, int, int column ) const { - mvwprintw( w, point( column, vStart++ ), _( "You (%s)" ), name ); + mvwprintw( w, vStart++, column, _( "You (%s)" ), name ); return vStart; } @@ -11451,12 +11413,7 @@ void player::place_corpse() } for( auto &bio : *my_bionics ) { if( item::type_is_defined( bio.id.str() ) ) { - item cbm( bio.id.str(), calendar::turn ); - cbm.set_flag( "FILTHY" ); - cbm.set_flag( "NO_STERILE" ); - cbm.set_flag( "NO_PACKED" ); - cbm.faults.emplace( fault_id( "fault_bionic_salvaged" ) ); - body.put_in( cbm ); + body.put_in( item( bio.id.str(), calendar::turn ) ); } } @@ -11474,7 +11431,7 @@ void player::place_corpse() void player::place_corpse( const tripoint &om_target ) { tinymap bay; - bay.load( tripoint( om_target.x * 2, om_target.y * 2, om_target.z ), false ); + bay.load( om_target.x * 2, om_target.y * 2, om_target.z, false ); int finX = rng( 1, SEEX * 2 - 2 ); int finY = rng( 1, SEEX * 2 - 2 ); if( bay.furn( finX, finY ) != furn_str_id( "f_null" ) ) { diff --git a/src/player.h b/src/player.h index 09a37ba914b26..3d84fbc773fb5 100644 --- a/src/player.h +++ b/src/player.h @@ -36,7 +36,6 @@ #include "pldata.h" #include "type_id.h" #include "magic.h" -#include "monster.h" #include "craft_command.h" #include "point.h" #include "faction.h" @@ -351,9 +350,9 @@ class player : public Character void perform_install( bionic_id bid, bionic_id upbid, int difficulty, int success, int pl_skill, std::string cbm_name, std::string upcbm_name, std::string installer_name, - std::vector trait_to_rem, tripoint patient_pos ); - void bionics_install_failure( bionic_id bid, std::string installer, int difficulty, int success, - float adjusted_skill, tripoint patient_pos ); + std::vector trait_to_rem ); + void bionics_install_failure( std::string installer, int difficulty, int success, + float adjusted_skill ); /**Is The uninstallation possible*/ bool can_uninstall_bionic( const bionic_id &b_id, player &installer, bool autodoc = false, int skill_level = -1 ); @@ -373,7 +372,7 @@ class player : public Character void bionics_uninstall_failure( monster &installer, player &patient, int difficulty, int success, float adjusted_skill ); /**Has enough anesthetic for surgery*/ - bool has_enough_anesth( const itype *cbm, player &patient ); + bool has_enough_anesth( const itype *cbm ); /** Adds the entered amount to the player's bionic power_level */ void charge_power( int amount ); /** Generates and handles the UI for player interaction with installed bionics */ @@ -975,10 +974,6 @@ class player : public Character bool can_lift( const T &obj ) const { // avoid comparing by weight as different objects use differing scales (grams vs kilograms etc) int str = get_str(); - if( mounted_creature ) { - auto mons = mounted_creature.get(); - str = mons->mech_str_addition() == 0 ? str : mons->mech_str_addition(); - } const int npc_str = get_lift_assist(); if( has_trait( trait_id( "STRONGBACK" ) ) ) { str *= 1.35; @@ -1168,7 +1163,7 @@ class player : public Character private: /** last time we checked for sleep */ - time_point last_sleep_check = calendar::turn_zero; + time_point last_sleep_check = calendar::time_of_cataclysm; bool bio_soporific_powered_at_last_sleep_check; public: @@ -1229,6 +1224,8 @@ class player : public Character double armwear_factor() const; /** Returns 1 if the player is wearing an item of that count on one foot, 2 if on both, and zero if on neither */ int shoe_type_count( const itype_id &it ) const; + /** Returns true if the player is wearing power armor */ + bool is_wearing_power_armor( bool *hasHelmet = nullptr ) const; /** Returns wind resistance provided by armor, etc **/ int get_wind_resistance( body_part bp ) const; /** Returns the effect of pain on stats */ @@ -1367,21 +1364,21 @@ class player : public Character /** Returns all known recipes. */ const recipe_subset &get_learned_recipes() const; /** Returns all recipes that are known from the books (either in inventory or nearby). */ - recipe_subset get_recipes_from_books( const inventory &crafting_inv ) const; + const recipe_subset get_recipes_from_books( const inventory &crafting_inv ) const; /** * Returns all available recipes (from books and npc companions) * @param crafting_inv Current available items to craft * @param helpers List of NPCs that could help with crafting. */ - recipe_subset get_available_recipes( const inventory &crafting_inv, - const std::vector *helpers = nullptr ) const; + const recipe_subset get_available_recipes( const inventory &crafting_inv, + const std::vector *helpers = nullptr ) const; /** * Returns the set of book types in crafting_inv that provide the * given recipe. * @param crafting_inv Current available items that may contain readable books * @param r Recipe to search for in the available books */ - std::set get_books_for_recipe( const inventory &crafting_inv, + const std::set get_books_for_recipe( const inventory &crafting_inv, const recipe *r ) const; // crafting.cpp @@ -1508,7 +1505,7 @@ class player : public Character std::vector &get_auto_move_route(); action_id get_next_auto_move_direction(); bool defer_move( const tripoint &next ); - void shift_destination( const point &shift ); + void shift_destination( int shiftx, int shifty ); void forced_dismount(); void dismount(); @@ -1548,7 +1545,7 @@ class player : public Character setpos( tripoint( position.x, y, position.z ) ); } inline void setz( int z ) { - setpos( tripoint( position.xy(), z ) ); + setpos( tripoint( position.x, position.y, z ) ); } inline void setpos( const tripoint &p ) override { position = p; @@ -1587,6 +1584,7 @@ class player : public Character int stim; int cash; int movecounter; + std::shared_ptr mounted_creature; bool death_drops;// Turned to false for simulating NPCs on distant missions so they don't drop all their gear in sight std::array temp_cur, frostbite_timer, temp_conv; // Equalizes heat between body parts diff --git a/src/player_activity.cpp b/src/player_activity.cpp index f0e628ed69dfe..a14054934c449 100644 --- a/src/player_activity.cpp +++ b/src/player_activity.cpp @@ -41,7 +41,7 @@ std::string player_activity::get_verb() const int player_activity::get_value( size_t index, int def ) const { - return index < values.size() ? values[index] : def; + return ( index < values.size() ) ? values[index] : def; } bool player_activity::is_suspendable() const @@ -51,7 +51,7 @@ bool player_activity::is_suspendable() const std::string player_activity::get_str_value( size_t index, const std::string &def ) const { - return index < str_values.size() ? str_values[index] : def; + return ( index < str_values.size() ) ? str_values[index] : def; } void player_activity::do_turn( player &p ) @@ -83,7 +83,7 @@ void player_activity::do_turn( player &p ) } auto_resume = true; player_activity new_act( activity_id( "ACT_WAIT_STAMINA" ), to_moves( 1_minutes ) ); - new_act.values.push_back( 200 + p.get_stamina_max() / 3 ); + new_act.values.push_back( 200 + ( p.get_stamina_max() / 3 ) ); p.assign_activity( new_act ); return; } @@ -95,7 +95,7 @@ void player_activity::do_turn( player &p ) if( *this && moves_left <= 0 ) { // Note: For some activities "finish" is a misnomer; that's why we explicitly check if the // type is ACT_NULL below. - if( !type->call_finish( this, &p ) ) { + if( !( type->call_finish( this, &p ) ) ) { // "Finish" is never a misnomer for any activity without a finish function set_to_null(); } diff --git a/src/player_display.cpp b/src/player_display.cpp index 0523a3f703863..98055212b5fd1 100644 --- a/src/player_display.cpp +++ b/src/player_display.cpp @@ -26,13 +26,13 @@ const skill_id skill_swimming( "swimming" ); -static const std::string title_STATS = translate_marker( "STATS" ); -static const std::string title_ENCUMB = translate_marker( "ENCUMBRANCE AND WARMTH" ); -static const std::string title_EFFECTS = translate_marker( "EFFECTS" ); -static const std::string title_SPEED = translate_marker( "SPEED" ); -static const std::string title_SKILLS = translate_marker( "SKILLS" ); -static const std::string title_BIONICS = translate_marker( "BIONICS" ); -static const std::string title_TRAITS = translate_marker( "TRAITS" ); +static const std::string title_STATS = _( "STATS" ); +static const std::string title_ENCUMB = _( "ENCUMBRANCE AND WARMTH" ); +static const std::string title_EFFECTS = _( "EFFECTS" ); +static const std::string title_SPEED = _( "SPEED" ); +static const std::string title_SKILLS = _( "SKILLS" ); +static const std::string title_BIONICS = _( "BIONICS" ); +static const std::string title_TRAITS = _( "TRAITS" ); static const trait_id trait_COLDBLOOD4( "COLDBLOOD4" ); @@ -189,9 +189,8 @@ static std::string get_encumbrance_description( const player &p, body_part bp, b case bp_torso: { const int melee_roll_pen = std::max( -eff_encumbrance, -80 ); s += string_format( _( "Melee attack rolls %+d%%; " ), melee_roll_pen ); - s += dodge_skill_text( -( eff_encumbrance / 10.0 ) ); - s += swim_cost_text( ( eff_encumbrance / 10.0 ) * ( 80 - p.get_skill_level( - skill_swimming ) * 3 ) ); + s += dodge_skill_text( - ( eff_encumbrance / 10 ) ); + s += swim_cost_text( ( eff_encumbrance / 10 ) * ( 80 - p.get_skill_level( skill_swimming ) * 3 ) ); s += melee_cost_text( eff_encumbrance ); break; } @@ -257,66 +256,64 @@ static void draw_stats_tab( const catacurses::window &w_stats, const catacurses: { mvwprintz( w_stats, 0, 0, h_light_gray, header_spaces ); - center_print( w_stats, 0, h_light_gray, _( title_STATS ) ); + center_print( w_stats, 0, h_light_gray, title_STATS ); // Clear bonus/penalty menu. mvwprintz( w_stats, 7, 0, c_light_gray, "%26s", "" ); mvwprintz( w_stats, 8, 0, c_light_gray, "%26s", "" ); - nc_color col_temp = c_light_gray; - if( line == 0 ) { // Display information on player strength in appropriate window mvwprintz( w_stats, 2, 1, h_light_gray, _( "Strength:" ) ); fold_and_print( w_info, 0, 1, FULL_SCREEN_WIDTH - 2, c_magenta, _( "Strength affects your melee damage, the amount of weight you can carry, your total HP, " "your resistance to many diseases, and the effectiveness of actions which require brute force." ) ); - print_colored_text( w_info, 3, 1, col_temp, c_light_gray, - string_format( _( "Base HP: %d" ), you.hp_max[1] ) ); - print_colored_text( w_info, 4, 1, col_temp, c_light_gray, - string_format( _( "Carry weight (%s): %.1f" ), weight_units(), - convert_weight( you.weight_capacity() ) ) ); - print_colored_text( w_info, 5, 1, col_temp, c_light_gray, - string_format( _( "Melee damage: %.1f" ), you.bonus_damage( false ) ) ); + mvwprintz( w_info, 3, 1, c_magenta, _( "Base HP:" ) ); + mvwprintz( w_info, 3, 22, c_magenta, "%3d", you.hp_max[1] ); + if( get_option( "USE_METRIC_WEIGHTS" ) == "kg" ) { + mvwprintz( w_info, 4, 1, c_magenta, _( "Carry weight(kg):" ) ); + } else { + mvwprintz( w_info, 4, 1, c_magenta, _( "Carry weight(lbs):" ) ); + } + mvwprintz( w_info, 4, 21, c_magenta, "%4.1f", convert_weight( you.weight_capacity() ) ); + mvwprintz( w_info, 5, 1, c_magenta, _( "Melee damage:" ) ); + mvwprintz( w_info, 5, 22, c_magenta, "%3.1f", you.bonus_damage( false ) ); + } else if( line == 1 ) { // Display information on player dexterity in appropriate window mvwprintz( w_stats, 3, 1, h_light_gray, _( "Dexterity:" ) ); fold_and_print( w_info, 0, 1, FULL_SCREEN_WIDTH - 2, c_magenta, _( "Dexterity affects your chance to hit in melee combat, helps you steady your " "gun for ranged combat, and enhances many actions that require finesse." ) ); - print_colored_text( w_info, 3, 1, col_temp, c_light_gray, - string_format( _( "Melee to-hit bonus: %+.1lf" ), you.get_hit_base() ) ); - print_colored_text( w_info, 4, 1, col_temp, c_light_gray, - string_format( _( "Ranged penalty: %+d" ), - -abs( you.ranged_dex_mod() ) ) ); - print_colored_text( w_info, 5, 1, col_temp, c_light_gray, - string_format( _( "Throwing penalty per target's dodge: %+d" ), - you.throw_dispersion_per_dodge( false ) ) ); + mvwprintz( w_info, 3, 1, c_magenta, _( "Melee to-hit bonus:" ) ); + mvwprintz( w_info, 3, 38, c_magenta, "%+.1lf", you.get_hit_base() ); + mvwprintz( w_info, 4, 1, c_magenta, _( "Ranged penalty:" ) ); + mvwprintz( w_info, 4, 38, c_magenta, "%+3d", -( abs( you.ranged_dex_mod() ) ) ); + mvwprintz( w_info, 5, 1, c_magenta, _( "Throwing penalty per target's dodge:" ) ); + mvwprintz( w_info, 5, 38, c_magenta, "%+3d", you.throw_dispersion_per_dodge( false ) ); } else if( line == 2 ) { // Display information on player intelligence in appropriate window mvwprintz( w_stats, 4, 1, h_light_gray, _( "Intelligence:" ) ); fold_and_print( w_info, 0, 1, FULL_SCREEN_WIDTH - 2, c_magenta, _( "Intelligence is less important in most situations, but it is vital for more complex tasks like " "electronics crafting. It also affects how much skill you can pick up from reading a book." ) ); - print_colored_text( w_info, 3, 1, col_temp, c_light_gray, - string_format( _( "Read times: %d%%" ), you.read_speed( false ) ) ); - print_colored_text( w_info, 4, 1, col_temp, c_light_gray, - string_format( _( "Crafting bonus: %d%%" ), you.get_int() ) ); - if( you.rust_rate() ) { - print_colored_text( w_info, 5, 1, col_temp, c_light_gray, - string_format( _( "Skill rust: %d%%" ), you.rust_rate( false ) ) ); - } + mvwprintz( w_info, 3, 1, c_magenta, _( "Read times:" ) ); + mvwprintz( w_info, 3, 21, c_magenta, "%3d%%", you.read_speed( false ) ); + mvwprintz( w_info, 4, 1, c_magenta, _( "Skill rust:" ) ); + mvwprintz( w_info, 4, 22, c_magenta, "%2d%%", you.rust_rate( false ) ); + mvwprintz( w_info, 5, 1, c_magenta, _( "Crafting bonus:" ) ); + mvwprintz( w_info, 5, 22, c_magenta, "%2d%%", you.get_int() ); } else if( line == 3 ) { // Display information on player perception in appropriate window mvwprintz( w_stats, 5, 1, h_light_gray, _( "Perception:" ) ); fold_and_print( w_info, 0, 1, FULL_SCREEN_WIDTH - 2, c_magenta, _( "Perception is the most important stat for ranged combat. It's also used for " "detecting traps and other things of interest." ) ); - print_colored_text( w_info, 4, 1, col_temp, c_light_gray, - string_format( _( "Trap detection level: %d" ), you.get_per() ) ); + mvwprintz( w_info, 4, 1, c_magenta, _( "Trap detection level:" ) ); + mvwprintz( w_info, 4, 23, c_magenta, "%2d", you.get_per() ); if( you.ranged_per_mod() > 0 ) { - print_colored_text( w_info, 5, 1, col_temp, c_light_gray, - string_format( _( "Aiming penalty: %+d" ), -you.ranged_per_mod() ) ); + mvwprintz( w_info, 5, 1, c_magenta, _( "Aiming penalty:" ) ); + mvwprintz( w_info, 5, 21, c_magenta, "%+4d", -you.ranged_per_mod() ); } } else if( line == 4 ) { mvwprintz( w_stats, 6, 1, h_light_gray, _( "Weight:" ) ); @@ -345,7 +342,7 @@ static void draw_stats_tab( const catacurses::window &w_stats, const catacurses: } } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { mvwprintz( w_stats, 0, 0, c_light_gray, header_spaces ); - center_print( w_stats, 0, c_light_gray, _( title_STATS ) ); + center_print( w_stats, 0, c_light_gray, title_STATS ); wrefresh( w_stats ); line = 0; curtab = action == "NEXT_TAB" ? curtab + 1 : 6; @@ -369,7 +366,7 @@ static void draw_encumbrance_tab( const catacurses::window &w_encumb, bool &done, std::string &action ) { werase( w_encumb ); - center_print( w_encumb, 0, h_light_gray, _( title_ENCUMB ) ); + center_print( w_encumb, 0, h_light_gray, title_ENCUMB ); you.print_encumbrance( w_encumb, line ); wrefresh( w_encumb ); @@ -404,7 +401,7 @@ static void draw_encumbrance_tab( const catacurses::window &w_encumb, } } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { mvwprintz( w_encumb, 0, 0, c_light_gray, header_spaces ); - center_print( w_encumb, 0, c_light_gray, _( title_ENCUMB ) ); + center_print( w_encumb, 0, c_light_gray, title_ENCUMB ); wrefresh( w_encumb ); line = 0; curtab = action == "NEXT_TAB" ? curtab + 1 : curtab - 1; @@ -420,7 +417,7 @@ static void draw_traits_tab( const catacurses::window &w_traits, const catacurse { werase( w_traits ); mvwprintz( w_traits, 0, 0, h_light_gray, header_spaces ); - center_print( w_traits, 0, h_light_gray, _( title_TRAITS ) ); + center_print( w_traits, 0, h_light_gray, title_TRAITS ); size_t min = 0; size_t max = 0; @@ -469,7 +466,7 @@ static void draw_traits_tab( const catacurses::window &w_traits, const catacurse } } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { mvwprintz( w_traits, 0, 0, c_light_gray, header_spaces ); - center_print( w_traits, 0, c_light_gray, _( title_TRAITS ) ); + 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, static_cast( i + 1 ), 1, c_black, " " ); @@ -492,7 +489,7 @@ static void draw_bionics_tab( const catacurses::window &w_bionics, const catacur { werase( w_bionics ); mvwprintz( w_bionics, 0, 0, h_light_gray, header_spaces ); - center_print( w_bionics, 0, h_light_gray, _( title_BIONICS ) ); + center_print( w_bionics, 0, h_light_gray, title_BIONICS ); trim_and_print( w_bionics, 1, 1, getmaxx( w_bionics ) - 1, c_white, string_format( _( "Bionic Power: %1$d" ), you.max_power_level ) ); @@ -536,7 +533,7 @@ static void draw_bionics_tab( const catacurses::window &w_bionics, const catacur } } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { mvwprintz( w_bionics, 0, 0, c_light_gray, header_spaces ); - center_print( w_bionics, 0, c_light_gray, _( title_BIONICS ) ); + center_print( w_bionics, 0, c_light_gray, title_BIONICS ); trim_and_print( w_bionics, 1, 1, getmaxx( w_bionics ) - 1, c_white, string_format( _( "Bionic Power: %1$d" ), you.max_power_level ) ); for( size_t i = 0; i < bionicslist.size() && i < bionics_win_size_y - 1; i++ ) { @@ -559,7 +556,7 @@ static void draw_effects_tab( const catacurses::window &w_effects, const catacur const std::vector &effect_text ) { mvwprintz( w_effects, 0, 0, h_light_gray, header_spaces ); - center_print( w_effects, 0, h_light_gray, _( title_EFFECTS ) ); + center_print( w_effects, 0, h_light_gray, title_EFFECTS ); const size_t half_y = effect_win_size_y / 2; @@ -605,7 +602,7 @@ static void draw_effects_tab( const catacurses::window &w_effects, const catacur } } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { mvwprintz( w_effects, 0, 0, c_light_gray, header_spaces ); - center_print( w_effects, 0, c_light_gray, _( title_EFFECTS ) ); + center_print( w_effects, 0, c_light_gray, title_EFFECTS ); for( size_t i = 0; i < effect_name.size() && i < 7; i++ ) { trim_and_print( w_effects, static_cast( i ) + 1, 0, getmaxx( w_effects ) - 1, c_light_gray, effect_name[i] ); @@ -624,7 +621,7 @@ static void draw_skills_tab( const catacurses::window &w_skills, const catacurse const size_t skill_win_size_y ) { mvwprintz( w_skills, 0, 0, h_light_gray, header_spaces ); - center_print( w_skills, 0, h_light_gray, _( title_SKILLS ) ); + center_print( w_skills, 0, h_light_gray, title_SKILLS ); size_t min = 0; size_t max = 0; @@ -725,7 +722,7 @@ static void draw_skills_tab( const catacurses::window &w_skills, const catacurse } else if( action == "NEXT_TAB" || action == "PREV_TAB" ) { werase( w_skills ); mvwprintz( w_skills, 0, 0, c_light_gray, header_spaces ); - center_print( w_skills, 0, c_light_gray, _( title_SKILLS ) ); + center_print( w_skills, 0, c_light_gray, title_SKILLS ); for( size_t i = 0; i < skillslist.size() && i < static_cast( skill_win_size_y ); i++ ) { const Skill *thisSkill = skillslist[i]; const SkillLevel &level = you.get_skill_level_object( thisSkill->ident() ); @@ -893,7 +890,7 @@ static void draw_initial_windows( const catacurses::window &w_stats, const size_t skill_win_size_y ) { // First! Default STATS screen. - center_print( w_stats, 0, c_light_gray, _( title_STATS ) ); + 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 ) { @@ -927,12 +924,12 @@ static void draw_initial_windows( const catacurses::window &w_stats, wrefresh( w_stats ); // Next, draw encumbrance. - center_print( w_encumb, 0, c_light_gray, _( title_ENCUMB ) ); + 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 ) ); + 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(); @@ -943,7 +940,7 @@ static void draw_initial_windows( const catacurses::window &w_stats, wrefresh( w_traits ); // Next, draw bionics - center_print( w_bionics, 0, c_light_gray, _( title_BIONICS ) ); + center_print( w_bionics, 0, c_light_gray, title_BIONICS ); trim_and_print( w_bionics, 1, 1, getmaxx( w_bionics ) - 1, c_white, string_format( _( "Bionic Power: %1$d / %2$d" ), you.power_level, you.max_power_level ) ); @@ -954,7 +951,7 @@ static void draw_initial_windows( const catacurses::window &w_stats, wrefresh( w_bionics ); // Next, draw effects. - center_print( w_effects, 0, c_light_gray, _( title_EFFECTS ) ); + center_print( w_effects, 0, c_light_gray, title_EFFECTS ); for( size_t i = 0; i < effect_name.size() && i < effect_win_size_y; i++ ) { trim_and_print( w_effects, static_cast( i ) + 1, 0, getmaxx( w_effects ) - 1, c_light_gray, effect_name[i] ); @@ -964,7 +961,7 @@ static void draw_initial_windows( const catacurses::window &w_stats, // Next, draw skills. line = 1; - center_print( w_skills, 0, c_light_gray, _( title_SKILLS ) ); + center_print( w_skills, 0, c_light_gray, title_SKILLS ); for( auto &elem : skillslist ) { const SkillLevel &level = you.get_skill_level_object( elem->ident() ); @@ -1011,7 +1008,7 @@ static void draw_initial_windows( const catacurses::window &w_stats, wrefresh( w_skills ); // Finally, draw speed. - center_print( w_speed, 0, c_light_gray, _( title_SPEED ) ); + center_print( w_speed, 0, c_light_gray, title_SPEED ); mvwprintz( w_speed, 1, 1, c_light_gray, _( "Base Move Cost:" ) ); mvwprintz( w_speed, 2, 1, c_light_gray, _( "Current Speed:" ) ); int newmoves = you.get_speed(); @@ -1030,7 +1027,7 @@ static void draw_initial_windows( const catacurses::window &w_stats, line++; } if( you.get_thirst() > 40 ) { - pen = abs( player::thirst_speed_penalty( you.get_thirst() ) ); + pen = abs( you.thirst_speed_penalty( you.get_thirst() ) ); mvwprintz( w_speed, line, 1, c_red, _( "Thirst -%s%d%%" ), ( pen < 10 ? " " : "" ), pen ); line++; @@ -1223,51 +1220,38 @@ Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" ) ); skill_win_size_y = maxy - infooffsetybottom; } - catacurses::window w_grid_top = - catacurses::newwin( infooffsetybottom, FULL_SCREEN_WIDTH + 1, - point( VIEW_OFFSET_X, VIEW_OFFSET_Y ) ); - catacurses::window w_grid_skill = - catacurses::newwin( skill_win_size_y + 1, 27, - point( 0 + VIEW_OFFSET_X, infooffsetybottom + VIEW_OFFSET_Y ) ); - catacurses::window w_grid_trait = - catacurses::newwin( trait_win_size_y + 1, 27, - point( 27 + VIEW_OFFSET_X, infooffsetybottom + VIEW_OFFSET_Y ) ); - catacurses::window w_grid_bionics = - catacurses::newwin( bionics_win_size_y + 1, 27, - point( 27 + VIEW_OFFSET_X, - infooffsetybottom + VIEW_OFFSET_Y + trait_win_size_y + 1 ) ); - catacurses::window w_grid_effect = - catacurses::newwin( effect_win_size_y + 1, 28, - point( 53 + VIEW_OFFSET_X, infooffsetybottom + VIEW_OFFSET_Y ) ); - - catacurses::window w_tip = - catacurses::newwin( 1, FULL_SCREEN_WIDTH, point( 0 + VIEW_OFFSET_X, VIEW_OFFSET_Y ) ); - catacurses::window w_stats = - catacurses::newwin( 9, 26, point( 0 + VIEW_OFFSET_X, 1 + VIEW_OFFSET_Y ) ); - catacurses::window w_traits = - catacurses::newwin( trait_win_size_y, 26, - point( 27 + VIEW_OFFSET_X, infooffsetybottom + VIEW_OFFSET_Y ) ); - catacurses::window w_bionics = - catacurses::newwin( bionics_win_size_y, 26, - point( 27 + VIEW_OFFSET_X, - infooffsetybottom + VIEW_OFFSET_Y + trait_win_size_y + 1 ) ); - catacurses::window w_encumb = - catacurses::newwin( 9, 26, point( 27 + VIEW_OFFSET_X, 1 + VIEW_OFFSET_Y ) ); - catacurses::window w_effects = - catacurses::newwin( effect_win_size_y, 26, - point( 54 + VIEW_OFFSET_X, infooffsetybottom + VIEW_OFFSET_Y ) ); - catacurses::window w_speed = - catacurses::newwin( 9, 26, point( 54 + VIEW_OFFSET_X, 1 + VIEW_OFFSET_Y ) ); - catacurses::window w_skills = - catacurses::newwin( skill_win_size_y, 26, - point( 0 + VIEW_OFFSET_X, infooffsetybottom + VIEW_OFFSET_Y ) ); - catacurses::window w_info = - catacurses::newwin( info_win_size_y, FULL_SCREEN_WIDTH, - point( 0 + VIEW_OFFSET_X, infooffsetytop + VIEW_OFFSET_Y ) ); + catacurses::window w_grid_top = catacurses::newwin( infooffsetybottom, FULL_SCREEN_WIDTH + 1, + VIEW_OFFSET_Y, VIEW_OFFSET_X ); + catacurses::window w_grid_skill = catacurses::newwin( skill_win_size_y + 1, 27, + infooffsetybottom + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); + catacurses::window w_grid_trait = catacurses::newwin( trait_win_size_y + 1, 27, + infooffsetybottom + VIEW_OFFSET_Y, 27 + VIEW_OFFSET_X ); + catacurses::window w_grid_bionics = catacurses::newwin( bionics_win_size_y + 1, 27, + infooffsetybottom + VIEW_OFFSET_Y + trait_win_size_y + 1, + 27 + VIEW_OFFSET_X ); + catacurses::window w_grid_effect = catacurses::newwin( effect_win_size_y + 1, 28, + infooffsetybottom + VIEW_OFFSET_Y, 53 + VIEW_OFFSET_X ); + + catacurses::window w_tip = catacurses::newwin( 1, FULL_SCREEN_WIDTH, VIEW_OFFSET_Y, + 0 + VIEW_OFFSET_X ); + catacurses::window w_stats = catacurses::newwin( 9, 26, 1 + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); + catacurses::window w_traits = catacurses::newwin( trait_win_size_y, 26, + infooffsetybottom + VIEW_OFFSET_Y, 27 + VIEW_OFFSET_X ); + catacurses::window w_bionics = catacurses::newwin( bionics_win_size_y, 26, + infooffsetybottom + VIEW_OFFSET_Y + trait_win_size_y + 1, + 27 + VIEW_OFFSET_X ); + catacurses::window w_encumb = catacurses::newwin( 9, 26, 1 + VIEW_OFFSET_Y, 27 + VIEW_OFFSET_X ); + catacurses::window w_effects = catacurses::newwin( effect_win_size_y, 26, + infooffsetybottom + VIEW_OFFSET_Y, 54 + VIEW_OFFSET_X ); + catacurses::window w_speed = catacurses::newwin( 9, 26, 1 + VIEW_OFFSET_Y, 54 + VIEW_OFFSET_X ); + catacurses::window w_skills = catacurses::newwin( skill_win_size_y, 26, + infooffsetybottom + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); + catacurses::window w_info = catacurses::newwin( info_win_size_y, FULL_SCREEN_WIDTH, + infooffsetytop + VIEW_OFFSET_Y, 0 + VIEW_OFFSET_X ); 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 ); + 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--; @@ -1286,14 +1270,13 @@ Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" ) ); } } //~ 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() ) { + mvwprintw( w_tip, 0, 0, _( "%1$s | %2$s | %3$s" ), name, male ? _( "Male" ) : _( "Female" ), race ); + } else if( prof == nullptr || prof == prof->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" ) ); + mvwprintw( w_tip, 0, 0, _( "%1$s | %2$s" ), name, male ? _( "Male" ) : _( "Female" ) ); } else { - mvwprintw( w_tip, point_zero, _( "%1$s | %2$s | %3$s" ), name, + mvwprintw( w_tip, 0, 0, _( "%1$s | %2$s | %3$s" ), name, male ? _( "Male" ) : _( "Female" ), prof->gender_appropriate_name( male ) ); } diff --git a/src/player_hardcoded_effects.cpp b/src/player_hardcoded_effects.cpp index a54ec9875b040..c76412d4a0078 100644 --- a/src/player_hardcoded_effects.cpp +++ b/src/player_hardcoded_effects.cpp @@ -95,7 +95,7 @@ static void eff_fun_spores( player &u, effect &it ) // Equivalent to X in 150000 + health * 100 const int intense = it.get_intensity(); if( ( !u.has_trait( trait_id( "M_IMMUNE" ) ) ) && ( one_in( 100 ) && - x_in_y( intense, 900 + u.get_healthy() * 0.6 ) ) ) { + x_in_y( intense, 900 + u.get_healthy() * 6 / 10 ) ) ) { u.add_effect( effect_fungus, 1_turns, num_bp, true ); } } diff --git a/src/point.h b/src/point.h index 2b780c76ab140..a819f678f9bf1 100644 --- a/src/point.h +++ b/src/point.h @@ -2,32 +2,15 @@ #ifndef CATA_POINT_H #define CATA_POINT_H -// The CATA_NO_STL macro is used by the cata clang-tidy plugin tests so they -// can include this header when compiling with -nostdinc++ -#ifndef CATA_NO_STL - #include #include #include #include #include -#else - -#define assert(...) - -namespace std -{ -class string; -class ostream; -} - -#endif // CATA_NO_STL - class JsonOut; class JsonIn; -// NOLINTNEXTLINE(cata-xy) struct point { int x = 0; int y = 0; @@ -42,9 +25,6 @@ struct point { y += rhs.y; return *this; } - constexpr point operator-() const { - return point( -x, -y ); - } constexpr point operator-( const point &rhs ) const { return point( x - rhs.x, y - rhs.y ); } @@ -53,26 +33,12 @@ struct point { y -= rhs.y; return *this; } - constexpr point operator*( const int rhs ) const { - return point( x * rhs, y * rhs ); - } - friend constexpr point operator*( int lhs, const point &rhs ) { - return rhs * lhs; - } - point &operator*=( const int rhs ) { - x *= rhs; - y *= rhs; - return *this; - } - constexpr point operator/( const int rhs ) const { - return point( x / rhs, y / rhs ); - } /** * Rotate point clockwise @param turns times, 90 degrees per turn, * around the center of a rectangle with the dimensions specified * by @param dim. By default rotates around the origin (0, 0). - * NOLINTNEXTLINE(cata-use-named-point-constants) */ + */ point rotate( int turns, const point &dim = { 1, 1 } ) const { assert( turns >= 0 ); assert( turns <= 4 ); @@ -97,6 +63,22 @@ std::ostream &operator<<( std::ostream &, const point & ); void serialize( const point &p, JsonOut &jsout ); void deserialize( point &p, JsonIn &jsin ); +// Make point hashable so it can be used as an unordered_set or unordered_map key, +// or a component of one. +namespace std +{ +template <> +struct hash { + std::size_t operator()( const point &k ) const { + constexpr uint64_t a = 2862933555777941757; + size_t result = k.y; + result *= a; + result += k.x; + return result; + } +}; +} // namespace std + inline constexpr bool operator<( const point &a, const point &b ) { return a.x < b.x || ( a.x == b.x && a.y < b.y ); @@ -110,14 +92,13 @@ inline constexpr bool operator!=( const point &a, const point &b ) return !( a == b ); } -// NOLINTNEXTLINE(cata-xy) struct tripoint { int x = 0; int y = 0; int z = 0; constexpr tripoint() = default; 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 ) {} + explicit constexpr tripoint( const point &p, int Z ) : x( p.x ), y( p.y ), z( Z ) {} constexpr tripoint operator+( const tripoint &rhs ) const { return tripoint( x + rhs.x, y + rhs.y, z + rhs.z ); @@ -137,9 +118,6 @@ struct tripoint { constexpr tripoint operator*( const int rhs ) const { return tripoint( x * rhs, y * rhs, z * rhs ); } - friend constexpr tripoint operator*( int lhs, const tripoint &rhs ) { - return rhs * lhs; - } tripoint &operator*=( const int rhs ) { x *= rhs; y *= rhs; @@ -150,9 +128,6 @@ struct tripoint { constexpr tripoint operator+( const point &rhs ) const { return tripoint( x + rhs.x, y + rhs.y, z ); } - friend constexpr tripoint operator+( const point &lhs, const tripoint &rhs ) { - return rhs + lhs; - } constexpr tripoint operator-( const point &rhs ) const { return tripoint( x - rhs.x, y - rhs.y, z ); } @@ -173,7 +148,7 @@ struct tripoint { return *this; } - constexpr point xy() const { + point xy() const { return point( x, y ); } @@ -185,6 +160,24 @@ struct tripoint { std::ostream &operator<<( std::ostream &, const tripoint & ); +// Make tripoint hashable so it can be used as an unordered_set or unordered_map key, +// or a component of one. +namespace std +{ +template <> +struct hash { + std::size_t operator()( const tripoint &k ) const { + constexpr uint64_t a = 2862933555777941757; + size_t result = k.z; + result *= a; + result += k.y; + result *= a; + result += k.x; + return result; + } +}; +} // namespace std + inline constexpr bool operator==( const tripoint &a, const tripoint &b ) { return a.x == b.x && a.y == b.y && a.z == b.z; @@ -207,6 +200,18 @@ inline bool operator<( const tripoint &a, const tripoint &b ) return false; } +static const std::array eight_horizontal_neighbors = { { + { -1, -1, 0 }, + { 0, -1, 0 }, + { +1, -1, 0 }, + { -1, 0, 0 }, + { +1, 0, 0 }, + { -1, +1, 0 }, + { 0, +1, 0 }, + { +1, +1, 0 }, + } +}; + struct rectangle { point p_min; point p_max; @@ -257,8 +262,13 @@ struct box { } }; +static constexpr tripoint tripoint_min { INT_MIN, INT_MIN, INT_MIN }; static constexpr tripoint tripoint_zero { 0, 0, 0 }; -static constexpr point point_zero{ tripoint_zero.xy() }; +static constexpr tripoint tripoint_max{ INT_MAX, INT_MAX, INT_MAX }; + +static constexpr point point_min{ tripoint_min.x, tripoint_min.y }; +static constexpr point point_zero{ tripoint_zero.x, tripoint_zero.y }; +static constexpr point point_max{ tripoint_max.x, tripoint_max.y }; static constexpr point point_north{ 0, -1 }; static constexpr point point_north_east{ 1, -1 }; @@ -269,14 +279,9 @@ static constexpr point point_south_west{ -1, 1 }; static constexpr point point_west{ -1, 0 }; static constexpr point point_north_west{ -1, -1 }; -static constexpr tripoint tripoint_north{ point_north, 0 }; -static constexpr tripoint tripoint_north_east{ point_north_east, 0 }; -static constexpr tripoint tripoint_east{ point_east, 0 }; -static constexpr tripoint tripoint_south_east{ point_south_east, 0 }; -static constexpr tripoint tripoint_south{ point_south, 0 }; -static constexpr tripoint tripoint_south_west{ point_south_west, 0 }; -static constexpr tripoint tripoint_west{ point_west, 0 }; -static constexpr tripoint tripoint_north_west{ point_north_west, 0 }; +static constexpr std::array four_adjacent_offsets{{ + point_north, point_east, point_south, point_west + }}; static constexpr tripoint tripoint_above{ 0, 0, 1 }; static constexpr tripoint tripoint_below{ 0, 0, -1 }; @@ -293,69 +298,4 @@ struct sphere { explicit sphere( const tripoint ¢er, int radius ) : radius( radius ), center( center ) {} }; -#ifndef CATA_NO_STL - -inline point abs( const point &p ) -{ - return point( abs( p.x ), abs( p.y ) ); -} - -static constexpr tripoint tripoint_min { INT_MIN, INT_MIN, INT_MIN }; -static constexpr tripoint tripoint_max{ INT_MAX, INT_MAX, INT_MAX }; - -static constexpr point point_min{ tripoint_min.xy() }; -static constexpr point point_max{ tripoint_max.xy() }; - -// Make point hashable so it can be used as an unordered_set or unordered_map key, -// or a component of one. -namespace std -{ -template <> -struct hash { - std::size_t operator()( const point &k ) const { - constexpr uint64_t a = 2862933555777941757; - size_t result = k.y; - result *= a; - result += k.x; - return result; - } -}; -} // namespace std - -// Make tripoint hashable so it can be used as an unordered_set or unordered_map key, -// or a component of one. -namespace std -{ -template <> -struct hash { - std::size_t operator()( const tripoint &k ) const { - constexpr uint64_t a = 2862933555777941757; - size_t result = k.z; - result *= a; - result += k.y; - result *= a; - result += k.x; - return result; - } -}; -} // namespace std - -static constexpr std::array four_adjacent_offsets{{ - point_north, point_east, point_south, point_west - }}; - -static const std::array eight_horizontal_neighbors = { { - { tripoint_north_west }, - { tripoint_north }, - { tripoint_north_east }, - { tripoint_west }, - { tripoint_east }, - { tripoint_south_west }, - { tripoint_south }, - { tripoint_south_east }, - } -}; - -#endif // CATA_NO_STL - #endif // CATA_POINT_H diff --git a/src/popup.cpp b/src/popup.cpp index 268971caf38fe..9dd91fe9ef185 100644 --- a/src/popup.cpp +++ b/src/popup.cpp @@ -4,7 +4,6 @@ #include #include -#include "ime.h" #include "input.h" #include "output.h" #include "catacharset.h" @@ -207,7 +206,7 @@ void query_popup::init() const fullscr ? FULL_SCREEN_HEIGHT : msg_height + border_width * 2 ); const int win_x = ( TERMX - win_width ) / 2; const int win_y = ontop ? 0 : ( TERMY - win_height ) / 2; - win = catacurses::newwin( win_height, win_width, point( win_x, win_y ) ); + win = catacurses::newwin( win_height, win_width, win_y, win_x ); } void query_popup::show() const @@ -228,7 +227,7 @@ void query_popup::show() const for( size_t ind = 0; ind < buttons.size(); ++ind ) { nc_color col = ind == cur ? hilite( c_white ) : c_white; const auto &btn = buttons[ind]; - print_colored_text( win, border_width + btn.pos.y, border_width + btn.pos.x, + print_colored_text( win, border_width + btn.y, border_width + btn.x, col, col, btn.text ); } @@ -324,8 +323,6 @@ query_popup::result query_popup::query_once() query_popup::result query_popup::query() { - ime_sentry sentry( ime_sentry::disable ); - result res; do { res = query_once(); @@ -370,6 +367,6 @@ query_popup::query_option::query_option( } query_popup::button::button( const std::string &text, const int x, const int y ) - : text( text ), pos( x, y ) + : text( text ), x( x ), y( y ) { } diff --git a/src/popup.h b/src/popup.h index e7a672518c11b..56d9cc21a8df4 100644 --- a/src/popup.h +++ b/src/popup.h @@ -210,7 +210,8 @@ class query_popup button( const std::string &text, int x, int y ); std::string text; - point pos; + int x; + int y; }; // UI caches diff --git a/src/profession.cpp b/src/profession.cpp index 959092f77b0a8..617b356080e2a 100644 --- a/src/profession.cpp +++ b/src/profession.cpp @@ -432,7 +432,7 @@ std::vector profession::get_locked_traits() const return _starting_traits; } -profession::StartingSkillList profession::skills() const +const profession::StartingSkillList profession::skills() const { return _starting_skills; } diff --git a/src/profession.h b/src/profession.h index 77f0faea1650c..2485184db1363 100644 --- a/src/profession.h +++ b/src/profession.h @@ -104,7 +104,7 @@ class profession std::vector addictions() const; std::vector pets() const; std::vector CBMs() const; - StartingSkillList skills() const; + const StartingSkillList skills() const; std::map spells() const; void learn_spells( avatar &you ) const; diff --git a/src/projectile.cpp b/src/projectile.cpp index a41c75fdbc519..949787b148100 100644 --- a/src/projectile.cpp +++ b/src/projectile.cpp @@ -1,6 +1,5 @@ #include "projectile.h" -#include #include #include "explosion.h" @@ -51,7 +50,7 @@ void projectile::set_drop( const item &it ) if( it.is_null() ) { unset_drop(); } else { - drop = std::make_unique( it ); + drop.reset( new item( it ) ); } } @@ -60,7 +59,7 @@ void projectile::set_drop( item &&it ) if( it.is_null() ) { unset_drop(); } else { - drop = std::make_unique( std::move( it ) ); + drop.reset( new item( std::move( it ) ) ); } } @@ -81,7 +80,7 @@ const explosion_data &projectile::get_custom_explosion() const void projectile::set_custom_explosion( const explosion_data &ex ) { - custom_explosion = std::make_unique( ex ); + custom_explosion.reset( new explosion_data( ex ) ); } void projectile::unset_custom_explosion() @@ -158,11 +157,6 @@ void apply_ammo_effects( const tripoint &p, const std::set &effects g->m.add_field( pt, fd_fungicidal_gas, 3 ); } } - if( effects.count( "GAS_INSECTICIDAL" ) > 0 ) { - for( auto &pt : g->m.points_in_radius( p, 1, 0 ) ) { - g->m.add_field( pt, fd_insecticidal_gas, 3 ); - } - } if( effects.count( "SMOKE" ) > 0 ) { for( auto &pt : g->m.points_in_radius( p, 1, 0 ) ) { g->m.add_field( pt, fd_smoke, 3 ); diff --git a/src/ranged.cpp b/src/ranged.cpp index 6ade88a01d31a..24d7905070ef4 100644 --- a/src/ranged.cpp +++ b/src/ranged.cpp @@ -70,7 +70,6 @@ const skill_id skill_launcher( "launcher" ); const efftype_id effect_on_roof( "on_roof" ); const efftype_id effect_hit_by_player( "hit_by_player" ); -const efftype_id effect_riding( "riding" ); static const trait_id trait_PYROMANIA( "PYROMANIA" ); @@ -316,11 +315,7 @@ int player::fire_gun( const tripoint &target, int shots, item &gun ) debugmsg( "%s tried to fire non-gun (%s).", name, gun.tname() ); return 0; } - bool is_mech_weapon = false; - if( is_mounted() && - mounted_creature->has_flag( MF_RIDEABLE_MECH ) ) { - is_mech_weapon = true; - } + // Number of shots to fire is limited by the amount of remaining ammo if( gun.ammo_required() ) { shots = std::min( shots, static_cast( gun.ammo_remaining() / gun.ammo_required() ) ); @@ -413,10 +408,6 @@ int player::fire_gun( const tripoint &target, int shots, item &gun ) // apply delayed recoil recoil += delay; - if( is_mech_weapon ) { - // mechs can handle recoil far better. they are built around their main gun. - recoil = recoil / 2; - } // Reset aim for bows and other reload-and-shoot weapons. if( gun.has_flag( "RELOAD_AND_SHOOT" ) ) { recoil = MAX_RECOIL; @@ -541,19 +532,7 @@ dealt_projectile_attack player::throw_item( const tripoint &target, const item & const int stamina_cost = ( static_cast( get_option( "PLAYER_BASE_STAMINA_REGEN_RATE" ) ) + ( weight / 10_gram ) + 200 ) * -1; - bool throw_assist = false; - int throw_assist_str = 0; - if( is_mounted() ) { - auto mons = mounted_creature.get(); - if( mons->mech_str_addition() != 0 ) { - throw_assist = true; - throw_assist_str = mons->mech_str_addition(); - mons->use_mech_power( -3 ); - } - } - if( !throw_assist ) { - mod_stat( "stamina", stamina_cost ); - } + mod_stat( "stamina", stamina_cost ); const skill_id &skill_used = skill_throw; const int skill_level = std::min( MAX_SKILL, get_skill_level( skill_throw ) ); @@ -567,15 +546,13 @@ dealt_projectile_attack player::throw_item( const tripoint &target, const item & static const std::set ferric = { material_id( "iron" ), material_id( "steel" ) }; - bool do_railgun = has_active_bionic( bionic_id( "bio_railgun" ) ) && thrown.made_of_any( ferric ) && - !throw_assist; + bool do_railgun = has_active_bionic( bionic_id( "bio_railgun" ) ) && thrown.made_of_any( ferric ); // The damage dealt due to item's weight, player's strength, and skill level // Up to str/2 or weight/100g (lower), so 10 str is 5 damage before multipliers // Railgun doubles the effective strength ///\EFFECT_STR increases throwing damage double stats_mod = do_railgun ? get_str() : ( get_str() / 2.0 ); - stats_mod = throw_assist ? throw_assist_str / 2.0 : stats_mod; // modify strength impact based on skill level, clamped to [0.15 - 1] // mod = mod * [ ( ( skill / max_skill ) * 0.85 ) + 0.15 ] stats_mod *= ( std::min( MAX_SKILL, @@ -777,7 +754,7 @@ static int draw_targeting_window( const catacurses::window &w_target, const std: aim_and_fire += string_format( "[%s] ", front_or( e.action, ' ' ) ); } } - mvwprintz( w_target, text_y++, 1, c_white, _( "%sto aim and fire" ), aim_and_fire ); + mvwprintz( w_target, text_y++, 1, c_white, "%sto aim and fire", aim_and_fire ); mvwprintz( w_target, text_y++, 1, c_white, _( "[%c] to switch aiming modes." ), front_or( "SWITCH_AIM", ' ' ) ); } @@ -833,11 +810,11 @@ static int print_steadiness( const catacurses::window &w, int line_number, doubl if( get_option( "ACCURACY_DISPLAY" ) == "numbers" ) { std::string steadiness_s = string_format( "%s: %d%%", _( "Steadiness" ), static_cast( 100.0 * steadiness ) ); - mvwprintw( w, point( 1, line_number++ ), steadiness_s ); + mvwprintw( w, line_number++, 1, steadiness_s ); } else { const std::string &steadiness_bar = get_labeled_bar( steadiness, window_width, _( "Steadiness" ), '*' ); - mvwprintw( w, point( 1, line_number++ ), steadiness_bar ); + mvwprintw( w, line_number++, 1, steadiness_bar ); } return line_number; @@ -920,8 +897,7 @@ static int print_ranged_chance( const player &p, const catacurses::window &w, in if( display_type != "numbers" ) { std::string symbols; for( const confidence_rating &cr : confidence_config ) { - symbols += string_format( " %s = %s", cr.color, cr.symbol, - pgettext( "aim_confidence", cr.label.c_str() ) ); + symbols += string_format( " %s = %s", cr.color, cr.symbol, cr.label ); } print_colored_text( w, line_number++, 1, col, col, string_format( _( "Symbols:%s" ), symbols ) ); @@ -966,8 +942,8 @@ static int print_ranged_chance( const player &p, const catacurses::window &w, in // TODO: Consider not printing 0 chances, but only if you can print something (at least miss 100% or so) int chance = std::min( 100, 100.0 * ( config.aim_level * confidence ) ) - last_chance; last_chance += chance; - return string_format( "%s: %3d%%", pgettext( "aim_confidence", - config.label.c_str() ), config.color, chance ); + return string_format( "%s: %3d%%", _( config.label ), config.color, + chance ); }, enumeration_conjunction::none ); line_number += fold_and_print_from( w, line_number, 1, window_width, 0, c_dark_gray, confidence_s ); @@ -1037,9 +1013,9 @@ static int draw_turret_aim( const player &p, const catacurses::window &w, int li // fetch and display list of turrets that are ready to fire at the target auto turrets = vp->vehicle().turrets( targ ); - mvwprintw( w, point( 1, line_number++ ), _( "Turrets in range: %d" ), turrets.size() ); + mvwprintw( w, line_number++, 1, _( "Turrets in range: %d" ), turrets.size() ); for( const auto e : turrets ) { - mvwprintw( w, point( 1, line_number++ ), "* %s", e->name() ); + mvwprintw( w, line_number++, 1, "* %s", e->name() ); } return line_number; @@ -1221,7 +1197,6 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, // Default to the maximum window size we can use. int height = 31; - int width = 55; int top = 0; if( tiny ) { // If we're extremely short on space, use the whole sidebar. @@ -1230,7 +1205,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, // Cover up more low-value ui elements if we're tight on space. height = 25; } - catacurses::window w_target = catacurses::newwin( height, width, point( TERMX - width, top ) ); + catacurses::window w_target = catacurses::newwin( height, 45, top, TERMX - 45 ); input_context ctxt( "TARGET" ); ctxt.set_iso( true ); @@ -1364,11 +1339,11 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, g->draw_line( dst, center, ret_this_zlevel ); // Print to target window - mvwprintw( w_target, point( 1, line_number++ ), _( "Range: %d/%d Elevation: %d Targets: %d" ), + mvwprintw( w_target, line_number++, 1, _( "Range: %d/%d Elevation: %d Targets: %d" ), rl_dist( src, dst ), range, relative_elevation, t.size() ); } else { - mvwprintw( w_target, point( 1, line_number++ ), _( "Range: %d Elevation: %d Targets: %d" ), range, + mvwprintw( w_target, line_number++, 1, _( "Range: %d Elevation: %d Targets: %d" ), range, relative_elevation, t.size() ); } @@ -1378,7 +1353,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, } if( mode == TARGET_MODE_FIRE || mode == TARGET_MODE_TURRET_MANUAL ) { auto m = relevant->gun_current_mode(); - std::string str; + std::string str = ""; nc_color col = c_light_gray; if( relevant != m.target ) { str = string_format( _( "Firing mode: %s %s (%d)" ), @@ -1445,8 +1420,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, target_size, dst, predicted_recoil ); if( aim_mode->has_threshold ) { - mvwprintw( w_target, point( 1, line_number++ ), _( "%s Delay: %i" ), aim_mode->name, - predicted_delay ); + mvwprintw( w_target, line_number++, 1, _( "%s Delay: %i" ), aim_mode->name, predicted_delay ); } } else if( mode == TARGET_MODE_TURRET ) { // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) @@ -1479,7 +1453,7 @@ std::vector target_handler::target_ui( player &pc, target_mode mode, // Clear the activity if any, we'll re-set it later if we need to. pc.cancel_activity(); - tripoint targ; + tripoint targ( 0, 0, 0 ); cata::optional mouse_pos; // Our coordinates will either be determined by coordinate input(mouse), // by a direction key, or by the previous value. @@ -1745,8 +1719,7 @@ std::vector target_handler::target_ui( spell &casting, const bool no_f // Default to the maximum window size we can use. int height = 31; - int width = 55; - catacurses::window w_target = catacurses::newwin( height, width, point( TERMX - width, 0 ) ); + catacurses::window w_target = catacurses::newwin( height, 45, 0, TERMX - 45 ); // TODO: this should return a reference to a static vector which is cleared on each call. static const std::vector empty_result{}; @@ -1814,7 +1787,7 @@ std::vector target_handler::target_ui( spell &casting, const bool no_f do { ret = g->m.find_clear_path( src, dst ); - if( fx == "target_attack" || fx == "projectile_attack" || fx == "ter_transform" ) { + if( fx == "target_attack" || fx == "projectile_attack" ) { spell_aoe = spell_effect::spell_effect_blast( casting, src, ret.back(), casting.aoe(), true ); } else if( fx == "cone_attack" ) { spell_aoe = spell_effect::spell_effect_cone( casting, src, ret.back(), casting.aoe(), true ); @@ -1890,11 +1863,11 @@ std::vector target_handler::target_ui( spell &casting, const bool no_f g->draw_line( dst, center, ret_this_zlevel ); // Print to target window - mvwprintw( w_target, point( 1, line_number++ ), _( "Range: %d/%d Elevation: %d Targets: %d" ), + mvwprintw( w_target, line_number++, 1, _( "Range: %d/%d Elevation: %d Targets: %d" ), rl_dist( src, dst ), range, relative_elevation, t.size() ); } else { - mvwprintw( w_target, point( 1, line_number++ ), _( "Range: %d Elevation: %d Targets: %d" ), range, + mvwprintw( w_target, line_number++, 1, _( "Range: %d Elevation: %d Targets: %d" ), range, relative_elevation, t.size() ); } @@ -1951,7 +1924,7 @@ std::vector target_handler::target_ui( spell &casting, const bool no_f // Clear the activity if any, we'll re-set it later if we need to. pc.cancel_activity(); - tripoint targ; + tripoint targ( 0, 0, 0 ); cata::optional mouse_pos; // Our coordinates will either be determined by coordinate input(mouse), // by a direction key, or by the previous value. @@ -2314,7 +2287,7 @@ dispersion_sources player::get_weapon_dispersion( const item &obj ) const dispersion_sources dispersion( weapon_dispersion ); dispersion.add_range( ranged_dex_mod() ); - dispersion.add_range( ( encumb( bp_arm_l ) + encumb( bp_arm_r ) ) / 5.0 ); + dispersion.add_range( ( encumb( bp_arm_l ) + encumb( bp_arm_r ) ) / 5 ); if( is_driving( *this ) ) { // get volume of gun (or for auxiliary gunmods the parent gun) @@ -2454,7 +2427,7 @@ double player::gun_value( const item &weap, int ammo ) const // How much until reload float capacity = gun.clip > 0 ? std::min( gun.clip, ammo ) : ammo; // How much until dry and a new weapon is needed - capacity += std::min( 1.0, ammo / 20.0 ); + capacity += std::min( 1.0, ammo / 20 ); float capacity_factor = multi_lerp( capacity_thresholds, capacity ); double gun_value = damage_and_accuracy * capacity_factor; diff --git a/src/recipe.cpp b/src/recipe.cpp index 59f8396f13d77..f9417a6851611 100644 --- a/src/recipe.cpp +++ b/src/recipe.cpp @@ -489,7 +489,7 @@ std::string recipe::result_name() const return name; } -std::function recipe::get_component_filter() const +const std::function recipe::get_component_filter() const { const item result = create_result(); diff --git a/src/recipe.h b/src/recipe.h index ed4c440b1de8f..0dea0a4e14f8f 100644 --- a/src/recipe.h +++ b/src/recipe.h @@ -61,7 +61,7 @@ class recipe return requirements_.is_blacklisted(); } - std::function get_component_filter() const; + const std::function get_component_filter() const; /** Prevent this recipe from ever being added to the player's learned recipies ( used for special NPC crafting ) */ bool never_learn = false; diff --git a/src/regional_settings.cpp b/src/regional_settings.cpp index ac144ec19ac5d..9ea5c9fc1de80 100644 --- a/src/regional_settings.cpp +++ b/src/regional_settings.cpp @@ -337,25 +337,6 @@ static void load_overmap_lake_settings( JsonObject &jo, overmap_lake_settings.unfinalized_shore_extendable_overmap_terrain.end(), from_json.begin(), from_json.end() ); } - - if( !overmap_lake_settings_jo.has_array( "shore_extendable_overmap_terrain_aliases" ) ) { - if( !overlay ) { - overmap_lake_settings_jo.throw_error( "shore_extendable_overmap_terrain_aliases required" ); - } - } else { - JsonArray aliases_jarr = - overmap_lake_settings_jo.get_array( "shore_extendable_overmap_terrain_aliases" ); - oter_str_id alias; - while( aliases_jarr.has_more() ) { - shore_extendable_overmap_terrain_alias alias; - JsonObject jo = aliases_jarr.next_object(); - jo.read( "om_terrain", alias.overmap_terrain ); - jo.read( "alias", alias.alias ); - alias.match_type = jo.get_enum_value( jo.get_string( "om_terrain_match_type", - "CONTAINS" ), ot_match_type::contains ); - overmap_lake_settings.shore_extendable_overmap_terrain_aliases.emplace_back( alias ); - } - } } } @@ -888,15 +869,6 @@ void overmap_lake_settings::finalize() } shore_extendable_overmap_terrain.emplace_back( ot.id() ); } - - for( shore_extendable_overmap_terrain_alias &alias : shore_extendable_overmap_terrain_aliases ) { - if( std::find( shore_extendable_overmap_terrain.begin(), shore_extendable_overmap_terrain.end(), - alias.alias ) == shore_extendable_overmap_terrain.end() ) { - debugmsg( " %s was referenced as an alias in overmap_lake_settings shore_extendable_overmap_terrain_alises, but the value is not present in the shore_extendable_overmap_terrain.", - alias.alias.c_str() ); - continue; - } - } } void regional_settings::finalize() diff --git a/src/regional_settings.h b/src/regional_settings.h index d3804845eeab5..c5b46609a0370 100644 --- a/src/regional_settings.h +++ b/src/regional_settings.h @@ -9,7 +9,6 @@ #include #include -#include "enums.h" #include "mapdata.h" #include "omdata.h" #include "weather_gen.h" @@ -189,18 +188,11 @@ struct overmap_forest_settings { overmap_forest_settings() = default; }; -struct shore_extendable_overmap_terrain_alias { - std::string overmap_terrain; - ot_match_type match_type; - oter_str_id alias; -}; - struct overmap_lake_settings { double noise_threshold_lake = 0.25; int lake_size_min = 20; std::vector unfinalized_shore_extendable_overmap_terrain; std::vector shore_extendable_overmap_terrain; - std::vector shore_extendable_overmap_terrain_aliases; void finalize(); overmap_lake_settings() = default; diff --git a/src/requirements.cpp b/src/requirements.cpp index 695dc95bc9273..0c65fcf9b60e1 100644 --- a/src/requirements.cpp +++ b/src/requirements.cpp @@ -242,11 +242,11 @@ void requirement_data::load_requirement( JsonObject &jsobj, const requirement_id requirement_data req; JsonArray jsarr = jsobj.get_array( "components" ); - requirement_data::load_obj_list( jsarr, req.components ); + req.load_obj_list( jsarr, req.components ); jsarr = jsobj.get_array( "qualities" ); - requirement_data::load_obj_list( jsarr, req.qualities ); + req.load_obj_list( jsarr, req.qualities ); jsarr = jsobj.get_array( "tools" ); - requirement_data::load_obj_list( jsarr, req.tools ); + req.load_obj_list( jsarr, req.tools ); if( !id.is_null() ) { req.id_ = id; @@ -891,7 +891,7 @@ requirement_data requirement_data::disassembly_requirements() const new_qualities.emplace_back( quality_id( "PULL" ), 1, 1 ); break; } - if( type == "fire" && remove_fire ) { + if( type == "fire" && remove_fire == true ) { replaced = true; break; } diff --git a/src/requirements.h b/src/requirements.h index 654fdd4c7e2f9..b4862855b59b0 100644 --- a/src/requirements.h +++ b/src/requirements.h @@ -71,7 +71,7 @@ struct component { }; struct tool_comp : public component { - tool_comp() { } + tool_comp() : component() { } tool_comp( const itype_id &TYPE, int COUNT ) : component( TYPE, COUNT ) { } void load( JsonArray &ja ); @@ -87,7 +87,7 @@ struct tool_comp : public component { }; struct item_comp : public component { - item_comp() { } + item_comp() : component() { } item_comp( const itype_id &TYPE, int COUNT ) : component( TYPE, COUNT ) { } void load( JsonArray &ja ); diff --git a/src/safemode_ui.cpp b/src/safemode_ui.cpp index e437982155d94..4ef6f8f44bf94 100644 --- a/src/safemode_ui.cpp +++ b/src/safemode_ui.cpp @@ -52,8 +52,8 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) const int header_height = 4; const int content_height = FULL_SCREEN_HEIGHT - 2 - header_height; - const int offset_x = TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; - const int offset_y = TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; + const int offset_x = ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0; + const int offset_y = ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0; enum Columns : int { COLUMN_RULE, @@ -70,17 +70,14 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) const int num_columns = column_pos.size(); - catacurses::window w_help = - catacurses::newwin( FULL_SCREEN_HEIGHT / 2 - 2, FULL_SCREEN_WIDTH * 3 / 4, - point( offset_x + 19 / 2, 7 + offset_y + FULL_SCREEN_HEIGHT / 2 / 2 ) ); - catacurses::window w_border = - catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, point( offset_x, offset_y ) ); - catacurses::window w_header = - catacurses::newwin( header_height, FULL_SCREEN_WIDTH - 2, - point( 1 + offset_x, 1 + offset_y ) ); - catacurses::window w = - catacurses::newwin( content_height, FULL_SCREEN_WIDTH - 2, - point( 1 + offset_x, header_height + 1 + offset_y ) ); + catacurses::window w_help = catacurses::newwin( ( FULL_SCREEN_HEIGHT / 2 ) - 2, + FULL_SCREEN_WIDTH * 3 / 4, 7 + offset_y + ( FULL_SCREEN_HEIGHT / 2 ) / 2, offset_x + 19 / 2 ); + catacurses::window w_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + offset_y, offset_x ); + catacurses::window w_header = catacurses::newwin( header_height, FULL_SCREEN_WIDTH - 2, + 1 + offset_y, 1 + offset_x ); + catacurses::window w = catacurses::newwin( content_height, FULL_SCREEN_WIDTH - 2, + header_height + 1 + offset_y, 1 + offset_x ); draw_border( w_border, BORDER_COLOR, custom_name_in ); @@ -88,8 +85,8 @@ void safemode::show( const std::string &custom_name_in, bool is_safemode_in ) mvwputch( w_border, 3, 79, c_light_gray, LINE_XOXX ); // -| for( auto &column : column_pos ) { - // _|_ - mvwputch( w_border, FULL_SCREEN_HEIGHT - 1, column.second + 1, c_light_gray, LINE_XXOX ); + mvwputch( w_border, FULL_SCREEN_HEIGHT - 1, column.second + 1, c_light_gray, + LINE_XXOX ); // _|_ } wrefresh( w_border ); @@ -429,8 +426,8 @@ void safemode::test_pattern( const int tab_in, const int row_in ) } } - const int offset_x = 15 + ( TERMX > FULL_SCREEN_WIDTH ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); - const int offset_y = 5 + ( TERMY > FULL_SCREEN_HEIGHT ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : + const int offset_x = 15 + ( ( TERMX > FULL_SCREEN_WIDTH ) ? ( TERMX - FULL_SCREEN_WIDTH ) / 2 : 0 ); + const int offset_y = 5 + ( ( TERMY > FULL_SCREEN_HEIGHT ) ? ( TERMY - FULL_SCREEN_HEIGHT ) / 2 : 0 ); int start_pos = 0; @@ -438,10 +435,10 @@ void safemode::test_pattern( const int tab_in, const int row_in ) const int content_width = FULL_SCREEN_WIDTH - 30; const catacurses::window w_test_rule_border = catacurses::newwin( content_height + 2, content_width, - point( offset_x, offset_y ) ); + offset_y, offset_x ); const catacurses::window w_test_rule_content = catacurses::newwin( content_height, content_width - 2, - point( 1 + offset_x, 1 + offset_y ) ); + 1 + offset_y, 1 + offset_x ); int nmatch = creature_list.size(); const std::string buf = string_format( ngettext( "%1$d monster matches: %2$s", diff --git a/src/savegame.cpp b/src/savegame.cpp index d19c82272d4e3..78555702d6d10 100644 --- a/src/savegame.cpp +++ b/src/savegame.cpp @@ -72,8 +72,8 @@ void game::serialize( std::ostream &fout ) json.start_object(); // basic game state information. - json.member( "turn", calendar::turn ); - json.member( "calendar_start", calendar::start_of_cataclysm ); + json.member( "turn", static_cast( calendar::turn ) ); + json.member( "calendar_start", static_cast( calendar::start ) ); json.member( "initial_season", static_cast( calendar::initial_season ) ); json.member( "auto_travel_mode", auto_travel_mode ); json.member( "run_mode", static_cast( safe_mode ) ); @@ -198,7 +198,7 @@ void game::unserialize( std::istream &fin ) data.read( "om_y", comy ); calendar::turn = tmpturn; - calendar::start_of_cataclysm = tmpcalstart; + calendar::start = tmpcalstart; load_map( tripoint( levx + comx * OMAPX * 2, levy + comy * OMAPY * 2, levz ) ); @@ -391,6 +391,7 @@ void overmap::convert_terrain( const std::unordered_map & }; std::vector nearby; + std::vector> convert_unrelated_adjacent_tiles; if( old == "apartments_con_tower_1_entrance" || old == "apartments_mod_tower_1_entrance" ) { @@ -575,6 +576,32 @@ void overmap::convert_terrain( const std::unordered_map & nearby.push_back( { 0, hospital, -2, hospital_entrance, hospital + "_8_north" } ); nearby.push_back( { 2, hospital, -2, hospital, hospital + "_9_north" } ); } + + } else if( old == "sewage_treatment" ) { + new_id = oter_id( "sewage_treatment_0_1_0_north" ); + convert_unrelated_adjacent_tiles.push_back( { tripoint_north, "sewage_treatment_0_0_0_north" } ); + convert_unrelated_adjacent_tiles.push_back( { tripoint_east, "sewage_treatment_1_1_0_north" } ); + convert_unrelated_adjacent_tiles.push_back( { tripoint_north_east, "sewage_treatment_1_0_0_north" } ); + convert_unrelated_adjacent_tiles.push_back( { tripoint_above, "sewage_treatment_0_1_roof_north" } ); + convert_unrelated_adjacent_tiles.push_back( { tripoint_north + tripoint_above, "sewage_treatment_0_0_roof_north" } ); + convert_unrelated_adjacent_tiles.push_back( { tripoint_east + tripoint_above, "sewage_treatment_1_1_roof_north" } ); + convert_unrelated_adjacent_tiles.push_back( { tripoint_north_east + tripoint_above, "sewage_treatment_1_0_roof_north" } ); + } else if( old == "sewage_treatment_under" ) { + const std::string base = "sewage_treatment_under"; + const std::string hub = "sewage_treatment_hub"; + nearby.push_back( { -1, hub, 0, base, "sewage_treatment_1_1_-1_north" } ); + nearby.push_back( { -1, base, 1, hub, "sewage_treatment_0_0_-1_north" } ); + nearby.push_back( { -1, base, 1, base, "sewage_treatment_1_0_-1_north" } ); + // Fill empty space with something other than drivethrus. + nearby.push_back( { 1, hub, 0, base, "empty_rock" } ); + nearby.push_back( { 1, base, 0, base, "empty_rock" } ); + nearby.push_back( { -1, base, -1, base, "empty_rock" } ); + nearby.push_back( { 0, base, -1, base, "empty_rock" } ); + nearby.push_back( { 1, base, -1, base, "empty_rock" } ); + } else if( old == "sewage_treatment_hub" ) { + new_id = oter_id( "sewage_treatment_0_1_-1_north" ); + convert_unrelated_adjacent_tiles.push_back( { tripoint( 2, 0, 0 ), "sewage_treatment_2_1_-1_north" } ); + convert_unrelated_adjacent_tiles.push_back( { tripoint( 2, -1, 0 ), "sewage_treatment_2_0_-1_north" } ); } else if( old == "cathedral_1_entrance" ) { const std::string base = "cathedral_1_"; const std::string other = "cathedral_1"; @@ -693,11 +720,11 @@ void overmap::convert_terrain( const std::unordered_map & } else if( old == "bunker" ) { if( pos.z < 0 ) { new_id = oter_id( "bunker_basement" ); - } else if( is_ot_match( "road", get_ter( pos + point_east ), ot_match_type::type ) ) { + } else if( is_ot_match( "road", get_ter( pos + point( 1, 0 ) ), ot_match_type::type ) ) { new_id = oter_id( "bunker_west" ); - } else if( is_ot_match( "road", get_ter( pos + point_west ), ot_match_type::type ) ) { + } else if( is_ot_match( "road", get_ter( pos + point( -1, 0 ) ), ot_match_type::type ) ) { new_id = oter_id( "bunker_east" ); - } else if( is_ot_match( "road", get_ter( pos + point_south ), ot_match_type::type ) ) { + } else if( is_ot_match( "road", get_ter( pos + point( 0, 1 ) ), ot_match_type::type ) ) { new_id = oter_id( "bunker_north" ); } else { new_id = oter_id( "bunker_south" ); @@ -765,14 +792,18 @@ void overmap::convert_terrain( const std::unordered_map & } for( const auto &conv : nearby ) { - const auto x_it = needs_conversion.find( pos + point( conv.xoffset, 0 ) ); - const auto y_it = needs_conversion.find( pos + point( 0, conv.yoffset ) ); + const auto x_it = needs_conversion.find( tripoint( pos.x + conv.xoffset, pos.y, pos.z ) ); + const auto y_it = needs_conversion.find( tripoint( pos.x, pos.y + conv.yoffset, pos.z ) ); if( x_it != needs_conversion.end() && x_it->second == conv.x_id && y_it != needs_conversion.end() && y_it->second == conv.y_id ) { new_id = oter_id( conv.new_id ); break; } } + + for( const std::pair &conv : convert_unrelated_adjacent_tiles ) { + ter( pos + conv.first ) = oter_id( conv.second ); + } } } @@ -934,7 +965,7 @@ void overmap::unserialize( std::istream &fin ) monster new_monster; monster_location.deserialize( jsin ); new_monster.deserialize( jsin ); - monster_map.insert( std::make_pair( monster_location, + monster_map.insert( std::make_pair( std::move( monster_location ), std::move( new_monster ) ) ); } } else if( name == "tracked_vehicles" ) { @@ -1220,14 +1251,14 @@ struct mongroup_hash { std::size_t operator()( const mongroup &mg ) const { // Note: not hashing monsters or position size_t ret = std::hash()( mg.type ); - cata::hash_combine( ret, mg.radius ); - cata::hash_combine( ret, mg.population ); - cata::hash_combine( ret, mg.target ); - cata::hash_combine( ret, mg.interest ); - cata::hash_combine( ret, mg.dying ); - cata::hash_combine( ret, mg.horde ); - cata::hash_combine( ret, mg.horde_behaviour ); - cata::hash_combine( ret, mg.diffuse ); + std::hash_combine( ret, mg.radius ); + std::hash_combine( ret, mg.population ); + std::hash_combine( ret, mg.target ); + std::hash_combine( ret, mg.interest ); + std::hash_combine( ret, mg.dying ); + std::hash_combine( ret, mg.horde ); + std::hash_combine( ret, mg.horde_behaviour ); + std::hash_combine( ret, mg.diffuse ); return ret; } }; @@ -1521,7 +1552,7 @@ void game::unserialize_master( std::istream &fin ) { savegame_loading_version = 0; chkversion( fin ); - if( savegame_loading_version < 11 ) { + if( savegame_loading_version != savegame_version && savegame_loading_version < 11 ) { popup_nowait( _( "Cannot find loader for save data in old version %d, attempting to load as current version %d." ), savegame_loading_version, savegame_version ); diff --git a/src/savegame_json.cpp b/src/savegame_json.cpp index ca1ea53686792..77a72dbd3a935 100644 --- a/src/savegame_json.cpp +++ b/src/savegame_json.cpp @@ -331,7 +331,8 @@ void SkillLevel::deserialize( JsonIn &jsin ) data.read( "exercise", _exercise ); data.read( "istraining", _isTraining ); if( !data.read( "lastpracticed", _lastPracticed ) ) { - _lastPracticed = calendar::start_of_cataclysm + time_duration::from_hours( + // TODO: shouldn't that be calendar::start? + _lastPracticed = calendar::time_of_cataclysm + time_duration::from_hours( get_option( "INITIAL_TIME" ) ); } data.read( "highestlevel", _highestLevel ); @@ -473,15 +474,6 @@ void Character::load( JsonObject &data ) weapon = item( "null", 0 ); data.read( "weapon", weapon ); - if( has_effect( effect_riding ) ) { - int temp_id; - if( data.read( "mounted_creature", temp_id ) ) { - mounted_creature = g->critter_tracker->from_temporary_id( temp_id ); - } else { - mounted_creature = nullptr; - } - } - _skills->clear(); JsonObject pmap = data.get_object( "skills" ); for( const std::string &member : pmap.get_member_names() ) { @@ -567,10 +559,7 @@ void Character::store( JsonOut &json ) const // "Fracking Toasters" - Saul Tigh, toaster json.member( "my_bionics", *my_bionics ); - // storing the mount - if( is_mounted() ) { - json.member( "mounted_creature", g->critter_tracker->temporary_id( *mounted_creature ) ); - } + // skills json.member( "skills" ); json.start_object(); @@ -697,6 +686,9 @@ void player::store( JsonOut &json ) const } json.end_array(); } + if( has_effect( effect_riding ) && mounted_creature ) { + json.member( "mounted_creature", g->critter_tracker->temporary_id( *mounted_creature ) ); + } } /** @@ -807,7 +799,14 @@ void player::load( JsonObject &data ) // Need to do this *after* the monsters have been loaded! last_target = g->critter_tracker->from_temporary_id( tmptar ); } - + if( has_effect( effect_riding ) ) { + int temp_id; + if( data.read( "mounted_creature", temp_id ) ) { + mounted_creature = g->critter_tracker->from_temporary_id( temp_id ); + } else { + mounted_creature = nullptr; + } + } JsonArray basecamps = data.get_array( "camps" ); camps.clear(); while( basecamps.has_more() ) { @@ -1385,7 +1384,7 @@ void npc::load( JsonObject &data ) if( data.read( "omy", o ) ) { old_coords.y += o * OMAPY * 2; } - submap_coords = old_coords + point( posx() / SEEX, posy() / SEEY ); + submap_coords = point( old_coords.x + posx() / SEEX, old_coords.y + posy() / SEEY ); } if( !data.read( "mapz", position.z ) ) { @@ -1731,7 +1730,6 @@ void monster::load( JsonObject &data ) } data.read( "tied_item", tied_item ); data.read( "hp", hp ); - data.read( "battery_item", battery_item ); // sp_timeout indicates an old save, prior to the special_attacks refactor if( data.has_array( "sp_timeout" ) ) { @@ -1810,8 +1808,6 @@ void monster::load( JsonObject &data ) horde_attraction = static_cast( data.get_int( "horde_attraction", 0 ) ); 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" ) ); @@ -1823,8 +1819,8 @@ void monster::load( JsonObject &data ) if( !data.read( "last_updated", last_updated ) ) { last_updated = calendar::turn; } - last_baby = data.get_int( "last_baby", to_turn( calendar::turn ) ); - last_biosig = data.get_int( "last_biosig", to_turn( calendar::turn ) ); + last_baby = data.get_int( "last_baby", calendar::turn ); + last_biosig = data.get_int( "last_biosig", calendar::turn ); data.read( "path", path ); } @@ -1866,7 +1862,6 @@ void monster::store( JsonOut &json ) const json.member( "hallucination", hallucination ); json.member( "stairscount", staircount ); json.member( "tied_item", tied_item ); - json.member( "battery_item", battery_item ); // Store the relative position of the goal so it loads correctly after a map shift. json.member( "destination", goal - pos() ); json.member( "ammo", ammo ); @@ -1888,7 +1883,6 @@ void monster::store( JsonOut &json ) const } json.member( "inv", inv ); - json.member( "dragged_foe_id", dragged_foe_id ); json.member( "path", path ); } @@ -1990,7 +1984,7 @@ void item::io( Archive &archive ) archive.io( "note", note, 0 ); // NB! field is named `irridation` in legacy files archive.io( "irridation", irradiation, 0 ); - archive.io( "bday", bday, calendar::turn_zero ); + archive.io( "bday", bday, calendar::time_of_cataclysm ); archive.io( "mission_id", mission_id, -1 ); archive.io( "player_id", player_id, -1 ); archive.io( "item_vars", item_vars, io::empty_default_tag() ); @@ -2001,8 +1995,8 @@ void item::io( Archive &archive ) archive.io( "is_favorite", is_favorite, false ); archive.io( "item_counter", item_counter, static_cast( 0 ) ); archive.io( "rot", rot, 0_turns ); - archive.io( "last_rot_check", last_rot_check, calendar::turn_zero ); - archive.io( "last_temp_check", last_temp_check, calendar::turn_zero ); + archive.io( "last_rot_check", last_rot_check, calendar::time_of_cataclysm ); + archive.io( "last_temp_check", last_temp_check, calendar::time_of_cataclysm ); archive.io( "current_phase", cur_phase, static_cast( type->phase ) ); archive.io( "techniques", techniques, io::empty_default_tag() ); archive.io( "faults", faults, io::empty_default_tag() ); @@ -2434,8 +2428,8 @@ void vehicle::deserialize( JsonIn &jsin ) int mdir = 0; data.read( "type", type ); - data.read( "posx", pos.x ); - data.read( "posy", pos.y ); + data.read( "posx", posx ); + data.read( "posy", posy ); data.read( "om_id", om_id ); data.read( "faceDir", fdir ); data.read( "moveDir", mdir ); @@ -2566,8 +2560,8 @@ void vehicle::serialize( JsonOut &json ) const { json.start_object(); json.member( "type", type ); - json.member( "posx", pos.x ); - json.member( "posy", pos.y ); + json.member( "posx", posx ); + json.member( "posy", posy ); json.member( "om_id", om_id ); json.member( "faceDir", face.dir() ); json.member( "moveDir", move.dir() ); @@ -2621,6 +2615,8 @@ void mission::deserialize( JsonIn &jsin ) type = &mission_type::get_all().front(); } + jo.read( "description", description ); + bool failed; bool was_started; std::string status_string; @@ -2693,6 +2689,7 @@ void mission::serialize( JsonOut &json ) const json.start_object(); json.member( "type_id", type->id ); + json.member( "description", description ); json.member( "status", status_to_string( status ) ); json.member( "value", value ); json.member( "reward", reward ); @@ -3431,19 +3428,9 @@ void submap::store( JsonOut &jsout ) const jsout.end_array(); } jsout.end_array(); - - if( legacy_computer ) { - // it's possible that no access to computers has been made and legacy_computer - // is not cleared - jsout.member( "computers", legacy_computer->save_data() ); - } else if( !computers.empty() ) { - jsout.member( "computers" ); - jsout.start_array(); - for( auto &elem : computers ) { - jsout.write( elem.first ); - jsout.write( elem.second.save_data() ); - } - jsout.end_array(); + // Output the computer + if( comp != nullptr ) { + jsout.member( "computers", comp->save_data() ); } // Output base camp if any @@ -3699,22 +3686,11 @@ void submap::load( JsonIn &jsin, const std::string &member_name, bool rubpow_upd partial_constructions[pt] = pc; } } else if( member_name == "computers" ) { - if( jsin.test_array() ) { - jsin.start_array(); - while( !jsin.end_array() ) { - point loc; - jsin.read( loc ); - std::string computer_data = jsin.get_string(); - auto new_comp_it = computers.emplace( loc, computer( "BUGGED_COMPUTER", -100 ) ).first; - new_comp_it->second.load_data( computer_data ); - } - } else { - // only load legacy data here, but do not update to std::map, since - // the terrain may not have been loaded yet. - std::string computer_data = jsin.get_string(); - legacy_computer = std::make_unique( "BUGGED_COMPUTER", -100 ); - legacy_computer->load_data( computer_data ); - } + std::string computer_data = jsin.get_string(); + std::unique_ptr new_comp = + std::make_unique( "BUGGED_COMPUTER", -100 ); + new_comp->load_data( computer_data ); + comp = std::move( new_comp ); } else if( member_name == "camp" ) { jsin.read( camp ); } else { diff --git a/src/savegame_legacy.cpp b/src/savegame_legacy.cpp index 839d3e44584c4..c56bf0dc9ee80 100644 --- a/src/savegame_legacy.cpp +++ b/src/savegame_legacy.cpp @@ -193,6 +193,120 @@ std::string convert_talk_topic( talk_topic_enum const old_value ) return iter->second; } +const char ivaresc = 001; + +static bool itag2ivar( const std::string &item_tag, + std::map &item_vars ) +{ + size_t pos = item_tag.find( '=' ); + if( item_tag.at( 0 ) == ivaresc && pos != std::string::npos && pos >= 2 ) { + std::string val_decoded; + int svarlen = 0; + int svarsep = 0; + svarsep = item_tag.find( '=' ); + svarlen = item_tag.size(); + val_decoded.clear(); + std::string var_name = item_tag.substr( 1, svarsep - 1 ); // will assume sanity here for now + for( int s = svarsep + 1; s < svarlen; + s++ ) { // cheap and temporary, AFAIK stringstream IFS = [\r\n\t ]; + if( item_tag[s] == ivaresc && s < svarlen - 2 ) { + if( item_tag[s + 1] == '0' && item_tag[s + 2] == 'A' ) { + s += 2; + val_decoded.append( 1, '\n' ); + } else if( item_tag[s + 1] == '0' && item_tag[s + 2] == 'D' ) { + s += 2; + val_decoded.append( 1, '\r' ); + } else if( item_tag[s + 1] == '0' && item_tag[s + 2] == '6' ) { + s += 2; + val_decoded.append( 1, '\t' ); + } else if( item_tag[s + 1] == '2' && item_tag[s + 2] == '0' ) { + s += 2; + val_decoded.append( 1, ' ' ); + } else { + val_decoded.append( 1, item_tag[s] ); // hhrrrmmmmm should be passing \a? + } + } else { + val_decoded.append( 1, item_tag[s] ); + } + } + item_vars[var_name] = val_decoded; + return true; + } else { + return false; + } +} + +void item::load_info( const std::string &data ) +{ + std::istringstream dump( data ); + char check = dump.peek(); + if( check == ' ' ) { + // sigh.. + check = data[1]; + } + if( check == '{' ) { + JsonIn jsin( dump ); + try { + deserialize( jsin ); + } catch( const JsonError &jsonerr ) { + debugmsg( "Bad item json\n%s", jsonerr.c_str() ); + } + return; + } + + unset_flags(); + clear_vars(); + std::string idtmp; + std::string ammotmp; + std::string item_tag; + std::string mode; + int lettmp = 0; + int damtmp = 0; + int acttmp = 0; + int corp = 0; + int tag_count = 0; + int bday_ = 0; + int owned; // Ignoring an obsolete member. + dump >> lettmp >> idtmp >> charges >> damtmp >> tag_count; + for( int i = 0; i < tag_count; ++i ) { + dump >> item_tag; + if( !itag2ivar( item_tag, item_vars ) ) { + item_tags.insert( item_tag ); + } + } + + dump >> burnt >> poison >> ammotmp >> owned >> bday_ >> + mode >> acttmp >> corp >> mission_id >> player_id; + bday = time_point::from_turn( bday_ ); + corpse = nullptr; + getline( dump, corpse_name ); + if( corpse_name == " ''" ) { + corpse_name.clear(); + } else { + size_t pos = corpse_name.find_first_of( "@@" ); + while( pos != std::string::npos ) { + corpse_name.replace( pos, 2, "\n" ); + pos = corpse_name.find_first_of( "@@" ); + } + corpse_name = corpse_name.substr( 2, corpse_name.size() - 3 ); // s/^ '(.*)'$/\1/ + } + gun_set_mode( gun_mode_id( mode ) ); + + if( idtmp == "UPS_on" ) { + idtmp = "UPS_off"; + } else if( idtmp == "adv_UPS_on" ) { + idtmp = "adv_UPS_off" ; + } + convert( idtmp ); + + invlet = static_cast( lettmp ); + set_damage( damtmp * itype::damage_scale ); + active = false; + if( acttmp == 1 ) { + active = true; + } +} + // player_activity.h void player_activity::deserialize_legacy_type( int legacy_type, activity_id &dest ) { diff --git a/src/scent_block.h b/src/scent_block.h index e9c10bce47ddc..486e8a2bd8636 100644 --- a/src/scent_block.h +++ b/src/scent_block.h @@ -66,7 +66,7 @@ struct scent_block { } point index( const tripoint &p ) const { - return -origin.xy() + p.xy(); + return point( p.x - origin.x, p.y - origin.y ); } // We should be working entirely within the range, so don't range check here diff --git a/src/scent_map.cpp b/src/scent_map.cpp index 601305537a1d9..102ba0058df84 100644 --- a/src/scent_map.cpp +++ b/src/scent_map.cpp @@ -68,7 +68,7 @@ void scent_map::draw( const catacurses::window &win, const int div, const tripoi const int maxy = getmaxy( win ); for( int x = 0; x < maxx; ++x ) { for( int y = 0; y < maxy; ++y ) { - const int sn = get( center + point( -maxx / 2 + x, -maxy / 2 + y ) ) / div; + const int sn = get( { x + center.x - maxx / 2, y + center.y - maxy / 2, center.z } ) / div; mvwprintz( win, y, x, sev( sn / 10 ), "%d", sn % 10 ); } } @@ -118,7 +118,7 @@ bool scent_map::inbounds( const tripoint &p ) const const int levz = gm.get_levz(); const bool scent_map_z_level_inbounds = ( p.z == levz ) || ( std::abs( p.z - levz ) == SCENT_MAP_Z_REACH && - gm.m.valid_move( p, tripoint( p.xy(), levz ), false, true ) ); + gm.m.valid_move( p, tripoint( p.x, p.y, levz ), false, true ) ); if( !scent_map_z_level_inbounds ) { return false; } diff --git a/src/sdl_utils.cpp b/src/sdl_utils.cpp index db5928bd1f81f..8368ef4038266 100644 --- a/src/sdl_utils.cpp +++ b/src/sdl_utils.cpp @@ -10,25 +10,6 @@ #include "cursesport.h" #include "sdltiles.h" -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_grayscale", color_pixel_grayscale }, - { "color_pixel_nightvision", color_pixel_nightvision }, - { "color_pixel_overexposed", color_pixel_overexposed }, -}; - -color_pixel_function_pointer get_color_pixel_function( const std::string &name ) -{ - const auto iter = builtin_color_pixel_functions.find( name ); - if( iter == builtin_color_pixel_functions.end() ) { - debugmsg( "no color pixel function with name %s", name ); - return nullptr; - } - return iter->second; -} - SDL_Color curses_color_to_SDL( const nc_color &color ) { const int pair_id = color.to_color_pair_index(); @@ -57,27 +38,11 @@ void render_fill_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, { if( alt_rect_tex_enabled ) { SetTextureColorMod( alt_rect_tex, r, g, b ); - RenderCopy( renderer, alt_rect_tex, nullptr, &rect ); + RenderCopy( renderer, alt_rect_tex, NULL, &rect ); } else { SetRenderDrawColor( renderer, r, g, b, 255 ); RenderFillRect( renderer, &rect ); } } -SDL_Rect fit_rect_inside( const SDL_Rect &inner, const SDL_Rect &outer ) -{ - const float inner_ratio = static_cast( inner.w ) / inner.h; - const float outer_ratio = static_cast( outer.w ) / outer.h; - const float factor = inner_ratio > outer_ratio - ? static_cast( outer.w ) / inner.w - : static_cast( outer.h ) / inner.h; - - const int w = factor * inner.w; - const int h = factor * inner.h; - const int x = outer.x + ( outer.w - w ) / 2; - const int y = outer.y + ( outer.h - h ) / 2; - - return SDL_Rect{ x, y, w, h }; -} - #endif // SDL_TILES diff --git a/src/sdl_utils.h b/src/sdl_utils.h index 09c5a9c12d206..7f33bfef802ff 100644 --- a/src/sdl_utils.h +++ b/src/sdl_utils.h @@ -3,17 +3,10 @@ #define SDL_UTILS_H #include -#include -#include #include "color.h" #include "sdl_wrappers.h" -using color_pixel_function_pointer = SDL_Color( * )( const SDL_Color &color ); -using color_pixel_function_map = std::unordered_map; - -color_pixel_function_pointer get_color_pixel_function( const std::string &name ); - inline SDL_Color adjust_color_brightness( const SDL_Color &color, int percent ) { if( percent <= 0 ) { @@ -103,12 +96,11 @@ inline SDL_Color color_pixel_overexposed( const SDL_Color &color ) }; } -inline SDL_Color color_pixel_darken( const SDL_Color &color ) +inline SDL_Color color_pixel_memorized( const SDL_Color &color ) { if( is_black( color ) ) { return color; } - // 85/256 ~ 1/3 return { std::max( 85 * color.r >> 8, 0x01 ), @@ -116,30 +108,6 @@ inline SDL_Color color_pixel_darken( const SDL_Color &color ) std::max( 85 * color.b >> 8, 0x01 ), color.a }; - -} - -inline SDL_Color color_pixel_sepia( const SDL_Color &color ) -{ - if( is_black( color ) ) { - return 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. - */ - - 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( int( round( pow( pv, gammav ) * 150 ) ), 100 ); - - return mix_colors( sepia_dark, sepia_light, finalv ); } SDL_Color curses_color_to_SDL( const nc_color &color ); @@ -152,6 +120,4 @@ SDL_Surface_Ptr create_surface_32( int w, int h ); void render_fill_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, Uint32 r, Uint32 g, Uint32 b ); -SDL_Rect fit_rect_inside( const SDL_Rect &inner, const SDL_Rect &outer ); - #endif // SDL_UTILS_H diff --git a/src/sdl_wrappers.cpp b/src/sdl_wrappers.cpp index e34d76594b78d..5ad6e90f99998 100644 --- a/src/sdl_wrappers.cpp +++ b/src/sdl_wrappers.cpp @@ -51,18 +51,6 @@ void RenderCopy( const SDL_Renderer_Ptr &renderer, const SDL_Texture_Ptr &textur "SDL_RenderCopy failed" ); } -SDL_Texture_Ptr CreateTexture( const SDL_Renderer_Ptr &renderer, Uint32 format, int access, - int w, int h ) -{ - if( !renderer ) { - dbg( D_ERROR ) << "Tried to create texture with a null renderer"; - return SDL_Texture_Ptr(); - } - SDL_Texture_Ptr result( SDL_CreateTexture( renderer.get(), format, access, w, h ) ); - printErrorIf( !result, "SDL_CreateTexture failed" ); - return result; -} - SDL_Texture_Ptr CreateTextureFromSurface( const SDL_Renderer_Ptr &renderer, const SDL_Surface_Ptr &surface ) { @@ -113,16 +101,6 @@ void FillRect( const SDL_Surface_Ptr &surface, const SDL_Rect *const rect, Uint3 printErrorIf( SDL_FillRect( surface.get(), rect, color ) != 0, "SDL_FillRect failed" ); } -void SetTextureBlendMode( const SDL_Texture_Ptr &texture, SDL_BlendMode blendMode ) -{ - if( !texture ) { - dbg( D_ERROR ) << "Tried to use a null texture"; - } - - throwErrorIf( SDL_SetTextureBlendMode( texture.get(), blendMode ) != 0, - "SDL_SetTextureBlendMode failed" ); -} - bool SetTextureColorMod( const SDL_Texture_Ptr &texture, Uint32 r, Uint32 g, Uint32 b ) { if( !texture ) { diff --git a/src/sdl_wrappers.h b/src/sdl_wrappers.h index ebcd33a2b637f..d891f0b8576fb 100644 --- a/src/sdl_wrappers.h +++ b/src/sdl_wrappers.h @@ -80,15 +80,12 @@ void throwErrorIf( bool condition, const char *message ); /**@{*/ void RenderCopy( const SDL_Renderer_Ptr &renderer, const SDL_Texture_Ptr &texture, const SDL_Rect *srcrect, const SDL_Rect *dstrect ); -SDL_Texture_Ptr CreateTexture( const SDL_Renderer_Ptr &renderer, Uint32 format, int access, - int w, int h ); SDL_Texture_Ptr CreateTextureFromSurface( const SDL_Renderer_Ptr &renderer, const SDL_Surface_Ptr &surface ); void SetRenderDrawColor( const SDL_Renderer_Ptr &renderer, Uint8 r, Uint8 g, Uint8 b, Uint8 a ); void RenderDrawPoint( const SDL_Renderer_Ptr &renderer, int x, int y ); void RenderFillRect( const SDL_Renderer_Ptr &renderer, const SDL_Rect *rect ); void FillRect( const SDL_Surface_Ptr &surface, const SDL_Rect *rect, Uint32 color ); -void SetTextureBlendMode( const SDL_Texture_Ptr &texture, SDL_BlendMode blendMode ); bool SetTextureColorMod( const SDL_Texture_Ptr &texture, Uint32 r, Uint32 g, Uint32 b ); void SetRenderDrawBlendMode( const SDL_Renderer_Ptr &renderer, SDL_BlendMode blendMode ); void GetRenderDrawBlendMode( const SDL_Renderer_Ptr &renderer, SDL_BlendMode &blend_mode ); diff --git a/src/sdlsound.cpp b/src/sdlsound.cpp index a12b53c4eced5..2a85b9cd29c90 100644 --- a/src/sdlsound.cpp +++ b/src/sdlsound.cpp @@ -378,7 +378,7 @@ static const sound_effect *find_random_effect( const std::string &id, const std: bool sfx::has_variant_sound( const std::string &id, const std::string &variant ) { - return find_random_effect( id, variant ) != nullptr; + return find_random_effect( id, variant ) != nullptr ? true : false; } // Deletes the dynamically created chunk (if such a chunk had been played). diff --git a/src/sdltiles.cpp b/src/sdltiles.cpp index 24a580aabf66e..deec7ec00b2e2 100644 --- a/src/sdltiles.cpp +++ b/src/sdltiles.cpp @@ -24,12 +24,8 @@ #if defined(_MSC_VER) && defined(USE_VCPKG) # include -# include #else # include -#ifdef _WIN32 -# include -#endif #endif #include "avatar.h" @@ -95,7 +91,7 @@ static uint32_t interval = 25; static bool needupdate = false; // used to replace SDL_RenderFillRect with a more efficient SDL_RenderCopy -SDL_Texture_Ptr alt_rect_tex = nullptr; +SDL_Texture_Ptr alt_rect_tex = NULL; bool alt_rect_tex_enabled = false; std::array::COLOR_NAMES_COUNT> windowsPalette; @@ -250,7 +246,7 @@ static void generate_alt_rect_texture() SDL_Surface_Ptr alt_surf( SDL_CreateRGBSurface( 0, 1, 1, 32, rmask, gmask, bmask, amask ) ); if( alt_surf ) { - FillRect( alt_surf, nullptr, SDL_MapRGB( alt_surf->format, 255, 255, 255 ) ); + FillRect( alt_surf, NULL, SDL_MapRGB( alt_surf->format, 255, 255, 255 ) ); alt_rect_tex.reset( SDL_CreateTextureFromSurface( renderer.get(), alt_surf.get() ) ); alt_surf.reset(); @@ -271,7 +267,7 @@ void draw_alt_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, Uint32 r, Uint32 g, Uint32 b ) { SetTextureColorMod( alt_rect_tex, r, g, b ); - RenderCopy( renderer, alt_rect_tex, nullptr, &rect ); + RenderCopy( renderer, alt_rect_tex, NULL, &rect ); } static bool operator==( const cata_cursesport::WINDOW *const lhs, const catacurses::window &rhs ) @@ -298,7 +294,7 @@ static void InitSDL() // https://bugzilla.libsdl.org/show_bug.cgi?id=3472#c5 if( SDL_COMPILEDVERSION == SDL_VERSIONNUM( 2, 0, 5 ) ) { const char *xmod = getenv( "XMODIFIERS" ); - if( xmod && strstr( xmod, "@im=ibus" ) != nullptr ) { + if( xmod && strstr( xmod, "@im=ibus" ) != NULL ) { setenv( "XMODIFIERS", "@im=none", 1 ); } } @@ -509,7 +505,7 @@ static void WinCreate() "SDL_JoystickEventState(SDL_ENABLE) failed" ); } } else { - joystick = nullptr; + joystick = NULL; } // Set up audio mixer. @@ -537,7 +533,7 @@ static void WinDestroy() SDL_JoystickClose( joystick ); alt_rect_tex.reset(); - joystick = nullptr; + joystick = 0; } format.reset(); display_buffer.reset(); @@ -604,7 +600,7 @@ SDL_Texture_Ptr CachedTTFFont::create_glyph( const std::string &ch, const int co SDL_Surface_Ptr sglyph( function( font.get(), ch.c_str(), windowsPalette[color] ) ); if( !sglyph ) { dbg( D_ERROR ) << "Failed to create glyph for " << ch << ": " << TTF_GetError(); - return nullptr; + return NULL; } /* SDL interprets each pixel as a 32-bit number, so our masks must depend on the endianness (byte order) of the machine */ @@ -652,7 +648,7 @@ SDL_Texture_Ptr CachedTTFFont::create_glyph( const std::string &ch, const int co void CachedTTFFont::OutputChar( const std::string &ch, const int x, const int y, const unsigned char color ) { - key_t key {ch, static_cast( color & 0xf )}; + key_t key {std::move( ch ), static_cast( color & 0xf )}; auto it = glyph_cache_map.find( key ); if( it == std::end( glyph_cache_map ) ) { @@ -800,7 +796,7 @@ void refresh_display() // Select default target (the window), copy rendered buffer // there, present it, select the buffer as target again. - SetRenderTarget( renderer, nullptr ); + SetRenderTarget( renderer, NULL ); #if defined(__ANDROID__) SDL_Rect dstrect = get_android_render_rect( TERMINAL_WIDTH * fontwidth, TERMINAL_HEIGHT * fontheight ); @@ -808,7 +804,7 @@ void refresh_display() RenderClear( renderer ); RenderCopy( renderer, display_buffer, NULL, &dstrect ); #else - RenderCopy( renderer, display_buffer, nullptr, nullptr ); + RenderCopy( renderer, display_buffer, NULL, NULL ); #endif #if defined(__ANDROID__) draw_terminal_size_preview(); @@ -847,8 +843,8 @@ static void find_videodisplays() } int current_display = get_option( "DISPLAY" ); - get_options().add( "DISPLAY", "graphics", translate_marker( "Display" ), - translate_marker( "Sets which video display will be used to show the game. Requires restart." ), + get_options().add( "DISPLAY", "graphics", _( "Display" ), + _( "Sets which video display will be used to show the game. Requires restart." ), displays, current_display, 0, options_manager::COPT_CURSES_HIDE, true ); } @@ -965,8 +961,8 @@ static void invalidate_framebuffer_proportion( cata_cursesport::WINDOW *win ) } // track the dimensions for conversion - const int termpixel_x = win->pos.x * font->fontwidth; - const int termpixel_y = win->pos.y * font->fontheight; + const int termpixel_x = win->x * font->fontwidth; + const int termpixel_y = win->y * font->fontheight; const int termpixel_x2 = termpixel_x + win->width * font->fontwidth - 1; const int termpixel_y2 = termpixel_y + win->height * font->fontheight - 1; @@ -1008,7 +1004,7 @@ void cata_cursesport::handle_additional_window_clear( WINDOW *win ) void clear_window_area( const catacurses::window &win_ ) { cata_cursesport::WINDOW *const win = win_.get(); - FillRectDIB( win->pos.x * fontwidth, win->pos.y * fontheight, + FillRectDIB( win->x * fontwidth, win->y * fontheight, win->width * fontwidth, win->height * fontheight, catacurses::black ); } @@ -1030,9 +1026,9 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) // game::w_terrain can be drawn by the tilecontext. // skip the normal drawing code for it. tilecontext->draw( - win->pos.x * fontwidth, - win->pos.y * fontheight, - g->ter_view_p, + win->x * fontwidth, + win->y * fontheight, + tripoint( g->ter_view_x, g->ter_view_y, g->ter_view_z ), TERRAIN_WINDOW_TERM_WIDTH * font->fontwidth, TERRAIN_WINDOW_TERM_HEIGHT * font->fontheight, overlay_strings, @@ -1082,8 +1078,8 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) } for( size_t i = 0; i < text.display_width(); ++i ) { - const int x0 = win->pos.x * fontwidth; - const int y0 = win->pos.y * fontheight; + const int x0 = win->x * fontwidth; + const int y0 = win->y * fontheight; const int x = x0 + ( x_offset - alignment_offset + i ) * map_font->fontwidth + coord.x; const int y = y0 + coord.y; @@ -1101,8 +1097,8 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) x_offset = text.display_width(); } - invalidate_framebuffer( terminal_framebuffer, win->pos.x, win->pos.y, - TERRAIN_WINDOW_TERM_WIDTH, TERRAIN_WINDOW_TERM_HEIGHT ); + invalidate_framebuffer( terminal_framebuffer, win->x, win->y, TERRAIN_WINDOW_TERM_WIDTH, + TERRAIN_WINDOW_TERM_HEIGHT ); update = true; } else if( g && w == g->w_terrain && map_font ) { @@ -1117,17 +1113,14 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) map_font->fontheight, 0 ); //Gap between terrain and lower window edge if( partial_height > 0 ) { - FillRectDIB( win->pos.x * map_font->fontwidth, - ( win->pos.y + TERRAIN_WINDOW_HEIGHT ) * map_font->fontheight, + FillRectDIB( win->x * map_font->fontwidth, + ( win->y + TERRAIN_WINDOW_HEIGHT ) * map_font->fontheight, TERRAIN_WINDOW_WIDTH * map_font->fontwidth + partial_width, partial_height, catacurses::black ); } //Gap between terrain and sidebar if( partial_width > 0 ) { - FillRectDIB( ( win->pos.x + TERRAIN_WINDOW_WIDTH ) * map_font->fontwidth, - win->pos.y * map_font->fontheight, - partial_width, - TERRAIN_WINDOW_HEIGHT * map_font->fontheight + partial_height, - catacurses::black ); + FillRectDIB( ( win->x + TERRAIN_WINDOW_WIDTH ) * map_font->fontwidth, win->y * map_font->fontheight, + partial_width, TERRAIN_WINDOW_HEIGHT * map_font->fontheight + partial_height, catacurses::black ); } // Special font for the terrain window update = map_font->draw_window( w ); @@ -1138,14 +1131,14 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) // 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; + int offsetx = win->x * map_font->fontwidth; + int offsety = win->y * map_font->fontheight; update = map_font->draw_window( w, offsetx, offsety ); } else if( g && w == g->w_blackspace ) { // fill-in black space window skips draw code // so as not to confuse framebuffer any more than necessary - int offsetx = win->pos.x * font->fontwidth; - int offsety = win->pos.y * font->fontheight; + int offsetx = win->x * font->fontwidth; + int offsety = win->y * font->fontheight; int wwidth = win->width * font->fontwidth; int wheight = win->height * font->fontheight; FillRectDIB( offsetx, offsety, wwidth, wheight, catacurses::black ); @@ -1159,8 +1152,8 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) // Make sure the entire minimap window is black before drawing. clear_window_area( w ); tilecontext->draw_minimap( - win->pos.x * fontwidth, win->pos.y * fontheight, - tripoint( g->u.pos().xy(), g->ter_view_p.z ), + win->x * fontwidth, win->y * fontheight, + tripoint( g->u.pos().x, g->u.pos().y, g->ter_view_z ), win->width * font->fontwidth, win->height * font->fontheight ); update = true; @@ -1178,7 +1171,7 @@ bool Font::draw_window( const catacurses::window &w ) cata_cursesport::WINDOW *const win = w.get(); // Use global font sizes here to make this independent of the // font used for this window. - return draw_window( w, win->pos.x * ::fontwidth, win->pos.y * ::fontheight ); + return draw_window( w, win->x * ::fontwidth, win->y * ::fontheight ); } bool Font::draw_window( const catacurses::window &w, const int offsetx, const int offsety ) @@ -1246,7 +1239,7 @@ bool Font::draw_window( const catacurses::window &w, const int offsetx, const in continue; } - const int fby = win->pos.y + j; + const int fby = win->y + j; if( fby >= static_cast( framebuffer.size() ) ) { // prevent indexing outside the frame buffer. This might happen for some parts of the window. FIX #28953. break; @@ -1255,7 +1248,7 @@ bool Font::draw_window( const catacurses::window &w, const int offsetx, const in update = true; win->line[j].touched = false; for( int i = 0; i < win->width; i++ ) { - const int fbx = win->pos.x + i; + const int fbx = win->x + i; if( fbx >= static_cast( framebuffer[fby].chars.size() ) ) { // prevent indexing outside the frame buffer. This might happen for some parts of the window. break; @@ -3159,7 +3152,7 @@ static void font_folder_list( std::ostream &fout, const std::string &path, // Add font family char *fami = TTF_FontFaceFamilyName( fnt.get() ); - if( fami != nullptr ) { + if( fami != NULL ) { fout << fami; } else { continue; @@ -3168,7 +3161,7 @@ static void font_folder_list( std::ostream &fout, const std::string &path, // Add font style char *style = TTF_FontFaceStyleName( fnt.get() ); bool isbitmap = ends_with( f, ".fon" ); - if( style != nullptr && !isbitmap && strcasecmp( style, "Regular" ) != 0 ) { + if( style != NULL && !isbitmap && strcasecmp( style, "Regular" ) != 0 ) { fout << " " << style; } if( isbitmap ) { @@ -3285,13 +3278,13 @@ static int test_face_size( const std::string &f, int size, int faceIndex ) const TTF_Font_Ptr fnt( TTF_OpenFontIndex( f.c_str(), size, faceIndex ) ); if( fnt ) { char *style = TTF_FontFaceStyleName( fnt.get() ); - if( style != nullptr ) { + if( style != NULL ) { int faces = TTF_FontFaces( fnt.get() ); for( int i = faces - 1; i >= 0; i-- ) { const TTF_Font_Ptr tf( TTF_OpenFontIndex( f.c_str(), size, i ) ); - char *ts = nullptr; + char *ts = NULL; if( tf ) { - if( nullptr != ( ts = TTF_FontFaceStyleName( tf.get() ) ) ) { + if( NULL != ( ts = TTF_FontFaceStyleName( tf.get() ) ) ) { if( 0 == strcasecmp( ts, style ) && TTF_FontHeight( tf.get() ) <= size ) { return i; } @@ -3444,7 +3437,7 @@ void catacurses::init_interface() WinCreate(); dbg( D_INFO ) << "Initializing SDL Tiles context"; - tilecontext = std::make_unique( renderer ); + tilecontext.reset( new cata_tiles( renderer ) ); try { tilecontext->load_tileset( get_option( "TILES" ), true ); } catch( const std::exception &err ) { @@ -3470,7 +3463,7 @@ void catacurses::init_interface() fl.fontblending ); overmap_font = Font::load_font( fl.overmap_typeface, fl.overmap_fontsize, fl.overmap_fontwidth, fl.overmap_fontheight, fl.fontblending ); - stdscr = newwin( get_terminal_height(), get_terminal_width(), point_zero ); + stdscr = newwin( get_terminal_height(), get_terminal_width(), 0, 0 ); //newwin calls `new WINDOW`, and that will throw, but not return nullptr. #if defined(__ANDROID__) @@ -3528,10 +3521,14 @@ template<> SDL_Color color_loader::from_rgb( const int r, const int g, const int b ) { SDL_Color result; - result.b = b; //Blue - result.g = g; //Green - result.r = r; //Red - result.a = 0xFF; // Opaque + //Blue + result.b = b; + //Green + result.g = g; + //Red + result.r = r; + //The Alpha, is not used, so just set it to 0 + result.a = 0; return result; } @@ -3581,7 +3578,7 @@ input_event input_manager::get_input_event() } if( last_input.type == CATA_INPUT_MOUSE ) { - SDL_GetMouseState( &last_input.mouse_pos.x, &last_input.mouse_pos.y ); + SDL_GetMouseState( &last_input.mouse_x, &last_input.mouse_y ); } else if( last_input.type == CATA_INPUT_KEYBOARD ) { previously_pressed_key = last_input.get_first_input(); #if defined(__ANDROID__) @@ -3599,7 +3596,7 @@ input_event input_manager::get_input_event() bool gamepad_available() { - return joystick != nullptr; + return joystick != NULL; } void rescale_tileset( int size ) @@ -3641,38 +3638,45 @@ cata::optional input_context::get_coordinates( const catacurses::windo // Translate mouse coordinates to map coordinates based on tile size, // the window position is *always* in standard font dimensions! - const point win_min( capture_win->pos.x * fontwidth, capture_win->pos.y * fontheight ); + const int win_left = capture_win->x * fontwidth; + const int win_top = capture_win->y * fontheight; // But the size of the window is in the font dimensions of the window. - const point win_size( capture_win->width * fw, capture_win->height * fh ); - const point win_max = win_min + win_size; + const int win_right = win_left + ( capture_win->width * fw ); + const int win_bottom = win_top + ( capture_win->height * fh ); // add_msg( m_info, "win_ left %d top %d right %d bottom %d", win_left,win_top,win_right,win_bottom); // add_msg( m_info, "coordinate_ x %d y %d", coordinate_x, coordinate_y); // Check if click is within bounds of the window we care about - const rectangle win_bounds( win_min, win_max ); - if( !win_bounds.contains_inclusive( coordinate ) ) { + if( coordinate_x < win_left || coordinate_x > win_right || + coordinate_y < win_top || coordinate_y > win_bottom ) { return cata::nullopt; } - point view_offset; + int view_offset_x = 0; + int view_offset_y = 0; if( capture_win == g->w_terrain ) { - view_offset = g->ter_view_p.xy(); + view_offset_x = g->ter_view_x; + view_offset_y = g->ter_view_y; } - const point screen_pos = coordinate - win_min; - point p; + int x, y; if( tile_iso && use_tiles ) { - const float win_mid_x = win_min.x + win_size.x / 2.0f; - const float win_mid_y = -win_min.y + win_size.y / 2.0f; - const int screen_col = round( ( screen_pos.x - win_mid_x ) / ( fw / 2.0 ) ); - const int screen_row = round( ( screen_pos.y - win_mid_y ) / ( fw / 4.0 ) ); - const point selected( ( screen_col - screen_row ) / 2, ( screen_row + screen_col ) / 2 ); - p = view_offset + selected; + const int screen_column = round( static_cast( coordinate_x - win_left - ( ( + win_right - win_left ) / 2 + win_left ) ) / ( fw / 2 ) ); + const int screen_row = round( static_cast( coordinate_y - win_top - + ( win_bottom - win_top ) / 2 + win_top ) / ( fw / 4 ) ); + const int selected_x = ( screen_column - screen_row ) / 2; + const int selected_y = ( screen_row + screen_column ) / 2; + x = view_offset_x + selected_x; + y = view_offset_y + selected_y; } else { - const point selected( screen_pos.x / fw, screen_pos.y / fh ); - p = view_offset + selected - point( capture_win->width / 2, capture_win->height / 2 ); + const int selected_column = ( coordinate_x - win_left ) / fw; + const int selected_row = ( coordinate_y - win_top ) / fh; + + x = view_offset_x + selected_column - capture_win->width / 2; + y = view_offset_y + selected_row - capture_win->height / 2; } - return tripoint( p, g->get_levz() ); + return tripoint( x, y, g->get_levz() ); } int get_terminal_width() @@ -3912,14 +3916,4 @@ bool save_screenshot( const std::string &file_path ) return true; } -#ifdef _WIN32 -HWND getWindowHandle() -{ - SDL_SysWMinfo info; - SDL_VERSION( &info.version ); - SDL_GetWindowWMInfo( ::window.get(), &info ); - return info.info.win.window; -} -#endif - #endif // TILES diff --git a/src/simple_pathfinding.h b/src/simple_pathfinding.h index 650402d76caa9..951138e916ae7 100644 --- a/src/simple_pathfinding.h +++ b/src/simple_pathfinding.h @@ -7,7 +7,6 @@ #include #include "enums.h" -#include "point.h" namespace pf { @@ -15,12 +14,14 @@ namespace pf static const int rejected = std::numeric_limits::min(); struct node { - point pos; + int x; + int y; int dir; int priority; - node( const point &p, int dir, int priority = 0 ) : - pos( p ), + node( int x, int y, int dir, int priority = 0 ) : + x( x ), + y( y ), dir( dir ), priority( priority ) {} @@ -28,6 +29,10 @@ struct node { bool operator< ( const node &n ) const { return priority > n.priority; } + + point pos() const { + return point( x, y ); + } }; struct path { @@ -50,14 +55,15 @@ path find_path( const point &source, const int max_y, BinaryPredicate estimator ) { - static constexpr point d[4] = { point_north, point_east, point_south, point_west }; + static const int dx[4] = { 0, 1, 0, -1 }; + static const int dy[4] = { -1, 0, 1, 0 }; - const auto inbounds = [ max_x, max_y ]( const point & p ) { - return p.x >= 0 && p.x < max_x && p.y >= 0 && p.y <= max_y; + const auto inbounds = [ max_x, max_y ]( const int x, const int y ) { + return x >= 0 && x < max_x && y >= 0 && y <= max_y; }; - const auto map_index = [ max_x ]( const point & p ) { - return p.y * max_x + p.x; + const auto map_index = [ max_x ]( const int x, const int y ) { + return y * max_x + x; }; path res; @@ -66,11 +72,16 @@ path find_path( const point &source, return res; } - if( !inbounds( source ) || !inbounds( dest ) ) { + const int x1 = source.x; + const int y1 = source.y; + const int x2 = dest.x; + const int y2 = dest.y; + + if( !inbounds( x1, y1 ) || !inbounds( x2, y2 ) ) { return res; } - const node first_node( source, 5, 1000 ); + const node first_node( x1, y1, 5, 1000 ); if( estimator( first_node, nullptr ) == rejected ) { return res; @@ -85,7 +96,7 @@ path find_path( const point &source, int i = 0; nodes[i].push( first_node ); - open[map_index( source )] = std::numeric_limits::max(); + open[map_index( x1, y1 )] = std::numeric_limits::max(); // use A* to find the shortest path from (x1,y1) to (x2,y2) while( !nodes[i].empty() ) { @@ -93,37 +104,40 @@ path find_path( const point &source, nodes[i].pop(); // mark it visited - closed[map_index( mn.pos )] = true; + closed[map_index( mn.x, mn.y )] = true; // if we've reached the end, draw the path and return - if( mn.pos == dest ) { - point p = mn.pos; + if( mn.x == x2 && mn.y == y2 ) { + int x = mn.x; + int y = mn.y; res.nodes.reserve( nodes[i].size() ); - while( p != source ) { - const int n = map_index( p ); - const int dir = dirs[n]; - res.nodes.emplace_back( p, dir ); - p += d[dir]; + while( x != x1 || y != y1 ) { + const int n = map_index( x, y ); + const int d = dirs[n]; + res.nodes.emplace_back( x, y, d ); + x += dx[d]; + y += dy[d]; } - res.nodes.emplace_back( p, -1 ); + res.nodes.emplace_back( x, y, -1 ); return res; } - for( int dir = 0; dir < 4; dir++ ) { - const point p = mn.pos + d[dir]; - const int n = map_index( p ); + for( int d = 0; d < 4; d++ ) { + const int x = mn.x + dx[d]; + const int y = mn.y + dy[d]; + const int n = map_index( x, y ); // don't allow: // * out of bounds // * already traversed tiles - if( p.x < 1 || p.x + 1 >= max_x || p.y < 1 || p.y + 1 >= max_y || closed[n] ) { + if( x < 1 || x + 1 >= max_x || y < 1 || y + 1 >= max_y || closed[n] ) { continue; } - node cn( p, dir ); + node cn( x, y, d ); cn.priority = estimator( cn, &mn ); if( cn.priority == rejected ) { @@ -131,10 +145,10 @@ path find_path( const point &source, } // record direction to shortest path if( open[n] == 0 || open[n] > cn.priority ) { - dirs[n] = ( dir + 2 ) % 4; + dirs[n] = ( d + 2 ) % 4; if( open[n] != 0 ) { - while( nodes[i].top().pos != p ) { + while( nodes[i].top().x != x || nodes[i].top().y != y ) { nodes[1 - i].push( nodes[i].top() ); nodes[i].pop(); } @@ -162,7 +176,8 @@ inline path straight_path( const point &source, int dir, size_t len ) { - static constexpr point d[4] = { point_north, point_east, point_south, point_west }; + static const int dx[4] = { 0, 1, 0, -1 }; + static const int dy[4] = { -1, 0, 1, 0 }; path res; @@ -170,17 +185,19 @@ inline path straight_path( const point &source, return res; } - point p = source; + int x = source.x; + int y = source.y; res.nodes.reserve( len ); for( size_t i = 0; i + 1 < len; ++i ) { - res.nodes.emplace_back( p, dir ); + res.nodes.emplace_back( x, y, dir ); - p += d[dir]; + x += dx[dir]; + y += dy[dir]; } - res.nodes.emplace_back( p, -1 ); + res.nodes.emplace_back( x, y, -1 ); return res; } diff --git a/src/skill.h b/src/skill.h index 0df5a2860777a..0fc0e1a8ccfbc 100644 --- a/src/skill.h +++ b/src/skill.h @@ -74,7 +74,7 @@ class SkillLevel { int _level = 0; int _exercise = 0; - time_point _lastPracticed = calendar::turn_zero; + time_point _lastPracticed = calendar::time_of_cataclysm; bool _isTraining = true; int _highestLevel = 0; diff --git a/src/skill_boost.cpp b/src/skill_boost.cpp index b2bc7256a7f35..b895144efeb40 100644 --- a/src/skill_boost.cpp +++ b/src/skill_boost.cpp @@ -17,7 +17,7 @@ const std::vector &skill_boost::get_all() return all_skill_boosts.get_all(); } -cata::optional skill_boost::get( const std::string &stat_str ) +const cata::optional skill_boost::get( const std::string &stat_str ) { for( const skill_boost &boost : get_all() ) { if( boost.stat() == stat_str ) { diff --git a/src/skill_boost.h b/src/skill_boost.h index 9428834360d79..d8a21b4d829dd 100644 --- a/src/skill_boost.h +++ b/src/skill_boost.h @@ -25,7 +25,7 @@ class skill_boost static void reset(); static const std::vector &get_all(); - static cata::optional get( const std::string &stat_str ); + static const cata::optional get( const std::string &stat_str ); private: friend class generic_factory; diff --git a/src/sounds.cpp b/src/sounds.cpp index abd3a9e256a11..1d5740dc2cc02 100644 --- a/src/sounds.cpp +++ b/src/sounds.cpp @@ -246,9 +246,9 @@ void sounds::process_sounds() int sig_power = get_signal_for_hordes( this_centroid ); if( sig_power > 0 ) { - const point abs_ms = g->m.getabs( source.xy() ); + const point abs_ms = g->m.getabs( source.x, source.y ); const point abs_sm = ms_to_sm_copy( abs_ms ); - const tripoint target( abs_sm, source.z ); + const tripoint target( abs_sm.x, abs_sm.y, source.z ); overmap_buffer.signal_hordes( target, sig_power ); } // Alert all monsters (that can hear) to the sound. @@ -264,43 +264,14 @@ void sounds::process_sounds() recent_sounds.clear(); } -// skip some sounds to avoid message spam -static bool describe_sound( sounds::sound_t category, bool from_player_position ) +// skip most movement sounds +static bool describe_sound( sounds::sound_t category ) { - if( from_player_position ) { - switch( category ) { - case sounds::sound_t::background: - case sounds::sound_t::weather: - case sounds::sound_t::music: // detailed music descriptions are printed in iuse::play_music - case sounds::sound_t::movement: - case sounds::sound_t::activity: - case sounds::sound_t::destructive_activity: - case sounds::sound_t::combat: - return false; - case sounds::sound_t::speech: // radios also produce speech sound - case sounds::sound_t::alarm: - case sounds::sound_t::alert: - case sounds::sound_t::order: - return true; - } - } else { - switch( category ) { - case sounds::sound_t::background: - case sounds::sound_t::weather: - case sounds::sound_t::music: - case sounds::sound_t::movement: - case sounds::sound_t::activity: - case sounds::sound_t::destructive_activity: - return one_in( 100 ); - case sounds::sound_t::speech: - case sounds::sound_t::alarm: - case sounds::sound_t::combat: - case sounds::sound_t::alert: - case sounds::sound_t::order: - return true; - } + if( category == sounds::sound_t::combat || category == sounds::sound_t::speech || + category == sounds::sound_t::alert ) { + return true; } - return true; + return one_in( 5 ); } void sounds::process_sound_markers( player *p ) @@ -396,8 +367,10 @@ void sounds::process_sound_markers( player *p ) } } - // skip some sounds to avoid message spam - if( describe_sound( sound.category, pos == p->pos() ) ) { + // skip most movement sounds and our own sounds + // unless our own sound is an alarm + if( ( pos != p->pos() || ( pos == p->pos() && sound.category == sound_t::alarm ) ) && + describe_sound( sound.category ) ) { game_message_type severity = m_info; if( sound.category == sound_t::combat || sound.category == sound_t::alarm ) { severity = m_warning; @@ -628,7 +601,7 @@ void sfx::do_vehicle_engine_sfx() float pitch = 1.0f; int safe_speed = veh->safe_velocity(); int current_gear; - if( in_reverse ) { + if( in_reverse == true ) { current_gear = -1; } else if( current_speed == 0 ) { current_gear = 0; @@ -815,12 +788,12 @@ void sfx::do_ambient() const bool is_sheltered = g->is_sheltered( g->u.pos() ); const bool weather_changed = g->weather.weather != previous_weather; // Step in at night time / we are not indoors - if( is_night( calendar::turn ) && !is_sheltered && + if( calendar::turn.is_night() && !is_sheltered && !is_channel_playing( 1 ) && !is_deaf ) { fade_audio_group( 2, 1000 ); play_ambient_variant_sound( "environment", "nighttime", heard_volume, 1, 1000 ); // Step in at day time / we are not indoors - } else if( !is_night( calendar::turn ) && !is_channel_playing( 0 ) && + } else if( !calendar::turn.is_night() && !is_channel_playing( 0 ) && !is_sheltered && !is_deaf ) { fade_audio_group( 2, 1000 ); play_ambient_variant_sound( "environment", "daytime", heard_volume, 0, 1000 ); diff --git a/src/start_location.cpp b/src/start_location.cpp index e69f601e3e0bd..ac68885bf648f 100644 --- a/src/start_location.cpp +++ b/src/start_location.cpp @@ -228,9 +228,9 @@ tripoint start_location::find_player_initial_location() const void start_location::prepare_map( const tripoint &omtstart ) const { // Now prepare the initial map (change terrain etc.) - const point player_location = omt_to_sm_copy( omtstart.xy() ); + const point player_location = omt_to_sm_copy( omtstart.x, omtstart.y ); tinymap player_start; - player_start.load( tripoint( player_location, omtstart.z ), false ); + player_start.load( player_location.x, player_location.y, omtstart.z, false ); prepare_map( player_start ); player_start.save(); } @@ -367,7 +367,7 @@ void start_location::burn( const tripoint &omtstart, { const tripoint player_location = omt_to_sm_copy( omtstart ); tinymap m; - m.load( player_location, false ); + m.load( player_location.x, player_location.y, player_location.z, false ); m.build_outside_cache( m.get_abs_sub().z ); const int ux = g->u.posx() % HALF_MAPSIZE_X; const int uy = g->u.posy() % HALF_MAPSIZE_Y; @@ -399,7 +399,7 @@ void start_location::add_map_extra( const tripoint &omtstart, { const tripoint player_location = omt_to_sm_copy( omtstart ); tinymap m; - m.load( player_location, false ); + m.load( player_location.x, player_location.y, player_location.z, false ); MapExtras::apply_function( map_extra, m, player_location ); @@ -410,7 +410,7 @@ void start_location::handle_heli_crash( player &u ) const { for( int i = 2; i < num_hp_parts; i++ ) { // Skip head + torso for balance reasons. const auto part = static_cast( i ); - const auto bp_part = player::hp_to_bp( part ); + const auto bp_part = u.hp_to_bp( part ); const int roll = static_cast( rng( 1, 8 ) ); switch( roll ) { // Damage + Bleed @@ -439,9 +439,9 @@ static void add_monsters( const tripoint &omtstart, const mongroup_id &type, flo { const tripoint spawn_location = omt_to_sm_copy( omtstart ); tinymap m; - m.load( spawn_location, false ); + m.load( spawn_location.x, spawn_location.y, spawn_location.z, false ); // map::place_spawns internally multiplies density by rng(10, 50) - const float density = expected_points / ( ( 10 + 50 ) / 2.0 ); + const float density = expected_points / ( ( 10 + 50 ) / 2 ); m.place_spawns( type, 1, 0, 0, SEEX * 2 - 1, SEEY * 2 - 1, density ); m.save(); } diff --git a/src/string_formatter.h b/src/string_formatter.h index 0acfb14f2888d..e6fbb66b22e30 100644 --- a/src/string_formatter.h +++ b/src/string_formatter.h @@ -133,13 +133,10 @@ template inline typename std::enable_if < std::is_pointer::type>::value || is_numeric::value || is_string::value || is_char::value || std::is_enum::type>::value || -is_cstring::value, RT >::type -// NOLINTNEXTLINE(cert-dcl50-cpp) -convert( RT *, const string_formatter &sf, T &&, ... ) +is_cstring::value, RT >::type convert( RT *, const string_formatter &sf, T &&, ... ) { - throw_error( sf, "Tried to convert argument of type " + - std::string( typeid( T ).name() ) + " to " + - std::string( typeid( RT ).name() ) + ", which is not possible" ); + throw_error( sf, "Tried to convert argument of type " + std::string( typeid( + T ).name() ) + " to " + std::string( typeid( RT ).name() ) + ", which is not possible" ); } /**@}*/ diff --git a/src/string_input_popup.cpp b/src/string_input_popup.cpp index b3a7eb82383bf..f047ceb3eb5d2 100644 --- a/src/string_input_popup.cpp +++ b/src/string_input_popup.cpp @@ -4,9 +4,7 @@ #include "catacharset.h" #include "compatibility.h" // needed for the workaround for the std::to_string bug in some compilers -#include "ime.h" #include "input.h" -#include "optional.h" #include "output.h" #include "ui.h" #include "uistate.h" @@ -20,7 +18,6 @@ #include #include -#include #include string_input_popup::string_input_popup() = default; @@ -79,7 +76,7 @@ void string_input_popup::create_window() const int w_y = ( TERMY - w_height ) / 2; const int w_x = std::max( ( TERMX - w_width ) / 2, 0 ); - w = catacurses::newwin( w_height, w_width, point( w_x, w_y ) ); + w = catacurses::newwin( w_height, w_width, w_y, w_x ); draw_border( w ); @@ -95,7 +92,7 @@ void string_input_popup::create_window() void string_input_popup::create_context() { - ctxt_ptr = std::make_unique( "STRING_INPUT" ); + ctxt_ptr.reset( new input_context( "STRING_INPUT" ) ); ctxt = ctxt_ptr.get(); ctxt->register_action( "ANY_INPUT" ); } @@ -225,7 +222,7 @@ void string_input_popup::draw( const utf8_wrapper &ret, const utf8_wrapper &edit const utf8_wrapper ds( ret.substr_display( shift, scrmax ) ); int start_x_edit = _startx; // Clear the line - mvwprintw( w, point( _startx, _starty ), std::string( std::max( 0, scrmax ), ' ' ) ); + mvwprintw( w, _starty, _startx, std::string( std::max( 0, scrmax ), ' ' ) ); // Print the whole input string in default color mvwprintz( w, _starty, _startx, _string_color, "%s", ds.c_str() ); size_t sx = ds.display_width(); @@ -296,10 +293,11 @@ const std::string &string_input_popup::query_string( const bool loop, const bool if( !ctxt ) { create_context(); } - cata::optional sentry; - if( !draw_only && loop ) { - sentry.emplace(); +#if defined(__ANDROID__) + if( !draw_only && loop && get_option( "ANDROID_AUTO_KEYBOARD" ) ) { + SDL_StartTextInput(); } +#endif utf8_wrapper ret( _text ); utf8_wrapper edit( ctxt->get_edittext() ); if( _position == -1 ) { diff --git a/src/string_input_popup.h b/src/string_input_popup.h index f8124aa849fa8..aae80363c702a 100644 --- a/src/string_input_popup.h +++ b/src/string_input_popup.h @@ -41,7 +41,7 @@ class utf8_wrapper; * ignored and the returned string is never longer than this. * @param only_digits Whether to only allow digits in the string. */ -class string_input_popup // NOLINT(cata-xy) +class string_input_popup { private: std::string _title; diff --git a/src/submap.cpp b/src/submap.cpp index a58b4626103de..09db67d792fd7 100644 --- a/src/submap.cpp +++ b/src/submap.cpp @@ -116,7 +116,7 @@ bool submap::has_signage( const point &p ) const return false; } -std::string submap::get_signage( const point &p ) const +const std::string submap::get_signage( const point &p ) const { if( frn[p.x][p.y].obj().has_flag( "SIGN" ) ) { const auto fresult = find_cosmetic( cosmetics, p, COSMETICS_SIGNAGE ); @@ -148,68 +148,6 @@ void submap::delete_signage( const point &p ) } } -void submap::update_legacy_computer() -{ - if( legacy_computer ) { - for( int x = 0; x < SEEX; ++x ) { - for( int y = 0; y < SEEY; ++y ) { - if( ter[x][y] == t_console ) { - computers.emplace( point( x, y ), *legacy_computer ); - } - } - } - legacy_computer.reset(); - } -} - -bool submap::has_computer( const point &p ) const -{ - return computers.find( p ) != computers.end() || ( legacy_computer && ter[p.x][p.y] == t_console ); -} - -const computer *submap::get_computer( const point &p ) const -{ - // the returned object will not get modified (should not, at least), so we - // don't yet need to update to std::map - const auto it = computers.find( p ); - if( it != computers.end() ) { - return &it->second; - } - if( legacy_computer && ter[p.x][p.y] == t_console ) { - return legacy_computer.get(); - } - return nullptr; -} - -computer *submap::get_computer( const point &p ) -{ - // need to update to std::map first so modifications to the returned object - // only affects the exact point p - update_legacy_computer(); - const auto it = computers.find( p ); - if( it != computers.end() ) { - return &it->second; - } - return nullptr; -} - -void submap::set_computer( const point &p, const computer &c ) -{ - update_legacy_computer(); - const auto it = computers.find( p ); - if( it != computers.end() ) { - it->second = c; - } else { - computers.emplace( p, c ); - } -} - -void submap::delete_computer( const point &p ) -{ - update_legacy_computer(); - computers.erase( p ); -} - bool submap::contains_vehicle( vehicle *veh ) { const auto match = std::find_if( @@ -274,9 +212,10 @@ void submap::rotate( int turns ) } for( auto &elem : vehicles ) { - const auto new_pos = rotate_point( elem->pos ); + const auto new_pos = rotate_point( { elem->posx, elem->posy } ); - elem->pos = new_pos; + elem->posx = new_pos.x; + elem->posy = new_pos.y; // turn the steering wheel, vehicle::turn does not actually // move the vehicle. elem->turn( turns * 90 ); @@ -284,10 +223,4 @@ void submap::rotate( int turns ) elem->face = elem->turn_dir; elem->precalc_mounts( 0, elem->turn_dir, elem->pivot_anchor[0] ); } - - std::map rot_comp; - for( auto &elem : computers ) { - rot_comp.emplace( rotate_point( elem.first ), elem.second ); - } - computers = rot_comp; } diff --git a/src/submap.h b/src/submap.h index cd5691ad86404..1d5e1ac5cc97d 100644 --- a/src/submap.h +++ b/src/submap.h @@ -164,18 +164,12 @@ class submap : public maptile_soa // TODO: Use private inheritanc // Its effect is meant to be cosmetic and atmospheric only. bool has_signage( const point &p ) const; // Dependent on furniture + cosmetics. - std::string get_signage( const point &p ) const; + const std::string get_signage( const point &p ) const; // Can be used anytime (prevents code from needing to place sign first.) void set_signage( const point &p, const std::string &s ); // Can be used anytime (prevents code from needing to place sign first.) void delete_signage( const point &p ); - bool has_computer( const point &p ) const; - const computer *get_computer( const point &p ) const; - computer *get_computer( const point &p ); - void set_computer( const point &p, const computer &c ); - void delete_computer( const point &p ); - bool contains_vehicle( vehicle * ); void rotate( int turns ); @@ -192,7 +186,7 @@ class submap : public maptile_soa // TODO: Use private inheritanc active_item_cache active_items; int field_count = 0; - time_point last_touched = calendar::turn_zero; + time_point last_touched = calendar::time_of_cataclysm; std::vector spawns; /** * Vehicles on this submap (their (0,0) point is on this submap). @@ -201,14 +195,11 @@ class submap : public maptile_soa // TODO: Use private inheritanc */ std::vector> vehicles; std::map partial_constructions; + std::unique_ptr comp; basecamp camp; // only allowing one basecamp per submap private: - std::map computers; - std::unique_ptr legacy_computer; int temperature = 0; - - void update_legacy_computer(); }; /** @@ -289,7 +280,7 @@ struct maptile { return sm->has_signage( pos() ); } - std::string get_signage() const { + const std::string get_signage() const { return sm->get_signage( pos() ); } diff --git a/src/text_snippets.cpp b/src/text_snippets.cpp index a2d18ea46b126..09b211ec1e10f 100644 --- a/src/text_snippets.cpp +++ b/src/text_snippets.cpp @@ -122,7 +122,7 @@ const std::string &snippet_library::random_from_category( const std::string &cat return get( iter->second ); } -std::vector snippet_library::all_ids_from_category( const std::string &cat ) const +const std::vector snippet_library::all_ids_from_category( const std::string &cat ) const { std::vector ret; const auto iters = categories.equal_range( cat ); diff --git a/src/text_snippets.h b/src/text_snippets.h index e7b040ef15f6b..e6a0428558e7c 100644 --- a/src/text_snippets.h +++ b/src/text_snippets.h @@ -32,7 +32,7 @@ class snippet_library bool has_category( const std::string &category ) const; int get_snippet_by_id( const std::string &id ) const; const std::string &random_from_category( const std::string &cat ) const; - std::vector all_ids_from_category( const std::string &cat ) const; + const std::vector all_ids_from_category( const std::string &cat ) const; /** * Load a single snippet text from the json object. The object should have * a "text" member with the text of the snippet. diff --git a/src/tileray.cpp b/src/tileray.cpp index 3ffbf55b07b48..8bfadf17fc18d 100644 --- a/src/tileray.cpp +++ b/src/tileray.cpp @@ -3,13 +3,13 @@ #include #include -#include "line.h" #include "math_defines.h" 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(): deltax( 0 ), deltay( 0 ), leftover( 0 ), direction( 0 ), + last_dx( 0 ), last_dy( 0 ), steps( 0 ), infinite( false ) { } @@ -25,18 +25,21 @@ tileray::tileray( int adir ): direction( adir ) void tileray::init( int adx, int ady ) { - delta.x = adx; - delta.y = ady; - abs_d = abs( delta ); - if( delta == point_zero ) { + deltax = adx; + deltay = ady; + ax = abs( deltax ); + ay = abs( deltay ); + if( !adx && !ady ) { direction = 0; } else { - direction = static_cast( atan2_degrees( delta ) ); + direction = static_cast( atan2( static_cast( deltay ), + static_cast( deltax ) ) * 180.0 / M_PI ); if( direction < 0 ) { direction += 360; } } - last_d = point_zero; + last_dx = 0; + last_dy = 0; steps = 0; infinite = false; } @@ -46,11 +49,12 @@ void tileray::init( int adir ) leftover = 0; // Clamp adir to the range [0, 359] direction = ( adir < 0 ? 360 - ( ( -adir ) % 360 ) : adir % 360 ); - last_d = point_zero; - float direction_radians = static_cast( direction ) * M_PI / 180.0; - rl_vec2d delta_f( cos( direction_radians ), sin( direction_radians ) ); - delta = ( delta_f * 100 ).as_point(); - abs_d = abs( delta ); + last_dx = 0; + last_dy = 0; + deltax = static_cast( cos( static_cast( direction ) * M_PI / 180.0 ) * 100 ); + deltay = static_cast( sin( static_cast( direction ) * M_PI / 180.0 ) * 100 ); + ax = abs( deltax ); + ay = abs( deltay ); steps = 0; infinite = true; } @@ -58,18 +62,19 @@ void tileray::init( int adir ) void tileray::clear_advance() { leftover = 0; - last_d = point_zero; + last_dx = 0; + last_dy = 0; steps = 0; } int tileray::dx() const { - return last_d.x; + return last_dx; } int tileray::dy() const { - return last_d.y; + return last_dy; } int tileray::dir() const @@ -173,12 +178,12 @@ int tileray::ortho_dy( int od ) const bool tileray::mostly_vertical() const { - return abs_d.x <= abs_d.y; + return ax <= ay; } void tileray::advance( int num ) { - last_d = point_zero; + last_dx = last_dy = 0; if( num == 0 ) { return; } @@ -189,33 +194,34 @@ void tileray::advance( int num ) for( int i = 0; i < anum; i++ ) { if( vertical ) { // mostly vertical line - leftover += abs_d.x; - if( leftover >= abs_d.y ) { - last_d.x++; - leftover -= abs_d.y; + leftover += ax; + if( leftover >= ay ) { + last_dx++; + leftover -= ay; } } else { // mostly horizontal line - leftover += abs_d.y; - if( leftover >= abs_d.x ) { - last_d.y++; - leftover -= abs_d.x; + leftover += ay; + if( leftover >= ax ) { + last_dy++; + leftover -= ax; } } } } if( vertical ) { - last_d.y = anum; + last_dy = anum; } else { - last_d.x = anum; + last_dx = anum; } // offset calculated for 0-90 deg quadrant, we need to adjust if direction is other int quadr = ( direction / 90 ) % 4; - last_d.x *= sx[quadr]; - last_d.y *= sy[quadr]; + last_dx *= sx[quadr]; + last_dy *= sy[quadr]; if( num < 0 ) { - last_d = -last_d; + last_dx = -last_dx; + last_dy = -last_dy; } } @@ -224,5 +230,5 @@ bool tileray::end() if( infinite ) { return true; } - return mostly_vertical() ? steps >= abs_d.y - 1 : steps >= abs_d.x - 1; + return mostly_vertical() ? steps >= ay - 1 : steps >= ax - 1; } diff --git a/src/tileray.h b/src/tileray.h index c377a0e1d75e3..3a2faf0df0de8 100644 --- a/src/tileray.h +++ b/src/tileray.h @@ -2,8 +2,6 @@ #ifndef TILERAY_H #define TILERAY_H -#include "point.h" - // Class for calculating tile coordinates // of a point that moves along the ray with given // direction (dir) or delta tile coordinates (dx, dy). @@ -25,11 +23,14 @@ class tileray { private: - point delta; // ray delta + int deltax; // ray delta x + int deltay; // ray delta y int leftover; // counter to shift coordinates - point abs_d; // absolute value of delta + int ax; // absolute value of deltax + int ay; // absolute value of deltay int direction; // ray direction - point last_d; // delta of last advance + int last_dx; // dx of last advance + int last_dy; // dy of last advance int steps; // how many steps we advanced so far bool infinite; // ray is infinite (end will always return true) public: @@ -45,12 +46,10 @@ class tileray int dir() const; // return direction of ray (degrees) int dir4() const; // return 4-sided direction (0 = east, 1 = south, 2 = west, 3 = north) int dir8() const; // return 8-sided direction (0 = east, 1 = southeast, 2 = south ...) - // convert certain symbols from north-facing variant into current dir facing - int dir_symbol( int sym ) const; - // return dx for point at "od" distance in orthogonal direction - int ortho_dx( int od ) const; - // return dy for point at "od" distance in orthogonal direction - int ortho_dy( int od ) const; + int dir_symbol( int sym ) + const; // convert certain symbols from north-facing variant into current dir facing + int ortho_dx( int od ) const; // return dx for point at "od" distance in orthogonal direction + int ortho_dy( int od ) const; // return dy for point at "od" distance in orthogonal direction bool mostly_vertical() const; // return if ray is mostly vertical void advance( int num = 1 ); // move to the next tile (calculate last dx, dy) diff --git a/src/timed_event.h b/src/timed_event.h deleted file mode 100644 index a3a2a6b7820ab..0000000000000 --- a/src/timed_event.h +++ /dev/null @@ -1,69 +0,0 @@ -#pragma once -#ifndef TIMED_EVENT_H -#define TIMED_EVENT_H - -#include - -#include "calendar.h" -#include "point.h" - -enum timed_event_type : int { - TIMED_EVENT_NULL, - TIMED_EVENT_HELP, - TIMED_EVENT_WANTED, - TIMED_EVENT_ROBOT_ATTACK, - TIMED_EVENT_SPAWN_WYRMS, - TIMED_EVENT_AMIGARA, - TIMED_EVENT_ROOTS_DIE, - TIMED_EVENT_TEMPLE_OPEN, - TIMED_EVENT_TEMPLE_FLOOD, - TIMED_EVENT_TEMPLE_SPAWN, - TIMED_EVENT_DIM, - TIMED_EVENT_ARTIFACT_LIGHT, - NUM_TIMED_EVENT_TYPES -}; - -struct timed_event { - timed_event_type type = TIMED_EVENT_NULL; - /** On which turn event should be happening. */ - time_point when = calendar::turn_zero; - /** Which faction is responsible for handling this event. */ - int faction_id = -1; - /** Where the event happens, in global submap coordinates */ - tripoint map_point = tripoint_min; - - timed_event( timed_event_type e_t, const time_point &w, int f_id, tripoint p ); - - // When the time runs out - void actualize(); - // Every turn - void per_turn(); -}; - -class timed_event_manager -{ - private: - std::list events; - - public: - /** - * Add an entry to the event queue. Parameters are basically passed - * through to @ref timed_event::timed_event. - */ - void add( timed_event_type type, const time_point &when, int faction_id = -1 ); - /** - * Add an entry to the event queue. Parameters are basically passed - * through to @ref timed_event::timed_event. - */ - void add( timed_event_type type, const time_point &when, int faction_id, const tripoint &where ); - /// @returns Whether at least one element of the given type is queued. - bool queued( timed_event_type type ) const; - /// @returns One of the queued events of the given type, or `nullptr` - /// if no event of that type is queued. - timed_event *get( timed_event_type type ); - /// Process all queued events, potentially altering the game state and - /// modifying the event queue. - void process(); -}; - -#endif diff --git a/src/translations.h b/src/translations.h index 6117a98da4343..f6b739605b2dd 100644 --- a/src/translations.h +++ b/src/translations.h @@ -125,7 +125,7 @@ class translation /** * Create a deferred translation without context **/ - explicit translation( const std::string &raw ); + translation( const std::string &raw ); /** * Store a string that needs no translation. diff --git a/src/trap.cpp b/src/trap.cpp index da3f2aa7bd5c0..ca9e540deaa98 100644 --- a/src/trap.cpp +++ b/src/trap.cpp @@ -172,12 +172,12 @@ bool trap::detect_trap( const tripoint &pos, const player &p ) const // noticing a buried landmine if standing right next to it. // Effective Perception... ///\EFFECT_PER increases chance of detecting a trap - return p.per_cur - p.encumb( bp_eyes ) / 10 + + return ( p.per_cur - ( p.encumb( bp_eyes ) / 10 ) ) + // ...small bonus from stimulants... ( p.stim > 10 ? rng( 1, 2 ) : 0 ) + // ...bonus from trap skill... ///\EFFECT_TRAPS increases chance of detecting a trap - p.get_skill_level( skill_traps ) * 2 + + ( p.get_skill_level( skill_traps ) * 2 ) + // ...luck, might be good, might be bad... rng( -4, 4 ) - // ...malus if we are tired... @@ -226,7 +226,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 std::string item_type = std::get<0>( i ); const int quantity = std::get<1>( i ); const int charges = std::get<2>( i ); m.spawn_item( p.x, p.y, item_type, quantity, charges ); @@ -285,7 +285,7 @@ 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 ); + std::string 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() ); } diff --git a/src/trapfunc.cpp b/src/trapfunc.cpp index 037dfd024820f..c4e4829afe15c 100644 --- a/src/trapfunc.cpp +++ b/src/trapfunc.cpp @@ -8,7 +8,7 @@ #include "avatar.h" #include "debug.h" #include "explosion.h" -#include "timed_event.h" +#include "event.h" #include "game.h" #include "map.h" #include "map_iterator.h" @@ -321,7 +321,7 @@ void trapfunc::tripwire( const tripoint &p, Creature *c, item * ) if( c == &g->u ) { g->update_map( g->u ); } - if( !n->is_mounted() ) { + if( !n->has_effect( effect_riding ) ) { ///\EFFECT_DEX decreases chance of taking damage from a tripwire trap if( rng( 5, 20 ) > n->dex_cur ) { n->hurtall( rng( 1, 4 ), nullptr ); @@ -1275,7 +1275,7 @@ void trapfunc::temple_flood( const tripoint &p, Creature *c, item * ) } } } - g->timed_events.add( TIMED_EVENT_TEMPLE_FLOOD, calendar::turn + 3_turns ); + g->events.add( EVENT_TEMPLE_FLOOD, calendar::turn + 3_turns ); } } diff --git a/src/tuple_hash.h b/src/tuple_hash.h index 47ef7a15c72ce..3862d1887fd02 100644 --- a/src/tuple_hash.h +++ b/src/tuple_hash.h @@ -1,12 +1,14 @@ #pragma once -#ifndef CATA_TUPLE_HASH_H -#define CATA_TUPLE_HASH_H +#ifndef TUPLE_HASH_H +#define TUPLE_HASH_H // Support for tuple and pair hashing. // This is taken almost directly from the boost library code. // Function has to live in the std namespace // so that it is picked up by argument-dependent name lookup (ADL). -namespace cata +namespace std +{ +namespace { // Code from boost @@ -18,40 +20,40 @@ namespace cata template inline void hash_combine( std::size_t &seed, const T &v ) { - seed ^= std::hash()( v ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 ); + seed ^= hash()( v ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 ); } -namespace tuple_hash_detail -{ - // Recursive template code derived from Matthieu M. template < class Tuple, size_t Index = std::tuple_size::value - 1 > -struct Impl +struct HashValueImpl { static void apply( size_t &seed, const Tuple &tuple ) { - Impl < Tuple, Index - 1 >::apply( seed, tuple ); - hash_combine( seed, std::get( tuple ) ); + HashValueImpl < Tuple, Index - 1 >::apply( seed, tuple ); + hash_combine( seed, get( tuple ) ); } }; template -struct Impl { +struct HashValueImpl { static void apply( size_t &seed, const Tuple &tuple ) { - hash_combine( seed, std::get<0>( tuple ) ); + hash_combine( seed, get<0>( tuple ) ); } }; +} // namespace -} // namespace tuple_hash_detail - -struct tuple_hash { - template - std::size_t operator()( const std::tuple &tt ) const { +template +struct hash> { + size_t + operator()( const std::tuple &tt ) const { size_t seed = 0; - tuple_hash_detail::Impl >::apply( seed, tt ); + HashValueImpl >::apply( seed, tt ); return seed; } - template +}; + +template +struct hash> { std::size_t operator()( const std::pair &v ) const { std::size_t seed = 0; hash_combine( seed, v.first ); @@ -59,7 +61,6 @@ struct tuple_hash { return seed; } }; +} // namespace std -} // namespace cata - -#endif // CATA_TUPLE_HASH_H +#endif diff --git a/src/turret.cpp b/src/turret.cpp index 06bb7ed22744a..81e81219f13ae 100644 --- a/src/turret.cpp +++ b/src/turret.cpp @@ -58,7 +58,7 @@ turret_data vehicle::turret_query( vehicle_part &pt ) return turret_data( this, &pt ); } -turret_data vehicle::turret_query( const vehicle_part &pt ) const +const turret_data vehicle::turret_query( const vehicle_part &pt ) const { return const_cast( this )->turret_query( const_cast( pt ) ); } @@ -69,7 +69,7 @@ turret_data vehicle::turret_query( const tripoint &pos ) return !res.empty() ? turret_query( *res.front() ) : turret_data(); } -turret_data vehicle::turret_query( const tripoint &pos ) const +const turret_data vehicle::turret_query( const tripoint &pos ) const { return const_cast( this )->turret_query( pos ); } @@ -84,7 +84,7 @@ item_location turret_data::base() return item_location( vehicle_cursor( *veh, veh->index_of_part( part ) ), &part->base ); } -item_location turret_data::base() const +const item_location turret_data::base() const { return item_location( vehicle_cursor( *veh, veh->index_of_part( part ) ), &part->base ); } @@ -402,10 +402,10 @@ bool vehicle::turrets_aim( bool manual, bool automatic, vehicle_part *tur_part ) const int rng = gun.range(); int res = 0; - res = std::max( res, rl_dist( g->u.pos(), pos + point( rng, 0 ) ) ); - res = std::max( res, rl_dist( g->u.pos(), pos + point( -rng, 0 ) ) ); - res = std::max( res, rl_dist( g->u.pos(), pos + point( 0, rng ) ) ); - res = std::max( res, rl_dist( g->u.pos(), pos + point( 0, -rng ) ) ); + res = std::max( res, rl_dist( g->u.pos(), { pos.x + rng, pos.y, pos.z } ) ); + res = std::max( res, rl_dist( g->u.pos(), { pos.x - rng, pos.y, pos.z } ) ); + res = std::max( res, rl_dist( g->u.pos(), { pos.x, pos.y + rng, pos.z } ) ); + res = std::max( res, rl_dist( g->u.pos(), { pos.x, pos.y - rng, pos.z } ) ); return std::max( lhs, res ); } ); diff --git a/src/type_id.h b/src/type_id.h index 2eb4aff5e6fd5..fd320ca1636a6 100644 --- a/src/type_id.h +++ b/src/type_id.h @@ -100,9 +100,6 @@ struct ter_t; using ter_id = int_id; using ter_str_id = string_id; -class ter_furn_transform; -using ter_furn_transform_id = string_id; - class Trait_group; namespace trait_group { diff --git a/src/ui.cpp b/src/ui.cpp index 7d089722c6666..3616eb89b9677 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -13,7 +13,6 @@ #include "catacharset.h" #include "debug.h" #include "game.h" -#include "ime.h" #include "input.h" #include "output.h" #include "player.h" @@ -242,7 +241,11 @@ std::string uilist::inputfilter() .window( window, 4, w_height - 1, w_width - 4 ) .identifier( identifier ); input_event event; - ime_sentry sentry; +#if defined(__ANDROID__) + if( get_option( "ANDROID_AUTO_KEYBOARD" ) ) { + SDL_StartTextInput(); + } +#endif do { // filter=filter_input->query(filter, false); filter = popup.query_string( false ); @@ -269,7 +272,7 @@ std::string uilist::inputfilter() wattron( window, border_color ); for( int i = 1; i < w_width - 1; i++ ) { - mvwaddch( window, point( i, w_height - 1 ), LINE_OXOX ); + mvwaddch( window, w_height - 1, i, LINE_OXOX ); } wattroff( window, border_color ); @@ -511,7 +514,7 @@ void uilist::setup() if( static_cast( entries.size() ) <= vmax ) { scrollbar_auto = false; } - window = catacurses::newwin( w_height, w_width, point( w_x, w_y ) ); + window = catacurses::newwin( w_height, w_width, w_y, w_x ); if( !window ) { debugmsg( "Window not created; probably trying to use uilist in test mode." ); abort(); diff --git a/src/ui.h b/src/ui.h index 2f5dbe0bc615f..0299e34a9d724 100644 --- a/src/ui.h +++ b/src/ui.h @@ -89,7 +89,7 @@ struct uilist_entry { /** * Virtual base class for windowed ui stuff (like uilist) */ -class ui_container // NOLINT(cata-xy) +class ui_container { public: virtual ~ui_container() = default; diff --git a/src/units.h b/src/units.h index e54d7ef6c4fde..cb0847905fc2d 100644 --- a/src/units.h +++ b/src/units.h @@ -27,6 +27,13 @@ class quantity */ constexpr quantity() : value_() { } + /** + * Constructor for initializing from literal 0, but not from any other literal + * number. It allows `quantity x = 0;` but does forbid `quantity x = 1;`. + * The former does not require an explicit unit as 0 is always 0 regardless of the unit. + */ + constexpr quantity( std::nullptr_t ) : value_() { + } /** * Construct from value. This is supposed to be wrapped into a static * function (e.g. `from_liter(int)` ) to provide context. @@ -534,7 +541,7 @@ T read_from_json_string( JsonIn &jsin, const std::vector" : ""; } -static inline std::string health_color( bool status ) +static inline const std::string health_color( bool status ) { return status ? "" : ""; } @@ -134,10 +132,10 @@ player_activity veh_interact::serialize_activity() point q = veh->coord_translate( pt ? pt->mount : veh->parts[0].mount ); res.values.push_back( veh->global_pos3().x + q.x ); // values[0] res.values.push_back( veh->global_pos3().y + q.y ); // values[1] - res.values.push_back( dd.x ); // values[2] - res.values.push_back( dd.y ); // values[3] - res.values.push_back( -dd.x ); // values[4] - res.values.push_back( -dd.y ); // values[5] + res.values.push_back( ddx ); // values[2] + res.values.push_back( ddy ); // values[3] + res.values.push_back( -ddx ); // values[4] + res.values.push_back( -ddy ); // values[5] res.values.push_back( veh->index_of_part( pt ) ); // values[6] res.str_values.push_back( vp->get_id().str() ); res.targets.emplace_back( std::move( target ) ); @@ -145,9 +143,9 @@ player_activity veh_interact::serialize_activity() return res; } -player_activity veh_interact::run( vehicle &veh, const point &p ) +player_activity veh_interact::run( vehicle &veh, int x, int y ) { - veh_interact vehint( veh, p ); + veh_interact vehint( veh, x, y ); vehint.do_main_loop(); g->refresh_all(); return vehint.serialize_activity(); @@ -184,8 +182,8 @@ static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); /** * Creates a blank veh_interact window. */ -veh_interact::veh_interact( vehicle &veh, const point &p ) - : dd( p ), veh( &veh ), main_context( "VEH_INTERACT" ) +veh_interact::veh_interact( vehicle &veh, int x, int y ) + : ddx( x ), ddy( y ), veh( &veh ), main_context( "VEH_INTERACT" ) { // Only build the shapes map and the wheel list once for( const auto &e : vpart_info::all() ) { @@ -233,8 +231,7 @@ void veh_interact::allocate_windows() // grid window 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 ) ); + w_grid = catacurses::newwin( grid_h, grid_w, 1, 1 ); int mode_h = 1; int name_h = 1; @@ -257,20 +254,19 @@ void veh_interact::allocate_windows() int msg_x = list_x + pane_w + 1; // make the windows - // NOLINTNEXTLINE(cata-use-named-point-constants) - w_mode = catacurses::newwin( mode_h, grid_w, point( 1, 1 ) ); - 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_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 ) ); + w_mode = catacurses::newwin( mode_h, grid_w, 1, 1 ); + w_msg = catacurses::newwin( page_size, pane_w, pane_y, msg_x ); + w_disp = catacurses::newwin( disp_h, disp_w, pane_y, 1 ); + w_parts = catacurses::newwin( parts_h, disp_w, parts_y, 1 ); + w_list = catacurses::newwin( page_size, pane_w, pane_y, list_x ); + w_stats = catacurses::newwin( stats_h, grid_w, stats_y, 1 ); + w_name = catacurses::newwin( name_h, grid_w, name_y, 1 ); display_grid(); display_name(); display_stats(); display_veh(); - move_cursor( point_zero ); // display w_disp & w_parts + move_cursor( 0, 0 ); // display w_disp & w_parts } void veh_interact::set_title( const std::string &msg ) const @@ -330,7 +326,7 @@ void veh_interact::do_main_loop() std::string msg; bool redraw = false; if( const cata::optional vec = main_context.get_direction( action ) ) { - move_cursor( vec->xy() ); + move_cursor( vec->x, vec->y ); } else if( action == "QUIT" ) { finish = true; } else if( action == "INSTALL" ) { @@ -367,7 +363,7 @@ void veh_interact::do_main_loop() if( owned_by_player ) { redraw = do_rename( msg ); } else { - popup( _( "You cannot rename this vehicle as it is owned by: %s." ), _( veh->get_owner()->name ) ); + popup( _( "You cannot rename this vehicle as it is owned by: %s." ), veh->get_owner()->name ); redraw = true; } } else if( action == "SIPHON" ) { @@ -401,14 +397,14 @@ void veh_interact::do_main_loop() redraw = do_assign_crew( msg ); } else { popup( _( "You cannot assign crew on this vehicle as it is owned by: %s." ), - _( veh->get_owner()->name ) ); + veh->get_owner()->name ); redraw = true; } } else if( action == "RELABEL" ) { if( owned_by_player ) { redraw = do_relabel( msg ); } else { - popup( _( "You cannot relabel this vehicle as it is owned by: %s." ), _( veh->get_owner()->name ) ); + popup( _( "You cannot relabel this vehicle as it is owned by: %s." ), veh->get_owner()->name ); redraw = true; } } else if( action == "FUEL_LIST_DOWN" ) { @@ -420,9 +416,9 @@ void veh_interact::do_main_loop() } else if( action == "OVERVIEW_UP" ) { move_overview_line( -1 ); } else if( action == "DESC_LIST_DOWN" ) { - move_cursor( point_zero, 1 ); + move_cursor( 0, 0, 1 ); } else if( action == "DESC_LIST_UP" ) { - move_cursor( point_zero, -1 ); + move_cursor( 0, 0, -1 ); } if( sel_cmd != ' ' ) { finish = true; @@ -440,7 +436,7 @@ void veh_interact::do_main_loop() fold_and_print( w_msg, 0, 1, getmaxx( w_msg ) - 2, c_light_red, msg ); wrefresh( w_msg ); } else { - move_cursor( point_zero ); + move_cursor( 0, 0 ); } } } @@ -456,11 +452,8 @@ void veh_interact::cache_tool_availability() } ); cache_tool_availability_update_lifting( g->u.pos() ); - int mech_jack = 0; - if( g->u.is_mounted() ) { - mech_jack = g->u.mounted_creature->mech_str_addition() + 10; - } - max_jack = std::max( { g->u.max_quality( JACK ), mech_jack, + + max_jack = std::max( { g->u.max_quality( JACK ), map_selector( g->u.pos(), PICKUP_RANGE ).max_quality( JACK ), vehicle_selector( g->u.pos(), 2, true, *veh ).max_quality( JACK ) } ); @@ -469,7 +462,7 @@ void veh_interact::cache_tool_availability() has_jack = g->u.has_quality( JACK, qual ) || map_selector( g->u.pos(), PICKUP_RANGE ).has_quality( JACK, qual ) || - vehicle_selector( g->u.pos(), 2, true, *veh ).has_quality( JACK, qual ) || mech_jack >= qual; + vehicle_selector( g->u.pos(), 2, true, *veh ).has_quality( JACK, qual ); } void veh_interact::cache_tool_availability_update_lifting( const tripoint &world_cursor_pos ) @@ -696,7 +689,7 @@ bool veh_interact::can_install_part() } } - if( ! axles.empty() && axles.count( -dd.x ) == 0 ) { + if( ! axles.empty() && axles.count( -ddx ) == 0 ) { // Installing more than one steerable axle is hard // (but adding a wheel to an existing axle isn't) dif_steering = axles.size() + 5; @@ -959,7 +952,7 @@ bool veh_interact::do_install( std::string &msg ) display_grid(); display_stats(); display_veh(); // Fix the (currently) mangled windows - move_cursor( point_zero ); // Wake up the vehicle display + move_cursor( 0, 0 ); // Wake up the vehicle display } if( action == "REPAIR" ) { filter.clear(); @@ -1072,7 +1065,7 @@ bool veh_interact::do_repair( std::string &msg ) if( reason == INVALID_TARGET ) { vehicle_part *most_repairable = get_most_repariable_part(); if( most_repairable ) { - move_cursor( ( most_repairable->mount + dd ).rotate( 3 ) ); + move_cursor( most_repairable->mount.y + ddy, -( most_repairable->mount.x + ddx ) ); return false; } } @@ -1218,7 +1211,7 @@ bool veh_interact::do_refill( std::string &msg ) auto act = [&]( const vehicle_part & pt ) { auto validate = [&]( const item & obj ) { if( pt.is_tank() ) { - if( obj.is_container() && !obj.contents.empty() ) { + if( obj.is_watertight_container() && !obj.contents.empty() ) { return pt.can_reload( obj.contents.front() ); } } else if( pt.is_fuel_store() ) { @@ -1537,7 +1530,7 @@ bool veh_interact::overview( std::function enabl return false; // nothing is selectable } - move_cursor( ( opts[pos].part->mount + dd ).rotate( 3 ) ); + move_cursor( opts[pos].part->mount.y + ddy, -( opts[pos].part->mount.x + ddx ) ); if( opts[pos].message ) { opts[pos].message( *opts[pos].part ); @@ -1961,20 +1954,22 @@ bool veh_interact::do_relabel( std::string &msg ) .query_string(); vp.set_label( text ); // empty input removes the label // refresh w_disp & w_part windows: - move_cursor( point_zero ); + move_cursor( 0, 0 ); return false; } /** * Returns the first part on the vehicle at the given position. - * @param d The coordinates, relative to the viewport's 0-point (?) + * @param dx The x-coordinate, relative to the viewport's 0-point (?) + * @param dy The y-coordinate, relative to the viewport's 0-point (?) * @return The first vehicle part at the specified coordinates. */ -int veh_interact::part_at( const point &d ) +int veh_interact::part_at( int dx, int dy ) { - const point vd = -dd + d.rotate( 1 ); - return veh->part_displayed_at( vd ); + int vdx = -ddx - dy; + int vdy = dx - ddy; + return veh->part_displayed_at( point( vdx, vdy ) ); } /** @@ -1990,16 +1985,18 @@ bool veh_interact::can_potentially_install( const vpart_info &vpart ) /** * Moves the cursor on the vehicle editing window. - * @param d How far to move the cursor. + * @param dx How far to move the cursor on the x-axis. + * @param dy How far to move the cursor on the y-axis. * @param dstart_at How far to change the start position for vehicle part descriptions */ -void veh_interact::move_cursor( const point &d, int dstart_at ) +void veh_interact::move_cursor( int dx, int dy, 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 ) { + ddx += dy; + ddy -= dx; + if( dx || dy ) { start_limit = 0; } else { start_at += dstart_at; @@ -2007,10 +2004,11 @@ void veh_interact::move_cursor( const point &d, int dstart_at ) display_veh(); // Update the current active component index to the new position. - cpart = part_at( point_zero ); - const point vd = -dd; - const point q = veh->coord_translate( vd ); - const tripoint vehp = veh->global_pos3() + q; + cpart = part_at( 0, 0 ); + int vdx = -ddx; + int vdy = -ddy; + point q = veh->coord_translate( point( vdx, vdy ) ); + tripoint vehp = veh->global_pos3() + q; const bool has_critter = g->critter_at( vehp ); bool obstruct = g->m.impassable_ter_furn( vehp ); const optional_vpart_position ovp = g->m.veh_at( vehp ); @@ -2038,7 +2036,7 @@ void veh_interact::move_cursor( const point &d, int dstart_at ) if( has_critter && vp.has_flag( VPFLAG_OBSTACLE ) ) { continue; } - if( veh->can_mount( vd, vp.get_id() ) ) { + if( veh->can_mount( point( vdx, vdy ), vp.get_id() ) ) { if( vp.get_id() != vpart_shapes[ vp.name() + vp.item ][ 0 ]->get_id() ) { continue; // only add first shape to install list } @@ -2075,7 +2073,7 @@ 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 ); + catacurses::window w_border = catacurses::newwin( TERMY, TERMX, 0, 0 ); draw_border( w_border ); // match grid lines @@ -2118,7 +2116,8 @@ void veh_interact::display_grid() void veh_interact::display_veh() { werase( w_disp ); - const point h_size = point( getmaxx( w_disp ), getmaxy( w_disp ) ) / 2; + const int hw = getmaxx( w_disp ) / 2; + const int hh = getmaxy( w_disp ) / 2; if( debug_mode ) { // show CoM, pivot in debug mode @@ -2129,37 +2128,39 @@ void veh_interact::display_veh() mvwprintz( w_disp, 0, 0, c_green, "CoM %d,%d", com.x, com.y ); mvwprintz( w_disp, 1, 0, c_red, "Pivot %d,%d", pivot.x, pivot.y ); - const point com_s = ( com + dd ).rotate( 3 ) + h_size; - const point pivot_s = ( pivot + dd ).rotate( 3 ) + h_size; + int com_sx = com.y + ddy + hw; + int com_sy = -( com.x + ddx ) + hh; + int pivot_sx = pivot.y + ddy + hw; + int pivot_sy = -( pivot.x + ddx ) + hh; for( int x = 0; x < getmaxx( w_disp ); ++x ) { - if( x <= com_s.x ) { - mvwputch( w_disp, com_s.y, x, c_green, LINE_OXOX ); + if( x <= com_sx ) { + mvwputch( w_disp, com_sy, x, c_green, LINE_OXOX ); } - if( x >= pivot_s.x ) { - mvwputch( w_disp, pivot_s.y, x, c_red, LINE_OXOX ); + if( x >= pivot_sx ) { + mvwputch( w_disp, pivot_sy, x, c_red, LINE_OXOX ); } } for( int y = 0; y < getmaxy( w_disp ); ++y ) { - if( y <= com_s.y ) { - mvwputch( w_disp, y, com_s.x, c_green, LINE_XOXO ); + if( y <= com_sy ) { + mvwputch( w_disp, y, com_sx, c_green, LINE_XOXO ); } - if( y >= pivot_s.y ) { - mvwputch( w_disp, y, pivot_s.x, c_red, LINE_XOXO ); + if( y >= pivot_sy ) { + mvwputch( w_disp, y, pivot_sx, c_red, LINE_XOXO ); } } } // Draw guidelines to make current selection point more visible. for( int y = 0; y < getmaxy( w_disp ); ++y ) { - mvwputch( w_disp, y, h_size.x, c_dark_gray, LINE_XOXO ); + mvwputch( w_disp, y, hw, c_dark_gray, LINE_XOXO ); } for( int x = 0; x < getmaxx( w_disp ); ++x ) { - mvwputch( w_disp, h_size.y, x, c_dark_gray, LINE_OXOX ); + mvwputch( w_disp, hh, x, c_dark_gray, LINE_OXOX ); } //Iterate over structural parts so we only hit each square once @@ -2169,13 +2170,14 @@ void veh_interact::display_veh() int sym = veh->part_sym( p ); nc_color col = veh->part_color( p ); - const point q = ( veh->parts[p].mount + dd ).rotate( 3 ); + int x = veh->parts[p].mount.y + ddy; + int y = -( veh->parts[p].mount.x + ddx ); - if( q == point_zero ) { + if( x == 0 && y == 0 ) { col = hilite( col ); cpart = p; } - mvwputch( w_disp, h_size.y + q.y, h_size.x + q.x, col, special_symbol( sym ) ); + mvwputch( w_disp, hh + y, hw + x, col, special_symbol( sym ) ); } wrefresh( w_disp ); } @@ -2407,7 +2409,7 @@ void veh_interact::display_name() mvwprintz( w_name, 0, 1, c_light_gray, _( "Name: " ) ); std::string fac_name = veh->get_owner() && veh->get_owner() != g->faction_manager_ptr->get( faction_id( "your_followers" ) ) ? - _( veh->get_owner()->name ) : _( "Yours" ); + veh->get_owner()->name : _( "Yours" ); mvwprintz( w_name, 0, 1 + utf8_width( _( "Name: " ) ), veh->get_owner() != g->faction_manager_ptr->get( faction_id( "your_followers" ) ) ? c_light_red : c_light_green, string_format( _( "%s (%s)" ), veh->name, @@ -2525,12 +2527,12 @@ void veh_interact::display_details( const vpart_info *part ) 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 ); + mvwhline( w_stats, i, clear_x, ' ', getmaxx( w_stats ) - clear_x ); } wrefresh( w_stats ); - w_details = catacurses::newwin( details_h, details_w, point( details_x, details_y ) ); + w_details = catacurses::newwin( details_h, details_w, details_y, details_x ); } else { werase( w_details ); } @@ -2971,7 +2973,7 @@ void veh_interact::complete_vehicle() veh->parts[partnum].direction = dir; } - const tripoint vehp = veh->global_pos3() + tripoint( q, 0 ); + const tripoint vehp = veh->global_pos3() + tripoint( q.x, q.y, 0 ); // TODO: allow boarding for non-players as well. player *const pl = g->critter_at( vehp ); if( vpinfo.has_flag( VPFLAG_BOARDABLE ) && pl ) { @@ -3002,7 +3004,7 @@ void veh_interact::complete_vehicle() auto &src = g->u.activity.targets.front(); struct vehicle_part &pt = veh->parts[ vehicle_part ]; std::list &contents = src->contents; - if( pt.is_tank() && src->is_container() && !contents.empty() ) { + if( pt.is_tank() && src->is_watertight_container() && !contents.empty() ) { pt.base.fill_with( contents.front() ); diff --git a/src/veh_interact.h b/src/veh_interact.h index e23bd570ef298..c272c7a1f54eb 100644 --- a/src/veh_interact.h +++ b/src/veh_interact.h @@ -45,7 +45,7 @@ class veh_interact using part_selector = std::function; public: - static player_activity run( vehicle &veh, const point &p ); + static player_activity run( vehicle &veh, int x, int y ); /** Prompt for a part matching the selector function */ static vehicle_part &select_part( const vehicle &veh, const part_selector &sel, @@ -54,12 +54,13 @@ class veh_interact static void complete_vehicle(); private: - veh_interact( vehicle &veh, const point &p = point_zero ); + veh_interact( vehicle &veh, int x = 0, int y = 0 ); ~veh_interact(); item_location target; - point dd = point_zero; + int ddx = 0; + int ddy = 0; /* starting offset for vehicle parts description display and max offset for scrolling */ int start_at = 0; int start_limit = 0; @@ -106,8 +107,8 @@ class veh_interact bool format_reqs( std::ostringstream &msg, const requirement_data &reqs, const std::map &skills, int moves ) const; - int part_at( const point &d ); - void move_cursor( const point &d, int dstart_at = 0 ); + int part_at( int dx, int dy ); + void move_cursor( int dx, int dy, int dstart_at = 0 ); task_reason cant_do( char mode ); bool can_potentially_install( const vpart_info &vpart ); /** Move index (parameter pos) according to input action: diff --git a/src/veh_type.cpp b/src/veh_type.cpp index fd2527cb5d413..8eb5f21e56184 100644 --- a/src/veh_type.cpp +++ b/src/veh_type.cpp @@ -2,7 +2,6 @@ #include #include -#include #include #include #include @@ -97,9 +96,7 @@ static const std::unordered_map vpart_bitflag_map = { "RECHARGE", VPFLAG_RECHARGE }, { "VISION", VPFLAG_EXTENDS_VISION }, { "ENABLED_DRAINS_EPOWER", VPFLAG_ENABLED_DRAINS_EPOWER }, - { "AUTOCLAVE", VPFLAG_AUTOCLAVE }, { "WASHING_MACHINE", VPFLAG_WASHING_MACHINE }, - { "DISHWASHER", VPFLAG_DISHWASHER }, { "FLUIDTANK", VPFLAG_FLUIDTANK }, { "REACTOR", VPFLAG_REACTOR }, { "RAIL", VPFLAG_RAIL }, @@ -328,7 +325,6 @@ void vpart_info::load( JsonObject &jo, const std::string &src ) assign( jo, "size", def.size ); assign( jo, "difficulty", def.difficulty ); assign( jo, "bonus", def.bonus ); - assign( jo, "cargo_weight_modifier", def.cargo_weight_modifier ); assign( jo, "flags", def.flags ); assign( jo, "description", def.description ); @@ -401,6 +397,8 @@ void vpart_info::load( JsonObject &jo, const std::string &src ) if( jo.has_member( "damage_reduction" ) ) { JsonObject dred = jo.get_object( "damage_reduction" ); def.damage_reduction = load_damage_array( dred ); + } else { + def.damage_reduction.fill( 0.0f ); } if( def.has_flag( "ENGINE" ) ) { @@ -822,7 +820,7 @@ static int scale_time( const std::map &sk, int mv, const Characte const std::vector helpers = g->u.get_crafting_helpers(); const int helpersize = g->u.get_num_crafting_helpers( 3 ); return mv * ( 1.0 - std::min( static_cast( lvl ) / sk.size() / 10.0, - 0.5 ) ) * ( 1 - ( helpersize / 10.0 ) ); + 0.5 ) ) * ( 1 - ( helpersize / 10 ) ); } int vpart_info::install_time( const Character &ch ) const @@ -1061,7 +1059,7 @@ void vehicle_prototype::finalize() // Calls the default constructor to create an empty vehicle. Calling the constructor with // the type as parameter would make it look up the type in the map and copy the // (non-existing) blueprint. - proto.blueprint = std::make_unique(); + proto.blueprint.reset( new vehicle() ); vehicle &blueprint = *proto.blueprint; blueprint.type = id; blueprint.name = _( proto.name ); diff --git a/src/veh_type.h b/src/veh_type.h index c6ed9294e6a1d..5db7fa2dde55b 100644 --- a/src/veh_type.h +++ b/src/veh_type.h @@ -68,9 +68,7 @@ enum vpart_bitflags : int { VPFLAG_RECHARGE, VPFLAG_EXTENDS_VISION, VPFLAG_ENABLED_DRAINS_EPOWER, - VPFLAG_AUTOCLAVE, VPFLAG_WASHING_MACHINE, - VPFLAG_DISHWASHER, VPFLAG_FLUIDTANK, VPFLAG_REACTOR, VPFLAG_RAIL, @@ -268,11 +266,8 @@ class vpart_info /** seatbelt (str), muffler (%), horn (vol), light (intensity) */ int bonus = 0; - /** cargo weight modifier (percentage) */ - int cargo_weight_modifier = 100; - /** Flat decrease of damage of a given type. */ - std::array damage_reduction = {}; + std::array damage_reduction; /* Contains data for terrain transformer parts */ transform_terrain_data transform_terrain; diff --git a/src/vehicle.cpp b/src/vehicle.cpp index b21054d3e2a67..17be5a65bd7c6 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -83,7 +83,7 @@ const int bat_energy_j = 1000; inline int modulo( int v, int m ); // // Point dxs for the adjacent cardinal tiles. -point vehicles::cardinal_d[5] = { point_west, point_east, point_north, point_south, point_zero }; +point vehicles::cardinal_d[5] = { point( -1, 0 ), point( 1, 0 ), point( 0, -1 ), point( 0, 1 ), point_zero }; // Vehicle stack methods. vehicle_stack::iterator vehicle_stack::erase( vehicle_stack::const_iterator it ) @@ -128,7 +128,9 @@ vehicle::vehicle( const vproto_id &type_id, int init_veh_fuel, vehicle::vehicle() : vehicle( vproto_id() ) { - sm_pos = tripoint_zero; + smx = 0; + smy = 0; + smz = 0; } vehicle::~vehicle() = default; @@ -553,7 +555,7 @@ void vehicle::do_autodrive() omt_path.pop_back(); } - point omt_diff = omt_path.back().xy() - veh_omt_pos.xy(); + point omt_diff = point( omt_path.back().x - veh_omt_pos.x, omt_path.back().y - veh_omt_pos.y ); if( omt_diff.x > 3 || omt_diff.x < -3 || omt_diff.y > 3 || omt_diff.y < -3 ) { // we've gone walkabout somehow, call off the whole thing is_autodriving = false; @@ -579,9 +581,10 @@ void vehicle::do_autodrive() tripoint global_a = tripoint( veh_omt_pos.x * ( 2 * SEEX ), veh_omt_pos.y * ( 2 * SEEY ), veh_omt_pos.z ); tripoint autodrive_local_target = ( global_a + tripoint( x_side, y_side, - sm_pos.z ) - g->m.getabs( vehpos ) ) + global_pos3(); + smz ) - g->m.getabs( vehpos ) ) + global_pos3(); rl_vec2d facevec = face_vec(); - point rel_pos_target = autodrive_local_target.xy() - vehpos.xy(); + point rel_pos_target = point( autodrive_local_target.x - vehpos.x, + autodrive_local_target.y - vehpos.y ); rl_vec2d targetvec = rl_vec2d( rel_pos_target.x, rel_pos_target.y ); // cross product double crossy = ( facevec.x * targetvec.y ) - ( targetvec.x * facevec.y ); @@ -594,8 +597,8 @@ void vehicle::do_autodrive() // Check the tileray in the direction we need to head towards. std::set points_to_check = immediate_path( angle ); for( const auto &elem : points_to_check ) { - const optional_vpart_position ovp = g->m.veh_at( tripoint( elem, sm_pos.z ) ); - if( g->m.impassable_ter_furn( tripoint( elem, sm_pos.z ) ) || ( ovp && + const optional_vpart_position ovp = g->m.veh_at( tripoint( elem.x, elem.y, smz ) ); + if( g->m.impassable_ter_furn( tripoint( elem.x, elem.y, smz ) ) || ( ovp && &ovp->vehicle() != this ) ) { if( velocity > 0 ) { pldrive( 0, 10 ); @@ -999,10 +1002,10 @@ bool vehicle::can_mount( const point &dp, const vpart_id &id ) const if( !parts.empty() ) { if( !is_structural_part_removed() && !has_structural_part( dp ) && - !has_structural_part( dp + point_east ) && - !has_structural_part( dp + point_south ) && - !has_structural_part( dp + point_west ) && - !has_structural_part( dp + point_north ) ) { + !has_structural_part( dp + point( +1, 0 ) ) && + !has_structural_part( dp + point( 0, +1 ) ) && + !has_structural_part( dp + point( -1, 0 ) ) && + !has_structural_part( dp + point( 0, -1 ) ) ) { return false; } } @@ -1607,7 +1610,7 @@ bool vehicle::merge_rackable_vehicle( vehicle *carry_veh, const std::vector add_msg( _( "You load the %1$s on the rack" ), carry_veh->name ); g->m.destroy_vehicle( carry_veh ); g->m.dirty_vehicle_list.insert( this ); - g->m.set_transparency_cache_dirty( sm_pos.z ); + g->m.set_transparency_cache_dirty( smz ); refresh(); } else { //~ %1$s is the vehicle being loaded onto the bicycle rack @@ -1665,7 +1668,7 @@ bool vehicle::remove_part( int p ) // if a windshield is removed (usually destroyed) also remove curtains // attached to it. if( remove_dependent_part( "WINDOW", "CURTAIN" ) || part_flag( p, VPFLAG_OPAQUE ) ) { - g->m.set_transparency_cache_dirty( sm_pos.z ); + g->m.set_transparency_cache_dirty( smz ); } remove_dependent_part( "SEAT", "SEATBELT" ); @@ -1758,7 +1761,7 @@ bool vehicle::remove_part( int p ) for( auto &i : get_items( p ) ) { // Note: this can spawn items on the other side of the wall! - tripoint dest( part_loc + point( rng( -3, 3 ), rng( -3, 3 ) ) ); + tripoint dest( part_loc.x + rng( -3, 3 ), part_loc.y + rng( -3, 3 ), part_loc.z ); g->m.add_item_or_charges( dest, i ); } g->m.dirty_vehicle_list.insert( this ); @@ -1789,7 +1792,7 @@ void vehicle::part_removal_cleanup() g->m.destroy_vehicle( this ); return; } else { - g->m.update_vehicle_cache( this, sm_pos.z ); + g->m.update_vehicle_cache( this, smz ); } } shift_if_needed(); @@ -2139,7 +2142,7 @@ bool vehicle::split_vehicles( const std::vector> &new_vehs, new_vehicle->zones_dirty = true; g->m.dirty_vehicle_list.insert( new_vehicle ); - g->m.set_transparency_cache_dirty( sm_pos.z ); + g->m.set_transparency_cache_dirty( smz ); if( !new_labels.empty() ) { new_vehicle->labels = new_labels; } @@ -2711,7 +2714,7 @@ int vehicle::part_displayed_at( const point &dp ) const std::vector psg_parts = boarded_parts(); in_vehicle = false; for( auto &psg_part : psg_parts ) { - if( get_passenger( psg_part ) == &g->u ) { + if( get_passenger( psg_part ) == &( g->u ) ) { in_vehicle = true; break; } @@ -2777,7 +2780,8 @@ point vehicle::rotate_mount( int old_dir, int new_dir, const point &pivot, const tripoint vehicle::mount_to_tripoint( const point &mount ) const { - return mount_to_tripoint( mount, point_zero ); + point offset_zero( 0, 0 ); + return mount_to_tripoint( mount, offset_zero ); } tripoint vehicle::mount_to_tripoint( const point &mount, const point &offset ) const @@ -2856,7 +2860,7 @@ monster *vehicle::get_pet( int p ) const tripoint vehicle::global_pos3() const { - return sm_to_ms_copy( sm_pos ) + pos; + return tripoint( smx * SEEX + posx, smy * SEEY + posy, smz ); } tripoint vehicle::global_part_pos3( const int &index ) const @@ -2871,9 +2875,9 @@ tripoint vehicle::global_part_pos3( const vehicle_part &pt ) const void vehicle::set_submap_moved( int x, int y ) { - const point old_msp = g->m.getabs( global_pos3().xy() ); - sm_pos.x = x; - sm_pos.y = y; + const point old_msp = g->m.getabs( global_pos3().x, global_pos3().y ); + smx = x; + smy = y; if( !tracking_on ) { return; } @@ -3369,7 +3373,7 @@ void vehicle::spew_field( double joules, int part, field_type_id type, int inten p.x += ( velocity < 0 ? 1 : -1 ); } point q = coord_translate( p ); - const tripoint dest = global_pos3() + tripoint( q, 0 ); + const tripoint dest = global_pos3() + tripoint( q.x, q.y, 0 ); g->m.mod_field_intensity( dest, type, intensity ); } @@ -3731,15 +3735,22 @@ double vehicle::coeff_water_drag() const // effective hull area is actual hull area * hull coverage double hull_area_m = actual_area_m * std::max( 0.1, hull_coverage ); - // Treat the hullform as a simple cuboid to calculate displaced depth of - // water. - // Apply Archimedes' principle (mass of water displaced is mass of vehicle). - // area * depth = hull_volume = water_mass / water density + // treat the hullform as a tetrahedron for half it's length, and a rectangular block + // for the rest. the mass of the water displaced by those shapes is equal to the mass + // of the vehicle (Archimedes principle, eh?) and the volume of that water is the volume + // of the hull below the waterline divided by the density of water. apply math to get + // depth. + // volume of the block = width * length / 2 * depth + // volume of the tetrahedron = 1/3 * area of the triangle * depth + // area of the triangle = 1/2 triangle length * width = 1/2 * length/2 * width + // volume of the tetrahedron = 1/3 * 1/4 * length * width * depth + // hull volume underwater = 1/2 * width * length * depth + 1/12 * length * width * depth + // 7/12 * length * width * depth = hull_volume = water_mass / water density // water_mass = vehicle_mass - // area * depth = vehicle_mass / water_density - // depth = vehicle_mass / water_density / area + // 7/12 * length * width * depth = vehicle_mass / water_density + // depth = 12/7 * vehicle_mass / water_density / ( length * width ) constexpr double water_density = 1000.0; // kg/m^3 - draft_m = to_kilogram( total_mass() ) / water_density / hull_area_m; + draft_m = 12 / 7 * to_kilogram( total_mass() ) / water_density / hull_area_m; // increase the streamlining as more of the boat is covered in boat boards double c_water_drag = 1.25 - hull_coverage; // hull height starts at 0.3m and goes up as you add more boat boards @@ -3849,7 +3860,7 @@ bool vehicle::handle_potential_theft( player &p, bool check_only, bool prompt ) if( prompt ) { if( !query_yn( _( "This vehicle belongs to: %s, there may be consequences if you are observed interacting with it, continue?" ), - _( get_owner()->name ) ) ) { + get_owner()->name ) ) { return false; } } @@ -3873,21 +3884,24 @@ bool vehicle::handle_potential_theft( player &p, bool check_only, bool prompt ) bool vehicle::balanced_wheel_config() const { - point min = point_max; - point max = point_min; + int xmin = INT_MAX; + int ymin = INT_MAX; + int xmax = INT_MIN; + int ymax = INT_MIN; // find the bounding box of the wheels for( auto &w : wheelcache ) { const auto &pt = parts[ w ].mount; - min.x = std::min( min.x, pt.x ); - min.y = std::min( min.y, pt.y ); - max.x = std::max( max.x, pt.x ); - max.y = std::max( max.y, pt.y ); + xmin = std::min( xmin, pt.x ); + ymin = std::min( ymin, pt.y ); + xmax = std::max( xmax, pt.x ); + ymax = std::max( ymax, pt.y ); } - // Check center of mass inside support of wheels (roughly) const point &com = local_center_of_mass(); - const rectangle support( min, max ); - return support.contains_inclusive( com ); + if( com.x < xmin || com.x > xmax || com.y < ymin || com.y > ymax ) { + return false; // center of mass not inside support of wheels (roughly) + } + return true; } bool vehicle::valid_wheel_config() const @@ -4246,17 +4260,19 @@ vehicle *vehicle::find_vehicle( const tripoint &where ) } // Nope. Load up its submap... - tripoint veh_in_sm = where; - tripoint veh_sm = ms_to_sm_remain( veh_in_sm ); + point veh_in_sm = point( where.x, where.y ); + point veh_sm = ms_to_sm_remain( veh_in_sm ); - auto sm = MAPBUFFER.lookup_submap( veh_sm ); + auto sm = MAPBUFFER.lookup_submap( veh_sm.x, veh_sm.y, where.z ); if( sm == nullptr ) { return nullptr; } for( auto &elem : sm->vehicles ) { vehicle *found_veh = elem.get(); - if( veh_in_sm.xy() == found_veh->pos ) { + point veh_location( found_veh->posx, found_veh->posy ); + + if( veh_in_sm == veh_location ) { return found_veh; } } @@ -4489,7 +4505,7 @@ void vehicle::slow_leak() auto fuel = p.ammo_current(); int qty = std::max( ( 0.5 - health ) * ( 0.5 - health ) * p.ammo_remaining() / 10, 1.0 ); point q = coord_translate( p.mount ); - const tripoint dest = global_pos3() + tripoint( q, 0 ); + const tripoint dest = global_pos3() + tripoint( q.x, q.y, 0 ); // damaged batteries self-discharge without leaking, plutonium leaks slurry if( fuel != fuel_type_battery && fuel != fuel_type_plutonium_cell ) { @@ -4575,13 +4591,9 @@ cata::optional vehicle::add_item( int part, const item } // const int max_weight = ?! // TODO: weight limit, calculation per vpart & vehicle stats, not a hard user limit. // add creaking sounds and damage to overloaded vpart, outright break it past a certain point, or when hitting bumps etc - vehicle_part &p = parts[ part ]; - if( p.is_broken() ) { - return cata::nullopt; - } - if( p.base.is_gun() ) { - if( !itm.is_ammo() || !p.base.ammo_types().count( itm.ammo_type() ) ) { + if( parts[ part ].base.is_gun() ) { + if( !itm.is_ammo() || !parts[ part ].base.ammo_types().count( itm.ammo_type() ) ) { return cata::nullopt; } } @@ -4613,9 +4625,9 @@ cata::optional vehicle::add_item( int part, const item itm_copy.contents.clear(); } - const vehicle_stack::iterator new_pos = p.items.insert( itm_copy ); + const vehicle_stack::iterator new_pos = parts[part].items.insert( itm_copy ); if( itm_copy.needs_processing() ) { - active_items.add( *new_pos, p.mount ); + active_items.add( *new_pos, parts[part].mount ); } invalidate_mass(); @@ -4647,7 +4659,7 @@ vehicle_stack::iterator vehicle::remove_item( int part, vehicle_stack::const_ite vehicle_stack vehicle::get_items( const int part ) { const tripoint pos = global_part_pos3( part ); - return vehicle_stack( &parts[part].items, pos.xy(), this, part ); + return vehicle_stack( &parts[part].items, point( pos.x, pos.y ), this, part ); } vehicle_stack vehicle::get_items( const int part ) const @@ -4691,7 +4703,7 @@ void vehicle::place_spawn_items() created.emplace_back( item( e ).in_its_container() ); } for( const std::string &e : spawn.item_groups ) { - item_group::ItemList group_items = item_group::items_from( e, calendar::start_of_cataclysm ); + item_group::ItemList group_items = item_group::items_from( e, calendar::time_of_cataclysm ); for( auto spawn_item : group_items ) { created.emplace_back( spawn_item ); } @@ -5303,7 +5315,7 @@ void vehicle::shift_parts( const point &delta ) pivot_anchor[0] -= delta; refresh(); //Need to also update the map after this - g->m.reset_vehicle_cache( sm_pos.z ); + g->m.reset_vehicle_cache( smz ); } /** @@ -5674,7 +5686,7 @@ void vehicle::update_time( const time_point &update_to ) discharge_battery( pt.info().epower ); } - if( sm_pos.z < 0 ) { + if( smz < 0 ) { return; } @@ -5773,7 +5785,7 @@ void vehicle::update_time( const time_point &update_to ) double windpower = get_local_windpower( g->weather.windspeed, cur_om_ter, global_part_pos3( part ), g->weather.winddirection, false ); - if( windpower <= ( g->weather.windspeed / 10.0 ) ) { + if( windpower <= ( g->weather.windspeed / 10 ) ) { continue; } epower_w += part_epower_w( part ) * windpower; @@ -5824,8 +5836,8 @@ void vehicle::refresh_mass() const void vehicle::calc_mass_center( bool use_precalc ) const { - units::quantity xf; - units::quantity yf; + units::quantity xf = 0; + units::quantity yf = 0; units::mass m_total = 0_gram; for( const vpart_reference &vp : get_all_parts() ) { const size_t i = vp.part_index(); @@ -5834,15 +5846,12 @@ void vehicle::calc_mass_center( bool use_precalc ) const } units::mass m_part = 0_gram; - units::mass m_part_items = 0_gram; m_part += vp.part().base.weight(); for( const auto &j : get_items( i ) ) { - m_part_items += j.weight(); - } - if( vp.part().info().cargo_weight_modifier != 100 ) { - m_part_items *= vp.part().info().cargo_weight_modifier / 100; + //m_part += j.type->weight; + // Change back to the above if it runs too slowly + m_part += j.weight(); } - m_part += m_part_items; if( vp.has_feature( VPFLAG_BOARDABLE ) && vp.part().has_flag( vehicle_part::passenger_flag ) ) { const player *p = get_passenger( i ); @@ -5895,7 +5904,7 @@ bounding_box vehicle::get_bounding_box() int i_use = 0; for( const tripoint &p : get_points( true ) ) { - const point pt = parts[part_at( p.xy() )].precalc[i_use]; + const point pt = parts[part_at( point( p.x, p.y ) )].precalc[i_use]; if( pt.x < min_x ) { min_x = pt.x; } diff --git a/src/vehicle.h b/src/vehicle.h index 3f27eeb360ce2..42e780f4f3ca1 100644 --- a/src/vehicle.h +++ b/src/vehicle.h @@ -322,7 +322,6 @@ struct vehicle_part { point mount; /** mount translated to face.dir [0] and turn_dir [1] */ - // NOLINTNEXTLINE(cata-use-named-point-constants) std::array precalc = { { point( -1, -1 ), point( -1, -1 ) } }; /** current part health with range [0,durability] */ @@ -440,7 +439,7 @@ class turret_data /** Get base item location */ item_location base(); - item_location base() const; + const item_location base() const; /** Quantity of ammunition available for use */ int ammo_remaining() const; @@ -1358,10 +1357,10 @@ class vehicle /** Get firing data for a turret */ turret_data turret_query( vehicle_part &pt ); - turret_data turret_query( const vehicle_part &pt ) const; + const turret_data turret_query( const vehicle_part &pt ) const; turret_data turret_query( const tripoint &pos ); - turret_data turret_query( const tripoint &pos ) const; + const turret_data turret_query( const tripoint &pos ) const; /** Set targeting mode for specific turrets */ void turrets_set_targeting(); @@ -1520,16 +1519,14 @@ class vehicle * the map is just shifted (in the later case simply set smx/smy directly). */ void set_submap_moved( int x, int y ); - void use_autoclave( int p ); void use_washing_machine( int p ); - void use_dishwasher( int p ); void use_monster_capture( int part, const tripoint &pos ); void use_bike_rack( int part ); void use_harness( int part, const tripoint &pos ); void interact_with( const tripoint &pos, int interact_part ); - std::string disp_name() const; + const std::string disp_name() const; /** Required strength to be able to successfully lift the vehicle unaided by equipment */ int lift_strength() const; @@ -1623,7 +1620,9 @@ class vehicle * is loaded into the map the values are directly set. The vehicles position does * not change therefor no call to set_submap_moved is required. */ - tripoint sm_pos; + int smx; + int smy; + int smz; // alternator load as a percentage of engine power, in units of 0.1% so 1000 is 100.0% int alternator_load; @@ -1638,7 +1637,8 @@ class vehicle * Note that vehicles are "moved" by map::displace_vehicle. You should not * set them directly, except when initializing the vehicle or during mapgen. */ - point pos; + int posx = 0; + int posy = 0; // vehicle current velocity, mph * 100 int velocity = 0; // velocity vehicle's cruise control trying to achieve @@ -1658,7 +1658,7 @@ class vehicle float of_turn_carry; int extra_drag = 0; // last time point the fluid was inside tanks was checked for processing - time_point last_fluid_check = calendar::turn_zero; + time_point last_fluid_check = calendar::time_of_cataclysm; // the time point when it was succesfully stolen cata::optional theft_time; // rotation used for mount precalc values diff --git a/src/vehicle_display.cpp b/src/vehicle_display.cpp index d0971769a5a7d..f135e2151267d 100644 --- a/src/vehicle_display.cpp +++ b/src/vehicle_display.cpp @@ -25,7 +25,7 @@ static const std::string part_location_structure( "structure" ); static const itype_id fuel_type_muscle( "muscle" ); -std::string vehicle::disp_name() const +const std::string vehicle::disp_name() const { return string_format( _( "the %s" ), name ); } diff --git a/src/vehicle_move.cpp b/src/vehicle_move.cpp index 76e125050ab6c..a14f40b4b3c48 100644 --- a/src/vehicle_move.cpp +++ b/src/vehicle_move.cpp @@ -344,7 +344,7 @@ bool vehicle::collision( std::vector &colls, if( dp.z != 0 && ( dp.x != 0 || dp.y != 0 ) ) { // Split into horizontal + vertical - return collision( colls, tripoint( dp.xy(), 0 ), just_detect, bash_floor ) || + return collision( colls, tripoint( dp.x, dp.y, 0 ), just_detect, bash_floor ) || collision( colls, tripoint( 0, 0, dp.z ), just_detect, bash_floor ); } @@ -419,7 +419,7 @@ static void terrain_collision_data( const tripoint &p, bool bash_floor, // Just a rough rescale for now to obtain approximately equal numbers const int bash_min = g->m.bash_resistance( p, bash_floor ); const int bash_max = g->m.bash_strength( p, bash_floor ); - mass = ( bash_min + bash_max ) / 2.0; + mass = ( bash_min + bash_max ) / 2; density = bash_min; } @@ -428,7 +428,7 @@ veh_collision vehicle::part_collision( int part, const tripoint &p, { // Vertical collisions need to be handled differently // All collisions have to be either fully vertical or fully horizontal for now - const bool vert_coll = bash_floor || p.z != sm_pos.z; + const bool vert_coll = bash_floor || p.z != smz; const bool pl_ctrl = player_in_control( g->u ); Creature *critter = g->critter_at( p, true ); player *ph = dynamic_cast( critter ); @@ -1218,7 +1218,7 @@ vehicle *vehicle::act_on_map() g->setremoteveh( nullptr ); } - g->m.on_vehicle_moved( sm_pos.z ); + g->m.on_vehicle_moved( smz ); // Destroy vehicle (sank to nowhere) g->m.destroy_vehicle( this ); return nullptr; @@ -1355,7 +1355,7 @@ vehicle *vehicle::act_on_map() vehicle *new_pointer = this; // Split the movement into horizontal and vertical for easier processing if( dp.x != 0 || dp.y != 0 ) { - new_pointer = g->m.move_vehicle( *new_pointer, tripoint( dp.xy(), 0 ), mdir ); + new_pointer = g->m.move_vehicle( *new_pointer, tripoint( dp.x, dp.y, 0 ), mdir ); } if( new_pointer != nullptr && dp.z != 0 ) { @@ -1383,7 +1383,7 @@ void vehicle::check_falling_or_floating() size_t water_tiles = 0; for( const tripoint &p : pts ) { if( is_falling ) { - tripoint below( p.xy(), p.z - 1 ); + tripoint below( p.x, p.y, p.z - 1 ); is_falling &= g->m.has_flag_ter_or_furn( TFLAG_NO_FLOOR, p ) && ( p.z > -OVERMAP_DEPTH ) && !g->m.supports_above( below ); } @@ -1427,7 +1427,7 @@ float map::vehicle_wheel_traction( const vehicle &veh ) const } for( const auto &terrain_mod : veh.part_info( p ).wheel_terrain_mod() ) { - if( terrain_mod.second.movecost > 0 && + if( terrain_mod.second.movecost && terrain_mod.second.movecost > 0 && tr.has_flag( terrain_mod.first ) ) { move_mod = terrain_mod.second.movecost; break; diff --git a/src/vehicle_part.cpp b/src/vehicle_part.cpp index 31b087bf664b5..88ac5d6930ea8 100644 --- a/src/vehicle_part.cpp +++ b/src/vehicle_part.cpp @@ -31,7 +31,7 @@ static const itype_id fuel_type_battery( "battery" ); * VEHICLE_PART *-----------------------------------------------------------------------------*/ vehicle_part::vehicle_part() - : id( vpart_id::NULL_ID() ) {} + : mount( 0, 0 ), id( vpart_id::NULL_ID() ) {} vehicle_part::vehicle_part( const vpart_id &vp, const point &dp, item &&obj ) : mount( dp ), id( vp ), base( std::move( obj ) ) diff --git a/src/vehicle_use.cpp b/src/vehicle_use.cpp index 2a0e4644aba79..1d7f486f6e525 100644 --- a/src/vehicle_use.cpp +++ b/src/vehicle_use.cpp @@ -399,10 +399,9 @@ bool vehicle::interact_vehicle_locked() 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 ) ); + int hotwire_time = 6000 / ( ( mechanics_skill > 0 ) ? mechanics_skill : 1 ); //assign long activity - g->u.assign_activity( activity_id( "ACT_HOTWIRE_CAR" ), moves, -1, INT_MIN, _( "Hotwire" ) ); + g->u.assign_activity( activity_id( "ACT_HOTWIRE_CAR" ), hotwire_time, -1, INT_MIN, _( "Hotwire" ) ); // use part 0 as the reference point point q = coord_translate( parts[0].mount ); g->u.activity.values.push_back( global_pos3().x + q.x ); //[0] @@ -800,12 +799,12 @@ int vehicle::engine_start_time( const int e ) const // non-linear range [100-1000]; f(0.0) = 100, f(0.6) = 250, f(0.8) = 500, f(0.9) = 1000 // diesel engines with working glow plugs always start with f = 0.6 (or better) - const double cold = 100 / tanh( 1 - std::min( engine_cold_factor( e ), 0.9 ) ); + const int cold = ( 1 / tanh( 1 - std::min( engine_cold_factor( e ), 0.9 ) ) ) * 100; // watts to old vhp = watts / 373 // divided by magic 16 = watts / 6000 - const double watts_per_time = 6000; - return part_vpower_w( engines[ e ], true ) / watts_per_time + 100 * dmg + cold; + const int watts_per_time = 6000; + return part_vpower_w( engines[ e ], true ) / watts_per_time + ( 100 * dmg ) + cold; } bool vehicle::start_engine( const int e ) @@ -1339,7 +1338,7 @@ void vehicle::open_or_close( const int part_index, const bool opening ) //find_lines_of_parts() doesn't return the part_index we passed, so we set it on it's own parts[part_index].open = opening; insides_dirty = true; - g->m.set_transparency_cache_dirty( sm_pos.z ); + g->m.set_transparency_cache_dirty( smz ); const int dist = rl_dist( g->u.pos(), mount_to_tripoint( parts[part_index].mount ) ); if( dist < 20 ) { sfx::play_variant_sound( opening ? "vehicle_open" : "vehicle_close", @@ -1354,48 +1353,6 @@ void vehicle::open_or_close( const int part_index, const bool opening ) coeff_air_changed = true; } -void vehicle::use_autoclave( int p ) -{ - auto items = get_items( p ); - static const std::string filthy( "FILTHY" ); - bool filthy_items = std::any_of( items.begin(), items.end(), []( const item & i ) { - return i.has_flag( filthy ); - } ); - - bool cbms = std::all_of( items.begin(), items.end(), []( const item & i ) { - return i.is_bionic(); - } ); - - if( parts[p].enabled ) { - parts[p].enabled = false; - add_msg( m_bad, - _( "You turn the autoclave off before it's finished the program, and open its door." ) ); - } else if( fuel_left( "water" ) < 8 && fuel_left( "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 ) { - add_msg( m_bad, - _( "You need to remove all filthy items from the autoclave to start the sterilizing cycle." ) ); - } else if( !cbms ) { - add_msg( m_bad, - _( "Only CBMs can be sterilized in an autoclave." ) ); - } else { - parts[p].enabled = true; - for( auto &n : items ) { - n.set_age( 0_turns ); - } - - if( fuel_left( "water" ) >= 8 ) { - drain( "water", 8 ); - } else { - drain( "water_clean", 8 ); - } - - add_msg( m_good, - _( "You turn the autoclave on and it starts its cycle." ) ); - } -} - void vehicle::use_washing_machine( int p ) { bool detergent_is_enough = g->u.crafting_inventory().has_charges( "detergent", 5 ); @@ -1405,7 +1362,7 @@ void vehicle::use_washing_machine( int p ) return i.has_flag( filthy ); } ); - bool cbms = std::any_of( items.begin(), items.end(), []( const item & i ) { + bool cbms = std::all_of( items.begin(), items.end(), []( const item & i ) { return i.is_bionic(); } ); @@ -1445,60 +1402,6 @@ 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 ); - auto items = get_items( p ); - static const std::string filthy( "FILTHY" ); - bool filthy_items = std::all_of( items.begin(), items.end(), []( const item & i ) { - return i.has_flag( filthy ); - } ); - - std::ostringstream buffer; - buffer << _( "Soft items can't be cleaned in a dishwasher, you should use a washing machine for that. You need to remove them:" ); - bool soft_items = false; - for( const item &it : items ) { - if( it.is_soft() ) { - soft_items = true; - buffer << " " << it.tname(); - } - } - - if( parts[p].enabled ) { - parts[p].enabled = false; - add_msg( m_bad, - _( "You turn the dishwasher off before it's finished the program, and open its lid." ) ); - } else if( fuel_left( "water" ) < 24 && fuel_left( "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 ) { - add_msg( m_bad, _( "You need 5 charges of detergent for the dishwasher." ) ); - } else if( !filthy_items ) { - add_msg( m_bad, - _( "You need to remove all non-filthy items from the dishwasher to start the washing program." ) ); - } else if( soft_items ) { - add_msg( m_bad, buffer.str() ); - } else { - parts[p].enabled = true; - for( auto &n : items ) { - n.set_age( 0_turns ); - } - - if( fuel_left( "water" ) >= 24 ) { - drain( "water", 24 ); - } else { - drain( "water_clean", 24 ); - } - - std::vector detergent; - detergent.push_back( item_comp( "detergent", 5 ) ); - g->u.consume_items( detergent, 1, is_crafting_component ); - - add_msg( m_good, - _( "You pour some detergent into the dishwasher, close its lid, and turn it on. The dishwasher is being filled with water from vehicle tanks." ) ); - } -} - void vehicle::use_monster_capture( int part, const tripoint &pos ) { if( parts[part].is_broken() || parts[part].removed ) { @@ -1622,7 +1525,6 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) const bool has_kitchen = avail_part_with_feature( interact_part, "KITCHEN", true ) >= 0; const bool has_faucet = avail_part_with_feature( interact_part, "FAUCET", true ) >= 0; - const bool has_towel = avail_part_with_feature( interact_part, "TOWEL", true ) >= 0; const bool has_weldrig = avail_part_with_feature( interact_part, "WELDRIG", true ) >= 0; const bool has_chemlab = avail_part_with_feature( interact_part, "CHEMLAB", true ) >= 0; const bool has_purify = avail_part_with_feature( interact_part, "WATER_PURIFIER", true ) >= 0; @@ -1633,18 +1535,10 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) const bool can_be_folded = is_foldable(); const bool is_convertible = tags.count( "convertible" ) > 0; const bool remotely_controlled = g->remoteveh() == this; - const int autoclave_part = avail_part_with_feature( interact_part, "AUTOCLAVE", true ); - const bool has_autoclave = autoclave_part >= 0; - bool autoclave_on = ( autoclave_part == -1 ) ? false : - parts[autoclave_part].enabled; const int washing_machine_part = avail_part_with_feature( interact_part, "WASHING_MACHINE", true ); const bool has_washmachine = washing_machine_part >= 0; bool washing_machine_on = ( washing_machine_part == -1 ) ? false : parts[washing_machine_part].enabled; - const int dishwasher_part = avail_part_with_feature( interact_part, "DISHWASHER", true ); - const bool has_dishwasher = dishwasher_part >= 0; - bool dishwasher_on = ( dishwasher_part == -1 ) ? false : - parts[dishwasher_part].enabled; const int monster_capture_part = avail_part_with_feature( interact_part, "CAPTURE_MONSTER_VEH", true ); const bool has_monster_capture = monster_capture_part >= 0; @@ -1659,8 +1553,8 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) enum { EXAMINE, TRACK, CONTROL, CONTROL_ELECTRONICS, GET_ITEMS, GET_ITEMS_ON_GROUND, FOLD_VEHICLE, UNLOAD_TURRET, RELOAD_TURRET, - USE_HOTPLATE, FILL_CONTAINER, DRINK, USE_WELDER, USE_PURIFIER, PURIFY_TANK, USE_AUTOCLAVE, USE_WASHMACHINE, USE_DISHWASHER, - USE_MONSTER_CAPTURE, USE_BIKE_RACK, USE_HARNESS, RELOAD_PLANTER, WORKBENCH, USE_TOWEL, + USE_HOTPLATE, FILL_CONTAINER, DRINK, USE_WELDER, USE_PURIFIER, PURIFY_TANK, USE_WASHMACHINE, USE_MONSTER_CAPTURE, + USE_BIKE_RACK, USE_HARNESS, RELOAD_PLANTER, WORKBENCH }; uilist selectmenu; @@ -1673,22 +1567,12 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) selectmenu.addentry( CONTROL_ELECTRONICS, true, keybind( "CONTROL_MANY_ELECTRONICS" ), _( "Control multiple electronics" ) ); } - if( has_autoclave ) { - selectmenu.addentry( USE_AUTOCLAVE, true, 'a', - autoclave_on ? _( "Deactivate the autoclave" ) : - _( "Activate the autoclave (1.5 hours)" ) ); - } if( has_washmachine ) { selectmenu.addentry( USE_WASHMACHINE, true, 'W', washing_machine_on ? _( "Deactivate the washing machine" ) : _( "Activate the washing machine (1.5 hours)" ) ); } - if( has_dishwasher ) { - selectmenu.addentry( USE_DISHWASHER, true, 'D', - dishwasher_on ? _( "Deactivate the dishwasher" ) : - _( "Activate the dishwasher (1.5 hours)" ) ); - } - if( from_vehicle && !washing_machine_on && !dishwasher_on ) { + if( from_vehicle && !washing_machine_on ) { selectmenu.addentry( GET_ITEMS, true, 'g', _( "Get items" ) ); } if( has_items_on_ground && !items_are_sealed ) { @@ -1710,9 +1594,6 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) 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" ) > 0 ) { selectmenu.addentry( USE_WELDER, true, 'w', _( "Use the welding rig?" ) ); } @@ -1783,22 +1664,10 @@ void vehicle::interact_with( const tripoint &pos, int interact_part ) veh_tool( "hotplate" ); return; } - case USE_TOWEL: { - iuse::towel_common( &g->u, nullptr, false ); - return; - } - case USE_AUTOCLAVE: { - use_autoclave( autoclave_part ); - return; - } case USE_WASHMACHINE: { use_washing_machine( washing_machine_part ); return; } - case USE_DISHWASHER: { - use_dishwasher( dishwasher_part ); - return; - } case FILL_CONTAINER: { g->u.siphon( *this, "water_clean" ); return; diff --git a/src/visitable.cpp b/src/visitable.cpp index 332a959717457..440a9feb0be13 100644 --- a/src/visitable.cpp +++ b/src/visitable.cpp @@ -26,8 +26,6 @@ #include "colony.h" #include "point.h" -const efftype_id effect_riding( "riding" ); - /** @relates visitable */ template item *visitable::find_parent( const item &it ) @@ -707,7 +705,7 @@ std::list visitable::remove_items_with( const return res; // nothing to do } - int idx = cur->veh.part_with_feature( cur->part, "CARGO", false ); + int idx = cur->veh.part_with_feature( cur->part, "CARGO", true ); if( idx < 0 ) { return res; } @@ -854,12 +852,6 @@ int visitable::charges_of( const std::string &what, int limit, if( p && p->has_active_bionic( bionic_id( "bio_ups" ) ) ) { qty = sum_no_wrap( qty, p->power_level ); } - if( p && p->is_mounted() ) { - auto mons = p->mounted_creature.get(); - if( mons->has_flag( MF_RIDEABLE_MECH ) && mons->battery_item ) { - qty = sum_no_wrap( qty, mons->battery_item->ammo_remaining() ); - } - } return std::min( qty, limit ); } diff --git a/src/wcwidth.cpp b/src/wcwidth.cpp deleted file mode 100644 index baea397fdbf00..0000000000000 --- a/src/wcwidth.cpp +++ /dev/null @@ -1,180 +0,0 @@ -#include "wcwidth.h" - -/* - * This is an implementation of wcwidth() and wcswidth() (defined in - * IEEE Std 1002.1-2001) for Unicode. - * - * http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html - * http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html - * - * In fixed-width output devices, Latin characters all occupy a single - * "cell" position of equal width, whereas ideographic CJK characters - * occupy two such cells. Interoperability between terminal-line - * applications and (teletype-style) character terminals using the - * UTF-8 encoding requires agreement on which character should advance - * the cursor by how many cell positions. No established formal - * standards exist at present on which Unicode character shall occupy - * how many cell positions on character terminals. These routines are - * a first attempt of defining such behavior based on simple rules - * applied to data provided by the Unicode Consortium. - * - * For some graphical characters, the Unicode standard explicitly - * defines a character-cell width via the definition of the East Asian - * FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes. - * In all these cases, there is no ambiguity about which width a - * terminal shall use. For characters in the East Asian Ambiguous (A) - * class, the width choice depends purely on a preference of backward - * compatibility with either historic CJK or Western practice. - * Choosing single-width for these characters is easy to justify as - * the appropriate long-term solution, as the CJK practice of - * displaying these characters as double-width comes from historic - * implementation simplicity (8-bit encoded characters were displayed - * single-width and 16-bit ones double-width, even for Greek, - * Cyrillic, etc.) and not any typographic considerations. - * - * Much less clear is the choice of width for the Not East Asian - * (Neutral) class. Existing practice does not dictate a width for any - * of these characters. It would nevertheless make sense - * typographically to allocate two character cells to characters such - * as for instance EM SPACE or VOLUME INTEGRAL, which cannot be - * represented adequately with a single-width glyph. The following - * routines at present merely assign a single-cell width to all - * neutral characters, in the interest of simplicity. This is not - * entirely satisfactory and should be reconsidered before - * establishing a formal standard in this area. At the moment, the - * decision which Not East Asian (Neutral) characters should be - * represented by double-width glyphs cannot yet be answered by - * applying a simple rule from the Unicode database content. Setting - * up a proper standard for the behavior of UTF-8 character terminals - * will require a careful analysis not only of each Unicode character, - * but also of each presentation form, something the author of these - * routines has avoided to do so far. - * - * http://www.unicode.org/unicode/reports/tr11/ - * - * Markus Kuhn -- 2007-05-26 (Unicode 5.0) - * - * Permission to use, copy, modify, and distribute this software - * for any purpose and without fee is hereby granted. The author - * disclaims all warranties with regard to this software. - * - * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c - */ - -#include -#include - -struct interval { - uint32_t first; - uint32_t last; -}; - -/* auxiliary function for binary search in interval table */ -static uint32_t bisearch( uint32_t ucs, const struct interval *table, uint32_t max ) -{ - uint32_t min = 0; - uint32_t mid = 0; - - if( ucs < table[0].first || ucs > table[max].last ) { - return 0; - } - while( max >= min ) { - mid = ( min + max ) / 2; - if( ucs > table[mid].last ) { - min = mid + 1; - } else if( ucs < table[mid].first ) { - max = mid - 1; - } else { - return 1; - } - } - - return 0; -} - -int mk_wcwidth( uint32_t ucs ) -{ - /* sorted list of non-overlapping intervals of non-spacing characters */ - /* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */ - static const struct interval combining[] = { - { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 }, - { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, - { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 }, - { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 }, - { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED }, - { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A }, - { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 }, - { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D }, - { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, - { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, - { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C }, - { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, - { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, - { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, - { 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C }, - { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D }, - { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 }, - { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 }, - { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC }, - { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, - { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, - { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, - { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, - { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, - { 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, - { 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, - { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, - { 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, - { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, - { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F }, - { 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 }, - { 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD }, - { 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD }, - { 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 }, - { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B }, - { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 }, - { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 }, - { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF }, - { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 }, - { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F }, - { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, - { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, - { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, - { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F }, - { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 }, - { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD }, - { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F }, - { 0xE0100, 0xE01EF } - }; - - /* test for 8-bit control characters */ - if( ucs == 0 ) { - return 0; - } - if( ( ucs > 0 && ucs < 32 ) || ( ucs >= 0x7f && ucs < 0xa0 ) ) { - return -1; - } - - /* binary search in table of non-spacing characters */ - if( bisearch( ucs, combining, - sizeof( combining ) / sizeof( struct interval ) - 1 ) ) { - return 0; - } - - /* if we arrive here, ucs is not a combining or C0/C1 control character */ - - return 1 + - ( ucs >= 0x1100 && - ( ucs <= 0x115f || /* Hangul Jamo init. consonants */ - ucs == 0x2329 || ucs == 0x232a || - ( ucs >= 0x2e80 && ucs <= 0xa4cf && - ucs != 0x303f ) || /* CJK ... Yi */ - ( ucs >= 0xac00 && ucs <= 0xd7a3 ) || /* Hangul Syllables */ - ( ucs >= 0xf900 && ucs <= 0xfaff ) || /* CJK Compatibility Ideographs */ - ( ucs >= 0xfe10 && ucs <= 0xfe19 ) || /* Vertical forms */ - ( ucs >= 0xfe30 && ucs <= 0xfe6f ) || /* CJK Compatibility Forms */ - ( ucs >= 0xff00 && ucs <= 0xff60 ) || /* Fullwidth Forms */ - ( ucs >= 0xffe0 && ucs <= 0xffe6 ) || - ( ucs >= 0x20000 && ucs <= 0x2fffd ) || - ( ucs >= 0x30000 && ucs <= 0x3fffd ) ) ); -} diff --git a/src/wcwidth.h b/src/wcwidth.h index ae340e420d3ca..da98ef988fab7 100644 --- a/src/wcwidth.h +++ b/src/wcwidth.h @@ -1,11 +1,323 @@ #pragma once #ifndef WCWIDTH_H #define WCWIDTH_H +/* + * This is an implementation of wcwidth() and wcswidth() (defined in + * IEEE Std 1002.1-2001) for Unicode. + * + * http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html + * http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html + * + * In fixed-width output devices, Latin characters all occupy a single + * "cell" position of equal width, whereas ideographic CJK characters + * occupy two such cells. Interoperability between terminal-line + * applications and (teletype-style) character terminals using the + * UTF-8 encoding requires agreement on which character should advance + * the cursor by how many cell positions. No established formal + * standards exist at present on which Unicode character shall occupy + * how many cell positions on character terminals. These routines are + * a first attempt of defining such behavior based on simple rules + * applied to data provided by the Unicode Consortium. + * + * For some graphical characters, the Unicode standard explicitly + * defines a character-cell width via the definition of the East Asian + * FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes. + * In all these cases, there is no ambiguity about which width a + * terminal shall use. For characters in the East Asian Ambiguous (A) + * class, the width choice depends purely on a preference of backward + * compatibility with either historic CJK or Western practice. + * Choosing single-width for these characters is easy to justify as + * the appropriate long-term solution, as the CJK practice of + * displaying these characters as double-width comes from historic + * implementation simplicity (8-bit encoded characters were displayed + * single-width and 16-bit ones double-width, even for Greek, + * Cyrillic, etc.) and not any typographic considerations. + * + * Much less clear is the choice of width for the Not East Asian + * (Neutral) class. Existing practice does not dictate a width for any + * of these characters. It would nevertheless make sense + * typographically to allocate two character cells to characters such + * as for instance EM SPACE or VOLUME INTEGRAL, which cannot be + * represented adequately with a single-width glyph. The following + * routines at present merely assign a single-cell width to all + * neutral characters, in the interest of simplicity. This is not + * entirely satisfactory and should be reconsidered before + * establishing a formal standard in this area. At the moment, the + * decision which Not East Asian (Neutral) characters should be + * represented by double-width glyphs cannot yet be answered by + * applying a simple rule from the Unicode database content. Setting + * up a proper standard for the behavior of UTF-8 character terminals + * will require a careful analysis not only of each Unicode character, + * but also of each presentation form, something the author of these + * routines has avoided to do so far. + * + * http://www.unicode.org/unicode/reports/tr11/ + * + * Markus Kuhn -- 2007-05-26 (Unicode 5.0) + * + * Permission to use, copy, modify, and distribute this software + * for any purpose and without fee is hereby granted. The author + * disclaims all warranties with regard to this software. + * + * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c + */ + +#include +#include + +struct interval { + uint32_t first; + uint32_t last; +}; + +/* auxiliary function for binary search in interval table */ +static uint32_t bisearch( uint32_t ucs, const struct interval *table, uint32_t max ) +{ + uint32_t min = 0; + uint32_t mid = 0; + + if( ucs < table[0].first || ucs > table[max].last ) { + return 0; + } + while( max >= min ) { + mid = ( min + max ) / 2; + if( ucs > table[mid].last ) { + min = mid + 1; + } else if( ucs < table[mid].first ) { + max = mid - 1; + } else { + return 1; + } + } -#include + return 0; +} -/* Get character width in columns. See wcwidth.cpp for details. +/* The following two functions define the column width of an ISO 10646 + * character as follows: + * + * - The null character (U+0000) has a column width of 0. + * + * - Other C0/C1 control characters and DEL will lead to a return + * value of -1. + * + * - Non-spacing and enclosing combining characters (general + * category code Mn or Me in the Unicode database) have a + * column width of 0. + * + * - SOFT HYPHEN (U+00AD) has a column width of 1. + * + * - Other format characters (general category code Cf in the Unicode + * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0. + * + * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) + * have a column width of 0. + * + * - Spacing characters in the East Asian Wide (W) or East Asian + * Full-width (F) category as defined in Unicode Technical + * Report #11 have a column width of 2. + * + * - All remaining characters (including all printable + * ISO 8859-1 and WGL4 characters, Unicode control characters, + * etc.) have a column width of 1. + * + * This implementation assumes that uint32_t characters are encoded + * in ISO 10646. */ -int mk_wcwidth( uint32_t ucs ); +int mk_wcwidth( uint32_t ucs ) +{ + /* sorted list of non-overlapping intervals of non-spacing characters */ + /* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */ + static const struct interval combining[] = { + { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 }, + { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, + { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 }, + { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 }, + { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED }, + { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A }, + { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 }, + { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D }, + { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, + { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, + { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C }, + { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, + { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, + { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, + { 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C }, + { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D }, + { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 }, + { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 }, + { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC }, + { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, + { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, + { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, + { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, + { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, + { 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, + { 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, + { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, + { 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, + { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, + { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F }, + { 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 }, + { 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD }, + { 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD }, + { 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 }, + { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B }, + { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 }, + { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 }, + { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF }, + { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 }, + { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F }, + { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, + { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, + { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, + { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F }, + { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 }, + { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD }, + { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F }, + { 0xE0100, 0xE01EF } + }; + + /* test for 8-bit control characters */ + if( ucs == 0 ) { + return 0; + } + if( ( ucs > 0 && ucs < 32 ) || ( ucs >= 0x7f && ucs < 0xa0 ) ) { + return -1; + } + + /* binary search in table of non-spacing characters */ + if( bisearch( ucs, combining, + sizeof( combining ) / sizeof( struct interval ) - 1 ) ) { + return 0; + } + + /* if we arrive here, ucs is not a combining or C0/C1 control character */ + + return 1 + + ( ucs >= 0x1100 && + ( ucs <= 0x115f || /* Hangul Jamo init. consonants */ + ucs == 0x2329 || ucs == 0x232a || + ( ucs >= 0x2e80 && ucs <= 0xa4cf && + ucs != 0x303f ) || /* CJK ... Yi */ + ( ucs >= 0xac00 && ucs <= 0xd7a3 ) || /* Hangul Syllables */ + ( ucs >= 0xf900 && ucs <= 0xfaff ) || /* CJK Compatibility Ideographs */ + ( ucs >= 0xfe10 && ucs <= 0xfe19 ) || /* Vertical forms */ + ( ucs >= 0xfe30 && ucs <= 0xfe6f ) || /* CJK Compatibility Forms */ + ( ucs >= 0xff00 && ucs <= 0xff60 ) || /* Fullwidth Forms */ + ( ucs >= 0xffe0 && ucs <= 0xffe6 ) || + ( ucs >= 0x20000 && ucs <= 0x2fffd ) || + ( ucs >= 0x30000 && ucs <= 0x3fffd ) ) ); +} + +inline int mk_wcswidth( const uint32_t *pwcs, size_t n ) +{ + int w = 0; + int width = 0; + + for( ; *pwcs && n-- > 0; pwcs++ ) { + if( ( w = mk_wcwidth( *pwcs ) ) < 0 ) { + return -1; + } else { + width += w; + } + } + + return width; +} + +/* + * The following functions are the same as mk_wcwidth() and + * mk_wcswidth(), except that spacing characters in the East Asian + * Ambiguous (A) category as defined in Unicode Technical Report #11 + * have a column width of 2. This variant might be useful for users of + * CJK legacy encodings who want to migrate to UCS without changing + * the traditional terminal character-width behavior. It is not + * otherwise recommended for general use. + */ +inline int mk_wcwidth_cjk( uint32_t ucs ) +{ + /* sorted list of non-overlapping intervals of East Asian Ambiguous + * characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */ + static const struct interval ambiguous[] = { + { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 }, + { 0x00AA, 0x00AA }, { 0x00AE, 0x00AE }, { 0x00B0, 0x00B4 }, + { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, + { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, + { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED }, + { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA }, + { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, + { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B }, + { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, + { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 }, + { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 }, + { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE }, + { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 }, + { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA }, + { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, + { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB }, + { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB }, + { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0391, 0x03A1 }, + { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, + { 0x0401, 0x0401 }, { 0x0410, 0x044F }, { 0x0451, 0x0451 }, + { 0x2010, 0x2010 }, { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, + { 0x201C, 0x201D }, { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, + { 0x2030, 0x2030 }, { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, + { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, + { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, + { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, + { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, + { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, + { 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 }, + { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 }, + { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 }, + { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B }, + { 0x220F, 0x220F }, { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, + { 0x221A, 0x221A }, { 0x221D, 0x2220 }, { 0x2223, 0x2223 }, + { 0x2225, 0x2225 }, { 0x2227, 0x222C }, { 0x222E, 0x222E }, + { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 }, + { 0x224C, 0x224C }, { 0x2252, 0x2252 }, { 0x2260, 0x2261 }, + { 0x2264, 0x2267 }, { 0x226A, 0x226B }, { 0x226E, 0x226F }, + { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, { 0x2295, 0x2295 }, + { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, + { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, { 0x24EB, 0x254B }, + { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 }, + { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, + { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 }, + { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 }, + { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, { 0x2605, 0x2606 }, + { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 }, + { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 }, + { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 }, + { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F }, + { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0xE000, 0xF8FF }, + { 0xFFFD, 0xFFFD }, { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD } + }; + + /* binary search in table of non-spacing characters */ + if( bisearch( ucs, ambiguous, + sizeof( ambiguous ) / sizeof( struct interval ) - 1 ) ) { + return 2; + } + + return mk_wcwidth( ucs ); +} + +inline int mk_wcswidth_cjk( const uint32_t *pwcs, size_t n ) +{ + int w = 0; + int width = 0; + + for( ; *pwcs && n-- > 0; pwcs++ ) { + if( ( w = mk_wcwidth_cjk( *pwcs ) ) < 0 ) { + return -1; + } else { + width += w; + } + } + + return width; +} #endif diff --git a/src/weather.cpp b/src/weather.cpp index 8a7b622282732..ae56817e0b750 100644 --- a/src/weather.cpp +++ b/src/weather.cpp @@ -127,7 +127,8 @@ inline void proc_weather_sum( const weather_type wtype, weather_sum &data, } // TODO: Change this sunlight "sampling" here into a proper interpolation - const float tick_sunlight = sunlight( t ) + weather::light_modifier( wtype ); + const float tick_sunlight = calendar( to_turn( t ) ).sunlight() + weather::light_modifier( + wtype ); data.sunlight += std::max( 0.0f, to_turns( tick_size ) * tick_sunlight ); } @@ -616,7 +617,7 @@ std::string weather_forecast( const point &abs_sm_pos ) double low = 100.0; const tripoint abs_ms_pos = tripoint( sm_to_ms_copy( abs_sm_pos ), 0 ); // TODO: wind direction and speed - const time_point last_hour = calendar::turn - ( calendar::turn - calendar::turn_zero ) % + const time_point last_hour = calendar::turn - ( calendar::turn - calendar::time_of_cataclysm ) % 1_hours; for( int d = 0; d < 6; d++ ) { weather_type forecast = WEATHER_NULL; @@ -630,7 +631,7 @@ std::string weather_forecast( const point &abs_sm_pos ) std::string day; bool started_at_night; const time_point c = last_hour + 12_hours * d; - if( d == 0 && is_night( c ) ) { + if( d == 0 && calendar( to_turn( c ) ).is_night() ) { day = _( "Tonight" ); started_at_night = true; } else { @@ -976,7 +977,7 @@ void weather_manager::update_weather() weather = weather_override == WEATHER_NULL ? weather_gen.get_weather_conditions( w ) : weather_override; - if( weather == WEATHER_SUNNY && is_night( calendar::turn ) ) { + if( weather == WEATHER_SUNNY && calendar::turn.is_night() ) { weather = WEATHER_CLEAR; } sfx::do_ambient(); diff --git a/src/weather.h b/src/weather.h index 82136153e60af..7e7a1683ffce8 100644 --- a/src/weather.h +++ b/src/weather.h @@ -81,6 +81,10 @@ struct weather_printable { std::vector > vdrops; //!< Coordinates targeted for droplets. nc_color colGlyph; //!< Color to draw glyph this animation frame. char cGlyph; //!< Glyph to draw this animation frame. + int startx; + int starty; + int endx; + int endy; }; /** @@ -126,7 +130,7 @@ struct weather_sum { int wind_amount = 0; }; -weather_datum weather_data( weather_type const type ); +weather_datum const weather_data( weather_type const type ); namespace weather { std::string name( weather_type const type ); diff --git a/src/weather_data.cpp b/src/weather_data.cpp index 17144fdddba9c..b2d83a556ad51 100644 --- a/src/weather_data.cpp +++ b/src/weather_data.cpp @@ -119,7 +119,7 @@ static weather_datum weather_data_interal_localized( weather_type const type ) return res.datum; } -weather_datum weather_data( weather_type const type ) +weather_datum const weather_data( weather_type const type ) { return weather_data_interal_localized( type ); } diff --git a/src/weather_gen.cpp b/src/weather_gen.cpp index 8b226d816c480..d73252cfe1185 100644 --- a/src/weather_gen.cpp +++ b/src/weather_gen.cpp @@ -170,7 +170,7 @@ weather_type weather_generator::get_weather_conditions( const tripoint &location w_point w( get_weather( location, t, seed ) ); weather_type wt = get_weather_conditions( w ); // Make sure we don't say it's sunny at night! =P - if( wt == WEATHER_SUNNY && is_night( t ) ) { + if( wt == WEATHER_SUNNY && calendar( to_turn( t ) ).is_night() ) { return WEATHER_CLEAR; } return wt; @@ -256,7 +256,7 @@ int weather_generator::get_water_temperature() const **/ int season_length = to_days( calendar::season_length() ); - int day = to_days( time_past_new_year( calendar::turn ) ); + int day = calendar::turn.day_of_year(); int hour = hour_of_day( calendar::turn ); int water_temperature = 0; @@ -294,7 +294,7 @@ void weather_generator::test_weather() const weather_type c = get_weather_conditions( w ); weather_datum wd = weather_data( c ); - int year = to_turns( i - calendar::turn_zero ) / to_turns + int year = to_turns( i - calendar::time_of_cataclysm ) / to_turns ( calendar::year_length() ) + 1; const int hour = hour_of_day( i ); const int minute = minute_of_hour( i ); diff --git a/src/wincurse.cpp b/src/wincurse.cpp index 5f1ecc71a46b8..fd8fbfa19e53b 100644 --- a/src/wincurse.cpp +++ b/src/wincurse.cpp @@ -163,8 +163,7 @@ static void create_backbuffer() bmi.bmiHeader.biSizeImage = WindowWidth * WindowHeight * 1; bmi.bmiHeader.biClrUsed = color_loader::COLOR_NAMES_COUNT; // Colors in the palette bmi.bmiHeader.biClrImportant = color_loader::COLOR_NAMES_COUNT; // Colors in the palette - backbit = CreateDIBSection( 0, &bmi, DIB_RGB_COLORS, reinterpret_cast( &dcbits ), NULL, - 0 ); + backbit = CreateDIBSection( 0, &bmi, DIB_RGB_COLORS, ( void ** ) &dcbits, NULL, 0 ); DeleteObject( SelectObject( backbuffer, backbit ) ); //load the buffer into DC } @@ -339,7 +338,7 @@ LRESULT CALLBACK ProcessMessages( HWND__ *hWnd, unsigned int Msg, return 0; case WM_SYSCHAR: - add_alt_code( static_cast( wParam ) ); + add_alt_code( ( char )wParam ); return 0; case WM_SYSKEYDOWN: @@ -415,13 +414,13 @@ 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 + RECT update = {win->x * fontwidth, -1, + ( win->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; + update.bottom = ( win->y + j + 1 ) * fontheight; if( update.top == -1 ) { update.top = update.bottom - fontheight; } @@ -433,8 +432,8 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) if( cell.ch.empty() ) { continue; // second cell of a multi-cell character } - drawx = ( ( win->pos.x + i ) * fontwidth ); - drawy = ( ( win->pos.y + j ) * fontheight ); //-j; + drawx = ( ( win->x + i ) * fontwidth ); + drawy = ( ( win->y + j ) * fontheight ); //-j; if( drawx + fontwidth > WindowWidth || drawy + fontheight > WindowHeight ) { // Outside of the display area, would not render anyway continue; @@ -466,7 +465,7 @@ void cata_cursesport::curses_drawwindow( const catacurses::window &w ) ExtTextOutW( backbuffer, drawx, drawy, 0, NULL, utf16.c_str(), utf16.length(), NULL ); } } else { - switch( static_cast( win->line[j].chars[i].ch[0] ) ) { + switch( ( unsigned char )win->line[j].chars[i].ch[0] ) { // box bottom/top side (horizontal line) case LINE_OXOX_C: HorzLineDIB( drawx, drawy + halfheight, drawx + fontwidth, 1, FG ); @@ -640,7 +639,7 @@ void catacurses::init_interface() static uint64_t GetPerfCount() { uint64_t Count; - QueryPerformanceCounter( reinterpret_cast( &Count ) ); + QueryPerformanceCounter( ( PLARGE_INTEGER )&Count ); return Count; } @@ -650,7 +649,7 @@ input_event input_manager::get_input_event() // see, e.g., http://linux.die.net/man/3/getch // so although it's non-obvious, that refresh() call (and maybe InvalidateRect?) IS supposed to be there uint64_t Frequency; - QueryPerformanceFrequency( reinterpret_cast( &Frequency ) ); + QueryPerformanceFrequency( ( PLARGE_INTEGER )&Frequency ); wrefresh( catacurses::stdscr ); InvalidateRect( WindowHandle, NULL, true ); lastchar = ERR; @@ -750,9 +749,4 @@ int get_scaling_factor() return 1; } -HWND getWindowHandle() -{ - return WindowHandle; -} - #endif diff --git a/src/wish.cpp b/src/wish.cpp index ee067b90f4e0b..241642ab624fa 100644 --- a/src/wish.cpp +++ b/src/wish.cpp @@ -66,8 +66,9 @@ class wish_mutate_callback: public uilist_callback p->set_mutation( vTraits[ entnum ] ); p->toggle_trait( vTraits[ entnum ] ); } - menu->entries[ entnum ].text_color = p->has_trait( vTraits[ entnum ] ) ? c_green : menu->text_color; - menu->entries[ entnum ].extratxt.txt = p->has_base_trait( vTraits[ entnum ] ) ? "T" : ""; + menu->entries[ entnum ].text_color = ( p->has_trait( vTraits[ entnum ] ) ? c_green : + menu->text_color ); + menu->entries[ entnum ].extratxt.txt = ( p->has_base_trait( vTraits[ entnum ] ) ? "T" : "" ); return true; } return false; @@ -79,17 +80,17 @@ class wish_mutate_callback: public uilist_callback padding = std::string( menu->pad_right - 1, ' ' ); for( auto &traits_iter : mutation_branch::get_all() ) { vTraits.push_back( traits_iter.id ); - pTraits[traits_iter.id] = p->has_trait( traits_iter.id ); + pTraits[traits_iter.id] = ( p->has_trait( traits_iter.id ) ); } } const mutation_branch &mdata = vTraits[entnum].obj(); const int startx = menu->w_width - menu->pad_right; for( int i = 2; i < lastlen; i++ ) { - mvwprintw( menu->window, point( startx, i ), padding ); + mvwprintw( menu->window, i, startx, padding ); } - mvwprintw( menu->window, point( startx, 3 ), + mvwprintw( menu->window, 3, startx, mdata.valid ? _( "Valid" ) : _( "Nonvalid" ) ); int line2 = 4; @@ -157,7 +158,7 @@ class wish_mutate_callback: public uilist_callback line2++; mvwprintz( menu->window, line2, startx, c_light_gray, _( "Type:" ) ); for( auto &j : mdata.types ) { - mvwprintw( menu->window, point( startx + 11, line2 ), j ); + mvwprintw( menu->window, line2, startx + 11, j ); line2++; } } @@ -166,7 +167,7 @@ class wish_mutate_callback: public uilist_callback line2++; mvwprintz( menu->window, line2, startx, c_light_gray, _( "Category:" ) ); for( auto &j : mdata.category ) { - mvwprintw( menu->window, point( startx + 11, line2 ), j ); + mvwprintw( menu->window, line2, startx + 11, j ); line2++; } } @@ -191,7 +192,7 @@ class wish_mutate_callback: public uilist_callback mvwprintz( menu->window, menu->w_height - 3, startx, c_green, msg ); msg = padding; input_context ctxt( menu->input_category ); - mvwprintw( menu->window, point( startx, menu->w_height - 2 ), + mvwprintw( menu->window, menu->w_height - 2, startx, _( "[%s] find, [%s] quit, [t] toggle base trait" ), ctxt.get_desc( "FILTER" ), ctxt.get_desc( "QUIT" ) ); @@ -221,7 +222,7 @@ void debug_menu::wishmutate( player *p ) wmenu.w_x = 0; wmenu.w_width = TERMX; // Disabled due to foldstring crash // ( TERMX - getmaxx(w_terrain) - 30 > 24 ? getmaxx(w_terrain) : TERMX ); - wmenu.pad_right = wmenu.w_width - 40; + wmenu.pad_right = ( wmenu.w_width - 40 ); wmenu.selected = uistate.wishmutate_selected; wish_mutate_callback cb; cb.p = p; @@ -304,8 +305,8 @@ class wish_monster_callback: public uilist_callback } void setup( uilist *menu ) { - w_info = catacurses::newwin( menu->w_height - 2, menu->pad_right, - point( menu->w_x + menu->w_width - 1 - menu->pad_right, 1 ) ); + w_info = catacurses::newwin( menu->w_height - 2, menu->pad_right, 1, + menu->w_x + menu->w_width - 1 - menu->pad_right ); padding = std::string( getmaxx( w_info ), ' ' ); werase( w_info ); wrefresh( w_info ); @@ -353,13 +354,13 @@ class wish_monster_callback: public uilist_callback tmp.print_info( w_info, 2, 5, 1 ); std::string header = string_format( "#%d: %s (%d)%s", entnum, tmp.type->nname(), - group, hallucination ? _( " (hallucination)" ) : "" ); + group, ( hallucination ? _( " (hallucination)" ) : "" ) ); mvwprintz( w_info, 0, ( getmaxx( w_info ) - header.size() ) / 2, c_cyan, header ); mvwprintz( w_info, getmaxy( w_info ) - 3, 0, c_green, msg ); msg = padding; input_context ctxt( menu->input_category ); - mvwprintw( w_info, point( 0, getmaxy( w_info ) - 2 ), + mvwprintw( w_info, getmaxy( w_info ) - 2, 0, _( "[%s] find, [f]riendly, [h]allucination, [i]ncrease group, [d]ecrease group, [%s] quit" ), ctxt.get_desc( "FILTER" ), ctxt.get_desc( "QUIT" ) ); } @@ -384,7 +385,7 @@ void debug_menu::wishmonster( const cata::optional &p ) wmenu.w_x = 0; wmenu.w_width = TERMX; // Disabled due to foldstring crash //( TERMX - getmaxx(w_terrain) - 30 > 24 ? getmaxx(w_terrain) : TERMX ); - wmenu.pad_right = wmenu.w_width - 30; + wmenu.pad_right = ( wmenu.w_width - 30 ); wmenu.selected = uistate.wishmonster_selected; wish_monster_callback cb( mtypes ); wmenu.callback = &cb; @@ -463,14 +464,14 @@ class wish_item_callback: public uilist_callback const int startx = menu->w_width - menu->pad_right; const std::string padding( menu->pad_right, ' ' ); for( int y = 2; y < menu->w_height - 1; y++ ) { - mvwprintw( menu->window, point( startx - 1, y ), padding ); + mvwprintw( menu->window, y, startx - 1, padding ); } item tmp( standard_itype_ids[entnum], calendar::turn ); - mvwhline( menu->window, point( startx, 1 ), ' ', menu->pad_right - 1 ); + mvwhline( menu->window, 1, startx, ' ', menu->pad_right - 1 ); const std::string header = string_format( "#%d: %s%s%s", entnum, standard_itype_ids[entnum]->get_id().c_str(), - incontainer ? _( " (contained)" ) : "", - has_flag ? _( " (flagged)" ) : "" ); + ( incontainer ? _( " (contained)" ) : "" ), + ( has_flag ? _( " (flagged)" ) : "" ) ); mvwprintz( menu->window, 1, startx + ( menu->pad_right - 1 - header.size() ) / 2, c_cyan, header ); @@ -480,7 +481,7 @@ class wish_item_callback: public uilist_callback msg.erase(); input_context ctxt( menu->input_category ); - mvwprintw( menu->window, point( startx, menu->w_height - 2 ), + mvwprintw( menu->window, menu->w_height - 2, startx, _( "[%s] find, [f] container, [F] flag, [%s] quit" ), ctxt.get_desc( "FILTER" ), ctxt.get_desc( "QUIT" ) ); } @@ -499,7 +500,7 @@ void debug_menu::wishitem( player *p, int x, int y, int z ) uilist wmenu; wmenu.w_x = 0; wmenu.w_width = TERMX; - wmenu.pad_right = TERMX / 2 > 40 ? TERMX - 40 : TERMX / 2; + wmenu.pad_right = ( TERMX / 2 > 40 ? TERMX - 40 : TERMX / 2 ); wmenu.selected = uistate.wishitem_selected; wish_item_callback cb( opts ); wmenu.callback = &cb; @@ -613,7 +614,7 @@ void debug_menu::wishskill( player *p ) const int skcur = p->get_skill_level( skill.ident() ); sksetmenu.selected = skcur; for( int i = 0; i < NUM_SKILL_LVL; i++ ) { - sksetmenu.addentry( i, true, i + 48, "%d%s", i, skcur == i ? _( " (current)" ) : "" ); + sksetmenu.addentry( i, true, i + 48, "%d%s", i, ( skcur == i ? _( " (current)" ) : "" ) ); } sksetmenu.query(); g->draw_ter(); @@ -632,8 +633,8 @@ void debug_menu::wishskill( player *p ) p->get_skill_level( skill.ident() ), skill.name() ); skmenu.entries[skill_id + skoffset].text_color = - p->get_skill_level( skill.ident() ) == origskills[skill_id] ? - skmenu.text_color : c_yellow; + ( p->get_skill_level( skill.ident() ) == origskills[skill_id] ? + skmenu.text_color : c_yellow ); } else if( skmenu.ret == 0 && sksel == -1 ) { const int ret = uilist( _( "Alter all skill values" ), { _( "Add 3" ), _( "Add 1" ), @@ -650,14 +651,15 @@ void debug_menu::wishskill( player *p ) } for( size_t skill_id = 0; skill_id < Skill::skills.size(); skill_id++ ) { const Skill &skill = Skill::skills[skill_id]; - int changeto = skmod != 0 ? p->get_skill_level( skill.ident() ) + skmod : - skset != -1 ? skset : origskills[skill_id]; + int changeto = ( skmod != 0 ? p->get_skill_level( skill.ident() ) + skmod : + ( skset != -1 ? skset : origskills[skill_id] ) ); p->set_skill_level( skill.ident(), std::max( 0, changeto ) ); skmenu.entries[skill_id + skoffset].txt = string_format( _( "@ %d: %s " ), p->get_skill_level( skill.ident() ), skill.name() ); skmenu.entries[skill_id + skoffset].text_color = - p->get_skill_level( skill.ident() ) == origskills[skill_id] ? skmenu.text_color : c_yellow; + ( p->get_skill_level( skill.ident() ) == origskills[skill_id] ? + skmenu.text_color : c_yellow ); } } } diff --git a/src/worldfactory.cpp b/src/worldfactory.cpp index c8f805539714e..afced5826b310 100644 --- a/src/worldfactory.cpp +++ b/src/worldfactory.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include @@ -19,7 +18,6 @@ #include "debug.h" #include "enums.h" #include "filesystem.h" -#include "ime.h" #include "input.h" #include "json.h" #include "mod_manager.h" @@ -143,12 +141,11 @@ WORLDPTR worldfactory::make_new_world( bool show_prompt, const std::string &worl if( show_prompt ) { // Window variables - 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; + 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; // set up window - catacurses::window wf_win = - catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, - point( iOffsetX, iOffsetY ) ); + catacurses::window wf_win = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, iOffsetY, + iOffsetX ); int curtab = 0; int lasttab = 0; // give placement memory to menus, sorta. @@ -279,7 +276,7 @@ void worldfactory::init() worldname = native_to_utf8( world_dir.substr( name_index + 1 ) ); // create and store the world - all_worlds[worldname] = std::make_unique(); + all_worlds[worldname].reset( new WORLD() ); // give the world a name all_worlds[worldname]->world_name = worldname; // add sav files @@ -373,8 +370,8 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) const int iTooltipHeight = 3; const int iContentHeight = FULL_SCREEN_HEIGHT - 3 - iTooltipHeight; const size_t num_pages = world_names.size() / iContentHeight + 1; // at least 1 page - 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; + 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; std::map mapLines; mapLines[3] = true; @@ -388,14 +385,14 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) } size_t sel = 0, selpage = 0; - catacurses::window w_worlds_border = - catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, point( iOffsetX, iOffsetY ) ); + catacurses::window w_worlds_border = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, + iOffsetY, iOffsetX ); catacurses::window w_worlds_tooltip = catacurses::newwin( iTooltipHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, 1 + iOffsetY ) ); + 1 + iOffsetY, 1 + iOffsetX ); catacurses::window w_worlds_header = catacurses::newwin( 1, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, 1 + iTooltipHeight + iOffsetY ) ); + 1 + iTooltipHeight + iOffsetY, 1 + iOffsetX ); catacurses::window w_worlds = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, iTooltipHeight + 2 + iOffsetY ) ); + iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX ); draw_border( w_worlds_border, BORDER_COLOR, _( " WORLD SELECTION " ) ); mvwputch( w_worlds_border, 4, 0, BORDER_COLOR, LINE_XXXO ); // |- @@ -449,7 +446,7 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) sTemp.str( "" ); sTemp << i + 1; mvwprintz( w_worlds, static_cast( i ), 0, c_white, sTemp.str() ); - wmove( w_worlds, point( 4, static_cast( i ) ) ); + wmove( w_worlds, static_cast( i ), 4 ); std::string world_name = ( world_pages[selpage] )[i]; size_t saves_num = get_world( world_name )->world_saves.size(); @@ -464,7 +461,7 @@ WORLDPTR worldfactory::pick_world( bool show_prompt ) } //Draw Tabs - wmove( w_worlds_header, point( 7, 0 ) ); + wmove( w_worlds_header, 0, 7 ); for( size_t i = 0; i < num_pages; ++i ) { if( !world_pages[i].empty() ) { //skip empty pages @@ -709,14 +706,14 @@ void worldfactory::draw_mod_list( const catacurses::window &w, int &start, size_ void worldfactory::show_active_world_mods( const std::vector &world_mods ) { - 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; + 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_border = catacurses::newwin( 13, FULL_SCREEN_WIDTH / 2 - 3, point( iOffsetX, - 4 + iOffsetY ) ); + catacurses::window w_border = catacurses::newwin( 13, FULL_SCREEN_WIDTH / 2 - 3, 4 + iOffsetY, + iOffsetX ); - catacurses::window w_mods = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, point( iOffsetX, - 5 + iOffsetY ) ); + catacurses::window w_mods = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, + iOffsetX ); int start = 0; int cursor = 0; @@ -787,22 +784,22 @@ int worldfactory::show_worldgen_tab_modselection( const catacurses::window &win, ctxt.register_action( "SAVE_DEFAULT_MODS" ); ctxt.register_action( "VIEW_MOD_DESCRIPTION" ); - 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; + 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; // lots of small windows so that each section can be drawn to independently of the others as necessary - catacurses::window w_header1 = catacurses::newwin( 1, FULL_SCREEN_WIDTH / 2 - 5, - point( 1 + iOffsetX, 3 + iOffsetY ) ); - catacurses::window w_header2 = catacurses::newwin( 1, FULL_SCREEN_WIDTH / 2 - 4, - point( FULL_SCREEN_WIDTH / 2 + 3 + iOffsetX, 3 + iOffsetY ) ); - catacurses::window w_shift = catacurses::newwin( 13, 5, - point( FULL_SCREEN_WIDTH / 2 - 3 + iOffsetX, 3 + iOffsetY ) ); - catacurses::window w_list = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, point( iOffsetX, - 5 + iOffsetY ) ); - catacurses::window w_active = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, - point( FULL_SCREEN_WIDTH / 2 + 2 + iOffsetX, 5 + iOffsetY ) ); - catacurses::window w_description = catacurses::newwin( 4, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, 19 + iOffsetY ) ); + catacurses::window w_header1 = catacurses::newwin( 1, FULL_SCREEN_WIDTH / 2 - 5, 3 + iOffsetY, + 1 + iOffsetX ); + catacurses::window w_header2 = catacurses::newwin( 1, FULL_SCREEN_WIDTH / 2 - 4, 3 + iOffsetY, + FULL_SCREEN_WIDTH / 2 + 3 + iOffsetX ); + catacurses::window w_shift = catacurses::newwin( 13, 5, 3 + iOffsetY, + FULL_SCREEN_WIDTH / 2 - 3 + iOffsetX ); + catacurses::window w_list = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, + iOffsetX ); + catacurses::window w_active = catacurses::newwin( 11, FULL_SCREEN_WIDTH / 2 - 4, 5 + iOffsetY, + FULL_SCREEN_WIDTH / 2 + 2 + iOffsetX ); + catacurses::window w_description = catacurses::newwin( 4, FULL_SCREEN_WIDTH - 2, 19 + iOffsetY, + 1 + iOffsetX ); draw_modselection_borders( win, ctxt ); std::vector headers; @@ -924,7 +921,7 @@ int worldfactory::show_worldgen_tab_modselection( const catacurses::window &win, } //redraw tabs - wmove( win, point( 2, 4 ) ); + wmove( win, 4, 2 ); for( size_t i = 0; i < get_mod_list_tabs().size(); i++ ) { wprintz( win, c_white, "[" ); wprintz( win, ( iCurrentTab == i ) ? hilite( c_light_green ) : c_light_green, @@ -1092,13 +1089,13 @@ int worldfactory::show_worldgen_tab_confirm( const catacurses::window &win, WORL const int iTooltipHeight = 1; const int iContentHeight = FULL_SCREEN_HEIGHT - 3 - iTooltipHeight; - 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; + 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; const char *line_of_32_underscores = "________________________________"; catacurses::window w_confirmation = catacurses::newwin( iContentHeight, FULL_SCREEN_WIDTH - 2, - point( 1 + iOffsetX, iTooltipHeight + 2 + iOffsetY ) ); + iTooltipHeight + 2 + iOffsetY, 1 + iOffsetX ); int namebar_y = 1; int namebar_x = 3 + utf8_width( _( "World Name:" ) ); @@ -1113,9 +1110,6 @@ int worldfactory::show_worldgen_tab_confirm( const catacurses::window &win, WORL ctxt.register_action( "PICK_RANDOM_WORLDNAME" ); std::string worldname = world->world_name; - - // do not switch IME mode now, but restore previous mode on return - ime_sentry sentry( ime_sentry::keep ); do { mvwprintz( w_confirmation, namebar_y, 2, c_white, _( "World Name:" ) ); mvwprintz( w_confirmation, namebar_y, namebar_x, c_light_gray, line_of_32_underscores ); @@ -1217,14 +1211,14 @@ void worldfactory::draw_modselection_borders( const catacurses::window &win, { // make appropriate lines: X & Y coordinate of starting point, length, horizontal/vertical type std::array xs = {{ - 1, 1, FULL_SCREEN_WIDTH / 2 + 2, FULL_SCREEN_WIDTH / 2 - 4, - FULL_SCREEN_WIDTH / 2 + 2 + 1, 1, ( FULL_SCREEN_WIDTH / 2 ) + 2, ( FULL_SCREEN_WIDTH / 2 ) - 4, + ( FULL_SCREEN_WIDTH / 2 ) + 2 } }; std::array ys = {{FULL_SCREEN_HEIGHT - 8, 4, 4, 3, 3}}; std::array ls = {{ - FULL_SCREEN_WIDTH - 2, FULL_SCREEN_WIDTH / 2 - 4, - FULL_SCREEN_WIDTH / 2 - 3, FULL_SCREEN_HEIGHT - 11, 1 + FULL_SCREEN_WIDTH - 2, ( FULL_SCREEN_WIDTH / 2 ) - 4, + ( FULL_SCREEN_WIDTH / 2 ) - 3, FULL_SCREEN_HEIGHT - 11, 1 } }; std::array hv = {{true, true, true, false, false}}; // horizontal line = true, vertical line = false @@ -1462,8 +1456,11 @@ WORLDPTR worldfactory::get_world( const std::string &name ) // Helper predicate to exclude files from deletion when resetting a world directory. static bool isForbidden( const std::string &candidate ) { - return candidate.find( FILENAMES["worldoptions"] ) != std::string::npos || - candidate.find( "mods.json" ) != std::string::npos; + if( candidate.find( FILENAMES["worldoptions"] ) != std::string::npos || + candidate.find( "mods.json" ) != std::string::npos ) { + return true; + } + return false; } void worldfactory::delete_world( const std::string &worldname, const bool delete_folder ) diff --git a/tests/behavior_test.cpp b/tests/behavior_test.cpp index ae6c7bb4183dd..626de482ee11a 100644 --- a/tests/behavior_test.cpp +++ b/tests/behavior_test.cpp @@ -19,7 +19,7 @@ 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( std::string goal, behavior::status_t *status ) { behavior::node_t node; if( !goal.empty() ) { diff --git a/tests/explosion_balance.cpp b/tests/explosion_balance.cpp index 04f7722c4f58d..975e59aef9dfd 100644 --- a/tests/explosion_balance.cpp +++ b/tests/explosion_balance.cpp @@ -112,7 +112,7 @@ static void check_vehicle_damage( const std::string &explosive_id, const std::st // We don't expect any destroyed parts. REQUIRE( before_hp.size() == after_hp.size() ); - for( size_t i = 0; i < before_hp.size(); ++i ) { + for( unsigned int i = 0; i < before_hp.size(); ++i ) { INFO( target_vehicle->parts[ i ].name() ); if( target_vehicle->parts[ i ].info().get_id() == "windshield" || target_vehicle->parts[ i ].info().get_id() == "headlight" ) { diff --git a/tests/ground_destroy_test.cpp b/tests/ground_destroy_test.cpp old mode 100644 new mode 100755 index 5de11d359454e..97b449719b94b --- a/tests/ground_destroy_test.cpp +++ b/tests/ground_destroy_test.cpp @@ -28,11 +28,12 @@ TEST_CASE( "pavement_destroy", "[.]" ) INFO( "ZLEVELS is " << zlevels_set ); clear_map_and_put_player_underground(); // Populate the map with pavement. - g->m.ter_set( tripoint_zero, ter_id( "t_pavement" ) ); + const tripoint pt( 0, 0, 0 ); + g->m.ter_set( pt, ter_id( "t_pavement" ) ); // Destroy it - g->m.destroy( tripoint_zero, true ); - ter_id after_destroy = g->m.ter( tripoint_zero ); + g->m.destroy( pt, true ); + ter_id after_destroy = g->m.ter( pt ); if( after_destroy == flat_roof_id ) { FAIL( flat_roof_id.obj().name() << " found after destroying pavement" ); } else { diff --git a/tests/item_test.cpp b/tests/item_test.cpp index 4d9ded0ad6fde..8d27eba4a5fb2 100644 --- a/tests/item_test.cpp +++ b/tests/item_test.cpp @@ -33,7 +33,7 @@ TEST_CASE( "item_volume", "[item]" ) TEST_CASE( "simple_item_layers", "[item]" ) { - CHECK( item( "arm_warmers" ).get_layer() == UNDERWEAR_LAYER ); + CHECK( item( "arm_warmers" ).get_layer() == UNDERWEAR ); CHECK( item( "10gal_hat" ).get_layer() == REGULAR_LAYER ); CHECK( item( "baldric" ).get_layer() == WAIST_LAYER ); CHECK( item( "aep_suit" ).get_layer() == OUTER_LAYER ); @@ -52,9 +52,9 @@ TEST_CASE( "gun_layer", "[item]" ) TEST_CASE( "stacking_cash_cards", "[item]" ) { // Differently-charged cash cards should stack if neither is zero. - item cash0( "cash_card", calendar::turn_zero, 0 ); - item cash1( "cash_card", calendar::turn_zero, 1 ); - item cash2( "cash_card", calendar::turn_zero, 2 ); + item cash0( "cash_card", calendar::time_of_cataclysm, 0 ); + item cash1( "cash_card", calendar::time_of_cataclysm, 1 ); + item cash2( "cash_card", calendar::time_of_cataclysm, 2 ); CHECK( !cash0.stacks_with( cash1 ) ); CHECK( cash1.stacks_with( cash2 ) ); } diff --git a/tests/line_test.cpp b/tests/line_test.cpp index 8f36c1ee822a5..b8aa967834bca 100644 --- a/tests/line_test.cpp +++ b/tests/line_test.cpp @@ -79,14 +79,14 @@ static std::vector canonical_line_to( TEST_CASE( "test_normalized_angle" ) { - CHECK( get_normalized_angle( point_zero, {10, 0} ) == Approx( 0.0 ) ); - CHECK( get_normalized_angle( point_zero, {0, 10} ) == Approx( 0.0 ) ); - CHECK( get_normalized_angle( point_zero, {-10, 0} ) == Approx( 0.0 ) ); - CHECK( get_normalized_angle( point_zero, {0, -10} ) == Approx( 0.0 ) ); - CHECK( get_normalized_angle( point_zero, {10, 10} ) == Approx( 1.0 ) ); - CHECK( get_normalized_angle( point_zero, {-10, 10} ) == Approx( 1.0 ) ); - CHECK( get_normalized_angle( point_zero, {10, -10} ) == Approx( 1.0 ) ); - CHECK( get_normalized_angle( point_zero, {-10, -10} ) == Approx( 1.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {10, 0} ) == Approx( 0.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {0, 10} ) == Approx( 0.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {-10, 0} ) == Approx( 0.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {0, -10} ) == Approx( 0.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {10, 10} ) == Approx( 1.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {-10, 10} ) == Approx( 1.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {10, -10} ) == Approx( 1.0 ) ); + CHECK( get_normalized_angle( {0, 0}, {-10, -10} ) == Approx( 1.0 ) ); } TEST_CASE( "Test bounds for mapping x/y/z/ offsets to direction enum" ) @@ -251,32 +251,32 @@ TEST_CASE( "Test bounds for mapping x/y/z/ offsets to direction enum" ) TEST_CASE( "squares_closer_to_test" ) { // TODO: make this ordering agnostic. - auto actual = squares_closer_to( tripoint_zero, {10, 0, 0} ); - std::vector expected = {tripoint_east, tripoint_south_east, tripoint_north_east}; + auto actual = squares_closer_to( {0, 0, 0}, {10, 0, 0} ); + std::vector expected = {tripoint( 1, 0, 0 ), tripoint( 1, 1, 0 ), tripoint( 1, -1, 0 )}; CHECK( actual == expected ); - actual = squares_closer_to( tripoint_zero, {-10, -10, 0} ); - expected = {tripoint_north_west, tripoint_west, tripoint_north}; + actual = squares_closer_to( {0, 0, 0}, {-10, -10, 0} ); + expected = {tripoint( -1, -1, 0 ), tripoint( -1, 0, 0 ), tripoint( 0, -1, 0 )}; CHECK( actual == expected ); - actual = squares_closer_to( tripoint_zero, {10, 10, 0} ); - expected = {tripoint_south_east, tripoint_east, tripoint_south}; + actual = squares_closer_to( {0, 0, 0}, {10, 10, 0} ); + expected = {tripoint( 1, 1, 0 ), tripoint( 1, 0, 0 ), tripoint( 0, 1, 0 )}; CHECK( actual == expected ); - actual = squares_closer_to( tripoint_zero, {10, 9, 0} ); - expected = {tripoint_east, tripoint_south_east, tripoint_north_east, tripoint_south}; + actual = squares_closer_to( {0, 0, 0}, {10, 9, 0} ); + expected = {tripoint( 1, 0, 0 ), tripoint( 1, 1, 0 ), tripoint( 1, -1, 0 ), tripoint( 0, 1, 0 )}; CHECK( actual == expected ); - actual = squares_closer_to( tripoint_zero, {10, 1, 0} ); - expected = {tripoint_east, tripoint_south_east, tripoint_north_east, tripoint_south}; + actual = squares_closer_to( {0, 0, 0}, {10, 1, 0} ); + expected = {tripoint( 1, 0, 0 ), tripoint( 1, 1, 0 ), tripoint( 1, -1, 0 ), tripoint( 0, 1, 0 )}; CHECK( actual == expected ); - actual = squares_closer_to( {10, 9, 0}, tripoint_zero ); + actual = squares_closer_to( {10, 9, 0}, {0, 0, 0} ); expected = {tripoint( 9, 9, 0 ), tripoint( 9, 10, 0 ), tripoint( 9, 8, 0 ), tripoint( 10, 8, 0 )}; CHECK( actual == expected ); - actual = squares_closer_to( tripoint_zero, {-10, -9, 0} ); - expected = {tripoint_west, tripoint_south_west, tripoint_north_west, tripoint_north}; + actual = squares_closer_to( {0, 0, 0}, {-10, -9, 0} ); + expected = {tripoint( -1, 0, 0 ), tripoint( -1, 1, 0 ), tripoint( -1, -1, 0 ), tripoint( 0, -1, 0 )}; CHECK( actual == expected ); actual = squares_closer_to( {10, -10, 0}, {10, 10, 0} ); @@ -296,7 +296,7 @@ static void line_to_comparison( const int iterations ) REQUIRE( trig_dist( 0, 0, 0, 0 ) == 0 ); REQUIRE( trig_dist( 0, 0, 1, 0 ) == 1 ); - const int seed = time( nullptr ); + const int seed = time( NULL ); std::srand( seed ); for( int i = 0; i < RANDOM_TEST_NUM; ++i ) { diff --git a/tests/list_test.cpp b/tests/list_test.cpp index d85c7bc0ef4c7..4890ddda09579 100644 --- a/tests/list_test.cpp +++ b/tests/list_test.cpp @@ -995,7 +995,6 @@ TEST_CASE( "list emplace, move, copy, and reverse iterate", "[list]" ) } SECTION( "copy constructor" ) { - // NOLINTNEXTLINE(performance-unnecessary-copy-initialization) cata::list list3( test_list ); bool passed = true; diff --git a/tests/map_iterator_test.cpp b/tests/map_iterator_test.cpp index 63a71d57ee994..b440c5408b918 100644 --- a/tests/map_iterator_test.cpp +++ b/tests/map_iterator_test.cpp @@ -6,15 +6,15 @@ #include "point.h" std::array range_1_2d_centered = { - { {tripoint_north_west}, { tripoint_north}, { tripoint_north_east}, - {tripoint_west}, { tripoint_zero}, { tripoint_east}, - {tripoint_south_west}, { tripoint_south}, { tripoint_south_east} + { {-1, -1, 0}, { 0, -1, 0}, { 1, -1, 0}, + {-1, 0, 0}, { 0, 0, 0}, { 1, 0, 0}, + {-1, 1, 0}, { 0, 1, 0}, { 1, 1, 0} } }; TEST_CASE( "Radius one 2D square centered at origin." ) { - for( const tripoint &candidate : tripoint_range( tripoint_north_west, tripoint_south_east ) ) { + for( const tripoint &candidate : tripoint_range( {-1, -1, 0}, {1, 1, 0} ) ) { REQUIRE( std::find( range_1_2d_centered.begin(), range_1_2d_centered.end(), candidate ) != range_1_2d_centered.end() ); } diff --git a/tests/map_memory.cpp b/tests/map_memory.cpp index 20f8a7cbaabe5..037ed299076b0 100644 --- a/tests/map_memory.cpp +++ b/tests/map_memory.cpp @@ -12,7 +12,7 @@ #include "lru_cache.h" #include "point.h" -static constexpr tripoint p1{ tripoint_above }; +static constexpr tripoint p1{ 0, 0, 1 }; static constexpr tripoint p2{ 0, 0, 2 }; static constexpr tripoint p3{ 0, 0, 3 }; diff --git a/tests/map_test.cpp b/tests/map_test.cpp index 81ce9179eaa9d..5ae8658c2231d 100644 --- a/tests/map_test.cpp +++ b/tests/map_test.cpp @@ -16,7 +16,7 @@ TEST_CASE( "destroy_grabbed_furniture" ) GIVEN( "Furniture grabbed by the player" ) { const tripoint test_origin( 60, 60, 0 ); g->u.setpos( test_origin ); - const tripoint grab_point = test_origin + tripoint_east; + const tripoint grab_point = test_origin + tripoint( 1, 0, 0 ); g->m.furn_set( grab_point, furn_id( "f_chair" ) ); g->u.grab( OBJECT_FURNITURE, grab_point ); WHEN( "The furniture grabbed by the player is destroyed" ) { @@ -37,7 +37,7 @@ TEST_CASE( "map_bounds_checking" ) // inelegant solution. clear_map(); map m; - m.load( tripoint_zero, false ); + m.load( 0, 0, 0, false ); for( int x = -1; x <= MAPSIZE_X; ++x ) { for( int y = -1; y <= MAPSIZE_Y; ++y ) { for( int z = -OVERMAP_DEPTH - 1; z <= OVERMAP_HEIGHT + 1; ++z ) { @@ -62,7 +62,7 @@ TEST_CASE( "tinymap_bounds_checking" ) // inelegant solution. clear_map(); tinymap m; - m.load( tripoint_zero, false ); + m.load( 0, 0, 0, false ); for( int x = -1; x <= SEEX * 2; ++x ) { for( int y = -1; y <= SEEY * 2; ++y ) { for( int z = -OVERMAP_DEPTH - 1; z <= OVERMAP_HEIGHT + 1; ++z ) { diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index c3b4427b322b6..6bc226069c277 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -94,7 +94,9 @@ static int can_catch_player( const std::string &monster_type, const tripoint &di test_player.setpos( { 65, 65, 0 } ); test_player.set_moves( 0 ); // Give the player a head start. - const tripoint monster_start = { -10 * direction_of_flight + test_player.pos() + const tripoint monster_start = { test_player.pos().x - ( 10 * direction_of_flight.x ), + test_player.pos().y - ( 10 * direction_of_flight.y ), + test_player.pos().z - ( 10 * direction_of_flight.z ) }; monster &test_monster = spawn_test_monster( monster_type, monster_start ); // Get it riled up and give it a goal. @@ -164,14 +166,14 @@ static int can_catch_player( const std::string &monster_type, const tripoint &di static void check_shamble_speed( const std::string &monster_type, const tripoint &destination ) { // Scale the scaling factor based on the ratio of diagonal to cardinal steps. - const float slope = get_normalized_angle( point_zero, destination.xy() ); + const float slope = get_normalized_angle( {0, 0}, {destination.x, destination.y} ); const float diagonal_multiplier = 1.0 + ( get_option( "CIRCLEDIST" ) ? ( slope * 0.41 ) : 0.0 ); INFO( monster_type << " " << destination ); // Wandering makes things nondeterministic, so look at the distribution rather than a target number. move_statistics move_stats; for( int i = 0; i < 10; ++i ) { - move_stats.add( moves_to_destination( monster_type, tripoint_zero, destination ) ); + move_stats.add( moves_to_destination( monster_type, {0, 0, 0}, destination ) ); if( ( move_stats.avg() / ( 10000.0 * diagonal_multiplier ) ) == Approx( 1.0 ).epsilon( 0.02 ) ) { break; @@ -263,11 +265,11 @@ static void monster_check() { const float diagonal_multiplier = ( get_option( "CIRCLEDIST" ) ? 1.41 : 1.0 ); // Have a monster walk some distance in a direction and measure how long it takes. - float vert_move = moves_to_destination( "mon_pig", tripoint_zero, {100, 0, 0} ); + float vert_move = moves_to_destination( "mon_pig", {0, 0, 0}, {100, 0, 0} ); CHECK( ( vert_move / 10000.0 ) == Approx( 1.0 ) ); - int horiz_move = moves_to_destination( "mon_pig", tripoint_zero, {0, 100, 0} ); + int horiz_move = moves_to_destination( "mon_pig", {0, 0, 0}, {0, 100, 0} ); CHECK( ( horiz_move / 10000.0 ) == Approx( 1.0 ) ); - int diag_move = moves_to_destination( "mon_pig", tripoint_zero, {100, 100, 0} ); + int diag_move = moves_to_destination( "mon_pig", {0, 0, 0}, {100, 100, 0} ); CHECK( ( diag_move / ( 10000.0 * diagonal_multiplier ) ) == Approx( 1.0 ).epsilon( 0.05 ) ); check_shamble_speed( "mon_pig", {100, 0, 0} ); @@ -292,10 +294,10 @@ static void monster_check() // Verify that a walking player can escape from a zombie, but is caught by a zombie dog. INFO( "Trigdist is " << ( get_option( "CIRCLEDIST" ) ? "on" : "off" ) ); - CHECK( can_catch_player( "mon_zombie", tripoint_east ) < 0 ); - CHECK( can_catch_player( "mon_zombie", tripoint_south_east ) < 0 ); - CHECK( can_catch_player( "mon_zombie_dog", tripoint_east ) > 0 ); - CHECK( can_catch_player( "mon_zombie_dog", tripoint_south_east ) > 0 ); + CHECK( can_catch_player( "mon_zombie", {1, 0, 0} ) < 0 ); + CHECK( can_catch_player( "mon_zombie", {1, 1, 0} ) < 0 ); + CHECK( can_catch_player( "mon_zombie_dog", {1, 0, 0} ) > 0 ); + CHECK( can_catch_player( "mon_zombie_dog", {1, 1, 0} ) > 0 ); } // Write out a map of slope at which monster is moving to time required to reach their destination. diff --git a/tests/name_test.cpp b/tests/name_test.cpp index 61e48e1ff0ac3..8b2de133c3c15 100644 --- a/tests/name_test.cpp +++ b/tests/name_test.cpp @@ -9,10 +9,10 @@ class IsOneOf : public Catch::MatcherBase std::set< std::string > values; public: IsOneOf( std::set< std::string > v ): values{v} {} - bool match( std::string const &s ) const override { + virtual bool match( std::string const &s ) const override { return values.count( s ) > 0; } - std::string describe() const override { + virtual std::string describe() const override { std::string s = "is one of {"; for( auto const &i : values ) { s += i + ", "; diff --git a/tests/new_character_test.cpp b/tests/new_character_test.cpp index cc4bcf520e582..1c90fdf6b3167 100644 --- a/tests/new_character_test.cpp +++ b/tests/new_character_test.cpp @@ -39,7 +39,7 @@ static std::vector next_subset( const std::vector &set ) ++bitset; // Check each bit position for a match - for( size_t idx = 0; idx < set.size(); idx++ ) { + for( unsigned idx = 0; idx < set.size(); idx++ ) { if( bitset & ( 1 << idx ) ) { ret.push_back( set[idx] ); } diff --git a/tests/npc_talk_test.cpp b/tests/npc_talk_test.cpp index 5c0087ab5c279..b49c4935f2450 100644 --- a/tests/npc_talk_test.cpp +++ b/tests/npc_talk_test.cpp @@ -80,7 +80,7 @@ static void change_om_type( const std::string &new_type ) omt_ref = oter_id( new_type ); } -static npc &prep_test( dialogue &d ) +TEST_CASE( "npc_talk_test" ) { clear_player(); CHECK( !g->u.in_vehicle ); @@ -91,26 +91,13 @@ static npc &prep_test( dialogue &d ) npc &talker_npc = create_test_talker(); + dialogue d; d.alpha = &g->u; d.beta = &talker_npc; - return talker_npc; -} - -TEST_CASE( "npc_talk_start", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); - d.add_topic( "TALK_TEST_START" ); gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); -} - -TEST_CASE( "npc_talk_stats", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); g->u.str_cur = 8; g->u.dex_cur = 8; @@ -138,37 +125,13 @@ TEST_CASE( "npc_talk_stats", "[npc_talk]" ) CHECK( d.responses[2].text == "This is a low dexterity test response." ); CHECK( d.responses[3].text == "This is a low intelligence test response." ); CHECK( d.responses[4].text == "This is a low perception test response." ); -} - -TEST_CASE( "npc_talk_skills", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); - - const skill_id skill( "driving" ); - - g->u.set_skill_level( skill, 8 ); - - d.add_topic( "TALK_TEST_SIMPLE_SKILLS" ); - gen_response_lines( d, 2 ); - CHECK( d.responses[0].text == "This is a basic test response." ); - CHECK( d.responses[1].text == "This is a driving test response." ); - - g->u.set_skill_level( skill, 6 ); + g->u.str_cur = 8; + g->u.dex_cur = 8; + g->u.int_cur = 8; + g->u.per_cur = 8; gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); - d.add_topic( "TALK_TEST_NEGATED_SKILLS" ); - gen_response_lines( d, 2 ); - CHECK( d.responses[0].text == "This is a basic test response." ); - CHECK( d.responses[1].text == "This is a low driving test response." ); -} - -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() ) { g->u.unset_mutation( tr ); } @@ -207,12 +170,6 @@ TEST_CASE( "npc_talk_wearing_and_trait", "[npc_talk]" ) CHECK( d.responses[3].text == "This is a npc trait flags test response." ); g->u.toggle_trait( trait_id( "PSYCHOPATH" ) ); talker_npc.toggle_trait( trait_id( "SAPIOVORE" ) ); -} - -TEST_CASE( "npc_talk_effect", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_EFFECT" ); gen_response_lines( d, 1 ); @@ -227,12 +184,6 @@ TEST_CASE( "npc_talk_effect", "[npc_talk]" ) CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an npc effect test response." ); CHECK( d.responses[2].text == "This is a player effect test response." ); -} - -TEST_CASE( "npc_talk_service", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_SERVICE" ); g->u.cash = 0; @@ -249,12 +200,6 @@ TEST_CASE( "npc_talk_service", "[npc_talk]" ) CHECK( d.responses[1].text == "This is a cash test response." ); CHECK( d.responses[2].text == "This is an npc service test response." ); CHECK( d.responses[3].text == "This is an npc available test response." ); -} - -TEST_CASE( "npc_talk_location", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); change_om_type( "pond_swamp_north" ); d.add_topic( "TALK_TEST_LOCATION" ); @@ -269,12 +214,6 @@ TEST_CASE( "npc_talk_location", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a faction camp any test response." ); -} - -TEST_CASE( "npc_talk_role", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_NPC_ROLE" ); talker_npc.companion_mission_role_id = "NO_TEST_ROLE"; @@ -284,12 +223,6 @@ TEST_CASE( "npc_talk_role", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a nearby role test response." ); -} - -TEST_CASE( "npc_talk_class", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_NPC_CLASS" ); talker_npc.myclass = npc_class_id( "NC_NONE" ); @@ -299,12 +232,6 @@ TEST_CASE( "npc_talk_class", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a class test response." ); -} - -TEST_CASE( "npc_talk_allies", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); for( npc *guy : g->allies() ) { talk_function::leave( *guy ); @@ -314,12 +241,6 @@ TEST_CASE( "npc_talk_allies", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a npc allies 1 test response." ); -} - -TEST_CASE( "npc_talk_rules", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_NPC_RULES" ); gen_response_lines( d, 1 ); @@ -333,12 +254,6 @@ TEST_CASE( "npc_talk_rules", "[npc_talk]" ) CHECK( d.responses[2].text == "This is a npc aim rule test response." ); CHECK( d.responses[3].text == "This is a npc rule test response." ); talker_npc.rules.clear_flag( ally_rule::use_silent ); -} - -TEST_CASE( "npc_talk_needs", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_NPC_NEEDS" ); gen_response_lines( d, 1 ); @@ -351,12 +266,6 @@ TEST_CASE( "npc_talk_needs", "[npc_talk]" ) CHECK( d.responses[1].text == "This is a npc thirst test response." ); CHECK( d.responses[2].text == "This is a npc hunger test response." ); CHECK( d.responses[3].text == "This is a npc fatigue test response." ); -} - -TEST_CASE( "npc_talk_mission_goal", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_MISSION_GOAL" ); gen_response_lines( d, 1 ); @@ -375,38 +284,32 @@ TEST_CASE( "npc_talk_mission_goal", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a mission goal test response." ); -} -TEST_CASE( "npc_talk_season", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); - - const time_point old_calendar = calendar::turn; - calendar::turn = calendar::start_of_cataclysm; + const calendar old_calendar = calendar::turn; + calendar::turn = calendar::start; d.add_topic( "TALK_TEST_SEASON" ); gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a season spring test response." ); - calendar::turn += calendar::season_length(); + calendar::turn += to_turns( calendar::season_length() ); gen_response_lines( d, 3 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a days since cataclysm 30 test response." ); CHECK( d.responses[2].text == "This is a season summer test response." ); - calendar::turn += calendar::season_length(); + calendar::turn += to_turns( calendar::season_length() ); gen_response_lines( d, 4 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a days since cataclysm 30 test response." ); CHECK( d.responses[2].text == "This is a days since cataclysm 120 test response." ); CHECK( d.responses[3].text == "This is a season autumn test response." ); - calendar::turn += calendar::season_length(); + calendar::turn += to_turns( calendar::season_length() ); gen_response_lines( d, 5 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a days since cataclysm 30 test response." ); CHECK( d.responses[2].text == "This is a days since cataclysm 120 test response." ); CHECK( d.responses[3].text == "This is a days since cataclysm 210 test response." ); CHECK( d.responses[4].text == "This is a season winter test response." ); - calendar::turn += calendar::season_length(); + calendar::turn += to_turns( calendar::season_length() ); gen_response_lines( d, 6 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a season spring test response." ); @@ -414,31 +317,17 @@ TEST_CASE( "npc_talk_season", "[npc_talk]" ) CHECK( d.responses[3].text == "This is a days since cataclysm 120 test response." ); CHECK( d.responses[4].text == "This is a days since cataclysm 210 test response." ); CHECK( d.responses[5].text == "This is a days since cataclysm 300 test response." ); - calendar::turn = old_calendar; -} - -TEST_CASE( "npc_talk_time", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); - const time_point old_calendar = calendar::turn; - calendar::turn = to_turn( sunrise( calendar::turn ) + 4_hours ); + calendar::turn = calendar::turn.sunrise() + HOURS( 4 ); d.add_topic( "TALK_TEST_TIME" ); gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a is day test response." ); - calendar::turn = to_turn( sunset( calendar::turn ) + 2_hours ); + calendar::turn = calendar::turn.sunset() + HOURS( 2 ); gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a is night test response." ); calendar::turn = old_calendar; -} - -TEST_CASE( "npc_talk_switch", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); d.add_topic( "TALK_TEST_SWITCH" ); g->u.cash = 1000; @@ -462,12 +351,6 @@ TEST_CASE( "npc_talk_switch", "[npc_talk]" ) CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an switch default 2 test response." ); CHECK( d.responses[2].text == "This is another basic test response." ); -} - -TEST_CASE( "npc_talk_or", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_OR" ); g->u.cash = 0; @@ -478,14 +361,7 @@ TEST_CASE( "npc_talk_or", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an or trait test response." ); -} - -TEST_CASE( "npc_talk_and", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); - g->u.toggle_trait( trait_id( "ELFA_EARS" ) ); d.add_topic( "TALK_TEST_AND" ); gen_response_lines( d, 1 ); CHECK( d.responses[0].text == "This is a basic test response." ); @@ -494,12 +370,6 @@ TEST_CASE( "npc_talk_and", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is an and cash, available, trait test response." ); -} - -TEST_CASE( "npc_talk_nested", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); d.add_topic( "TALK_TEST_NESTED" ); talker_npc.add_effect( effect_currently_busy, 9999_turns ); @@ -511,12 +381,6 @@ TEST_CASE( "npc_talk_nested", "[npc_talk]" ) gen_response_lines( d, 2 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a complex nested test response." ); -} - -TEST_CASE( "npc_talk_conditionals", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); d.add_topic( "TALK_TEST_TRUE_FALSE_CONDITIONAL" ); gen_response_lines( d, 3 ); @@ -538,12 +402,6 @@ TEST_CASE( "npc_talk_conditionals", "[npc_talk]" ) CHECK( trial_success == false ); trial_effect = trial_success ? chosen.success : chosen.failure; CHECK( trial_effect.next_topic.id == "TALK_TEST_FALSE_CONDITION_NEXT" ); -} - -TEST_CASE( "npc_talk_items", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); g->u.remove_items_with( []( const item & it ) { return it.get_category().id() == "books" || it.get_category().id() == "food" || @@ -703,12 +561,6 @@ TEST_CASE( "npc_talk_items", "[npc_talk]" ) effects.apply( d ); CHECK( has_item( g->u, "beer", 0 ) ); CHECK( !has_item( g->u, "beer", 1 ) ); -} - -TEST_CASE( "npc_talk_combat_commands", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); d.add_topic( "TALK_COMBAT_COMMANDS" ); gen_response_lines( d, 10 ); @@ -722,19 +574,13 @@ TEST_CASE( "npc_talk_combat_commands", "[npc_talk]" ) CHECK( d.responses[7].text == "Don't worry about shooting an ally." ); CHECK( d.responses[8].text == "Hold the line: don't move onto obstacles adjacent to me." ); CHECK( d.responses[9].text == "Never mind." ); -} - -TEST_CASE( "npc_talk_vars", "[npc_talk]" ) -{ - dialogue d; - prep_test( d ); d.add_topic( "TALK_TEST_VARS" ); gen_response_lines( d, 3 ); CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a u_add_var test response." ); CHECK( d.responses[2].text == "This is a npc_add_var test response." ); - talk_effect_t &effects = d.responses[1].success; + effects = d.responses[1].success; effects.apply( d ); effects = d.responses[2].success; effects.apply( d ); @@ -750,12 +596,6 @@ TEST_CASE( "npc_talk_vars", "[npc_talk]" ) CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a u_add_var test response." ); CHECK( d.responses[2].text == "This is a npc_add_var test response." ); -} - -TEST_CASE( "npc_talk_bionics", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); g->u.clear_bionics(); talker_npc.clear_bionics(); @@ -768,15 +608,8 @@ TEST_CASE( "npc_talk_bionics", "[npc_talk]" ) CHECK( d.responses[0].text == "This is a basic test response." ); CHECK( d.responses[1].text == "This is a u_has_bionics bio_ads test response." ); CHECK( d.responses[2].text == "This is a npc_has_bionics ANY response." ); -} - -TEST_CASE( "npc_talk_effects", "[npc_talk]" ) -{ - dialogue d; - npc &talker_npc = prep_test( d ); // speaker effects just use are owed because I don't want to do anything complicated - g->u.cash = 1000; talker_npc.op_of_u.owed = 2000; CHECK( talker_npc.op_of_u.owed == 2000 ); d.add_topic( "TALK_TEST_SPEAKER_EFFECT_SIMPLE" ); @@ -828,10 +661,10 @@ TEST_CASE( "npc_talk_effects", "[npc_talk]" ) REQUIRE( talker_npc.op_of_u.owed == 1500 ); // test change class - talker_npc.myclass = npc_class_id( "NC_TEST_CLASS" ); + REQUIRE( talker_npc.myclass == npc_class_id( "NC_TEST_CLASS" ) ); d.add_topic( "TALK_TEST_EFFECTS" ); gen_response_lines( d, 19 ); - talk_effect_t &effects = d.responses[18].success; + effects = d.responses[18].success; effects.apply( d ); CHECK( talker_npc.myclass == npc_class_id( "NC_NONE" ) ); } diff --git a/tests/npc_test.cpp b/tests/npc_test.cpp index c47f2d17d6aec..f411264b48068 100644 --- a/tests/npc_test.cpp +++ b/tests/npc_test.cpp @@ -33,9 +33,9 @@ class Creature; static void on_load_test( npc &who, const time_duration &from, const time_duration &to ) { - calendar::turn = to_turn( calendar::turn_zero + from ); + calendar::turn = to_turn( calendar::time_of_cataclysm + from ); who.on_unload(); - calendar::turn = to_turn( calendar::turn_zero + to ); + calendar::turn = to_turn( calendar::time_of_cataclysm + to ); who.on_load(); } @@ -138,8 +138,8 @@ TEST_CASE( "on_load-similar-to-per-turn", "[.]" ) const int five_min_ticks = 2; on_load_test( on_load_npc, 0_turns, 5_minutes * five_min_ticks ); for( time_duration turn = 0_turns; turn < 5_minutes * five_min_ticks; turn += 1_turns ) { - iterated_npc.update_body( calendar::turn_zero + turn, - calendar::turn_zero + turn + 1_turns ); + iterated_npc.update_body( calendar::time_of_cataclysm + turn, + calendar::time_of_cataclysm + turn + 1_turns ); } const int margin = 2; @@ -156,8 +156,8 @@ TEST_CASE( "on_load-similar-to-per-turn", "[.]" ) const auto five_min_ticks = 6_hours / 5_minutes; on_load_test( on_load_npc, 0_turns, 5_minutes * five_min_ticks ); for( time_duration turn = 0_turns; turn < 5_minutes * five_min_ticks; turn += 1_turns ) { - iterated_npc.update_body( calendar::turn_zero + turn, - calendar::turn_zero + turn + 1_turns ); + iterated_npc.update_body( calendar::time_of_cataclysm + turn, + calendar::time_of_cataclysm + turn + 1_turns ); } const int margin = 10; @@ -348,8 +348,8 @@ TEST_CASE( "npc-movement" ) if( type == 'V' || type == 'W' || type == 'M' ) { vehicle *veh = g->m.add_vehicle( vproto_id( "none" ), p, 270, 0, 0 ); REQUIRE( veh != nullptr ); - veh->install_part( point_zero, vpart_frame_vertical ); - veh->install_part( point_zero, vpart_seat ); + veh->install_part( point( 0, 0 ), vpart_frame_vertical ); + veh->install_part( point( 0, 0 ), vpart_seat ); g->m.add_vehicle_to_cache( veh ); } // spawn npcs diff --git a/tests/optional_test.cpp b/tests/optional_test.cpp index 18b87cccbc339..1cb64534a34f9 100644 --- a/tests/optional_test.cpp +++ b/tests/optional_test.cpp @@ -32,7 +32,7 @@ TEST_CASE( "optional_assignment_works", "[optional]" ) a = d; REQUIRE( a ); CHECK( *a == 4 ); - a = d ; + a = std::move( d ); REQUIRE( a ); CHECK( *a == 4 ); diff --git a/tests/overmap_noise_test.cpp b/tests/overmap_noise_test.cpp index 188dcb40d5a78..a32bcced22226 100644 --- a/tests/overmap_noise_test.cpp +++ b/tests/overmap_noise_test.cpp @@ -51,19 +51,19 @@ static void export_interpreted_noise( TEST_CASE( "om_noise_layer_forest_export", "[.]" ) { - const om_noise::om_noise_layer_forest f( point_zero, 1920237457 ); + const om_noise::om_noise_layer_forest f( {0, 0}, 1920237457 ); export_raw_noise( "forest-map-raw.pgm", f, OMAPX, OMAPY ); } TEST_CASE( "om_noise_layer_floodplain_export", "[.]" ) { - const om_noise::om_noise_layer_floodplain f( point_zero, 1920237457 ); + const om_noise::om_noise_layer_floodplain f( {0, 0}, 1920237457 ); export_raw_noise( "floodplain-map-raw.pgm", f, OMAPX, OMAPY ); } TEST_CASE( "om_noise_layer_lake_export", "[.]" ) { - const om_noise::om_noise_layer_lake f( point_zero, 1920237457 ); + const om_noise::om_noise_layer_lake f( {0, 0}, 1920237457 ); export_raw_noise( "lake-map-raw.pgm", f, OMAPX * 5, OMAPY * 5 ); export_interpreted_noise( "lake-map-interp.pgm", f, OMAPX * 5, OMAPY * 5, 0.25 ); } diff --git a/tests/overmap_test.cpp b/tests/overmap_test.cpp index fff90729a3af3..b8ca408b733d5 100644 --- a/tests/overmap_test.cpp +++ b/tests/overmap_test.cpp @@ -36,7 +36,7 @@ TEST_CASE( "set_and_get_overmap_scents" ) TEST_CASE( "default_overmap_generation_always_succeeds" ) { int overmaps_to_construct = 10; - for( point candidate_addr : closest_points_first( 10, point_zero ) ) { + for( point candidate_addr : closest_points_first( 10, { 0, 0 } ) ) { // Skip populated overmaps. if( overmap_buffer.has( candidate_addr ) ) { continue; @@ -57,7 +57,7 @@ TEST_CASE( "default_overmap_generation_always_succeeds" ) TEST_CASE( "default_overmap_generation_has_non_mandatory_specials_at_origin" ) { - const point origin = point_zero; + const point origin = point( 0, 0 ); overmap_special mandatory; overmap_special optional; diff --git a/tests/point_test.cpp b/tests/point_test.cpp index 6f486b7d3d827..d626c7c8e000b 100644 --- a/tests/point_test.cpp +++ b/tests/point_test.cpp @@ -6,41 +6,39 @@ TEST_CASE( "rectangle_containment", "[point]" ) { - rectangle r( point( 0, 0 ), point( 2, 2 ) ); // NOLINT(cata-use-named-point-constants) - CHECK( !r.contains_half_open( point( 0, -1 ) ) ); // NOLINT(cata-use-named-point-constants) - CHECK( r.contains_half_open( point( 0, 0 ) ) ); // NOLINT(cata-use-named-point-constants) - CHECK( r.contains_half_open( point( 0, 1 ) ) ); // NOLINT(cata-use-named-point-constants) + rectangle r( point( 0, 0 ), point( 2, 2 ) ); + CHECK( !r.contains_half_open( point( 0, -1 ) ) ); + CHECK( r.contains_half_open( point( 0, 0 ) ) ); + CHECK( r.contains_half_open( point( 0, 1 ) ) ); CHECK( !r.contains_half_open( point( 0, 2 ) ) ); CHECK( !r.contains_half_open( point( 0, 3 ) ) ); - CHECK( !r.contains_inclusive( point( 0, -1 ) ) ); // NOLINT(cata-use-named-point-constants) - CHECK( r.contains_inclusive( point( 0, 0 ) ) ); // NOLINT(cata-use-named-point-constants) - CHECK( r.contains_inclusive( point( 0, 1 ) ) ); // NOLINT(cata-use-named-point-constants) + CHECK( !r.contains_inclusive( point( 0, -1 ) ) ); + CHECK( r.contains_inclusive( point( 0, 0 ) ) ); + CHECK( r.contains_inclusive( point( 0, 1 ) ) ); CHECK( r.contains_inclusive( point( 0, 2 ) ) ); CHECK( !r.contains_inclusive( point( 0, 3 ) ) ); } TEST_CASE( "box_shrinks", "[point]" ) { - box b( tripoint_zero, tripoint( 3, 3, 3 ) ); + box b( tripoint( 0, 0, 0 ), tripoint( 3, 3, 3 ) ); CAPTURE( b ); - CHECK( b.contains_half_open( tripoint( 1, 0, 0 ) ) ); // NOLINT(cata-use-named-point-constants) + CHECK( b.contains_half_open( tripoint( 1, 0, 0 ) ) ); CHECK( b.contains_half_open( tripoint( 2, 1, 2 ) ) ); - b.shrink( tripoint( 1, 1, 0 ) ); // NOLINT(cata-use-named-point-constants) + b.shrink( tripoint( 1, 1, 0 ) ); CAPTURE( b ); // Shrank in the x and y directions - // NOLINTNEXTLINE(cata-use-named-point-constants) CHECK( !b.contains_half_open( tripoint( 1, 0, 0 ) ) ); CHECK( !b.contains_half_open( tripoint( 2, 1, 2 ) ) ); // Didn't shrink in the z direction - // NOLINTNEXTLINE(cata-use-named-point-constants) CHECK( b.contains_half_open( tripoint( 1, 1, 0 ) ) ); CHECK( b.contains_half_open( tripoint( 1, 1, 2 ) ) ); } TEST_CASE( "point_to_string", "[point]" ) { - CHECK( point_south.to_string() == "(0,1)" ); + CHECK( point( 0, 1 ).to_string() == "(0,1)" ); CHECK( tripoint( -1, 0, 1 ).to_string() == "(-1,0,1)" ); } diff --git a/tests/ranged_balance.cpp b/tests/ranged_balance.cpp index 607208a219075..3ecce9efec55a 100644 --- a/tests/ranged_balance.cpp +++ b/tests/ranged_balance.cpp @@ -54,7 +54,7 @@ static void arm_shooter( npc &shooter, const std::string &gun_type, { shooter.remove_weapon(); - const itype_id &gun_id( gun_type ); + const itype_id gun_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 = gun.ammo_default(); @@ -249,7 +249,7 @@ TEST_CASE( "competent_shooter_accuracy", "[ranged] [balance]" ) { clear_map(); standard_npc shooter( "Shooter", {}, 5, 10, 10, 10, 10 ); - equip_shooter( shooter, { "cloak_wool", "footrags_wool", "gloves_wraps_fur", "glasses_safety", "balclava" } ); + equip_shooter( shooter, { "cloak_wool", "footrags_wool", "gloves_wraps_fur", "veil_wedding" } ); assert_encumbrance( shooter, 5 ); SECTION( "a skilled shooter with an accurate pistol" ) { diff --git a/tests/reload_option.cpp b/tests/reload_option.cpp index 4064ee57b4b2c..b453fe27ff151 100644 --- a/tests/reload_option.cpp +++ b/tests/reload_option.cpp @@ -16,7 +16,7 @@ TEST_CASE( "revolver_reload_option", "[reload],[reload_option],[gun]" ) REQUIRE( gun.has_flag( "RELOAD_ONE" ) ); REQUIRE( gun.ammo_remaining() == 0 ); - const item::reload_option gun_option( &dummy, &gun, &gun, ammo_location ); + const item::reload_option gun_option( &dummy, &gun, &gun, std::move( ammo_location ) ); REQUIRE( gun_option.qty() == 1 ); ammo_location = item_location( dummy, &ammo ); @@ -24,13 +24,13 @@ TEST_CASE( "revolver_reload_option", "[reload],[reload_option],[gun]" ) REQUIRE( speedloader.ammo_remaining() == 0 ); const item::reload_option speedloader_option( &dummy, &speedloader, &speedloader, - ammo_location ); + std::move( ammo_location ) ); CHECK( speedloader_option.qty() == speedloader.ammo_capacity() ); speedloader.contents.push_back( ammo ); item_location speedloader_location( dummy, &speedloader ); const item::reload_option gun_speedloader_option( &dummy, &gun, &gun, - speedloader_location ); + std::move( speedloader_location ) ); CHECK( gun_speedloader_option.qty() == speedloader.ammo_capacity() ); } @@ -43,13 +43,13 @@ TEST_CASE( "magazine_reload_option", "[reload],[reload_option],[gun]" ) item_location ammo_location( dummy, &ammo ); const item::reload_option magazine_option( &dummy, &magazine, &magazine, - ammo_location ); + std::move( ammo_location ) ); CHECK( magazine_option.qty() == magazine.ammo_capacity() ); magazine.contents.push_back( ammo ); item_location magazine_location( dummy, &magazine ); item &gun = dummy.i_add( item( "glock_19", 0, 0 ) ); - const item::reload_option gun_option( &dummy, &gun, &gun, magazine_location ); + const item::reload_option gun_option( &dummy, &gun, &gun, std::move( magazine_location ) ); CHECK( gun_option.qty() == 1 ); } @@ -65,14 +65,14 @@ TEST_CASE( "belt_reload_option", "[reload],[reload_option],[gun]" ) belt.ammo_unset(); REQUIRE( belt.ammo_remaining() == 0 ); - const item::reload_option belt_option( &dummy, &belt, &belt, ammo_location ); + const item::reload_option belt_option( &dummy, &belt, &belt, std::move( ammo_location ) ); CHECK( belt_option.qty() == belt.ammo_capacity() ); belt.contents.push_back( ammo ); item_location belt_location( dummy, &ammo ); item &gun = dummy.i_add( item( "m134", 0, 0 ) ); - const item::reload_option gun_option( &dummy, &gun, &gun, belt_location ); + const item::reload_option gun_option( &dummy, &gun, &gun, std::move( belt_location ) ); CHECK( gun_option.qty() == 1 ); } @@ -85,7 +85,7 @@ TEST_CASE( "canteen_reload_option", "[reload],[reload_option],[liquid]" ) item &bottle = dummy.i_add( item( "bottle_plastic" ) ); item_location water_location( dummy, &water ); - const item::reload_option bottle_option( &dummy, &bottle, &bottle, water_location ); + const item::reload_option bottle_option( &dummy, &bottle, &bottle, std::move( water_location ) ); CHECK( bottle_option.qty() == bottle.get_remaining_capacity_for_liquid( water, true ) ); // Add water to bottle? @@ -94,7 +94,7 @@ TEST_CASE( "canteen_reload_option", "[reload],[reload_option],[liquid]" ) item_location bottle_location( dummy, &bottle ); const item::reload_option canteen_option( &dummy, &canteen, &canteen, - bottle_location ); + std::move( bottle_location ) ); CHECK( canteen_option.qty() == 2 ); } diff --git a/tests/shadowcasting_test.cpp b/tests/shadowcasting_test.cpp index 970472e00837e..a6f10bfcc5756 100644 --- a/tests/shadowcasting_test.cpp +++ b/tests/shadowcasting_test.cpp @@ -33,7 +33,8 @@ static void oldCastLight( float ( &output_cache )[MAPSIZE * SEEX][MAPSIZE * SEEY return; } bool blocked = false; - tripoint delta; + static constexpr tripoint origin( 0, 0, 0 ); + tripoint delta( 0, 0, 0 ); for( int distance = row; distance <= radius && !blocked; distance++ ) { delta.y = -distance; for( delta.x = -distance; delta.x <= 0; delta.x++ ) { @@ -49,7 +50,7 @@ static void oldCastLight( float ( &output_cache )[MAPSIZE * SEEX][MAPSIZE * SEEY } //check if it's within the visible area and mark visible if so - if( rl_dist( tripoint_zero, delta ) <= radius ) { + if( rl_dist( origin, delta ) <= radius ) { output_cache[currentX][currentY] = LIGHT_TRANSPARENCY_CLEAR; } @@ -545,7 +546,6 @@ TEST_CASE( "shadowcasting_pillar_behavior_cardinally_adjacent", "[shadowcasting] TEST_CASE( "shadowcasting_pillar_behavior_2_1_diagonal_gap", "[shadowcasting]" ) { - // NOLINTNEXTLINE(cata-use-named-point-constants) grid_overlay test_case( { 1, 1 }, LIGHT_TRANSPARENCY_CLEAR ); test_case.data = { {T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T}, @@ -559,7 +559,6 @@ TEST_CASE( "shadowcasting_pillar_behavior_2_1_diagonal_gap", "[shadowcasting]" ) {T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T} }; - // NOLINTNEXTLINE(cata-use-named-point-constants) grid_overlay expected_results( { 1, 1 }, LIGHT_TRANSPARENCY_CLEAR ); expected_results.data = { {V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V}, diff --git a/tests/stomach_contents_tests.cpp b/tests/stomach_contents_tests.cpp index f22718e113ece..a48dfc0f60197 100644 --- a/tests/stomach_contents_tests.cpp +++ b/tests/stomach_contents_tests.cpp @@ -14,7 +14,7 @@ static void reset_time() { - calendar::turn = calendar::turn_zero; + calendar::turn = calendar( 0 ); player &p = g->u; p.set_stored_kcal( p.get_healthy_kcal() ); p.set_hunger( 0 ); @@ -24,7 +24,7 @@ static void reset_time() static void pass_time( player &p, time_duration amt ) { for( auto turns = 1_turns; turns < amt; turns += 1_turns ) { - calendar::turn += 1_turns; + calendar::turn.increment(); p.update_body(); } } diff --git a/tests/string_formatter_test.cpp b/tests/string_formatter_test.cpp index b6216878a6454..1dec5f117cb14 100644 --- a/tests/string_formatter_test.cpp +++ b/tests/string_formatter_test.cpp @@ -75,7 +75,6 @@ void test_lvalues( const std::string &expected, const char *const pattern, const test_for_expected( expected, pattern, T( value ) ); // T && T lvalue( value ); test_for_expected( expected, pattern, lvalue ); // T & - // NOLINTNEXTLINE(performance-unnecessary-copy-initialization) const T const_lvalue( value ); test_for_expected( expected, pattern, const_lvalue ); // const T & } diff --git a/tests/submap_test.cpp b/tests/submap_test.cpp index cfc52c5d2532d..5d53dfef02fb6 100644 --- a/tests/submap_test.cpp +++ b/tests/submap_test.cpp @@ -9,7 +9,7 @@ TEST_CASE( "submap rotation", "[submap]" ) { // Corners are labelled starting from the upper-left one, clockwise. - constexpr auto corner_1 = point_zero; + constexpr auto corner_1 = point{ 0, 0 }; constexpr auto corner_2 = point{ SEEX - 1, 0 }; constexpr auto corner_3 = point{ SEEX - 1, SEEY - 1 }; constexpr auto corner_4 = point{ 0, SEEY - 1 }; diff --git a/tests/temperature_test.cpp b/tests/temperature_test.cpp index cf1629f0c0bea..3e7f9b80006b7 100644 --- a/tests/temperature_test.cpp +++ b/tests/temperature_test.cpp @@ -42,7 +42,8 @@ TEST_CASE( "Item spawns with right thermal attributes" ) CHECK( D.specific_energy == -10 ); set_map_temperature( 122 ); - D.process_temperature_rot( 1, tripoint_zero, nullptr ); + tripoint pos = tripoint( 0, 0, 0 ); + D.process_temperature_rot( 1, pos, nullptr ); CHECK( is_nearly( D.temperature, 323.15 * 100000 ) ); } @@ -77,10 +78,11 @@ TEST_CASE( "Rate of temperature change" ) item water1( "water" ); item water2( "water" ); + tripoint pos = tripoint( 0, 0, 0 ); set_map_temperature( 131 ); // 55 C - water1.process_temperature_rot( 1, tripoint_zero, nullptr ); - water2.process_temperature_rot( 1, tripoint_zero, nullptr ); + water1.process_temperature_rot( 1, pos, nullptr ); + water2.process_temperature_rot( 1, pos, nullptr ); // 55 C CHECK( is_nearly( water1.temperature, 328.15 * 100000 ) ); @@ -88,18 +90,18 @@ TEST_CASE( "Rate of temperature change" ) set_map_temperature( 68 ); // 20C calendar::turn = to_turn( calendar::turn + 11_minutes ); - water1.process_temperature_rot( 1, tripoint_zero, nullptr ); + water1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 20_minutes ); - water1.process_temperature_rot( 1, tripoint_zero, nullptr ); + water1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 29_minutes ); - water1.process_temperature_rot( 1, tripoint_zero, nullptr ); - water2.process_temperature_rot( 1, tripoint_zero, nullptr ); + water1.process_temperature_rot( 1, pos, nullptr ); + water2.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 15_minutes ); - water1.process_temperature_rot( 1, tripoint_zero, nullptr ); - water2.process_temperature_rot( 1, tripoint_zero, nullptr ); + water1.process_temperature_rot( 1, pos, nullptr ); + water2.process_temperature_rot( 1, pos, nullptr ); // 29.4 C CHECK( is_nearly( water1.temperature, 30259330 ) ); @@ -107,20 +109,25 @@ TEST_CASE( "Rate of temperature change" ) } SECTION( "Hot liquid to frozen" ) { - // 2x cooked meat (50 C) cooling in -20 C enviroment for several hours - // 1) Both at 50C and hot - // 2) Wait a short time then Meat 1 at 33.5 C and not hot - // 3) Wait less than an hour then Meat 1 and 2 at 0 C not frozen - // 4) Wait a few hours then Meat 1 and 2 at 0 C frozen - // 5) Wait a short time then Meat 1 and 2 at -x C + // 2x cooked meat (50 C) cooling in -20 C enviroment for ~190 minutes + // 0 min: All 3 at 50C and hot + // 11 min: meat 1 at 33.5 C and not hot + // 22 min: meat 1 step + // 33 min: meat 1 step + // 53 min: Meat 1 and 2 at 0 C not frozen + // 143 min: Meat 1 and 2 at 0 C fozen + // 154 min: meat 1 step + // 174 min: meat 1 step + // 194 min: Meat 1 and 2 at -x C item meat1( "meat_cooked" ); item meat2( "meat_cooked" ); + tripoint pos = tripoint( 0, 0, 0 ); set_map_temperature( 122 ); //50 C - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // 50 C CHECK( is_nearly( meat1.temperature, 323.15 * 100000 ) ); @@ -128,21 +135,21 @@ TEST_CASE( "Rate of temperature change" ) set_map_temperature( -4 ); // -20 C - calendar::turn = to_turn( calendar::turn + 15_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + calendar::turn = to_turn( calendar::turn + 11_minutes ); + meat1.process_temperature_rot( 1, pos, nullptr ); // 33.5 C CHECK( is_nearly( meat1.temperature, 30673432 ) ); CHECK( !meat1.item_tags.count( "HOT" ) ); calendar::turn = to_turn( calendar::turn + 11_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 11_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); - calendar::turn = to_turn( calendar::turn + 30_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + calendar::turn = to_turn( calendar::turn + 20_minutes ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // 0C // not frozen CHECK( is_nearly( meat1.temperature, 27315000 ) ); @@ -150,12 +157,12 @@ TEST_CASE( "Rate of temperature change" ) CHECK( !meat1.item_tags.count( "FROZEN" ) ); CHECK( !meat2.item_tags.count( "FROZEN" ) ); - calendar::turn = to_turn( calendar::turn + 60_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); - calendar::turn = to_turn( calendar::turn + 60_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + calendar::turn = to_turn( calendar::turn + 45_minutes ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); + calendar::turn = to_turn( calendar::turn + 45_minutes ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // 0C // frozen @@ -166,13 +173,13 @@ TEST_CASE( "Rate of temperature change" ) CHECK( is_nearly( meat1.specific_energy, meat2.specific_energy ) ); calendar::turn = to_turn( calendar::turn + 11_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 20_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 20_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // -7.2 C // frozen @@ -198,10 +205,11 @@ TEST_CASE( "Rate of temperature change" ) item meat1( "meat_cooked" ); item meat2( "meat_cooked" ); + tripoint pos = tripoint( 0, 0, 0 ); set_map_temperature( -4 ); // -20 C - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // -20 C CHECK( is_nearly( meat1.temperature, 253.15 * 100000 ) ); @@ -210,19 +218,19 @@ TEST_CASE( "Rate of temperature change" ) set_map_temperature( 68 ); // 20 C calendar::turn = to_turn( calendar::turn + 11_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); // -5.2 C CHECK( is_nearly( meat1.temperature, 26789608 ) ); calendar::turn = to_turn( calendar::turn + 11_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 11_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 20_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // 0C // same temp @@ -233,12 +241,12 @@ TEST_CASE( "Rate of temperature change" ) CHECK( meat2.item_tags.count( "FROZEN" ) ); calendar::turn = to_turn( calendar::turn + 45_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 45_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // 0C // same tmep @@ -248,13 +256,13 @@ TEST_CASE( "Rate of temperature change" ) CHECK( !meat1.item_tags.count( "FROZEN" ) ); calendar::turn = to_turn( calendar::turn + 11_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 20_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); calendar::turn = to_turn( calendar::turn + 20_minutes ); - meat1.process_temperature_rot( 1, tripoint_zero, nullptr ); - meat2.process_temperature_rot( 1, tripoint_zero, nullptr ); + meat1.process_temperature_rot( 1, pos, nullptr ); + meat2.process_temperature_rot( 1, pos, nullptr ); // 13.3 C // same temp CHECK( is_nearly( meat1.temperature, 28654986 ) ); @@ -271,19 +279,20 @@ TEST_CASE( "Temperature controlled location" ) // Process water 2h 3m later. Should still be temperatures::normal. item water1( "water" ); + tripoint pos = tripoint( 0, 0, 0 ); set_map_temperature( 0 ); // -17 C - water1.process_temperature_rot( 1, tripoint_zero, nullptr, temperature_flag::TEMP_HEATER ); + water1.process_temperature_rot( 1, pos, nullptr, temperature_flag::TEMP_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 ); + water1.process_temperature_rot( 1, pos, nullptr, temperature_flag::TEMP_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 ); + water1.process_temperature_rot( 1, pos, nullptr, temperature_flag::TEMP_HEATER ); CHECK( is_nearly( water1.temperature, 100000 * temp_to_kelvin( temperatures::normal ) ) ); } diff --git a/tests/test_main.cpp b/tests/test_main.cpp index 60d088daefc40..38f3be29485a1 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -45,7 +45,6 @@ #include "rng.h" #include "type_id.h" #include "cata_utility.h" -#include "calendar.h" using name_value_pair_t = std::pair; using option_overrides_t = std::vector; @@ -129,19 +128,16 @@ static void init_global_game_state( const std::vector &mods, } init_colors(); - g = std::make_unique( ); + g.reset( new game ); g->new_game = true; g->load_static_data(); - world_generator->set_active_world( nullptr ); + world_generator->set_active_world( NULL ); world_generator->init(); WORLDPTR test_world = world_generator->make_new_world( mods ); - assert( test_world != nullptr ); + assert( test_world != NULL ); world_generator->set_active_world( test_world ); - assert( world_generator->active_world != nullptr ); - - calendar::set_eternal_season( get_option( "ETERNAL_SEASON" ) ); - calendar::set_season_length( get_option( "SEASON_LENGTH" ) ); + assert( world_generator->active_world != NULL ); loading_ui ui( false ); g->load_core_data( ui ); @@ -152,10 +148,10 @@ static void init_global_game_state( const std::vector &mods, g->m = map( get_option( "ZLEVELS" ) ); - overmap_special_batch empty_specials( point_zero ); + overmap_special_batch empty_specials( { 0, 0 } ); overmap_buffer.create_custom_overmap( point_zero, empty_specials ); - g->m.load( tripoint( g->get_levx(), g->get_levy(), g->get_levz() ), false ); + g->m.load( g->get_levx(), g->get_levy(), g->get_levz(), false ); } // Checks if any of the flags are in container, removes them all @@ -230,7 +226,7 @@ static std::string extract_user_dir( std::vector &arg_vec ) struct CataListener : Catch::TestEventListenerBase { using TestEventListenerBase::TestEventListenerBase; - void sectionStarting( Catch::SectionInfo const §ionInfo ) override { + virtual void sectionStarting( Catch::SectionInfo const §ionInfo ) override { TestEventListenerBase::sectionStarting( sectionInfo ); // Initialize the cata RNG with the Catch seed for reproducible tests rng_set_engine_seed( m_config->rngSeed() ); diff --git a/tests/test_statistics.h b/tests/test_statistics.h index 65772e5ab5b77..d117a8bddde13 100644 --- a/tests/test_statistics.h +++ b/tests/test_statistics.h @@ -117,9 +117,12 @@ class statistics * Returns true if the confidence interval partially overlaps the target region. */ bool uncertain_about( const epsilon_threshold &t ) { - return !test_threshold( t ) && // Inside target - t.midpoint - t.epsilon < upper() && // Below target - t.midpoint + t.epsilon > lower(); // Above target + if( test_threshold( t ) || // Inside target + ( t.midpoint - t.epsilon ) > upper() || // Below target + ( t.midpoint + t.epsilon ) < lower() ) { // Above target + return false; + } + return true; } bool test_threshold( const epsilon_threshold &t ) { diff --git a/tests/vehicle_drag.cpp b/tests/vehicle_drag.cpp index bdbe9968da129..b08f63addd9af 100644 --- a/tests/vehicle_drag.cpp +++ b/tests/vehicle_drag.cpp @@ -32,13 +32,13 @@ static void clear_game_drag( const ter_id &terrain ) // Move player somewhere safe CHECK( !g->u.in_vehicle ); - g->u.setpos( tripoint_zero ); + g->u.setpos( tripoint( 0, 0, 0 ) ); // Blind the player to avoid needless drawing-related overhead g->u.add_effect( effect_blind, 1_turns, num_bp, true ); // Make sure the ST is 8 so that muscle powered results are consistent g->u.str_cur = 8; - for( const tripoint &p : g->m.points_in_rectangle( tripoint_zero, + for( const tripoint &p : g->m.points_in_rectangle( tripoint( 0, 0, 0 ), tripoint( MAPSIZE * SEEX, MAPSIZE * SEEY, 0 ) ) ) { g->m.furn_set( p, furn_id( "f_null" ) ); g->m.ter_set( p, terrain ); @@ -46,7 +46,7 @@ static void clear_game_drag( const ter_id &terrain ) g->m.i_clear( p ); } - for( wrapped_vehicle &veh : g->m.get_vehicles( tripoint_zero, tripoint( MAPSIZE * SEEX, + for( wrapped_vehicle &veh : g->m.get_vehicles( tripoint( 0, 0, 0 ), tripoint( MAPSIZE * SEEX, MAPSIZE * SEEY, 0 ) ) ) { g->m.destroy_vehicle( veh.v ); } diff --git a/tests/vehicle_efficiency.cpp b/tests/vehicle_efficiency.cpp index f42a8bed9fb00..19f1ff8af7de5 100644 --- a/tests/vehicle_efficiency.cpp +++ b/tests/vehicle_efficiency.cpp @@ -46,11 +46,11 @@ static void clear_game( const ter_id &terrain ) // Move player somewhere safe CHECK( !g->u.in_vehicle ); - g->u.setpos( tripoint_zero ); + g->u.setpos( tripoint( 0, 0, 0 ) ); // Blind the player to avoid needless drawing-related overhead g->u.add_effect( effect_blind, 1_turns, num_bp, true ); - for( const tripoint &p : g->m.points_in_rectangle( tripoint_zero, + for( const tripoint &p : g->m.points_in_rectangle( tripoint( 0, 0, 0 ), tripoint( MAPSIZE * SEEX, MAPSIZE * SEEY, 0 ) ) ) { g->m.furn_set( p, furn_id( "f_null" ) ); g->m.ter_set( p, terrain ); @@ -58,7 +58,7 @@ static void clear_game( const ter_id &terrain ) g->m.i_clear( p ); } - for( wrapped_vehicle &veh : g->m.get_vehicles( tripoint_zero, tripoint( MAPSIZE * SEEX, + for( wrapped_vehicle &veh : g->m.get_vehicles( tripoint( 0, 0, 0 ), tripoint( MAPSIZE * SEEX, MAPSIZE * SEEY, 0 ) ) ) { g->m.destroy_vehicle( veh.v ); } @@ -439,7 +439,7 @@ TEST_CASE( "vehicle_efficiency", "[vehicle] [engine]" ) test_vehicle( "quad_bike", 264745, 75950, 75950, 35080, 35080 ); test_vehicle( "scooter", 62287, 266900, 258300, 195200, 189700 ); test_vehicle( "superbike", 241785, 72120, 46710, 34580, 21720 ); - test_vehicle( "ambulance", 1783929, 433100, 351300, 65530, 48600 ); + test_vehicle( "ambulance", 1783889, 433100, 351300, 65530, 48600 ); test_vehicle( "fire_engine", 2563241, 1171000, 970800, 248500, 219000 ); test_vehicle( "fire_truck", 6259233, 308500, 200800, 19950, 4747 ); test_vehicle( "truck_swat", 5939334, 505800, 349500, 30060, 7719 ); diff --git a/tests/vehicle_interact_test.cpp b/tests/vehicle_interact_test.cpp index d916ba0a68aa9..42fdf65033545 100644 --- a/tests/vehicle_interact_test.cpp +++ b/tests/vehicle_interact_test.cpp @@ -31,7 +31,7 @@ static void test_repair( const std::vector &tools, bool expect_craftable ) g->u.i_add( gear ); } - const tripoint vehicle_origin = test_origin + tripoint_south_east; + const tripoint vehicle_origin = test_origin + tripoint( 1, 1, 0 ); vehicle *veh_ptr = g->m.add_vehicle( vproto_id( "bicycle" ), vehicle_origin, -90, 0, 0 ); REQUIRE( veh_ptr != nullptr ); // Find the frame at the origin. diff --git a/tests/vehicle_part_test.cpp b/tests/vehicle_part_test.cpp deleted file mode 100644 index c8fedbc139e1c..0000000000000 --- a/tests/vehicle_part_test.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "catch/catch.hpp" - -#include "veh_type.h" - -TEST_CASE( "verify_copy_from_gets_damage_reduction", "[vehicle]" ) -{ - // Picking halfboard_horizontal as a vpart which is likely to remain - // defined via copy-from, and which should have non-zero damage reduction. - const vpart_info &vp = vpart_id( "halfboard_horizontal" ).obj(); - CHECK( vp.damage_reduction[DT_BASH] != 0 ); -} diff --git a/tests/vehicle_power_test.cpp b/tests/vehicle_power_test.cpp index 1d18c1980a410..f9b9a21be7bfc 100644 --- a/tests/vehicle_power_test.cpp +++ b/tests/vehicle_power_test.cpp @@ -20,7 +20,7 @@ static const itype_id fuel_type_plut_cell( "plut_cell" ); TEST_CASE( "vehicle_power" ) { GIVEN( "Reactor and solar panels" ) { - for( const tripoint &p : g->m.points_in_rectangle( tripoint_zero, + for( const tripoint &p : g->m.points_in_rectangle( tripoint( 0, 0, 0 ), tripoint( MAPSIZE * SEEX, MAPSIZE * SEEY, 0 ) ) ) { g->m.furn_set( p, furn_id( "f_null" ) ); g->m.ter_set( p, ter_id( "t_pavement" ) ); @@ -63,16 +63,16 @@ TEST_CASE( "vehicle_power" ) veh_ptr = g->m.add_vehicle( vproto_id( "solar_panel_test" ), solar_origin, 0, 0, 0 ); REQUIRE( veh_ptr != nullptr ); g->refresh_all(); - calendar::turn = calendar::turn_zero + calendar::season_length() + 1_days; - const time_point start_time = sunrise( calendar::turn ) + 3_hours; + calendar::turn = to_turns( calendar::turn.season_length() ) + DAYS( 1 ); + const time_point start_time = calendar::turn.sunrise() + 3_hours; veh_ptr->update_time( start_time ); veh_ptr->discharge_battery( veh_ptr->fuel_left( fuel_type_battery ) ); REQUIRE( veh_ptr->fuel_left( fuel_type_battery ) == 0 ); g->weather.weather_override = WEATHER_SUNNY; veh_ptr->update_time( start_time + 30_minutes ); int approx_battery1 = veh_ptr->fuel_left( fuel_type_battery ) / 100; - const int exp_min = 10; - const int exp_max = 15; + const int exp_min = 12; + const int exp_max = 14; CHECK( approx_battery1 >= exp_min ); CHECK( approx_battery1 <= exp_max ); veh_ptr->update_time( start_time + 2 * 30_minutes ); diff --git a/tests/vehicle_test.cpp b/tests/vehicle_test.cpp index ee7e528450364..9a817c5710b36 100644 --- a/tests/vehicle_test.cpp +++ b/tests/vehicle_test.cpp @@ -28,10 +28,10 @@ TEST_CASE( "destroy_grabbed_vehicle_section" ) GIVEN( "A vehicle grabbed by the player" ) { const tripoint test_origin( 60, 60, 0 ); g->place_player( test_origin ); - const tripoint vehicle_origin = test_origin + tripoint_south_east; + const tripoint vehicle_origin = test_origin + tripoint( 1, 1, 0 ); 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; + tripoint grab_point = test_origin + tripoint( 1, 0, 0 ); g->u.grab( OBJECT_VEHICLE, grab_point ); REQUIRE( g->u.get_grab_type() != OBJECT_NONE ); REQUIRE( g->u.grab_point == grab_point ); @@ -45,27 +45,3 @@ TEST_CASE( "destroy_grabbed_vehicle_section" ) } } } - -TEST_CASE( "add_item_to_broken_vehicle_part" ) -{ - clear_map(); - const tripoint test_origin( 60, 60, 0 ); - const tripoint vehicle_origin = test_origin; - vehicle *veh_ptr = g->m.add_vehicle( vproto_id( "bicycle" ), vehicle_origin, 0, 0, 0 ); - REQUIRE( veh_ptr != nullptr ); - - const tripoint pos = vehicle_origin + tripoint_west; - auto cargo_parts = veh_ptr->get_parts_at( pos, "CARGO", part_status_flag::any ); - REQUIRE( !cargo_parts.empty( ) ); - vehicle_part *cargo_part = cargo_parts.front(); - REQUIRE( cargo_part != nullptr ); - //Must not be broken yet - REQUIRE( !cargo_part->is_broken() ); - //For some reason (0 - cargo_part->hp()) is just not enough to destroy a part - REQUIRE( veh_ptr->mod_hp( *cargo_part, -( 1 + cargo_part->hp() ), DT_BASH ) ); - //Now it must be broken - REQUIRE( cargo_part->is_broken() ); - //Now part is really broken, adding an item should fail - const item itm2 = item( "jeans" ); - REQUIRE( !veh_ptr->add_item( *cargo_part, itm2 ) ); -} diff --git a/tests/vehicle_turrets.cpp b/tests/vehicle_turrets.cpp index dc3f1fe1aecdc..633527d46496a 100644 --- a/tests/vehicle_turrets.cpp +++ b/tests/vehicle_turrets.cpp @@ -66,10 +66,10 @@ TEST_CASE( "vehicle_turret", "[vehicle] [gun] [magazine] [.]" ) vehicle *veh = g->m.add_vehicle( vproto_id( "none" ), 65, 65, 270, 0, 0 ); REQUIRE( veh ); - const int idx = veh->install_part( point_zero, e->get_id(), true ); + const int idx = veh->install_part( point( 0, 0 ), e->get_id(), true ); REQUIRE( idx >= 0 ); - REQUIRE( veh->install_part( point_zero, vpart_id( "storage_battery" ), true ) >= 0 ); + REQUIRE( veh->install_part( point( 0, 0 ), vpart_id( "storage_battery" ), true ) >= 0 ); veh->charge_battery( 10000 ); auto ammo = ammotype( veh->turret_query( veh->parts[idx] ).base()->ammo_default() ); @@ -79,7 +79,7 @@ TEST_CASE( "vehicle_turret", "[vehicle] [gun] [magazine] [.]" ) REQUIRE( tank ); INFO( tank->get_id().str() ); - auto tank_idx = veh->install_part( point_zero, tank->get_id(), true ); + auto tank_idx = veh->install_part( point( 0, 0 ), tank->get_id(), true ); REQUIRE( tank_idx >= 0 ); REQUIRE( veh->parts[ tank_idx ].ammo_set( ammo->default_ammotype() ) ); diff --git a/tests/vision_test.cpp b/tests/vision_test.cpp index 76bdf493ab9d2..51272ac5b1854 100644 --- a/tests/vision_test.cpp +++ b/tests/vision_test.cpp @@ -24,7 +24,7 @@ static void full_map_test( const std::vector &setup, const std::vector &expected_results, - const time_point &time ) + const calendar &time ) { const ter_id t_brick_wall( "t_brick_wall" ); const ter_id t_window_frame( "t_window_frame" ); @@ -93,7 +93,7 @@ static void full_map_test( const std::vector &setup, for( int y = 0; y < height; ++y ) { for( int x = 0; x < width; ++x ) { const tripoint p = origin + point( x, y ); - const tripoint above = p + tripoint_above; + const tripoint above = p + tripoint( 0, 0, 1 ); switch( setup[y][x] ) { case ' ': break; @@ -154,7 +154,7 @@ static void full_map_test( const std::vector &setup, for( int y = 0; y < height; ++y ) { for( int x = 0; x < width; ++x ) { const tripoint p = origin + point( x, y ); - const map::apparent_light_info al = map::apparent_light_helper( cache, p ); + const map::apparent_light_info al = g->m.apparent_light_helper( cache, p ); for( auto &pr : g->m.field_at( p ) ) { fields << pr.second.name() << ','; } @@ -223,7 +223,7 @@ static void full_map_test( const std::vector &setup, struct vision_test_case { std::vector setup; std::vector expected_results; - time_point time; + calendar time; bool test_3d; static void transpose( std::vector &v ) { @@ -299,8 +299,8 @@ struct vision_test_case { } }; -static const time_point midnight = calendar::turn_zero + 0_hours; -static const time_point midday = calendar::turn_zero + 12_hours; +static constexpr int midnight = HOURS( 0 ); +static constexpr int midday = HOURS( 12 ); // The following characters are used in these setups: // ' ' - empty, outdoors @@ -462,7 +462,7 @@ TEST_CASE( "vision_see_wall_in_moonlight", "[shadowcasting][vision]" ) { const time_duration till_full_moon = calendar::season_length() / 3; // Verify that I've picked the full_moon time correctly. - CHECK( get_moon_phase( calendar::turn_zero + till_full_moon ) == MOON_FULL ); + CHECK( get_moon_phase( calendar::time_of_cataclysm + till_full_moon ) == MOON_FULL ); // Want a night time const int days_till_full_moon = to_days( till_full_moon ); diff --git a/tests/wield_times_test.cpp b/tests/wield_times_test.cpp index fd5d4a7667769..cae1d185358b1 100644 --- a/tests/wield_times_test.cpp +++ b/tests/wield_times_test.cpp @@ -35,7 +35,7 @@ static void wield_check_internal( player &dummy, item &the_item, const char *sec // As macro, so that we can generate the test cases for easy copypasting #define wield_check(section_text, dummy, the_item, expected_cost) \ SECTION( section_text) { \ - wield_check_internal(dummy, the_item, #section_text, #the_item, generating_cases ? -1 : (expected_cost)); \ + wield_check_internal(dummy, the_item, #section_text, #the_item, generating_cases ? -1 : expected_cost); \ } diff --git a/tools/clang-tidy-plugin/CMakeLists.txt b/tools/clang-tidy-plugin/CMakeLists.txt index 992d8d90003b2..30dab7b30abce 100644 --- a/tools/clang-tidy-plugin/CMakeLists.txt +++ b/tools/clang-tidy-plugin/CMakeLists.txt @@ -5,15 +5,7 @@ find_package(Clang REQUIRED CONFIG) add_library( CataAnalyzerPlugin MODULE - CataTidyModule.cpp - NoLongCheck.cpp - PointInitializationCheck.cpp - SimplifyPointConstructorsCheck.cpp - UseNamedPointConstantsCheck.cpp - UsePointApisCheck.cpp - UsePointArithmeticCheck.cpp - XYCheck.cpp - ) + CataTidyModule.cpp NoLongCheck.cpp) target_include_directories( CataAnalyzerPlugin SYSTEM PRIVATE diff --git a/tools/clang-tidy-plugin/CataTidyModule.cpp b/tools/clang-tidy-plugin/CataTidyModule.cpp index a185f263a114f..a99ad42d1c68a 100644 --- a/tools/clang-tidy-plugin/CataTidyModule.cpp +++ b/tools/clang-tidy-plugin/CataTidyModule.cpp @@ -3,12 +3,6 @@ #include "ClangTidyModule.h" #include "ClangTidyModuleRegistry.h" #include "NoLongCheck.h" -#include "PointInitializationCheck.h" -#include "SimplifyPointConstructorsCheck.h" -#include "UseNamedPointConstantsCheck.h" -#include "UsePointApisCheck.h" -#include "UsePointArithmeticCheck.h" -#include "XYCheck.h" namespace clang { @@ -22,14 +16,6 @@ class CataModule : public ClangTidyModule public: void addCheckFactories( ClangTidyCheckFactories &CheckFactories ) override { CheckFactories.registerCheck( "cata-no-long" ); - CheckFactories.registerCheck( "cata-point-initialization" ); - CheckFactories.registerCheck( - "cata-simplify-point-constructors" ); - CheckFactories.registerCheck( - "cata-use-named-point-constants" ); - CheckFactories.registerCheck( "cata-use-point-apis" ); - CheckFactories.registerCheck( "cata-use-point-arithmetic" ); - CheckFactories.registerCheck( "cata-xy" ); } }; diff --git a/tools/clang-tidy-plugin/PointInitializationCheck.cpp b/tools/clang-tidy-plugin/PointInitializationCheck.cpp deleted file mode 100644 index bf37f81f6ac45..0000000000000 --- a/tools/clang-tidy-plugin/PointInitializationCheck.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include "PointInitializationCheck.h" - -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/Frontend/CompilerInstance.h" - -using namespace clang::ast_matchers; - -namespace clang -{ -namespace tidy -{ -namespace cata -{ -void PointInitializationCheck::registerMatchers( MatchFinder *Finder ) -{ - using TypeMatcher = clang::ast_matchers::internal::Matcher; - const TypeMatcher IsPointType = - qualType( anyOf( asString( "struct point" ), asString( "struct tripoint" ) ) ); - using CxxConstructorMatcher = clang::ast_matchers::internal::Matcher; - const CxxConstructorMatcher ZeroConstructor = cxxConstructExpr( anyOf( - allOf( - argumentCountIs( 1 ), - hasArgument( 0, declRefExpr( to( varDecl( - anyOf( hasName( "point_zero" ), hasName( "tripoint_zero" ) ) - ) ) ) ) ), - allOf( - hasArgument( 0, integerLiteral( equals( 0 ) ) ), - hasArgument( 1, integerLiteral( equals( 0 ) ) ), - anyOf( - argumentCountIs( 2 ), - allOf( - hasArgument( 2, integerLiteral( equals( 0 ) ) ), - argumentCountIs( 3 ) - ) - ) - ) - ) ).bind( "expr" ); - Finder->addMatcher( varDecl( - unless( parmVarDecl() ), - hasType( IsPointType ), - hasInitializer( ZeroConstructor ) - ).bind( "decl" ), this ); - Finder->addMatcher( cxxCtorInitializer( - forField( hasType( IsPointType ) ), - withInitializer( ZeroConstructor ) - ).bind( "init" ), this ); -} - -static void CheckDecl( PointInitializationCheck &Check, const MatchFinder::MatchResult &Result ) -{ - const VarDecl *MatchedDecl = Result.Nodes.getNodeAs( "decl" ); - if( !MatchedDecl ) { - return; - } - const Expr *MatchedExpr = Result.Nodes.getNodeAs( "expr" ); - if( !MatchedExpr ) { - return; - } - QualType Type = MatchedDecl->getType(); - Check.diag( - MatchedExpr->getBeginLoc(), - "Unnecessary initialization of %0. %1 is zero-initialized by default." ) << - MatchedDecl << Type; -} - -static void CheckInit( PointInitializationCheck &Check, const MatchFinder::MatchResult &Result ) -{ - const CXXCtorInitializer *MatchedInit = Result.Nodes.getNodeAs( "init" ); - if( !MatchedInit ) { - return; - } - FieldDecl *Member = MatchedInit->getMember(); - if( !Member ) { - return; - } - QualType Type = Member->getType(); - Check.diag( - MatchedInit->getInit()->getBeginLoc(), - "Unnecessary initialization of %0. %1 is zero-initialized by default." ) << - Member << Type; -} - -void PointInitializationCheck::check( const MatchFinder::MatchResult &Result ) -{ - CheckDecl( *this, Result ); - CheckInit( *this, Result ); -} - -} // namespace cata -} // namespace tidy -} // namespace clang diff --git a/tools/clang-tidy-plugin/PointInitializationCheck.h b/tools/clang-tidy-plugin/PointInitializationCheck.h deleted file mode 100644 index e1d54d7ccc002..0000000000000 --- a/tools/clang-tidy-plugin/PointInitializationCheck.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef CATA_TOOLS_CLANG_TIDY_POINTINITIALIZATIONCHECK_H -#define CATA_TOOLS_CLANG_TIDY_POINTINITIALIZATIONCHECK_H - -#include -#include - -#include "ClangTidy.h" - -namespace clang -{ -class CompilerInstance; - -namespace tidy -{ -class ClangTidyContext; - -namespace cata -{ - -class PointInitializationCheck : public ClangTidyCheck -{ - public: - PointInitializationCheck( 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_POINTINITIALIZATIONCHECK_H diff --git a/tools/clang-tidy-plugin/SimplifyPointConstructorsCheck.cpp b/tools/clang-tidy-plugin/SimplifyPointConstructorsCheck.cpp deleted file mode 100644 index 6bf74f896af1d..0000000000000 --- a/tools/clang-tidy-plugin/SimplifyPointConstructorsCheck.cpp +++ /dev/null @@ -1,162 +0,0 @@ -#include "SimplifyPointConstructorsCheck.h" - -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/Frontend/CompilerInstance.h" - -#include "Utils.h" - -using namespace clang::ast_matchers; - -namespace clang -{ -namespace tidy -{ -namespace cata -{ - -static auto isMemberExpr( const std::string &type, const std::string &member_, - const std::string &objBind ) -{ - return ignoringParenCasts( - memberExpr( - member( hasName( member_ ) ), - hasObjectExpression( - expr( hasType( cxxRecordDecl( hasName( type ) ) ) ).bind( objBind ) - ) - ) - ); -} - -void SimplifyPointConstructorsCheck::registerMatchers( MatchFinder *Finder ) -{ - Finder->addMatcher( - cxxConstructExpr( - hasDeclaration( isPointConstructor().bind( "constructorDecl" ) ), - testWhetherConstructingTemporary(), - hasArgument( 0, isMemberExpr( "point", "x", "xobj" ) ), - hasArgument( 1, isMemberExpr( "point", "y", "yobj" ) ) - ).bind( "constructorCallFromPoint" ), - this - ); - Finder->addMatcher( - cxxConstructExpr( - hasDeclaration( isPointConstructor().bind( "constructorDecl" ) ), - testWhetherConstructingTemporary(), - hasArgument( 0, isMemberExpr( "tripoint", "x", "xobj" ) ), - hasArgument( 1, isMemberExpr( "tripoint", "y", "yobj" ) ), - anyOf( - hasArgument( 2, isMemberExpr( "tripoint", "z", "zobj" ) ), - anything() - ) - ).bind( "constructorCallFromTripoint" ), - this - ); -} - -static void CheckFromPoint( SimplifyPointConstructorsCheck &Check, - const MatchFinder::MatchResult &Result ) -{ - const CXXConstructExpr *ConstructorCall = - Result.Nodes.getNodeAs( "constructorCallFromPoint" ); - const CXXConstructorDecl *ConstructorDecl = - Result.Nodes.getNodeAs( "constructorDecl" ); - const MaterializeTemporaryExpr *TempParent = - Result.Nodes.getNodeAs( "temp" ); - const Expr *XExpr = Result.Nodes.getNodeAs( "xobj" ); - const Expr *YExpr = Result.Nodes.getNodeAs( "yobj" ); - if( !ConstructorCall || !ConstructorDecl || !XExpr || !YExpr ) { - return; - } - - std::string ReplacementX = getText( Result, XExpr ); - std::string ReplacementY = getText( Result, YExpr ); - - if( ReplacementX != ReplacementY ) { - return; - } - - SourceRange SourceRangeToReplace( ConstructorCall->getArg( 0 )->getBeginLoc(), - ConstructorCall->getArg( 1 )->getEndLoc() ); - - if( TempParent ) { - if( ConstructorDecl->getNumParams() == 2 ) { - SourceRangeToReplace = ConstructorCall->getSourceRange(); - } - } - - CharSourceRange CharRangeToReplace = Lexer::makeFileCharRange( - CharSourceRange::getTokenRange( SourceRangeToReplace ), *Result.SourceManager, - Check.getLangOpts() ); - - Check.diag( - ConstructorCall->getBeginLoc(), - "Construction of %0 can be simplified." ) << ConstructorDecl->getParent() << - FixItHint::CreateReplacement( CharRangeToReplace, ReplacementX ); -} - -static void CheckFromTripoint( SimplifyPointConstructorsCheck &Check, - const MatchFinder::MatchResult &Result ) -{ - const CXXConstructExpr *ConstructorCall = - Result.Nodes.getNodeAs( "constructorCallFromTripoint" ); - const CXXConstructorDecl *ConstructorDecl = - Result.Nodes.getNodeAs( "constructorDecl" ); - const Expr *TempParent = Result.Nodes.getNodeAs( "temp" ); - const Expr *XExpr = Result.Nodes.getNodeAs( "xobj" ); - const Expr *YExpr = Result.Nodes.getNodeAs( "yobj" ); - const Expr *ZExpr = Result.Nodes.getNodeAs( "zobj" ); - if( !ConstructorCall || !ConstructorDecl || !XExpr || !YExpr ) { - return; - } - - std::string ReplacementX = getText( Result, XExpr ); - std::string ReplacementY = getText( Result, YExpr ); - - if( ReplacementX != ReplacementY ) { - return; - } - - std::string ReplacementZ; - unsigned int MaxArg = 1; - - if( ZExpr ) { - ReplacementZ = getText( Result, ZExpr ); - if( ReplacementZ == ReplacementX ) { - MaxArg = 2; - } else { - ReplacementZ.clear(); - } - } - - if( MaxArg == 1 ) { - ReplacementX += ".xy()"; - } - - SourceRange SourceRangeToReplace( ConstructorCall->getArg( 0 )->getBeginLoc(), - ConstructorCall->getArg( MaxArg )->getEndLoc() ); - - if( TempParent ) { - if( ConstructorDecl->getNumParams() == MaxArg + 1 ) { - SourceRangeToReplace = ConstructorCall->getSourceRange(); - } - } - - CharSourceRange CharRangeToReplace = Lexer::makeFileCharRange( - CharSourceRange::getTokenRange( SourceRangeToReplace ), *Result.SourceManager, - Check.getLangOpts() ); - - Check.diag( - ConstructorCall->getBeginLoc(), - "Construction of %0 can be simplified." ) << ConstructorDecl->getParent() << - FixItHint::CreateReplacement( CharRangeToReplace, ReplacementX ); -} - -void SimplifyPointConstructorsCheck::check( const MatchFinder::MatchResult &Result ) -{ - CheckFromPoint( *this, Result ); - CheckFromTripoint( *this, Result ); -} - -} // namespace cata -} // namespace tidy -} // namespace clang diff --git a/tools/clang-tidy-plugin/SimplifyPointConstructorsCheck.h b/tools/clang-tidy-plugin/SimplifyPointConstructorsCheck.h deleted file mode 100644 index e85a19523c4f5..0000000000000 --- a/tools/clang-tidy-plugin/SimplifyPointConstructorsCheck.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CATA_TOOLS_CLANG_TIDY_SIMPLIFYPOINTCONSTRUCTORSCHECK_H -#define CATA_TOOLS_CLANG_TIDY_SIMPLIFYPOINTCONSTRUCTORSCHECK_H - -#include -#include - -#include "ClangTidy.h" - -namespace clang -{ -class CompilerInstance; - -namespace tidy -{ -class ClangTidyContext; - -namespace cata -{ - -class SimplifyPointConstructorsCheck : public ClangTidyCheck -{ - public: - SimplifyPointConstructorsCheck( StringRef Name, ClangTidyContext *Context ) - : ClangTidyCheck( Name, Context ) {} - void registerMatchers( ast_matchers::MatchFinder *Finder ) override; - void check( const ast_matchers::MatchFinder::MatchResult &Result ) override; - using ClangTidyCheck::getLangOpts; -}; - -} // namespace cata -} // namespace tidy -} // namespace clang - -#endif // CATA_TOOLS_CLANG_TIDY_SIMPLIFYPOINTCONSTRUCTORSCHECK_H diff --git a/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.cpp b/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.cpp deleted file mode 100644 index 363dffc210f19..0000000000000 --- a/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.cpp +++ /dev/null @@ -1,188 +0,0 @@ -#include "UseNamedPointConstantsCheck.h" - -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/Frontend/CompilerInstance.h" - -#include "Utils.h" - -using namespace clang::ast_matchers; - -namespace clang -{ -namespace tidy -{ -namespace cata -{ - -static auto isInteger( const std::string &bind ) -{ - return expr( - anyOf( - integerLiteral(), - unaryOperator( - anyOf( hasOperatorName( "+" ), hasOperatorName( "-" ) ), - hasUnaryOperand( integerLiteral() ) - ) - ) - ).bind( bind ); -} - -static auto testWhetherParentIsVarDecl() -{ - return expr( - anyOf( - hasParent( varDecl().bind( "parentVarDecl" ) ), - anything() - ) - ); -} - -void UseNamedPointConstantsCheck::registerMatchers( MatchFinder *Finder ) -{ - Finder->addMatcher( - cxxConstructExpr( - hasDeclaration( isPointConstructor().bind( "constructorDecl" ) ), - testWhetherConstructingTemporary(), - testWhetherParentIsVarDecl(), - argumentCountIs( 2 ), - hasArgument( 0, isInteger( "xexpr" ) ), - hasArgument( 1, isInteger( "yexpr" ) ) - ).bind( "constructorCall" ), - this - ); - Finder->addMatcher( - cxxConstructExpr( - hasDeclaration( isPointConstructor().bind( "constructorDecl" ) ), - testWhetherConstructingTemporary(), - testWhetherParentIsVarDecl(), - argumentCountIs( 3 ), - hasArgument( 0, isInteger( "xexpr" ) ), - hasArgument( 1, isInteger( "yexpr" ) ), - hasArgument( 2, isInteger( "zexpr" ) ) - ).bind( "constructorCall" ), - this - ); -} - -static const std::map, std::string> PointConstants = { - { { 0, 0 }, "point_zero" }, - { { 0, -1 }, "point_north" }, - { { 1, -1 }, "point_north_east" }, - { { 1, 0 }, "point_east" }, - { { 1, 1 }, "point_south_east" }, - { { 0, 1 }, "point_south" }, - { { -1, 1 }, "point_south_west" }, - { { -1, 0 }, "point_west" }, - { { -1, -1 }, "point_north_west" }, -}; - -static const std::map, std::string> TripointConstants = { - { { 0, 0, 0 }, "tripoint_zero" }, - { { 0, 0, 1 }, "tripoint_above" }, - { { 0, 0, -1 }, "tripoint_below" }, - { { 0, -1, 0 }, "tripoint_north" }, - { { 1, -1, 0 }, "tripoint_north_east" }, - { { 1, 0, 0 }, "tripoint_east" }, - { { 1, 1, 0 }, "tripoint_south_east" }, - { { 0, 1, 0 }, "tripoint_south" }, - { { -1, 1, 0 }, "tripoint_south_west" }, - { { -1, 0, 0 }, "tripoint_west" }, - { { -1, -1, 0 }, "tripoint_north_west" }, -}; - -static void CheckConstructor( UseNamedPointConstantsCheck &Check, - const MatchFinder::MatchResult &Result ) -{ - const CXXConstructExpr *ConstructorCall = - Result.Nodes.getNodeAs( "constructorCall" ); - const CXXConstructorDecl *ConstructorDecl = - Result.Nodes.getNodeAs( "constructorDecl" ); - const Expr *XExpr = Result.Nodes.getNodeAs( "xexpr" ); - const Expr *YExpr = Result.Nodes.getNodeAs( "yexpr" ); - const Expr *ZExpr = Result.Nodes.getNodeAs( "zexpr" ); - const Expr *TempParent = Result.Nodes.getNodeAs( "temp" ); - const VarDecl *VarDeclParent = Result.Nodes.getNodeAs( "parentVarDecl" ); - if( !ConstructorCall || !ConstructorDecl || !XExpr || !YExpr ) { - return; - } - - std::map Args; - - auto insertArgIf = [&]( const Expr * E, const char *Key ) { - int Value; - if( E == nullptr ) { - return; - } else if( const IntegerLiteral *Literal = dyn_cast( E ) ) { - Value = Literal->getValue().getZExtValue(); - } else if( const UnaryOperator *UOp = dyn_cast( E ) ) { - const IntegerLiteral *Literal = dyn_cast( UOp->getSubExpr() ); - Value = Literal->getValue().getZExtValue(); - if( UOp->getOpcode() == UO_Minus ) { - Value = -Value; - } - } else { - assert( false ); - } - Args.insert( { Key, Value } ); - }; - insertArgIf( XExpr, "x" ); - insertArgIf( YExpr, "y" ); - insertArgIf( ZExpr, "z" ); - - std::string Replacement; - - if( ZExpr ) { - auto it = TripointConstants.find( std::make_tuple( Args["x"], Args["y"], Args["z"] ) ); - if( it != TripointConstants.end() ) { - Replacement = it->second; - } - } else { - auto it = PointConstants.find( std::make_pair( Args["x"], Args["y"] ) ); - if( it != PointConstants.end() ) { - Replacement = it->second; - } - } - - if( Replacement.empty() ) { - return; - } - - // Avoid replacing the definitions of the constants themselves - if( VarDeclParent && VarDeclParent->getName() == Replacement ) { - return; - } - - const std::string UserVisibleReplacement = Replacement; - - const unsigned int LastArg = ConstructorCall->getNumArgs() - 1; - SourceRange SourceRangeToReplace( ConstructorCall->getArg( 0 )->getBeginLoc(), - ConstructorCall->getArg( LastArg )->getEndLoc() ); - - if( TempParent ) { - SourceRangeToReplace = ConstructorCall->getSourceRange(); - // Work around buggy source range for default parameters - const std::string ReplacedText = getText( Result, ConstructorCall ); - if( ReplacedText.size() >= 2 && ReplacedText.substr( 0, 2 ) == "= " ) { - Replacement = "= " + Replacement; - } - } - - CharSourceRange CharRangeToReplace = Lexer::makeFileCharRange( - CharSourceRange::getTokenRange( SourceRangeToReplace ), *Result.SourceManager, - Check.getLangOpts() ); - - Check.diag( - ConstructorCall->getBeginLoc(), - "Prefer constructing %0 from named constant '%1' rather than explicit integer arguments." - ) << ConstructorDecl->getParent() << UserVisibleReplacement << - FixItHint::CreateReplacement( CharRangeToReplace, Replacement ); -} - -void UseNamedPointConstantsCheck::check( const MatchFinder::MatchResult &Result ) -{ - CheckConstructor( *this, Result ); -} - -} // namespace cata -} // namespace tidy -} // namespace clang diff --git a/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.h b/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.h deleted file mode 100644 index 6d94e903553ff..0000000000000 --- a/tools/clang-tidy-plugin/UseNamedPointConstantsCheck.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CATA_TOOLS_CLANG_TIDY_USENAMESPOINTCONSTANTSCHECK_H -#define CATA_TOOLS_CLANG_TIDY_USENAMESPOINTCONSTANTSCHECK_H - -#include -#include - -#include "ClangTidy.h" - -namespace clang -{ -class CompilerInstance; - -namespace tidy -{ -class ClangTidyContext; - -namespace cata -{ - -class UseNamedPointConstantsCheck : public ClangTidyCheck -{ - public: - UseNamedPointConstantsCheck( StringRef Name, ClangTidyContext *Context ) - : ClangTidyCheck( Name, Context ) {} - void registerMatchers( ast_matchers::MatchFinder *Finder ) override; - void check( const ast_matchers::MatchFinder::MatchResult &Result ) override; - using ClangTidyCheck::getLangOpts; -}; - -} // namespace cata -} // namespace tidy -} // namespace clang - -#endif // CATA_TOOLS_CLANG_TIDY_USENAMESPOINTCONSTANTSCHECK_H diff --git a/tools/clang-tidy-plugin/UsePointApisCheck.cpp b/tools/clang-tidy-plugin/UsePointApisCheck.cpp deleted file mode 100644 index 33dc7968a4433..0000000000000 --- a/tools/clang-tidy-plugin/UsePointApisCheck.cpp +++ /dev/null @@ -1,210 +0,0 @@ -#include "UsePointApisCheck.h" - -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/Frontend/CompilerInstance.h" - -#include "Utils.h" - -using namespace clang::ast_matchers; - -namespace clang -{ -namespace tidy -{ -namespace cata -{ - -void UsePointApisCheck::registerMatchers( MatchFinder *Finder ) -{ - Finder->addMatcher( - callExpr( - forEachArgumentWithParam( - expr().bind( "xarg" ), - parmVarDecl( - anyOf( hasType( asString( "int" ) ), hasType( asString( "const int" ) ) ), - matchesName( "x$" ) - ).bind( "xparam" ) - ), - callee( functionDecl().bind( "callee" ) ) - ).bind( "call" ), - this - ); -} - -static bool doFunctionsMatch( const FunctionDecl *Callee, const FunctionDecl *OtherCallee, - unsigned int NumCoordParams, unsigned int SkipArgs, - unsigned int MinArg, bool IsTripoint ) -{ - const unsigned int ExpectedNumParams = Callee->getNumParams() - ( NumCoordParams - 1 ); - - if( OtherCallee->getNumParams() != ExpectedNumParams ) { - return false; - } - // Check that arguments match up as expected - unsigned int CalleeParamI = 0; - unsigned int OtherCalleeParamI = 0; - - for( ; CalleeParamI < Callee->getNumParams(); ++CalleeParamI, ++OtherCalleeParamI ) { - const ParmVarDecl *CalleeParam = Callee->getParamDecl( CalleeParamI ); - const ParmVarDecl *OtherCalleeParam = - OtherCallee->getParamDecl( OtherCalleeParamI ); - - std::string ExpectedTypeName = CalleeParam->getType().getAsString(); - if( CalleeParamI == MinArg - SkipArgs ) { - std::string ShortTypeName = IsTripoint ? "tripoint" : "point"; - ExpectedTypeName = "const struct " + ShortTypeName + " &"; - CalleeParamI += NumCoordParams - 1; - } - - if( OtherCalleeParam->getType().getAsString() != ExpectedTypeName ) { - return false; - } - } - - return true; -} - -static void CheckCall( UsePointApisCheck &Check, const MatchFinder::MatchResult &Result ) -{ - const ParmVarDecl *XParam = Result.Nodes.getNodeAs( "xparam" ); - const Expr *XArg = Result.Nodes.getNodeAs( "xarg" ); - const CallExpr *Call = Result.Nodes.getNodeAs( "call" ); - const FunctionDecl *Callee = Result.Nodes.getNodeAs( "callee" ); - if( !XParam || !XArg || !Call || !Callee ) { - return; - } - - llvm::StringRef XPrefix = XParam->getName().drop_back(); - - const Expr *YArg = nullptr; - const Expr *ZArg = nullptr; - unsigned int MinArg = UINT_MAX; - unsigned int MaxArg = 0; - - // For operator() calls there is an extra 'this' argument that doesn't - // correspond to any parameter, so we need to skip over it. - unsigned int SkipArgs = 0; - if( Callee->getOverloadedOperator() == OO_Call ) { - SkipArgs = 1; - } - - if( Call->getNumArgs() - SkipArgs > Callee->getNumParams() ) { - Check.diag( - Call->getBeginLoc(), - "Internal check error: call has more arguments (%0) than function has parameters (%1)" - ) << Call->getNumArgs() << Callee->getNumParams(); - Check.diag( Callee->getLocation(), "called function %0", DiagnosticIDs::Note ) << Callee; - return; - } - - for( unsigned int i = SkipArgs; i < Call->getNumArgs(); ++i ) { - const ParmVarDecl *Param = Callee->getParamDecl( i - SkipArgs ); - StringRef Name = Param->getName(); - if( Name.size() > 0 && Name.drop_back() == XPrefix ) { - bool Matched = false; - - if( Name.endswith( "x" ) ) { - Matched = true; - } else if( Name.endswith( "y" ) ) { - YArg = Call->getArg( i ); - Matched = true; - } else if( Name.endswith( "z" ) ) { - ZArg = Call->getArg( i ); - Matched = true; - } - - if( Matched ) { - MinArg = std::min( MinArg, i ); - MaxArg = std::max( MaxArg, i ); - } - } - } - - if( !YArg ) { - return; - } - - const unsigned int NumCoordParams = ZArg ? 3 : 2; - - if( MaxArg - MinArg != NumCoordParams - 1 ) { - // This means that the parameters are not contiguous, which means we - // can't be sure we know what's going on. - return; - } - - const FunctionDecl *ContainingFunction = getContainingFunction( Result, Call ); - - // Look for another overload of the called function with a point parameter - // in the right spot. - - const FunctionDecl *NewCallee = nullptr; - const DeclContext *Context = Callee->getDeclContext(); - for( const NamedDecl *OtherDecl : Context->lookup( Callee->getDeclName() ) ) { - if( const FunctionDecl *OtherCallee = dyn_cast( OtherDecl ) ) { - if( OtherCallee == Callee || OtherCallee == ContainingFunction ) { - continue; - } - - if( doFunctionsMatch( Callee, OtherCallee, NumCoordParams, SkipArgs, MinArg, - !!ZArg ) ) { - NewCallee = OtherCallee; - break; - } - } - if( const FunctionTemplateDecl *OtherTmpl = - dyn_cast( OtherDecl ) ) { - const FunctionTemplateDecl *Tmpl = Callee->getPrimaryTemplate(); - - if( !Tmpl || Tmpl == OtherTmpl ) { - continue; - } - - if( doFunctionsMatch( Tmpl->getTemplatedDecl(), OtherTmpl->getTemplatedDecl(), - NumCoordParams, SkipArgs, MinArg, !!ZArg ) ) { - NewCallee = OtherTmpl->getTemplatedDecl(); - break; - } - } - } - - if( !NewCallee ) { - // No new overload available; no replacement to suggest - return; - } - - // Construct replacement text - std::string Replacement = - ( "point( " + getText( Result, XArg ) + ", " + getText( Result, YArg ) ).str(); - if( ZArg ) { - Replacement = ( "tri" + Replacement + ", " + getText( Result, ZArg ) ).str(); - } - Replacement += " )"; - - // Construct range to be replaced - while( isa( Call->getArg( MaxArg ) ) ) { - --MaxArg; - } - SourceRange SourceRangeToReplace( Call->getArg( MinArg )->getBeginLoc(), - Call->getArg( MaxArg )->getEndLoc() ); - CharSourceRange CharRangeToReplace = Lexer::makeFileCharRange( - CharSourceRange::getTokenRange( SourceRangeToReplace ), *Result.SourceManager, - Check.getLangOpts() ); - - std::string message = - ZArg ? "Call to %0 could instead call overload using a tripoint parameter." - : "Call to %0 could instead call overload using a point parameter."; - - Check.diag( Call->getBeginLoc(), message ) << Callee << - FixItHint::CreateReplacement( CharRangeToReplace, Replacement ); - Check.diag( Callee->getLocation(), "current overload", DiagnosticIDs::Note ); - Check.diag( NewCallee->getLocation(), "alternate overload", DiagnosticIDs::Note ); -} - -void UsePointApisCheck::check( const MatchFinder::MatchResult &Result ) -{ - CheckCall( *this, Result ); -} - -} // namespace cata -} // namespace tidy -} // namespace clang diff --git a/tools/clang-tidy-plugin/UsePointApisCheck.h b/tools/clang-tidy-plugin/UsePointApisCheck.h deleted file mode 100644 index e98b5b8edb64c..0000000000000 --- a/tools/clang-tidy-plugin/UsePointApisCheck.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CATA_TOOLS_CLANG_TIDY_USEPOINTAPISCHECK_H -#define CATA_TOOLS_CLANG_TIDY_USEPOINTAPISCHECK_H - -#include -#include - -#include "ClangTidy.h" - -namespace clang -{ -class CompilerInstance; - -namespace tidy -{ -class ClangTidyContext; - -namespace cata -{ - -class UsePointApisCheck : public ClangTidyCheck -{ - public: - UsePointApisCheck( StringRef Name, ClangTidyContext *Context ) - : ClangTidyCheck( Name, Context ) {} - void registerMatchers( ast_matchers::MatchFinder *Finder ) override; - void check( const ast_matchers::MatchFinder::MatchResult &Result ) override; - using ClangTidyCheck::getLangOpts; -}; - -} // namespace cata -} // namespace tidy -} // namespace clang - -#endif // CATA_TOOLS_CLANG_TIDY_USEPOINTAPISCHECK_H diff --git a/tools/clang-tidy-plugin/UsePointArithmeticCheck.cpp b/tools/clang-tidy-plugin/UsePointArithmeticCheck.cpp deleted file mode 100644 index 821f5d79438a9..0000000000000 --- a/tools/clang-tidy-plugin/UsePointArithmeticCheck.cpp +++ /dev/null @@ -1,641 +0,0 @@ -#include "UsePointArithmeticCheck.h" - -#include - -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/Frontend/CompilerInstance.h" - -#include "Utils.h" - -using namespace clang::ast_matchers; - -namespace clang -{ -namespace tidy -{ -namespace cata -{ - -static auto isRefactorableExpr( const std::string &member_ ) -{ - return ignoringParenCasts( - anyOf( - memberExpr( - member( hasName( member_ ) ) - ), - binaryOperator(), - cxxOperatorCallExpr() - ) - ); -} - -void UsePointArithmeticCheck::registerMatchers( MatchFinder *Finder ) -{ - Finder->addMatcher( - cxxConstructExpr( - hasDeclaration( isPointConstructor().bind( "constructorDecl" ) ), - testWhetherConstructingTemporary(), - argumentCountIs( 2 ), - hasArgument( 0, expr( isRefactorableExpr( "x" ) ).bind( "xexpr" ) ), - hasArgument( 1, expr( isRefactorableExpr( "y" ) ).bind( "yexpr" ) ) - ).bind( "constructorCall" ), - this - ); - Finder->addMatcher( - cxxConstructExpr( - hasDeclaration( isPointConstructor().bind( "constructorDecl" ) ), - testWhetherConstructingTemporary(), - anyOf( - allOf( - argumentCountIs( 3 ), - hasArgument( 0, expr( isRefactorableExpr( "x" ) ).bind( "xexpr" ) ), - hasArgument( 1, expr( isRefactorableExpr( "y" ) ).bind( "yexpr" ) ), - hasArgument( 2, expr( isRefactorableExpr( "z" ) ).bind( "zexpr" ) ) - ), - allOf( - argumentCountIs( 2 ), - hasArgument( 0, expr( isRefactorableExpr( "xy" ) ).bind( "xyexpr" ) ), - hasArgument( 1, expr( isRefactorableExpr( "z" ) ).bind( "zexpr" ) ) - ) - ) - ).bind( "constructorCall" ), - this - ); -} - -struct ExpressionComponent { - ExpressionComponent( const MatchFinder::MatchResult &Result, const Expr *E ) : - objectRef( getText( Result, E ) ), - coefficient( 1 ), - isMember( false ), - isArrowRef( false ), - isTripoint( false ) - {} - - ExpressionComponent( const MatchFinder::MatchResult &Result, const Expr *E, - const CXXRecordDecl *MemberOf, bool IsArrowRef ) : - objectRef( getText( Result, E ) ), - coefficient( 1 ), - isMember( true ), - isArrowRef( IsArrowRef ), - isTripoint( MemberOf->getName() == "tripoint" ) - {} - - std::string objectRef; - int coefficient; - bool coefficientInvolvesMacro = false; - bool isMember; - bool isArrowRef; - bool isTripoint; - - std::tuple sortKey() const { - return std::make_tuple( isMember, objectRef, isArrowRef ); - } - - bool canConsolidateWith( const ExpressionComponent &other ) const { - return sortKey() == other.sortKey(); - } - - void consolidate( const ExpressionComponent &other ) { - coefficient += other.coefficient; - } -}; - -static bool operator<( const ExpressionComponent &l, const ExpressionComponent &r ) -{ - return l.sortKey() < r.sortKey(); -} - -static bool operator>( const ExpressionComponent &l, const ExpressionComponent &r ) -{ - return r < l; -} - -static bool isPointType( const CXXRecordDecl *R ) -{ - if( !R ) { - return false; - } - StringRef name = R->getName(); - return name == "point" || name == "tripoint"; -} - -static std::vector handleMultiply( - const Expr *LhsE, const Expr *RhsE, - std::vector LhsC, std::vector RhsC ) -{ - auto updateComponents = [&]( std::vector &Components, - const IntegerLiteral * CoeffExpr ) { - int Value = CoeffExpr->getValue().getZExtValue(); - bool IsMacro = CoeffExpr->getBeginLoc().isMacroID(); - for( ExpressionComponent &Component : Components ) { - Component.coefficient *= Value; - Component.coefficientInvolvesMacro |= IsMacro; - } - }; - - if( const IntegerLiteral *CoeffExpr = dyn_cast( LhsE ) ) { - updateComponents( RhsC, CoeffExpr ); - return RhsC; - } - if( const IntegerLiteral *CoeffExpr = dyn_cast( RhsE ) ) { - updateComponents( LhsC, CoeffExpr ); - return LhsC; - } - return {}; -} - -static std::vector decomposeExpr( const Expr *E, const std::string &Member, - const MatchFinder::MatchResult &Result ) -{ - auto anyHaveMember = []( const std::vector &Components ) { - auto isMember = []( const ExpressionComponent & C ) { - return C.isMember; - }; - return std::any_of( Components.begin(), Components.end(), isMember ); - }; - assert( E ); - switch( E->getStmtClass() ) { - case Stmt::BinaryOperatorClass: { - const BinaryOperator *Binary = cast( E ); - std::vector Lhs = - decomposeExpr( Binary->getLHS(), Member, Result ); - std::vector Rhs = - decomposeExpr( Binary->getRHS(), Member, Result ); - if( Lhs.empty() || Rhs.empty() ) { - return {}; - } - if( !anyHaveMember( Lhs ) && !anyHaveMember( Rhs ) ) { - return { { Result, E } }; - } - - switch( Binary->getOpcode() ) { - case BO_Add: - Lhs.insert( Lhs.end(), Rhs.begin(), Rhs.end() ); - return Lhs; - case BO_Sub: - for( ExpressionComponent &Component : Rhs ) { - Component.coefficient *= -1; - } - Lhs.insert( Lhs.end(), Rhs.begin(), Rhs.end() ); - return Lhs; - case BO_Mul: - return handleMultiply( Binary->getLHS(), Binary->getRHS(), Lhs, Rhs ); - default: - return {}; - } - } - case Stmt::CXXMemberCallExprClass: { - const CXXMemberCallExpr *MemEx = cast( E ); - const CXXMethodDecl *MemDecl = MemEx->getMethodDecl(); - const CXXRecordDecl *Record = dyn_cast( MemDecl->getParent() ); - if( isPointType( Record ) && MemDecl->getName() == Member ) { - const Expr *Object = MemEx->getImplicitObjectArgument(); - QualType ObjectType = Object->getType(); - bool IsArrowRef = ObjectType->isPointerType(); - return { { Result, Object, MemDecl->getParent(), IsArrowRef } }; - } else { - return { { Result, E } }; - } - } - case Stmt::CXXOperatorCallExprClass: { - const CXXOperatorCallExpr *Op = cast( E ); - if( Op->getNumArgs() == 1 ) { - std::vector Inner = - decomposeExpr( Op->getArg( 0 ), Member, Result ); - if( Inner.empty() ) { - return {}; - } - switch( Op->getOperator() ) { - case OO_Minus: - for( ExpressionComponent &Component : Inner ) { - Component.coefficient *= -1; - } - return Inner; - default: - return {}; - } - } else if( Op->getNumArgs() == 2 ) { - std::vector Lhs = - decomposeExpr( Op->getArg( 0 ), Member, Result ); - std::vector Rhs = - decomposeExpr( Op->getArg( 1 ), Member, Result ); - if( Lhs.empty() || Rhs.empty() ) { - return {}; - } - switch( Op->getOperator() ) { - case OO_Plus: - Lhs.insert( Lhs.end(), Rhs.begin(), Rhs.end() ); - return Lhs; - case OO_Minus: - for( ExpressionComponent &Component : Rhs ) { - Component.coefficient *= -1; - } - Lhs.insert( Lhs.end(), Rhs.begin(), Rhs.end() ); - return Lhs; - case OO_Star: - return handleMultiply( Op->getArg( 0 ), Op->getArg( 1 ), Lhs, Rhs ); - default: - return {}; - } - } else { - return {}; - } - } - case Stmt::ImplicitCastExprClass: { - const ImplicitCastExpr *Implicit = cast( E ); - return decomposeExpr( Implicit->getSubExpr(), Member, Result ); - } - case Stmt::MaterializeTemporaryExprClass: { - const MaterializeTemporaryExpr *Temp = cast( E ); - return decomposeExpr( Temp->GetTemporaryExpr(), Member, Result ); - } - case Stmt::MemberExprClass: { - const MemberExpr *MemEx = cast( E ); - const ValueDecl *MemDecl = MemEx->getMemberDecl(); - const FieldDecl *Field = dyn_cast( MemDecl ); - const CXXRecordDecl *Record = - Field ? dyn_cast( Field->getParent() ) : nullptr; - if( isPointType( Record ) && MemDecl->getName() == Member ) { - const Expr *Object = MemEx->getBase(); - return { { Result, Object, Record, MemEx->isArrow() } }; - } else { - return { { Result, E } }; - } - } - case Stmt::ParenExprClass: { - const ParenExpr *P = cast( E ); - std::vector result = - decomposeExpr( P->getSubExpr(), Member, Result ); - if( !anyHaveMember( result ) ) { - return { { Result, E } }; - } - return result; - } - case Stmt::UnaryOperatorClass: { - const UnaryOperator *Unary = cast( E ); - std::vector Inner = - decomposeExpr( Unary->getSubExpr(), Member, Result ); - if( Inner.empty() ) { - return {}; - } - if( !anyHaveMember( Inner ) ) { - return { { Result, E } }; - } - - switch( Unary->getOpcode() ) { - case UO_Minus: - for( ExpressionComponent &Component : Inner ) { - Component.coefficient *= -1; - } - return Inner; - default: - return {}; - } - } - default: - return { { Result, E } }; - } -} - -static std::vector consolidateComponents( - std::vector components ) -{ - std::sort( components.begin(), components.end() ); - std::vector result; - for( const ExpressionComponent &component : components ) { - if( !result.empty() && result.back().canConsolidateWith( component ) ) { - result.back().consolidate( component ); - } else { - result.push_back( component ); - } - } - return result; -} - -// The code needed to extract the given coordinates from (first) a point and -// (second) a tripoint. -static const std::unordered_map> -MemberAccessor = { - { "x", { ".x", ".x" } }, - { "y", { ".y", ".y" } }, - { "z", { ".z", ".z" } }, - { "xy", { "", ".xy()" } }, - { "xyz", { "", "" } }, -}; - -static void appendCoefficient( std::string &Result, int coefficient ) -{ - switch( coefficient ) { - case -1: - if( Result.empty() ) { - Result += "-"; - } else { - Result += " - "; - } - break; - case 0: - break; - case 1: - if( !Result.empty() ) { - Result += " + "; - } - break; - default: - if( Result.empty() ) { - Result += std::to_string( coefficient ) + " * "; - } else if( coefficient < 0 ) { - Result += " - " + std::to_string( -coefficient ) + " * "; - } else { - Result += " + " + std::to_string( coefficient ) + " * "; - } - } -} - -static std::string writeConstructor( const std::string &TypeName, - const std::set &Keys, - std::map Args ) -{ - std::string Result = TypeName + "( "; - bool AnyLeftovers = false; - for( const auto &Key : Keys ) { - std::string &Leftover = Args[Key]; - if( Leftover.empty() ) { - Leftover = "0"; - } else { - AnyLeftovers = true; - } - Result += Leftover + ", "; - } - - if( AnyLeftovers ) { - Result.erase( Result.end() - 2, Result.end() ); - return Result + " )"; - } - - return ""; -} - -static void appendComponent( std::string &Result, const ExpressionComponent &Component, - const std::string &MemberKey ) -{ - appendCoefficient( Result, Component.coefficient ); - - std::string Prefix; - std::string Accessor; - - if( Component.isMember ) { - const std::pair &Accessors = MemberAccessor.at( MemberKey ); - Accessor = Component.isTripoint ? Accessors.second : Accessors.first; - if( Component.isArrowRef ) { - if( Accessor.empty() ) { - Prefix = "*"; - } else { - assert( Accessor[0] == '.' ); - Accessor.erase( Accessor.begin() ); - Accessor = "->" + Accessor; - } - } - } - - Result += Prefix + Component.objectRef + Accessor; -} - -static void appendMismatchedComponent( - std::string &Result, - const std::map> &Components, - const std::map::const_iterator> &Positions, - const ExpressionComponent &MinComponent, const std::string &Members ) -{ - appendCoefficient( Result, 1 ); - std::string TypeName = Members == "xy" ? "point" : "tripoint"; - std::map Coordinates; - std::set Keys; - for( const auto &Position : Positions ) { - const std::string &Key = Position.first; - Keys.insert( Key ); - bool AtEnd = Position.second == Components.at( Key ).end(); - if( !AtEnd && Position.second->sortKey() == MinComponent.sortKey() ) { - appendComponent( Coordinates[Key], *Position.second, Position.first ); - } - } - - Result += writeConstructor( TypeName, Keys, Coordinates ); -} - -static void CheckConstructor( UsePointArithmeticCheck &Check, - const MatchFinder::MatchResult &Result ) -{ - const CXXConstructExpr *ConstructorCall = - Result.Nodes.getNodeAs( "constructorCall" ); - const CXXConstructorDecl *ConstructorDecl = - Result.Nodes.getNodeAs( "constructorDecl" ); - const Expr *XExpr = Result.Nodes.getNodeAs( "xexpr" ); - const Expr *YExpr = Result.Nodes.getNodeAs( "yexpr" ); - const Expr *ZExpr = Result.Nodes.getNodeAs( "zexpr" ); - const Expr *XYExpr = Result.Nodes.getNodeAs( "xyexpr" ); - const Expr *TempParent = Result.Nodes.getNodeAs( "temp" ); - if( !ConstructorCall || !ConstructorDecl ) { - return; - } - - std::map> Components; - - auto insertComponentsIf = [&]( const Expr * E, const char *Key ) { - if( E ) { - Components.insert( - { Key, consolidateComponents( decomposeExpr( E, Key, Result ) ) } ); - } - }; - insertComponentsIf( XExpr, "x" ); - insertComponentsIf( YExpr, "y" ); - insertComponentsIf( ZExpr, "z" ); - insertComponentsIf( XYExpr, "xy" ); - - if( Components.size() < 2 ) { - return; - } - - // Don't mess with the methods of point and tripoint themselves - if( const FunctionDecl *ContainingFunc = getContainingFunction( Result, ConstructorCall ) ) { - if( const CXXMethodDecl *ContainingMethod = dyn_cast( ContainingFunc ) ) { - const CXXRecordDecl *ContainingRecord = ContainingMethod->getParent(); - if( isPointType( ContainingRecord ) ) { - return; - } - } - } - - std::string Joined; - std::map Leftovers; - std::map::const_iterator> Positions; - - bool AnyWithMultipleComponents = false; - for( auto const &Component : Components ) { - if( Component.second.size() > 1 ) { - AnyWithMultipleComponents = true; - } - Positions.insert( { Component.first, Component.second.begin() } ); - } - - if( !AnyWithMultipleComponents ) { - return; - } - - while( true ) { - bool XYAtEnd = false; - for( auto const &Component : Components ) { - if( Component.first == "z" ) { - continue; - } - if( Positions.at( Component.first ) == Component.second.end() ) { - XYAtEnd = true; - break; - } - } - if( XYAtEnd ) { - // We have finished at least one of the lists, so there will be no - // more matches. We can simply append all the remainder to the - // leftovers - for( auto const &Component : Components ) { - const std::string &Key = Component.first; - auto Position = Positions.at( Key ); - while( Position != Component.second.end() ) { - appendComponent( Leftovers[Key], *Position, Key ); - ++Position; - } - } - break; - } - - // Find the minimum element amongst the next elements - std::string MinKey = Positions.begin()->first; - const ExpressionComponent *CurrentMin = &*Positions.begin()->second; - for( auto const &Position : Positions ) { - const std::string &Key = Position.first; - if( Position.second != Components.at( Key ).end() && - *Position.second < *CurrentMin ) { - MinKey = Key; - CurrentMin = &*Position.second; - } - } - - int AnyCoefficient = CurrentMin->coefficient; - bool AllEqual = true; - bool XYEqual = true; - bool HasZ = false; - bool CoefficientsEqual = true; - bool InvolvesMacro = false; - for( auto const &Position : Positions ) { - const std::string &Key = Position.first; - bool AtEnd = Position.second == Components.at( Key ).end(); - if( !AtEnd && *Position.second < *CurrentMin ) { - assert( false ); - } else if( AtEnd || *Position.second > *CurrentMin ) { - AllEqual = false; - if( Key != "z" ) { - XYEqual = false; - } - } else { - if( Key == "z" ) { - HasZ = true; - } - if( Position.second->coefficientInvolvesMacro ) { - InvolvesMacro = true; - } - if( Position.second->coefficient != AnyCoefficient ) { - CoefficientsEqual = false; - } - } - } - - if( InvolvesMacro ) { - Check.diag( - ConstructorCall->getBeginLoc(), - "Construction of %0 where a coefficient computation involves multiplication by " - "a macro constant. Should you be using one of the coordinate transformation " - "functions?" ) << - ConstructorDecl->getParent(); - return; - } - - if( CurrentMin->isMember && XYEqual ) { - // There is some level of equality, so try to output a joined - // expression - if( CoefficientsEqual ) { - if( AllEqual && HasZ ) { - appendComponent( Joined, *CurrentMin, "xyz" ); - } else { - appendComponent( Joined, *CurrentMin, "xy" ); - } - } else { - if( AllEqual && HasZ ) { - appendMismatchedComponent( - Joined, Components, Positions, *CurrentMin, "xyz" ); - } else { - appendMismatchedComponent( Joined, Components, Positions, *CurrentMin, "xy" ); - } - } - for( auto &Position : Positions ) { - const std::string &Key = Position.first; - bool AtEnd = Position.second == Components.at( Key ).end(); - if( !AtEnd && Position.second->sortKey() == CurrentMin->sortKey() ) { - ++Position.second; - } - } - } else { - // Otherwise just emit a single-coordinate piece - appendComponent( Leftovers[MinKey], *CurrentMin, MinKey ); - ++Positions.at( MinKey ); - } - } - - if( Joined.empty() ) { - return; - } - - std::set Keys; - for( const auto &Component : Components ) { - Keys.insert( Component.first ); - } - - std::string TargetTypeName; - if( Leftovers["z"].empty() ) { - TargetTypeName = "point"; - Keys.erase( "z" ); - } else { - TargetTypeName = ConstructorDecl->getParent()->getName(); - } - std::string AccumulatedLeftovers = writeConstructor( TargetTypeName, Keys, Leftovers ); - - if( !AccumulatedLeftovers.empty() ) { - Joined += " + " + AccumulatedLeftovers; - } - - const unsigned int LastArg = ConstructorCall->getNumArgs() - 1; - SourceRange SourceRangeToReplace( ConstructorCall->getArg( 0 )->getBeginLoc(), - ConstructorCall->getArg( LastArg )->getEndLoc() ); - - if( TempParent ) { - SourceRangeToReplace = ConstructorCall->getSourceRange(); - } - - CharSourceRange CharRangeToReplace = Lexer::makeFileCharRange( - CharSourceRange::getTokenRange( SourceRangeToReplace ), *Result.SourceManager, - Check.getLangOpts() ); - - Check.diag( - ConstructorCall->getBeginLoc(), - "Construction of %0 can be simplified using overloaded arithmetic operators." ) << - ConstructorDecl->getParent() << - FixItHint::CreateReplacement( CharRangeToReplace, Joined ); -} - -void UsePointArithmeticCheck::check( const MatchFinder::MatchResult &Result ) -{ - CheckConstructor( *this, Result ); -} - -} // namespace cata -} // namespace tidy -} // namespace clang diff --git a/tools/clang-tidy-plugin/UsePointArithmeticCheck.h b/tools/clang-tidy-plugin/UsePointArithmeticCheck.h deleted file mode 100644 index 6ba038caac6d5..0000000000000 --- a/tools/clang-tidy-plugin/UsePointArithmeticCheck.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CATA_TOOLS_CLANG_TIDY_USEPOINTARITHMETICCHECK_H -#define CATA_TOOLS_CLANG_TIDY_USEPOINTARITHMETICCHECK_H - -#include -#include - -#include "ClangTidy.h" - -namespace clang -{ -class CompilerInstance; - -namespace tidy -{ -class ClangTidyContext; - -namespace cata -{ - -class UsePointArithmeticCheck : public ClangTidyCheck -{ - public: - UsePointArithmeticCheck( StringRef Name, ClangTidyContext *Context ) - : ClangTidyCheck( Name, Context ) {} - void registerMatchers( ast_matchers::MatchFinder *Finder ) override; - void check( const ast_matchers::MatchFinder::MatchResult &Result ) override; - using ClangTidyCheck::getLangOpts; -}; - -} // namespace cata -} // namespace tidy -} // namespace clang - -#endif // CATA_TOOLS_CLANG_TIDY_USEPOINTARITHMETICCHECK_H diff --git a/tools/clang-tidy-plugin/Utils.h b/tools/clang-tidy-plugin/Utils.h deleted file mode 100644 index bce510ffba826..0000000000000 --- a/tools/clang-tidy-plugin/Utils.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef CATA_TOOLS_CLANG_TIDY_UTILS_H -#define CATA_TOOLS_CLANG_TIDY_UTILS_H - -#include "clang/ASTMatchers/ASTMatchFinder.h" - -namespace clang -{ -namespace tidy -{ -namespace cata -{ - -inline StringRef getText( - const ast_matchers::MatchFinder::MatchResult &Result, SourceRange Range ) -{ - return Lexer::getSourceText( CharSourceRange::getTokenRange( Range ), - *Result.SourceManager, - Result.Context->getLangOpts() ); -} - -template -inline StringRef getText( const ast_matchers::MatchFinder::MatchResult &Result, T *Node ) -{ - if( const CXXDefaultArgExpr *Default = dyn_cast( Node ) ) { - return getText( Result, Default->getExpr() ); - } - return getText( Result, Node->getSourceRange() ); -} - -template -static const FunctionDecl *getContainingFunction( - const ast_matchers::MatchFinder::MatchResult &Result, const T *Node ) -{ - for( const ast_type_traits::DynTypedNode &parent : Result.Context->getParents( *Node ) ) { - if( const Decl *Candidate = parent.get() ) { - if( const FunctionDecl *ContainingFunction = dyn_cast( Candidate ) ) { - return ContainingFunction; - } - if( const FunctionDecl *ContainingFunction = - getContainingFunction( Result, Candidate ) ) { - return ContainingFunction; - } - } - if( const Stmt *Candidate = parent.get() ) { - if( const FunctionDecl *ContainingFunction = - getContainingFunction( Result, Candidate ) ) { - return ContainingFunction; - } - } - } - - return nullptr; -} - -inline auto isPointType() -{ - using namespace clang::ast_matchers; - return cxxRecordDecl( anyOf( hasName( "point" ), hasName( "tripoint" ) ) ); -} - -inline auto isPointConstructor() -{ - using namespace clang::ast_matchers; - return cxxConstructorDecl( ofClass( isPointType() ) ); -} - -// This returns a matcher that always matches, but binds "temp" if the -// constructor call is constructing a temporary object. -inline auto testWhetherConstructingTemporary() -{ - using namespace clang::ast_matchers; - return cxxConstructExpr( - anyOf( - hasParent( materializeTemporaryExpr().bind( "temp" ) ), - hasParent( - implicitCastExpr( hasParent( materializeTemporaryExpr().bind( "temp" ) ) ) - ), - hasParent( callExpr().bind( "temp" ) ), - hasParent( initListExpr().bind( "temp" ) ), - anything() - ) - ); -} - -} // namespace cata -} // namespace tidy -} // namespace clang - -#endif // CATA_TOOLS_CLANG_TIDY_UTILS_H diff --git a/tools/clang-tidy-plugin/XYCheck.cpp b/tools/clang-tidy-plugin/XYCheck.cpp deleted file mode 100644 index 8b3ac0a301de2..0000000000000 --- a/tools/clang-tidy-plugin/XYCheck.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "XYCheck.h" - -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/Frontend/CompilerInstance.h" - -using namespace clang::ast_matchers; - -namespace clang -{ -namespace tidy -{ -namespace cata -{ - -void XYCheck::registerMatchers( MatchFinder *Finder ) -{ - Finder->addMatcher( - fieldDecl( - hasType( asString( "int" ) ), - matchesName( "x$" ), - hasParent( - cxxRecordDecl( - forEachDescendant( fieldDecl( matchesName( "y$" ) ).bind( "yfield" ) ) - ).bind( "record" ) - ) - ).bind( "xfield" ), - this - ); -} - -static void CheckField( XYCheck &Check, const MatchFinder::MatchResult &Result ) -{ - const FieldDecl *XVar = Result.Nodes.getNodeAs( "xfield" ); - const FieldDecl *YVar = Result.Nodes.getNodeAs( "yfield" ); - const CXXRecordDecl *Record = Result.Nodes.getNodeAs( "record" ); - if( !XVar || !YVar || !Record ) { - return; - } - llvm::StringRef XPrefix = XVar->getName().drop_back(); - llvm::StringRef YPrefix = YVar->getName().drop_back(); - if( XPrefix != YPrefix ) { - return; - } - - const FieldDecl *ZVar = nullptr; - for( FieldDecl *Field : Record->fields() ) { - StringRef Name = Field->getName(); - if( Name.endswith( "z" ) && Name.drop_back() == XPrefix ) { - ZVar = Field; - break; - } - } - TemplateSpecializationKind tsk = Record->getTemplateSpecializationKind(); - if( tsk != TSK_Undeclared ) { - // Avoid duplicate warnings for specializations - return; - } - if( ZVar ) { - Check.diag( - Record->getLocation(), - "%0 defines fields %1, %2, and %3. Consider combining into a single tripoint " - "field." ) << Record << XVar << YVar << ZVar; - } else { - Check.diag( - Record->getLocation(), - "%0 defines fields %1 and %2. Consider combining into a single point " - "field." ) << Record << XVar << YVar; - } - Check.diag( XVar->getLocation(), "declaration of %0", DiagnosticIDs::Note ) << XVar; - Check.diag( YVar->getLocation(), "declaration of %0", DiagnosticIDs::Note ) << YVar; - if( ZVar ) { - Check.diag( ZVar->getLocation(), "declaration of %0", DiagnosticIDs::Note ) << ZVar; - } -} - -void XYCheck::check( const MatchFinder::MatchResult &Result ) -{ - CheckField( *this, Result ); -} - -} // namespace cata -} // namespace tidy -} // namespace clang diff --git a/tools/clang-tidy-plugin/XYCheck.h b/tools/clang-tidy-plugin/XYCheck.h deleted file mode 100644 index f871fe5e9c827..0000000000000 --- a/tools/clang-tidy-plugin/XYCheck.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef CATA_TOOLS_CLANG_TIDY_XYCHECK_H -#define CATA_TOOLS_CLANG_TIDY_XYCHECK_H - -#include -#include - -#include "ClangTidy.h" - -namespace clang -{ -class CompilerInstance; - -namespace tidy -{ -class ClangTidyContext; - -namespace cata -{ - -class XYCheck : public ClangTidyCheck -{ - public: - XYCheck( 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_XYCHECK_H diff --git a/tools/clang-tidy-plugin/test/lit.cfg b/tools/clang-tidy-plugin/test/lit.cfg index 4ab6e913a73b3..bf660481acf60 100644 --- a/tools/clang-tidy-plugin/test/lit.cfg +++ b/tools/clang-tidy-plugin/test/lit.cfg @@ -17,11 +17,8 @@ else: config.plugin_build_root, 'clang-tidy-plugin-support', 'bin', 'check_clang_tidy.py') -cata_include = os.path.join( config.cata_source_dir, "src" ) - cata_plugin = os.path.join( config.plugin_build_root, 'libCataAnalyzerPlugin.so') config.substitutions.append(('%check_clang_tidy', check_clang_tidy)) -config.substitutions.append(('%cata_include', cata_include)) config.substitutions.append(('%cata_plugin', cata_plugin)) diff --git a/tools/clang-tidy-plugin/test/lit.site.cfg.in b/tools/clang-tidy-plugin/test/lit.site.cfg.in index 029fb178021e3..aae4d01870d78 100644 --- a/tools/clang-tidy-plugin/test/lit.site.cfg.in +++ b/tools/clang-tidy-plugin/test/lit.site.cfg.in @@ -1,6 +1,5 @@ import os -config.cata_source_dir = "@CMAKE_SOURCE_DIR@" config.plugin_build_root = "@CMAKE_CURRENT_BINARY_DIR@" config.cata_check_clang_tidy = "@CATA_CHECK_CLANG_TIDY@" diff --git a/tools/clang-tidy-plugin/test/point-initialization.cpp b/tools/clang-tidy-plugin/test/point-initialization.cpp deleted file mode 100644 index 87f5b7a29bb11..0000000000000 --- a/tools/clang-tidy-plugin/test/point-initialization.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// RUN: %check_clang_tidy %s cata-point-initialization %t -- -plugins=%cata_plugin -- -isystem %cata_include - -#define CATA_NO_STL -#include "point.h" - -struct non_point { - constexpr non_point() = default; - constexpr non_point( int, int ); -}; - -point p0 = point_zero; -// CHECK-MESSAGES: warning: Unnecessary initialization of 'p0'. 'point' is zero-initialized by default. [cata-point-initialization] -point p1( 0, 0 ); -// CHECK-MESSAGES: warning: Unnecessary initialization of 'p1'. 'point' is zero-initialized by default. [cata-point-initialization] - -tripoint t0 = tripoint_zero; -// CHECK-MESSAGES: warning: Unnecessary initialization of 't0'. 'tripoint' is zero-initialized by default. [cata-point-initialization] -tripoint t1( 0, 0, 0 ); -// CHECK-MESSAGES: warning: Unnecessary initialization of 't1'. 'tripoint' is zero-initialized by default. [cata-point-initialization] - -// Verify that it doesn't trigger on only some zero args -tripoint t1a( 0, 0, 1 ); - -// Verify that it doesn't trigger on other types -non_point n0( 0, 0 ); - -// Verify that it doesn't trigger on parameter default arguments -void f( point p = point_zero ); - -struct A { - A() : p2( point_zero ) {} - // CHECK-MESSAGES: warning: Unnecessary initialization of 'p2'. 'point' is zero-initialized by default. [cata-point-initialization] - A( int ) : p3( 0, 0 ) {} - // CHECK-MESSAGES: warning: Unnecessary initialization of 'p3'. 'point' is zero-initialized by default. [cata-point-initialization] - A( char ) : t2( tripoint_zero ) {} - // CHECK-MESSAGES: warning: Unnecessary initialization of 't2'. 'tripoint' is zero-initialized by default. [cata-point-initialization] - A( long ) : t3( 0, 0, 0 ) {} - // CHECK-MESSAGES: warning: Unnecessary initialization of 't3'. 'tripoint' is zero-initialized by default. [cata-point-initialization] - A( short ) : n2( 0, 0 ) {} - - point p2; - point p3; - tripoint t2; - tripoint t3; - non_point n2; -}; diff --git a/tools/clang-tidy-plugin/test/simplify-point-constructors.cpp b/tools/clang-tidy-plugin/test/simplify-point-constructors.cpp deleted file mode 100644 index ed0e87f3da181..0000000000000 --- a/tools/clang-tidy-plugin/test/simplify-point-constructors.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// RUN: %check_clang_tidy %s cata-simplify-point-constructors %t -- -plugins=%cata_plugin -- -isystem %cata_include - -#define CATA_NO_STL -#include "point.h" - -point p0; -point p0a( p0.x, p0.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: point p0a( p0 ); - -point p1; -point p1a = point( p1.x, p1.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: point p1a = p1; - -point p2; -tripoint p2a = tripoint( p2.x, p2.y, 0 ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: point p2a = tripoint( p2, 0 ); - -tripoint p3; -tripoint p3a = tripoint( p3.x, p3.y, p3.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: point p3a = p3; - -tripoint p4; -point p4a = point( p4.x, p4.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: point p4a = p4.xy(); - -point p5; -int f5( const point & ); -int i5 = f5( { p5.x, p5.y } ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: int i5 = f5( p5 ); - -tripoint p6; -int f6( const tripoint & ); -int i6 = f6( { p6.x, p6.y, p6.z } ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: int i6 = f6( p6 ); - -point p7; -point p7a = { p7.x, p7.y }; -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: point p7a = { p7 }; - -point p8; -point p8a{ p7.x, p7.y }; -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: point p8a{ p7 }; - -point p9; -int f9( const point & ); -int i9 = f9( point( p9.x, p9.y ) ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified. [cata-simplify-point-constructors] -// CHECK-FIXES: int i9 = f9( p9 ); diff --git a/tools/clang-tidy-plugin/test/use-named-point-constants.cpp b/tools/clang-tidy-plugin/test/use-named-point-constants.cpp deleted file mode 100644 index 10b16541468f5..0000000000000 --- a/tools/clang-tidy-plugin/test/use-named-point-constants.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// RUN: %check_clang_tidy %s cata-use-named-point-constants %t -- -plugins=%cata_plugin -- -isystem %cata_include - -#define CATA_NO_STL -#include "point.h" - -point p0( 0, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_zero' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p0( point_zero ); - -tripoint p1( 0, 0, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p1( tripoint_zero ); - -point p2( 3, 3 ); - -point p3( 0, -1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_north' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p3( point_north ); - -point p4( 1, -1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_north_east' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p4( point_north_east ); - -point p5( +1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_east' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p5( point_east ); - -point p6( 1, 1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_south_east' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p6( point_south_east ); - -point p7( 0, 1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_south' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p7( point_south ); - -point p8( -1, 1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_south_west' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p8( point_south_west ); - -point p9( -1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_west' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p9( point_west ); - -point p10( -1, -1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_north_west' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p10( point_north_west ); - -tripoint p11( 0, 0, 1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_above' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p11( tripoint_above ); - -tripoint p12( 0, 0, -1 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_below' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p12( tripoint_below ); - -tripoint p13( 0, -1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_north' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p13( tripoint_north ); - -tripoint p14( 1, -1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_north_east' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p14( tripoint_north_east ); - -tripoint p15( 1, 0, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_east' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p15( tripoint_east ); - -tripoint p16( 1, 1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_south_east' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p16( tripoint_south_east ); - -tripoint p17( 0, 1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_south' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p17( tripoint_south ); - -tripoint p18( -1, 1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_south_west' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p18( tripoint_south_west ); - -tripoint p19( -1, 0, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_west' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p19( tripoint_west ); - -tripoint p20( -1, -1, 0 ); -// CHECK-MESSAGES: warning: Prefer constructing 'tripoint' from named constant 'tripoint_north_west' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: tripoint p20( tripoint_north_west ); - -int f21( const point & ); -point p21; -int i21 = f21( p21 + point( 1, 0 ) ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_east' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: int i21 = f21( p21 + point_east ); - -int f22( const point & = point( 0, 0 ) ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_zero' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: int f22( const point & = point_zero ); - -int f23( const point & = { 0, 0 } ); -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_zero' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: int f23( const point & = point_zero ); - -point p24[1] = { { 0, 0 } }; -// CHECK-MESSAGES: warning: Prefer constructing 'point' from named constant 'point_zero' rather than explicit integer arguments. [cata-use-named-point-constants] -// CHECK-FIXES: point p24[1] = { point_zero }; diff --git a/tools/clang-tidy-plugin/test/use-point-apis.cpp b/tools/clang-tidy-plugin/test/use-point-apis.cpp deleted file mode 100644 index 362a2258e4395..0000000000000 --- a/tools/clang-tidy-plugin/test/use-point-apis.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// RUN: %check_clang_tidy %s cata-use-point-apis %t -- -plugins=%cata_plugin -- -isystem %cata_include - -#define CATA_NO_STL -#include "point.h" - -int f0( int x, int y ); -int f0( const point &p ); - -int g0() -{ - return f0( 0, 1 ); - // CHECK-MESSAGES: warning: Call to 'f0' could instead call overload using a point parameter. [cata-use-point-apis] - // CHECK-FIXES: return f0( point( 0, 1 ) ); -} - -// Check that it can swap arguments -int f1( int y, int x ); -int f1( const point &p ); - -int g1() -{ - return f1( 0, 1 ); - // CHECK-MESSAGES: warning: Call to 'f1' could instead call overload using a point parameter. [cata-use-point-apis] - // CHECK-FIXES: return f1( point( 1, 0 ) ); -} - -// Check that it verifies the correct overload -int f2( int y, int x ); -int f2( const tripoint &p ); -int f2( const long &p ); - -int g2() -{ - return f2( 0, 1 ); -} - -// Check that it works for tripoints -int f3( int y, int x, int z ); -int f3( const tripoint &p ); - -int g3() -{ - return f3( 0, 1, 2 ); - // CHECK-MESSAGES: warning: Call to 'f3' could instead call overload using a tripoint parameter. [cata-use-point-apis] - // CHECK-FIXES: return f3( tripoint( 1, 0, 2 ) ); -} - -// Check that it works amongst other arguments -int f4( float f, int x, int y, int z, int w ); -int f4( float f, const tripoint &p, int w ); - -int g4() -{ - return f4( 0, 1, 2, 3, 4 ); - // CHECK-MESSAGES: warning: Call to 'f4' could instead call overload using a tripoint parameter. [cata-use-point-apis] - // CHECK-FIXES: return f4( 0, tripoint( 1, 2, 3 ), 4 ); -} - -// Avoid generating infinite recursion -int f5( int x, int y ); -int f5( const point &p ) -{ - return f5( p.x, p.y ); -} - -// Check handling of default parameters -int f6( int x, int y, int z = 0 ); -int f6( const tripoint &p ); - -int g6() -{ - return f6( 1, 2 ); - // CHECK-MESSAGES: warning: Call to 'f6' could instead call overload using a tripoint parameter. [cata-use-point-apis] - // CHECK-FIXES: return f6( tripoint( 1, 2, 0 ) ); -} - -int g7() -{ - auto lambda = []( int x, int y ) { - return x; - }; - return lambda( 0, 1 ); -} - -struct A8 { - int operator()( int x, int y ); - int operator()( const point &p ); -}; - -int g8() -{ - A8 a; - return a( 0, 1 ); - // CHECK-MESSAGES: warning: Call to 'operator()' could instead call overload using a point parameter. [cata-use-point-apis] - // CHECK-FIXES: return a( point( 0, 1 ) ); -} - -struct A9 { - int f( int x, int y ); - int f( const point &p ); -}; - -int g9() -{ - A9 a; - return a.f( 0, 1 ); - // CHECK-MESSAGES: warning: Call to 'f' could instead call overload using a point parameter. [cata-use-point-apis] - // CHECK-FIXES: return a.f( point( 0, 1 ) ); -} - -// Check function templates -template -int f10( T t, int x, int y ); -template -int f10( T t, const point &p ); - -int g10() -{ - return f10( "foo", 0, 1 ); - // CHECK-MESSAGES: warning: Call to 'f10' could instead call overload using a point parameter. [cata-use-point-apis] - // CHECK-FIXES: return f10( "foo", point( 0, 1 ) ); -} - -template -int f11( int, int x, int y, Args &&... ); -template -int f11( int, const point &p, Args &&... ); - -int g11() -{ - return f11( 7, 0, 1, "foo", 3.5f ); - // CHECK-MESSAGES: warning: Call to 'f11' could instead call overload using a point parameter. [cata-use-point-apis] - // CHECK-FIXES: return f11( 7, point( 0, 1 ), "foo", 3.5f ); -} - -// Check const-qualified int args -int f12( const int x, const int y ); -int f12( const point &p ); - -int g12() -{ - return f12( 0, 1 ); - // CHECK-MESSAGES: warning: Call to 'f12' could instead call overload using a point parameter. [cata-use-point-apis] - // CHECK-FIXES: return f12( point( 0, 1 ) ); -} diff --git a/tools/clang-tidy-plugin/test/use-point-arithmetic.cpp b/tools/clang-tidy-plugin/test/use-point-arithmetic.cpp deleted file mode 100644 index 05353576f7ac9..0000000000000 --- a/tools/clang-tidy-plugin/test/use-point-arithmetic.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// RUN: %check_clang_tidy %s cata-use-point-arithmetic %t -- -plugins=%cata_plugin -- -isystem %cata_include - -#define CATA_NO_STL -#include "point.h" - -point p0a, p0b; -point p0( p0a.x + p0b.x, p0a.y + p0b.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p0( p0a + p0b ); - -tripoint p1a, p1b; -tripoint p1( p1a.x + p1b.x, p1a.y + p1b.y, p1a.z + p1b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p1( p1a + p1b ); - -point p2a; -point p2( p2a.x + 1, p2a.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p2( p2a + point( 1, 0 ) ); - -tripoint p3a, p3b; -tripoint p3( p3a.xy() + p3b.xy(), p3a.z + p3b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p3( p3a + p3b ); - -point p4a, p4b; -point p4( p4a.x - p4b.x, p4a.y - p4b.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p4( p4a - p4b ); - -tripoint p5a, p5b; -tripoint p5( p5a.xy() - p5b.xy(), p5a.z - p5b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p5( p5a - p5b ); - -tripoint p6a, p6b; -tripoint p6( p6a.xy() - p6b.xy(), p6a.z + p6b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p6( p6a + tripoint( -p6b.xy(), p6b.z ) ); - -point p7a, p7b, p7c; -point p7( p7a.x - ( p7b.x - p7c.x ), p7a.y - p7b.y + p7c.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p7( p7a - p7b + p7c ); - -point p8a; -point p8( p8a.x - ( 3 && 4 ), p8a.y + 7 ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p8( p8a + point( -( 3 && 4 ), 7 ) ); - -point p9a, p9b; -point p9( p9a.x + p9b.x + p9a.x, p9a.y + p9b.y + p9a.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p9( 2 * p9a + p9b ); - -tripoint p10a; -point p10b; -tripoint p10( p10a.x + p10b.x, p10a.y + p10b.y, p10a.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p10( p10a + p10b ); - -tripoint p11a; -tripoint p11b; -tripoint p11( p11a.x + p11b.x, p11a.y + p11b.y, p11a.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p11( p11a + p11b.xy() ); - -point p12a; -point p12b; -point p12( 2 * p12a.x + p12b.x, 2 * p12a.y + p12b.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p12( 2 * p12a + p12b ); - -point p13a; -point p13b; -point p13( p13a.x * 2 + p13b.x, p13a.y * 2 + p13b.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p13( 2 * p13a + p13b ); - -tripoint p14a; -tripoint p14b; -tripoint p14( 2 * p14a.x + p14b.x, 2 * p14a.y + p14b.y, p14a.z + p14b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: tripoint p14( tripoint( 2 * p14a.x, 2 * p14a.y, p14a.z ) + p14b ); - -tripoint p15a; -tripoint p15b; -tripoint p15( p15a.xy() * 2 + p15b.xy(), p15a.z + p15b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: tripoint p15( tripoint( 2 * p15a.xy(), p15a.z ) + p15b ); - -tripoint p16a; -tripoint p16b; -tripoint p16( 2 * p16a.xy() + p16b.xy(), p16a.z + p16b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: tripoint p16( tripoint( 2 * p16a.xy(), p16a.z ) + p16b ); - -int f17( point ); -point p17a; -point p17b; -int i17 = f17( { p17a.x + p17b.x, p17a.y + p17b.y } ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: int i17 = f17( p17a + p17b ); - -struct A18 { - int x; - int y; -}; - -point p18a; -A18 p18b; -point p18( p18a.x + p18b.x, p18a.y + p18b.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p18( p18a + point( p18b.x, p18b.y ) ); - -struct A19 { - int f19( const tripoint & ); -}; -tripoint p19a; -tripoint p19b; -int i19 = A19().f19( tripoint( p19a.x + p19b.x, p19a.y + p19b.y, p19a.z + p19b.z ) ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: int i19 = A19().f19( p19a + p19b ); - -point *p20a; -point *p20b; -point p20( p20a->x + p20b->x, p20a->y + p20b->y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p20( *p20a + *p20b ); - -tripoint *p21a; -tripoint *p21b; -tripoint p21( p21a->xy() + p21b->xy(), p21a->z + p21b->z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: tripoint p21( *p21a + *p21b ); - -struct A22 { - tripoint *operator->(); -}; - -A22 p22a; -A22 p22b; -tripoint p22( p22a->xy() + p22b->xy(), p22a->z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: tripoint p22( *p22a + p22b->xy() ); - -tripoint p23a; -tripoint p23( p23a.x + 1, p23a.y, p23a.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: tripoint p23( p23a + point( 1, 0 ) ); - -#define D24 ( 2 * 3 ) -point p24a; -point p24( p24a.x, D24 - 1 + p24a.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p24( p24a + point( 0, D24 - 1 ) ); - -#define D25 ( 2 * 3 ) -point p25a; -point p25( p25a.x, D25 - 1 - p25a.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p25( point( p25a.x, -p25a.y ) + point( 0, D25 - 1 ) ); - -point p26a; -point p26b; -point p26( -p26a.x + p26b.x, -p26a.y + p26b.y ); -// CHECK-MESSAGES: warning: Construction of 'point' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p26( -p26a + p26b ); - -tripoint p27a; -tripoint p27b; -tripoint p27( -p27a.xy() + p27b.xy(), -p27a.z + p27b.z ); -// CHECK-MESSAGES: warning: Construction of 'tripoint' can be simplified using overloaded arithmetic operators. [cata-use-point-arithmetic] -// CHECK-FIXES: point p27( -p27a + p27b ); - -#define D28 12 -point p28a; -point p28b; -point p28( D28 * p28a.x + p28b.x, D28 * p28a.y + p28b.y ); -// CHECK-MESSAGES: warning: Construction of 'point' where a coefficient computation involves multiplication by a macro constant. Should you be using one of the coordinate transformation functions? [cata-use-point-arithmetic] diff --git a/tools/clang-tidy-plugin/test/xy.cpp b/tools/clang-tidy-plugin/test/xy.cpp deleted file mode 100644 index 8b089ecf7186f..0000000000000 --- a/tools/clang-tidy-plugin/test/xy.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// RUN: %check_clang_tidy %s cata-xy %t -- -plugins=%cata_plugin -- - -struct A0 { - // CHECK-MESSAGES: warning: 'A0' defines fields 'x' and 'y'. Consider combining into a single point field. [cata-xy] - int x; - int y; -}; - -struct A1 { - // CHECK-MESSAGES: warning: 'A1' defines fields 'foox' and 'fooy'. Consider combining into a single point field. [cata-xy] - int foox; - int fooy; -}; - -struct A2 { - int foox; - int bary; -}; - -struct A3 { - // CHECK-MESSAGES: warning: 'A3' defines fields 'foox' and 'fooy'. Consider combining into a single point field. [cata-xy] - int foox; - int bary; - int fooy; -}; - -struct A4 { - // CHECK-MESSAGES: warning: 'A4' defines fields 'barx' and 'bary'. Consider combining into a single point field. [cata-xy] - // CHECK-MESSAGES: warning: 'A4' defines fields 'foox' and 'fooy'. Consider combining into a single point field. [cata-xy] - int foox; - int fooy; - int barx; - int bary; -}; - -struct B { - // CHECK-MESSAGES: warning: 'B' defines fields 'x', 'y', and 'z'. Consider combining into a single tripoint field. [cata-xy] - int x; - int y; - int z; -}; - -template -struct C { - // CHECK-MESSAGES: warning: 'C' defines fields 'x' and 'y'. Consider combining into a single point field. [cata-xy] - int x; - int y; -}; - -C<0> c0; -C<1> c1; - -struct D { - // Verify that there are no warnings for non-int types - float x; - float y; -};